liquid_feedback_frontend

diff 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 diff
     1.1 --- a/app/main/index/search.lua	Thu Mar 15 12:43:11 2012 +0100
     1.2 +++ b/app/main/index/search.lua	Thu Mar 15 13:12:51 2012 +0100
     1.3 @@ -1,41 +1,70 @@
     1.4  local search_for = param.get("search_for", atom.string) or "global"
     1.5  local search_string = param.get("search", atom.string)
     1.6  
     1.7 -slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search  = search_string })))
     1.8 -
     1.9 -
    1.10 -if search_for == "global" or search_for == "member" then
    1.11 -  local members_selector = Member:get_search_selector(search_string)
    1.12 -  ui.heading{ content = _"Members" }
    1.13 -  execute.view{
    1.14 -    module = "member",
    1.15 -    view = "_list",
    1.16 -    params = { members_selector = members_selector },
    1.17 -  }
    1.18 +if search_string then
    1.19 +  slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search  = search_string })))
    1.20 +else
    1.21 +  slot.put_into("title", encode.html(_"Search"))
    1.22  end
    1.23  
    1.24 -if search_for == "global" or search_for == "initiative" then
    1.25 -  local initiatives_selector = Initiative:get_search_selector(search_string)
    1.26 -  ui.heading{ content = _"Initiatives" }
    1.27 -  execute.view{
    1.28 -    module = "initiative",
    1.29 -    view = "_list",
    1.30 -    params = { initiatives_selector = initiatives_selector },
    1.31 -  }
    1.32 -end
    1.33 +ui.form{
    1.34 +  method = "get", module = "index", view = "search",
    1.35 +  routing = { default = { mode = "redirect",
    1.36 +    module = "index", view = "search", search_for = search_for, search = search_string
    1.37 +  } },
    1.38 +  attr = { class = "vertical" },
    1.39 +  content = function()
    1.40 +    ui.field.select{
    1.41 +      label = _"Search context",
    1.42 +      name = "search_for",
    1.43 +      value = search_for,
    1.44 +      foreign_records = {
    1.45 +        { id = "global", name = _"Global search" },
    1.46 +        { id = "member", name = _"Search for members" },
    1.47 +        { id = "issue", name = _"Search for issues" },
    1.48 +        { id = "initiative", name = _"Search for initiatives" },
    1.49 +      },
    1.50 +      foreign_id = "id",
    1.51 +      foreign_name = "name",
    1.52 +    }
    1.53 +    ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string }
    1.54 +    ui.submit{ value = _"Start search" }
    1.55 +  end
    1.56 +}
    1.57 +
    1.58 +slot.put("<br />")
    1.59 +
    1.60 +if search_string then
    1.61  
    1.62 -if search_for == "issue" then
    1.63 -  local issues_selector = Issue:get_search_selector(search_string)
    1.64 -  ui.heading{ content = _"Issues" }
    1.65 -  execute.view{
    1.66 -    module = "issue",
    1.67 -    view = "_list",
    1.68 -    params = {
    1.69 -      issues_selector = issues_selector,
    1.70 -      highlight_string = search_string,
    1.71 -      no_filter = true
    1.72 -    },
    1.73 -  }
    1.74 +  if search_for == "global" or search_for == "member" then
    1.75 +    local members_selector = Member:get_search_selector(search_string)
    1.76 +    execute.view{
    1.77 +      module = "member",
    1.78 +      view = "_list",
    1.79 +      params = { members_selector = members_selector },
    1.80 +    }
    1.81 +  end
    1.82 +
    1.83 +  if search_for == "global" or search_for == "initiative" then
    1.84 +    local initiatives_selector = Initiative:get_search_selector(search_string)
    1.85 +    execute.view{
    1.86 +      module = "initiative",
    1.87 +      view = "_list",
    1.88 +      params = { initiatives_selector = initiatives_selector },
    1.89 +    }
    1.90 +  end
    1.91 +
    1.92 +  if search_for == "issue" then
    1.93 +    local issues_selector = Issue:get_search_selector(search_string)
    1.94 +    execute.view{
    1.95 +      module = "issue",
    1.96 +      view = "_list",
    1.97 +      params = {
    1.98 +        issues_selector = issues_selector,
    1.99 +        highlight_string = search_string,
   1.100 +        no_filter = true
   1.101 +      },
   1.102 +    }
   1.103 +  end
   1.104 +  
   1.105  end
   1.106 -
   1.107 -

Impressum / About Us