🐶 Sync 2025-11-02 14:26:26
This commit is contained in:
34
luci-app-daed/luasrc/controller/daed.lua
Normal file
34
luci-app-daed/luasrc/controller/daed.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
local sys = require "luci.sys"
|
||||
local http = require "luci.http"
|
||||
|
||||
module("luci.controller.daed", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/daed") then
|
||||
return
|
||||
end
|
||||
|
||||
entry({"admin", "services", "daed"}, alias("admin", "services", "daed", "setting"),_("DAED"), 58).dependent = true
|
||||
entry({"admin", "services", "daed", "setting"}, cbi("daed/basic"), _("Base Setting"), 1).leaf=true
|
||||
entry({"admin", "services", "daed", "daed"}, template("daed/daed"), _("Dashboard"), 2).leaf = true
|
||||
entry({"admin", "services", "daed", "log"}, cbi("daed/log"), _("Logs"), 3).leaf = true
|
||||
entry({"admin", "services", "daed_status"}, call("act_status"))
|
||||
entry({"admin", "services", "daed", "get_log"}, call("get_log")).leaf = true
|
||||
entry({"admin", "services", "daed", "clear_log"}, call("clear_log")).leaf = true
|
||||
end
|
||||
|
||||
function act_status()
|
||||
local sys = require "luci.sys"
|
||||
local e = { }
|
||||
e.running = sys.call("pidof daed >/dev/null") == 0
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
||||
|
||||
function get_log()
|
||||
http.write(sys.exec("cat /var/log/daed/daed.log"))
|
||||
end
|
||||
|
||||
function clear_log()
|
||||
sys.call("true > /var/log/daed/daed.log")
|
||||
end
|
||||
67
luci-app-daed/luasrc/model/cbi/daed/basic.lua
Normal file
67
luci-app-daed/luasrc/model/cbi/daed/basic.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
local m, s ,o
|
||||
|
||||
m = Map("daed")
|
||||
m.title = translate("DAED")
|
||||
m.description = translate("DAE is a Linux high-performance transparent proxy solution based on eBPF, And DAED is a modern dashboard for dae.")
|
||||
|
||||
m:section(SimpleSection).template = "daed/daed_status"
|
||||
|
||||
s = m:section(TypedSection, "daed", translate("Global Settings"))
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag,"enabled",translate("Enable"))
|
||||
o.default = 0
|
||||
|
||||
enable = s:option(Flag, "subscribe_auto_update", translate("Enable Auto Subscribe Update"))
|
||||
enable.rmempty = false
|
||||
|
||||
o = s:option(Value, "daed_username", translate("Username"))
|
||||
o.default = Username
|
||||
o.password = true
|
||||
o:depends('subscribe_auto_update', '1')
|
||||
|
||||
o = s:option(Value, "daed_password", translate("Password"))
|
||||
o.default = Password
|
||||
o.password = true
|
||||
o:depends('subscribe_auto_update', '1')
|
||||
|
||||
o = s:option(ListValue, "subscribe_update_week_time", translate("Update Cycle"))
|
||||
o:value("*", translate("Every Day"))
|
||||
o:value("1", translate("Every Monday"))
|
||||
o:value("2", translate("Every Tuesday"))
|
||||
o:value("3", translate("Every Wednesday"))
|
||||
o:value("4", translate("Every Thursday"))
|
||||
o:value("5", translate("Every Friday"))
|
||||
o:value("6", translate("Every Saturday"))
|
||||
o:value("7", translate("Every Sunday"))
|
||||
o.default = "*"
|
||||
o:depends('subscribe_auto_update', '1')
|
||||
|
||||
update_time = s:option(ListValue, "subscribe_update_day_time", translate("Update Time (Every Day)"))
|
||||
for t = 0, 23 do
|
||||
update_time:value(t, t..":00")
|
||||
end
|
||||
update_time.default = 0
|
||||
update_time:depends('subscribe_auto_update', '1')
|
||||
|
||||
o = s:option(Value, "log_maxbackups", translate("Logfile retention count"))
|
||||
o.default = 1
|
||||
|
||||
o = s:option(Value, "log_maxsize", translate("Logfile Max Size (MB)"))
|
||||
o.default = 5
|
||||
|
||||
o = s:option(Value, "listen_addr",translate("Set the DAED listen address"))
|
||||
o.default = '0.0.0.0:2023'
|
||||
|
||||
o = s:option(Value, "dashboard_port", translate("Dashboard Access Port"))
|
||||
o.placeholder = translate("Leave empty to use listen port")
|
||||
o.datatype = "range(1,65535)"
|
||||
o.description = translate("For reverse proxy scenarios, leave empty to use the port from listen address")
|
||||
|
||||
m.apply_on_parse = true
|
||||
m.on_after_apply = function(self,map)
|
||||
luci.sys.exec("/etc/init.d/daed restart")
|
||||
end
|
||||
|
||||
return m
|
||||
5
luci-app-daed/luasrc/model/cbi/daed/log.lua
Normal file
5
luci-app-daed/luasrc/model/cbi/daed/log.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
m = Map("daed")
|
||||
|
||||
m:append(Template("daed/daed_log"))
|
||||
|
||||
return m
|
||||
56
luci-app-daed/luasrc/view/daed/daed.htm
Normal file
56
luci-app-daed/luasrc/view/daed/daed.htm
Normal file
File diff suppressed because one or more lines are too long
33
luci-app-daed/luasrc/view/daed/daed_log.htm
Normal file
33
luci-app-daed/luasrc/view/daed/daed_log.htm
Normal file
@@ -0,0 +1,33 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
function clear_log(btn) {
|
||||
XHR.get('<%=url([[admin]], [[services]], [[daed]], [[clear_log]])%>', null,
|
||||
function(x, data) {
|
||||
if(x && x.status == 200) {
|
||||
var log_textarea = document.getElementById('log_textarea');
|
||||
log_textarea.innerHTML = "";
|
||||
log_textarea.scrollTop = log_textarea.scrollHeight;
|
||||
}
|
||||
location.reload();
|
||||
}
|
||||
);
|
||||
}
|
||||
var scrolled = false;
|
||||
XHR.poll(2, '<%=url([[admin]], [[services]], [[daed]], [[get_log]])%>', null,
|
||||
function(x, data) {
|
||||
if(x && x.status == 200) {
|
||||
var log_textarea = document.getElementById('log_textarea');
|
||||
log_textarea.innerHTML = x.responseText;
|
||||
if (!scrolled) {
|
||||
log_textarea.scrollTop = log_textarea.scrollHeight;
|
||||
scrolled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]>
|
||||
</script>
|
||||
<fieldset class="cbi-section" id="_log_fieldset">
|
||||
<input class="cbi-button cbi-input-remove" type="button" onclick="clear_log()" value="<%:Clear logs%>" style="margin-left: 10px; margin-top: 10px;">
|
||||
<textarea id="log_textarea" class="cbi-input-textarea" style="width: calc(100% - 20px); height: 645px; margin: 10px;" data-update="change" rows="5" wrap="off" readonly="readonly"></textarea>
|
||||
</fieldset>
|
||||
24
luci-app-daed/luasrc/view/daed/daed_status.htm
Normal file
24
luci-app-daed/luasrc/view/daed/daed_status.htm
Normal file
@@ -0,0 +1,24 @@
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(3, '<%=url([[admin]], [[services]], [[daed_status]])%>', null,
|
||||
function(x, data) {
|
||||
var tb = document.getElementById('daed_status');
|
||||
if (data && tb)
|
||||
{
|
||||
if (data.running)
|
||||
{
|
||||
tb.innerHTML = '<em><b style=\"color:green\"><%:DAED%> <%:RUNNING%></b></em>';
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.innerHTML = '<em><b style=\"color:red\"><%:DAED%> <%:NOT RUNNING%></b></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]></script>
|
||||
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||
<fieldset class="cbi-section">
|
||||
<p id="daed_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
</p>
|
||||
</fieldset>
|
||||
Reference in New Issue
Block a user