1
0
mirror of https://github.com/lxsang/antd-web-apps synced 2024-11-20 02:18:20 +01:00
antd-web-apps/info/controllers/IndexController.lua

48 lines
1.4 KiB
Lua
Raw Normal View History

2018-08-23 11:43:42 +02:00
IndexController = BaseController:extends{
class = "IndexController",
registry = {},
models = { "sections", "category" }
2018-08-23 11:43:42 +02:00
}
local sectionsByCid = function(db, id)
local cond = { exp = { ["="] = { cid = id } } , order = { start = "DESC" } }
local data, a = db:find(cond)
return data,a
end
2018-08-23 11:43:42 +02:00
function IndexController:index(...)
local args = {...}
-- now read all the data
-- get all root sections as the toc
local cond = { exp = { ["="] = { pid = 0 } }, order = { name = "ASC" } }
local data, a = self.category:find(cond)
local toc = {}
if not data then
return self:error("Cannot query the ToC")
end
-- find all children category of the toc
for key,cat in pairs(data) do
cat.name = cat.name:gsub("^%d+%.","")
table.insert( toc, {cat.name, cat.id} )
cond = { exp = { ["="] = { pid = cat.id } }, order = { name = "ASC" } }
local children, b = self.category:find(cond)
if children and #children > 0 then
for k,v in pairs(children) do
v.sections = sectionsByCid(self.sections,v.id)
end
cat.children = children
else
cat.sections = sectionsByCid(self.sections,cat.id)
end
end
self.template:set("data", data)
self.template:set("toc", toc)
2018-08-23 11:43:42 +02:00
return true
end
function IndexController:notoc(...)
self.template:setView("index")
return self:index(table.unpack({...}))
end