Merge branch 'adarsh' into 'master'
file
See merge request !44
Showing
| ... | @@ -3,12 +3,12 @@ | ... | @@ -3,12 +3,12 @@ | 
| <ion-menu> | <ion-menu> | ||
| <ion-content> | <ion-content> | ||
| <div class="side_menu_wrapper"> | <div class="side_menu_wrapper"> | ||
| <ion-menu-toggle> | <ion-menu-toggle *ngIf="userData"> | ||
| <div class="top_banner"> | <div class="top_banner"> | ||
| <div class="top_image"></div> | <div class="top_image"></div> | ||
| <div class="top_detail"> | <div class="top_detail"> | ||
| <h4>John Doe</h4> | <h4>{{userData.name}}</h4> | ||
| <p>[email protected]</p> | <p>{{userData.emailId}}</p> | ||
| </div> | </div> | ||
| <div class="clear"></div> | <div class="clear"></div> | ||
| </div> | </div> | ||
| ... | @@ -95,7 +95,7 @@ | ... | @@ -95,7 +95,7 @@ | 
| class="icon_sec m6_icon" | class="icon_sec m6_icon" | ||
| [class.m6_icon_act]="sec_active6" | [class.m6_icon_act]="sec_active6" | ||
| (click)="setActive6()" | (click)="setActive6()" | ||
| ></div> | menuClose></div> | ||
| </li> | </li> | ||
| </ul> | </ul> | ||
| </div> | </div> | 
| ... | @@ -3,21 +3,19 @@ | ... | @@ -3,21 +3,19 @@ | 
| <div class="cart_head"> | <div class="cart_head"> | ||
| <div class="nav_header"> | <div class="nav_header"> | ||
| <button class="nav_btn nav_back_white floatLeft" (click)="goBack()"> | <button class="nav_btn nav_back_white floatLeft" (click)="goBack()"> | ||
| <img src="../assets/arrow_white.png"> | <img src="../assets/arrow_white.png" /> | ||
| </button> | </button> | ||
| <div class="nav_title floatLeft"> | <div class="nav_title floatLeft"> | ||
| <h4></h4> | <h4></h4> | ||
| </div> | </div> | ||
| <button class="nav_btn floatRight"> | <button class="nav_btn floatRight"></button> | ||
| </button> | |||
| <div class="clear"></div> | <div class="clear"></div> | ||
| </div> | </div> | ||
| <img src="../assets/white_tick.png"> | <img src="../assets/white_tick.png" /> | ||
| <h4>ORDER IS PLACED</h4> | <h4>ORDER IS PLACED</h4> | ||
| <p>{{ data.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</p> | <p>{{ data.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</p> | ||
| </div> | </div> | ||
| <div class="order_status"> | <div class="order_status"> | ||
| <div class="clear"></div> | <div class="clear"></div> | ||
| <div class="status_div go_green"> | <div class="status_div go_green"> | ||
| <h4>Order Placed</h4> | <h4>Order Placed</h4> | ||
| ... | @@ -61,33 +59,48 @@ | ... | @@ -61,33 +59,48 @@ | 
| <ul> | <ul> | ||
| <li (click)="goToPage('productlist')"> | <li (click)="goToPage('productlist')"> | ||
| <div class="nearby_image"> | <div class="nearby_image"> | ||
| <img src="../assets/[email protected]"> | <img | ||
| [src]="data.product[0].image" | |||
| onerror="this.src='../assets/[email protected]'" | |||
| /> | |||
| </div> | </div> | ||
| <div class="nearby_detail"> | <div class="nearby_detail"> | ||
| <h5> | <h5> | ||
| <span class="floatLeft">{{data.shopperName}}</span> | <span class="floatLeft">{{data.shopperName}}</span> | ||
| <span class="floatRight">0 | <span class="floatRight" | ||
| <img src="../assets/Path61_2.png"> | >{{data.product[0].qty}} | ||
| <img src="../assets/Path61_2.png" /> | |||
| </span> | </span> | ||
| <div class="clear"></div> | <div class="clear"></div> | ||
| </h5> | </h5> | ||
| <p>Men's & Women's Fashion</p> | <p class="prodName">{{data.product[0].prodName}}</p> | ||
| </div> | </div> | ||
| <div class="clear"></div> | <div class="clear"></div> | ||
| </li> | </li> | ||
| </ul> | </ul> | ||
| </div> | </div> | ||
| <div class="product_detail" *ngFor="let product of data.product"> | <div class="product_detail" *ngFor="let product of data.product"> | ||
| <h6>{{product.color}}, {{product.size}}</h6> | <h6> | ||
| <span *ngIf="product.color !== 'No-Color'">{{product.color}}, </span> | |||
| <span *ngIf="product.size !== 'Any-Size'">{{product.size}}</span> | |||
| </h6> | |||
| <h5>Quantity : <span>{{product.qty}}</span></h5> | <h5>Quantity : <span>{{product.qty}}</span></h5> | ||
| <h5>Amount : <strong>A$ {{product.price}}</strong><span class="afterpay">COD</span></h5> | |||
| <h5>Delivery time : <span>Delivery in 1 hour</span></h5> | |||
| <h4>DELIVERY</h4> | |||
| <h5> | <h5> | ||
| {{deliveryAddress}} | Amount : <strong>A$ {{product.price}}</strong | ||
| ><span class="afterpay">COD</span> | |||
| </h5> | </h5> | ||
| <button class="cancel_btn" (click)="goToPage('ordercancelled')">CANCEL THIS ORDER</button> | <h5>Delivery time : <span>{{deliveryTime}}</span></h5> | ||
| <hr> | <h4>DELIVERY</h4> | ||
| <h5 *ngIf="data.deliveryAddress"> | |||
| {{data.deliveryAddress.addressType}},<br />{{data.deliveryAddress.address}}, | |||
| <br /> | |||
| {{data.deliveryAddress.building}}, <br /> | |||
| {{data.deliveryAddress.landmark}} | |||
| </h5> | |||
| <button class="cancel_btn" (click)="goToPage('ordercancelled')"> | |||
| CANCEL THIS ORDER | |||
| </button> | |||
| <hr /> | |||
| </div> | </div> | ||
| <!-- <div class="related_product_slider"> | <!-- <div class="related_product_slider"> | ||
| ... | ... | 
| ... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ | 
| width: 100%; | width: 100%; | ||
| height: 240px; | height: 240px; | ||
| text-align: center; | text-align: center; | ||
| background-image: url("../../assets/[email protected]"); | background-image: url('../../assets/[email protected]'); | ||
| background-position: center bottom; | background-position: center bottom; | ||
| background-repeat: no-repeat; | background-repeat: no-repeat; | ||
| background-size: cover; | background-size: cover; | ||
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ | 
| background-color: transparent; | background-color: transparent; | ||
| .nav_title { | .nav_title { | ||
| h4 { | h4 { | ||
| color: #FFF; | color: #fff; | ||
| } | } | ||
| } | } | ||
| } | } | ||
| ... | @@ -41,7 +41,7 @@ | ... | @@ -41,7 +41,7 @@ | 
| border-radius: 5px; | border-radius: 5px; | ||
| height: 40px; | height: 40px; | ||
| background-color: #29285b; | background-color: #29285b; | ||
| color: #FFF; | color: #fff; | ||
| font-size: 18px; | font-size: 18px; | ||
| font-weight: lighter; | font-weight: lighter; | ||
| padding-left: 20px; | padding-left: 20px; | ||
| ... | @@ -164,7 +164,7 @@ | ... | @@ -164,7 +164,7 @@ | 
| height: 45px; | height: 45px; | ||
| width: 100%; | width: 100%; | ||
| background-color: #29285b; | background-color: #29285b; | ||
| color: #FFF; | color: #fff; | ||
| font-size: 18px; | font-size: 18px; | ||
| font-weight: lighter; | font-weight: lighter; | ||
| padding-left: 20px; | padding-left: 20px; | ||
| ... | @@ -220,7 +220,7 @@ | ... | @@ -220,7 +220,7 @@ | 
| font-size: 27px; | font-size: 27px; | ||
| width: 30px; | width: 30px; | ||
| height: 30px; | height: 30px; | ||
| background-image: url("../../assets/Group32_2.png"); | background-image: url('../../assets/Group32_2.png'); | ||
| background-position: center; | background-position: center; | ||
| background-repeat: no-repeat; | background-repeat: no-repeat; | ||
| background-size: 24px; | background-size: 24px; | ||
| ... | @@ -254,7 +254,7 @@ | ... | @@ -254,7 +254,7 @@ | 
| span { | span { | ||
| text-decoration: line-through; | text-decoration: line-through; | ||
| margin-left: 10px; | margin-left: 10px; | ||
| color: rgba(215, 213, 228, 1) | color: rgba(215, 213, 228, 1); | ||
| } | } | ||
| .offer { | .offer { | ||
| color: #fff; | color: #fff; | ||
| ... | @@ -269,3 +269,10 @@ | ... | @@ -269,3 +269,10 @@ | 
| } | } | ||
| } | } | ||
| } | } | ||
| .prodName { | |||
| white-space: nowrap; | |||
| width: 200px; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| } | 
| ... | @@ -3,7 +3,11 @@ import { User, Signup, Address } from './services/user'; | ... | @@ -3,7 +3,11 @@ import { User, Signup, Address } from './services/user'; | 
| import { auth } from 'firebase/app'; | import { auth } from 'firebase/app'; | ||
| import { Router, ActivatedRoute } from '@angular/router'; | import { Router, ActivatedRoute } from '@angular/router'; | ||
| import { AngularFireAuth } from '@angular/fire/auth'; | import { AngularFireAuth } from '@angular/fire/auth'; | ||
| import { AngularFirestore, AngularFirestoreDocument, AngularFirestoreCollection } from '@angular/fire/firestore'; | import { | ||
| AngularFirestore, | |||
| AngularFirestoreDocument, | |||
| AngularFirestoreCollection | |||
| } from '@angular/fire/firestore'; | |||
| import { ServiceService } from './../config/service.service'; | import { ServiceService } from './../config/service.service'; | ||
| import { SubjectService } from './../config/subject.service'; | import { SubjectService } from './../config/subject.service'; | ||
| import { GooglePlus } from '@ionic-native/google-plus/ngx'; | import { GooglePlus } from '@ionic-native/google-plus/ngx'; | ||
| ... | @@ -14,10 +18,6 @@ import { from } from 'rxjs'; | ... | @@ -14,10 +18,6 @@ import { from } from 'rxjs'; | 
| providedIn: 'root' | providedIn: 'root' | ||
| }) | }) | ||
| export class AuthService { | export class AuthService { | ||
| userData: any; | |||
| type: number; | |||
| userPostData: any; | |||
| constructor( | constructor( | ||
| public afs: AngularFirestore, | public afs: AngularFirestore, | ||
| public afAuth: AngularFireAuth, | public afAuth: AngularFireAuth, | ||
| ... | @@ -33,6 +33,7 @@ export class AuthService { | ... | @@ -33,6 +33,7 @@ export class AuthService { | 
| this.userData = user; | this.userData = user; | ||
| console.log(this.userData); | console.log(this.userData); | ||
| this.service.set('user', JSON.stringify(this.userData)); | this.service.set('user', JSON.stringify(this.userData)); | ||
| this.SetUserData(user); | |||
| if (this.type === 1) { | if (this.type === 1) { | ||
| this.router.navigateByUrl('home'); | this.router.navigateByUrl('home'); | ||
| } else { | } else { | ||
| ... | @@ -47,12 +48,25 @@ export class AuthService { | ... | @@ -47,12 +48,25 @@ export class AuthService { | 
| }); | }); | ||
| } | } | ||
| get isLoggedIn(): boolean { | |||
| const user = JSON.parse(localStorage.getItem('user')); | |||
| return user !== null && user.emailVerified !== false ? true : false; | |||
| } | |||
| userData: any; | |||
| type: number; | |||
| userPostData: any; | |||
| loggedUser: any; | |||
| public asyc; | |||
| public async SignIn(email: string, password: string) { | public async SignIn(email: string, password: string) { | ||
| return this.afAuth.auth.signInWithEmailAndPassword(email, password).then((result) => { | return this.afAuth.auth | ||
| .signInWithEmailAndPassword(email, password) | |||
| .then(result => { | |||
| console.log('success'); | console.log('success'); | ||
| document.body.scrollTop = document.documentElement.scrollTop = 0; | document.body.scrollTop = document.documentElement.scrollTop = 0; | ||
| this.SetUserData(result.user); | this.SetUserData(result.user); | ||
| }).catch((error) => { | }) | ||
| .catch(error => { | |||
| window.alert(error.message); | window.alert(error.message); | ||
| }); | }); | ||
| } | } | ||
| ... | @@ -61,49 +75,66 @@ export class AuthService { | ... | @@ -61,49 +75,66 @@ export class AuthService { | 
| console.log(this.userData.uid, otp); | console.log(this.userData.uid, otp); | ||
| // tslint:disable-next-line:radix | // tslint:disable-next-line:radix | ||
| // const otpnew = parseInt(otp); | // const otpnew = parseInt(otp); | ||
| const custRef: AngularFirestoreCollection<any> = this.afs.collection('customers', ref => ref.where('otp', '==', otp) | const custRef: AngularFirestoreCollection<any> = this.afs.collection( | ||
| .where('uid', '==', this.userData.uid) | 'customers', | ||
| ref => ref.where('otp', '==', otp).where('uid', '==', this.userData.uid) | |||
| ); | ); | ||
| custRef.valueChanges().pipe(take(1)).subscribe((value: User[]) => { | custRef | ||
| .valueChanges() | |||
| .pipe(take(1)) | |||
| .subscribe((value: User[]) => { | |||
| if (value.length > 0) { | if (value.length > 0) { | ||
| this.afs.collection('customers').doc(this.userData.uid).update({otp: ''}); | this.afs | ||
| .collection('customers') | |||
| .doc(this.userData.uid) | |||
| .update({ otp: '', phoneVerified: true }); | |||
| this.service.set('type', 1); | this.service.set('type', 1); | ||
| this.router.navigateByUrl('nearby'); | this.router.navigateByUrl('nearby'); | ||
| } else { | } else { | ||
| window.alert('Please input valid OTP'); | window.alert('Please input valid OTP'); | ||
| } | } | ||
| }); | }); | ||
| } | } | ||
| profilePic(pic) { | |||
| this.afs | |||
| .collection('customers') | |||
| .doc(this.userData.uid) | |||
| .update({ profilePhoto: pic }); | |||
| } | |||
| public async google(type: number) { | public async google(type: number) { | ||
| this.type = type; | this.type = type; | ||
| // this.googlePlus.login({}).then(res => console.log(res)).catch(err => console.error(err)); | // this.googlePlus.login({}).then(res => console.log(res)).catch(err => console.error(err)); | ||
| this.afAuth.auth.signInWithPopup(new auth.GoogleAuthProvider()).then((result) => { | this.afAuth.auth | ||
| .signInWithPopup(new auth.GoogleAuthProvider()) | |||
| .then(result => { | |||
| console.log('success'); | console.log('success'); | ||
| console.log(result); | console.log(result.additionalUserInfo.isNewUser); | ||
| if ( | |||
| result.additionalUserInfo && | |||
| result.additionalUserInfo.isNewUser === true | |||
| ) { | |||
| this.socialSignUp(result); | this.socialSignUp(result); | ||
| } | |||
| }); | }); | ||
| } | } | ||
| public async facebook(type: number) { | public async facebook(type: number) { | ||
| this.type = type; | this.type = type; | ||
| this.afAuth.auth.signInWithPopup(new auth.FacebookAuthProvider()).then((result) => { | this.afAuth.auth | ||
| .signInWithPopup(new auth.FacebookAuthProvider()) | |||
| .then(result => { | |||
| console.log('success'); | console.log('success'); | ||
| console.log(result); | console.log(result); | ||
| }); | }); | ||
| } | } | ||
| get isLoggedIn(): boolean { | |||
| const user = JSON.parse(localStorage.getItem('user')); | |||
| return(user !== null && user.emailVerified !== false) ? true : false; | |||
| } | |||
| SetUserData(user: any) { | SetUserData(user: any) { | ||
| const userRef: AngularFirestoreDocument<any> = this.afs.doc( | |||
| const userRef: AngularFirestoreDocument<any> = this.afs.doc(`customers/${user.uid}`); | `customers/${user.uid}` | ||
| userRef.valueChanges().subscribe((value) => { | ); | ||
| userRef.valueChanges().subscribe(value => { | |||
| const userData: User = { | const userData: User = { | ||
| uid: value.uid, | uid: value.uid, | ||
| emailId: value.emailId, | emailId: value.emailId, | ||
| ... | @@ -117,7 +148,9 @@ export class AuthService { | ... | @@ -117,7 +148,9 @@ export class AuthService { | 
| otp: value.otp, | otp: value.otp, | ||
| loginType: value.loginType | loginType: value.loginType | ||
| }; | }; | ||
| console.log(userData); | this.loggedUser = userData; | ||
| this.service.set('userData', JSON.stringify(this.loggedUser)); | |||
| console.log(this.loggedUser); | |||
| }); | }); | ||
| } | } | ||
| ... | @@ -154,7 +187,11 @@ export class AuthService { | ... | @@ -154,7 +187,11 @@ export class AuthService { | 
| }; | }; | ||
| this.userPostData = postData; | this.userPostData = postData; | ||
| console.log(postData); | console.log(postData); | ||
| this.afs.collection('customers').doc(userData.uid).set(postData).then(() => { | this.afs | ||
| .collection('customers') | |||
| .doc(userData.uid) | |||
| .set(postData) | |||
| .then(() => { | |||
| console.log('successs'); | console.log('successs'); | ||
| }); | }); | ||
| } | } | ||
| ... | @@ -163,7 +200,9 @@ export class AuthService { | ... | @@ -163,7 +200,9 @@ export class AuthService { | 
| this.type = 2; | this.type = 2; | ||
| console.log(userData); | console.log(userData); | ||
| const otp = Math.floor(1000 + Math.random() * 9000); | const otp = Math.floor(1000 + Math.random() * 9000); | ||
| this.afAuth.auth.createUserWithEmailAndPassword(userData.emailId, userData.password).then((result) => { | this.afAuth.auth | ||
| .createUserWithEmailAndPassword(userData.emailId, userData.password) | |||
| .then(result => { | |||
| console.log(result.user); | console.log(result.user); | ||
| this.afAuth.auth.currentUser.sendEmailVerification(); | this.afAuth.auth.currentUser.sendEmailVerification(); | ||
| const currencyData = { | const currencyData = { | ||
| ... | @@ -187,10 +226,15 @@ export class AuthService { | ... | @@ -187,10 +226,15 @@ export class AuthService { | 
| }; | }; | ||
| this.userPostData = postData; | this.userPostData = postData; | ||
| console.log(postData); | console.log(postData); | ||
| this.afs.collection('customers').doc(custData.uid).set(postData).then(() => { | this.afs | ||
| .collection('customers') | |||
| .doc(custData.uid) | |||
| .set(postData) | |||
| .then(() => { | |||
| console.log('successs'); | console.log('successs'); | ||
| }); | }); | ||
| }).catch((error) => { | }) | ||
| .catch(error => { | |||
| window.alert(error.message); | window.alert(error.message); | ||
| }); | }); | ||
| } | } | ||
| ... | @@ -199,9 +243,12 @@ export class AuthService { | ... | @@ -199,9 +243,12 @@ export class AuthService { | 
| console.log(addressData); | console.log(addressData); | ||
| console.log(this.userData.uid); | console.log(this.userData.uid); | ||
| this.afs.collection('address').add({ | this.afs | ||
| .collection('address') | |||
| .add({ | |||
| uid: this.userData.uid | uid: this.userData.uid | ||
| }).then((docRef) => { | }) | ||
| .then(docRef => { | |||
| console.log(docRef); | console.log(docRef); | ||
| const addrData = { | const addrData = { | ||
| uid: this.userData.uid, | uid: this.userData.uid, | ||
| ... | @@ -220,7 +267,11 @@ export class AuthService { | ... | @@ -220,7 +267,11 @@ export class AuthService { | 
| }; | }; | ||
| const neworderId = docRef.id; | const neworderId = docRef.id; | ||
| console.log(addrData); | console.log(addrData); | ||
| this.afs.collection('address').doc(neworderId).set(addrData).then(() => { | this.afs | ||
| .collection('address') | |||
| .doc(neworderId) | |||
| .set(addrData) | |||
| .then(() => { | |||
| console.log('Address add Successfully'); | console.log('Address add Successfully'); | ||
| this.service.set('user', JSON.stringify(this.userData)); | this.service.set('user', JSON.stringify(this.userData)); | ||
| this.router.navigateByUrl('home'); | this.router.navigateByUrl('home'); | ||
| ... | @@ -231,14 +282,9 @@ export class AuthService { | ... | @@ -231,14 +282,9 @@ export class AuthService { | 
| } | } | ||
| } | } | ||
| /*displayName: "Adarsh Techware" | /*displayName: "Adarsh Techware" | ||
| email: "[email protected]" | email: "[email protected]" | ||
| emailVerified: true | emailVerified: true | ||
| : "https://lh4.googleusercontent.com/-h0rs2pE-Azw/AAAAAAAAAAI/AAAAAAAAAAA/ACHi3rcjNtapRhKoG09NKifQsv_lQPC_2A/photo.jpg" | : "https://lh4.googleusercontent.com/-h0rs2pE-Azw/AAAAAAAAAAI/AAAAAAAAAAA/ACHi3rcjNtapRhKoG09NKifQsv_lQPC_2A/photo.jpg" | ||
| : "vT498Fz6X0Z6l5l5iNn5hxfwz692" | : "vT498Fz6X0Z6l5l5iNn5hxfwz692" | ||
| providerData: [Gl]*/ | providerData: [Gl]*/ | ||
Please
register
or
sign in
to comment