diff --git a/layouts/v7/modules/Reports/ListViewContents.tpl b/layouts/v7/modules/Reports/ListViewContents.tpl
index 40718d5d7ddac995353c8bbf9598d1f79c8af3b7..54c098541333e9d492e54cb293880ae75f0133ce 100644
--- a/layouts/v7/modules/Reports/ListViewContents.tpl
+++ b/layouts/v7/modules/Reports/ListViewContents.tpl
@@ -73,12 +73,16 @@
 						</tr>
 
 						{if $MODULE_MODEL->isQuickSearchEnabled() && !$SEARCH_MODE_RESULTS}
-							<tr class="searchRow">
-								<th class="inline-search-btn">
-									<div class="table-actions">
-										<button class="btn btn-success btn-sm" data-trigger="listSearch">{vtranslate("LBL_SEARCH",$MODULE)}</button>
-									</div>
-								</th>
+							<tr class="searchRow listViewSearchContainer">
+                                                            <th class="inline-search-btn">
+                                                                <div class="table-actions">
+                                                                    <button class="btn-sm btn btn-success {if count($SEARCH_DETAILS) gt 0}hide{/if}" data-trigger="listSearch">
+                                                                        <i class="fa fa-search"></i>&nbsp;
+                                                                        <span class="s2-btn-text">{vtranslate("LBL_SEARCH",$MODULE)}</span>
+                                                                    </button>
+                                                                    <button class="searchAndClearButton btn-sm  btn btn-danger {if count($SEARCH_DETAILS) eq 0}hide{/if}" data-trigger="clearListSearch"><i class="fa fa-close"></i>&nbsp;{vtranslate("LBL_CLEAR",$MODULE)}</button>
+                                                                </div>
+                                                            </th>
 								{foreach item=LISTVIEW_HEADER key=LISTVIEW_HEADER_KEY from=$LISTVIEW_HEADERS}
 									<th>
 										{assign var="DATA_TYPE" value=$LISTVIEW_HEADER['type']}
diff --git a/layouts/v7/modules/Users/ListViewContents.tpl b/layouts/v7/modules/Users/ListViewContents.tpl
index 51a563f18f202041f310b9212dc6f615db04f231..6a1e33cd4873aebbaa21daf5195405a43326eda0 100644
--- a/layouts/v7/modules/Users/ListViewContents.tpl
+++ b/layouts/v7/modules/Users/ListViewContents.tpl
@@ -63,12 +63,20 @@
 				</thead>
 				<tbody class="overflow-y">
 					{if $MODULE_MODEL->isQuickSearchEnabled() && !$SEARCH_MODE_RESULTS}
-						<tr class="searchRow">
-							<th class="inline-search-btn">
-								<div class="table-actions">
-									<button class="btn btn-success btn-sm" data-trigger="listSearch">{vtranslate("LBL_SEARCH",$MODULE)}</button>
-								</div>
-							</th>
+						<tr class="searchRow listViewSearchContainer">
+                                                    <th class="user-inline-search-btn">
+                                                        <div class="table-actions">
+                                                                {assign var=HIDE_CLEAR_SEARCH value=false}
+                                                                {if count($SEARCH_DETAILS) eq 0 || (is_array($SEARCH_DETAILS[0]) && count($SEARCH_DETAILS[0]) eq 0 && count($SEARCH_DETAILS) eq 1)}
+                                                                        {assign var=HIDE_CLEAR_SEARCH value=true}
+                                                                {/if}
+                                                                <button class="btn btn-sm btn-success {if !$HIDE_CLEAR_SEARCH}hide{/if}" data-trigger="listSearch">
+                                                                    <i class="fa fa-search"></i> &nbsp;
+                                                                    <span class="s2-btn-text">{vtranslate("LBL_SEARCH",$MODULE)}</span>
+                                                                </button>
+                                                                <button class="searchAndClearButton btn btn-danger btn-sm {if $HIDE_CLEAR_SEARCH}hide{/if}" data-trigger="clearListSearch"><i class="fa fa-close"></i>&nbsp;{vtranslate("LBL_CLEAR",$MODULE)}</button>
+                                                        </div>
+                                                    </th>
 							{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
 								{if $LISTVIEW_HEADER->getName() eq 'last_name' or $LISTVIEW_HEADER->getName() eq 'email1' or $LISTVIEW_HEADER->getName() eq 'status'}
 									{continue}
diff --git a/layouts/v7/modules/Vtiger/ListViewContents.tpl b/layouts/v7/modules/Vtiger/ListViewContents.tpl
index f2df599ab72fac2f7a585196fb0aaefedfc24261..fd813e26f3055c384b7b1b6d8bb8fba53f1d7ca8 100644
--- a/layouts/v7/modules/Vtiger/ListViewContents.tpl
+++ b/layouts/v7/modules/Vtiger/ListViewContents.tpl
@@ -114,13 +114,17 @@
 				</tr>
 
 				{if $MODULE_MODEL->isQuickSearchEnabled() && !$SEARCH_MODE_RESULTS}
-					<tr class="searchRow">
-						<th class="inline-search-btn">
-					<div class="table-actions">
-						<button class="btn btn-success btn-sm" data-trigger="listSearch">{vtranslate("LBL_SEARCH",$MODULE)}</button>
-					</div>
-					</th>
-					{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
+                                    <tr class="searchRow listViewSearchContainer">
+                                        <th class="inline-search-btn">
+                                            <div class="table-actions">
+                                                <button class="btn btn-success btn-sm {if count($SEARCH_DETAILS) gt 0}hide{/if}" data-trigger="listSearch">
+                                                    <i class="fa fa-search"></i> &nbsp;
+                                                    <span class="s2-btn-text">{vtranslate("LBL_SEARCH",$MODULE)}</span>
+                                                </button>
+                                                <button class="searchAndClearButton t-btn-sm btn btn-danger {if count($SEARCH_DETAILS) eq 0}hide{/if}" data-trigger="clearListSearch"><i class="fa fa-close"></i>&nbsp;{vtranslate("LBL_CLEAR",$MODULE)}</button>
+                                            </div>
+                                        </th>
+                                    {foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
 						<th>
 							{assign var=FIELD_UI_TYPE_MODEL value=$LISTVIEW_HEADER->getUITypeModel()}
 							{include file=vtemplate_path($FIELD_UI_TYPE_MODEL->getListSearchTemplateName(),$MODULE) FIELD_MODEL= $LISTVIEW_HEADER SEARCH_INFO=$SEARCH_DETAILS[$LISTVIEW_HEADER->getName()] USER_MODEL=$CURRENT_USER_MODEL}
diff --git a/layouts/v7/modules/Vtiger/resources/List.js b/layouts/v7/modules/Vtiger/resources/List.js
index 4f8c8b5c77849395c8e47f199cc228b2f7c681bf..d6928a66c82539b8238c5b05b74786257f3991d0 100644
--- a/layouts/v7/modules/Vtiger/resources/List.js
+++ b/layouts/v7/modules/Vtiger/resources/List.js
@@ -1258,48 +1258,104 @@ Vtiger.Class("Vtiger_List_Js", {
 			});
 		});
 	},
-	/**
-	 * Function to register the list view row search event
-	 */
-	registerListViewSearch: function () {
-		var listViewPageDiv = this.getListViewContainer();
-		var thisInstance = this;
-		listViewPageDiv.on('click', '[data-trigger="listSearch"]', function (e) {
-			e.preventDefault();
-			var params = {
-				'page': '1'
-			}
-			thisInstance.loadListViewRecords(params).then(
-				function (data) {
-					//To unmark the all the selected ids
-					jQuery('#deSelectAllMsgDiv').trigger('click');
-				},
-				function (textStatus, errorThrown) {
+	prevSearchValues : [],
+
+    /**
+     * Function to register the list view row search event
+     */        
+    registerListViewSearch : function() {
+        var listViewPageDiv = this.getListViewContainer();
+        var thisInstance = this;
+        listViewPageDiv.on('click','[data-trigger="listSearch"]',function(e){
+            e.preventDefault();
+            var params = {
+                'page': '1'
+            }
+            var searchButton = jQuery(this);
+            searchButton.addClass('hide');
+            listViewPageDiv.find('[data-trigger="clearListSearch"]').removeClass('hide');
+            
+            thisInstance.loadListViewRecords(params).then(
+                function(data){
+                    //To unmark the all the selected ids
+                    jQuery('#deSelectAllMsgDiv').trigger('click');
+                },
+
+                function(textStatus, errorThrown){
+                }
+            );
+        });
+        
+        var clearSearchContributor = function(contributor) {
+            if(contributor.is('input')) {
+                contributor.val('');
+            } else if(contributor.is('select')) {
+                contributor.select2("val", "");
+                contributor.val('');
+            } else {
+                console.log("contributor clearing now handled : ", contributor);
+            }
+        };
+        
+        //register clear search event
+        listViewPageDiv.on('click', '[data-trigger="clearListSearch"]', function(e) {
+            e.preventDefault();
+            listViewPageDiv.find('.listSearchContributor:not(".select2-container")').each(function(i, contributor) {
+                contributor = jQuery(contributor);
+                clearSearchContributor(contributor);
+            });
+            var clearButton = jQuery(this);
+            clearButton.addClass('hide');
+            thisInstance.prevSearchValues = [];
+            jQuery('#currentSearchParams').val('');
+            listViewPageDiv.find('[data-trigger="listSearch"]').removeClass('hide').trigger('click');
+        });
+        
+        
+        //floatThead change event object has undefined keyCode, using keyup instead
+        var listSearchContributorChangeHandler = function(e){
+            var element = jQuery(e.currentTarget);
+            var fieldName = element.attr('name');
+            var searchValue = element.val();
+			if(element.hasClass('select2')){
+				var currentElementContainer = element.closest('.select2_search_div').find('div.listSearchContributor').find('ul');
+				var desireHeight = 150;
+				if(currentElementContainer.height() > desireHeight){
+					currentElementContainer.css({'cssText':'height:'+desireHeight+'px !important;'+'padding:0'});
+				}else if(currentElementContainer.find('.mCSB_container').height() < desireHeight){
+					currentElementContainer.removeAttr('style');
 				}
-			);
-		});
-
-		//floatThead change event object has undefined keyCode, using keyup instead
-		var prevSearchValues = [];
-		listViewPageDiv.on('keyup', '.listSearchContributor', function (e) {
-			var element = jQuery(e.currentTarget);
-			var fieldName = element.attr('name');
-			var searchValue = element.val();
-			if (e.keyCode == 13 && prevSearchValues[fieldName] !== searchValue) {
-				e.preventDefault();
-				var element = jQuery(e.currentTarget);
-				var parentElement = element.closest('tr');
-				var searchTriggerElement = parentElement.find('[data-trigger="listSearch"]');
-				searchTriggerElement.trigger('click');
-				prevSearchValues[fieldName] = searchValue;
-			}
-		});
-
-		listViewPageDiv.on('datepicker-change', '.dateField', function (e) {
-			var element = jQuery(e.currentTarget);
-			element.trigger('change');
-		});
-	},
+				currentElementContainer.mCustomScrollbar("update");
+			}
+			
+            if(e.keyCode == 13 && thisInstance.prevSearchValues[fieldName] !== searchValue && !element.hasClass('select2')){
+                e.preventDefault();
+                var element = jQuery(e.currentTarget);
+                var parentElement = element.closest('tr');
+                var searchTriggerElement = parentElement.find('[data-trigger="listSearch"]');
+                searchTriggerElement.trigger('click');
+                thisInstance.prevSearchValues[fieldName] = searchValue;
+            }
+            if(e.keyCode !== 13) {
+                listViewPageDiv.find('[data-trigger="clearListSearch"]').addClass('hide');
+                setTimeout(function(){
+                    listViewPageDiv.find('[data-trigger="listSearch"]').removeClass('hide');
+                }, 10);
+            }
+        };
+		listViewPageDiv.find('.searchRow div.listSearchContributor.select2').each(function(i,elem){
+           var currentSearchInput = jQuery(elem);
+			app.helper.showVerticalScroll(currentSearchInput.find('ul'),{'height': 150});
+        });
+        listViewPageDiv.on('keyup','.listSearchContributor', listSearchContributorChangeHandler);
+        listViewPageDiv.on('change','select', listSearchContributorChangeHandler);
+        listViewPageDiv.on('datepicker-change', '.dateField', function(e){
+            var element = jQuery(e.currentTarget);
+            element.trigger('change');
+            listSearchContributorChangeHandler(e);
+        });
+    },
+    
 	saveMassedit: function (event, form_original_data, isOwnerChanged) {
 		event.preventDefault();
 		var form = $('#massEdit');
diff --git a/pkg/vtiger/modules/RecycleBin/layouts/v7/modules/RecycleBin/ListViewContents.tpl b/pkg/vtiger/modules/RecycleBin/layouts/v7/modules/RecycleBin/ListViewContents.tpl
index 9c53f01be7f0f7d0daa1c4ecf5b59bd26cf8a264..817a191c94bcf0bddc88fa0253790bb3c973f901 100644
--- a/pkg/vtiger/modules/RecycleBin/layouts/v7/modules/RecycleBin/ListViewContents.tpl
+++ b/pkg/vtiger/modules/RecycleBin/layouts/v7/modules/RecycleBin/ListViewContents.tpl
@@ -65,11 +65,15 @@
                     </tr>
 
                     {if $MODULE_MODEL->isQuickSearchEnabled() && !$SEARCH_MODE_RESULTS}
-                        <tr class="searchRow">
+                        <tr class="searchRow listViewSearchContainer">
                             <th class="inline-search-btn">
-                        <div class="table-actions">
-                            <button class="btn btn-success btn-sm" data-trigger="listSearch">{vtranslate("LBL_SEARCH",$MODULE)}</button>
-                        </div>
+                                <div class="table-actions">
+                                    <button class="btn btn-sm btn-success {if count($SEARCH_DETAILS) gt 0}hide{/if}" data-trigger="listSearch">
+                                        <i class="fa fa-search"></i>&nbsp;
+                                        <span class="s2-btn-text">{vtranslate("LBL_SEARCH",$MODULE)}</span>
+                                    </button>
+                                    <button class="searchAndClearButton btn btn-sm btn-danger {if count($SEARCH_DETAILS) eq 0}hide{/if}" data-trigger="clearListSearch"><i class="fa fa-close"></i>&nbsp;{vtranslate("LBL_CLEAR",$MODULE)}</button>
+                                </div>
                         </th>
                         {foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
                             <th>