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 +