liquid_feedback_frontend

view 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 source
1 local search_for = param.get("search_for", atom.string) or "global"
2 local search_string = param.get("search", atom.string)
4 if search_string then
5 slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search = search_string })))
6 else
7 slot.put_into("title", encode.html(_"Search"))
8 end
10 ui.form{
11 method = "get", module = "index", view = "search",
12 routing = { default = { mode = "redirect",
13 module = "index", view = "search", search_for = search_for, search = search_string
14 } },
15 attr = { class = "vertical" },
16 content = function()
17 ui.field.select{
18 label = _"Search context",
19 name = "search_for",
20 value = search_for,
21 foreign_records = {
22 { id = "global", name = _"Global search" },
23 { id = "member", name = _"Search for members" },
24 { id = "issue", name = _"Search for issues" },
25 { id = "initiative", name = _"Search for initiatives" },
26 },
27 foreign_id = "id",
28 foreign_name = "name",
29 }
30 ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string }
31 ui.submit{ value = _"Start search" }
32 end
33 }
35 slot.put("<br />")
37 if search_string then
39 if search_for == "global" or search_for == "member" then
40 local members_selector = Member:get_search_selector(search_string)
41 execute.view{
42 module = "member",
43 view = "_list",
44 params = { members_selector = members_selector },
45 }
46 end
48 if search_for == "global" or search_for == "initiative" then
49 local initiatives_selector = Initiative:get_search_selector(search_string)
50 execute.view{
51 module = "initiative",
52 view = "_list",
53 params = { initiatives_selector = initiatives_selector },
54 }
55 end
57 if search_for == "issue" then
58 local issues_selector = Issue:get_search_selector(search_string)
59 execute.view{
60 module = "issue",
61 view = "_list",
62 params = {
63 issues_selector = issues_selector,
64 highlight_string = search_string,
65 no_filter = true
66 },
67 }
68 end
70 end

Impressum / About Us