| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- function apiGetRetry(url, retry) {
- if (retry === undefined) {
- retry = false;
- }
- return fetch(url)
- .then(function (res) {
- if (!res.ok) {
- throw new Error("HTTP " + res.status);
- }
- return res.text();
- })
- .then(function (text) {
- if (!text || text.trim() === "") {
- throw new Error("empty response");
- }
- return text.trim();
- })
- .catch(function (e) {
- console.log("GET failed:", url, e.message);
- if (retry) {
- setTimeout(function () {
- return apiGetRetry(url, true);
- }, 3000);
- }
- throw e;
- });
- }
- function getNetInfo1() {
- setText("text1", "", "page2");
- apiGetRetry("/api/network/interfaces")
- .then(function (data) {
- setText("text1", data, "page2");
- })
- .catch(function () {
- setText("text1", "获取失败", "page2");
- });
- }
- function getNetInfo2() {
- setText("text2", "", "page2");
- apiGetRetry("/api/network/routes")
- .then(function (data) {
- setText("text2", data, "page2");
- })
- .catch(function () {
- setText("text2", "获取失败", "page2");
- });
- }
- function getNetInfo3() {
- setText("text3", "", "page2");
- apiGetRetry("/api/network/dns")
- .then(function (data) {
- setText("text3", data, "page2");
- })
- .catch(function () {
- setText("text3", "获取失败", "page2");
- });
- }
- var netLogLevel = "";
- function setNetLogLevel() {
- var level = logLevel.value;
- fetch("/api/network/loglevel", {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify({ level: level }),
- })
- .then(function (r) {
- if (!r.ok) {
- return r.text().then(function (t) {
- throw new Error(t);
- });
- }
- netLogLevel = level;
- })
- .catch(function (e) {
- logLevel.value = netLogLevel;
- });
- }
- function getNetLogLevel() {
- fetch("/api/network/loglevel")
- .then(function (r) {
- if (!r.ok) {
- return r.text().then(function (t) {
- throw new Error(t);
- });
- }
- return r.json();
- })
- .then(function (d) {
- netLogLevel = d.log_level;
- logLevel.value = d.log_level;
- })
- .catch(function (e) {
- netLogLevel = "";
- logLevel.value = "";
- });
- }
- function downloadNetLogFile(event) {
- var btn = event.currentTarget;
- btn.disabled = true;
- fetch("/api/network/logfile")
- .then(function (r) {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- var disposition = r.headers.get("Content-Disposition");
- var filename = "network.log.tar.gz";
- if (disposition) {
- var match = disposition.match(/filename="?([^";]+)"?/);
- if (match) {
- filename = match[1];
- }
- }
- return r.blob().then(function (blob) {
- return { blob: blob, filename: filename };
- });
- })
- .then(function (res) {
- downloadBlobFile(res.blob, res.filename);
- alert("下载成功");
- })
- .catch(function (e) {
- console.error("download failed:", e);
- alert("下载失败: " + e.message);
- })
- .finally(function () {
- btn.disabled = false;
- btn.textContent = "下载";
- });
- }
- function restartNetService(event) {
- if (!confirm("确定重启联网服务吗?")) {
- return;
- }
- var btn = event.currentTarget;
- btn.disabled = true;
- fetch("/api/network/restart", {
- method: "POST",
- })
- .then(function (r) {
- if (!r.ok) {
- return r.text().then(function (t) {
- throw new Error(t);
- });
- }
- alert("重启成功");
- })
- .catch(function (e) {
- console.error("restart failed:", e);
- alert("重启失败: " + e.message);
- })
- .finally(function () {
- btn.disabled = false;
- });
- }
- var netStatusTimer = null;
- function getNetworkStatus() {
- fetch("/api/network/status")
- .then(function (r) {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- return r.json();
- })
- .then(function (data) {
- setText("var1", data.var1, "page2");
- setText("var2", data.var2, "page2");
- setText("var3", data.var3, "page2");
- setText("var4", data.var4, "page2");
- setText("var5", data.var5, "page2");
- })
- .catch(function (e) {
- console.error("getNetworkStatus() failed:", e);
- ["var1", "var2", "var3", "var4", "var5"].forEach(function (id) {
- return setText(id, null, "page2");
- });
- });
- getNetLogLevel();
- }
- function startNetStatusRefresh() {
- if (netStatusTimer) {
- return;
- }
- getNetworkStatus();
- netStatusTimer = setInterval(function () {
- getNetworkStatus();
- }, 5000);
- }
- function stopNetStatusRefresh() {
- if (netStatusTimer) {
- clearInterval(netStatusTimer);
- netStatusTimer = null;
- }
- }
- function initPage2() {
- startNetStatusRefresh();
- getNetInfo1();
- getNetInfo2();
- getNetInfo3();
- connectLog("yfkj-networkd.service", "text4");
- }
- function exitPage2() {
- stopNetStatusRefresh();
- disconnectLog();
- }
|