123456789101112131415161718192021222324252627282930 |
- /**
- * Persist changelist filters state (collapsed/expanded).
- */
- 'use strict';
- {
- // Init filters.
- let filters = JSON.parse(sessionStorage.getItem('django.admin.filtersState'));
- if (!filters) {
- filters = {};
- }
- Object.entries(filters).forEach(([key, value]) => {
- const detailElement = document.querySelector(`[data-filter-title='${CSS.escape(key)}']`);
- // Check if the filter is present, it could be from other view.
- if (detailElement) {
- value ? detailElement.setAttribute('open', '') : detailElement.removeAttribute('open');
- }
- });
- // Save filter state when clicks.
- const details = document.querySelectorAll('details');
- details.forEach(detail => {
- detail.addEventListener('toggle', event => {
- filters[`${event.target.dataset.filterTitle}`] = detail.open;
- sessionStorage.setItem('django.admin.filtersState', JSON.stringify(filters));
- });
- });
- }
|