This is an automated email from the ASF dual-hosted git repository. yasith pushed a commit to branch merge-portals in repository https://gitbox.apache.org/repos/asf/airavata-portals.git
commit 83d32fdcb94cf0d06fb5049af711ee132b2246f6 Author: Akhil Nagulavancha <[email protected]> AuthorDate: Mon Jun 22 16:47:53 2020 -0400 Improved readability --- .../js/containers/Storage.vue | 181 +++++++++++--------- .../js/containers/StorageResources.vue | 93 ++++++----- .../apps/workspace/templates/container-header.html | 4 +- .../apps/workspace/templates/resources.html | 3 +- airavata_mft/apps/workspace/templates/storage.html | 3 +- airavata_mft/templates/base.html | 186 +++++++++++---------- 6 files changed, 251 insertions(+), 219 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 2cd7bd4b0..3085694dd 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 @@ -1,86 +1,101 @@ <template> - <div class="row"> - <div class="col-7"> - <h1 class="h4 mb-4">{{heading}}</h1> - </div> - <div class="col-4"> - <div class="btn-toolbar"> - <div class="btn-group mr-4" role="group"> - <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="#" @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" v-on:click="layout = 'list'" v-bind:class="{ 'active': layout == 'list'}"></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> - </div> - </div> - </div> - <!-- Dialog box to show description of each storage unit --> - <b-modal class="modal-dialog modal-dialog-centered" :title="selectedStorage.name" id="description-dialog" hide-footer> - <div class="container"> - <div class="row"> - <div class="col-6"> - <p v-if="selectedStorage.host"><b>Host</b></p> - <p v-if="selectedStorage.port"><b>Port</b></p> - <p v-if="selectedStorage.user"><b>User</b></p> - </div> - <div class="col-6"> - <p v-if="selectedStorage.host">{{selectedStorage.host}}</p> - <p v-if="selectedStorage.port">{{selectedStorage.port}}</p> - <p v-if="selectedStorage.user">{{selectedStorage.user}}</p> - </div> - </div> - </div> - <div class="d-flex justify-content-center"> - <b-button class="btn btn-sm btn-info browse" :href="selectedStorage.storageId">Browse</b-button> - </div> - </b-modal> - <table v-if="layout === 'list'" class="table table-hover main-table " > - <thead> - <tr> - <th scope="col">Name</th> - <th scope="col">Storage size</th> - <th scope="col">Storage occupied</th> - <th scope="col">Last modified</th> - </tr> - </thead> - <tbody> - <tr class="table-item" v-for="storage in storageList" + <div class="row"> + <div class="col-7"> + <h1 class="h4 mb-4">{{heading}}</h1> + </div> + <div class="col-4"> + <div class="btn-toolbar"> + <div class="btn-group mr-4" role="group"> + <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="#" @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" v-on:click="layout = 'list'" v-bind:class="{ 'active': layout == 'list'}"></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> + </div> + </div> + </div> + <!-- Dialog box to show description of each storage unit --> + <b-modal class="modal-dialog modal-dialog-centered" :title="selectedStorage.name" id="description-dialog" hide-footer> + <div class="container"> + <div class="row"> + <div class="col-6"> + <p v-if="selectedStorage.host"> + <b>Host</b> + </p> + <p v-if="selectedStorage.port"> + <b>Port</b> + </p> + <p v-if="selectedStorage.user"> + <b>User</b> + </p> + </div> + <div class="col-6"> + <p v-if="selectedStorage.host">{{selectedStorage.host}}</p> + <p v-if="selectedStorage.port">{{selectedStorage.port}}</p> + <p v-if="selectedStorage.user">{{selectedStorage.user}}</p> + </div> + </div> + </div> + <div class="d-flex justify-content-center"> + <b-button class="btn btn-sm btn-info browse" :href="selectedStorage.storageId">Browse</b-button> + </div> + </b-modal> + <table v-if="layout === 'list'" class="table table-hover main-table " > + <thead> + <tr> + <th scope="col">Name</th> + <th scope="col">Storage size</th> + <th scope="col">Storage occupied</th> + <th scope="col">Last modified</th> + </tr> + </thead> + <tbody> + <tr class="table-item" v-for="storage in storageList" :key="storage.storageId" @click="showDescription(storage)"> - <th scope="row"><i class="fa fa-database unit-name-icon" aria-hidden="true"></i>{{storage.name}}</th> - <td>{{storage.size}}</td> - <td> - <div class="progress storage-progress"> - <!-- TODO: storage value should be picked from storage.occupied --> - <div class="progress-bar red-bar" role="progressbar" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div> - <div class="progress-bar green-bar" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div> - </div> - </td> - <td>{{storage.lastModified}}</td> - </tr> - </tbody> - </table> - <div v-if="layout === 'grid'" class="table table-hover main-table " > - <!-- Icons of respective storages should be should be added --> - <ul :style="gridStyle" class="card-list "> - <li v-for="storage in storageList " v-bind:key="storage.storageId" class="card-item " @click="showDescription(storage)"> - <br>{{ storage.name }}<br/> - <br>{{ storage.size}}<br/> - </li> - </ul> - </div> - </div> -</template> - -<script> + <th scope="row"> + <i class="fa fa-database unit-name-icon" aria-hidden="true"></i>{{storage.name}} + </th> + <td>{{storage.size}}</td> + <td> + <div class="progress storage-progress"> + <!-- TODO: storage value should be picked from storage.occupied --> + <div class="progress-bar red-bar" role="progressbar" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div> + <div class="progress-bar green-bar" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div> + </div> + </td> + <td>{{storage.lastModified}}</td> + </tr> + </tbody> + </table> + <div v-if="layout === 'grid'" class="table table-hover main-table " > + <!-- Icons of respective storages should be should be added --> + <ul :style="gridStyle" class="card-list "> + <li v-for="storage in storageList " v-bind:key="storage.storageId" class="card-item " @click="showDescription(storage)"> + <br>{{ storage.name }} + <br/> + <br>{{ storage.size}} + <br/> + </li> + </ul> + </div> + </div> + </template> + <script> //TODO: implement pagination export default { name: 'storage', @@ -111,9 +126,9 @@ export default { } } } -</script> -<style scoped> + </script> + <style scoped> .new-unit{ width: 140px; } 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 2dd48e3a2..f0618c43f 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 @@ -1,48 +1,55 @@ <template> - <div class="row"> - <div class="col-7"> - <h1 class="h4 mb-4">{{heading}}</h1> - </div> - <div class="col-4"> - <div class="btn-toolbar"> - <div class="btn-group mr-4" role="group"> - <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="#" @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> - </div> - </div> - </div> - <table class="table table-hover main-table"> - <thead> - <tr> - <th scope="col">Name</th> - <th scope="col">Size</th> - <th scope="col">Last Modified</th> - <th scope="col"></th> - </tr> - </thead> - <tbody> - <tr v-for="resource in resources" + <div class="row"> + <div class="col-7"> + <h1 class="h4 mb-4">{{heading}}</h1> + </div> + <div class="col-4"> + <div class="btn-toolbar"> + <div class="btn-group mr-4" role="group"> + <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="#" @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> + </div> + </div> + </div> + <table class="table table-hover main-table"> + <thead> + <tr> + <th scope="col">Name</th> + <th scope="col">Size</th> + <th scope="col">Last Modified</th> + <th scope="col"></th> + </tr> + </thead> + <tbody> + <tr v-for="resource in resources" :key="resource.resourceId"> - <th scope="row"><i class="fa fa-folder resource-name-icon"></i> -{{resource.name}}</th> - <td>{{resource.size}}</td> - <td>{{resource.lastModified}}</td> - <td><b-button class="btn btn-info btn-sm transfer">Transfer</b-button></td> - </tr> - </tbody> - </table> - </div> + <th scope="row"> + <i class="fa fa-folder resource-name-icon"></i> +{{resource.name}} + </th> + <td>{{resource.size}}</td> + <td>{{resource.lastModified}}</td> + <td> + <b-button class="btn btn-info btn-sm transfer">Transfer</b-button> + </td> + </tr> + </tbody> + </table> + </div> </template> - <script> export default { name: "StorageResources.vue", @@ -59,8 +66,8 @@ } } } -</script> +</script> <style scoped> .main-table{ width: 83%!important; diff --git a/airavata_mft/apps/workspace/templates/container-header.html b/airavata_mft/apps/workspace/templates/container-header.html index 3f00db8a8..cdb19131f 100644 --- a/airavata_mft/apps/workspace/templates/container-header.html +++ b/airavata_mft/apps/workspace/templates/container-header.html @@ -9,6 +9,6 @@ {% endblock scripts %} {% block app %} - <div id={{ bundle_name }}> - </div> + +<div id={{ bundle_name }}></div> {% endblock app %} \ No newline at end of file diff --git a/airavata_mft/apps/workspace/templates/resources.html b/airavata_mft/apps/workspace/templates/resources.html index 9db570aec..fdd3e2ddf 100644 --- a/airavata_mft/apps/workspace/templates/resources.html +++ b/airavata_mft/apps/workspace/templates/resources.html @@ -1,6 +1,7 @@ {% extends "container-header.html" %} {% block app %} - <div id={{ bundle_name }} data-resources-list="{{ data }}" data-title ="{{ title }}"></div> + +<div id={{ bundle_name }} data-resources-list="{{ data }}" data-title ="{{ title }}"></div> {% endblock app %} diff --git a/airavata_mft/apps/workspace/templates/storage.html b/airavata_mft/apps/workspace/templates/storage.html index 84f8413f3..d93554a1a 100644 --- a/airavata_mft/apps/workspace/templates/storage.html +++ b/airavata_mft/apps/workspace/templates/storage.html @@ -1,6 +1,7 @@ {% extends "container-header.html" %} {% block app %} - <div id={{ bundle_name }} data-storage-list="{{ data }}" data-title ="{{ title }}"></div> + +<div id={{ bundle_name }} data-storage-list="{{ data }}" data-title ="{{ title }}"></div> {% endblock app %} diff --git a/airavata_mft/templates/base.html b/airavata_mft/templates/base.html index 0f0120f58..6e66c8bfe 100644 --- a/airavata_mft/templates/base.html +++ b/airavata_mft/templates/base.html @@ -1,76 +1,84 @@ {% load static %} {% load render_bundle from webpack_loader %} + <!DOCTYPE html> <head> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> -</head> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> + </head> {% block scripts %} {% endblock scripts %} {% render_bundle 'chunk-vendors' config='DEFAULT'%} {% render_bundle 'app' config='DEFAULT'%} -<body> - <nav class="navbar navbar-light header shadow-sm"> - <div class="container-fluid"> - <div class="col-2"> - <a class="navbar-brand" href="#"> - <div class="row"> - <div class="col-5"> - <img class="logo" src="{% static 'images/airavata-logo.png' %}"> - </div> - <div> - <div class="col-8"> - <div class="row apache"> - <span class="header-text apache-text">APACHE</span> - </div> - <div class="row airavata"> - <span class="header-text airavata-text">AIRAVATA</span> - </div> - </div> - </div> - </div> - </a> - </div> - <div class="col-8 search-div"> - <div class="form-group has-search"> - <span class="fa fa-search form-control-feedback"></span> - <input type="text" class="form-control" placeholder="Search"> - </div> - </div> - <div class="col-2"> - <div class="row user-div"> - <i class="fa fa-user-circle fa-2x"></i> - <div class="dropdown"> - <a class="btn dropdown-toggle header-drop-down" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Admin</a> - <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> - <a class="dropdown-item" href="#">Logout</a> - </div> - </div> - </div> - </div> - </div> - </nav> -<!-- side navigation bar (Needs to move to a vue template)--> - <div class="container-fluid"> - <div class="row"> - <div class="col-2" style="padding-top: 1.5%"> - <nav class="nav flex-column"> - <a class="c-nav__item selected-nav" href="#"><i class="fa fa-database nav-icon"></i>Storage Units</a> - <a class="c-nav__item" href="#"><i class="fa fa-users nav-icon"></i>Users</a> - <a class="c-nav__item" href="#"><i class="fa fa-cogs nav-icon"></i>Agents</a> - <a class="c-nav__item" href="#"><i class="fa fa-book nav-icon"></i>Audit</a> - </nav> - </div> - <div class="col-10 main-app"> + <body> + <nav class="navbar navbar-light header shadow-sm"> + <div class="container-fluid"> + <div class="col-2"> + <a class="navbar-brand" href="#"> + <div class="row"> + <div class="col-5"> + <img class="logo" src="{% static 'images/airavata-logo.png' %}"> + </div> + <div> + <div class="col-8"> + <div class="row apache"> + <span class="header-text apache-text">APACHE</span> + </div> + <div class="row airavata"> + <span class="header-text airavata-text">AIRAVATA</span> + </div> + </div> + </div> + </div> + </a> + </div> + <div class="col-8 search-div"> + <div class="form-group has-search"> + <span class="fa fa-search form-control-feedback"></span> + <input type="text" class="form-control" placeholder="Search"> + </div> + </div> + <div class="col-2"> + <div class="row user-div"> + <i class="fa fa-user-circle fa-2x"></i> + <div class="dropdown"> + <a class="btn dropdown-toggle header-drop-down" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Admin</a> + <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> + <a class="dropdown-item" href="#">Logout</a> + </div> + </div> + </div> + </div> + </div> + </nav> + <!-- side navigation bar (Needs to move to a vue template)--> + <div class="container-fluid"> + <div class="row"> + <div class="col-2" style="padding-top: 1.5%"> + <nav class="nav flex-column"> + <a class="c-nav__item selected-nav" href="#"> + <i class="fa fa-database nav-icon"></i>Storage Units + </a> + <a class="c-nav__item" href="#"> + <i class="fa fa-users nav-icon"></i>Users + </a> + <a class="c-nav__item" href="#"> + <i class="fa fa-cogs nav-icon"></i>Agents + </a> + <a class="c-nav__item" href="#"> + <i class="fa fa-book nav-icon"></i>Audit + </a> + </nav> + </div> + <div class="col-10 main-app"> {% block app %} {% endblock app %} </div> - </div> - </div> - -</body> - -<style> + </div> + </div> + </body> + <style> + /* Side Navigation Bar */ .selected-nav{ margin-right: 0.5em; color: lightblue; @@ -89,6 +97,17 @@ .c-nav__item:hover{ background-color: #d6d8db!important; } + .nav-icon { + padding-right: 10%; + padding-left: 14%; + } + .c-nav__item:hover{ + color: #17a2b8; + text-decoration: none; + font-weight:bold; + } + /* Top Navigation */ + .header { background-color: white; padding-top: 2%; @@ -99,7 +118,21 @@ .header-text{ color: grey; } - + .header-drop-down { + color: black; + background-color: white; + border: white; + } + .apache { + height: 0.7em; + } + .apache-text{ + font-size: smaller; + } + .airavata-text{ + font-size: larger; + } + /* Bootstrap 4 text input with search icon */ .form-control { @@ -119,36 +152,11 @@ pointer-events: none; color: #aaa; } - .header-drop-down { - color: black; - background-color: white; - border: white; - } - .nav-icon { - padding-right: 10%; - padding-left: 14%; - } - .c-nav__item:hover{ - color: #17a2b8; - text-decoration: none; - font-weight:bold; - } - .apache { - height: 0.7em; - } - .apache-text{ - font-size: smaller; - } - .airavata-text{ - font-size: larger; - } .search-div{ padding-left: 0%; } - .user-div{ - margin-top: -10%; - } + /* main-app */ .main-app{ padding-top: 1.5% } -</style> +</style> \ No newline at end of file
