diff --git a/Front-End/next.config.mjs b/Front-End/next.config.mjs
index 01cf87a..993dada 100644
--- a/Front-End/next.config.mjs
+++ b/Front-End/next.config.mjs
@@ -42,14 +42,9 @@ const nextConfig = {
NEXT_PUBLIC_USE_FAKE_DATA: process.env.NEXT_PUBLIC_USE_FAKE_DATA || 'false',
AUTH_SECRET: process.env.AUTH_SECRET || 'false',
NEXTAUTH_URL: process.env.NEXTAUTH_URL || 'http://localhost:3000',
- DOCUSEAL_API_KEY: process.env.DOCUSEAL_API_KEY,
},
async rewrites() {
return [
- {
- source: '/api/documents/:path*',
- destination: 'https://api.docuseal.com/v1/documents/:path*',
- },
{
source: '/api/auth/:path*',
destination: '/api/auth/:path*', // Exclure les routes NextAuth des réécritures de proxy
diff --git a/Front-End/package-lock.json b/Front-End/package-lock.json
index 07c265e..585b3db 100644
--- a/Front-End/package-lock.json
+++ b/Front-End/package-lock.json
@@ -8,7 +8,6 @@
"name": "n3wt-school-front-end",
"version": "0.0.3",
"dependencies": {
- "@docuseal/react": "^1.0.56",
"@radix-ui/react-dialog": "^1.1.2",
"@tailwindcss/forms": "^0.5.9",
"date-fns": "^4.1.0",
@@ -537,11 +536,6 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "node_modules/@docuseal/react": {
- "version": "1.0.66",
- "resolved": "https://registry.npmjs.org/@docuseal/react/-/react-1.0.66.tgz",
- "integrity": "sha512-rYG58gv8Uw1cTtjbHdgWgWBWpLMbIwDVsS3kN27w4sz/eDJilZieePUDS4eLKJ8keBN05BSjxD/iWQpaTBKZLg=="
- },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
@@ -11269,11 +11263,6 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "@docuseal/react": {
- "version": "1.0.66",
- "resolved": "https://registry.npmjs.org/@docuseal/react/-/react-1.0.66.tgz",
- "integrity": "sha512-rYG58gv8Uw1cTtjbHdgWgWBWpLMbIwDVsS3kN27w4sz/eDJilZieePUDS4eLKJ8keBN05BSjxD/iWQpaTBKZLg=="
- },
"@eslint-community/eslint-utils": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
diff --git a/Front-End/package.json b/Front-End/package.json
index cc0a551..335df53 100644
--- a/Front-End/package.json
+++ b/Front-End/package.json
@@ -14,7 +14,6 @@
"test:coverage": "jest --coverage"
},
"dependencies": {
- "@docuseal/react": "^1.0.56",
"@radix-ui/react-dialog": "^1.1.2",
"@tailwindcss/forms": "^0.5.9",
"date-fns": "^4.1.0",
diff --git a/Front-End/src/app/[locale]/admin/page.js b/Front-End/src/app/[locale]/admin/page.js
index 5b26f91..787f3d2 100644
--- a/Front-End/src/app/[locale]/admin/page.js
+++ b/Front-End/src/app/[locale]/admin/page.js
@@ -36,7 +36,6 @@ export default function DashboardPage() {
const {
selectedEstablishmentId,
selectedEstablishmentTotalCapacity,
- apiDocuseal,
} = useEstablishment();
const [statusDistribution, setStatusDistribution] = useState([
@@ -165,25 +164,6 @@ export default function DashboardPage() {
return (
-
-
- {apiDocuseal ? (
-
- ) : (
-
- )}
- {apiDocuseal
- ? 'Clé API Docuseal renseignée'
- : 'Clé API Docuseal manquante'}
-
-
-
{/* Statistiques principales */}
{
if (selectedEstablishmentId) {
@@ -353,7 +353,6 @@ export default function Page() {
),
diff --git a/Front-End/src/app/[locale]/admin/subscriptions/createSubscription/page.js b/Front-End/src/app/[locale]/admin/subscriptions/createSubscription/page.js
index d978e34..0276232 100644
--- a/Front-End/src/app/[locale]/admin/subscriptions/createSubscription/page.js
+++ b/Front-End/src/app/[locale]/admin/subscriptions/createSubscription/page.js
@@ -35,7 +35,6 @@ import {
fetchRegistrationFileGroups,
fetchRegistrationSchoolFileMasters,
fetchRegistrationParentFileMasters,
- cloneTemplate,
createRegistrationSchoolFileTemplate,
createRegistrationParentFileTemplate,
} from '@/app/actions/registerFileGroupAction';
@@ -96,7 +95,7 @@ export default function CreateSubscriptionPage() {
const { getNiveauLabel } = useClasses();
const formDataRef = useRef(formData);
- const { selectedEstablishmentId, apiDocuseal } = useEstablishment();
+ const { selectedEstablishmentId } = useEstablishment();
const csrfToken = useCsrfToken();
const router = useRouter();
@@ -530,56 +529,57 @@ export default function CreateSubscriptionPage() {
const parentMasters = parentFileMasters.filter((file) =>
file.groups.includes(selectedFileGroup)
);
+ createRegistrationSchoolFileTemplate(
+ cloneData,
+ csrfToken
+ )
+ .then((response) =>
+ logger.debug('Template enregistré avec succès:', response)
+ )
+ .catch((error) => {
+ setIsLoading(false);
+ logger.error(
+ "Erreur lors de l'enregistrement du template:",
+ error
+ );
+ showNotification(
+ "Erreur lors de la création du dossier d'inscription",
+ 'error',
+ 'Erreur',
+ 'ERR_ADM_SUB_03'
+ );
+ });
- const clonePromises = masters.map((templateMaster) =>
- cloneTemplate(
- templateMaster.id,
- formDataRef.current.guardianEmail,
- templateMaster.is_required,
- selectedEstablishmentId,
- apiDocuseal
+ const clonePromises = masters.map((templateMaster) => {
+ const cloneData = {
+ name: `${templateMaster.name}_${formDataRef.current.studentFirstName}_${formDataRef.current.studentLastName}`,
+ slug: clonedDocument.slug,
+ id: clonedDocument.id,
+ master: templateMaster.id,
+ registration_form: data.student.id,
+ };
+
+ return createRegistrationSchoolFileTemplate(
+ cloneData,
+ csrfToken
)
- .then((clonedDocument) => {
- const cloneData = {
- name: `${templateMaster.name}_${formDataRef.current.studentFirstName}_${formDataRef.current.studentLastName}`,
- slug: clonedDocument.slug,
- id: clonedDocument.id,
- master: templateMaster.id,
- registration_form: data.student.id,
- };
-
- return createRegistrationSchoolFileTemplate(
- cloneData,
- csrfToken
- )
- .then((response) =>
- logger.debug('Template enregistré avec succès:', response)
- )
- .catch((error) => {
- setIsLoading(false);
- logger.error(
- "Erreur lors de l'enregistrement du template:",
- error
- );
- showNotification(
- "Erreur lors de la création du dossier d'inscription",
- 'error',
- 'Erreur',
- 'ERR_ADM_SUB_03'
- );
- });
- })
- .catch((error) => {
- setIsLoading(false);
- logger.error('Error during cloning or sending:', error);
- showNotification(
- "Erreur lors de la création du dossier d'inscription",
- 'error',
- 'Erreur',
- 'ERR_ADM_SUB_05'
- );
- })
- );
+ .then((response) =>
+ logger.debug('Template enregistré avec succès:', response)
+ )
+ .catch((error) => {
+ setIsLoading(false);
+ logger.error(
+ "Erreur lors de l'enregistrement du template:",
+ error
+ );
+ showNotification(
+ "Erreur lors de la création du dossier d'inscription",
+ 'error',
+ 'Erreur',
+ 'ERR_ADM_SUB_03'
+ );
+ });
+ });
// Clonage des parentFileTemplates
const parentClonePromises = parentMasters.map((parentMaster) => {
@@ -592,25 +592,25 @@ export default function CreateSubscriptionPage() {
parentTemplateData,
csrfToken
)
- .then((response) =>
- logger.debug(
- 'Parent template enregistré avec succès:',
- response
- )
+ .then((response) =>
+ logger.debug(
+ 'Parent template enregistré avec succès:',
+ response
)
- .catch((error) => {
- setIsLoading(false);
- logger.error(
- "Erreur lors de l'enregistrement du parent template:",
- error
- );
- showNotification(
- "Erreur lors de la création du dossier d'inscription",
- 'error',
- 'Erreur',
- 'ERR_ADM_SUB_02'
- );
- });
+ )
+ .catch((error) => {
+ setIsLoading(false);
+ logger.error(
+ "Erreur lors de l'enregistrement du parent template:",
+ error
+ );
+ showNotification(
+ "Erreur lors de la création du dossier d'inscription",
+ 'error',
+ 'Erreur',
+ 'ERR_ADM_SUB_02'
+ );
+ });
});
// Attendre que tous les clones soient créés
diff --git a/Front-End/src/app/[locale]/admin/subscriptions/editSubscription/page.js b/Front-End/src/app/[locale]/admin/subscriptions/editSubscription/page.js
index 92aab2c..eeee5cd 100644
--- a/Front-End/src/app/[locale]/admin/subscriptions/editSubscription/page.js
+++ b/Front-End/src/app/[locale]/admin/subscriptions/editSubscription/page.js
@@ -19,7 +19,7 @@ export default function Page() {
const [formErrors, setFormErrors] = useState({});
const csrfToken = useCsrfToken();
- const { selectedEstablishmentId, apiDocuseal } = useEstablishment();
+ const { selectedEstablishmentId } = useEstablishment();
const [isLoading, setIsLoading] = useState(false);
const handleSubmit = (data) => {
@@ -59,7 +59,6 @@ export default function Page() {
studentId={studentId}
csrfToken={csrfToken}
selectedEstablishmentId={selectedEstablishmentId}
- apiDocuseal = {apiDocuseal}
onSubmit={handleSubmit}
cancelUrl={FE_ADMIN_SUBSCRIPTIONS_URL}
errors={formErrors}
diff --git a/Front-End/src/app/[locale]/parents/editSubscription/page.js b/Front-End/src/app/[locale]/parents/editSubscription/page.js
index 8b8ffcd..74c9b5e 100644
--- a/Front-End/src/app/[locale]/parents/editSubscription/page.js
+++ b/Front-End/src/app/[locale]/parents/editSubscription/page.js
@@ -17,7 +17,7 @@ export default function Page() {
const enable = searchParams.get('enabled') === 'true';
const router = useRouter();
const csrfToken = useCsrfToken();
- const { selectedEstablishmentId, apiDocuseal } = useEstablishment();
+ const { selectedEstablishmentId } = useEstablishment();
const [isLoading, setIsLoading] = useState(false);
const handleSubmit = (data) => {
@@ -53,7 +53,6 @@ export default function Page() {
studentId={studentId}
csrfToken={csrfToken}
selectedEstablishmentId={selectedEstablishmentId}
- apiDocuseal = {apiDocuseal}
onSubmit={handleSubmit}
cancelUrl={FE_PARENTS_HOME_URL}
enable={enable}
diff --git a/Front-End/src/app/actions/registerFileGroupAction.js b/Front-End/src/app/actions/registerFileGroupAction.js
index 4783c74..1750254 100644
--- a/Front-End/src/app/actions/registerFileGroupAction.js
+++ b/Front-End/src/app/actions/registerFileGroupAction.js
@@ -3,11 +3,7 @@ import {
BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL,
BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_MASTERS_URL,
BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL,
- BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_TEMPLATES_URL,
- FE_API_DOCUSEAL_CLONE_URL,
- FE_API_DOCUSEAL_DOWNLOAD_URL,
- FE_API_DOCUSEAL_GENERATE_TOKEN,
- FE_API_DOCUSEAL_DELETE_URL
+ BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_TEMPLATES_URL
} from '@/utils/Url';
import { errorHandler, requestResponseHandler } from './actionsHandlers';
@@ -327,62 +323,3 @@ export const deleteRegistrationParentFileTemplate = (id, csrfToken) => {
}
);
};
-
-// API requests
-export const removeTemplate = (templateId, selectedEstablishmentId, apiDocuseal) => {
- return fetch(`${FE_API_DOCUSEAL_DELETE_URL}`, {
- method: 'DELETE',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- templateId,
- establishment_id :selectedEstablishmentId,
- apiDocuseal
- }),
- })
- .then(requestResponseHandler)
- .catch(errorHandler);
-};
-
-export const cloneTemplate = (templateId, email, is_required, selectedEstablishmentId, apiDocuseal) => {
- return fetch(`${FE_API_DOCUSEAL_CLONE_URL}`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- templateId,
- email,
- is_required,
- establishment_id :selectedEstablishmentId,
- apiDocuseal
- }),
- })
- .then(requestResponseHandler)
- .catch(errorHandler);
-};
-
-export const downloadTemplate = (slug, selectedEstablishmentId, apiDocuseal) => {
- const url = `${FE_API_DOCUSEAL_DOWNLOAD_URL}/${slug}?establishment_id=${selectedEstablishmentId}&apiDocuseal=${apiDocuseal}`;
- return fetch(url, {
- method: 'GET',
- headers: {
- 'Content-Type': 'application/json',
- },
- })
- .then(requestResponseHandler)
- .catch(errorHandler);
-};
-
-export const generateToken = (email, id = null, selectedEstablishmentId, apiDocuseal) => {
- return fetch(`${FE_API_DOCUSEAL_GENERATE_TOKEN}`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ user_email: email, id, establishment_id :selectedEstablishmentId, apiDocuseal }),
- })
- .then(requestResponseHandler)
- .catch(errorHandler);
-};
diff --git a/Front-End/src/components/ProfileSelector.js b/Front-End/src/components/ProfileSelector.js
index 25fde35..a3d9520 100644
--- a/Front-End/src/components/ProfileSelector.js
+++ b/Front-End/src/components/ProfileSelector.js
@@ -24,8 +24,7 @@ const ProfileSelector = ({ onRoleChange, className = '' }) => {
setSelectedEstablishmentEvaluationFrequency,
setSelectedEstablishmentTotalCapacity,
selectedEstablishmentLogo,
- setSelectedEstablishmentLogo,
- setApiDocuseal
+ setSelectedEstablishmentLogo
} = useEstablishment();
const { isConnected, connectionStatus } = useChatConnection();
const [dropdownOpen, setDropdownOpen] = useState(false);
@@ -41,8 +40,6 @@ const ProfileSelector = ({ onRoleChange, className = '' }) => {
user.roles[roleId].establishment__total_capacity;
const establishmentLogo =
user.roles[roleId].establishment__logo;
- const establishmentApiDocuseal =
- user.roles[roleId].establishment__api_docuseal;
setProfileRole(role);
setSelectedEstablishmentId(establishmentId);
setSelectedEstablishmentEvaluationFrequency(
@@ -50,7 +47,6 @@ const ProfileSelector = ({ onRoleChange, className = '' }) => {
);
setSelectedEstablishmentTotalCapacity(establishmentTotalCapacity);
setSelectedEstablishmentLogo(establishmentLogo);
- setApiDocuseal(establishmentApiDocuseal);
setSelectedRoleId(roleId);
if (onRoleChange) {
onRoleChange(roleId);
diff --git a/Front-End/src/components/Structure/Files/FileUploadDocuSeal.js b/Front-End/src/components/Structure/Files/FileUploadDocuSeal.js
index a3173ea..7bed94d 100644
--- a/Front-End/src/components/Structure/Files/FileUploadDocuSeal.js
+++ b/Front-End/src/components/Structure/Files/FileUploadDocuSeal.js
@@ -2,10 +2,7 @@ import React, { useState, useEffect } from 'react';
import {
fetchRegistrationFileGroups,
createRegistrationSchoolFileTemplate,
- cloneTemplate,
- generateToken,
} from '@/app/actions/registerFileGroupAction';
-import { DocusealBuilder } from '@docuseal/react';
import logger from '@/utils/logger';
import MultiSelect from '@/components/Form/MultiSelect'; // Import du composant MultiSelect
import { useCsrfToken } from '@/context/CsrfContext';
@@ -19,7 +16,6 @@ export default function FileUploadDocuSeal({
onSuccess,
}) {
const [groups, setGroups] = useState([]);
- const [token, setToken] = useState(null);
const [templateMaster, setTemplateMaster] = useState(null);
const [uploadedFileName, setUploadedFileName] = useState('');
const [selectedGroups, setSelectedGroups] = useState([]);
@@ -30,7 +26,7 @@ export default function FileUploadDocuSeal({
const csrfToken = useCsrfToken();
- const { selectedEstablishmentId, user, apiDocuseal } = useEstablishment();
+ const { selectedEstablishmentId, user } = useEstablishment();
useEffect(() => {
fetchRegistrationFileGroups(selectedEstablishmentId).then((data) =>
@@ -47,15 +43,6 @@ export default function FileUploadDocuSeal({
if (!user && !user?.email) {
return;
}
- const id = fileToEdit ? fileToEdit.id : null;
-
- generateToken(user?.email, id, selectedEstablishmentId, apiDocuseal)
- .then((data) => {
- setToken(data.token);
- })
- .catch((error) =>
- logger.error('Erreur lors de la génération du token:', error)
- );
}, [fileToEdit]);
const handleGroupChange = (selectedGroups) => {
@@ -121,41 +108,25 @@ export default function FileUploadDocuSeal({
guardianDetails.forEach((guardian, index) => {
logger.debug('creation du clone avec required : ', is_required);
- cloneTemplate(
- templateMaster?.id,
- guardian.email,
- is_required,
- selectedEstablishmentId,
- apiDocuseal
- )
- .then((clonedDocument) => {
- // Sauvegarde des schoolFileTemplates clonés dans la base de données
- const data = {
- name: `${uploadedFileName}_${guardian.first_name}_${guardian.last_name}`,
- slug: clonedDocument.slug,
- id: clonedDocument.id,
- master: templateMaster?.id,
- registration_form: guardian.registration_form,
- };
- logger.debug('creation : ', data);
- createRegistrationSchoolFileTemplate(data, csrfToken)
- .then((response) => {
- logger.debug('Template enregistré avec succès:', response);
- onSuccess();
- })
- .catch((error) => {
- logger.error(
- "Erreur lors de l'enregistrement du template:",
- error
- );
- });
-
- // Logique pour envoyer chaque template au submitter
- logger.debug('Sending template to:', guardian.email);
- })
- .catch((error) => {
- logger.error('Error during cloning or sending:', error);
- });
+ const data = {
+ name: `${uploadedFileName}_${guardian.first_name}_${guardian.last_name}`,
+ slug: clonedDocument.slug,
+ id: clonedDocument.id,
+ master: templateMaster?.id,
+ registration_form: guardian.registration_form,
+ };
+ logger.debug('creation : ', data);
+ createRegistrationSchoolFileTemplate(data, csrfToken)
+ .then((response) => {
+ logger.debug('Template enregistré avec succès:', response);
+ onSuccess();
+ })
+ .catch((error) => {
+ logger.error(
+ "Erreur lors de l'enregistrement du template:",
+ error
+ );
+ });
});
}
};
@@ -212,32 +183,7 @@ export default function FileUploadDocuSeal({
{/* Zone de configuration des documents */}
- {token && (
-
- {/* Description de l'étape */}
-
- Étape 2 - Sélectionnez un document
-
-
-
-
- )}
+
)}
diff --git a/Front-End/src/components/Structure/Files/FilesGroupsManagement.js b/Front-End/src/components/Structure/Files/FilesGroupsManagement.js
index 499d564..7f851c3 100644
--- a/Front-End/src/components/Structure/Files/FilesGroupsManagement.js
+++ b/Front-End/src/components/Structure/Files/FilesGroupsManagement.js
@@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react';
import { Download, Edit3, Trash2, FolderPlus, Signature, AlertTriangle } from 'lucide-react';
import Modal from '@/components/Modal';
import Table from '@/components/Table';
-import FileUploadDocuSeal from '@/components/Structure/Files/FileUploadDocuSeal';
import { BASE_URL } from '@/utils/Url';
import {
// GET
@@ -33,11 +32,11 @@ import Popup from '@/components/Popup';
import Loader from '@/components/Loader';
import { useNotification } from '@/context/NotificationContext';
import AlertMessage from '@/components/AlertMessage';
+import FileUploadDocuSeal from '@/components/Structure/Files/FileUploadDocuSeal';
export default function FilesGroupsManagement({
csrfToken,
- selectedEstablishmentId,
- apiDocuseal
+ selectedEstablishmentId
}) {
const [schoolFileMasters, setSchoolFileMasters] = useState([]);
const [schoolFileTemplates, setSchoolFileTemplates] = useState([]);
@@ -116,72 +115,24 @@ export default function FilesGroupsManagement({
);
setRemovePopupOnConfirm(() => () => {
setIsLoading(true);
- // Supprimer les clones associés via l'API DocuSeal
- const removeClonesPromises = [
- ...schoolFileTemplates
- .filter((template) => template.master === templateMaster.id)
- .map((template) =>
- removeTemplate(template.id, selectedEstablishmentId, apiDocuseal)
- ),
- removeTemplate(templateMaster.id, selectedEstablishmentId, apiDocuseal),
- ];
+ // Supprimer le template master de la base de données
+ deleteRegistrationSchoolFileMaster(templateMaster.id, csrfToken)
+ .then((response) => {
+ if (response.ok) {
+ setSchoolFileMasters(
+ schoolFileMasters.filter(
+ (fichier) => fichier.id !== templateMaster.id
+ )
+ );
+ showNotification(
+ `Le document "${templateMaster.name}" a été correctement supprimé.`,
+ 'success',
+ 'Succès'
+ );
- // Attendre que toutes les suppressions dans DocuSeal soient terminées
- Promise.all(removeClonesPromises)
- .then((responses) => {
- const allSuccessful = responses.every((response) => response && response.id);
- if (allSuccessful) {
- logger.debug('Master et clones supprimés avec succès de DocuSeal.');
-
- // Supprimer le template master de la base de données
- deleteRegistrationSchoolFileMaster(templateMaster.id, csrfToken)
- .then((response) => {
- if (response.ok) {
- setSchoolFileMasters(
- schoolFileMasters.filter(
- (fichier) => fichier.id !== templateMaster.id
- )
- );
- showNotification(
- `Le document "${templateMaster.name}" a été correctement supprimé.`,
- 'success',
- 'Succès'
- );
-
- setRemovePopupVisible(false);
- setIsLoading(false);
- } else {
- showNotification(
- `Erreur lors de la suppression du document "${templateMaster.name}".`,
- 'error',
- 'Erreur'
- );
- setRemovePopupVisible(false);
- setIsLoading(false);
- }
- })
- .catch((error) => {
- logger.error('Error deleting file from database:', error);
- showNotification(
- `Erreur lors de la suppression du document "${templateMaster.name}".`,
- 'error',
- 'Erreur'
- );
- setRemovePopupVisible(false);
- setIsLoading(false);
- });
- } else {
- showNotification(
- `Erreur lors de la suppression du document "${templateMaster.name}".`,
- 'error',
- 'Erreur'
- );
- setRemovePopupVisible(false);
- setIsLoading(false);
- }
- })
- .catch((error) => {
- logger.error('Error removing template from DocuSeal:', error);
+ setRemovePopupVisible(false);
+ setIsLoading(false);
+ } else {
showNotification(
`Erreur lors de la suppression du document "${templateMaster.name}".`,
'error',
@@ -189,7 +140,18 @@ export default function FilesGroupsManagement({
);
setRemovePopupVisible(false);
setIsLoading(false);
- });
+ }
+ })
+ .catch((error) => {
+ logger.error('Error deleting file from database:', error);
+ showNotification(
+ `Erreur lors de la suppression du document "${templateMaster.name}".`,
+ 'error',
+ 'Erreur'
+ );
+ setRemovePopupVisible(false);
+ setIsLoading(false);
+ });
});
};
@@ -542,25 +504,13 @@ export default function FilesGroupsManagement({
icon={Signature}
title="Formulaires à remplir"
description="Gérez les formulaires nécessitant une signature électronique."
- button={apiDocuseal}
+ button={true}
buttonOpeningModal={true}
onClick={() => {
setIsModalOpen(true);
setIsEditing(false);
}}
/>
-