liquid_feedback_frontend
view app/main/index/search.lua @ 673:da77d9b2d140
Optical enhancements
| author | bsw | 
|---|---|
| date | Tue Jun 26 16:45:02 2012 +0200 (2012-06-26) | 
| parents | c4b878748205 | 
| children | 344e5fdce8c9 | 
 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       },
    26       foreign_id = "id",
    27       foreign_name = "name",
    28     }
    29     ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string }
    30     ui.submit{ value = _"Start search" }
    31   end
    32 }
    34 slot.put("<br />")
    36 if search_string then
    38   if search_for == "global" or search_for == "member" then
    39     local members_selector = Member:get_search_selector(search_string)
    40     execute.view{
    41       module = "member",
    42       view = "_list",
    43       params = { members_selector = members_selector },
    44     }
    45   end
    47   if search_for == "global" or search_for == "issue" then
    48     local issues_selector = Issue:get_search_selector(search_string)
    49     execute.view{
    50       module = "issue",
    51       view = "_list",
    52       params = {
    53         issues_selector = issues_selector,
    54         highlight_string = search_string,
    55         no_filter = true
    56       },
    57     }
    58   end
    60 end
