mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
collapsible widget remember their collapsed state
This commit is contained in:
parent
4e0e2e8926
commit
26599f057c
@ -1,4 +1,5 @@
|
|||||||
import TabAwareWidget from "./tab_aware_widget.js";
|
import TabAwareWidget from "./tab_aware_widget.js";
|
||||||
|
import options from "../services/options.js";
|
||||||
|
|
||||||
const WIDGET_TPL = `
|
const WIDGET_TPL = `
|
||||||
<div class="card widget">
|
<div class="card widget">
|
||||||
@ -33,7 +34,15 @@ export default class CollapsibleWidget extends TabAwareWidget {
|
|||||||
|
|
||||||
this.$bodyWrapper = this.$widget.find('.body-wrapper');
|
this.$bodyWrapper = this.$widget.find('.body-wrapper');
|
||||||
this.$bodyWrapper.attr('id', this.componentId); // for toggle to work we need id
|
this.$bodyWrapper.attr('id', this.componentId); // for toggle to work we need id
|
||||||
this.$bodyWrapper.collapse("show");
|
|
||||||
|
const widgetName = this.constructor.name;
|
||||||
|
|
||||||
|
if (!options.is(widgetName + 'Collapsed')) {
|
||||||
|
this.$bodyWrapper.collapse("show");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$bodyWrapper.on('hidden.bs.collapse', () => options.save(widgetName + 'Collapsed', 'true'));
|
||||||
|
this.$bodyWrapper.on('shown.bs.collapse', () => options.save(widgetName + 'Collapsed', 'false'));
|
||||||
|
|
||||||
this.$body = this.$bodyWrapper.find('.card-body');
|
this.$body = this.$bodyWrapper.find('.card-body');
|
||||||
|
|
||||||
|
@ -107,7 +107,9 @@ async function getUserThemes() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isAllowed(name) {
|
function isAllowed(name) {
|
||||||
return ALLOWED_OPTIONS.has(name) || name.startsWith("keyboardShortcuts");
|
return ALLOWED_OPTIONS.has(name)
|
||||||
|
|| name.startsWith("keyboardShortcuts")
|
||||||
|
|| name.endsWith("Collapsed");
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -41,13 +41,14 @@ async function getOptionBool(name) {
|
|||||||
async function setOption(name, value) {
|
async function setOption(name, value) {
|
||||||
const option = await require('./repository').getOption(name);
|
const option = await require('./repository').getOption(name);
|
||||||
|
|
||||||
if (!option) {
|
if (option) {
|
||||||
throw new Error(`Option ${name} doesn't exist`);
|
option.value = value;
|
||||||
|
|
||||||
|
await option.save();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
await createOption(name, value, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
option.value = value;
|
|
||||||
|
|
||||||
await option.save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function createOption(name, value, isSynced) {
|
async function createOption(name, value, isSynced) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user