mirror of https://github.com/TriliumNext/Notes
unified export dialog, WIP
parent
3e351bd8d3
commit
ee23bcc783
@ -0,0 +1,67 @@
|
|||||||
|
import treeService from '../services/tree.js';
|
||||||
|
import treeUtils from "../services/tree_utils.js";
|
||||||
|
import exportService from "../services/export.js";
|
||||||
|
|
||||||
|
const $dialog = $("#export-dialog");
|
||||||
|
const $form = $("#export-form");
|
||||||
|
const $noteTitle = $dialog.find(".note-title");
|
||||||
|
const $subtreeFormats = $("#export-subtree-formats");
|
||||||
|
const $singleFormats = $("#export-single-formats");
|
||||||
|
const $subtreeType = $("#export-type-subtree");
|
||||||
|
const $singleType = $("#export-type-single");
|
||||||
|
|
||||||
|
async function showDialog(defaultType) {
|
||||||
|
if (defaultType === 'subtree') {
|
||||||
|
$subtreeType.prop("checked", true).change();
|
||||||
|
}
|
||||||
|
else if (defaultType === 'single') {
|
||||||
|
$singleType.prop("checked", true).change();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error("Unrecognized type " + defaultType);
|
||||||
|
}
|
||||||
|
|
||||||
|
glob.activeDialog = $dialog;
|
||||||
|
|
||||||
|
$dialog.modal();
|
||||||
|
|
||||||
|
const currentNode = treeService.getCurrentNode();
|
||||||
|
const noteTitle = await treeUtils.getNoteTitle(currentNode.data.noteId);
|
||||||
|
|
||||||
|
$noteTitle.html(noteTitle);
|
||||||
|
}
|
||||||
|
|
||||||
|
$form.submit(() => {
|
||||||
|
const exportType = $dialog.find("input[name='export-type']:checked").val();
|
||||||
|
|
||||||
|
const currentNode = treeService.getCurrentNode();
|
||||||
|
|
||||||
|
exportService.exportNote(currentNode.data.branchId, exportType);
|
||||||
|
|
||||||
|
$dialog.modal('hide');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name=export-type]').change(function () {
|
||||||
|
if (this.value === 'subtree') {
|
||||||
|
if ($("input[name=export-subtree-format]:checked").length === 0) {
|
||||||
|
$("input[name=export-subtree-format]:first").prop("checked", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$subtreeFormats.slideDown();
|
||||||
|
$singleFormats.slideUp();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ($("input[name=export-single-format]:checked").length === 0) {
|
||||||
|
$("input[name=export-single-format]:first").prop("checked", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$subtreeFormats.slideUp();
|
||||||
|
$singleFormats.slideDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export default {
|
||||||
|
showDialog
|
||||||
|
};
|
||||||
@ -1,35 +0,0 @@
|
|||||||
import treeService from '../services/tree.js';
|
|
||||||
import server from '../services/server.js';
|
|
||||||
import treeUtils from "../services/tree_utils.js";
|
|
||||||
import exportService from "../services/export.js";
|
|
||||||
|
|
||||||
const $dialog = $("#export-subtree-dialog");
|
|
||||||
const $form = $("#export-subtree-form");
|
|
||||||
const $noteTitle = $dialog.find(".note-title");
|
|
||||||
|
|
||||||
async function showDialog() {
|
|
||||||
glob.activeDialog = $dialog;
|
|
||||||
|
|
||||||
$dialog.modal();
|
|
||||||
|
|
||||||
const currentNode = treeService.getCurrentNode();
|
|
||||||
const noteTitle = await treeUtils.getNoteTitle(currentNode.data.noteId);
|
|
||||||
|
|
||||||
$noteTitle.html(noteTitle);
|
|
||||||
}
|
|
||||||
|
|
||||||
$form.submit(() => {
|
|
||||||
const exportFormat = $dialog.find("input[name='export-format']:checked").val();
|
|
||||||
|
|
||||||
const currentNode = treeService.getCurrentNode();
|
|
||||||
|
|
||||||
exportService.exportSubtree(currentNode.data.branchId, exportFormat);
|
|
||||||
|
|
||||||
$dialog.modal('hide');
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
export default {
|
|
||||||
showDialog
|
|
||||||
};
|
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
<div id="export-dialog" class="modal fade mx-auto" tabindex="-1" role="dialog">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title">Export note</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<form id="export-form">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-type" id="export-type-subtree" value="subtree">
|
||||||
|
<label class="form-check-label" for="export-type-subtree">this note and all of its descendants</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="export-subtree-formats" class="format-choice">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-subtree-format" id="export-subtree-format-html"
|
||||||
|
value="html">
|
||||||
|
<label class="form-check-label" for="export-subtree-format-html">HTML in TAR archiv - this is recommended since this preserves all the formatting.</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-subtree-format" id="export-subtree-format-markdown"
|
||||||
|
value="markdown-tar">
|
||||||
|
<label class="form-check-label" for="export-subtree-format-markdown">
|
||||||
|
Markdown - this preserves most of the formatting.
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-subtree-format" id="export-subtree-format-opml"
|
||||||
|
value="opml">
|
||||||
|
<label class="form-check-label" for="export-subtree-format-opml">
|
||||||
|
OPML - outliner interchange format for text only. Formatting, images and files are not included.
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-type" id="export-type-single" value="single">
|
||||||
|
<label class="form-check-label" for="export-type-single">only this note without its descendants</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="export-single-formats" class="format-choice">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-single-format" id="export-single-format-html" value="html">
|
||||||
|
<label class="form-check-label" for="export-single-format-html">HTML - this is recommended since this preserves all the formatting.</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="export-single-format" id="export-single-format-markdown"
|
||||||
|
value="markdown-tar">
|
||||||
|
<label class="form-check-label" for="export-single-format-markdown">
|
||||||
|
Markdown - this preserves most of the formatting.
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-primary btn-sm">Export</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@ -1,46 +0,0 @@
|
|||||||
<div id="export-subtree-dialog" class="modal fade mx-auto" tabindex="-1" role="dialog">
|
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title">Export subtree</h5>
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
||||||
<span aria-hidden="true">×</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<form id="export-subtree-form">
|
|
||||||
<div class="modal-body">
|
|
||||||
<div>Export note "<span class="note-title"></span>" and its subtree in the following format:</div>
|
|
||||||
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="radio" name="export-format" id="export-format-tar" value="native-tar" checked>
|
|
||||||
<label class="form-check-label" for="export-format-tar">Native TAR - this is Trilium's native format which preserves all notes' data & metadata.</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="radio" name="export-format" id="export-format-opml" value="opml">
|
|
||||||
<label class="form-check-label" for="export-format-opml">
|
|
||||||
OPML - standard outliner interchange format for text only. Formatting, images, files are not included.
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<div class="form-check disabled">
|
|
||||||
<input class="form-check-input" type="radio" name="export-format" id="export-format-markdown"
|
|
||||||
value="markdown-tar">
|
|
||||||
<label class="form-check-label" for="export-format-markdown">
|
|
||||||
Markdown - TAR archive of Markdown formatted notes
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button class="btn btn-primary btn-sm">Export</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
Loading…
Reference in New Issue