mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
import & export fixed
This commit is contained in:
parent
96a7b4e45e
commit
55d1f9e9f0
@ -116,46 +116,6 @@ if (utils.isElectron()) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const $noteTabContainer = $("#note-tab-container");
|
|
||||||
|
|
||||||
$noteTabContainer.on("click", ".export-note-button", function () {
|
|
||||||
if ($(this).hasClass("disabled")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
import('./dialogs/export.js').then(d => d.showDialog(appContext.getMainNoteTree().getActiveNode(), 'single'));
|
|
||||||
});
|
|
||||||
|
|
||||||
$noteTabContainer.on("click", ".import-files-button",
|
|
||||||
() => import('./dialogs/import.js').then(d => d.showDialog(appContext.getMainNoteTree().getActiveNode())));
|
|
||||||
|
|
||||||
async function printActiveNote() {
|
|
||||||
if ($(this).hasClass("disabled")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const $tabContext = appContext.getActiveTabContext();
|
|
||||||
if (!$tabContext) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await libraryLoader.requireLibrary(libraryLoader.PRINT_THIS);
|
|
||||||
|
|
||||||
$tabContext.$tabContent.find('.note-detail-printable:visible').printThis({
|
|
||||||
header: $("<h2>").text($tabContext.note && $tabContext.note.title).prop('outerHTML') ,
|
|
||||||
importCSS: false,
|
|
||||||
loadCSS: [
|
|
||||||
"libraries/codemirror/codemirror.css",
|
|
||||||
"libraries/ckeditor/ckeditor-content.css"
|
|
||||||
],
|
|
||||||
debug: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
keyboardActionService.setGlobalActionHandler("PrintActiveNote", printActiveNote);
|
|
||||||
|
|
||||||
$noteTabContainer.on("click", ".print-note-button", printActiveNote);
|
|
||||||
|
|
||||||
$('[data-toggle="tooltip"]').tooltip({
|
$('[data-toggle="tooltip"]').tooltip({
|
||||||
html: true
|
html: true
|
||||||
});
|
});
|
||||||
|
@ -2,6 +2,7 @@ import treeUtils from "../services/tree_utils.js";
|
|||||||
import utils from "../services/utils.js";
|
import utils from "../services/utils.js";
|
||||||
import ws from "../services/ws.js";
|
import ws from "../services/ws.js";
|
||||||
import toastService from "../services/toast.js";
|
import toastService from "../services/toast.js";
|
||||||
|
import treeCache from "../services/tree_cache.js";
|
||||||
|
|
||||||
const $dialog = $("#export-dialog");
|
const $dialog = $("#export-dialog");
|
||||||
const $form = $("#export-form");
|
const $form = $("#export-form");
|
||||||
@ -16,7 +17,7 @@ const $opmlVersions = $("#opml-versions");
|
|||||||
let taskId = '';
|
let taskId = '';
|
||||||
let branchId = null;
|
let branchId = null;
|
||||||
|
|
||||||
export async function showDialog(node, defaultType) {
|
export async function showDialog(notePath, defaultType) {
|
||||||
utils.closeActiveDialog();
|
utils.closeActiveDialog();
|
||||||
|
|
||||||
// each opening of the dialog resets the taskId so we don't associate it with previous exports anymore
|
// each opening of the dialog resets the taskId so we don't associate it with previous exports anymore
|
||||||
@ -42,9 +43,11 @@ export async function showDialog(node, defaultType) {
|
|||||||
|
|
||||||
$dialog.modal();
|
$dialog.modal();
|
||||||
|
|
||||||
branchId = node.data.branchId;
|
const {noteId, parentNoteId} = treeUtils.getNoteIdAndParentIdFromNotePath(notePath);
|
||||||
|
|
||||||
const noteTitle = await treeUtils.getNoteTitle(node.data.noteId);
|
branchId = await treeCache.getBranchId(parentNoteId, noteId);
|
||||||
|
|
||||||
|
const noteTitle = await treeUtils.getNoteTitle(noteId);
|
||||||
|
|
||||||
$noteTitle.html(noteTitle);
|
$noteTitle.html(noteTitle);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ const $explodeArchivesCheckbox = $("#explode-archives-checkbox");
|
|||||||
|
|
||||||
let parentNoteId = null;
|
let parentNoteId = null;
|
||||||
|
|
||||||
export async function showDialog(node) {
|
export async function showDialog(noteId) {
|
||||||
utils.closeActiveDialog();
|
utils.closeActiveDialog();
|
||||||
|
|
||||||
$fileUploadInput.val('').trigger('change'); // to trigger Import button disabling listener below
|
$fileUploadInput.val('').trigger('change'); // to trigger Import button disabling listener below
|
||||||
@ -28,7 +28,7 @@ export async function showDialog(node) {
|
|||||||
|
|
||||||
glob.activeDialog = $dialog;
|
glob.activeDialog = $dialog;
|
||||||
|
|
||||||
parentNoteId = node.data.noteId;
|
parentNoteId = noteId;
|
||||||
|
|
||||||
$noteTitle.text(await treeUtils.getNoteTitle(parentNoteId));
|
$noteTitle.text(await treeUtils.getNoteTitle(parentNoteId));
|
||||||
|
|
||||||
|
@ -96,6 +96,10 @@ class TabContext extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isActive() {
|
||||||
|
return this.appContext.activeTabId === this.tabId;
|
||||||
|
}
|
||||||
|
|
||||||
getTabState() {
|
getTabState() {
|
||||||
if (!this.notePath) {
|
if (!this.notePath) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -193,6 +193,12 @@ class TreeCache {
|
|||||||
return this.branches[branchId];
|
return this.branches[branchId];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getBranchId(parentNoteId, childNoteId) {
|
||||||
|
const child = await this.getNote(childNoteId);
|
||||||
|
|
||||||
|
return child.parentToBranch[parentNoteId];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const treeCache = new TreeCache();
|
const treeCache = new TreeCache();
|
||||||
|
@ -99,9 +99,9 @@ class TreeContextMenu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async selectContextMenuItem(event, cmd) {
|
async selectContextMenuItem(event, cmd) {
|
||||||
if (cmd === 'openInTab') {
|
const notePath = await treeUtils.getNotePath(this.node);
|
||||||
const notePath = await treeUtils.getNotePath(this.node);
|
|
||||||
|
|
||||||
|
if (cmd === 'openInTab') {
|
||||||
noteDetailService.openInTab(notePath, false);
|
noteDetailService.openInTab(notePath, false);
|
||||||
}
|
}
|
||||||
else if (cmd.startsWith("insertNoteAfter")) {
|
else if (cmd.startsWith("insertNoteAfter")) {
|
||||||
@ -160,11 +160,11 @@ class TreeContextMenu {
|
|||||||
}
|
}
|
||||||
else if (cmd === "export") {
|
else if (cmd === "export") {
|
||||||
const exportDialog = await import('../dialogs/export.js');
|
const exportDialog = await import('../dialogs/export.js');
|
||||||
exportDialog.showDialog(this.node,"subtree");
|
exportDialog.showDialog(notePath,"subtree");
|
||||||
}
|
}
|
||||||
else if (cmd === "importIntoNote") {
|
else if (cmd === "importIntoNote") {
|
||||||
const importDialog = await import('../dialogs/import.js');
|
const importDialog = await import('../dialogs/import.js');
|
||||||
importDialog.showDialog(this.node);
|
importDialog.showDialog(this.node.data.noteId);
|
||||||
}
|
}
|
||||||
else if (cmd === "collapseSubtree") {
|
else if (cmd === "collapseSubtree") {
|
||||||
this.treeWidget.collapseTree(this.node);
|
this.treeWidget.collapseTree(this.node);
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
import TabAwareWidget from "./tab_aware_widget.js";
|
import TabAwareWidget from "./tab_aware_widget.js";
|
||||||
|
import appContext from "../services/app_context.js";
|
||||||
|
import libraryLoader from "../services/library_loader.js";
|
||||||
|
import keyboardActionService from "../services/keyboard_actions.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="dropdown note-actions">
|
<div class="dropdown note-actions">
|
||||||
@ -37,7 +40,20 @@ export default class NoteActionsWidget extends TabAwareWidget {
|
|||||||
this.$showNoteInfoButton = this.$widget.find('.show-note-info-button');
|
this.$showNoteInfoButton = this.$widget.find('.show-note-info-button');
|
||||||
this.$showNoteInfoButton.on('click', e => this.triggerEvent(e, 'showNoteInfo'));
|
this.$showNoteInfoButton.on('click', e => this.triggerEvent(e, 'showNoteInfo'));
|
||||||
|
|
||||||
|
this.$printNoteButton = this.$widget.find('.print-note-button');
|
||||||
|
this.$printNoteButton.on('click', e => this.triggerEvent(e, 'printActiveNote'));
|
||||||
|
|
||||||
this.$exportNoteButton = this.$widget.find('.export-note-button');
|
this.$exportNoteButton = this.$widget.find('.export-note-button');
|
||||||
|
this.$exportNoteButton.on("click", () => {
|
||||||
|
if (this.$exportNoteButton.hasClass("disabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
import('../dialogs/export.js').then(d => d.showDialog(this.tabContext.notePath, 'single'));
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$importNoteButton = this.$widget.find('.import-files-button');
|
||||||
|
this.$importNoteButton.on("click", () => import('../dialogs/import.js').then(d => d.showDialog(this.tabContext.note.noteId)));
|
||||||
|
|
||||||
return this.$widget;
|
return this.$widget;
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import protectedSessionHolder from "../services/protected_session_holder.js";
|
|||||||
import appContext from "../services/app_context.js";
|
import appContext from "../services/app_context.js";
|
||||||
import SpacedUpdate from "../services/spaced_update.js";
|
import SpacedUpdate from "../services/spaced_update.js";
|
||||||
import server from "../services/server.js";
|
import server from "../services/server.js";
|
||||||
|
import libraryLoader from "../services/library_loader.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="note-detail">
|
<div class="note-detail">
|
||||||
@ -182,4 +183,22 @@ export default class NoteDetailWidget extends TabAwareWidget {
|
|||||||
await this.spacedUpdate.updateNowIfNecessary();
|
await this.spacedUpdate.updateNowIfNecessary();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async printActiveNoteListener() {
|
||||||
|
if (!this.tabContext.isActive()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await libraryLoader.requireLibrary(libraryLoader.PRINT_THIS);
|
||||||
|
|
||||||
|
this.$widget.find('.note-detail-printable:visible').printThis({
|
||||||
|
header: $("<h2>").text(this.tabContext.note && this.tabContext.note.title).prop('outerHTML') ,
|
||||||
|
importCSS: false,
|
||||||
|
loadCSS: [
|
||||||
|
"libraries/codemirror/codemirror.css",
|
||||||
|
"libraries/ckeditor/ckeditor-content.css"
|
||||||
|
],
|
||||||
|
debug: true
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user