mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Utilisation des nouvelles alertes dans la page admin de la gestion
des documents
This commit is contained in:
@ -47,8 +47,6 @@ export default function FilesGroupsManagement({
|
|||||||
const [groupToEdit, setGroupToEdit] = useState(null);
|
const [groupToEdit, setGroupToEdit] = useState(null);
|
||||||
const [reloadTemplates, setReloadTemplates] = useState(false);
|
const [reloadTemplates, setReloadTemplates] = useState(false);
|
||||||
|
|
||||||
const [popupVisible, setPopupVisible] = useState(false);
|
|
||||||
const [popupMessage, setPopupMessage] = useState('');
|
|
||||||
const [removePopupVisible, setRemovePopupVisible] = useState(false);
|
const [removePopupVisible, setRemovePopupVisible] = useState(false);
|
||||||
const [removePopupMessage, setRemovePopupMessage] = useState('');
|
const [removePopupMessage, setRemovePopupMessage] = useState('');
|
||||||
const [removePopupOnConfirm, setRemovePopupOnConfirm] = useState(() => {});
|
const [removePopupOnConfirm, setRemovePopupOnConfirm] = useState(() => {});
|
||||||
@ -144,7 +142,6 @@ export default function FilesGroupsManagement({
|
|||||||
'Succès'
|
'Succès'
|
||||||
);
|
);
|
||||||
|
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
} else {
|
} else {
|
||||||
@ -153,7 +150,6 @@ export default function FilesGroupsManagement({
|
|||||||
'error',
|
'error',
|
||||||
'Erreur'
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
@ -165,7 +161,6 @@ export default function FilesGroupsManagement({
|
|||||||
'error',
|
'error',
|
||||||
'Erreur'
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
});
|
});
|
||||||
@ -175,7 +170,6 @@ export default function FilesGroupsManagement({
|
|||||||
'error',
|
'error',
|
||||||
'Erreur'
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
@ -187,7 +181,6 @@ export default function FilesGroupsManagement({
|
|||||||
'error',
|
'error',
|
||||||
'Erreur'
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
});
|
});
|
||||||
@ -329,14 +322,19 @@ export default function FilesGroupsManagement({
|
|||||||
);
|
);
|
||||||
if (filesInGroup.length > 0) {
|
if (filesInGroup.length > 0) {
|
||||||
showNotification(
|
showNotification(
|
||||||
"Impossible de supprimer ce groupe car il contient des schoolFileMasters. Veuillez d'abord retirer tous les schoolFileMasters de ce groupe.",
|
"Impossible de supprimer ce groupe car il contient déjà des formulaires. Veuillez d'abord retirer tous les formules de ce groupe.",
|
||||||
'error',
|
'error',
|
||||||
'Erreur'
|
'Erreur'
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.confirm('Êtes-vous sûr de vouloir supprimer ce groupe ?')) {
|
setRemovePopupVisible(true);
|
||||||
|
setRemovePopupMessage(
|
||||||
|
`Attentions ! \nÊtes-vous sûr de vouloir supprimer ce groupe ?`
|
||||||
|
);
|
||||||
|
setRemovePopupOnConfirm(() => () => {
|
||||||
|
setIsLoading(true);
|
||||||
deleteRegistrationFileGroup(groupId, csrfToken)
|
deleteRegistrationFileGroup(groupId, csrfToken)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
if (response.status === 409) {
|
if (response.status === 409) {
|
||||||
@ -346,10 +344,14 @@ export default function FilesGroupsManagement({
|
|||||||
throw new Error('Erreur lors de la suppression du groupe.');
|
throw new Error('Erreur lors de la suppression du groupe.');
|
||||||
}
|
}
|
||||||
setGroups(groups.filter((group) => group.id !== groupId));
|
setGroups(groups.filter((group) => group.id !== groupId));
|
||||||
|
setRemovePopupVisible(false);
|
||||||
|
setIsLoading(false);
|
||||||
showNotification('Groupe supprimé avec succès.', 'success', 'Succès');
|
showNotification('Groupe supprimé avec succès.', 'success', 'Succès');
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.error('Error deleting group:', error);
|
console.error('Error deleting group:', error);
|
||||||
|
setRemovePopupVisible(false);
|
||||||
|
setIsLoading(false);
|
||||||
showNotification(
|
showNotification(
|
||||||
error.message ||
|
error.message ||
|
||||||
"Erreur lors de la suppression du groupe. Vérifiez qu'aucune inscription n'utilise ce groupe.",
|
"Erreur lors de la suppression du groupe. Vérifiez qu'aucune inscription n'utilise ce groupe.",
|
||||||
@ -357,7 +359,7 @@ export default function FilesGroupsManagement({
|
|||||||
'Erreur'
|
'Erreur'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleCreate = (newParentFile) => {
|
const handleCreate = (newParentFile) => {
|
||||||
@ -570,14 +572,6 @@ export default function FilesGroupsManagement({
|
|||||||
handleEdit={handleEdit}
|
handleEdit={handleEdit}
|
||||||
handleDelete={handleDelete}
|
handleDelete={handleDelete}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Popup
|
|
||||||
visible={popupVisible}
|
|
||||||
message={popupMessage}
|
|
||||||
onConfirm={() => setPopupVisible(false)}
|
|
||||||
onCancel={() => setPopupVisible(false)}
|
|
||||||
uniqueConfirmButton={true}
|
|
||||||
/>
|
|
||||||
<Popup
|
<Popup
|
||||||
visible={removePopupVisible}
|
visible={removePopupVisible}
|
||||||
message={removePopupMessage}
|
message={removePopupMessage}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import { createRegistrationParentFileTemplate } from '@/app/actions/registerFile
|
|||||||
import { useCsrfToken } from '@/context/CsrfContext';
|
import { useCsrfToken } from '@/context/CsrfContext';
|
||||||
import SectionHeader from '@/components/SectionHeader';
|
import SectionHeader from '@/components/SectionHeader';
|
||||||
import ToggleSwitch from '@/components/ToggleSwitch';
|
import ToggleSwitch from '@/components/ToggleSwitch';
|
||||||
|
import { useNotification } from '@/context/NotificationContext';
|
||||||
|
|
||||||
export default function ParentFilesSection({
|
export default function ParentFilesSection({
|
||||||
parentFiles,
|
parentFiles,
|
||||||
@ -23,13 +24,12 @@ export default function ParentFilesSection({
|
|||||||
|
|
||||||
const [guardianDetails, setGuardianDetails] = useState([]);
|
const [guardianDetails, setGuardianDetails] = useState([]);
|
||||||
|
|
||||||
const [popupVisible, setPopupVisible] = useState(false);
|
|
||||||
const [popupMessage, setPopupMessage] = useState('');
|
|
||||||
const [removePopupVisible, setRemovePopupVisible] = useState(false);
|
const [removePopupVisible, setRemovePopupVisible] = useState(false);
|
||||||
const [removePopupMessage, setRemovePopupMessage] = useState('');
|
const [removePopupMessage, setRemovePopupMessage] = useState('');
|
||||||
const [removePopupOnConfirm, setRemovePopupOnConfirm] = useState(() => {});
|
const [removePopupOnConfirm, setRemovePopupOnConfirm] = useState(() => {});
|
||||||
|
|
||||||
const csrfToken = useCsrfToken();
|
const csrfToken = useCsrfToken();
|
||||||
|
const { showNotification } = useNotification();
|
||||||
|
|
||||||
const handleAddEmptyRequiredDocument = () => {
|
const handleAddEmptyRequiredDocument = () => {
|
||||||
setEditingDocumentId('new');
|
setEditingDocumentId('new');
|
||||||
@ -48,17 +48,19 @@ export default function ParentFilesSection({
|
|||||||
|
|
||||||
const handleSaveDocument = () => {
|
const handleSaveDocument = () => {
|
||||||
if (!formData.name) {
|
if (!formData.name) {
|
||||||
setPopupMessage(
|
showNotification(
|
||||||
"Attention !\nVeuillez saisir un nom de document pour valider l'opération."
|
'Veuillez saisir un nom de document pour valider l\'opération',
|
||||||
|
'error',
|
||||||
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (selectedGroups.length === 0) {
|
if (selectedGroups.length === 0) {
|
||||||
setPopupMessage(
|
showNotification(
|
||||||
"Attention !\nVeuillez sélectionner au moins un dossier d'inscription pour valider l'opération"
|
'Veuillez sélectionner au moins un dossier d\'inscription pour valider l\'opération',
|
||||||
|
'error',
|
||||||
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,10 +267,7 @@ export default function ParentFilesSection({
|
|||||||
setRemovePopupOnConfirm(() => () => {
|
setRemovePopupOnConfirm(() => () => {
|
||||||
handleRemoveDocument(document.id)
|
handleRemoveDocument(document.id)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setPopupMessage(
|
showNotification('Le document "${document.name}" a été correctement supprimé.', 'success', 'Succès');
|
||||||
`Le document "${document.name}" a été correctement supprimé.`
|
|
||||||
);
|
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@ -276,10 +275,11 @@ export default function ParentFilesSection({
|
|||||||
'Erreur lors de la suppression du document:',
|
'Erreur lors de la suppression du document:',
|
||||||
error
|
error
|
||||||
);
|
);
|
||||||
setPopupMessage(
|
showNotification(
|
||||||
`Erreur lors de la suppression du document "${document.name}".`
|
`Erreur lors de la suppression du document "${document.name}".`,
|
||||||
|
'error',
|
||||||
|
'Erreur'
|
||||||
);
|
);
|
||||||
setPopupVisible(true);
|
|
||||||
setRemovePopupVisible(false);
|
setRemovePopupVisible(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -335,13 +335,6 @@ export default function ParentFilesSection({
|
|||||||
}
|
}
|
||||||
columns={columnsRequiredDocuments}
|
columns={columnsRequiredDocuments}
|
||||||
/>
|
/>
|
||||||
<Popup
|
|
||||||
visible={popupVisible}
|
|
||||||
message={popupMessage}
|
|
||||||
onConfirm={() => setPopupVisible(false)}
|
|
||||||
onCancel={() => setPopupVisible(false)}
|
|
||||||
uniqueConfirmButton={true}
|
|
||||||
/>
|
|
||||||
<Popup
|
<Popup
|
||||||
visible={removePopupVisible}
|
visible={removePopupVisible}
|
||||||
message={removePopupMessage}
|
message={removePopupMessage}
|
||||||
|
|||||||
Reference in New Issue
Block a user