app.views.Settings = class Settings extends app.View { static SIDEBAR_HIDDEN_LAYOUT = "_sidebar-hidden"; static el = "._settings"; static elements = { sidebar: "._sidebar", saveBtn: 'button[type="submit"]', backBtn: "button[data-back]", }; static events = { import: "onImport", change: "onChange", submit: "onSubmit", click: "onClick", }; static shortcuts = { enter: "onEnter" }; init() { this.addSubview((this.docPicker = new app.views.DocPicker())); } activate() { if (super.activate(...arguments)) { this.render(); document.body.classList.remove(Settings.SIDEBAR_HIDDEN_LAYOUT); } } deactivate() { if (super.deactivate(...arguments)) { this.resetClass(); this.docPicker.detach(); if (app.settings.hasLayout(Settings.SIDEBAR_HIDDEN_LAYOUT)) { document.body.classList.add(Settings.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 app.docs.all()) { if (!docs.includes(doc.slug)) { result.push(doc); } } return result; })(), ); disabledDocs.uninstall(() => { 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("/"); } }};
app.views.Settings = class Settings extends app.View {
static SIDEBAR_HIDDEN_LAYOUT = "_sidebar-hidden";
static el = "._settings";
static elements = {
sidebar: "._sidebar",
saveBtn: 'button[type="submit"]',
backBtn: "button[data-back]",
};
static events = {
import: "onImport",
change: "onChange",
submit: "onSubmit",
click: "onClick",
};
static shortcuts = { enter: "onEnter" };
init() {
this.addSubview((this.docPicker = new app.views.DocPicker()));
}
activate() {
if (super.activate(...arguments)) {
this.render();
document.body.classList.remove(Settings.SIDEBAR_HIDDEN_LAYOUT);
}
}
deactivate() {
if (super.deactivate(...arguments)) {
this.resetClass();
this.docPicker.detach();
if (app.settings.hasLayout(Settings.SIDEBAR_HIDDEN_LAYOUT)) {
document.body.classList.add(Settings.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 app.docs.all()) {
if (!docs.includes(doc.slug)) {
result.push(doc);
}
}
return result;
})(),
);
disabledDocs.uninstall(() => {
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("/");
}
}
};