import server from "../../../services/server.js"; import toastService from "../../../services/toast.js"; import OptionsTab from "./options_tab.js"; const TPL = `
Settings on this options tab are saved automatically after each change.
`; export default class TextNotesOptions extends OptionsTab { get tabTitle() { return "Text notes" } lazyRender() { this.$widget = $(TPL); this.$body = this.$widget.find("body"); this.$headingStyle = this.$widget.find("#heading-style"); this.$headingStyle.on('change', () => { const newHeadingStyle = this.$headingStyle.val(); this.toggleBodyClass("heading-style-", newHeadingStyle); server.put('options/headingStyle/' + newHeadingStyle); }); this.$minTocHeadings = this.$widget.find("#min-toc-headings"); this.$minTocHeadings.on('change', () => { const minTocHeadings = this.$minTocHeadings.val(); server.put('options/minTocHeadings/' + minTocHeadings); }); this.$autoReadonlySizeText = this.$widget.find("#auto-readonly-size-text"); this.$autoReadonlySizeText.on('change', () => { const opts = { 'autoReadonlySizeText': this.$autoReadonlySizeText.val() }; server.put('options', opts).then(() => toastService.showMessage("Options change have been saved.")); return false; }); } toggleBodyClass(prefix, value) { for (const clazz of Array.from(this.$body[0].classList)) { // create copy to safely iterate over while removing classes if (clazz.startsWith(prefix)) { this.$body.removeClass(clazz); } } this.$body.addClass(prefix + value); } optionsLoaded(options) { this.$headingStyle.val(options.headingStyle); this.$minTocHeadings.val(options.minTocHeadings); this.$autoReadonlySizeText.val(options.autoReadonlySizeText); } }