From a683e8773a413af08c27e27f970203ac1bd49ac9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr>
Date: Tue, 25 Oct 2022 19:19:06 +0200
Subject: [PATCH] #89 => Add search info help enabled

---
 .../components/instance-form.component.html   | 113 +++++-----
 .../components/instance-form.component.ts     |  17 +-
 .../components/instance-navbar.component.html |  10 +-
 .../components/instance-navbar.component.ts   |  12 +-
 .../app/instance/instance-style.service.ts    |  19 +-
 .../app/instance/instance.component.spec.ts   |  16 +-
 .../datasets-by-family.component.html         |   2 +-
 .../position/cone-search-panel.component.html |  55 +++--
 .../containers/datasets.component.html        |  33 +--
 .../search-criteria-list.component.html       |   3 +-
 .../output/output-info.component.html         |   4 +-
 .../output/output-info.component.ts           |  13 +-
 .../result/datatable.component.html           |   2 +-
 .../search/containers/output.component.html   |   2 +-
 .../effects/search-multiple.effects.spec.ts   |  32 +--
 .../app/metamodel/models/instance.model.ts    |  17 +-
 client/src/test-data.ts                       |  48 ++--
 conf-dev/create-db.sh                         |   2 +-
 .../__CG__AppEntityInstance.php               | 208 ++++++++++--------
 server/src/Action/InstanceAction.php          |  34 +--
 server/src/Action/InstanceListAction.php      |  34 +--
 server/src/Entity/Instance.php                | 200 +++++++++--------
 server/tests/Action/InstanceActionTest.php    |  17 +-
 .../tests/Action/InstanceListActionTest.php   |  17 +-
 24 files changed, 495 insertions(+), 415 deletions(-)

diff --git a/client/src/app/admin/instance/components/instance-form.component.html b/client/src/app/admin/instance/components/instance-form.component.html
index 34228907..22cb6593 100644
--- a/client/src/app/admin/instance/components/instance-form.component.html
+++ b/client/src/app/admin/instance/components/instance-form.component.html
@@ -129,6 +129,10 @@
                 [selectType]="'file'"
                 (loadDirectory)="onChangeFileSelect($event)">
             </app-path-select-form-control>
+            <div class="form-group">
+                <label for="design_logo_href">Logo href</label>
+                <input type="text" class="form-control" id="design_logo_href" name="design_logo_href" formControlName="design_logo_href">
+            </div>
             <div class="form-row">
                 <div class="form-group col-md-6">
                     <label for="navbar_background_color_picker">Navbar background color (picker)</label>
@@ -476,112 +480,118 @@
                     <input type="text" class="form-control" id="search_info_text_color_input" [value]="form.value.search_info_text_color" formControlName="search_info_text_color">
                 </div>
             </div>
+            <div class="custom-control custom-switch">
+                <input class="custom-control-input" type="checkbox" id="search_info_help_enabled" name="search_info_help_enabled" formControlName="search_info_help_enabled">
+                <label class="custom-control-label" for="search_info_help_enabled">Search info help enabled</label>
+            </div>
+        </accordion-group>
+        <accordion-group heading="[Search] Design dataset selection" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="search_info_criterion_background_color_picker">Search info criterion background color (picker)</label>
-                    <input class="form-control" type="color" id="search_info_criterion_background_color_picker" [value]="form.value.search_info_criterion_background_color" formControlName="search_info_criterion_background_color">
+                    <label for="dataset_select_btn_color_picker">Dataset select btn color (picker)</label>
+                    <input class="form-control" type="color" id="dataset_select_btn_color_picker" [value]="form.value.dataset_select_btn_color" formControlName="dataset_select_btn_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="search_info_criterion_background_color_input">Search info criterion background color (value)</label>
-                    <input type="text" class="form-control" id="search_info_criterion_background_color_input" [value]="form.value.search_info_criterion_background_color" formControlName="search_info_criterion_background_color">
+                    <label for="dataset_select_btn_color_input">Dataset select btn color (value)</label>
+                    <input type="text" class="form-control" id="dataset_select_btn_color_input" [value]="form.value.dataset_select_btn_color" formControlName="dataset_select_btn_color">
                 </div>
             </div>
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="search_info_criterion_text_color_picker">Search info criterion text color (picker)</label>
-                    <input class="form-control" type="color" id="search_info_criterion_text_color_picker" [value]="form.value.search_info_criterion_text_color" formControlName="search_info_criterion_text_color">
+                    <label for="dataset_select_btn_hover_color_picker">Dataset select btn hover color (picker)</label>
+                    <input class="form-control" type="color" id="dataset_select_btn_hover_color_picker" [value]="form.value.dataset_select_btn_hover_color" formControlName="dataset_select_btn_hover_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="search_info_criterion_text_color_input">Search info criterion text color (value)</label>
-                    <input type="text" class="form-control" id="search_info_criterion_text_color_input" [value]="form.value.search_info_criterion_text_color" formControlName="search_info_criterion_text_color">
+                    <label for="dataset_select_btn_hover_color_input">Dataset select btn hover color (value)</label>
+                    <input type="text" class="form-control" id="dataset_select_btn_hover_color_input" [value]="form.value.dataset_select_btn_hover_color" formControlName="dataset_select_btn_hover_color">
                 </div>
             </div>
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="search_info_btn_color_picker">Search info btn color (picker)</label>
-                    <input class="form-control" type="color" id="search_info_btn_color_picker" [value]="form.value.search_info_btn_color" formControlName="search_info_btn_color">
+                    <label for="dataset_select_btn_hover_text_color_picker">Dataset select btn hover text color (picker)</label>
+                    <input class="form-control" type="color" id="dataset_select_btn_hover_text_color_picker" [value]="form.value.dataset_select_btn_hover_text_color" formControlName="dataset_select_btn_hover_text_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="search_info_btn_color_input">Search info btn color (value)</label>
-                    <input type="text" class="form-control" id="search_info_btn_color_input" [value]="form.value.search_info_btn_color" formControlName="search_info_btn_color">
+                    <label for="dataset_select_btn_hover_text_color_input">Dataset select btn hover text color (value)</label>
+                    <input type="text" class="form-control" id="dataset_select_btn_hover_text_color_input" [value]="form.value.dataset_select_btn_hover_text_color" formControlName="dataset_select_btn_hover_text_color">
                 </div>
             </div>
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="search_info_btn_hover_color_picker">Search info btn hover color (picker)</label>
-                    <input class="form-control" type="color" id="search_info_btn_hover_color_picker" [value]="form.value.search_info_btn_hover_color" formControlName="search_info_btn_hover_color">
+                    <label for="dataset_selected_icon_color_picker">Dataset selected icon color (picker)</label>
+                    <input class="form-control" type="color" id="dataset_selected_icon_color_picker" [value]="form.value.dataset_selected_icon_color" formControlName="dataset_selected_icon_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="search_info_btn_hover_color_input">Search info btn hover color (value)</label>
-                    <input type="text" class="form-control" id="search_info_btn_hover_color_input" [value]="form.value.search_info_btn_hover_color" formControlName="search_info_btn_hover_color">
+                    <label for="dataset_selected_icon_color_input">Dataset selected icon color (value)</label>
+                    <input type="text" class="form-control" id="dataset_selected_icon_color_input" [value]="form.value.dataset_selected_icon_color" formControlName="dataset_selected_icon_color">
                 </div>
             </div>
+        </accordion-group>
+        <accordion-group heading="[Search] Design search criteria" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="search_info_btn_text_color_picker">Search info btn text color (picker)</label>
-                    <input class="form-control" type="color" id="search_info_btn_text_color_picker" [value]="form.value.search_info_btn_text_color" formControlName="search_info_btn_text_color">
+                    <label for="search_criterion_background_color_picker">Search criterion background color (picker)</label>
+                    <input class="form-control" type="color" id="search_criterion_background_color_picker" [value]="form.value.search_criterion_background_color" formControlName="search_criterion_background_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="search_info_btn_text_color_input">Search info btn text color (value)</label>
-                    <input type="text" class="form-control" id="search_info_btn_text_color_input" [value]="form.value.search_info_btn_text_color" formControlName="search_info_btn_text_color">
+                    <label for="search_criterion_background_color_input">Search criterion background color (value)</label>
+                    <input type="text" class="form-control" id="search_criterion_background_color_input" [value]="form.value.search_criterion_background_color" formControlName="search_criterion_background_color">
                 </div>
             </div>
-        </accordion-group>
-        <accordion-group heading="[Search] Design dataset selection" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="dataset_select_btn_color_picker">Dataset select btn color (picker)</label>
-                    <input class="form-control" type="color" id="dataset_select_btn_color_picker" [value]="form.value.dataset_select_btn_color" formControlName="dataset_select_btn_color">
+                    <label for="search_criterion_text_color_picker">Search criterion text color (picker)</label>
+                    <input class="form-control" type="color" id="search_criterion_text_color_picker" [value]="form.value.search_criterion_text_color" formControlName="search_criterion_text_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="dataset_select_btn_color_input">Dataset select btn color (value)</label>
-                    <input type="text" class="form-control" id="dataset_select_btn_color_input" [value]="form.value.dataset_select_btn_color" formControlName="dataset_select_btn_color">
+                    <label for="search_criterion_text_color_input">Search criterion text color (value)</label>
+                    <input type="text" class="form-control" id="search_criterion_text_color_input" [value]="form.value.search_criterion_text_color" formControlName="search_criterion_text_color">
                 </div>
             </div>
+        </accordion-group>
+        <accordion-group heading="[Search] Design output columns" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="dataset_select_btn_hover_color_picker">Dataset select btn hover color (picker)</label>
-                    <input class="form-control" type="color" id="dataset_select_btn_hover_color_picker" [value]="form.value.dataset_select_btn_hover_color" formControlName="dataset_select_btn_hover_color">
+                    <label for="output_columns_selected_color_picker">Output columns selected color (picker)</label>
+                    <input class="form-control" type="color" id="output_columns_selected_color_picker" [value]="form.value.output_columns_selected_color" formControlName="output_columns_selected_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="dataset_select_btn_hover_color_input">Dataset select btn hover color (value)</label>
-                    <input type="text" class="form-control" id="dataset_select_btn_hover_color_input" [value]="form.value.dataset_select_btn_hover_color" formControlName="dataset_select_btn_hover_color">
+                    <label for="output_columns_selected_color_input">Output columns selected color (value)</label>
+                    <input type="text" class="form-control" id="output_columns_selected_color_input" [value]="form.value.output_columns_selected_color" formControlName="output_columns_selected_color">
                 </div>
             </div>
+        </accordion-group>
+        <accordion-group heading="[Search] Design result datatable" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="dataset_select_btn_hover_text_color_picker">Dataset select btn hover text color (picker)</label>
-                    <input class="form-control" type="color" id="dataset_select_btn_hover_text_color_picker" [value]="form.value.dataset_select_btn_hover_text_color" formControlName="dataset_select_btn_hover_text_color">
+                    <label for="result_download_btn_color_picker">Result download btn color (picker)</label>
+                    <input class="form-control" type="color" id="result_download_btn_color_picker" [value]="form.value.result_download_btn_color" formControlName="result_download_btn_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="dataset_select_btn_hover_text_color_input">Dataset select btn hover text color (value)</label>
-                    <input type="text" class="form-control" id="dataset_select_btn_hover_text_color_input" [value]="form.value.dataset_select_btn_hover_text_color" formControlName="dataset_select_btn_hover_text_color">
+                    <label for="result_download_btn_color_input">Result download btn color (value)</label>
+                    <input type="text" class="form-control" id="result_download_btn_color_input" [value]="form.value.result_download_btn_color" formControlName="result_download_btn_color">
                 </div>
             </div>
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="dataset_selected_icon_color_picker">Dataset selected icon color (picker)</label>
-                    <input class="form-control" type="color" id="dataset_selected_icon_color_picker" [value]="form.value.dataset_selected_icon_color" formControlName="dataset_selected_icon_color">
+                    <label for="result_download_btn_hover_color_picker">Result download btn hover color (picker)</label>
+                    <input class="form-control" type="color" id="result_download_btn_hover_color_picker" [value]="form.value.result_download_btn_hover_color" formControlName="result_download_btn_hover_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="dataset_selected_icon_color_input">Dataset selected icon color (value)</label>
-                    <input type="text" class="form-control" id="dataset_selected_icon_color_input" [value]="form.value.dataset_selected_icon_color" formControlName="dataset_selected_icon_color">
+                    <label for="result_download_btn_hover_color_input">Result download btn hover color (value)</label>
+                    <input type="text" class="form-control" id="result_download_btn_hover_color_input" [value]="form.value.result_download_btn_hover_color" formControlName="result_download_btn_hover_color">
                 </div>
             </div>
-        </accordion-group>
-        <accordion-group heading="[Search] Design output columns" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
-                    <label for="output_columns_selected_color_picker">Output columns selected color (picker)</label>
-                    <input class="form-control" type="color" id="output_columns_selected_color_picker" [value]="form.value.output_columns_selected_color" formControlName="output_columns_selected_color">
+                    <label for="result_download_btn_text_color_picker">Result download btn text color (picker)</label>
+                    <input class="form-control" type="color" id="result_download_btn_text_color_picker" [value]="form.value.result_download_btn_text_color" formControlName="result_download_btn_text_color">
                 </div>
                 <div class="form-group col-md-6">
-                    <label for="output_columns_selected_color_input">Output columns selected color (value)</label>
-                    <input type="text" class="form-control" id="output_columns_selected_color_input" [value]="form.value.output_columns_selected_color" formControlName="output_columns_selected_color">
+                    <label for="result_download_btn_text_color_input">Result download btn text color (value)</label>
+                    <input type="text" class="form-control" id="result_download_btn_text_color_input" [value]="form.value.result_download_btn_text_color" formControlName="result_download_btn_text_color">
                 </div>
             </div>
-        </accordion-group>
-        <accordion-group heading="[Search] Design result datatable" [isOpen]="false">
             <div class="form-row">
                 <div class="form-group col-md-6">
                     <label for="result_datatable_actions_btn_color_picker">Result datatable actions btn color (picker)</label>
@@ -612,7 +622,6 @@
                     <input type="text" class="form-control" id="result_datatable_actions_btn_text_color_input" [value]="form.value.result_datatable_actions_btn_text_color" formControlName="result_datatable_actions_btn_text_color">
                 </div>
             </div>
-
             <div class="custom-control custom-switch mb-2">
                 <input class="custom-control-input" type="checkbox" id="result_datatable_bordered" name="result_datatable_bordered" formControlName="result_datatable_bordered">
                 <label class="custom-control-label" for="result_datatable_bordered">Result datatable bordered</label>
@@ -717,16 +726,6 @@
                     <input type="text" class="form-control" id="result_datatable_rows_selected_color_input" [value]="form.value.result_datatable_rows_selected_color" formControlName="result_datatable_rows_selected_color">
                 </div>
             </div>
-            <div class="form-row">
-                <div class="form-group col-md-6">
-                    <label for="result_datatable_pagination_text_color_picker">Result datatable pagination text color (picker)</label>
-                    <input class="form-control" type="color" id="result_datatable_pagination_text_color_picker" [value]="form.value.result_datatable_pagination_text_color" formControlName="result_datatable_pagination_text_color">
-                </div>
-                <div class="form-group col-md-6">
-                    <label for="result_datatable_pagination_text_color_input">Result datatable pagination text color (value)</label>
-                    <input type="text" class="form-control" id="result_datatable_pagination_text_color_input" [value]="form.value.result_datatable_pagination_text_color" formControlName="result_datatable_pagination_text_color">
-                </div>
-            </div>
         </accordion-group>
         <accordion-group heading="Functionalities" [isOpen]="false">
             <div class="custom-control custom-switch mb-2">
diff --git a/client/src/app/admin/instance/components/instance-form.component.ts b/client/src/app/admin/instance/components/instance-form.component.ts
index 4473b918..ed202323 100644
--- a/client/src/app/admin/instance/components/instance-form.component.ts
+++ b/client/src/app/admin/instance/components/instance-form.component.ts
@@ -45,6 +45,7 @@ export class InstanceFormComponent implements OnInit {
         design_text_color: new UntypedFormControl('#212529'),
         design_font_family: new UntypedFormControl('Roboto, sans-serif'),
         design_logo: new UntypedFormControl(''),
+        design_logo_href: new UntypedFormControl(null),
         design_favicon: new UntypedFormControl(''),
         navbar_background_color: new UntypedFormControl('#F8F9FA'),
         navbar_border_bottom_color: new UntypedFormControl('#DEE2E6'),
@@ -82,18 +83,19 @@ export class InstanceFormComponent implements OnInit {
         search_back_btn_color: new UntypedFormControl('#6C757D'),
         search_back_btn_hover_color: new UntypedFormControl('#6C757D'),
         search_back_btn_hover_text_color: new UntypedFormControl('#FFFFFF'),
+        search_info_background_color: new UntypedFormControl('#E9ECEF'),
+        search_info_text_color: new UntypedFormControl('#000000'),
+        search_info_help_enabled: new UntypedFormControl(true),
         dataset_select_btn_color: new UntypedFormControl('#6C757D'),
         dataset_select_btn_hover_color: new UntypedFormControl('#6C757D'),
         dataset_select_btn_hover_text_color: new UntypedFormControl('#FFFFFF'),
         dataset_selected_icon_color: new UntypedFormControl('#28A745'),
-        search_info_background_color: new UntypedFormControl('#E9ECEF'),
-        search_info_text_color: new UntypedFormControl('#000000'),
-        search_info_criterion_background_color: new UntypedFormControl('#7AC29A'),
-        search_info_criterion_text_color: new UntypedFormControl('#000000'),
-        search_info_btn_color: new UntypedFormControl('#007BFF'),
-        search_info_btn_hover_color: new UntypedFormControl('#0069D9'),
-        search_info_btn_text_color: new UntypedFormControl('#FFFFFF'),
+        search_criterion_background_color: new UntypedFormControl('#7AC29A'),
+        search_criterion_text_color: new UntypedFormControl('#000000'),
         output_columns_selected_color: new UntypedFormControl('#7AC29A'),
+        result_download_btn_color: new UntypedFormControl('#007BFF'),
+        result_download_btn_hover_color: new UntypedFormControl('#0069D9'),
+        result_download_btn_text_color: new UntypedFormControl('#FFFFFF'),
         result_datatable_actions_btn_color: new UntypedFormControl('#007BFF'),
         result_datatable_actions_btn_hover_color: new UntypedFormControl('#0069D9'),
         result_datatable_actions_btn_text_color: new UntypedFormControl('#FFFFFF'),
@@ -108,7 +110,6 @@ export class InstanceFormComponent implements OnInit {
         result_datatable_link_color: new UntypedFormControl('#007BFF'),
         result_datatable_link_hover_color: new UntypedFormControl('#0056B3'),
         result_datatable_rows_selected_color: new UntypedFormControl('#7AC29A'),
-        result_datatable_pagination_text_color: new UntypedFormControl('#212529'),
         samp_enabled: new UntypedFormControl(true),
         back_to_portal: new UntypedFormControl(true),
         user_menu_enabled: new UntypedFormControl(true),
diff --git a/client/src/app/instance/components/instance-navbar.component.html b/client/src/app/instance/components/instance-navbar.component.html
index 4f846778..41d9a79b 100644
--- a/client/src/app/instance/components/instance-navbar.component.html
+++ b/client/src/app/instance/components/instance-navbar.component.html
@@ -1,8 +1,12 @@
 <nav class="navbar-instance navbar navbar-expand-md fixed-top">
     <!-- Logo -->
-    <a [routerLink]="getInstanceBaseHref()" class="navbar-brand">
-        <img *ngIf="instance.public" [src]="getLogoHref()" alt="Instance logo" />
-        <img *ngIf="!instance.public" [src]="getLogoHref() | authImage | async" alt="Instance logo" />
+    <a *ngIf="!instance.design_logo_href" [routerLink]="getLogoHref()" class="navbar-brand">
+        <img *ngIf="instance.public" [src]="getLogoURL()" alt="Instance logo" />
+        <img *ngIf="!instance.public" [src]="getLogoURL() | authImage | async" alt="Instance logo" />
+    </a>
+    <a *ngIf="instance.design_logo_href" [href]="getLogoHref()" class="navbar-brand">
+        <img *ngIf="instance.public" [src]="getLogoURL()" alt="Instance logo" />
+        <img *ngIf="!instance.public" [src]="getLogoURL() | authImage | async" alt="Instance logo" />
     </a>
 
     <!-- Navigation -->
diff --git a/client/src/app/instance/components/instance-navbar.component.ts b/client/src/app/instance/components/instance-navbar.component.ts
index 06696f9f..3b5b005c 100644
--- a/client/src/app/instance/components/instance-navbar.component.ts
+++ b/client/src/app/instance/components/instance-navbar.component.ts
@@ -44,17 +44,25 @@ export class InstanceNavbarComponent {
     }
 
     /**
-     * Returns logo href.
+     * Returns logo URL.
      *
      * @return  string
      */
-    getLogoHref(): string {
+    getLogoURL(): string {
         if (this.instance.design_logo) {
             return `${this.apiUrl}/instance/${this.instance.name}/file-explorer${this.instance.design_logo}`;
         }
         return 'assets/cesam_anis40.png';
     }
 
+    getLogoHref(): string {
+        if (this.instance.design_logo_href) {
+            return this.instance.design_logo_href;
+        } else {
+            return this.getInstanceBaseHref();
+        }
+    }
+
     getInstanceBaseHref() {
         if (this.firstWebpage) {
             return `/instance/${this.instance.name}/webpage/${this.firstWebpage.name}`;
diff --git a/client/src/app/instance/instance-style.service.ts b/client/src/app/instance/instance-style.service.ts
index 7dec39cd..4921bc1b 100644
--- a/client/src/app/instance/instance-style.service.ts
+++ b/client/src/app/instance/instance-style.service.ts
@@ -62,8 +62,6 @@ export class InstanceStyleService {
     }
 
     private searchProgressBarStyle(instance: Instance) {
-        console.log(instance.progress_bar_subtitle);
-        
         this.style.setStyle('.progress-bar-title', 'color', instance.progress_bar_title_color);
         this.style.setStyle('.progress-bar-subtitle', 'color', instance.progress_bar_subtitle_color);
         this.style.setStyle('.progress-navigation .progress.progress-with-circle', 'background-color', instance.progress_bar_color);
@@ -131,18 +129,18 @@ export class InstanceStyleService {
             'color': instance.search_info_text_color
         });
         this.style.setStyles('.anis-result-header .btn-primary', {
-            'background-color': instance.search_info_btn_color,
-            'border-color': instance.search_info_btn_color,
-            'color': instance.search_info_btn_text_color
+            'background-color': instance.result_download_btn_color,
+            'border-color': instance.result_download_btn_color,
+            'color': instance.result_download_btn_text_color
         });
         this.style.setStyles('.anis-result-header .btn-primary:hover', {
-            'background-color': instance.search_info_btn_hover_color,
-            'border-color': instance.search_info_btn_hover_color,
-            'color': instance.search_info_btn_text_color
+            'background-color': instance.result_download_btn_hover_color,
+            'border-color': instance.result_download_btn_hover_color,
+            'color': instance.result_download_btn_text_color
         });
         this.style.setStyles('.search_criterium', {
-            'background-color': instance.search_info_criterion_background_color,
-            'color': instance.search_info_criterion_text_color
+            'background-color': instance.search_criterion_background_color,
+            'color': instance.search_criterion_text_color
         });
     }
 
@@ -192,6 +190,5 @@ export class InstanceStyleService {
         this.style.setStyle('#datatable.table a.btn-outline-primary:hover', 'color', instance.result_datatable_link_hover_color);
         this.style.setStyle('#datatable.table a.btn-outline-primary:hover', 'background-color', instance.result_datatable_rows_background_color);
         this.style.setStyle('#datatable.table a.btn-outline-primary:hover', 'border-color', instance.result_datatable_link_hover_color);
-        this.style.setStyle('.datatable-pagination', 'color', instance.result_datatable_pagination_text_color);
     }
 }
diff --git a/client/src/app/instance/instance.component.spec.ts b/client/src/app/instance/instance.component.spec.ts
index 8a6eecb6..fba62ed8 100644
--- a/client/src/app/instance/instance.component.spec.ts
+++ b/client/src/app/instance/instance.component.spec.ts
@@ -91,6 +91,7 @@ describe('[Instance] InstanceComponent', () => {
             design_text_color: '#212529',
             design_font_family: 'Roboto, sans-serif',
             design_logo: '/path/to/logo',
+            design_logo_href: null,
             design_favicon: '/path/to/favicon',
             navbar_background_color: '#F8F9FA',
             navbar_border_bottom_color: '#DEE2E6',
@@ -128,18 +129,19 @@ describe('[Instance] InstanceComponent', () => {
             search_back_btn_color: '#6C757D',
             search_back_btn_hover_color: '#6C757D',
             search_back_btn_hover_text_color: '#FFFFFF',
+            search_info_background_color: '#E9ECEF',
+            search_info_text_color: '#000000',
+            search_info_help_enabled: true,
             dataset_select_btn_color: '#6C757D',
             dataset_select_btn_hover_color: '#6C757D',
             dataset_select_btn_hover_text_color: '#FFFFFF',
             dataset_selected_icon_color: '#28A745',
-            search_info_background_color: '#E9ECEF',
-            search_info_text_color: '#000000',
-            search_info_criterion_background_color: '#7AC29A',
-            search_info_criterion_text_color: '#000000',
-            search_info_btn_color: '#007BFF',
-            search_info_btn_hover_color: '#0069D9',
-            search_info_btn_text_color: '#FFFFFF',
+            search_criterion_background_color: '#7AC29A',
+            search_criterion_text_color: '#000000',
             output_columns_selected_color: '#7AC29A',
+            result_download_btn_color: '#007BFF',
+            result_download_btn_hover_color: '#0069D9',
+            result_download_btn_text_color: '#FFFFFF',
             result_datatable_actions_btn_color: '#007BFF',
             result_datatable_actions_btn_hover_color: '#0069D9',
             result_datatable_actions_btn_text_color: '#FFFFFF',
diff --git a/client/src/app/instance/search-multiple/components/datasets/datasets-by-family.component.html b/client/src/app/instance/search-multiple/components/datasets/datasets-by-family.component.html
index b63ad383..bfbcdfc0 100644
--- a/client/src/app/instance/search-multiple/components/datasets/datasets-by-family.component.html
+++ b/client/src/app/instance/search-multiple/components/datasets/datasets-by-family.component.html
@@ -17,7 +17,7 @@
     <div *ngFor="let dataset of datasetList">
         <div *ngIf="isSelected(dataset.name)">
             <button class="btn btn-block text-left py-1 m-0 rounded-0" (click)="toggleSelection(dataset.name)">
-                <span class="fas fa-fw fa-check-square theme-color"></span>
+                <span class="fas fa-fw fa-check-square output_columns_selected"></span>
                 {{ dataset.label }}
                 <span [tooltip]="datasetInfo" placement="right" containerClass="custom-tooltip right-tooltip">
                     <span class="far fa-question-circle fa-xs"></span>
diff --git a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html
index e13cbbdb..325a6577 100644
--- a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html
+++ b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.html
@@ -1,25 +1,34 @@
-<div class="row mt-4">
-    <div class="col-12">
-        <div class="border rounded my-2">
-            <p class="border-bottom bg-light text-primary mb-0 py-4 pl-4">Cone Search</p>
-            <div class="row p-4">
-                <div class="col">
-                    <app-cone-search
-                        [coneSearch]="coneSearch"
-                        [resolverEnabled]="true"
-                        [resolverIsLoading]="resolverIsLoading"
-                        [resolverIsLoaded]="resolverIsLoaded"
-                        (retrieveCoordinates)="retrieveCoordinates.emit($event)"
-                        (emitAdd)="emitAdd(cs.getConeSearch())"
-                        #cs>
-                    </app-cone-search>
-                </div>
-                <div class="col-2 text-center align-self-end">
-                    <button class="btn btn-outline-danger" *ngIf="coneSearch" (click)="deleteConeSearch.emit()">
-                        <span class="fa fa-times fa-fw"></span>
-                    </button>
-                </div>
+<accordion [isAnimated]="true">
+    <accordion-group #ag [panelClass]="'custom-accordion'" [isOpen]="true" class="my-2">
+        <button class="btn btn-link btn-block clearfix" accordion-heading>
+            <span class="pull-left float-left">
+                Cone search
+                &nbsp;
+                <span *ngIf="ag.isOpen">
+                    <span class="fas fa-chevron-up"></span>
+                </span>
+                <span *ngIf="!ag.isOpen">
+                    <span class="fas fa-chevron-down"></span>
+                </span>
+            </span>
+        </button>
+        <div class="row">
+            <div class="col">
+                <app-cone-search
+                    [coneSearch]="coneSearch"
+                    [resolverEnabled]="true"
+                    [resolverIsLoading]="resolverIsLoading"
+                    [resolverIsLoaded]="resolverIsLoaded"
+                    (retrieveCoordinates)="retrieveCoordinates.emit($event)"
+                    (emitAdd)="emitAdd(cs.getConeSearch())"
+                    #cs>
+                </app-cone-search>
+            </div>
+            <div class="col-2 text-center align-self-end">
+                <button class="btn btn-outline-danger" *ngIf="coneSearch" (click)="deleteConeSearch.emit()">
+                    <span class="fa fa-times fa-fw"></span>
+                </button>
             </div>
         </div>
-    </div>
-</div>
+    </accordion-group>
+</accordion>
diff --git a/client/src/app/instance/search-multiple/containers/datasets.component.html b/client/src/app/instance/search-multiple/containers/datasets.component.html
index 84a49fea..d8ce3908 100644
--- a/client/src/app/instance/search-multiple/containers/datasets.component.html
+++ b/client/src/app/instance/search-multiple/containers/datasets.component.html
@@ -1,21 +1,24 @@
 <app-spinner *ngIf="(datasetFamilyListIsLoading | async) || (datasetListIsLoading | async)">
 </app-spinner>
 
-<div *ngIf="(datasetFamilyListIsLoaded | async) && (datasetListIsLoaded | async)" class="row mt-4">
-    <div class="col-12">
-        <div class="border rounded my-2">
-            <p class="border-bottom bg-light text-primary mb-0 py-4 pl-4">Datasets</p>
-            <div class="px-3">
-                <app-dataset-list
-                    [datasetFamilyList]="datasetFamilyList | async"
-                    [datasetList]="datasetList | async"
-                    [selectedDatasets]="selectedDatasets | async"
-                    (updateSelectedDatasets)="updateSelectedDatasets($event)">
-                </app-dataset-list>
-            </div>
-        </div>
-    </div>
-</div>
+<accordion *ngIf="(datasetFamilyListIsLoaded | async) && (datasetListIsLoaded | async)" [isAnimated]="true">
+    <accordion-group #ag [panelClass]="'custom-accordion'" class="my-2" [isOpen]="true">
+        <button class="btn btn-link btn-block clearfix" accordion-heading>
+            <span class="pull-left float-left">
+                Datasets
+                &nbsp;
+                <span *ngIf="ag.isOpen"><span class="fas fa-chevron-up"></span></span>
+                <span *ngIf="!ag.isOpen"><span class="fas fa-chevron-down"></span></span>
+            </span>
+        </button>
+        <app-dataset-list
+            [datasetFamilyList]="datasetFamilyList | async"
+            [datasetList]="datasetList | async"
+            [selectedDatasets]="selectedDatasets | async"
+            (updateSelectedDatasets)="updateSelectedDatasets($event)">
+        </app-dataset-list>
+    </accordion-group>
+</accordion>
 
 <div class="row mt-5 justify-content-between">
     <div class="col">
diff --git a/client/src/app/instance/search/components/criteria/search-criteria-list.component.html b/client/src/app/instance/search/components/criteria/search-criteria-list.component.html
index f46d3e15..bbb112a1 100644
--- a/client/src/app/instance/search/components/criteria/search-criteria-list.component.html
+++ b/client/src/app/instance/search/components/criteria/search-criteria-list.component.html
@@ -3,6 +3,7 @@
         <div class="row mb-2">
             <div class="lead">
                 <span class="font-weight-bold">Search criteria on {{ dataset.label }}</span>
+                <p *ngIf="!coneSearch && !(criteriaList.length > 0)" class="font-italic mt-2">No criteria selected</p>
                 <accordion class="panel" [isAnimated]="true" *ngIf="coneSearch || criteriaList.length > 0">
                     <accordion-group #cl panelClass="abstract-accordion lead" [isOpen]="true" class="mt-2">
                         <button class="btn btn-link btn-block clearfix pb-1" accordion-heading>
@@ -27,7 +28,7 @@
                 </accordion>
             </div>
         </div>
-        <div class="row">
+        <div *ngIf="instance.search_info_help_enabled" class="row">
             <p>Once you have added your search criteria, if any, you can select the 
                 <a class="btn btn-outline-primary" routerLink="/instance/{{ instance.name }}/search/output/{{ datasetSelected }}" [queryParams]="queryParams">
                     output columns <span class="fas fa-arrow-right"></span></a>
diff --git a/client/src/app/instance/search/components/output/output-info.component.html b/client/src/app/instance/search/components/output/output-info.component.html
index 54f7a862..edfe9e66 100644
--- a/client/src/app/instance/search/components/output/output-info.component.html
+++ b/client/src/app/instance/search/components/output/output-info.component.html
@@ -1,4 +1,4 @@
-<div class="anis-result-header jumbotron row mx-0 mb-4 py-4 sticky-top output-info">
+<div *ngIf="instance.search_info_help_enabled" class="anis-result-header jumbotron row mx-0 mb-4 py-4 sticky-top output-info">
     <div class="col">
         <div class="row mb-2">
             <div class="lead">
@@ -9,7 +9,7 @@
             <p>
                 Here you can customise the list of the table columns you want to display in the result
                 table. You can then display the 
-                <a class="btn btn-outline-primary" routerLink="/instance/{{ instanceSelected }}/search/result/{{ datasetSelected }}" [queryParams]="queryParams">
+                <a class="btn btn-outline-primary" routerLink="/instance/{{ instance.name }}/search/result/{{ datasetSelected }}" [queryParams]="queryParams">
                     result table <span class="fas fa-arrow-right"></span>
                 </a>
             </p>
diff --git a/client/src/app/instance/search/components/output/output-info.component.ts b/client/src/app/instance/search/components/output/output-info.component.ts
index cb283d2a..ea4e997d 100644
--- a/client/src/app/instance/search/components/output/output-info.component.ts
+++ b/client/src/app/instance/search/components/output/output-info.component.ts
@@ -8,16 +8,17 @@
  */
 
 import { Component, Input  } from '@angular/core';
-import {SearchQueryParams} from 'src/app/instance/store/models';
-import {Dataset} from 'src/app/metamodel/models';
+
+import { SearchQueryParams } from 'src/app/instance/store/models';
+import { Instance, Dataset } from 'src/app/metamodel/models';
 
 @Component({
-  selector: 'app-output-info',
-  templateUrl: './output-info.component.html',
-  styleUrls: ['./output-info.component.scss']
+    selector: 'app-output-info',
+    templateUrl: './output-info.component.html',
+    styleUrls: ['./output-info.component.scss']
 })
 export class OutputInfoComponent {
-    @Input() instanceSelected: String;
+    @Input() instance: Instance;
     @Input() dataset: Dataset;
     @Input() datasetSelected: String;
     @Input() queryParams: SearchQueryParams;
diff --git a/client/src/app/instance/search/components/result/datatable.component.html b/client/src/app/instance/search/components/result/datatable.component.html
index 313e0285..04eadde0 100644
--- a/client/src/app/instance/search/components/result/datatable.component.html
+++ b/client/src/app/instance/search/components/result/datatable.component.html
@@ -55,7 +55,7 @@
         </tbody>
     </table>
 </div>
-<div class="row mt-3 datatable-pagination">
+<div class="row mt-3">
     <div class="col">
         Show 
         <select class="custom-select" (change)="changeNbItems($event)">
diff --git a/client/src/app/instance/search/containers/output.component.html b/client/src/app/instance/search/containers/output.component.html
index bef2a9cc..0e4cfa8a 100644
--- a/client/src/app/instance/search/containers/output.component.html
+++ b/client/src/app/instance/search/containers/output.component.html
@@ -8,7 +8,7 @@
     && (outputCategoryListIsLoaded | async)" class="row mt-4">
     <div class="col-12">
         <app-output-info
-            [instanceSelected]="instanceSelected | async"
+            [instance]="instance | async"
             [dataset]="dataset | async"
             [datasetSelected]="datasetSelected | async"
             [queryParams]="queryParams | async">
diff --git a/client/src/app/instance/store/effects/search-multiple.effects.spec.ts b/client/src/app/instance/store/effects/search-multiple.effects.spec.ts
index 68aa9995..e3d66344 100644
--- a/client/src/app/instance/store/effects/search-multiple.effects.spec.ts
+++ b/client/src/app/instance/store/effects/search-multiple.effects.spec.ts
@@ -146,6 +146,7 @@ describe('[Instance][Store] SearchMultipleEffects', () => {
                     design_text_color: '#212529',
                     design_font_family: 'Roboto, sans-serif',
                     design_logo: 'path/to/logo',
+                    design_logo_href: null,
                     design_favicon: 'path/to/favicon',
                     navbar_background_color: '#F8F9FA',
                     navbar_border_bottom_color: '#DEE2E6',
@@ -183,18 +184,19 @@ describe('[Instance][Store] SearchMultipleEffects', () => {
                     search_back_btn_color: '#6C757D',
                     search_back_btn_hover_color: '#6C757D',
                     search_back_btn_hover_text_color: '#FFFFFF',
+                    search_info_background_color: '#E9ECEF',
+                    search_info_text_color: '#000000',
+                    search_info_help_enabled: true,
                     dataset_select_btn_color: '#6C757D',
                     dataset_select_btn_hover_color: '#6C757D',
                     dataset_select_btn_hover_text_color: '#FFFFFF',
                     dataset_selected_icon_color: '#28A745',
-                    search_info_background_color: '#E9ECEF',
-                    search_info_text_color: '#000000',
-                    search_info_criterion_background_color: '#7AC29A',
-                    search_info_criterion_text_color: '#000000',
-                    search_info_btn_color: '#007BFF',
-                    search_info_btn_hover_color: '#0069D9',
-                    search_info_btn_text_color: '#FFFFFF',
+                    search_criterion_background_color: '#7AC29A',
+                    search_criterion_text_color: '#000000',
                     output_columns_selected_color: '#7AC29A',
+                    result_download_btn_color: '#007BFF',
+                    result_download_btn_hover_color: '#0069D9',
+                    result_download_btn_text_color: '#FFFFFF',
                     result_datatable_actions_btn_color: '#007BFF',
                     result_datatable_actions_btn_hover_color: '#0069D9',
                     result_datatable_actions_btn_text_color: '#FFFFFF',
@@ -289,6 +291,7 @@ describe('[Instance][Store] SearchMultipleEffects', () => {
                     design_text_color: '#212529',
                     design_font_family: 'Roboto, sans-serif',
                     design_logo: 'path/to/logo',
+                    design_logo_href: null,
                     design_favicon: 'path/to/favicon',
                     navbar_background_color: '#F8F9FA',
                     navbar_border_bottom_color: '#DEE2E6',
@@ -326,18 +329,19 @@ describe('[Instance][Store] SearchMultipleEffects', () => {
                     search_back_btn_color: '#6C757D',
                     search_back_btn_hover_color: '#6C757D',
                     search_back_btn_hover_text_color: '#FFFFFF',
+                    search_info_background_color: '#E9ECEF',
+                    search_info_text_color: '#000000',
+                    search_info_help_enabled: true,
                     dataset_select_btn_color: '#6C757D',
                     dataset_select_btn_hover_color: '#6C757D',
                     dataset_select_btn_hover_text_color: '#FFFFFF',
                     dataset_selected_icon_color: '#28A745',
-                    search_info_background_color: '#E9ECEF',
-                    search_info_text_color: '#000000',
-                    search_info_criterion_background_color: '#7AC29A',
-                    search_info_criterion_text_color: '#000000',
-                    search_info_btn_color: '#007BFF',
-                    search_info_btn_hover_color: '#0069D9',
-                    search_info_btn_text_color: '#FFFFFF',
+                    search_criterion_background_color: '#7AC29A',
+                    search_criterion_text_color: '#000000',
                     output_columns_selected_color: '#7AC29A',
+                    result_download_btn_color: '#007BFF',
+                    result_download_btn_hover_color: '#0069D9',
+                    result_download_btn_text_color: '#FFFFFF',
                     result_datatable_actions_btn_color: '#007BFF',
                     result_datatable_actions_btn_hover_color: '#0069D9',
                     result_datatable_actions_btn_text_color: '#FFFFFF',
diff --git a/client/src/app/metamodel/models/instance.model.ts b/client/src/app/metamodel/models/instance.model.ts
index 349bf014..1fe2d57e 100644
--- a/client/src/app/metamodel/models/instance.model.ts
+++ b/client/src/app/metamodel/models/instance.model.ts
@@ -31,6 +31,7 @@ export interface Instance {
     design_text_color: string;
     design_font_family: string;
     design_logo: string;
+    design_logo_href: string;
     design_favicon: string;
     navbar_background_color: string;
     navbar_border_bottom_color: string;
@@ -68,18 +69,19 @@ export interface Instance {
     search_back_btn_color: string;
     search_back_btn_hover_color: string;
     search_back_btn_hover_text_color: string;
+    search_info_background_color: string;
+    search_info_text_color: string;
+    search_info_help_enabled: boolean;
     dataset_select_btn_color: string;
     dataset_select_btn_hover_color: string;
     dataset_select_btn_hover_text_color: string;
     dataset_selected_icon_color: string;
-    search_info_background_color: string;
-    search_info_text_color: string;
-    search_info_criterion_background_color: string;
-    search_info_criterion_text_color: string;
-    search_info_btn_color: string;
-    search_info_btn_hover_color: string;
-    search_info_btn_text_color: string;
+    search_criterion_background_color: string;
+    search_criterion_text_color: string;
     output_columns_selected_color: string;
+    result_download_btn_color: string;
+    result_download_btn_hover_color: string;
+    result_download_btn_text_color: string;
     result_datatable_actions_btn_color: string;
     result_datatable_actions_btn_hover_color: string;
     result_datatable_actions_btn_text_color: string;
@@ -94,7 +96,6 @@ export interface Instance {
     result_datatable_link_color: string;
     result_datatable_link_hover_color: string;
     result_datatable_rows_selected_color: string;
-    result_datatable_pagination_text_color: string;
     samp_enabled: boolean;
     back_to_portal: boolean;
     user_menu_enabled: boolean;
diff --git a/client/src/test-data.ts b/client/src/test-data.ts
index 7b348157..0eda3461 100644
--- a/client/src/test-data.ts
+++ b/client/src/test-data.ts
@@ -61,6 +61,7 @@ export const INSTANCE_LIST: Instance[] = [
         design_text_color: '#212529',
         design_font_family: 'Roboto, sans-serif',
         design_logo: 'path/to/logo',
+        design_logo_href: null,
         design_favicon: 'path/to/favicon',
         navbar_background_color: '#F8F9FA',
         navbar_border_bottom_color: '#DEE2E6',
@@ -98,18 +99,19 @@ export const INSTANCE_LIST: Instance[] = [
         search_back_btn_color: '#6C757D',
         search_back_btn_hover_color: '#6C757D',
         search_back_btn_hover_text_color: '#FFFFFF',
+        search_info_background_color: '#E9ECEF',
+        search_info_text_color: '#000000',
+        search_info_help_enabled: true,
         dataset_select_btn_color: '#6C757D',
         dataset_select_btn_hover_color: '#6C757D',
         dataset_select_btn_hover_text_color: '#FFFFFF',
         dataset_selected_icon_color: '#28A745',
-        search_info_background_color: '#E9ECEF',
-        search_info_text_color: '#000000',
-        search_info_criterion_background_color: '#7AC29A',
-        search_info_criterion_text_color: '#000000',
-        search_info_btn_color: '#007BFF',
-        search_info_btn_hover_color: '#0069D9',
-        search_info_btn_text_color: '#FFFFFF',
+        search_criterion_background_color: '#7AC29A',
+        search_criterion_text_color: '#000000',
         output_columns_selected_color: '#7AC29A',
+        result_download_btn_color: '#007BFF',
+        result_download_btn_hover_color: '#0069D9',
+        result_download_btn_text_color: '#FFFFFF',
         result_datatable_actions_btn_color: '#007BFF',
         result_datatable_actions_btn_hover_color: '#0069D9',
         result_datatable_actions_btn_text_color: '#FFFFFF',
@@ -155,6 +157,7 @@ export const INSTANCE_LIST: Instance[] = [
         design_text_color: '#212529',
         design_font_family: 'Roboto, sans-serif',
         design_logo: 'path/to/logo',
+        design_logo_href: null,
         design_favicon: 'path/to/favicon',
         navbar_background_color: '#F8F9FA',
         navbar_border_bottom_color: '#DEE2E6',
@@ -192,18 +195,19 @@ export const INSTANCE_LIST: Instance[] = [
         search_back_btn_color: '#6C757D',
         search_back_btn_hover_color: '#6C757D',
         search_back_btn_hover_text_color: '#FFFFFF',
+        search_info_background_color: '#E9ECEF',
+        search_info_text_color: '#000000',
+        search_info_help_enabled: true,
         dataset_select_btn_color: '#6C757D',
         dataset_select_btn_hover_color: '#6C757D',
         dataset_select_btn_hover_text_color: '#FFFFFF',
         dataset_selected_icon_color: '#28A745',
-        search_info_background_color: '#E9ECEF',
-        search_info_text_color: '#000000',
-        search_info_criterion_background_color: '#7AC29A',
-        search_info_criterion_text_color: '#000000',
-        search_info_btn_color: '#007BFF',
-        search_info_btn_hover_color: '#0069D9',
-        search_info_btn_text_color: '#FFFFFF',
+        search_criterion_background_color: '#7AC29A',
+        search_criterion_text_color: '#000000',
         output_columns_selected_color: '#7AC29A',
+        result_download_btn_color: '#007BFF',
+        result_download_btn_hover_color: '#0069D9',
+        result_download_btn_text_color: '#FFFFFF',
         result_datatable_actions_btn_color: '#007BFF',
         result_datatable_actions_btn_hover_color: '#0069D9',
         result_datatable_actions_btn_text_color: '#FFFFFF',
@@ -251,6 +255,7 @@ export const INSTANCE: Instance = {
     design_text_color: '#212529',
     design_font_family: 'Roboto, sans-serif',
     design_logo: '/path/to/logo',
+    design_logo_href: null,
     design_favicon: '/path/to/favicon',
     navbar_background_color: '#F8F9FA',
     navbar_border_bottom_color: '#DEE2E6',
@@ -288,18 +293,19 @@ export const INSTANCE: Instance = {
     search_back_btn_color: '#6C757D',
     search_back_btn_hover_color: '#6C757D',
     search_back_btn_hover_text_color: '#FFFFFF',
+    search_info_background_color: '#E9ECEF',
+    search_info_text_color: '#000000',
+    search_info_help_enabled: true,
     dataset_select_btn_color: '#6C757D',
     dataset_select_btn_hover_color: '#6C757D',
     dataset_select_btn_hover_text_color: '#FFFFFF',
     dataset_selected_icon_color: '#28A745',
-    search_info_background_color: '#E9ECEF',
-    search_info_text_color: '#000000',
-    search_info_criterion_background_color: '#7AC29A',
-    search_info_criterion_text_color: '#000000',
-    search_info_btn_color: '#007BFF',
-    search_info_btn_hover_color: '#0069D9',
-    search_info_btn_text_color: '#FFFFFF',
+    search_criterion_background_color: '#7AC29A',
+    search_criterion_text_color: '#000000',
     output_columns_selected_color: '#7AC29A',
+    result_download_btn_color: '#007BFF',
+    result_download_btn_hover_color: '#0069D9',
+    result_download_btn_text_color: '#FFFFFF',
     result_datatable_actions_btn_color: '#007BFF',
     result_datatable_actions_btn_hover_color: '#0069D9',
     result_datatable_actions_btn_text_color: '#FFFFFF',
diff --git a/conf-dev/create-db.sh b/conf-dev/create-db.sh
index 0a0f996a..fddad6b1 100644
--- a/conf-dev/create-db.sh
+++ b/conf-dev/create-db.sh
@@ -8,7 +8,7 @@ set -e
 curl -d '{"label":"Test","dbname":"anis_test","dbtype":"pdo_pgsql","dbhost":"db","dbport":5432,"dblogin":"anis","dbpassword":"anis"}' --header 'Content-Type: application/json' -X POST http://localhost/database
 
 # Add default instance
-curl -d '{"name":"default","label":"Default instance","description":"Instance for the test","scientific_manager":"M. Durand","instrument":"Multiple","wavelength_domain":"Visible imaging / Spectroscopy","display":10,"data_path":"\/DEFAULT","files_path":"\/INSTANCE_FILES","public":true,"portal_logo":"","portal_color":"#7AC29A","design_background_color":"#FFFFFF","design_text_color":"#212529","design_font_family":"Roboto, sans-serif","design_logo":"/logo.png","design_favicon":"/favicon.ico","navbar_background_color":"#F8F9FA","navbar_border_bottom_color":"#DEE2E6","navbar_color_href":"#000000","navbar_font_family":"Roboto, sans-serif","navbar_sign_in_btn_color":"#28A745","navbar_user_btn_color":"#7AC29A","footer_background_color":"#F8F9FA","footer_border_top_color":"#DEE2E6","footer_text_color":"#000000","footer_logos":[{"href":"http:\/\/lam.fr","title":"Laboratoire d'\''Astrophysique de Marseille","file":"\/logo_lam_s.png","display":20},{"href":"http:\/\/www.univ-amu.fr","title":"Aix*Marseille Universit\u00e9","file":"\/logo_amu_s.png","display":30},{"href":"http:\/\/anis.lam.fr","title":"AstroNomical Information System","file":"\/cesam_anis40.png","display":50},{"href":"http:\/\/cesam.lam.fr","title":"Centre de donn\u00e9es Astrophysique de Marseille","file":"\/logo_cesam_s.png","display":10},{"href":"http:\/\/www.insu.cnrs.fr","title":"Institut National des Sciences de l'\''Univers","file":"\/logo_insu_s.png","display":40}],"family_border_color":"#DFDFDF","family_header_background_color":"#F7F7F7","family_title_color":"#007BFF","family_title_bold":false,"family_background_color":"#FFFFFF","family_text_color":"#212529","progress_bar_title":"Dataset search","progress_bar_title_color":"#000000","progress_bar_subtitle":"Select a dataset, add criteria, select output columns and display the result.","progress_bar_subtitle_color":"#6C757D","progress_bar_step_dataset_title":"Dataset selection","progress_bar_step_criteria_title":"Search criteria","progress_bar_step_output_title":"Output columns","progress_bar_step_result_title":"Result table","progress_bar_color":"#E9ECEF","progress_bar_active_color":"#7AC29A","progress_bar_circle_color":"#FFFFFF","progress_bar_circle_icon_color":"#CCCCCC","progress_bar_circle_icon_active_color":"#FFFFFF","progress_bar_text_color":"#91B2BF","search_next_btn_color":"#007BFF","search_next_btn_hover_color":"#007BFF","search_next_btn_hover_text_color":"#FFFFFF","search_back_btn_color":"#6C757D","search_back_btn_hover_color":"#6C757D","search_back_btn_hover_text_color":"#FFFFFF","dataset_select_btn_color":"#6C757D","dataset_select_btn_hover_color":"#6C757D","dataset_select_btn_hover_text_color":"#FFFFFF","dataset_selected_icon_color":"#28A745","search_info_background_color":"#E9ECEF","search_info_text_color":"#000000","search_info_criterion_background_color":"#7AC29A","search_info_criterion_text_color":"#000000","search_info_btn_color":"#007BFF","search_info_btn_hover_color":"#0069D9","search_info_btn_text_color":"#FFFFFF","output_columns_selected_color":"#7AC29A","result_datatable_actions_btn_color":"#007BFF","result_datatable_actions_btn_hover_color":"#0069D9","result_datatable_actions_btn_text_color":"#FFFFFF","result_datatable_bordered":true,"result_datatable_border_color":"#DEE2E6","result_datatable_header_background_color":"#FFFFFF","result_datatable_header_text_color":"#000000","result_datatable_rows_background_color":"#FFFFFF","result_datatable_rows_text_color":"#000000","result_datatable_sorted_color":"#C5C5C5","result_datatable_sorted_active_color":"#000000","result_datatable_link_color":"#007BFF","result_datatable_link_hover_color":"#0056B3","result_datatable_rows_selected_color":"#7AC29A","result_datatable_pagination_text_color":"#212529","samp_enabled":true,"back_to_portal":true,"user_menu_enabled":true,"search_by_criteria_allowed":true,"search_by_criteria_label":"Search","search_multiple_allowed":false,"search_multiple_label":"Search multiple","search_multiple_all_datasets_selected":false,"documentation_allowed":false,"documentation_label":"Documentation"}' --header 'Content-Type: application/json' -X POST http://localhost/instance
+curl -d '{"name":"default","label":"Default instance","description":"Instance for the test","scientific_manager":"M. Durand","instrument":"Multiple","wavelength_domain":"Visible imaging / Spectroscopy","display":10,"data_path":"\/DEFAULT","files_path":"\/INSTANCE_FILES","public":true,"portal_logo":"","portal_color":"#7AC29A","design_background_color":"#FFFFFF","design_text_color":"#212529","design_font_family":"Roboto, sans-serif","design_logo":"/logo.png","design_logo_href":null,"design_favicon":"/favicon.ico","navbar_background_color":"#F8F9FA","navbar_border_bottom_color":"#DEE2E6","navbar_color_href":"#000000","navbar_font_family":"Roboto, sans-serif","navbar_sign_in_btn_color":"#28A745","navbar_user_btn_color":"#7AC29A","footer_background_color":"#F8F9FA","footer_border_top_color":"#DEE2E6","footer_text_color":"#000000","footer_logos":[{"href":"http:\/\/lam.fr","title":"Laboratoire d'\''Astrophysique de Marseille","file":"\/logo_lam_s.png","display":20},{"href":"http:\/\/www.univ-amu.fr","title":"Aix*Marseille Universit\u00e9","file":"\/logo_amu_s.png","display":30},{"href":"http:\/\/anis.lam.fr","title":"AstroNomical Information System","file":"\/cesam_anis40.png","display":50},{"href":"http:\/\/cesam.lam.fr","title":"Centre de donn\u00e9es Astrophysique de Marseille","file":"\/logo_cesam_s.png","display":10},{"href":"http:\/\/www.insu.cnrs.fr","title":"Institut National des Sciences de l'\''Univers","file":"\/logo_insu_s.png","display":40}],"family_border_color":"#DFDFDF","family_header_background_color":"#F7F7F7","family_title_color":"#007BFF","family_title_bold":false,"family_background_color":"#FFFFFF","family_text_color":"#212529","progress_bar_title":"Dataset search","progress_bar_title_color":"#000000","progress_bar_subtitle":"Select a dataset, add criteria, select output columns and display the result.","progress_bar_subtitle_color":"#6C757D","progress_bar_step_dataset_title":"Dataset selection","progress_bar_step_criteria_title":"Search criteria","progress_bar_step_output_title":"Output columns","progress_bar_step_result_title":"Result table","progress_bar_color":"#E9ECEF","progress_bar_active_color":"#7AC29A","progress_bar_circle_color":"#FFFFFF","progress_bar_circle_icon_color":"#CCCCCC","progress_bar_circle_icon_active_color":"#FFFFFF","progress_bar_text_color":"#91B2BF","search_next_btn_color":"#007BFF","search_next_btn_hover_color":"#007BFF","search_next_btn_hover_text_color":"#FFFFFF","search_back_btn_color":"#6C757D","search_back_btn_hover_color":"#6C757D","search_back_btn_hover_text_color":"#FFFFFF","dataset_select_btn_color":"#6C757D","dataset_select_btn_hover_color":"#6C757D","dataset_select_btn_hover_text_color":"#FFFFFF","dataset_selected_icon_color":"#28A745","search_info_background_color":"#E9ECEF","search_info_text_color":"#000000","search_info_help_enabled":true,"search_criterion_background_color":"#7AC29A","search_criterion_text_color":"#000000","result_download_btn_color":"#007BFF","result_download_btn_hover_color":"#0069D9","result_download_btn_text_color":"#FFFFFF","output_columns_selected_color":"#7AC29A","result_datatable_actions_btn_color":"#007BFF","result_datatable_actions_btn_hover_color":"#0069D9","result_datatable_actions_btn_text_color":"#FFFFFF","result_datatable_bordered":true,"result_datatable_border_color":"#DEE2E6","result_datatable_header_background_color":"#FFFFFF","result_datatable_header_text_color":"#000000","result_datatable_rows_background_color":"#FFFFFF","result_datatable_rows_text_color":"#000000","result_datatable_sorted_color":"#C5C5C5","result_datatable_sorted_active_color":"#000000","result_datatable_link_color":"#007BFF","result_datatable_link_hover_color":"#0056B3","result_datatable_rows_selected_color":"#7AC29A","samp_enabled":true,"back_to_portal":true,"user_menu_enabled":true,"search_by_criteria_allowed":true,"search_by_criteria_label":"Search","search_multiple_allowed":false,"search_multiple_label":"Search multiple","search_multiple_all_datasets_selected":false,"documentation_allowed":false,"documentation_label":"Documentation"}' --header 'Content-Type: application/json' -X POST http://localhost/instance
 
 # Add dataset families
 curl -d '{"label":"Default dataset family","display":10,"opened":true}' --header 'Content-Type: application/json' -X POST http://localhost/instance/default/dataset-family
diff --git a/server/doctrine-proxy/__CG__AppEntityInstance.php b/server/doctrine-proxy/__CG__AppEntityInstance.php
index 4aa96589..4e9a62ba 100644
--- a/server/doctrine-proxy/__CG__AppEntityInstance.php
+++ b/server/doctrine-proxy/__CG__AppEntityInstance.php
@@ -67,10 +67,10 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
     public function __sleep()
     {
         if ($this->__isInitialized__) {
-            return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'portalColor', 'designBackgroundColor', 'designTextColor', 'designFontFamily', 'designLogo', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'navbarFontFamily', 'navbarSignInBtnColor', 'navbarUserBtnColor', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'footerLogos', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyBackgroundColor', 'familyTextColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarStepDatasetTitle', 'progressBarStepCriteriaTitle', 'progressBarStepOutputTitle', 'progressBarStepResultTitle', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'searchNextBtnColor', 'searchNextBtnHoverColor', 'searchNextBtnHoverTextColor', 'searchBackBtnColor', 'searchBackBtnHoverColor', 'searchBackBtnHoverTextColor', 'datasetSelectBtnColor', 'datasetSelectBtnHoverColor', 'datasetSelectBtnHoverTextColor', 'datasetSelectedIconColor', 'searchInfoBackgroundColor', 'searchInfoTextColor', 'searchInfoCriterionBackgroundColor', 'searchInfoCriterionTextColor', 'searchInfoBtnColor', 'searchInfoBtnHoverColor', 'searchInfoBtnTextColor', 'outputColumnsSelectedColor', 'resultDatatableActionsBtnColor', 'resultDatatableActionsBtnHoverColor', 'resultDatatableActionsBtnTextColor', 'resultDatatableBordered', 'resultDatatableBorderColor', 'resultDatatableHeaderBackgroundColor', 'resultDatatableHeaderTextColor', 'resultDatatableRowsBackgroundColor', 'resultDatatableRowsTextColor', 'resultDatatableSortedColor', 'resultDatatableSortedActiveColor', 'resultDatatableLinkColor', 'resultDatatableLinkHoverColor', 'resultDatatableRowsSelectedColor', 'resultDatatablePaginationTextColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
+            return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'portalColor', 'designBackgroundColor', 'designTextColor', 'designFontFamily', 'designLogo', 'designLogoHref', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'navbarFontFamily', 'navbarSignInBtnColor', 'navbarUserBtnColor', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'footerLogos', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyBackgroundColor', 'familyTextColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarStepDatasetTitle', 'progressBarStepCriteriaTitle', 'progressBarStepOutputTitle', 'progressBarStepResultTitle', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'searchNextBtnColor', 'searchNextBtnHoverColor', 'searchNextBtnHoverTextColor', 'searchBackBtnColor', 'searchBackBtnHoverColor', 'searchBackBtnHoverTextColor', 'searchInfoBackgroundColor', 'searchInfoTextColor', 'searchInfoHelpEnabled', 'datasetSelectBtnColor', 'datasetSelectBtnHoverColor', 'datasetSelectBtnHoverTextColor', 'datasetSelectedIconColor', 'searchCriterionBackgroundColor', 'searchCriterionTextColor', 'outputColumnsSelectedColor', 'resultDownloadBtnColor', 'resultDownloadBtnHoverColor', 'resultDownloadBtnTextColor', 'resultDatatableActionsBtnColor', 'resultDatatableActionsBtnHoverColor', 'resultDatatableActionsBtnTextColor', 'resultDatatableBordered', 'resultDatatableBorderColor', 'resultDatatableHeaderBackgroundColor', 'resultDatatableHeaderTextColor', 'resultDatatableRowsBackgroundColor', 'resultDatatableRowsTextColor', 'resultDatatableSortedColor', 'resultDatatableSortedActiveColor', 'resultDatatableLinkColor', 'resultDatatableLinkHoverColor', 'resultDatatableRowsSelectedColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
         }
 
-        return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'portalColor', 'designBackgroundColor', 'designTextColor', 'designFontFamily', 'designLogo', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'navbarFontFamily', 'navbarSignInBtnColor', 'navbarUserBtnColor', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'footerLogos', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyBackgroundColor', 'familyTextColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarStepDatasetTitle', 'progressBarStepCriteriaTitle', 'progressBarStepOutputTitle', 'progressBarStepResultTitle', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'searchNextBtnColor', 'searchNextBtnHoverColor', 'searchNextBtnHoverTextColor', 'searchBackBtnColor', 'searchBackBtnHoverColor', 'searchBackBtnHoverTextColor', 'datasetSelectBtnColor', 'datasetSelectBtnHoverColor', 'datasetSelectBtnHoverTextColor', 'datasetSelectedIconColor', 'searchInfoBackgroundColor', 'searchInfoTextColor', 'searchInfoCriterionBackgroundColor', 'searchInfoCriterionTextColor', 'searchInfoBtnColor', 'searchInfoBtnHoverColor', 'searchInfoBtnTextColor', 'outputColumnsSelectedColor', 'resultDatatableActionsBtnColor', 'resultDatatableActionsBtnHoverColor', 'resultDatatableActionsBtnTextColor', 'resultDatatableBordered', 'resultDatatableBorderColor', 'resultDatatableHeaderBackgroundColor', 'resultDatatableHeaderTextColor', 'resultDatatableRowsBackgroundColor', 'resultDatatableRowsTextColor', 'resultDatatableSortedColor', 'resultDatatableSortedActiveColor', 'resultDatatableLinkColor', 'resultDatatableLinkHoverColor', 'resultDatatableRowsSelectedColor', 'resultDatatablePaginationTextColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
+        return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'portalColor', 'designBackgroundColor', 'designTextColor', 'designFontFamily', 'designLogo', 'designLogoHref', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'navbarFontFamily', 'navbarSignInBtnColor', 'navbarUserBtnColor', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'footerLogos', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyBackgroundColor', 'familyTextColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarStepDatasetTitle', 'progressBarStepCriteriaTitle', 'progressBarStepOutputTitle', 'progressBarStepResultTitle', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'searchNextBtnColor', 'searchNextBtnHoverColor', 'searchNextBtnHoverTextColor', 'searchBackBtnColor', 'searchBackBtnHoverColor', 'searchBackBtnHoverTextColor', 'searchInfoBackgroundColor', 'searchInfoTextColor', 'searchInfoHelpEnabled', 'datasetSelectBtnColor', 'datasetSelectBtnHoverColor', 'datasetSelectBtnHoverTextColor', 'datasetSelectedIconColor', 'searchCriterionBackgroundColor', 'searchCriterionTextColor', 'outputColumnsSelectedColor', 'resultDownloadBtnColor', 'resultDownloadBtnHoverColor', 'resultDownloadBtnTextColor', 'resultDatatableActionsBtnColor', 'resultDatatableActionsBtnHoverColor', 'resultDatatableActionsBtnTextColor', 'resultDatatableBordered', 'resultDatatableBorderColor', 'resultDatatableHeaderBackgroundColor', 'resultDatatableHeaderTextColor', 'resultDatatableRowsBackgroundColor', 'resultDatatableRowsTextColor', 'resultDatatableSortedColor', 'resultDatatableSortedActiveColor', 'resultDatatableLinkColor', 'resultDatatableLinkHoverColor', 'resultDatatableRowsSelectedColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
     }
 
     /**
@@ -544,6 +544,28 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
         return parent::setDesignFavicon($designFavicon);
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    public function getDesignLogoHref()
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getDesignLogoHref', []);
+
+        return parent::getDesignLogoHref();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function setDesignLogoHref($designLogoHref)
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setDesignLogoHref', [$designLogoHref]);
+
+        return parent::setDesignLogoHref($designLogoHref);
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -1336,6 +1358,61 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
         return parent::setSearchBackBtnHoverTextColor($searchBackBtnHoverTextColor);
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    public function setSearchInfoBackgroundColor($searchInfoBackgroundColor)
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoBackgroundColor', [$searchInfoBackgroundColor]);
+
+        return parent::setSearchInfoBackgroundColor($searchInfoBackgroundColor);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getSearchInfoTextColor()
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoTextColor', []);
+
+        return parent::getSearchInfoTextColor();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function setSearchInfoTextColor($searchInfoTextColor)
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoTextColor', [$searchInfoTextColor]);
+
+        return parent::setSearchInfoTextColor($searchInfoTextColor);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getSearchInfoHelpEnabled()
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoHelpEnabled', []);
+
+        return parent::getSearchInfoHelpEnabled();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function setSearchInfoHelpEnabled($searchInfoHelpEnabled)
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoHelpEnabled', [$searchInfoHelpEnabled]);
+
+        return parent::setSearchInfoHelpEnabled($searchInfoHelpEnabled);
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -1438,166 +1515,133 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
     /**
      * {@inheritDoc}
      */
-    public function setSearchInfoBackgroundColor($searchInfoBackgroundColor)
-    {
-
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoBackgroundColor', [$searchInfoBackgroundColor]);
-
-        return parent::setSearchInfoBackgroundColor($searchInfoBackgroundColor);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getSearchInfoTextColor()
-    {
-
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoTextColor', []);
-
-        return parent::getSearchInfoTextColor();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setSearchInfoTextColor($searchInfoTextColor)
+    public function getSearchCriterionBackgroundColor()
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoTextColor', [$searchInfoTextColor]);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchCriterionBackgroundColor', []);
 
-        return parent::setSearchInfoTextColor($searchInfoTextColor);
+        return parent::getSearchCriterionBackgroundColor();
     }
 
     /**
      * {@inheritDoc}
      */
-    public function getSearchInfoCriterionBackgroundColor()
+    public function setSearchCriterionBackgroundColor($searchCriterionBackgroundColor)
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoCriterionBackgroundColor', []);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchCriterionBackgroundColor', [$searchCriterionBackgroundColor]);
 
-        return parent::getSearchInfoCriterionBackgroundColor();
+        return parent::setSearchCriterionBackgroundColor($searchCriterionBackgroundColor);
     }
 
     /**
      * {@inheritDoc}
      */
-    public function setSearchInfoCriterionBackgroundColor($searchInfoCriterionBackgroundColor)
+    public function getSearchCriterionTextColor()
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoCriterionBackgroundColor', [$searchInfoCriterionBackgroundColor]);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchCriterionTextColor', []);
 
-        return parent::setSearchInfoCriterionBackgroundColor($searchInfoCriterionBackgroundColor);
+        return parent::getSearchCriterionTextColor();
     }
 
     /**
      * {@inheritDoc}
      */
-    public function getSearchInfoCriterionTextColor()
+    public function setSearchCriterionTextColor($searchCriterionTextColor)
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoCriterionTextColor', []);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchCriterionTextColor', [$searchCriterionTextColor]);
 
-        return parent::getSearchInfoCriterionTextColor();
+        return parent::setSearchCriterionTextColor($searchCriterionTextColor);
     }
 
     /**
      * {@inheritDoc}
      */
-    public function setSearchInfoCriterionTextColor($searchInfoCriterionTextColor)
-    {
-
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoCriterionTextColor', [$searchInfoCriterionTextColor]);
-
-        return parent::setSearchInfoCriterionTextColor($searchInfoCriterionTextColor);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getSearchInfoBtnColor()
+    public function getOutputColumnsSelectedColor()
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoBtnColor', []);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getOutputColumnsSelectedColor', []);
 
-        return parent::getSearchInfoBtnColor();
+        return parent::getOutputColumnsSelectedColor();
     }
 
     /**
      * {@inheritDoc}
      */
-    public function setSearchInfoBtnColor($searchInfoBtnColor)
+    public function setOutputColumnsSelectedColor($outputColumnsSelectedColor)
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoBtnColor', [$searchInfoBtnColor]);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setOutputColumnsSelectedColor', [$outputColumnsSelectedColor]);
 
-        return parent::setSearchInfoBtnColor($searchInfoBtnColor);
+        return parent::setOutputColumnsSelectedColor($outputColumnsSelectedColor);
     }
 
     /**
      * {@inheritDoc}
      */
-    public function getSearchInfoBtnHoverColor()
+    public function getResultDownloadBtnColor()
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoBtnHoverColor', []);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getResultDownloadBtnColor', []);
 
-        return parent::getSearchInfoBtnHoverColor();
+        return parent::getResultDownloadBtnColor();
     }
 
     /**
      * {@inheritDoc}
      */
-    public function setSearchInfoBtnHoverColor($searchInfoBtnHoverColor)
+    public function setResultDownloadBtnColor($resultDownloadBtnColor)
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoBtnHoverColor', [$searchInfoBtnHoverColor]);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setResultDownloadBtnColor', [$resultDownloadBtnColor]);
 
-        return parent::setSearchInfoBtnHoverColor($searchInfoBtnHoverColor);
+        return parent::setResultDownloadBtnColor($resultDownloadBtnColor);
     }
 
     /**
      * {@inheritDoc}
      */
-    public function getSearchInfoBtnTextColor()
+    public function getResultDownloadBtnHoverColor()
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSearchInfoBtnTextColor', []);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getResultDownloadBtnHoverColor', []);
 
-        return parent::getSearchInfoBtnTextColor();
+        return parent::getResultDownloadBtnHoverColor();
     }
 
     /**
      * {@inheritDoc}
      */
-    public function setSearchInfoBtnTextColor($searchInfoBtnTextColor)
+    public function setResultDownloadBtnHoverColor($resultDownloadBtnHoverColor)
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSearchInfoBtnTextColor', [$searchInfoBtnTextColor]);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setResultDownloadBtnHoverColor', [$resultDownloadBtnHoverColor]);
 
-        return parent::setSearchInfoBtnTextColor($searchInfoBtnTextColor);
+        return parent::setResultDownloadBtnHoverColor($resultDownloadBtnHoverColor);
     }
 
     /**
      * {@inheritDoc}
      */
-    public function getOutputColumnsSelectedColor()
+    public function getResultDownloadBtnTextColor()
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getOutputColumnsSelectedColor', []);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getResultDownloadBtnTextColor', []);
 
-        return parent::getOutputColumnsSelectedColor();
+        return parent::getResultDownloadBtnTextColor();
     }
 
     /**
      * {@inheritDoc}
      */
-    public function setOutputColumnsSelectedColor($outputColumnsSelectedColor)
+    public function setResultDownloadBtnTextColor($resultDownloadBtnTextColor)
     {
 
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setOutputColumnsSelectedColor', [$outputColumnsSelectedColor]);
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setResultDownloadBtnTextColor', [$resultDownloadBtnTextColor]);
 
-        return parent::setOutputColumnsSelectedColor($outputColumnsSelectedColor);
+        return parent::setResultDownloadBtnTextColor($resultDownloadBtnTextColor);
     }
 
     /**
@@ -1908,28 +1952,6 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
         return parent::setResultDatatableRowsSelectedColor($resultDatatableRowsSelectedColor);
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    public function getResultDatatablePaginationTextColor()
-    {
-
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getResultDatatablePaginationTextColor', []);
-
-        return parent::getResultDatatablePaginationTextColor();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setResultDatatablePaginationTextColor($resultDatatablePaginationTextColor)
-    {
-
-        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setResultDatatablePaginationTextColor', [$resultDatatablePaginationTextColor]);
-
-        return parent::setResultDatatablePaginationTextColor($resultDatatablePaginationTextColor);
-    }
-
     /**
      * {@inheritDoc}
      */
diff --git a/server/src/Action/InstanceAction.php b/server/src/Action/InstanceAction.php
index fa098efd..79e8235b 100644
--- a/server/src/Action/InstanceAction.php
+++ b/server/src/Action/InstanceAction.php
@@ -79,6 +79,7 @@ final class InstanceAction extends AbstractAction
                 'design_text_color',
                 'design_font_family',
                 'design_logo',
+                'design_logo_href',
                 'design_favicon',
                 'navbar_background_color',
                 'navbar_border_bottom_color',
@@ -116,18 +117,19 @@ final class InstanceAction extends AbstractAction
                 'search_back_btn_color',
                 'search_back_btn_hover_color',
                 'search_back_btn_hover_text_color',
+                'search_info_background_color',
+                'search_info_text_color',
+                'search_info_help_enabled',
                 'dataset_select_btn_color',
                 'dataset_select_btn_hover_color',
                 'dataset_select_btn_hover_text_color',
                 'dataset_selected_icon_color',
-                'search_info_background_color',
-                'search_info_text_color',
-                'search_info_criterion_background_color',
-                'search_info_criterion_text_color',
-                'search_info_btn_color',
-                'search_info_btn_hover_color',
-                'search_info_btn_text_color',
+                'search_criterion_background_color',
+                'search_criterion_text_color',
                 'output_columns_selected_color',
+                'result_download_btn_color',
+                'result_download_btn_hover_color',
+                'result_download_btn_text_color',
                 'result_datatable_actions_btn_color',
                 'result_datatable_actions_btn_hover_color',
                 'result_datatable_actions_btn_text_color',
@@ -142,7 +144,6 @@ final class InstanceAction extends AbstractAction
                 'result_datatable_link_color',
                 'result_datatable_link_hover_color',
                 'result_datatable_rows_selected_color',
-                'result_datatable_pagination_text_color',
                 'samp_enabled',
                 'back_to_portal',
                 'user_menu_enabled',
@@ -203,6 +204,7 @@ final class InstanceAction extends AbstractAction
         $instance->setDesignTextColor($parsedBody['design_text_color']);
         $instance->setDesignFontFamily($parsedBody['design_font_family']);
         $instance->setDesignLogo($parsedBody['design_logo']);
+        $instance->setDesignLogoHref($parsedBody['design_logo_href']);
         $instance->setDesignFavicon($parsedBody['design_favicon']);
         $instance->setNavbarBackgroundColor($parsedBody['navbar_background_color']);
         $instance->setNavbarBorderBottomColor($parsedBody['navbar_border_bottom_color']);
@@ -240,18 +242,19 @@ final class InstanceAction extends AbstractAction
         $instance->setSearchBackBtnColor($parsedBody['search_back_btn_color']);
         $instance->setSearchBackBtnHoverColor($parsedBody['search_back_btn_hover_color']);
         $instance->setSearchBackBtnHoverTextColor($parsedBody['search_back_btn_hover_text_color']);
+        $instance->setSearchInfoBackgroundColor($parsedBody['search_info_background_color']);
+        $instance->setSearchInfoTextColor($parsedBody['search_info_text_color']);
+        $instance->setSearchInfoHelpEnabled($parsedBody['search_info_help_enabled']);
         $instance->setDatasetSelectBtnColor($parsedBody['dataset_select_btn_color']);
         $instance->setDatasetSelectBtnHoverColor($parsedBody['dataset_select_btn_hover_color']);
         $instance->setDatasetSelectBtnHoverTextColor($parsedBody['dataset_select_btn_hover_text_color']);
         $instance->setDatasetSelectedIconColor($parsedBody['dataset_selected_icon_color']);
-        $instance->setSearchInfoBackgroundColor($parsedBody['search_info_background_color']);
-        $instance->setSearchInfoTextColor($parsedBody['search_info_text_color']);
-        $instance->setSearchInfoCriterionBackgroundColor($parsedBody['search_info_criterion_background_color']);
-        $instance->setSearchInfoCriterionTextColor($parsedBody['search_info_criterion_text_color']);
-        $instance->setSearchInfoBtnColor($parsedBody['search_info_btn_color']);
-        $instance->setSearchInfoBtnHoverColor($parsedBody['search_info_btn_hover_color']);
-        $instance->setSearchInfoBtnTextColor($parsedBody['search_info_btn_text_color']);
+        $instance->setSearchCriterionBackgroundColor($parsedBody['search_criterion_background_color']);
+        $instance->setSearchCriterionTextColor($parsedBody['search_criterion_text_color']);
         $instance->setOutputColumnsSelectedColor($parsedBody['output_columns_selected_color']);
+        $instance->setResultDownloadBtnColor($parsedBody['result_download_btn_color']);
+        $instance->setResultDownloadBtnHoverColor($parsedBody['result_download_btn_hover_color']);
+        $instance->setResultDownloadBtnTextColor($parsedBody['result_download_btn_text_color']);
         $instance->setResultDatatableActionsBtnColor($parsedBody['result_datatable_actions_btn_color']);
         $instance->setResultDatatableActionsBtnHoverColor($parsedBody['result_datatable_actions_btn_hover_color']);
         $instance->setResultDatatableActionsBtnTextColor($parsedBody['result_datatable_actions_btn_text_color']);
@@ -266,7 +269,6 @@ final class InstanceAction extends AbstractAction
         $instance->setResultDatatableLinkColor($parsedBody['result_datatable_link_color']);
         $instance->setResultDatatableLinkHoverColor($parsedBody['result_datatable_link_hover_color']);
         $instance->setResultDatatableRowsSelectedColor($parsedBody['result_datatable_rows_selected_color']);
-        $instance->setResultDatatablePaginationTextColor($parsedBody['result_datatable_pagination_text_color']);
         $instance->setSampEnabled($parsedBody['samp_enabled']);
         $instance->setUserMenuEnabled($parsedBody['user_menu_enabled']);
         $instance->setBackToPortal($parsedBody['back_to_portal']);
diff --git a/server/src/Action/InstanceListAction.php b/server/src/Action/InstanceListAction.php
index 1d038867..1f993cd3 100644
--- a/server/src/Action/InstanceListAction.php
+++ b/server/src/Action/InstanceListAction.php
@@ -79,6 +79,7 @@ final class InstanceListAction extends AbstractAction
                 'design_text_color',
                 'design_font_family',
                 'design_logo',
+                'design_logo_href',
                 'design_favicon',
                 'navbar_background_color',
                 'navbar_border_bottom_color',
@@ -116,18 +117,19 @@ final class InstanceListAction extends AbstractAction
                 'search_back_btn_color',
                 'search_back_btn_hover_color',
                 'search_back_btn_hover_text_color',
+                'search_info_background_color',
+                'search_info_text_color',
+                'search_info_help_enabled',
                 'dataset_select_btn_color',
                 'dataset_select_btn_hover_color',
                 'dataset_select_btn_hover_text_color',
                 'dataset_selected_icon_color',
-                'search_info_background_color',
-                'search_info_text_color',
-                'search_info_criterion_background_color',
-                'search_info_criterion_text_color',
-                'search_info_btn_color',
-                'search_info_btn_hover_color',
-                'search_info_btn_text_color',
+                'search_criterion_background_color',
+                'search_criterion_text_color',
                 'output_columns_selected_color',
+                'result_download_btn_color',
+                'result_download_btn_hover_color',
+                'result_download_btn_text_color',
                 'result_datatable_actions_btn_color',
                 'result_datatable_actions_btn_hover_color',
                 'result_datatable_actions_btn_text_color',
@@ -142,7 +144,6 @@ final class InstanceListAction extends AbstractAction
                 'result_datatable_link_color',
                 'result_datatable_link_hover_color',
                 'result_datatable_rows_selected_color',
-                'result_datatable_pagination_text_color',
                 'samp_enabled',
                 'back_to_portal',
                 'user_menu_enabled',
@@ -197,6 +198,7 @@ final class InstanceListAction extends AbstractAction
         $instance->setDesignTextColor($parsedBody['design_text_color']);
         $instance->setDesignFontFamily($parsedBody['design_font_family']);
         $instance->setDesignLogo($parsedBody['design_logo']);
+        $instance->setDesignLogoHref($parsedBody['design_logo_href']);
         $instance->setDesignFavicon($parsedBody['design_favicon']);
         $instance->setNavbarBackgroundColor($parsedBody['navbar_background_color']);
         $instance->setNavbarBorderBottomColor($parsedBody['navbar_border_bottom_color']);
@@ -234,18 +236,19 @@ final class InstanceListAction extends AbstractAction
         $instance->setSearchBackBtnColor($parsedBody['search_back_btn_color']);
         $instance->setSearchBackBtnHoverColor($parsedBody['search_back_btn_hover_color']);
         $instance->setSearchBackBtnHoverTextColor($parsedBody['search_back_btn_hover_text_color']);
+        $instance->setSearchInfoBackgroundColor($parsedBody['search_info_background_color']);
+        $instance->setSearchInfoTextColor($parsedBody['search_info_text_color']);
+        $instance->setSearchInfoHelpEnabled($parsedBody['search_info_help_enabled']);
         $instance->setDatasetSelectBtnColor($parsedBody['dataset_select_btn_color']);
         $instance->setDatasetSelectBtnHoverColor($parsedBody['dataset_select_btn_hover_color']);
         $instance->setDatasetSelectBtnHoverTextColor($parsedBody['dataset_select_btn_hover_text_color']);
         $instance->setDatasetSelectedIconColor($parsedBody['dataset_selected_icon_color']);
-        $instance->setSearchInfoBackgroundColor($parsedBody['search_info_background_color']);
-        $instance->setSearchInfoTextColor($parsedBody['search_info_text_color']);
-        $instance->setSearchInfoCriterionBackgroundColor($parsedBody['search_info_criterion_background_color']);
-        $instance->setSearchInfoCriterionTextColor($parsedBody['search_info_criterion_text_color']);
-        $instance->setSearchInfoBtnColor($parsedBody['search_info_btn_color']);
-        $instance->setSearchInfoBtnHoverColor($parsedBody['search_info_btn_hover_color']);
-        $instance->setSearchInfoBtnTextColor($parsedBody['search_info_btn_text_color']);
+        $instance->setSearchCriterionBackgroundColor($parsedBody['search_criterion_background_color']);
+        $instance->setSearchCriterionTextColor($parsedBody['search_criterion_text_color']);
         $instance->setOutputColumnsSelectedColor($parsedBody['output_columns_selected_color']);
+        $instance->setResultDownloadBtnColor($parsedBody['result_download_btn_color']);
+        $instance->setResultDownloadBtnHoverColor($parsedBody['result_download_btn_hover_color']);
+        $instance->setResultDownloadBtnTextColor($parsedBody['result_download_btn_text_color']);
         $instance->setResultDatatableActionsBtnColor($parsedBody['result_datatable_actions_btn_color']);
         $instance->setResultDatatableActionsBtnHoverColor($parsedBody['result_datatable_actions_btn_hover_color']);
         $instance->setResultDatatableActionsBtnTextColor($parsedBody['result_datatable_actions_btn_text_color']);
@@ -260,7 +263,6 @@ final class InstanceListAction extends AbstractAction
         $instance->setResultDatatableLinkColor($parsedBody['result_datatable_link_color']);
         $instance->setResultDatatableLinkHoverColor($parsedBody['result_datatable_link_hover_color']);
         $instance->setResultDatatableRowsSelectedColor($parsedBody['result_datatable_rows_selected_color']);
-        $instance->setResultDatatablePaginationTextColor($parsedBody['result_datatable_pagination_text_color']);
         $instance->setSampEnabled($parsedBody['samp_enabled']);
         $instance->setBackToPortal($parsedBody['back_to_portal']);
         $instance->setUserMenuEnabled($parsedBody['user_menu_enabled']);
diff --git a/server/src/Entity/Instance.php b/server/src/Entity/Instance.php
index 71c4eeab..2956b603 100644
--- a/server/src/Entity/Instance.php
+++ b/server/src/Entity/Instance.php
@@ -136,6 +136,13 @@ class Instance implements \JsonSerializable
      */
     protected $designLogo;
 
+    /**
+     * @var string
+     *
+     * @Column(type="string", name="design_logo_href", nullable=true)
+     */
+    protected $designLogoHref;
+
     /**
      * @var string
      *
@@ -410,92 +417,99 @@ class Instance implements \JsonSerializable
     /**
      * @var string
      *
-     * @Column(type="string", name="dataset_select_btn_color", nullable=false, options={"default" : "#6C757D"})
+     * @Column(type="string", name="search_info_background_color", nullable=false, options={"default" : "#E9ECEF"})
      */
-    protected $datasetSelectBtnColor;
+    protected $searchInfoBackgroundColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="dataset_select_btn_hover_color", nullable=false, options={"default" : "#6C757D"})
+     * @Column(type="string", name="search_info_text_color", nullable=false, options={"default" : "#000000"})
      */
-    protected $datasetSelectBtnHoverColor;
+    protected $searchInfoTextColor;
+
+    /**
+     * @var bool
+     *
+     * @Column(type="boolean", name="search_info_help_enabled", nullable=false, options={"default" : true})
+     */
+    protected $searchInfoHelpEnabled;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="dataset_select_btn_hover_text_color", nullable=false, options={
-     *     "default" : "#FFFFFF"
-     * })
+     * @Column(type="string", name="dataset_select_btn_color", nullable=false, options={"default" : "#6C757D"})
      */
-    protected $datasetSelectBtnHoverTextColor;
+    protected $datasetSelectBtnColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="dataset_selected_icon_color", nullable=false, options={"default" : "#28A745"})
+     * @Column(type="string", name="dataset_select_btn_hover_color", nullable=false, options={"default" : "#6C757D"})
      */
-    protected $datasetSelectedIconColor;
+    protected $datasetSelectBtnHoverColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_background_color", nullable=false, options={"default" : "#E9ECEF"})
+     * @Column(type="string", name="dataset_select_btn_hover_text_color", nullable=false, options={
+     *     "default" : "#FFFFFF"
+     * })
      */
-    protected $searchInfoBackgroundColor;
+    protected $datasetSelectBtnHoverTextColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_text_color", nullable=false, options={"default" : "#000000"})
+     * @Column(type="string", name="dataset_selected_icon_color", nullable=false, options={"default" : "#28A745"})
      */
-    protected $searchInfoTextColor;
+    protected $datasetSelectedIconColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_criterion_background_color", nullable=false, options={
+     * @Column(type="string", name="search_criterion_background_color", nullable=false, options={
      *     "default" : "#7AC29A"
      * })
      */
-    protected $searchInfoCriterionBackgroundColor;
+    protected $searchCriterionBackgroundColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_criterion_text_color", nullable=false, options={
+     * @Column(type="string", name="search_criterion_text_color", nullable=false, options={
      *     "default" : "#000000"
      * })
      */
-    protected $searchInfoCriterionTextColor;
+    protected $searchCriterionTextColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_btn_color", nullable=false, options={"default" : "#007BFF"})
+     * @Column(type="string", name="output_columns_selected_color", nullable=false, options={"default" : "#7AC29A"})
      */
-    protected $searchInfoBtnColor;
+    protected $outputColumnsSelectedColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_btn_hover_color", nullable=false, options={"default" : "#0069D9"})
+     * @Column(type="string", name="result_download_btn_color", nullable=false, options={"default" : "#007BFF"})
      */
-    protected $searchInfoBtnHoverColor;
+    protected $resultDownloadBtnColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="search_info_btn_text_color", nullable=false, options={"default" : "#FFFFFF"})
+     * @Column(type="string", name="result_download_btn_hover_color", nullable=false, options={"default" : "#0069D9"})
      */
-    protected $searchInfoBtnTextColor;
+    protected $resultDownloadBtnHoverColor;
 
     /**
      * @var string
      *
-     * @Column(type="string", name="output_columns_selected_color", nullable=false, options={"default" : "#7AC29A"})
+     * @Column(type="string", name="result_download_btn_text_color", nullable=false, options={"default" : "#FFFFFF"})
      */
-    protected $outputColumnsSelectedColor;
+    protected $resultDownloadBtnTextColor;
 
     /**
      * @var string
@@ -615,15 +629,6 @@ class Instance implements \JsonSerializable
      */
     protected $resultDatatableRowsSelectedColor;
 
-    /**
-     * @var string
-     *
-     * @Column(type="string", name="result_datatable_pagination_text_color", nullable=false, options={
-     *     "default" : "#212529"
-     * })
-     */
-    protected $resultDatatablePaginationTextColor;
-
     /**
      * @var bool
      *
@@ -873,6 +878,16 @@ class Instance implements \JsonSerializable
         $this->designFavicon = $designFavicon;
     }
 
+    public function getDesignLogoHref()
+    {
+        return $this->designLogoHref;
+    }
+
+    public function setDesignLogoHref($designLogoHref)
+    {
+        $this->designLogoHref = $designLogoHref;
+    }
+
     public function getNavbarBackgroundColor()
     {
         return $this->navbarBackgroundColor;
@@ -1233,6 +1248,31 @@ class Instance implements \JsonSerializable
         $this->searchBackBtnHoverTextColor = $searchBackBtnHoverTextColor;
     }
 
+    public function setSearchInfoBackgroundColor($searchInfoBackgroundColor)
+    {
+        $this->searchInfoBackgroundColor = $searchInfoBackgroundColor;
+    }
+
+    public function getSearchInfoTextColor()
+    {
+        return $this->searchInfoTextColor;
+    }
+
+    public function setSearchInfoTextColor($searchInfoTextColor)
+    {
+        $this->searchInfoTextColor = $searchInfoTextColor;
+    }
+
+    public function getSearchInfoHelpEnabled()
+    {
+        return $this->searchInfoHelpEnabled;
+    }
+
+    public function setSearchInfoHelpEnabled($searchInfoHelpEnabled)
+    {
+        $this->searchInfoHelpEnabled = $searchInfoHelpEnabled;
+    }
+
     public function getDatasetSelectBtnColor()
     {
         return $this->datasetSelectBtnColor;
@@ -1278,79 +1318,64 @@ class Instance implements \JsonSerializable
         return $this->searchInfoBackgroundColor;
     }
 
-    public function setSearchInfoBackgroundColor($searchInfoBackgroundColor)
-    {
-        $this->searchInfoBackgroundColor = $searchInfoBackgroundColor;
-    }
-
-    public function getSearchInfoTextColor()
-    {
-        return $this->searchInfoTextColor;
-    }
-
-    public function setSearchInfoTextColor($searchInfoTextColor)
+    public function getSearchCriterionBackgroundColor()
     {
-        $this->searchInfoTextColor = $searchInfoTextColor;
+        return $this->searchCriterionBackgroundColor;
     }
 
-    public function getSearchInfoCriterionBackgroundColor()
+    public function setSearchCriterionBackgroundColor($searchCriterionBackgroundColor)
     {
-        return $this->searchInfoCriterionBackgroundColor;
+        $this->searchCriterionBackgroundColor = $searchCriterionBackgroundColor;
     }
 
-    public function setSearchInfoCriterionBackgroundColor($searchInfoCriterionBackgroundColor)
+    public function getSearchCriterionTextColor()
     {
-        $this->searchInfoCriterionBackgroundColor = $searchInfoCriterionBackgroundColor;
+        return $this->searchCriterionTextColor;
     }
 
-    public function getSearchInfoCriterionTextColor()
+    public function setSearchCriterionTextColor($searchCriterionTextColor)
     {
-        return $this->searchInfoCriterionTextColor;
+        $this->searchCriterionTextColor = $searchCriterionTextColor;
     }
 
-    public function setSearchInfoCriterionTextColor($searchInfoCriterionTextColor)
+    public function getOutputColumnsSelectedColor()
     {
-        $this->searchInfoCriterionTextColor = $searchInfoCriterionTextColor;
+        return $this->outputColumnsSelectedColor;
     }
 
-    public function getSearchInfoBtnColor()
+    public function setOutputColumnsSelectedColor($outputColumnsSelectedColor)
     {
-        return $this->searchInfoBtnColor;
+        $this->outputColumnsSelectedColor = $outputColumnsSelectedColor;
     }
 
-    public function setSearchInfoBtnColor($searchInfoBtnColor)
+    public function getResultDownloadBtnColor()
     {
-        $this->searchInfoBtnColor = $searchInfoBtnColor;
+        return $this->resultDownloadBtnColor;
     }
 
-    public function getSearchInfoBtnHoverColor()
+    public function setResultDownloadBtnColor($resultDownloadBtnColor)
     {
-        return $this->searchInfoBtnHoverColor;
+        $this->resultDownloadBtnColor = $resultDownloadBtnColor;
     }
 
-    public function setSearchInfoBtnHoverColor($searchInfoBtnHoverColor)
+    public function getResultDownloadBtnHoverColor()
     {
-        $this->searchInfoBtnHoverColor = $searchInfoBtnHoverColor;
+        return $this->resultDownloadBtnHoverColor;
     }
 
-    public function getSearchInfoBtnTextColor()
+    public function setResultDownloadBtnHoverColor($resultDownloadBtnHoverColor)
     {
-        return $this->searchInfoBtnTextColor;
+        $this->resultDownloadBtnHoverColor = $resultDownloadBtnHoverColor;
     }
 
-    public function setSearchInfoBtnTextColor($searchInfoBtnTextColor)
+    public function getResultDownloadBtnTextColor()
     {
-        $this->searchInfoBtnTextColor = $searchInfoBtnTextColor;
+        return $this->resultDownloadBtnTextColor;
     }
 
-    public function getOutputColumnsSelectedColor()
+    public function setResultDownloadBtnTextColor($resultDownloadBtnTextColor)
     {
-        return $this->outputColumnsSelectedColor;
-    }
-
-    public function setOutputColumnsSelectedColor($outputColumnsSelectedColor)
-    {
-        $this->outputColumnsSelectedColor = $outputColumnsSelectedColor;
+        $this->resultDownloadBtnTextColor = $resultDownloadBtnTextColor;
     }
 
     public function getResultDatatableActionsBtnColor()
@@ -1493,16 +1518,6 @@ class Instance implements \JsonSerializable
         $this->resultDatatableRowsSelectedColor = $resultDatatableRowsSelectedColor;
     }
 
-    public function getResultDatatablePaginationTextColor()
-    {
-        return $this->resultDatatablePaginationTextColor;
-    }
-
-    public function setResultDatatablePaginationTextColor($resultDatatablePaginationTextColor)
-    {
-        $this->resultDatatablePaginationTextColor = $resultDatatablePaginationTextColor;
-    }
-
     public function getSampEnabled()
     {
         return $this->sampEnabled;
@@ -1636,6 +1651,7 @@ class Instance implements \JsonSerializable
             'design_text_color' => $this->getDesignTextColor(),
             'design_font_family' => $this->getDesignFontFamily(),
             'design_logo' => $this->getDesignLogo(),
+            'design_logo_href' => $this->getDesignLogoHref(),
             'design_favicon' => $this->getDesignFavicon(),
             'navbar_background_color' => $this->getNavbarBackgroundColor(),
             'navbar_border_bottom_color' => $this->getNavbarBorderBottomColor(),
@@ -1673,18 +1689,19 @@ class Instance implements \JsonSerializable
             'search_back_btn_color' => $this->getSearchBackBtnColor(),
             'search_back_btn_hover_color' => $this->getSearchBackBtnHoverColor(),
             'search_back_btn_hover_text_color' => $this->getSearchBackBtnHoverTextColor(),
+            'search_info_background_color' => $this->getSearchInfoBackgroundColor(),
+            'search_info_text_color' => $this->getSearchInfoTextColor(),
+            'search_info_help_enabled' => $this->getSearchInfoHelpEnabled(),
             'dataset_select_btn_color' => $this->getDatasetSelectBtnColor(),
             'dataset_select_btn_hover_color' => $this->getDatasetSelectBtnHoverColor(),
             'dataset_select_btn_hover_text_color' => $this->getDatasetSelectBtnHoverTextColor(),
             'dataset_selected_icon_color' => $this->getDatasetSelectedIconColor(),
-            'search_info_background_color' => $this->getSearchInfoBackgroundColor(),
-            'search_info_text_color' => $this->getSearchInfoTextColor(),
-            'search_info_criterion_background_color' => $this->getSearchInfoCriterionBackgroundColor(),
-            'search_info_criterion_text_color' => $this->getSearchInfoCriterionTextColor(),
-            'search_info_btn_color' => $this->getSearchInfoBtnColor(),
-            'search_info_btn_hover_color' => $this->getSearchInfoBtnHoverColor(),
-            'search_info_btn_text_color' => $this->getSearchInfoBtnTextColor(),
+            'search_criterion_background_color' => $this->getSearchCriterionBackgroundColor(),
+            'search_criterion_text_color' => $this->getSearchCriterionTextColor(),
             'output_columns_selected_color' => $this->getOutputColumnsSelectedColor(),
+            'result_download_btn_color' => $this->getResultDownloadBtnColor(),
+            'result_download_btn_hover_color' => $this->getResultDownloadBtnHoverColor(),
+            'result_download_btn_text_color' => $this->getResultDownloadBtnTextColor(),
             'result_datatable_actions_btn_color' => $this->getResultDatatableActionsBtnColor(),
             'result_datatable_actions_btn_hover_color' => $this->getResultDatatableActionsBtnHoverColor(),
             'result_datatable_actions_btn_text_color' => $this->getResultDatatableActionsBtnTextColor(),
@@ -1699,7 +1716,6 @@ class Instance implements \JsonSerializable
             'result_datatable_link_color' => $this->getResultDatatableLinkColor(),
             'result_datatable_link_hover_color' => $this->getResultDatatableLinkHoverColor(),
             'result_datatable_rows_selected_color' => $this->getResultDatatableRowsSelectedColor(),
-            'result_datatable_pagination_text_color' => $this->getResultDatatablePaginationTextColor(),
             'samp_enabled' => $this->getSampEnabled(),
             'back_to_portal' => $this->getBackToPortal(),
             'user_menu_enabled' => $this->getUserMenuEnabled(),
diff --git a/server/tests/Action/InstanceActionTest.php b/server/tests/Action/InstanceActionTest.php
index 094e8777..35af3e72 100644
--- a/server/tests/Action/InstanceActionTest.php
+++ b/server/tests/Action/InstanceActionTest.php
@@ -93,6 +93,7 @@ final class InstanceActionTest extends TestCase
             'design_text_color' => '#212529',
             'design_font_family' => 'Roboto, sans-serif',
             'design_logo' => 'logo.png',
+            'design_logo_href' => null,
             'design_favicon' => 'favicon.ico',
             'navbar_background_color' => '#F8F9FA',
             'navbar_border_bottom_color' => '#DEE2E6',
@@ -130,18 +131,19 @@ final class InstanceActionTest extends TestCase
             'search_back_btn_color' => '#6C757D',
             'search_back_btn_hover_color' => '#6C757D',
             'search_back_btn_hover_text_color' => '#FFFFFF',
+            'search_info_background_color' => '#E9ECEF',
+            'search_info_text_color' => '#000000',
+            'search_info_help_enabled' => true,
             'dataset_select_btn_color' => '#6C757D',
             'dataset_select_btn_hover_color' => '#6C757D',
             'dataset_select_btn_hover_text_color' => '#FFFFFF',
             'dataset_selected_icon_color' => '#28A745',
-            'search_info_background_color' => '#E9ECEF',
-            'search_info_text_color' => '#000000',
-            'search_info_criterion_background_color' => '#7AC29A',
-            'search_info_criterion_text_color' => '#000000',
-            'search_info_btn_color' => '#007BFF',
-            'search_info_btn_hover_color' => '#0069D9',
-            'search_info_btn_text_color' => '#FFFFFF',
+            'search_criterion_background_color' => '#7AC29A',
+            'search_criterion_text_color' => '#000000',
             'output_columns_selected_color' => '#7AC29A',
+            'result_download_btn_color' => '#007BFF',
+            'result_download_btn_hover_color' => '#0069D9',
+            'result_download_btn_text_color' => '#FFFFFF',
             'result_datatable_actions_btn_color' => '#007BFF',
             'result_datatable_actions_btn_hover_color' => '#0069D9',
             'result_datatable_actions_btn_text_color' => '#FFFFFF',
@@ -156,7 +158,6 @@ final class InstanceActionTest extends TestCase
             'result_datatable_link_color' => '#007BFF',
             'result_datatable_link_hover_color' => '#0056B3',
             'result_datatable_rows_selected_color' => '#7AC29A',
-            'result_datatable_pagination_text_color' => '#212529',
             'samp_enabled' => true,
             'back_to_portal' => true,
             'user_menu_enabled' => true,
diff --git a/server/tests/Action/InstanceListActionTest.php b/server/tests/Action/InstanceListActionTest.php
index 6d13f3e2..6b427cc0 100644
--- a/server/tests/Action/InstanceListActionTest.php
+++ b/server/tests/Action/InstanceListActionTest.php
@@ -77,6 +77,7 @@ final class InstanceListActionTest extends TestCase
             'design_text_color' => '#212529',
             'design_font_family' => 'Roboto, sans-serif',
             'design_logo' => 'logo.png',
+            'design_logo_href' => null,
             'design_favicon' => 'favicon.ico',
             'navbar_background_color' => '#F8F9FA',
             'navbar_border_bottom_color' => '#DEE2E6',
@@ -114,18 +115,19 @@ final class InstanceListActionTest extends TestCase
             'search_back_btn_color' => '#6C757D',
             'search_back_btn_hover_color' => '#6C757D',
             'search_back_btn_hover_text_color' => '#FFFFFF',
+            'search_info_background_color' => '#E9ECEF',
+            'search_info_text_color' => '#000000',
+            'search_info_help_enabled' => true,
             'dataset_select_btn_color' => '#6C757D',
             'dataset_select_btn_hover_color' => '#6C757D',
             'dataset_select_btn_hover_text_color' => '#FFFFFF',
             'dataset_selected_icon_color' => '#28A745',
-            'search_info_background_color' => '#E9ECEF',
-            'search_info_text_color' => '#000000',
-            'search_info_criterion_background_color' => '#7AC29A',
-            'search_info_criterion_text_color' => '#000000',
-            'search_info_btn_color' => '#007BFF',
-            'search_info_btn_hover_color' => '#0069D9',
-            'search_info_btn_text_color' => '#FFFFFF',
+            'search_criterion_background_color' => '#7AC29A',
+            'search_criterion_text_color' => '#000000',
             'output_columns_selected_color' => '#7AC29A',
+            'result_download_btn_color' => '#007BFF',
+            'result_download_btn_hover_color' => '#0069D9',
+            'result_download_btn_text_color' => '#FFFFFF',
             'result_datatable_actions_btn_color' => '#007BFF',
             'result_datatable_actions_btn_hover_color' => '#0069D9',
             'result_datatable_actions_btn_text_color' => '#FFFFFF',
@@ -140,7 +142,6 @@ final class InstanceListActionTest extends TestCase
             'result_datatable_link_color' => '#007BFF',
             'result_datatable_link_hover_color' => '#0056B3',
             'result_datatable_rows_selected_color' => '#7AC29A',
-            'result_datatable_pagination_text_color' => '#212529',
             'samp_enabled' => true,
             'back_to_portal' => true,
             'user_menu_enabled' => true,
-- 
GitLab