From 9a8e677baf36e377ee41b7680e078a7199f60f66 Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 16 Jun 2022 22:53:11 +0200 Subject: [PATCH] converted options dialog to new pattern --- src/public/app/dialogs/options.js | 34 -------------- src/public/app/layouts/desktop_layout.js | 4 +- .../app/services/root_command_executor.js | 4 -- .../app/widgets/dialogs/options.js} | 46 ++++++++++++++++++- .../{ => widgets}/dialogs/options/advanced.js | 4 +- .../dialogs/options/appearance.js | 6 +-- .../{ => widgets}/dialogs/options/backup.js | 4 +- .../dialogs/options/code_notes.js | 10 ++-- .../{ => widgets}/dialogs/options/etapi.js | 4 +- .../{ => widgets}/dialogs/options/other.js | 6 +-- .../{ => widgets}/dialogs/options/password.js | 6 +-- .../dialogs/options/shortcuts.js | 6 +-- .../app/{ => widgets}/dialogs/options/sync.js | 4 +- src/views/desktop.ejs | 2 - 14 files changed, 72 insertions(+), 68 deletions(-) delete mode 100644 src/public/app/dialogs/options.js rename src/{views/dialogs/options.ejs => public/app/widgets/dialogs/options.js} (70%) rename src/public/app/{ => widgets}/dialogs/options/advanced.js (98%) rename src/public/app/{ => widgets}/dialogs/options/appearance.js (98%) rename src/public/app/{ => widgets}/dialogs/options/backup.js (96%) rename src/public/app/{ => widgets}/dialogs/options/code_notes.js (88%) rename src/public/app/{ => widgets}/dialogs/options/etapi.js (97%) rename src/public/app/{ => widgets}/dialogs/options/other.js (98%) rename src/public/app/{ => widgets}/dialogs/options/password.js (94%) rename src/public/app/{ => widgets}/dialogs/options/shortcuts.js (97%) rename src/public/app/{ => widgets}/dialogs/options/sync.js (96%) diff --git a/src/public/app/dialogs/options.js b/src/public/app/dialogs/options.js deleted file mode 100644 index 0b145a70e..000000000 --- a/src/public/app/dialogs/options.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; - -import server from '../services/server.js'; -import utils from "../services/utils.js"; - -const $dialog = $("#options-dialog"); - -export async function showDialog(openTab) { - const options = await server.get('options'); - - utils.openDialog($dialog); - - (await Promise.all([ - import('./options/appearance.js'), - import('./options/shortcuts.js'), - import('./options/code_notes.js'), - import('./options/password.js'), - import('./options/etapi.js'), - import('./options/backup.js'), - import('./options/sync.js'), - import('./options/other.js'), - import('./options/advanced.js') - ])) - .map(m => new m.default) - .forEach(tab => { - if (tab.optionsLoaded) { - tab.optionsLoaded(options) - } - }); - - if (openTab) { - $(`.nav-link[href='#options-${openTab}']`).trigger("click"); - } -} diff --git a/src/public/app/layouts/desktop_layout.js b/src/public/app/layouts/desktop_layout.js index a33f7dd3f..de933fbb2 100644 --- a/src/public/app/layouts/desktop_layout.js +++ b/src/public/app/layouts/desktop_layout.js @@ -74,6 +74,7 @@ import DeleteNotesDialog from "../widgets/dialogs/delete_notes.js"; import InfoDialog from "../widgets/dialogs/info.js"; import ConfirmDialog from "../widgets/dialogs/confirm.js"; import PromptDialog from "../widgets/dialogs/prompt.js"; +import OptionsDialog from "../widgets/dialogs/options.js"; export default class DesktopLayout { constructor(customWidgets) { @@ -222,6 +223,7 @@ export default class DesktopLayout { .child(new DeleteNotesDialog()) .child(new InfoDialog()) .child(new ConfirmDialog()) - .child(new PromptDialog()); + .child(new PromptDialog()) + .child(new OptionsDialog()); } } diff --git a/src/public/app/services/root_command_executor.js b/src/public/app/services/root_command_executor.js index bbaacc67b..f87f5e7b2 100644 --- a/src/public/app/services/root_command_executor.js +++ b/src/public/app/services/root_command_executor.js @@ -15,10 +15,6 @@ export default class RootCommandExecutor extends Component { appContext.triggerEvent("readOnlyTemporarilyDisabled", { noteContext }); } - showOptionsCommand({openTab}) { - import("../dialogs/options.js").then(d => d.showDialog(openTab)); - } - async showSQLConsoleCommand() { const sqlConsoleNote = await dateNoteService.createSqlConsole(); diff --git a/src/views/dialogs/options.ejs b/src/public/app/widgets/dialogs/options.js similarity index 70% rename from src/views/dialogs/options.ejs rename to src/public/app/widgets/dialogs/options.js index 082b5dd2d..056faab73 100644 --- a/src/views/dialogs/options.ejs +++ b/src/public/app/widgets/dialogs/options.js @@ -1,4 +1,11 @@ -`; + + +export default class OptionsDialog extends BasicWidget { + doRender() { + this.$widget = $(TPL); + } + + async showOptionsEvent({openTab}) { + const options = await server.get('options'); + + utils.openDialog(this.$widget); + + (await Promise.all([ + import('./options/appearance.js'), + import('./options/shortcuts.js'), + import('./options/code_notes.js'), + import('./options/password.js'), + import('./options/etapi.js'), + import('./options/backup.js'), + import('./options/sync.js'), + import('./options/other.js'), + import('./options/advanced.js') + ])) + .map(m => new m.default) + .forEach(tab => { + if (tab.optionsLoaded) { + tab.optionsLoaded(options) + } + }); + + if (openTab) { + $(`.nav-link[href='#options-${openTab}']`).trigger("click"); + } + } +} diff --git a/src/public/app/dialogs/options/advanced.js b/src/public/app/widgets/dialogs/options/advanced.js similarity index 98% rename from src/public/app/dialogs/options/advanced.js rename to src/public/app/widgets/dialogs/options/advanced.js index c0b651ddf..a1ca62cc4 100644 --- a/src/public/app/dialogs/options/advanced.js +++ b/src/public/app/widgets/dialogs/options/advanced.js @@ -1,5 +1,5 @@ -import server from "../../services/server.js"; -import toastService from "../../services/toast.js"; +import server from "../../../services/server.js"; +import toastService from "../../../services/toast.js"; const TPL = `

Sync

diff --git a/src/public/app/dialogs/options/appearance.js b/src/public/app/widgets/dialogs/options/appearance.js similarity index 98% rename from src/public/app/dialogs/options/appearance.js rename to src/public/app/widgets/dialogs/options/appearance.js index 3fc914498..5393e857f 100644 --- a/src/public/app/dialogs/options/appearance.js +++ b/src/public/app/widgets/dialogs/options/appearance.js @@ -1,6 +1,6 @@ -import server from "../../services/server.js"; -import utils from "../../services/utils.js"; -import appContext from "../../services/app_context.js"; +import server from "../../../services/server.js"; +import utils from "../../../services/utils.js"; +import appContext from "../../../services/app_context.js"; const FONT_FAMILIES = [ { value: "theme", label: "Theme defined" }, diff --git a/src/public/app/dialogs/options/backup.js b/src/public/app/widgets/dialogs/options/backup.js similarity index 96% rename from src/public/app/dialogs/options/backup.js rename to src/public/app/widgets/dialogs/options/backup.js index abb4d8dec..b5cd87939 100644 --- a/src/public/app/dialogs/options/backup.js +++ b/src/public/app/widgets/dialogs/options/backup.js @@ -1,5 +1,5 @@ -import server from "../../services/server.js"; -import toastService from "../../services/toast.js"; +import server from "../../../services/server.js"; +import toastService from "../../../services/toast.js"; const TPL = `

Automatic backup

diff --git a/src/public/app/dialogs/options/code_notes.js b/src/public/app/widgets/dialogs/options/code_notes.js similarity index 88% rename from src/public/app/dialogs/options/code_notes.js rename to src/public/app/widgets/dialogs/options/code_notes.js index 32703c0da..fc1d90d7e 100644 --- a/src/public/app/dialogs/options/code_notes.js +++ b/src/public/app/widgets/dialogs/options/code_notes.js @@ -1,8 +1,8 @@ -import mimeTypesService from "../../services/mime_types.js"; -import options from "../../services/options.js"; -import server from "../../services/server.js"; -import toastService from "../../services/toast.js"; -import utils from "../../services/utils.js"; +import mimeTypesService from "../../../services/mime_types.js"; +import options from "../../../services/options.js"; +import server from "../../../services/server.js"; +import toastService from "../../../services/toast.js"; +import utils from "../../../services/utils.js"; const TPL = `

Use vim keybindings in CodeNotes (no ex mode)

diff --git a/src/public/app/dialogs/options/etapi.js b/src/public/app/widgets/dialogs/options/etapi.js similarity index 97% rename from src/public/app/dialogs/options/etapi.js rename to src/public/app/widgets/dialogs/options/etapi.js index 58718ef7f..8709a5721 100644 --- a/src/public/app/dialogs/options/etapi.js +++ b/src/public/app/widgets/dialogs/options/etapi.js @@ -1,5 +1,5 @@ -import server from "../../services/server.js"; -import dialogService from "../../widgets/dialog.js"; +import server from "../../../services/server.js"; +import dialogService from "../../dialog.js"; const TPL = `

ETAPI

diff --git a/src/public/app/dialogs/options/other.js b/src/public/app/widgets/dialogs/options/other.js similarity index 98% rename from src/public/app/dialogs/options/other.js rename to src/public/app/widgets/dialogs/options/other.js index dde89b6ad..bd236bf77 100644 --- a/src/public/app/dialogs/options/other.js +++ b/src/public/app/widgets/dialogs/options/other.js @@ -1,6 +1,6 @@ -import utils from "../../services/utils.js"; -import server from "../../services/server.js"; -import toastService from "../../services/toast.js"; +import utils from "../../../services/utils.js"; +import server from "../../../services/server.js"; +import toastService from "../../../services/toast.js"; const TPL = `