loomio/loomio

View on GitHub
vue/src/components/profile/change_password_form.vue

Summary

Maintainability
Test Coverage
<script lang="js">
import Session        from '@/shared/services/session';
import Records        from '@/shared/services/records';
import Flash   from '@/shared/services/flash';

export default {
  props: {
    user: Object,
    close: Function
  },
  data() {
    return {processing: false};
  },

  created() {
    this.user.password = '';
    this.user.passwordConfirmation = '';
  },

  methods: {
    submit() {
      Records.users.updateProfile(this.user).then(() => {
        Flash.success("change_password_form.password_changed");
        this.close();
      }).catch(() => true);
    }
  }
};

</script>
<template lang="pug">
v-card.change-password-form(@keyup.ctrl.enter="submit()" @keydown.meta.enter.stop.capture="submit()" @keydown.enter="submit()")
  v-card-title
    h1.text-h5(tabindex="-1" v-t="'change_password_form.set_password_title'")
    v-spacer
    dismiss-modal-button(:close="close")
  v-card-text
    p.text--secondary(v-t="'change_password_form.set_password_helptext'")
    .change-password-form__password-container
      v-text-field.change-password-form__password(:label="$t('sign_up_form.password_label')" required type='password' v-model='user.password')
      validation-errors(:subject='user', field='password')
    .change-password-form__password-confirmation-container
      v-text-field.change-password-form__password-confirmation(:label="$t('sign_up_form.password_confirmation_label')" required='true' type='password' v-model='user.passwordConfirmation' autocomplete="new-password")
      validation-errors(:subject='user', field='passwordConfirmation')
  v-card-actions
    v-spacer
    v-btn.change-password-form__submit(:loading="processing" color="primary" @click='submit()' v-t="'change_password_form.set_password'")
</template>