liquid_feedback_frontend

annotate 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
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

Impressum / About Us