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)
|
||||
|
||||
if params[:search]
|
||||
@packages = @packages.text_search(params[:search])
|
||||
@packages = @packages.text_search(params[:search][:query])
|
||||
end
|
||||
|
||||
if params[:with_screenshots]=='yes'
|
||||
# Limit the packages to those that have approved screenshots.
|
||||
# Also eager-load the screenshots.
|
||||
@packages = @packages.where("screenshots.approved"=>true)
|
||||
end
|
||||
#if params[:with_screenshots]=='yes'
|
||||
# # Limit the packages to those that have approved screenshots.
|
||||
# # Also eager-load the screenshots.
|
||||
# @packages = @packages.where("screenshots.approved"=>true)
|
||||
#end
|
||||
|
||||
@packages = @packages.page(params[:page]).per(12)
|
||||
|
||||
if params[:search][:display]=='list'
|
||||
@view='list'
|
||||
else
|
||||
@view='grid'
|
||||
end
|
||||
end
|
||||
|
||||
def with_screenshots
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<% # Show search results %>
|
||||
<% # Show search results - grid style %>
|
||||
|
||||
<% if @packages.length>0 %>
|
||||
<% @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 %>
|
||||
<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>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
|
||||
<div class="btn-group" data-toggle="buttons">
|
||||
<%= label('search', 'display', class: 'btn btn-default') do %>
|
||||
<!-- Button group for grid/list view -->
|
||||
<div class="btn-group" data-toggle="buttons">
|
||||
<span class="btn btn-default <%= @view=='grid' ? 'active' : '' %>">
|
||||
<%= radio_button('search', 'display', 'grid') %>
|
||||
<span class="glyphicon glyphicon-th">
|
||||
<% end %>
|
||||
<%= label('search', 'display', class: 'btn btn-default') do %>
|
||||
<span class="glyphicon glyphicon-th"></span>
|
||||
</span>
|
||||
<span class="btn btn-default <%= @view=='list' ? 'active' : '' %>">
|
||||
<%= radio_button('search', 'display', 'list') %>
|
||||
<span class="glyphicon glyphicon-th-list">
|
||||
<% end %>
|
||||
<label class="btn btn-default active">
|
||||
<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>
|
||||
<span class="glyphicon glyphicon-th"></span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
<% end %> <!-- /form -->
|
||||
|
||||
<div class="navbar-nav">
|
||||
<%= paginate @packages, :window => 2 %>
|
||||
|
|
@ -57,5 +52,9 @@
|
|||
</nav>
|
||||
|
||||
<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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue