From 687f96ffca40f750c3670dd3a017ded6e52bf59e Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Thu, 3 May 2018 11:11:25 +0200
Subject: [PATCH] FEAT #7710 Actions constants

---
 .../action/controllers/ActionController.php   |   1 +
 src/app/action/models/ActionModelAbstract.php |  17 ++-
 src/app/group/models/ServiceModelAbstract.php |   4 +-
 src/core/controllers/CoreController.php       |   4 +-
 src/core/lang/lang-en.php                     | 107 +++++++++++++-----
 src/core/lang/lang-fr.php                     | 107 +++++++++++++-----
 src/core/models/CoreConfigModel.php           |   5 +-
 7 files changed, 172 insertions(+), 73 deletions(-)

diff --git a/src/app/action/controllers/ActionController.php b/src/app/action/controllers/ActionController.php
index 8fcab4b520a..e99c354b3b2 100644
--- a/src/app/action/controllers/ActionController.php
+++ b/src/app/action/controllers/ActionController.php
@@ -1,4 +1,5 @@
 <?php
+
 /**
 * Copyright Maarch since 2008 under licence GPLv3.
 * See LICENCE.txt file at the root folder for more details.
diff --git a/src/app/action/models/ActionModelAbstract.php b/src/app/action/models/ActionModelAbstract.php
index 4282f489779..5d605ebb9d4 100644
--- a/src/app/action/models/ActionModelAbstract.php
+++ b/src/app/action/models/ActionModelAbstract.php
@@ -1,4 +1,5 @@
 <?php
+
 /**
 * Copyright Maarch since 2008 under licence GPLv3.
 * See LICENCE.txt file at the root folder for more details.
@@ -29,33 +30,29 @@ class ActionModelAbstract
         return $actions;
     }
 
-    public static function getById(array $aArgs = [])
+    public static function getById(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['id']);
         ValidatorModel::intVal($aArgs, ['id']);
 
-        $aReturn = DatabaseModel::select(
-            [
+        $aReturn = DatabaseModel::select([
             'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'  => ['actions'],
             'where'  => ['id = ?'],
             'data'   => [$aArgs['id']]
-            ]
-        );
+        ]);
 
         if (empty($aReturn[0])) {
             return [];
         }
 
         $aReturn = $aReturn[0];
-        $aReturn['actionCategories'] = DatabaseModel::select(
-            [
+        $aReturn['actionCategories'] = DatabaseModel::select([
             'select' => ['category_id'],
             'table'  => ['actions_categories'],
             'where'  => ['action_id = ?'],
             'data'   => [$aArgs['id']]
-            ]
-        );
+        ]);
        
         return $aReturn;
     }
@@ -200,7 +197,7 @@ class ActionModelAbstract
     {
         $tabKeyword   = [];
         $tabKeyword[] = ['value' => '', 'label' => _NO_KEYWORD];
-        $tabKeyword[] = ['value' => 'redirect', 'label' => _REDIRECT, 'desc' => _KEYWORD_REDIRECT_DESC];
+        $tabKeyword[] = ['value' => 'redirect', 'label' => _REDIRECTION, 'desc' => _KEYWORD_REDIRECT_DESC];
         $tabKeyword[] = ['value' => 'indexing', 'label' => _INDEXING, 'desc' => _KEYWORD_INDEXING_DESC];
 
         return $tabKeyword;
diff --git a/src/app/group/models/ServiceModelAbstract.php b/src/app/group/models/ServiceModelAbstract.php
index da7983cf5a7..f34ff949f51 100644
--- a/src/app/group/models/ServiceModelAbstract.php
+++ b/src/app/group/models/ServiceModelAbstract.php
@@ -317,12 +317,12 @@ class ServiceModelAbstract
         }
 
         $administration = [];
-        $administrationMenu = ServiceModel::getApplicationAdministrationMenuByUserServices(['userServices' => $servicesStoredInDB]);
+//        $administrationMenu = ServiceModel::getApplicationAdministrationMenuByUserServices(['userServices' => $servicesStoredInDB]);
         $administrationApplication = ServiceModel::getApplicationAdministrationServicesByUserServices(['userServices' => $servicesStoredInDB]);
         $administrationModule = ServiceModel::getModulesAdministrationServicesByUserServices(['userServices' => $servicesStoredInDB]);
 
         $administration['administrations'] = array_merge_recursive($administrationApplication, $administrationModule);
-        $administration = array_merge_recursive($administration, $administrationMenu);
+//        $administration = array_merge_recursive($administration, $administrationMenu);
 
         return $administration;
     }
diff --git a/src/core/controllers/CoreController.php b/src/core/controllers/CoreController.php
index 67d419c57c4..79c689916d7 100644
--- a/src/core/controllers/CoreController.php
+++ b/src/core/controllers/CoreController.php
@@ -59,11 +59,11 @@ class CoreController
     {
         if ($GLOBALS['userId'] == 'superadmin') {
             $administration                    = [];
-            $administrationMenu                = ServiceModel::getApplicationAdministrationMenuByXML();
+//            $administrationMenu                = ServiceModel::getApplicationAdministrationMenuByXML();
             $administrationApplication         = ServiceModel::getApplicationAdministrationServicesByXML();
             $administrationModule              = ServiceModel::getModulesAdministrationServicesByXML();
             $administration['administrations'] = array_merge_recursive($administrationApplication, $administrationModule);
-            $administration                    = array_merge_recursive($administration, $administrationMenu);
+//            $administration                    = array_merge_recursive($administration, $administrationMenu);
         } else {
             $administration = ServiceModel::getAdministrationServicesByUserId(['userId' => $GLOBALS['userId']]);
         }
diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php
index 8ce0b824146..3682bb160ac 100644
--- a/src/core/lang/lang-en.php
+++ b/src/core/lang/lang-en.php
@@ -11,6 +11,7 @@
  *
  * @author dev@maarch.org
  */
+
 define('_ACTION_ADDED', 'Action added');
 define('_ACTION_DELETED', 'Action deleted');
 define('_ACTION_UPDATED', 'Action updated');
@@ -82,7 +83,32 @@ define('_VISA_USER', 'For visa');
 define('_WRONG_FILE_TYPE', 'This type of file is not allowed');
 define('_CAN_NOT_MOVE_IN_CHILD_ENTITY', 'Parent entity must not be a subentity');
 define('_UNREACHABLE_DOCSERVER', 'Unreachable docserver path');
+define('_INCOMING', 'Arrival mail');
+define('_OUTGOING', 'Departure mail');
+define('_INTERNAL', 'Internal Mail');
+define('_ATTACHMENT', 'Attachment');
+define('_GED_DOC', 'GED Document');
+define('_UNCHANGED', 'Unchanged');
+define('_NO_PAGE', 'No page');
+define('_NO_KEYWORD', 'No keyword');
+define('_INDEXING', 'Indexing');
+define('_KEYWORD_REDIRECT_DESC', 'Permet de définir les options disponibles sur l\'action depuis la bannette, notamment les services et / ou les utilisateurs disponibles pour la redirection.');
+define('_KEYWORD_INDEXING_DESC', 'Permet de définir les options disponibles sur l\'action depuis la bannette, notamment les services traitant disponibles et le/les statut(s) potentiels pour un enregistrement / modification de document.');
+define('_SIMPLE_MAIL', 'Simple mail');
+define('_EMAIL', 'Email');
+define('_FAX', 'Fax');
+define('_CHRONOPOST', 'Chronopost');
+define('_FEDEX', 'Fedex');
+define('_REGISTERED_MAIL', 'registered letter with recorded delivery');
+define('_COURIER', 'Courier');
+define('_NUMERIC_PACKAGE', 'Numeric package');
+define('_OTHER', 'Other');
+
+
+//BEGIN ALEX
+
 
+// LISTS
 define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'List with filters and responses');
 define('_DOCUMENTS_LIST_WITH_AVIS', 'List of documents with recommendation');
 define('_DOCUMENTS_LIST_COPIES', 'List of copies');
@@ -93,35 +119,7 @@ define('_DOCTYPE_UPDATED', 'Document type updated');
 define('_DOCTYPE_ADDED', 'Document type added');
 define('_DOCTYPE_DELETED', 'Document type deleted');
 
-//BEGIN ALEX
-define('_SIMPLE_MAIL', 'Simple mail');
-define('_EMAIL', 'Email');
-define('_FAX', 'Fax');
-define('_CHRONOPOST', 'Chronopost');
-define('_FEDEX', 'Fedex');
-define('_REGISTERED_MAIL', 'registered letter with recorded delivery');
-define('_COURIER', 'Courier');
-define('_NUMERIC_PACKAGE', 'Numeric package');
-define('_OTHER', 'Other');
-define('_SEND_SIGNED_DOCS', 'Pass signed responses');
-define('_SEND_SIGNED_DOCS_DESC', 'Check if response project are signed.');
-define('_SEND_TO_VISA', 'send for visa');
-define('_SEND_TO_VISA_DESC', 'Check if visa circuit is setup AND if one or several responses project are linked to document.');
-define('_REJECTION_WORKFLOW_PREVIOUS', 'Visa rejection - back to the previous author');
-define('_REJECTION_WORKFLOW_PREVIOUS_DESC', 'Reset visa date of previous supervisor in visa circuit of document (\'process_date\' of listinstance table).');
-define('_REJECTION_WORKFLOW_REDACTOR', 'Visa rejection - back to the author');
-define('_REJECTION_WORKFLOW_REDACTOR_DESC', 'Reset visa date of all supervisor in visa circuit of document (\'process_date\' of listinstance table).');
-define('_INTERRUPT_WORKFLOW', 'Break the visa flow');
-define('_INTERRUPT_WORKFLOW_DESC', 'Update visa date of current supervisor / signatory and all next supervisors in visa circuit of document (\'process_date\' of listinstance table). Insère également un message d\'interruption sur le viseur actuel (\'process_comment\' de la table listinstance).');
-define('_PROCEED_WORKFLOW', 'continue the visa flow');
-define('_PROCEED_WORKFLOW_DESC', 'Update visa date of current supervisor / signatory in visa circuit of document (\'process_date\' of listinstance table).');
-define('_VISA_MAIL', 'Aim the mail');
-define('_VISA_MAIL_DESC', 'Open signatory book to visa / sign the document.');
-define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT', 'Send to the contact with a mandatory attachment');
-define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT_DESC', 'Open sendmail modal with email of contact linked to document in recipient, attachment is MANDATORY.');
-define('_SEND_ATTACHMENTS_TO_CONTACT', 'Send to the contact');
-define('_SEND_ATTACHMENTS_TO_CONTACT_DESC', 'Open sendmail modal with email of contact linked to document in recipient.');
-
+// ADMINISTRATION
 define('_USERS', 'Users');
 define('_ADMIN_USERS_DESC', 'Add, suspend or modify users profiles. Place the users in their affiliation groups and define their primary group.');
 define('_GROUPS', 'users groups');
@@ -165,3 +163,54 @@ define('_NOTIFICATIONS', 'Notifications');
 define('_ADMIN_NOTIFICATIONS_DESC', " Create and manage users' notifications based on application events");
 define('_TEMPLATES', 'Templates');
 define('_ADMIN_TEMPLATES_DESC', 'Manage templates for attachments, notifications, document generation, sendmail and notes');
+
+// ACTIONS
+define('_REDIRECTION', 'Redirection');
+define('_REDIRECTION_DESC', 'Ouvre une modal permettant de choisir un nouvel utilisateur traitant OU de redéfinir le service traitant avec une nouvelle liste de diffusion.');
+define('_REDIRECTION_VISA_SIGN', 'Redirection for signature');
+define('_PUT_IN_COPY', 'Add on copy');
+define('_PUT_IN_COPY_DESC', 'Ouvre une modal permettant UNIQUEMENT d\'ajouter ou de supprimer des personne en COPIE de la liste de diffusion.');
+define('_SIMPLE_CONFIRM', 'Simple confirmation');
+define('_SIMPLE_CONFIRM_DESC', "Ouvre simplement une modal de confirmation de l'action à effetuer.");
+define('_PROCESS_ACTION', 'Traiter');
+define('_PROCESS_DESC', 'Ouvre la page de traitement d\'un document (les métas-données ne peuvent être modfiées depuis cette page).');
+define('_INDEX_FILE', 'Index a file');
+define('_INDEX_FILE_DESC', 'Ouvre la page d\'indexation afin d\'enregistrer un document.');
+define('_VALIDATE_QUALIF', 'Validation / certification');
+define('_VALIDATE_QUALIF_DESC', 'Ouvre la page de modification d\'un document déjà enregistré (les métas-données peuvent être modifiées depuis cette page).');
+define('_VIEW_DOC', 'See the document');
+define('_VIEW_DOC_DESC', 'Ouvre une modal avec le document en visualisation. Incrémente également la donnée \'viewed\' de la table listinstance (utile si utilisée dans les clauses de bannettes).');
+define('_CLOSE_MAIL', 'Close a mail');
+define('_CLOSE_MAIL_DESC', 'Permet de mettre à jour la date de clôture d\'un document (\'closing_date\' de la table mlb_coll_ext). ESSENTIEL afin de terminer votre workflow de document.');
+define('_SET_PERSISTENT_MODE_ON', 'Activate the persistence');
+define('_SET_PERSISTENT_MODE_ON_DESC', 'Permet de conserver un document dans une bannette quelque soit son état. Insère la donnée dans la table \'basket_persistent_mode\'.');
+define('_SET_PERSISTENT_MODE_OFF', 'Deactivate the persistence');
+define('_SET_PERSISTENT_MODE_OFF_DESC', 'Réinitialise le comportement de visualisation du document dans la bannette. Supprime la donnée dans la table \'basket_persistent_mode\'.');
+define('_MARK_AS_READ', 'Marked as read');
+define('_MARK_AS_READ_DESC', 'Marque le document comme \'lu\' dans la bannette. Insère la donnée dans la table \'res_mark_as_read\' (utile si utilisée dans les clauses de bannettes).');
+define('_SEND_FILE_WS', 'Send file via Web Service');
+define('_SEND_DATA_WS', 'Send data via Web Service');
+define('_CONFIRM_FOLDER_STATUS', '[folder] Confirm the folder status');
+define('_REDIRECT_FOLDER', '[folder] Redirect the folder');
+define('_CLOSE_MAIL_AND_INDEX', 'Close a mail and launch the indexation');
+define('_CLOSE_MAIL_AND_INDEX_DESC', 'Permet de mettre à jour la date de clôture d\'un document (\'closing_date\' de la table mlb_coll_ext) ET ouvre la page d\'indexation afin d\'enregistrer un nouveau document.');
+define('_CLOSE_MAIL_WITH_ATTACHMENT', 'Closing with attachment');
+define('_CLOSE_MAIL_WITH_ATTACHMENT_DESC', 'Permet de mettre à jour la date de clôture d\'un document (\'closing_date\' de la table mlb_coll_ext) avec présence OBLIGATOIRE de pièce(s) jointe(s) / note(s).');
+define('_SEND_SIGNED_DOCS', 'Pass signed responses');
+define('_SEND_SIGNED_DOCS_DESC', 'Check if response project are signed.');
+define('_SEND_TO_VISA', 'send for visa');
+define('_SEND_TO_VISA_DESC', 'Check if visa circuit is setup AND if one or several responses project are linked to document.');
+define('_REJECTION_WORKFLOW_PREVIOUS', 'Visa rejection - back to the previous author');
+define('_REJECTION_WORKFLOW_PREVIOUS_DESC', 'Reset visa date of previous supervisor in visa circuit of document (\'process_date\' of listinstance table).');
+define('_REJECTION_WORKFLOW_REDACTOR', 'Visa rejection - back to the author');
+define('_REJECTION_WORKFLOW_REDACTOR_DESC', 'Reset visa date of all supervisor in visa circuit of document (\'process_date\' of listinstance table).');
+define('_INTERRUPT_WORKFLOW', 'Break the visa flow');
+define('_INTERRUPT_WORKFLOW_DESC', 'Update visa date of current supervisor / signatory and all next supervisors in visa circuit of document (\'process_date\' of listinstance table). Insère également un message d\'interruption sur le viseur actuel (\'process_comment\' de la table listinstance).');
+define('_PROCEED_WORKFLOW', 'continue the visa flow');
+define('_PROCEED_WORKFLOW_DESC', 'Update visa date of current supervisor / signatory in visa circuit of document (\'process_date\' of listinstance table).');
+define('_VISA_MAIL', 'Aim the mail');
+define('_VISA_MAIL_DESC', 'Open signatory book to visa / sign the document.');
+define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT', 'Send to the contact with a mandatory attachment');
+define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT_DESC', 'Open sendmail modal with email of contact linked to document in recipient, attachment is MANDATORY.');
+define('_SEND_ATTACHMENTS_TO_CONTACT', 'Send to the contact');
+define('_SEND_ATTACHMENTS_TO_CONTACT_DESC', 'Open sendmail modal with email of contact linked to document in recipient.');
diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php
index 584390e2d31..98eebafefda 100644
--- a/src/core/lang/lang-fr.php
+++ b/src/core/lang/lang-fr.php
@@ -11,6 +11,7 @@
  *
  * @author dev@maarch.org
  */
+
 define('_ACTION_ADDED', 'Action ajoutée');
 define('_ACTION_DELETED', 'Action supprimée');
 define('_ACTION_UPDATED', 'Action modifiée');
@@ -82,7 +83,32 @@ define('_VISA_USER', 'Pour visa');
 define('_WRONG_FILE_TYPE', 'Ce type de fichier n\'est pas permis');
 define('_CAN_NOT_MOVE_IN_CHILD_ENTITY', 'L\'entité parente ne doit pas être dans une entité fille');
 define('_UNREACHABLE_DOCSERVER', 'Chemin docserver inatteignable');
+define('_INCOMING', 'Courrier Arrivée');
+define('_OUTGOING', 'Courrier Départ');
+define('_INTERNAL', 'Courrier Interne');
+define('_ATTACHMENT', 'Pièce jointe');
+define('_GED_DOC', 'Document GED');
+define('_UNCHANGED', 'Inchangé');
+define('_NO_PAGE', 'Aucune page');
+define('_NO_KEYWORD', 'Aucun mot clé');
+define('_INDEXING', 'Indexation');
+define('_KEYWORD_REDIRECT_DESC', 'Permet de définir les options disponibles sur l\'action depuis la bannette, notamment les services et / ou les utilisateurs disponibles pour la redirection.');
+define('_KEYWORD_INDEXING_DESC', 'Permet de définir les options disponibles sur l\'action depuis la bannette, notamment les services traitant disponibles et le/les statut(s) potentiels pour un enregistrement / modification de document.');
+define('_SIMPLE_MAIL', 'Courrier simple');
+define('_EMAIL', 'Courriel');
+define('_FAX', 'Fax');
+define('_CHRONOPOST', 'Chronopost');
+define('_FEDEX', 'Fedex');
+define('_REGISTERED_MAIL', 'Courrier AR');
+define('_COURIER', 'Coursier');
+define('_NUMERIC_PACKAGE', 'Pli numérique');
+define('_OTHER', 'Autre');
+
+
+//BEGIN ALEX
+
 
+// LISTS
 define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'Liste avec filtres et réponses');
 define('_DOCUMENTS_LIST_WITH_AVIS', 'Liste des documents avec avis');
 define('_DOCUMENTS_LIST_COPIES', 'Liste des copies');
@@ -93,35 +119,7 @@ define('_DOCTYPE_UPDATED', 'Type de document modifié');
 define('_DOCTYPE_ADDED', 'Type de document ajouté');
 define('_DOCTYPE_DELETED', 'Type de document supprimé');
 
-//BEGIN ALEX
-define('_SIMPLE_MAIL', 'Courrier simple');
-define('_EMAIL', 'Courriel');
-define('_FAX', 'Fax');
-define('_CHRONOPOST', 'Chronopost');
-define('_FEDEX', 'Fedex');
-define('_REGISTERED_MAIL', 'Courrier AR');
-define('_COURIER', 'Coursier');
-define('_NUMERIC_PACKAGE', 'Pli numérique');
-define('_OTHER', 'Autre');
-define('_SEND_SIGNED_DOCS', 'Transmettre réponses signées');
-define('_SEND_SIGNED_DOCS_DESC', 'Vérifie si les projets de réponse ont été signés.');
-define('_SEND_TO_VISA', 'Envoyer pour visa');
-define('_SEND_TO_VISA_DESC', 'Contrôle si un circuit de visa est configuré ET si un ou plusieurs projets de réponses sont associés au document.');
-define('_REJECTION_WORKFLOW_PREVIOUS', 'Refuser le visa - retour au précédent viseur');
-define('_REJECTION_WORKFLOW_PREVIOUS_DESC', 'Réinitialise la date de visa du précédent viseur présent dans le circuit de visa du document (\'process_date\' de la table listinstance).');
-define('_REJECTION_WORKFLOW_REDACTOR', 'Refuser le visa - retour rédacteur');
-define('_REJECTION_WORKFLOW_REDACTOR_DESC', 'Réinitialise la date de visa de tous les viseurs présents dans le circuit de visa du document (\'process_date\' de la table listinstance).');
-define('_INTERRUPT_WORKFLOW', 'Interrompre le circuit de visa');
-define('_INTERRUPT_WORKFLOW_DESC', 'Met à jour la date du visa de l\'actuel viseur / signataire et de tous les viseurs suivant présents dans le circuit de visa du document (\'process_date\' de la table listinstance). Insère également un message d\'interruption sur le viseur actuel (\'process_comment\' de la table listinstance).');
-define('_PROCEED_WORKFLOW', 'Poursuivre le circuit de visa');
-define('_PROCEED_WORKFLOW_DESC', 'Met à jour la date du visa de l\'actuel viseur / signataire présent dans le circuit de visa du document (\'process_date\' de la table listinstance).');
-define('_VISA_MAIL', 'Viser le courrier');
-define('_VISA_MAIL_DESC', 'Ouvre la page du parapheur afin de pouvoir viser / signer le document.');
-define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT', 'Envoyer au contact avec une pièce jointe obligatoire');
-define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT_DESC', "Ouvre une modal d'envoi de mail avec l'email du contact associé au document en tant que destinataire, présence OBLIGATOIRE de pièce(s) jointe(s) à l'envoi.");
-define('_SEND_ATTACHMENTS_TO_CONTACT', 'Envoyer au contact');
-define('_SEND_ATTACHMENTS_TO_CONTACT_DESC', "Ouvre une modal d'envoi de mail avec l'email du contact associé au document en tant que destinataire.");
-
+// ADMINISTRATION
 define('_USERS', 'Utilisateurs');
 define('_ADMIN_USERS_DESC', "Ajouter, suspendre, ou modifier des profils utilisateurs. Placer les utilisateurs dans leurs groupes d'appartenance et définir leur groupe primaire.");
 define('_GROUPS', 'Groupes d\'utilisateurs');
@@ -165,3 +163,54 @@ define('_NOTIFICATIONS', 'Notifications');
 define('_ADMIN_NOTIFICATIONS_DESC', "Créer et gérer des notifications aux utilisateurs basées sur des événements de l'application");
 define('_TEMPLATES', 'Modèles de documents');
 define('_ADMIN_TEMPLATES_DESC', "Gérer les modèles utilisés pour les pièces jointes, les notifications, la génération de courriers, l'envoi de courriels et les notes");
+
+// ACTIONS
+define('_REDIRECTION', 'Rediriger');
+define('_REDIRECTION_DESC', 'Ouvre une modal permettant de choisir un nouvel utilisateur traitant OU de redéfinir le service traitant avec une nouvelle liste de diffusion.');
+define('_REDIRECTION_VISA_SIGN', 'Rediriger pour signature');
+define('_PUT_IN_COPY', 'Ajouter en copie');
+define('_PUT_IN_COPY_DESC', "Ouvre une modal permettant UNIQUEMENT d'ajouter ou de supprimer des personne en COPIE de la liste de diffusion.");
+define('_SIMPLE_CONFIRM', 'Confirmation simple');
+define('_SIMPLE_CONFIRM_DESC', "Ouvre simplement une modal de confirmation de l'action à effetuer.");
+define('_PROCESS_ACTION', 'Traiter');
+define('_PROCESS_DESC', 'Ouvre la page de traitement d\'un document (les métas-données ne peuvent être modfiées depuis cette page).');
+define('_INDEX_FILE', 'Indexer un fichier');
+define('_INDEX_FILE_DESC', 'Ouvre la page d\'indexation afin d\'enregistrer un document.');
+define('_VALIDATE_QUALIF', 'Valider/Qualifier');
+define('_VALIDATE_QUALIF_DESC', 'Ouvre la page de modification d\'un document déjà enregistré (les métas-données peuvent être modifiées depuis cette page).');
+define('_VIEW_DOC', 'Voir le document');
+define('_VIEW_DOC_DESC', 'Ouvre une modal avec le document en visualisation. Incrémente également la donnée \'viewed\' de la table listinstance (utile si utilisée dans les clauses de bannettes).');
+define('_CLOSE_MAIL', 'Clôturer un courrier');
+define('_CLOSE_MAIL_DESC', 'Permet de mettre à jour la date de clôture d\'un document (\'closing_date\' de la table mlb_coll_ext). ESSENTIEL afin de terminer votre workflow de document.');
+define('_SET_PERSISTENT_MODE_ON', 'Activer la persistance');
+define('_SET_PERSISTENT_MODE_ON_DESC', 'Permet de conserver un document dans une bannette quelque soit son état. Insère la donnée dans la table \'basket_persistent_mode\'.');
+define('_SET_PERSISTENT_MODE_OFF', 'Désactiver la persistance');
+define('_SET_PERSISTENT_MODE_OFF_DESC', 'Réinitialise le comportement de visualisation du document dans la bannette. Supprime la donnée dans la table \'basket_persistent_mode\'.');
+define('_MARK_AS_READ', 'Marquer comme lu');
+define('_MARK_AS_READ_DESC', 'Marque le document comme \'lu\' dans la bannette. Insère la donnée dans la table \'res_mark_as_read\' (utile si utilisée dans les clauses de bannettes).');
+define('_SEND_FILE_WS', 'Envoyer le document via Web Service');
+define('_SEND_DATA_WS', 'Envoyer des données via Web Service');
+define('_CONFIRM_FOLDER_STATUS', '[dossier] Confirmer le statut du dossier');
+define('_REDIRECT_FOLDER', '[dossier] Rediriger le dossier');
+define('_CLOSE_MAIL_AND_INDEX', 'Clôturer un courrier et lancer l\'indexation');
+define('_CLOSE_MAIL_AND_INDEX_DESC', 'Permet de mettre à jour la date de clôture d\'un document (\'closing_date\' de la table mlb_coll_ext) ET ouvre la page d\'indexation afin d\'enregistrer un nouveau document.');
+define('_CLOSE_MAIL_WITH_ATTACHMENT', 'Clôturer un courrier avec pièce jointe');
+define('_CLOSE_MAIL_WITH_ATTACHMENT_DESC', 'Permet de mettre à jour la date de clôture d\'un document (\'closing_date\' de la table mlb_coll_ext) avec présence OBLIGATOIRE de pièce(s) jointe(s) / note(s).');
+define('_SEND_SIGNED_DOCS', 'Transmettre réponses signées');
+define('_SEND_SIGNED_DOCS_DESC', 'Vérifie si les projets de réponse ont été signés.');
+define('_SEND_TO_VISA', 'Envoyer pour visa');
+define('_SEND_TO_VISA_DESC', 'Contrôle si un circuit de visa est configuré ET si un ou plusieurs projets de réponses sont associés au document.');
+define('_REJECTION_WORKFLOW_PREVIOUS', 'Refuser le visa - retour au précédent viseur');
+define('_REJECTION_WORKFLOW_PREVIOUS_DESC', 'Réinitialise la date de visa du précédent viseur présent dans le circuit de visa du document (\'process_date\' de la table listinstance).');
+define('_REJECTION_WORKFLOW_REDACTOR', 'Refuser le visa - retour rédacteur');
+define('_REJECTION_WORKFLOW_REDACTOR_DESC', 'Réinitialise la date de visa de tous les viseurs présents dans le circuit de visa du document (\'process_date\' de la table listinstance).');
+define('_INTERRUPT_WORKFLOW', 'Interrompre le circuit de visa');
+define('_INTERRUPT_WORKFLOW_DESC', 'Met à jour la date du visa de l\'actuel viseur / signataire et de tous les viseurs suivant présents dans le circuit de visa du document (\'process_date\' de la table listinstance). Insère également un message d\'interruption sur le viseur actuel (\'process_comment\' de la table listinstance).');
+define('_PROCEED_WORKFLOW', 'Poursuivre le circuit de visa');
+define('_PROCEED_WORKFLOW_DESC', 'Met à jour la date du visa de l\'actuel viseur / signataire présent dans le circuit de visa du document (\'process_date\' de la table listinstance).');
+define('_VISA_MAIL', 'Viser le courrier');
+define('_VISA_MAIL_DESC', 'Ouvre la page du parapheur afin de pouvoir viser / signer le document.');
+define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT', 'Envoyer au contact avec une pièce jointe obligatoire');
+define('_SEND_TO_CONTACT_WITH_MANDATORY_ATTACHMENT_DESC', "Ouvre une modal d'envoi de mail avec l'email du contact associé au document en tant que destinataire, présence OBLIGATOIRE de pièce(s) jointe(s) à l'envoi.");
+define('_SEND_ATTACHMENTS_TO_CONTACT', 'Envoyer au contact');
+define('_SEND_ATTACHMENTS_TO_CONTACT_DESC', "Ouvre une modal d'envoi de mail avec l'email du contact associé au document en tant que destinataire.");
diff --git a/src/core/models/CoreConfigModel.php b/src/core/models/CoreConfigModel.php
index bc788c50491..4d785430a1b 100644
--- a/src/core/models/CoreConfigModel.php
+++ b/src/core/models/CoreConfigModel.php
@@ -155,7 +155,10 @@ class CoreConfigModel
         $categories      = $loadedXml->COLLECTION->categories;
         if (count($categories) > 0) {
             foreach ($categories->category as $category) {
-                $categoriesTmp = ['id' => (string)$category->id, 'label'=> constant((string)$category->label)];
+                $categoriesTmp = [
+                    'id'    => (string)$category->id,
+                    'label' => defined((string)$category->label) ? constant((string)$category->label) : (string)$category->label
+                ];
 
                 if ($category->id == (string)$categories->default_category) {
                     $categoriesTmp['default_category'] = true;
-- 
GitLab