Files
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 13:18:32 +08:00

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";
}
});