fixes in opml export and note content loading

This commit is contained in:
zadam 2019-02-10 22:45:44 +01:00
parent 6be8a3f343
commit 8aa7e2d0a0
4 changed files with 13 additions and 4 deletions

View file

@ -67,6 +67,10 @@ class Note extends Entity {
if (!this.noteContent) {
throw new Error("Note content not found for noteId=" + this.noteId);
}
if (this.isStringNote()) {
this.noteContent.content = this.noteContent.content.toString("UTF-8");
}
}
return this.noteContent;
@ -126,6 +130,11 @@ class Note extends Entity {
return (this.type === "code" || this.type === "file" || this.type === "render") && this.mime === "text/html";
}
/** @returns {boolean} true if the note has string content (not binary) */
isStringNote() {
return ["text", "code", "relation-map"].includes(this.type) || this.mime.startsWith('text/');
}
/** @returns {string} JS script environment - either "frontend" or "backend" */
getScriptEnv() {
if (this.isHtml() || (this.isJavaScript() && this.mime.endsWith('env=frontend'))) {

View file

@ -21,6 +21,7 @@ let exportId = '';
async function showDialog(defaultType) {
// each opening of the dialog resets the exportId so we don't associate it with previous exports anymore
exportId = '';
$exportButton.removeAttr("disabled");
$exportNoteCountWrapper.hide();
$exportNoteCount.text('0');
@ -45,6 +46,7 @@ async function showDialog(defaultType) {
}
$form.submit(() => {
// disabling so export can't be triggered again
$exportButton.attr("disabled", "disabled");
const exportType = $dialog.find("input[name='export-type']:checked").val();

View file

@ -12,11 +12,9 @@ async function getNote(req) {
return [404, "Note " + noteId + " has not been found."];
}
if (["text", "code", "relation-map"].includes(note.type) || note.mime.startsWith('text/')) {
if (note.isStringNote()) {
const noteContent = await note.getNoteContent();
noteContent.content = noteContent.content.toString("UTF-8");
if (note.type === 'file') {
noteContent.content = noteContent.content.substr(0, 10000);
}

View file

@ -10,7 +10,7 @@ async function exportToOpml(exportContext, branch, res) {
const branch = await repository.getBranch(branchId);
const note = await branch.getNote();
if (await note.hasLabel('excludeFromExport')) {
if (!note.isStringNote() || await note.hasLabel('excludeFromExport')) {
return;
}