mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01: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()}`;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 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 {
 | 
			
		||||
    reloadFrontendApp,
 | 
			
		||||
    parseDate,
 | 
			
		||||
@ -547,5 +567,6 @@ export default {
 | 
			
		||||
    escapeRegExp,
 | 
			
		||||
    areObjectsEqual,
 | 
			
		||||
    copyHtmlToClipboard,
 | 
			
		||||
    createImageSrcUrl
 | 
			
		||||
    createImageSrcUrl,
 | 
			
		||||
    downloadSvg
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
import libraryLoader from "../services/library_loader.js";
 | 
			
		||||
import NoteContextAwareWidget from "./note_context_aware_widget.js";
 | 
			
		||||
import server from "../services/server.js";
 | 
			
		||||
import utils from "../services/utils.js";
 | 
			
		||||
 | 
			
		||||
const TPL = `<div class="mermaid-widget">
 | 
			
		||||
    <style>
 | 
			
		||||
@ -138,19 +139,6 @@ export default class MermaidWidget extends NoteContextAwareWidget {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const svg = await this.renderSvg();
 | 
			
		||||
        this.download(`${this.note.title}.svg`, 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);
 | 
			
		||||
        utils.downloadSvg(this.note.title, svg);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
import libraryLoader from "../../services/library_loader.js";
 | 
			
		||||
import TypeWidget from "./type_widget.js";
 | 
			
		||||
import utils from "../../services/utils.js";
 | 
			
		||||
 | 
			
		||||
const TPL = `
 | 
			
		||||
<div class="note-detail-mind-map note-detail-printable">
 | 
			
		||||
@ -114,20 +115,7 @@ export default class MindMapWidget extends TypeWidget {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const svg = await this.renderSvg();
 | 
			
		||||
        this.download(`${this.note.title}.svg`, 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);
 | 
			
		||||
        utils.downloadSvg(this.note.title, svg);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user