| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- // 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;
- })();
|