From 86d2649c3900be832a1d45b84d5c5621c8298313 Mon Sep 17 00:00:00 2001
From: ge54hev <m.oubounyt@tum.de>
Date: Mon, 6 Apr 2020 16:56:19 +0200
Subject: [PATCH] collabs cards

---
 .../explorer-page.component.html              | 204 ++++++++++--------
 .../explorer-page/explorer-page.component.ts  |   5 +
 2 files changed, 125 insertions(+), 84 deletions(-)

diff --git a/src/app/pages/explorer-page/explorer-page.component.html b/src/app/pages/explorer-page/explorer-page.component.html
index 19df29a1..40624c92 100644
--- a/src/app/pages/explorer-page/explorer-page.component.html
+++ b/src/app/pages/explorer-page/explorer-page.component.html
@@ -79,14 +79,21 @@
         <i class="fas fa-filter" aria-hidden="true"></i>
       </span> Filter Viral Proteins
             </p>
+            <a (click)="collabsDFilter = !collabsDFilter" data-action="collapse" class="card-header-icon is-hidden-fullscreen" aria-label="more options">
+              <span class="icon">
+                <i class="fas fa-angle-down" aria-hidden="true"></i>
+              </span>
+            </a>
           </header>
-          <div class="card-content overflow">
-            <div *ngFor="let bait of viralProteinCheckboxes">
-              <label class="checkbox">
-                <input type="checkbox" class="checkbox" [ngModel]="bait.checked"
-                       (ngModelChange)="bait.checked = $event; filterNodes()">
-                {{ bait.data.effectName }}
-              </label>
+          <div *ngIf="collabsDFilter">
+            <div class="card-content overflow">
+              <div *ngFor="let bait of viralProteinCheckboxes">
+                <label class="checkbox">
+                  <input type="checkbox" class="checkbox" [ngModel]="bait.checked"
+                         (ngModelChange)="bait.checked = $event; filterNodes()">
+                  {{ bait.data.effectName }}
+                </label>
+              </div>
             </div>
           </div>
           <footer class="card-footer">
@@ -158,42 +165,49 @@
         <i class="fas fa-info" aria-hidden="true"></i>
       </span> {{currentProteinAc}}
         </p>
+        <a (click)="collabsDetails = !collabsDetails" data-action="collapse" class="card-header-icon is-hidden-fullscreen" aria-label="more options">
+          <span class="icon">
+            <i class="fas fa-angle-down" aria-hidden="true"></i>
+          </span>
+        </a>
       </header>
-      <div class="card-content">
-        <div *ngIf="showDetails">
-          <p><b>Protein Name:</b> {{ currentProteinAc }}</p>
-          <p><b>Protein AC(s):</b>
-            <a href="https://www.uniprot.org/uniprot/{{proteinAc}}" target="_blank"
-               *ngFor="let proteinAc of proteinAcs">
-              {{ proteinAc }}
-            </a>
-          </p>
-          <div class="field has-addons add-remove-toggle">
-            <p class="control">
-              <button class="button is-rounded" [class.is-success]="!inSelection(currentProteinAc)"
-                      [disabled]="inSelection(currentProteinAc)"
-                      (click)="addToSelection(currentProteinAc)">
-                <span class="icon is-small">
-                  <i class="fas fa-plus"></i>
-                </span>
-                <span>Add to Analysis</span>
-              </button>
-            </p>
-            <p class="control">
-              <button class="button is-rounded" [class.is-danger]="inSelection(currentProteinAc)"
-                      [disabled]="!inSelection(currentProteinAc)"
-                      (click)="removeFromSelection(currentProteinAc)">
-                <span>Remove</span>
-                <span class="icon is-small">
-                  <i class="fas fa-trash"></i>
-                </span>
-              </button>
+      <div *ngIf="collabsDetails">
+        <div class="card-content">
+          <div *ngIf="showDetails">
+            <p><b>Protein Name:</b> {{ currentProteinAc }}</p>
+            <p><b>Protein AC(s):</b>
+              <a href="https://www.uniprot.org/uniprot/{{proteinAc}}" target="_blank"
+                 *ngFor="let proteinAc of proteinAcs">
+                {{ proteinAc }}
+              </a>
             </p>
+            <div class="field has-addons add-remove-toggle">
+              <p class="control">
+                <button class="button is-rounded" [class.is-success]="!inSelection(currentProteinAc)"
+                        [disabled]="inSelection(currentProteinAc)"
+                        (click)="addToSelection(currentProteinAc)">
+                  <span class="icon is-small">
+                    <i class="fas fa-plus"></i>
+                  </span>
+                  <span>Add to Analysis</span>
+                </button>
+              </p>
+              <p class="control">
+                <button class="button is-rounded" [class.is-danger]="inSelection(currentProteinAc)"
+                        [disabled]="!inSelection(currentProteinAc)"
+                        (click)="removeFromSelection(currentProteinAc)">
+                  <span>Remove</span>
+                  <span class="icon is-small">
+                    <i class="fas fa-trash"></i>
+                  </span>
+                </button>
+              </p>
+            </div>
+          </div>
+          <div *ngIf="!showDetails">
+            Please select a node for further information.
+            <!--          <a (click)="selectedAnalysisToken = 'oy4UsXfBDobTucdQBhN9IUzfnpqKwzqx'"> Open Analysis Window </a>-->
           </div>
-        </div>
-        <div *ngIf="!showDetails">
-          Please select a node for further information.
-          <!--          <a (click)="selectedAnalysisToken = 'oy4UsXfBDobTucdQBhN9IUzfnpqKwzqx'"> Open Analysis Window </a>-->
         </div>
       </div>
     </div>
@@ -205,18 +219,25 @@
         <i class="fas fa-flask" aria-hidden="true"></i>
       </span> Analysis
         </p>
-      </header>
-      <div class="card-content">
-        <button (click)="showAnalysisDialog = true"
-                class="button is-primary is-fullwidth is-rounded"
-                [disabled]="analysis.getCount() === 0">
+        <a (click)="collabsAnalysis = !collabsAnalysis" data-action="collapse" class="card-header-icon is-hidden-fullscreen" aria-label="more options">
           <span class="icon">
-            <i class="fa fa-rocket"></i>
-          </span>
-          <span>
-            Launch Analysis
+            <i class="fas fa-angle-down" aria-hidden="true"></i>
           </span>
-        </button>
+        </a>
+      </header>
+      <div *ngIf="collabsAnalysis">
+        <div class="card-content">
+          <button (click)="showAnalysisDialog = true"
+                  class="button is-primary is-fullwidth is-rounded"
+                  [disabled]="analysis.getCount() === 0">
+            <span class="icon">
+              <i class="fa fa-rocket"></i>
+            </span>
+            <span>
+              Launch Analysis
+            </span>
+          </button>
+        </div>
       </div>
     </div>
 
@@ -227,22 +248,30 @@
               <i class="fas fa-filter" aria-hidden="true"></i>
             </span> Tasks
         </p>
-      </header>
-      <div class="card-content overflow">
-        <app-task-list [(token)]="selectedAnalysisToken"></app-task-list>
-      </div>
-      <footer class="card-footer">
-        <a (click)="analysis.removeAllTasks();" class="card-footer-item has-text-danger">
+        <a (click)="collabsTask = !collabsTask" data-action="collapse" class="card-header-icon is-hidden-fullscreen" aria-label="more options">
           <span class="icon">
-              <i class="fa fa-trash"></i>
-            </span>
-          <span>
-              Delete All
-            </span>
+            <i class="fas fa-angle-down" aria-hidden="true"></i>
+          </span>
         </a>
-      </footer>
+      </header>
+      <div *ngIf="collabsTask">
+        <div class="card-content overflow">
+          <app-task-list [(token)]="selectedAnalysisToken"></app-task-list>
+        </div>
+        <footer class="card-footer">
+          <a (click)="analysis.removeAllTasks();" class="card-footer-item has-text-danger">
+            <span class="icon">
+                <i class="fa fa-trash"></i>
+              </span>
+            <span>
+                Delete All
+              </span>
+          </a>
+        </footer>
+      </div>
     </div>
 
+
     <div class="card bar-large">
       <header class="card-header">
         <p class="card-header-title">
@@ -250,29 +279,36 @@
               <i class="fas fa-filter" aria-hidden="true"></i>
             </span> Selection
         </p>
+        <a (click)="collabsSelection = !collabsSelection" data-action="collapse" class="card-header-icon is-hidden-fullscreen" aria-label="more options">
+          <span class="icon">
+            <i class="fas fa-angle-down" aria-hidden="true"></i>
+          </span>
+        </a>
       </header>
-      <div class="card-content overflow">
-        <table class="table" *ngIf="analysis.getCount() > 0">
-          <thead>
-          <tr>
-            <td>AC</td>
-            <td>Actions</td>
-          </tr>
-          </thead>
-          <tbody>
-          <tr *ngFor="let p of analysis.getSelection()">
-            <td>{{p.proteinAc}}</td>
-            <td>
-              <button (click)="analysis.removeProtein(p)" class="button is-small is-danger is-outlined">
-                <i class="fa fa-trash"></i>
-              </button>
-            </td>
-          </tr>
-          </tbody>
-        </table>
-        <i *ngIf="analysis.getCount() === 0">
-          To select proteins, click them while pressing CTRL.
-        </i>
+      <div *ngIf="collabsSelection">
+        <div class="card-content overflow">
+          <table class="table" *ngIf="analysis.getCount() > 0">
+            <thead>
+            <tr>
+              <td>AC</td>
+              <td>Actions</td>
+            </tr>
+            </thead>
+            <tbody>
+            <tr *ngFor="let p of analysis.getSelection()">
+              <td>{{p.proteinAc}}</td>
+              <td>
+                <button (click)="analysis.removeProtein(p)" class="button is-small is-danger is-outlined">
+                  <i class="fa fa-trash"></i>
+                </button>
+              </td>
+            </tr>
+            </tbody>
+          </table>
+          <i *ngIf="analysis.getCount() === 0">
+            To select proteins, click them while pressing CTRL.
+          </i>
+        </div>
       </div>
       <footer class="card-footer">
         <a (click)="addAllHostProteins()" class="card-footer-item has-text-success">
diff --git a/src/app/pages/explorer-page/explorer-page.component.ts b/src/app/pages/explorer-page/explorer-page.component.ts
index 49d9a839..1ff727b2 100644
--- a/src/app/pages/explorer-page/explorer-page.component.ts
+++ b/src/app/pages/explorer-page/explorer-page.component.ts
@@ -23,6 +23,11 @@ declare var vis: any;
 export class ExplorerPageComponent implements OnInit, AfterViewInit {
 
   public showDetails = false;
+  public collabsAnalysis = true;
+  public collabsDetails = true;
+  public collabsTask = true;
+  public collabsSelection = true;
+  public collabsDFilter = true;
   public currentProteinAc = '';
   public geneNames: Array<string> = [];
   public proteinNames: Array<string> = [];
-- 
GitLab