From fa45a600572f497f60a6c68c531bef82ab0d29d9 Mon Sep 17 00:00:00 2001 From: SakshiParakh Date: Sat, 17 Oct 2015 18:50:05 +0530 Subject: [PATCH] Ref #90 Hide results unless searched --- examples/index.js | 3 ++- src/filter.js | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/examples/index.js b/examples/index.js index 96b03ad..e9d6bfe 100644 --- a/examples/index.js +++ b/examples/index.js @@ -9,7 +9,7 @@ $(document).ready(function(){ var FJS = FilterJS(movies, '#movies', { template: '#movie-template', - search: {ele: '#searchbox'}, + search: {ele: '#searchbox', display_all: true}, //search: {ele: '#searchbox', fields: ['runtime']}, // With specific fields callbacks: { afterFilter: function(result){ @@ -35,6 +35,7 @@ $(document).ready(function(){ } }); + FJS.setStreaming({ data_url: 'data/stream_movies.json', stream_after: 1, diff --git a/src/filter.js b/src/filter.js index c96fa29..9b8cde7 100644 --- a/src/filter.js +++ b/src/filter.js @@ -149,6 +149,10 @@ F.renderItem = function(record, i){ ele.attr('id', 'fjs_' + record._fid).addClass('fjs_item'); this.appendToContainer(ele, record); + + if(this.opts.search.display_all === false){ + $('.fjs_item').hide(); + } }; var appendToContainer = function(html_ele, record){ @@ -375,6 +379,10 @@ F.initSearch = function(opts){ this.opts.search.start_length = 2 } + if(opts.display_all == null){ + this.opts.search.display_all = true; + } + this.$search_ele = $(this.opts.search.ele); if(this.$search_ele.length){ @@ -427,12 +435,17 @@ F.searchFilter = function(records) { var result; this.search_text = $.trim(this.$search_ele.val()); - if (this.search_text.length < this.opts.search.start_length){ - return false; + if(this.opts.search.display_all === false){ + if(this.search_text.length < this.opts.search.start_length){ + result = []; + this.execCallback('afterEmptyResult'); + }else{ + result = this.search(this.search_text, records || this.lastResult()); + } + }else{ + result = this.search(this.search_text, records || this.lastResult()); } - result = this.search(this.search_text, records || this.lastResult()); - this.search_result = result; this.show(result); this.renderPagination(result.length)