liquid_feedback_frontend
diff app/main/index/search.lua @ 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 | aaba4d28dd53 |
| children | c4b878748205 |
line diff
1.1 --- a/app/main/index/search.lua Thu Mar 15 12:43:11 2012 +0100 1.2 +++ b/app/main/index/search.lua Thu Mar 15 13:12:51 2012 +0100 1.3 @@ -1,41 +1,70 @@ 1.4 local search_for = param.get("search_for", atom.string) or "global" 1.5 local search_string = param.get("search", atom.string) 1.6 1.7 -slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search = search_string }))) 1.8 - 1.9 - 1.10 -if search_for == "global" or search_for == "member" then 1.11 - local members_selector = Member:get_search_selector(search_string) 1.12 - ui.heading{ content = _"Members" } 1.13 - execute.view{ 1.14 - module = "member", 1.15 - view = "_list", 1.16 - params = { members_selector = members_selector }, 1.17 - } 1.18 +if search_string then 1.19 + slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search = search_string }))) 1.20 +else 1.21 + slot.put_into("title", encode.html(_"Search")) 1.22 end 1.23 1.24 -if search_for == "global" or search_for == "initiative" then 1.25 - local initiatives_selector = Initiative:get_search_selector(search_string) 1.26 - ui.heading{ content = _"Initiatives" } 1.27 - execute.view{ 1.28 - module = "initiative", 1.29 - view = "_list", 1.30 - params = { initiatives_selector = initiatives_selector }, 1.31 - } 1.32 -end 1.33 +ui.form{ 1.34 + method = "get", module = "index", view = "search", 1.35 + routing = { default = { mode = "redirect", 1.36 + module = "index", view = "search", search_for = search_for, search = search_string 1.37 + } }, 1.38 + attr = { class = "vertical" }, 1.39 + content = function() 1.40 + ui.field.select{ 1.41 + label = _"Search context", 1.42 + name = "search_for", 1.43 + value = search_for, 1.44 + foreign_records = { 1.45 + { id = "global", name = _"Global search" }, 1.46 + { id = "member", name = _"Search for members" }, 1.47 + { id = "issue", name = _"Search for issues" }, 1.48 + { id = "initiative", name = _"Search for initiatives" }, 1.49 + }, 1.50 + foreign_id = "id", 1.51 + foreign_name = "name", 1.52 + } 1.53 + ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string } 1.54 + ui.submit{ value = _"Start search" } 1.55 + end 1.56 +} 1.57 + 1.58 +slot.put("<br />") 1.59 + 1.60 +if search_string then 1.61 1.62 -if search_for == "issue" then 1.63 - local issues_selector = Issue:get_search_selector(search_string) 1.64 - ui.heading{ content = _"Issues" } 1.65 - execute.view{ 1.66 - module = "issue", 1.67 - view = "_list", 1.68 - params = { 1.69 - issues_selector = issues_selector, 1.70 - highlight_string = search_string, 1.71 - no_filter = true 1.72 - }, 1.73 - } 1.74 + if search_for == "global" or search_for == "member" then 1.75 + local members_selector = Member:get_search_selector(search_string) 1.76 + execute.view{ 1.77 + module = "member", 1.78 + view = "_list", 1.79 + params = { members_selector = members_selector }, 1.80 + } 1.81 + end 1.82 + 1.83 + if search_for == "global" or search_for == "initiative" then 1.84 + local initiatives_selector = Initiative:get_search_selector(search_string) 1.85 + execute.view{ 1.86 + module = "initiative", 1.87 + view = "_list", 1.88 + params = { initiatives_selector = initiatives_selector }, 1.89 + } 1.90 + end 1.91 + 1.92 + if search_for == "issue" then 1.93 + local issues_selector = Issue:get_search_selector(search_string) 1.94 + execute.view{ 1.95 + module = "issue", 1.96 + view = "_list", 1.97 + params = { 1.98 + issues_selector = issues_selector, 1.99 + highlight_string = search_string, 1.100 + no_filter = true 1.101 + }, 1.102 + } 1.103 + end 1.104 + 1.105 end 1.106 - 1.107 -