Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {Component} from '@angular/core';
- import {Validators, FormBuilder, FormGroup} from '@angular/forms';
- import {GoogleAnalytics} from 'ionic-native';
- import {
- App, NavController, ModalController, AlertController, ToastController, ViewController,
- Platform
- } from 'ionic-angular';
- import {GlobalValidators} from '../../../shared/global.validators';
- import {AuthenticationService} from '../../../shared/authentication/authentication.service';
- import {UserUpdatePassword} from '../../../shared/authentication/user.model';
- import {nTranslateService} from '../../../shared/nTranslate/nTranslate.service';
- import {LoginPage} from '../../login/login';
- import 'rxjs/add/operator/concat';
- import 'rxjs/add/observable/forkJoin';
- import 'rxjs/add/operator/toPromise';
- @Component({
- selector: 'page-editPassword',
- templateUrl: 'editPassword.html'
- })
- export class EditPasswordPage {
- //
- // public me: User;
- public userUpdatePassword: UserUpdatePassword;
- public user: FormGroup;
- public translations = {
- uiTranslations: {},
- pageTranslations: {},
- validations: {},
- defaults: {},
- errors: {}
- };
- constructor(public platform: Platform,
- private appCtrl: App,
- private modalCtrl: ModalController,
- private navCtrl: NavController,
- private nTranslate: nTranslateService,
- private alertCtrl: AlertController,
- private toastCtrl: ToastController,
- private auth: AuthenticationService,
- private formBuilder: FormBuilder,
- public viewCtrl: ViewController
- ) {
- this.auth.currentUser.subscribe(
- user => {
- console.log("inside");
- if(!user) {
- console.log(user);
- return
- }
- this.userUpdatePassword = user;
- this.user = this.formBuilder.group({
- oldPassword: '',
- password: '',
- passwordRepeat: ''
- }, {validator: GlobalValidators.validateEqualPasswords});
- }
- );
- }
- ionViewWillEnter() {
- this.platform.ready().then(() => {
- GoogleAnalytics.trackView('editPassword').then(
- (res) => {console.log(res);},
- (err) => {console.log(err);}
- )
- });
- let pageTranslations = this.nTranslate.getSection('profile').toPromise().then(res => this.translations.pageTranslations = res);
- let uiTranslations = this.nTranslate.getSection('ui-pages').toPromise().then(res => this.translations.uiTranslations = res);
- let validationTranslations = this.nTranslate.getSection('validation').toPromise().then(res => this.translations.validations = res);
- let defaultTranslations = this.nTranslate.getSection('default').toPromise().then(res => this.translations.defaults = res);
- let errorTranslations = this.nTranslate.getSection('error').toPromise().then(res => this.translations.errors = res);
- return Promise.all([pageTranslations, uiTranslations, validationTranslations, defaultTranslations, errorTranslations]);
- }
- editPassword({value, valid}: {value: UserUpdatePassword, valid: boolean}) {
- if(value.password.length < 1) {
- value.password = undefined;
- }
- this.auth.updatePassword(value)
- .subscribe(
- user => this._toastOnSuccess(),
- error => this._alertOnError(error)
- )
- }
- private _toastOnSuccess() {
- let toast = this.toastCtrl.create({
- message: this.translations.pageTranslations['feedbackSaveSuccessful'],
- duration: 3000,
- position: 'bottom',
- showCloseButton: true,
- closeButtonText: this.translations.defaults['ok']
- });
- toast.present();
- }
- private _alertOnError(error) {
- var errors = [];
- for(let key in error) {
- if(error.hasOwnProperty(key)) {
- let errMsg = `${key}: ${error[key]}`;
- errors.push(errMsg);
- }
- }
- let alert = this.alertCtrl.create({
- title: this.translations.errors['errorTitle'],
- subTitle: errors.join('\n'),
- buttons: [this.translations.defaults['ok']]
- });
- alert.present();
- }
- dismiss() {
- this.viewCtrl.dismiss();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement