Commit d5072214 by Alen Jose

mytrips

parent f5ea0762
...@@ -102,4 +102,5 @@ ...@@ -102,4 +102,5 @@
<plugin name="cordova-plugin-whitelist" spec="^1.3.1" /> <plugin name="cordova-plugin-whitelist" spec="^1.3.1" />
<plugin name="cordova-plugin-x-toast" spec="^2.6.2" /> <plugin name="cordova-plugin-x-toast" spec="^2.6.2" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" /> <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="mx.ferreyra.callnumber" spec="~0.0.2" />
</widget> </widget>
...@@ -291,6 +291,11 @@ ...@@ -291,6 +291,11 @@
"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz", "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz",
"integrity": "sha512-ToJbeJnxDc3O325FvcKVb3yHO1hvgHjCFvhKol6Z17GiB7vL104POjFQT4RnlLiAGSRCBAMxinDec9y9vQYdyg==" "integrity": "sha512-ToJbeJnxDc3O325FvcKVb3yHO1hvgHjCFvhKol6Z17GiB7vL104POjFQT4RnlLiAGSRCBAMxinDec9y9vQYdyg=="
}, },
"@ionic-native/call-number": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@ionic-native/call-number/-/call-number-4.7.0.tgz",
"integrity": "sha512-Uw3/ljeauTnEnQsCOvmXOu8SwPtuqBbYLisePk/eDr0DbjsnpmrI/GYAeWOScea7b3I8q0XEp1Fr527HJK7ptg=="
},
"@ionic-native/core": { "@ionic-native/core": {
"version": "3.12.1", "version": "3.12.1",
"resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-3.12.1.tgz", "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-3.12.1.tgz",
...@@ -1123,6 +1128,11 @@ ...@@ -1123,6 +1128,11 @@
} }
} }
}, },
"call-number": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/call-number/-/call-number-1.0.1.tgz",
"integrity": "sha1-v52q5If9alVz+JqjZV++ivA2r9I="
},
"camelcase": { "camelcase": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
"@angular/http": "4.4.3", "@angular/http": "4.4.3",
"@angular/platform-browser": "4.4.3", "@angular/platform-browser": "4.4.3",
"@angular/platform-browser-dynamic": "4.4.3", "@angular/platform-browser-dynamic": "4.4.3",
"@ionic-native/call-number": "^4.7.0",
"@ionic-native/core": "3.12.1", "@ionic-native/core": "3.12.1",
"@ionic-native/date-picker": "^4.7.0", "@ionic-native/date-picker": "^4.7.0",
"@ionic-native/facebook": "^4.6.0", "@ionic-native/facebook": "^4.6.0",
...@@ -32,6 +33,7 @@ ...@@ -32,6 +33,7 @@
"@ionic-native/toast": "^4.7.0", "@ionic-native/toast": "^4.7.0",
"@ionic/storage": "2.0.1", "@ionic/storage": "2.0.1",
"angularfire2": "^5.0.0-rc.10", "angularfire2": "^5.0.0-rc.10",
"call-number": "^1.0.1",
"cordova-android": "^7.1.0", "cordova-android": "^7.1.0",
"cordova-plugin-datepicker": "^0.9.3", "cordova-plugin-datepicker": "^0.9.3",
"cordova-plugin-device": "^1.1.4", "cordova-plugin-device": "^1.1.4",
...@@ -78,10 +80,11 @@ ...@@ -78,10 +80,11 @@
}, },
"cordova-plugin-datepicker": {}, "cordova-plugin-datepicker": {},
"cordova-plugin-request-location-accuracy": {}, "cordova-plugin-request-location-accuracy": {},
"cordova-plugin-network-information": {} "cordova-plugin-network-information": {},
"mx.ferreyra.callnumber": {}
}, },
"platforms": [ "platforms": [
"android" "android"
] ]
} }
} }
\ No newline at end of file
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<ul> <ul>
<li menuClose class="book" (click)="open_page('HomePage')">Book Ride</li> <li menuClose class="book" (click)="open_page('HomePage')">Book Ride</li>
<li menuClose class="trip" (click)="open_page('MytripsPage')">My Trips</li> <li menuClose class="trip" (click)="open_page('MytripsPage')">My Trips</li>
<li menuClose class="settings" (click)="open_page('SettingsPage')">Settings</li> <!-- <li menuClose class="settings" (click)="open_page('SettingsPage')">Settings</li> -->
<li menuClose class="logout" (click)="open_page('LandingPage')">Logout</li> <li menuClose class="logout" (click)="open_page('LandingPage')">Logout</li>
</ul> </ul>
</div> </div>
......
...@@ -21,6 +21,7 @@ import { LocationAccuracy } from '@ionic-native/location-accuracy'; ...@@ -21,6 +21,7 @@ import { LocationAccuracy } from '@ionic-native/location-accuracy';
import { SubjectService } from "../providers/subject.service"; import { SubjectService } from "../providers/subject.service";
import { dataService } from "../providers/common.service"; import { dataService } from "../providers/common.service";
import { Network } from '@ionic-native/network'; import { Network } from '@ionic-native/network';
import { CallNumber } from '@ionic-native/call-number';
export const firebaseConfig = { export const firebaseConfig = {
apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU", apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU",
...@@ -62,6 +63,7 @@ export const firebaseConfig = { ...@@ -62,6 +63,7 @@ export const firebaseConfig = {
SubjectService, SubjectService,
dataService, dataService,
Network, Network,
CallNumber,
] ]
}) })
export class AppModule {} export class AppModule {}
...@@ -190,4 +190,7 @@ ...@@ -190,4 +190,7 @@
.txt_cntr{text-align: center} .txt_cntr{text-align: center}
.clr_wht{color: #fff} .clr_wht{color: #fff}
.rate_est{font-size: 15px;padding-top: 5px} .rate_est{font-size: 15px;padding-top: 5px}
.estim_li{padding-top: 5px !important;} .estim_li{padding-top: 5px !important;}
\ No newline at end of file .button-md:hover:not(.disable-hover) {
background: #f7941e;
}
\ No newline at end of file
...@@ -20,39 +20,36 @@ ...@@ -20,39 +20,36 @@
<ion-slides pager="false" #mySlider class="hm_service_slide" (ionSlideDidChange)="slideChanged()"> <ion-slides pager="false" #mySlider class="hm_service_slide" (ionSlideDidChange)="slideChanged()">
<ion-slide> <ion-slide>
<ul> <ul>
<li (click)="open_page('TripdetailsPage')" > <li (click)="open_page('TripdetailsPage',i)" *ngFor="let ride of trips; let i=index">
<!-- <h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6> <h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6>
<p>{{ride.pickup_date}}<span></span></p> --> <p>{{ride.pickup_date}}<span></span></p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon> <ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div> <div class="clear"></div>
</li> </li>
</ul> </ul>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<ul *ngIf="trips"> <ul>
<li ngFor="let ride of trips?.upcoming"> <span *ngFor="let ride of trips; let i=index">
<!-- --> <li *ngIf="ride.status=='Booking'||ride.status=='Processing'" (click)="open_page('TripdetailsPage',i)">
<h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6> <h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6>
<p>{{ride.pickup_date}}<span></span></p> <p>{{ride.pickup_date}}<span></span></p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon> <ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div> <div class="clear"></div>
</li> </li>
</span>
</ul> </ul>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<ul> <ul>
<li> <span *ngFor="let ride of trips; let i=index">
<h6>11 AM from taana to Mumbai Airport Domestic Terminal</h6> <li *ngIf="ride.status=='Complete'" (click)="open_page('TripdetailsPage',i)">
<p>Today</p> <h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6>
<ion-icon name="ios-arrow-forward-outline"></ion-icon> <p>{{ride.pickup_date}}</p>
<div class="clear"></div>
</li>
<li>
<h6>11 AM from taana to Mumbai Airport Domestic Terminal</h6>
<p>Today</p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon> <ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div> <div class="clear"></div>
</li> </li>
</span>
</ul> </ul>
</ion-slide> </ion-slide>
</ion-slides> </ion-slides>
......
...@@ -36,18 +36,14 @@ export class MytripsPage { ...@@ -36,18 +36,14 @@ export class MytripsPage {
} }
ionViewDidEnter() { ionViewDidEnter() {
console.log(1)
this.storage.get('user_data').then(data => { this.storage.get('user_data').then(data => {
if (data) { if (data) {
this.local = data; this.local = data;
this.myservice.load_post({ 'token': this.local.token }, 'myTrips').subscribe(response => { this.myservice.load_post({ 'token': this.local.token }, 'myTrips').subscribe(response => {
this.myservice.hide_loader() this.myservice.hide_loader()
if (response.status == 'success') { if (response.status == 'success') {
this.trips = response this.trips = response.all
// this.allTrips = response.all
console.log(this.trips) console.log(this.trips)
// this.upTrips = response.upcoming
// this.compTrips = response.completed
} }
else { else {
this.myservice.show_alert('Failed', 'Please try again') this.myservice.show_alert('Failed', 'Please try again')
...@@ -65,11 +61,10 @@ export class MytripsPage { ...@@ -65,11 +61,10 @@ export class MytripsPage {
slideChanged() { slideChanged() {
let currentIndex = this.slider.getActiveIndex(); let currentIndex = this.slider.getActiveIndex();
this.slidertab = currentIndex; this.slidertab = currentIndex;
console.log("Current index is", currentIndex);
} }
open_page(page){ open_page(page,index){
this.navCtrl.push(page); this.navCtrl.push(page,{data:this.trips[index]});
} }
} }
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
<button class="nav_btn floatRight"></button> <button class="nav_btn floatRight"></button>
<div class="clear"></div> <div class="clear"></div>
<div class="cab_footer_location theme_dark_bg"> <div class="cab_footer_location theme_dark_bg">
<input class="cab_location_input cab_search" placeholder="Search for rides"> <input class="cab_location_input cab_search" placeholder="Search" [(ngModel)]="searchText">
</div> </div>
</ion-header> </ion-header>
<ion-content class="themedark_theme"> <ion-content class="themedark_theme">
<div class="cab_search_result_page"> <div class="cab_search_result_page">
<p>Popular Search</p> <p>Popular Search</p>
<ul> <ul>
<li *ngFor="let search of searches"> <li *ngFor="let search of searches | search : searchText">
<h5>{{search.keyword}}</h5> <h5>{{search.keyword}}</h5>
<h6>{{search.location}}</h6> <h6>{{search.location}}</h6>
</li> </li>
......
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular'; import { IonicPageModule } from 'ionic-angular';
import { SearchridePage } from './searchride'; import { SearchridePage } from './searchride';
import { SearchPipe } from "../../pipes/search/search";
@NgModule({ @NgModule({
declarations: [ declarations: [
SearchridePage, SearchridePage,
SearchPipe,
], ],
imports: [ imports: [
IonicPageModule.forChild(SearchridePage), IonicPageModule.forChild(SearchridePage),
......
...@@ -11,6 +11,7 @@ import { user, search } from "../../models/mymodel"; ...@@ -11,6 +11,7 @@ import { user, search } from "../../models/mymodel";
export class SearchridePage { export class SearchridePage {
local:user local:user
searches:Array<search> searches:Array<search>
searchText:string;
constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl: ViewController, private myservice:Myservice, private storage: Storage) { constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl: ViewController, private myservice:Myservice, private storage: Storage) {
} }
......
...@@ -9,51 +9,54 @@ ...@@ -9,51 +9,54 @@
<ion-content class="themelogin_background"> <ion-content class="themelogin_background">
<div class="cab_trip_detail_wrapper"> <div class="cab_trip_detail_wrapper">
<h4>Pickup Point</h4> <h4>Pickup Point</h4>
<p class="floatLeft textLeft width50">North Sarovar Road,E City</p> <p class="floatLeft textLeft width50">{{details.pickup_area}}</p>
<p class="floatRight textRight width50">11 :23 am, 02-08-2017</p> <p class="floatRight textRight width50">{{details.pickup_time}}, {{details.pickup_date}}</p>
<div class="clear"></div> <div class="clear"></div>
<br> <br>
<h4>Drop Point</h4> <h4>Drop Point</h4>
<p class="floatLeft textLeft width50">Majestic Junction 3rd Street</p> <p class="floatLeft textLeft width50">{{details.drop_area}}</p>
<p class="floatRight textRight width50">12 :00 am, 02-08-2017</p> <p class="floatRight textRight width50" *ngIf="details.drop_time">{{details.drop_time}}, {{details.drop_date}}</p>
<div class="clear"></div> <div class="clear"></div>
<br> <br>
<br> <br>
<hr> <hr *ngIf="details.assigned_for">
<ion-grid class="p0"> <ion-grid class="p0" *ngIf="details.assigned_for">
<ion-row> <ion-row>
<ion-col col-6 class="p0"> <ion-col col-6 class="p0">
<h4>CAB DETAILS</h4> <h4>CAB DETAILS</h4>
<p>Sedan</p> <p>{{details.taxi_type}}</p>
<p>Ford Fiesta</p> <!-- <p>Ford Fiesta</p> -->
<p>KA 01 CJ 6844 </p> <p>{{details.car_no}}</p>
</ion-col> </ion-col>
<ion-col col-6 class="p0"> <ion-col col-6 class="p0">
<h4>DRIVER DETAILS</h4> <h4>DRIVER DETAILS</h4>
<p>Balakrishnan</p> <p>{{details.name}}</p>
<p>+91 9961531199</p> <p>{{details.phone}}</p>
<p><strong>Call Now</strong></p> <p><strong (click)="call()">Call Now</strong></p>
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
<br> <br>
<br> <br>
<hr> <hr *ngIf="details.item_status=='Complete'">
<span *ngIf="details.item_status=='Complete'">
<h4>PAYMENT DETAILS</h4> <h4>PAYMENT DETAILS</h4>
<p class="floatLeft textLeft">Amount Charged</p> <p class="floatLeft textLeft">Amount Charged</p>
<p class="floatRight textRight">Rs 107</p> <p class="floatRight textRight">Rs {{details.amount}}</p>
<div class="clear"></div> <div class="clear"></div>
<p class="floatLeft textLeft">Discount Amount</p> <p class="floatLeft textLeft">Discount Amount</p>
<p class="floatRight textRight">Rs 07</p> <p class="floatRight textRight">Rs {{details.discount}}</p>
<div class="clear"></div> <div class="clear"></div>
<p class="floatLeft textLeft">Amount Payable</p> <p class="floatLeft textLeft">Amount Payable</p>
<p class="floatRight textRight"><strong>Rs 100</strong></p> <p class="floatRight textRight"><strong>Rs {{details.amount - details.discount}}</strong></p>
<div class="clear"></div> <div class="clear"></div>
</span>
<br> <br>
<br> <br>
<span *ngIf="details.status=='Complete' && !details.rating">
<h4 class="textCenter">Kindly Rate us for our service.</h4> <h4 class="textCenter">Kindly Rate us for our service.</h4>
<p class="textCenter">Your ratting is important for our better service.</p> <p class="textCenter">Your ratting is important for our better service.</p>
<div class="cab_ratting"> <div class="cab_ratting" (click)="rating($event)">
<input type="radio" id="star5" name="rating" value="5" /><label for="star5" title="Rocks!">5 stars</label> <input type="radio" id="star5" name="rating" value="5" /><label for="star5" title="Rocks!">5 stars</label>
<input type="radio" id="star4" name="rating" value="4" /><label for="star4" title="Pretty good">4 stars</label> <input type="radio" id="star4" name="rating" value="4" /><label for="star4" title="Pretty good">4 stars</label>
<input type="radio" id="star3" name="rating" value="3" /><label for="star3" title="Meh">3 stars</label> <input type="radio" id="star3" name="rating" value="3" /><label for="star3" title="Meh">3 stars</label>
...@@ -61,5 +64,12 @@ ...@@ -61,5 +64,12 @@
<input type="radio" id="star1" name="rating" value="1" /><label for="star1" title="Sucks big time">1 star</label> <input type="radio" id="star1" name="rating" value="1" /><label for="star1" title="Sucks big time">1 star</label>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
</span>
</div> </div>
</ion-content> </ion-content>
<ion-footer *ngIf="details.status!='Complete' && details.status!='Started' && details.status!='Cancelled'">
<div class="cab_footer_btn_bay">
<button ion-button class="cab_footer_btn single_btn" (click)="cancel()">CANCEL RIDE</button>
<div class="clear"></div>
</div>
</ion-footer>
\ No newline at end of file
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular'; import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Myservice } from "../../providers/myservice";
import { Storage } from "@ionic/storage";
import { user } from "../../models/mymodel";
import { Toast } from "@ionic-native/toast";
import { CallNumber } from '@ionic-native/call-number';
@IonicPage() @IonicPage()
@Component({ @Component({
...@@ -7,18 +12,66 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular'; ...@@ -7,18 +12,66 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular';
templateUrl: 'tripdetails.html', templateUrl: 'tripdetails.html',
}) })
export class TripdetailsPage { export class TripdetailsPage {
details = this.navParams.get('data')
local:user
constructor(public navCtrl: NavController, public navParams: NavParams) { constructor(public navCtrl: NavController, public navParams: NavParams, private myservice: Myservice, private storage: Storage, private toast: Toast, private callNumber: CallNumber) {
} }
ionViewDidLoad() { ionViewDidEnter() {
console.log('ionViewDidLoad TripdetailsPage'); this.storage.get('user_data').then(data=>{
if(data){
this.local = data
}
})
console.log(this.details);
} }
back(){ back(){
this.navCtrl.pop(); this.navCtrl.pop();
} }
rating(event){
if (Number(event.srcElement.value)){
this.myservice.show_loader()
var data = { 'rating': Number(event.srcElement.value), 'username': this.local.id, 'driver_id': this.details.assigned_for, 'booking_id': this.details.bookingid}
this.myservice.load_post(data,'setRating').subscribe(response=>{
this.myservice.hide_loader()
if(response.status=='success'){
this.details.rating = Number(event.srcElement.value)
this.toast.show(response.message, '2000', 'center').subscribe(
toast => {
console.log(toast);
});
}
else{
this.myservice.show_alert('',response.message)
}
})
}
}
call(){
this.callNumber.callNumber(this.details.phone, true)
.then(res => console.log('Launched dialer!', res))
.catch(err => console.log('Error launching dialer', err));
}
cancel(){
this.myservice.show_loader()
this.myservice.load_post({id:this.details.bookingid},'cancelRide').subscribe(response=>{
this.myservice.hide_loader()
if(response.status == 'success'){
this.details.status = 'Cancelled'
this.toast.show(response.message, '2000', 'center').subscribe(
toast => {
console.log(toast);
});
}
else{
this.myservice.show_alert('',response.message)
}
})
}
} }
import { NgModule } from '@angular/core';
import { SearchPipe } from './search/search';
@NgModule({
declarations: [SearchPipe],
imports: [],
exports: [SearchPipe]
})
export class PipesModule {}
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'search',
})
export class SearchPipe implements PipeTransform {
transform(items: any, searchText: string): any[] {
if (!items) return [];
if (!searchText) return items;
searchText = searchText.toLowerCase();
return items.filter(it => {
return it.keyword.toLowerCase().includes(searchText);
});
}
}
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