From efd79d15adef2a27347c25ebb19754e9937f9715 Mon Sep 17 00:00:00 2001 From: polo Date: Wed, 10 Sep 2025 01:02:36 +0200 Subject: =?UTF-8?q?modification=20d'une=20URL=20page=20Menu=20et=20chemin,?= =?UTF-8?q?=20htmlspecialchars=20sur=20les=20URL=20du=20menu=20=C3=A0=20l'?= =?UTF-8?q?affichage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/menu.js | 94 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 84 insertions(+), 10 deletions(-) (limited to 'public/js/menu.js') diff --git a/public/js/menu.js b/public/js/menu.js index 8f1f326..ef58c42 100644 --- a/public/js/menu.js +++ b/public/js/menu.js @@ -122,7 +122,7 @@ function checkMenuEntry(page_id){ const checkbox = clicked_menu_entry.querySelector("input"); let color; - fetch('index.php?menu_edit=displayInMenu', { + fetch('index.php?menu_edit=display_in_menu', { method: 'POST', headers: { 'Content-Type': 'application/json' @@ -131,16 +131,14 @@ function checkMenuEntry(page_id){ }) .then(response => response.json()) .then(data => { - if(data.success) - { + if(data.success){ color = checkbox.checked ? "#ff1d04" : "grey"; clicked_menu_entry.querySelector("button").style.color = color; nav_zone.innerHTML = ''; nav_zone.insertAdjacentHTML('afterbegin', data.nav); } - else { - + else{ console.error('Échec de l\'inversion'); } }) @@ -149,13 +147,89 @@ function checkMenuEntry(page_id){ }); } - +// seul la modification des URL est possible pour l'instant, les noms des entrées de menu attendront function editUrlEntry(page_id){ - const selected_div = document.getElementById(page_id); - console.log(selected_div.id); + const parent_div = document.getElementById(page_id); + const url_input = parent_div.querySelector('.url').querySelector('input').value; + + fetch('index.php?menu_edit=edit_url_entry', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ id: page_id, url_input: url_input }) + }) + .then(response => response.json()) + .then(data => { + if(data.success){ + findParentByTagName(document.getElementById('m_' + page_id), 'a').href = data.url_input; // MAJ menu + toastNotify("Nouvelle adresse enregistrée avec succès") + } + else{ + toastNotify("Erreur rencontrée par le serveur, changements non pris en compte"); + console.error("Erreur rencontrée par le serveur, changements non pris en compte"); + } + }) + .catch(error => { + console.error('Erreur:', error); + }); } -function deleteUrlEntry(page_id){ + + +// code à recycler pour pouvoir modifier le nom de l'entrée de menu correspondant aux liens +/*function editUrlEntry(page_id){ + const parent_div = document.getElementById(page_id); + parent_div.querySelector('i').classList.add('hidden'); + parent_div.querySelector('.url').querySelector('input').classList.remove('hidden'); + parent_div.querySelector('#edit-i' + page_id).classList.add('hidden'); + parent_div.querySelector('#delete-i' + page_id).querySelector('input[type=image]').classList.add('hidden'); + parent_div.querySelector('#cancel-i' + page_id).querySelector('button').classList.remove('hidden'); + parent_div.querySelector('#submit-i' + page_id).querySelector('input[type=submit]').classList.remove('hidden'); +} +function cancelUrlEntry(page_id){ + const parent_div = document.getElementById(page_id); + parent_div.querySelector('.url').querySelector('input').value = parent_div.querySelector('i').textContent; // textContent (contrairement à innerHTML) ne transforme pas les & en entités HTML + closeUrlEntry(page_id, parent_div); +} +function submitUrlEntry(page_id){ + const parent_div = document.getElementById(page_id); + const url_input = parent_div.querySelector('.url').querySelector('input').value; + + fetch('index.php?menu_edit=edit_url_entry', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ id: page_id, url_input: url_input }) + }) + .then(response => response.json()) + .then(data => { + if(data.success){ + parent_div.querySelector('i').innerHTML = data.url_input; // MAJ + findParentByTagName(document.getElementById('m_' + page_id), 'a').href = data.url_input; // MAJ menu + closeUrlEntry(page_id, parent_div); + } + else{ + toastNotify("Erreur rencontrée par le serveur, changements non pris en compte"); + console.error("Erreur rencontrée par le serveur, changements non pris en compte"); + } + }) + .catch(error => { + console.error('Erreur:', error); + }); +} +function closeUrlEntry(page_id, parent_div){ + parent_div.querySelector('i').classList.remove('hidden'); + parent_div.querySelector('.url').querySelector('input').classList.add('hidden'); + parent_div.querySelector('#edit-i' + page_id).classList.remove('hidden'); + parent_div.querySelector('#delete-i' + page_id).querySelector('input[type=image]').classList.remove('hidden'); + parent_div.querySelector('#cancel-i' + page_id).querySelector('button').classList.add('hidden'); + parent_div.querySelector('#submit-i' + page_id).querySelector('input[type=submit]').classList.add('hidden'); +}*/ + +/*function deleteUrlEntry(page_id){ const selected_div = document.getElementById(page_id); console.log(selected_div.id); -} \ No newline at end of file +}*/ + -- cgit v1.2.3