mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
skeleton for global link map
This commit is contained in:
parent
5866004e23
commit
ed26e32ccb
@ -42,6 +42,7 @@ import RightPaneContainer from "../widgets/containers/right_pane_container.js";
|
||||
import EditButton from "../widgets/buttons/edit_button.js";
|
||||
import CalendarMenuWidget from "../widgets/buttons/calendar_menu.js";
|
||||
import EditedNotesWidget from "../widgets/ribbon_widgets/edited_notes.js";
|
||||
import OpenNoteButtonWidget from "../widgets/buttons/open_note_button_widget.js";
|
||||
|
||||
export default class DesktopLayout {
|
||||
constructor(customWidgets) {
|
||||
@ -69,6 +70,10 @@ export default class DesktopLayout {
|
||||
.icon("bx-send")
|
||||
.title("Jump to note")
|
||||
.command("jumpToNote"))
|
||||
.child(new OpenNoteButtonWidget()
|
||||
.icon("bx-map-alt")
|
||||
.title("Global link map")
|
||||
.targetNote('globallinkmap'))
|
||||
.child(new ButtonWidget()
|
||||
.icon("bx-history")
|
||||
.title("Show recent changes")
|
||||
|
@ -227,7 +227,7 @@ export default class TabManager extends Component {
|
||||
/**
|
||||
* If the requested notePath is within current note hoisting scope then keep the note hoisting also for the new tab.
|
||||
*/
|
||||
async openTabWithNoteWithHoisting(notePath) {
|
||||
async openTabWithNoteWithHoisting(notePath, activate = false) {
|
||||
const noteContext = this.getActiveContext();
|
||||
let hoistedNoteId = 'root';
|
||||
|
||||
@ -239,7 +239,7 @@ export default class TabManager extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
return this.openContextWithNote(notePath, false, null, hoistedNoteId);
|
||||
return this.openContextWithNote(notePath, activate, null, hoistedNoteId);
|
||||
}
|
||||
|
||||
async openContextWithNote(notePath, activate, ntxId, hoistedNoteId = 'root', mainNtxId = null) {
|
||||
|
10
src/public/app/widgets/buttons/open_note_button_widget.js
Normal file
10
src/public/app/widgets/buttons/open_note_button_widget.js
Normal file
@ -0,0 +1,10 @@
|
||||
import ButtonWidget from "./button_widget.js";
|
||||
import appContext from "../../services/app_context.js";
|
||||
|
||||
export default class OpenNoteButtonWidget extends ButtonWidget {
|
||||
targetNote(noteId) {
|
||||
this.onClick(() => appContext.tabManager.openTabWithNoteWithHoisting(noteId, true));
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
@ -20,6 +20,7 @@ import ReadOnlyTextTypeWidget from "./type_widgets/read_only_text.js";
|
||||
import ReadOnlyCodeTypeWidget from "./type_widgets/read_only_code.js";
|
||||
import NoneTypeWidget from "./type_widgets/none.js";
|
||||
import attributeService from "../services/attributes.js";
|
||||
import GlobalLinkMapTypeWidget from "./type_widgets/global_link_map.js";
|
||||
|
||||
const TPL = `
|
||||
<div class="note-detail">
|
||||
@ -45,7 +46,8 @@ const typeWidgetClasses = {
|
||||
'render': RenderTypeWidget,
|
||||
'relation-map': RelationMapTypeWidget,
|
||||
'protected-session': ProtectedSessionTypeWidget,
|
||||
'book': BookTypeWidget
|
||||
'book': BookTypeWidget,
|
||||
'globallinkmap': GlobalLinkMapTypeWidget
|
||||
};
|
||||
|
||||
export default class NoteDetailWidget extends NoteContextAwareWidget {
|
||||
@ -166,6 +168,10 @@ export default class NoteDetailWidget extends NoteContextAwareWidget {
|
||||
type = 'editable-code';
|
||||
}
|
||||
|
||||
if (type === 'special') {
|
||||
type = note.noteId;
|
||||
}
|
||||
|
||||
if (note.isProtected && !protectedSessionHolder.isProtectedSessionAvailable()) {
|
||||
type = 'protected-session';
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
import openService from "../../services/open.js";
|
||||
import TypeWidget from "./type_widget.js";
|
||||
import fileWatcher from "../../services/file_watcher.js";
|
||||
import server from "../../services/server.js";
|
||||
|
||||
const TPL = `
|
||||
<div class="note-detail-file note-detail-printable">
|
||||
|
13
src/public/app/widgets/type_widgets/global_link_map.js
Normal file
13
src/public/app/widgets/type_widgets/global_link_map.js
Normal file
@ -0,0 +1,13 @@
|
||||
import TypeWidget from "./type_widget.js";
|
||||
|
||||
const TPL = `<div class="note-detail-global-link-map note-detail-printable">WHATSUP</div>`;
|
||||
|
||||
export default class GlobalLinkMapTypeWidget extends TypeWidget {
|
||||
static getType() { return "globallinkmap"; }
|
||||
|
||||
doRender() {
|
||||
this.$widget = $(TPL);
|
||||
|
||||
super.doRender();
|
||||
}
|
||||
}
|
@ -268,7 +268,7 @@ class ConsistencyChecks {
|
||||
SELECT noteId, type
|
||||
FROM notes
|
||||
WHERE isDeleted = 0
|
||||
AND type NOT IN ('text', 'code', 'render', 'file', 'image', 'search', 'relation-map', 'book')`,
|
||||
AND type NOT IN ('text', 'code', 'render', 'file', 'image', 'search', 'relation-map', 'book', 'special')`,
|
||||
({noteId, type}) => {
|
||||
if (this.autoFix) {
|
||||
const note = becca.getNote(noteId);
|
||||
|
@ -82,13 +82,13 @@ function getSinglesNoteRoot() {
|
||||
}
|
||||
|
||||
function getGlobalLinkMapNote() {
|
||||
let globalLinkMapNote = becca.getNote('global-link-map');
|
||||
let globalLinkMapNote = becca.getNote('globallinkmap');
|
||||
|
||||
if (!globalLinkMapNote) {
|
||||
globalLinkMapNote = noteService.createNewNote({
|
||||
noteId: 'global-link-map',
|
||||
title: 'global-link-map',
|
||||
type: 'global-link-map',
|
||||
noteId: 'globallinkmap',
|
||||
title: 'Global Link Map',
|
||||
type: 'special',
|
||||
content: '',
|
||||
parentNoteId: getSinglesNoteRoot().noteId
|
||||
}).note;
|
||||
|
Loading…
x
Reference in New Issue
Block a user