From 6de4914ea63357da9c98abf774b957799c8aadd4 Mon Sep 17 00:00:00 2001 From: zadam Date: Sun, 19 Jan 2020 13:19:40 +0100 Subject: [PATCH] extracted widgets from note title --- src/public/javascripts/dialogs/attributes.js | 1 + .../javascripts/widgets/note_actions.js | 30 +++++++ src/public/javascripts/widgets/note_detail.js | 6 +- src/public/javascripts/widgets/note_title.js | 79 ++++--------------- .../widgets/protected_note_switch.js | 22 ++++++ .../javascripts/widgets/run_script_buttons.js | 33 ++++++++ .../javascripts/widgets/tab_aware_widget.js | 4 +- .../javascripts/widgets/type_widgets/code.js | 11 +++ .../javascripts/widgets/type_widgets/text.js | 1 + src/public/stylesheets/style.css | 6 -- 10 files changed, 115 insertions(+), 78 deletions(-) create mode 100644 src/public/javascripts/widgets/note_actions.js create mode 100644 src/public/javascripts/widgets/protected_note_switch.js create mode 100644 src/public/javascripts/widgets/run_script_buttons.js diff --git a/src/public/javascripts/dialogs/attributes.js b/src/public/javascripts/dialogs/attributes.js index 1c0068cf3..fffa9254a 100644 --- a/src/public/javascripts/dialogs/attributes.js +++ b/src/public/javascripts/dialogs/attributes.js @@ -8,6 +8,7 @@ import linkService from "../services/link.js"; import libraryLoader from "../services/library_loader.js"; import noteAutocompleteService from "../services/note_autocomplete.js"; import treeService from "../services/tree.js"; +import appContext from "../services/app_context.js"; const $dialog = $("#attributes-dialog"); const $saveAttributesButton = $("#save-attributes-button"); diff --git a/src/public/javascripts/widgets/note_actions.js b/src/public/javascripts/widgets/note_actions.js new file mode 100644 index 000000000..8fa255bbd --- /dev/null +++ b/src/public/javascripts/widgets/note_actions.js @@ -0,0 +1,30 @@ +import BasicWidget from "./basic_widget.js"; + +const TPL = ` +`; + +export default class NoteActionsWidget extends BasicWidget { + doRender() { + this.$widget = $(TPL); + + return this.$widget; + } +} \ No newline at end of file diff --git a/src/public/javascripts/widgets/note_detail.js b/src/public/javascripts/widgets/note_detail.js index 959dc9851..8b9fc6615 100644 --- a/src/public/javascripts/widgets/note_detail.js +++ b/src/public/javascripts/widgets/note_detail.js @@ -5,12 +5,8 @@ import protectedSessionHolder from "../services/protected_session_holder.js"; const TPL = `
diff --git a/src/public/javascripts/widgets/note_title.js b/src/public/javascripts/widgets/note_title.js index 840f0cd70..c78c49eba 100644 --- a/src/public/javascripts/widgets/note_title.js +++ b/src/public/javascripts/widgets/note_title.js @@ -7,16 +7,15 @@ import linkService from "../services/link.js"; import protectedSessionHolder from "../services/protected_session_holder.js"; import NoteTypeWidget from "./note_type.js"; import NotePathsWidget from "./note_paths.js"; +import NoteActionsWidget from "./note_actions.js"; +import ProtectedNoteSwitchWidget from "./protected_note_switch.js"; +import RunScriptButtonsWidget from "./run_script_buttons.js"; const TPL = `
- - - -
- - - - -
- - - -
- -     - - -
`; export default class NoteTitleWidget extends TabAwareWidget { @@ -86,16 +37,19 @@ export default class NoteTitleWidget extends TabAwareWidget { this.$noteTitle = this.$widget.find(".note-title"); - this.$protectButton = this.$widget.find(".protect-button"); - this.$protectButton.on('click', protectedSessionService.protectNoteAndSendToServer); - - this.$unprotectButton = this.$widget.find(".unprotect-button"); - this.$unprotectButton.on('click', protectedSessionService.unprotectNoteAndSendToServer); - this.$savedIndicator = this.$widget.find(".saved-indicator"); + this.runScriptButtons = new RunScriptButtonsWidget(this.appContext); + this.$widget.append(this.runScriptButtons.render()); + + this.protectedNoteSwitch = new ProtectedNoteSwitchWidget(this.appContext); + this.$widget.append(this.protectedNoteSwitch.render()); + this.noteType = new NoteTypeWidget(this.appContext); - this.$widget.find('.note-type-actions').prepend(this.noteType.render()); + this.$widget.append(this.noteType.render()); + + this.noteActions = new NoteActionsWidget(this.appContext); + this.$widget.append(this.noteActions.render()); this.notePaths = new NotePathsWidget(this.appContext); this.$widget.prepend(this.notePaths.render()); @@ -138,11 +92,6 @@ export default class NoteTitleWidget extends TabAwareWidget { if (note.isProtected && !protectedSessionHolder.isProtectedSessionAvailable()) { this.$noteTitle.prop("readonly", true); } - - this.$protectButton.toggleClass("active", note.isProtected); - this.$protectButton.prop("disabled", note.isProtected); - this.$unprotectButton.toggleClass("active", !note.isProtected); - this.$unprotectButton.prop("disabled", !note.isProtected || !protectedSessionHolder.isProtectedSessionAvailable()); } noteSavedListener() { diff --git a/src/public/javascripts/widgets/protected_note_switch.js b/src/public/javascripts/widgets/protected_note_switch.js new file mode 100644 index 000000000..1cac7184c --- /dev/null +++ b/src/public/javascripts/widgets/protected_note_switch.js @@ -0,0 +1,22 @@ +import BasicWidget from "./basic_widget.js"; + +const TPL = ` +
+ + + +
`; + +export default class ProtectedNoteSwitchWidget extends BasicWidget { + doRender() { + this.$widget = $(TPL); + + return this.$widget; + } +} \ No newline at end of file diff --git a/src/public/javascripts/widgets/run_script_buttons.js b/src/public/javascripts/widgets/run_script_buttons.js new file mode 100644 index 000000000..932c9849d --- /dev/null +++ b/src/public/javascripts/widgets/run_script_buttons.js @@ -0,0 +1,33 @@ +import TabAwareWidget from "./tab_aware_widget.js"; +import protectedSessionService from "../services/protected_session.js"; +import protectedSessionHolder from "../services/protected_session_holder.js"; + +const TPL = ` + + +`; + +export default class RunScriptButtonsWidget extends TabAwareWidget { + doRender() { + this.$widget = $(TPL); + + this.$protectButton = this.$widget.find(".protect-button"); + this.$protectButton.on('click', protectedSessionService.protectNoteAndSendToServer); + + this.$unprotectButton = this.$widget.find(".unprotect-button"); + this.$unprotectButton.on('click', protectedSessionService.unprotectNoteAndSendToServer); + + return this.$widget; + } + + refreshWithNote(note) { + this.$protectButton.toggleClass("active", note.isProtected); + this.$protectButton.prop("disabled", note.isProtected); + this.$unprotectButton.toggleClass("active", !note.isProtected); + this.$unprotectButton.prop("disabled", !note.isProtected || !protectedSessionHolder.isProtectedSessionAvailable()); + } +} \ No newline at end of file diff --git a/src/public/javascripts/widgets/tab_aware_widget.js b/src/public/javascripts/widgets/tab_aware_widget.js index 2d2eaab5d..d4cf60c9c 100644 --- a/src/public/javascripts/widgets/tab_aware_widget.js +++ b/src/public/javascripts/widgets/tab_aware_widget.js @@ -25,14 +25,14 @@ export default class TabAwareWidget extends BasicWidget { refresh() { if (this.tabContext && this.tabContext.note) { this.toggle(true); - this.refreshWithNote(); + this.refreshWithNote(this.tabContext.note); } else { this.toggle(false); } } - refreshWithNote() {} + refreshWithNote(note) {} activeTabChangedListener() { this.tabContext = this.appContext.getActiveTabContext(); diff --git a/src/public/javascripts/widgets/type_widgets/code.js b/src/public/javascripts/widgets/type_widgets/code.js index e02bb9e7e..072b7f381 100644 --- a/src/public/javascripts/widgets/type_widgets/code.js +++ b/src/public/javascripts/widgets/type_widgets/code.js @@ -8,6 +8,17 @@ import TypeWidget from "./type_widget.js"; const TPL = `
+ +
`; diff --git a/src/public/javascripts/widgets/type_widgets/text.js b/src/public/javascripts/widgets/type_widgets/text.js index 7d5728f57..46842564f 100644 --- a/src/public/javascripts/widgets/type_widgets/text.js +++ b/src/public/javascripts/widgets/type_widgets/text.js @@ -53,6 +53,7 @@ const TPL = ` .note-detail-text { overflow: auto; + height: 100%; font-family: var(--detail-text-font-family); } diff --git a/src/public/stylesheets/style.css b/src/public/stylesheets/style.css index a186e1b9f..733d1dd9f 100644 --- a/src/public/stylesheets/style.css +++ b/src/public/stylesheets/style.css @@ -303,13 +303,7 @@ div.ui-tooltip { background-color: var(--active-item-background-color) !important; } -.note-detail-code { - overflow: auto; -} -.note-detail-code-editor { - min-height: 500px; -} .note-detail-render { min-height: 500px;