diff options
author | polo <ordipolo@gmx.fr> | 2025-09-10 01:02:36 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2025-09-10 01:02:36 +0200 |
commit | efd79d15adef2a27347c25ebb19754e9937f9715 (patch) | |
tree | 6114ec988ef4dfd7cdf2e2ca07cc9762f8fec4c3 /public/js/menu.js | |
parent | 5e41bea598ff38b3c520b69fd92ee3412e716df2 (diff) | |
download | cms-efd79d15adef2a27347c25ebb19754e9937f9715.zip |
modification d'une URL page Menu et chemin, htmlspecialchars sur les URL du menu à l'affichage
Diffstat (limited to 'public/js/menu.js')
-rw-r--r-- | public/js/menu.js | 94 |
1 files changed, 84 insertions, 10 deletions
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){ | |||
122 | const checkbox = clicked_menu_entry.querySelector("input"); | 122 | const checkbox = clicked_menu_entry.querySelector("input"); |
123 | let color; | 123 | let color; |
124 | 124 | ||
125 | fetch('index.php?menu_edit=displayInMenu', { | 125 | fetch('index.php?menu_edit=display_in_menu', { |
126 | method: 'POST', | 126 | method: 'POST', |
127 | headers: { | 127 | headers: { |
128 | 'Content-Type': 'application/json' | 128 | 'Content-Type': 'application/json' |
@@ -131,16 +131,14 @@ function checkMenuEntry(page_id){ | |||
131 | }) | 131 | }) |
132 | .then(response => response.json()) | 132 | .then(response => response.json()) |
133 | .then(data => { | 133 | .then(data => { |
134 | if(data.success) | 134 | if(data.success){ |
135 | { | ||
136 | color = checkbox.checked ? "#ff1d04" : "grey"; | 135 | color = checkbox.checked ? "#ff1d04" : "grey"; |
137 | clicked_menu_entry.querySelector("button").style.color = color; | 136 | clicked_menu_entry.querySelector("button").style.color = color; |
138 | 137 | ||
139 | nav_zone.innerHTML = ''; | 138 | nav_zone.innerHTML = ''; |
140 | nav_zone.insertAdjacentHTML('afterbegin', data.nav); | 139 | nav_zone.insertAdjacentHTML('afterbegin', data.nav); |
141 | } | 140 | } |
142 | else { | 141 | else{ |
143 | |||
144 | console.error('Échec de l\'inversion'); | 142 | console.error('Échec de l\'inversion'); |
145 | } | 143 | } |
146 | }) | 144 | }) |
@@ -149,13 +147,89 @@ function checkMenuEntry(page_id){ | |||
149 | }); | 147 | }); |
150 | } | 148 | } |
151 | 149 | ||
152 | 150 | // seul la modification des URL est possible pour l'instant, les noms des entrées de menu attendront | |
153 | function editUrlEntry(page_id){ | 151 | function editUrlEntry(page_id){ |
154 | const selected_div = document.getElementById(page_id); | 152 | const parent_div = document.getElementById(page_id); |
155 | console.log(selected_div.id); | 153 | const url_input = parent_div.querySelector('.url').querySelector('input').value; |
154 | |||
155 | fetch('index.php?menu_edit=edit_url_entry', { | ||
156 | method: 'POST', | ||
157 | headers: { | ||
158 | 'Content-Type': 'application/json' | ||
159 | }, | ||
160 | body: JSON.stringify({ id: page_id, url_input: url_input }) | ||
161 | }) | ||
162 | .then(response => response.json()) | ||
163 | .then(data => { | ||
164 | if(data.success){ | ||
165 | findParentByTagName(document.getElementById('m_' + page_id), 'a').href = data.url_input; // MAJ menu | ||
166 | toastNotify("Nouvelle adresse enregistrée avec succès") | ||
167 | } | ||
168 | else{ | ||
169 | toastNotify("Erreur rencontrée par le serveur, changements non pris en compte"); | ||
170 | console.error("Erreur rencontrée par le serveur, changements non pris en compte"); | ||
171 | } | ||
172 | }) | ||
173 | .catch(error => { | ||
174 | console.error('Erreur:', error); | ||
175 | }); | ||
156 | } | 176 | } |
157 | 177 | ||
158 | function deleteUrlEntry(page_id){ | 178 | |
179 | |||
180 | // code à recycler pour pouvoir modifier le nom de l'entrée de menu correspondant aux liens | ||
181 | /*function editUrlEntry(page_id){ | ||
182 | const parent_div = document.getElementById(page_id); | ||
183 | parent_div.querySelector('i').classList.add('hidden'); | ||
184 | parent_div.querySelector('.url').querySelector('input').classList.remove('hidden'); | ||
185 | parent_div.querySelector('#edit-i' + page_id).classList.add('hidden'); | ||
186 | parent_div.querySelector('#delete-i' + page_id).querySelector('input[type=image]').classList.add('hidden'); | ||
187 | parent_div.querySelector('#cancel-i' + page_id).querySelector('button').classList.remove('hidden'); | ||
188 | parent_div.querySelector('#submit-i' + page_id).querySelector('input[type=submit]').classList.remove('hidden'); | ||
189 | } | ||
190 | function cancelUrlEntry(page_id){ | ||
191 | const parent_div = document.getElementById(page_id); | ||
192 | parent_div.querySelector('.url').querySelector('input').value = parent_div.querySelector('i').textContent; // textContent (contrairement à innerHTML) ne transforme pas les & en entités HTML | ||
193 | closeUrlEntry(page_id, parent_div); | ||
194 | } | ||
195 | function submitUrlEntry(page_id){ | ||
196 | const parent_div = document.getElementById(page_id); | ||
197 | const url_input = parent_div.querySelector('.url').querySelector('input').value; | ||
198 | |||
199 | fetch('index.php?menu_edit=edit_url_entry', { | ||
200 | method: 'POST', | ||
201 | headers: { | ||
202 | 'Content-Type': 'application/json' | ||
203 | }, | ||
204 | body: JSON.stringify({ id: page_id, url_input: url_input }) | ||
205 | }) | ||
206 | .then(response => response.json()) | ||
207 | .then(data => { | ||
208 | if(data.success){ | ||
209 | parent_div.querySelector('i').innerHTML = data.url_input; // MAJ <i> | ||
210 | findParentByTagName(document.getElementById('m_' + page_id), 'a').href = data.url_input; // MAJ menu | ||
211 | closeUrlEntry(page_id, parent_div); | ||
212 | } | ||
213 | else{ | ||
214 | toastNotify("Erreur rencontrée par le serveur, changements non pris en compte"); | ||
215 | console.error("Erreur rencontrée par le serveur, changements non pris en compte"); | ||
216 | } | ||
217 | }) | ||
218 | .catch(error => { | ||
219 | console.error('Erreur:', error); | ||
220 | }); | ||
221 | } | ||
222 | function closeUrlEntry(page_id, parent_div){ | ||
223 | parent_div.querySelector('i').classList.remove('hidden'); | ||
224 | parent_div.querySelector('.url').querySelector('input').classList.add('hidden'); | ||
225 | parent_div.querySelector('#edit-i' + page_id).classList.remove('hidden'); | ||
226 | parent_div.querySelector('#delete-i' + page_id).querySelector('input[type=image]').classList.remove('hidden'); | ||
227 | parent_div.querySelector('#cancel-i' + page_id).querySelector('button').classList.add('hidden'); | ||
228 | parent_div.querySelector('#submit-i' + page_id).querySelector('input[type=submit]').classList.add('hidden'); | ||
229 | }*/ | ||
230 | |||
231 | /*function deleteUrlEntry(page_id){ | ||
159 | const selected_div = document.getElementById(page_id); | 232 | const selected_div = document.getElementById(page_id); |
160 | console.log(selected_div.id); | 233 | console.log(selected_div.id); |
161 | } \ No newline at end of file | 234 | }*/ |
235 | |||