liquid_feedback_frontend
changeset 480:af496baa9bda
Added search function again and raised initiatve list limit to 25
author | bsw |
---|---|
date | Thu Mar 15 13:12:51 2012 +0100 (2012-03-15) |
parents | edcf827d7ac3 |
children | ec2ff3e0b0e6 |
files | app/main/_filter_view/30_navigation.lua app/main/index/search.lua app/main/initiative/_list.lua model/issue.lua |
line diff
1.1 --- a/app/main/_filter_view/30_navigation.lua Thu Mar 15 12:43:11 2012 +0100 1.2 +++ b/app/main/_filter_view/30_navigation.lua Thu Mar 15 13:12:51 2012 +0100 1.3 @@ -27,6 +27,12 @@ 1.4 } 1.5 end 1.6 1.7 + ui.link{ 1.8 + content = _"Search", 1.9 + module = 'index', 1.10 + view = 'search' 1.11 + } 1.12 + 1.13 if config.public_access and app.session.member == nil then 1.14 ui.link{ 1.15 text = _"Login",
2.1 --- a/app/main/index/search.lua Thu Mar 15 12:43:11 2012 +0100 2.2 +++ b/app/main/index/search.lua Thu Mar 15 13:12:51 2012 +0100 2.3 @@ -1,41 +1,70 @@ 2.4 local search_for = param.get("search_for", atom.string) or "global" 2.5 local search_string = param.get("search", atom.string) 2.6 2.7 -slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search = search_string }))) 2.8 - 2.9 - 2.10 -if search_for == "global" or search_for == "member" then 2.11 - local members_selector = Member:get_search_selector(search_string) 2.12 - ui.heading{ content = _"Members" } 2.13 - execute.view{ 2.14 - module = "member", 2.15 - view = "_list", 2.16 - params = { members_selector = members_selector }, 2.17 - } 2.18 +if search_string then 2.19 + slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search = search_string }))) 2.20 +else 2.21 + slot.put_into("title", encode.html(_"Search")) 2.22 end 2.23 2.24 -if search_for == "global" or search_for == "initiative" then 2.25 - local initiatives_selector = Initiative:get_search_selector(search_string) 2.26 - ui.heading{ content = _"Initiatives" } 2.27 - execute.view{ 2.28 - module = "initiative", 2.29 - view = "_list", 2.30 - params = { initiatives_selector = initiatives_selector }, 2.31 - } 2.32 -end 2.33 +ui.form{ 2.34 + method = "get", module = "index", view = "search", 2.35 + routing = { default = { mode = "redirect", 2.36 + module = "index", view = "search", search_for = search_for, search = search_string 2.37 + } }, 2.38 + attr = { class = "vertical" }, 2.39 + content = function() 2.40 + ui.field.select{ 2.41 + label = _"Search context", 2.42 + name = "search_for", 2.43 + value = search_for, 2.44 + foreign_records = { 2.45 + { id = "global", name = _"Global search" }, 2.46 + { id = "member", name = _"Search for members" }, 2.47 + { id = "issue", name = _"Search for issues" }, 2.48 + { id = "initiative", name = _"Search for initiatives" }, 2.49 + }, 2.50 + foreign_id = "id", 2.51 + foreign_name = "name", 2.52 + } 2.53 + ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string } 2.54 + ui.submit{ value = _"Start search" } 2.55 + end 2.56 +} 2.57 + 2.58 +slot.put("<br />") 2.59 + 2.60 +if search_string then 2.61 2.62 -if search_for == "issue" then 2.63 - local issues_selector = Issue:get_search_selector(search_string) 2.64 - ui.heading{ content = _"Issues" } 2.65 - execute.view{ 2.66 - module = "issue", 2.67 - view = "_list", 2.68 - params = { 2.69 - issues_selector = issues_selector, 2.70 - highlight_string = search_string, 2.71 - no_filter = true 2.72 - }, 2.73 - } 2.74 + if search_for == "global" or search_for == "member" then 2.75 + local members_selector = Member:get_search_selector(search_string) 2.76 + execute.view{ 2.77 + module = "member", 2.78 + view = "_list", 2.79 + params = { members_selector = members_selector }, 2.80 + } 2.81 + end 2.82 + 2.83 + if search_for == "global" or search_for == "initiative" then 2.84 + local initiatives_selector = Initiative:get_search_selector(search_string) 2.85 + execute.view{ 2.86 + module = "initiative", 2.87 + view = "_list", 2.88 + params = { initiatives_selector = initiatives_selector }, 2.89 + } 2.90 + end 2.91 + 2.92 + if search_for == "issue" then 2.93 + local issues_selector = Issue:get_search_selector(search_string) 2.94 + execute.view{ 2.95 + module = "issue", 2.96 + view = "_list", 2.97 + params = { 2.98 + issues_selector = issues_selector, 2.99 + highlight_string = search_string, 2.100 + no_filter = true 2.101 + }, 2.102 + } 2.103 + end 2.104 + 2.105 end 2.106 - 2.107 -
3.1 --- a/app/main/initiative/_list.lua Thu Mar 15 12:43:11 2012 +0100 3.2 +++ b/app/main/initiative/_list.lua Thu Mar 15 13:12:51 2012 +0100 3.3 @@ -49,7 +49,7 @@ 3.4 ui.paginate{ 3.5 name = issue and "issue_" .. tostring(issue.id) .. "_page" or nil, 3.6 selector = initiatives_selector, 3.7 - per_page = param.get("per_page", atom.number) or limit, 3.8 + per_page = param.get("per_page", atom.number) or limit or 25, 3.9 content = function() 3.10 local initiatives = initiatives_selector:exec() 3.11 if highlight_initiative then
4.1 --- a/model/issue.lua Thu Mar 15 12:43:11 2012 +0100 4.2 +++ b/model/issue.lua Thu Mar 15 13:12:51 2012 +0100 4.3 @@ -146,6 +146,7 @@ 4.4 :add_group_by('"issue"."verification_time"') 4.5 :add_group_by('"issue"."voting_time"') 4.6 :add_group_by('"_interest"."member_id"') 4.7 + :add_group_by("_delegating_interest.delegate_member_ids") 4.8 --:set_distinct() 4.9 end 4.10