diff --git a/Mohem/package.json b/Mohem/package.json index 63431537..02ec9060 100755 --- a/Mohem/package.json +++ b/Mohem/package.json @@ -27,17 +27,17 @@ "@ionic-native/background-geolocation": "^5.30.0", "@ionic-native/badge": "^5.18.0", "@ionic-native/barcode-scanner": "^5.18.0", - "@ionic-native/base64": "^5.32.1", + "@ionic-native/base64": "^5.18.0", "@ionic-native/ble": "^5.18.0", "@ionic-native/camera": "^5.18.0", "@ionic-native/core": "^5.8.0", "@ionic-native/date-picker": "^5.10.0", "@ionic-native/device": "^5.18.0", "@ionic-native/diagnostic": "^5.18.0", - "@ionic-native/file": "^5.32.1", - "@ionic-native/file-path": "^5.32.1", + "@ionic-native/file": "^5.18.0", + "@ionic-native/file-path": "^5.18.0", "@ionic-native/fingerprint-aio": "^5.18.0", - "@ionic-native/firebase-x": "^5.32.1", + "@ionic-native/firebase-x": "^5.21.5", "@ionic-native/geolocation": "^5.10.0", "@ionic-native/globalization": "^5.18.0", "@ionic-native/health": "^5.4.0", @@ -46,13 +46,13 @@ "@ionic-native/launch-navigator": "^5.17.0", "@ionic-native/local-notifications": "^5.17.0", "@ionic-native/native-storage": "^5.17.0", - "@ionic-native/nfc": "^5.32.1", + "@ionic-native/nfc": "^5.30.0", "@ionic-native/open-native-settings": "^5.14.0", "@ionic-native/splash-screen": "^5.0.0", "@ionic-native/sqlite": "^5.18.0", "@ionic-native/status-bar": "^5.0.0", "@ionic-native/themeable-browser": "^5.18.0", - "@ionic-native/wifi-wizard-2": "^5.32.1", + "@ionic-native/wifi-wizard-2": "^5.31.1", "@ionic-native/zbar": "^5.10.0", "@ionic/angular": "^4.1.0", "@ng-bootstrap/ng-bootstrap": "^4.2.2", @@ -79,7 +79,7 @@ "cordova-plugin-device": "^2.0.3", "cordova-plugin-dialogs": "^2.0.2", "cordova-plugin-file": "^6.0.2", - "cordova-plugin-filepath": "^1.6.0", + "cordova-plugin-filepath": "^1.5.6", "cordova-plugin-fingerprint-aio": "^3.0.0", "cordova-plugin-firebasex": "^7.0.2", "cordova-plugin-geolocation": "^4.0.2", @@ -93,6 +93,7 @@ "cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-themeablebrowser": "^0.2.18", "cordova-plugin-whitelist": "^1.3.4", + "cordova-plugin-wifiwizard2": "^3.1.1", "cordova-sqlite-storage": "^3.4.0", "cordova-support-google-services": "^1.3.2", "cordova.plugins.diagnostic": "^5.0.1", @@ -104,7 +105,7 @@ "ng-circle-progress": "^1.6.0", "ng2-file-upload": "^1.3.0", "ng2-pdf-viewer": "^5.3.2", - "ngx-gauge": "^1.1.0", + "ngx-gauge": "^1.0.0-beta.10", "npm": "^6.14.11", "phonegap-nfc": "^1.2.0", "phonegap-plugin-barcodescanner": "^8.1.0", @@ -221,4 +222,4 @@ "ios" ] } -} +} \ No newline at end of file diff --git a/Mohem/src/app/absence/submit-absence/submit-absence.component.html b/Mohem/src/app/absence/submit-absence/submit-absence.component.html index 7fac58dd..ec40c78c 100644 --- a/Mohem/src/app/absence/submit-absence/submit-absence.component.html +++ b/Mohem/src/app/absence/submit-absence/submit-absence.component.html @@ -3,15 +3,21 @@ [headerText]="'submitAbsence, submitAbsence' | translate"> - - + +
+ + +
+ - {{item.ABSENCE_ATTENDANCE_TYPE_NAME}} + {{ts.trPK('submitAbsence','startDate')}} @@ -52,7 +58,7 @@
-
+
{{ts.trPK('general','next')}} diff --git a/Mohem/src/app/absence/submit-absence/submit-absence.component.scss b/Mohem/src/app/absence/submit-absence/submit-absence.component.scss index deb4981b..d89d2ed7 100644 --- a/Mohem/src/app/absence/submit-absence/submit-absence.component.scss +++ b/Mohem/src/app/absence/submit-absence/submit-absence.component.scss @@ -21,3 +21,94 @@ } + .label-Select{ + color: var(--dark); + font-size: 15px; + border: none; + font-weight: 400; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + width: 80%; + padding: 1px 0px; + background-color: var(--light); + border-bottom: var(--cusgray) solid 1px; + border-radius: 0px; + // margin-left: 20px; + margin-left: 34px; + margin-top: -10px; + // -webkit-appearance: none; + // -moz-appearance: none; + text-indent: 1px; + // text-overflow: ''; + box-shadow: none; + -webkit-box-shadow:none; + -moz-box-shadow: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + + :root[dir="ltr"]{ + background-image: linear-gradient(45deg, transparent 50%, #999 50%), linear-gradient(135deg, #999 50%, transparent 50%), linear-gradient(to right, #ffffff, #ffffff); + background-position: calc(100% - 14px) calc(1em + 2px), calc(100% - 8px) calc(1em + 2px), 100% 0; + background-size: 6px 6px, 6px 6px, 2.9em 2.9em; + background-repeat: no-repeat; + padding-right: 20px; + } + :root[dir="rtl"]{ + background-image: linear-gradient(-135deg, #999 50%, transparent 50%),linear-gradient(-45deg, transparent 50%, #999 50%), linear-gradient(to right, #ffffff, #ffffff); + background-position: calc(1em - 10px) calc(100% - 8px), calc(1em - 4px) calc(100% - 8px), 0 100%; + background-size: 6px 6px, 6px 6px, 2.9em 2.9em; + background-repeat: no-repeat; + padding-left: 20px; + } +} + +.label{ + font-size: 16px; + // margin-left: 15px; + color: #a2a5a6 !important; + display: block; + overflow: hidden; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + /* font-size: inherit; */ + // text-overflow: ellipsis; + // white-space: nowrap; + white-space: normal; + // padding-top: 10px; + padding: 5px 0px; + padding-left: 10px !important; + margin: 10px auto; + :root[dir="ltr"]{ + font-family: var(--fontFamilySemiBoldEN) !important; + } + :root[dir="rtl"]{ + font-family: var(--fontFamilyIOSAR) !important; + font-weight: bold; + } + + +} + +.Field-en{ + border-radius: 30px; + border: 1px solid #a2a5a6!important; + margin-bottom: 20px; + padding-left: 20px !important; + padding-top: 6px !important; + color: #999999 !important; +} + +.Field-ar{ + border-radius: 30px; + border: 1px solid #a2a5a6!important; + margin-bottom: 20px; + padding-right: 20px !important; + padding-top: 6px !important; + color: #999999 !important; +} + + + diff --git a/Mohem/src/app/app-routing.module.ts b/Mohem/src/app/app-routing.module.ts index 3c642b27..54eb3061 100644 --- a/Mohem/src/app/app-routing.module.ts +++ b/Mohem/src/app/app-routing.module.ts @@ -1,39 +1,41 @@ -import { NgModule } from '@angular/core'; -import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; - - -const routes: Routes = [ - { path: '', redirectTo: 'authentication/login', pathMatch: 'full' }, - { - path: 'authentication', loadChildren: './authentication/authentication.module#AuthenticationPageModule' - }, - { path: 'home', loadChildren: './home/home.module#HomePageModule' }, - { path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' }, - { path: 'vacation-rule', loadChildren: './vacation-rule/vacation-rule.module#VacationRulePageModule' }, - { path: 'accrual-balances', loadChildren: './accrual-balances/accrual-balances.module#AccrualBalancesPageModule' }, - { path: 'my-team', loadChildren: './my-team/my-team.module#MyTeamPageModule' }, - { path: 'attendance', loadChildren: './attendance/attendance.module#AttendancePageModule' }, - { path: 'eit', loadChildren: './eit/eit.module#EITPageModule' }, - { path: 'absence', loadChildren: './absence/absence.module#AbsencePageModule' }, - { path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' }, - { path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' }, - { path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' }, - { path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' }, - { path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' }, - { path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' }, - { path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' }, - { path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' }, { path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' } +import { NgModule } from '@angular/core'; +import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; - - - -]; - -@NgModule({ - imports: [ - /*RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules}),*/ - RouterModule.forRoot(routes), - ], - exports: [RouterModule] -}) -export class AppRoutingModule { } + +const routes: Routes = [ + { path: '', redirectTo: 'authentication/login', pathMatch: 'full' }, + { + path: 'authentication', loadChildren: './authentication/authentication.module#AuthenticationPageModule' + }, + { path: 'home', loadChildren: './home/home.module#HomePageModule' }, + { path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' }, + { path: 'vacation-rule', loadChildren: './vacation-rule/vacation-rule.module#VacationRulePageModule' }, + { path: 'accrual-balances', loadChildren: './accrual-balances/accrual-balances.module#AccrualBalancesPageModule' }, + { path: 'my-team', loadChildren: './my-team/my-team.module#MyTeamPageModule' }, + { path: 'attendance', loadChildren: './attendance/attendance.module#AttendancePageModule' }, + { path: 'eit', loadChildren: './eit/eit.module#EITPageModule' }, + { path: 'absence', loadChildren: './absence/absence.module#AbsencePageModule' }, + { path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' }, + { path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' }, + { path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' }, + { path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' }, + { path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' }, + { path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' }, + { path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' }, + { path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' }, + { path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' }, + { path: 'backend-integrations', loadChildren: './backend-integrations/backend-integrations.module#BackendIntegrationsPageModule' } + + + + +]; + +@NgModule({ + imports: [ + /*RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules}),*/ + RouterModule.forRoot(routes), + ], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/Mohem/src/app/app.component.html b/Mohem/src/app/app.component.html index a8aaa491..6d3210ed 100644 --- a/Mohem/src/app/app.component.html +++ b/Mohem/src/app/app.component.html @@ -45,6 +45,15 @@ + + + + + + HR REQUEST + + + @@ -147,7 +156,6 @@ {{notBadge}} - +
+
Team Member Image
+
+ +
+ +

{{employee.EMPLOYEE_NAME}}

- {{employee.JOB_NAME}} + {{employee.EMPLOYEE_EMAIL_ADDRESS}} + +
+
+ + +

{{ts.trPK('userProfile','role')}}

+ {{employee.JOB_NAME}} +
+ +

{{ts.trPK('userProfile','empNo')}}

+ {{employee.EMPLOYEE_NUMBER}} +
+
+
-
+ +
+ + + + + + + + + + + + + + + + + + + + + +
+ + +
-
+ + +
-
-

+

+

{{ts.trPK('myTeam','todayAttendance')}}

- {{ts.trPK('myTeam','check-in')}} + {{ts.trPK('myTeam','check-in')}}

{{attendanceTrackingList.P_SWIPE_IN | slice:0:-3}}

--:--

- {{ts.trPK('myTeam','check-out')}} + {{ts.trPK('myTeam','check-out')}}

{{attendanceTrackingList.P_SWIPE_OUT | slice:0:-3}}

--:--

@@ -98,16 +195,54 @@
+ +
+ + + +
+
+ + + {{ts.trPK('attendance','monthly-attendance-calendar')}} + + + + + + +
+
+ + + + + + + +
+
- -
-
- {{ts.trPK('myTeam','attendance-statistics')}} -
-
-
-
- {{ts.trPK('attendance','present')}} - {{attendedDays}} +
+ + +
+ {{ts.trPK('attendance-tracking','schedule')}} +

{{timeCardSummaryData.SCHEDULE_DAYS}}

+
+
+ + +
+ {{ts.trPK('attendance-tracking','off-days')}} +

{{timeCardSummaryData.OFF_DAYS}}

-
- {{ts.trPK('attendance','absent')}} - {{absentDays}} + + + +
+ {{ts.trPK('attendance-tracking','non-analyzed')}} +

{{timeCardSummaryData.NOT_ANALYZED_DAYS}}

+
+ + +
+ {{ts.trPK('attendance-tracking','shortage-hours')}} +

{{timeCardSummaryData.SHORTAGE_HRS}}

+
+
+ +
+
+
+ + + {{ts.trPK('attendance','present')}} + {{attendedDays}} + +
+
+ + + {{ts.trPK('attendance','absent')}} + {{absentDays}} +

{{totalAttendancePrecentage}}

{{ts.trPK('absenceList','days')}}
- +
+ + + + +
+
+
+ + + {{ts.trPK('attendance','monthly-attendance-calendar')}} + + + + + + + +
+ +
+
+ +
+ + + + + + + +
- - -
- {{ts.trPK('attendance-tracking','schedule')}} -

{{timeCardSummaryData.SCHEDULE_DAYS}}

-
-
- - -
- {{ts.trPK('attendance-tracking','off-days')}} -

{{timeCardSummaryData.OFF_DAYS}}

-
-
- - -
- {{ts.trPK('attendance-tracking','non-analyzed')}} -

{{timeCardSummaryData.NOT_ANALYZED_DAYS}}

-
-
- - -
- {{ts.trPK('attendance-tracking','shortage-hours')}} -

{{timeCardSummaryData.SHORTAGE_HRS}}

-
-
-
+ +
+
- +
-
+
+ +

{{ts.trPK('myTeam','my-team-members')}}

+

{{EmpTotal}}

+
+ +
+ -
+ + @@ -241,12 +449,15 @@
- - + + + +

{{ts.trPK('userProfile','profile-details')}}

- +

{{ts.trPK('userProfile','category')}}

{{employee.EMPLOYMENT_CATEGORY_MEANING}}

@@ -270,10 +481,10 @@

{{ts.trPK('userProfile','payrol')}}

{{employee.PAYROLL_NAME}}

- +

{{ts.trPK('userProfile','position')}}

{{employee.POSITION_NAME}}

diff --git a/Mohem/src/app/my-team/details/details.component.scss b/Mohem/src/app/my-team/details/details.component.scss index 136a9943..a4c35a1d 100644 --- a/Mohem/src/app/my-team/details/details.component.scss +++ b/Mohem/src/app/my-team/details/details.component.scss @@ -32,11 +32,19 @@ ion-title{ text-align: center; margin-bottom: 15px; .user-image-container{ - position: relative; - width: 80px; - height: 80px; - display: block; - margin: 0 auto; + position: relative; + width: 100%; + height: 24px; + justify-content: space-between; + display: flex; + margin: 0 auto; + align-items: center; + } + // position: relative; + // width: 80px; + // height: 80px; + // display: block; + // margin: 0 auto; // &:before{ // position: absolute; // content: ""; @@ -53,16 +61,27 @@ ion-title{ // background-color: green !important; // } } + + @media screen and (min-width: 1px) and (max-width:767px){ .user-image{ - overflow: hidden; - position: relative; - display: block; - width: 100%; - height: 100%; - border-radius: 80px; - border: 1px solid #ccc; - margin: 0px auto 6px; - } + position: relative; + display: block; + width: 30%; + height: 100%; + border-radius: 80px; + /* border: 1px solid #ccc; */ + margin-top: -125px; + + }} + @media screen and (min-width: 768px) and (max-width:1024px){ + .user-image{ + position: relative; + display: block; + width: 30%; + height: 100%; + border-radius: 80px; + margin-bottom: 371px; + }} h1{ margin: 0; padding: 0; @@ -71,18 +90,20 @@ ion-title{ margin-bottom: 4px; } span{ - font-size: 14px; + font-size: 11px; display: block; - color: #888 + // color: #888 + } - } + $actionBtnSize : 36px; .user-actions{ text-align: center; .action-button{ font-size: 11px; - white-space: nowrap; - color: #888; + font-weight: bold; + // white-space: nowrap; + // color: #888; .action-button-icon{ width: $actionBtnSize; height: $actionBtnSize; @@ -104,19 +125,24 @@ ion-title{ margin-top: 15px; border-radius: 20px; margin-bottom: 15px; + border-radius: 20px; + border: 1px solid #ccc; ion-col{ padding: 15px; - border-bottom: 1px solid #ccc; + // border-bottom: 1px solid #ccc; } h2{ font-size: 13px; - font-family: WorkSans-Bold; + // font-family: WorkSans-Bold; margin: 0; font-weight: bold; + color: rgb(128, 124, 124); } p{ font-size: 13px; margin: 0; + font-family: WorkSans-Bold; + // margin-bottom: 10px; } } @@ -128,28 +154,80 @@ ion-title{ color: black; } -.active-Segment { - font-size: 0.3cm !important; - background: #269DB8 !important; - text-transform: none; - --color-checked: none; - border-radius: 100px; - border:0; - } - .active-Segment ion-label{ - font-size: 11px; - color: white !important; - } - .normal-Segment ion-label{ - color: black !important; - font-size: 11px; - } - .normal-Segment { - font-size: 0.3cm !important; - text-transform: none; - --color-checked: none; - border: 0; - } +@media screen and (min-width: 1px) and (max-width:767px){ + .active-Segment { + width: 11%; + max-width: 11%; + min-width: 11%; + height: 30% !important; + min-height: 36px; + padding-right: -10px; + border-radius: 50% !important; + margin-right: 22px; + margin-left: 22px; + background-color: #269DB8; + }} + @media screen and (min-width: 768px) and (max-width:1024px){ + .active-Segment{ + width: 11%; + max-width: 11%; + min-width: 11%; + height: 56% !important; + min-height: 68px; + padding-right: -10px; + border-radius: 50% !important; + margin-right: 62px; + margin-left: 45px; + background: #269DB8 !important; + padding-left: 17px;}} + + @media screen and (min-width: 1px) and (max-width:767px){ + .normal-Segment { + width: 11%; + max-width: 11%; + min-width: 11%; + height: 30% !important; + min-height: 36px; + padding-right: -10px; + border-radius: 50% !important; + margin-right: 22px; + margin-left: 22px; + background: #414040 !important; + + }} + @media screen and (min-width: 768px) and (max-width:1024px){ + .normal-Segment{ + width: 11%; + max-width: 11%; + min-width: 11%; + height: 56% !important; + min-height: 68px; + padding-right: -10px; + border-radius: 50% !important; + margin-right: 62px; + margin-left: 45px; + background: #414040 !important; + padding-left: 17px;}} + + @media screen and (min-width: 1px) and (max-width:767px){ + .imgSize{ + position: absolute; + /* right: 15px; */ + top: 0; + bottom: 0; + left: 7px; + margin: auto; + height: 18px; + }} + @media screen and (min-width: 768px) and (max-width:1024px){ + .imgSize{position: absolute; + top: 0; + bottom: 0; + left: 9px; + margin: auto; + height: 28px;}} + + .colum-container{ padding: 15px; border-bottom: 1px solid #ccc; @@ -207,7 +285,8 @@ ion-title{ /////////////////////////////////////////////////////// Attendance /////////////////////// .header{ - margin-top: 20px; + // margin-top: 20px; + margin-top: 1px; } .slidPrev{ @@ -244,14 +323,47 @@ ion-title{ /* margin-left: 136px; */ margin-right: -251px; } + +@media screen and (min-width: 1px) and (max-width:767px){ .result-graph { position: relative; background: white; - margin-top: 20px; + // margin-top: 20px; padding-bottom: 20px; border-radius: 20px; z-index: 1; margin-bottom: 10px; + margin-top: 56px; + border-radius: 20px; + border: 1px solid #ccc; + padding-top: 12px; +}} + +@media screen and (min-width: 768px) and (max-width:1024px){ + .result-graph { + position: relative; + background: white; + // margin-top: 20px; + padding-bottom: 20px; + border-radius: 20px; + z-index: 1; + margin-bottom: 10px; + margin-top: 89px; + border-radius: 20px; + border: 1px solid #ccc; + padding-top: 114px !important; + }} +.result-graph-attendence { + position: relative; + background: white; + // margin-top: 20px; + padding-bottom: 20px; + border-radius: 20px; + z-index: 1; + margin-bottom: 10px; + margin-top: 10px; + border-radius: 20px; + border: 1px solid #ccc; } .request-heading { @@ -273,7 +385,7 @@ ion-title{ padding: 0; margin: 0; position: absolute; - left: 50%; + left: 85%; top: 50%; display: block; text-align: center; @@ -293,8 +405,12 @@ ion-title{ } } .today-graph { - width: 100%; + // width: 100%; max-height: 4cm; + display: block; + height: 132px; + width: 264px; + margin-left: 154px; } .green-label{ @@ -359,7 +475,10 @@ ion-title{ .attendance-information{ background: white; border-radius: 20px; - padding: 10px; + padding: 9px; + font-weight: bolder; + // border-right: 1px solid rgb(221, 221, 221); + @media screen and (min-width: 300px) and (max-width:359px) { h2{ padding: 0; @@ -369,45 +488,100 @@ ion-title{ span{ font-size: 9px; } + } @media screen and (min-width: 360px) { h2{ padding: 0; margin: 0; - font-size: 18px; + font-size: 14px; } span{ font-size: 11px; + margin-bottom: 3px; } + } } .month-year-span{ - font-size: 20px; - font-family: WorkSans-Bold; + font-size: 16px; + // font-family: WorkSans-Bold; + font-weight: bold; } .green-label-container{ - border-top: 5px solid #269DB8; - padding: 1px 0px; - margin: 15px 0px + // border-top: 5px solid #269DB8; + // padding: 1px 0px; + // margin: 15px 0px + width: 12px; + height: 12px; + padding-right: -10px; + border-radius: 100%; + background-color: #269DB8; + } .blue-label-container{ - border-top: 5px solid #292F42; - padding: 1px 0px; - margin: 15px 0px + // border-top: 5px solid #292F42; + // padding: 1px 0px; + // margin: 15px 0px + width: 12px; + height: 12px; + padding-right: -10px; + border-radius: 100%; + background-color: #292F42; + margin-top: 30px; } .span-one{ + // display: block; + // font-size: 12px; + // color: black; display: block; font-size: 12px; color: black; + margin-left: 6px; + margin-top: -2px; + font-weight: bold; + } .span-two{ + // display: block; + // font-size: 22px; display: block; - font-size: 22px; + font-size: 12px; + color: black; + margin-left: 6px; + margin-top: -2px; + font-weight: bold; font-family: WorkSans-Bold; + +} + +.spa-one{ + // display: block; + // font-size: 12px; + // color: black; + display: block; + font-size: 12px; + color: black; + margin-left: 6px; + margin-top: 28px; + font-weight: bold; + +} +.spa-two{ + // display: block; + // font-size: 22px; + display: block; + font-size: 12px; + color: black; + margin-left: 6px; + margin-top: 28px; + font-weight: bold; + font-family: WorkSans-Bold; + } .graph-container{ margin-left: -50px; @@ -416,10 +590,12 @@ ion-title{ } .label-container{ position: absolute; - width: 20%; - right: 30px; + // width: 20%; + // right: 30px; top: 50%; - margin-top: -60px; + margin-top: -27px; + left: 20px; + } .attendance-summary .attendance-information { span{ @@ -428,8 +604,10 @@ ion-title{ line-height: 14px; } h2{ - text-align: right; - font-family: WorkSans-Bold; + // text-align: right; + // font-family: WorkSans-Bold; + font-weight: bolder; + font-size: 13px; } } @@ -437,8 +615,10 @@ ion-title{ .calendar-container{ background: white; margin-bottom: 100px; - margin-top: 20px; + margin-top: 10px; border-radius: 20px; + border: 1px solid #ccc; + padding-bottom: 25px; span{ text-align: left; display: block; @@ -462,4 +642,76 @@ ion-title{ } +.Boldtext{ + font-size: 13px; + font-family: WorkSans-Bold; + color: black !important; + display: block !important; + // line-height: 0px !important; +} + +.attendence{ + position: relative; + background: white; + border-radius: 20px; + border: 1px solid #ccc; +} + +.attendence-text{ + margin-bottom: 1px; + margin-left: 10px; + font-family: WorkSans-Bold; + font-size: 16px; +} +.stats{ + color: #289DB8; font-size: 9px; + margin-right: 5px; + font-family: 'WorkSans-Bold'; +} + +.text{ + font-size: 16px; + font-weight: bolder; + font-family: 'WorkSans-Bold'; + margin-top: 27px; +} + +.number{ + width: 20px; + height: 20px; + padding-right: -10px; + border-radius: 100%; + background-color: #269DB8; + z-index: 9; + margin-top: 26px; +} + +.numberEmp{ + color: white; + font-size: 13px; + font-weight: bolder; + margin-left: 6px; +} + +.slider-container{ + padding-bottom: 20px; +} + +.filters-row { + margin-top: 10px; + margin-left: 20px; + } + + .disable-filter { + pointer-events: none; + opacity: .3; + } + + + + + + + + \ No newline at end of file diff --git a/Mohem/src/app/my-team/details/details.component.ts b/Mohem/src/app/my-team/details/details.component.ts index 42f15451..feb95a7d 100644 --- a/Mohem/src/app/my-team/details/details.component.ts +++ b/Mohem/src/app/my-team/details/details.component.ts @@ -57,7 +57,8 @@ export class DetailsComponent implements OnInit { public yearTitle: string; public activeMonth: any; public currentMonthName = ''; - + + public showAttendence = false; public showData = false; public currentYear = new Date().getFullYear(); public attendanceTrackingList: any = []; @@ -67,6 +68,7 @@ export class DetailsComponent implements OnInit { year: any; preMonth: number; nextMonth: any; + currentMonth: any; public direction: string; public options = { cutoutPercentage: 80, @@ -85,8 +87,128 @@ export class DetailsComponent implements OnInit { // tslint:disable-next-line: max-line-length public monthsNameArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; public monthIndex = new Date().getMonth() + 1; - - + public EmpTotal = []; + public selectedFilter = ''; + public itemType = ''; + public monthNo : any; + + + + public filters = [ + { + // value: '', + name: 'JAN', + active: true, + color: '#0a0a0a', + key: 'January', + monthNo: 1, + disable: false + }, + { + // value: '', + name: 'FEB', + active: false, + color: '#0a0a0a', + key: 'February', + monthNo: 2, + disable: false + }, + { + // value: '', + name: 'MAR', + active: false, + color: '#0a0a0a', + key: 'March', + monthNo: 3, + disable: false + }, + { + // value: '', + name: 'APRIL', + active: false, + color: '#0a0a0a', + key: 'April', + monthNo: 4, + disable: false + }, + { + // value: '', + name: 'MAY', + active: false, + color: '#0a0a0a', + key: 'May', + monthNo: 5, + disable: false + }, + { + // value: '', + name: 'JUN', + active: false, + color: '#0a0a0a', + key: 'June', + monthNo: 6, + disable: false + }, + { + // value: '', + name: 'JUL', + active: false, + color: '#0a0a0a', + key: 'July', + monthNo: 7, + disable: false + }, + { + // value: '', + name: 'AUG', + active: false, + color: '#0a0a0a', + key: 'Augest', + monthNo: 8, + disable: false + }, + { + // value: '', + name: 'SEP', + active: false, + color: '#0a0a0a', + key: 'September', + monthNo: 9, + disable: false + }, + { + // value: '', + name: 'NOV', + active: false, + color: '#0a0a0a', + key: 'November', + monthNo: 10, + disable: false + }, + { + // value: '', + name: 'OCT', + active: false, + color: '#0a0a0a', + key: 'October', + monthNo: 11, + disable: false + }, + { + // value: '', + name: 'DEC', + active: false, + color: '#0a0a0a', + key: 'December', + monthNo: 12, + disable: false + } + ]; + public slideOptsOne = { + slidesPerView: 7, + spaceBetween: 1 + }; + constructor( public timeCardService: TimeCardService, public menuService: MenuService, @@ -106,6 +228,8 @@ export class DetailsComponent implements OnInit { this.showAttendanceTracking(); // tslint:disable-next-line: max-line-length this.currentMonthName = this.direction === 'en' ? this.common.getMonthName(this.monthIndex) : this.common.getMonthNameAr(this.monthIndex); + this.getSuborinatesAttStatus(); + } showAttendanceTracking() { @@ -130,6 +254,7 @@ export class DetailsComponent implements OnInit { } } + initAttendance() { this.data = {}; // tslint:disable-next-line: max-line-length @@ -176,6 +301,17 @@ export class DetailsComponent implements OnInit { }); } + monthCardSliders(monthNo){ + console.log(monthNo+"__________________") + // this.common.startLoading(); + // this.showData = false; + // this.currentMonth = this.nextMonth - 1; + // this.currentDate = new Date(this.currentYear, (this.preMonth + 1), 1); + this.calendarConfig(this.getMonthName(this.monthNo) , this.currentYear); + console.log("next month =" + this.nextMonth ); + console.log(" Month Name =" + this.currentMonthName); + + } nextSlide() { if (this.currentMonthName !== this.month) { @@ -189,6 +325,7 @@ export class DetailsComponent implements OnInit { this.calendarConfig(this.getMonthName(this.nextMonth) , this.currentYear); this.nextMonth = this.nextMonth + 1; this.preMonth = this.nextMonth - 2; + } } @@ -276,15 +413,24 @@ export class DetailsComponent implements OnInit { this.totalAttendancePrecentage = this.absentDays + this.attendedDays; if (this.totalAttendancePrecentage > 0) { this.data = { + // labels: ['Apsent', 'Present'], datasets: [ { + label: "# of Votes", data: [this.absentDays, this.attendedDays], backgroundColor: [ - '#269DB8', + 'black', '#269DB8' ], - borderWidth: 2 - }] + borderWidth: 1, + // cutoutPrecentage:20 , + + }], + labels: [ + 'Apsent', + 'Present' + + ] }; } } @@ -546,4 +692,75 @@ doInfinite(infiniteScroll) { this.showEmailInput = true; } } + + showCalender(){ + if(this.showAttendence){ + this.showAttendence = false + + }else{ + this.showAttendence = true + } + } + + getSuborinatesAttStatus(){ + const request = { + // VersionID:2.8, + // Channel:37, + // LanguageID:2, + // MobileType:"android", + // P_SESSION_ID:1142449920, + // MobileNumber:"0508079569", + // TokenID:"VHR_Token", + // P_USER_NAME:"111209", + // UserName:"111209", + // P_EMAIL_ADDRESS:"Faisal.AlQurashi@cloudsolutions.com.sa", + SearchMonth:"January", + SearchYear:2021 + + }; + // this.myTeamService.getSuborinatesAttStatus().subscribe((result: any) => + this.myTeamService.getSuborinatesAttStatus(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> + { + this.handleRespondSuborinatesAttStatusResult(result); + + }) + } + + handleRespondSuborinatesAttStatusResult(result){ + // this.EmpTotal = result.GetSubordinatesAttdStatusList.length; + this.EmpTotal = result.GetSubordinatesAttdStatusList[0].NUMBER_OF_EMPLOYEES; + console.log("total no "+this.EmpTotal) + } + + activeFilter(index: number) { + console.log(this.filters); + if (this.currentActiveIndex !== index) { + this.previousActiveIndex = this.currentActiveIndex; + this.currentActiveIndex = index; + this.filters[this.previousActiveIndex].active = false; + this.filters[this.currentActiveIndex].active = true; + this.selectedFilter = this.filters[this.currentActiveIndex].key; + } + } + + disableFilters() { + for (const filter of this.filters) { + if (filter.key === this.itemType) { + filter.disable = false; + filter.active = true; + // filter.value = this.nextMonth - 1; + this.selectedFilter = filter.name; + } else if (this.itemType === '') { + filter.disable = false; + filter.active = false; + } else { + filter.disable = true; + filter.active = false; + } + } + if (this.itemType === '') { + this.filters[0].active = true; + } + } + } diff --git a/Mohem/src/app/my-team/home/home.component.html b/Mohem/src/app/my-team/home/home.component.html index 5af1f667..356357b3 100644 --- a/Mohem/src/app/my-team/home/home.component.html +++ b/Mohem/src/app/my-team/home/home.component.html @@ -7,7 +7,54 @@
-
+
+
+ {{ts.trPK('myTeam','search-by')}} +
+
+ + + + + {{ts.trPK('searchForReplacment','name')}} + {{ts.trPK('searchForReplacment','name')}} + + {{ts.trPK('searchForReplacment','userName')}} + {{ts.trPK('searchForReplacment','userName')}} + + {{ts.trPK('searchForReplacment','email')}} + {{ts.trPK('searchForReplacment','email')}} + + + + + + + + + + + +
+ +
+
+ +

{{ts.trPK('myTeam','my-team-members')}}

+

{{EmpTotal}}

+
+ +
+ + + + -
+
@@ -77,5 +127,9 @@ + + + - \ No newline at end of file + + \ No newline at end of file diff --git a/Mohem/src/app/my-team/home/home.component.scss b/Mohem/src/app/my-team/home/home.component.scss index ded6a0aa..13788acf 100644 --- a/Mohem/src/app/my-team/home/home.component.scss +++ b/Mohem/src/app/my-team/home/home.component.scss @@ -30,20 +30,37 @@ ion-content { } .request-heading { span { - text-align: center; + // text-align: center; + // display: block; + // padding-top: 8px; + // font-family: workSans-Regular; display: block; padding-top: 8px; - font-family: workSans-Regular; + padding-left: 15px; + font-weight: bold; + font-size: 12px; + margin-top: 9px; } } +.search-label{ + border: 1px solid #ccc; + margin-left: 15px; + margin-right: 15px; + border-radius: 22px; + margin-top: 24px; + font-size: 11px; + color: rgb(143, 141, 141); +} + .result-graph { position: relative; background: white; margin-top: 20px; - padding-bottom: 20px; + padding-bottom: 35px; border-radius: 20px; z-index: 1; + border: 1px solid #ccc; } .result-text-container { padding: 0; @@ -139,7 +156,7 @@ ion-content { width: 100%; height: 100%; border-radius: 80px; - border: 1px solid #ccc; + border: 1px solid rgb(170, 169, 169); margin: 0px auto 6px; } @@ -162,3 +179,64 @@ ion-content { } } } + +// .myClass .toggle-icon { +// background-color: purple; // this changes the background, ie the grey stripe. +// .toggle-inner { +// background-color: yellow; // this changes the backgroundcolor of the toggle dot. +// } +// } + +.text-label{ + --color: black !important; + font-size: 13px; + margin-left: 15px; + margin-right: 18px; +} + +.radio-list{ + background: white; + margin-left: 18px; + /* margin-right: 10px; */ + margin-top: 12px; +} + +// .selected .radio-icon { +// border-color: #0064D9; +// color: red; +// } + + .radio-icon{ + +.custom-radio .radio-icon { + margin: 0px; + border-radius: 50%; + border-width: var(--border-width); + border-style: var(--border-style); + border-color: #dcdcdc; + margin-top: 6px !important; + border-color: #d8d4d4 !important;} +} +.text{ + font-size: 16px; + font-weight: bolder; + font-family: 'WorkSans-Bold'; + margin-top: 27px; +} + +.number{ + width: 20px; + height: 20px; + padding-right: -10px; + border-radius: 100%; + background-color: #269DB8; + z-index: 9; + margin-top: 26px; +} + +.numberEmp{ + color: white; + font-size: 13px; + font-weight: bolder; + margin-left: 6px; +} \ No newline at end of file diff --git a/Mohem/src/app/my-team/home/home.component.ts b/Mohem/src/app/my-team/home/home.component.ts index edc30021..295da569 100644 --- a/Mohem/src/app/my-team/home/home.component.ts +++ b/Mohem/src/app/my-team/home/home.component.ts @@ -7,6 +7,7 @@ import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-respo import { MyTeamService } from '../service/my-team.service'; import { ModalController, IonInfiniteScroll } from '@ionic/angular'; import { DetailsComponent } from '../details/details.component'; +import { Body } from '@angular/http/src/body'; @Component({ selector: 'app-home', templateUrl: './home.component.html', @@ -28,6 +29,8 @@ export class HomeComponent implements OnInit { public selEmpNo: any; public totalEmployees = 0; public pageFirstVisit = false; + myColor: string = 'secondary'; + public EmpTotal = []; public options = { cutoutPercentage: 80, @@ -95,7 +98,13 @@ export class HomeComponent implements OnInit { ngOnInit() { this.common.sharedService.setSharedData( [], DetailsComponent.opendEmployeesARR); this.setIntitial(); + + this.getSuborinatesAttStatus(); } + toggleColor() { + this.myColor = 'secondary'; + // this.myColor = '#269DB8' +} // activeFilter(index: number) { // this.previousActiveIndex = this.currentActiveIndex; @@ -228,4 +237,36 @@ export class HomeComponent implements OnInit { this.showEmailInput = true; } } + + + + getSuborinatesAttStatus(){ + const request = { + // VersionID:2.8, + // Channel:37, + // LanguageID:2, + // MobileType:"android", + // P_SESSION_ID:1142449920, + // MobileNumber:"0508079569", + // TokenID:"VHR_Token", + // P_USER_NAME:"111209", + // UserName:"111209", + // P_EMAIL_ADDRESS:"Faisal.AlQurashi@cloudsolutions.com.sa", + SearchMonth:"January", + SearchYear:2021 + + }; + // this.myTeamService.getSuborinatesAttStatus().subscribe((result: any) => + this.myTeamService.getSuborinatesAttStatus(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> + { + this.handleRespondSuborinatesAttStatusResult(result); + + }) + } + + handleRespondSuborinatesAttStatusResult(result){ + // this.EmpTotal = result.GetSubordinatesAttdStatusList.length; + this.EmpTotal = result.GetSubordinatesAttdStatusList[0].NUMBER_OF_EMPLOYEES; + console.log("total no "+this.EmpTotal) + } } diff --git a/Mohem/src/app/my-team/hr-request/hr-request.component.html b/Mohem/src/app/my-team/hr-request/hr-request.component.html new file mode 100644 index 00000000..ed115638 --- /dev/null +++ b/Mohem/src/app/my-team/hr-request/hr-request.component.html @@ -0,0 +1,195 @@ + + + + + + + + {{ts.trPK('userProfile','HR-request')}} + + + + + +
+
+ +
+ +
+ + +

{{ts.trPK('userProfile','profile-details')}}

+
+ +

{{ts.trPK('userProfile','category')}}

+

{{EmpCatMeaning}}

+ +
+ +

{{ts.trPK('userProfile','address')}}

+

{{EmpLocation}}

+ +
+ +

{{ts.trPK('userProfile','phone-no')}}

+

{{EmpMobile}}

+ +
+ +

{{ts.trPK('userProfile','busG')}}

+

{{EmpOrgName}}

+ +
+ +

{{ts.trPK('userProfile','job')}}

+

{{EmpJob}}

+ +
+ +

{{ts.trPK('userProfile','payrol')}}

+

{{EmpPayrol}}

+
+ + +

{{ts.trPK('userProfile','position')}}

+

{{EmpPosition}}

+ +
+ +

{{ts.trPK('userProfile','grade')}}

+

{{EmpGRADENAME}}

+ +
+
+
+
+ {{ts.trPK('userProfile','createHR-Request')}} +
+
+ + + + + + + + + +
+
+ {{ts.trPK('userProfile','ServiceType')}} +
+
+ + + + HR Services + HR Services + + Complaints + Complaints + + Inquiry + Inquiry + + + +
+ +
+ {{ts.trPK('userProfile','DeptName')}} +
+
+ +
+
+ {{ts.trPK('userProfile','RelatedSection')}} +
+
+ +
+
+ {{ts.trPK('userProfile','RelatedTopic')}} +
+
+ +
+
+ {{ts.trPK('userProfile','SupportingDocument')}} +
+
+ +
+
+ {{ts.trPK('userProfile','Description')}} +
+
+ +
+ + +
+ Cancel + +
+
+ Submit + +
+
+
+ +
\ No newline at end of file diff --git a/Mohem/src/app/my-team/hr-request/hr-request.component.scss b/Mohem/src/app/my-team/hr-request/hr-request.component.scss new file mode 100644 index 00000000..961623fc --- /dev/null +++ b/Mohem/src/app/my-team/hr-request/hr-request.component.scss @@ -0,0 +1,328 @@ + + +.header-toolbar-new{ + --background: #269DB8; + } + + .contentBg{ + padding: 0px 20px; +} + +.contentBg:before { + position: absolute; + content: ""; + background: #269DB8; + height: 140px; + width: 100%; + left: 0; + top: 0px; + z-index: 1; +} + +@media screen and (min-width: 1px) and (max-width:767px){ + .result-graph { + position: relative; + background: white; + // margin-top: 20px; + padding-bottom: 20px; + border-radius: 20px; + z-index: 1; + margin-bottom: 10px; + margin-top: 56px; + border-radius: 20px; + border: 1px solid #ccc; + padding-top: 12px; + }} + + @media screen and (min-width: 768px) and (max-width:1024px){ + .result-graph { + position: relative; + background: white; + // margin-top: 20px; + padding-bottom: 20px; + border-radius: 20px; + z-index: 1; + margin-bottom: 10px; + margin-top: 89px; + border-radius: 20px; + border: 1px solid #ccc; + padding-top: 114px !important; + }} + + .user-info{ + text-align: center; + margin-bottom: 3px; + .user-image-container{ + position: relative; + width: 100%; + height: 24px; + justify-content: space-between; + display: flex; + margin: 0 auto; + align-items: center; + }} + + .Boldtext{ + font-size: 13px; + font-family: WorkSans-Bold; + color: black !important; + display: block !important; + // line-height: 0px !important; + } + + .Nametext{ + font-size: 15px; + font-family: WorkSans-Bold; + color: black !important; + display: block !important; + // line-height: 0px !important; + } + + .employee-information-indetail{ + background: white; + margin-top: 15px; + border-radius: 20px; + margin-bottom: 15px; + border-radius: 20px; + border: 1px solid #ccc; + ion-col{ + padding: 15px; + // border-bottom: 1px solid #ccc; + } + h2{ + font-size: 13px; + // font-family: WorkSans-Bold; + margin: 0; + font-weight: bold; + color: rgb(128, 124, 124); + } + p{ + font-size: 13px; + margin: 0; + font-family: WorkSans-Bold; + // margin-bottom: 10px; + } + } + + @media screen and (min-width: 1px) and (max-width:767px){ + .user-image{ + position: relative; + display: block; + width: 95%; + height: 100%; + border-radius: 80px; + /* border: 1px solid #ccc; */ + margin-top: -125px; + + }} + @media screen and (min-width: 768px) and (max-width:1024px){ + .user-image{ + position: relative; + display: block; + width: 95%; + height: 100%; + border-radius: 80px; + margin-bottom: 371px; + }} + + .img{ + width: 100px; + height: 100px; + display: inline-flex; + overflow: hidden; + background: transparent; + border-radius: 70% !important; + position: relative; + top: 3px; + } + + .sendCodeBtn{ + --background: #269DB8; + color: white; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 12px; + margin-left: 5px !important; + margin-top: 15px !important; + margin-bottom: 20px !important; + /* border-radius: 4px; */ + height: 26px; + /* padding: 6px 24px; */ + font-size: 15px; + width: 322px; + } + + .verify-code{ + position: relative; + background: white; + border-radius: 20px; + z-index: 1; + border-radius: 20px; + border: 1px solid #ccc; + padding: 21px 3px 34px 14px; + margin: 25px 22px 2px 22px; + + + } + + + +// .sms_code{ +// margin: 0px; +// text-align: center; +// } + +ion-input { + margin: 0 5px; + text-align: center; + line-height: 0; + font-size: 32px; + //border: solid 1px #ccc; + border: 1px solid #ccc !important; + //box-shadow: 0 0 5px #ccc inset; + outline: none; + width: 20%; + transition: all .2s ease-in-out; + border-radius: 3px; + display: inline-block; + &:focus { + border-color:var(--ion-color-secondary) !important; + box-shadow: 0 0 5px var(--ion-color-secondary) !important; + } + + &::selection { + background: transparent; + } + } + + .sendVerifyBtn{ + --background: #269DB8; + color: white; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 12px; + margin-top: 15px !important; + margin-bottom: 20px !important; + /* border-radius: 4px; */ + height: 26px; + font-size: 15px; + width: 322px; + margin-left: 22px; + } + + .custom-radio .radio-icon { + margin: 0px; + border-radius: 50%; + border-width: var(--border-width); + border-style: var(--border-style); + border-color: #dcdcdc; + margin-top: 6px !important; + border-color: #d8d4d4 !important; + margin-bottom: 18px;} + + .text-label{ + color: black !important; + font-size: 10px; + margin-left: 15px; + margin-right: 18px; + font-family: 'WorkSans-Bold'; + } + + .radio-list{ + background: white; + margin-left: 18px; + /* margin-right: 10px; */ + margin-top: 12px; + } + + .result-serviceType{ + position: relative; + background: white; + padding-bottom: 20px; + border-radius: 20px; + z-index: 1; + border-radius: 20px; + border: 1px solid #ccc; + padding-top: 12px; + margin: 25px 22px 2px 22px; + padding-bottom: 241px; + } + + .request-heading { + span { + display: block; + padding-top: 8px; + padding-left: 15px; + /* font-weight: bold; */ + font-size: 14px; + font-family: 'WorkSans-Bold'; + } + } + + .filed{ + border-radius: 30px; + border: 1px solid #d3d5d5 !important; + margin: 10px; + padding-left: 11px !important; + padding-top: 6px !important; + color: #636161; + padding-bottom: 15px; + } + .filedDesc{ + border-radius: 30px; + border: 1px solid #d3d5d5 !important; + margin: 10px; + padding-left: 11px !important; + padding-top: 6px !important; + color: #636161; + padding-bottom: 110px; + } + + .labelDesc{ + display: block; + padding-top: 8px; + padding-left: 15px; + font-size: 14px; + font-weight: bold; + color: #adabab; + } + + .selectLabel{ + display: block; + padding-top: 8px; + padding-left: 15px; + font-size: 14px; + /* font-family: 'WorkSans-Bold'; */ + font-weight: bold; + color: black; + } + + .cancelRequest{ + padding: 10px 0px 10px 10px; + ion-button{ + border-radius: 7px; + padding: 12px 25px 12px 25px; + background: #d00a0a; + --background: transparent; + --box-shadow: none !important; + height: auto; + min-height: inherit; + font-size: 16px; + font-weight: bold; + } + } + .submitRequest{ + padding: 10px 10px 10px 1px; + ion-button{ + border-radius: 7px; + padding: 12px 25px 12px 25px; + background: #19a163; + --background: transparent; + --box-shadow: none !important; + height: auto; + min-height: inherit; + font-size: 16px; + font-weight: bold; + }} \ No newline at end of file diff --git a/Mohem/src/app/my-team/hr-request/hr-request.component.spec.ts b/Mohem/src/app/my-team/hr-request/hr-request.component.spec.ts new file mode 100644 index 00000000..0b5ad557 --- /dev/null +++ b/Mohem/src/app/my-team/hr-request/hr-request.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HRRequestComponent } from './hr-request.component'; + +describe('HRRequestComponent', () => { + let component: HRRequestComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HRRequestComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HRRequestComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/my-team/hr-request/hr-request.component.ts b/Mohem/src/app/my-team/hr-request/hr-request.component.ts new file mode 100644 index 00000000..64913439 --- /dev/null +++ b/Mohem/src/app/my-team/hr-request/hr-request.component.ts @@ -0,0 +1,131 @@ +import { Component, OnInit } from '@angular/core'; +import { Platform, Events, MenuController } from '@ionic/angular'; +import { CommonService } from 'src/app/hmg-common/services/common/common.service'; +import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; +import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service'; +import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user'; +import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service'; +import { MyTeamService } from '../service/my-team.service'; +import { Location } from '@angular/common'; +import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response'; +import { LoginModel } from 'src/app/authentication/models/LoginModel'; +import { SendActivationByType } from 'src/app/authentication/models/sendActivationByType'; + +@Component({ + selector: 'app-hr-request', + templateUrl: './hr-request.component.html', + styleUrls: ['./hr-request.component.scss'], +}) +export class HRRequestComponent implements OnInit { + + public EmpName : string; + public EmpNum : string; + public EmpGroup : string; + public EmpMobile : string; + public EmpJob : string; + public EmpOrgName : string; + public EmpPayrol : string; + public EmpPosition : string; + public EmpEmail: string; + public EmpCatMeaning:string; + public EmpGRADENAME : string; + public EmpLocation : string; + public EmpImg : string; + public userImage: any = '../assets/imgs/profile.png'; + public loginData = new LoginModel(); + public searchKeySelect = 'Complaints'; + myColor: string = 'secondary'; + public showRequestDetails = false; + + + public direction: string; + constructor( + public ts: TranslatorService, + public cs: CommonService, + public authService: AuthenticationService, + public sharedData: SharedDataService, + public events: Events, + public myTeamService: MyTeamService, + private location: Location, + private menu: MenuController, + + ) { + this.direction = TranslatorService.getCurrentDirection(); + } + + ngOnInit() { + this.getUserInformation(); + + } + + goback() { + this.location.back(); + + } + + getUserInformation(){ + const request = { + P_SELECTED_EMPLOYEE_NUMBER:"121816", + P_SELECTED_RESP_ID:-999, + P_PAGE_NUM:1, + P_PAGE_LIMIT:1 + + }; + this.myTeamService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> + { + this.handleUserInfoResult(result); + + }) + } + + handleUserInfoResult(result){ + this.EmpName = result.MemberInformationList[0].EMPLOYEE_NAME; + console.log("____________" + this.EmpName); + this.EmpNum = result.MemberInformationList[0].EMPLOYEE_NUMBER; + this.EmpGroup = result.MemberInformationList[0].BUSINESS_GROUP_NAME; + this.EmpMobile = result.MemberInformationList[0].EMPLOYEE_MOBILE_NUMBER; + this.EmpJob = result.MemberInformationList[0].JOB_NAME; + this.EmpOrgName = result.MemberInformationList[0].ORGANIZATION_NAME; + this.EmpPayrol = result.MemberInformationList[0].PAYROLL_NAME; + this.EmpPosition = result.MemberInformationList[0].POSITION_NAME; + this.EmpEmail = result.MemberInformationList[0].EMPLOYEE_EMAIL_ADDRESS; + this.EmpCatMeaning = result.MemberInformationList[0].EMPLOYMENT_CATEGORY_MEANING; + this.EmpGRADENAME = result.MemberInformationList[0].GRADE_NAME; + this.EmpLocation = result.MemberInformationList[0].LOCATION_NAME; + this.EmpImg = result.MemberInformationList[0].EMPLOYEE_IMAGE + // console.log("total no "+this.EmpTotal) + } + + + + + // public sendActivationCode() { + + // } + + + // VerifyCode(){ + + // } + createRequest(){ + if(this.showRequestDetails){ + this.showRequestDetails = false + + }else{ + this.showRequestDetails = true + }} + + + public cancelRequest() { + this.cs.openMyRequestPage(); + this.menu.toggle(); + } + + submitRequest(){ + + } + + uploadDocument(){ + + } +} diff --git a/Mohem/src/app/my-team/my-request/my-request.component.html b/Mohem/src/app/my-team/my-request/my-request.component.html new file mode 100644 index 00000000..ff0ade4d --- /dev/null +++ b/Mohem/src/app/my-team/my-request/my-request.component.html @@ -0,0 +1,22 @@ + + + + + + + + {{ts.trPK('userProfile','MyHR-request')}} + + + + +
+ {{ts.trPK('general','empty')}} +
+
+ + +
+ {{ts.trPK('userProfile','createHR-Request')}} +
+
diff --git a/Mohem/src/app/my-team/my-request/my-request.component.scss b/Mohem/src/app/my-team/my-request/my-request.component.scss new file mode 100644 index 00000000..d94d7212 --- /dev/null +++ b/Mohem/src/app/my-team/my-request/my-request.component.scss @@ -0,0 +1,33 @@ + + + .sendCodeBtn{ + --background: #269DB8; + color: white; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 12px; + margin-left: 23px !important; + margin-top: 15px !important; + margin-bottom: 20px !important; + /* border-radius: 4px; */ + height: 26px; + /* padding: 6px 24px; */ + font-size: 15px; + width: 322px; + } + + .empty-en{ + color: black; + text-align: center; + font-size: 15px; + font-family: WorkSans-Bold; + margin: 50px 0px 0px 100px; + } + .empty-ar{ + color: black; + text-align: center; + font-size: 15px; + font-family: WorkSans-Bold; + margin: 50px 100px 0px 0px; + } \ No newline at end of file diff --git a/Mohem/src/app/my-team/my-request/my-request.component.spec.ts b/Mohem/src/app/my-team/my-request/my-request.component.spec.ts new file mode 100644 index 00000000..a7e6eb81 --- /dev/null +++ b/Mohem/src/app/my-team/my-request/my-request.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MyRequestComponent } from './my-request.component'; + +describe('MyRequestComponent', () => { + let component: MyRequestComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ MyRequestComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MyRequestComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/my-team/my-request/my-request.component.ts b/Mohem/src/app/my-team/my-request/my-request.component.ts new file mode 100644 index 00000000..9213d2d4 --- /dev/null +++ b/Mohem/src/app/my-team/my-request/my-request.component.ts @@ -0,0 +1,46 @@ +import { Component, OnInit } from '@angular/core'; +import { Platform, Events, MenuController } from '@ionic/angular'; +import { CommonService } from 'src/app/hmg-common/services/common/common.service'; +import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; +import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service'; +import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user'; +import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service'; +import { MyTeamService } from '../service/my-team.service'; +import { Location } from '@angular/common'; + +@Component({ + selector: 'app-my-request', + templateUrl: './my-request.component.html', + styleUrls: ['./my-request.component.scss'], +}) +export class MyRequestComponent implements OnInit { +public direction : String; + + + constructor( + public ts: TranslatorService, + public cs: CommonService, + public authService: AuthenticationService, + public sharedData: SharedDataService, + public events: Events, + public myTeamService: MyTeamService, + private location: Location, + private menu: MenuController, + + ) { + this.direction = TranslatorService.getCurrentLanguageName(); + } + + ngOnInit() {} + + goback() { + this.location.back(); + + } + + public openHRRequestPage() { + this.cs.openHRRequestPage(); + this.menu.toggle(); +} + +} diff --git a/Mohem/src/app/my-team/my-team.module.ts b/Mohem/src/app/my-team/my-team.module.ts index 784d9bbb..54b8a875 100644 --- a/Mohem/src/app/my-team/my-team.module.ts +++ b/Mohem/src/app/my-team/my-team.module.ts @@ -8,6 +8,9 @@ import { IonicModule } from '@ionic/angular'; import { MyTeamPage } from './my-team.page'; import { HmgCommonModule } from '../hmg-common/hmg-common.module'; +import {MyRequestComponent} from './my-request/my-request.component'; +import {HRRequestComponent} from './/hr-request/hr-request.component'; + const routes: Routes = [ { @@ -24,7 +27,16 @@ const routes: Routes = [ { path: 'details-2', component: DetailsComponent + }, + { + path: 'my-request', + component: MyRequestComponent + }, + { + path: 'hr-request', + component: HRRequestComponent } + ] } ]; @@ -37,6 +49,6 @@ const routes: Routes = [ IonicModule, RouterModule.forChild(routes) ], - declarations: [MyTeamPage,HomeComponent,DetailsComponent] + declarations: [MyTeamPage,HomeComponent,DetailsComponent,MyRequestComponent,HRRequestComponent] }) export class MyTeamPageModule {} diff --git a/Mohem/src/app/my-team/service/my-team.service.ts b/Mohem/src/app/my-team/service/my-team.service.ts index ebda3f1d..6adcf6bf 100644 --- a/Mohem/src/app/my-team/service/my-team.service.ts +++ b/Mohem/src/app/my-team/service/my-team.service.ts @@ -7,6 +7,8 @@ import { AuthenticationService } from "src/app/hmg-common/services/authenticatio export class MyTeamService { public static EMPLOYEE_SHARED_DATA = 'employee'; public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES'; + public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS'; + public static getUserInfo ='Services/ERP.svc/REST/Get_UserInformation'; constructor( public con: ConnectorService, private authService: AuthenticationService @@ -16,4 +18,18 @@ export class MyTeamService { this.authService.authenticateRequest(request); return this.con.post(MyTeamService.getMyTeam, request, onError, errorLabel); } + + public getSuborinatesAttStatus(absence: any, onError?: any, errorLabel?: string){ + const request = absence; + this.authService.authenticateRequest(request); + return this.con.post(MyTeamService.getSuborinateStatus, request, onError, errorLabel); + } + + public getUserInfo(absence: any, onError?: any, errorLabel?: string){ + const request = absence; + this.authService.authenticateRequest(request); + return this.con.post(MyTeamService.getUserInfo, request, onError, errorLabel); + } + + } diff --git a/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.html b/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.html index f4fa3715..15900c2a 100644 --- a/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.html +++ b/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.html @@ -30,16 +30,15 @@
- - - {{'vacation-rule, itemType' | translate}} - - - {{x.ITEM_TYPE_DISPLAY_NAME}} - - + +
+ + +
diff --git a/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.scss b/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.scss index 7edf7d17..c4fc2246 100644 --- a/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.scss +++ b/Mohem/src/app/vacation-rule/vacation-type/vacation-type.component.scss @@ -162,3 +162,72 @@ color: black !important; // .cusprogressbar li.active:before { // background-color: #209a83; // } + + +.label-Select{ + color: var(--dark); + font-size: 15px; + border: none; + font-weight: 400; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + width: 80%; + // padding: 1px 0px; + background-color: var(--light); + border-bottom: var(--cusgray) solid 1px; + border-radius: 0px; + // margin-left: 20px; + margin-left: 34px; + margin-top: -10px; + // -webkit-appearance: none; + // -moz-appearance: none; + text-indent: 1px; + // text-overflow: ''; + box-shadow: none; + -webkit-box-shadow:none; + -moz-box-shadow: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + + :root[dir="ltr"]{ + background-image: linear-gradient(45deg, transparent 50%, #999 50%), linear-gradient(135deg, #999 50%, transparent 50%), linear-gradient(to right, #ffffff, #ffffff); + background-position: calc(100% - 14px) calc(1em + 2px), calc(100% - 8px) calc(1em + 2px), 100% 0; + background-size: 6px 6px, 6px 6px, 2.9em 2.9em; + background-repeat: no-repeat; + padding-right: 20px; + } + :root[dir="rtl"]{ + background-image: linear-gradient(-135deg, #999 50%, transparent 50%),linear-gradient(-45deg, transparent 50%, #999 50%), linear-gradient(to right, #ffffff, #ffffff); + background-position: calc(1em - 10px) calc(100% - 8px), calc(1em - 4px) calc(100% - 8px), 0 100%; + background-size: 6px 6px, 6px 6px, 2.9em 2.9em; + background-repeat: no-repeat; + padding-left: 20px; + } +} + +.label{ + font-size: 16px; + // margin-left: 15px; + color: #a2a5a6 !important; + display: block; + overflow: hidden; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + white-space: normal; + // padding-top: 10px; + // padding: 5px 0px; + padding-left: 10px !important; + margin: 10px auto; + :root[dir="ltr"]{ + font-family: var(--fontFamilySemiBoldEN) !important; + } + :root[dir="rtl"]{ + font-family: var(--fontFamilyIOSAR) !important; + font-weight: bold; + } + + +} \ No newline at end of file diff --git a/Mohem/src/assets/imgs/add-photo.svg b/Mohem/src/assets/imgs/add-photo.svg new file mode 100644 index 00000000..1184176a --- /dev/null +++ b/Mohem/src/assets/imgs/add-photo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Mohem/src/assets/imgs/call-o.svg b/Mohem/src/assets/imgs/call-o.svg new file mode 100644 index 00000000..b5a9434a --- /dev/null +++ b/Mohem/src/assets/imgs/call-o.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Mohem/src/assets/imgs/call.svg b/Mohem/src/assets/imgs/call.svg new file mode 100644 index 00000000..e7b1638d --- /dev/null +++ b/Mohem/src/assets/imgs/call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/Mohem/src/assets/imgs/create req.svg b/Mohem/src/assets/imgs/create req.svg new file mode 100644 index 00000000..8cbae617 --- /dev/null +++ b/Mohem/src/assets/imgs/create req.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Mohem/src/assets/imgs/create-req.svg b/Mohem/src/assets/imgs/create-req.svg new file mode 100644 index 00000000..8cbae617 --- /dev/null +++ b/Mohem/src/assets/imgs/create-req.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Mohem/src/assets/imgs/profile.svg b/Mohem/src/assets/imgs/profile.svg new file mode 100644 index 00000000..735b72f7 --- /dev/null +++ b/Mohem/src/assets/imgs/profile.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Mohem/src/assets/imgs/team-members.svg b/Mohem/src/assets/imgs/team-members.svg new file mode 100644 index 00000000..fbfbaa33 --- /dev/null +++ b/Mohem/src/assets/imgs/team-members.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Mohem/src/assets/imgs/view days.svg b/Mohem/src/assets/imgs/view days.svg new file mode 100644 index 00000000..cdeb2c3f --- /dev/null +++ b/Mohem/src/assets/imgs/view days.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Mohem/src/assets/imgs/view stats.svg b/Mohem/src/assets/imgs/view stats.svg new file mode 100644 index 00000000..ab5ab989 --- /dev/null +++ b/Mohem/src/assets/imgs/view stats.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Mohem/src/assets/imgs/view-attendance.svg b/Mohem/src/assets/imgs/view-attendance.svg new file mode 100644 index 00000000..f0d0087f --- /dev/null +++ b/Mohem/src/assets/imgs/view-attendance.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Mohem/src/assets/imgs/view-days.svg b/Mohem/src/assets/imgs/view-days.svg new file mode 100644 index 00000000..cdeb2c3f --- /dev/null +++ b/Mohem/src/assets/imgs/view-days.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Mohem/src/assets/imgs/view-stats.svg b/Mohem/src/assets/imgs/view-stats.svg new file mode 100644 index 00000000..ab5ab989 --- /dev/null +++ b/Mohem/src/assets/imgs/view-stats.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Mohem/src/assets/localization/i18n.json b/Mohem/src/assets/localization/i18n.json index 35648cb8..66beb226 100644 --- a/Mohem/src/assets/localization/i18n.json +++ b/Mohem/src/assets/localization/i18n.json @@ -1075,6 +1075,10 @@ "en": "My Profile", "ar": "معلوماتي" }, + "profile-details": { + "en": "Profile Details", + "ar": "تفاصيل الملف الشخصي" + }, "edit-profile": { "en": "Edit Profile", "ar": "تعديل المعلومات" @@ -1123,6 +1127,10 @@ "en": "Employee Detail", "ar": "بيانات الموظف" }, + "role": { + "en": "Role", + "ar": "Role" + }, "address": { "en": "Address", "ar": "العنوان" @@ -1225,7 +1233,7 @@ }, "monthly-attendance-calendar": { "ar": "سجل الحضور الشهري", - "en": "Monthly Attendance Calendar" + "en": "Monthly Attendance" }, "completed": { "ar": "منجز", @@ -1575,6 +1583,10 @@ "en": "Late", "ar": "التأخير" }, + "search-by": { + "en": "Search By", + "ar": "البحث بواسطة" + }, "attendance-statistics": { "en": "Attendance Statistics", "ar": "احصائيات الحضور" @@ -1588,7 +1600,19 @@ "ar": "عدد" }, "team-members": { - "en": "TEAM MEMBERS", + "en": "Team Members", + "ar": " اعضاء الفريق" + }, + "view-attendence": { + "en": "View Attendance", + "ar": " عرض الحضور" + }, + "profile-details": { + "en": "Profile Detailes", + "ar": " الملف الشخصي" + }, + "my-team-members": { + "en": "My Team Members", "ar": " اعضاء الفريق" }, "team-stats": { @@ -2808,7 +2832,7 @@ "ar": "ساعات التقصير" }, "schedule": { - "en": "Schedule", + "en": "Scheduled Days", "ar": "ايام العمل" }, "off-days": { @@ -2819,6 +2843,14 @@ "en": "Non Analyzed", "ar": "لايوجد تحليل" }, + "view-days": { + "en": "View Days", + "ar": "عرض الأيام" + }, + "view-stats": { + "en": "View Stats", + "ar": "عرض الأحصائيات" + }, "attendance-statistics": { "en": "Attendance Statistics", "ar": "احصائيات الحضور" diff --git a/Mohem/tsconfig.json b/Mohem/tsconfig.json index 78575c42..04015caa 100644 --- a/Mohem/tsconfig.json +++ b/Mohem/tsconfig.json @@ -6,7 +6,7 @@ "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, - "module": "commonjs", + "module": "es2015", "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, @@ -24,4 +24,5 @@ "fullTemplateTypeCheck": true, "strictInjectionParameters": true } -} \ No newline at end of file +} +