Compare commits
4 commits
a0b127873e
...
7727f17ed5
Author | SHA1 | Date | |
---|---|---|---|
|
7727f17ed5 | ||
|
54d3a69d8f | ||
|
4839f303e6 | ||
|
9b2914f877 |
|
@ -4,21 +4,30 @@
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=luci-app-smartdns
|
||||||
|
PKG_VERSION:=1.2025.47.2
|
||||||
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-3.0-or-later
|
PKG_LICENSE:=GPL-3.0-or-later
|
||||||
PKG_MAINTAINER:=Nick Peng <pymumu@gmail.com>
|
PKG_MAINTAINER:=Nick Peng <pymumu@gmail.com>
|
||||||
PKG_VERSION:=1.2025.47.2
|
|
||||||
PKG_RELEASE:=1
|
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI for smartdns
|
LUCI_TITLE:=LuCI for smartdns
|
||||||
LUCI_DESCRIPTION:=Provides Luci for smartdns
|
LUCI_DESCRIPTION:=Provides Luci for smartdns
|
||||||
LUCI_DEPENDS:=+smartdns
|
|
||||||
LUCI_PKGARCH:=all
|
LUCI_PKGARCH:=all
|
||||||
|
LUCI_DEPENDS:=+luci-base +smartdns \
|
||||||
|
+PACKAGE_$(PKG_NAME)_INCLUDE_smartdns_ui:smartdns-ui
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/config
|
define Package/$(PKG_NAME)/config
|
||||||
# shown in make menuconfig <Help>
|
# shown in make menuconfig <Help>
|
||||||
help
|
help
|
||||||
$(LUCI_TITLE)
|
$(LUCI_TITLE)
|
||||||
Version: $(PKG_VERSION)-$(PKG_RELEASE)
|
Version: $(PKG_VERSION)-$(PKG_RELEASE)
|
||||||
|
|
||||||
|
config PACKAGE_$(PKG_NAME)_INCLUDE_smartdns_ui
|
||||||
|
bool "Include smartdns-ui"
|
||||||
|
default n
|
||||||
endef
|
endef
|
||||||
|
|
||||||
include $(TOPDIR)/feeds/luci/luci.mk
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|
|
@ -90,7 +90,7 @@ return view.extend({
|
||||||
var button = ev.target;
|
var button = ev.target;
|
||||||
button.disabled = true;
|
button.disabled = true;
|
||||||
button.textContent = _('Clear Logs...');
|
button.textContent = _('Clear Logs...');
|
||||||
fs.exec_direct('/usr/libexec/smartdns-call', ['clear_log'])
|
fs.exec('/usr/libexec/smartdns-call', ['clear_log'])
|
||||||
.then(function () {
|
.then(function () {
|
||||||
button.textContent = _('Logs cleared successfully!');
|
button.textContent = _('Logs cleared successfully!');
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
@ -114,9 +114,9 @@ return view.extend({
|
||||||
|
|
||||||
|
|
||||||
poll.add(L.bind(function () {
|
poll.add(L.bind(function () {
|
||||||
return fs.exec_direct('/usr/libexec/smartdns-call', ['tail'])
|
return fs.exec('/usr/libexec/smartdns-call', ['tail'])
|
||||||
.then(function (res) {
|
.then(function (res) {
|
||||||
var log = E('pre', { 'wrap': 'pre' }, [res.trim() || _('Log is clean.')]);
|
var log = E('pre', { 'wrap': 'pre' }, [res.stdout.trim() || _('Log is clean.')]);
|
||||||
|
|
||||||
dom.content(log_textarea, log);
|
dom.content(log_textarea, log);
|
||||||
log.scrollTop = log.scrollHeight;
|
log.scrollTop = log.scrollHeight;
|
||||||
|
|
|
@ -61,8 +61,16 @@ function smartdnsRenderStatus(res) {
|
||||||
var smartdnsEnable = uci.get_first('smartdns', 'smartdns', 'enabled');
|
var smartdnsEnable = uci.get_first('smartdns', 'smartdns', 'enabled');
|
||||||
var dnsmasqServer = uci.get_first('dhcp', 'dnsmasq', 'server');
|
var dnsmasqServer = uci.get_first('dhcp', 'dnsmasq', 'server');
|
||||||
|
|
||||||
|
var uiEnable = uci.get_first('smartdns', 'smartdns', 'ui') || "0";
|
||||||
|
var uiPort = uci.get_first('smartdns', 'smartdns', 'ui_port') || "6080";
|
||||||
|
|
||||||
if (isRunning) {
|
if (isRunning) {
|
||||||
renderHTML += "<span style=\"color:green;font-weight:bold\">SmartDNS - " + _("RUNNING") + "</span>";
|
renderHTML += "<span style=\"color:green;font-weight:bold\">SmartDNS - " + _("RUNNING") + "</span>";
|
||||||
|
|
||||||
|
if (uiEnable === '1') {
|
||||||
|
var uiLink = "http://" + window.location.hostname + ":" + uiPort + "/";
|
||||||
|
renderHTML += "<a class=\"cbi-button cbi-button-action\" style=\"margin-left: 10px;\" href=\"" + uiLink + "\" target=\"_blank\">" + _("Open the WebUI") + "</a>";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
renderHTML += "<span style=\"color:red;font-weight:bold\">SmartDNS - " + _("NOT RUNNING") + "</span>";
|
renderHTML += "<span style=\"color:red;font-weight:bold\">SmartDNS - " + _("NOT RUNNING") + "</span>";
|
||||||
if (smartdnsEnable === '1') {
|
if (smartdnsEnable === '1') {
|
||||||
|
@ -84,17 +92,28 @@ function smartdnsRenderStatus(res) {
|
||||||
|
|
||||||
return renderHTML;
|
return renderHTML;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isSmartdnsUiAvailable() {
|
||||||
|
return fs.stat('/usr/lib/libsmartdns_ui.so').then(function (res) {
|
||||||
|
return res && res.type === 'file';
|
||||||
|
}).catch(function () {
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return view.extend({
|
return view.extend({
|
||||||
load: function () {
|
load: function () {
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
uci.load('dhcp'),
|
uci.load('dhcp'),
|
||||||
uci.load('smartdns'),
|
uci.load('smartdns'),
|
||||||
|
isSmartdnsUiAvailable()
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
render: function (stats) {
|
render: function (stats) {
|
||||||
var m, s, o;
|
var m, s, o;
|
||||||
var ss, so;
|
var ss, so;
|
||||||
var servers, download_files;
|
var servers, download_files;
|
||||||
|
var hasUi = stats[2];
|
||||||
|
|
||||||
m = new form.Map('smartdns', _('SmartDNS'));
|
m = new form.Map('smartdns', _('SmartDNS'));
|
||||||
m.title = _("SmartDNS Server");
|
m.title = _("SmartDNS Server");
|
||||||
|
@ -166,6 +185,31 @@ return view.extend({
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.default = o.enabled;
|
o.default = o.enabled;
|
||||||
|
|
||||||
|
//WebUI
|
||||||
|
if (hasUi) {
|
||||||
|
o = s.taboption("settings", form.Flag, "ui", _("Enable WebUI"), _("Enable or disable smartdns webui plugin."));
|
||||||
|
o.rmempty = false;
|
||||||
|
o.default = o.disabled;
|
||||||
|
|
||||||
|
o = s.taboption("settings", form.Value, "ui_port", _("WebUI Port"), _("WebUI server port."));
|
||||||
|
o.placeholder = 6080;
|
||||||
|
o.datatype = "port";
|
||||||
|
o.rempty = false;
|
||||||
|
o.depends('ui', '1');
|
||||||
|
|
||||||
|
o = s.taboption("settings", form.Value, "ui_data_dir", _("WebUI Data Dir"), _("Directory for storing the webui database."));
|
||||||
|
o.placeholder = "/var/lib/smartdns";
|
||||||
|
o.datatype = "string";
|
||||||
|
o.rempty = false;
|
||||||
|
o.depends('ui', '1');
|
||||||
|
|
||||||
|
o = s.taboption("settings", form.Value, "ui_log_max_age", _("WebUI Log Retention"), _("Number of days to retain webui logs."));
|
||||||
|
o.placeholder = 30;
|
||||||
|
o.datatype = "uinteger";
|
||||||
|
o.rempty = false;
|
||||||
|
o.depends('ui', '1');
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
// advanced settings;
|
// advanced settings;
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -11,13 +11,13 @@ PKG_RELEASE:=3
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://www.github.com/pymumu/smartdns.git
|
PKG_SOURCE_URL:=https://www.github.com/pymumu/smartdns.git
|
||||||
PKG_SOURCE_VERSION:=d9d274c0f62c24051671798802f28c76bda2ddfa
|
PKG_MIRROR_HASH:=7570cff824f4dca0b350f8a42ed64f94604c46d711d803b691e6e3eeefa3f69d
|
||||||
PKG_MIRROR_HASH:=6415775cf0b109fb443d7ad46912c2dbc4f28bea423c6cca24f6a1fde9bf546d
|
PKG_SOURCE_VERSION:=130a9c06016d4aa12fede5edc94dc847c81640d7
|
||||||
|
|
||||||
SMARTDNS_WEBUI_VERSION:=1.0.0
|
SMARTDNS_WEBUI_VERSION:=1.0.0
|
||||||
SMAETDNS_WEBUI_SOURCE_PROTO:=git
|
SMAETDNS_WEBUI_SOURCE_PROTO:=git
|
||||||
SMARTDNS_WEBUI_SOURCE_URL:=https://github.com/pymumu/smartdns-webui.git
|
SMARTDNS_WEBUI_SOURCE_URL:=https://github.com/pymumu/smartdns-webui.git
|
||||||
SMARTDNS_WEBUI_SOURCE_VERSION:=35cbf4a1940f5dd32670c69bd5cc02437ad073e7
|
SMARTDNS_WEBUI_SOURCE_VERSION:=c610c52492b3988e7cee370424013afdf0e7a00b
|
||||||
SMARTDNS_WEBUI_FILE:=smartdns-webui-$(SMARTDNS_WEBUI_VERSION).tar.gz
|
SMARTDNS_WEBUI_FILE:=smartdns-webui-$(SMARTDNS_WEBUI_VERSION).tar.gz
|
||||||
|
|
||||||
PKG_MAINTAINER:=Nick Peng <pymumu@gmail.com>
|
PKG_MAINTAINER:=Nick Peng <pymumu@gmail.com>
|
||||||
|
@ -115,7 +115,7 @@ define Download/smartdns-webui
|
||||||
FILE:=$(SMARTDNS_WEBUI_FILE)
|
FILE:=$(SMARTDNS_WEBUI_FILE)
|
||||||
PROTO:=$(SMAETDNS_WEBUI_SOURCE_PROTO)
|
PROTO:=$(SMAETDNS_WEBUI_SOURCE_PROTO)
|
||||||
URL:=$(SMARTDNS_WEBUI_SOURCE_URL)
|
URL:=$(SMARTDNS_WEBUI_SOURCE_URL)
|
||||||
MIRROR_HASH:=b3f4f73b746ee169708f6504c52b33d9bbeb7c269b731bd7de4f61d0ad212d74
|
MIRROR_HASH:=400a0d5a9d57f24058261d5c6f64502e389e40aac36bc40f62e68dbd7cb4121a
|
||||||
VERSION:=$(SMARTDNS_WEBUI_SOURCE_VERSION)
|
VERSION:=$(SMARTDNS_WEBUI_SOURCE_VERSION)
|
||||||
HASH:=$(SMARTDNS_WEBUI_HASH)
|
HASH:=$(SMARTDNS_WEBUI_HASH)
|
||||||
SUBDIR:=smartdns-webui
|
SUBDIR:=smartdns-webui
|
||||||
|
|
Loading…
Reference in a new issue