diff --git a/applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/logread.js b/applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/logread.js
new file mode 100644
index 0000000000..9b3c7bfc41
--- /dev/null
+++ b/applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/logread.js
@@ -0,0 +1,43 @@
+'use strict';
+'require fs';
+
+return L.view.extend({
+ render: function() {
+ L.Poll.add(function() {
+ return L.resolveDefault(fs.exec('/sbin/logread', ['-e', 'nextdns']), { code: 1 })
+ .then(function(res) {
+ var content;
+ if (res.code === 0)
+ content = res.stdout.trim();
+ if (!content)
+ content = _('No nextdns related logs yet!');
+ var view = document.getElementById("view_id");
+ view.value = content;
+ view.scrollTop = view.scrollHeight;
+ });
+ });
+ return E('div', { class: 'cbi-map' },
+ E('div', { class: 'cbi-section' }, [
+ E('div', { class: 'cbi-section-descr' },
+ _('The syslog output, pre-filtered for nextdns related messages only.')),
+ E('textarea', {
+ id: 'view_id',
+ readonly: 'readonly',
+ wrap: 'off',
+ style: 'width: 100% !important;\
+ height: 450px !important;\
+ border: 1px solid #cccccc;\
+ padding: 5px;\
+ font-size: 12px;\
+ font-family: monospace;\
+ resize: none;\
+ pointer-events: auto;\
+ cursor: auto;'
+ })
+ ])
+ );
+ },
+ handleSaveApply: null,
+ handleSave: null,
+ handleReset: null
+});
diff --git a/applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/overview.js b/applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/overview.js
new file mode 100644
index 0000000000..2fd693f3e2
--- /dev/null
+++ b/applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/overview.js
@@ -0,0 +1,44 @@
+'use strict';
+'require form';
+
+return L.view.extend({
+ render: function() {
+ var m, s, o;
+
+ m = new form.Map('nextdns', _('NextDNS'),
+ _('NextDNS Configuration.')
+ + '
'
+ + _('For further information, go to \
+ nextdns.io.'));
+
+ s = m.section(form.TypedSection, 'nextdns', _('General'));
+ s.anonymous = true;
+
+ o = s.option(form.Flag, 'enabled', _('Enabled'),
+ _('Enable NextDNS.'));
+ o.default = '1';
+ o.rmempty = false;
+
+ s.option(form.Value, 'config', _('Configuration ID'),
+ _('The ID of your NextDNS configuration.')
+ + '
'
+ + _('Go to nextdns.io to create a configuration.'));
+
+ o = s.option(form.Flag, 'report_client_info', _('Report Client Info'),
+ _('Expose LAN clients information in NextDNS analytics.'));
+ o.default = '1';
+ o.rmempty = false;
+
+ o = s.option(form.Flag, 'hardened_privacy', _('Hardened Privacy'),
+ _('When enabled, use DNS servers located in jurisdictions with strong privacy laws.')
+ + '
'
+ + _('Available locations are: Switzerland, Iceland, Finland, Panama and Hong Kong.'));
+ o.rmempty = false;
+
+ o = s.option(form.Flag, 'log_queries', _('Log Queries'),
+ _('Log individual queries to system log.'));
+ o.rmempty = false;
+
+ return m.render();
+ },
+});
diff --git a/applications/luci-app-nextdns/luasrc/controller/nextdns.lua b/applications/luci-app-nextdns/luasrc/controller/nextdns.lua
index 0552981938..bfa4887b03 100644
--- a/applications/luci-app-nextdns/luasrc/controller/nextdns.lua
+++ b/applications/luci-app-nextdns/luasrc/controller/nextdns.lua
@@ -3,30 +3,12 @@
module("luci.controller.nextdns", package.seeall)
-local util = require("luci.util")
-local i18n = require("luci.i18n")
-local templ = require("luci.template")
-local http = require("luci.http")
-
function index()
if not nixio.fs.access("/etc/config/nextdns") then
return
end
entry({"admin", "services", "nextdns"}, firstchild(), _("NextDNS"), 60).dependent = false
- entry({"admin", "services", "nextdns", "overview"}, cbi("overview", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
- entry({"admin", "services", "nextdns", "log"}, template("nextdns/logread"), _("Logs"), 30).leaf = true
-
- entry({"admin", "services", "nextdns", "logread"}, call("logread"), nil).leaf = true
-
+ entry({"admin", "services", "nextdns", "overview"}, view("nextdns/overview"), _("Overview"), 10).leaf = true
+ entry({"admin", "services", "nextdns", "log"}, view("nextdns/logread"), _("Logs"), 30).leaf = true
end
-
-function logread()
- local content = util.trim(util.exec("logread -e 'nextdns'")) or ""
-
- if content == "" then
- content = "No nextdns related logs yet!"
- end
- http.write(content)
-end
-
diff --git a/applications/luci-app-nextdns/luasrc/model/cbi/overview.lua b/applications/luci-app-nextdns/luasrc/model/cbi/overview.lua
deleted file mode 100644
index a932a85f89..0000000000
--- a/applications/luci-app-nextdns/luasrc/model/cbi/overview.lua
+++ /dev/null
@@ -1,41 +0,0 @@
-local uci = require("luci.model.uci").cursor()
-
-nextdns = Map("nextdns", translate("NextDNS"),
- translate("NextDNS Configuration.")
- .. "
"
- .. translatef("For further information, go to "
- .. "nextdns.io"))
-
-
-function nextdns.on_after_commit(self)
- luci.sys.call("env -i /etc/init.d/nextdns restart >/dev/null 2>&1")
-end
-
-s = nextdns:section(TypedSection, "nextdns", translate("General"))
-s.anonymous = true
-
-enabled = s:option(Flag, "enabled", translate("Enabled"),
- translate("Enable NextDNS."))
-enabled.rmempty = false
-
-conf = s:option(Value, "config", translate("Configuration ID"),
- translate("The ID of your NextDNS configuration.")
- .. "
"
- .. translate("Go to nextdns.io to create a configuration."))
-conf.rmempty = false
-
-report_client_info = s:option(Flag, "report_client_info", translate("Report Client Info"),
- translate("Expose LAN clients information in NextDNS analytics."))
-report_client_info.rmempty = false
-
-hardened_privacy = s:option(Flag, "hardened_privacy", translate("Hardened Privacy"),
- translate("When enabled, use DNS servers located in jurisdictions with strong privacy laws.")
- .. "
"
- .. translate("Available locations are: Switzerland, Iceland, Finland, Panama and Hong Kong."))
-hardened_privacy.rmempty = false
-
-log_query = s:option(Flag, "log_query", translate("Log Queries"),
- translate("Log individual queries to system log."))
-log_query.rmempty = false
-
-return nextdns
diff --git a/applications/luci-app-nextdns/luasrc/view/nextdns/logread.htm b/applications/luci-app-nextdns/luasrc/view/nextdns/logread.htm
deleted file mode 100644
index 0a98b2704f..0000000000
--- a/applications/luci-app-nextdns/luasrc/view/nextdns/logread.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<%+header%>
-
-
-
-
-
-