pagebookmark

This commit is contained in:
afornerot 2021-03-08 15:27:33 +01:00
parent eacc7dea66
commit 4a7c8258b7
4 changed files with 68 additions and 7 deletions

View File

@ -1230,8 +1230,34 @@ class UserController extends Controller
$id=$request->request->get('id'); $id=$request->request->get('id');
$value=$request->request->get('value'); $value=$request->request->get('value');
// Récupérer les préférences de l'utilisateur
$preference=$this->getUser()->getPreference(); $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; $toupdate=false;
if(!is_array($preference)) {
$toupdate=true;
$preference=[];
}
if(!array_key_exists($key,$preference)) { if(!array_key_exists($key,$preference)) {
$toupdate=true; $toupdate=true;
$preference[$key]=[]; $preference[$key]=[];

View File

@ -312,11 +312,18 @@
if($curentuser!="anon.") { if($curentuser!="anon.") {
// Préférence // Préférence
$preference=$curentuser->getPreference(); $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 // Préférence header
if(array_key_exists("fgheader",$preference)) { if(array_key_exists("pagebookmark",$preference)) {
$fgheader=($preference["fgheader"][0]=="true"); $pagebookmark=$preference["pagebookmark"][0];
$session->set("fgheader", $fgheader); $session->set("pagebookmark", $pagebookmark);
}
} }
// Visite // Visite

View File

@ -230,7 +230,7 @@ class PageRepository extends EntityRepository
// Afficher par défaut la pagebookmarké par l'utilisateur en préférence // Afficher par défaut la pagebookmarké par l'utilisateur en préférence
if($user&&!isset($id)) { if($user&&!isset($id)) {
$preference=$user->getPreference(); $preference=$user->getPreference();
if(array_key_exists("pagebookmark",$preference)) { if(is_array($preference)&&array_key_exists("pagebookmark",$preference)) {
$id=$preference["pagebookmark"][0]; $id=$preference["pagebookmark"][0];
} }
} }

View File

@ -250,6 +250,8 @@
{% block localjavascript %} {% block localjavascript %}
var idpage; var idpage;
pagebookmark="{{app.session.get("pagebookmark")}}";
$('document').ready(function(){ $('document').ready(function(){
{% if gotoroute is empty %} {% if gotoroute is empty %}
{% for page in pagesadmin %} {% for page in pagesadmin %}
@ -462,6 +464,16 @@
} }
{% if app.user %} {% 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(); $("#menubookmark").show();
{% endif %} {% endif %}
@ -525,7 +537,11 @@
function bookmarkPage() { function bookmarkPage() {
{% if app.user %} {% if app.user %}
if($("#page-"+idpage).length) { 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({ $.ajax({
method: "POST", method: "POST",
url: "{{ path('cadoles_core_user_preference') }}", url: "{{ path('cadoles_core_user_preference') }}",
@ -533,6 +549,18 @@
id:0, id:0,
key:'pagebookmark', key:'pagebookmark',
value: idpage 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")
}
} }
}); });
} }