Merge branch 'master' of bitbucket.org:venbainformationtechnology/appointments_frontend
This commit is contained in:
commit
08a9fe2bce
@ -7,10 +7,10 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" style="width:20%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
||||
<mat-label>Practitioner</mat-label>
|
||||
<mat-select placeholder="Select Business" [(ngModel)]="selectPractitioner" required>
|
||||
<mat-select placeholder="Select Practitioner" [(ngModel)]="selectPractitioner" required>
|
||||
<mat-option value="All" (click)="allPractitioner()">All</mat-option>
|
||||
<mat-option *ngFor="let details of consultants" (click)="getPractitioner(details)" [value]="details.id">
|
||||
Dr. {{details.userName}}
|
||||
{{details.userName}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
@ -6,13 +6,13 @@
|
||||
|
||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||
<mat-label>Name</mat-label>
|
||||
<input placeholder=" Name" formControlName="name" matInput>
|
||||
<input placeholder="Name" formControlName="name" matInput>
|
||||
<!-- <mat-error *ngIf="myError('cusName', 'required')">Name is required</mat-error>
|
||||
<mat-error *ngIf="myError('cusName', 'maxlength')">Limit exceed</mat-error> -->
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||
<mat-label>Email</mat-label>
|
||||
<input type="email" placeholder=" Email" formControlName="email" matInput >
|
||||
<input type="email" placeholder="Email" formControlName="email" matInput >
|
||||
<!-- <mat-error *ngIf="!form.get('email')?.errors?.required && (form.get('email')?.errors?.pattern)">
|
||||
Please enter a valid email address
|
||||
</mat-error>
|
||||
@ -23,7 +23,7 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||
<mat-label>Phone</mat-label>
|
||||
<input placeholder=" Phone" type="text" appMobileNumberPattern maxlength="10" minlength="10" matInput formControlName="phoneNo">
|
||||
<input placeholder="Mobile No" type="text" appMobileNumberPattern maxlength="10" minlength="10" matInput formControlName="phoneNo">
|
||||
<mat-error *ngIf="myError('phoneNo', 'required')">Contact No is required</mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'pattern')">Invalid Contact No </mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||
|
||||
@ -19,8 +19,7 @@
|
||||
|
||||
<mat-form-field appearance="outline" class="mat-pane">
|
||||
<mat-label>Business</mat-label>
|
||||
<input matInput placeholder="Business" name="Business" formControlName="busname" readonly>
|
||||
|
||||
<input matInput placeholder="Business" name="Business" formControlName="busname" readonly>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="mat-pane" *ngIf="user_role != 'FRONTDESK'">
|
||||
<mat-label>Practitioner</mat-label>
|
||||
@ -28,9 +27,9 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="mat-pane" *ngIf="user_role == 'FRONTDESK'">
|
||||
<mat-label>Practitioner</mat-label>
|
||||
<mat-select placeholder="Select Business" formControlName="practitioner" required>
|
||||
<mat-select placeholder="Select practitioner" formControlName="practitioner" required>
|
||||
<mat-option *ngFor="let details of consultants" (click)="getConsultServices(details)" [value]="details.id">
|
||||
Dr. {{details.userName}}
|
||||
{{details.userName}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@ -39,8 +38,7 @@
|
||||
<mat-label>Service</mat-label>
|
||||
<mat-select placeholder="Select Service" formControlName="service" required>
|
||||
<mat-option>--</mat-option>
|
||||
<mat-option *ngFor="let business of servicesList_array" (click)="serviceData(business)" [value]="business.serviceId
|
||||
">
|
||||
<mat-option *ngFor="let business of servicesList_array" (click)="serviceData(business)" [value]="business.serviceId">
|
||||
{{business.servicesName}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
|
||||
@ -712,12 +712,10 @@ export class DialogBoxComponent implements OnInit {
|
||||
})
|
||||
}
|
||||
getCustomerDetails(){
|
||||
this._cus.getCustomersListDetails().subscribe(res => {
|
||||
if (res.status == 200) {
|
||||
|
||||
this.customersList = res.data;
|
||||
|
||||
|
||||
let param = {"busId": localStorage.getItem('busId')}
|
||||
this._cus.getCustomersListDetails(param).subscribe(res => {
|
||||
if (res.status == 200) {
|
||||
this.customersList = res.data;
|
||||
console.log(this.customersList,this.appoinmentsIds)
|
||||
let user_role = localStorage.getItem('user_role');
|
||||
if(user_role == 'PRACTITIONER'){
|
||||
|
||||
@ -9,15 +9,15 @@
|
||||
|
||||
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Name</mat-label>
|
||||
<input placeholder=" Name" matInput formControlName="busName">
|
||||
<mat-label>Business Name</mat-label>
|
||||
<input placeholder="Business Name" matInput formControlName="busName">
|
||||
<mat-error *ngIf="myError('busName', 'required')">Name is required</mat-error>
|
||||
<mat-error *ngIf="myError('busName', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Email</mat-label>
|
||||
<input type="email" placeholder=" Email" matInput [(ngModel)]="local_data.email" formControlName="email">
|
||||
<input type="email" placeholder="Email" matInput [(ngModel)]="local_data.email" formControlName="email">
|
||||
<mat-error *ngIf="!form.get('email')?.errors?.required && (form.get('email')?.errors?.pattern)">
|
||||
Please enter a valid email address
|
||||
</mat-error>
|
||||
@ -25,10 +25,13 @@
|
||||
<mat-error *ngIf="form.get('email')?.invalid && (form.get('email')?.dirty || form.get('email')?.touched) && form.get('email')?.errors?.required">
|
||||
Email is required
|
||||
</mat-error>
|
||||
<mat-error *ngIf="form.get('email').errors?.usernameTaken && form.get('email').dirty">
|
||||
Email already exists...
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Phone No</mat-label>
|
||||
<input type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Phone No" matInput [(ngModel)]="local_data.contactNo" formControlName="contactNo">
|
||||
<mat-label>Mobile No</mat-label>
|
||||
<input type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Mobile No" matInput [(ngModel)]="local_data.contactNo" formControlName="contactNo">
|
||||
<mat-error *ngIf="myError('contactNo', 'required')">Contact No is required</mat-error>
|
||||
<mat-error *ngIf="myError('contactNo', 'pattern')">Invalid Contact No </mat-error>
|
||||
<mat-error *ngIf="myError('contactNo', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||
@ -36,13 +39,13 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Address</mat-label>
|
||||
<input placeholder=" Address" matInput [(ngModel)]="local_data.address" formControlName="address">
|
||||
<input placeholder="Address" matInput [(ngModel)]="local_data.address" formControlName="address">
|
||||
<mat-error *ngIf="myError('address', 'required')">Address is required</mat-error>
|
||||
<mat-error *ngIf="myError('address', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>State</mat-label>
|
||||
<input placeholder=" State" matInput [(ngModel)]="local_data.state" formControlName="state">
|
||||
<input placeholder="State" matInput [(ngModel)]="local_data.state" formControlName="state">
|
||||
<mat-error *ngIf="myError('state', 'required')">State is required</mat-error>
|
||||
<mat-error *ngIf="myError('state', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
@ -54,7 +57,7 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Type Of Currency</mat-label>
|
||||
<input placeholder=" City" matInput [(ngModel)]="local_data.currency" formControlName="currency">
|
||||
<input placeholder="Type Of Currency" matInput [(ngModel)]="local_data.currency" formControlName="currency">
|
||||
<mat-error *ngIf="myError('currency', 'required')">City is required</mat-error>
|
||||
<!-- <mat-error *ngIf="myError('currency', 'maxlength')">Limit exceed</mat-error> -->
|
||||
</mat-form-field>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Component, Inject, OnInit, Optional } from '@angular/core';
|
||||
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
||||
import { MatCheckboxChange } from '@angular/material/checkbox';
|
||||
@ -5,6 +6,7 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { Router } from '@angular/router';
|
||||
import { NotifierService } from 'angular-notifier';
|
||||
import { environment } from 'environments/environment';
|
||||
import { map } from 'rxjs/internal/operators/map';
|
||||
export interface UsersData {
|
||||
name: string;
|
||||
id: number;
|
||||
@ -28,7 +30,7 @@ export class AddBusinessComponent implements OnInit {
|
||||
selectedFiles: any;
|
||||
currentFileUpload: any;
|
||||
private apiUrl = environment.apiEndpoint;
|
||||
constructor(private notifierService: NotifierService,private router: Router,private formBuilder: FormBuilder,
|
||||
constructor(private http: HttpClient,private notifierService: NotifierService,private router: Router,private formBuilder: FormBuilder,
|
||||
public dialogRef: MatDialogRef<AddBusinessComponent>,
|
||||
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData) {
|
||||
console.log(data);
|
||||
@ -97,7 +99,7 @@ export class AddBusinessComponent implements OnInit {
|
||||
state: new FormControl('', [Validators.required]),
|
||||
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
|
||||
'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,63}$',
|
||||
),]),
|
||||
),],[this.validateUsernameAvailability.bind(this)]),
|
||||
contactNo: new FormControl('', [Validators.required, Validators.minLength(10),Validators.maxLength(10)]),
|
||||
createdBy:new FormControl(userrole,[Validators.required]),
|
||||
});
|
||||
@ -109,6 +111,25 @@ export class AddBusinessComponent implements OnInit {
|
||||
return this.form.controls[controlName].hasError(errorName);
|
||||
}
|
||||
|
||||
validateUsernameAvailability(control: FormControl) {
|
||||
|
||||
return this.http.get<any[]>(this.apiUrl + "businessDetailList")
|
||||
.pipe(
|
||||
map((response:any) => {
|
||||
|
||||
console.log(response)
|
||||
|
||||
let tmp=[];
|
||||
response.data.forEach(element => {
|
||||
tmp.push(element.email)
|
||||
});
|
||||
console.log(tmp,`${control.value}`);
|
||||
return !tmp.includes(`${control.value}`) ? null : { usernameTaken: true };
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
submit(){
|
||||
let tmp = this.form.value
|
||||
tmp.id = this.local_data.id
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="m-gap p-gap" fxLayoutAlign="end center">
|
||||
<mat-form-field class="form-field">
|
||||
<mat-label>Search practitioner</mat-label>
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Service">
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search practitioner">
|
||||
<mat-icon matSuffix>search</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
@ -34,7 +34,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="consultant-profile text-center">
|
||||
<h5 class="text-primary">Dr.{{consultant.userName}}</h5>
|
||||
<h5 class="text-primary">{{consultant.userName}}</h5>
|
||||
<!-- <span class="silk-block mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br> -->
|
||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||
|| "ENT" }}</span><br>
|
||||
@ -114,15 +114,16 @@
|
||||
</ng-template>
|
||||
<div class="staff">
|
||||
<span class="staff-title">
|
||||
Profile
|
||||
Profile <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||
</span>
|
||||
<button mat-icon-button matTooltip="Edit" style="padding: 4px 20px !;" *ngIf="isEditable == false" (click)="edit_table(isEditable)" fileName="customers"><mat-icon >edit</mat-icon></button>
|
||||
<!-- <button mat-icon-button *ngIf="table[0].statement == statement_item && table[0].statement != 'Cash Flow Statement'" color="accent" matTooltip="Edit" matTooltipPosition="right" (click)="editandcancel(true,table[0].section)" ><mat-icon>edit</mat-icon></button> -->
|
||||
<button mat-icon-button color="accent" *ngIf="isEditable == true" (click)="edit_table(isEditable)" matTooltip="Cancel" matTooltipPosition="right" ><mat-icon>cancel_presentation</mat-icon></button>
|
||||
<button mat-icon-button color="accent" *ngIf="isEditable == true" (click)="save()" matTooltip="Submit" matTooltipPosition="right" ><mat-icon>done</mat-icon></button>
|
||||
</div>
|
||||
<ng-scrollbar class="scrollHV">
|
||||
<div mat-dialog-content class="my-table" style="margin: 5%;" >
|
||||
|
||||
<div mat-dialog-content class="my-table" style="margin-top: 15px;">
|
||||
<ng-scrollbar class="scrollHVtab1">
|
||||
<!-- <form [formGroup]="registerForm" (ngSubmit)="onSubmit()"> -->
|
||||
<div class="form-group label-container">
|
||||
<label>Name <span class="line">-</span></label>
|
||||
@ -286,8 +287,9 @@
|
||||
<button class="btn btn-primary">Register</button>
|
||||
</div> -->
|
||||
<!-- </form> -->
|
||||
</ng-scrollbar>
|
||||
</div>
|
||||
</ng-scrollbar>
|
||||
|
||||
</mat-tab>
|
||||
|
||||
<mat-tab *ngIf="userRole != 'BADMIN'">
|
||||
@ -297,12 +299,12 @@
|
||||
</ng-template>
|
||||
<div class="staff">
|
||||
<span class="staff-title">
|
||||
Working Hours
|
||||
Working Hours <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||
</span>
|
||||
<button mat-button (click)="openDialog('Add',{})" class="button">Edit</button>
|
||||
</div>
|
||||
<div class="working-hours">
|
||||
<ng-scrollbar class="scrollHV">
|
||||
<ng-scrollbar class="scrollHVtab2">
|
||||
<!-- <input id="color-toggle" type="checkbox" >
|
||||
<label for="color-toggle" class="toggle">Customize working hours.</label> -->
|
||||
<div class="booking-url">
|
||||
@ -511,11 +513,11 @@
|
||||
</ng-template>
|
||||
<div class="staff assignService" >
|
||||
<span class="staff-title">
|
||||
Define Your Services
|
||||
Define Your Services <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||
</span>
|
||||
<mat-form-field appearance="outline" style="width: 45%;" class="mat-pane">
|
||||
<mat-label>Assign Service</mat-label>
|
||||
<mat-select placeholder="Select Role" [(ngModel)]="assignService" multiple required>
|
||||
<mat-select placeholder="Assign Service" [(ngModel)]="assignService" multiple required>
|
||||
<!-- <ng-scrollbar class="scrollHV"> -->
|
||||
<mat-option (onSelectionChange)="getValues($event,details)" *ngFor="let details of servicesList" [value]="details.servicesName">
|
||||
<div class="card-comment-widget">
|
||||
@ -537,7 +539,7 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="servicesList_array.length != 0">
|
||||
<ng-scrollbar class="scrollHV">
|
||||
<ng-scrollbar class="scrollHVtab3">
|
||||
<mat-card class="p-1" *ngFor="let details of servicesList_array;let i = index">
|
||||
<div fxLayout="row" class="flexCard">
|
||||
<div fxFlex.xs="10" fxFlex.sm="10" fxFlex.md="10" fxFlex.lg="10" fxFlex.xl="10">
|
||||
@ -571,16 +573,16 @@
|
||||
|
||||
<mat-tab>
|
||||
<ng-template mat-tab-label>
|
||||
<i class="material-icons icons"></i> Staff Booking URL
|
||||
<i class="material-icons icons"></i> Appointment Booking Link
|
||||
</ng-template>
|
||||
<div class="staff">
|
||||
<span class="staff-title">
|
||||
Share Booking Page
|
||||
Share Appointment Booking Link <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="booking-url">
|
||||
<p class="booking-para">Here's your personal booking page. Edit and share this link with customers so they can book your Services directly.</p>
|
||||
<span class="underline-title full-width">Default booking domain</span>
|
||||
<span class="underline-title full-width">Appoinment booking domain</span>
|
||||
</div>
|
||||
<div class="boxmiddle fl boxsize mt20">
|
||||
<div class="booking-urls">
|
||||
|
||||
@ -28,8 +28,8 @@ h5{
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.scrollHV {
|
||||
height: calc(100vh - 105px);
|
||||
.scrollHVtab1 {
|
||||
height: calc(100vh - 200px);
|
||||
}
|
||||
.consultant-list-card {
|
||||
border-radius: 10px;
|
||||
@ -338,8 +338,8 @@ margin: 30px 25px 30px 30px;
|
||||
margin-top: 4px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
.scrollHV {
|
||||
height: calc(100vh - 190px);
|
||||
.scrollHVtab2 {
|
||||
height: calc(100vh - 205px);
|
||||
}
|
||||
.add-button{
|
||||
border: 1px solid #50497F;
|
||||
@ -354,10 +354,7 @@ margin: 30px 25px 30px 30px;
|
||||
.dis-font{
|
||||
font-size: 15px;
|
||||
}
|
||||
.mat-tab-body-content {
|
||||
height: 100%;
|
||||
overflow: hidden!important;
|
||||
}
|
||||
|
||||
.margin{
|
||||
margin-bottom: 10rem;
|
||||
}
|
||||
@ -382,11 +379,9 @@ margin: 30px 25px 30px 30px;
|
||||
// }
|
||||
|
||||
//mat-tab3start
|
||||
.assignService{
|
||||
.scrollHV {
|
||||
height: calc(100vh - 461px) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.p-1{
|
||||
padding: 1rem !important;
|
||||
.flexCard{
|
||||
@ -584,9 +579,7 @@ padding-top: 13px;
|
||||
box-sizing: border-box;
|
||||
line-height: 15px;
|
||||
}
|
||||
.scrollHV {
|
||||
height: calc(100vh - 240px);
|
||||
}
|
||||
|
||||
::ng-deep .mat-form-field-infix {
|
||||
height: 50px!important;
|
||||
}
|
||||
@ -640,4 +633,13 @@ content: "\20B9";
|
||||
|
||||
.scrollHV2{
|
||||
height: calc(100vh - 305px);
|
||||
}
|
||||
|
||||
::ng-deep .mat-tab-body-content {
|
||||
height: 100%;
|
||||
overflow:hidden !important;
|
||||
}
|
||||
|
||||
.scrollHVtab3 {
|
||||
height: calc(100vh - 190px) !important;
|
||||
}
|
||||
@ -268,9 +268,9 @@ unavailability(action,obj) {
|
||||
this._con.getPractitionerInfo.next( this.usersList['practitionerInfos']);
|
||||
console.log(this.practitionerdetails)
|
||||
|
||||
if(this.userRole == 'PRACTITIONER'){
|
||||
if(this.userRole == 'PRACTITIONER' || this.userRole == 'FRONTDESK'){
|
||||
this.endUserURL = this.end_User_Url+'practitioner/'+this.usersList.randStr+"/details"
|
||||
} else if (this.userRole == 'BADMIN' || this.userRole == 'FRONTDESK' ){
|
||||
} else if (this.userRole == 'BADMIN'){
|
||||
this.endUserURL = this.end_User_Url+'business/'+this.usersList['BusinessDetails'][0].randStr
|
||||
}
|
||||
|
||||
|
||||
@ -12,6 +12,24 @@ import { ConsultantService } from "../consultant-service/consultant.service";
|
||||
})
|
||||
export class EditWorkingHoursComponent implements OnInit {
|
||||
startTimes:any = [
|
||||
"12:00 am",
|
||||
"12:30 am",
|
||||
"01:00 am",
|
||||
"01:30 am",
|
||||
"02:00 am",
|
||||
"02:30 am",
|
||||
"03:00 am",
|
||||
"03:30 am",
|
||||
"04:00 am",
|
||||
"04:30 am",
|
||||
"05:00 am",
|
||||
"05:30 am",
|
||||
"06:00 am",
|
||||
"06:30 am",
|
||||
"07:00 am",
|
||||
"07:30 am",
|
||||
"08:00 am",
|
||||
"08:30 am",
|
||||
"09:00 am",
|
||||
"09:30 am",
|
||||
"10:00 am",
|
||||
@ -37,8 +55,31 @@ export class EditWorkingHoursComponent implements OnInit {
|
||||
"08:00 pm",
|
||||
"08:30 pm",
|
||||
"09:00 pm",
|
||||
"09:30 pm",
|
||||
"10:00 pm",
|
||||
"10:30 pm",
|
||||
"11:00 pm",
|
||||
"11:30 pm",
|
||||
];
|
||||
endTimes = [
|
||||
"12:00 am",
|
||||
"12:30 am",
|
||||
"01:00 am",
|
||||
"01:30 am",
|
||||
"02:00 am",
|
||||
"02:30 am",
|
||||
"03:00 am",
|
||||
"03:30 am",
|
||||
"04:00 am",
|
||||
"04:30 am",
|
||||
"05:00 am",
|
||||
"05:30 am",
|
||||
"06:00 am",
|
||||
"06:30 am",
|
||||
"07:00 am",
|
||||
"07:30 am",
|
||||
"08:00 am",
|
||||
"08:30 am",
|
||||
"09:00 am",
|
||||
"09:30 am",
|
||||
"10:00 am",
|
||||
@ -46,8 +87,8 @@ export class EditWorkingHoursComponent implements OnInit {
|
||||
"11:00 am",
|
||||
"11:30 am",
|
||||
"12:00 pm",
|
||||
"12:30 pm",
|
||||
"01:00 pm",
|
||||
"12:30 pm",
|
||||
"01:00 pm",
|
||||
"01:30 pm",
|
||||
"02:00 pm",
|
||||
"02:30 pm",
|
||||
@ -64,6 +105,11 @@ export class EditWorkingHoursComponent implements OnInit {
|
||||
"08:00 pm",
|
||||
"08:30 pm",
|
||||
"09:00 pm",
|
||||
"09:30 pm",
|
||||
"10:00 pm",
|
||||
"10:30 pm",
|
||||
"11:00 pm",
|
||||
"11:30 pm",
|
||||
];
|
||||
days = [
|
||||
"Sunday",
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<input placeholder=" Phone" type="text" appMobileNumberPattern maxlength="10" minlength="10" matInput [(ngModel)]="local_data.phoneNo" formControlName="phoneNo">
|
||||
<input placeholder=" Mobile No" type="text" appMobileNumberPattern maxlength="10" minlength="10" matInput [(ngModel)]="local_data.phoneNo" formControlName="phoneNo">
|
||||
<mat-error *ngIf="myError('phoneNo', 'required')">Contact No is required</mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'pattern')">Invalid Contact No </mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||
|
||||
@ -8,6 +8,7 @@ import { AppointmentsService } from 'app/appoinment/appoinments/appointments-ser
|
||||
import Swal from 'sweetalert2';
|
||||
import { AddCustomersComponent } from '../add-customers/add-customers.component';
|
||||
import { CustomersService } from '../customers-service/customers.service';
|
||||
import { local } from 'd3';
|
||||
|
||||
|
||||
export interface UsersData {
|
||||
@ -111,8 +112,8 @@ export class CustomersListComponent implements OnInit {
|
||||
}
|
||||
|
||||
getCustomerDetails(){
|
||||
|
||||
this._cus.getCustomersListDetails().subscribe(res => {
|
||||
let param = {"busId": localStorage.getItem('busId')}
|
||||
this._cus.getCustomersListDetails(param).subscribe(res => {
|
||||
if (res.status == 200) {
|
||||
this.isLoading = false
|
||||
this.customersList = res.data;
|
||||
@ -123,7 +124,6 @@ export class CustomersListComponent implements OnInit {
|
||||
const activeIds = this.appoinmentsIds
|
||||
const serviceList = this.customersList
|
||||
console.log(activeIds,serviceList)
|
||||
|
||||
const result = serviceList.filter(({id}) => activeIds.includes(id));
|
||||
console.log(result)
|
||||
this.customersList = result
|
||||
@ -132,8 +132,7 @@ export class CustomersListComponent implements OnInit {
|
||||
return b.id - a.id;
|
||||
});
|
||||
this.customersList.forEach((element, index) => {
|
||||
element.index = index
|
||||
|
||||
element.index = index
|
||||
|
||||
});
|
||||
this.customersListSource['data'] = this.customersList;
|
||||
@ -145,8 +144,6 @@ export class CustomersListComponent implements OnInit {
|
||||
});
|
||||
this.customersList.forEach((element, index) => {
|
||||
element.index = index
|
||||
|
||||
|
||||
});
|
||||
this.customersListSource['data'] = this.customersList;
|
||||
console.log(this.customersListSource)
|
||||
|
||||
@ -12,14 +12,15 @@ export class CustomersService {
|
||||
private apiUrl = environment.apiEndpoint;
|
||||
constructor(private _http: HttpClient) { }
|
||||
|
||||
getCustomersListDetails(): Observable<any> {
|
||||
console.log('IN')
|
||||
return this._http.get<any[]>(this.apiUrl + "getCustomersDetails")
|
||||
getCustomersListDetails(param): Observable<any> {
|
||||
return this._http.post<any[]>(this.apiUrl + "getCustomersDetails",param)
|
||||
// .pipe(
|
||||
// catchError(this.handleError('role', []))
|
||||
// )
|
||||
}
|
||||
|
||||
|
||||
|
||||
addFormDetails(addParams): Observable<any> {
|
||||
return this._http.post(this.apiUrl + 'CreateCustomers', addParams)
|
||||
// .pipe(
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="m-gap p-gap" fxLayoutAlign="end center">
|
||||
<mat-form-field class="form-field">
|
||||
<mat-label>Search practitioner</mat-label>
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Service">
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search practitioner">
|
||||
<mat-icon matSuffix>search</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="consultant-profile text-center">
|
||||
<h5 class="text-primary">Dr.{{consultant.userName}}</h5>
|
||||
<h5 class="text-primary">{{consultant.userName}}</h5>
|
||||
<!-- <span class="silk-block mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br> -->
|
||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||
|| "ENT" }}</span><br>
|
||||
|
||||
@ -5,13 +5,13 @@
|
||||
<div mat-dialog-content class="my-table">
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>ServiceName</mat-label>
|
||||
<input placeholder="servicesName" matInput formControlName="servicesName">
|
||||
<input placeholder="Service Name" matInput formControlName="servicesName">
|
||||
<mat-error *ngIf="myError('servicesName', 'required')">ServiceName is required</mat-error>
|
||||
<mat-error *ngIf="myError('servicesName', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Duration</mat-label>
|
||||
<mat-select placeholder="Select Role" formControlName="duration" required>
|
||||
<mat-select placeholder="Select Duration" formControlName="duration" required>
|
||||
<mat-option>--</mat-option>
|
||||
<mat-option *ngFor="let data of durationTime" [value]="data.time">
|
||||
{{data.time}} Mins
|
||||
|
||||
@ -17,7 +17,7 @@ export class AddServiceComponent implements OnInit {
|
||||
form: FormGroup;
|
||||
local_data:any;
|
||||
action:string;
|
||||
public durationTime = [{'time':'10'},{'time':'15'},{'time':'20'},{'time':'25'},{'time':'30'},{'time':'35'},{'time':'45'},{'time':'50'},{'time':'55'},{'time':'60'}]
|
||||
public durationTime = [{'time':'15'},{'time':'30'},{'time':'45'},{'time':'60'},{'time':'75'},{'time':'90'},{'time':'105'},{'time':'120'},{'time':'135'},{'time':'150'},{'time':'165'},{'time':'180'}]
|
||||
constructor(private router: Router,private formBuilder: FormBuilder,
|
||||
public dialogRef: MatDialogRef<AddServiceComponent>,
|
||||
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData) {
|
||||
|
||||
@ -5,10 +5,10 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" style="width:20%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
||||
<mat-label>Practitioner</mat-label>
|
||||
<mat-select placeholder="Select Business" [(ngModel)]="selectPractitioner" required>
|
||||
<mat-select placeholder="Select Practitioner" [(ngModel)]="selectPractitioner" required>
|
||||
<mat-option value="All" (click)="allPractitioner()">All</mat-option>
|
||||
<mat-option *ngFor="let details of consultants" (click)="getPractitioner(details)" [value]="details.id">
|
||||
Dr. {{details.userName}}
|
||||
{{details.userName}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
@ -116,6 +116,7 @@ export class ServiceListComponent implements OnInit {
|
||||
);
|
||||
this.servicesList = result
|
||||
this.servicesListSource['data'] = this.servicesList;
|
||||
this.servicesListLength = this.servicesList.length
|
||||
console.log(this.servicesListSource)
|
||||
this.recordStatus=false;
|
||||
}
|
||||
|
||||
@ -59,10 +59,13 @@
|
||||
<mat-error *ngIf="form.get('email')?.invalid && (form.get('email')?.dirty || form.get('email')?.touched) && form.get('email')?.errors?.required">
|
||||
Email is required
|
||||
</mat-error>
|
||||
<mat-error *ngIf="form.get('email').errors?.usernameTaken && form.get('email').dirty">
|
||||
Email already exists...
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Phone No</mat-label>
|
||||
<input matInput type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Enter Phone No" formControlName="contactNo" id="contactNo">
|
||||
<mat-label>Mobile No</mat-label>
|
||||
<input matInput type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Mobile No" formControlName="contactNo" id="contactNo">
|
||||
<mat-error *ngIf="myError('contactNo', 'required')">Contact No is required</mat-error>
|
||||
<mat-error *ngIf="myError('contactNo', 'pattern')">Invalid Contact No </mat-error>
|
||||
<mat-error *ngIf="myError('contactNo', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Component, Inject, OnInit, Optional } from '@angular/core';
|
||||
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
@ -6,6 +7,7 @@ import { NotifierService } from 'angular-notifier';
|
||||
import { BusinessService } from 'app/appoinment/business/business-service/business.service';
|
||||
import { ApiServiceService } from 'app/appoinment/service-list-details/service-api-services/api-service.service';
|
||||
import { environment } from 'environments/environment';
|
||||
import { map } from 'rxjs/internal/operators/map';
|
||||
|
||||
export interface UsersData {
|
||||
userName: string;
|
||||
@ -37,11 +39,15 @@ export class AddUserComponent implements OnInit {
|
||||
servicesList: any = [];
|
||||
serviceCheckedData: any = [];
|
||||
assignedServiceValue: any = [];
|
||||
constructor(private notifierService: NotifierService,private router: Router,private formBuilder: FormBuilder,
|
||||
userList: any = [];
|
||||
constructor(private http: HttpClient,private notifierService: NotifierService,private router: Router,private formBuilder: FormBuilder,
|
||||
public dialogRef: MatDialogRef<AddUserComponent>,
|
||||
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData,public _bus:BusinessService,public _ser:ApiServiceService) {
|
||||
console.log(data);
|
||||
this.local_data = {...data};
|
||||
|
||||
let details:any = data
|
||||
this.userList = details.userList
|
||||
this.local_data = details.obj;
|
||||
console.log(this.local_data)
|
||||
// this.local_data.busId = localStorage.getItem('busNameID')
|
||||
this.action = this.local_data.action;
|
||||
@ -63,7 +69,7 @@ export class AddUserComponent implements OnInit {
|
||||
// lastName: new FormControl('', [Validators.required, Validators.maxLength(20)]),
|
||||
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
|
||||
'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,63}$',
|
||||
),]),
|
||||
),],[this.validateUsernameAvailability.bind(this)]),
|
||||
// password: new FormControl('', [Validators.required, Validators.minLength(6)]),
|
||||
password: new FormControl('', [Validators.required,Validators.pattern(
|
||||
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$'
|
||||
@ -84,6 +90,9 @@ export class AddUserComponent implements OnInit {
|
||||
public myError = (controlName: string, errorName: string) =>{
|
||||
return this.form.controls[controlName].hasError(errorName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// doAction(){
|
||||
// let tmp = this.form.value
|
||||
// tmp.id = this.local_data.id
|
||||
@ -107,6 +116,32 @@ export class AddUserComponent implements OnInit {
|
||||
// console.log(this.action,this.local_data)
|
||||
// }
|
||||
|
||||
|
||||
|
||||
validateUsernameAvailability(control: FormControl) {
|
||||
let userRole = localStorage.getItem('user_role')
|
||||
let param;
|
||||
if(userRole == 'BADMIN'){
|
||||
param ={"busId": localStorage.getItem('busId')}
|
||||
}else {
|
||||
param = {}
|
||||
}
|
||||
return this.http.post<any[]>(this.apiUrl + "getusers",param)
|
||||
.pipe(
|
||||
map((response:any) => {
|
||||
|
||||
console.log(response)
|
||||
|
||||
let tmp=[];
|
||||
response.data.forEach(element => {
|
||||
tmp.push(element.email)
|
||||
});
|
||||
console.log(tmp,`${control.value}`);
|
||||
return !tmp.includes(`${control.value}`) ? null : { usernameTaken: true };
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
getBusinessList() {
|
||||
//this._pd.getTabStatusPdDetails(this.tabStatus)
|
||||
this._bus.getBusinessListDetails().subscribe(res => {
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<h5 mat-dialog-title> <strong>Assign Service to Dr. {{pracititionerName}}</strong>
|
||||
<h5 mat-dialog-title> <strong>Assign Service to {{pracititionerName}}</strong>
|
||||
<button mat-icon-button type="button" matTooltip="Close" class="button" matTooltipPosition="above" (click)="close()"
|
||||
><mat-icon>close</mat-icon></button></h5>
|
||||
|
||||
<mat-form-field appearance="outline" class="mat-pane" >
|
||||
<mat-label>Assign Service</mat-label>
|
||||
<mat-select placeholder="Select Role" [(ngModel)]="assignService" multiple required>
|
||||
<mat-select placeholder="Assign Service" [(ngModel)]="assignService" multiple required>
|
||||
<mat-option *ngFor="let details of servicesList" (onSelectionChange)="getValues($event,details)" [value]="details.servicesName">
|
||||
{{details.servicesName}}
|
||||
</mat-option>
|
||||
|
||||
@ -216,7 +216,7 @@ export class UserListComponent implements OnInit {
|
||||
height: '100%',
|
||||
// maxWidth: '38vw',
|
||||
position: { right: '0' },
|
||||
data:obj
|
||||
data:{obj,userList:this.usersList['data']}
|
||||
});
|
||||
dialogRef.afterClosed().subscribe(result => {
|
||||
localStorage.setItem('go_admin','1')
|
||||
|
||||
@ -84,7 +84,7 @@
|
||||
<span class="head">Practitioner</span>
|
||||
</div>
|
||||
<div fxFlex.xs="75" fxFlex.sm="75" fxFlex.md="75" fxFlex.lg="75" fxFlex.xl="75">
|
||||
<span>: Dr.{{serviceMapDetails.user[0].userName}}</span>
|
||||
<span>: {{serviceMapDetails.user[0].userName}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayout="row wrap" style="margin-bottom: 20px;">
|
||||
@ -120,7 +120,7 @@
|
||||
<span class="head">Booked On</span>
|
||||
</div>
|
||||
<div fxFlex.xs="75" fxFlex.sm="75" fxFlex.md="75" fxFlex.lg="75" fxFlex.xl="75">
|
||||
<span>: {{bookingSummary.createdAt | date:'fullDate'}}</span>
|
||||
<span>: {{bookingSummary.createdAt | date:'MM/dd/yyyy'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
@ -136,7 +136,7 @@ image_view(image){
|
||||
let companyName = this.busName
|
||||
let brandUrl = this.serviceMapDetails.service[0].servicesName
|
||||
let cusMail = this.customerBookingDetails.email
|
||||
let practitioner = 'Appointment-with-Dr.'+this.serviceMapDetails.user[0].userName
|
||||
let practitioner = 'Appointment-with-'+this.serviceMapDetails.user[0].userName
|
||||
|
||||
let addEvent = calendarUrl+practitioner+'&'+'&dates='+this.dateConvertFormat(appoiDateStart)+'/'+this.dateConvertFormat(appoiDateEnd)+'&location='+companyName+'&details='+brandUrl+'&add='+cusMail
|
||||
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
</div>
|
||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap" fxLayoutAlign="end center">
|
||||
<mat-form-field appearance="fill">
|
||||
<mat-label>Search consultant</mat-label>
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Service">
|
||||
<mat-label>Search Consultant</mat-label>
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Consultant">
|
||||
<mat-icon matSuffix>search</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="m-gap p-gap" fxLayoutAlign="end center">
|
||||
<mat-form-field class="form-field">
|
||||
<mat-label>Search practitioner</mat-label>
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Service">
|
||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search practitioner">
|
||||
<mat-icon matSuffix>search</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
@ -47,7 +47,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="consultant-profile text-center">
|
||||
<h5 class="text-primary">Dr.{{consultant.userName}}</h5>
|
||||
<h5 class="text-primary">{{consultant.userName}}</h5>
|
||||
<span class="silk-block mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br>
|
||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||
|| "ENT" }}</span><br>
|
||||
|
||||
@ -41,24 +41,25 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap" fxLayoutAlign="center center">
|
||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap">
|
||||
<div [ngSwitch]="otpData">
|
||||
<div fxLayout="row">
|
||||
<div fxFlex.xs="80" fxFlex.sm="80" fxFlex.md="80" fxFlex.lg="80" fxFlex.xl="80">
|
||||
<mat-form-field style="width: 100%">
|
||||
<div fxFlex.xs="70" fxFlex.sm="70" fxFlex.md="70" fxFlex.lg="70" fxFlex.xl="70" fxLayoutAlign="center center">
|
||||
<mat-form-field style="width: 70%">
|
||||
<input matInput type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Phone No" name="phone" formControlName="phoneNo" [readonly]="noChangeNo == '1'" required>
|
||||
<mat-error *ngIf="myError('phoneNo', 'required')">Contact No is required</mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'pattern')">Invalid Contact No </mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||
<mat-error *ngIf="myError('phoneNo', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
<div id="sign-in-button"></div>
|
||||
<div *ngIf="verifyOTP != '1'" fxFlex.xs="20" fxFlex.sm="20" fxFlex.md="20" fxFlex.lg="20" fxFlex.xl="20">
|
||||
<button mat-raised-button type="button" (click)="getOTP(1)" [disabled]="myError('phoneNo', 'minlength') || myError('phoneNo', 'required')" color="primary" class="mr-1 mb-1">Get OTP</button>
|
||||
|
||||
</div>
|
||||
<span *ngIf="verifyOTP == '1'"><mat-icon style="color: #4CAF50;">verified</mat-icon></span>
|
||||
</div>
|
||||
</div>
|
||||
<div fxFlex.xs="30" fxFlex.sm="30" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" fxLayoutAlign="center center">
|
||||
<div *ngIf="verifyOTP != '1'">
|
||||
<button mat-raised-button type="button" (click)="getOTP(1)" [disabled]="myError('phoneNo', 'minlength') || myError('phoneNo', 'required')" color="primary" class="mr-1 mb-1">Get OTP</button>
|
||||
</div>
|
||||
<span *ngIf="verifyOTP == '1'"><mat-icon style="color: #4CAF50;">verified</mat-icon></span>
|
||||
</div>
|
||||
<div id="sign-in-button"></div>
|
||||
|
||||
</div>
|
||||
<!-- <div *ngSwitchCase="1">
|
||||
@ -115,7 +116,7 @@
|
||||
<!-- <p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Business </p>
|
||||
<span class="span-text">{{busName}}</span> -->
|
||||
<p class="param"><img src="assets/images/person.svg" alt="Avatar" class="img">Practitioner </p>
|
||||
<span class="span-text">Dr. {{bookedDetails.doctor}}</span>
|
||||
<span class="span-text">{{bookedDetails.doctor}}</span>
|
||||
<p class="param"><img src="assets/images/information.svg" alt="Avatar" class="img"> Service </p>
|
||||
<span class="span-text"> {{bookedDetails.service}} ({{bookedDetails.duration}}Mins)</span>
|
||||
<p class="param"><img src="assets/images/Languages.svg" alt="Avatar" class="img">Date </p>
|
||||
|
||||
@ -10,6 +10,7 @@ import { OptVerifyComponent } from './opt-verify/opt-verify.component';
|
||||
import { event } from 'jquery';
|
||||
import { environment } from 'environments/environment';
|
||||
import {Location} from '@angular/common';
|
||||
import { local } from 'd3';
|
||||
|
||||
var config = {
|
||||
apiKey: "AIzaSyBVPQ6C7cg5l8I-o7WSmmXdioMa4C0ZKNM",
|
||||
@ -80,7 +81,9 @@ export class CustomerInfoComponent implements OnInit {
|
||||
if(this.verifyOTP == 1){
|
||||
let row_obj = this.form.value
|
||||
console.log(row_obj)
|
||||
let addFormData = {
|
||||
let busId = localStorage.getItem('busId')
|
||||
let addFormData = {
|
||||
busId: busId,
|
||||
cusName: row_obj.cusName,
|
||||
email: row_obj.email,
|
||||
address_1: row_obj.address_1,
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="media-prof">
|
||||
<span class="bg-secondary p-1 px-4 rounded text-white">Pro</span>
|
||||
<h5>Dr. Suganya</h5>
|
||||
<h5>Suganya</h5>
|
||||
<p class="years">ENT | 8 YRS</p>
|
||||
<div class="header">
|
||||
<div class="content">
|
||||
@ -30,11 +30,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-4 mt-1 line">
|
||||
<h6 class="title-dr">About Dr. Suganya</h6>
|
||||
<p class="fonts">Dr Suganya is a well-known surgeon and one of the best ENT specialists in Chennai. She is trained to treat medical and surgical conditions affecting the ear, nose and throat. ENT specialists are also called otolaryngologists. </p>
|
||||
<h6 class="title-">About Suganya</h6>
|
||||
<p class="fonts">Suganya is a well-known surgeon and one of the best ENT specialists in Chennai. She is trained to treat medical and surgical conditions affecting the ear, nose and throat. ENT specialists are also called otolaryngologists. </p>
|
||||
</div>
|
||||
<div class="px-4 mt-1">
|
||||
<h6 class="title-dr"> Clinic Address</h6>
|
||||
<h6 class="title-"> Clinic Address</h6>
|
||||
<p class="fonts">No. 320, Padma Complex, Anna Salai,TeynampetChennai</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -66,7 +66,7 @@
|
||||
<img src="{{dp}}" width="100" class="rounded-circle">
|
||||
</div>
|
||||
<div class="heading">
|
||||
<h3>Dr.{{bookedAppointment.userName}}</h3>
|
||||
<h3>{{bookedAppointment.userName}}</h3>
|
||||
<a>{{bookedAppointment.practitionerInfos[0].designtion}}</a><br />
|
||||
<button mat-raised-button (click)="goToSlotBooking()" style="background-color: #e7c953;">Book Appointment</button>
|
||||
</div>
|
||||
@ -130,7 +130,7 @@
|
||||
<!-- <div class="elementor-container">
|
||||
<h3 class="care">CARE COVERAGE</h3>
|
||||
<p class="para">
|
||||
The task force’s early efforts had three lasting results: the formation of Dr.Changes caregiver center; the genesis of community social caregiver groups; and the beginnings of an evolutional movement to change the ideology of long-term health care and caregivers intended for the ill and elderly in our country.
|
||||
The task force’s early efforts had three lasting results: the formation of Changes caregiver center; the genesis of community social caregiver groups; and the beginnings of an evolutional movement to change the ideology of long-term health care and caregivers intended for the ill and elderly in our country.
|
||||
</p>
|
||||
</div> -->
|
||||
<div class="elementor-container">
|
||||
|
||||
@ -201,7 +201,7 @@
|
||||
<!-- <p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Business </p>
|
||||
<span class="span-text">{{busName}}</span> -->
|
||||
<p class="param"><img src="assets/images/person.svg" alt="Avatar" class="img"> Practitioner </p>
|
||||
<span class="span-text">Dr. {{doctor}}</span>
|
||||
<span class="span-text">{{doctor}}</span>
|
||||
<p class="param"><img src="assets/images/information.svg" alt="Avatar" class="img"> Service </p>
|
||||
<span class="span-text" *ngIf="serviceMapdetails.length>0"> {{servicesName.servicesName}} ({{serviceMapdetails[0].duration.length>0 ? serviceMapdetails[0].duration[0].durationNew:serviceMapdetails[0].service[0].duration
|
||||
}} Mins)</span>
|
||||
|
||||
@ -10,10 +10,10 @@ export class RoleMenuItemsPipe implements PipeTransform {
|
||||
// // this is for horizontal menu filter
|
||||
// if(type=="1"){
|
||||
switch(localStorage.getItem('user_role')){
|
||||
case 'SADMIN': return value.filter(val=>val.state!="appoinments" && val.state!="customers" && val.state != "consultant-setting" && val.state!="consultants" && val.state!="services" && val.state!= "consultant-list");
|
||||
case 'SADMIN': return value.filter(val=>val.state!="appoinments" && val.state!="customers" && val.state != "consultant-setting" && val.state!="consultants" && val.state!="services" && val.state!= "consultant-list" && val.state!= "mail-log");
|
||||
case 'BADMIN': return value.filter(val=>val.state !="business" && val.state!="consultants" && val.state!="appoinments" && val.state!= "consultant-list");
|
||||
case 'PRACTITIONER': return value.filter(val=>val.state !="business" && val.state!="consultants" && val.state!="users" && val.state!="services" && val.state!= "consultant-list");
|
||||
case 'FRONTDESK': return value.filter(val=>val.state !="business" && val.state!="consultants" && val.state!="users" && val.state != "home" && val.state!="customers" && val.state!= "consultant-list");
|
||||
case 'PRACTITIONER': return value.filter(val=>val.state !="business" && val.state!="consultants" && val.state!="users" && val.state!="services" && val.state!= "consultant-list" && val.state!= "mail-log");
|
||||
case 'FRONTDESK': return value.filter(val=>val.state !="business" && val.state!="consultants" && val.state!="users" && val.state != "home" && val.state!="customers" && val.state!= "consultant-list" && val.state!= "mail-log");
|
||||
// case 'PRACTITIONER':
|
||||
// case '3': return value.filter(val=>val.state!="settings");
|
||||
// case '4': return value.filter(val=>val.state!="settings" && val.state!="quality_check_discussion" && val.state!="reports" && val.state!="sales-pd-list");
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.xs="80" fxFlex.sm="80" fxFlex.md="80" fxFlex.lg="80" fxFlex.xl="80">
|
||||
<mat-form-field style="width: 90%;">
|
||||
<input matInput placeholder="Enter Phone No" appMobileNumberPattern maxlength="6">
|
||||
<input matInput placeholder="Mobile No" appMobileNumberPattern maxlength="6">
|
||||
</mat-form-field>
|
||||
<span>OTP will be sent to this number by SMS and whatsapp.</span>
|
||||
</div>
|
||||
|
||||
@ -102,7 +102,7 @@
|
||||
</mat-form-field> -->
|
||||
|
||||
<mat-form-field>
|
||||
<input matInput type="text" placeholder="Enter Contact No" formControlName="contact_no" id="contact_no">
|
||||
<input matInput type="text" placeholder="Mobile No" formControlName="contact_no" id="contact_no">
|
||||
<!-- <mat-hint align="end">Not more then 10 characters long.</mat-hint> -->
|
||||
<mat-error *ngIf="myError('contact_no', 'required')">Contact No is required</mat-error>
|
||||
<mat-error *ngIf="myError('contact_no', 'maxlength')">Limit exceed</mat-error>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user