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 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