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@725
|
17
|
bsw@816
|
18 if app.session:has_access("everything") then
|
bsw@725
|
19 ui.field.select{
|
bsw@725
|
20 label = _"Search context",
|
bsw@725
|
21 name = "search_for",
|
bsw@725
|
22 value = search_for,
|
bsw@725
|
23 foreign_records = {
|
bsw@725
|
24 { id = "global", name = _"Global search" },
|
bsw@725
|
25 { id = "member", name = _"Search for members" },
|
bsw@725
|
26 { id = "issue", name = _"Search for issues" }
|
bsw@725
|
27 },
|
bsw@725
|
28 foreign_id = "id",
|
bsw@725
|
29 foreign_name = "name",
|
bsw@725
|
30 }
|
bsw@725
|
31 end
|
bsw@480
|
32 ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string }
|
bsw@480
|
33 ui.submit{ value = _"Start search" }
|
bsw@480
|
34 end
|
bsw@480
|
35 }
|
bsw@480
|
36
|
bsw@480
|
37 slot.put("<br />")
|
bsw@480
|
38
|
bsw@480
|
39 if search_string then
|
bsw/jbe@19
|
40
|
bsw@816
|
41 if app.session:has_access("everything") then
|
bsw@725
|
42 if search_for == "global" or search_for == "member" then
|
bsw@725
|
43 local members_selector = Member:get_search_selector(search_string)
|
bsw@725
|
44 execute.view{
|
bsw@725
|
45 module = "member",
|
bsw@725
|
46 view = "_list",
|
bsw@725
|
47 params = { members_selector = members_selector },
|
bsw@725
|
48 }
|
bsw@725
|
49 end
|
bsw@480
|
50 end
|
bsw@725
|
51
|
bsw@606
|
52 if search_for == "global" or search_for == "issue" then
|
bsw@480
|
53 local issues_selector = Issue:get_search_selector(search_string)
|
bsw@480
|
54 execute.view{
|
bsw@480
|
55 module = "issue",
|
bsw@480
|
56 view = "_list",
|
bsw@480
|
57 params = {
|
bsw@480
|
58 issues_selector = issues_selector,
|
bsw@480
|
59 highlight_string = search_string,
|
bsw@480
|
60 no_filter = true
|
bsw@480
|
61 },
|
bsw@480
|
62 }
|
bsw@480
|
63 end
|
bsw@480
|
64
|
bsw/jbe@0
|
65 end
|