liquid_feedback_frontend

view app/main/admin/index.lua @ 1835:8147173d9a13

Fixed layout of admin page
author bsw
date Thu Feb 03 12:43:18 2022 +0100 (2022-02-03)
parents 2a0d86117d54
children 1dad272c08eb
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 slot.put("<br />")
53 end }
54 end
55 }
56 end
57 end }
59 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
60 ui.link {
61 attr = { class = "mdl-button mdl-js-button" },
62 module = "admin", view = "unit_edit", content = _"Create new unit"
63 }
65 if (not inactive) then
66 ui.link {
67 attr = { class = "mdl-button mdl-js-button" },
68 module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive"
69 }
70 else
71 ui.link {
72 attr = { class = "mdl-button mdl-js-button" },
73 module = "admin", view = "index", content = _"Hide inactive"
74 }
75 end
77 end }
78 end }
79 end }
81 ui.cell_sidebar{ content = function()
83 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
84 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
85 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Members" }
86 end }
87 ui.container{ attr = { class = "mdl-card__content" }, content = function()
88 ui.form{
89 module = "admin", view = "member_list",
90 content = function()
91 ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"search", name = "search" }
92 slot.put(" ")
93 ui.submit{ value = _"OK" }
94 end
95 }
96 end }
98 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
99 ui.link{
100 attr = { class = "mdl-button mdl-js-button" },
101 text = _"Add member",
102 module = "admin",
103 view = "member_edit"
104 }
105 end }
106 end }
108 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
109 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
110 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Policies" }
111 end }
112 ui.container{ attr = { class = "mdl-card__content" }, content = function()
113 ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
114 for i, policy in ipairs(policies) do
115 ui.tag { tag = "li", content = function()
116 ui.link{
117 content = policy.name,
118 module = "admin",
119 view = "policy_show",
120 id = policy.id
121 }
122 end }
123 end
124 end }
125 end }
127 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
128 ui.link{
129 attr = { class = "mdl-button mdl-js-button" },
130 text = _"Add policy",
131 module = "admin",
132 view = "policy_show"
133 }
134 slot.put(" &nbsp; ")
135 if (not inactive_policies) then
136 ui.link {
137 attr = { class = "mdl-button mdl-js-button" },
138 module = "admin", view = "index", params = { inactive_policies = true }, content = _"Show inactive"
139 }
140 else
141 ui.link {
142 attr = { class = "mdl-button mdl-js-button" },
143 module = "admin", view = "index", content = _"Hide inactive"
144 }
145 end
146 end }
147 end }
149 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
150 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
151 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Newsletter" }
152 end }
153 ui.container{ attr = { class = "mdl-card__content" }, content = function()
154 ui.link{
155 text = _"Create a newsletter",
156 module = "admin",
157 view = "newsletter_edit"
158 }
159 slot.put(" &nbsp; ")
160 ui.link{
161 text = _"Manage newsletters",
162 module = "admin",
163 view = "newsletter_list"
164 }
165 end }
166 end }
168 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
169 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
170 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Cancel issue" }
171 end }
172 ui.container{ attr = { class = "mdl-card__content" }, content = function()
173 ui.form{
174 module = "admin",
175 view = "cancel_issue",
176 content = function()
177 ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"Issue #", name = "id" }
178 slot.put(" ")
179 ui.submit{ text = _"OK" }
180 end
181 }
182 end }
183 end }
185 end }
186 end }

Impressum / About Us