mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +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 options from "../services/options.js";
 | 
			
		||||
 | 
			
		||||
const WIDGET_TPL = `
 | 
			
		||||
<div class="card widget">
 | 
			
		||||
@ -33,7 +34,15 @@ export default class CollapsibleWidget extends TabAwareWidget {
 | 
			
		||||
 | 
			
		||||
        this.$bodyWrapper = this.$widget.find('.body-wrapper');
 | 
			
		||||
        this.$bodyWrapper.attr('id', this.componentId); // for toggle to work we need id
 | 
			
		||||
 | 
			
		||||
        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');
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -107,7 +107,9 @@ async function getUserThemes() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function isAllowed(name) {
 | 
			
		||||
    return ALLOWED_OPTIONS.has(name) || name.startsWith("keyboardShortcuts");
 | 
			
		||||
    return ALLOWED_OPTIONS.has(name)
 | 
			
		||||
        || name.startsWith("keyboardShortcuts")
 | 
			
		||||
        || name.endsWith("Collapsed");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
 | 
			
		||||
@ -41,13 +41,14 @@ async function getOptionBool(name) {
 | 
			
		||||
async function setOption(name, value) {
 | 
			
		||||
    const option = await require('./repository').getOption(name);
 | 
			
		||||
 | 
			
		||||
    if (!option) {
 | 
			
		||||
        throw new Error(`Option ${name} doesn't exist`);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (option) {
 | 
			
		||||
        option.value = value;
 | 
			
		||||
 | 
			
		||||
        await option.save();
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        await createOption(name, value, false);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function createOption(name, value, isSynced) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user