diff --git a/modules/luci-base/luasrc/view/cbi/tblsection.htm b/modules/luci-base/luasrc/view/cbi/tblsection.htm
index 7067aa5876..9505f4ac4e 100644
--- a/modules/luci-base/luasrc/view/cbi/tblsection.htm
+++ b/modules/luci-base/luasrc/view/cbi/tblsection.htm
@@ -1,8 +1,13 @@
<%-
-local rowcnt = 1
+local rowcnt = 0
+
function rowstyle()
rowcnt = rowcnt + 1
- return (rowcnt % 2) + 1
+ if rowcnt % 2 == 0 then
+ return "cbi-rowstyle-1"
+ else
+ return "cbi-rowstyle-2"
+ end
end
function width(o)
@@ -15,54 +20,115 @@ function width(o)
return ''
end
+local has_titles = false
+local has_descriptions = false
+
local anonclass = (not self.anonymous or self.sectiontitle) and "named" or "anonymous"
local titlename = ifattr(not self.anonymous or self.sectiontitle, "data-title", translate("Name"))
+local i, k
+for i, k in pairs(self.children) do
+ if not k.typename then
+ k.typename = k.template and k.template:gsub("^.+/", "") or ""
+ end
+
+ if not has_titles and k.title and #k.title > 0 then
+ has_titles = true
+ end
+
+ if not has_descriptions and k.description and #k.description > 0 then
+ has_descriptions = true
+ end
+end
+
+function render_titles()
+ if not has_titles then
+ return
+ end
+
+ %>
><%
+
+ local i, k
+ for i, k in ipairs(self.children) do
+ if not k.optional then
+ %>
- <%- count = count + 1; end; end; if self.sortable or self.extedit or self.addremove then -%>
-
- <%- count = count + 1; end -%>
-
-
- <%- for i, k in pairs(self.children) do if not k.optional then -%>
-
><%=k.description%>
- <%- end; end; if self.sortable or self.extedit or self.addremove then -%>
-
- <%- end -%>
-
- <%- local isempty, section, i, k = true, nil, nil
+ <%-
+ render_titles()
+ render_descriptions()
+
+ local isempty, section, i, k = true, nil, nil
for i, k in ipairs(self:cfgsections()) do
isempty = false
section = k
local sectionname = striptags((type(self.sectiontitle) == "function") and self:sectiontitle(section) or k)
local sectiontitle = ifattr(sectionname and (not self.anonymous or self.sectiontitle), "data-title", sectionname)
- local colorclass = (self.extedit or self.rowcolors) and " cbi-rowstyle-%d" % rowstyle() or ""
+ local colorclass = (self.extedit or self.rowcolors) and rowstyle() or ""
local scope = {
valueheader = "cbi/cell_valueheader",
valuefooter = "cbi/cell_valuefooter"