libs/web: sent origin section id encoded in cbi.cts. requests
[project/luci.git] / libs / web / luasrc / cbi.lua
index 5dd57e2..86658d7 100644 (file)
@@ -211,7 +211,9 @@ end
 
 -- Render the children
 function Node.render_children(self, ...)
+       local k, node
        for k, node in ipairs(self.children) do
+               node.last_child = (k == #self.children)
                node:render(...)
        end
 end
@@ -805,7 +807,9 @@ function AbstractSection.render_tab(self, tab, ...)
        assert(tab and self.tabs and self.tabs[tab],
                "Cannot render not existing tab %q" % tostring(tab))
 
-       for _, node in ipairs(self.tabs[tab].childs) do
+       local k, node
+       for k, node in ipairs(self.tabs[tab].childs) do
+               node.last_child = (k == #self.tabs[tab].childs)
                node:render(...)
        end
 end
@@ -1091,10 +1095,10 @@ function TypedSection.parse(self, novld)
                -- Create
                local created
                local crval = CREATE_PREFIX .. self.config .. "." .. self.sectiontype
-               local name  = self.map:formvalue(crval)
+               local origin, name = next(self.map:formvaluetable(crval))
                if self.anonymous then
                        if name then
-                               created = self:create()
+                               created = self:create(nil, origin)
                        end
                else
                        if name then
@@ -1110,7 +1114,7 @@ function TypedSection.parse(self, novld)
                                end
 
                                if name and #name > 0 then
-                                       created = self:create(name) and name
+                                       created = self:create(name, origin) and name
                                        if not created then
                                                self.invalid_cts = true
                                        end