liquid_feedback_frontend
view app/main/admin/index.lua @ 1754:22a75f55ff48
merge
| author | bsw | 
|---|---|
| date | Wed Oct 13 13:33:43 2021 +0200 (2021-10-13) | 
| parents | 2a0d86117d54 | 
| children | 8147173d9a13 | 
 line source
     1 local inactive = param.get("inactive", atom.boolean)
     3 local units = Unit:get_flattened_tree{ include_inactive = inactive, include_hidden = true }
     5 local policies = Policy:build_selector{ active = not inactive }:exec()
     6 --local policies = Policy:build_selector{}:add_order_by("index"):exec()
     8 ui.titleAdmin()
    10 ui.grid{ content = function()
    12   ui.cell_main{ content = function()
    13     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    14       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
    15         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Organizational units and subject areas" }
    16       end }
    17       ui.container{ attr = { class = "mdl-card__content" }, content = function()
    19         for i_unit, unit in ipairs(units) do
    20           ui.container { 
    21             attr = { style = "margin-left: " .. ((unit.depth - 1)* 2) .. "em;" },
    22             content = function ()
    23               ui.heading { level = 1, content = function ()
    24                 local class
    25                 if unit.active == false then
    26                   class = "inactive"
    27                 end
    28                 ui.link{ attr = { class = class }, text = unit.name, module = "admin", view = "unit_edit", id = unit.id }
    29               end }
    30               ui.tag { tag = "ul", attr = { class = "ul" }, content = function ()
    31                 local areas
    32                 if not inactive then
    33                   areas = unit:get_reference_selector("areas"):add_order_by("name"):add_where("active"):exec()
    34                 else
    35                   areas = unit:get_reference_selector("areas"):add_order_by("name"):exec()
    36                 end
    37                 for i, area in ipairs(areas) do
    38                   ui.tag { tag = "li", content = function ()
    39                     local class
    40                     if area.active == false then
    41                       class = "inactive"
    42                     end
    43                     ui.link{ attr = { class = class }, text = area.name, module = "admin", view = "area_show", id = area.id }
    44                   end }
    45                 end
    46                 ui.tag { tag = "li", content = function ()
    47                   ui.link { module = "admin", view = "area_show", params = { unit_id = unit.id }, content = _"+ add new subject area" }
    48                 end }
    49                 slot.put("<br />")
    50               end }
    51             end
    52           }
    53         end
    55         slot.put("<br />")
    56         ui.link { module = "admin", view = "unit_edit", content = _"Create new unit" }
    57         slot.put("<br />")
    58         slot.put("<br />")
    60         if (not inactive) then
    61           ui.link { module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive" }
    62         else
    63           ui.link { module = "admin", view = "index", content = _"Hide inactive" }
    64         end
    66       end }
    67     end }
    68   end }
    70   ui.cell_sidebar{ content = function()
    72     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    73       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
    74         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Members" }
    75       end }
    76       ui.container{ attr = { class = "mdl-card__content" }, content = function()
    77         ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
    78           ui.tag { tag = "li", content = function()
    79             ui.form{
    80               module = "admin", view = "member_list",
    81               content = function()
    83                 ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"search", name = "search" }
    85                 ui.submit{ value = _"search" }
    87               end
    88             }
    89           end }
    90         end }
    91         ui.sidebarSection( "moreLink", function()
    92           ui.link{
    93             text = _"Register new member",
    94             module = "admin",
    95             view = "member_edit"
    96           }
    97         end )
    98       end }
    99     end }
   101     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   102       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   103         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Policies" }
   104       end }
   105       ui.container{ attr = { class = "mdl-card__content" }, content = function()
   106         ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
   107           for i, policy in ipairs(policies) do
   108             ui.tag { tag = "li", content = function()
   109               ui.link{
   110                 content = policy.name,
   111                 module = "admin",
   112                 view = "policy_show",
   113                 id = policy.id
   114               }
   115             end }
   116           end
   117         end }
   119         ui.link{
   120           text = _"Create new policy",
   121           module = "admin",
   122           view = "policy_show"
   123         }
   124         slot.put("   ")
   125         if (not inactive) then
   126           ui.link { module = "admin", view = "index", params = { inactive = true }, content = _"Show inactive" }
   127         else
   128           ui.link { module = "admin", view = "index", content = _"Hide inactive" }
   129         end
   130       end }
   131     end }
   133     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   134       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   135         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Newsletter" }
   136       end }
   137       ui.container{ attr = { class = "mdl-card__content" }, content = function()
   138         ui.link{
   139           text = _"Create a newsletter",
   140           module = "admin",
   141           view = "newsletter_edit"
   142         }
   143         slot.put("   ")
   144         ui.link{
   145           text = _"Manage newsletters",
   146           module = "admin",
   147           view = "newsletter_list"
   148         }
   149       end }
   150     end }
   152     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
   153       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
   154         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Cancel issue" }
   155       end }
   156       ui.container{ attr = { class = "mdl-card__content" }, content = function()
   157         ui.form{
   158           module = "admin",
   159           view = "cancel_issue",
   160           content = function()
   161             ui.tag { tag = "ul", attr = { class = "ul" }, content = function()
   162               ui.tag { tag = "li", content = function()
   163                 ui.field.text{ container_attr = { style = "display: inline-block;" }, label = _"Issue #", name = "id" }
   164                 ui.submit{ text = _"cancel issue" }
   165               end }
   166             end }
   167           end
   168         }
   169       end }
   170     end }
   172   end }
   173 end }
