mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-25 07:17:04 +08:00 
			
		
		
		
	import/export refactorign
This commit is contained in:
		
							parent
							
								
									45ddfef30a
								
							
						
					
					
						commit
						51175e3676
					
				
					 4 changed files with 46 additions and 53 deletions
				
			
		|  | @ -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…
	
	Add table
		
		Reference in a new issue