loleaflet/dist/framed.html | 65 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 7 deletions(-)
New commits: commit 36540eb6f4de15b55ff2d00bb874413be92124e5 Author: Tor Lillqvist <[email protected]> Date: Fri Jan 19 21:17:15 2018 +0200 Add another demo for the Python script in iframe thing: Add a named range (FIXME: Add input fields for the position, size, and name of the range and pass them to the Python script.) Change-Id: I56125e60f4266587297e2f06b00d666d442f270b (cherry picked from commit fc9a46304451fdb1a4c07e0cb2a4566e19cf60e5) (cherry picked from commit e87af96268272589b26b56246f5ddeeca8ef2534) Reviewed-on: https://gerrit.libreoffice.org/52108 Reviewed-by: Jan Holesovsky <[email protected]> Tested-by: Jan Holesovsky <[email protected]> diff --git a/loleaflet/dist/framed.html b/loleaflet/dist/framed.html index aa764dd3b..2a03acff9 100644 --- a/loleaflet/dist/framed.html +++ b/loleaflet/dist/framed.html @@ -81,6 +81,24 @@ '*'); } + function callAddNamedRange() { + window.frames[0].postMessage(JSON.stringify({'MessageId': 'Host_PostmessageReady'}), '*'); + // FIXME: Add parameters for the position, size, and name of the range + window.frames[0].postMessage(JSON.stringify({'MessageId': 'CallPythonScript', + 'SendTime': Date.now(), + 'ScriptFile': 'NamedRanges.py', + 'Function': 'DefineNamedRange', + 'Values': {'sheet': {'type': 'string', 'value': 'Sheet1'}, + 'x0': {'type': 'long', 'value': '2'}, + 'y0': {'type': 'long', 'value': '3'}, + 'width': {'type': 'long', 'value': '2'}, + 'height': {'type': 'long', 'value': '2'}, + 'name': {'type': 'string', 'value': 'N' + Date.now().toString()} + } + }), + '*'); + } + function receiveMessage(event) { var msg = JSON.parse(event.data); console.log('==== framed.html receiveMessage: ' + event.data); @@ -132,7 +150,12 @@ <form id="get-named-ranges-form"> Click <button onclick="callGetNamedRanges(); return false;">here</button> to get a list of named ranges in the document: - <textarea name="result" value="" rows="10" "cols="80"></textarea> + <textarea name="result" value="" rows="10" cols="80"></textarea> + </form> + + <form id="get-named-ranges-form"> + <!-- FIXME: Add input fields for the position, size, and name of the range --> + Click <button onclick="callAddNamedRange(); return false;">here</button> to add a new named range. </form> <!-- The hostname and pathnames below are obviously specific to my commit 9ad75e630432943798bb41ca8c97a010960b11c4 Author: Tor Lillqvist <[email protected]> Date: Fri Jan 19 18:02:13 2018 +0200 Add another demo for the iframe thing: Get list of named ranges in document Change-Id: I3a8f4c05999a8c76df77686ecf55b6a49124c0cf (cherry picked from commit 6eef0bd90bf9aab94dc23265c96f56b6db3b9e8f) Reviewed-on: https://gerrit.libreoffice.org/52107 Reviewed-by: Jan Holesovsky <[email protected]> Tested-by: Jan Holesovsky <[email protected]> diff --git a/loleaflet/dist/framed.html b/loleaflet/dist/framed.html index f45054d4f..aa764dd3b 100644 --- a/loleaflet/dist/framed.html +++ b/loleaflet/dist/framed.html @@ -50,7 +50,7 @@ <title>Online Editor</title> <script> - function callPythonScript() { + function callSetCellColor() { window.frames[0].postMessage(JSON.stringify({'MessageId': 'Host_PostmessageReady'}), '*'); var x = document.forms[0].elements['x'].value; var y = document.forms[0].elements['y'].value; @@ -70,6 +70,17 @@ '*'); } + function callGetNamedRanges() { + window.frames[0].postMessage(JSON.stringify({'MessageId': 'Host_PostmessageReady'}), '*'); + window.frames[0].postMessage(JSON.stringify({'MessageId': 'CallPythonScript', + 'SendTime': Date.now(), + 'ScriptFile': 'NamedRanges.py', + 'Function': 'GetNamedRanges', + 'Values': null + }), + '*'); + } + function receiveMessage(event) { var msg = JSON.parse(event.data); console.log('==== framed.html receiveMessage: ' + event.data); @@ -78,14 +89,26 @@ msg.MessageId === 'CallPythonScript-Result' && msg.hasOwnProperty('Values') && msg.Values.hasOwnProperty('commandName') && - msg.Values.commandName === 'vnd.sun.star.script:SetCellColor.py$SetCellColor?language=Python&location=share' && msg.Values.hasOwnProperty('success') && msg.Values.success == 'true' && msg.Values.hasOwnProperty('result') && msg.Values.result.hasOwnProperty('value')) { - document.forms[0].elements['result'].readOnly = false; - document.forms[0].elements['result'].value = msg.Values.result.value; - document.forms[0].elements['result'].readOnly = true; + if (msg.Values.commandName === 'vnd.sun.star.script:SetCellColor.py$SetCellColor?language=Python&location=share') { + document.forms['cell-colour-form'].elements['result'].readOnly = false; + document.forms['cell-colour-form'].elements['result'].value = msg.Values.result.value; + document.forms['cell-colour-form'].elements['result'].readOnly = true; + } + else if (msg.Values.commandName === 'vnd.sun.star.script:NamedRanges.py$GetNamedRanges?language=Python&location=share') { + document.forms['get-named-ranges-form'].elements['result'].readOnly = false; + var index = 0; + var result = ''; + while (msg.Values.result.value.hasOwnProperty(index.toString())) { + result += msg.Values.result.value[index.toString()].value + "\n"; + index++; + } + document.forms['get-named-ranges-form'].elements['result'].value = result; + document.forms['get-named-ranges-form'].elements['result'].readOnly = true; + } } } window.addEventListener("message", receiveMessage, false); @@ -98,15 +121,20 @@ <body style="user-select: none;"> <p> - <form id="frm1"> + <form id="cell-colour-form"> Cell: (<input type="number" name="x" min="0" max="20" value="0">, <input type="number" name="y" min="0" max="20" value="0">), colour: <input type="text" name="color" value="#008000"> <br> - Click <button onclick="callPythonScript(); return false;">here</button> + Click <button onclick="callSetCellColor(); return false;">here</button> to send message to iframe below. It returned <input type="text" name="result" value="" readonly>. </form> </p> + <form id="get-named-ranges-form"> + Click <button onclick="callGetNamedRanges(); return false;">here</button> to get a list of named ranges in the document: + <textarea name="result" value="" rows="10" "cols="80"></textarea> + </form> + <!-- The hostname and pathnames below are obviously specific to my personal environment and need to be changed appropriately. Also the hex string needs to be changed of course, to the right one as _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
