diff --git a/accessibility_tools/accessibility_tools.info.yml b/accessibility_tools/accessibility_tools.info.yml new file mode 100644 index 0000000..59fab22 --- /dev/null +++ b/accessibility_tools/accessibility_tools.info.yml @@ -0,0 +1,4 @@ +name: Module d'accessibilité +description: Ajoute éléments d'accessibilité pour Pléiade, Sites internets, GRU +core_version_requirement: ^10 +type: module diff --git a/accessibility_tools/accessibility_tools.libraries.yml b/accessibility_tools/accessibility_tools.libraries.yml new file mode 100644 index 0000000..4fec052 --- /dev/null +++ b/accessibility_tools/accessibility_tools.libraries.yml @@ -0,0 +1,13 @@ +accessibility_tools: + version: 1.0 + js: + js/accessibility_tools.js: {} + dependencies: + - core/jquery + - core/drupal + - drupal:block +accessibility_tools_css: + version: 1.x + css: + theme: + css/accessibility_tools.css: {} \ No newline at end of file diff --git a/accessibility_tools/accessibility_tools.module b/accessibility_tools/accessibility_tools.module new file mode 100644 index 0000000..6647657 --- /dev/null +++ b/accessibility_tools/accessibility_tools.module @@ -0,0 +1,17 @@ += 'H1' && element.tagName <= 'H6')) { + const posX = event.clientX + 50; + const posY = event.clientY + 50; + + // Met à jour la position de la div + mouseInfoDiv.style.left = posX + 'px'; + mouseInfoDiv.style.top = posY + 'px'; + + // Met à jour le contenu de la div avec les coordonnées de la souris + mouseInfoDiv.textContent = element.textContent; + + // Affiche la div + mouseInfoDiv.style.display = 'block'; + } + } + // Ajouter un écouteur d'événement sur le changement de la case à cocher + checkbox.addEventListener('change', handleCheckboxChange); + + + const contrastCheckbox = document.getElementById('contraste'); + const bwCheckbox = document.getElementById('black_and_white'); + + function updateFilter() { + let filter = ''; + + if (contrastCheckbox.checked) { + filter += 'contrast(200%) '; + } + + if (bwCheckbox.checked) { + filter += 'grayscale(100%) '; + } + + document.body.style.filter = filter.trim(); + } + + contrastCheckbox.addEventListener('change', updateFilter); + bwCheckbox.addEventListener('change', updateFilter); + + + // Assurez-vous que les gestionnaires d'événements sont attachés aux éléments corrects. + $('.btn-group button', context).on('click', function () { + if ($(this).is('#increaseFontSize')) { + increaseFontSize(); + } else if ($(this).is('#decreaseFontSize')) { + decreaseFontSize(); + } else if ($(this).is('#resetFontSize')) { + resetFontSize(); + } + // Ajoutez d'autres conditions pour d'autres boutons si nécessaire. + }); + + // Gestionnaire d'événements pour le bouton du thème sombre + $('#theme-view', context).on('change', function () { + if ($(this).is(':checked')) { + // Logique pour activer le thème sombre + + // Sauvegardez l'état de la case à cocher dans le stockage local + localStorage.setItem('themeViewChecked', 'true'); + } else { + // Logique pour désactiver le thème sombre + + // Supprimez l'état de la case à cocher du stockage local + localStorage.removeItem('themeViewChecked'); + } + }); + + // Vérifiez si l'état de la case à cocher est sauvegardé dans le stockage local + var themeViewChecked = localStorage.getItem('themeViewChecked'); + if (themeViewChecked === 'true') { + // Si oui, cochez la case à cocher et déclenchez le gestionnaire d'événements 'change' + $('#theme-view', context).prop('checked', true).trigger('change'); + } + + + $('#contraste', context).on('change', function () { + if ($(this).is(':checked')) { + // Logique pour activer le thème sombre + + // Sauvegardez l'état de la case à cocher dans le stockage local + localStorage.setItem('contrasteChange', 'true'); + } else { + // Logique pour désactiver le thème sombre + + // Supprimez l'état de la case à cocher du stockage local + localStorage.removeItem('contrasteChange'); + } + }); + + // Vérifiez si l'état de la case à cocher est sauvegardé dans le stockage local + var themeViewChecked = localStorage.getItem('contrasteChange'); + if (themeViewChecked === 'true') { + // Si oui, cochez la case à cocher et déclenchez le gestionnaire d'événements 'change' + $('#contraste', context).prop('checked', true); + updateFilter(); + } + $('#black_and_white', context).on('change', function () { + if ($(this).is(':checked')) { + // Logique pour activer le thème sombre + + // Sauvegardez l'état de la case à cocher dans le stockage local + localStorage.setItem('black_and_whiteChange', 'true'); + } else { + // Logique pour désactiver le thème sombre + + // Supprimez l'état de la case à cocher du stockage local + localStorage.removeItem('black_and_whiteChange'); + } + }); + + // Vérifiez si l'état de la case à cocher est sauvegardé dans le stockage local + var themeViewChecked = localStorage.getItem('black_and_whiteChange'); + if (themeViewChecked === 'true') { + // Si oui, cochez la case à cocher et déclenchez le gestionnaire d'événements 'change' + $('#black_and_white', context).prop('checked', true); + updateFilter(); + } + + + }, 2000); // 1000 millisecondes = 1 seconde + } + + }; +})(jQuery, Drupal, drupalSettings); diff --git a/accessibility_tools/src/Plugin/Block/AccessibilityToolsBlock.php b/accessibility_tools/src/Plugin/Block/AccessibilityToolsBlock.php new file mode 100644 index 0000000..97e3ebb --- /dev/null +++ b/accessibility_tools/src/Plugin/Block/AccessibilityToolsBlock.php @@ -0,0 +1,74 @@ + 'inline_template', + '#template' => ' +
' + diff --git a/api_lemon_pleiade/src/Controller/PleiadeAjaxController.php b/api_lemon_pleiade/src/Controller/PleiadeAjaxController.php index e48863b..5039bd1 100644 --- a/api_lemon_pleiade/src/Controller/PleiadeAjaxController.php +++ b/api_lemon_pleiade/src/Controller/PleiadeAjaxController.php @@ -47,7 +47,7 @@ class PleiadeAjaxController extends ControllerBase if($dpt[1] != null){ $return['groupes'] .= ' dpt-'.$dpt[1].','; - setcookie('departement', $dpt[1], time() + 3600, '/'); + setcookie('departement', $dpt[1], time() + 36000, '/'); } } $return['groups'] = $return['groupes']; @@ -55,7 +55,7 @@ class PleiadeAjaxController extends ControllerBase // Store groups in Drupal private tempstore to serve to other modules later $tempstore = \Drupal::service('tempstore.private')->get('api_lemon_pleiade'); $tempstore->set('groups', $return["groupes"]); - setcookie('groups', $return['groups'], time() + 3600, '/'); + setcookie('groups', $return['groups'], time() + 36000, '/'); $email = $return["mail"]; // Recherchez l'utilisateur par son adresse e-mail. @@ -119,7 +119,7 @@ class PleiadeAjaxController extends ControllerBase * @return array * A simple renderable array. */ - public function myHistory() + public function reset_password() { return [ '#markup' => ' diff --git a/api_pastell_pleiade/api_pastell_pleiade.module b/api_pastell_pleiade/api_pastell_pleiade.module index 995f4c5..af103a0 100644 --- a/api_pastell_pleiade/api_pastell_pleiade.module +++ b/api_pastell_pleiade/api_pastell_pleiade.module @@ -184,8 +184,9 @@ function ecv_sendparaph($id_e, $id_d) } function _ecv_docs_lots($id_e, $nomfic, $urlfic, $year, $month, $day, $ged, $sstype, $data){ - + $id_d = ecv_creadoc($id_e); + \Drupal::logger('api_pastell_pleiade')->info('Envoi en Lot, id_d dreation: @api', ['@api' => $id_d]); $data = array( 'id_e' => $id_e, 'id_d' => $id_d->id_d, diff --git a/api_pastell_pleiade/js/api_pastell_menu.js b/api_pastell_pleiade/js/api_pastell_menu.js index 5c9c788..cf59ae7 100644 --- a/api_pastell_pleiade/js/api_pastell_menu.js +++ b/api_pastell_pleiade/js/api_pastell_menu.js @@ -171,6 +171,7 @@ break; case 'Document à faire signer': + menu_a_remplir = '' var nouvelElement = document.createElement('div'); nouvelElement.classList.add('sub_menu_eadmin'); nouvelElement.classList.add('collapse'); @@ -227,10 +228,10 @@ \ '; } -console.log(menu_a_remplir) - nouvelElement.innerHTML = menu_a_remplir - if (menu_doc_a_signer) { + nouvelElement.innerHTML = menu_a_remplir + + if (menu_doc_a_signer ) { menu_doc_a_signer.insertAdjacentElement('afterend', nouvelElement); } diff --git a/api_pastell_pleiade/src/Form/PleiadePastellDocLotsForm.php b/api_pastell_pleiade/src/Form/PleiadePastellDocLotsForm.php index e76de2b..48f1741 100644 --- a/api_pastell_pleiade/src/Form/PleiadePastellDocLotsForm.php +++ b/api_pastell_pleiade/src/Form/PleiadePastellDocLotsForm.php @@ -33,84 +33,86 @@ class PleiadePastellDocLotsForm extends ConfigFormBase // https://pastell.ecollectivites.fr/api/external-data.php?id_e=24&id_d=R3Mmu1m&page=0&field=iparapheur_sous_type // on cree un doc bidon $id_d = ecv_creadoc($id_e); - $data = array( - 'id_e' => $id_e, - 'id_d' => $id_d->id_d, - 'field' => 'iparapheur_sous_type', - ); - - $sstypes = ecv_getsoustype($data); - - - if($sstypes == null || $sstypes['status'] == 'error'){ + if($id_d){ + $data = array( + 'id_e' => $id_e, + 'id_d' => $id_d->id_d, + 'field' => 'iparapheur_sous_type', + ); + + $sstypes = ecv_getsoustype($data); + + + if($sstypes == null || $sstypes['status'] == 'error'){ + $suppr = ecv_suppr($id_e, $id_d->id_d); + \Drupal::messenger()->addError($this->t('Veuillez selectionner une collectivité qui possède des sous-types i-parapheur')); + return $form; + } + $form['#prefix'] = ''; + $form['#suffix'] = ' +