Merge pull request #2530 from ffgraz/warn

gluon-web-model: add Warning
This commit is contained in:
David Bauer 2022-12-11 03:05:09 +01:00 committed by GitHub
commit 096f739477
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 63 additions and 2 deletions

View File

@ -63,6 +63,7 @@ files["package/**/luasrc/lib/gluon/config-mode/*"] = {
"translate",
"translatef",
"Value",
"Element",
},
}

File diff suppressed because one or more lines are too long

View File

@ -518,6 +518,11 @@ textarea {
}
}
.gluon-warning {
@extend .gluon-section-descr;
background: lighten($ffyellow, 35);
}
.error500 {
border: 1px dotted #ff0000;
background-color: #ffffff;

View File

@ -0,0 +1,14 @@
<%- if self.title or self.content then -%>
<div class="gluon-warning"<%=
attr("id", id) ..
attr("data-index", self.index) ..
attr("data-depends", self:deplist(self.deps))
%>>
<%- if self.content then -%>
<%=self.content%>
<%- else -%>
<b><%=self.title%></b><br>
<%=self.description%>
<%- end -%>
</div>
<%- end -%>

View File

@ -196,7 +196,6 @@ function Template:__init__(template)
self.template = template
end
local AbstractValue = class(Node)
M.AbstractValue = AbstractValue
@ -411,6 +410,25 @@ function TextValue:__init__(...)
end
local Element = class(Node)
M.Element = Element
function Element:__init__(template, kv, ...)
Node.__init__(self, ...)
self.default = nil
self.size = nil
self.optional = false
self.template = template
for key, value in pairs(kv) do
self[key] = value
end
self.error = false
end
local Section = class(Node)
M.Section = Section
@ -427,6 +445,11 @@ function Section:option(t, ...)
return obj
end
function Section:element(...)
local obj = Element(...)
self:append(obj)
return obj
end
local Form = class(Node)
M.Form = Form

View File

@ -1,5 +1,6 @@
local uci = require("simple-uci").cursor()
local wireless = require 'gluon.wireless'
local util = require 'gluon.util'
-- where to read the configuration from
local primary_iface = 'wan_radio0'
@ -13,9 +14,26 @@ local s = f:section(Section, nil, translate(
.. 'at the same time.'
))
local uplink_interfaces = util.get_role_interfaces(uci, 'uplink')
local mesh_on_wan = false
for _, iface in ipairs(util.get_role_interfaces(uci, 'mesh')) do
if util.contains(uplink_interfaces, iface) then
mesh_on_wan = true
end
end
local enabled = s:option(Flag, "enabled", translate("Enabled"))
enabled.default = uci:get('wireless', primary_iface) and not uci:get_bool('wireless', primary_iface, "disabled")
local warning = s:element('model/warning', {
content = mesh_on_wan and translate(
'Meshing on WAN interface is enabled.' ..
'This can lead to problems.'
) or nil,
}, 'warning')
warning:depends(enabled, true)
local ssid = s:option(Value, "ssid", translate("Name (SSID)"))
ssid:depends(enabled, true)
ssid.datatype = "maxlength(32)"