Compare commits

...

4 Commits

Author SHA1 Message Date
Jürgen Mummert dbce287834 Add contao/calendar-bundle dependency 2026-03-02 21:34:29 +01:00
Jürgen Mummert 78c44d8de6 fix: default event list to grid on first load 2026-03-02 17:28:21 +01:00
Jürgen Mummert d0916e7b39 Use class-only grid activation in event filter 2026-03-01 21:57:31 +01:00
Jürgen Mummert a55df0be90 Force default grid layout in event filter initialization 2026-03-01 21:51:35 +01:00
2 changed files with 49 additions and 1 deletions
+1
View File
@@ -11,6 +11,7 @@
"require": { "require": {
"php": "^8.3", "php": "^8.3",
"contao/core-bundle": "^5.7", "contao/core-bundle": "^5.7",
"contao/calendar-bundle": "^5.7",
"contao/manager-plugin": "^2.0", "contao/manager-plugin": "^2.0",
"numero2/contao-tags": "^0.5" "numero2/contao-tags": "^0.5"
}, },
@@ -46,12 +46,59 @@
const targetEventListId = filters.dataset.eventlistId || 'eventlist'; const targetEventListId = filters.dataset.eventlistId || 'eventlist';
const list = document.getElementById(targetEventListId); const list = document.getElementById(targetEventListId);
const initialStoredEventListView = (() => {
try {
return (window.localStorage.getItem('eventlist_view') || '').trim();
} catch (error) {
return '';
}
})();
const applyDefaultGrid = (targetList) => {
if (!targetList) {
return;
}
targetList.classList.add('event-filter-target-list');
targetList.classList.add('grid');
};
if (!list) { if (!list) {
console.warn(`[event_filter] Target event list #${targetEventListId} was not found.`); console.warn(`[event_filter] Target event list #${targetEventListId} was not found.`);
window.addEventListener('DOMContentLoaded', () => {
applyDefaultGrid(document.getElementById(targetEventListId));
}, { once: true });
} }
list?.classList.add('event-filter-target-list'); applyDefaultGrid(list);
window.addEventListener('DOMContentLoaded', () => {
window.setTimeout(() => {
if ('' !== initialStoredEventListView) {
return;
}
const targetList = document.getElementById(targetEventListId);
if (!targetList) {
return;
}
targetList.classList.remove('list');
applyDefaultGrid(targetList);
const toggleToList = document.getElementById('toggletolist');
const toggleToGrid = document.getElementById('toggletogrid');
toggleToList?.classList.remove('disabled');
toggleToGrid?.classList.add('disabled');
try {
window.localStorage.setItem('eventlist_view', 'grid');
} catch (error) {
}
}, 0);
}, { once: true });
const events = list ? Array.from(list.querySelectorAll(':scope > .event')) : []; const events = list ? Array.from(list.querySelectorAll(':scope > .event')) : [];
const tagSelect = filters.querySelector('#tag-filter'); const tagSelect = filters.querySelector('#tag-filter');