liquid_feedback_frontend

diff app/main/index/_drawer.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
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/app/main/index/_drawer.lua	Sun Jul 15 14:07:29 2018 +0200
     1.3 @@ -0,0 +1,141 @@
     1.4 +local member = app.session.member
     1.5 +local units
     1.6 +if member then
     1.7 +  units = member:get_reference_selector("units"):add_order_by("name"):exec()
     1.8 +  units:load_delegation_info_once_for_member_id(member.id)
     1.9 +else
    1.10 +  units = Unit:new_selector():add_where("active"):add_order_by("name"):exec()
    1.11 +end
    1.12 +
    1.13 +slot.select("drawer", function()
    1.14 +  ui.container{ attr = { class = "mdl-layout__drawer" }, content = function()
    1.15 +    ui.tag{ tag = "nav", attr = { class = "mdl-navigation" }, content = function ()
    1.16 +      ui.link{ content = config.instance_name, attr = { class = "mdl-navigation__link mdl-menu__item--full-bleed-divider mdl-navigation__head" }, module = "index", view = "index" }
    1.17 +
    1.18 +      if #units > 0 then
    1.19 +        for i, unit in ipairs(units) do
    1.20 +          local class = "mdl-navigation__link mdl-navigation__head" 
    1.21 +          if i == #units then
    1.22 +            class = class .. " mdl-menu__item--full-bleed-divider"
    1.23 +          end
    1.24 +          ui.link{ attr = { class = class }, content = unit.name, module = "unit", view = "show", id = unit.id }
    1.25 +          local areas = unit.areas
    1.26 +          for i, area in ipairs(areas) do
    1.27 +            local class = "mdl-navigation__link mdl-menu__item--small" 
    1.28 +            if i == #areas then
    1.29 +              class = class .. " mdl-menu__item--full-bleed-divider"
    1.30 +            end
    1.31 +            ui.link{ attr = { class = class }, module = "area", view = "show", id = area.id, content = function()
    1.32 +              ui.tag{ content = "⤷" }
    1.33 +              slot.put(" ")
    1.34 +              ui.tag{ content = area.name }
    1.35 +            end }
    1.36 +          end
    1.37 +        end
    1.38 +      end
    1.39 +
    1.40 +      ui.link{ attr = { class = "mdl-navigation__link mdl-menu__item--full-bleed-divider" }, content = _"Member list", module = "member", view = "list" }
    1.41 +      ui.link{ attr = { class = "mdl-navigation__link" }, content = _"Quick guide", module = "help", view = "introduction" }
    1.42 +
    1.43 +      if app.session.member_id and app.session.member.admin then
    1.44 +        ui.link{ attr = { class = "mdl-navigation__link mdl-menu__item--full-bleed-divider" }, content = _"System settings", module = "admin", view = "index" }
    1.45 +      end
    1.46 +      
    1.47 +    end }
    1.48 +  end }
    1.49 +end)
    1.50 +
    1.51 +if true then
    1.52 +  return
    1.53 +end
    1.54 +
    1.55 +for i, unit in ipairs(units) do
    1.56 +
    1.57 +  ui.sidebar ( "tab-whatcanido units", function ()
    1.58 +
    1.59 +    local areas_selector = Area:new_selector()
    1.60 +      :reset_fields()
    1.61 +      :add_field("area.id", nil, { "grouped" })
    1.62 +      :add_field("area.unit_id", nil, { "grouped" })
    1.63 +      :add_field("area.name", nil, { "grouped" })
    1.64 +      :add_where{ "area.unit_id = ?", unit.id }
    1.65 +      :add_where{ "area.active" }
    1.66 +      :add_order_by("area.name")
    1.67 +
    1.68 +    local areas = areas_selector:exec()
    1.69 +    if member then
    1.70 +      areas:load_delegation_info_once_for_member_id(member.id)
    1.71 +    end
    1.72 +    
    1.73 +    if #areas > 0 then
    1.74 +
    1.75 +      ui.container {
    1.76 +        attr = { class = "sidebarHead" },
    1.77 +        content = function ()
    1.78 +          ui.heading { level = 2, content = function ()
    1.79 +            ui.link {
    1.80 +              attr = { class = "unit" },
    1.81 +              module = "unit", view = "show", id = unit.id,
    1.82 +              content = unit.name
    1.83 +            }
    1.84 +          
    1.85 +            if member then
    1.86 +              local delegation = Delegation:by_pk(member.id, unit.id, nil, nil)
    1.87 +              
    1.88 +              if delegation then
    1.89 +                ui.link { 
    1.90 +                  module = "delegation", view = "show", params = {
    1.91 +                    unit_id = unit.id
    1.92 +                  },
    1.93 +                  attr = { class = "delegation_info" }, 
    1.94 +                  content = function ()
    1.95 +                    ui.delegation(delegation.trustee_id, delegation.trustee.name)
    1.96 +                  end
    1.97 +                }
    1.98 +              end
    1.99 +            end
   1.100 +          end }
   1.101 +          
   1.102 +        end
   1.103 +      }
   1.104 +      
   1.105 +      
   1.106 +      ui.tag { tag = "div", attr = { class = "areas areas-" .. unit.id }, content = function ()
   1.107 +      
   1.108 +        for i, area in ipairs(areas) do
   1.109 +
   1.110 +          ui.tag { tag = "div", attr = { class = "sidebarRow" }, content = function ()
   1.111 +            
   1.112 +            if member then
   1.113 +              local delegation = Delegation:by_pk(member.id, nil, area.id, nil)
   1.114 +        
   1.115 +              if delegation then
   1.116 +                ui.link { 
   1.117 +                  module = "delegation", view = "show", params = {
   1.118 +                    area_id = area.id
   1.119 +                  },
   1.120 +                  attr = { class = "delegation_info" }, 
   1.121 +                  content = function ()
   1.122 +                    ui.delegation(delegation.trustee_id, delegation.trustee_id and delegation.trustee.name)
   1.123 +                  end
   1.124 +                }
   1.125 +              end
   1.126 +            end
   1.127 +      
   1.128 +            slot.put ( " " )
   1.129 +            
   1.130 +            ui.link {
   1.131 +              attr = { class = "area" },
   1.132 +              module = "area", view = "show", id = area.id,
   1.133 +              content = area.name
   1.134 +            }
   1.135 +            
   1.136 +            
   1.137 +          end }
   1.138 +        end
   1.139 +      end }
   1.140 +    end 
   1.141 +  end )
   1.142 +end
   1.143 +
   1.144 +

Impressum / About Us