merged master-newdesign with home branch and resolved all conflicts

MOE_DEV_NEW_TEMPORARY_DESIGN
umasoodch 6 years ago
commit 1c62b10486

@ -1103,6 +1103,13 @@
"integrity": "sha512-UKNfGmwxy6++21KkZwZxXf0/t1zIKkybwCk6NVRwyuEnPTtNgnynA2G10pYOfTkOFu5UnK8WpqFagRJbHHBHdg==",
"requires": {
"@types/cordova": "^0.0.34"
},
"dependencies": {
"@types/cordova": {
"version": "0.0.34",
"resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz",
"integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ="
}
}
},
"@ionic-native/geolocation": {

@ -203,4 +203,4 @@
"android"
]
}
}
}

@ -1,25 +1,109 @@
<!-- <ion-nav [root]="rootPage" #mycontent swipeBackEnabled="false"></ion-nav> -->
<!-- (ionWillOpen)="menuOpened(true)" -->
<ion-app [dir]="direction">
<ion-split-pane>
<ion-menu [side]=" direction === 'rtl' ? 'end' : 'start'" [swipeGesture]="false">
<ion-content class="sidebar-menu">
<div class="header-div">
<div class="centerDiv">
<p class="TxtPlace">{{ts.trPK('home','hello')}}, {{User_name_Emp}}</p>
<!-- <div> <img src="{{user_image}}" class="profileImg"></div> -->
<div><img class="menuImg" [src]="user_image"></div>
<div>
<ion-button class="closeIcon" (click)="closeMenu()">
<img style= "height: 18px !important;" src="../assets/imgs/close_menu_icon.png "></ion-button>
</div>
<div style="border-bottom: rgb(190, 186, 186) solid 1px;" >
<img class="mohemmLogo" src="../assets/imgs/menu_mohemm_logo.png" ></div>
<hr>
</div>
<div class="centerDiv homeBox" (click)="openPersonalInfo()">
<div class="profileDiv">
<!-- <ion-img class="profileImg" src="{{user_image}}"></ion-img> -->
<img class="profileImg" [src]="user_image">
<p class="TxtPlace">{{User_name_Emp}}</p>
<p class="TxtPlaces"> {{User_Job_name}}</p>
</div>
</div>
<ion-list>
<ion-item (click)="openNotification()">
<div class="changeImgBtn">
<button ion-button icon-only menuToggle class="menubutton" (click)="changeImage()">
<ion-icon (click)="changeImage();" class="changeIcon" name="md-create"></ion-icon></button>
</div>
<!-- <div class="changeImgBtn">
<ion-button class="editIcon" (click)="changeImage()">
<img style= "height: 13px !important;" src="../assets/imgs/edit_icon.png ">
</ion-button>
<img class="menuImg" [src]="user_image"></div> -->
<!-- <div class="centerDiv">
<p class="TxtPlace">{{ts.trPK('home')}}, {{User_name_Emp}}</p>
//<div> <img src="{{user_image}}" class="profileImg"></div>
//<div><img class="menuImg" [src]="user_image"></div>
<p class="TxtPlaces">{{ts.trPK('home')}}, {{User_Job_name}}</p>
</div> -->
<div style="border-bottom: rgb(190, 187, 187) solid 1px;" >
<button class="logout" ion-button (click)="logout();" > {{ts.trPK('home','logout')}}</button>
</div>
<!-- <div>
<ion-item (click)="logout();">
<ion-thumbnail slot="start" class="menu-thumb">
<img width="30" src="../assets/imgs/bell.png" item-left>
<img width="30" src="../assets/imgs/signout.png" item-left>
</ion-thumbnail>
<ion-label>
{{ts.trPK('home','worklist')}}
{{ts.trPK('home','logout')}}
</ion-label>
</ion-item>
</div> -->
<br>
<ion-list>
<ion-item (click)="profile()">
<ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 24px !important;" src="../assets/imgs/profile_icon.png" item-left>
</ion-thumbnail>
<ion-label class="profile">
{{ts.trPK('userProfile','title')}}
</ion-label>
</ion-item>
<ion-item (click)="openChangePassword()">
<ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 25px !important;" src="../assets/imgs/lock_icon.png" item-left>
</ion-thumbnail>
<ion-label class="changepassword" >
{{ts.trPK('login','changepassword')}}
<ion-badge [ngClass]=" direction === 'rtl' ? 'end-badge' : 'start-badge'" slot="end" color="danger" class="main-badge">{{notBadge}}</ion-badge>
</ion-label>
@ -29,15 +113,15 @@
</button> -->
</ion-item>
<ion-item (click)="profile()">
<!-- <ion-item (click)="profile()">
<ion-thumbnail slot="start" class="menu-thumb">
<img width="30" src="../assets/imgs/username.png" item-left>
<img width="30" src="../assets/imgs/profile_icon.png" item-left>
</ion-thumbnail>
<ion-label>
{{ts.trPK('userProfile','title')}}
</ion-label>
</ion-item>
<ion-item (click)="logout();">
</ion-item> -->
<!-- <ion-item (click)="logout();">
<ion-thumbnail slot="start" class="menu-thumb">
@ -47,7 +131,7 @@
{{ts.trPK('home','logout')}}
</ion-label>
</ion-item>
</ion-item> -->
</ion-list>
<div class="" style="text-align:center">
@ -55,7 +139,7 @@
<p class="companyTxt">{{CompanyImageDescription}}</p>
</div>
<div class="menuFooter">
<div> <img src="../assets/imgs/CS.png" class="CompanyImg"></div>
<!-- <div> <img src="../assets/imgs/CS.png" class="CompanyImg"></div> -->
<p class="companyTxt">{{companyDesc}}</p>
</div>
</ion-content>

@ -8,9 +8,112 @@ header
.content-ios:not([no-bounce])>.scroll-content::before {
bottom: 0;
}
.mohemmLogo{
max-width: 46% !important;
border: 0 !important;
margin-left: 70px !important;
margin-top: -24px !important;
margin-bottom: 11px;
}
.closeIcon{
height: 10px !important;
margin-left: 255px !important;
margin-top: 0px !important;
background: transparent;
--background: white !important;
}
// .editIcon{
// margin-left: 174px !important;
// margin-bottom: -104px !important;
// padding: 6px -3px !important;
// // margin-top: 50px !important;
// background: transparent;
// --background: rgb(235, 232, 232) !important;
// --border-radius: 80% !important;
// // border-color: rgb(211, 208, 208) !important;
// --box-shadow: 3px 0 rgb(194, 191, 191) !important;
// z-index: 3 !important;
// }
.menubutton{
white-space: normal;
color: var(--light);
text-transform: capitalize;
min-height: 39px;
background: #f0ecec;
font-size: 2rem;
position: absolute;
width: 35px !important;
height: 19px;
box-shadow: 3px 0px 7px 0px #c5c2c2;
border-radius: 50%;
// box-shadow: 0px 2px 7px 0px #dfe1e3 #7f8c8d;
// white-space: normal;
// color: var(--light);
// text-transform: capitalize;
// min-height: 47px;
// background: transparent;
// font-size: 2rem;
// position: absolute;
// top: 40px;
}
.changeIcon{
/* background: #c1c1c1; */
width: 21px;
/* height: 26px; */
border-radius: 50% !important;
position: relative;
color: #7f8c8d;
// background: #c1c1c1;
// width: 40px;
// height: 39px;
// border-radius: 50% !important;
// position: relative;
// left: 51px;
// top:16px;
}
.changeImgBtn{
// margin: 0;
position: absolute;
top: 18%;
left: 68%;
// -ms-transform: translate(-50%, -50%);
// transform: translate(-50%, -50%);
}
.logout{
background-color:#22C6B3;
border: none;
color:white;
// padding: 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin-left: 120px !important;
margin-top: 15px !important;
margin-bottom: 20px !important;
border-radius: 30px;
// width: 40px;
height: 26px;
padding: 6px 24px;
}
.menuImg{
width: 80px;
height: 80px;
width: 105px !important;
height: 105px !important;
margin-left: 90px !important;
display: inline-flex;
overflow: hidden;
background: transparent;
@ -122,17 +225,19 @@ header
margin-left: 0.2cm;
}
.sidebar-menu .header-div {
background: var(--primary);
background: -moz-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%, var(--secondary) 59%, var(--customnavy) 100%);
background: -webkit-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%, var(--secondary) 59%, var(--customnavy) 100%);
background: linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%, var(--secondary) 59%, var(--customnavy) 100%);
color: var(--light);
// background: var(--primary);
// background: -moz-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%, var(--secondary) 59%, var(--customnavy) 100%);
// background: -webkit-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%, var(--secondary) 59%, var(--customnavy) 100%);
// background: linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%, var(--secondary) 59%, var(--customnavy) 100%);
// color: var(--light);
text-transform: capitalize;
height: 120px;
height: 100px;
position: relative;
display: block;
margin-bottom: 40px;
margin-bottom: -28px;
}
.list-md .item-block .item-inner,
@ -154,8 +259,20 @@ button.menu-item.item.item-block.item-ios {
.TxtPlace {
margin: 0;
padding: 40px 0 10px 0;
padding: 0;
text-align: center;
font-weight: bolder;
color: black;
font-size: 16px;
}
.TxtPlaces{
margin: 0;
padding: 0;
text-align: center;
font-weight: bolder;
font-size: 14px;
color: darkgray;
}
.menuFooter {
@ -189,6 +306,17 @@ button.menu-item.item.item-block.item-ios {
text-align: center;
}
ion-thumbnail.menu-thumb{
width:30px;
height:30px;
width:20px;
height:20px;
// margin-top: 5px !important;
}
.changepassword{
color: black !important;
font-weight: bolder !important;
}
.profile{
color: black !important;
font-weight: bolder !important;
}

@ -28,6 +28,7 @@ export class AppComponent implements OnInit, AfterViewInit {
companyUrl: string = "../assets/imgs/CS.png";
companyDesc: string = "Powered By Cloud Solutions";
public direction = "ltr";
User_Job_name: string;
constructor(
public ts: TranslatorService,
private cs: CommonService,
@ -89,6 +90,8 @@ export class AppComponent implements OnInit, AfterViewInit {
this.user_image = user.EMPLOYEE_IMAGE
? "data:image/png;base64," + user.EMPLOYEE_IMAGE
: "../assets/imgs/profile.png";
this.User_Job_name=user.JOB_NAME;
console.log(user);
} else {
console.log(user);
@ -133,4 +136,18 @@ export class AppComponent implements OnInit, AfterViewInit {
this.menu.toggle();
}
openChangePassword(){
this.cs.openChangePassword();
this.menu.toggle();
}
private changeImage() {
this.cs.openChangeImagePage();
this.menu.toggle();
}
closeMenu(){
this.menu.toggle();
}
}

@ -94,6 +94,7 @@ import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.co
import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component'
import { StatsButtonComponent } from './ui/stats-button/stats-button.component';
import { ServicesButtonComponent } from './ui/services-button/services-button.component';
import {DashboredService} from './services/dashbored/dashbored.service'
@NgModule({
imports: [
CommonModule,
@ -218,6 +219,7 @@ import { ServicesButtonComponent } from './ui/services-button/services-button.co
ServicesButtonComponent
],
providers: [
DashboredService,
ConnectorService,
TranslatorService,
Globalization,

@ -0,0 +1,9 @@
export class AttendanceTrackingList{
public SCHEDULED_HOURS :string;
public SPENT_HOURS : string;
public REMAINING_HOURS : string;
public RETURN_STATUS : string;
public RETURN_MSG : string;
}

@ -0,0 +1,9 @@
export class OpenMissingSwipesList{
public OPEN_MISSING_SWIPES :number;
public RETURN_STATUS : string;
public RETURN_MSG : string;
}

@ -0,0 +1,4 @@
export class OrganizationsSalariesList{
public ORGANIZATION_NAME :string;
public ORGANIZATIONS_SALARIES : number;
}

@ -0,0 +1,6 @@
export class PerformanceAppraisalList{
public APPRAISAL_SCORE :string;
public APPRAISAL_YEAR : number;
}

@ -0,0 +1,8 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { AttendanceTrackingList } from './AttensanceTrackingList';
export class AttendanceTrackingResponse extends Response{
public GetGetAttendanceTrackingList : AttendanceTrackingList[];
}

@ -0,0 +1,12 @@
import { TestBed } from '@angular/core/testing';
import { DashboredService } from './dashbored.service';
describe('DashboredService', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const service: DashboredService = TestBed.get(DashboredService);
expect(service).toBeTruthy();
});
});

@ -0,0 +1,99 @@
import { Injectable } from '@angular/core';
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
import { ConnectorService } from "src/app/hmg-common/services/connector/connector.service";
import { Observable } from 'rxjs';
import { Request } from "src/app/hmg-common/services/models/request";
import { OrganizationSalariesResponse } from './organization-salaries.response';
import { OpenMissingSwipesResponse } from './open-missing-swipes.response';
import { PerformanceAppraisalResponse } from './performance-appraisal.response';
import {AttendanceTrackingResponse} from './attendance-tracking.response'
import {OpenPeriodDatesResponse} from '../../services/dashbored/models/openPeriodDatesResponse'
import {GetSubordinatesLeavesRequest} from './models/GetSubordinatesLeavesRequest';
import {GetSubordinatesLeavesResponse} from './models/GetSubordinatesLeavesResponse';
import {GetSubordinatesAttdStatusRequest} from './models/GetSubordinatesAttdStatusRequest';
import {GetSubordinatesAttdStatusResponse} from './models/GetSubordinatesAttdStatusResponse';
import {GetOpenNotificationsResponse} from './models/GetOpenNotificationsResponse'
@Injectable({
providedIn: 'root'
})
export class DashboredService {
public static organizationSalariesUrl="Services/ERP.svc/REST/GET_ORGANIZATIONS_SALARIES"
public static openmissingswipesUrl="Services/ERP.svc/REST/GET_OPEN_MISSING_SWIPES"
public static performanceappraisalUrl="Services/ERP.svc/REST/GET_Performance_Appraisal"
public static attendancetrackingUrl="Services/ERP.svc/REST/GET_Attendance_Tracking"
public static getOpenPeriodDates = 'Services/ERP.svc/REST/GET_OPEN_PERIOD_DATES';
public static getOpenNotifications = 'Services/ERP.svc/REST/GET_OPEN_NOTIFICATIONS';
public static getSubordinatesLeaves = 'Services/ERP.svc/REST/GET_SUBORDINATES_LEAVES';
public static getSubordinatesAttStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS';
constructor(
public con: ConnectorService,
public authService: AuthenticationService,
) { }
public getOrganizationSalaries(onError ?:any ,oerrorLable ?:any):Observable<OrganizationSalariesResponse>{
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(
DashboredService.organizationSalariesUrl,
request,
onError,
oerrorLable
);}
public getOpenMissingSwipes(onError ?:any ,oerrorLable ?:any):Observable<OpenMissingSwipesResponse>{
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(
DashboredService.openmissingswipesUrl,
request,
onError,
oerrorLable
);
}
public getPerformanceAppraisal(onError ?:any ,oerrorLable ?:any):Observable<PerformanceAppraisalResponse>{
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(
DashboredService.performanceappraisalUrl,
request,
onError,
oerrorLable
);
}
public getAttendanceTracking(onError ?:any ,oerrorLable ?:any):Observable<AttendanceTrackingResponse>{
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(
DashboredService.attendancetrackingUrl,
request,
onError,
oerrorLable
);
}
public getOpenPeriodDates( onError?: any, errorLabel?: string): Observable<OpenPeriodDatesResponse> {
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(DashboredService.getOpenPeriodDates, request, onError, errorLabel);
}
public getOpenNotifications( onError?: any, errorLabel?: string): Observable<GetOpenNotificationsResponse> {
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(DashboredService.getOpenNotifications, request, onError, errorLabel);
}
public getSubordinatesLeaves( req:GetSubordinatesLeavesRequest,onError?: any, errorLabel?: string): Observable<GetSubordinatesLeavesResponse> {
this.authService.authenticateRequest(req);
return this.con.post(DashboredService.getSubordinatesLeaves, req, onError, errorLabel);
}
public getSubordinatesAttStatus( req:GetSubordinatesAttdStatusRequest, onError?: any, errorLabel?: string): Observable<GetSubordinatesAttdStatusResponse> {
this.authService.authenticateRequest(req);
return this.con.post(DashboredService.getSubordinatesAttStatus, req, onError, errorLabel);
}
}

@ -0,0 +1,11 @@
export class GetOpenNotificationsList
{
public ITEM_TYPE: number;
public ITEM_TYPE_DISPLAY_NAME:number;
public OPEN_NTF_NUMBER:number;
}

@ -0,0 +1,7 @@
import { GetOpenNotificationsList } from './GetOpenNotificationsList';
import { Response } from '../../../services/models/response'
export class GetOpenNotificationsResponse extends Response {
public GetOpenNotificationsList: GetOpenNotificationsList [];
}

@ -0,0 +1,16 @@
export class GetSubordinatesAttdStatusList
{
public NUMBER_OF_EMPLOYEES: number;
public LATE_IN:number;
public EARLY_OUT:number;
public ON_TIME:number;
public ABSENCE:number;
}

@ -0,0 +1,7 @@
import { Request } from '../../../services/models/request'
export class GetSubordinatesAttdStatusRequest extends Request{
//public static SHARED_DATA = '';
public P_SCHEDULE_DATE_FROM :any;
public P_SCHEDULE_DATE_TO :any;
}

@ -0,0 +1,7 @@
import { GetSubordinatesAttdStatusList } from './GetSubordinatesAttdStatusList';
import { Response } from '../../../services/models/response'
export class GetSubordinatesAttdStatusResponse extends Response {
public GetSubordinatesAttdStatusList: GetSubordinatesAttdStatusList [];
}

@ -0,0 +1,35 @@
export class GetSubordinatesLeavesList
{
public LVL: number;
public EMPLOYEE_NUMBER:String;
public EMPLOYEE_NAME:String;
public ORGANIZATION_ID:number;
public ORGANIZATION_NAME:String
public SUPERVISOR_NUMBER:String;
public SUPERVISOR_NAME:String;
public SUPERVISOR_ORGANIZATION_ID:number;
public SUPERVISOR_ORGANIZATION_NAME:String;
public EVENT_DATE:any;//DATE;
public LEAVE_TYPE:String;
public DATE_START:any;//DATE;
public DATE_END:any;//DATE;
public ABSENCE_ATTENDANCE_TYPE_NAME:String;
public CALENDAR_ENTRY_DESC:String;
public STATUS:String;
}

@ -0,0 +1,8 @@
import { Request } from '../../../services/models/request'
export class GetSubordinatesLeavesRequest extends Request{
//public static SHARED_DATA = '';
public P_DATE_FROM :any;
public P_DATE_TO :any;
}

@ -0,0 +1,7 @@
import { GetSubordinatesLeavesList } from './GetSubordinatesLeavesList';
import { Response } from '../../../services/models/response'
export class GetSubordinatesLeavesResponse extends Response {
public GetSubordinatesLeavesList: GetSubordinatesLeavesList [];
}

@ -0,0 +1,7 @@
export class OpenPeriodDatesList {
public P_CLOSING_PERIOD_DATE: any;
public P_PERIOD_END_DATE: any;
public P_PERIOD_START_DATE: any;
public P_RETURN_MSG: string;
public P_RETURN_STATUS: string;
}

@ -0,0 +1,7 @@
import { OpenPeriodDatesList } from './openPeriodDatesList';
import { Response } from '../../../services/models/response'
export class OpenPeriodDatesResponse extends Response {
public openPeriodDatesList: OpenPeriodDatesList [];
}

@ -0,0 +1,8 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { OpenMissingSwipesList } from './OpenMissingSwipesList';
export class OpenMissingSwipesResponse extends Response{
public GetGetOpenMissingSwipesList : OpenMissingSwipesList[];
}

@ -0,0 +1,6 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { OrganizationsSalariesList } from './OrganizationsSalariesList';
export class OrganizationSalariesResponse extends Response{
public GetGetOrganizationsSalariesList : OrganizationsSalariesList[];
}

@ -0,0 +1,9 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { PerformanceAppraisalList } from './PerformanceAppraisalList';
export class PerformanceAppraisalResponse extends Response{
public GetGetPerformanceAppraisalList :PerformanceAppraisalList[];
}

@ -1,10 +1,28 @@
<div class="centerDiv changeImgBtn">
<!-- <div class="centerDiv changeImgBtn">
<ion-button class="btnImge" color="customnavy" ion-button (click)="openFile()" expand="block" fill="outline">
<!-- <ion-icon class="changeIcon" name="camera" ></ion-icon> -->
<ion-icon class="changeIcon" name="camera" ></ion-icon>
{{'userProfile,changeImg' | translate}}
</ion-button>
</div>
</div> -->
<div class="centerDiv changeImgBtn">
<button ion-button class="btnImge" (click)="openFile()">
<img style= "height: 28px !important;" src="../assets/imgs/camera_icon.png ">
</button>
</div>
<!-- <div class="centerDiv changeImgBtn">
<button ion-button class="btnImge" (click)="openFile()">
<ion-icon class="changeIcon" name="camera" ></ion-icon>
</button>
</div> -->

@ -8,13 +8,24 @@
transform: translate(-50%, -50%);
}
.btnImge{
button{
border-color:transparent !important;
}
// button{
border-color:transparent !important;
--background: #22C6B3 !important;
background: #22C6B3 !important;
height: 57px !important;
width: 60px !important;
border-radius: 50% !important;
// }
}
//test
.changeIcon{
background: #19a163;
width: 15px;
height: 15px;
background: #22C6B3 !important;
border-radius: 50% !important;
width: 73px;
height: 55px;
color: white !important;
width: 80px;
height: 71px;
}

@ -22,6 +22,18 @@ import { DomSanitizer } from '@angular/platform-browser';
import {FileUploderProfileComponent} from '../hmg-common/ui/file-uploder-profile/file-uploder-profile.component'
import { SharedDataService } from '../hmg-common/services/shared-data-service/shared-data.service';
import { DevicePermissionsService } from '../hmg-common/services/device-permissions/device-permissions.service';
import { DashboredService } from '../hmg-common/services/dashbored/dashbored.service';
import { OrganizationSalariesResponse } from '../hmg-common/services/dashbored/organization-salaries.response';
import { OpenMissingSwipesResponse} from '../hmg-common/services/dashbored/open-missing-swipes.response';
import {PerformanceAppraisalResponse} from '../hmg-common/services/dashbored/performance-appraisal.response';
import { AttendanceTrackingResponse } from '../hmg-common/services/dashbored/attendance-tracking.response';
import { OpenPeriodDatesResponse } from '../hmg-common/services/dashbored/models/openPeriodDatesResponse';
import {GetSubordinatesAttdStatusRequest} from '../hmg-common/services/dashbored/models/GetSubordinatesAttdStatusRequest';
import {GetSubordinatesLeavesRequest} from '../hmg-common/services/dashbored/models/GetSubordinatesLeavesRequest'
import {GetOpenNotificationsResponse}from '../hmg-common/services/dashbored/models/GetOpenNotificationsResponse'
import {GetSubordinatesAttdStatusResponse}from '../hmg-common/services/dashbored/models/GetSubordinatesAttdStatusResponse'
import {GetSubordinatesLeavesResponse}from '../hmg-common/services/dashbored/models/GetSubordinatesLeavesResponse'
@Component({
selector: 'app-home',
@ -126,8 +138,11 @@ public percent: any = 100 - ((this.timeInSeconds / 32400) * 100);
private cameraController: Camera,
public sharedData: SharedDataService,
private sanitizer: DomSanitizer,
private file: File,
private permissions: DevicePermissionsService
// private transfer: Transfer,
private file: File,
// private filePath: FilePath
private permissions: DevicePermissionsService,
public DS: DashboredService
) {
this.events.subscribe('img-change', displayImg => {
@ -487,15 +502,90 @@ getSecondsAsDigitalClock(inputSeconds: number) {
openPersonalInfo() {
this.common.openProfile();
}
/*************************************Dashboards Services**********************************************************8 */
showOrganizationSalaries(){
this.DS.getOrganizationSalaries() .subscribe((result: OrganizationSalariesResponse ) => {
});;
}
showOpenMissingSwipes(){
this.DS.getOpenMissingSwipes() .subscribe((result: OpenMissingSwipesResponse) => {
});;
}
showPerformanceAppraisal(){
this.DS.getPerformanceAppraisal() .subscribe((result: PerformanceAppraisalResponse) => {
});
}
showAttendanceTracking(){
this.DS.getAttendanceTracking() .subscribe((result: AttendanceTrackingResponse) => {
});;
}
openPeriodDateDashbored(){
this.DS.getOpenPeriodDates( ()=> {console.log("Error ");} ).subscribe((result:OpenPeriodDatesResponse)=>{
if (this.common.validResponse(result)) {
console.log("response");
}
});
}
openNotificationsDashbored(){
this.DS.getOpenNotifications( ()=> {console.log("Error ");} ).subscribe((result:GetOpenNotificationsResponse)=>{
if (this.common.validResponse(result)) {
console.log("response");
console.log(result);
}
});
}
getSubordinatesLeaves(){
let request:GetSubordinatesLeavesRequest=new GetSubordinatesLeavesRequest();
request.P_DATE_FROM="/Date(1578603600000+0300)/"; //test
request.P_DATE_TO="/Date(1576011600000+0300)/"; //test
this.DS.getSubordinatesLeaves( request,()=> {console.log("Error ");} ).subscribe((result:GetSubordinatesLeavesResponse)=>{
if (this.common.validResponse(result)) {
console.log("response");
console.log(result);
}
});
}
getSubordinatesAttStatus(){
let request: GetSubordinatesAttdStatusRequest = new GetSubordinatesAttdStatusRequest();
request.P_SCHEDULE_DATE_FROM="/Date(1578603600000+0300)/"; //test
request.P_SCHEDULE_DATE_TO="/Date(1576011600000+0300)/";//test
this.DS.getSubordinatesAttStatus( request,()=> {console.log("Error ");} ).subscribe((result:GetSubordinatesAttdStatusResponse)=>{
if (this.common.validResponse(result)) {
console.log("response");
console.log(result);
}
});
}
}

@ -7,7 +7,6 @@ import { WorKListResponse } from "../models/workListResponse";
import { WorklistService } from "../service/worklist.service";
import { IonInfiniteScroll } from '@ionic/angular';
import { WorklistMainService } from '../service/work-list.main.service';
@Component({
selector: "app-home",
templateUrl: "./home.component.html",
@ -48,7 +47,7 @@ export class HomeComponent implements OnInit {
public common: CommonService,
public ts: TranslatorService,
public WorklistService: WorklistService,
public workListService: WorklistMainService
public workListService: WorklistMainService,
) {
this.WorkListObj = new WorkListRequest();
this.WorkListObj.P_NOTIFICATION_TYPE = "1";
@ -332,4 +331,6 @@ export class HomeComponent implements OnInit {
this.isSearch = !this.isSearch;
}
}

@ -3,7 +3,7 @@
<ion-buttons slot="start">
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
</ion-buttons>
<ion-title color="light" > {{ts.trPK('userProfile','title')}}</ion-title>
<ion-title color="light" > {{ts.trPK('userProfile','changepicture')}}</ion-title>
<ion-buttons slot="end">
<button style="color: white !important;" class="headerBtn" *ngIf="saveChange != ''" (click)="updateImageProfile();" >
{{ts.trPK('general','save')}}

@ -22,8 +22,9 @@
// // margin:0 auto 40px;
position: relative;
width: 400px;
height: 400px;
width: 234px;
height: 215px;
margin-top: 33px !important;
margin: auto;
display: block;
// background: red;
@ -32,7 +33,7 @@ height: 400px;
border-radius: 50% !important;
color:#fff;
background-color: rgba(0,0,0,0.1);
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
// box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
img{
-webkit-border-radius:50% !important;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 B

@ -877,6 +877,10 @@
"en": "My Profile",
"ar": "معلوماتي"
},
"changepicture":{
"en":"Change Picture",
"ar":"تغيير الصوره"
},
"empNo": {
"en": "Employee Number",
"ar": "الرقم الوظيفي"

Loading…
Cancel
Save