mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-28 12:02:00 +08:00
108 lines
3.5 KiB
HTML
108 lines
3.5 KiB
HTML
<!-- ++ BEGIN ++ DNSCrypt Proxy ++ logsview.htm ++ -->
|
|
<%-
|
|
local values = self:formvalue(section)
|
|
if not values then
|
|
values = self:cfgvalue(section) or {self.default}
|
|
end
|
|
|
|
local function serialize_json(x, cb)
|
|
local rv, push = nil, cb
|
|
if not push then
|
|
rv = { }
|
|
push = function(tok) rv[#rv+1] = tok end
|
|
end
|
|
|
|
if x == nil then
|
|
push("null")
|
|
elseif type(x) == "table" then
|
|
push("[")
|
|
for k = 1, #x do
|
|
if k > 1 then
|
|
push(",")
|
|
end
|
|
serialize_json(x[k], push)
|
|
end
|
|
push("]")
|
|
else
|
|
push('"%s"' % tostring(x):gsub('["%z\1-\31\\]',
|
|
function(c) return '\\u%04x' % c:byte(1) end))
|
|
end
|
|
|
|
if not cb then
|
|
return table.concat(rv, "")
|
|
end
|
|
end
|
|
-%>
|
|
<%+cbi/valueheader%>
|
|
<select class="cbi-input-select" onchange="onclick_logview(this, false)"
|
|
<%=
|
|
attr("name", cbid) .. attr("id", cbid) .. attr("value", self.default) .. ifattr(self.size, "size")
|
|
%>
|
|
></select>
|
|
<script type="text/javascript">//<![CDATA[
|
|
(function() {
|
|
//var values = <%=serialize_json(values)%>;
|
|
var keylist = <%=serialize_json(self.keylist)%>;
|
|
var vallist = <%=serialize_json(self.vallist)%>;
|
|
var parent = document.getElementById("<%=cbid%>");
|
|
for (var j = 0; j < keylist.length; j++) {
|
|
var opt = document.createElement("option");
|
|
opt.value = keylist[j];
|
|
if (j == 0) {
|
|
opt.selected = "selected";
|
|
}
|
|
opt.appendChild(document.createTextNode(vallist[j]));
|
|
parent.appendChild(opt);
|
|
}
|
|
}());
|
|
//]]></script>
|
|
<script type="text/javascript">//<![CDATA[
|
|
function onclick_logview(id, bottom) {
|
|
// get elements
|
|
var txt = document.getElementById("<%=cbid%>.txt"); // TextArea
|
|
if ( !txt ) { return; } // security check
|
|
txt.value= "Reading: " + document.getElementById("<%=cbid%>").value
|
|
XHR.get('<%=luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy", "fileread")%>', {lfile: document.getElementById("<%=cbid%>").value} ,
|
|
function(x, rv) {
|
|
if(x.readyState === 4 ) {
|
|
if(x.status === 200) {try{res = JSON.parse(x.responseText);}catch(e){res=null;}
|
|
if(res !==null && typeof(res) === "object") txt.value = res[0]; if (bottom) txt.scrollTop = txt.scrollHeight; else txt.scrollTop = 0; txt.scrollLeft = 0;
|
|
} else {
|
|
txt.value = "XHR.get(<%=luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy", "fileread")%>) Failed!";
|
|
}}});
|
|
return false;
|
|
}
|
|
//]]></script>
|
|
|
|
<%
|
|
-- one button on top, one at the buttom
|
|
%>
|
|
<br /><br />
|
|
<input class="cbi-button cbi-input-button" style="align: center; width: 100%" type="button" onclick='onclick_logview(this, false)'
|
|
<%=
|
|
attr("name", section) .. attr("id", cbid .. ".btn1") .. attr("value", self.inputtitle)
|
|
%> />
|
|
|
|
<br /><br />
|
|
|
|
<%
|
|
-- set a readable style taken from openwrt theme for textarea#syslog
|
|
-- in openwrt theme there are problems with a width of 100 so we check for theme and set to lower value
|
|
%>
|
|
<textarea style="width: <%if media == "/luci-static/openwrt.org" then%>98.7%<%else%>100%<%end%> ; min-height: 200px; border: 3px solid #cccccc; padding: 5px; font-family: monospace; resize: none;" wrap="off" readonly="readonly"
|
|
<%=
|
|
attr("name", cbid .. ".txt") .. attr("id", cbid .. ".txt") .. ifattr(self.rows, "rows")
|
|
%> >
|
|
<%-=pcdata(self:cfgvalue(section))-%>
|
|
</textarea>
|
|
<br /><br />
|
|
|
|
<%
|
|
-- one button on top, one at the buttom
|
|
%>
|
|
<input class="cbi-button cbi-input-button" style="align: center; width: 100%" type="button" onclick='onclick_logview(this, true)'
|
|
<%= attr("name", section) .. attr("id", cbid .. ".btn2") .. attr("value", self.inputtitle) %> />
|
|
<br /><br />
|
|
<%+cbi/valuefooter%>
|
|
<!-- ++ END ++ DNSCrypt Proxy ++ logsview.htm ++ -->
|