luci-app-snmpd: convert CBI to JS
authorKarl Palsson <karlp@etactica.com>
Wed, 6 Oct 2021 14:22:40 +0000 (14:22 +0000)
committerJo-Philipp Wich <jo@mein.io>
Fri, 8 Oct 2021 18:08:41 +0000 (20:08 +0200)
Eliminates luci-compat, but no other changes.

Signed-off-by: Karl Palsson <karlp@etactica.com>
[add final newline, explicitly require `view` class, remove unused require,
 fix commit subject, initialize translation template]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
applications/luci-app-snmpd/Makefile
applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js [new file with mode: 0644]
applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua [deleted file]
applications/luci-app-snmpd/po/templates/snmpd.pot [new file with mode: 0644]
applications/luci-app-snmpd/root/usr/share/luci/menu.d/luci-app-snmpd.json

index 48be986ae5e8c945ccf6b44478518556665216db..ffb14cfe252ad800fb10c2a67e008fed501db23a 100644 (file)
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 LUCI_TITLE:= Net-SNMP LuCI interface
-LUCI_DEPENDS:=+luci-compat +luci-base +snmpd
+LUCI_DEPENDS:=+luci-base +snmpd
 LUCI_PKGARCH:=all
 LUCI_DESCRIPTION:=Some common net-snmp config items. In no way is this comprehensive.
 
diff --git a/applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js b/applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js
new file mode 100644 (file)
index 0000000..b9e5e28
--- /dev/null
@@ -0,0 +1,64 @@
+// SPDX: Apache-2.0
+// Karl Palsson <karlp@etactica.com> 2021
+'use strict';
+'require form';
+'require ui';
+'require view';
+
+var desc = _(""
+    + "SNMPD is a master daemon/agent for SNMP, from the <a href='http://www.net-snmp.org'>"
+    + "net-snmp project</a>. "
+    + "Note, OpenWrt has mostly complete UCI support for snmpd, but this LuCI applet "
+    + "only covers a few of those options. In particular, there is very little/no validation "
+    + "or help. See /etc/config/snmpd for manual configuration."
+);
+
+return view.extend({
+       render: function() {
+               var m, s, o;
+
+               m = new form.Map("snmpd", _("net-snmp's SNMPD"), desc);
+
+               s = m.section(form.TypedSection, "agent", _("Agent settings"));
+               s.anonymous = true;
+               o = s.option(form.Value, "agentaddress", _("The address the agent should listen on"),
+                       _("Eg: UDP:161, or UDP:10.5.4.3:161 to only listen on a given interface"));
+
+               s = m.section(form.TypedSection, "agentx", _("AgentX settings"),
+                       _("Delete this section to disable AgentX"));
+               s.anonymous = true;
+               o = s.option(form.Value, "agentxsocket", _("The address the agent should allow AgentX connections to"),
+                       _("This is only necessary if you have subagents using the agentX "
+                       + "socket protocol. Eg: /var/run/agentx.sock"));
+               s.addremove = true;
+
+               s = m.section(form.TypedSection, "com2sec", _("com2sec security"));
+               o = s.option(form.Value, "secname", "secname");
+               o = s.option(form.Value, "source", "source");
+               o = s.option(form.Value, "community", "community");
+
+               s = m.section(form.TypedSection, "group", "group", _("Groups help define access methods"));
+               s.addremove = true;
+               s.option(form.Value, "group", "group");
+               s.option(form.Value, "version", "version");
+               s.option(form.Value, "secname", "secname");
+
+               s = m.section(form.TypedSection, "access", "access");
+               s.option(form.Value, "group", "group");
+               s.option(form.Value, "context", "context");
+               s.option(form.Value, "version", "version");
+               s.option(form.Value, "level", "level");
+               s.option(form.Value, "prefix", "prefix");
+               s.option(form.Value, "read", "read");
+               s.option(form.Value, "write", "write");
+               s.option(form.Value, "notify", "notify");
+
+               s = m.section(form.TypedSection, "system", _("System"), _("Values used in the MIB2 System tree"));
+               s.anonymous = true;
+               s.option(form.Value, "sysLocation", "sysLocation");
+               s.option(form.Value, "sysContact", "sysContact");
+               s.option(form.Value, "sysName", "sysName");
+
+               return m.render();
+       }
+});
diff --git a/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua b/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua
deleted file mode 100644 (file)
index cc6951e..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
---[[
-LuCI model for net-snmp configuration management
-Copyright Karl Palsson <karlp@etactica.com>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-]]--
-
-local datatypes = require("luci.cbi.datatypes")
-
-m = Map("snmpd", "net-snmp's SNMPD",
-    [[SNMPD is a master daemon/agent for SNMP, from the <a href='http://www.net-snmp.org'>
- net-snmp project</a>.
- Note, OpenWrt has mostly complete UCI support for snmpd, but this LuCI applet
- only covers a few of those options. In particular, there is very little/no validation
- or help.
-See /etc/config/snmpd for manual configuration.
- ]])
-s = m:section(TypedSection, "agent", "Agent settings")
-s.anonymous = true
-p = s:option(Value, "agentaddress", "The address the agent should listen on",
-       [[Eg: UDP:161, or UDP:10.5.4.3:161 to only listen on a given interface]])
-
-s = m:section(TypedSection, "agentx", "AgentX settings", "Delete this section to disable agentx")
-s.anonymous = true
-p = s:option(Value, "agentxsocket", "The address the agent should allow agentX connections to",
-    [[This is only necessary if you have subagents using the agentX socket protocol.
-    Eg: /var/run/agentx.sock]])
-s.addremove=true
-
-s = m:section(TypedSection, "com2sec", "com2sec security")
-p = s:option(Value, "secname", "secname")
-p = s:option(Value, "source", "source")
-p = s:option(Value, "community", "community")
-
-s = m:section(TypedSection, "group", "group", "Groups help define access methods")
-s.addremove=true
-s:option(Value, "group", "group")
-s:option(Value, "version", "version")
-s:option(Value, "secname", "secname")
-
-s = m:section(TypedSection, "access", "access")
-s:option(Value, "group", "group")
-s:option(Value, "context", "context")
-s:option(Value, "version", "version")
-s:option(Value, "level", "level")
-s:option(Value, "prefix", "prefix")
-s:option(Value, "read", "read")
-s:option(Value, "write", "write")
-s:option(Value, "notify", "notify")
-
-s = m:section(TypedSection, "system", "System", "Values used in the MIB2 System tree")
-s.anonymous = true
-s:option(Value, "sysLocation", "sysLocation")
-s:option(Value, "sysContact", "sysContact")
-s:option(Value, "sysName", "sysName")
-
-return m
diff --git a/applications/luci-app-snmpd/po/templates/snmpd.pot b/applications/luci-app-snmpd/po/templates/snmpd.pot
new file mode 100644 (file)
index 0000000..5eb995f
--- /dev/null
@@ -0,0 +1,69 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:22
+msgid "Agent settings"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:27
+msgid "AgentX settings"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:28
+msgid "Delete this section to disable AgentX"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:25
+msgid "Eg: UDP:161, or UDP:10.5.4.3:161 to only listen on a given interface"
+msgstr ""
+
+#: applications/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json:3
+msgid "Grant UCI access for luci-app-snmpd"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:40
+msgid "Groups help define access methods"
+msgstr ""
+
+#: applications/luci-app-snmpd/root/usr/share/luci/menu.d/luci-app-snmpd.json:3
+msgid "SNMPD"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:8
+msgid ""
+"SNMPD is a master daemon/agent for SNMP, from the <a href='http://www.net-"
+"snmp.org'>net-snmp project</a>. Note, OpenWrt has mostly complete UCI "
+"support for snmpd, but this LuCI applet only covers a few of those options. "
+"In particular, there is very little/no validation or help. See /etc/config/"
+"snmpd for manual configuration."
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:56
+msgid "System"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:30
+msgid "The address the agent should allow AgentX connections to"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:24
+msgid "The address the agent should listen on"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:31
+msgid ""
+"This is only necessary if you have subagents using the agentX socket "
+"protocol. Eg: /var/run/agentx.sock"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:56
+msgid "Values used in the MIB2 System tree"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:35
+msgid "com2sec security"
+msgstr ""
+
+#: applications/luci-app-snmpd/htdocs/luci-static/resources/view/snmpd/snmpd.js:20
+msgid "net-snmp's SNMPD"
+msgstr ""
index c30f35fa423c51ca811a5feb8f2ef6091facab45..85850a218a93bbb1694f05da80b412bad4967b8b 100644 (file)
@@ -2,12 +2,12 @@
        "admin/services/snmpd": {
                "title": "SNMPD",
                "action": {
-                       "type": "cbi",
-                       "path": "snmpd",
-                       "post": { "cbi.submit": true }
+                       "type": "view",
+                       "path": "snmpd/snmpd"
                },
                "depends": {
-                       "acl": [ "luci-app-snmpd" ]
+                       "acl": [ "luci-app-snmpd" ],
+                       "uci": { "snmpd":  true }
                }
        }
 }