luci-base: fixed tabbed map when using NamedSection of same type
[project/luci.git] / modules / luci-base / luasrc / view / cbi / map.htm
index e90c3f5..e3210ad 100644 (file)
@@ -8,6 +8,40 @@
        <% if self.title and #self.title > 0 then %><h2 name="content"><%=self.title%></h2><% end %>
        <% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %>
        <%- if firstmap and applymap then cbi_apply_xhr(self.config, parsechain, redirect) end -%>
-       <%- self:render_children() %>
+
+       <% if self.tabbed then %>
+               <ul class="cbi-tabmenu map">
+                       <%- self.selected_tab = luci.http.formvalue("tab.m-" .. self.config) %>
+                       <% for i, section in ipairs(self.children) do %>
+                               <%- if not self.selected_tab then self.selected_tab = section.sectiontype end %>
+                               <li id="tab.m-<%=self.config%>.<%=section.section or section.sectiontype%>" class="cbi-tab<%=(section.sectiontype == self.selected_tab) and '' or '-disabled'%>">
+                                       <a onclick="this.blur(); return cbi_t_switch('m-<%=self.config%>', '<%=section.section or section.sectiontype%>')" href="<%=REQUEST_URI%>?tab.m-<%=self.config%>=<%=section.section or section.sectiontype%>"><%=section.title or section.section or section.sectiontype %></a>
+                                       <% if section.sectiontype == self.selected_tab then %><input type="hidden" id="tab.m-<%=self.config%>" name="tab.m-<%=self.config%>" value="<%=section.section or section.sectiontype%>" /><% end %>
+                               </li>
+                       <% end %>
+               </ul>
+               <br />
+               <% for i, section in ipairs(self.children) do %>
+                       <div class="cbi-tabcontainer" id="container.m-<%=self.config%>.<%=section.section or section.sectiontype%>"<% if section.sectiontype ~= self.selected_tab then %> style="display:none"<% end %>>
+                               <% section:render() %>
+                       </div>
+                       <script type="text/javascript">cbi_t_add('m-<%=self.config%>', '<%=section.section or section.sectiontype%>')</script>
+               <% end %>
+
+               <% if not self.save then -%>
+                       <div class="cbi-section-error">
+                               <% for _, section in ipairs(self.children) do %>
+                                       <% if section.error and section.error[section.section] then -%>
+                                               <ul><li>
+                                                       <%:One or more invalid/required values on tab%>:&nbsp;<%=section.title or section.section or section.sectiontype%>
+                                               </li></ul>
+                                       <%- end %>
+                               <% end %>
+                       </div>
+               <%- end %>
+       <% else %>
+               <%- self:render_children() %>
+       <% end %>
+
        <br />
 </div>