|
1 | 1 | (function () { |
2 | 2 | 'use strict'; |
3 | 3 |
|
4 | | - var APP_VERSION = '0.2.0'; |
| 4 | + var APP_VERSION = '0.3.0'; |
5 | 5 | var DEMO_MODE = new URLSearchParams(location.search).get('demo') === '1' || location.pathname.replace(/\/+$/, '').endsWith('/demo'); |
6 | 6 | var STORAGE = DEMO_MODE ? 'ote-reader-demo-state-v1' : 'ote-reader-state-v1'; |
7 | 7 | var INSTALL_DISMISSED = 'ote-reader-install-dismissed-v1'; |
|
28 | 28 | filters: { q: '', mode: '', language: '', country: '', cfp: false, future: true }, |
29 | 29 | savedFilters: [], |
30 | 30 | savedEvents: [], |
31 | | - view: 'cards' |
| 31 | + view: 'cards', |
| 32 | + groupSeries: true |
32 | 33 | }; |
33 | 34 | var feedCache = new Map(); |
34 | 35 | var adopterCache = null; |
|
395 | 396 | button.classList.toggle('is-active', button.dataset.view === state.view); |
396 | 397 | button.setAttribute('aria-pressed', String(button.dataset.view === state.view)); |
397 | 398 | }); |
| 399 | + $('group-series-wrap').hidden = state.view !== 'cards'; |
| 400 | + $('group-series').checked = state.groupSeries; |
398 | 401 | } |
399 | 402 |
|
400 | 403 | function renderLibrary() { |
|
1114 | 1117 | return; |
1115 | 1118 | } |
1116 | 1119 | widget.setAttribute('layout', state.view === 'feed' ? 'list' : state.view); |
| 1120 | + if (state.view === 'cards' && state.groupSeries) { |
| 1121 | + widget.setAttribute('group-events', 'series,multipart'); |
| 1122 | + } else { |
| 1123 | + widget.removeAttribute('group-events'); |
| 1124 | + } |
1117 | 1125 | widget.setAttribute('theme', document.documentElement.dataset.theme || 'light'); |
1118 | 1126 | widget.setAttribute('fields', 'image,when,location,attendance,description,price,tags,organizer'); |
1119 | 1127 | widget.setAttribute('show-past', 'true'); |
|
1603 | 1611 | render(); |
1604 | 1612 | }); |
1605 | 1613 | }); |
| 1614 | + $('group-series').addEventListener('change', function () { |
| 1615 | + state.groupSeries = this.checked; |
| 1616 | + persist(); |
| 1617 | + render(); |
| 1618 | + }); |
1606 | 1619 | $('refresh').addEventListener('click', function () { |
1607 | 1620 | state.feeds.forEach(loadFeed); |
1608 | 1621 | }); |
|
0 commit comments