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
The following commit(s) were added to refs/heads/master by this push:
new d00b744 AIRAVATA-2538 Disable buttons when loading
d00b744 is described below
commit d00b7449d7a102b15748e80a6955d18102cad483
Author: Marcus Christie <[email protected]>
AuthorDate: Sun Nov 19 13:01:10 2017 -0500
AIRAVATA-2538 Disable buttons when loading
---
.../js/views/ProjectButtonNew.vue | 30 ++++++++++++++++------
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git
a/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ProjectButtonNew.vue
b/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ProjectButtonNew.vue
index 3654f80..3db2710 100644
---
a/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ProjectButtonNew.vue
+++
b/django_airavata/apps/workspace/static/django_airavata_workspace/js/views/ProjectButtonNew.vue
@@ -6,19 +6,21 @@
New Project <i class="fa fa-plus" aria-hidden="true"></i>
</slot>
</b-btn>
- <b-modal id="modal-new-project" ref="modalNewProject" title="Create
New Project" v-on:ok="onCreateProject">
+ <b-modal id="modal-new-project" ref="modalNewProject" title="Create
New Project"
+ v-on:ok="onCreateProject"
v-bind:cancel-disabled="cancelDisabled"
+ v-bind:ok-disabled="okDisabled">
<b-form @submit="onCreateProject" @input="onUserInput" novalidate>
<b-form-group label="Project Name"
label-for="new-project-name" v-bind:feedback="newProjectNameFeedback"
v-bind:state="newProjectNameState">
<b-form-input id="new-project-name"
- type="text" v-model="newProject.name" required
- placeholder="Project name"
- v-bind:state="newProjectNameState"></b-form-input>
+ type="text" v-model="newProject.name" required
+ placeholder="Project name"
+ v-bind:state="newProjectNameState"></b-form-input>
</b-form-group>
<b-form-group label="Project Description"
label-for="new-project-description">
<b-form-textarea id="new-project-description"
- type="text" v-model="newProject.description"
- placeholder="(Optional) Project description"
- :rows="3"></b-form-textarea>
+ type="text" v-model="newProject.description"
+ placeholder="(Optional) Project description"
+ :rows="3"></b-form-textarea>
</b-form-group>
</b-form>
</b-modal>
@@ -36,6 +38,7 @@ export default {
newProject: new models.Project(),
newProjectServerValidationData: null,
userBeginsInput: false,
+ loading: false,
}
},
components: {
@@ -44,6 +47,7 @@ export default {
onCreateProject: function(event) {
// Prevent hiding modal, hide it programmatically when project
gets created
event.preventDefault();
+ this.loading = true;
services.ProjectService.create(this.newProject)
.then(result => {
this.$refs.modalNewProject.hide();
@@ -54,7 +58,8 @@ export default {
})
.catch(error => {
this.newProjectServerValidationData = error.data;
- });
+ })
+ .then(() => this.loading = false, () => this.loading = false);
},
onUserInput: function(event) {
this.userBeginsInput = true;
@@ -84,6 +89,15 @@ export default {
return null;
}
},
+ formIsValid: function() {
+ return this.newProjectNameState == null;
+ },
+ cancelDisabled: function() {
+ return this.loading;
+ },
+ okDisabled: function() {
+ return this.loading || !this.userBeginsInput || !this.formIsValid;
+ }
},
}
</script>
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].