<%+cbi/valueheader%> <% -- Template Developers: -- - lwb1978 -- - snowie2000 -- Copyright: copyright(c)2025–2027 -- Description: Passwall(2) UI template local json = require "luci.jsonc" -- 读取值(keylist/vallist/group) local values = {} for i, key in pairs(self.keylist) do values[#values + 1] = { key = key, label = self.vallist[i] or key, group = self.group and self.group[i] or nil } end -- 获取当前配置值 local current_key = {} local cval = self:cfgvalue(section) if type(cval) == "table" then for _, v in ipairs(cval) do for item in string.gmatch(v, "[^,]+") do current_key[#current_key+1] = item end end elseif type(cval) == "string" then for item in string.gmatch(cval, "[^,]+") do current_key[#current_key+1] = item end end -- 分离无组节点(ungrouped)与有组节点(grouped),并保持原有顺序 local ungrouped = {} local groups = {} local group_order = {} for _, item in ipairs(values) do if not item.group or item.group == "" then table.insert(ungrouped, item) else local g = item.group if not groups[g] then groups[g] = {} table.insert(group_order, g) end table.insert(groups[g], item) end end -- 打包数据给 JS local dropdown_data = { current_key = current_key, ungrouped = ungrouped, groups = groups, group_order = group_order, cbid = cbid, } %>
<%=translate("-- Please choose --")%>
<%+cbi/valuefooter%>