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