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>
|
||||||
<mat-form-field appearance="outline" style="width:20%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
<mat-form-field appearance="outline" style="width:20%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
||||||
<mat-label>Practitioner</mat-label>
|
<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 value="All" (click)="allPractitioner()">All</mat-option>
|
||||||
<mat-option *ngFor="let details of consultants" (click)="getPractitioner(details)" [value]="details.id">
|
<mat-option *ngFor="let details of consultants" (click)="getPractitioner(details)" [value]="details.id">
|
||||||
Dr. {{details.userName}}
|
{{details.userName}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|||||||
@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||||
<mat-label>Name</mat-label>
|
<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', 'required')">Name is required</mat-error>
|
||||||
<mat-error *ngIf="myError('cusName', 'maxlength')">Limit exceed</mat-error> -->
|
<mat-error *ngIf="myError('cusName', 'maxlength')">Limit exceed</mat-error> -->
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||||
<mat-label>Email</mat-label>
|
<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)">
|
<!-- <mat-error *ngIf="!form.get('email')?.errors?.required && (form.get('email')?.errors?.pattern)">
|
||||||
Please enter a valid email address
|
Please enter a valid email address
|
||||||
</mat-error>
|
</mat-error>
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||||
<mat-label>Phone</mat-label>
|
<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', 'required')">Contact No is required</mat-error>
|
||||||
<mat-error *ngIf="myError('phoneNo', 'pattern')">Invalid Contact No </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', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
<mat-form-field appearance="outline" class="mat-pane">
|
<mat-form-field appearance="outline" class="mat-pane">
|
||||||
<mat-label>Business</mat-label>
|
<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>
|
||||||
<mat-form-field appearance="outline" class="mat-pane" *ngIf="user_role != 'FRONTDESK'">
|
<mat-form-field appearance="outline" class="mat-pane" *ngIf="user_role != 'FRONTDESK'">
|
||||||
<mat-label>Practitioner</mat-label>
|
<mat-label>Practitioner</mat-label>
|
||||||
@ -28,9 +27,9 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" class="mat-pane" *ngIf="user_role == 'FRONTDESK'">
|
<mat-form-field appearance="outline" class="mat-pane" *ngIf="user_role == 'FRONTDESK'">
|
||||||
<mat-label>Practitioner</mat-label>
|
<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">
|
<mat-option *ngFor="let details of consultants" (click)="getConsultServices(details)" [value]="details.id">
|
||||||
Dr. {{details.userName}}
|
{{details.userName}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
@ -39,8 +38,7 @@
|
|||||||
<mat-label>Service</mat-label>
|
<mat-label>Service</mat-label>
|
||||||
<mat-select placeholder="Select Service" formControlName="service" required>
|
<mat-select placeholder="Select Service" formControlName="service" required>
|
||||||
<mat-option>--</mat-option>
|
<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}}
|
{{business.servicesName}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
|
|||||||
@ -712,12 +712,10 @@ export class DialogBoxComponent implements OnInit {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
getCustomerDetails(){
|
getCustomerDetails(){
|
||||||
this._cus.getCustomersListDetails().subscribe(res => {
|
let param = {"busId": localStorage.getItem('busId')}
|
||||||
|
this._cus.getCustomersListDetails(param).subscribe(res => {
|
||||||
if (res.status == 200) {
|
if (res.status == 200) {
|
||||||
|
|
||||||
this.customersList = res.data;
|
this.customersList = res.data;
|
||||||
|
|
||||||
|
|
||||||
console.log(this.customersList,this.appoinmentsIds)
|
console.log(this.customersList,this.appoinmentsIds)
|
||||||
let user_role = localStorage.getItem('user_role');
|
let user_role = localStorage.getItem('user_role');
|
||||||
if(user_role == 'PRACTITIONER'){
|
if(user_role == 'PRACTITIONER'){
|
||||||
|
|||||||
@ -9,15 +9,15 @@
|
|||||||
|
|
||||||
|
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Name</mat-label>
|
<mat-label>Business Name</mat-label>
|
||||||
<input placeholder=" Name" matInput formControlName="busName">
|
<input placeholder="Business Name" matInput formControlName="busName">
|
||||||
<mat-error *ngIf="myError('busName', 'required')">Name is required</mat-error>
|
<mat-error *ngIf="myError('busName', 'required')">Name is required</mat-error>
|
||||||
<mat-error *ngIf="myError('busName', 'maxlength')">Limit exceed</mat-error>
|
<mat-error *ngIf="myError('busName', 'maxlength')">Limit exceed</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Email</mat-label>
|
<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)">
|
<mat-error *ngIf="!form.get('email')?.errors?.required && (form.get('email')?.errors?.pattern)">
|
||||||
Please enter a valid email address
|
Please enter a valid email address
|
||||||
</mat-error>
|
</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">
|
<mat-error *ngIf="form.get('email')?.invalid && (form.get('email')?.dirty || form.get('email')?.touched) && form.get('email')?.errors?.required">
|
||||||
Email is required
|
Email is required
|
||||||
</mat-error>
|
</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>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Phone No</mat-label>
|
<mat-label>Mobile No</mat-label>
|
||||||
<input type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Phone No" matInput [(ngModel)]="local_data.contactNo" formControlName="contactNo">
|
<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', 'required')">Contact No is required</mat-error>
|
||||||
<mat-error *ngIf="myError('contactNo', 'pattern')">Invalid Contact No </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>
|
<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>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Address</mat-label>
|
<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', 'required')">Address is required</mat-error>
|
||||||
<mat-error *ngIf="myError('address', 'maxlength')">Limit exceed</mat-error>
|
<mat-error *ngIf="myError('address', 'maxlength')">Limit exceed</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>State</mat-label>
|
<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', 'required')">State is required</mat-error>
|
||||||
<mat-error *ngIf="myError('state', 'maxlength')">Limit exceed</mat-error>
|
<mat-error *ngIf="myError('state', 'maxlength')">Limit exceed</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
@ -54,7 +57,7 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Type Of Currency</mat-label>
|
<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', 'required')">City is required</mat-error>
|
||||||
<!-- <mat-error *ngIf="myError('currency', 'maxlength')">Limit exceed</mat-error> -->
|
<!-- <mat-error *ngIf="myError('currency', 'maxlength')">Limit exceed</mat-error> -->
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { Component, Inject, OnInit, Optional } from '@angular/core';
|
import { Component, Inject, OnInit, Optional } from '@angular/core';
|
||||||
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
||||||
import { MatCheckboxChange } from '@angular/material/checkbox';
|
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 { Router } from '@angular/router';
|
||||||
import { NotifierService } from 'angular-notifier';
|
import { NotifierService } from 'angular-notifier';
|
||||||
import { environment } from 'environments/environment';
|
import { environment } from 'environments/environment';
|
||||||
|
import { map } from 'rxjs/internal/operators/map';
|
||||||
export interface UsersData {
|
export interface UsersData {
|
||||||
name: string;
|
name: string;
|
||||||
id: number;
|
id: number;
|
||||||
@ -28,7 +30,7 @@ export class AddBusinessComponent implements OnInit {
|
|||||||
selectedFiles: any;
|
selectedFiles: any;
|
||||||
currentFileUpload: any;
|
currentFileUpload: any;
|
||||||
private apiUrl = environment.apiEndpoint;
|
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>,
|
public dialogRef: MatDialogRef<AddBusinessComponent>,
|
||||||
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData) {
|
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
@ -97,7 +99,7 @@ export class AddBusinessComponent implements OnInit {
|
|||||||
state: new FormControl('', [Validators.required]),
|
state: new FormControl('', [Validators.required]),
|
||||||
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
|
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
|
||||||
'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,63}$',
|
'[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)]),
|
contactNo: new FormControl('', [Validators.required, Validators.minLength(10),Validators.maxLength(10)]),
|
||||||
createdBy:new FormControl(userrole,[Validators.required]),
|
createdBy:new FormControl(userrole,[Validators.required]),
|
||||||
});
|
});
|
||||||
@ -109,6 +111,25 @@ export class AddBusinessComponent implements OnInit {
|
|||||||
return this.form.controls[controlName].hasError(errorName);
|
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(){
|
submit(){
|
||||||
let tmp = this.form.value
|
let tmp = this.form.value
|
||||||
tmp.id = this.local_data.id
|
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">
|
<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-form-field class="form-field">
|
||||||
<mat-label>Search practitioner</mat-label>
|
<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-icon matSuffix>search</mat-icon>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="consultant-profile text-center">
|
<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 mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br> -->
|
||||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||||
|| "ENT" }}</span><br>
|
|| "ENT" }}</span><br>
|
||||||
@ -114,15 +114,16 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
<div class="staff">
|
<div class="staff">
|
||||||
<span class="staff-title">
|
<span class="staff-title">
|
||||||
Profile
|
Profile <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||||
</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 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 *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)="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>
|
<button mat-icon-button color="accent" *ngIf="isEditable == true" (click)="save()" matTooltip="Submit" matTooltipPosition="right" ><mat-icon>done</mat-icon></button>
|
||||||
</div>
|
</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()"> -->
|
<!-- <form [formGroup]="registerForm" (ngSubmit)="onSubmit()"> -->
|
||||||
<div class="form-group label-container">
|
<div class="form-group label-container">
|
||||||
<label>Name <span class="line">-</span></label>
|
<label>Name <span class="line">-</span></label>
|
||||||
@ -286,8 +287,9 @@
|
|||||||
<button class="btn btn-primary">Register</button>
|
<button class="btn btn-primary">Register</button>
|
||||||
</div> -->
|
</div> -->
|
||||||
<!-- </form> -->
|
<!-- </form> -->
|
||||||
|
</ng-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
</ng-scrollbar>
|
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
|
|
||||||
<mat-tab *ngIf="userRole != 'BADMIN'">
|
<mat-tab *ngIf="userRole != 'BADMIN'">
|
||||||
@ -297,12 +299,12 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
<div class="staff">
|
<div class="staff">
|
||||||
<span class="staff-title">
|
<span class="staff-title">
|
||||||
Working Hours
|
Working Hours <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||||
</span>
|
</span>
|
||||||
<button mat-button (click)="openDialog('Add',{})" class="button">Edit</button>
|
<button mat-button (click)="openDialog('Add',{})" class="button">Edit</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="working-hours">
|
<div class="working-hours">
|
||||||
<ng-scrollbar class="scrollHV">
|
<ng-scrollbar class="scrollHVtab2">
|
||||||
<!-- <input id="color-toggle" type="checkbox" >
|
<!-- <input id="color-toggle" type="checkbox" >
|
||||||
<label for="color-toggle" class="toggle">Customize working hours.</label> -->
|
<label for="color-toggle" class="toggle">Customize working hours.</label> -->
|
||||||
<div class="booking-url">
|
<div class="booking-url">
|
||||||
@ -511,11 +513,11 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
<div class="staff assignService" >
|
<div class="staff assignService" >
|
||||||
<span class="staff-title">
|
<span class="staff-title">
|
||||||
Define Your Services
|
Define Your Services <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||||
</span>
|
</span>
|
||||||
<mat-form-field appearance="outline" style="width: 45%;" class="mat-pane">
|
<mat-form-field appearance="outline" style="width: 45%;" class="mat-pane">
|
||||||
<mat-label>Assign Service</mat-label>
|
<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"> -->
|
<!-- <ng-scrollbar class="scrollHV"> -->
|
||||||
<mat-option (onSelectionChange)="getValues($event,details)" *ngFor="let details of servicesList" [value]="details.servicesName">
|
<mat-option (onSelectionChange)="getValues($event,details)" *ngFor="let details of servicesList" [value]="details.servicesName">
|
||||||
<div class="card-comment-widget">
|
<div class="card-comment-widget">
|
||||||
@ -537,7 +539,7 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="servicesList_array.length != 0">
|
<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">
|
<mat-card class="p-1" *ngFor="let details of servicesList_array;let i = index">
|
||||||
<div fxLayout="row" class="flexCard">
|
<div fxLayout="row" class="flexCard">
|
||||||
<div fxFlex.xs="10" fxFlex.sm="10" fxFlex.md="10" fxFlex.lg="10" fxFlex.xl="10">
|
<div fxFlex.xs="10" fxFlex.sm="10" fxFlex.md="10" fxFlex.lg="10" fxFlex.xl="10">
|
||||||
@ -571,16 +573,16 @@
|
|||||||
|
|
||||||
<mat-tab>
|
<mat-tab>
|
||||||
<ng-template mat-tab-label>
|
<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>
|
</ng-template>
|
||||||
<div class="staff">
|
<div class="staff">
|
||||||
<span class="staff-title">
|
<span class="staff-title">
|
||||||
Share Booking Page
|
Share Appointment Booking Link <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="booking-url">
|
<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>
|
<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>
|
||||||
<div class="boxmiddle fl boxsize mt20">
|
<div class="boxmiddle fl boxsize mt20">
|
||||||
<div class="booking-urls">
|
<div class="booking-urls">
|
||||||
|
|||||||
@ -28,8 +28,8 @@ h5{
|
|||||||
display: flex !important;
|
display: flex !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollHV {
|
.scrollHVtab1 {
|
||||||
height: calc(100vh - 105px);
|
height: calc(100vh - 200px);
|
||||||
}
|
}
|
||||||
.consultant-list-card {
|
.consultant-list-card {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
@ -338,8 +338,8 @@ margin: 30px 25px 30px 30px;
|
|||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
.scrollHV {
|
.scrollHVtab2 {
|
||||||
height: calc(100vh - 190px);
|
height: calc(100vh - 205px);
|
||||||
}
|
}
|
||||||
.add-button{
|
.add-button{
|
||||||
border: 1px solid #50497F;
|
border: 1px solid #50497F;
|
||||||
@ -354,10 +354,7 @@ margin: 30px 25px 30px 30px;
|
|||||||
.dis-font{
|
.dis-font{
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
.mat-tab-body-content {
|
|
||||||
height: 100%;
|
|
||||||
overflow: hidden!important;
|
|
||||||
}
|
|
||||||
.margin{
|
.margin{
|
||||||
margin-bottom: 10rem;
|
margin-bottom: 10rem;
|
||||||
}
|
}
|
||||||
@ -382,11 +379,9 @@ margin: 30px 25px 30px 30px;
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
//mat-tab3start
|
//mat-tab3start
|
||||||
.assignService{
|
|
||||||
.scrollHV {
|
|
||||||
height: calc(100vh - 461px) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.p-1{
|
.p-1{
|
||||||
padding: 1rem !important;
|
padding: 1rem !important;
|
||||||
.flexCard{
|
.flexCard{
|
||||||
@ -584,9 +579,7 @@ padding-top: 13px;
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
line-height: 15px;
|
line-height: 15px;
|
||||||
}
|
}
|
||||||
.scrollHV {
|
|
||||||
height: calc(100vh - 240px);
|
|
||||||
}
|
|
||||||
::ng-deep .mat-form-field-infix {
|
::ng-deep .mat-form-field-infix {
|
||||||
height: 50px!important;
|
height: 50px!important;
|
||||||
}
|
}
|
||||||
@ -641,3 +634,12 @@ content: "\20B9";
|
|||||||
.scrollHV2{
|
.scrollHV2{
|
||||||
height: calc(100vh - 305px);
|
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']);
|
this._con.getPractitionerInfo.next( this.usersList['practitionerInfos']);
|
||||||
console.log(this.practitionerdetails)
|
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"
|
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
|
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 {
|
export class EditWorkingHoursComponent implements OnInit {
|
||||||
startTimes:any = [
|
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:00 am",
|
||||||
"09:30 am",
|
"09:30 am",
|
||||||
"10:00 am",
|
"10:00 am",
|
||||||
@ -37,8 +55,31 @@ export class EditWorkingHoursComponent implements OnInit {
|
|||||||
"08:00 pm",
|
"08:00 pm",
|
||||||
"08:30 pm",
|
"08:30 pm",
|
||||||
"09:00 pm",
|
"09:00 pm",
|
||||||
|
"09:30 pm",
|
||||||
|
"10:00 pm",
|
||||||
|
"10:30 pm",
|
||||||
|
"11:00 pm",
|
||||||
|
"11:30 pm",
|
||||||
];
|
];
|
||||||
endTimes = [
|
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:00 am",
|
||||||
"09:30 am",
|
"09:30 am",
|
||||||
"10:00 am",
|
"10:00 am",
|
||||||
@ -64,6 +105,11 @@ export class EditWorkingHoursComponent implements OnInit {
|
|||||||
"08:00 pm",
|
"08:00 pm",
|
||||||
"08:30 pm",
|
"08:30 pm",
|
||||||
"09:00 pm",
|
"09:00 pm",
|
||||||
|
"09:30 pm",
|
||||||
|
"10:00 pm",
|
||||||
|
"10:30 pm",
|
||||||
|
"11:00 pm",
|
||||||
|
"11:30 pm",
|
||||||
];
|
];
|
||||||
days = [
|
days = [
|
||||||
"Sunday",
|
"Sunday",
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<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', 'required')">Contact No is required</mat-error>
|
||||||
<mat-error *ngIf="myError('phoneNo', 'pattern')">Invalid Contact No </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', '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 Swal from 'sweetalert2';
|
||||||
import { AddCustomersComponent } from '../add-customers/add-customers.component';
|
import { AddCustomersComponent } from '../add-customers/add-customers.component';
|
||||||
import { CustomersService } from '../customers-service/customers.service';
|
import { CustomersService } from '../customers-service/customers.service';
|
||||||
|
import { local } from 'd3';
|
||||||
|
|
||||||
|
|
||||||
export interface UsersData {
|
export interface UsersData {
|
||||||
@ -111,8 +112,8 @@ export class CustomersListComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getCustomerDetails(){
|
getCustomerDetails(){
|
||||||
|
let param = {"busId": localStorage.getItem('busId')}
|
||||||
this._cus.getCustomersListDetails().subscribe(res => {
|
this._cus.getCustomersListDetails(param).subscribe(res => {
|
||||||
if (res.status == 200) {
|
if (res.status == 200) {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
this.customersList = res.data;
|
this.customersList = res.data;
|
||||||
@ -123,7 +124,6 @@ export class CustomersListComponent implements OnInit {
|
|||||||
const activeIds = this.appoinmentsIds
|
const activeIds = this.appoinmentsIds
|
||||||
const serviceList = this.customersList
|
const serviceList = this.customersList
|
||||||
console.log(activeIds,serviceList)
|
console.log(activeIds,serviceList)
|
||||||
|
|
||||||
const result = serviceList.filter(({id}) => activeIds.includes(id));
|
const result = serviceList.filter(({id}) => activeIds.includes(id));
|
||||||
console.log(result)
|
console.log(result)
|
||||||
this.customersList = result
|
this.customersList = result
|
||||||
@ -134,7 +134,6 @@ export class CustomersListComponent implements OnInit {
|
|||||||
this.customersList.forEach((element, index) => {
|
this.customersList.forEach((element, index) => {
|
||||||
element.index = index
|
element.index = index
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
this.customersListSource['data'] = this.customersList;
|
this.customersListSource['data'] = this.customersList;
|
||||||
} else{
|
} else{
|
||||||
@ -145,8 +144,6 @@ export class CustomersListComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
this.customersList.forEach((element, index) => {
|
this.customersList.forEach((element, index) => {
|
||||||
element.index = index
|
element.index = index
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
this.customersListSource['data'] = this.customersList;
|
this.customersListSource['data'] = this.customersList;
|
||||||
console.log(this.customersListSource)
|
console.log(this.customersListSource)
|
||||||
|
|||||||
@ -12,14 +12,15 @@ export class CustomersService {
|
|||||||
private apiUrl = environment.apiEndpoint;
|
private apiUrl = environment.apiEndpoint;
|
||||||
constructor(private _http: HttpClient) { }
|
constructor(private _http: HttpClient) { }
|
||||||
|
|
||||||
getCustomersListDetails(): Observable<any> {
|
getCustomersListDetails(param): Observable<any> {
|
||||||
console.log('IN')
|
return this._http.post<any[]>(this.apiUrl + "getCustomersDetails",param)
|
||||||
return this._http.get<any[]>(this.apiUrl + "getCustomersDetails")
|
|
||||||
// .pipe(
|
// .pipe(
|
||||||
// catchError(this.handleError('role', []))
|
// catchError(this.handleError('role', []))
|
||||||
// )
|
// )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
addFormDetails(addParams): Observable<any> {
|
addFormDetails(addParams): Observable<any> {
|
||||||
return this._http.post(this.apiUrl + 'CreateCustomers', addParams)
|
return this._http.post(this.apiUrl + 'CreateCustomers', addParams)
|
||||||
// .pipe(
|
// .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">
|
<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-form-field class="form-field">
|
||||||
<mat-label>Search practitioner</mat-label>
|
<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-icon matSuffix>search</mat-icon>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
@ -30,7 +30,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="consultant-profile text-center">
|
<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 mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br> -->
|
||||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||||
|| "ENT" }}</span><br>
|
|| "ENT" }}</span><br>
|
||||||
|
|||||||
@ -5,13 +5,13 @@
|
|||||||
<div mat-dialog-content class="my-table">
|
<div mat-dialog-content class="my-table">
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>ServiceName</mat-label>
|
<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', 'required')">ServiceName is required</mat-error>
|
||||||
<mat-error *ngIf="myError('servicesName', 'maxlength')">Limit exceed</mat-error>
|
<mat-error *ngIf="myError('servicesName', 'maxlength')">Limit exceed</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Duration</mat-label>
|
<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>--</mat-option>
|
||||||
<mat-option *ngFor="let data of durationTime" [value]="data.time">
|
<mat-option *ngFor="let data of durationTime" [value]="data.time">
|
||||||
{{data.time}} Mins
|
{{data.time}} Mins
|
||||||
|
|||||||
@ -17,7 +17,7 @@ export class AddServiceComponent implements OnInit {
|
|||||||
form: FormGroup;
|
form: FormGroup;
|
||||||
local_data:any;
|
local_data:any;
|
||||||
action:string;
|
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,
|
constructor(private router: Router,private formBuilder: FormBuilder,
|
||||||
public dialogRef: MatDialogRef<AddServiceComponent>,
|
public dialogRef: MatDialogRef<AddServiceComponent>,
|
||||||
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData) {
|
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData) {
|
||||||
|
|||||||
@ -5,10 +5,10 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field appearance="outline" style="width:20%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
<mat-form-field appearance="outline" style="width:20%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
||||||
<mat-label>Practitioner</mat-label>
|
<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 value="All" (click)="allPractitioner()">All</mat-option>
|
||||||
<mat-option *ngFor="let details of consultants" (click)="getPractitioner(details)" [value]="details.id">
|
<mat-option *ngFor="let details of consultants" (click)="getPractitioner(details)" [value]="details.id">
|
||||||
Dr. {{details.userName}}
|
{{details.userName}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|||||||
@ -116,6 +116,7 @@ export class ServiceListComponent implements OnInit {
|
|||||||
);
|
);
|
||||||
this.servicesList = result
|
this.servicesList = result
|
||||||
this.servicesListSource['data'] = this.servicesList;
|
this.servicesListSource['data'] = this.servicesList;
|
||||||
|
this.servicesListLength = this.servicesList.length
|
||||||
console.log(this.servicesListSource)
|
console.log(this.servicesListSource)
|
||||||
this.recordStatus=false;
|
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">
|
<mat-error *ngIf="form.get('email')?.invalid && (form.get('email')?.dirty || form.get('email')?.touched) && form.get('email')?.errors?.required">
|
||||||
Email is required
|
Email is required
|
||||||
</mat-error>
|
</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>
|
||||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||||
<mat-label>Phone No</mat-label>
|
<mat-label>Mobile No</mat-label>
|
||||||
<input matInput type="text" appMobileNumberPattern maxlength="10" minlength="10" placeholder="Enter Phone No" formControlName="contactNo" id="contactNo">
|
<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', 'required')">Contact No is required</mat-error>
|
||||||
<mat-error *ngIf="myError('contactNo', 'pattern')">Invalid Contact No </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>
|
<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 { Component, Inject, OnInit, Optional } from '@angular/core';
|
||||||
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
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 { BusinessService } from 'app/appoinment/business/business-service/business.service';
|
||||||
import { ApiServiceService } from 'app/appoinment/service-list-details/service-api-services/api-service.service';
|
import { ApiServiceService } from 'app/appoinment/service-list-details/service-api-services/api-service.service';
|
||||||
import { environment } from 'environments/environment';
|
import { environment } from 'environments/environment';
|
||||||
|
import { map } from 'rxjs/internal/operators/map';
|
||||||
|
|
||||||
export interface UsersData {
|
export interface UsersData {
|
||||||
userName: string;
|
userName: string;
|
||||||
@ -37,11 +39,15 @@ export class AddUserComponent implements OnInit {
|
|||||||
servicesList: any = [];
|
servicesList: any = [];
|
||||||
serviceCheckedData: any = [];
|
serviceCheckedData: any = [];
|
||||||
assignedServiceValue: 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>,
|
public dialogRef: MatDialogRef<AddUserComponent>,
|
||||||
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData,public _bus:BusinessService,public _ser:ApiServiceService) {
|
@Optional() @Inject(MAT_DIALOG_DATA) public data: UsersData,public _bus:BusinessService,public _ser:ApiServiceService) {
|
||||||
console.log(data);
|
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)
|
console.log(this.local_data)
|
||||||
// this.local_data.busId = localStorage.getItem('busNameID')
|
// this.local_data.busId = localStorage.getItem('busNameID')
|
||||||
this.action = this.local_data.action;
|
this.action = this.local_data.action;
|
||||||
@ -63,7 +69,7 @@ export class AddUserComponent implements OnInit {
|
|||||||
// lastName: new FormControl('', [Validators.required, Validators.maxLength(20)]),
|
// lastName: new FormControl('', [Validators.required, Validators.maxLength(20)]),
|
||||||
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
|
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
|
||||||
'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,63}$',
|
'[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.minLength(6)]),
|
||||||
password: new FormControl('', [Validators.required,Validators.pattern(
|
password: new FormControl('', [Validators.required,Validators.pattern(
|
||||||
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$'
|
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$'
|
||||||
@ -84,6 +90,9 @@ export class AddUserComponent implements OnInit {
|
|||||||
public myError = (controlName: string, errorName: string) =>{
|
public myError = (controlName: string, errorName: string) =>{
|
||||||
return this.form.controls[controlName].hasError(errorName);
|
return this.form.controls[controlName].hasError(errorName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// doAction(){
|
// doAction(){
|
||||||
// let tmp = this.form.value
|
// let tmp = this.form.value
|
||||||
// tmp.id = this.local_data.id
|
// tmp.id = this.local_data.id
|
||||||
@ -107,6 +116,32 @@ export class AddUserComponent implements OnInit {
|
|||||||
// console.log(this.action,this.local_data)
|
// 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() {
|
getBusinessList() {
|
||||||
//this._pd.getTabStatusPdDetails(this.tabStatus)
|
//this._pd.getTabStatusPdDetails(this.tabStatus)
|
||||||
this._bus.getBusinessListDetails().subscribe(res => {
|
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()"
|
<button mat-icon-button type="button" matTooltip="Close" class="button" matTooltipPosition="above" (click)="close()"
|
||||||
><mat-icon>close</mat-icon></button></h5>
|
><mat-icon>close</mat-icon></button></h5>
|
||||||
|
|
||||||
<mat-form-field appearance="outline" class="mat-pane" >
|
<mat-form-field appearance="outline" class="mat-pane" >
|
||||||
<mat-label>Assign Service</mat-label>
|
<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">
|
<mat-option *ngFor="let details of servicesList" (onSelectionChange)="getValues($event,details)" [value]="details.servicesName">
|
||||||
{{details.servicesName}}
|
{{details.servicesName}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
|||||||
@ -216,7 +216,7 @@ export class UserListComponent implements OnInit {
|
|||||||
height: '100%',
|
height: '100%',
|
||||||
// maxWidth: '38vw',
|
// maxWidth: '38vw',
|
||||||
position: { right: '0' },
|
position: { right: '0' },
|
||||||
data:obj
|
data:{obj,userList:this.usersList['data']}
|
||||||
});
|
});
|
||||||
dialogRef.afterClosed().subscribe(result => {
|
dialogRef.afterClosed().subscribe(result => {
|
||||||
localStorage.setItem('go_admin','1')
|
localStorage.setItem('go_admin','1')
|
||||||
|
|||||||
@ -84,7 +84,7 @@
|
|||||||
<span class="head">Practitioner</span>
|
<span class="head">Practitioner</span>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex.xs="75" fxFlex.sm="75" fxFlex.md="75" fxFlex.lg="75" fxFlex.xl="75">
|
<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>
|
</div>
|
||||||
<div fxLayout="row wrap" style="margin-bottom: 20px;">
|
<div fxLayout="row wrap" style="margin-bottom: 20px;">
|
||||||
@ -120,7 +120,7 @@
|
|||||||
<span class="head">Booked On</span>
|
<span class="head">Booked On</span>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex.xs="75" fxFlex.sm="75" fxFlex.md="75" fxFlex.lg="75" fxFlex.xl="75">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
|
|||||||
@ -136,7 +136,7 @@ image_view(image){
|
|||||||
let companyName = this.busName
|
let companyName = this.busName
|
||||||
let brandUrl = this.serviceMapDetails.service[0].servicesName
|
let brandUrl = this.serviceMapDetails.service[0].servicesName
|
||||||
let cusMail = this.customerBookingDetails.email
|
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
|
let addEvent = calendarUrl+practitioner+'&'+'&dates='+this.dateConvertFormat(appoiDateStart)+'/'+this.dateConvertFormat(appoiDateEnd)+'&location='+companyName+'&details='+brandUrl+'&add='+cusMail
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap" fxLayoutAlign="end center">
|
<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-form-field appearance="fill">
|
||||||
<mat-label>Search consultant</mat-label>
|
<mat-label>Search Consultant</mat-label>
|
||||||
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Service">
|
<input type="text" [(ngModel)]="filterdata" matInput placeholder="Search Consultant">
|
||||||
<mat-icon matSuffix>search</mat-icon>
|
<mat-icon matSuffix>search</mat-icon>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</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">
|
<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-form-field class="form-field">
|
||||||
<mat-label>Search practitioner</mat-label>
|
<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-icon matSuffix>search</mat-icon>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="consultant-profile text-center">
|
<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 mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br>
|
||||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||||
|| "ENT" }}</span><br>
|
|| "ENT" }}</span><br>
|
||||||
|
|||||||
@ -41,24 +41,25 @@
|
|||||||
</mat-error>
|
</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</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 [ngSwitch]="otpData">
|
||||||
<div fxLayout="row">
|
<div fxLayout="row">
|
||||||
<div fxFlex.xs="80" fxFlex.sm="80" fxFlex.md="80" fxFlex.lg="80" fxFlex.xl="80">
|
<div fxFlex.xs="70" fxFlex.sm="70" fxFlex.md="70" fxFlex.lg="70" fxFlex.xl="70" fxLayoutAlign="center center">
|
||||||
<mat-form-field style="width: 100%">
|
<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>
|
<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', 'required')">Contact No is required</mat-error>
|
||||||
<mat-error *ngIf="myError('phoneNo', 'pattern')">Invalid Contact No </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', 'minlength')"> Contact No must be at least 10 characters</mat-error>
|
||||||
<mat-error *ngIf="myError('phoneNo', 'maxlength')">Limit exceed</mat-error>
|
<mat-error *ngIf="myError('phoneNo', 'maxlength')">Limit exceed</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<div id="sign-in-button"></div>
|
</div>
|
||||||
<div *ngIf="verifyOTP != '1'" fxFlex.xs="20" fxFlex.sm="20" fxFlex.md="20" fxFlex.lg="20" fxFlex.xl="20">
|
<div fxFlex.xs="30" fxFlex.sm="30" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" fxLayoutAlign="center center">
|
||||||
<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 *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>
|
</div>
|
||||||
<span *ngIf="verifyOTP == '1'"><mat-icon style="color: #4CAF50;">verified</mat-icon></span>
|
<span *ngIf="verifyOTP == '1'"><mat-icon style="color: #4CAF50;">verified</mat-icon></span>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="sign-in-button"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <div *ngSwitchCase="1">
|
<!-- <div *ngSwitchCase="1">
|
||||||
@ -115,7 +116,7 @@
|
|||||||
<!-- <p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Business </p>
|
<!-- <p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Business </p>
|
||||||
<span class="span-text">{{busName}}</span> -->
|
<span class="span-text">{{busName}}</span> -->
|
||||||
<p class="param"><img src="assets/images/person.svg" alt="Avatar" class="img">Practitioner </p>
|
<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>
|
<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>
|
<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>
|
<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 { event } from 'jquery';
|
||||||
import { environment } from 'environments/environment';
|
import { environment } from 'environments/environment';
|
||||||
import {Location} from '@angular/common';
|
import {Location} from '@angular/common';
|
||||||
|
import { local } from 'd3';
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
apiKey: "AIzaSyBVPQ6C7cg5l8I-o7WSmmXdioMa4C0ZKNM",
|
apiKey: "AIzaSyBVPQ6C7cg5l8I-o7WSmmXdioMa4C0ZKNM",
|
||||||
@ -80,7 +81,9 @@ export class CustomerInfoComponent implements OnInit {
|
|||||||
if(this.verifyOTP == 1){
|
if(this.verifyOTP == 1){
|
||||||
let row_obj = this.form.value
|
let row_obj = this.form.value
|
||||||
console.log(row_obj)
|
console.log(row_obj)
|
||||||
|
let busId = localStorage.getItem('busId')
|
||||||
let addFormData = {
|
let addFormData = {
|
||||||
|
busId: busId,
|
||||||
cusName: row_obj.cusName,
|
cusName: row_obj.cusName,
|
||||||
email: row_obj.email,
|
email: row_obj.email,
|
||||||
address_1: row_obj.address_1,
|
address_1: row_obj.address_1,
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="media-prof">
|
<div class="media-prof">
|
||||||
<span class="bg-secondary p-1 px-4 rounded text-white">Pro</span>
|
<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>
|
<p class="years">ENT | 8 YRS</p>
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@ -30,11 +30,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="px-4 mt-1 line">
|
<div class="px-4 mt-1 line">
|
||||||
<h6 class="title-dr">About Dr. Suganya</h6>
|
<h6 class="title-">About 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>
|
<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>
|
||||||
<div class="px-4 mt-1">
|
<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>
|
<p class="fonts">No. 320, Padma Complex, Anna Salai,TeynampetChennai</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -66,7 +66,7 @@
|
|||||||
<img src="{{dp}}" width="100" class="rounded-circle">
|
<img src="{{dp}}" width="100" class="rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
<div class="heading">
|
<div class="heading">
|
||||||
<h3>Dr.{{bookedAppointment.userName}}</h3>
|
<h3>{{bookedAppointment.userName}}</h3>
|
||||||
<a>{{bookedAppointment.practitionerInfos[0].designtion}}</a><br />
|
<a>{{bookedAppointment.practitionerInfos[0].designtion}}</a><br />
|
||||||
<button mat-raised-button (click)="goToSlotBooking()" style="background-color: #e7c953;">Book Appointment</button>
|
<button mat-raised-button (click)="goToSlotBooking()" style="background-color: #e7c953;">Book Appointment</button>
|
||||||
</div>
|
</div>
|
||||||
@ -130,7 +130,7 @@
|
|||||||
<!-- <div class="elementor-container">
|
<!-- <div class="elementor-container">
|
||||||
<h3 class="care">CARE COVERAGE</h3>
|
<h3 class="care">CARE COVERAGE</h3>
|
||||||
<p class="para">
|
<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>
|
</p>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="elementor-container">
|
<div class="elementor-container">
|
||||||
|
|||||||
@ -201,7 +201,7 @@
|
|||||||
<!-- <p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Business </p>
|
<!-- <p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Business </p>
|
||||||
<span class="span-text">{{busName}}</span> -->
|
<span class="span-text">{{busName}}</span> -->
|
||||||
<p class="param"><img src="assets/images/person.svg" alt="Avatar" class="img"> Practitioner </p>
|
<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>
|
<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
|
<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>
|
}} Mins)</span>
|
||||||
|
|||||||
@ -10,10 +10,10 @@ export class RoleMenuItemsPipe implements PipeTransform {
|
|||||||
// // this is for horizontal menu filter
|
// // this is for horizontal menu filter
|
||||||
// if(type=="1"){
|
// if(type=="1"){
|
||||||
switch(localStorage.getItem('user_role')){
|
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 '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 '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");
|
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 'PRACTITIONER':
|
||||||
// case '3': return value.filter(val=>val.state!="settings");
|
// 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");
|
// 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 fxLayout="row wrap">
|
||||||
<div fxFlex.xs="80" fxFlex.sm="80" fxFlex.md="80" fxFlex.lg="80" fxFlex.xl="80">
|
<div fxFlex.xs="80" fxFlex.sm="80" fxFlex.md="80" fxFlex.lg="80" fxFlex.xl="80">
|
||||||
<mat-form-field style="width: 90%;">
|
<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>
|
</mat-form-field>
|
||||||
<span>OTP will be sent to this number by SMS and whatsapp.</span>
|
<span>OTP will be sent to this number by SMS and whatsapp.</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -102,7 +102,7 @@
|
|||||||
</mat-form-field> -->
|
</mat-form-field> -->
|
||||||
|
|
||||||
<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-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', 'required')">Contact No is required</mat-error>
|
||||||
<mat-error *ngIf="myError('contact_no', 'maxlength')">Limit exceed</mat-error>
|
<mat-error *ngIf="myError('contact_no', 'maxlength')">Limit exceed</mat-error>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user