bdcontract-web-ide/js/NodeConfig.js
2023-12-15 16:36:54 +08:00

373 lines
12 KiB
JavaScript

function loadNodeConfig(event) {
setTimeout(function () {
console.log("loadNodeConfig");
global.wssocket.send(JSON.stringify({
action: 'loadNodeConfig'
}));
getPeerID();
}, 300);
}
function onLoadNodeConfig(data) {
global.config = data.data;
showNodeConfig(data);
if (!global.centerportalws) {
let url = global.config.nodeCenterWS;
if (window.location.origin.startsWith("https")){
url = url.replace("ws://","wss://");
}
if (window.location.origin === "https://contract.internetapi.cn") {
url = "wss://cluster.contract.internetapi.cn/NodeCenterWS";
}
if (window.location.origin === "http://contract.internetapi.cn") {
url = "ws://cluster.contract.internetapi.cn/NodeCenterWS";
}
// console.log("centerportalws:", url)
global.centerportalws = createWssocket(url, function () {
global.centerportalws.send(JSON.stringify({
action: 'getSessionID'
}));
}, centerportalWSHandler);
}
}
function showNodeConfig(data) {
if (global.config) {
const nodeCenterInputEl = $("#nodeCenterInput");
$("#nodeNameInput")[0].value = global.config.nodeName;
$("#ipPortInput")[0].value = global.config.ipPort;
$("#doipConfigInput")[0].value = global.config.doipConfig;
$("#licence")[0].value = global.config.licence
$("#expireTime").html(global.config.expireTime);
$("#yjsInput")[0].value = global.config.yjsPath;
$("#nodePubKeyInput")[0].value = global.config.nodePubKey;
nodeCenterInputEl[0].value = global.config.nodeCenter;
$("#nodeCenterWSInput")[0].value = global.config.nodeCenterWS;
if (global.config.clusterConnected && global.config.clusterConnected === "true") {
nodeCenterInputEl.css("color", "green");
} else {
nodeCenterInputEl.css("color", "red");
}
$("#bdledgerPeersInput")[0].value = global.config.bdledger;
showNodeTrustUnits();
}
// switch (data) {
// case "onGetLicenceExpiredDate":
// $("#expiredDate").html(convertDate(data.data));
// break;
// case "onGetEncodedUUID":
// localStorage.setItem("EncodedUUID", data.data);
// global.EncodedUUID = localStorage.getItem("EncodedUUID");
// break;
// case "jiedianguanliyuan":
// $("#projectDirInput")[0].value = (data.data.projectDir);
// $("#yjsInput")[0].value = (data.data.yjsPath);
// $("#dataChainInput")[0].value = data.data.datachainConf;
// $("#nodeCenterInput")[0].value = data.data.nodeCenter;
//
// break;
// case "onUpdateConfig":
// if (data.status==false){
// alert("updata failed! please check the file.");
// }
//
// break;
// default:
// console.log("Unknown msg:");
// console.log(event);
// }
}
function changeNodeName(event) {
console.log("changeNodeName");
global.wssocket.send(JSON.stringify({
action: 'changeNodeName',
data: $("#nodeNameInput")[0].value
}));
}
function changeIpPort(event) {
var input = $("#ipPortInput")[0].value
var reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\:([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/
if (!reg.test(input)) {
myToast("无效地址", "不符合xxx.xxx.xxx.xxx:xxxx格式")
return
}
console.log("changeIpPort");
global.wssocket.send(JSON.stringify({
action: 'changeIpPort',
data: input
}));
}
function changeDOIPConfig(event) {
var input = $("#doipConfigInput")[0].value
console.log("changeDOIPConfig");
global.wssocket.send(JSON.stringify({
action: 'changeDOIPConfig',
data: input
}));
}
function onChangeNodeName(data) {
console.log("onChangeNodeName", data);
//$("#nodeNameInput")[0].value = data;
myToast("成功", "修改NodeName成功")
}
function onChangeIpPort(data) {
console.log("onChangeIpPort", data);
myToast("成功", "修改IP端口成功")
}
function onChangeDOIPConfig(data) {
console.log("onChangeDOIPConfig", data);
myToast("成功", "修改IP端口成功")
}
var changeYJSPath = function (event) {
console.log("changeYJSPath");
global.wssocket.send(JSON.stringify({
action: 'changeYJSPath',
data: $("#yjsInput")[0].value
}));
};
function onChangeYJSPath(data) {
//$("#yjsInput")[0].value = data;
// loadNodeConfig();
//showNodeConfig();
let body = "<div class='row'><div class='col-sm-12'><span id='onChangeYJSPathResult'>";
body += "修改YJS路径, " + ((data.data === true ? "成功" : "失败,请检查路径"));
body += "</span></div></div>";
$("#dialogBodyDiv").html(body);
showDialog("提示", function () {
loadNodeConfig();
});
}
function changeNodeCenter(event) {
console.log("changeNodeCenter");
global.wssocket.send(JSON.stringify({
action: 'changeNodeCenter',
data: $("#nodeCenterInput")[0].value
}));
}
function changeNodeCenterWS(event) {
console.log("changeNodeCenterWS");
global.wssocket.send(JSON.stringify({
action: 'changeNodeCenterWS',
data: $("#nodeCenterWSInput")[0].value
}));
}
function onChangeNodeCenter(event) {
// console.log("onChangeNodeCenter", data);
myToast("成功", "修改NodeCenter成功")
loadNodeConfig();
//刷新整个页面
}
function changeBDledger(event) {
console.log("changeBDledger");
global.wssocket.send(JSON.stringify({
action: 'changeBDledger',
data: $("#bdledgerPeersInput")[0].value
}));
loadNodeConfig();
}
function onChangeBDledger(event) {
console.log("onChangeBDledger", data);
myToast("成功", "修改数链节点成功")
}
function getLicenceExpiredDate() {
global.cmsocket.send("{\"action\":\"getLicenceExpiredDate\"}");
}
function uploadLicence() {
console.log("uploadLicence");
global.wssocket.send(JSON.stringify({
action: 'uploadLicence',
data: $("#licence")[0].value
}));
}
function onUploadLicence(data) {
console.log("onUploadLicence");
myToast("成功", "上传Licence成功")
}
function getPeerID(data) {
global.wssocket.send(JSON.stringify({
action: 'getPeerID'
}));
}
function getNodeTrustUnits(data) {
const param = {
action: 'getNodeTrustUnits',
data: global.peerID
};
// console.log("getNodeTrustUnits", JSON.stringify(param));
global.centerportalws.send(JSON.stringify(param));
}
function onGetNodeTrustUnits(obj) {
// mainVue
mainVue.unitCount = obj.data.length;
addTcpNodeUnits(obj.data);
global.nodeUnits = obj.data;
//showNodeTrustUnits();
var json = {};
json.action = "updateNodeUnits";
json.data = JSON.stringify(obj.data);
global.wssocket.send(JSON.stringify(json));
}
function showNodeTrustUnits(obj) {
// console.log("[showNodeTrustUnits]" + obj);
const dtLang = {
"sProcessing": "处理中...",
"lengthMenu": '显示 <select>' + '<option value="10">10</option>'
+ '<option value="50">50</option>'
+ '<option value="100">100</option>'
+ '<option value="-1">全部</option>' + '</select> 项结果',
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
};
let html = "<table class='table display row-border' id='trustNodesUnitTabDivTab'>" +
"<thead><tr><th>序号</th><th>ID</th><th>类型</th><th>创建者</th><th>节点数目</th><th>节点列表</th></tr></thead>" +
"<tbody>";
const tableTail = "</tbody></table>";
if (global.nodeUnits) {
for (let i = 0; i < global.nodeUnits.length; i++) {
const at_ = global.nodeUnits[i].key.indexOf("_");
const nodes = JSON.parse(global.nodeUnits[i].value);
html += `<tr>
<td>${i + 1}</td>
<td>${global.nodeUnits[i].key.substring(at_ + 1)}</td>
<td>TCP</td>
<td>${global.nodeUnits[i].key.substring(0, at_ - 1)}</td>
<td>${nodes.length}</td>
<td>${nodes.map(x => x.nodeName).sort().join(',')}</td>
</tr>`
}
}
if (global.p2pNodes) {
html += "<tr><td>" + (i + 1) + "</td> <td>P2PUnit</td><td>P2P</td> <td>bdledger</td> <td>" + global.p2pNodes.length + "</td> <td>" + JSON.stringify(global.p2pNodes) + "</td> </tr>";
}
html += tableTail;
$("#trustNodesUnitTabDiv").html(html);
$("#trustNodesUnitTabDivTab").DataTable({
"language": dtLang,
"rowCallback": function (row, data, displayNum, displayIndex,
dataIndex) {
},
"headerCallback": function (thead, data, start, end, display) {
$(thead).css("background", primaryColor);
$(thead).css("color", "white");
$(thead).children().css("background", primaryColor);
$(thead).children().css("color", "white");
},
scrollCollapse: false,
paging: true,
pageLength: 10,
order: [[0, 'desc']],
"columnDefs": [
{
"targets": 3,
"render": function (data, type, row, meta) {
if (data.length > 15)
return "<span title='" + data + "'>"
+ data.substring(0, 15)
+ " ...</span>";
else
return data;
}
},
{
"targets": 5,
"render": function (data, type, row, meta) {
if (data.length > 40)
return "<span title='" + data + "'>"
+ data.substring(0, 40)
+ " ...</span>";
else
return data;
}
}]
});
}
submitReq = function () {
const request = {};
request.action = "executeContract";
request.requestID = new Date().getTime() + "";
request.contractID = "LicenceService";
const localArg = {};
localArg.action = "apply";
localArg.arg = {};
// localArg.arg.remark = $("#remark")[0].value;
localArg.arg.uuid = global.EncodedUUID;
localArg.arg = JSON.stringify(localArg.arg);
request.arg = JSON.stringify(localArg);
request.publicKey = global.privKey.publicKey;
request.signature = sm2.doSignature(`${request.contractID}|${localArg.action}|${localArg.arg}|${global.privKey.publicKey}`,
global.privKey.privateKey);
global.wssocket.send(JSON.stringify(request));
};
flushLicence = function () {
const request = {};
request.action = "executeContract";
request.requestID = new Date().getTime() + "";
request.contractID = "LicenceService";
const localArg = {};
localArg.action = "request";
localArg.arg = global.EncodedUUID;
request.arg = JSON.stringify(localArg);
request.publicKey = global.privKey.publicKey;
request.signature = sm2.doSignature(`${request.contractID}|${localArg.action}|${localArg.arg}|${global.privKey.publicKey}`,
global.privKey.privateKey);
global.lastReqID = request.requestID;
global.wssocket.send(JSON.stringify(request));
};
downloadUUID = function () {
window.open(window.location.href.replace("/licence.html", "/SCManager?action=downloadUUID"));
};