support passing functions to the backend as parameters

This commit is contained in:
azivner 2018-02-18 09:53:36 -05:00
parent 08bc2afb49
commit ddc885066e
3 changed files with 20 additions and 7 deletions

View file

@ -31,12 +31,23 @@ const server = (function() {
return await call('DELETE', url);
}
function prepareParams(params) {
return params.map(p => {
if (typeof p === "function") {
return "!@#Function: " + p.toString();
}
else {
return p;
}
});
}
async function exec(params, script) {
if (typeof script === "function") {
script = script.toString();
}
const ret = await post('script/exec', { script: script, params: params });
const ret = await post('script/exec', { script: script, params: prepareParams(params) });
return ret.executionResult;
}

View file

@ -117,16 +117,11 @@
return data;
});
const colors = data.map(row => row.comment ? 'darkred' : 'red');
const datasets = [{
label: "Weight",
backgroundColor: 'red',
borderColor: 'red',
data: data.map(row => row.weight),
// this is to emphasize points with color
pointBackgroundColor: colors,
pointBorderColor: colors,
fill: false
}];

View file

@ -19,7 +19,14 @@ async function executeScript(dataKey, script, params) {
}
function getParams(params) {
return params.map(p => JSON.stringify(p)).join(",");
return params.map(p => {
if (typeof p === "string" && p.startsWith("!@#Function: ")) {
return p.substr(13);
}
else {
return JSON.stringify(p);
}
}).join(",");
}
module.exports = {