Commit 0e2d189c by Tobin

dc

parent 23d4475a
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<a class="nav-link appointment" data-toggle="tab" href="#appointment">Appointments</a> <a class="nav-link appointment" data-toggle="tab" href="#appointment">Appointments</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link time" data-toggle="tab" href="#service"> <a class="nav-link time" data-toggle="tab" href="#service" #serviceHistoryTab>
Service History Service History
</a> </a>
</li> </li>
...@@ -283,7 +283,7 @@ ...@@ -283,7 +283,7 @@
<td>{{bookData.scheduled_date+' '+bookData.scheduled_time}}</td> <td>{{bookData.scheduled_date+' '+bookData.scheduled_time}}</td>
<td>{{bookData.car_name}}</td> <td>{{bookData.car_name}}</td>
<td>{{bookData.first_name+' '+bookData.last_name}}</td> <td>{{bookData.first_name+' '+bookData.last_name}}</td>
<td>{{bookData.cost}}</td> <td class="service-align-center">{{bookData.cost}}</td>
<td [ngSwitch]="bookData.status"> <td [ngSwitch]="bookData.status">
<p *ngSwitchCase="1" class="success_status">Success</p> <p *ngSwitchCase="1" class="success_status">Success</p>
<p *ngSwitchCase="0" class="pending_status">Pending</p> <p *ngSwitchCase="0" class="pending_status">Pending</p>
...@@ -307,7 +307,7 @@ ...@@ -307,7 +307,7 @@
<!-- ADD-VEHICLE-MODAL-STARTS --> <!-- ADD-VEHICLE-MODAL-STARTS -->
<div class="modal" id="booknow"> <div class="modal" id="addvehicle">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="loader_overlay" *ngIf="loader"></div> <div class="loader_overlay" *ngIf="loader"></div>
<div class="modal-content add_modal_wrapper"> <div class="modal-content add_modal_wrapper">
...@@ -337,14 +337,14 @@ ...@@ -337,14 +337,14 @@
<div class="col-md-6"> <div class="col-md-6">
<select class="vehicle_input_select" placeholder="Choose Year" formControlName="modelYear" <select class="vehicle_input_select" placeholder="Choose Year" formControlName="modelYear"
[ngClass]="{'input_error': !vehicleDetailsAddForm.controls['modelYear'].valid && vehicleDetailsFormSubmitClick}"> [ngClass]="{'input_error': !vehicleDetailsAddForm.controls['modelYear'].valid && vehicleDetailsFormSubmitClick}">
<option value="" disabled selected>YEAR</option> <option value="" class="hide">YEAR</option>
<option *ngFor="let date of modelDates">{{date}}</option> <option *ngFor="let date of modelDates">{{date}}</option>
</select> </select>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<select (change)="get_model($event.target.value)" class="vehicle_input_select" placeholder="Choose Make" <select (change)="get_model($event.target.value)" class="vehicle_input_select" placeholder="Choose Make"
formControlName="maker" [ngClass]="{'input_error': !vehicleDetailsAddForm.controls['maker'].valid && vehicleDetailsFormSubmitClick}"> formControlName="maker" [ngClass]="{'input_error': !vehicleDetailsAddForm.controls['maker'].valid && vehicleDetailsFormSubmitClick}">
<option value="" disabled selected>MAKE</option> <option value="" class="hide">MAKE</option>
<option *ngFor="let car_date of carSearchJsonData; let key = index" value="{{key}}">{{car_date.brand}}</option> <option *ngFor="let car_date of carSearchJsonData; let key = index" value="{{key}}">{{car_date.brand}}</option>
</select> </select>
</div> </div>
...@@ -353,7 +353,7 @@ ...@@ -353,7 +353,7 @@
<div class="col-md-6"> <div class="col-md-6">
<select class="vehicle_input_select" placeholder="Choose Model" formControlName="modelName" <select class="vehicle_input_select" placeholder="Choose Model" formControlName="modelName"
[ngClass]="{'input_error': !vehicleDetailsAddForm.controls['modelName'].valid && vehicleDetailsFormSubmitClick}"> [ngClass]="{'input_error': !vehicleDetailsAddForm.controls['modelName'].valid && vehicleDetailsFormSubmitClick}">
<option value="" disabled selected>MODEL</option> <option value="" class="hide">MODEL</option>
<option *ngFor="let car_models of carModel">{{car_models}}</option> <option *ngFor="let car_models of carModel">{{car_models}}</option>
</select> </select>
</div> </div>
...@@ -478,12 +478,14 @@ ...@@ -478,12 +478,14 @@
<h3>SERVICES</h3> <h3>SERVICES</h3>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<input class="search" placeholder="Search Services" type=""> <input class="search" placeholder="Search Services" (keyup)="searchIssues($event)">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="service_methods"> <div class="service_methods">
<p *ngIf="!issuesData; else listIssues">No Record Found</p>
<ng-template #listIssues>
<ul> <ul>
<div *ngFor="let issue_data of issuesData"> <div *ngFor="let issue_data of issuesData">
<li data-toggle="collapse" [attr.data-target]="'#issue_' + issue_data.issue_id">{{issue_data.issue}}</li> <li data-toggle="collapse" [attr.data-target]="'#issue_' + issue_data.issue_id">{{issue_data.issue}}</li>
...@@ -501,6 +503,7 @@ ...@@ -501,6 +503,7 @@
</div> </div>
</div> </div>
</ul> </ul>
</ng-template>
</div> </div>
</div> </div>
</div> </div>
...@@ -521,27 +524,34 @@ ...@@ -521,27 +524,34 @@
</div> </div>
<div class="row m0"> <div class="row m0">
<div class="col-md-12"> <div class="col-md-12">
<textarea class="textarea_input" rows="5" placeholder="Additional Informations you may can gave"> <textarea class="textarea_input" rows="5" placeholder="Additional Informations you may can gave" [(ngModel)]='optionalDescription'></textarea>
Additional Informations you may can gave
</textarea>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<h6 class="pt10 textLeft">Add Images or Videos (Optional)</h6> <h6 class="pt10 textLeft">Add Images (Optional)</h6>
<!-- Add Images or Videos (Optional) -->
<hr> <hr>
<div class="add_images"> <div class="add_images">
<ul> <ul>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[1]">+</span>
<img *ngIf="optionalImges[1]" [src]="optionalImges[1]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(1,$event)" accept="image/*">
</li> </li>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[2]">+</span>
<img *ngIf="optionalImges[2]" [src]="optionalImges[2]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(2,$event)" accept="image/*">
</li> </li>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[3]">+</span>
<img *ngIf="optionalImges[3]" [src]="optionalImges[3]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(3,$event)" accept="image/*">
</li> </li>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[4]">+</span>
<img *ngIf="optionalImges[4]" [src]="optionalImges[4]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(4,$event)" accept="image/*">
</li> </li>
</ul> </ul>
</div> </div>
...@@ -600,7 +610,7 @@ ...@@ -600,7 +610,7 @@
<div class="modal" id="quotes"> <div class="modal" id="quotes">
<div class="modal-dialog modal-full"> <div class="modal-dialog modal-full">
<div class="modal-content login_modal_wrapper"> <div class="modal-content login_modal_wrapper">
<div #closeQuoteWizard class="modal_close" data-dismiss="modal" (click)="resetQuoteWizard()"> <div #closeQuoteWizard class="modal_close" data-dismiss="modal" (click)="scheduleDateInit = false; scheduleMechanic = false">
&times; &times;
</div> </div>
<div class="modal-body"> <div class="modal-body">
...@@ -619,14 +629,14 @@ ...@@ -619,14 +629,14 @@
<h4>Select your day and date</h4> <h4>Select your day and date</h4>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<button class="quote_arrow left floatLeft" (click)="prev($event)"></button> <button [ngClass]="{'invisible': !showLeftArrow}" class="quote_arrow left floatLeft" (click)="prev($event)"></button>
<div class="schedule_dates floatLeft"> <div class="schedule_dates floatLeft">
<ul> <ul>
<li>{{ dateSection[0] | date:'MMM dd-MM-yyyy' }}</li> <li>{{ dateSection[0] | date:'MMM dd-MM-yyyy' }}</li>
<li>{{ dateSection[1] | date:'MMM dd-MM-yyyy' }}</li> <li>{{ dateSection[1] | date:'MMM dd-MM-yyyy' }}</li>
</ul> </ul>
</div> </div>
<button class="quote_arrow right floatRight" (click)="next($event)"></button> <button [ngClass]="{'invisible': !showRightArrow}" class="quote_arrow right floatRight" (click)="next($event)"></button>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
</div> </div>
...@@ -654,33 +664,13 @@ ...@@ -654,33 +664,13 @@
<p>{{mechanic.address}}<br>{{mechanic.city+' , '+mechanic.state}}</p> <p>{{mechanic.address}}<br>{{mechanic.city+' , '+mechanic.state}}</p>
<h6>{{mechanic.phone}}</h6> <h6>{{mechanic.phone}}</h6>
</ng-template> </ng-template>
<button class="book_now" (click)="scheduleNow(mechanic.mechanic_id)" <button (click)="scheduleNow(mechanic.mechanic_id,mechanic.estimate)"
[ngClass]="{'book_now':scheduleDateInit == true, [ngClass]="{'book_now':scheduleDateInit == true && scheduleMechanic == mechanic.mechanic_id,
'book_now_disabled':scheduleDateInit == false}"> 'book_now_disabled':scheduleDateInit == false || (scheduleDateInit == true && scheduleMechanic != mechanic.mechanic_id)}">
{{loginDetails ? 'Book now' : 'Login and Continue' }} {{loginDetails ? 'Book now' : 'Login and Continue' }}
</button> </button>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<!-- <div class="offer">
<div class="panel-group" id="accordion">
<div class="panel panel-default" *ngFor="let sub_issues of mechanic.sub_issues">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#sub_issue_dtls_{{sub_issues.issue_id}}_{{sub_issues.issue_cat_id}}">
<div class="row">
<div class="col-md-5">{{sub_issues.issue_category}}</div>
<div class="col-md-1">:</div>
<div class="col-md-5"><strong>{{sub_issues.custom_service_fee}}</strong></div>
</div>
</a>
</h4>
</div>
<div id="sub_issue_dtls_{{sub_issues.issue_id}}_{{sub_issues.issue_cat_id}}" class="panel-collapse collapse in">
<div class="panel-body">{{sub_issues.custom_description}}</div>
</div>
</div>
</div>
</div> -->
<div class="offer"> <div class="offer">
<div class="panel-group" id="accordion"> <div class="panel-group" id="accordion">
<div class="panel panel-default"> <div class="panel panel-default">
...@@ -712,26 +702,28 @@ ...@@ -712,26 +702,28 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="scheduletiming_listing"> <div class="scheduletiming_listing">
<ul> <ul id="scroll_0_{{mechanic.mechanic_id}}">
<li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button"> <li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button">
<label> <label>
<input type="radio" name="scheduleTime" (click)="getSchedule(time,'0')"> <input type="radio" name="scheduleTime" (click)="getSchedule(time,'0');
scheduleDateInit = true; scheduleMechanic = mechanic.mechanic_id">
<p>{{time}}</p> <p>{{time}}</p>
</label> </label>
</li> </li>
</ul> </ul>
<ul> <ul id="scroll_1_{{mechanic.mechanic_id}}">
<li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button"> <li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button">
<label> <label>
<input type="radio" name="scheduleTime" (click)="getSchedule(time,'1')"> <input type="radio" name="scheduleTime" (click)="getSchedule(time,'1');
scheduleDateInit = true; scheduleMechanic = mechanic.mechanic_id">
<p>{{time}}</p> <p>{{time}}</p>
</label> </label>
</li> </li>
</ul> </ul>
</div> </div>
<div class="scheduletiming_btm_btns"> <div class="scheduletiming_btm_btns">
<div class="btm_btns"></div> <div class="btm_btns" (click)="scrollToBottom('scroll_0_'+mechanic.mechanic_id)"></div>
<div class="btm_btns"></div> <div class="btm_btns" (click)="scrollToBottom('scroll_1_'+mechanic.mechanic_id)"></div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -111,6 +111,10 @@ ...@@ -111,6 +111,10 @@
} }
} }
} }
.service-align-center{
padding-left: 0px !important;
text-align: center;
}
.container-fluid { .container-fluid {
width: calc(100% - 15%); width: calc(100% - 15%);
.tab-content { .tab-content {
......
...@@ -35,6 +35,7 @@ export class DashboardComponent implements OnInit { ...@@ -35,6 +35,7 @@ export class DashboardComponent implements OnInit {
autocompleteVin: any; autocompleteVin: any;
autocompleteDetails: any; autocompleteDetails: any;
editProfileSubmitClick: boolean; editProfileSubmitClick: boolean;
optionalDescription: string;
carModel: any; carModel: any;
modelDates: number[] = new Array(); modelDates: number[] = new Array();
...@@ -58,20 +59,31 @@ export class DashboardComponent implements OnInit { ...@@ -58,20 +59,31 @@ export class DashboardComponent implements OnInit {
//Service Details: TAB 3 //Service Details: TAB 3
issuesData: any; issuesData: any;
defIssuesData: any[] = new Array();
selectedIssues: any[] = new Array(); selectedIssues: any[] = new Array();
//Quote Page //Quote Page
step: number;
today: any = new Date(); today: any = new Date();
currDate: any; currDate: any;
nextDate: any; nextDate: any;
dateStep: number = 0; dateStep: number = 0;
activeTab: any;
dateSection: any[] = new Array(); dateSection: any[] = new Array();
imageServer: string; imageServer: string;
mechanicData: any; mechanicData: any;
autoSchedule: boolean; autoSchedule: boolean;
showLeftArrow: boolean;
showRightArrow: boolean;
estimatedPrice: number; estimatedPrice: number;
scheduleDateInit: boolean; scheduleDateInit: boolean;
scheduleMechanic: any;
optionalImges: any = new Array({1:false,2:false,3:false,4:false});
imageDisp1: any;
imageDisp2: any;
imageDisp3: any;
imageDisp4: any;
@ViewChild("closeWizard") public closeWizardRef: ElementRef; @ViewChild("closeWizard") public closeWizardRef: ElementRef;
@ViewChild("googleLocVin") public googleLocVinRef: ElementRef; @ViewChild("googleLocVin") public googleLocVinRef: ElementRef;
...@@ -80,6 +92,7 @@ export class DashboardComponent implements OnInit { ...@@ -80,6 +92,7 @@ export class DashboardComponent implements OnInit {
@ViewChild("step3nextBtn") public step3nextRef: ElementRef; @ViewChild("step3nextBtn") public step3nextRef: ElementRef;
@ViewChild("closeQuoteWizard") closeQuoteWizardRef: ElementRef; @ViewChild("closeQuoteWizard") closeQuoteWizardRef: ElementRef;
@ViewChild("googleLocDetails") public googleLocDetailsRef: ElementRef; @ViewChild("googleLocDetails") public googleLocDetailsRef: ElementRef;
@ViewChild("serviceHistoryTab") public serviceHistoryTabRef: ElementRef;
@ViewChild("closeVehicleAddForm") public closeVehicleAddFormRef: ElementRef; @ViewChild("closeVehicleAddForm") public closeVehicleAddFormRef: ElementRef;
constructor(private router : Router, constructor(private router : Router,
...@@ -89,17 +102,34 @@ export class DashboardComponent implements OnInit { ...@@ -89,17 +102,34 @@ export class DashboardComponent implements OnInit {
public errorMsg : ValidationService, public errorMsg : ValidationService,
public webService : WebService, public webService : WebService,
public subjectService : SubjectService) { public subjectService : SubjectService) {
this.step = 0;
this.currDate = new Date();
this.nextDate = new Date();
this.issuesData = false;
this.loader = false; this.loader = false;
this.activeTab = 'profile';
this.errMessage = false; this.errMessage = false;
this.searchLocError = false; this.searchLocError = false;
this.showLeftArrow = false;
this.showRightArrow = true;
this.scheduleDateInit = false; this.scheduleDateInit = false;
this.editProfileSubmitClick = false; this.editProfileSubmitClick = false;
this.scheduleMechanic = false;
this.optionalDescription = '';
this.vehicleDetailsFormSubmitClick = false; this.vehicleDetailsFormSubmitClick = false;
} }
ngOnInit() { ngOnInit() {
this.tab = 'active'; this.tab = 'active';
this.route.queryParams.subscribe(params => {
this.activeTab = params['tab'];
if(this.activeTab == 'service'){
this.serviceHistoryTabRef.nativeElement.click();
}
});
this.vehicleVinAddForm = new FormGroup({ this.vehicleVinAddForm = new FormGroup({
vin: new FormControl('', [Validators.required]), vin: new FormControl('', [Validators.required]),
location: new FormControl('', [Validators.required]) location: new FormControl('', [Validators.required])
...@@ -151,6 +181,7 @@ export class DashboardComponent implements OnInit { ...@@ -151,6 +181,7 @@ export class DashboardComponent implements OnInit {
types: ["address"] types: ["address"]
}); });
}); });
this.nextDate.setDate(this.nextDate.getDate() + 1);
} }
getCustBookDetails(){ getCustBookDetails(){
...@@ -251,7 +282,6 @@ export class DashboardComponent implements OnInit { ...@@ -251,7 +282,6 @@ export class DashboardComponent implements OnInit {
} }
this.webService.multipart_post('edit_customer_profile', formData).subscribe(response => { this.webService.multipart_post('edit_customer_profile', formData).subscribe(response => {
this.loader = false;
if ( response.status == '1') { if ( response.status == '1') {
const userData = this.webService.getLocalStorageItem('userData'); const userData = this.webService.getLocalStorageItem('userData');
this.webService.removeLocalStorageItem(userData); this.webService.removeLocalStorageItem(userData);
...@@ -271,13 +301,16 @@ export class DashboardComponent implements OnInit { ...@@ -271,13 +301,16 @@ export class DashboardComponent implements OnInit {
response.status = 'success'; response.status = 'success';
this.profileEditResp = response; this.profileEditResp = response;
this.loader = false;
} else { } else {
response.status = 'error'; response.status = 'error';
response.message = (response.message == '')?this.errorMsg.errorList.req_failure:response.message; response.message = (response.message == '')?this.errorMsg.errorList.req_failure:response.message;
this.profileEditResp = response; this.profileEditResp = response;
this.loader = false;
} }
},error => { },error => {
this.loader = false;
this.profileEditResp = {'status':'error','message':this.errorMsg.errorList.req_failure}; this.profileEditResp = {'status':'error','message':this.errorMsg.errorList.req_failure};
},() => { },() => {
setTimeout( function() { setTimeout( function() {
...@@ -378,6 +411,29 @@ export class DashboardComponent implements OnInit { ...@@ -378,6 +411,29 @@ export class DashboardComponent implements OnInit {
}); });
} }
optImgUpload(image_id,event){
let reader = new FileReader();
let optionalImg: any = event.target.files[0];
reader.onloadend = () => {
switch (image_id){
case 1:
this.optionalImges[1] = {'file':event.target.files[0],'file_url':reader.result};
break;
case 2:
this.optionalImges[2] = {'file':event.target.files[0],'file_url':reader.result};
break;
case 3:
this.optionalImges[3] = {'file':event.target.files[0],'file_url':reader.result};
break;
case 4:
this.optionalImges[4] = {'file':event.target.files[0],'file_url':reader.result};
break;
}
}
reader.readAsDataURL(optionalImg);
}
imageUpload(e) { imageUpload(e) {
let reader = new FileReader(); let reader = new FileReader();
this.profile_image = e.target.files[0]; this.profile_image = e.target.files[0];
...@@ -389,7 +445,9 @@ export class DashboardComponent implements OnInit { ...@@ -389,7 +445,9 @@ export class DashboardComponent implements OnInit {
resetVehicleForm(){ resetVehicleForm(){
this.vehicleVinAddForm.reset(); this.vehicleVinAddForm.reset();
this.vehicleDetailsAddForm.reset(); this.vehicleDetailsAddForm.reset({
maker: '', modelYear: '', modelName: '', location: ''
});
} }
routeToIndex(){ routeToIndex(){
...@@ -416,24 +474,51 @@ export class DashboardComponent implements OnInit { ...@@ -416,24 +474,51 @@ export class DashboardComponent implements OnInit {
} }
}); });
this.getIssueData(); this.getIssueData();
this.loader = false;
} }
getIssueData(){ getIssueData(){
const This = this; const This = this;
this.loader = true; this.loader = true;
this.webService.get_data('getGeneralIssues').subscribe(response => { this.webService.get_data('getGeneralIssues').subscribe(response => {
this.loader = false;
if(response.status == '1'){ if(response.status == '1'){
this.issuesData = response.issue_data; this.issuesData = response.issue_data;
this.defIssuesData = this.issuesData;
this.loader = false;
} else { } else {
this.loader = false;
return false; return false;
} }
},error => { },error => {
this.loader = false;
return false; return false;
}); });
} }
searchIssues(event){
if(event.target.value == '' || event.target.value == 'undefined' || event.target.value == undefined || event.target.value == 'null' || event.target.value == null ){
this.issuesData = this.defIssuesData;
} else {
const thisObj = this;
let data: any[] = new Array();
let serRegExp = new RegExp(event.target.value,"gi");
thisObj.defIssuesData.forEach(function (issues,index) {
let issueCat = issues.issue;
if(issueCat.search(serRegExp) != -1){
data.push(thisObj.defIssuesData[index]);
}
});
this.issuesData = (data.length > 0)?data:false;
}
setTimeout(()=>{
this.selectedIssues.forEach(function (issues) {
$('[id="issue_'+issues.issue_id+'_'+issues.sub_issue_id+'"]').prop('checked', true);
});
},500);
}
jumpToStep3(){ jumpToStep3(){
if(this.selectedIssues.length != 0){ if(this.selectedIssues.length != 0){
this.step3nextRef.nativeElement.click(); this.step3nextRef.nativeElement.click();
...@@ -451,17 +536,19 @@ export class DashboardComponent implements OnInit { ...@@ -451,17 +536,19 @@ export class DashboardComponent implements OnInit {
let searchData = {'pickup_data':this.wizardData.pickup_data,'sub_issues':selSubIssues} let searchData = {'pickup_data':this.wizardData.pickup_data,'sub_issues':selSubIssues}
this.webService.post_data('getNearByMechanics',searchData).subscribe(response => { this.webService.post_data('getNearByMechanics',searchData).subscribe(response => {
this.loader = false;
if(response.status == '1'){ if(response.status == '1'){
this.mechanicData = response.mechanic_data; this.mechanicData = response.mechanic_data;
this.dateSection.push(new Date(this.today.setDate(this.today.getDate()))); this.dateSection.push(new Date(this.today.setDate(this.today.getDate())));
this.dateSection.push(new Date(this.today.setDate(this.today.getDate() + 1))); this.dateSection.push(new Date(this.today.setDate(this.today.getDate() + 1)));
this.loader = false;
} else { } else {
this.loader = false;
return false; return false;
} }
},error => { },error => {
this.loader = false;
return false; return false;
}); });
} }
...@@ -482,36 +569,37 @@ export class DashboardComponent implements OnInit { ...@@ -482,36 +569,37 @@ export class DashboardComponent implements OnInit {
next(event) { next(event) {
if(this.dateStep > 30){ if(this.dateStep > 30){
this.showLeftArrow = true;
this.showRightArrow = false;
return false; return false;
} }
this.showLeftArrow = true;
this.showRightArrow = true;
this.dateSection = new Array(); this.dateSection = new Array();
this.nextDate.setDate(this.nextDate.getDate() + 1); this.nextDate.setDate(this.nextDate.getDate() + 1);
this.currDate.setDate(this.currDate.getDate() + 1); this.currDate.setDate(this.currDate.getDate() + 1);
this.dateSection[0] = new Date(this.currDate); this.dateSection[0] = new Date(this.currDate);
this.dateSection[1] = new Date(this.nextDate); this.dateSection[1] = new Date(this.nextDate);
this.dateStep += 1; this.dateStep += 1;
} }
prev(event) { prev(event) {
if(this.dateStep <= 0){ if(this.dateStep <= 0){
this.showLeftArrow = false;
this.showRightArrow = true;
return false; return false;
} }
this.showLeftArrow = true;
this.showRightArrow = true;
this.dateSection = new Array(); this.dateSection = new Array();
this.nextDate.setDate(this.nextDate.getDate() - 1); this.nextDate.setDate(this.nextDate.getDate() - 1);
this.currDate.setDate(this.currDate.getDate() - 1); this.currDate.setDate(this.currDate.getDate() - 1);
this.dateSection[0] = new Date(this.currDate); this.dateSection[0] = new Date(this.currDate);
this.dateSection[1] = new Date(this.nextDate); this.dateSection[1] = new Date(this.nextDate);
this.dateStep -= 1; this.dateStep -= 1;
} }
getSchedule(time,index){ getSchedule(time,index){
this.scheduleDateInit = true;
this.wizardData['schedule_date'] = {'date':this.formatDate(this.dateSection[index]),'time':time}; this.wizardData['schedule_date'] = {'date':this.formatDate(this.dateSection[index]),'time':time};
} }
...@@ -525,13 +613,15 @@ export class DashboardComponent implements OnInit { ...@@ -525,13 +613,15 @@ export class DashboardComponent implements OnInit {
return [year,month,day].join('-'); return [year,month,day].join('-');
} }
scheduleNow(mechanic_id){ scheduleNow(mechanic_id,cost){
this.wizardData['mechanic_id'] = mechanic_id; this.wizardData['mechanic_id'] = mechanic_id;
if(!this.loginDetails){ if(!this.loginDetails){
this.routeToIndex(); this.routeToIndex();
} }
this.loader = true; this.loader = true;
this.wizardData['cost'] = cost;
this.confirmBooking(); this.confirmBooking();
} }
...@@ -540,14 +630,17 @@ export class DashboardComponent implements OnInit { ...@@ -540,14 +630,17 @@ export class DashboardComponent implements OnInit {
this.wizardData['selected_issues'] = this.selectedIssues; this.wizardData['selected_issues'] = this.selectedIssues;
this.webService.post_data('scheduleNow',this.wizardData).subscribe(response => { this.webService.post_data('scheduleNow',this.wizardData).subscribe(response => {
this.loader = false;
if(response.status == '1'){ if(response.status == '1'){
this.closeWizardRef.nativeElement.click(); this.closeWizardRef.nativeElement.click();
this.closeQuoteWizardRef.nativeElement.click(); this.closeQuoteWizardRef.nativeElement.click();
this.goTostep1Ref.nativeElement.click(); this.goTostep1Ref.nativeElement.click();
this.selectedIssues = []; this.selectedIssues = [];
this.serviceHistoryTabRef.nativeElement.click();
this.loader = false;
} else { } else {
this.loader = false;
return false; return false;
} }
},error => { },error => {
...@@ -558,8 +651,19 @@ export class DashboardComponent implements OnInit { ...@@ -558,8 +651,19 @@ export class DashboardComponent implements OnInit {
resetQuoteWizard(){ resetQuoteWizard(){
this.selectedIssues = []; this.selectedIssues = [];
this.scheduleMechanic = false;
this.scheduleDateInit = false; this.scheduleDateInit = false;
this.goTostep1Ref.nativeElement.click(); this.goTostep1Ref.nativeElement.click();
this.optionalImges[1] = false;
this.optionalImges[2] = false;
this.optionalImges[3] = false;
this.optionalImges[4] = false;
this.optionalDescription = '';
}
scrollToBottom(id){
$('#'+id).stop().animate({scrollTop: $('#'+id)[0].scrollHeight}, 1500);
} }
tab_swap(type) { this.tab = type; } tab_swap(type) { this.tab = type; }
......
...@@ -259,14 +259,14 @@ ...@@ -259,14 +259,14 @@
<div class="col-md-6"> <div class="col-md-6">
<select formControlName="modelYear" <select formControlName="modelYear"
[ngClass]="{'input_error': !vehicleDataForm.controls['modelYear'].valid && vehicleDataFormSubmit}"> [ngClass]="{'input_error': !vehicleDataForm.controls['modelYear'].valid && vehicleDataFormSubmit}">
<option value="" disabled selected>YEAR</option> <option value="" class="hide">YEAR</option>
<option *ngFor="let date of modelDates">{{date}}</option> <option *ngFor="let date of modelDates">{{date}}</option>
</select> </select>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<select (change)="get_model($event.target.value)" formControlName="maker" <select (change)="get_model($event.target.value)" formControlName="maker"
[ngClass]="{'input_error': !vehicleDataForm.controls['maker'].valid && vehicleDataFormSubmit}"> [ngClass]="{'input_error': !vehicleDataForm.controls['maker'].valid && vehicleDataFormSubmit}">
<option value="" disabled selected>MAKE</option> <option value="" class="hide">MAKE</option>
<option *ngFor="let car_date of carSearchJsonData; let key = index" value="{{key}}">{{car_date.brand}}</option> <option *ngFor="let car_date of carSearchJsonData; let key = index" value="{{key}}">{{car_date.brand}}</option>
</select> </select>
</div> </div>
...@@ -275,7 +275,7 @@ ...@@ -275,7 +275,7 @@
<div class="col-md-6" > <div class="col-md-6" >
<select formControlName="modelName" <select formControlName="modelName"
[ngClass]="{'input_error': !vehicleDataForm.controls['modelName'].valid && vehicleDataFormSubmit}"> [ngClass]="{'input_error': !vehicleDataForm.controls['modelName'].valid && vehicleDataFormSubmit}">
<option value="" disabled selected>MODEL</option> <option value="" class="hide">MODEL</option>
<option *ngFor="let car_models of carModel">{{car_models}}</option> <option *ngFor="let car_models of carModel">{{car_models}}</option>
</select> </select>
</div> </div>
...@@ -300,7 +300,7 @@ ...@@ -300,7 +300,7 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<button class="log_btn prev_btn floatLeft" type="button" data-dismiss="modal">PREVIOUS</button> <button class="log_btn prev_btn floatLeft" type="button" data-dismiss="modal">PREVIOUS</button>
<button [ngClass]="{'log_btn_diabled':vehicleDataForm.invalid}" type="submit" class="log_btn next_btn floatRight" (click)="jumpToStep(1)">NEXT</button> <button [ngClass]="{'log_btn_diabled':vehicleDataForm.invalid}" type="submit" class="log_btn next_btn floatRight" (click)="jumpToStep1()">NEXT</button>
</div> </div>
</div> </div>
</form> </form>
...@@ -309,12 +309,14 @@ ...@@ -309,12 +309,14 @@
<h3>SERVICES</h3> <h3>SERVICES</h3>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<input class="search" placeholder="Search Services" type=""> <input class="search" placeholder="Search Services" (keyup)="searchIssues($event)">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="service_methods"> <div class="service_methods">
<p *ngIf="!issuesData; else listIssues">No Record Found</p>
<ng-template #listIssues>
<ul> <ul>
<div *ngFor="let issue_data of issuesData"> <div *ngFor="let issue_data of issuesData">
<li data-toggle="collapse" [attr.data-target]="'#issue_' + issue_data.issue_id">{{issue_data.issue}}</li> <li data-toggle="collapse" [attr.data-target]="'#issue_' + issue_data.issue_id">{{issue_data.issue}}</li>
...@@ -332,6 +334,7 @@ ...@@ -332,6 +334,7 @@
</div> </div>
</div> </div>
</ul> </ul>
</ng-template>
</div> </div>
</div> </div>
</div> </div>
...@@ -339,7 +342,7 @@ ...@@ -339,7 +342,7 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<button class="log_btn prev_btn floatLeft" type="button" previousStep>PREVIOUS</button> <button class="log_btn prev_btn floatLeft" type="button" previousStep>PREVIOUS</button>
<button [ngClass]="{'log_btn_diabled':selectedIssues.length == 0}" class="log_btn next_btn floatRight" type="button" (click)="jumpToStep(2)">NEXT</button> <button [ngClass]="{'log_btn_diabled':selectedIssues.length == 0}" class="log_btn next_btn floatRight" type="button" (click)="jumpToStep2()">NEXT</button>
</div> </div>
</div> </div>
</wizard-step> </wizard-step>
...@@ -352,27 +355,34 @@ ...@@ -352,27 +355,34 @@
</div> </div>
<div class="row m0"> <div class="row m0">
<div class="col-md-12"> <div class="col-md-12">
<textarea class="textarea_input" rows="5" placeholder="Additional Informations you may can gave"> <textarea class="textarea_input" rows="5" placeholder="Additional Informations you may can gave" [(ngModel)]='optionalDescription'></textarea>
Additional Informations you may can gave
</textarea>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<h6 class="pt10 textLeft">Add Images or Videos (Optional)</h6> <h6 class="pt10 textLeft">Add Images (Optional)</h6>
<!-- Add Images or Videos (Optional) -->
<hr> <hr>
<div class="add_images"> <div class="add_images">
<ul> <ul>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[1]">+</span>
<img *ngIf="optionalImges[1]" [src]="optionalImges[1]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(1,$event)" accept="image/*">
</li> </li>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[2]">+</span>
<img *ngIf="optionalImges[2]" [src]="optionalImges[2]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(2,$event)" accept="image/*">
</li> </li>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[3]">+</span>
<img *ngIf="optionalImges[3]" [src]="optionalImges[3]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(3,$event)" accept="image/*">
</li> </li>
<li><span>+</span> <li>
<input type="file"> <span *ngIf="!optionalImges[4]">+</span>
<img *ngIf="optionalImges[4]" [src]="optionalImges[4]['file_url']" width="50px" height="50px">
<input type="file" (change)="optImgUpload(4,$event)" accept="image/*">
</li> </li>
</ul> </ul>
</div> </div>
...@@ -433,7 +443,7 @@ ...@@ -433,7 +443,7 @@
<div class="modal" id="quotes"> <div class="modal" id="quotes">
<div class="modal-dialog modal-full"> <div class="modal-dialog modal-full">
<div class="modal-content login_modal_wrapper"> <div class="modal-content login_modal_wrapper">
<div #closeQuoteWizard class="modal_close" data-dismiss="modal" (click)="resetQuoteWizard()"> <div #closeQuoteWizard class="modal_close" data-dismiss="modal" (click)="scheduleDateInit = false; scheduleMechanic = false">
&times; &times;
</div> </div>
<div class="modal-body"> <div class="modal-body">
...@@ -452,14 +462,14 @@ ...@@ -452,14 +462,14 @@
<h4>Select your day and date</h4> <h4>Select your day and date</h4>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<button class="quote_arrow left floatLeft" (click)="prev($event)"></button> <button [ngClass]="{'invisible': !showLeftArrow}" class="quote_arrow left floatLeft" (click)="prev($event)"></button>
<div class="schedule_dates floatLeft"> <div class="schedule_dates floatLeft">
<ul> <ul>
<li>{{ dateSection[0] | date:'MMM dd-MM-yyyy' }}</li> <li>{{ dateSection[0] | date:'MMM dd-MM-yyyy' }}</li>
<li>{{ dateSection[1] | date:'MMM dd-MM-yyyy' }}</li> <li>{{ dateSection[1] | date:'MMM dd-MM-yyyy' }}</li>
</ul> </ul>
</div> </div>
<button class="quote_arrow right floatRight" (click)="next($event)"></button> <button [ngClass]="{'invisible': !showRightArrow}" class="quote_arrow right floatRight" (click)="next($event)"></button>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
</div> </div>
...@@ -487,33 +497,13 @@ ...@@ -487,33 +497,13 @@
<p>{{mechanic.address}}<br>{{mechanic.city+' , '+mechanic.state}}</p> <p>{{mechanic.address}}<br>{{mechanic.city+' , '+mechanic.state}}</p>
<h6>{{mechanic.phone}}</h6> <h6>{{mechanic.phone}}</h6>
</ng-template> </ng-template>
<button (click)="scheduleNow(mechanic.mechanic_id)" <button (click)="scheduleNow(mechanic.mechanic_id,mechanic.estimate)"
[ngClass]="{'book_now':scheduleDateInit == true, [ngClass]="{'book_now':scheduleDateInit == true && scheduleMechanic == mechanic.mechanic_id,
'book_now_disabled':scheduleDateInit == false}"> 'book_now_disabled':scheduleDateInit == false || (scheduleDateInit == true && scheduleMechanic != mechanic.mechanic_id)}">
{{loginDetails ? 'Book now' : 'Login and Continue' }} {{loginDetails ? 'Book now' : 'Login and Continue' }}
</button> </button>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<!-- <div class="offer">
<div class="panel-group" id="accordion">
<div class="panel panel-default" *ngFor="let sub_issues of mechanic.sub_issues">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#sub_issue_dtls_{{sub_issues.issue_id}}_{{sub_issues.issue_cat_id}}">
<div class="row">
<div class="col-md-5">{{sub_issues.issue_category}}</div>
<div class="col-md-1">:</div>
<div class="col-md-5"><strong>{{sub_issues.custom_service_fee}}</strong></div>
</div>
</a>
</h4>
</div>
<div id="sub_issue_dtls_{{sub_issues.issue_id}}_{{sub_issues.issue_cat_id}}" class="panel-collapse collapse in">
<div class="panel-body">{{sub_issues.custom_description}}</div>
</div>
</div>
</div>
</div> -->
<div class="offer"> <div class="offer">
<div class="panel-group" id="accordion"> <div class="panel-group" id="accordion">
<div class="panel panel-default"> <div class="panel panel-default">
...@@ -545,26 +535,28 @@ ...@@ -545,26 +535,28 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="scheduletiming_listing"> <div class="scheduletiming_listing">
<ul> <ul id="scroll_0_{{mechanic.mechanic_id}}">
<li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button"> <li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button">
<label> <label>
<input type="radio" name="scheduleTime" (click)="getSchedule(time,'0')"> <input type="radio" name="scheduleTime" (click)="getSchedule(time,'0');
scheduleDateInit = true; scheduleMechanic = mechanic.mechanic_id">
<p>{{time}}</p> <p>{{time}}</p>
</label> </label>
</li> </li>
</ul> </ul>
<ul> <ul id="scroll_1_{{mechanic.mechanic_id}}">
<li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button"> <li *ngFor="let time of mechanic.scheduleTiming" id="custom_check_button">
<label> <label>
<input type="radio" name="scheduleTime" (click)="getSchedule(time,'1')"> <input type="radio" name="scheduleTime" (click)="getSchedule(time,'1');
scheduleDateInit = true; scheduleMechanic = mechanic.mechanic_id">
<p>{{time}}</p> <p>{{time}}</p>
</label> </label>
</li> </li>
</ul> </ul>
</div> </div>
<div class="scheduletiming_btm_btns"> <div class="scheduletiming_btm_btns">
<div class="btm_btns"></div> <div class="btm_btns" (click)="scrollToBottom('scroll_0_'+mechanic.mechanic_id)"></div>
<div class="btm_btns"></div> <div class="btm_btns" (click)="scrollToBottom('scroll_1_'+mechanic.mechanic_id)"></div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -51,6 +51,7 @@ export class IndexComponent implements OnInit { ...@@ -51,6 +51,7 @@ export class IndexComponent implements OnInit {
//Service Details: TAB 3 //Service Details: TAB 3
loader: boolean; loader: boolean;
issuesData: any; issuesData: any;
defIssuesData: any[] = new Array();
selectedIssues: any[] = new Array(); selectedIssues: any[] = new Array();
//Quote Page //Quote Page
...@@ -63,12 +64,17 @@ export class IndexComponent implements OnInit { ...@@ -63,12 +64,17 @@ export class IndexComponent implements OnInit {
imageServer: string; imageServer: string;
mechanicData: any; mechanicData: any;
autoSchedule: boolean; autoSchedule: boolean;
showLeftArrow: boolean;
showRightArrow: boolean;
estimatedPrice: number; estimatedPrice: number;
scheduleDateInit: boolean; scheduleDateInit: boolean;
scheduleMechanic: any;
carModel: any; carModel: any;
modelDates: number[] = new Array(); modelDates: number[] = new Array();
carSearchJsonData: any; carSearchJsonData: any;
optionalImges: any = new Array({1:false,2:false,3:false,4:false});
optionalDescription: string;
constructor( constructor(
private router : Router, private router : Router,
...@@ -77,13 +83,18 @@ export class IndexComponent implements OnInit { ...@@ -77,13 +83,18 @@ export class IndexComponent implements OnInit {
public mapsAPILoader : MapsAPILoader, public mapsAPILoader : MapsAPILoader,
public subjectService : SubjectService) { public subjectService : SubjectService) {
this.step = 0; this.step = 0;
this.issuesData = false;
this.autoSchedule = false; this.autoSchedule = false;
this.imageServer = ImageStorage; this.imageServer = ImageStorage;
this.currDate = new Date(); this.currDate = new Date();
this.nextDate = new Date(); this.nextDate = new Date();
this.loginDetails = false; this.loginDetails = false;
this.searchLocError = false; this.searchLocError = false;
this.showLeftArrow = false;
this.showRightArrow = true;
this.scheduleDateInit = false; this.scheduleDateInit = false;
this.scheduleMechanic = false;
this.optionalDescription = '';
this.vehicleDataFormSubmit = false; this.vehicleDataFormSubmit = false;
} }
...@@ -176,17 +187,43 @@ export class IndexComponent implements OnInit { ...@@ -176,17 +187,43 @@ export class IndexComponent implements OnInit {
this.webService.get_data('getGeneralIssues').subscribe(response => { this.webService.get_data('getGeneralIssues').subscribe(response => {
if(response.status == '1'){ if(response.status == '1'){
this.issuesData = response.issue_data; this.issuesData = response.issue_data;
this.defIssuesData = this.issuesData;
this.loader = false; this.loader = false;
} else { } else {
this.loader = false;
return false; return false;
} }
this.loader = false;
},error => { },error => {
this.loader = false; this.loader = false;
return false; return false;
}); });
} }
searchIssues(event){
if(event.target.value == '' || event.target.value == 'undefined' || event.target.value == undefined || event.target.value == 'null' || event.target.value == null ){
this.issuesData = this.defIssuesData;
} else {
const thisObj = this;
let data: any[] = new Array();
let serRegExp = new RegExp(event.target.value,"gi");
thisObj.defIssuesData.forEach(function (issues,index) {
let issueCat = issues.issue;
if(issueCat.search(serRegExp) != -1){
data.push(thisObj.defIssuesData[index]);
}
});
this.issuesData = (data.length > 0)?data:false;
}
setTimeout(()=>{
this.selectedIssues.forEach(function (issues) {
$('[id="issue_'+issues.issue_id+'_'+issues.sub_issue_id+'"]').prop('checked', true);
});
},500);
}
setIssueSelected(event){ setIssueSelected(event){
let issue_id = event.target.attributes.issue_id.value; let issue_id = event.target.attributes.issue_id.value;
let sub_issue_id = event.target.attributes.sub_issue_id.value; let sub_issue_id = event.target.attributes.sub_issue_id.value;
...@@ -239,11 +276,19 @@ export class IndexComponent implements OnInit { ...@@ -239,11 +276,19 @@ export class IndexComponent implements OnInit {
resetQuoteWizard(){ resetQuoteWizard(){
this.jumpToStep0(); this.jumpToStep0();
this.vehicleDataForm.reset();
this.searchElementRef.nativeElement.value = ''; this.searchElementRef.nativeElement.value = '';
this.selectedIssues = []; this.selectedIssues = [];
this.scheduleDateInit = false;
this.vehicleDataForm.reset({
trim: '', milage: '', emgine: '', maker: '', modelYear: '', modelName: ''
});
this.optionalImges[1] = false;
this.optionalImges[2] = false;
this.optionalImges[3] = false;
this.optionalImges[4] = false;
this.optionalDescription = '';
} }
getQuote(){ getQuote(){
...@@ -257,17 +302,19 @@ export class IndexComponent implements OnInit { ...@@ -257,17 +302,19 @@ export class IndexComponent implements OnInit {
let searchData = {'pickup_data':this.wizardData.pickup_data,'sub_issues':selSubIssues} let searchData = {'pickup_data':this.wizardData.pickup_data,'sub_issues':selSubIssues}
this.webService.post_data('getNearByMechanics',searchData).subscribe(response => { this.webService.post_data('getNearByMechanics',searchData).subscribe(response => {
this.loader = false;
if(response.status == '1'){ if(response.status == '1'){
this.mechanicData = response.mechanic_data; this.mechanicData = response.mechanic_data;
this.dateSection.push(new Date(this.today.setDate(this.today.getDate()))); this.dateSection.push(new Date(this.today.setDate(this.today.getDate())));
this.dateSection.push(new Date(this.today.setDate(this.today.getDate() + 1))); this.dateSection.push(new Date(this.today.setDate(this.today.getDate() + 1)));
this.loader = false;
} else { } else {
this.loader = false;
return false; return false;
} }
},error => { },error => {
this.loader = false;
return false; return false;
}); });
} }
...@@ -288,8 +335,12 @@ export class IndexComponent implements OnInit { ...@@ -288,8 +335,12 @@ export class IndexComponent implements OnInit {
next(event) { next(event) {
if(this.dateStep > 30){ if(this.dateStep > 30){
this.showLeftArrow = true;
this.showRightArrow = false;
return false; return false;
} }
this.showLeftArrow = true;
this.showRightArrow = true;
this.dateSection = new Array(); this.dateSection = new Array();
this.nextDate.setDate(this.nextDate.getDate() + 1); this.nextDate.setDate(this.nextDate.getDate() + 1);
this.currDate.setDate(this.currDate.getDate() + 1); this.currDate.setDate(this.currDate.getDate() + 1);
...@@ -300,8 +351,12 @@ export class IndexComponent implements OnInit { ...@@ -300,8 +351,12 @@ export class IndexComponent implements OnInit {
prev(event) { prev(event) {
if(this.dateStep <= 0){ if(this.dateStep <= 0){
this.showLeftArrow = false;
this.showRightArrow = true;
return false; return false;
} }
this.showLeftArrow = true;
this.showRightArrow = true;
this.dateSection = new Array(); this.dateSection = new Array();
this.nextDate.setDate(this.nextDate.getDate() - 1); this.nextDate.setDate(this.nextDate.getDate() - 1);
this.currDate.setDate(this.currDate.getDate() - 1); this.currDate.setDate(this.currDate.getDate() - 1);
...@@ -311,7 +366,6 @@ export class IndexComponent implements OnInit { ...@@ -311,7 +366,6 @@ export class IndexComponent implements OnInit {
} }
getSchedule(time,index){ getSchedule(time,index){
this.scheduleDateInit = true;
this.wizardData['schedule_date'] = {'date':this.formatDate(this.dateSection[index]),'time':time}; this.wizardData['schedule_date'] = {'date':this.formatDate(this.dateSection[index]),'time':time};
} }
...@@ -325,7 +379,7 @@ export class IndexComponent implements OnInit { ...@@ -325,7 +379,7 @@ export class IndexComponent implements OnInit {
return [year,month,day].join('-'); return [year,month,day].join('-');
} }
scheduleNow(mechanic_id){ scheduleNow(mechanic_id,cost){
this.wizardData['mechanic_id'] = mechanic_id; this.wizardData['mechanic_id'] = mechanic_id;
if(!this.loginDetails){ if(!this.loginDetails){
...@@ -334,6 +388,8 @@ export class IndexComponent implements OnInit { ...@@ -334,6 +388,8 @@ export class IndexComponent implements OnInit {
return false; return false;
} }
this.loader = true; this.loader = true;
this.wizardData['cost'] = cost;
this.confirmBooking(); this.confirmBooking();
} }
...@@ -342,12 +398,13 @@ export class IndexComponent implements OnInit { ...@@ -342,12 +398,13 @@ export class IndexComponent implements OnInit {
this.wizardData['selected_issues'] = this.selectedIssues; this.wizardData['selected_issues'] = this.selectedIssues;
this.webService.post_data('scheduleNow',this.wizardData).subscribe(response => { this.webService.post_data('scheduleNow',this.wizardData).subscribe(response => {
this.loader = false;
if(response.status == '1'){ if(response.status == '1'){
this.closeWizardRef.nativeElement.click(); this.closeWizardRef.nativeElement.click();
this.closeQuoteWizardRef.nativeElement.click(); this.closeQuoteWizardRef.nativeElement.click();
this.router.navigate(['../dashboard']); this.router.navigate(['../dashboard'],{queryParams: {tab: 'service'}});
this.loader = false;
} else { } else {
this.loader = false;
return false; return false;
} }
},error => { },error => {
...@@ -357,22 +414,47 @@ export class IndexComponent implements OnInit { ...@@ -357,22 +414,47 @@ export class IndexComponent implements OnInit {
} }
jumpToStep0(){ jumpToStep0(){
this.goTostepRef.nativeElement.click(); this.goTostep0Ref.nativeElement.click();
} }
jumpToStep1(){ jumpToStep1(){
if(!this.vehicleDataForm.invalid){ if(!this.vehicleDataForm.invalid){
this.goTostepRef.nativeElement.click(); this.goTostep1Ref.nativeElement.click();
} }
} }
jumpToStep2(){ jumpToStep2(){
if(this.selectedIssues.length > 0){ if(this.selectedIssues.length > 0){
this.goTostepRef.nativeElement.click(); this.goTostep2Ref.nativeElement.click();
} }
} }
optImgUpload(image_id,event){
let reader = new FileReader();
let optionalImg: any = event.target.files[0];
reader.onloadend = () => {
switch (image_id){
case 1:
this.optionalImges[1] = {'file':event.target.files[0],'file_url':reader.result};
break;
case 2:
this.optionalImges[2] = {'file':event.target.files[0],'file_url':reader.result};
break;
case 3:
this.optionalImges[3] = {'file':event.target.files[0],'file_url':reader.result};
break;
case 4:
this.optionalImges[4] = {'file':event.target.files[0],'file_url':reader.result};
break;
}
}
reader.readAsDataURL(optionalImg);
}
scrollToBottom(id){
$('#'+id).stop().animate({scrollTop: $('#'+id)[0].scrollHeight}, 1500);
}
featuredOnLoad() {return ''; } featuredOnLoad() {return ''; }
carouselTileLoad(){ return ''; } carouselTileLoad(){ return ''; }
......
...@@ -465,3 +465,18 @@ section.module.parallax { ...@@ -465,3 +465,18 @@ section.module.parallax {
.error{ .error{
border:2px solid red !important; border:2px solid red !important;
} }
.prevent-click {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.hide {
display:none !important;
}
.invisible{
opacity: 0 !important;
}
\ No newline at end of file
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