liquid_feedback_frontend
view app/main/index/index.lua @ 1706:2558d9c15c44
Show top MOTD only when no unit or area is selected
author | bsw |
---|---|
date | Mon Sep 27 11:03:28 2021 +0200 (2021-09-27) |
parents | 4ddc5841e136 |
children | 1e8469114b3c |
line source
1 local unit_id = request.get_param{ name = "unit" }
2 local area_id = request.get_param{ name = "area" }
4 if unit_id == "all" then
5 unit_id = nil
6 area_id = nil
7 end
9 if area_id == "all" then
10 area_id = nil
11 end
13 local unit
14 local area
16 if unit_id then
17 unit = Unit:by_id(unit_id)
18 if not unit or unit.attr.hidden then
19 execute.view { module = "index", view = "404" }
20 request.set_status("404 Not Found")
21 return
22 end
23 unit:load_delegation_info_once_for_member_id(app.session.member_id)
24 end
27 if area_id then
28 area = Area:by_id(area_id)
29 if not area or (unit and area.unit_id ~= unit.id) then
30 execute.view { module = "index", view = "404" }
31 request.set_status("404 Not Found")
32 return
33 end
34 area:load_delegation_info_once_for_member_id(app.session.member_id)
35 end
37 if area then
38 execute.view{ module = "area", view = "_head", params = { area = area } }
39 elseif unit then
40 execute.view{ module = "unit", view = "_head", params = { unit = unit } }
41 end
44 ui.grid{ content = function()
45 ui.cell_main{ content = function()
47 execute.view{ module = "index", view = "_sidebar_motd_public" }
48 if not unit_id and not area_id then
49 execute.view{ module = "index", view = "_sidebar_motd_intern_top" }
50 end
52 execute.view{ module = "issue", view = "_list" }
53 end }
55 ui.cell_sidebar{ content = function()
56 execute.view{ module = "index", view = "_head" }
58 execute.view{ module = "index", view = "_sidebar_motd" }
59 if app.session.member then
60 execute.view{ module = "index", view = "_sidebar_notifications" }
61 end
62 if config.firstlife then
63 ui.container{ attr = { class = "map mdl-special-card mdl-shadow--2dp pos-before-main" }, content = function()
64 ui.tag{ tag = "iframe", attr = { src = config.firstlife.areaviewer_url .. "?" .. config.firstlife.coordinates .. "&domain=" .. request.get_absolute_baseurl(), class = "map" }, content = "" }
65 end }
66 end
67 if config.map then
68 local initiatives = Initiative:new_selector():exec()
69 local geo_objects = {}
70 for i, initiative in ipairs(initiatives) do
71 if initiative.location and initiative.location.coordinates then
72 local geo_object = {
73 lon = initiative.location.coordinates[1],
74 lat = initiative.location.coordinates[2],
75 label = "i" .. initiative.id,
76 description = slot.use_temporary(function()
77 ui.link{ module = "initiative", view = "show", id = initiative.id, text = initiative.display_name }
78 end),
79 type = "initiative"
80 }
81 table.insert(geo_objects, geo_object)
82 end
83 end
84 if ontomap_get_instances then
85 local instances = ontomap_get_instances()
86 for i, instance in ipairs(instances) do
87 table.insert(geo_objects, instance)
88 end
89 end
90 ui.container{ attr = { class = "map mdl-special-card mdl-shadow--2dp pos-before-main" }, content = function()
91 ui.map(geo_objects)
92 end }
93 end
94 if config.logo then
95 config.logo()
96 end
97 if area then
98 execute.view{ module = "area", view = "_sidebar_whatcanido", params = { area = area } }
99 elseif unit then
100 execute.view{ module = "unit", view = "_sidebar_whatcanido", params = { unit = unit } }
101 else
102 execute.view{ module = "index", view = "_sidebar_whatcanido" }
103 end
105 execute.view { module = "index", view = "_sidebar_members" }
107 end }
108 end }