You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by aa...@apache.org on 2020/06/16 20:39:03 UTC

[airavata-mft-portal] 24/26: added sort by name and size

This is an automated email from the ASF dual-hosted git repository.

aarushi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-mft-portal.git

commit 071fe017437246fb9988cee318c2f437cc7fcc30
Author: Akhil Nagulavancha <ak...@Akhils-MacBook-Pro.local>
AuthorDate: Fri Jun 12 14:41:13 2020 -0400

    added sort by name and size
---
 .../airavata_mft_workspace/js/containers/Storage.vue     | 16 +++++++++++-----
 .../js/containers/StorageResources.vue                   |  9 +++++++--
 airavata_mft/apps/workspace/views.py                     | 14 +++++++-------
 airavata_mft/templates/base.html                         |  2 --
 4 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/Storage.vue b/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/Storage.vue
index 8a5ba87..6c671fd 100644
--- a/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/Storage.vue
+++ b/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/Storage.vue
@@ -9,14 +9,14 @@
                     <div class="dropdown">
                         <button class="btn btn-sm btn-outline-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Sort by</button>
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
-                            <a class="dropdown-item" href="#">Name</a>
-                            <a class="dropdown-item" href="#">Size</a>
+                            <a class="dropdown-item" href="#" @click="sortBy('name')">Name</a>
+                            <a class="dropdown-item" href="#" @click="sortBy('size')">Size</a>
                         </div>
                     </div>
                 </div>
                 <div class="btn-group mr-4" role="group">
-                    <button class="btn btn-sm btn-outline-secondary list"><i class="fa fa-bars"></i></button>
-                    <button class="btn btn-sm btn-outline-secondary list"><i class="fa fa-th"></i></button>
+                    <button class="btn btn-sm btn-outline-secondary list"><i class="fa fa-bars" v-on:click="layout = 'listview'" v-bind:class="{ 'active': layout == 'listview'}"></i></button>
+                    <button class="btn btn-sm btn-outline-secondary list"><i class="fa fa-th" v-on:click="layout = 'grid'" v-bind:class="{ 'active': layout == 'grid'}"></i></button>
                 </div>
                 <div class="btn-group mr-4 new-unit" role="group">
                     <button class="btn btn-info btn-sm"><i class="fa fa-plus plus-icon"></i>Add new unit</button>
@@ -43,7 +43,7 @@
                 <b-button class="btn btn-sm btn-info browse" :href="selectedStorage.storageId">Browse</b-button>
             </div>
         </b-modal>
-        <table class="table table-hover main-table">
+        <table class="table table-hover main-table " >
         <thead>
             <tr>
               <th scope="col">Name</th>
@@ -83,12 +83,18 @@ export default {
             selectedStorage: this.initialStorageList[0]
         }
     },
+        layout: 'listview',
     methods: {
         showDescription(unit) {
             this.selectedStorage = unit
             this.$bvModal.show("description-dialog")
+        },
+        sortBy(prop){
+            this.storageList.sort((a,b)=>a[prop] < b[prop] ? -1 : 1)
         }
+
     }
+
 }
 </script>
 
diff --git a/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/StorageResources.vue b/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/StorageResources.vue
index 1d742be..2dd48e3 100644
--- a/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/StorageResources.vue
+++ b/airavata_mft/apps/workspace/static/airavata_mft_workspace/js/containers/StorageResources.vue
@@ -9,8 +9,8 @@
                     <div class="dropdown">
                         <button class="btn btn-sm btn-outline-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Sort by</button>
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
-                            <a class="dropdown-item" href="#">Name</a>
-                            <a class="dropdown-item" href="#">Size</a>
+                            <a class="dropdown-item" href="#" @click="sortBy('name')">Name</a>
+                            <a class="dropdown-item" href="#" @click="sortBy('size')">Size</a>
                         </div>
                     </div>
                 </div>
@@ -53,6 +53,11 @@
                 heading: this.title
             }
         },
+        methods:{
+        sortBy(prop){
+            this.resources.sort((a,b)=>a[prop] < b[prop] ? -1 : 1)
+        }
+    }
     }
 </script>
 
diff --git a/airavata_mft/apps/workspace/views.py b/airavata_mft/apps/workspace/views.py
index 131adff..323b81b 100644
--- a/airavata_mft/apps/workspace/views.py
+++ b/airavata_mft/apps/workspace/views.py
@@ -5,10 +5,10 @@ import json
 
 def storage(request):
     # TODO: grpc calls to backend
-    storage_json = [{"storageId": "ssh-storage1", "name": "ssh-storage1", "size": "15GB", "occupied": "10GB", "lastModified":"26, March 2020", "host": "localhost", "port": 22, "user": "root"},
-                    {"storageId": "ssh-storage1", "name": "ssh-storage1", "size": "15GB", "occupied": "10GB", "lastModified":"26, March 2020", "host": "scp1", "port": 22, "user": "root"},
-                    {"storageId": "ssh-storage1", "name": "ssh-storage1", "size": "15GB", "occupied": "10GB", "lastModified":"26, March 2020", "host": "scp2", "port": 22, "user": "root"},
-                    {"storageId": "ssh-storage1", "name": "ssh-storage1", "size": "15GB", "occupied": "10GB", "lastModified":"26, March 2020"}]
+    storage_json = [{"storageId": "ssh-storage1", "name": "One Drive", "size": "20B", "occupied": "10GB", "lastModified":"26, March 2020", "host": "localhost", "port": 22, "user": "root"},
+                    {"storageId": "ssh-storage1", "name": "Google Drive", "size": "10GB", "occupied": "10GB", "lastModified":"26, March 2020", "host": "scp1", "port": 22, "user": "root"},
+                    {"storageId": "ssh-storage1", "name": "Box", "size": "30GB", "occupied": "10GB", "lastModified":"26, March 2020", "host": "scp2", "port": 22, "user": "root"},
+                    {"storageId": "ssh-storage1", "name": "Drop Box", "size": "40GB", "occupied": "10GB", "lastModified":"26, March 2020"}]
 
     return render(request, 'storage.html', {'bundle_name': 'storage',
                                             'data': json.dumps(storage_json),
@@ -16,10 +16,10 @@ def storage(request):
 
 
 def resources(request, storage_id):
-    resource_json = [{"resourceId": "Spring project", "name": "Spring project", "size": "12 GB", "lastModified": "Jan 15, 2020"},
+    resource_json = [{"resourceId": "Spring project", "name": "Spring project", "size": "11 GB", "lastModified": "Jan 15, 2020"},
                      {"resourceId": "Trial", "name": "Trial", "size": "12 GB", "lastModified": "Jan 15, 2020"},
-                     {"resourceId": "New", "name": "New", "size": "12 GB", "lastModified": "Jan 15, 2020"},
-                     {"resourceId": "Random testing", "name": "Random testing", "size": "12 GB", "lastModified": "Jan 15, 2020"}]
+                     {"resourceId": "New", "name": "New", "size": "13 GB", "lastModified": "Jan 15, 2020"},
+                     {"resourceId": "Random testing", "name": "Random testing", "size": "14 GB", "lastModified": "Jan 15, 2020"}]
     return render(request, 'resources.html', {'bundle_name': 'resources',
                                               'data': json.dumps(resource_json),
                                               'title': 'Storage Unit > ' + storage_id})
diff --git a/airavata_mft/templates/base.html b/airavata_mft/templates/base.html
index f7c71b3..0f0120f 100644
--- a/airavata_mft/templates/base.html
+++ b/airavata_mft/templates/base.html
@@ -102,8 +102,6 @@
 
     /* Bootstrap 4 text input with search icon */
 
-    .has-search {
-    }
     .form-control {
         padding-left: 2.375rem;
         background-color: #DCDCDC;