bsw/jbe@0: local area = Area:new_selector():add_where{ "id = ?", param.get_id() }:single_object_mode():exec() bsw/jbe@0: jorges@103: app.html_title.title = area.name jorges@103: app.html_title.subtitle = _("Area") jorges@103: bsw/jbe@52: if config.feature_rss_enabled then bsw/jbe@52: util.html_rss_head{ title = _"Initiatives in this area (last created first)", module = "initiative", view = "list_rss", params = { area_id = area.id } } bsw/jbe@52: util.html_rss_head{ title = _"Initiatives in this area (last updated first)", module = "initiative", view = "list_rss", params = { area_id = area.id } } bsw/jbe@52: end bsw/jbe@52: bsw/jbe@0: slot.put_into("title", encode.html(_"Area '#{name}'":gsub("#{name}", area.name))) bsw/jbe@0: bsw/jbe@0: ui.container{ bsw/jbe@0: attr = { class = "vertical"}, bsw/jbe@0: content = function() bsw/jbe@0: ui.field.text{ value = area.description } bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: bsw@51: if app.session.member_id then bsw@51: slot.select("actions", function() bsw@51: ui.link{ bsw@51: content = function() bsw@51: ui.image{ static = "icons/16/folder_add.png" } bsw@51: slot.put(_"Create new issue") bsw@51: end, bsw@51: module = "initiative", bsw@51: view = "new", bsw@51: params = { area_id = area.id } bsw@51: } bsw@51: end) bsw@51: end bsw/jbe@0: bsw/jbe@4: util.help("area.show") bsw/jbe@4: bsw@51: if app.session.member_id then bsw@51: execute.view{ bsw@51: module = "membership", bsw@51: view = "_show_box", bsw@51: params = { area = area } bsw@51: } bsw/jbe@0: bsw@51: execute.view{ bsw@51: module = "delegation", bsw@51: view = "_show_box", bsw@51: params = { area_id = area.id } bsw@51: } bsw@51: bsw@51: end bsw/jbe@0: bsw/jbe@19: --[[ bsw/jbe@19: for i, issue in ipairs(area.issues) do bsw/jbe@19: local head_name = "issue_head_content_" .. tostring(issue.id) bsw/jbe@19: local name = "issue_content_" .. tostring(issue.id) bsw/jbe@19: local icon_name = "issue_icon_" .. tostring(issue.id) bsw/jbe@19: ui.container{ bsw/jbe@19: attr = { class = "ui_tabs" }, bsw/jbe@0: content = function() bsw/jbe@19: local onclick = bsw/jbe@19: 'if (ui_tabs_active["' .. name .. '"]) {' .. bsw/jbe@19: 'el=document.getElementById("' .. name .. '");' .. bsw/jbe@19: 'el.innerHTML="";' .. bsw/jbe@19: 'el.style.display="none";' .. bsw/jbe@19: 'ui_tabs_active["' .. name .. '"]=false' .. bsw/jbe@19: '} else {' .. bsw/jbe@19: 'ui_tabs_active["' .. name .. '"]=true;' .. bsw/jbe@19: 'document.getElementById("' .. name .. '").style.display="block"; ' .. bsw/jbe@19: 'var hourglass_el = document.getElementById("' .. icon_name .. '");' .. bsw/jbe@19: 'var hourglass_src = hourglass_el.src;' .. bsw/jbe@19: 'hourglass_el.src = "' .. encode.url{ static = "icons/16/connect.png" } .. '";' .. bsw/jbe@19: 'partialMultiLoad(' .. bsw/jbe@19: '{ trace: "trace", system_error: "system_error", ' .. name .. '_title: "title", ' .. name .. '_actions: "actions", ' .. name .. '_content: "default" },' .. bsw/jbe@19: '{},' .. bsw/jbe@19: '"error",' .. bsw/jbe@19: '"' .. request.get_relative_baseurl() .. 'issue/show/' .. tostring(issue.id) .. '.html?&_webmcp_json_slots[]=title&_webmcp_json_slots[]=actions&_webmcp_json_slots[]=default&_webmcp_json_slots[]=trace&_webmcp_json_slots[]=system_error&dyn=1",' .. bsw/jbe@19: '{},' .. bsw/jbe@19: '{},' .. bsw/jbe@19: 'function() {' .. bsw/jbe@19: 'hourglass_el.src = hourglass_src;' .. bsw/jbe@19: '},' .. bsw/jbe@19: 'function() {' .. bsw/jbe@19: 'hourglass_el.src = hourglass_src;' .. bsw/jbe@19: '}' .. bsw/jbe@19: '); ' .. bsw/jbe@19: '}' .. bsw/jbe@19: 'return(false);' bsw/jbe@19: ui.link{ bsw/jbe@19: attr = { bsw/jbe@19: name = name, bsw/jbe@19: class = "ui_tabs_accordeon_head", bsw/jbe@19: id = head_name, bsw/jbe@19: onclick = onclick, bsw/jbe@19: }, bsw/jbe@19: module = "issue", bsw/jbe@19: view = "show", bsw/jbe@19: id = issue.id, bsw/jbe@19: params = params, bsw/jbe@19: anchor = name, bsw/jbe@19: content = function() bsw/jbe@19: ui.image{ bsw/jbe@19: attr = { id = icon_name }, bsw/jbe@19: static = "icons/16/script.png" bsw/jbe@19: } bsw/jbe@19: ui.container{ bsw/jbe@19: attr = { style = "float: right;" }, bsw/jbe@19: content = function() bsw/jbe@19: bsw/jbe@19: end bsw/jbe@19: } bsw/jbe@19: slot.put(tostring(issue.id)) bsw/jbe@19: end bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@19: } bsw/jbe@19: bsw/jbe@19: ui.container{ bsw/jbe@19: attr = { bsw/jbe@19: id = name, bsw/jbe@19: class = "ui_tabs_accordeon_content", bsw/jbe@19: }, bsw/jbe@0: content = function() bsw/jbe@19: ui.container{ attr = { id = name .. "_title", }, content = function() slot.put(" ") end } bsw/jbe@19: ui.container{ attr = { id = name .. "_actions", }, content = function() slot.put(" ") end } bsw/jbe@19: ui.container{ attr = { id = name .. "_content", }, content = function() bsw/jbe@19: execute.view{ bsw/jbe@19: module = "initiative", bsw/jbe@19: view = "_list", bsw/jbe@19: params = { bsw/jbe@19: issue = issue, bsw/jbe@19: initiatives_selector = issue:get_reference_selector("initiatives"), bsw/jbe@19: limit = 3, bsw/jbe@19: per_page = 3, bsw/jbe@19: no_sort = true, bsw/jbe@19: } bsw/jbe@19: } bsw/jbe@19: end } bsw/jbe@0: end bsw/jbe@19: } bsw/jbe@19: bsw/jbe@19: if config.user_tab_mode == "accordeon_all_expanded" then bsw/jbe@19: ui.script{ script = 'document.getElementById("' .. head_name .. '").onclick();' } bsw/jbe@19: end bsw/jbe@19: end bsw/jbe@19: --]] bsw/jbe@19: bsw/jbe@19: execute.view{ bsw/jbe@19: module = "area", bsw/jbe@19: view = "show_tab", bsw/jbe@19: params = { area = area } bsw/jbe@0: } bsw/jbe@0: