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 2017/12/04 17:19:00 UTC
[airavata-django-portal] 02/02: AIRAVATA-2598 Project selector
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit ef81b612db28ea7cbe9c9bd3dba2633a6348786c
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Mon Dec 4 12:18:51 2017 -0500
AIRAVATA-2598 Project selector
---
.../js/services/ProjectService.js | 8 ++++++++
django_airavata/apps/api/views.py | 9 ++++++++-
.../js/views/ExperimentEditor.vue | 23 ++++++++++++++++++++++
3 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/services/ProjectService.js b/django_airavata/apps/api/static/django_airavata_api/js/services/ProjectService.js
index 7ecae97..598e4d6 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/services/ProjectService.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/services/ProjectService.js
@@ -16,6 +16,14 @@ class ProjectService {
}
}
+ listAll() {
+ return fetch('/api/projects/list_all/', {
+ credentials: 'include'
+ })
+ .then(response => response.json())
+ .then(json => json.map(project => new Project(project)));
+ }
+
create(project) {
return FetchUtils.post('/api/projects/', project.toJSONForCreate())
.then(result => new Project(result));
diff --git a/django_airavata/apps/api/views.py b/django_airavata/apps/api/views.py
index b411baa..c610ddc 100644
--- a/django_airavata/apps/api/views.py
+++ b/django_airavata/apps/api/views.py
@@ -2,7 +2,9 @@
from . import serializers
from rest_framework import status, mixins, pagination
-from rest_framework.decorators import api_view, detail_route
+from rest_framework.decorators import api_view
+from rest_framework.decorators import detail_route
+from rest_framework.decorators import list_route
from rest_framework.views import APIView
from rest_framework.viewsets import GenericViewSet
from rest_framework.response import Response
@@ -211,6 +213,11 @@ class ProjectViewSet(APIBackedViewSet):
project = serializer.save()
self.request.airavata_client.updateProject(self.authz_token, project.projectID, project)
+ @list_route()
+ def list_all(self, request):
+ projects = self.request.airavata_client.getUserProjects(self.authz_token, self.gateway_id, self.username, -1, 0)
+ serializer = serializers.ProjectSerializer(projects, many=True, context={'request': request})
+ return Response(serializer.data)
@detail_route()
def experiments(self, request, project_id=None):
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ExperimentEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ExperimentEditor.vue
index 07d9b2e..aec3969 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ExperimentEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ExperimentEditor.vue
@@ -18,6 +18,14 @@
type="text" v-model="experiment.experimentName" required
placeholder="Experiment name"></b-form-input>
</b-form-group>
+ <b-form-group label="Project" label-for="project">
+ <b-form-select id="project"
+ v-model="experiment.projectId" :options="projectOptions" required>
+ <template slot="first">
+ <option :value="null" disabled>Select a Project</option>
+ </template>
+ </b-form-select>
+ </b-form-group>
</b-form>
</div>
</div>
@@ -27,13 +35,28 @@
</template>
<script>
+import {models, services} from 'django-airavata-api'
+
export default {
name: 'edit-experiment',
props: ['experiment', 'appModule'],
data () {
return {
+ 'projects': [],
}
},
+ mounted: function () {
+ services.ProjectService.listAll()
+ .then(projects => this.projects = projects);
+ },
+ computed: {
+ projectOptions: function() {
+ return this.projects.map(project => ({
+ value: project.projectID,
+ text: project.name,
+ }));
+ }
+ }
}
</script>
--
To stop receiving notification emails like this one, please contact
"commits@airavata.apache.org" <co...@airavata.apache.org>.