mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
fixed frontend script execution
This commit is contained in:
parent
d239ef2956
commit
3b9d1df05c
@ -1,4 +1,4 @@
|
|||||||
const api = (function() {
|
function Api() {
|
||||||
const $pluginButtons = $("#plugin-buttons");
|
const $pluginButtons = $("#plugin-buttons");
|
||||||
|
|
||||||
async function activateNote(notePath) {
|
async function activateNote(notePath) {
|
||||||
@ -14,8 +14,10 @@ const api = (function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
__modules: {},
|
||||||
|
__notes: {},
|
||||||
addButtonToToolbar,
|
addButtonToToolbar,
|
||||||
activateNote,
|
activateNote,
|
||||||
getInstanceName: noteTree.getInstanceName
|
getInstanceName: noteTree.getInstanceName
|
||||||
}
|
}
|
||||||
})();
|
}
|
@ -116,7 +116,16 @@ async function stopWatch(what, func) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function executeScript(script) {
|
function executeScript(script) {
|
||||||
eval(script);
|
const completeScript = `
|
||||||
|
(async function() {
|
||||||
|
const api = Api();
|
||||||
|
|
||||||
|
${script}
|
||||||
|
})();`;
|
||||||
|
|
||||||
|
console.log(completeScript);
|
||||||
|
|
||||||
|
eval(completeScript);
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatValueWithWhitespace(val) {
|
function formatValueWithWhitespace(val) {
|
||||||
|
@ -23,15 +23,15 @@ router.post('/job', auth.checkApiAuth, wrap(async (req, res, next) => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
router.get('/startup', auth.checkApiAuth, wrap(async (req, res, next) => {
|
router.get('/startup', auth.checkApiAuth, wrap(async (req, res, next) => {
|
||||||
const noteIds = await attributes.getNoteIdsWithAttribute("run", "frontend_startup");
|
|
||||||
const repository = new Repository(req);
|
const repository = new Repository(req);
|
||||||
|
const notes = await attributes.getNotesWithAttribute(repository, "run", "frontend_startup");
|
||||||
|
|
||||||
const scripts = [];
|
const scripts = [];
|
||||||
|
|
||||||
for (const noteId of noteIds) {
|
for (const note of notes) {
|
||||||
const note = await repository.getNote(noteId);
|
const bundle = await script.getScriptBundle(note);
|
||||||
|
|
||||||
scripts.push(await script.getNoteScript(note));
|
scripts.push(bundle.script);
|
||||||
}
|
}
|
||||||
|
|
||||||
res.send(scripts);
|
res.send(scripts);
|
||||||
@ -40,8 +40,9 @@ router.get('/startup', auth.checkApiAuth, wrap(async (req, res, next) => {
|
|||||||
router.get('/subtree/:noteId', auth.checkApiAuth, wrap(async (req, res, next) => {
|
router.get('/subtree/:noteId', auth.checkApiAuth, wrap(async (req, res, next) => {
|
||||||
const repository = new Repository(req);
|
const repository = new Repository(req);
|
||||||
const note = await repository.getNote(req.params.noteId);
|
const note = await repository.getNote(req.params.noteId);
|
||||||
|
const bundle = await script.getScriptBundle(note);
|
||||||
|
|
||||||
res.send(await script.getNoteScript(note, repository));
|
res.send(bundle.script);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
router.get('/render/:noteId', auth.checkApiAuth, wrap(async (req, res, next) => {
|
router.get('/render/:noteId', auth.checkApiAuth, wrap(async (req, res, next) => {
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
const sql = require('./sql');
|
const sql = require('./sql');
|
||||||
const utils = require('./utils');
|
const utils = require('./utils');
|
||||||
const sync_table = require('./sync_table');
|
const sync_table = require('./sync_table');
|
||||||
const Repository = require('./repository');
|
|
||||||
|
|
||||||
const BUILTIN_ATTRIBUTES = [
|
const BUILTIN_ATTRIBUTES = [
|
||||||
'run_on_startup',
|
'frontend_startup',
|
||||||
|
'backend_startup',
|
||||||
'disable_versioning',
|
'disable_versioning',
|
||||||
'calendar_root',
|
'calendar_root',
|
||||||
'hide_in_autocomplete',
|
'hide_in_autocomplete',
|
||||||
@ -27,9 +27,7 @@ async function getNoteIdWithAttribute(name, value) {
|
|||||||
AND attributes.value = ?`, [name, value]);
|
AND attributes.value = ?`, [name, value]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getNotesWithAttribute(dataKey, name, value) {
|
async function getNotesWithAttribute(repository, name, value) {
|
||||||
const repository = new Repository(dataKey);
|
|
||||||
|
|
||||||
let notes;
|
let notes;
|
||||||
|
|
||||||
if (value !== undefined) {
|
if (value !== undefined) {
|
||||||
@ -44,8 +42,8 @@ async function getNotesWithAttribute(dataKey, name, value) {
|
|||||||
return notes;
|
return notes;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getNoteWithAttribute(dataKey, name, value) {
|
async function getNoteWithAttribute(repository, name, value) {
|
||||||
const notes = getNotesWithAttribute(dataKey, name, value);
|
const notes = getNotesWithAttribute(repository, name, value);
|
||||||
|
|
||||||
return notes.length > 0 ? notes[0] : null;
|
return notes.length > 0 ? notes[0] : null;
|
||||||
}
|
}
|
||||||
|
@ -101,10 +101,6 @@ async function getRenderScript(note) {
|
|||||||
return "async function() {" + subTreeScripts + note.content + "\r\n}";
|
return "async function() {" + subTreeScripts + note.content + "\r\n}";
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getNoteScript(note) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getScriptBundle(note, includedNoteIds = []) {
|
async function getScriptBundle(note, includedNoteIds = []) {
|
||||||
if (!note.isJavaScript()) {
|
if (!note.isJavaScript()) {
|
||||||
return;
|
return;
|
||||||
@ -150,6 +146,6 @@ module.exports = {
|
|||||||
executeNote,
|
executeNote,
|
||||||
executeScript,
|
executeScript,
|
||||||
setJob,
|
setJob,
|
||||||
getNoteScript,
|
getScriptBundle,
|
||||||
getRenderScript
|
getRenderScript
|
||||||
};
|
};
|
@ -31,7 +31,7 @@ function ScriptContext(dataKey, startNote, allNotes) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.getNotesWithAttribute = async function (attrName, attrValue) {
|
this.getNotesWithAttribute = async function (attrName, attrValue) {
|
||||||
return await attributes.getNotesWithAttribute(dataKey, attrName, attrValue);
|
return await attributes.getNotesWithAttribute(repository, attrName, attrValue);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getNoteWithAttribute = async function (attrName, attrValue) {
|
this.getNoteWithAttribute = async function (attrName, attrValue) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user