trilium/src/public/javascripts/dialogs/import.js

63 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-02-10 21:33:13 +08:00
import treeService from '../services/tree.js';
import treeUtils from "../services/tree_utils.js";
2019-02-10 22:33:56 +08:00
import server from "../services/server.js";
import infoService from "../services/info.js";
2019-02-10 21:33:13 +08:00
const $dialog = $("#import-dialog");
const $form = $("#import-form");
const $noteTitle = $dialog.find(".note-title");
2019-02-10 22:33:56 +08:00
const $fileUploadInput = $("#import-file-upload-input");
2019-02-10 21:33:13 +08:00
async function showDialog() {
glob.activeDialog = $dialog;
const currentNode = treeService.getCurrentNode();
$noteTitle.text(await treeUtils.getNoteTitle(currentNode.data.noteId));
$dialog.modal();
}
$form.submit(() => {
const currentNode = treeService.getCurrentNode();
2019-02-10 22:33:56 +08:00
importIntoNote(currentNode.data.noteId);
2019-02-10 21:33:13 +08:00
return false;
});
2019-02-10 22:33:56 +08:00
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);
}
});
}
2019-02-10 21:33:13 +08:00
export default {
showDialog
}