mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-21 08:12:26 +02:00
N°8318 - Managing menu in itop portal new look (#710)
This commit is contained in:
@@ -245,6 +245,10 @@ class NavigationMenuElement extends HTMLElement {
|
||||
}
|
||||
|
||||
Expand(bSaveUserPreference = false) {
|
||||
// save user preference
|
||||
if (bSaveUserPreference) {
|
||||
oUserPreferences.setPreference('portal.navigation_menu.expanded', 'expanded');
|
||||
}
|
||||
// sync attribute
|
||||
if (this.getAttribute(NavigationMenuElement.DATA_EXPANDED_STATE) !== 'expanded') {
|
||||
this.setAttribute(NavigationMenuElement.DATA_EXPANDED_STATE, 'expanded');
|
||||
@@ -257,13 +261,13 @@ class NavigationMenuElement extends HTMLElement {
|
||||
// dispatch events
|
||||
window.dispatchEvent(new Event('resize')); // do layout
|
||||
this.dispatchEvent(new CustomEvent("state", {detail: 'expanded'}));
|
||||
// save user preference
|
||||
if (bSaveUserPreference) {
|
||||
SetUserPreference('portal.navigation_menu.expanded', 'expanded', true);
|
||||
}
|
||||
}
|
||||
|
||||
Collapse(bSaveUserPreference = false) {
|
||||
// save user preference
|
||||
if (bSaveUserPreference) {
|
||||
oUserPreferences.setPreference('portal.navigation_menu.expanded', 'collapsed');
|
||||
}
|
||||
// sync attribute
|
||||
if (this.getAttribute(NavigationMenuElement.DATA_EXPANDED_STATE) !== 'collapsed') {
|
||||
this.setAttribute(NavigationMenuElement.DATA_EXPANDED_STATE, 'collapsed');
|
||||
@@ -276,10 +280,6 @@ class NavigationMenuElement extends HTMLElement {
|
||||
// dispatch events
|
||||
window.dispatchEvent(new Event('resize')); // do layout
|
||||
this.dispatchEvent(new CustomEvent("state", {detail: 'collapsed'}));
|
||||
// save user preference
|
||||
if (bSaveUserPreference) {
|
||||
SetUserPreference('portal.navigation_menu.expanded', 'collapsed', true);
|
||||
}
|
||||
}
|
||||
|
||||
IsExpanded() {
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
*/
|
||||
|
||||
class UserPreferences {
|
||||
|
||||
constructor(sUrl) {
|
||||
this.sUrl = sUrl;
|
||||
}
|
||||
|
||||
setPreference(key, value) {
|
||||
|
||||
let $data = new FormData();
|
||||
$data.append("key", key);
|
||||
$data.append("value", value);
|
||||
|
||||
fetch(this.sUrl, {
|
||||
method: "POST",
|
||||
body: $data,
|
||||
}).then(
|
||||
(response) => {
|
||||
if (!response.ok) {
|
||||
throw new Error(`Network response was not ok: ${response.statusText}`);
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
).catch(
|
||||
(error) => {
|
||||
console.error('Unable to set user preference:', error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user