Commit d5072214 by Alen Jose

mytrips

parent f5ea0762
......@@ -102,4 +102,5 @@
<plugin name="cordova-plugin-whitelist" spec="^1.3.1" />
<plugin name="cordova-plugin-x-toast" spec="^2.6.2" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="mx.ferreyra.callnumber" spec="~0.0.2" />
</widget>
......@@ -291,6 +291,11 @@
"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz",
"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": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-3.12.1.tgz",
......@@ -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": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
......
......@@ -20,6 +20,7 @@
"@angular/http": "4.4.3",
"@angular/platform-browser": "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/date-picker": "^4.7.0",
"@ionic-native/facebook": "^4.6.0",
......@@ -32,6 +33,7 @@
"@ionic-native/toast": "^4.7.0",
"@ionic/storage": "2.0.1",
"angularfire2": "^5.0.0-rc.10",
"call-number": "^1.0.1",
"cordova-android": "^7.1.0",
"cordova-plugin-datepicker": "^0.9.3",
"cordova-plugin-device": "^1.1.4",
......@@ -78,10 +80,11 @@
},
"cordova-plugin-datepicker": {},
"cordova-plugin-request-location-accuracy": {},
"cordova-plugin-network-information": {}
"cordova-plugin-network-information": {},
"mx.ferreyra.callnumber": {}
},
"platforms": [
"android"
]
}
}
\ No newline at end of file
}
......@@ -12,7 +12,7 @@
<ul>
<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="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>
</ul>
</div>
......
......@@ -21,6 +21,7 @@ import { LocationAccuracy } from '@ionic-native/location-accuracy';
import { SubjectService } from "../providers/subject.service";
import { dataService } from "../providers/common.service";
import { Network } from '@ionic-native/network';
import { CallNumber } from '@ionic-native/call-number';
export const firebaseConfig = {
apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU",
......@@ -62,6 +63,7 @@ export const firebaseConfig = {
SubjectService,
dataService,
Network,
CallNumber,
]
})
export class AppModule {}
......@@ -190,4 +190,7 @@
.txt_cntr{text-align: center}
.clr_wht{color: #fff}
.rate_est{font-size: 15px;padding-top: 5px}
.estim_li{padding-top: 5px !important;}
\ No newline at end of file
.estim_li{padding-top: 5px !important;}
.button-md:hover:not(.disable-hover) {
background: #f7941e;
}
\ No newline at end of file
......@@ -20,39 +20,36 @@
<ion-slides pager="false" #mySlider class="hm_service_slide" (ionSlideDidChange)="slideChanged()">
<ion-slide>
<ul>
<li (click)="open_page('TripdetailsPage')" >
<!-- <h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6>
<p>{{ride.pickup_date}}<span></span></p> -->
<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>
<p>{{ride.pickup_date}}<span></span></p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div>
</li>
</ul>
</ion-slide>
<ion-slide>
<ul *ngIf="trips">
<li ngFor="let ride of trips?.upcoming">
<!-- -->
<ul>
<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>
<p>{{ride.pickup_date}}<span></span></p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div>
</li>
</span>
</ul>
</ion-slide>
<ion-slide>
<ul>
<li>
<h6>11 AM from taana to Mumbai Airport Domestic Terminal</h6>
<p>Today</p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div>
</li>
<li>
<h6>11 AM from taana to Mumbai Airport Domestic Terminal</h6>
<p>Today</p>
<span *ngFor="let ride of trips; let i=index">
<li *ngIf="ride.status=='Complete'" (click)="open_page('TripdetailsPage',i)">
<h6>{{ride.pickup_time}} from {{ride.pickup_area}} to {{ride.drop_area}}</h6>
<p>{{ride.pickup_date}}</p>
<ion-icon name="ios-arrow-forward-outline"></ion-icon>
<div class="clear"></div>
</li>
</span>
</ul>
</ion-slide>
</ion-slides>
......
......@@ -36,18 +36,14 @@ export class MytripsPage {
}
ionViewDidEnter() {
console.log(1)
this.storage.get('user_data').then(data => {
if (data) {
this.local = data;
this.myservice.load_post({ 'token': this.local.token }, 'myTrips').subscribe(response => {
this.myservice.hide_loader()
if (response.status == 'success') {
this.trips = response
// this.allTrips = response.all
this.trips = response.all
console.log(this.trips)
// this.upTrips = response.upcoming
// this.compTrips = response.completed
}
else {
this.myservice.show_alert('Failed', 'Please try again')
......@@ -65,11 +61,10 @@ export class MytripsPage {
slideChanged() {
let currentIndex = this.slider.getActiveIndex();
this.slidertab = currentIndex;
console.log("Current index is", currentIndex);
}
open_page(page){
this.navCtrl.push(page);
open_page(page,index){
this.navCtrl.push(page,{data:this.trips[index]});
}
}
......@@ -6,14 +6,14 @@
<button class="nav_btn floatRight"></button>
<div class="clear"></div>
<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>
</ion-header>
<ion-content class="themedark_theme">
<div class="cab_search_result_page">
<p>Popular Search</p>
<ul>
<li *ngFor="let search of searches">
<li *ngFor="let search of searches | search : searchText">
<h5>{{search.keyword}}</h5>
<h6>{{search.location}}</h6>
</li>
......
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { SearchridePage } from './searchride';
import { SearchPipe } from "../../pipes/search/search";
@NgModule({
declarations: [
SearchridePage,
SearchPipe,
],
imports: [
IonicPageModule.forChild(SearchridePage),
......
......@@ -11,6 +11,7 @@ import { user, search } from "../../models/mymodel";
export class SearchridePage {
local:user
searches:Array<search>
searchText:string;
constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl: ViewController, private myservice:Myservice, private storage: Storage) {
}
......
......@@ -9,51 +9,54 @@
<ion-content class="themelogin_background">
<div class="cab_trip_detail_wrapper">
<h4>Pickup Point</h4>
<p class="floatLeft textLeft width50">North Sarovar Road,E City</p>
<p class="floatRight textRight width50">11 :23 am, 02-08-2017</p>
<p class="floatLeft textLeft width50">{{details.pickup_area}}</p>
<p class="floatRight textRight width50">{{details.pickup_time}}, {{details.pickup_date}}</p>
<div class="clear"></div>
<br>
<h4>Drop Point</h4>
<p class="floatLeft textLeft width50">Majestic Junction 3rd Street</p>
<p class="floatRight textRight width50">12 :00 am, 02-08-2017</p>
<p class="floatLeft textLeft width50">{{details.drop_area}}</p>
<p class="floatRight textRight width50" *ngIf="details.drop_time">{{details.drop_time}}, {{details.drop_date}}</p>
<div class="clear"></div>
<br>
<br>
<hr>
<ion-grid class="p0">
<hr *ngIf="details.assigned_for">
<ion-grid class="p0" *ngIf="details.assigned_for">
<ion-row>
<ion-col col-6 class="p0">
<h4>CAB DETAILS</h4>
<p>Sedan</p>
<p>Ford Fiesta</p>
<p>KA 01 CJ 6844 </p>
<p>{{details.taxi_type}}</p>
<!-- <p>Ford Fiesta</p> -->
<p>{{details.car_no}}</p>
</ion-col>
<ion-col col-6 class="p0">
<h4>DRIVER DETAILS</h4>
<p>Balakrishnan</p>
<p>+91 9961531199</p>
<p><strong>Call Now</strong></p>
<p>{{details.name}}</p>
<p>{{details.phone}}</p>
<p><strong (click)="call()">Call Now</strong></p>
</ion-col>
</ion-row>
</ion-grid>
<br>
<br>
<hr>
<hr *ngIf="details.item_status=='Complete'">
<span *ngIf="details.item_status=='Complete'">
<h4>PAYMENT DETAILS</h4>
<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>
<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>
<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>
</span>
<br>
<br>
<span *ngIf="details.status=='Complete' && !details.rating">
<h4 class="textCenter">Kindly Rate us for our service.</h4>
<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="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>
......@@ -61,5 +64,12 @@
<input type="radio" id="star1" name="rating" value="1" /><label for="star1" title="Sucks big time">1 star</label>
<div class="clear"></div>
</div>
</span>
</div>
</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 { 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()
@Component({
......@@ -7,18 +12,66 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular';
templateUrl: 'tripdetails.html',
})
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() {
console.log('ionViewDidLoad TripdetailsPage');
ionViewDidEnter() {
this.storage.get('user_data').then(data=>{
if(data){
this.local = data
}
})
console.log(this.details);
}
back(){
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