Skip to content

Commit 18cf601

Browse files
committed
Added storage
1 parent 406756d commit 18cf601

File tree

1 file changed

+63
-2
lines changed
  • src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector

1 file changed

+63
-2
lines changed

src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/form.html.twig

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@
199199
{% endif %}
200200

201201
<script>
202-
function Toggler() {
202+
function Toggler(togglerStorage) {
203203
"use strict";
204204
205205
var expand = function (button) {
@@ -210,6 +210,8 @@
210210
throw "Toggle target " + targetId + " does not exist";
211211
}
212212
213+
togglerStorage.store(targetId, 'visible');
214+
213215
Sfjs.removeClass(button, 'closed');
214216
Sfjs.removeClass(target, 'hidden');
215217
},
@@ -222,6 +224,8 @@
222224
throw "Toggle target " + targetId + " does not exist";
223225
}
224226
227+
togglerStorage.store(targetId, 'hidden');
228+
225229
Sfjs.addClass(button, 'closed');
226230
Sfjs.addClass(target, 'hidden');
227231
},
@@ -271,6 +275,61 @@
271275
};
272276
}
273277
278+
function TogglerStorage(key) {
279+
var key = key ? key : 'toggle_data',
280+
store = function (id, state) {
281+
var toggleData = sessionStorage.getItem(key);
282+
if (!toggleData) {
283+
toggleData = [];
284+
} else {
285+
toggleData = toggleData.split('|');
286+
}
287+
288+
if ('visible' == state) {
289+
toggleData.push(id);
290+
} else {
291+
var index = toggleData.indexOf(id);
292+
if (-1 < index) {
293+
toggleData.splice(index, 1);
294+
}
295+
}
296+
297+
sessionStorage.setItem(key, toggleData.join('|'));
298+
},
299+
300+
initStorage = function (buttonsSelector) {
301+
var toggleData = sessionStorage.getItem(key);
302+
303+
if (!toggleData) {
304+
return;
305+
}
306+
toggleData = toggleData.split('|');
307+
308+
var buttons = document.getElementsByClassName(buttonsSelector || 'toggle-button');
309+
for (i in toggleData) {
310+
var element = document.getElementById(toggleData[i]),
311+
id = element.getAttribute('id');
312+
313+
if (Sfjs.hasClass(element, 'hidden')) {
314+
for (var i = -1; button = buttons[++i]; ) {
315+
if (button.dataset.toggleTargetId && button.dataset.toggleTargetId == id) {
316+
break;
317+
}
318+
}
319+
320+
Sfjs.removeClass(element, 'hidden');
321+
Sfjs.removeClass(button, 'closed');
322+
}
323+
}
324+
};
325+
326+
return {
327+
store: store,
328+
329+
initStorage: initStorage
330+
};
331+
}
332+
274333
function TabView() {
275334
"use strict";
276335
@@ -335,10 +394,12 @@
335394
}
336395
337396
var tabTarget = new TabView(),
338-
toggler = new Toggler();
397+
storage = new TogglerStorage(),
398+
toggler = new Toggler(storage);
339399
340400
tabTarget.initTabs(document.querySelectorAll('.tree .tree-inner'));
341401
toggler.initButtons(document.querySelectorAll('a.toggle-button'));
402+
storage.initStorage();
342403
</script>
343404
{% endblock %}
344405

0 commit comments

Comments
 (0)