1- import { Component } from '@angular/core' ;
2- import { IonicPage , NavController , NavParams } from 'ionic-angular' ;
3-
1+ import { Component , NgZone } from '@angular/core' ;
2+ import { IonicPage , NavController , NavParams , AlertController } from 'ionic-angular' ;
3+ import { ImghandlerProvider } from '../../providers/imghandler/imghandler' ;
4+ import { UserProvider } from '../../providers/user/user' ;
5+ import firebase from 'firebase' ;
46/**
57 * Generated class for the ProfilePage page.
68 *
@@ -13,12 +15,99 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular';
1315 templateUrl : 'profile.html' ,
1416} )
1517export class ProfilePage {
18+ avatar : string ;
19+ displayName : string ;
20+ constructor ( public navCtrl : NavController , public navParams : NavParams ,
21+ public userservice : UserProvider , public zone : NgZone , public alertCtrl : AlertController ,
22+ public imghandler : ImghandlerProvider ) {
23+ }
24+
25+ ionViewWillEnter ( ) {
26+ this . loaduserdetails ( ) ;
27+ }
1628
17- constructor ( public navCtrl : NavController , public navParams : NavParams ) {
29+ loaduserdetails ( ) {
30+ this . userservice . getuserdetails ( ) . then ( ( res : any ) => {
31+ this . displayName = res . displayName ;
32+ this . zone . run ( ( ) => {
33+ this . avatar = res . photoURL ;
34+ } )
35+ } )
1836 }
1937
20- ionViewDidLoad ( ) {
21- console . log ( 'ionViewDidLoad ProfilePage' ) ;
38+ editimage ( ) {
39+ let statusalert = this . alertCtrl . create ( {
40+ buttons : [ 'okay' ]
41+ } ) ;
42+ this . imghandler . uploadimage ( ) . then ( ( url : any ) => {
43+ this . userservice . updateimage ( url ) . then ( ( res : any ) => {
44+ if ( res . success ) {
45+ statusalert . setTitle ( 'Updated' ) ;
46+ statusalert . setSubTitle ( 'Your profile pic has been changed successfully!!' ) ;
47+ statusalert . present ( ) ;
48+ this . zone . run ( ( ) => {
49+ this . avatar = url ;
50+ } )
51+ }
52+ } ) . catch ( ( err ) => {
53+ statusalert . setTitle ( 'Failed' ) ;
54+ statusalert . setSubTitle ( 'Your profile pic was not changed' ) ;
55+ statusalert . present ( ) ;
56+ } )
57+ } )
2258 }
2359
60+ editname ( ) {
61+ let statusalert = this . alertCtrl . create ( {
62+ buttons : [ 'okay' ]
63+ } ) ;
64+ let alert = this . alertCtrl . create ( {
65+ title : 'Edit Nickname' ,
66+ inputs : [ {
67+ name : 'nickname' ,
68+ placeholder : 'Nickname'
69+ } ] ,
70+ buttons : [ {
71+ text : 'Cancel' ,
72+ role : 'cancel' ,
73+ handler : data => {
74+
75+ }
76+ } ,
77+ {
78+ text : 'Edit' ,
79+ handler : data => {
80+ if ( data . nickname ) {
81+ this . userservice . updatedisplayname ( data . nickname ) . then ( ( res : any ) => {
82+ if ( res . success ) {
83+ statusalert . setTitle ( 'Updated' ) ;
84+ statusalert . setSubTitle ( 'Your nickname has been changed successfully!!' ) ;
85+ statusalert . present ( ) ;
86+ this . zone . run ( ( ) => {
87+ this . displayName = data . nickname ;
88+ } )
89+ }
90+
91+ else {
92+ statusalert . setTitle ( 'Failed' ) ;
93+ statusalert . setSubTitle ( 'Your nickname was not changed' ) ;
94+ statusalert . present ( ) ;
95+ }
96+
97+ } )
98+ }
99+ }
100+
101+ } ]
102+ } ) ;
103+ alert . present ( ) ;
104+ }
105+
106+ logout ( ) {
107+ firebase . auth ( ) . signOut ( ) . then ( ( ) => {
108+ this . navCtrl . parent . parent . setRoot ( 'LoginPage' ) ;
109+ } )
110+ }
111+
112+
24113}
0 commit comments