From 4a7c8258b7f181a7753160a6331bd9ff5de6fc5b Mon Sep 17 00:00:00 2001 From: afornerot Date: Mon, 8 Mar 2021 15:27:33 +0100 Subject: [PATCH] pagebookmark --- .../CoreBundle/Controller/UserController.php | 26 +++++++++++++++ .../EventListener/sessionListener.php | 15 ++++++--- .../Repository/PageRepository.php | 2 +- .../Resources/views/Page/pages.html.twig | 32 +++++++++++++++++-- 4 files changed, 68 insertions(+), 7 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php index b811677b..8534c92e 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/UserController.php @@ -1230,8 +1230,34 @@ class UserController extends Controller $id=$request->request->get('id'); $value=$request->request->get('value'); + // Récupérer les préférences de l'utilisateur $preference=$this->getUser()->getPreference(); + + // Cas particulier de page bookmark, on vide la préférence si on reset la meme valeur + if($key=="pagebookmark") { + if(is_array($preference)&&array_key_exists("pagebookmark",$preference)) { + $oldid=$preference["pagebookmark"][0]; + echo "OLDID = $oldid"; + echo "ID = $value"; + if($oldid==$value) { + unset($preference["pagebookmark"]); + $em = $this->getDoctrine()->getManager(); + $this->getUser()->setPreference($preference); + $this->get('session')->set("pagebookmark", ""); + $em->persist($this->getUser()); + $em->flush(); + return new Response(); + } + } + } + + // Mise à jour de la préférence $toupdate=false; + if(!is_array($preference)) { + $toupdate=true; + $preference=[]; + } + if(!array_key_exists($key,$preference)) { $toupdate=true; $preference[$key]=[]; diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/sessionListener.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/sessionListener.php index 295bd91e..beef91fd 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/sessionListener.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/sessionListener.php @@ -312,11 +312,18 @@ if($curentuser!="anon.") { // Préférence $preference=$curentuser->getPreference(); + if(is_array($preference)) { + // Préférence header + if(array_key_exists("fgheader",$preference)) { + $fgheader=($preference["fgheader"][0]=="true"); + $session->set("fgheader", $fgheader); + } - // Préférence header - if(array_key_exists("fgheader",$preference)) { - $fgheader=($preference["fgheader"][0]=="true"); - $session->set("fgheader", $fgheader); + // Préférence header + if(array_key_exists("pagebookmark",$preference)) { + $pagebookmark=$preference["pagebookmark"][0]; + $session->set("pagebookmark", $pagebookmark); + } } // Visite diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php index 56263a80..104acf2c 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/PageRepository.php @@ -230,7 +230,7 @@ class PageRepository extends EntityRepository // Afficher par défaut la pagebookmarké par l'utilisateur en préférence if($user&&!isset($id)) { $preference=$user->getPreference(); - if(array_key_exists("pagebookmark",$preference)) { + if(is_array($preference)&&array_key_exists("pagebookmark",$preference)) { $id=$preference["pagebookmark"][0]; } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Page/pages.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Page/pages.html.twig index 8affb318..0563616d 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Page/pages.html.twig +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Page/pages.html.twig @@ -250,6 +250,8 @@ {% block localjavascript %} var idpage; + pagebookmark="{{app.session.get("pagebookmark")}}"; + $('document').ready(function(){ {% if gotoroute is empty %} {% for page in pagesadmin %} @@ -462,6 +464,16 @@ } {% if app.user %} + + if(id==pagebookmark) { + $("#menubookmark").css("color","red"); + $("#menubookmark").attr("title","Ne plus faire de cette page votre page d'accueil") + } + else { + $("#menubookmark").css("color",""); + $("#menubookmark").attr("title","Faire de cette page votre page d'accueil") + } + $("#menubookmark").show(); {% endif %} @@ -525,7 +537,11 @@ function bookmarkPage() { {% if app.user %} if($("#page-"+idpage).length) { - if (confirm("Êtes-vous sûr de vouloir placer cette page comme page d'accueil du portail ?")) { + if(pagebookmark==idpage) + confirmtext="Êtes-vous sûr de vouloir enlever cette page comme page d'accueil du portail ?"; + else + confirmtext="Êtes-vous sûr de vouloir placer cette page comme page d'accueil du portail ?"; + if (confirm(confirmtext)) { $.ajax({ method: "POST", url: "{{ path('cadoles_core_user_preference') }}", @@ -533,7 +549,19 @@ id:0, key:'pagebookmark', value: idpage - } + }, + success: function() { + if(pagebookmark==idpage) { + pagebookmark=""; + $("#menubookmark").css("color",""); + $("#menubookmark").attr("title","Faire de cette page votre page d'accueil") + } + else { + pagebookmark=idpage; + $("#menubookmark").css("color","red"); + $("#menubookmark").attr("title","Ne plus faire de cette page votre page d'accueil") + } + } }); } }