Commit 711b7471 by Alen Jose

forgotpswd

parent bd81b90e
......@@ -4591,6 +4591,11 @@
"resolved": "https://registry.npmjs.org/ionic-plugin-keyboard/-/ionic-plugin-keyboard-2.2.1.tgz",
"integrity": "sha1-8qnhabvptVIkADR8n9bTRn7j+hI="
},
"ionic2-rating": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/ionic2-rating/-/ionic2-rating-1.2.2.tgz",
"integrity": "sha1-5Z9FnGRF3qlWkwHCK6iTivB2WOY="
},
"ionicons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-3.0.0.tgz",
......
......@@ -51,6 +51,7 @@
"firebase": "^5.0.4",
"ionic-angular": "3.7.0",
"ionic-plugin-keyboard": "^2.2.1",
"ionic2-rating": "^1.2.2",
"ionicons": "3.0.0",
"mx.ferreyra.callnumber": "~0.0.2",
"promise-polyfill": "^8.0.0",
......
<ion-content padding class="themelogin_background">
<div class="cab_login_wrapper">
<div class="cab_logo">
<img src="assets/img/cab_logo.png" style="width: 120px;">
</div>
<h4>Forgot Password</h4>
<hr>
<br>
<div class="cab_form">
<form [formGroup]="forgotForm">
<div class="cab_form_row">
<div class="cab_phone_number">
<input class="cab_phone_input floatRight cab_mail" type="email" placeholder="Email" formControlName="email">
<div class="clear"></div>
<div class="cab_req" *ngIf="forgotForm.get('email').hasError('pattern') && (forgotForm.get('email').dirty || forgotForm.get('email').touched)">
Enter a valid Email
</div>
<div class="cab_req" *ngIf="forgotForm.get('email').hasError('required') && (forgotForm.get('email').dirty || forgotForm.get('email').touched)">
Enter a valid Email
</div>
</div>
</div>
</form>
<br>
<br>
<div class="cab_form_row">
<button ion-button class="cab_sign_btn" (click)="forgot()" [disabled]="forgotForm.invalid" >Sent recovery password</button>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { ForgotPage } from './forgot';
@NgModule({
declarations: [
ForgotPage,
],
imports: [
IonicPageModule.forChild(ForgotPage),
],
})
export class ForgotPageModule {}
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { FormGroup, Validators, FormBuilder } from '@angular/forms'
import { Myservice } from '../../providers/myservice'
@IonicPage()
@Component({
selector: 'page-forgot',
templateUrl: 'forgot.html',
})
export class ForgotPage {
forgotForm: FormGroup
constructor(public navCtrl: NavController, public navParams: NavParams, private formbuilder: FormBuilder, private myservice: Myservice) {
this.forgotForm = this.formbuilder.group({
email: ['', Validators.compose([Validators.required, Validators.pattern("[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}")])]
})
}
forgot() {
this.myservice.show_loader()
this.myservice.load_post(this.forgotForm.value, 'Forget_password').subscribe(response => {
this.myservice.hide_loader()
if (response.status == 'success') {
this.myservice.show_alert('', response.message)
this.navCtrl.pop();
}
else {
this.myservice.show_alert('', response.message)
}
})
}
}
......@@ -76,14 +76,23 @@ export class HomePage {
var This = this
This.locRef = firebase.database().ref().child('/drivers/')
This.locRef.orderByChild("status").equalTo('online').on("value", function (snapshot) {
var res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
var res_arr =[]
res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
var image = {
url: 'assets/img/map_label.png',
scaledSize: new google.maps.Size(50, 22), // scaled size
origin: new google.maps.Point(0, 0), // origin
anchor: new google.maps.Point(25, 12) // anchor
};
//placing marker for each driver
for (let i = 0; i < res_arr.length; i++) {
let marker = new google.maps.Marker({
map: This.map,
icon: 'assets/img/star-on-big.png',
position: { lat: res_arr[i].lat, lng: res_arr[i].lng }
icon: image,
position: { lat: res_arr[i].lat, lng: res_arr[i].lng },
size: new google.maps.Size(20, 32),
});
This.driverMarkers[i]=marker
}
......@@ -107,6 +116,7 @@ export class HomePage {
fillAddress(autocomplete, type) {
if (this.markers.length==3) {
this.markers[0].setMap(null);
this.markers[0] = null;
}
var place = autocomplete.getPlace();
var lat = place.geometry.location.lat();
......@@ -118,9 +128,6 @@ export class HomePage {
});
var search = place.formatted_address
this.myservice.load_post({ 'keyword': place.name, 'userid': this.local.id, 'location': search},'setSearch').subscribe(response=>{
})
if (type == 0) {
this.p_lat = lat
......@@ -178,10 +185,12 @@ export class HomePage {
}
calculateAndDisplayRoute(directionsService, directionsDisplay, start, dest) {
console.log(this.markers)
for (var i = 0; i < this.markers.length; i++) {
if (this.markers[i])
this.markers[i].setMap(null);
if (this.markers[i]){
this.markers[i].setMap(null);
this.markers[i]=null;
console.log(this.markers[i])
}
}
directionsService.route({
origin: start,
......@@ -197,6 +206,10 @@ export class HomePage {
}
ridemore() {
this.myservice.load_post({ 'pickKeyword': this.locForm.value.pickLoc, 'dropKeyword': this.locForm.value.dropLoc, 'userid': this.local.id, 'pickLat': this.p_lat, 'pickLng': this.p_lng, 'dropLat': this.d_lat, 'dropLng': this.d_lng}, 'setSearch').subscribe(response => {
})
var data = { 'pickLat': this.p_lat, 'pickLng': this.p_lng, 'dropLat': this.d_lat, 'dropLng': this.d_lng, 'pickArea': this.locForm.value.pickLoc, 'dropArea': this.locForm.value.dropLoc}
this.data.setbookingData(data)
let modal = this.modalCtrl.create('RidepopPage');
......@@ -216,6 +229,18 @@ export class HomePage {
searchride() {
let modal = this.modalCtrl.create('SearchridePage');
modal.onDidDismiss(data=>{
if(data){
var directionsService = new google.maps.DirectionsService;
this.directionsDisplay.setMap(this.map);
var start = new google.maps.LatLng(data.picklat, data.picklng);
var dest = new google.maps.LatLng(data.droplat, data.droplng);
this.calculateAndDisplayRoute(directionsService, this.directionsDisplay, start, dest);
}
})
modal.present();
}
......
......@@ -10,9 +10,9 @@
<div class="cab_form_row">
<button ion-button class="cab_sign_btn1" (click)="open_page('LoginPage')">Sign In</button>
</div>
<div class="cab_form_row textCenter">
<p>Forgot Password</p>
</div>
<!-- <div class="cab_form_row textCenter">
<p (click)="forgot()">Forgot Password</p>
</div> -->
</div>
</div>
</ion-content>
......
......@@ -92,10 +92,15 @@ export class LandingPage {
.catch(err => console.error(err));
}
forgot(){
this.navCtrl.push('ForgotPage')
}
logged_event(data) {
this.events.publish('user:profile', data);
}
getLoc(){
var promise = new Promise((resolve, reject) => {
this.geolocation.getCurrentPosition().then((resp) => {
......
......@@ -41,11 +41,11 @@
</div> -->
<br>
<div class="cab_form_row">
<button ion-button class="cab_sign_btn" (click)="login()">Sign In</button>
<button ion-button class="cab_sign_btn" (click)="login()" [disabled]="loginForm.invalid">Sign In</button>
</div>
<br>
<div class="cab_form_row textCenter">
<p>Forgot Password</p>
<p (click)="forgot()">Forgot Password</p>
</div>
</div>
</div>
......
......@@ -61,4 +61,8 @@ export class LoginPage {
})
}
forgot() {
this.navCtrl.push('ForgotPage')
}
}
......@@ -39,7 +39,8 @@ export class MapPage {
var locRef = firebase.database().ref().child('/drivers/');
locRef.orderByChild("id").equalTo(Number(This.driver.driverId)).on("value", function (snapshot) {
var res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
var res_arr = []
res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
console.log(res_arr[0])
if (res_arr[0].started == true){
......@@ -121,7 +122,8 @@ export class MapPage {
var locRef = firebase.database().ref().child('/drivers/');
locRef.orderByChild("id").equalTo(Number(This.driver.driverId)).on("value", function (snapshot) {
var res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
var res_arr = []
res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
console.log(res_arr[0])
if (res_arr[0].started == false) {
locRef.off("value");
......
<ion-content padding class="theme_dark_transparent">
<div class="wrapper">
<div class="log_div">
<ion-card>
<ion-card-content>
<h4>Rate now</h4>
<hr>
<br>
<div class="textCenter">
<div class="ratting_circle">
<img [src]=driver.image>
</div>
</div>
<h5>{{driver.name}}</h5>
<p>Give your rating</p>
<rating
readOnly="false"
max="5"
emptyStarIconName="star-outline"
halfStarIconName="star-half"
starIconName="star"
nullable="false" [(ngModel)]="rate"></rating>
<!-- <p>Give your Feedback</p>
<textarea rows="3">
</textarea> -->
</ion-card-content>
<div padding class="textCenter">
<button ion-button full class=" receipt_close brdr" (click)="submit()">Submit</button>
<button ion-button full class=" receipt_close" (click)="dismiss()">Later</button>
<div class="clear"></div>
</div>
</ion-card>
</div>
</div>
</ion-content>
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { RattingPage } from './ratting';
import { Ionic2RatingModule } from 'ionic2-rating';
@NgModule({
declarations: [
RattingPage,
],
imports: [
IonicPageModule.forChild(RattingPage),
Ionic2RatingModule
],
})
export class RattingPageModule {}
page-ratting {
.theme_dark_transparent {
background: rgba(0,0,0,0.8);
}
.wrapper{
width:100%;
height:100%;
.log_div {
padding: 15px;
position:absolute;
top:0px;
left:0px;
right:0px;
bottom:0px;
padding-top: calc(100% - 85%);
img{
width: 150px;
padding-bottom: 30px;
}
.card{
border-radius: 5px;
h4{
color:#616161;
font-size: 26px;
font-weight: 400;
text-align: center;
}
hr{
width:30px;
margin:0 auto;
border:2px solid #ffd800;
height:0px;
}
.ratting_circle{
width:85px;
height:85px;
border-radius: 50%;
background: #f4f4f4;
margin:0 auto;
img{
width:100%;
height:100%;
border-radius: 50%;
object-fit: cover;
object-position: center;
padding: 0px;
}
}
h5{
text-align: center;
color: #656565;
padding-top: 10px;
font-weight: 400;
font-size:16px;
}
p{
color: #b2b2b2;
text-align: center;
padding-top: 10px;
padding-bottom: 10px;
}
.rating{
margin:0px;
padding:0px;
text-align: center;
li{
padding: 3px;
font-size: 25px;
.icon{
color: #fcb040 !important;
}
}
}
textarea{
background: #ebebeb;
width:100%;
}
.receipt_close{
background: #4d4d4d;
color: #ffffff;
font-size: 16px;
border-radius:0px;
height:35px;
padding-left: 15px;
padding-right:15px;
text-transform: capitalize;
width: 50%;
font-weight: 400;
margin:0 auto;
float: left;
}
.brdr{
border-right: 1px solid #fff;
}
}
}
}
}
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams,ViewController } from 'ionic-angular';
import { Myservice } from "../../providers/myservice";
import { Storage } from "@ionic/storage";
import { user } from "../../models/mymodel";
import { dataService } from "../../providers/common.service";
import { Toast } from "@ionic-native/toast";
@IonicPage()
@Component({
selector: 'page-ratting',
templateUrl: 'ratting.html',
})
export class RattingPage {
driver = this.navParams.get('driver')
rate:number;
local:user;
constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl:ViewController, private myservice: Myservice, private storage:Storage, private comData:dataService, private toast:Toast) {
}
ionViewDidEnter() {
this.storage.get('user_data').then(data=>{
if(data){
this.local = data
}
})
}
dismiss()
{
this.navCtrl.setRoot('HomePage')
}
submit(){
if(this.rate!=undefined && this.rate){
this.myservice.show_loader();
var book = this.comData.getbookingData()
var data = { 'rating': this.rate, 'username': this.local.id, 'driver_id': this.driver.driverId, 'booking_id': book.bookingid }
console.log(data)
this.myservice.load_post(data, 'setRating').subscribe(response => {
this.myservice.hide_loader()
if (response.status == 'success') {
this.navCtrl.setRoot('HomePage')
this.toast.show(response.message, '2000', 'center').subscribe(
toast => {
console.log(toast);
});
}
else {
this.myservice.show_alert('', response.message)
}
})
}
}
}
......@@ -103,7 +103,8 @@ export class RidedetailPage {
findDrivers(){
var This = this
firebase.database().ref().child('/drivers/').orderByChild("status").equalTo('online').once("value", function (snapshot) {
var res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
var res_arr = []
res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
console.log(res_arr)
This.drivers = [];
for (let i = 0; i < res_arr.length; i++) {
......@@ -182,6 +183,7 @@ export class RidedetailPage {
track(){
this.data.setdriverData(this.driver)
console.log('driv',this.driver)
this.navCtrl.push('MapPage')
}
}
......@@ -80,14 +80,14 @@
<ion-col col-3 class="jr_padding0">
<div class="jr_car_info_detail jr_padding0">
<p>Total</p>
<h6>300 km</h6>
<h6>{{ride.km}} km</h6>
</div>
<div class="jr_clear"></div>
</ion-col>
<ion-col col-3 class="jr_padding0 right">
<div class="jr_car_info_detail jr_padding0">
<p>Total Price</p>
<h6>300 km</h6>
<h6>Rs. {{ride.amount}}</h6>
</div>
<div class="jr_clear"></div>
</ion-col>
......@@ -98,7 +98,7 @@
</div>
<div class="jr_bottom_button_bay">
<button ion-button class="jr_offer_ride2" (click)="track()">Track Driver</button>
<button ion-button class="jr_offer_ride2" (click)="close()">Close</button>
</div>
</div>
......
import { Component, NgZone } from '@angular/core';
import { IonicPage, NavController, NavParams, Platform, LoadingController, AlertController } from 'ionic-angular';
import { IonicPage, NavController, NavParams, Platform } from 'ionic-angular';
import { dataService } from "../../providers/common.service";
import { Myservice } from "../../providers/myservice";
import { Storage } from "@ionic/storage";
......@@ -21,7 +21,7 @@ export class RidesummaryPage {
driver: any;
ride:any;
constructor(public navCtrl: NavController, public navParams: NavParams, private data: dataService, private zone: NgZone, private myservice: Myservice, private storage: Storage, public platform: Platform, public loadingCtrl: LoadingController, private alertCtrl: AlertController) {
constructor(public navCtrl: NavController, public navParams: NavParams, private data: dataService, private zone: NgZone, private myservice: Myservice, private storage: Storage, public platform: Platform) {
}
ionViewDidEnter() {
......@@ -89,4 +89,8 @@ export class RidesummaryPage {
this.unregisterBackButtonAction && this.unregisterBackButtonAction();
}
close(){
this.navCtrl.push('RattingPage',{driver:this.driver})
}
}
......@@ -13,7 +13,7 @@
<div class="cab_search_result_page">
<p>Popular Search</p>
<ul>
<li *ngFor="let search of searches | search : searchText">
<li *ngFor="let search of searches | search : searchText" (click)="setDirection(search)">
<h5>{{search.keyword}}</h5>
<h6>{{search.location}}</h6>
</li>
......
......@@ -30,6 +30,10 @@ export class SearchridePage {
}
})
}
setDirection(data){
this.viewCtrl.dismiss(data);
}
dismiss()
{
......
......@@ -24,6 +24,7 @@ driverData:any;
public getrateData(){
return this.rateData;
}
public setdriverData(val){
this.driverData = val;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment