From eb3e1eb8c8365d3b3d1d39f24314ba420255afc2 Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 21 Apr 2025 20:36:10 +0200 Subject: page menu et chemin, partie1 --- public/assets/arrow-down.svg | 11 ++-- public/assets/arrow-left-nb.svg | 36 ++++++++++++++ public/assets/arrow-left.svg | 37 ++++++++++++++ public/assets/arrow-right-nb.svg | 36 ++++++++++++++ public/assets/arrow-right.svg | 37 ++++++++++++++ public/assets/arrow-up.svg | 15 +++--- public/assets/book-open.svg | 9 ++-- public/assets/calendar.svg | 13 ++--- public/assets/delete-bin.svg | 11 ++-- public/assets/edit.svg | 11 ++-- public/assets/share.svg | 11 ++-- public/css/foot.css | 22 ++++++++ public/css/head.css | 2 +- public/css/menu.css | 72 +++++++++++++++++++++++++++ public/js/main.js | 105 ++++++++++++++++++++++++++++++++++++++- src/controller/Director.php | 2 +- src/controller/ajax.php | 44 +++++++++++++++- src/controller/installation.php | 10 +++- src/controller/password.php | 2 +- src/model/Position.php | 63 +++++++++++++++++++++++ src/model/entities/Node.php | 33 ++---------- src/model/entities/Page.php | 38 +++++++------- src/view/FooterBuilder.php | 2 +- src/view/HeaderBuilder.php | 2 + src/view/MenuBuilder.php | 88 ++++++++++++++++++++++++++++++++ src/view/NavBuilder.php | 9 +++- src/view/templates/header.php | 2 +- src/view/templates/menu.php | 15 ++++++ 28 files changed, 629 insertions(+), 109 deletions(-) create mode 100644 public/assets/arrow-left-nb.svg create mode 100644 public/assets/arrow-left.svg create mode 100644 public/assets/arrow-right-nb.svg create mode 100644 public/assets/arrow-right.svg create mode 100644 public/css/menu.css create mode 100644 src/model/Position.php create mode 100644 src/view/MenuBuilder.php create mode 100644 src/view/templates/menu.php diff --git a/public/assets/arrow-down.svg b/public/assets/arrow-down.svg index bd7d579..6e5be60 100644 --- a/public/assets/arrow-down.svg +++ b/public/assets/arrow-down.svg @@ -5,7 +5,7 @@ version="1.1" id="svg1" sodipodi:docname="arrow-down.svg" - inkscape:version="1.4 (e7c3feb100, 2024-10-09)" + inkscape:version="1.4.1 (93de688d07, 2025-03-30)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -22,17 +22,14 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:zoom="14.75" - inkscape:cx="12" + inkscape:cx="12.033898" inkscape:cy="12.033898" - inkscape:window-width="1261" + inkscape:window-width="956" inkscape:window-height="1032" - inkscape:window-x="655" + inkscape:window-x="960" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg1" /> - + + + + + diff --git a/public/assets/arrow-left.svg b/public/assets/arrow-left.svg new file mode 100644 index 0000000..191aaf3 --- /dev/null +++ b/public/assets/arrow-left.svg @@ -0,0 +1,37 @@ + + + + + + diff --git a/public/assets/arrow-right-nb.svg b/public/assets/arrow-right-nb.svg new file mode 100644 index 0000000..0b76c4e --- /dev/null +++ b/public/assets/arrow-right-nb.svg @@ -0,0 +1,36 @@ + + + + + + diff --git a/public/assets/arrow-right.svg b/public/assets/arrow-right.svg new file mode 100644 index 0000000..976bfa4 --- /dev/null +++ b/public/assets/arrow-right.svg @@ -0,0 +1,37 @@ + + + + + + diff --git a/public/assets/arrow-up.svg b/public/assets/arrow-up.svg index c88794d..bbacb0d 100644 --- a/public/assets/arrow-up.svg +++ b/public/assets/arrow-up.svg @@ -5,7 +5,7 @@ version="1.1" id="svg1" sodipodi:docname="arrow-up.svg" - inkscape:version="1.4 (e7c3feb100, 2024-10-09)" + inkscape:version="1.4.1 (93de688d07, 2025-03-30)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -21,18 +21,15 @@ inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" - inkscape:zoom="7.7781746" - inkscape:cx="19.734707" - inkscape:cy="19.220448" - inkscape:window-width="956" + inkscape:zoom="31.112698" + inkscape:cx="15.443855" + inkscape:cy="9.9155655" + inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="960" + inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg1" /> - - - - - - div background-color: #ffff00; border-radius: 4px; } + +.toast { + visibility: hidden; + /*max-width: 50%;*/ + margin: auto; + background-color: #333; + color: #fff; + text-align: center; + border-radius: 5px; + padding: 16px; + position: fixed; + z-index: 1; + left: 50%; + bottom: 30px; + transform: translateX(-50%); + /*opacity: 0;*/ + transition: opacity 0.5s, visibility 0.5s; +} +.toast.show { + visibility: visible; + opacity: 1; +} \ No newline at end of file diff --git a/public/css/head.css b/public/css/head.css index a718a45..4872275 100644 --- a/public/css/head.css +++ b/public/css/head.css @@ -6,7 +6,7 @@ header background-image: url('../assets/fond-piscine.jpg'); background-size: cover; /* largeur du bloc_page */ } -.empty_nav_zone +#nav_zone { /*margin: auto;*/ /*max-width: 1200px;*/ diff --git a/public/css/menu.css b/public/css/menu.css new file mode 100644 index 0000000..cce1d43 --- /dev/null +++ b/public/css/menu.css @@ -0,0 +1,72 @@ +/* page "Menu et chemins" uniquement */ + +.menu +{ + padding: 0 20px; +} +.menu img +{ + width: 20px; + vertical-align: middle; +} + +/* explications pour l'utiisateur */ +.menu aside +{ + display: flex; + flex-wrap: wrap; + background-color: white; + padding: 10px; +} +.menu aside p +{ + margin: 5px; + font-size: smaller; +} +.menu aside input +{ + pointer-events: none; /* case non clicable, sauf action au clavier... */ +} + +.menu button +{ + margin: 5px; +} +input +{ + vertical-align: middle; +} +.menu_entry_checkbox +{ + margin-left: 2px; +} +.move_entry_icon +{ + width: 20px; + vertical-align: middle; + border: 2px #e3f3ff solid; +} +.move_entry_icon:hover +{ + background-color: #ffff00; + border-radius: 4px; + border: lightgrey 2px outset; + cursor: pointer; +} + +.menu .new_entry_buttons +{ + background-color: white; + padding: 10px; +} +.menu .new_entry_buttons p +{ + margin: 5px; +} + +@media screen and (min-width: 80rem) { + i + { + /*display: none;*/ + } +} \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index cb76ea8..fadcfa9 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -29,10 +29,17 @@ function copyInClipBoard(link){ alert('Cette adresse a été copiée dans le presse-papier:\n\n' + link); } +function toastNotify(message) { + var toast = document.getElementById('toast'); + toast.textContent = message; + toast.className = 'toast show'; + setTimeout(function(){ toast.className = toast.className.replace('show', ''); }, 3000); +} + // complète les fonctions dans tinymce.js function switchPositions(article_id, direction) { - const current_article = findParent(document.getElementById(article_id), 'article'); + const current_article = findParent(document.getElementById(article_id), 'article'); // l'id n'est pas sur la bonne balise var other_article; if(direction == 'down'){ @@ -195,4 +202,100 @@ function findParent(element, tag_name){ element = element.parentElement; } return null; +} + +/* page Menu et chemins */ +function moveOneLevelUp(){} +function moveOneLevelDown(){} + +function switchMenuPositions(page_id, direction) +{ + const nav_zone = document.getElementById("nav_zone"); // parent de