mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 09:58:32 +02:00
import/export refactorign
This commit is contained in:
parent
45ddfef30a
commit
51175e3676
@ -12,7 +12,6 @@ import exportDialog from './dialogs/export.js';
|
|||||||
import cloning from './services/cloning.js';
|
import cloning from './services/cloning.js';
|
||||||
import contextMenu from './services/tree_context_menu.js';
|
import contextMenu from './services/tree_context_menu.js';
|
||||||
import dragAndDropSetup from './services/drag_and_drop.js';
|
import dragAndDropSetup from './services/drag_and_drop.js';
|
||||||
import exportService from './services/export.js';
|
|
||||||
import link from './services/link.js';
|
import link from './services/link.js';
|
||||||
import messagingService from './services/messaging.js';
|
import messagingService from './services/messaging.js';
|
||||||
import noteDetailService from './services/note_detail.js';
|
import noteDetailService from './services/note_detail.js';
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import treeService from '../services/tree.js';
|
import treeService from '../services/tree.js';
|
||||||
import treeUtils from "../services/tree_utils.js";
|
import treeUtils from "../services/tree_utils.js";
|
||||||
import exportService from "../services/export.js";
|
import utils from "../services/utils.js";
|
||||||
|
import protectedSessionHolder from "../services/protected_session_holder.js";
|
||||||
|
|
||||||
const $dialog = $("#export-dialog");
|
const $dialog = $("#export-dialog");
|
||||||
const $form = $("#export-form");
|
const $form = $("#export-form");
|
||||||
@ -46,13 +47,19 @@ $form.submit(() => {
|
|||||||
|
|
||||||
const currentNode = treeService.getCurrentNode();
|
const currentNode = treeService.getCurrentNode();
|
||||||
|
|
||||||
exportService.exportBranch(currentNode.data.branchId, exportType, exportFormat);
|
exportBranch(currentNode.data.branchId, exportType, exportFormat);
|
||||||
|
|
||||||
$dialog.modal('hide');
|
$dialog.modal('hide');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function exportBranch(branchId, type, format) {
|
||||||
|
const url = utils.getHost() + `/api/notes/${branchId}/export/${type}/${format}?protectedSessionId=` + encodeURIComponent(protectedSessionHolder.getProtectedSessionId());
|
||||||
|
|
||||||
|
utils.download(url);
|
||||||
|
}
|
||||||
|
|
||||||
$('input[name=export-type]').change(function () {
|
$('input[name=export-type]').change(function () {
|
||||||
if (this.value === 'subtree') {
|
if (this.value === 'subtree') {
|
||||||
if ($("input[name=export-subtree-format]:checked").length === 0) {
|
if ($("input[name=export-subtree-format]:checked").length === 0) {
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import treeService from '../services/tree.js';
|
import treeService from '../services/tree.js';
|
||||||
import exportService from "../services/export.js";
|
|
||||||
import treeUtils from "../services/tree_utils.js";
|
import treeUtils from "../services/tree_utils.js";
|
||||||
|
import server from "../services/server.js";
|
||||||
|
import infoService from "../services/info.js";
|
||||||
|
|
||||||
const $dialog = $("#import-dialog");
|
const $dialog = $("#import-dialog");
|
||||||
const $form = $("#import-form");
|
const $form = $("#import-form");
|
||||||
const $noteTitle = $dialog.find(".note-title");
|
const $noteTitle = $dialog.find(".note-title");
|
||||||
|
const $fileUploadInput = $("#import-file-upload-input");
|
||||||
|
|
||||||
async function showDialog() {
|
async function showDialog() {
|
||||||
glob.activeDialog = $dialog;
|
glob.activeDialog = $dialog;
|
||||||
@ -18,13 +20,44 @@ async function showDialog() {
|
|||||||
$form.submit(() => {
|
$form.submit(() => {
|
||||||
const currentNode = treeService.getCurrentNode();
|
const currentNode = treeService.getCurrentNode();
|
||||||
|
|
||||||
exportService.importIntoNote(currentNode.data.noteId).then(() => {
|
importIntoNote(currentNode.data.noteId);
|
||||||
$dialog.modal('hide');
|
|
||||||
});
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function importIntoNote(importNoteId) {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append('upload', $fileUploadInput[0].files[0]);
|
||||||
|
|
||||||
|
// this is done to reset the field otherwise triggering import same file again would not work
|
||||||
|
// https://github.com/zadam/trilium/issues/388
|
||||||
|
$fileUploadInput.val('');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: baseApiUrl + 'notes/' + importNoteId + '/import',
|
||||||
|
headers: server.getHeaders(),
|
||||||
|
data: formData,
|
||||||
|
dataType: 'json',
|
||||||
|
type: 'POST',
|
||||||
|
contentType: false, // NEEDED, DON'T REMOVE THIS
|
||||||
|
processData: false, // NEEDED, DON'T REMOVE THIS
|
||||||
|
})
|
||||||
|
.fail((xhr, status, error) => alert('Import error: ' + xhr.responseText))
|
||||||
|
.done(async note => {
|
||||||
|
$dialog.modal('hide');
|
||||||
|
|
||||||
|
infoService.showMessage("Import finished successfully.")
|
||||||
|
|
||||||
|
await treeService.reload();
|
||||||
|
|
||||||
|
if (note) {
|
||||||
|
const node = await treeService.activateNote(note.noteId);
|
||||||
|
|
||||||
|
node.setExpanded(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
showDialog
|
showDialog
|
||||||
}
|
}
|
@ -1,46 +0,0 @@
|
|||||||
import treeService from './tree.js';
|
|
||||||
import protectedSessionHolder from './protected_session_holder.js';
|
|
||||||
import utils from './utils.js';
|
|
||||||
import server from './server.js';
|
|
||||||
|
|
||||||
const $fileUploadInput = $("#import-file-upload-input");
|
|
||||||
|
|
||||||
function exportBranch(branchId, type, format) {
|
|
||||||
const url = utils.getHost() + `/api/notes/${branchId}/export/${type}/${format}?protectedSessionId=` + encodeURIComponent(protectedSessionHolder.getProtectedSessionId());
|
|
||||||
|
|
||||||
utils.download(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function importIntoNote(importNoteId) {
|
|
||||||
const formData = new FormData();
|
|
||||||
formData.append('upload', $fileUploadInput[0].files[0]);
|
|
||||||
|
|
||||||
// this is done to reset the field otherwise triggering import same file again would not work
|
|
||||||
// https://github.com/zadam/trilium/issues/388
|
|
||||||
$fileUploadInput.val('');
|
|
||||||
|
|
||||||
await $.ajax({
|
|
||||||
url: baseApiUrl + 'notes/' + importNoteId + '/import',
|
|
||||||
headers: server.getHeaders(),
|
|
||||||
data: formData,
|
|
||||||
dataType: 'json',
|
|
||||||
type: 'POST',
|
|
||||||
contentType: false, // NEEDED, DON'T REMOVE THIS
|
|
||||||
processData: false, // NEEDED, DON'T REMOVE THIS
|
|
||||||
})
|
|
||||||
.fail((xhr, status, error) => alert('Import error: ' + xhr.responseText))
|
|
||||||
.done(async note => {
|
|
||||||
await treeService.reload();
|
|
||||||
|
|
||||||
if (note) {
|
|
||||||
const node = await treeService.activateNote(note.noteId);
|
|
||||||
|
|
||||||
node.setExpanded(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
exportBranch,
|
|
||||||
importIntoNote
|
|
||||||
};
|
|
Loading…
x
Reference in New Issue
Block a user