// TODO: This file was created by bulk-decaffeinate. // Sanity-check the conversion and remove this comment. /* * decaffeinate suggestions: * DS002: Fix invalid constructor * DS101: Remove unnecessary use of Array.from * DS102: Remove unnecessary code created because of implicit returns * DS205: Consider reworking code to avoid use of IIFEs * DS206: Consider reworking classes to avoid initClass * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md */ (function() { let SIDEBAR_HIDDEN_LAYOUT = undefined; const Cls = (app.views.Settings = class Settings extends app.View { constructor(...args) { this.onChange = this.onChange.bind(this); this.onEnter = this.onEnter.bind(this); this.onSubmit = this.onSubmit.bind(this); this.onImport = this.onImport.bind(this); this.onClick = this.onClick.bind(this); super(...args); } static initClass() { SIDEBAR_HIDDEN_LAYOUT = '_sidebar-hidden'; this.el = '._settings'; this.elements = { sidebar: '._sidebar', saveBtn: 'button[type="submit"]', backBtn: 'button[data-back]' }; this.events = { import: 'onImport', change: 'onChange', submit: 'onSubmit', click: 'onClick' }; this.shortcuts = {enter: 'onEnter'}; } init() { this.addSubview(this.docPicker = new app.views.DocPicker); } activate() { if (super.activate(...arguments)) { this.render(); document.body.classList.remove(SIDEBAR_HIDDEN_LAYOUT); } } deactivate() { if (super.deactivate(...arguments)) { this.resetClass(); this.docPicker.detach(); if (app.settings.hasLayout(SIDEBAR_HIDDEN_LAYOUT)) { document.body.classList.add(SIDEBAR_HIDDEN_LAYOUT); } } } render() { this.docPicker.appendTo(this.sidebar); this.refreshElements(); this.addClass('_in'); } save(options) { if (options == null) { options = {}; } if (!this.saving) { let docs; this.saving = true; if (options.import) { docs = app.settings.getDocs(); } else { docs = this.docPicker.getSelectedDocs(); app.settings.setDocs(docs); } this.saveBtn.textContent = 'Saving\u2026'; const disabledDocs = new app.collections.Docs((() => { const result = []; for (var doc of Array.from(app.docs.all())) { if (docs.indexOf(doc.slug) === -1) { result.push(doc); } } return result; })()); disabledDocs.uninstall(function() { app.db.migrate(); return app.reload(); }); } } onChange() { this.addClass('_dirty'); } onEnter() { this.save(); } onSubmit(event) { event.preventDefault(); this.save(); } onImport() { this.addClass('_dirty'); this.save({import: true}); } onClick(event) { if (event.which !== 1) { return; } if (event.target === this.backBtn) { $.stopEvent(event); app.router.show('/'); } } }); Cls.initClass(); return Cls; })();