use single state and local storage

This commit is contained in:
grafixeyehero 2022-10-21 21:47:54 +03:00
parent f40c565e4a
commit 6341a71fec
15 changed files with 485 additions and 508 deletions

View file

@ -29,13 +29,24 @@ function initEditor(context, settings) {
context.querySelector('.selectImageType').value = settings.imageType || 'primary';
}
function saveValues(context, settings, settingsKey) {
const elems = context.querySelectorAll('.viewSetting-checkboxContainer');
for (const elem of elems) {
userSettings.set(settingsKey + '-' + elem.getAttribute('data-settingname'), elem.querySelector('input').checked);
}
function saveValues(context, settings, settingsKey, setviewsettings) {
if (setviewsettings) {
setviewsettings((prevState) => ({
...prevState,
StartIndex: 0,
imageType: context.querySelector('.selectImageType').value,
showTitle: context.querySelector('.chkShowTitle').checked || false,
showYear: context.querySelector('.chkShowYear').checked || false,
cardLayout: context.querySelector('.chkEnableCardLayout').checked || false
}));
} else {
const elems = context.querySelectorAll('.viewSetting-checkboxContainer');
for (const elem of elems) {
userSettings.set(settingsKey + '-' + elem.getAttribute('data-settingname'), elem.querySelector('input').checked);
}
userSettings.set(settingsKey + '-imageType', context.querySelector('.selectImageType').value);
userSettings.set(settingsKey + '-imageType', context.querySelector('.selectImageType').value);
}
}
function centerFocus(elem, horiz, on) {
@ -126,7 +137,7 @@ class ViewSettings {
}
if (submitted) {
saveValues(dlg, options.settings, options.settingsKey);
saveValues(dlg, options.settings, options.settingsKey, options.setviewsettings);
return resolve();
}

View file

@ -17,28 +17,28 @@
<div class="checkboxContainer viewSetting viewSetting-checkboxContainer hide chkTitleContainer" data-settingname="showTitle">
<label>
<input is="emby-checkbox" type="checkbox" />
<input is="emby-checkbox" type="checkbox" class="chkShowTitle" />
<span>${ShowTitle}</span>
</label>
</div>
<div class="checkboxContainer viewSetting viewSetting-checkboxContainer hide chkYearContainer" data-settingname="showYear">
<label>
<input is="emby-checkbox" type="checkbox" />
<input is="emby-checkbox" type="checkbox" class="chkShowYear" />
<span>${ShowYear}</span>
</label>
</div>
<div class="checkboxContainer viewSetting viewSetting-checkboxContainer hide" data-settingname="groupBySeries">
<label>
<input is="emby-checkbox" type="checkbox" />
<input is="emby-checkbox" type="checkbox" class="chkGroupBySeries" />
<span>${GroupBySeries}</span>
</label>
</div>
<div class="checkboxContainer viewSetting viewSetting-checkboxContainer hide chkCardLayoutContainer" data-settingname="cardLayout">
<label>
<input is="emby-checkbox" type="checkbox" />
<input is="emby-checkbox" type="checkbox" class="chkEnableCardLayout" />
<span>${EnableCardLayout}</span>
</label>
</div>