luci-app-pbr: update to 1.1.4-5
[project/luci.git] / applications / luci-app-pbr / htdocs / luci-static / resources / view / status / include / 72_pbr.js
1 "require ui";
2 "require rpc";
3 "require form";
4 "require baseclass";
5
6 var pkg = {
7 get Name() {
8 return "pbr";
9 },
10 get URL() {
11 return "https://docs.openwrt.melmac.net/" + pkg.Name + "/";
12 },
13 };
14
15 var getInitStatus = rpc.declare({
16 object: "luci." + pkg.Name,
17 method: "getInitStatus",
18 params: ["name"],
19 });
20
21 return baseclass.extend({
22 title: _("Policy Based Routing"),
23
24 load: function () {
25 return Promise.all([getInitStatus(pkg.Name)]);
26 },
27
28 render: function (data) {
29 var reply;
30 if (data[0] && data[0][pkg.Name]) {
31 reply = data[0][pkg.Name];
32 } else {
33 reply = {
34 enabled: null,
35 running: null,
36 running_iptables: null,
37 running_nft: null,
38 running_nft_file: null,
39 version: null,
40 gateways: null,
41 errors: [],
42 warnings: [],
43 };
44 }
45
46 var versionText,
47 statusText = "",
48 modeText = "";
49 if (reply.version) {
50 versionText = reply.version;
51 if (reply.running) {
52 statusText = _("Active");
53 if (reply.running_iptables) {
54 modeText = _("iptables mode");
55 } else if (reply.running_nft_file) {
56 modeText = _("fw4 nft file mode");
57 } else if (reply.running_nft) {
58 modeText = _("nft mode");
59 } else {
60 modeText = _("unknown");
61 }
62 } else {
63 if (reply.enabled) {
64 statusText = _("Inactive");
65 } else {
66 statusText = _("Inactive (Disabled)");
67 }
68 }
69 } else {
70 versionText = _("Not installed or not found");
71 }
72
73 var table = E("table", { class: "table", id: "pbr_status_table" }, [
74 E("tr", { class: "tr table-titles" }, [
75 E("th", { class: "th" }, _("Status")),
76 E("th", { class: "th" }, _("Version")),
77 E("th", { class: "th" }, _("Mode")),
78 ]),
79 E("tr", { class: "tr" }, [
80 E("td", { class: "td" }, statusText),
81 E("td", { class: "td" }, versionText),
82 E("td", { class: "td" }, modeText),
83 ]),
84 ]);
85
86 return table;
87 },
88 });