From 1df4e8b746f34dc0bfbd8857cca34fda898dc916 Mon Sep 17 00:00:00 2001 From: Surendiran Date: Thu, 25 May 2023 18:19:44 +0530 Subject: [PATCH] customer, slot, upload profile --- .../appoinments-list.component.html | 4 +- .../appointment-addcustomer.component.scss | 2 +- .../dialog-box/dialog-box.component.html | 26 +++--- .../dialog-box/dialog-box.component.scss | 4 +- .../add-business/add-business.component.scss | 5 +- .../assign-service.component.scss | 5 +- .../add-customers.component.scss | 7 +- .../customers-list.component.html | 2 +- .../user/add-user/add-user.component.scss | 8 +- .../customer-info.component.html | 6 +- .../doctor-profile.component.ts | 1 + .../service-list.component.ts | 1 + .../layouts/admin/admin-layout.component.html | 21 ++++- .../layouts/admin/admin-layout.component.ts | 83 +++++++++++++++++- .../styles/scss/utilities/_general.scss | 56 ++++++++++++ ng-seed/src/favicon.ico | Bin 5430 -> 15406 bytes 16 files changed, 194 insertions(+), 37 deletions(-) diff --git a/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html b/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html index 9957d07..62a0ac7 100644 --- a/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html +++ b/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html @@ -14,10 +14,10 @@ - + diff --git a/ng-seed/src/app/appoinment/appoinments/appointment-addcustomer/appointment-addcustomer.component.scss b/ng-seed/src/app/appoinment/appoinments/appointment-addcustomer/appointment-addcustomer.component.scss index 55ece68..f9d77df 100644 --- a/ng-seed/src/app/appoinment/appoinments/appointment-addcustomer/appointment-addcustomer.component.scss +++ b/ng-seed/src/app/appoinment/appoinments/appointment-addcustomer/appointment-addcustomer.component.scss @@ -89,7 +89,7 @@ $tem-color : #217e69; // // height: auto!important; // } ::ng-deep .mat-dialog-content { - max-height: 75vh!important; + max-height: unset !important; overflow: unset!important; // overflow: hidden!important; } diff --git a/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.html b/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.html index 572687c..f070990 100644 --- a/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.html +++ b/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.html @@ -75,9 +75,11 @@ {{check(days) | date:'longDate'}}
- - - +
+ + + +
@@ -125,22 +127,24 @@ -
+ - - Sure to delete {{local_data.cusName}}? - +
- -
+
-
+
+ + + + Sure to delete {{local_data.cusName}}? + \ No newline at end of file diff --git a/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.scss b/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.scss index 859803b..6bc7d56 100644 --- a/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.scss +++ b/ng-seed/src/app/appoinment/appoinments/dialog-box/dialog-box.component.scss @@ -89,7 +89,7 @@ $tem-color : #217e69; // // height: auto!important; // } ::ng-deep .mat-dialog-content { - max-height: 75vh!important; + max-height: unset !important; overflow: unset!important; // overflow: hidden!important; } @@ -97,7 +97,7 @@ $tem-color : #217e69; overflow: hidden!important; } .scrollHV { - height: calc(100vh - 190px); + height: calc(100vh - 85px); } .scrollHV2 { height: calc(100vh - 462px); diff --git a/ng-seed/src/app/appoinment/business/add-business/add-business.component.scss b/ng-seed/src/app/appoinment/business/add-business/add-business.component.scss index 4791ddb..c5845d4 100644 --- a/ng-seed/src/app/appoinment/business/add-business/add-business.component.scss +++ b/ng-seed/src/app/appoinment/business/add-business/add-business.component.scss @@ -48,8 +48,9 @@ } } ::ng-deep .mat-dialog-content { - max-height: 170vh !important; - overflow: hidden!important; + max-height: unset !important; + overflow: unset!important; + // overflow: hidden!important; } ::ng-deep .mat-dialog-container{ overflow: hidden!important; diff --git a/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss index ad079c5..021902e 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss +++ b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss @@ -48,8 +48,9 @@ } } ::ng-deep .mat-dialog-content { - max-height: 170vh !important; - overflow: hidden!important; + max-height: unset !important; + overflow: unset!important; + // overflow: hidden!important; } ::ng-deep .mat-dialog-container{ overflow: hidden!important; diff --git a/ng-seed/src/app/appoinment/customers/add-customers/add-customers.component.scss b/ng-seed/src/app/appoinment/customers/add-customers/add-customers.component.scss index 07b61ed..ed5ecc1 100644 --- a/ng-seed/src/app/appoinment/customers/add-customers/add-customers.component.scss +++ b/ng-seed/src/app/appoinment/customers/add-customers/add-customers.component.scss @@ -48,9 +48,12 @@ } } ::ng-deep .mat-dialog-content { - max-height: 170vh!important; + max-height: unset !important; + overflow: unset!important; + // overflow: hidden!important; +} +::ng-deep .mat-dialog-container{ overflow: hidden!important; - } .scrollHV { height: calc(100vh - 150px); diff --git a/ng-seed/src/app/appoinment/customers/customers-list/customers-list.component.html b/ng-seed/src/app/appoinment/customers/customers-list/customers-list.component.html index 0028ef9..e7ea9e0 100644 --- a/ng-seed/src/app/appoinment/customers/customers-list/customers-list.component.html +++ b/ng-seed/src/app/appoinment/customers/customers-list/customers-list.component.html @@ -1,5 +1,5 @@ -

Customer Details

+

Booking Details

Filter diff --git a/ng-seed/src/app/appoinment/user/add-user/add-user.component.scss b/ng-seed/src/app/appoinment/user/add-user/add-user.component.scss index d36c1d3..939eba3 100644 --- a/ng-seed/src/app/appoinment/user/add-user/add-user.component.scss +++ b/ng-seed/src/app/appoinment/user/add-user/add-user.component.scss @@ -25,12 +25,12 @@ box-shadow:none!important; } ::ng-deep .mat-dialog-content { - max-height: 75vh!important; - overflow: unset!important; - // overflow: hidden!important; + max-height: unset !important; + overflow: unset!important; + // overflow: hidden!important; } ::ng-deep .mat-dialog-container{ - overflow: hidden!important; + overflow: hidden!important; } .scrollHV { height: calc(100vh - 83px); diff --git a/ng-seed/src/app/end-user/customer-info/customer-info.component.html b/ng-seed/src/app/end-user/customer-info/customer-info.component.html index 3d08419..63de99c 100644 --- a/ng-seed/src/app/end-user/customer-info/customer-info.component.html +++ b/ng-seed/src/app/end-user/customer-info/customer-info.component.html @@ -35,10 +35,10 @@ Please enter a valid email address - - + email is required +
diff --git a/ng-seed/src/app/end-user/doctor-profile/doctor-profile.component.ts b/ng-seed/src/app/end-user/doctor-profile/doctor-profile.component.ts index 723b910..ee4e421 100644 --- a/ng-seed/src/app/end-user/doctor-profile/doctor-profile.component.ts +++ b/ng-seed/src/app/end-user/doctor-profile/doctor-profile.component.ts @@ -48,6 +48,7 @@ export class DoctorProfileComponent implements OnInit { console.log('booked', res); if(res.length>0){ + localStorage.setItem('busId',res[0].business[0].busId) localStorage.setItem('busName',res[0].business[0].busName) localStorage.setItem('logo',res[0].business[0].logo) this.bookedAppointment = res[0].user[0] diff --git a/ng-seed/src/app/end-user/service-list-details/service-list.component.ts b/ng-seed/src/app/end-user/service-list-details/service-list.component.ts index 8f94d27..4923d98 100644 --- a/ng-seed/src/app/end-user/service-list-details/service-list.component.ts +++ b/ng-seed/src/app/end-user/service-list-details/service-list.component.ts @@ -82,6 +82,7 @@ export class ServiceListComponent implements OnInit { this.full_data = res['data'] console.log(this.full_data) this.full_data[0].business[0].busName + localStorage.setItem('busId',this.full_data[0].business[0].busId) localStorage.setItem('busName',this.full_data[0].business[0].busName) localStorage.setItem('currency',this.full_data[0].business[0].currency) localStorage.setItem('logo',this.full_data[0].business[0].logo) diff --git a/ng-seed/src/app/layouts/admin/admin-layout.component.html b/ng-seed/src/app/layouts/admin/admin-layout.component.html index d152289..1e253c3 100644 --- a/ng-seed/src/app/layouts/admin/admin-layout.component.html +++ b/ng-seed/src/app/layouts/admin/admin-layout.component.html @@ -20,10 +20,23 @@
-
\ No newline at end of file +
+ + \ No newline at end of file diff --git a/ng-seed/src/app/layouts/admin/admin-layout.component.ts b/ng-seed/src/app/layouts/admin/admin-layout.component.ts index edaf2f7..fb2a649 100644 --- a/ng-seed/src/app/layouts/admin/admin-layout.component.ts +++ b/ng-seed/src/app/layouts/admin/admin-layout.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, OnDestroy, ViewChild, HostListener } from '@angular/core'; +import { Component, OnInit, OnDestroy, ViewChild, HostListener, ElementRef } from '@angular/core'; import { Router, NavigationEnd } from '@angular/router'; import { MenuItems } from '../../shared/menu-items/menu-items'; import { HorizontalMenuItems } from '../../shared/menu-items/horizontal-menu-items'; @@ -13,6 +13,9 @@ PerfectScrollbarComponent, PerfectScrollbarDirective } from 'ngx-perfect-scrollb import { RoleMenuItemsPipe } from '../role-menu-items.pipe'; import { ConsultantService } from 'app/appoinment/consultant-setting/consultant-service/consultant.service'; import { environment } from 'environments/environment'; +import { NotifierService } from 'angular-notifier'; +import { BusinessService } from 'app/appoinment/business/business-service/business.service'; +import { UserService } from 'app/appoinment/user/user-service/user.service'; @Component({ selector: 'app-layout', @@ -54,11 +57,14 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { getUserData: any = []; userLength: any = []; roleName: any; - constructor(public _con:ConsultantService,private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService ) { + // fileInput: HTMLInputElement; + @ViewChild('fileInput') uploadImage; + formData: any=[]; + constructor(public _use:UserService,public _bus:BusinessService,private notifierService: NotifierService,public _con:ConsultantService,private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService ) { const browserLang: string = translate.getBrowserLang(); translate.use(browserLang.match(/en|fr/) ? browserLang : 'en'); this.getUser = localStorage.getItem('user_role') - + this.formData= new FormData(); } //08/02/2023 @@ -93,7 +99,10 @@ users() { } - + openFileInput() { + console.log('in') + this.uploadImage.nativeElement.click(); + } getUserDetails(){ let userID = localStorage.getItem('user_id') console.log('in') @@ -266,5 +275,71 @@ users() { localStorage.clear(); this.router.navigate(['/authentication/login']); } + + onSelectFile(event) { + console.log(event) + console.log(event.target.files[0]) + let fileType = event.target.files[0] + if(fileType.type == 'image/png' || fileType.type == 'image/jpg' || fileType.type == 'image/jpeg'){ + if(event.target.files[0].size > 2097152){ + this.notifierService.notify('warning', 'Image size is too Larger'); + }else { + const file = event.target.files[0]; + console.log(file) + // return; + // if(event != null){ + // // this.imageViewStatus = true + // } + // this.form['value'].logo = [event.target.files[0]] + // if (event.target.files && event.target.files[0]) { + // var reader = new FileReader(); + // reader.readAsDataURL(event.target.files[0]); + // reader.onload = (event) => { + // this.url = event.target.result; + // console.log(this.url) + // } + // } + let user_id = localStorage.getItem('user_id') + // let busUserID = this.getUserData.BusinessDetails[0].id + this.formData = [] + this.formData= new FormData(); + this.formData.append('image', file, file.name); + this.formData.append('logo', '1'); + this.formData.append('id',user_id) + // this.formData.append('isActive','1') + // this.formData.append('id',user_id) + console.log(this.formData) + // let user_role = localStorage.getItem('user_role') + // let service + // if(user_role == 'BIZADMIN'){ + // console.log('BIZADMIN',busUserID) + // this.formData.append('id',busUserID) + // service = this._bus + // }else { + // console.log('oThers') + // this.formData.append('id',user_id) + // service = this._use + // } + this._use.addFormDetails(this.formData).subscribe(res => { + if (res.status == 200) { + this.notifierService.notify('success', 'Profile Updated Successfully'); + this.getUserDetails() + } + + else{ + console.log(res.message) + // this.notifierService.notify('success', 'You are awesome! I mean it!'); + this.notifierService.notify('warning', res.message); + } + }) + } + } else { + this.notifierService.notify('warning', 'Invalid File)'); + this.notifierService.notify('warning', 'Upload Supported File Like (png,jpg and jpeg)'); + } + + + // this.formData.append('file', file, file.name); + } } diff --git a/ng-seed/src/assets/styles/scss/utilities/_general.scss b/ng-seed/src/assets/styles/scss/utilities/_general.scss index 4452d91..156f00e 100644 --- a/ng-seed/src/assets/styles/scss/utilities/_general.scss +++ b/ng-seed/src/assets/styles/scss/utilities/_general.scss @@ -9,8 +9,64 @@ $hover-icon-color:#2393db; .radius-round { border-radius: $border-radius-base; } +// .profilepic { +// position: relative; +// width: 125px; +// height: 125px; +// border-radius: 50%; +// overflow: hidden; +// background-color: #111; +// } + + .profilepic:hover .profilepic__content { + opacity: 1; + } + + .profilepic:hover .rad-full { + opacity: .5; + } + + .rad-full { + object-fit: cover; + opacity: 1; + transition: opacity .2s ease-in-out; + } + + .profilepic__content { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: white; + opacity: 0; + transition: opacity .2s ease-in-out; + } + + .profilepic__icon { + color: white; + padding-bottom: 60px; + cursor: pointer; + } + + .fas { + font-size: 20px; + } + + .profilepic__text { + text-transform: uppercase; + font-size: 12px; + width: 50%; + text-align: center; + } .rad-full{ border-radius: 100%; + height: 100px !important; + width: 100px !important; } .radius-circle { border-radius: 50%; diff --git a/ng-seed/src/favicon.ico b/ng-seed/src/favicon.ico index 8081c7ceaf2be08bf59010158c586170d9d2d517..5425c9f33760b5718ba157d77621e86fe3a514dd 100644 GIT binary patch literal 15406 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 literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc-