liquid_feedback_frontend

changeset 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 edcf827d7ac3
children ec2ff3e0b0e6
files app/main/_filter_view/30_navigation.lua app/main/index/search.lua app/main/initiative/_list.lua model/issue.lua
line diff
     1.1 --- a/app/main/_filter_view/30_navigation.lua	Thu Mar 15 12:43:11 2012 +0100
     1.2 +++ b/app/main/_filter_view/30_navigation.lua	Thu Mar 15 13:12:51 2012 +0100
     1.3 @@ -27,6 +27,12 @@
     1.4      }
     1.5    end
     1.6  
     1.7 +  ui.link{
     1.8 +    content = _"Search",
     1.9 +    module = 'index',
    1.10 +    view   = 'search'
    1.11 +  }
    1.12 +  
    1.13    if config.public_access and app.session.member == nil then
    1.14      ui.link{
    1.15        text   = _"Login",
     2.1 --- a/app/main/index/search.lua	Thu Mar 15 12:43:11 2012 +0100
     2.2 +++ b/app/main/index/search.lua	Thu Mar 15 13:12:51 2012 +0100
     2.3 @@ -1,41 +1,70 @@
     2.4  local search_for = param.get("search_for", atom.string) or "global"
     2.5  local search_string = param.get("search", atom.string)
     2.6  
     2.7 -slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search  = search_string })))
     2.8 -
     2.9 -
    2.10 -if search_for == "global" or search_for == "member" then
    2.11 -  local members_selector = Member:get_search_selector(search_string)
    2.12 -  ui.heading{ content = _"Members" }
    2.13 -  execute.view{
    2.14 -    module = "member",
    2.15 -    view = "_list",
    2.16 -    params = { members_selector = members_selector },
    2.17 -  }
    2.18 +if search_string then
    2.19 +  slot.put_into("title", encode.html(_("Search results for: '#{search}'", { search  = search_string })))
    2.20 +else
    2.21 +  slot.put_into("title", encode.html(_"Search"))
    2.22  end
    2.23  
    2.24 -if search_for == "global" or search_for == "initiative" then
    2.25 -  local initiatives_selector = Initiative:get_search_selector(search_string)
    2.26 -  ui.heading{ content = _"Initiatives" }
    2.27 -  execute.view{
    2.28 -    module = "initiative",
    2.29 -    view = "_list",
    2.30 -    params = { initiatives_selector = initiatives_selector },
    2.31 -  }
    2.32 -end
    2.33 +ui.form{
    2.34 +  method = "get", module = "index", view = "search",
    2.35 +  routing = { default = { mode = "redirect",
    2.36 +    module = "index", view = "search", search_for = search_for, search = search_string
    2.37 +  } },
    2.38 +  attr = { class = "vertical" },
    2.39 +  content = function()
    2.40 +    ui.field.select{
    2.41 +      label = _"Search context",
    2.42 +      name = "search_for",
    2.43 +      value = search_for,
    2.44 +      foreign_records = {
    2.45 +        { id = "global", name = _"Global search" },
    2.46 +        { id = "member", name = _"Search for members" },
    2.47 +        { id = "issue", name = _"Search for issues" },
    2.48 +        { id = "initiative", name = _"Search for initiatives" },
    2.49 +      },
    2.50 +      foreign_id = "id",
    2.51 +      foreign_name = "name",
    2.52 +    }
    2.53 +    ui.field.text{ label = _"Search term (only complete words)", name = "search", value = search_string }
    2.54 +    ui.submit{ value = _"Start search" }
    2.55 +  end
    2.56 +}
    2.57 +
    2.58 +slot.put("<br />")
    2.59 +
    2.60 +if search_string then
    2.61  
    2.62 -if search_for == "issue" then
    2.63 -  local issues_selector = Issue:get_search_selector(search_string)
    2.64 -  ui.heading{ content = _"Issues" }
    2.65 -  execute.view{
    2.66 -    module = "issue",
    2.67 -    view = "_list",
    2.68 -    params = {
    2.69 -      issues_selector = issues_selector,
    2.70 -      highlight_string = search_string,
    2.71 -      no_filter = true
    2.72 -    },
    2.73 -  }
    2.74 +  if search_for == "global" or search_for == "member" then
    2.75 +    local members_selector = Member:get_search_selector(search_string)
    2.76 +    execute.view{
    2.77 +      module = "member",
    2.78 +      view = "_list",
    2.79 +      params = { members_selector = members_selector },
    2.80 +    }
    2.81 +  end
    2.82 +
    2.83 +  if search_for == "global" or search_for == "initiative" then
    2.84 +    local initiatives_selector = Initiative:get_search_selector(search_string)
    2.85 +    execute.view{
    2.86 +      module = "initiative",
    2.87 +      view = "_list",
    2.88 +      params = { initiatives_selector = initiatives_selector },
    2.89 +    }
    2.90 +  end
    2.91 +
    2.92 +  if search_for == "issue" then
    2.93 +    local issues_selector = Issue:get_search_selector(search_string)
    2.94 +    execute.view{
    2.95 +      module = "issue",
    2.96 +      view = "_list",
    2.97 +      params = {
    2.98 +        issues_selector = issues_selector,
    2.99 +        highlight_string = search_string,
   2.100 +        no_filter = true
   2.101 +      },
   2.102 +    }
   2.103 +  end
   2.104 +  
   2.105  end
   2.106 -
   2.107 -
     3.1 --- a/app/main/initiative/_list.lua	Thu Mar 15 12:43:11 2012 +0100
     3.2 +++ b/app/main/initiative/_list.lua	Thu Mar 15 13:12:51 2012 +0100
     3.3 @@ -49,7 +49,7 @@
     3.4  ui.paginate{
     3.5    name = issue and "issue_" .. tostring(issue.id) .. "_page" or nil,
     3.6    selector = initiatives_selector,
     3.7 -  per_page = param.get("per_page", atom.number) or limit,
     3.8 +  per_page = param.get("per_page", atom.number) or limit or 25,
     3.9    content = function()
    3.10      local initiatives = initiatives_selector:exec()
    3.11      if highlight_initiative then
     4.1 --- a/model/issue.lua	Thu Mar 15 12:43:11 2012 +0100
     4.2 +++ b/model/issue.lua	Thu Mar 15 13:12:51 2012 +0100
     4.3 @@ -146,6 +146,7 @@
     4.4      :add_group_by('"issue"."verification_time"')
     4.5      :add_group_by('"issue"."voting_time"')
     4.6      :add_group_by('"_interest"."member_id"')
     4.7 +    :add_group_by("_delegating_interest.delegate_member_ids")
     4.8      --:set_distinct()
     4.9  end
    4.10  

Impressum / About Us