feature #9967 Form debugger storage (WouterJ)
This PR was squashed before being merged into the 2.5-dev branch (closes #9967).
Discussion
----------
Form debugger storage
This PR continues #9857
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #9123
| License | MIT
| Doc PR | -
Commits
-------
744da7f
Form debugger storage
This commit is contained in:
commit
fff29a398d
@ -199,7 +199,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function Toggler() {
|
function Toggler(togglerStorage) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var expand = function (button) {
|
var expand = function (button) {
|
||||||
@ -210,6 +210,8 @@
|
|||||||
throw "Toggle target " + targetId + " does not exist";
|
throw "Toggle target " + targetId + " does not exist";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
togglerStorage.store(targetId, 'visible');
|
||||||
|
|
||||||
Sfjs.removeClass(button, 'closed');
|
Sfjs.removeClass(button, 'closed');
|
||||||
Sfjs.removeClass(target, 'hidden');
|
Sfjs.removeClass(target, 'hidden');
|
||||||
},
|
},
|
||||||
@ -222,6 +224,8 @@
|
|||||||
throw "Toggle target " + targetId + " does not exist";
|
throw "Toggle target " + targetId + " does not exist";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
togglerStorage.store(targetId, 'hidden');
|
||||||
|
|
||||||
Sfjs.addClass(button, 'closed');
|
Sfjs.addClass(button, 'closed');
|
||||||
Sfjs.addClass(target, 'hidden');
|
Sfjs.addClass(target, 'hidden');
|
||||||
},
|
},
|
||||||
@ -271,6 +275,63 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function TogglerStorage(key) {
|
||||||
|
var key = 'sf_' + (key || 'toggle_data'),
|
||||||
|
store = function (id, state) {
|
||||||
|
var toggleData = sessionStorage.getItem(key);
|
||||||
|
if (!toggleData) {
|
||||||
|
toggleData = [];
|
||||||
|
} else {
|
||||||
|
toggleData = toggleData.split('|');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('visible' == state) {
|
||||||
|
toggleData.push(id);
|
||||||
|
} else {
|
||||||
|
var index = toggleData.indexOf(id);
|
||||||
|
if (-1 < index) {
|
||||||
|
toggleData.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sessionStorage.setItem(key, toggleData.join('|'));
|
||||||
|
},
|
||||||
|
|
||||||
|
initStorage = function (buttonsSelector) {
|
||||||
|
var toggleData = sessionStorage.getItem(key);
|
||||||
|
|
||||||
|
if (!toggleData) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
toggleData = toggleData.split('|');
|
||||||
|
|
||||||
|
var buttons = document.getElementsByClassName(buttonsSelector || 'toggle-button');
|
||||||
|
for (i in toggleData) {
|
||||||
|
var element = document.getElementById(toggleData[i]);
|
||||||
|
if (!element) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Sfjs.hasClass(element, 'hidden')) {
|
||||||
|
for (var i = -1; button = buttons[++i]; ) {
|
||||||
|
if (button.dataset.toggleTargetId && button.dataset.toggleTargetId == element.getAttribute('id')) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Sfjs.removeClass(element, 'hidden');
|
||||||
|
Sfjs.removeClass(button, 'closed');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
store: store,
|
||||||
|
|
||||||
|
initStorage: initStorage
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function TabView() {
|
function TabView() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
@ -335,10 +396,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var tabTarget = new TabView(),
|
var tabTarget = new TabView(),
|
||||||
toggler = new Toggler();
|
storage = new TogglerStorage(),
|
||||||
|
toggler = new Toggler(storage);
|
||||||
|
|
||||||
tabTarget.initTabs(document.querySelectorAll('.tree .tree-inner'));
|
tabTarget.initTabs(document.querySelectorAll('.tree .tree-inner'));
|
||||||
toggler.initButtons(document.querySelectorAll('a.toggle-button'));
|
toggler.initButtons(document.querySelectorAll('a.toggle-button'));
|
||||||
|
storage.initStorage();
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user