| 
									
										
										
										
											2018-03-25 13:41:29 -04:00
										 |  |  | import treeService from './tree.js'; | 
					
						
							| 
									
										
										
										
											2018-03-25 19:49:33 -04:00
										 |  |  | import server from './server.js'; | 
					
						
							| 
									
										
										
										
											2018-04-04 23:51:47 -04:00
										 |  |  | import utils from './utils.js'; | 
					
						
							| 
									
										
										
										
											2018-04-08 07:48:47 -04:00
										 |  |  | import infoService from './info.js'; | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-07 00:17:18 -05:00
										 |  |  | function ScriptApi(startNote, currentNote) { | 
					
						
							| 
									
										
										
										
											2018-02-14 23:31:20 -05:00
										 |  |  |     const $pluginButtons = $("#plugin-buttons"); | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     async function activateNote(notePath) { | 
					
						
							| 
									
										
										
										
											2018-03-24 21:39:15 -04:00
										 |  |  |         await treeService.activateNode(notePath); | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function addButtonToToolbar(buttonId, button) { | 
					
						
							|  |  |  |         $("#" + buttonId).remove(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         button.attr('id', buttonId); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-14 23:31:20 -05:00
										 |  |  |         $pluginButtons.append(button); | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 21:43:14 -05:00
										 |  |  |     function prepareParams(params) { | 
					
						
							|  |  |  |         if (!params) { | 
					
						
							|  |  |  |             return params; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return params.map(p => { | 
					
						
							|  |  |  |             if (typeof p === "function") { | 
					
						
							|  |  |  |                 return "!@#Function: " + p.toString(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             else { | 
					
						
							|  |  |  |                 return p; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-06 23:04:35 -05:00
										 |  |  |     async function runOnServer(script, params = []) { | 
					
						
							| 
									
										
										
										
											2018-03-04 21:43:14 -05:00
										 |  |  |         if (typeof script === "function") { | 
					
						
							|  |  |  |             script = script.toString(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-04 23:28:26 -05:00
										 |  |  |         const ret = await server.post('script/exec', { | 
					
						
							|  |  |  |             script: script, | 
					
						
							|  |  |  |             params: prepareParams(params), | 
					
						
							| 
									
										
										
										
											2018-03-06 23:04:35 -05:00
										 |  |  |             startNoteId: startNote.noteId, | 
					
						
							|  |  |  |             currentNoteId: currentNote.noteId | 
					
						
							| 
									
										
										
										
											2018-03-04 23:28:26 -05:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2018-03-04 21:43:14 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return ret.executionResult; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  |     return { | 
					
						
							| 
									
										
										
										
											2018-03-06 23:04:35 -05:00
										 |  |  |         startNote: startNote, | 
					
						
							|  |  |  |         currentNote: currentNote, | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  |         addButtonToToolbar, | 
					
						
							| 
									
										
										
										
											2018-02-24 21:23:04 -05:00
										 |  |  |         activateNote, | 
					
						
							| 
									
										
										
										
											2018-03-25 22:56:23 -04:00
										 |  |  |         getInstanceName: () => window.glob.instanceName, | 
					
						
							| 
									
										
										
										
											2018-04-04 23:51:47 -04:00
										 |  |  |         runOnServer, | 
					
						
							| 
									
										
										
										
											2018-04-06 19:08:42 -04:00
										 |  |  |         formatDateISO: utils.formatDateISO, | 
					
						
							| 
									
										
										
										
											2018-04-07 13:14:01 -04:00
										 |  |  |         parseDate: utils.parseDate, | 
					
						
							| 
									
										
										
										
											2018-04-08 07:48:47 -04:00
										 |  |  |         showMessage: infoService.showMessage, | 
					
						
							|  |  |  |         showError: infoService.showError, | 
					
						
							| 
									
										
										
										
											2018-04-07 15:56:46 -04:00
										 |  |  |         reloadTree: treeService.reload | 
					
						
							| 
									
										
										
										
											2018-02-03 10:37:57 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default ScriptApi; |