mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
launchbar WIP
This commit is contained in:
parent
df7c089344
commit
2694bcff67
3
src/public/app/doc_notes/launchbar_note_shortcut.html
Normal file
3
src/public/app/doc_notes/launchbar_note_shortcut.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<p>Please define the target note in the promoted attributes.</p>
|
||||||
|
|
||||||
|
<p>Launchbar displays the title / icon from the shortcut which does not necessarily mirrors those of the target note.</p>
|
3
src/public/app/doc_notes/launchbar_script_shortcut.html
Normal file
3
src/public/app/doc_notes/launchbar_script_shortcut.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<p>Please define the target script note in the promoted attributes. This script will be executed immediately upon clicking the launchbar icon.</p>
|
||||||
|
|
||||||
|
<p>Launchbar displays the title / icon from the shortcut which does not necessarily mirrors those of the target script note.</p>
|
6
src/public/app/doc_notes/launchbar_spacer.html
Normal file
6
src/public/app/doc_notes/launchbar_spacer.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<p>Spacer allows you to visually group shortcuts. You can configure it in the promoted attributes:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>baseSize</code> - defines size in pixels (if there's enough space)</li>
|
||||||
|
<li><code>growthFactor</code> - set to 0 if you want the spacer to be of constant <code>baseSize</code>, with positive value it will grow.</li>
|
||||||
|
</ul>
|
1
src/public/app/doc_notes/launchbar_widget_shortcut.html
Normal file
1
src/public/app/doc_notes/launchbar_widget_shortcut.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<p>Please define the target widget note in the promoted attributes. The widget will be used to render the launchbar icon.</p>
|
@ -1,8 +1,6 @@
|
|||||||
import treeService from '../services/tree.js';
|
import treeService from '../services/tree.js';
|
||||||
import froca from "../services/froca.js";
|
import froca from "../services/froca.js";
|
||||||
import noteCreateService from "../services/note_create.js";
|
|
||||||
import contextMenu from "./context_menu.js";
|
import contextMenu from "./context_menu.js";
|
||||||
import appContext from "../services/app_context.js";
|
|
||||||
|
|
||||||
export default class ShortcutContextMenu {
|
export default class ShortcutContextMenu {
|
||||||
/**
|
/**
|
||||||
@ -36,6 +34,7 @@ export default class ShortcutContextMenu {
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
(isVisibleRoot || isAvailableRoot) ? { title: 'Add note shortcut', command: 'addNoteShortcut', uiIcon: "bx bx-plus" } : null,
|
(isVisibleRoot || isAvailableRoot) ? { title: 'Add note shortcut', command: 'addNoteShortcut', uiIcon: "bx bx-plus" } : null,
|
||||||
|
(isVisibleRoot || isAvailableRoot) ? { title: 'Add script shortcut', command: 'addScriptShortcut', uiIcon: "bx bx-plus" } : null,
|
||||||
(isVisibleRoot || isAvailableRoot) ? { title: 'Add widget shortcut', command: 'addWidgetShortcut', uiIcon: "bx bx-plus" } : null,
|
(isVisibleRoot || isAvailableRoot) ? { title: 'Add widget shortcut', command: 'addWidgetShortcut', uiIcon: "bx bx-plus" } : null,
|
||||||
(isVisibleRoot || isAvailableRoot) ? { title: 'Add spacer', command: 'addSpacerShortcut', uiIcon: "bx bx-plus" } : null,
|
(isVisibleRoot || isAvailableRoot) ? { title: 'Add spacer', command: 'addSpacerShortcut', uiIcon: "bx bx-plus" } : null,
|
||||||
(isVisibleRoot || isAvailableRoot) ? { title: "----" } : null,
|
(isVisibleRoot || isAvailableRoot) ? { title: "----" } : null,
|
||||||
|
@ -54,10 +54,10 @@ async function pasteInto(parentBranchId) {
|
|||||||
await branchService.cloneNoteToBranch(clipboardNote.noteId, parentBranchId);
|
await branchService.cloneNoteToBranch(clipboardNote.noteId, parentBranchId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy will keep clipboardBranchIds and clipboardMode so it's possible to paste into multiple places
|
// copy will keep clipboardBranchIds and clipboardMode, so it's possible to paste into multiple places
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
toastService.throwError("Unrecognized clipboard mode=" + mode);
|
toastService.throwError("Unrecognized clipboard mode=" + clipboardMode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1521,6 +1521,10 @@ export default class NoteTreeWidget extends NoteContextAwareWidget {
|
|||||||
this.createShortcutNote(node, 'note');
|
this.createShortcutNote(node, 'note');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addScriptShortcutCommand({node}) {
|
||||||
|
this.createShortcutNote(node, 'script');
|
||||||
|
}
|
||||||
|
|
||||||
addWidgetShortcutCommand({node}) {
|
addWidgetShortcutCommand({node}) {
|
||||||
this.createShortcutNote(node, 'widget');
|
this.createShortcutNote(node, 'widget');
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
const treeService = require("./tree.js");
|
const treeService = require("./tree");
|
||||||
const sql = require("./sql.js");
|
const sql = require("./sql");
|
||||||
|
|
||||||
function moveBranchToNote(sourceBranch, targetParentNoteId) {
|
function moveBranchToNote(sourceBranch, targetParentNoteId) {
|
||||||
if (sourceBranch.parentNoteId === targetParentNoteId) {
|
if (sourceBranch.parentNoteId === targetParentNoteId) {
|
||||||
|
@ -394,6 +394,17 @@ function createShortcut(parentNoteId, type) {
|
|||||||
}).note;
|
}).note;
|
||||||
|
|
||||||
note.addLabel('relation:targetNote', 'promoted');
|
note.addLabel('relation:targetNote', 'promoted');
|
||||||
|
note.addLabel('docName', 'launchbar_note_shortcut');
|
||||||
|
} else if (type === 'script') {
|
||||||
|
note = noteService.createNewNote({
|
||||||
|
title: "Script shortcut",
|
||||||
|
type: 'shortcut',
|
||||||
|
content: '',
|
||||||
|
parentNoteId: parentNoteId
|
||||||
|
}).note;
|
||||||
|
|
||||||
|
note.addLabel('relation:script', 'promoted');
|
||||||
|
note.addLabel('docName', 'launchbar_script_shortcut');
|
||||||
} else if (type === 'widget') {
|
} else if (type === 'widget') {
|
||||||
note = noteService.createNewNote({
|
note = noteService.createNewNote({
|
||||||
title: "Widget shortcut",
|
title: "Widget shortcut",
|
||||||
@ -403,6 +414,7 @@ function createShortcut(parentNoteId, type) {
|
|||||||
}).note;
|
}).note;
|
||||||
|
|
||||||
note.addLabel('relation:widget', 'promoted');
|
note.addLabel('relation:widget', 'promoted');
|
||||||
|
note.addLabel('docName', 'launchbar_widget_shortcut');
|
||||||
} else if (type === 'spacer') {
|
} else if (type === 'spacer') {
|
||||||
note = noteService.createNewNote({
|
note = noteService.createNewNote({
|
||||||
title: "Spacer",
|
title: "Spacer",
|
||||||
@ -417,6 +429,7 @@ function createShortcut(parentNoteId, type) {
|
|||||||
note.addLabel('baseSize', '40');
|
note.addLabel('baseSize', '40');
|
||||||
note.addLabel('label:growthFactor', 'promoted,number');
|
note.addLabel('label:growthFactor', 'promoted,number');
|
||||||
note.addLabel('growthFactor', '0');
|
note.addLabel('growthFactor', '0');
|
||||||
|
note.addLabel('docName', 'launchbar_spacer');
|
||||||
} else {
|
} else {
|
||||||
throw new Error(`Unrecognized shortcut type ${type}`);
|
throw new Error(`Unrecognized shortcut type ${type}`);
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,16 @@ function validateParentChild(parentNoteId, childNoteId, branchId = null) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const parentNoteIsShortcut = becca.getNote(parentNoteId).type === 'shortcut';
|
||||||
|
const childNoteIsShortcut = becca.getNote(childNoteId).type === 'shortcut';
|
||||||
|
|
||||||
|
if (parentNoteIsShortcut !== childNoteIsShortcut) {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: 'Moving/cloning is not possible between shortcuts / normal notes.'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
return { success: true };
|
return { success: true };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user