liquid_feedback_frontend

view app/main/admin/index.lua @ 1858:3d1f0464a3ea

Handle missing ldap.member.allowed function
author bsw
date Tue Sep 20 17:35:29 2022 +0200 (20 months ago)
parents 1dad272c08eb
children
line source
1 local inactive = param.get("inactive", atom.boolean)
2 local inactive_policies = param.get("inactive_policies", atom.boolean)
6 local units = Unit:get_flattened_tree{ include_inactive = inactive, include_hidden = true }
8 local policies = Policy:build_selector{ active = not inactive_policies }:exec()
9 --local policies = Policy:build_selector{}:add_order_by("index"):exec()
11 ui.titleAdmin()
13 ui.grid{ content = function()
15 ui.cell_main{ content = function()
16 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
17 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
18 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Organizational units and subject areas" }
19 end }
20 ui.container{ attr = { class = "mdl-card__content" }, content = function()
22 for i_unit, unit in ipairs(units) do
23 ui.container {
24 attr = { style = "margin-left: " .. ((unit.depth - 1)* 2) .. "em;" },
25 content = function ()
26 ui.heading { level = 1, content = function ()
27 local class
28 if unit.active == false then
29 class = "inactive"
30 end
31 ui.link{ attr = { class = class }, text = unit.name, module = "admin", view = "unit_edit", id = unit.id }
32 end }
33 ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
34 local areas
35 if not inactive then
36 areas = unit:get_reference_selector("areas"):add_order_by("name"):add_where("active"):exec()
37 else
38 areas = unit:get_reference_selector("areas"):add_order_by("name"):exec()
39 end
40 for i, area in ipairs(areas) do
41 ui.tag { tag = "li", content = function ()
42 local class
43 if area.active == false then
44 class = "inactive"
45 end
46 ui.link{ attr = { class = class }, text = area.name, module = "admin", view = "area_show", id = area.id }
47 end }
48 end
49 ui.tag { tag = "li", content = function ()
50 ui.link { module = "admin", view = "area_show", params = { unit_id = unit.id }, content = _"+ add new subject area" }
51 end }
52 end }
53 end
54 }
55 end
56 end }
58 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
59 ui.link {
60 attr = { class = "mdl-button mdl-js-button" },
61 module = "admin", view = "unit_edit", content = _"Create new unit"
62 }
64 if (not inactive) then
65 ui.link {
66 attr = { class = "mdl-button mdl-js-button" },
67 module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive"
68 }
69 else
70 ui.link {
71 attr = { class = "mdl-button mdl-js-button" },
72 module = "admin", view = "index", content = _"Hide inactive"
73 }
74 end
76 end }
77 end }
78 end }
80 ui.cell_sidebar{ content = function()
82 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
83 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
84 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Members" }
85 end }
86 ui.container{ attr = { class = "mdl-card__content" }, content = function()
87 ui.form{
88 module = "admin", view = "member_list",
89 content = function()
90 ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"search", name = "search" }
91 slot.put(" ")
92 ui.submit{ value = _"OK" }
93 end
94 }
95 end }
97 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
98 ui.link{
99 attr = { class = "mdl-button mdl-js-button" },
100 text = _"Add member",
101 module = "admin",
102 view = "member_edit"
103 }
104 end }
105 end }
107 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
108 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
109 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Policies" }
110 end }
111 ui.container{ attr = { class = "mdl-card__content" }, content = function()
112 ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
113 for i, policy in ipairs(policies) do
114 ui.tag { tag = "li", content = function()
115 ui.link{
116 content = policy.name,
117 module = "admin",
118 view = "policy_show",
119 id = policy.id
120 }
121 end }
122 end
123 end }
124 end }
126 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
127 ui.link{
128 attr = { class = "mdl-button mdl-js-button" },
129 text = _"Add policy",
130 module = "admin",
131 view = "policy_show"
132 }
133 slot.put("   ")
134 if (not inactive_policies) then
135 ui.link {
136 attr = { class = "mdl-button mdl-js-button" },
137 module = "admin", view = "index", params = { inactive_policies = true }, content = _"Show inactive"
138 }
139 else
140 ui.link {
141 attr = { class = "mdl-button mdl-js-button" },
142 module = "admin", view = "index", content = _"Hide inactive"
143 }
144 end
145 end }
146 end }
148 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
149 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
150 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Newsletter" }
151 end }
152 ui.container{ attr = { class = "mdl-card__content" }, content = function()
153 ui.link{
154 text = _"Create a newsletter",
155 module = "admin",
156 view = "newsletter_edit"
157 }
158 slot.put("   ")
159 ui.link{
160 text = _"Manage newsletters",
161 module = "admin",
162 view = "newsletter_list"
163 }
164 end }
165 end }
167 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
168 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
169 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Cancel issue" }
170 end }
171 ui.container{ attr = { class = "mdl-card__content" }, content = function()
172 ui.form{
173 module = "admin",
174 view = "cancel_issue",
175 content = function()
176 ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"Issue #", name = "id" }
177 slot.put(" ")
178 ui.submit{ text = _"OK" }
179 end
180 }
181 end }
182 end }
184 end }
185 end }

Impressum / About Us