Better use of Rails' tag helpers. Added list view.
This commit is contained in:
parent
869b87bc7b
commit
e3e1871a8f
4 changed files with 63 additions and 24 deletions
|
|
@ -3,16 +3,22 @@ class PackagesController < ApplicationController
|
||||||
@packages = Package.includes(:screenshots)
|
@packages = Package.includes(:screenshots)
|
||||||
|
|
||||||
if params[:search]
|
if params[:search]
|
||||||
@packages = @packages.text_search(params[:search])
|
@packages = @packages.text_search(params[:search][:query])
|
||||||
end
|
end
|
||||||
|
|
||||||
if params[:with_screenshots]=='yes'
|
#if params[:with_screenshots]=='yes'
|
||||||
# Limit the packages to those that have approved screenshots.
|
# # Limit the packages to those that have approved screenshots.
|
||||||
# Also eager-load the screenshots.
|
# # Also eager-load the screenshots.
|
||||||
@packages = @packages.where("screenshots.approved"=>true)
|
# @packages = @packages.where("screenshots.approved"=>true)
|
||||||
end
|
#end
|
||||||
|
|
||||||
@packages = @packages.page(params[:page]).per(12)
|
@packages = @packages.page(params[:page]).per(12)
|
||||||
|
|
||||||
|
if params[:search][:display]=='list'
|
||||||
|
@view='list'
|
||||||
|
else
|
||||||
|
@view='grid'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def with_screenshots
|
def with_screenshots
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<% # Show search results %>
|
<% # Show search results - grid style %>
|
||||||
|
|
||||||
<% if @packages.length>0 %>
|
<% if @packages.length>0 %>
|
||||||
<% @packages.each do |package| %>
|
<% @packages.each do |package| %>
|
||||||
34
app/views/packages/_packages_search_results_list.html.erb
Normal file
34
app/views/packages/_packages_search_results_list.html.erb
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<% # Show search results - list style %>
|
||||||
|
|
||||||
|
<% if @packages.length>0 %>
|
||||||
|
<% @packages.each do |package| %>
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
<% if package.screenshots.length>0 %>
|
||||||
|
<% screenshot = package.screenshots.first %>
|
||||||
|
<div style="text-align: center; height: 120px">
|
||||||
|
<%= link_to image_tag(screenshot.image_url('small')),
|
||||||
|
screenshot.image_url('large'),
|
||||||
|
:class => 'fancybox thumbnail',
|
||||||
|
:title => (
|
||||||
|
"#{package.description}" +
|
||||||
|
(screenshot.description.blank? ? '' : " (#{screenshot.description})")
|
||||||
|
)
|
||||||
|
%>
|
||||||
|
</div>
|
||||||
|
<% else %>
|
||||||
|
<div style="text-align: center; height: 120px">
|
||||||
|
<%= link_to image_tag("/thumbnail-404.png"), "/path/to/upload/package" %>
|
||||||
|
</div>
|
||||||
|
<h3><%= package.name %></h3>
|
||||||
|
<p><%= package.description %></p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-9">
|
||||||
|
descr
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
|
@ -23,28 +23,23 @@
|
||||||
-->
|
-->
|
||||||
<%= 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">
|
<div class="form-group">
|
||||||
<input type="text" name="search" class="form-control" placeholder="Search..." value="<%= params[:search] %>">
|
<%= search_field_tag('search[query]', nil, placeholder:'Search...', size:30, maxlength:200, class:'form-control') %>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-default">Submit</button>
|
<button type="submit" class="btn btn-default">Submit</button>
|
||||||
|
|
||||||
<div class="btn-group" data-toggle="buttons">
|
<!-- Button group for grid/list view -->
|
||||||
<%= label('search', 'display', class: 'btn btn-default') do %>
|
<div class="btn-group" data-toggle="buttons">
|
||||||
|
<span class="btn btn-default <%= @view=='grid' ? 'active' : '' %>">
|
||||||
<%= radio_button('search', 'display', 'grid') %>
|
<%= radio_button('search', 'display', 'grid') %>
|
||||||
<span class="glyphicon glyphicon-th">
|
<span class="glyphicon glyphicon-th"></span>
|
||||||
<% end %>
|
</span>
|
||||||
<%= label('search', 'display', class: 'btn btn-default') do %>
|
<span class="btn btn-default <%= @view=='list' ? 'active' : '' %>">
|
||||||
<%= radio_button('search', 'display', 'list') %>
|
<%= radio_button('search', 'display', 'list') %>
|
||||||
<span class="glyphicon glyphicon-th-list">
|
<span class="glyphicon glyphicon-th"></span>
|
||||||
<% end %>
|
</span>
|
||||||
<label class="btn btn-default active">
|
</div>
|
||||||
<input type="radio" name="display" value="grid"><span class="glyphicon glyphicon-th"></span>
|
|
||||||
</label>
|
|
||||||
<label class="btn btn-default">
|
|
||||||
<input type="radio" name="display" value="list"><span class="glyphicon glyphicon-th-list"></span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% end %>
|
<% end %> <!-- /form -->
|
||||||
|
|
||||||
<div class="navbar-nav">
|
<div class="navbar-nav">
|
||||||
<%= paginate @packages, :window => 2 %>
|
<%= paginate @packages, :window => 2 %>
|
||||||
|
|
@ -57,5 +52,9 @@
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="container container-main">
|
<div class="container container-main">
|
||||||
<%= render "packages_search_results", object: @packages %>
|
<% if @view=='grid' %>
|
||||||
|
<%= render "packages_search_results_grid", object: @packages %>
|
||||||
|
<% else %>
|
||||||
|
<%= render "packages_search_results_list", object: @packages %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue