liquid_feedback_frontend
view app/main/unit/_sidebar.lua @ 1309:32cc544d5a5b
Cumulative patch for upcoming frontend version 4
| author | bsw/jbe | 
|---|---|
| date | Sun Jul 15 14:07:29 2018 +0200 (2018-07-15) | 
| parents | bd2509e7f627 | 
| children | 
 line source
     1 local member = param.get ( "member", "table" ) or app.session.member
     3 local unit = param.get ( "unit", "table" )
     5 local areas_selector = Area:new_selector()
     6   :reset_fields()
     7   :add_field("area.id", nil, { "grouped" })
     8   :add_field("area.unit_id", nil, { "grouped" })
     9   :add_field("area.name", nil, { "grouped" })
    10   :add_where{ "area.unit_id = ?", unit.id }
    11   :add_where{ "area.active" }
    12   :add_order_by("area.name")
    14 local areas = areas_selector:exec()
    15 if member then
    16   unit:load_delegation_info_once_for_member_id(member.id)
    17   areas:load_delegation_info_once_for_member_id(member.id)
    18 end
    21 ui.sidebar ( "tab-whatcanido", function ()
    23   ui.sidebarHead( function ()
    24     ui.heading {
    25       level = 2, content = _"Subject areas"
    26     }
    27   end )
    29   if #areas > 0 then
    31     ui.container { class = "areas", content = function ()
    33       for i, area in ipairs ( areas ) do
    35         ui.container { attr = { class = "sidebarRow" }, content = function ()
    37           if member then
    38             local delegation = Delegation:by_pk(member.id, nil, area.id, nil)
    40             if delegation then
    41               ui.link { 
    42                 module = "delegation", view = "show", params = {
    43                   area_id = area.id
    44                 },
    45                 attr = { class = "delegation_info" }, 
    46                 content = function ()
    47                   ui.delegation(delegation.trustee_id, delegation.trustee_id and delegation.trustee.name)
    48                 end
    49               }
    50             end
    51           end
    53           if area.subscribed then
    54             ui.image { attr = { class = "icon16 star" }, static = "icons/48/star.png" }
    55           end
    57           ui.link {
    58             attr = { class = "area" },
    59             module = "area", view = "show", id = area.id,
    60             content = area.name
    61           }
    63         end } -- ui.tag "li"
    65       end -- for i, area
    67     end } -- ui.tag "ul"
    69   end -- if #areas > 0
    71 end ) -- ui.sidebar
