liquid_feedback_frontend
view app/main/admin/index.lua @ 1847:bcfa66dd8980
Added version numbers
| author | bsw | 
|---|---|
| date | Thu Feb 03 16:07:59 2022 +0100 (2022-02-03) | 
| 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 }
