f0dfbfc3d7
RequirementsTest / build (windows-latest, 3.9) (push) Has been cancelled
RequirementsTest / build (macos-latest, 3.9) (push) Has been cancelled
RequirementsTest / build (ubuntu-latest, 3.9) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Pylint / build (3.9) (push) Has been cancelled
350 lines
10 KiB
JavaScript
350 lines
10 KiB
JavaScript
$('.dropdown-menu a.dropdown-toggle').on('click', function (e) {
|
|
if (!$(this).next().hasClass('show')) {
|
|
$(this).parents('.dropdown-menu').first().find('.show').removeClass("show");
|
|
}
|
|
var $subMenu = $(this).next(".dropdown-menu");
|
|
$subMenu.toggleClass('show');
|
|
|
|
|
|
$(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function (e) {
|
|
$('.dropdown-submenu .show').removeClass("show");
|
|
});
|
|
|
|
|
|
return false;
|
|
});
|
|
|
|
function CloseAllNav() {
|
|
$('.dropdown-submenu .show').removeClass("show");
|
|
|
|
}
|
|
|
|
var onDisp = []
|
|
var onReport = []
|
|
|
|
|
|
function getData() {
|
|
if (JSON.stringify(onDisp) != JSON.stringify(Object.keys(VarData)) || Object.keys(VarData) == "") {
|
|
onDisp = Object.keys(VarData);
|
|
var varDataStr = JSON.stringify(VarData);
|
|
$.ajax({
|
|
url: '/DataViewer',
|
|
data: varDataStr,
|
|
type: 'POST',
|
|
success: function (response) {
|
|
|
|
response = response.substring(2, response.length - 2);
|
|
var responseList = response.split("', '")
|
|
|
|
|
|
var keys = Object.keys(VarData);
|
|
|
|
|
|
var result = {};
|
|
keys.forEach((key, i) => result[key] = responseList[i]);
|
|
|
|
},
|
|
error: function (error) {
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
|
|
function getDataDownload() {
|
|
if (JSON.stringify(onDisp) != JSON.stringify(Object.keys(VarData)) || Object.keys(VarData) == "") {
|
|
onDisp = Object.keys(VarData);
|
|
var varDataStr = JSON.stringify(VarData);
|
|
|
|
$.ajax({
|
|
url: '/DataViewer',
|
|
data: varDataStr,
|
|
type: 'POST',
|
|
success: function (response) {
|
|
|
|
response = response.substring(2, response.length - 2);
|
|
var responseList = response.split("', '")
|
|
|
|
|
|
var keys = Object.keys(VarData);
|
|
|
|
|
|
var result = {};
|
|
keys.forEach((key, i) => result[key] = responseList[i]);
|
|
document.getElementById("DataFrameDownload").innerHTML = "";
|
|
for (var i = 0; i < Object.keys(VarData).length; i++) {
|
|
(function () {
|
|
|
|
var k = i;
|
|
var DataViewer = document.getElementById("DataFrameDownload");
|
|
var li = document.createElement("li");
|
|
|
|
var a = document.createElement('a');
|
|
|
|
var link = document.createTextNode(Object.keys(VarData)[i]);
|
|
|
|
a.appendChild(link);
|
|
|
|
a.title = Object.keys(VarData)[i];
|
|
|
|
a.className = "dropdown-item";
|
|
|
|
|
|
a.addEventListener('click', function () {
|
|
|
|
var html = document.createElement("body");
|
|
html.innerHTML = responseList[k];
|
|
export_table_to_csv(html, Object.keys(VarData)[k] + ".csv");
|
|
//sexport_table_to_csv(responseList[k],Object.keys(VarData)[i]+".csv");
|
|
});
|
|
|
|
li.appendChild(a);
|
|
DataViewer.appendChild(li);
|
|
|
|
|
|
}());
|
|
}
|
|
},
|
|
error: function (error) {
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
function getReport() {
|
|
|
|
|
|
document.getElementById("DataFrameReportViewer").innerHTML = "";
|
|
|
|
|
|
for (var i = 0; i < Object.keys(VarData).length; i++) {
|
|
(function () {
|
|
|
|
var k = i;
|
|
var DataViewer = document.getElementById("DataFrameReportViewer");
|
|
var a = document.createElement('a');
|
|
var link = document.createTextNode(Object.keys(VarData)[i])
|
|
|
|
a.appendChild(link);
|
|
|
|
a.title = Object.keys(VarData)[i]
|
|
a.className = "dropdown-item";
|
|
a.addEventListener('click', function () {
|
|
displayHTMLReport(a);
|
|
});
|
|
DataViewer.appendChild(a);
|
|
var breaker = document.createElement("br");
|
|
DataViewer.appendChild(breaker);
|
|
}()); // immediate invocation
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
function getReportDownload() {
|
|
var varDataStr = JSON.stringify(VarData);
|
|
|
|
$.ajax({
|
|
url: '/DataReport',
|
|
data: varDataStr,
|
|
type: 'POST',
|
|
success: function (response) {
|
|
|
|
response = response.substring(2, response.length - 2);
|
|
|
|
|
|
var responseList = response.split("', '")
|
|
|
|
|
|
|
|
var keys = Object.keys(VarData);
|
|
|
|
|
|
var result = {};
|
|
keys.forEach((key, i) => result[key] = responseList[i]);
|
|
|
|
|
|
document.getElementById("DataFrameReportDownload").innerHTML = "";
|
|
|
|
|
|
for (var i = 0; i < Object.keys(VarData).length; i++) {
|
|
(function () {
|
|
|
|
var k = i;
|
|
var DataViewer = document.getElementById("DataFrameReportDownload");
|
|
var a = document.createElement('a');
|
|
var link = document.createTextNode(Object.keys(VarData)[i])
|
|
|
|
a.appendChild(link);
|
|
a.title = Object.keys(VarData)[i]
|
|
a.className = "dropdown-item";
|
|
a.addEventListener('click', function () {
|
|
downloadHTMLReport(responseList[k], Object.keys(VarData)[k], VarData);
|
|
});
|
|
DataViewer.appendChild(a);
|
|
var breaker = document.createElement("br");
|
|
DataViewer.appendChild(breaker);
|
|
}()); // immediate invocation
|
|
}
|
|
},
|
|
error: function (error) {
|
|
console.log(error);
|
|
}
|
|
});
|
|
|
|
|
|
};
|
|
|
|
function downloadHTMLReport(stringdata, id, VarData) {
|
|
var div = document.createElement("body");
|
|
div.innerHTML = stringdata;
|
|
var text = div.outerHTML;
|
|
var fileType = "html"
|
|
var fileName = id + ".html"
|
|
var blob = new Blob([text], { type: fileType });
|
|
|
|
var a = document.createElement('a');
|
|
a.download = fileName;
|
|
a.href = URL.createObjectURL(blob);
|
|
a.dataset.downloadurl = [fileType, a.download, a.href].join(':');
|
|
a.style.display = "none";
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
document.body.removeChild(a);
|
|
setTimeout(function () { URL.revokeObjectURL(a.href); }, 1500);
|
|
};
|
|
|
|
function downloadPy(fileName) {
|
|
|
|
var text = Blockly.Python.workspaceToCode(blockly.workspace);
|
|
var fileType = "text"
|
|
var blob = new Blob([text], { type: fileType });
|
|
|
|
var a = document.createElement('a');
|
|
a.download = fileName;
|
|
a.href = URL.createObjectURL(blob);
|
|
a.dataset.downloadurl = [fileType, a.download, a.href].join(':');
|
|
a.style.display = "none";
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
document.body.removeChild(a);
|
|
setTimeout(function () { URL.revokeObjectURL(a.href); }, 1500);
|
|
|
|
}
|
|
|
|
function downloadIpynb(fileName) {
|
|
|
|
var Codetext = Blockly.Python.workspaceToCode(blockly.workspace);
|
|
var text = ("{ \"cells\": [ \n { \n \"cell_type\": \"code\", \n\"execution_count\": 1,\n\"metadata\": {}, \n\"outputs\": [],\n \"source\": [\n" + JSON.stringify(Codetext) + "\n]\n}\n],\n \"metadata\": {\n \"kernelspec\": {\n\"display_name\": \"Python 3\",\n\"language\": \"python\",\n\"name\": \"python3\"\n},\n\"language_info\": {\"codemirror_mode\": { \"name\": \"ipython\",\n \"version\": 3 \n},\n \"file_extension\": \".py\",\n\"mimetype\": \"text/x-python\", \n\"name\": \"python\", \n\"nbconvert_exporter\": \"python\",\n\"pygments_lexer\": \"ipython3\",\n\"version\": \"3.8.5\"\n} \n}, \n\"nbformat\": 4, \n\"nbformat_minor\": 2 \n}");
|
|
var fileType = "text"
|
|
var blob = new Blob([text], { type: fileType });
|
|
var a = document.createElement('a');
|
|
a.download = fileName;
|
|
a.href = URL.createObjectURL(blob);
|
|
a.dataset.downloadurl = [fileType, a.download, a.href].join(':');
|
|
a.style.display = "none";
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
document.body.removeChild(a);
|
|
setTimeout(function () { URL.revokeObjectURL(a.href); }, 1500);
|
|
|
|
}
|
|
|
|
function download_csv(csv, filename) {
|
|
var csvFile;
|
|
var downloadLink;
|
|
csvFile = new Blob([csv], { type: "text/csv" });
|
|
downloadLink = document.createElement("a");
|
|
downloadLink.download = filename;
|
|
downloadLink.href = window.URL.createObjectURL(csvFile);
|
|
downloadLink.style.display = "none";
|
|
document.body.appendChild(downloadLink);
|
|
downloadLink.click();
|
|
}
|
|
|
|
function export_table_to_csv(html, filename) {
|
|
var csv = [];
|
|
var rows = html.querySelectorAll("table tr");
|
|
|
|
for (var i = 0; i < rows.length; i++) {
|
|
var row = [],
|
|
cols = rows[i].querySelectorAll("td, th");
|
|
|
|
for (var j = 0; j < cols.length; j++)
|
|
row.push(cols[j].innerText);
|
|
|
|
csv.push(row.join(","));
|
|
}
|
|
download_csv(csv.join("\n"), filename);
|
|
}
|
|
|
|
|
|
function displayHTMLTable(stringdata, id, VarData) {
|
|
var tableHtml = window.open("/DataViewer", "_blank", "width=" + screen.availWidth + ", height=" + screen.availHeight + "");
|
|
|
|
|
|
tableHtml.onload = function () {
|
|
var div = tableHtml.document.getElementsByTagName("body")[0];
|
|
|
|
div.innerHTML = stringdata;
|
|
|
|
}
|
|
};
|
|
|
|
function displayHTMLReport(a) {
|
|
console.log(VarData[String(a.title)]);
|
|
$.ajax({
|
|
url: '/DataVisualizer',
|
|
data: String(VarData[String(a.title)]),
|
|
type: 'POST',
|
|
success: function (response) {
|
|
|
|
window.open("/visualizer", "_blank");
|
|
}
|
|
});
|
|
|
|
|
|
};
|
|
|
|
function closeForm() {
|
|
document.getElementById("myForm").style.display = "none";
|
|
};
|
|
|
|
function closeToolTip() {
|
|
document.getElementById("tip-popup").style.display = "none";
|
|
};
|
|
|
|
function closeDownloadCode() {
|
|
document.getElementById("download-code-popup").style.display = "none";
|
|
};
|
|
|
|
function downloadView() {
|
|
document.getElementById("download-code-popup").style.display = "block";
|
|
}
|
|
|
|
|
|
function downloadPyIpynbCode() {
|
|
var filename = document.getElementById("download-code-fname").value;
|
|
var extention = document.getElementById("download-code-extention").value;
|
|
fileName = filename + extention;
|
|
if (extention == ".py") {
|
|
downloadPy(fileName)
|
|
}
|
|
if (extention == ".ipynb") {
|
|
downloadIpynb(fileName)
|
|
}
|
|
|
|
document.getElementById("download-code-popup").style.display = "none";
|
|
}
|
|
|
|
|
|
$(document).keyup(function (e) {
|
|
if (e.key === "Escape") { // escape key maps to keycode `27`
|
|
document.getElementById("tip-popup").style.display = "none";
|
|
document.getElementById("download-code-popup").style.display = "none";
|
|
}
|
|
});
|