This is an automated email from the ASF dual-hosted git repository. machristie pushed a commit to branch airavata-3016 in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit bbd90ce0b183cf323e88103c6c3ba390c7186a29 Author: Marcus Christie <[email protected]> AuthorDate: Fri May 24 11:08:36 2019 -0400 AIRAVATA-3034 UI enhancements to storage browser --- .../apps/api/static/django_airavata_api/js/index.js | 9 ++++++++- .../static/django_airavata_api/js/session/Session.js | 7 +++++++ .../js/components/storage/UserStoragePathViewer.vue | 10 +++++----- .../js/containers/UserStorageContainer.vue | 19 +++++++++++++++++-- django_airavata/static/common/js/entry.js | 4 ++++ django_airavata/templates/base.html | 6 ++++++ 6 files changed, 47 insertions(+), 8 deletions(-) diff --git a/django_airavata/apps/api/static/django_airavata_api/js/index.js b/django_airavata/apps/api/static/django_airavata_api/js/index.js index f410066..d332d6c 100644 --- a/django_airavata/apps/api/static/django_airavata_api/js/index.js +++ b/django_airavata/apps/api/static/django_airavata_api/js/index.js @@ -43,6 +43,8 @@ import GridFTPDataMovementService from "./services/GridFTPDataMovementService"; import UnicoreDataMovementService from "./services/UnicoreDataMovementService"; import ServiceFactory from "./services/ServiceFactory"; +import Session from "./session/Session"; + import FetchUtils from "./utils/FetchUtils"; import PaginationIterator from "./utils/PaginationIterator"; import StringUtils from "./utils/StringUtils"; @@ -121,6 +123,10 @@ const services = { WorkspacePreferencesService: ServiceFactory.service("WorkspacePreferences") }; +const session = { + Session +}; + const utils = { FetchUtils, PaginationIterator, @@ -131,7 +137,8 @@ export default { errors, models, services, + session, utils }; -export { errors, models, services, utils }; +export { errors, models, services, session, utils }; diff --git a/django_airavata/apps/api/static/django_airavata_api/js/session/Session.js b/django_airavata/apps/api/static/django_airavata_api/js/session/Session.js new file mode 100644 index 0000000..e27c25c --- /dev/null +++ b/django_airavata/apps/api/static/django_airavata_api/js/session/Session.js @@ -0,0 +1,7 @@ +class Session { + init({ username }) { + this.username = username; + } +} + +export default new Session(); diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue index b65f90a..b71cc14 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue @@ -16,11 +16,11 @@ <router-link v-if="data.item.type === 'dir'" :to="'/~/' + data.item.path" - >{{ data.item.name }}</router-link> + > <i class="fa fa-folder-open"></i> {{ data.item.name }}</router-link> <b-link v-else :href="data.item.downloadURL" - >{{ data.item.name }}</b-link> + > <i class="fa fa-download"></i> {{ data.item.name }}</b-link> </template> <template slot="createdTimestamp" @@ -100,11 +100,11 @@ export default { }, getFormattedSize(size) { if (size > Math.pow(2, 30)) { - return Math.round(size / Math.pow(2,30)) + " GB"; + return Math.round(size / Math.pow(2, 30)) + " GB"; } else if (size > Math.pow(2, 20)) { - return Math.round(size / Math.pow(2,20)) + " MB"; + return Math.round(size / Math.pow(2, 20)) + " MB"; } else if (size > Math.pow(2, 10)) { - return Math.round(size / Math.pow(2,10)) + " KB"; + return Math.round(size / Math.pow(2, 10)) + " KB"; } else { return size + " bytes"; } diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue index 4ec51a2..b198dd2 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue @@ -1,9 +1,21 @@ <template> - <router-view :user-storage-path="userStoragePath"></router-view> + <div class="row"> + <div class="col"> + <h1 class="h4"> + Storage + </h1> + <p> + <small class="text-muted"><i class="fa fa-folder-open"></i> {{ username }}</small> + </p> + <b-card> + <router-view :user-storage-path="userStoragePath"></router-view> + </b-card> + </div> + </div> </template> <script> -import { services, utils } from "django-airavata-api"; +import { services, session, utils } from "django-airavata-api"; import { notifications } from "django-airavata-common-ui"; export default { @@ -15,6 +27,9 @@ export default { } else { return this.$route.path; } + }, + username() { + return session.Session.username; } }, data() { diff --git a/django_airavata/static/common/js/entry.js b/django_airavata/static/common/js/entry.js index 6dac815..8fae546 100644 --- a/django_airavata/static/common/js/entry.js +++ b/django_airavata/static/common/js/entry.js @@ -1,6 +1,7 @@ import Vue from "vue"; import BootstrapVue from "bootstrap-vue"; import GlobalErrorHandler from "./errors/GlobalErrorHandler"; +import { session } from "django-airavata-api"; GlobalErrorHandler.init(); @@ -19,5 +20,8 @@ export default function entry(entryPointFunction) { // Common Vue configuration Vue.use(BootstrapVue); + // Initialize portal session object with data provided by base.html template + session.Session.init(window.AiravataPortalSessionData); + entryPointFunction(Vue); } diff --git a/django_airavata/templates/base.html b/django_airavata/templates/base.html index bff7358..01aeb99 100644 --- a/django_airavata/templates/base.html +++ b/django_airavata/templates/base.html @@ -230,6 +230,12 @@ {% endblock %} </div> + <script> + // provide data for initializing api's session.Session + window.AiravataPortalSessionData = { + username: '{{ request.user.username }}' + }; + </script> {% render_bundle 'chunk-vendors' 'js' 'COMMON' %} {% render_bundle 'app' 'js' 'COMMON' %} {% block scripts %}
