Notes/src/public/app/layouts/desktop_layout.js

142 lines
7.4 KiB
JavaScript
Raw Normal View History

import FlexContainer from "../widgets/containers/flex_container.js";
2021-05-24 22:29:49 +02:00
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
2020-04-25 23:52:13 +02:00
import TabRowWidget from "../widgets/tab_row.js";
import TitleBarButtonsWidget from "../widgets/title_bar_buttons.js";
2021-06-01 23:19:49 +02:00
import TreeSidebarContainer from "../widgets/containers/tree_sidebar_container.js";
2020-04-25 23:52:13 +02:00
import NoteTreeWidget from "../widgets/note_tree.js";
import NoteTitleWidget from "../widgets/note_title.js";
2021-05-29 13:24:47 +02:00
import OwnedAttributeListWidget from "../widgets/section_widgets/owned_attribute_list.js";
2021-05-24 22:29:49 +02:00
import NoteActionsWidget from "../widgets/buttons/note_actions.js";
2020-04-25 23:52:13 +02:00
import NoteDetailWidget from "../widgets/note_detail.js";
import CollapsibleSectionContainer from "../widgets/containers/collapsible_section_container.js";
2021-05-29 13:24:47 +02:00
import PromotedAttributesWidget from "../widgets/section_widgets/promoted_attributes.js";
import InheritedAttributesWidget from "../widgets/section_widgets/inherited_attribute_list.js";
import NoteListWidget from "../widgets/note_list.js";
2021-05-29 13:24:47 +02:00
import SearchDefinitionWidget from "../widgets/section_widgets/search_definition.js";
import SqlResultWidget from "../widgets/sql_result.js";
import SqlTableSchemasWidget from "../widgets/sql_table_schemas.js";
2021-05-29 13:24:47 +02:00
import FilePropertiesWidget from "../widgets/section_widgets/file_properties.js";
import ImagePropertiesWidget from "../widgets/section_widgets/image_properties.js";
import NotePropertiesWidget from "../widgets/section_widgets/note_properties.js";
2021-02-13 20:07:08 +01:00
import NoteIconWidget from "../widgets/note_icon.js";
import SearchResultWidget from "../widgets/search_result.js";
2021-03-20 00:00:49 +01:00
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";
2021-05-17 21:46:18 +02:00
import SpacerWidget from "../widgets/spacer.js";
import QuickSearchWidget from "../widgets/quick_search.js";
2021-05-24 22:29:49 +02:00
import ButtonWidget from "../widgets/buttons/button_widget.js";
import ProtectedSessionStatusWidget from "../widgets/buttons/protected_session_status.js";
2021-05-19 22:45:34 +02:00
import PaneContainer from "../widgets/containers/pane_container.js";
2021-05-24 22:29:49 +02:00
import SidebarToggleWidget from "../widgets/buttons/sidebar_toggle.js";
import CreatePaneButton from "../widgets/buttons/create_pane_button.js";
import ClosePaneButton from "../widgets/buttons/close_pane_button.js";
2021-05-29 13:24:47 +02:00
import BasicPropertiesWidget from "../widgets/section_widgets/basic_properties.js";
import NoteInfoWidget from "../widgets/section_widgets/note_info_widget.js";
import BookPropertiesWidget from "../widgets/section_widgets/book_properties.js";
import LinkMapWidget from "../widgets/section_widgets/link_map.js";
import NotePathsWidget from "../widgets/section_widgets/note_paths.js";
import SimilarNotesWidget from "../widgets/section_widgets/similar_notes.js";
2020-02-06 21:47:31 +01:00
export default class DesktopLayout {
2020-03-16 21:16:09 +01:00
constructor(customWidgets) {
this.customWidgets = customWidgets;
}
2020-02-06 21:47:31 +01:00
getRootWidget(appContext) {
appContext.mainTreeWidget = new NoteTreeWidget("main");
return new RootContainer()
2020-02-27 12:26:42 +01:00
.setParent(appContext)
2021-05-18 22:14:35 +02:00
.child(new FlexContainer("column")
2021-06-01 23:19:49 +02:00
.id("launcher-sidebar")
2021-05-18 22:14:35 +02:00
.child(new GlobalMenuWidget())
.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 ButtonWidget()
.icon("bx-history")
.title("Show recent changes")
.command("showRecentChanges"))
.child(new SpacerWidget())
.child(new ProtectedSessionStatusWidget())
.child(new SyncStatusWidget())
2021-05-22 21:35:25 +02:00
.child(new SidebarToggleWidget())
2021-05-28 22:47:59 +02:00
.css("width", "54px")
2021-05-18 22:14:35 +02:00
)
2021-06-01 23:19:49 +02:00
.child(new TreeSidebarContainer()
2021-05-17 21:46:18 +02:00
.hideInZenMode()
.css("width", "300px")
.child(new QuickSearchWidget())
.child(appContext.mainTreeWidget)
2021-06-01 23:19:49 +02:00
.child(...this.customWidgets.get('tree-sidebar'))
2021-05-17 21:46:18 +02:00
)
.child(new FlexContainer('column')
.id('center-pane')
.css("flex-grow", "1")
.child(new FlexContainer('row').overflowing()
2021-05-18 22:14:35 +02:00
.child(new TabRowWidget())
2021-05-17 21:46:18 +02:00
.child(new TitleBarButtonsWidget())
2021-05-23 21:24:22 +02:00
.css('height', '40px')
2020-02-27 10:03:14 +01:00
)
2021-05-20 23:13:34 +02:00
.child(new PaneContainer(() =>
new FlexContainer('column')
.css("flex-grow", "1")
.child(new FlexContainer('row').class('title-row')
.css('align-items: center;')
.cssBlock('.title-row > * { margin: 5px; }')
.overflowing()
.child(new NoteIconWidget())
.child(new NoteTitleWidget())
2021-05-24 22:29:49 +02:00
.child(new SpacerWidget(1))
.child(new ClosePaneButton())
.child(new CreatePaneButton())
2021-05-19 22:45:34 +02:00
)
2021-05-20 23:13:34 +02:00
.child(
new CollapsibleSectionContainer()
.section(new SearchDefinitionWidget())
2021-05-26 22:41:55 +02:00
.section(new BasicPropertiesWidget())
2021-05-27 23:17:13 +02:00
.section(new BookPropertiesWidget())
.section(new NotePropertiesWidget())
.section(new FilePropertiesWidget())
.section(new ImagePropertiesWidget())
.section(new PromotedAttributesWidget())
.section(new OwnedAttributeListWidget())
.section(new InheritedAttributesWidget())
2021-05-29 13:06:09 +02:00
.section(new NotePathsWidget())
2021-05-28 23:19:11 +02:00
.section(new LinkMapWidget())
2021-05-29 13:24:14 +02:00
.section(new SimilarNotesWidget())
2021-05-26 23:00:40 +02:00
.section(new NoteInfoWidget())
2021-05-26 23:08:00 +02:00
.button(new ButtonWidget()
.icon('bx bx-history')
.title("Note Revisions")
2021-05-28 22:47:59 +02:00
.command("showNoteRevisions")
.titlePlacement("bottom"))
.button(new NoteActionsWidget())
2021-05-20 23:13:34 +02:00
)
.child(new NoteUpdateStatusWidget())
.child(
new ScrollingContainer()
.child(new SqlTableSchemasWidget())
.child(new NoteDetailWidget())
.child(new NoteListWidget())
.child(new SearchResultWidget())
.child(new SqlResultWidget())
)
.child(...this.customWidgets.get('center-pane'))
2020-12-27 22:19:27 +01:00
)
2020-02-27 10:03:14 +01:00
)
);
2020-02-06 21:47:31 +01:00
}
2020-05-12 12:45:32 +02:00
}