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 2022/05/10 21:30:46 UTC
[airavata-django-portal] 04/04: AIRAVATA-3565 Combining both forms into one
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch AIRAVATA-3562
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit 5c2aed337dbba7302f214c5c2991b56bb121e520
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue May 10 17:30:34 2022 -0400
AIRAVATA-3565 Combining both forms into one
---
.../js/components/ExtendedUserProfileEditor.vue | 4 +-
.../js/components/UserProfileEditor.vue | 11 +----
.../js/containers/UserProfileContainer.vue | 47 +++++++++++++++-------
3 files changed, 37 insertions(+), 25 deletions(-)
diff --git a/django_airavata/apps/auth/static/django_airavata_auth/js/components/ExtendedUserProfileEditor.vue b/django_airavata/apps/auth/static/django_airavata_auth/js/components/ExtendedUserProfileEditor.vue
index 1f6bcdf8..d1a6df0d 100644
--- a/django_airavata/apps/auth/static/django_airavata_auth/js/components/ExtendedUserProfileEditor.vue
+++ b/django_airavata/apps/auth/static/django_airavata_auth/js/components/ExtendedUserProfileEditor.vue
@@ -1,5 +1,5 @@
<template>
- <b-card>
+ <div>
<template v-for="extendedUserProfileField in extendedUserProfileFields">
<component
ref="extendedUserProfileFieldComponents"
@@ -8,7 +8,7 @@
:extended-user-profile-field="extendedUserProfileField"
/>
</template>
- </b-card>
+ </div>
</template>
<script>
diff --git a/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue b/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
index 68f423e8..bbac76ab 100644
--- a/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
+++ b/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
@@ -1,5 +1,5 @@
<template>
- <b-card v-if="user">
+ <div v-if="user">
<b-form-group
label="Username"
:disabled="true"
@@ -40,14 +40,7 @@
></b-alert
>
</b-form-group>
- <!-- TODO: move save button up to container -->
- <b-button
- variant="primary"
- @click="save"
- :disabled="$v.$invalid || disabled"
- >Save</b-button
- >
- </b-card>
+ </div>
</template>
<script>
diff --git a/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue b/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
index 3955c151..86fbb395 100644
--- a/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
+++ b/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
@@ -16,16 +16,22 @@
<b-alert v-else-if="user && !user.complete" show>
>Please complete your user profile before continuing.</b-alert
>
- <user-profile-editor
- ref="userProfileEditor"
- @save="onSave"
- @resend-email-verification="handleResendEmailVerification"
- />
- <!-- TODO: include both forms in the same card -->
- <!-- include extended-user-profile-editor if there are extendedUserProfileFields -->
- <extended-user-profile-editor
- v-if="extendedUserProfileFields && extendedUserProfileFields.length > 0"
- />
+ <b-card>
+ <user-profile-editor
+ ref="userProfileEditor"
+ @save="onSave"
+ @resend-email-verification="handleResendEmailVerification"
+ />
+ <!-- include extended-user-profile-editor if there are extendedUserProfileFields -->
+ <template
+ v-if="extendedUserProfileFields && extendedUserProfileFields.length > 0"
+ >
+ <hr />
+ <extended-user-profile-editor ref="extendedUserProfileEditor" />
+ </template>
+
+ <b-button variant="primary" @click="onSave">Save</b-button>
+ </b-card>
<b-link
v-if="user && user.complete"
class="text-muted small"
@@ -64,7 +70,9 @@ export default {
}
},
data() {
- return {};
+ return {
+ invalidForm: false,
+ };
},
computed: {
...mapGetters("userProfile", ["user"]),
@@ -83,10 +91,12 @@ export default {
"saveExtendedUserProfileValues",
]),
async onSave() {
- // TODO: only save if both standard and extended user profiles are valid
- this.saveExtendedUserProfileValues();
- if (this.$refs.userProfileEditor.valid) {
+ if (
+ this.$refs.userProfileEditor.valid &&
+ this.$refs.extendedUserProfileEditor.valid
+ ) {
await this.updateUser();
+ await this.saveExtendedUserProfileValues();
notifications.NotificationList.add(
new notifications.Notification({
type: "SUCCESS",
@@ -94,6 +104,15 @@ export default {
duration: 5,
})
);
+ } else {
+ // TODO: make sure to highlight which fields are invalid
+ notifications.NotificationList.add(
+ new notifications.Notification({
+ type: "WARNING",
+ message: "The form is invalid. Please fix and try again.",
+ duration: 5,
+ })
+ );
}
},
async handleResendEmailVerification() {