Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. import {Component} from '@angular/core';
  2. import {Validators, FormBuilder, FormGroup} from '@angular/forms';
  3.  
  4. import {GoogleAnalytics} from 'ionic-native';
  5.  
  6. import {
  7. App, NavController, ModalController, AlertController, ToastController, ViewController,
  8. Platform
  9. } from 'ionic-angular';
  10.  
  11. import {GlobalValidators} from '../../../shared/global.validators';
  12. import {AuthenticationService} from '../../../shared/authentication/authentication.service';
  13.  
  14. import {UserUpdatePassword} from '../../../shared/authentication/user.model';
  15.  
  16. import {nTranslateService} from '../../../shared/nTranslate/nTranslate.service';
  17.  
  18. import {LoginPage} from '../../login/login';
  19.  
  20. import 'rxjs/add/operator/concat';
  21. import 'rxjs/add/observable/forkJoin';
  22. import 'rxjs/add/operator/toPromise';
  23.  
  24. @Component({
  25. selector: 'page-editPassword',
  26. templateUrl: 'editPassword.html'
  27. })
  28. export class EditPasswordPage {
  29. //
  30. // public me: User;
  31.  
  32. public userUpdatePassword: UserUpdatePassword;
  33.  
  34. public user: FormGroup;
  35.  
  36. public translations = {
  37. uiTranslations: {},
  38. pageTranslations: {},
  39. validations: {},
  40. defaults: {},
  41. errors: {}
  42. };
  43.  
  44. constructor(public platform: Platform,
  45. private appCtrl: App,
  46. private modalCtrl: ModalController,
  47. private navCtrl: NavController,
  48. private nTranslate: nTranslateService,
  49. private alertCtrl: AlertController,
  50. private toastCtrl: ToastController,
  51. private auth: AuthenticationService,
  52. private formBuilder: FormBuilder,
  53. public viewCtrl: ViewController
  54. ) {
  55.  
  56. this.auth.currentUser.subscribe(
  57. user => {
  58.  
  59. console.log("inside");
  60. if(!user) {
  61. console.log(user);
  62. return
  63. }
  64.  
  65. this.userUpdatePassword = user;
  66.  
  67. this.user = this.formBuilder.group({
  68. oldPassword: '',
  69. password: '',
  70. passwordRepeat: ''
  71.  
  72. }, {validator: GlobalValidators.validateEqualPasswords});
  73. }
  74. );
  75.  
  76. }
  77.  
  78. ionViewWillEnter() {
  79.  
  80. this.platform.ready().then(() => {
  81. GoogleAnalytics.trackView('editPassword').then(
  82. (res) => {console.log(res);},
  83. (err) => {console.log(err);}
  84. )
  85. });
  86.  
  87. let pageTranslations = this.nTranslate.getSection('profile').toPromise().then(res => this.translations.pageTranslations = res);
  88. let uiTranslations = this.nTranslate.getSection('ui-pages').toPromise().then(res => this.translations.uiTranslations = res);
  89. let validationTranslations = this.nTranslate.getSection('validation').toPromise().then(res => this.translations.validations = res);
  90. let defaultTranslations = this.nTranslate.getSection('default').toPromise().then(res => this.translations.defaults = res);
  91. let errorTranslations = this.nTranslate.getSection('error').toPromise().then(res => this.translations.errors = res);
  92.  
  93. return Promise.all([pageTranslations, uiTranslations, validationTranslations, defaultTranslations, errorTranslations]);
  94.  
  95. }
  96.  
  97. editPassword({value, valid}: {value: UserUpdatePassword, valid: boolean}) {
  98.  
  99. if(value.password.length < 1) {
  100. value.password = undefined;
  101. }
  102.  
  103. this.auth.updatePassword(value)
  104. .subscribe(
  105. user => this._toastOnSuccess(),
  106. error => this._alertOnError(error)
  107. )
  108. }
  109.  
  110. private _toastOnSuccess() {
  111. let toast = this.toastCtrl.create({
  112. message: this.translations.pageTranslations['feedbackSaveSuccessful'],
  113. duration: 3000,
  114. position: 'bottom',
  115. showCloseButton: true,
  116. closeButtonText: this.translations.defaults['ok']
  117. });
  118.  
  119. toast.present();
  120. }
  121.  
  122. private _alertOnError(error) {
  123.  
  124. var errors = [];
  125. for(let key in error) {
  126. if(error.hasOwnProperty(key)) {
  127. let errMsg = `${key}: ${error[key]}`;
  128. errors.push(errMsg);
  129. }
  130. }
  131.  
  132. let alert = this.alertCtrl.create({
  133. title: this.translations.errors['errorTitle'],
  134. subTitle: errors.join('\n'),
  135. buttons: [this.translations.defaults['ok']]
  136. });
  137.  
  138. alert.present();
  139.  
  140. }
  141.  
  142. dismiss() {
  143. this.viewCtrl.dismiss();
  144. }
  145.  
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement