diff --git a/src/public/app/doc_notes/launchbar_intro.html b/src/public/app/doc_notes/launchbar_intro.html
new file mode 100644
index 000000000..1281f6fc8
--- /dev/null
+++ b/src/public/app/doc_notes/launchbar_intro.html
@@ -0,0 +1,11 @@
+
Welcome to the Launchbar configuration.
+
+You can do the following things here:
+
+
+ - Move available shortcuts to the visible list (thus putting them into the launchbar) by dragging them
+ - Move visible shortcuts to the available list (thus hiding them from the launchbar) by dragging them
+ - You can reorder the items in the lists by dragging
+ - You can create new shortcuts by right-clicking on the "Visible shortcuts" folder
+ - If you want to get back to the default setup, just delete the "Visible shortcuts" and "Available shortcuts", the default configuration will be re-created.
+
\ No newline at end of file
diff --git a/src/public/app/layouts/desktop_layout.js b/src/public/app/layouts/desktop_layout.js
index 5cab44cf4..1f16b97c9 100644
--- a/src/public/app/layouts/desktop_layout.js
+++ b/src/public/app/layouts/desktop_layout.js
@@ -20,14 +20,12 @@ import ImagePropertiesWidget from "../widgets/ribbon_widgets/image_properties.js
import NotePropertiesWidget from "../widgets/ribbon_widgets/note_properties.js";
import NoteIconWidget from "../widgets/note_icon.js";
import SearchResultWidget from "../widgets/search_result.js";
-import SyncStatusWidget from "../widgets/sync_status.js";
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
import RootContainer from "../widgets/containers/root_container.js";
import NoteUpdateStatusWidget from "../widgets/note_update_status.js";
import SpacerWidget from "../widgets/spacer.js";
import QuickSearchWidget from "../widgets/quick_search.js";
import ButtonWidget from "../widgets/buttons/button_widget.js";
-import ProtectedSessionStatusWidget from "../widgets/buttons/protected_session_status.js";
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
import LeftPaneToggleWidget from "../widgets/buttons/left_pane_toggle.js";
import CreatePaneButton from "../widgets/buttons/create_pane_button.js";
@@ -40,11 +38,8 @@ import NotePathsWidget from "../widgets/ribbon_widgets/note_paths.js";
import SimilarNotesWidget from "../widgets/ribbon_widgets/similar_notes.js";
import RightPaneContainer from "../widgets/containers/right_pane_container.js";
import EditButton from "../widgets/buttons/edit_button.js";
-import CalendarWidget from "../widgets/buttons/calendar.js";
import EditedNotesWidget from "../widgets/ribbon_widgets/edited_notes.js";
-import OpenNoteButtonWidget from "../widgets/buttons/open_note_button_widget.js";
import MermaidWidget from "../widgets/mermaid.js";
-import BookmarkButtons from "../widgets/bookmark_buttons.js";
import NoteWrapperWidget from "../widgets/note_wrapper.js";
import BacklinksWidget from "../widgets/floating_buttons/zpetne_odkazy.js";
import SharedInfoWidget from "../widgets/shared_info.js";
@@ -79,6 +74,7 @@ import FloatingButtons from "../widgets/floating_buttons/floating_buttons.js";
import RelationMapButtons from "../widgets/floating_buttons/relation_map_buttons.js";
import MermaidExportButton from "../widgets/floating_buttons/mermaid_export_button.js";
import ShortcutContainer from "../widgets/containers/shortcut_container.js";
+import NoteRevisionsButton from "../widgets/buttons/note_revisions_button.js";
export default class DesktopLayout {
constructor(customWidgets) {
@@ -95,33 +91,6 @@ export default class DesktopLayout {
.css("width", "53px")
.child(new GlobalMenuWidget())
.child(new ShortcutContainer())
- // .child(new ButtonWidget()
- // .icon("bx-file-blank")
- // .title("New note")
- // .command("createNoteIntoInbox"))
- // .child(new ButtonWidget()
- // .icon("bx-search")
- // .title("Search")
- // .command("searchNotes"))
- // .child(new ButtonWidget()
- // .icon("bx-send")
- // .title("Jump to note")
- // .command("jumpToNote"))
- // .child(new OpenNoteButtonWidget()
- // .targetNote('globalnotemap'))
- // .child(new ButtonWidget()
- // .icon("bx-history")
- // .title("Show recent changes")
- // .command("showRecentChanges"))
- // .child(new CalendarWidget())
- // .child(new SpacerWidget(40, 0))
- // .child(new FlexContainer("column")
- // .id("plugin-buttons")
- // .contentSized())
- // .child(new BookmarkButtons())
- // .child(new SpacerWidget(0, 1000))
- // .child(new ProtectedSessionStatusWidget())
- // .child(new SyncStatusWidget())
.child(new LeftPaneToggleWidget())
)
.child(new LeftPaneContainer()
@@ -145,63 +114,59 @@ export default class DesktopLayout {
.collapsible()
.id('center-pane')
.child(new SplitNoteContainer(() =>
- new NoteWrapperWidget()
- .child(new FlexContainer('row').class('title-row')
- .css("height", "50px")
- .css('align-items', "center")
- .cssBlock('.title-row > * { margin: 5px; }')
- .child(new NoteIconWidget())
- .child(new NoteTitleWidget())
- .child(new SpacerWidget(0, 1))
- .child(new ClosePaneButton())
- .child(new CreatePaneButton())
- )
- .child(
- new RibbonContainer()
- .ribbon(new SearchDefinitionWidget())
- .ribbon(new EditedNotesWidget())
- .ribbon(new BookPropertiesWidget())
- .ribbon(new NotePropertiesWidget())
- .ribbon(new FilePropertiesWidget())
- .ribbon(new ImagePropertiesWidget())
- .ribbon(new PromotedAttributesWidget())
- .ribbon(new BasicPropertiesWidget())
- .ribbon(new OwnedAttributeListWidget())
- .ribbon(new InheritedAttributesWidget())
- .ribbon(new NotePathsWidget())
- .ribbon(new NoteMapRibbonWidget())
- .ribbon(new SimilarNotesWidget())
- .ribbon(new NoteInfoWidget())
- .button(new EditButton())
- .button(new ButtonWidget()
- .icon('bx-history')
- .title("Note Revisions")
- .command("showNoteRevisions")
- .titlePlacement("bottom"))
- .button(new NoteActionsWidget())
- )
- .child(new SharedInfoWidget())
- .child(new NoteUpdateStatusWidget())
- .child(new FloatingButtons()
- .child(new RelationMapButtons())
- .child(new MermaidExportButton())
- .child(new BacklinksWidget())
- )
- .child(new MermaidWidget())
- .child(
- new ScrollingContainer()
- .filling()
- .child(new SqlTableSchemasWidget())
- .child(new NoteDetailWidget())
- .child(new NoteListWidget())
- .child(new SearchResultWidget())
- .child(new SqlResultWidget())
- )
- .child(new FindWidget())
- .child(
- ...this.customWidgets.get('node-detail-pane'), // typo, let's keep it for a while as BC
- ...this.customWidgets.get('note-detail-pane')
- )
+ new NoteWrapperWidget()
+ .child(new FlexContainer('row').class('title-row')
+ .css("height", "50px")
+ .css('align-items', "center")
+ .cssBlock('.title-row > * { margin: 5px; }')
+ .child(new NoteIconWidget())
+ .child(new NoteTitleWidget())
+ .child(new SpacerWidget(0, 1))
+ .child(new ClosePaneButton())
+ .child(new CreatePaneButton())
+ )
+ .child(
+ new RibbonContainer()
+ .ribbon(new SearchDefinitionWidget())
+ .ribbon(new EditedNotesWidget())
+ .ribbon(new BookPropertiesWidget())
+ .ribbon(new NotePropertiesWidget())
+ .ribbon(new FilePropertiesWidget())
+ .ribbon(new ImagePropertiesWidget())
+ .ribbon(new PromotedAttributesWidget())
+ .ribbon(new BasicPropertiesWidget())
+ .ribbon(new OwnedAttributeListWidget())
+ .ribbon(new InheritedAttributesWidget())
+ .ribbon(new NotePathsWidget())
+ .ribbon(new NoteMapRibbonWidget())
+ .ribbon(new SimilarNotesWidget())
+ .ribbon(new NoteInfoWidget())
+ .button(new EditButton())
+ .button(new NoteRevisionsButton())
+ .button(new NoteActionsWidget())
+ )
+ .child(new SharedInfoWidget())
+ .child(new NoteUpdateStatusWidget())
+ .child(new FloatingButtons()
+ .child(new RelationMapButtons())
+ .child(new MermaidExportButton())
+ .child(new BacklinksWidget())
+ )
+ .child(new MermaidWidget())
+ .child(
+ new ScrollingContainer()
+ .filling()
+ .child(new SqlTableSchemasWidget())
+ .child(new NoteDetailWidget())
+ .child(new NoteListWidget())
+ .child(new SearchResultWidget())
+ .child(new SqlResultWidget())
+ )
+ .child(new FindWidget())
+ .child(
+ ...this.customWidgets.get('node-detail-pane'), // typo, let's keep it for a while as BC
+ ...this.customWidgets.get('note-detail-pane')
+ )
)
)
.child(...this.customWidgets.get('center-pane'))
diff --git a/src/public/app/widgets/buttons/note_revisions_button.js b/src/public/app/widgets/buttons/note_revisions_button.js
new file mode 100644
index 000000000..a8bb1945f
--- /dev/null
+++ b/src/public/app/widgets/buttons/note_revisions_button.js
@@ -0,0 +1,16 @@
+import ButtonWidget from "./button_widget.js";
+
+export default class NoteRevisionsButton extends ButtonWidget {
+ constructor() {
+ super();
+
+ this.icon('bx-history')
+ .title("Note Revisions")
+ .command("showNoteRevisions")
+ .titlePlacement("bottom");
+ }
+
+ isEnabled() {
+ return super.isEnabled() && this.note?.type !== 'shortcut';
+ }
+}
\ No newline at end of file
diff --git a/src/public/app/widgets/type_widgets/doc.js b/src/public/app/widgets/type_widgets/doc.js
index 9410c443f..a7a692b13 100644
--- a/src/public/app/widgets/type_widgets/doc.js
+++ b/src/public/app/widgets/type_widgets/doc.js
@@ -1,13 +1,32 @@
import TypeWidget from "./type_widget.js";
-const TPL = `Z
`;
+const TPL = ``;
export default class DocTypeWidget extends TypeWidget {
static getType() { return "doc"; }
doRender() {
this.$widget = $(TPL);
+ this.$content = this.$widget.find('.note-detail-doc-content');
super.doRender();
}
+
+ async doRefresh(note) {
+ const docName = note.getLabelValue('docName');
+
+ if (docName) {
+ this.$content.load(`app/doc_notes/${docName}.html`);
+ } else {
+ this.$content.empty();
+ }
+ }
}
diff --git a/src/services/special_notes.js b/src/services/special_notes.js
index e9cb68c1f..0b7922d23 100644
--- a/src/services/special_notes.js
+++ b/src/services/special_notes.js
@@ -250,6 +250,7 @@ function getLaunchBarRoot() {
}).note;
note.addLabel("iconClass", "bx bx-sidebar");
+ note.addLabel("docName", "launchbar_intro");
}
return note;
@@ -269,6 +270,7 @@ function getLaunchBarAvailableShortcutsRoot() {
}).note;
note.addLabel("iconClass", "bx bx-hide");
+ note.addLabel("docName", "launchbar_intro");
}
const branch = becca.getBranch('lb_availableshortcuts');
@@ -294,6 +296,7 @@ function getLaunchBarVisibleShortcutsRoot() {
}).note;
note.addLabel("iconClass", "bx bx-show");
+ note.addLabel("docName", "launchbar_intro");
}
const branch = becca.getBranch('lb_visibleshortcuts');