mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Palette: Remember category open/close state across reloads.
This commit is contained in:
parent
30ea300f65
commit
fc5a0ceaf5
@ -65,12 +65,14 @@ RED.palette = (function() {
|
|||||||
catDiv.addClass("red-ui-palette-closed");
|
catDiv.addClass("red-ui-palette-closed");
|
||||||
$("#red-ui-palette-base-category-"+category).slideUp();
|
$("#red-ui-palette-base-category-"+category).slideUp();
|
||||||
$("#red-ui-palette-header-"+category+" i").removeClass("expanded");
|
$("#red-ui-palette-header-"+category+" i").removeClass("expanded");
|
||||||
|
rememberCategoryState(category, false)
|
||||||
},
|
},
|
||||||
open: function() {
|
open: function() {
|
||||||
catDiv.addClass("red-ui-palette-open");
|
catDiv.addClass("red-ui-palette-open");
|
||||||
catDiv.removeClass("red-ui-palette-closed");
|
catDiv.removeClass("red-ui-palette-closed");
|
||||||
$("#red-ui-palette-base-category-"+category).slideDown();
|
$("#red-ui-palette-base-category-"+category).slideDown();
|
||||||
$("#red-ui-palette-header-"+category+" i").addClass("expanded");
|
$("#red-ui-palette-header-"+category+" i").addClass("expanded");
|
||||||
|
rememberCategoryState(category, true)
|
||||||
},
|
},
|
||||||
toggle: function() {
|
toggle: function() {
|
||||||
if (catDiv.hasClass("red-ui-palette-open")) {
|
if (catDiv.hasClass("red-ui-palette-open")) {
|
||||||
@ -85,6 +87,22 @@ RED.palette = (function() {
|
|||||||
categoryContainers[category].toggle();
|
categoryContainers[category].toggle();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
function rememberCategoryState(cat, open) {
|
||||||
|
const stateStr = localStorage.getItem('closedCategories');
|
||||||
|
if (!stateStr && open) return;
|
||||||
|
const state = stateStr ? JSON.parse(stateStr) : [];
|
||||||
|
const idx = state.indexOf(cat);
|
||||||
|
if (open && idx >= 0)
|
||||||
|
state.splice(idx, 1);
|
||||||
|
else if (!open && idx < 0)
|
||||||
|
state.push(cat);
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
if (state.length <= 0)
|
||||||
|
localStorage.removeItem('closedCategories');
|
||||||
|
else
|
||||||
|
localStorage.setItem('closedCategories', JSON.stringify(state));
|
||||||
|
}
|
||||||
|
|
||||||
function setLabel(type, el,label, info) {
|
function setLabel(type, el,label, info) {
|
||||||
var nodeWidth = 82;
|
var nodeWidth = 82;
|
||||||
@ -407,7 +425,12 @@ RED.palette = (function() {
|
|||||||
|
|
||||||
var categoryNode = $("#red-ui-palette-container-"+rootCategory);
|
var categoryNode = $("#red-ui-palette-container-"+rootCategory);
|
||||||
if (categoryNode.find(".red-ui-palette-node").length === 1) {
|
if (categoryNode.find(".red-ui-palette-node").length === 1) {
|
||||||
categoryContainers[rootCategory].open();
|
const closedCategoriesStr = localStorage.getItem('closedCategories');
|
||||||
|
const closedCategories = closedCategoriesStr ? JSON.parse(closedCategoriesStr) : [];
|
||||||
|
if (closedCategories.indexOf(rootCategory) < 0)
|
||||||
|
categoryContainers[rootCategory].open();
|
||||||
|
else
|
||||||
|
categoryContainers[rootCategory].close();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -652,7 +675,7 @@ RED.palette = (function() {
|
|||||||
});
|
});
|
||||||
RED.popover.tooltip(paletteExpandAll,RED._('palette.actions.expand-all'));
|
RED.popover.tooltip(paletteExpandAll,RED._('palette.actions.expand-all'));
|
||||||
|
|
||||||
RED.actions.add("core:toggle-palette", function(state) {
|
RED.actions.add("core:toggle-palette", function(state) {
|
||||||
if (state === undefined) {
|
if (state === undefined) {
|
||||||
RED.menu.toggleSelected("menu-item-palette");
|
RED.menu.toggleSelected("menu-item-palette");
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user