You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/05/24 18:28:40 UTC
[airavata-django-portal] 04/08: AIRAVATA-3034 UI enhancements to
storage browser
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 <ma...@apache.org>
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 %}