liquid_feedback_frontend
changeset 1570:dcacc0b98d70
Fixed filter for issue list of units without privilege
author | bsw |
---|---|
date | Wed Nov 11 12:23:48 2020 +0100 (2020-11-11) |
parents | 32b9e4070777 |
children | 393ee0a63054 |
files | app/main/issue/_filters.lua env/ui/filters.lua |
line diff
1.1 --- a/app/main/issue/_filters.lua Wed Nov 11 11:11:59 2020 +0100 1.2 +++ b/app/main/issue/_filters.lua Wed Nov 11 12:23:48 2020 +0100 1.3 @@ -5,6 +5,12 @@ 1.4 local member = param.get("member", "table") 1.5 local phase = request.get_param{ name = "phase" } 1.6 1.7 +local selected_unit_id = config.single_unit_id or request.get_param{ name = "unit" } 1.8 +if selected_unit_id == "all" then 1.9 + selected_unit_id = nil 1.10 +end 1.11 +local selected_unit = Unit:by_id(selected_unit_id) 1.12 + 1.13 local filters = {} 1.14 1.15 local admission_order_field = "filter_issue_order.order_in_unit" 1.16 @@ -66,7 +72,12 @@ 1.17 end 1.18 } 1.19 1.20 + local selected_unit_found = false 1.21 + 1.22 for i, unit in ipairs(units) do 1.23 + if selected_unit and unit.id == selected_unit.id then 1.24 + selected_unit_found = true 1.25 + end 1.26 filter[#filter+1] = { 1.27 name = tostring(unit.id), 1.28 label = unit.name, 1.29 @@ -75,19 +86,31 @@ 1.30 selector:add_where{ "__filter_area.unit_id = ?", unit.id } 1.31 end 1.32 } 1.33 - 1.34 end 1.35 1.36 + if not selected_unit_found and selected_unit then 1.37 + filter[#filter+1] = { 1.38 + name = tostring(selected_unit.id), 1.39 + label = selected_unit.name, 1.40 + selector_modifier = function(selector) 1.41 + selector:join("area", "__filter_area", "__filter_area.id = issue.area_id AND __filter_area.active") 1.42 + selector:add_where{ "__filter_area.unit_id = ?", selected_unit.id } 1.43 + end 1.44 + } 1.45 + end 1.46 + 1.47 +--[[ 1.48 + filter.selector_modifier = function(selector) 1.49 + selector:join("area", "__filter_area", "__filter_area.id = issue.area_id AND __filter_area.active") 1.50 + selector:add_where{ "__filter_area.unit_id = ?", 81 } 1.51 + end 1.52 +--]] 1.53 + 1.54 filters[#filters+1] = filter 1.55 1.56 end 1.57 1.58 -- areas 1.59 - local selected_unit_id = config.single_unit_id or request.get_param{ name = "unit" } 1.60 - if selected_unit_id == "all" then 1.61 - selected_unit_id = nil 1.62 - end 1.63 - local selected_unit = Unit:by_id(selected_unit_id) 1.64 1.65 if not config.single_area_id and selected_unit then 1.66
2.1 --- a/env/ui/filters.lua Wed Nov 11 11:11:59 2020 +0100 2.2 +++ b/env/ui/filters.lua Wed Nov 11 12:23:48 2020 +0100 2.3 @@ -15,6 +15,9 @@ 2.4 end 2.5 for idx, filter in ipairs(args) do 2.6 local filter_name = filter.name or "filter" 2.7 + if filter.selector_modifier then 2.8 + filter.selector_modifier(args.selector) 2.9 + end 2.10 local current_option_name = atom.string:load(request.get_param{ name = filter_name }) 2.11 if not current_option_name then 2.12 current_option_name = param.get(filter_name)