Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/cache-interceptor.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/cache-interceptor.service.ts	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/cache-interceptor.service.ts	(revision 59163)
@@ -8,7 +8,10 @@
 })
 export class CacheInterceptorService implements HttpInterceptor {
   cachingRequests = [
+    // Remove 2 following lines when bug with hidden refine filters is solved.
     "/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=relfunder&fields=relfundinglevel0_id&fields=relproject&fields=instancetypename&fields=resultlanguagename&fields=community&fields=resulthostingdatasource&&fq=resultbestaccessright exact \"Open Access\"&type=results&page=0&size=0",
+    "/resources2/?format=json&refine=true&fields=funder&fields=fundinglevel0_id&fields=projectstartyear&fields=projectendyear&fields=projectecsc39&&type=projects&page=0&size=0",
+
     "/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=relfunder&fields=instancetypename&fields=resultlanguagename&fields=community&fields=resulthostingdatasource&&type=results&page=0&size=0",
     "/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=relfunder&fields=relfundinglevel0_id&fields=relproject&fields=instancetypename&fields=resultlanguagename&fields=community&fields=resulthostingdatasource&&fq=resultbestaccessright%20exact%20%22Open%20Access%22&fq=relfunder%20exact%20%22ec__________%3A%3AEC%7C%7CEuropean%20Commission%7C%7CEC%22&type=results&page=0&size=0",
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchDataProviders.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchDataProviders.component.ts	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchDataProviders.component.ts	(revision 59163)
@@ -120,46 +120,39 @@
        this.oldTotalResults = this.searchUtils.totalResults;
      }
      var refine = true;
-     if (
-       (this.searchUtils.page != ((params['page'] === undefined) ? 1 : +params['page'])
-         && (this.searchUtils.page == 1 || params['page']))
-       && this.filters && !firstLoad
-     ) {
-       refine = false;
-     }
-      if (
-        (
-          this.searchUtils.size != ((params['size'] === undefined) ? 10 : +params['size'])
-          && (this.searchUtils.size == 10 || params['size'])
-        )
-        && this.filters && !firstLoad) {
+      if (params['page'] != undefined && this.filters && !firstLoad && this.searchUtils.page != +params['page']) {
         refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
-    let page = (params['page']=== undefined)?0:+params['page'];
-    this.searchUtils.page = ( page < 1 ) ? 1 : page;
+      if (params['size'] != undefined && this.filters && !firstLoad && this.searchUtils.size != params['size']) {
+        refine = false;
+      }
 
-    this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
-    if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
-      this.searchUtils.size = 10;
-    }
+      let page = (params['page']=== undefined)?0:+params['page'];
+      this.searchUtils.page = ( page < 1 ) ? 1 : page;
 
-    this.searchPage.fieldIds = this.fieldIds;
-    this.selectedFields =[];
-    if(this.type == "deposit"){
-      this.searchPage.keywordFields = this.searchFields.DEPOSIT_DATASOURCE_KEYWORD_FIELDS;
-      this.searchPage.usedBy = "deposit";
-    }
-    // console.log(this.refineFields)
-    this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap,this.customFilter,params, "dataprovider");
-    if(refine && (this.type == "all" || this.type == "deposit")) {
-      this._getFilters(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(), this.searchUtils.page, 0, true, this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
-    } else if(refine) { // static filters
-      this.searchUtils.refineStatus = this.errorCodes.LOADING;
-    }
-    this.getResults(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(),  this.searchUtils.page, this.searchUtils.size, refine, this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
-    firstLoad = false;
+      this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
+      if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
+        this.searchUtils.size = 10;
+      }
+
+      this.searchPage.fieldIds = this.fieldIds;
+      this.selectedFields =[];
+      if(this.type == "deposit"){
+        this.searchPage.keywordFields = this.searchFields.DEPOSIT_DATASOURCE_KEYWORD_FIELDS;
+        this.searchPage.usedBy = "deposit";
+      }
+      // console.log(this.refineFields)
+      this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap,this.customFilter,params, "dataprovider");
+      if(refine && (this.type == "all" || this.type == "deposit")) {
+        this._getFilters(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(), this.searchUtils.page, 0, true, this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
+      } else if(refine) { // static filters
+        this.searchUtils.refineStatus = this.errorCodes.LOADING;
+      } else {
+        this.searchUtils.refineStatus = this.errorCodes.DONE;
+      }
+      this.getResults(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(),  this.searchUtils.page, this.searchUtils.size, refine, this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
+      firstLoad = false;
     }));
   }
   ngOnDestroy() {
@@ -244,7 +237,10 @@
              this.filters = this.searchPage.prepareFiltersToShow(this.filters, this.searchUtils.totalResults);
              this.searchUtils.refineStatus = this.errorCodes.DONE;
            }
-            // this.searchPage.updateBaseUrlWithParameters();
+
+          this.searchPage.hideFilters = false;
+
+          // this.searchPage.updateBaseUrlWithParameters();
             //var errorCodes:ErrorCodes = new ErrorCodes();
             this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
@@ -287,7 +283,7 @@
               //this.searchPage.closeLoading();
               this.disableForms = false;
             this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils});
-
+            this.searchPage.hideFilters = false;
           }
         ));
       }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchOrganizations.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchOrganizations.component.ts	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchOrganizations.component.ts	(revision 59163)
@@ -110,23 +110,12 @@
         this.oldTotalResults = this.searchUtils.totalResults;
       }
       var refine = true;
-      if (
-        (
-          this.searchUtils.page != ((params['page'] === undefined) ? 1 : +params['page'])
-          && (this.searchUtils.page == 1 || params['page'])
-        )
-        && this.filters && !firstLoad) {
+      if (params['page'] != undefined && this.filters && !firstLoad && this.searchUtils.page != +params['page']) {
         refine = false;
       }
 
-      if (
-        (
-          this.searchUtils.size != ((params['size'] === undefined) ? 10 : +params['size'])
-          && (this.searchUtils.size == 10 || params['size'])
-        )
-        && this.filters && !firstLoad) {
+      if (params['size'] != undefined && this.filters && !firstLoad && this.searchUtils.size != params['size']) {
         refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
       let page = (params['page']=== undefined)?1:+params['page'];
@@ -146,6 +135,8 @@
       this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap,this.customFilter,params, "organization");
       if(refine) {
         this._getFilters(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(),  this.searchUtils.page, 0, true, this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
+      } else {
+        this.searchUtils.refineStatus = this.errorCodes.DONE;
       }
       this.getResults(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(),  this.searchUtils.page, this.searchUtils.size, refine, this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
       firstLoad = false;
@@ -223,7 +214,10 @@
           if(!refine) {
             this.searchPage.buildPageURLParameters(this.filters, [],false);
           }
-            // this.searchPage.updateBaseUrlWithParameters();
+
+          this.searchPage.hideFilters = false;
+
+          // this.searchPage.updateBaseUrlWithParameters();
             //var errorCodes:ErrorCodes = new ErrorCodes();
             this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
@@ -267,7 +261,7 @@
             //this.searchPage.closeLoading();
             this.disableForms = false;
           this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils});
-
+          this.searchPage.hideFilters = false;
         }
       ));
     }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchProjects.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchProjects.component.ts	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchProjects.component.ts	(revision 59163)
@@ -113,40 +113,14 @@
         this.oldTotalResults = this.searchUtils.totalResults;
       }
       var refine = true;
-      if (
-        (
-          this.searchUtils.page != ((params['page'] === undefined) ? 1 : +params['page'])
-          && (this.searchUtils.page == 1 || params['page'])
-        )
-        && this.filters && !firstLoad
-      ) {
+      if (params['page'] != undefined && this.filters && !firstLoad && this.searchUtils.page != +params['page']) {
         refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
-      if (
-        (
-          this.searchUtils.sortBy != ((params['sortBy'] === undefined) ? "" : params['sortBy'])
-          && (this.searchUtils.sortBy == "" || params['sortBy'])
-        )
-        && this.filters && !firstLoad
-      ) {
+      if (params['size'] != undefined && this.filters && !firstLoad && this.searchUtils.size != params['size']) {
         refine = false;
-
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
-      if (
-        (
-          this.searchUtils.size != ((params['size'] === undefined) ? 10 : +params['size'])
-          && (this.searchUtils.size == 10 || params['size'])
-        )
-        && this.filters && !firstLoad
-      ) {
-        refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
-      }
-
       let page = (params['page']=== undefined)?1:+params['page'];
       this.searchUtils.page = ( page <= 0 ) ? 1 : page;
 
@@ -160,6 +134,8 @@
       this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, this.rangeFields, this.fieldIdsMap,this.customFilter,params, "project");
       if(refine) {
         this._getFilters(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(), this.searchUtils.page, 0, "", true, this.searchPage.getSearchAPIQueryForRangeFields(params)+this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
+      } else {
+        this.searchUtils.refineStatus = this.errorCodes.DONE;
       }
       this.getResults(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(),  this.searchUtils.page, this.searchUtils.size, refine, this.searchPage.getSearchAPIQueryForRangeFields(params)+this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
       firstLoad = false;
@@ -242,6 +218,8 @@
                 this.searchPage.buildPageURLParameters(this.filters, this.rangeFilters, false);
               }
 
+            this.searchPage.hideFilters = false;
+
             //var errorCodes:ErrorCodes = new ErrorCodes();
               this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
@@ -285,7 +263,7 @@
               //this.searchPage.closeLoading();
               this.disableForms = false;
             this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils})
-
+            this.searchPage.hideFilters = false;
           }
       ));
     }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchFilter.component.html
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchFilter.component.html	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchFilter.component.html	(revision 59163)
@@ -9,47 +9,10 @@
     <div  aria-expanded="false">
       <div>
         <ng-container>
-<!--          <div *ngFor = "let value of getSelectedValues(filter,'num')"  class="uk-animation-fade filterItem searchFilterItem uk-text-small">-->
-<!--                <div title = "{{value.name}}">-->
-<!--                  <ng-container *ngIf="filter.filterType == 'checkbox' || filter.filterType == 'radio'">-->
-<!--                    <input *ngIf="filter.filterType == 'checkbox'" [(ngModel)]="value.selected" type="checkbox" (ngModelChange)="filterChange(value.selected)" />-->
-<!--                    <input *ngIf="filter.filterType == 'radio'" type="radio" (click)="uniqueFilterChange(value)"-->
-<!--                           [name]=filter.filterId checked/>-->
-<!--                    {{' '+_formatName(value)}}-->
-<!--                    <span *ngIf = "showResultCount === true" >-->
-<!--                      {{' ('+(value.number|number)+')'}}</span>-->
-<!--                  </ng-container>-->
-<!--                </div>-->
-<!--          </div>-->
-
-<!--          <div *ngFor = "let value of getNotSelectedValues(filter,'num').slice(0,(!addShowMore?getNotSelectedValues(filter,'num').length:filterValuesNum-getSelectedValues(filter,'num').length))" class = "uk-animation-fade filterItem searchFilterItem uk-text-small">-->
-<!--                <div title = "{{value.name}}" [class]="(isDisabled || (showResultCount && value.number === 0))?'uk-text-muted':''" >-->
-<!--                  <input *ngIf="filter.filterType == 'checkbox'" [disabled]="isDisabled || (showResultCount && value.number === 0)" [(ngModel)]="value.selected" type="checkbox" (ngModelChange)="filterChange(value.selected)" />-->
-<!--                  <input *ngIf="filter.filterType == 'radio'" [disabled]="isDisabled || (showResultCount && value.number === 0)" type="radio" (click)="uniqueFilterChange(value)"-->
-<!--                         [name]=filter.filterId value=false  />-->
-<!--                  {{' '+ _formatName(value) }}-->
-<!--                  <span *ngIf = "showResultCount === true" [class]="(isDisabled || value.number === 0)?'uk-text-muted':''" >-->
-<!--                   {{' ('+(value.number|number)+')'}}-->
-<!--                  </span>-->
-<!--                </div>-->
-<!--          </div>-->
-
           <div *ngFor="let value of getSelectedAndTopValues(filter, filterValuesNum)"
                class="uk-animation-fade filterItem searchFilterItem uk-text-small">
             <div title = "{{value.name}}">
-              <label *ngIf="filter.filterType == 'checkbox' || filter.filterType == 'radio'"
-                     [class]="(isDisabled || (showResultCount && value.number === 0)) ? 'uk-disabled' : ''">
-<!--                [disabled]="isDisabled || (showResultCount && value.number === 0)"-->
-                <input *ngIf="filter.filterType == 'checkbox'" type="checkbox" class="uk-checkbox"
-                       [(ngModel)]="value.selected" (ngModelChange)="filterChange(value.selected)" />
-                <input *ngIf="filter.filterType == 'radio'" type="radio" class="uk-radio"
-                       [name]="filter.filterId"  [value]="value.id" [(ngModel)]="filter.radioValue"
-                       (ngModelChange)="uniqueFilterChange(value)"/>
-                {{' '+_formatName(value)}}
-                <span *ngIf = "showResultCount === true" >
-                  {{' ('+(value.number|number)+')'}}
-                </span>
-              </label>
+              <ng-container *ngTemplateOutlet="input_label; context: {filter: filter, value: value}"></ng-container>
             </div>
           </div>
         </ng-container>
@@ -93,45 +56,10 @@
 
             <div   class="uk-overflow-auto uk-height-max-small uk-padding-remove
                       uk-margin-small-left uk-margin-small-right uk-margin-small-top uk-width-1-1">
-<!--              <ng-container *ngFor = "let value of getSelectedValues(filter, sortBy)">-->
-<!--                <div *ngIf="filterKeywords(value.name)"  class = "uk-animation-fade filterItem searchFilterItem">-->
-
-<!--                      <div title = "{{value.name}}">-->
-<!--                        <input *ngIf="filter.filterType == 'checkbox'" [disabled]="isDisabled" [(ngModel)]="value.selected" type="checkbox" (ngModelChange)="filterChange(value.selected)" />-->
-<!--                        <input *ngIf="filter.filterType == 'radio'" [disabled]="isDisabled" type="radio" (click)="uniqueFilterChange(value)"-->
-<!--                               [name]=filter.filterId checked/>-->
-<!--                        {{' ' + _formatName(value) + ' '}}-->
-<!--                        <span class="filterNumber" *ngIf = "showResultCount === true" > ({{value.number|number}})</span>-->
-<!--                      </div>-->
-
-<!--                </div>-->
-<!--              </ng-container>-->
-
-<!--              <ng-container *ngFor = "let value of getNotSelectedValues(filter, sortBy)">-->
-<!--                <div *ngIf="filterKeywords(value.name)"  class = "uk-animation-fade filterItem searchFilterItem">-->
-
-<!--                      <div title = "{{value.name}}">-->
-<!--                        <input *ngIf="filter.filterType == 'checkbox'" [disabled]="isDisabled" [(ngModel)]="value.selected" type="checkbox" (ngModelChange)="filterChange(value.selected)" />-->
-<!--                        <input *ngIf="filter.filterType == 'radio'" [disabled]="isDisabled" type="radio" (click)="uniqueFilterChange(value)"-->
-<!--                               [name]=filter.filterId value=false  />-->
-<!--                        {{' ' + _formatName(value) + ' '}}-->
-<!--                        <span   *ngIf = "showResultCount === true" > ({{value.number|number}})</span>-->
-<!--                      </div>-->
-<!--                </div>-->
-<!--              </ng-container>-->
               <ng-container *ngFor="let value of sort(filter.values)">
                 <div *ngIf="filterKeywords(value.name)" title = "{{value.name}}"
                      class="uk-animation-fade filterItem searchFilterItem uk-text-small">
-                  <label *ngIf="filter.filterType == 'checkbox' || filter.filterType == 'radio'">
-                    <input *ngIf="filter.filterType == 'checkbox'" type="checkbox" class="uk-checkbox"
-                           [(ngModel)]="value.selected" (ngModelChange)="filterChange(value.selected)" />
-                    <input *ngIf="filter.filterType == 'radio'" type="radio" class="uk-radio"
-                           [disabled]="isDisabled || (showResultCount && value.number === 0)"
-                           [name]="value.id"  [value]="true" [(ngModel)]="value.selected" (click)="uniqueFilterChange(value)"/>
-                    {{' '+_formatName(value)}}
-                    <span *ngIf = "showResultCount === true" >
-                      {{' ('+(value.number|number)+')'}}</span>
-                  </label>
+                  <ng-container *ngTemplateOutlet="input_label; context: {filter: filter, value: value}"></ng-container>
                 </div>
               </ng-container>
             </div>
@@ -144,3 +72,20 @@
    </div>
   </div>
 </div>
+
+<ng-template #input_label let-filter="filter" let-value="value">
+  <label *ngIf="filter.filterType == 'checkbox' || filter.filterType == 'radio'"
+         [class]="(isDisabled || (showResultCount && value.number === 0)) ? 'uk-disabled' : ''">
+    <input *ngIf="filter.filterType == 'checkbox'" type="checkbox" class="uk-checkbox"
+           [disabled]="isDisabled || (showResultCount && value.number === 0)"
+           [(ngModel)]="value.selected" (ngModelChange)="filterChange(value.selected)" />
+    <input *ngIf="filter.filterType == 'radio'" type="radio" class="uk-radio"
+           [disabled]="isDisabled || (showResultCount && value.number === 0)"
+           [name]="filter.filterId" [value]="value.id" [(ngModel)]="filter.radioValue"
+           (ngModelChange)="uniqueFilterChange(value)"/>
+    {{' '+_formatName(value)}}
+    <span *ngIf = "showResultCount === true" >
+      {{' ('+(value.number|number)+')'}}
+    </span>
+  </label>
+</ng-template>
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/newSearchPage.component.html
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/newSearchPage.component.html	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/newSearchPage.component.html	(revision 59163)
@@ -83,8 +83,9 @@
 <ng-template #filters_column>
   <div class="uk-width-1-1 uk-margin-top">
     <div class="uk-grid uk-flex uk-flex-bottom">
-      <h5 *ngIf="(selectedRangeFilters+selectedFilters + selectedTypesNum  > 0) || (filters.length > 0 && (results.length > 0 || disableForms))"
-          class="uk-text-bold">
+<!--      *ngIf="(selectedRangeFilters+selectedFilters + selectedTypesNum  > 0)
+|| (filters.length > 0 && (results.length > 0 || disableForms))"-->
+      <h5 class="uk-text-bold">
         Filters
       </h5>
       <a *ngIf="(selectedRangeFilters+selectedFilters + selectedTypesNum)>1" (click)="clearFilters()"
@@ -97,12 +98,11 @@
       <ng-container *ngTemplateOutlet="selected_filters_pills; context: {}"></ng-container>
     </div>
   </div>
-  <div *ngIf="searchUtils.refineStatus == errorCodes.LOADING && filters.length === 0"
+  <div *ngIf="searchUtils.refineStatus == errorCodes.LOADING && existingFiltersWithValues === 0"
        class="'uk-animation-fade uk-margin-top  uk-width-1-1" role="alert">
     <span class="loading-gif  uk-align-center" ></span>
   </div>
-
-  <div *ngIf="searchUtils.refineStatus == errorCodes.DONE && filters.length === 0 && results.length > 0" class="uk-margin-top">
+  <div *ngIf="searchUtils.refineStatus != errorCodes.LOADING && existingFiltersWithValues === 0 && results.length > 0" class="uk-margin-top">
     <span class="uk-text-meta">No filters available</span>
   </div>
   <ul *ngIf="!showUnknownFilters"
@@ -260,16 +260,20 @@
 
           </div>
           <div class="uk-grid helper-grid uk-padding-small uk-padding-remove-vertical uk-margin-large-bottom">
-<!--            && searchUtils.refineStatus == errorCodes.LOADING-->
-            <div *ngIf="searchUtils.status == errorCodes.LOADING && filters.length == 0;
-                        else elseGridBlock"
-                 class="'uk-animation-fade uk-margin-top  uk-width-1-1" role="alert">
-              <span class="loading-gif  uk-align-center" ></span>
-            </div>
-            <div>
-              <ng-template #elseGridBlock>
-
-                <div *ngIf="showRefine && !properties.isDashboard" class="uk-width-1-4@m search-filters uk-visible@m">
+<!--            <div *ngIf="searchUtils.status == errorCodes.LOADING && filters.length == 0;-->
+<!--                        else elseGridBlock"-->
+<!--                 class="'uk-animation-fade uk-margin-top  uk-width-1-1" role="alert">-->
+<!--              <span class="loading-gif  uk-align-center" ></span>-->
+<!--            </div>-->
+<!--            <div>-->
+<!--              <ng-template #elseGridBlock>-->
+                <div *ngIf="showRefine && !properties.isDashboard
+                            && (results.length > 0
+                              || (!hideFilters &&
+                                (existingFiltersWithValues > 0 || (selectedRangeFilters + selectedFilters + selectedTypesNum) > 0)
+                              )
+                            )"
+                     class="uk-width-1-4@m search-filters uk-visible@m">
                   <ng-container *ngTemplateOutlet="filters_column; context: {}"></ng-container>
                 </div>
                 <div class="uk-width-expand@m uk-with-1-1@s">
@@ -381,12 +385,12 @@
                       Last index information
                     </a>
                   </div>
-              </ng-template>
+<!--              </ng-template>-->
             <!--            <div class="uk-visible@m uk-margin-top uk-width-1-5">-->
             <!--              <search-download [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults" ></search-download>-->
             <!--            </div>-->
             <!-- <helper *ngIf="searchUtils.totalResults > csvLimit" class="uk-margin-top helper-left-right uk-visible@m" position="right"></helper> -->
-            </div>
+<!--            </div>-->
 
             <helper *ngIf="pageContents && pageContents['bottom'] && pageContents['bottom'].length > 0"
                   [texts]="pageContents['bottom']"></helper>
@@ -420,3 +424,4 @@
     </div>
   </div>
 </div>
+</div>
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/newSearchPage.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/newSearchPage.component.ts	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/newSearchPage.component.ts	(revision 59163)
@@ -30,7 +30,6 @@
 })
 export class NewSearchPageComponent {
   @ViewChild('offcanvas_element') offcanvasElement: ElementRef;
-
   @Input() piwikSiteId = null;
   @Input() hasPrefix: boolean = true;
   @Input() pageTitle = "";
@@ -108,6 +107,9 @@
   @Input() entitiesSelection:boolean = true;
   @Input() showAdvancedSearchLink:boolean = true;
 
+  // on 1st load, do not show filters until results query returns.
+  public hideFilters: boolean = true;
+
   //Dashboard
   filterToggle = false;
   customFilterEnabled:boolean =  false;
@@ -485,6 +487,13 @@
     return this.rangeFilters;
   }
 
+  get existingFiltersWithValues() {
+    if(this.filters.length == 0) {
+      return 0;
+    }
+    return this.filters.some(filter => (filter.values && filter.values.length > 0));
+  }
+
   /*
   * For Funder filters - if funder selected
   */
@@ -1165,13 +1174,13 @@
         this.parameterValues.push(StringUtils.URIEncode(this.selectedFields[i].value));
       }
     }
-    if (includePage && this.searchUtils.page != 1) {
+    if (includePage) {
       this.parameterNames.push("page");
       this.parameterValues.push("" + this.searchUtils.page);
     }
 
     //if (this.searchUtils.size != this.resultsPerPage) {
-    if (this.resultsPerPageChanged && this.resultsPerPageChanged != this.resultsPerPage) {
+    if (this.resultsPerPageChanged) {
       this.parameterNames.push("size");
       //this.parameterValues.push("" + this.searchUtils.size);
       this.parameterValues.push("" + this.resultsPerPageChanged);
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchResearchResults.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchResearchResults.component.ts	(revision 59162)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchResearchResults.component.ts	(revision 59163)
@@ -118,37 +118,16 @@
         this.oldTotalResults = this.searchUtils.totalResults;
       }
       var refine = true;
-      if (
-        (
-          this.searchUtils.page != ((params['page'] === undefined) ? 1 : +params['page'])
-          && (this.searchUtils.page == 1 || params['page'])
-        )
-        && this.filters && !firstLoad
-      ) {
+      if (params['page'] != undefined && this.filters && !firstLoad && this.searchUtils.page != +params['page']) {
         refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
-      if (
-        (
-          this.searchUtils.sortBy != ((params['sortBy'] === undefined) ? "" : params['sortBy'])
-          && (this.searchUtils.sortBy == "" || params['sortBy'])
-        )
-        && this.filters && !firstLoad
-      ) {
+      if (params['sortBy'] != undefined && this.filters && !firstLoad && this.searchUtils.sortBy != params['sortBy']) {
         refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
-      if (
-        (
-          this.searchUtils.size != ((params['size'] === undefined) ? 10 : +params['size'])
-          && (this.searchUtils.size == 10 || params['size'])
-        )
-        && this.filters && !firstLoad
-      ) {
+      if (params['size'] != undefined && this.filters && !firstLoad && this.searchUtils.size != params['size']) {
         refine = false;
-        this.searchUtils.status = this.errorCodes.DONE;
       }
 
       let page = (params['page'] === undefined) ? 1 : +params['page'];
@@ -167,6 +146,8 @@
       this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, this.rangeFields, this.fieldIdsMap,this.customFilter,params, this.resultType, this.quickFilter);
       if(refine) {
         this._getFilters(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(), this.searchUtils.page, 0, "", true, this.searchPage.getSearchAPIQueryForRangeFields(params)+this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
+      } else {
+        this.searchUtils.refineStatus = this.errorCodes.DONE;
       }
       this._getResults(this.searchPage.getSearchAPIQueryForAdvancedSearhFields(), this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy, refine, this.searchPage.getSearchAPIQueryForRangeFields(params) + this.searchPage.getSearchAPIQueryForRefineFields(params, firstLoad));
       firstLoad = false;
@@ -243,6 +224,8 @@
             this.searchPage.buildPageURLParameters(this.filters, this.rangeFilters, false);
           }
 
+          this.searchPage.hideFilters = false;
+
           this.searchUtils.status = this.errorCodes.DONE;
           if (this.searchUtils.totalResults == 0) {
             this.searchUtils.status = this.errorCodes.NONE;
@@ -283,7 +266,7 @@
           //this.searchPage.closeLoading();
           this.disableForms = false;
           this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils})
-
+          this.searchPage.hideFilters = false;
         }
       ));
     }
