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 2021/04/09 20:38:00 UTC
[airavata-django-portal] branch develop updated: AIRAVATA-3362
Restoring unintentional code deletes
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
The following commit(s) were added to refs/heads/develop by this push:
new 033a994 AIRAVATA-3362 Restoring unintentional code deletes
033a994 is described below
commit 033a994e667610a5833551460465543e1e4a4eda
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Fri Apr 9 16:37:47 2021 -0400
AIRAVATA-3362 Restoring unintentional code deletes
---
.../components/storage/UserStorageCreateView.vue | 84 ++++++++++++++++++++++
.../storage/UserStorageFileSelectionContainer.vue | 6 +-
.../components/storage/UserStoragePathViewer.vue | 12 ++++
3 files changed, 101 insertions(+), 1 deletion(-)
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageCreateView.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageCreateView.vue
new file mode 100644
index 0000000..6844f3e
--- /dev/null
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageCreateView.vue
@@ -0,0 +1,84 @@
+<template>
+ <div>
+ <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>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col">
+ <uppy
+ class="mb-1"
+ ref="file-upload"
+ :xhr-upload-endpoint="uploadEndpoint"
+ :tus-upload-finish-endpoint="uploadEndpoint"
+ @upload-success="uploadSuccess"
+ multiple
+ />
+ </div>
+ <div class="col">
+ <b-input-group>
+ <b-form-input
+ v-model="dirName"
+ placeholder="New directory name"
+ @keydown.native.enter="addDirectory"
+ ></b-form-input>
+ <b-input-group-append>
+ <b-button @click="addDirectory" :disabled="!this.dirName"
+ >Add directory
+ </b-button>
+ </b-input-group-append>
+ </b-input-group>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import { components } from "django-airavata-common-ui";
+import { session } from "django-airavata-api";
+
+export default {
+ name: "user-storage-create-view",
+ components: {
+ uppy: components.Uppy,
+ },
+ computed: {
+ uploadEndpoint() {
+ // This endpoint can handle XHR upload or a TUS uploadURL
+ return "/api/user-storage/" + this.storagePath;
+ },
+ username() {
+ return session.Session.username;
+ },
+ },
+ data() {
+ return {
+ dirName: null,
+ };
+ },
+ props: {
+ userStoragePath: {
+ required: true,
+ },
+ storagePath: {
+ required: true,
+ },
+ },
+ methods: {
+ uploadSuccess() {
+ this.$refs["file-upload"].reset();
+ this.$emit("upload-success");
+ },
+ addDirectory() {
+ this.$emit("add-directory", this.dirName);
+ this.dirName = null;
+ },
+ },
+};
+</script>
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageFileSelectionContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageFileSelectionContainer.vue
index 44e4771..19bb3e7 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageFileSelectionContainer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStorageFileSelectionContainer.vue
@@ -30,7 +30,11 @@ let mostRecentPath = "~";
export default {
name: "user-storage-file-selection-container",
- computed: {},
+ computed: {
+ storagePath() {
+ return ["~"].concat(this.userStoragePath.parts).join("/") + "/";
+ },
+ },
props: {
selectedDataProductUris: {
type: Array,
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 d1aa85c..975af26 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
@@ -1,5 +1,12 @@
<template>
<div>
+ <user-storage-create-view
+ v-if="includeCreateFileAction && userStoragePath && isDir"
+ :user-storage-path="userStoragePath"
+ :storage-path="storagePath"
+ @upload-success="$emit('upload-success')"
+ @add-directory="(dirName) => $emit('add-directory', dirName)"
+ />
<user-storage-path-breadcrumb
v-if="userStoragePath && isDir"
:parts="userStoragePath.parts"
@@ -63,6 +70,7 @@
<script>
import UserStoragePathBreadcrumb from "./StoragePathBreadcrumb.vue";
import { components } from "django-airavata-common-ui";
+import UserStorageCreateView from "./UserStorageCreateView";
import UserStorageEditViewer from "./storage-edit/UserStorageEditViewer";
import UserStorageLink from "./storage-edit/UserStorageLink";
@@ -76,6 +84,9 @@ export default {
userStoragePath: {
required: true,
},
+ storagePath: {
+ required: true,
+ },
includeDeleteAction: {
type: Boolean,
default: true,
@@ -102,6 +113,7 @@ export default {
"delete-button": components.DeleteButton,
"human-date": components.HumanDate,
UserStoragePathBreadcrumb,
+ UserStorageCreateView,
UserStorageEditViewer,
},
computed: {