From c004cac9fa332512ec2dc30550b4bce3bb4bd810 Mon Sep 17 00:00:00 2001 From: Giovanne Marcelo <gms15@inf.ufpr.br> Date: Fri, 11 Mar 2016 23:05:48 -0300 Subject: [PATCH] Fixing group size in search --- app/assets/javascripts/application/search.js | 39 ++++++++++++++++++++ app/controllers/search_controller.rb | 6 +++ app/views/shared/application/_search.erb | 4 +- config/routes.rb | 1 + 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/application/search.js b/app/assets/javascripts/application/search.js index f99cd6b2..4046990f 100644 --- a/app/assets/javascripts/application/search.js +++ b/app/assets/javascripts/application/search.js @@ -468,3 +468,42 @@ var runDropdown = function(element) { $(element).next().data('dropdown', 'closed'); } }; + + +var getElementsNumber = function(className) { + + $.ajax({ + url: '/search/get_class_size', + data: { class: className }, + dataType: "json", + success: function(data) { + switch(className) { + case 'LearningObject': + $('.search-input input').attr('placeholder', "Buscar em " + data.number + " conteúdos"); + break; + case 'Collection': + $('.search-input input').attr('placeholder', "Buscar em " + data.number + " coleções"); + break; + case 'User': + $('.search-input input').attr('placeholder', "Buscar em " + data.number + " usuários"); + break; + default: + $('.search-input input').attr('placeholder', "Buscar conteúdo"); + } + }, + error: function() { + $('.search-input input').attr('placeholder', "Buscar conteúdo"); + } + }); +}; + + +$(document).ready (function(){ + + getElementsNumber('LearningObject'); + + $('.search-input select').change( function(){ + getElementsNumber( $(this).val()); + }) + +}); diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 98ffbd56..dc7d2368 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -51,6 +51,11 @@ class SearchController < ApplicationController render json: autocomplete_search(Object.const_get(params[:search_class]), params_hash, get_thumbnail) end + def get_class_size + className = params[:class] + render json: { number: Object.const_get(className).count } + end + private def autocomplete_search(search_class, params_hash={}, get_thumbnail) @@ -126,6 +131,7 @@ class SearchController < ApplicationController end end + private def validate_object diff --git a/app/views/shared/application/_search.erb b/app/views/shared/application/_search.erb index 42612350..98bd06af 100644 --- a/app/views/shared/application/_search.erb +++ b/app/views/shared/application/_search.erb @@ -1,7 +1,7 @@ <div class="search-input"> <form action="/search" method="get"> <div class="input-group" id="search"> - <input type="text" placeholder="buscar em <%= number_with_delimiter(LearningObject.count, delimiter: ".") %> conteúdos" class="form-control" name="query" id="main_search"> + <input type="text" placeholder="" class="form-control" name="query" id="main_search"> <select name="search_class" id="search_class" class="form-control"> <option value="LearningObject" selected>Conteúdos Educacionais</option> <option value="Collection">Coleções</option> @@ -13,4 +13,4 @@ </div> </form> <input type="hidden" id="search_class" value=""/> -</div> \ No newline at end of file +</div> diff --git a/config/routes.rb b/config/routes.rb index dc72339b..47da59df 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -130,6 +130,7 @@ Rails.application.routes.draw do get '/search' => 'search#index', as: 'search' get '/search/fetch' => 'search#fetch', as: 'search_fetch' get '/autocomplete' => 'search#autocomplete' + get '/search/get_class_size' => 'search#get_class_size', as: :get_class_size get '/subject/:id' => 'welcome#subject', as: 'subject_index' get '/add_file' => 'welcome#add_file' -- GitLab