From 2a6978c3490eabafcba399fe458aab29d946e872 Mon Sep 17 00:00:00 2001 From: zadam Date: Sun, 29 Nov 2020 22:32:31 +0100 Subject: [PATCH] added button for entering workspace --- package-lock.json | 18 +++---- package.json | 2 +- src/public/app/services/entrypoints.js | 8 +++ .../widgets/collapsible_widgets/link_map.js | 2 +- .../collapsible_widgets/what_links_here.js | 2 +- src/public/app/widgets/note_tree.js | 54 +++++++++++-------- src/services/attributes.js | 3 ++ 7 files changed, 55 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 04ebdc121..0575f9518 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3212,9 +3212,9 @@ } }, "electron-to-chromium": { - "version": "1.3.607", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz", - "integrity": "sha512-h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g==", + "version": "1.3.610", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.610.tgz", + "integrity": "sha512-eFDC+yVQpEhtlapk4CYDPfV9ajF9cEof5TBcO49L1ETO+aYogrKWDmYpZyxBScMNe8Bo/gJamH4amQ4yyvXg4g==", "dev": true }, "electron-window-state": { @@ -7156,9 +7156,9 @@ "dev": true }, "terser": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.0.tgz", - "integrity": "sha512-eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", + "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7627,9 +7627,9 @@ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" }, "webpack": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.8.0.tgz", - "integrity": "sha512-X2yosPiHip3L0TE+ylruzrOqSgEgsdGyBOGFWKYChcwlKChaw9VodZIUovG1oo7s0ss6e3ZxBMn9tXR+nkPThA==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.9.0.tgz", + "integrity": "sha512-YnnqIV/uAS5ZrNpctSv378qV7HmbJ74DL+XfvMxzbX1bV9e7eeT6eEWU4wuUw33CNr/HspBh7R/xQlVjTEyAeA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", diff --git a/package.json b/package.json index e34775212..090b496b6 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "jsdoc": "3.6.6", "lorem-ipsum": "2.0.3", "rcedit": "2.2.0", - "webpack": "5.8.0", + "webpack": "5.9.0", "webpack-cli": "4.2.0" }, "optionalDependencies": { diff --git a/src/public/app/services/entrypoints.js b/src/public/app/services/entrypoints.js index 755673b20..842dd0612 100644 --- a/src/public/app/services/entrypoints.js +++ b/src/public/app/services/entrypoints.js @@ -90,6 +90,14 @@ export default class Entrypoints extends Component { } } + async hoistNoteCommand({noteId}) { + const tabContext = appContext.tabManager.getActiveTabContext(); + + if (tabContext.hoistedNoteId !== noteId) { + await tabContext.setHoistedNoteId(noteId); + } + } + async unhoistCommand() { const activeTabContext = appContext.tabManager.getActiveTabContext(); diff --git a/src/public/app/widgets/collapsible_widgets/link_map.js b/src/public/app/widgets/collapsible_widgets/link_map.js index 46586b6ab..2e6fee076 100644 --- a/src/public/app/widgets/collapsible_widgets/link_map.js +++ b/src/public/app/widgets/collapsible_widgets/link_map.js @@ -25,7 +25,7 @@ export default class LinkMapWidget extends CollapsibleWidget { get headerActions() { const $showFullButton = $("") - .addClass("bx bx-map-alt") + .addClass("bx bx-network-chart") .addClass('widget-header-action') .attr('title', 'Show full link map'); diff --git a/src/public/app/widgets/collapsible_widgets/what_links_here.js b/src/public/app/widgets/collapsible_widgets/what_links_here.js index 9b3a8d63a..82092fc21 100644 --- a/src/public/app/widgets/collapsible_widgets/what_links_here.js +++ b/src/public/app/widgets/collapsible_widgets/what_links_here.js @@ -16,7 +16,7 @@ export default class WhatLinksHereWidget extends CollapsibleWidget { get headerActions() { const $showFullButton = $("") - .addClass("bx bx-map-alt") + .addClass("bx bx-network-chart") .addClass('widget-header-action') .attr('title', 'Show full link map'); diff --git a/src/public/app/widgets/note_tree.js b/src/public/app/widgets/note_tree.js index 7f9311835..696383cd2 100644 --- a/src/public/app/widgets/note_tree.js +++ b/src/public/app/widgets/note_tree.js @@ -35,20 +35,7 @@ const TPL = ` overflow: auto; padding-bottom: 35px; } - - .refresh-search-button { - cursor: pointer; - position: relative; - top: -1px; - border: 1px solid transparent; - padding: 2px; - border-radius: 2px; - } - - .refresh-search-button:hover { - border-color: var(--button-border-color); - } - + .collapse-tree-button { position: absolute; bottom: 10px; @@ -142,17 +129,22 @@ const TPL = ` span.fancytree-node.archived { opacity: 0.6; } - - .add-note-button { - display: none; + + .tree-item-button { font-size: 120%; padding: 2px; cursor: pointer; + border-radius: 3px; + border: 1px solid var(--main-background-color); + margin-left: 5px; } - .add-note-button:hover { - border: 1px solid var(--main-border-color); - border-radius: 3px; + .tree-item-button:hover { + border-color: var(--main-border-color); + } + + .add-note-button { + display: none; } span.fancytree-node:hover .add-note-button { @@ -214,6 +206,18 @@ export default class NoteTreeWidget extends TabAwareWidget { }); }); + this.$tree.on("click", ".enter-workspace-button", e => { + const node = $.ui.fancytree.getNode(e); + + this.triggerCommand('hoistNote', {noteId: node.data.noteId}); + }); + + this.$tree.on("click", ".unhoist-button", e => { + const node = $.ui.fancytree.getNode(e); + + this.triggerCommand('unhoist'); + }); + // fancytree doesn't support middle click so this is a way to support it this.$tree.on('mousedown', '.fancytree-title', e => { if (e.which === 2) { @@ -500,14 +504,20 @@ export default class NoteTreeWidget extends TabAwareWidget { const note = await treeCache.getNote(node.data.noteId); + if (note.hasLabel('workspace')) { + const $enterWorkspaceButton = $(''); + + $span.append($enterWorkspaceButton); + } + if (note.type === 'search') { - const $refreshSearchButton = $('  '); + const $refreshSearchButton = $(''); $span.append($refreshSearchButton); } if (note.type !== 'search') { - const $createChildNoteButton = $('  '); + const $createChildNoteButton = $(''); $span.append($createChildNoteButton); } diff --git a/src/services/attributes.js b/src/services/attributes.js index 3623d63f7..d8613e1df 100644 --- a/src/services/attributes.js +++ b/src/services/attributes.js @@ -33,6 +33,9 @@ const BUILTIN_ATTRIBUTES = [ { type: 'label', name: 'noteRevisionsWidgetDisabled' }, { type: 'label', name: 'whatLinksHereWidgetDisabled' }, { type: 'label', name: 'similarNotesWidgetDisabled' }, + { type: 'label', name: 'workspace' }, + { type: 'label', name: 'workspaceIconClass' }, + { type: 'label', name: 'workspaceTabBackgroundColor' }, // relation names { type: 'relation', name: 'runOnNoteCreation', isDangerous: true },