You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
|
|
|
|
/* global grist, window, document, $ */
|
|
|
|
let resolve; // eslint-disable-line no-unused-vars
|
|
|
|
const importer = {
|
|
getImportSource: () => new Promise((_resolve) => {
|
|
resolve = _resolve;
|
|
})
|
|
};
|
|
|
|
grist.rpc.registerImpl('dummy', importer );
|
|
grist.rpc.registerImpl('dummy-inlined', importer );
|
|
|
|
grist.ready();
|
|
|
|
window.onload = function() {
|
|
callFunctionOnClick('#call-safePython', 'func1@sandbox/main.py', 'Bob');
|
|
callFunctionOnClick('#call-unsafeNode', 'func1@node/main.js', 'Alice');
|
|
document.querySelector('#cancel').addEventListener('click', () => resolve());
|
|
document.querySelector('#ok').addEventListener('click', () => {
|
|
const name = $('#name').val();
|
|
resolve({
|
|
item: {
|
|
kind: "fileList",
|
|
files: [{content: "A,B\n1,2\n", name}]
|
|
},
|
|
description: name + " selected!"
|
|
});
|
|
});
|
|
};
|
|
|
|
function callFunctionOnClick(selector, funcName, ...args) {
|
|
document.querySelector(selector).addEventListener('click', () => {
|
|
grist.rpc.callRemoteFunc(funcName, ...args)
|
|
.then(val => {
|
|
const resElement = document.createElement('h1');
|
|
resElement.classList.add(`result`);
|
|
resElement.textContent = val;
|
|
document.body.appendChild(resElement);
|
|
});
|
|
});
|
|
}
|