mirror of
https://github.com/zadam/trilium.git
synced 2025-06-05 01:18:44 +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");
|
||||
|
||||
async function activateNote(notePath) {
|
||||
@ -14,8 +14,10 @@ const api = (function() {
|
||||
}
|
||||
|
||||
return {
|
||||
__modules: {},
|
||||
__notes: {},
|
||||
addButtonToToolbar,
|
||||
activateNote,
|
||||
getInstanceName: noteTree.getInstanceName
|
||||
}
|
||||
})();
|
||||
}
|
@ -116,7 +116,16 @@ async function stopWatch(what, func) {
|
||||
}
|
||||
|
||||
function executeScript(script) {
|
||||
eval(script);
|
||||
const completeScript = `
|
||||
(async function() {
|
||||
const api = Api();
|
||||
|
||||
${script}
|
||||
})();`;
|
||||
|
||||
console.log(completeScript);
|
||||
|
||||
eval(completeScript);
|
||||
}
|
||||
|
||||
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) => {
|
||||
const noteIds = await attributes.getNoteIdsWithAttribute("run", "frontend_startup");
|
||||
const repository = new Repository(req);
|
||||
const notes = await attributes.getNotesWithAttribute(repository, "run", "frontend_startup");
|
||||
|
||||
const scripts = [];
|
||||
|
||||
for (const noteId of noteIds) {
|
||||
const note = await repository.getNote(noteId);
|
||||
for (const note of notes) {
|
||||
const bundle = await script.getScriptBundle(note);
|
||||
|
||||
scripts.push(await script.getNoteScript(note));
|
||||
scripts.push(bundle.script);
|
||||
}
|
||||
|
||||
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) => {
|
||||
const repository = new Repository(req);
|
||||
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) => {
|
||||
|
@ -3,10 +3,10 @@
|
||||
const sql = require('./sql');
|
||||
const utils = require('./utils');
|
||||
const sync_table = require('./sync_table');
|
||||
const Repository = require('./repository');
|
||||
|
||||
const BUILTIN_ATTRIBUTES = [
|
||||
'run_on_startup',
|
||||
'frontend_startup',
|
||||
'backend_startup',
|
||||
'disable_versioning',
|
||||
'calendar_root',
|
||||
'hide_in_autocomplete',
|
||||
@ -27,9 +27,7 @@ async function getNoteIdWithAttribute(name, value) {
|
||||
AND attributes.value = ?`, [name, value]);
|
||||
}
|
||||
|
||||
async function getNotesWithAttribute(dataKey, name, value) {
|
||||
const repository = new Repository(dataKey);
|
||||
|
||||
async function getNotesWithAttribute(repository, name, value) {
|
||||
let notes;
|
||||
|
||||
if (value !== undefined) {
|
||||
@ -44,8 +42,8 @@ async function getNotesWithAttribute(dataKey, name, value) {
|
||||
return notes;
|
||||
}
|
||||
|
||||
async function getNoteWithAttribute(dataKey, name, value) {
|
||||
const notes = getNotesWithAttribute(dataKey, name, value);
|
||||
async function getNoteWithAttribute(repository, name, value) {
|
||||
const notes = getNotesWithAttribute(repository, name, value);
|
||||
|
||||
return notes.length > 0 ? notes[0] : null;
|
||||
}
|
||||
|
@ -101,10 +101,6 @@ async function getRenderScript(note) {
|
||||
return "async function() {" + subTreeScripts + note.content + "\r\n}";
|
||||
}
|
||||
|
||||
async function getNoteScript(note) {
|
||||
|
||||
}
|
||||
|
||||
async function getScriptBundle(note, includedNoteIds = []) {
|
||||
if (!note.isJavaScript()) {
|
||||
return;
|
||||
@ -150,6 +146,6 @@ module.exports = {
|
||||
executeNote,
|
||||
executeScript,
|
||||
setJob,
|
||||
getNoteScript,
|
||||
getScriptBundle,
|
||||
getRenderScript
|
||||
};
|
@ -31,7 +31,7 @@ function ScriptContext(dataKey, startNote, allNotes) {
|
||||
};
|
||||
|
||||
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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user