Skip to content

Commit 430f4f0

Browse files
committed
fix import JS preview
1 parent cc4f742 commit 430f4f0

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

src/web/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<a class="dropdown-item" role="button" data-toggle="modal" data-target="#importCsvModal">Import CSV</a>
4545
<a class="dropdown-item" role="button" data-toggle="modal" data-target="#importXlsModal">Import XLS</a>
4646
<a class="dropdown-item" role="button" onclick="req_modal('#importZbxForm','Import data from Zabbix',req_import_from_api,sheetManager.get_active(),{attrs:{style: 'width: 500px; height: 650px !important'}},false)">Import from Zabbix</a>
47-
<a class="dropdown-item" role="button" onclick="req_modal('#importJsForm','Import from JavaScript',req_import_js,sheetManager.get_active(),{attrs:{style: 'width: 500px; height: 650px !important'}},false)">Import from JavaScript</a>
47+
<a class="dropdown-item" role="button" onclick="req_modal('#importJsForm','Import from JavaScript',req_import_js,sheetManager.get_active(),{attrs:{style: 'width: 500px; height: 650px !important'}},false,preview_req_import_js)">Import from JavaScript</a>
4848

4949
<div class="dropdown-divider"></div>
5050
<a class="dropdown-item" role="button" href="#" onclick="prompt_save_data()">Export to CSV</a>
@@ -229,7 +229,7 @@
229229
<button onclick='' style='width: 200px !important; display: inline-block !important;' data-toggle='modal' data-target='#importCsvModal'>Import CSV</button>
230230
<button onclick='' style='width: 200px !important; display: inline-block !important;' data-toggle='modal' data-target='#importXlsModal'>Import Excel</button>
231231
<button style='width: 200px !important; display: inline-block !important;' onclick="req_modal('#importZbxForm','Import data from Zabbix',req_import_from_api,sheetManager.get_active(),{attrs:{style: 'width: 500px; height: 650px !important'}},false)">Import from Zabbix</button>
232-
<button style='width: 200px !important; display: inline-block !important;' onclick="req_modal('#importJsForm','Import from JavaScript',req_import_js,sheetManager.get_active(),{attrs:{style: 'width: 500px; height: 650px !important'}},false)">Import from JavaScript</button>
232+
<button style='width: 200px !important; display: inline-block !important;' onclick="req_modal('#importJsForm','Import from JavaScript',req_import_js,sheetManager.get_active(),{attrs:{style: 'width: 500px; height: 650px !important'}},false,preview_req_import_js)">Import from JavaScript</button>
233233
</div>
234234
</div>
235235
</div>

src/web/main.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,20 @@ function req_import_from_api(sheet, resource, operation, template,success=new Fu
107107
.finally(()=>overlay.hide())
108108
success();
109109
}
110+
function preview_req_import_js(editor,template) {
111+
let previewEl = $(editor.container.parentNode).find(".preview");
112+
113+
previewEl.addClass("alert-secondary").removeClass("alert-danger").removeClass("alert-success");
114+
// log(editor);
115+
try {
116+
let tmpFunc = eval("()=>{"+ template + "}");
117+
let data = tmpFunc();
118+
previewEl.removeClass("alert-secondary").children().text(data);
119+
previewEl.addClass("alert-success");
120+
} catch (e) {
121+
previewEl.addClass("alert-danger").children().text("Invalid JS template: "+e.message)
122+
}
123+
}
110124

111125
function req_import_js(sheet, resource,operation,template,success=new Function()) {
112126

@@ -968,7 +982,7 @@ function load_templates(event,prefix) {
968982
* @param dialogOpts
969983
* @param rowContext
970984
*/
971-
function req_modal(sel,title,action,sheet,dialogOpts={},rowContext=true){
985+
function req_modal(sel,title,action,sheet,dialogOpts={},rowContext=true,preview=preview_request){
972986
let lastSavedTpl = localStorage.getItem(sel+"_tpl");
973987
let lastSavedRes = localStorage.getItem(sel+"_res");
974988
let lastSavedReqType = localStorage.getItem(sel+"_reqtype");
@@ -994,15 +1008,15 @@ function req_modal(sel,title,action,sheet,dialogOpts={},rowContext=true){
9941008
mode: 'code', onChange: () => {
9951009
let tpl = editor.getText();
9961010
localStorage.setItem(sel+"_tpl",tpl);
997-
preview_request(editor,tpl,rowContext)
1011+
preview(editor,tpl,rowContext)
9981012
}
9991013
});
10001014

10011015
if(lastSavedTpl) editor.setText(lastSavedTpl);
10021016
if(lastSavedRes) form[0].resource.value = lastSavedRes;
10031017
if(lastSavedReqType && form[0].operation) form[0].operation.value = lastSavedReqType;
10041018
let tpl = editor.getText();
1005-
preview_request(editor,tpl,rowContext);
1019+
preview(editor,tpl,rowContext);
10061020
$(item).data("editor",editor)
10071021
})
10081022
;

0 commit comments

Comments
 (0)