rev |
line source |
bsw/jbe@1309
|
1 local member = app.session.member
|
bsw/jbe@1309
|
2 local units
|
bsw/jbe@1309
|
3 if member then
|
bsw/jbe@1309
|
4 units = member:get_reference_selector("units"):add_order_by("name"):exec()
|
bsw/jbe@1309
|
5 units:load_delegation_info_once_for_member_id(member.id)
|
bsw/jbe@1309
|
6 else
|
bsw/jbe@1309
|
7 units = Unit:new_selector():add_where("active"):add_order_by("name"):exec()
|
bsw/jbe@1309
|
8 end
|
bsw/jbe@1309
|
9
|
bsw/jbe@1309
|
10 slot.select("drawer", function()
|
bsw/jbe@1309
|
11 ui.container{ attr = { class = "mdl-layout__drawer" }, content = function()
|
bsw/jbe@1309
|
12 ui.tag{ tag = "nav", attr = { class = "mdl-navigation" }, content = function ()
|
bsw/jbe@1309
|
13 ui.link{ content = config.instance_name, attr = { class = "mdl-navigation__link mdl-menu__item--full-bleed-divider mdl-navigation__head" }, module = "index", view = "index" }
|
bsw/jbe@1309
|
14
|
bsw/jbe@1309
|
15 if #units > 0 then
|
bsw/jbe@1309
|
16 for i, unit in ipairs(units) do
|
bsw/jbe@1309
|
17 local class = "mdl-navigation__link mdl-navigation__head"
|
bsw/jbe@1309
|
18 if i == #units then
|
bsw/jbe@1309
|
19 class = class .. " mdl-menu__item--full-bleed-divider"
|
bsw/jbe@1309
|
20 end
|
bsw/jbe@1309
|
21 ui.link{ attr = { class = class }, content = unit.name, module = "unit", view = "show", id = unit.id }
|
bsw/jbe@1309
|
22 local areas = unit.areas
|
bsw/jbe@1309
|
23 for i, area in ipairs(areas) do
|
bsw/jbe@1309
|
24 local class = "mdl-navigation__link mdl-menu__item--small"
|
bsw/jbe@1309
|
25 if i == #areas then
|
bsw/jbe@1309
|
26 class = class .. " mdl-menu__item--full-bleed-divider"
|
bsw/jbe@1309
|
27 end
|
bsw/jbe@1309
|
28 ui.link{ attr = { class = class }, module = "area", view = "show", id = area.id, content = function()
|
bsw/jbe@1309
|
29 ui.tag{ content = "⤷" }
|
bsw/jbe@1309
|
30 slot.put(" ")
|
bsw/jbe@1309
|
31 ui.tag{ content = area.name }
|
bsw/jbe@1309
|
32 end }
|
bsw/jbe@1309
|
33 end
|
bsw/jbe@1309
|
34 end
|
bsw/jbe@1309
|
35 end
|
bsw/jbe@1309
|
36
|
bsw/jbe@1309
|
37 ui.link{ attr = { class = "mdl-navigation__link mdl-menu__item--full-bleed-divider" }, content = _"Member list", module = "member", view = "list" }
|
bsw/jbe@1309
|
38 ui.link{ attr = { class = "mdl-navigation__link" }, content = _"Quick guide", module = "help", view = "introduction" }
|
bsw/jbe@1309
|
39
|
bsw/jbe@1309
|
40 if app.session.member_id and app.session.member.admin then
|
bsw/jbe@1309
|
41 ui.link{ attr = { class = "mdl-navigation__link mdl-menu__item--full-bleed-divider" }, content = _"System settings", module = "admin", view = "index" }
|
bsw/jbe@1309
|
42 end
|
bsw/jbe@1309
|
43
|
bsw/jbe@1309
|
44 end }
|
bsw/jbe@1309
|
45 end }
|
bsw/jbe@1309
|
46 end)
|
bsw/jbe@1309
|
47
|
bsw/jbe@1309
|
48 if true then
|
bsw/jbe@1309
|
49 return
|
bsw/jbe@1309
|
50 end
|
bsw/jbe@1309
|
51
|
bsw/jbe@1309
|
52 for i, unit in ipairs(units) do
|
bsw/jbe@1309
|
53
|
bsw/jbe@1309
|
54 ui.sidebar ( "tab-whatcanido units", function ()
|
bsw/jbe@1309
|
55
|
bsw/jbe@1309
|
56 local areas_selector = Area:new_selector()
|
bsw/jbe@1309
|
57 :reset_fields()
|
bsw/jbe@1309
|
58 :add_field("area.id", nil, { "grouped" })
|
bsw/jbe@1309
|
59 :add_field("area.unit_id", nil, { "grouped" })
|
bsw/jbe@1309
|
60 :add_field("area.name", nil, { "grouped" })
|
bsw/jbe@1309
|
61 :add_where{ "area.unit_id = ?", unit.id }
|
bsw/jbe@1309
|
62 :add_where{ "area.active" }
|
bsw/jbe@1309
|
63 :add_order_by("area.name")
|
bsw/jbe@1309
|
64
|
bsw/jbe@1309
|
65 local areas = areas_selector:exec()
|
bsw/jbe@1309
|
66 if member then
|
bsw/jbe@1309
|
67 areas:load_delegation_info_once_for_member_id(member.id)
|
bsw/jbe@1309
|
68 end
|
bsw/jbe@1309
|
69
|
bsw/jbe@1309
|
70 if #areas > 0 then
|
bsw/jbe@1309
|
71
|
bsw/jbe@1309
|
72 ui.container {
|
bsw/jbe@1309
|
73 attr = { class = "sidebarHead" },
|
bsw/jbe@1309
|
74 content = function ()
|
bsw/jbe@1309
|
75 ui.heading { level = 2, content = function ()
|
bsw/jbe@1309
|
76 ui.link {
|
bsw/jbe@1309
|
77 attr = { class = "unit" },
|
bsw/jbe@1309
|
78 module = "unit", view = "show", id = unit.id,
|
bsw/jbe@1309
|
79 content = unit.name
|
bsw/jbe@1309
|
80 }
|
bsw/jbe@1309
|
81
|
bsw/jbe@1309
|
82 if member then
|
bsw/jbe@1309
|
83 local delegation = Delegation:by_pk(member.id, unit.id, nil, nil)
|
bsw/jbe@1309
|
84
|
bsw/jbe@1309
|
85 if delegation then
|
bsw/jbe@1309
|
86 ui.link {
|
bsw/jbe@1309
|
87 module = "delegation", view = "show", params = {
|
bsw/jbe@1309
|
88 unit_id = unit.id
|
bsw/jbe@1309
|
89 },
|
bsw/jbe@1309
|
90 attr = { class = "delegation_info" },
|
bsw/jbe@1309
|
91 content = function ()
|
bsw/jbe@1309
|
92 ui.delegation(delegation.trustee_id, delegation.trustee.name)
|
bsw/jbe@1309
|
93 end
|
bsw/jbe@1309
|
94 }
|
bsw/jbe@1309
|
95 end
|
bsw/jbe@1309
|
96 end
|
bsw/jbe@1309
|
97 end }
|
bsw/jbe@1309
|
98
|
bsw/jbe@1309
|
99 end
|
bsw/jbe@1309
|
100 }
|
bsw/jbe@1309
|
101
|
bsw/jbe@1309
|
102
|
bsw/jbe@1309
|
103 ui.tag { tag = "div", attr = { class = "areas areas-" .. unit.id }, content = function ()
|
bsw/jbe@1309
|
104
|
bsw/jbe@1309
|
105 for i, area in ipairs(areas) do
|
bsw/jbe@1309
|
106
|
bsw/jbe@1309
|
107 ui.tag { tag = "div", attr = { class = "sidebarRow" }, content = function ()
|
bsw/jbe@1309
|
108
|
bsw/jbe@1309
|
109 if member then
|
bsw/jbe@1309
|
110 local delegation = Delegation:by_pk(member.id, nil, area.id, nil)
|
bsw/jbe@1309
|
111
|
bsw/jbe@1309
|
112 if delegation then
|
bsw/jbe@1309
|
113 ui.link {
|
bsw/jbe@1309
|
114 module = "delegation", view = "show", params = {
|
bsw/jbe@1309
|
115 area_id = area.id
|
bsw/jbe@1309
|
116 },
|
bsw/jbe@1309
|
117 attr = { class = "delegation_info" },
|
bsw/jbe@1309
|
118 content = function ()
|
bsw/jbe@1309
|
119 ui.delegation(delegation.trustee_id, delegation.trustee_id and delegation.trustee.name)
|
bsw/jbe@1309
|
120 end
|
bsw/jbe@1309
|
121 }
|
bsw/jbe@1309
|
122 end
|
bsw/jbe@1309
|
123 end
|
bsw/jbe@1309
|
124
|
bsw/jbe@1309
|
125 slot.put ( " " )
|
bsw/jbe@1309
|
126
|
bsw/jbe@1309
|
127 ui.link {
|
bsw/jbe@1309
|
128 attr = { class = "area" },
|
bsw/jbe@1309
|
129 module = "area", view = "show", id = area.id,
|
bsw/jbe@1309
|
130 content = area.name
|
bsw/jbe@1309
|
131 }
|
bsw/jbe@1309
|
132
|
bsw/jbe@1309
|
133
|
bsw/jbe@1309
|
134 end }
|
bsw/jbe@1309
|
135 end
|
bsw/jbe@1309
|
136 end }
|
bsw/jbe@1309
|
137 end
|
bsw/jbe@1309
|
138 end )
|
bsw/jbe@1309
|
139 end
|
bsw/jbe@1309
|
140
|
bsw/jbe@1309
|
141
|