mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
client: Reduce code duplication
This commit is contained in:
parent
61e0678af4
commit
ace237989c
@ -508,6 +508,26 @@ function createImageSrcUrl(note) {
|
|||||||
return `api/images/${note.noteId}/${encodeURIComponent(note.title)}?timestamp=${Date.now()}`;
|
return `api/images/${note.noteId}/${encodeURIComponent(note.title)}?timestamp=${Date.now()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given a string representation of an SVG, triggers a download of the file on the client device.
|
||||||
|
*
|
||||||
|
* @param {string} nameWithoutExtension the name of the file. The .svg suffix is automatically added to it.
|
||||||
|
* @param {string} svgContent the content of the SVG file download.
|
||||||
|
*/
|
||||||
|
function downloadSvg(nameWithoutExtension, svgContent) {
|
||||||
|
const filename = `${nameWithoutExtension}.svg`;
|
||||||
|
const element = document.createElement('a');
|
||||||
|
element.setAttribute('href', `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgContent)}`);
|
||||||
|
element.setAttribute('download', filename);
|
||||||
|
|
||||||
|
element.style.display = 'none';
|
||||||
|
document.body.appendChild(element);
|
||||||
|
|
||||||
|
element.click();
|
||||||
|
|
||||||
|
document.body.removeChild(element);
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
reloadFrontendApp,
|
reloadFrontendApp,
|
||||||
parseDate,
|
parseDate,
|
||||||
@ -547,5 +567,6 @@ export default {
|
|||||||
escapeRegExp,
|
escapeRegExp,
|
||||||
areObjectsEqual,
|
areObjectsEqual,
|
||||||
copyHtmlToClipboard,
|
copyHtmlToClipboard,
|
||||||
createImageSrcUrl
|
createImageSrcUrl,
|
||||||
|
downloadSvg
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import libraryLoader from "../services/library_loader.js";
|
import libraryLoader from "../services/library_loader.js";
|
||||||
import NoteContextAwareWidget from "./note_context_aware_widget.js";
|
import NoteContextAwareWidget from "./note_context_aware_widget.js";
|
||||||
import server from "../services/server.js";
|
import server from "../services/server.js";
|
||||||
|
import utils from "../services/utils.js";
|
||||||
|
|
||||||
const TPL = `<div class="mermaid-widget">
|
const TPL = `<div class="mermaid-widget">
|
||||||
<style>
|
<style>
|
||||||
@ -138,19 +139,6 @@ export default class MermaidWidget extends NoteContextAwareWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const svg = await this.renderSvg();
|
const svg = await this.renderSvg();
|
||||||
this.download(`${this.note.title}.svg`, svg);
|
utils.downloadSvg(this.note.title, svg);
|
||||||
}
|
|
||||||
|
|
||||||
download(filename, text) {
|
|
||||||
const element = document.createElement('a');
|
|
||||||
element.setAttribute('href', `data:image/svg+xml;charset=utf-8,${encodeURIComponent(text)}`);
|
|
||||||
element.setAttribute('download', filename);
|
|
||||||
|
|
||||||
element.style.display = 'none';
|
|
||||||
document.body.appendChild(element);
|
|
||||||
|
|
||||||
element.click();
|
|
||||||
|
|
||||||
document.body.removeChild(element);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import libraryLoader from "../../services/library_loader.js";
|
import libraryLoader from "../../services/library_loader.js";
|
||||||
import TypeWidget from "./type_widget.js";
|
import TypeWidget from "./type_widget.js";
|
||||||
|
import utils from "../../services/utils.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="note-detail-mind-map note-detail-printable">
|
<div class="note-detail-mind-map note-detail-printable">
|
||||||
@ -114,20 +115,7 @@ export default class MindMapWidget extends TypeWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const svg = await this.renderSvg();
|
const svg = await this.renderSvg();
|
||||||
this.download(`${this.note.title}.svg`, svg);
|
utils.downloadSvg(this.note.title, svg);
|
||||||
}
|
|
||||||
|
|
||||||
download(filename, text) {
|
|
||||||
const element = document.createElement('a');
|
|
||||||
element.setAttribute('href', `data:image/svg+xml;charset=utf-8,${encodeURIComponent(text)}`);
|
|
||||||
element.setAttribute('download', filename);
|
|
||||||
|
|
||||||
element.style.display = 'none';
|
|
||||||
document.body.appendChild(element);
|
|
||||||
|
|
||||||
element.click();
|
|
||||||
|
|
||||||
document.body.removeChild(element);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user