API changes necessary to port reddit plugin, closes #58

This commit is contained in:
azivner 2018-02-24 21:23:04 -05:00
parent a555b6319c
commit f0bea9cf71
6 changed files with 27 additions and 10 deletions

View File

@ -1,3 +1,7 @@
[General]
# Instance name can be used to distinguish between different instances
instanceName=
[Network] [Network]
port=8080 port=8080
# true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure). # true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure).

View File

@ -13,9 +13,9 @@ const api = (function() {
$pluginButtons.append(button); $pluginButtons.append(button);
} }
return { return {
addButtonToToolbar, addButtonToToolbar,
activateNote activateNote,
getInstanceName: noteTree.getInstanceName
} }
})(); })();

View File

@ -5,6 +5,8 @@ const noteTree = (function() {
const $parentList = $("#parent-list"); const $parentList = $("#parent-list");
const $parentListList = $("#parent-list-inner"); const $parentListList = $("#parent-list-inner");
let instanceName = null; // should have better place
let startNotePath = null; let startNotePath = null;
let notesTreeMap = {}; let notesTreeMap = {};
@ -648,6 +650,7 @@ const noteTree = (function() {
async function loadTree() { async function loadTree() {
const resp = await server.get('tree'); const resp = await server.get('tree');
startNotePath = resp.start_note_path; startNotePath = resp.start_note_path;
instanceName = resp.instanceName;
if (document.location.hash) { if (document.location.hash) {
startNotePath = getNotePathFromAddress(); startNotePath = getNotePathFromAddress();
@ -823,6 +826,10 @@ const noteTree = (function() {
return !!childToParents[noteId]; return !!childToParents[noteId];
} }
function getInstanceName() {
return instanceName;
}
$(document).bind('keydown', 'ctrl+o', e => { $(document).bind('keydown', 'ctrl+o', e => {
const node = getCurrentNode(); const node = getCurrentNode();
const parentNoteId = node.data.parentNoteId; const parentNoteId = node.data.parentNoteId;
@ -897,6 +904,7 @@ const noteTree = (function() {
setParentChildRelation, setParentChildRelation,
getSelectedNodes, getSelectedNodes,
sortAlphabetically, sortAlphabetically,
noteExists noteExists,
getInstanceName
}; };
})(); })();

View File

@ -6,6 +6,7 @@ const sql = require('../../services/sql');
const options = require('../../services/options'); const options = require('../../services/options');
const utils = require('../../services/utils'); const utils = require('../../services/utils');
const auth = require('../../services/auth'); const auth = require('../../services/auth');
const config = require('../../services/config');
const protected_session = require('../../services/protected_session'); const protected_session = require('../../services/protected_session');
const sync_table = require('../../services/sync_table'); const sync_table = require('../../services/sync_table');
const wrap = require('express-promise-wrap').wrap; const wrap = require('express-promise-wrap').wrap;
@ -41,6 +42,7 @@ router.get('/', auth.checkApiAuth, wrap(async (req, res, next) => {
AND notes.isDeleted = 0`); AND notes.isDeleted = 0`);
res.send({ res.send({
instanceName: config.General ? config.General.instanceName : null,
notes: notes, notes: notes,
hiddenInAutocomplete: hiddenInAutocomplete, hiddenInAutocomplete: hiddenInAutocomplete,
start_note_path: await options.getOption('start_note_path') start_note_path: await options.getOption('start_note_path')

View File

@ -12,7 +12,7 @@ async function executeScript(dataKey, script, params) {
let ret; let ret;
await sql.doInTransaction(async () => { await sql.doInTransaction(async () => {
ret = await (function() { return eval(`(${script})(${paramsStr})`); }.call(ctx)); ret = await (function() { return eval(`const api = this; (${script})(${paramsStr})`); }.call(ctx));
}); });
return ret; return ret;

View File

@ -3,18 +3,21 @@ const protected_session = require('./protected_session');
const notes = require('./notes'); const notes = require('./notes');
const attributes = require('./attributes'); const attributes = require('./attributes');
const date_notes = require('./date_notes'); const date_notes = require('./date_notes');
const config = require('./config');
const Repository = require('./repository'); const Repository = require('./repository');
function ScriptContext(noteId, dataKey) { function ScriptContext(noteId, dataKey) {
this.dataKey = protected_session.getDataKey(dataKey); dataKey = protected_session.getDataKey(dataKey);
this.repository = new Repository(dataKey); const repository = new Repository(dataKey);
this.getInstanceName = () => config.General ? config.General.instanceName : null;
this.getNoteById = async function(noteId) { this.getNoteById = async function(noteId) {
return this.repository.getNote(noteId); return repository.getNote(noteId);
}; };
this.getNotesWithAttribute = async function (attrName, attrValue) { this.getNotesWithAttribute = async function (attrName, attrValue) {
return await attributes.getNotesWithAttribute(this.dataKey, attrName, attrValue); return await attributes.getNotesWithAttribute(dataKey, attrName, attrValue);
}; };
this.getNoteWithAttribute = async function (attrName, attrValue) { this.getNoteWithAttribute = async function (attrName, attrValue) {
@ -43,7 +46,7 @@ function ScriptContext(noteId, dataKey) {
note.mime = "text/html"; note.mime = "text/html";
} }
const noteId = (await notes.createNewNote(parentNoteId, note, this.dataKey)).noteId; const noteId = (await notes.createNewNote(parentNoteId, note, dataKey)).noteId;
if (extraOptions.attributes) { if (extraOptions.attributes) {
for (const attrName in extraOptions.attributes) { for (const attrName in extraOptions.attributes) {
@ -56,7 +59,7 @@ function ScriptContext(noteId, dataKey) {
this.createAttribute = attributes.createAttribute; this.createAttribute = attributes.createAttribute;
this.updateEntity = this.repository.updateEntity; this.updateEntity = repository.updateEntity;
this.log = message => log.info(`Script: ${message}`); this.log = message => log.info(`Script: ${message}`);