Search query and display selection kept across pages and searches
This commit is contained in:
parent
dead80eb5e
commit
8e9ff1ef80
3 changed files with 38 additions and 25 deletions
|
|
@ -6,11 +6,11 @@ class PackagesController < ApplicationController
|
|||
@packages = @packages.text_search(params[:query])
|
||||
end
|
||||
|
||||
#if params[:with_screenshots]=='yes'
|
||||
# # Limit the packages to those that have approved screenshots.
|
||||
# # Also eager-load the screenshots.
|
||||
# Limit the packages to those that have approved screenshots.
|
||||
# Also eager-load the screenshots.
|
||||
if params[:show]=='onlywith'
|
||||
@packages = @packages.where("screenshots.approved"=>true)
|
||||
#end
|
||||
end
|
||||
|
||||
@packages = @packages.page(params[:page]).per(12)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,21 +3,30 @@
|
|||
Debian Screenshots
|
||||
</a>
|
||||
|
||||
<%= form_tag(url_for, method: "get", class: "navbar-form navbar-left form-search", role: "search") do %>
|
||||
<%= form_tag(url_for, method: 'get', class: 'navbar-form navbar-left form-search', role: 'search') do %>
|
||||
<div class="form-group">
|
||||
<%= search_field_tag('query', nil, placeholder:'Search...', size:30,
|
||||
<%= search_field_tag('query', params['query'], placeholder:'Search...', size:30,
|
||||
maxlength:200, class:'form-control') %>
|
||||
</div> <button type="submit" class="btn btn-default">Submit</button>
|
||||
<%= hidden_field_tag('show', params['show']) %>
|
||||
<% end %> <!-- /form -->
|
||||
|
||||
<div class="navbar-nav btn-group">
|
||||
<!-- Button group for grid/list view -->
|
||||
<%= link_to url_for(package_grid_path), {class:"navbar-btn btn btn-default"} do %>
|
||||
Grid
|
||||
<% end %>
|
||||
<%= link_to url_for(package_list_path), {class:"navbar-btn btn btn-default"} do %>
|
||||
List
|
||||
<% end %>
|
||||
<span class="navbar-text">View:</span>
|
||||
<div class="navbar-nav btn-group">
|
||||
<%= link_to 'Grid', url_for(package_grid_path),
|
||||
{class: 'navbar-btn btn btn-default' + (params['display']=='grid' ? ' active' : '')} %>
|
||||
<%= link_to 'List', url_for(package_list_path),
|
||||
{class: 'navbar-btn btn btn-default' + (params['display']=='grid' ? '' : ' active')} %>
|
||||
</div>
|
||||
|
||||
<!-- Button group to show packages with screenshots or all packages -->
|
||||
<span class="navbar-text">Show:</span>
|
||||
<div class="navbar-nav btn-group">
|
||||
<%= link_to 'All packages', url_for(params.merge(:show=>'all')),
|
||||
{class: 'navbar-btn btn btn-default' + (params['show']=='onlywith' ? '' : ' active')} %>
|
||||
<%= link_to 'Only with screenshots', url_for(params.merge(:show=>'onlywith')),
|
||||
{class: 'navbar-btn btn btn-default' + (params['show']=='onlywith' ? ' active' : '')} %>
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
|
|
@ -27,13 +36,17 @@
|
|||
|
||||
<div class="container">
|
||||
<ul class="pager">
|
||||
<li class="previous"><%= link_to_previous_page @packages, raw('← Previous') %></li>
|
||||
<li class="previous"><%= link_to_previous_page @packages, raw('← Previous'), :params => params %></li>
|
||||
<li>Page #<%= params[:page] or 1 %></li>
|
||||
<li class="next"><%= link_to_next_page @packages, raw('Next →') %></li>
|
||||
<li class="next"><%= link_to_next_page @packages, raw('Next →'), :params => params %></li>
|
||||
</ul>
|
||||
<% if params[:display]=='grid' %>
|
||||
<%= render "packages_search_results_grid", object: @packages %>
|
||||
<%= render 'packages_search_results_grid', object: @packages %>
|
||||
<% else %>
|
||||
<%= render "packages_search_results_list", object: @packages %>
|
||||
<%= render 'packages_search_results_list', object: @packages %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<pre>
|
||||
<%= params %>
|
||||
</pre>
|
||||
|
|
|
|||
|
|
@ -2,20 +2,20 @@ Debshots::Application.routes.draw do
|
|||
#get "packages/index"
|
||||
#get "packages" => "packages#index"
|
||||
#get "packages/:page/:display" => "packages#index"
|
||||
#get "packages(/:page(/:display))" => "packages#index", defaults: { page: 1, display: 'grid' }
|
||||
get "packages/list" => "packages#index", display: 'list', as: :package_list
|
||||
get "packages" => "packages#index", display: 'grid', as: :package_grid
|
||||
get 'packages' => 'packages#index', defaults: { display: 'grid' }, as: :package_list
|
||||
#get "packages/list" => "packages#index", display: 'list', as: :package_list
|
||||
get 'packages' => 'packages#index', display: 'grid', as: :package_grid
|
||||
#get "packages(/:display)", to: "packages#index", defaults: { display: 'grid' }
|
||||
get "packages/with_screenshots"
|
||||
get "packages/without_screenshots"
|
||||
get "packages/moderate"
|
||||
get "welcome/index"
|
||||
get 'packages/with_screenshots'
|
||||
get 'packages/without_screenshots'
|
||||
get 'packages/moderate'
|
||||
get 'welcome/index'
|
||||
# The priority is based upon order of creation: first created -> highest priority.
|
||||
# See how all your routes lay out with "rake routes".
|
||||
|
||||
# You can have the root of your site routed with "root"
|
||||
# root 'welcome#index'
|
||||
root to: "packages#index"
|
||||
root to: 'packages#index'
|
||||
|
||||
# Example of regular route:
|
||||
# get 'products/:id' => 'catalog#view'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue