mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	support passing functions to the backend as parameters
This commit is contained in:
		| @@ -31,12 +31,23 @@ const server = (function() { | |||||||
|         return await call('DELETE', url); |         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) { |     async function exec(params, script) { | ||||||
|         if (typeof script === "function") { |         if (typeof script === "function") { | ||||||
|             script = script.toString(); |             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; |         return ret.executionResult; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -117,16 +117,11 @@ | |||||||
|                 return data; |                 return data; | ||||||
|             }); |             }); | ||||||
|  |  | ||||||
|             const colors = data.map(row => row.comment ? 'darkred' : 'red'); |  | ||||||
|  |  | ||||||
|             const datasets = [{ |             const datasets = [{ | ||||||
|                 label: "Weight", |                 label: "Weight", | ||||||
|                 backgroundColor: 'red', |                 backgroundColor: 'red', | ||||||
|                 borderColor: 'red', |                 borderColor: 'red', | ||||||
|                 data: data.map(row => row.weight), |                 data: data.map(row => row.weight), | ||||||
|                 // this is to emphasize points with color |  | ||||||
|                 pointBackgroundColor: colors, |  | ||||||
|                 pointBorderColor: colors, |  | ||||||
|                 fill: false |                 fill: false | ||||||
|             }]; |             }]; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -19,7 +19,14 @@ async function executeScript(dataKey, script, params) { | |||||||
| } | } | ||||||
|  |  | ||||||
| function getParams(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 = { | module.exports = { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user