Commit 4a7b53ad by vulehuan

search product with solr

parent d6f6c521
...@@ -37,6 +37,18 @@ ...@@ -37,6 +37,18 @@
var requestUrl = $(this).attr('href') + '&quantity=' + quantity; var requestUrl = $(this).attr('href') + '&quantity=' + quantity;
window.location.href = requestUrl; window.location.href = requestUrl;
}); });
//
$('#btn-search').unbind('click').bind('click', function(e){
e.preventDefault();
var keyword = $('#txt-keyword').val();
var url = $(this).attr('href') + '?keyword=' + encodeURI(keyword);
window.location.href = url;
});
$('#txt-keyword').keydown(function (e){
if(e.keyCode == 13){
$('#btn-search').click();
}
})
}); });
})(jQuery); })(jQuery);
jQuery.noConflict(); jQuery.noConflict();
...@@ -465,3 +465,7 @@ footer { ...@@ -465,3 +465,7 @@ footer {
.btn-update-card-quantity { .btn-update-card-quantity {
margin-bottom: 3px; margin-bottom: 3px;
} }
.block-search-result {
padding-top: 10px;
}
...@@ -53,11 +53,14 @@ class ProductsController < ApplicationController ...@@ -53,11 +53,14 @@ class ProductsController < ApplicationController
if params[:keyword] == nil if params[:keyword] == nil
redirect_to products_path redirect_to products_path
end end
@products = Product.search do search = Product.search do
fulltext params[:keyword] do fulltext params[:keyword] do
boost_fields :name => 2.0 boost_fields :name => 2.0
end end
paginate :page => params[:page], :per_page => 8
end end
@products = search.results
@total = search.total
end end
private private
......
...@@ -59,9 +59,9 @@ ...@@ -59,9 +59,9 @@
<!-- search --> <!-- search -->
<div class="input-group block-search"> <div class="input-group block-search">
<input id="txt-keyword" type="text" class="form-control" <input id="txt-keyword" type="text" class="form-control"
placeholder="Enter keywords" value=""> <span placeholder="Enter keywords" value="<%= params['keyword'] %>"> <span
class="input-group-btn"> <a id="btn-search" class="input-group-btn"> <a id="btn-search"
class="btn btn-default" href="javascript:void(0)"><span class="btn btn-default" href="<%= url_for(controller: 'products', action: 'search') %>"><span
class="glyphicon glyphicon-search"></span>Search</a> class="glyphicon glyphicon-search"></span>Search</a>
</span> </span>
</div> </div>
...@@ -3,5 +3,11 @@ ...@@ -3,5 +3,11 @@
<h2 class="sprite-2"> <h2 class="sprite-2">
Search results<span class="sprite-2"></span> Search results<span class="sprite-2"></span>
</h2> </h2>
<div class="block-search-result">
<p>
Found <%= @total %> product(s) with <b><%= params[:keyword] %></b>
</p>
<%= render 'shared/grid', items: @products %> <%= render 'shared/grid', items: @products %>
</div> </div>
<%= will_paginate @products, renderer: BootstrapPagination::Rails %>
</div>
<% <%
if items == nil || items.empty? if items == nil || items.empty?
if params[:action] != 'search'
%> %>
<p>No products available.</p> <p>No products available.</p>
<% <%
end
else else
items.each_slice(4) do |row| items.each_slice(4) do |row|
%> %>
......
7100 23236
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment