From 1b97b384002fdff9e611a94e6469025f72f60b0f Mon Sep 17 00:00:00 2001 From: Mateus Rambo Strey <mars11@inf.ufpr.br> Date: Tue, 27 Oct 2015 11:51:44 -0200 Subject: [PATCH] in search, remove query and order from filter panel --- app/assets/javascripts/application/search.js | 89 ++++++++++++-------- app/views/search/index.html.erb | 2 - 2 files changed, 52 insertions(+), 39 deletions(-) diff --git a/app/assets/javascripts/application/search.js b/app/assets/javascripts/application/search.js index 669f8b594..ecb67de39 100644 --- a/app/assets/javascripts/application/search.js +++ b/app/assets/javascripts/application/search.js @@ -94,46 +94,39 @@ var search = function() { } function watchParams() { + var filter_panel = '.filter-panel'; $(watch).on('params', function (e, action, type, value) { // filter panel var text = type + ': ' + value; var object = {'type': type, 'value': value, 'text': text }; switch(action) { case 'add': + // params not included in filter panel + var ignored_params = ['query', 'order']; // remove previous element if type is a single value only - var single_params = ['query', 'order', 'year']; + var single_params = ['year']; var index = single_params.indexOf(type); if (index > -1) { $.each($('.filter-panel').tagsinput('items'), function (i, v) { if (v.type === single_params[index]) { - $('.filter-panel').tagsinput('remove', { 'type': type, 'value': v.value }, {'ignore': true}); + $(filter_panel).tagsinput('remove', { 'type': type, 'value': v.value }, {'ignore': true}); } }); } // add object - $('.filter-panel').tagsinput('add', object); + if (ignored_params.indexOf(type) === -1) { + $(filter_panel).tagsinput('add', object); + } break; case 'remove': // remove object - $('.filter-panel').tagsinput('remove', object); + $(filter_panel).tagsinput('remove', object); break; } // sidebar // set values from params switch(type) { - // search input - case 'query': - if ($('.search-input form input[name="query"]').val() !== params.get('query')) { - $('.search-input form input[name="query"]').val(params.get('query')); - } - break; - // order - case 'order': - if ($('select[name="order"]').val() !== params.get('order')) { - $('select[name="order"]').val(params.get('order')); - } - break; // subject case 'subject': // var subjects = params.get('subject'); @@ -166,9 +159,13 @@ var search = function() { break; } }); + $(watch).on('reset', function (e) { + $(filter_panel).tagsinput('removeAll'); + }); } function watchSearchInput() { + $('.search-input input').val(params.get('query')); $('.search-input form').on('submit', function (event) { event.preventDefault(); params.reset(); @@ -190,10 +187,15 @@ var search = function() { } function watchOrder() { - $('select[name="order"]').on('change', function (event) { + var select = 'select[name="order"]'; + $(select).on('change', function (event) { params.add('order', this.value); searchFetch(); }); + // reset + $(watch).on('reset', function (e) { + $(select).val(""); + }); } function watchFilters() { @@ -221,38 +223,45 @@ var search = function() { } filtersFetchInterval(); }); + // reset + $(watch).on('reset', function (e) { + $('#filter-year input[name=singleYear]').val(""); + $('#filter-year input[name=startYear]').val(""); + $('#filter-year input[name=endYear]').val(""); + }); } function watchFilterRegex() { - $('.regex-submit').on('click', function (event) { - event.preventDefault(); - $.each(['all','exact','any','none'], function(index, value){ - params.add('regex_' + value, $(".regex input[name="+value+"]").val()) - }); - filtersFetchInterval(); - }); + // $('.regex-submit').on('click', function (event) { + // event.preventDefault(); + // $.each(['all','exact','any','none'], function(index, value){ + // params.add('regex_' + value, $(".regex input[name="+value+"]").val()) + // }); + // filtersFetchInterval(); + // }); } function watchFilterSubject() { // watch for changes - $('.filter-subject').on('select2:select', function (e) { - params.add('subject', e.params.data.id); - - filtersFetchInterval(); - }); - $('.filter-subject').on('select2:unselect', function (e) { - params.remove('subject', e.params.data.id); - - filtersFetchInterval(); - }); + // $('.filter-subject').on('select2:select', function (e) { + // params.add('subject', e.params.data.id); + // + // filtersFetchInterval(); + // }); + // $('.filter-subject').on('select2:unselect', function (e) { + // params.remove('subject', e.params.data.id); + // + // filtersFetchInterval(); + // }); } function watchCheckbox(type, name, set) { + var input = 'input[name="' + name + '"]'; if (set === undefined) { set = false; } if (set) { var elements = params.get(type); if (elements !== undefined) { - $('input[name="' + name + '"]').each(function() { + $(input).each(function() { if (elements.indexOf(this.value) > -1) { $(this).attr('checked', true); } @@ -264,7 +273,7 @@ var search = function() { } else { // watch for changes - $('input[name="' + name + '"]').on('click', function () { + $(input).on('click', function () { if (this.checked) { params.add(type, this.value); } @@ -274,6 +283,12 @@ var search = function() { filtersFetchInterval(); }); + // reset + $(watch).on('reset', function (e) { + $(input).each(function () { + $(this).attr('checked', false); + }); + }); } } @@ -441,7 +456,7 @@ var searchParameters = function() { if (type === undefined) { // reset params params = JSON.parse(JSON.stringify(default_params)); - // $(watch).trigger("params", ['all']); + $(watch).trigger("reset"); } else { // reset params.type diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index 9682b66b9..74d412f5c 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -364,8 +364,6 @@ itemValue: 'value', tagClass: function(item) { switch (item.type) { - case 'query' : return 'label label-primary'; - case 'order' : return 'label label-danger label-important'; case 'subject': return 'label label-success'; case 'type' : return 'label label-default'; case 'school_year' : return 'label label-warning'; -- GitLab