Merge branch 'MOHEMM-Q2-DEV' into sultan26April

MOHEMM-Q3-DEV-LATEST
umasoodch 5 years ago
commit 900be32d1c

@ -0,0 +1,225 @@
{
"name": "MOHEM",
"version": "0.0.1",
"author": "Cloud Solutions",
"homepage": "http://www.cloudsolution-sa.com/",
"private": true,
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"dependencies": {
"@angular/animations": "^7.2.15",
"@angular/common": "^7.2.2",
"@angular/core": "^7.2.2",
"@angular/forms": "^7.2.2",
"@angular/http": "^7.2.2",
"@angular/platform-browser": "^7.2.2",
"@angular/platform-browser-dynamic": "^7.2.2",
"@angular/router": "^7.2.2",
"@ionic-native/android-permissions": "^5.18.0",
"@ionic-native/app-availability": "^5.18.0",
"@ionic-native/app-rate": "^5.18.0",
"@ionic-native/background-geolocation": "^5.30.0",
"@ionic-native/badge": "^5.18.0",
"@ionic-native/barcode-scanner": "^5.18.0",
"@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.18.0",
"@ionic-native/file-path": "^5.18.0",
"@ionic-native/fingerprint-aio": "^5.18.0",
"@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",
"@ionic-native/in-app-browser": "^5.17.0",
"@ionic-native/keyboard": "^5.17.0",
"@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.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.31.1",
"@ionic-native/zbar": "^5.10.0",
"@ionic/angular": "^4.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.2.2",
"@swimlane/ngx-charts": "^10.1.0",
"angular-calendar": "^0.26.11",
"app": "0.1.0",
"chart.js": "^2.9.3",
"com-badrit-base64": "^0.2.0",
"cordova-android": "^8.1.0",
"cordova-android-support-gradle-release": "^3.0.1",
"cordova-open-native-settings": "^1.5.2",
"cordova-opentok-android-permissions": "^1.0.1",
"cordova-plugin-actionsheet": "^2.3.3",
"cordova-plugin-add-swift-support": "^2.0.2",
"cordova-plugin-android-permissions": "^1.0.2",
"cordova-plugin-androidx": "^1.0.2",
"cordova-plugin-androidx-adapter": "^1.1.0",
"cordova-plugin-appavailability": "^0.4.2",
"cordova-plugin-apprate": "^1.4.0",
"cordova-plugin-badge": "^0.8.8",
"cordova-plugin-ble-central": "^1.2.4",
"cordova-plugin-camera": "^4.1.0",
"cordova-plugin-datepicker": "^0.9.3",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-dialogs": "^2.0.2",
"cordova-plugin-file": "^6.0.2",
"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",
"cordova-plugin-globalization": "^1.11.0",
"cordova-plugin-inappbrowser": "^3.1.0",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.1.0",
"cordova-plugin-local-notification": "^0.9.0-beta.2",
"cordova-plugin-nativestorage": "^2.3.2",
"cordova-plugin-splashscreen": "^5.0.3",
"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",
"core-js": "^2.5.4",
"date-fns": "^1.30.1",
"es6-promise-plugin": "^4.1.0",
"ionic2-calendar": "^0.5.8",
"ionic4-rating": "^1.0.9",
"ng-circle-progress": "^1.5.1",
"ng2-file-upload": "^1.3.0",
"ng2-pdf-viewer": "^5.3.2",
"ngx-gauge": "^1.0.0-beta.10",
"npm": "^6.14.11",
"phonegap-nfc": "^1.2.0",
"phonegap-plugin-barcodescanner": "^8.1.0",
"phonegap-plugin-multidex": "^1.0.0",
"primeicons": "^1.0.0",
"primeng": "^7.1.3",
"run": "1.4.0",
"rxjs": "~6.3.3",
"tslib": "^1.10.0",
"uk.co.workingedge.phonegap.plugin.launchnavigator": "^3.2.2",
"xlsx": "^0.14.3",
"zone.js": "~0.8.29"
},
"devDependencies": {
"@angular-devkit/architect": "~0.12.3",
"@angular-devkit/build-angular": "^0.13.9",
"@angular-devkit/core": "~7.2.3",
"@angular-devkit/schematics": "~7.2.3",
"@angular/cli": "^7.3.6",
"@angular/compiler": "~7.2.2",
"@angular/compiler-cli": "~7.2.2",
"@angular/language-service": "~7.2.2",
"@ionic/angular-toolkit": "~1.4.0",
"@ionic/lab": "3.1.2",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~10.12.0",
"codelyzer": "~4.5.0",
"cordova-ios": "^6.2.0",
"cordova-plugin-wifiwizard2": "^3.1.1",
"es6-promise-plugin": "^4.1.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "^4.0.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"node-sass": "^4.13.1",
"protractor": "^5.4.3",
"ts-node": "~8.0.0",
"tslint": "~5.12.0",
"typescript": "3.1.6"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-whitelist": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-nativestorage": {},
"cordova-plugin-globalization": {},
"cordova-plugin-android-permissions": {},
"cordova-plugin-badge": {},
"cordova-plugin-ionic-keyboard": {},
"cordova-plugin-datepicker": {},
"cordova-plugin-geolocation": {},
"phonegap-plugin-barcodescanner": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
},
"cordova-android-support-gradle-release": {
"ANDROID_SUPPORT_VERSION": "27.+"
},
"cordova.plugins.diagnostic": {
"ANDROID_SUPPORT_VERSION": "28.+"
},
"cordova-open-native-settings": {},
"cordova-plugin-camera": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-file": {},
"cordova-plugin-filepath": {},
"com-badrit-base64": {},
"cordova-sqlite-storage": {},
"cordova-plugin-ble-central": {},
"uk.co.workingedge.phonegap.plugin.launchnavigator": {},
"cordova-plugin-themeablebrowser": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-local-notification": {},
"cordova-opentok-android-permissions": {},
"cordova-plugin-appavailability": {},
"cordova-plugin-apprate": {},
"cordova-plugin-fingerprint-aio": {
"FACEID_USAGE_DESCRIPTION": "User Authentication"
},
"cordova-plugin-firebasex": {
"FIREBASE_ANALYTICS_COLLECTION_ENABLED": "true",
"FIREBASE_PERFORMANCE_COLLECTION_ENABLED": "true",
"FIREBASE_CRASHLYTICS_COLLECTION_ENABLED": "true",
"ANDROID_ICON_ACCENT": "#FF00FFFF",
"ANDROID_PLAY_SERVICES_TAGMANAGER_VERSION": "17.0.0",
"ANDROID_FIREBASE_ANALYTICS_VERSION": "17.2.1",
"ANDROID_FIREBASE_MESSAGING_VERSION": "20.0.0",
"ANDROID_FIREBASE_CONFIG_VERSION": "19.0.3",
"ANDROID_FIREBASE_PERF_VERSION": "19.0.1",
"ANDROID_FIREBASE_AUTH_VERSION": "19.1.0",
"ANDROID_CRASHLYTICS_VERSION": "2.10.1",
"ANDROID_CRASHLYTICS_NDK_VERSION": "2.1.1"
},
"cordova-plugin-androidx": {},
"cordova-plugin-androidx-adapter": {},
"cordova-plugin-background-geolocation": {
"GOOGLE_PLAY_SERVICES_VERSION": "+"
},
"phonegap-nfc": {},
"wifiwizard2": {}
},
"platforms": [
"android",
"ios"
]
}
}

@ -23,6 +23,7 @@ const routes: Routes = [
{ path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' }, { path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' },
{ path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' }, { path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' },
{ path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' }, { path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' },
{ path: 'mowadhafi', loadChildren: './mowadhafi/mowadhafi.module#MowadhafiPageModule' },
{ path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' }, { path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' },
{ path: 'backend-integrations', loadChildren: './backend-integrations/backend-integrations.module#BackendIntegrationsPageModule' } { path: 'backend-integrations', loadChildren: './backend-integrations/backend-integrations.module#BackendIntegrationsPageModule' }

@ -131,6 +131,14 @@
{{ts.trPK('myTeam','myTeam-header')}} {{ts.trPK('myTeam','myTeam-header')}}
</ion-label> </ion-label>
</ion-item> </ion-item>
<ion-item [hidden]="TeamFlag!='true'" (click)="openMyRequestPage()">
<ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 14px !important;" src="../assets/imgs/my_team_icon.png" item-left>
</ion-thumbnail>
<ion-label class="profile">
HR REQUEST
</ion-label>
</ion-item>
<ion-item (click)="openChangePassword()"> <ion-item (click)="openChangePassword()">
<ion-thumbnail slot="start" class="menu-thumb"> <ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 25px !important;" src="../assets/imgs/lock_icon.png" item-left> <img style= "height: 25px !important;" src="../assets/imgs/lock_icon.png" item-left>

@ -1,5 +1,8 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { detachEmbeddedView } from '@angular/core/src/view'; import { detachEmbeddedView } from '@angular/core/src/view';
import { AnnouncementService } from 'src/app/hmg-common/services/announcement-services/announcement.service';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
@Component({ @Component({
selector: 'app-announcement', selector: 'app-announcement',
@ -7,8 +10,8 @@ import { detachEmbeddedView } from '@angular/core/src/view';
styleUrls: ['./announcement.component.scss'], styleUrls: ['./announcement.component.scss'],
}) })
export class AnnouncementComponent implements OnInit { export class AnnouncementComponent implements OnInit {
dt = new Date().toJSON().slice(0,10).replace(/-/g,'/'); dt = new Date().toJSON().slice(0, 10).replace(/-/g, '/');
public arr =[ public arr = [
{ {
title:"Basic Microsoft Excel Cource", title:"Basic Microsoft Excel Cource",
body:" is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.", body:" is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.",
@ -33,10 +36,15 @@ export class AnnouncementComponent implements OnInit {
]; ];
public arrList = []; public arrList = [];
constructor() { } constructor(
public announcementService: AnnouncementService,
public translate: TranslatorService,
public common: CommonService
) { }
ngOnInit() { ngOnInit() {
this.arrList = this.arr; this.arrList = this.arr;
// this.getAnnouncementListService();
} }
filterList(event) { filterList(event) {
@ -59,4 +67,11 @@ export class AnnouncementComponent implements OnInit {
}); });
} }
getAnnouncementListService(){
this.announcementService.getAnnouncementListService().subscribe((result: any) => {
if (this.common.validResponse(result)) {
}
});
}
} }

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

@ -0,0 +1,30 @@
import { Injectable } from '@angular/core';
import { Request } from 'src/app/hmg-common/services/models/request';
import { Observable } from 'rxjs';
import { AuthenticationService } from '../authentication/authentication.service';
import { ConnectorService } from '../connector/connector.service';
@Injectable({
providedIn: 'root'
})
export class AnnouncementService {
public static getAnnouncemntList = '';
constructor(
public authService: AuthenticationService,
public con: ConnectorService,
) { }
getAnnouncementListService(onError ?: any , oerrorLable ?: any) {
const request = new Request();
this.authService.authenticateRequest(request);
console.log(request);
return this.con.post(
AnnouncementService.getAnnouncemntList,
request,
onError,
oerrorLable
);
}
}

@ -1119,11 +1119,15 @@ export class CommonService {
this.nav.navigateForward(['/my-team/details']); this.nav.navigateForward(['/my-team/details']);
} }
public openMyRequestPage() { public openMyRequestPage() {
this.nav.navigateForward(['/my-team/my-request']); this.nav.navigateForward(['/mowadhafi/my-request']);
} }
public openHRRequestPage() { public openHRRequestPage() {
this.nav.navigateForward(['/my-team/hr-request']); this.nav.navigateForward(['/mowadhafi/hr-request']);
} }
public openRequestDetailsPage() {
this.nav.navigateForward(['/mowadhafi/request-details']);
}
public openPage(link: string) { public openPage(link: string) {

@ -28,7 +28,7 @@ export class ConnectorService {
public static timeOut = 120 * 1000; public static timeOut = 120 * 1000;
public static host = 'https://uat.hmgwebservices.com/'; public static host = 'https://uat.hmgwebservices.com/';
//public static host = 'https://hmgwebservices.com/'; // public static host = 'https://hmgwebservices.com/';
constructor(public httpClient: HttpClient, constructor(public httpClient: HttpClient,
public cs: CommonService, public cs: CommonService,

@ -1,6 +1,6 @@
<div feedback class="custom-button"> <div feedback class="custom-button">
<div class="iconBox"> <div class="iconBox">
<img *ngIf="title !='Items for sale' && title !='بضاعه للبع' && title !='العروض والخصومات' && title !='Offers & Discount' && title != 'My Team' && title != 'Vacation Rule' && title != 'فريقي' && title != 'الإنابة بالإجازات' " [src]="'data:image/png;base64,'+icon" class="icon"> <img *ngIf="title !='Announcement' && title !='اعلان' && title !='Items for sale' && title !='بضاعه للبع' && title !='العروض والخصومات' && title !='Offers & Discount' && title != 'My Team' && title != 'Vacation Rule' && title != 'فريقي' && title != 'الإنابة بالإجازات' " [src]="'data:image/png;base64,'+icon" class="icon">
<!-- <img *ngIf="title == 'My Team' || title == 'Vacation Rule'" [src]="icon" class="icon"> --> <!-- <img *ngIf="title == 'My Team' || title == 'Vacation Rule'" [src]="icon" class="icon"> -->
<img *ngIf="title == 'My Team' || title == 'فريقي' " [src]="myTeamIcon" class="icon"> <img *ngIf="title == 'My Team' || title == 'فريقي' " [src]="myTeamIcon" class="icon">
<img *ngIf="title == 'Vacation Rule' || title == 'الإنابة بالإجازات'" [src]="vacationRuleIcon" class="icon"> <img *ngIf="title == 'Vacation Rule' || title == 'الإنابة بالإجازات'" [src]="vacationRuleIcon" class="icon">
@ -8,6 +8,7 @@
<img *ngIf="title =='Items for sale' || title=='بضاعه للبع'" src="/assets/icon/home/item_for_sale.png" class="icon" style="height:40px" /> <img *ngIf="title =='Items for sale' || title=='بضاعه للبع'" src="/assets/icon/home/item_for_sale.png" class="icon" style="height:40px" />
<img *ngIf="title =='Offers & Discount' || title =='العروض والخصومات'" src="/assets/icon/home/offers_discount.png" class="icon" style="height:40px" /> <img *ngIf="title =='Offers & Discount' || title =='العروض والخصومات'" src="/assets/icon/home/offers_discount.png" class="icon" style="height:40px" />
<img *ngIf="title =='Announcement' || title =='اعلان'" src="/assets/icon/home/announcementIntegration.png" class="icon" style="height:40px" />
</div> </div>
<div class="titleBox"> <div class="titleBox">

@ -63,15 +63,22 @@
<ion-label> {{'general,other-services' | translate}} </ion-label> <ion-label> {{'general,other-services' | translate}} </ion-label>
</ion-col> </ion-col>
<ion-slides [options]="slideOptsTwo" > <ion-slides [options]="slideOptsTwo" >
<ion-slide> <ion-slide>
<app-services-button (click)="itemForSale()" [title]="'general,items-sales' | translate" > <app-services-button (click)="itemForSale()" [title]="'general,items-sales' | translate" >
</app-services-button> </app-services-button>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<app-services-button (click)="offersDiscount()" [title]="'general,offers-discount' | translate" > <app-services-button (click)="offersDiscount()" [title]="'general,offers-discount' | translate" >
</app-services-button> </app-services-button>
</ion-slide> </ion-slide>
<ion-slide>
<app-services-button (click)="openAnnouncement()" [title]="'login,announcement' | translate" >
</app-services-button>
</ion-slide>
</ion-slides> </ion-slides>

@ -5,7 +5,7 @@
<ion-buttons slot="start"> <ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons> <nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons> </ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','HR-request')}}</ion-title> <ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','createHR-Request')}}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
@ -89,9 +89,11 @@
</ion-col> </ion-col>
</ion-row> </ion-row>
</div> </div>
<div> <ion-footer class="footer">
<ion-button class="sendCodeBtn" (click)="createRequest()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button> <div class="Btn">
<ion-button class="CreateBtn" (click)="createRequest()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
</div> </div>
</ion-footer>
</div> </div>
<!-- ///////////////////////////////////////////////////////////////////next page --> <!-- ///////////////////////////////////////////////////////////////////next page -->
@ -128,7 +130,9 @@
<!-- ///////////////////////////////////////////////////////////////////next page --> <!-- ///////////////////////////////////////////////////////////////////next page -->
<div *ngIf="showRequestDetails" class="result-serviceType"> <div *ngIf="showRequestDetails" >
<ion-card class="result-serviceType">
<ion-card-content>
<div class="request-heading"> <div class="request-heading">
<span>{{ts.trPK('userProfile','ServiceType')}}</span> <span>{{ts.trPK('userProfile','ServiceType')}}</span>
</div> </div>
@ -149,47 +153,64 @@
</ion-row> </ion-row>
</div> </div>
<div class="request-heading"> <!-- /////////////////////////////////////////// -->
<span>{{ts.trPK('userProfile','DeptName')}}</span> <div>
</div> <div>
<div class="filed"> <ion-list>
<label class="selectLabel">Select Department</label> <label class="labels">{{ts.trPK('userProfile','DeptName')}}</label>
</div> <ion-item lines="none" class="filed-container">
<div class="request-heading"> <select class="filed" placeholder="Select Department" type="text">
<span>{{ts.trPK('userProfile','RelatedSection')}}</span> <option value="1">1</option>
</div> <option value="2">2</option>
<div class="filed"> </select>
<label class="selectLabel">Select Section</label> </ion-item>
</div> <label class="labels">{{ts.trPK('userProfile','RelatedSection')}}</label>
<div class="request-heading"> <ion-item lines="none" class="filed-container">
<span>{{ts.trPK('userProfile','RelatedTopic')}}</span> <select class="filed" placeholder="Select Sectiont" type="text">
</div> <option value="1">1</option>
<div class="filed"> <option value="2">2</option>
<label class="selectLabel">Select Topic</label> </select>
</div> </ion-item>
<label class="labels">{{ts.trPK('userProfile','RelatedTopic')}}</label>
<ion-item lines="none" class="filed-container" placeholder="Select Topic" type="text">
<select class="filed" placeholder="Select Topic" type="text">
<option value="1">1</option>
<option value="2">2</option>
</select>
</ion-item>
</ion-list>
</div>
<div class="request-heading"> <div class="request-heading">
<span>{{ts.trPK('userProfile','SupportingDocument')}}</span> <span>{{ts.trPK('userProfile','SupportingDocument')}}</span>
</div> </div>
<div style="margin-left: 15px; margin-top: 12px;"> <div>
<img (click)="uploadDocument()" src="../assets/imgs/add-photo.svg"> <img slot="start" style=" height: 55px;" (click)="uploadDocument()" src="../assets/imgs/add-photo.svg">
</div> </div>
<div class="request-heading"> <div class="request-heading">
<span>{{ts.trPK('userProfile','Description')}}</span> <span>{{ts.trPK('userProfile','Description')}}</span>
</div> </div>
<div class="filedDesc"> <!-- <div class="filedDesc">
<label class="labelDesc">Description</label> <ion-input class="labelDesc" placeholder="{{ts.trPK('userProfile','Description')}}" type="text">
</div> </ion-input>
</div> -->
<ion-col size="12">
<ion-item style="margin-left: -20px;margin-right: -13px;" lines="none">
<ion-input [ngClass]="direction == 'en' ? 'filedDesc':'filedDesc-ar' " placeholder="{{ts.trPK('userProfile','Description')}}" type="text"></ion-input>
</ion-item>
</ion-col>
<ion-row style="margin-left: 5px;">
<div class="cancelRequest">
<ion-button (click)="cancelRequest()">Cancel
</ion-button>
</div> </div>
<div class="submitRequest"> </ion-card-content>
<ion-button (click)="submitRequest()">Submit </ion-card>
</ion-button> <ion-footer style=" padding:15px !important;" >
<div ng class="gridDiv" aria-disabled="true">
<button class="gridCancelBtn" ion-button (click)="cancelRequest()">{{ts.trPK('general','cancel')}}</button>
<button class="gridSubmitBtn" ion-button (click)="submitRequest()">{{ts.trPK('general','submit')}}</button>
</div> </div>
</ion-row> </ion-footer>
</div> </div>
</ion-content> </ion-content>

@ -230,31 +230,29 @@ ion-input {
font-family: 'WorkSans-Bold'; font-family: 'WorkSans-Bold';
} }
.radio-list{ // .radio-list{
background: white; // background: white;
margin-left: 18px; // margin-left: 18px;
/* margin-right: 10px; */ // /* margin-right: 10px; */
margin-top: 12px; // margin-top: 12px;
} // }
.result-serviceType{ .result-serviceType{
position: relative; position: relative;
background: white; background: white;
padding-bottom: 20px;
border-radius: 20px; border-radius: 20px;
z-index: 1; z-index: 1;
border-radius: 20px; border-radius: 25px;
border: 1px solid #ccc; border: 1px solid #ccc;
padding-top: 12px; margin: 15px;
margin: 25px 22px 2px 22px;
padding-bottom: 241px;
} }
.request-heading { .request-heading {
span { span {
display: block; display: block;
padding-top: 8px; margin-bottom: 15px;
padding-left: 15px; // padding-top: 8px;
// padding-left: 15px;
/* font-weight: bold; */ /* font-weight: bold; */
font-size: 14px; font-size: 14px;
font-family: 'WorkSans-Bold'; font-family: 'WorkSans-Bold';
@ -269,15 +267,29 @@ ion-input {
padding-top: 6px !important; padding-top: 6px !important;
color: #636161; color: #636161;
padding-bottom: 15px; padding-bottom: 15px;
padding-right: 252px;
} }
.filedDesc{ .filedDesc{
border-radius: 30px; border-radius: 30px;
border: 1px solid #d3d5d5 !important; border: 1px solid #d3d5d5 !important;
margin: 10px; // margin: 10px;
padding-left: 11px !important; padding-left: 20px !important;
padding-top: 6px !important; padding-top: 6px !important;
color: #636161; color: #636161;
padding-bottom: 110px; --padding-bottom: 90px;
font-size: 13px;
text-align: start;
}
.filedDesc-ar{
border-radius: 30px;
border: 1px solid #d3d5d5 !important;
// margin: 10px;
padding-right: 20px !important;
padding-top: 6px !important;
color: #636161;
--padding-bottom: 90px;
font-size: 13px;
text-align: start;
} }
.labelDesc{ .labelDesc{
@ -299,30 +311,120 @@ ion-input {
color: black; color: black;
} }
.cancelRequest{
padding: 10px 0px 10px 10px; // .cancelRequest{
ion-button{ // padding: 10px 7px 10px 0px;
border-radius: 7px; // ion-button{
padding: 12px 25px 12px 25px; // border-radius: 7px;
// padding: 12px 30px 12px 30px;
// background: #d00a0a;
// --background: transparent;
// --box-shadow: none !important;
// height: auto;
// min-height: inherit;
// font-size: 16px;
// font-weight: bold;
// margin-top: -5px;
// }}
// .submitRequest{
// padding: 10px 7px 10px 0px;
// ion-button{
// border-radius: 7px;
// padding: 12px 30px 12px 30px;
// background: #19a163;
// --background: transparent;
// --box-shadow: none !important;
// height: auto;
// min-height: inherit;
// font-size: 16px;
// font-weight: bold;
// margin-top: -5px;
// }}
.gridDiv{
width: 100%;
height: 40px;
margin-top: 18px;
font-size: 14px;
}
.gridCancelBtn{
min-width: auto;
// margin: 0px;
padding: 10px;
border: 1px solid var(--cusgray);
box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
width: 45%;
height: 100%;
border-radius: 8px;
background: #d00a0a; background: #d00a0a;
--background: transparent; color: white;
--box-shadow: none !important; margin-left: 15px;
height: auto; margin-right: 5px;
min-height: inherit; font-family: 'WorkSans-bold';
font-size: 16px; }
font-weight: bold;
.gridSubmitBtn{
min-width: auto;
// margin: 0px;
padding: 10px;
border: 1px solid var(--cusgray);
box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
width: 45%;
height: 100%;
border-radius: 8px;
background: #19a163;
color: white;
// margin-left: 15px;
// margin-right: 5px;
font-family: 'WorkSans-bold';}
.filed-container{
margin-right: -17px;
margin-left: -25px;
}
.labels{
display: block;
margin-top: 15px;
padding-top: 8px;
padding-left: 15px;
font-size: 14px;
font-family: 'WorkSans-Bold';
}
.CreateBtn{
--background: var(--newgreen) !important;
background: var(--newgreen) !important;
white-space: normal;
color: var(--light);
text-transform: capitalize;
min-height: 1.0cm;
--border-radius: 7px !important;
border-radius: 7px !important;
--min-height: 1.6cm !important;
width: 315px;
} }
.footer{
padding: 15px 0px 0px 0px;
background-color: var(--light) !important;
border: 0px !important;
box-shadow: none !important;
-webkit-box-shadow: none;
}
.Btn{
margin: auto; text-align: center; display: block;
}
.footer2{
padding: 15px 0px 0px 24px;
background-color: var(--light) !important;
border: 0px !important;
box-shadow: none !important;
-webkit-box-shadow: none;
} }
.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;
}}

@ -3,7 +3,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { HRRequestComponent } from './hr-request.component'; import { HRRequestComponent } from './hr-request.component';
describe('HRRequestComponent', () => { describe('HrRequestComponent', () => {
let component: HRRequestComponent; let component: HRRequestComponent;
let fixture: ComponentFixture<HRRequestComponent>; let fixture: ComponentFixture<HRRequestComponent>;

@ -5,7 +5,7 @@ import { TranslatorService } from 'src/app/hmg-common/services/translator/transl
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.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 { 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 { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import { MyTeamService } from '../service/my-team.service'; import { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response'; import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { LoginModel } from 'src/app/authentication/models/LoginModel'; import { LoginModel } from 'src/app/authentication/models/LoginModel';
@ -36,6 +36,7 @@ export class HRRequestComponent implements OnInit {
public searchKeySelect = 'Complaints'; public searchKeySelect = 'Complaints';
myColor: string = 'secondary'; myColor: string = 'secondary';
public showRequestDetails = false; public showRequestDetails = false;
public proID= "CS"
public direction: string; public direction: string;
@ -45,16 +46,22 @@ export class HRRequestComponent implements OnInit {
public authService: AuthenticationService, public authService: AuthenticationService,
public sharedData: SharedDataService, public sharedData: SharedDataService,
public events: Events, public events: Events,
public myTeamService: MyTeamService, public MowadhafiService: MowadhafiService,
private location: Location, private location: Location,
private menu: MenuController, private menu: MenuController,
) { ) {
this.direction = TranslatorService.getCurrentDirection(); this.direction = TranslatorService.getCurrentLanguageName();
} }
ngOnInit() { ngOnInit() {
this.getUserInformation(); this.getUserInformation();
this.getTicketTypes();
this.getProject();
this.getProjectDepartments();
this.getDepartmentSections();
this.getSectionTopics();
} }
@ -65,13 +72,13 @@ export class HRRequestComponent implements OnInit {
getUserInformation(){ getUserInformation(){
const request = { const request = {
P_SELECTED_EMPLOYEE_NUMBER:"121816", // P_SELECTED_EMPLOYEE_NUMBER:"121816",
P_SELECTED_RESP_ID:-999, P_SELECTED_RESP_ID:-999,
P_PAGE_NUM:1, P_PAGE_NUM:1,
P_PAGE_LIMIT:1 P_PAGE_LIMIT:1
}; };
this.myTeamService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> this.MowadhafiService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{ {
this.handleUserInfoResult(result); this.handleUserInfoResult(result);
@ -96,17 +103,91 @@ export class HRRequestComponent implements OnInit {
// console.log("total no "+this.EmpTotal) // console.log("total no "+this.EmpTotal)
} }
getTicketTypes(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817"
};
this.MowadhafiService.getTicketTypes(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketTypesResult(result);
}) }
handlegetTicketTypesResult(result){
}
getProject(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgProjectCode:"CS"
};
this.MowadhafiService.getProject(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetProjectResult(result);
}) }
handlegetProjectResult(result){
}
getProjectDepartments(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgProjectId:11,
};
this.MowadhafiService.getProjectDepartments(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetProjectDepartmentsResult(result);
}) }
handlegetProjectDepartmentsResult(result){
}
getDepartmentSections(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgProjectDepartmentId:1
};
this.MowadhafiService.getDepartmentSections(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetDepartmentSectionsResult(result);
}) }
handlegetDepartmentSectionsResult(result){
}
getSectionTopics(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgDepartmentSectionId:1
};
this.MowadhafiService.getSectionTopics(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetSectionTopicsResult(result);
}) }
handlegetSectionTopicsResult(result){
// public sendActivationCode() { }
// }
// VerifyCode(){
// }
createRequest(){ createRequest(){
if(this.showRequestDetails){ if(this.showRequestDetails){
this.showRequestDetails = false this.showRequestDetails = false

@ -0,0 +1,46 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { MowadhafiPage } from './mowadhafi.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';
import {RequestDetailsComponent} from'./request-details/request-details.component';
const routes: Routes = [
{
path: '',
component: MowadhafiPage,
children:[{
path: 'my-request',
component: MyRequestComponent
},
{
path: 'hr-request',
component: HRRequestComponent
},
{
path: 'request-details',
component: RequestDetailsComponent
}
]
}
];
@NgModule({
imports: [
HmgCommonModule,
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [MowadhafiPage,MyRequestComponent,HRRequestComponent,RequestDetailsComponent]
})
export class MowadhafiPageModule {}

@ -0,0 +1,10 @@
<!-- <ion-header>
<ion-toolbar>
<ion-title>mowadhafi</ion-title>
</ion-toolbar>
</ion-header>
-->
<ion-content>
<ion-router-outlet></ion-router-outlet>
</ion-content>

@ -0,0 +1,27 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MowadhafiPage } from './mowadhafi.page';
describe('MowadhafiPage', () => {
let component: MowadhafiPage;
let fixture: ComponentFixture<MowadhafiPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MowadhafiPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MowadhafiPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-mowadhafi',
templateUrl: './mowadhafi.page.html',
styleUrls: ['./mowadhafi.page.scss'],
})
export class MowadhafiPage implements OnInit {
constructor() { }
ngOnInit() {
}
}

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

@ -0,0 +1,92 @@
import { Injectable } from '@angular/core';
import { ConnectorService } from 'src/app/hmg-common/services/connector/connector.service';
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
@Injectable({
providedIn: 'root'
})
export class MowadhafiService {
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';
public static getTicketTypes ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketTypes';
public static getProject ='Services/COCWS.svc/REST/Mohemm_ITG_GetProjects';
public static getProjectDepartments ='Services/COCWS.svc/REST/Mohemm_ITG_GetProjectDepartments';
public static getDepartmentSections ='Services/COCWS.svc/REST/Mohemm_ITG_GetDepartmentSections';
public static getSectionTopics ='Services/COCWS.svc/REST/Mohemm_ITG_GetSectionTopics';
public static getTicketsByEmployee ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketsByEmployee';
public static getTicketStatisticsByEmp ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketStatisticsByEmployee';
public static getTicketTransaction ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketTransaction';
public static getTicketDetails =' Services/COCWS.svc/REST/Mohemm_ITG_GetTicketDetails';
constructor(
public con: ConnectorService,
private authService: AuthenticationService
) { }
public getEmployeeSubordinates(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getMyTeam, request, onError, errorLabel);
}
public getSuborinatesAttStatus(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getSuborinateStatus, request, onError, errorLabel);
}
public getUserInfo(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getUserInfo, request, onError, errorLabel);
}
public getTicketTypes(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketTypes, request, onError, errorLabel);
}
public getProject(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getProject, request, onError, errorLabel);
}
public getProjectDepartments(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getProjectDepartments, request, onError, errorLabel);
}
public getDepartmentSections(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getDepartmentSections, request, onError, errorLabel);
}
public getSectionTopics(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getSectionTopics, request, onError, errorLabel);
}
public getTicketsByEmployee(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketsByEmployee, request, onError, errorLabel);
}
public getTicketStatisticsByEmp(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketStatisticsByEmp, request, onError, errorLabel);
}
public getTicketTransaction(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketTransaction, request, onError, errorLabel);
}
public getTicketDetails(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketDetails, request, onError, errorLabel);
}
}

@ -0,0 +1,34 @@
<ion-header>
<ion-toolbar class="header-toolbar-new" >
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<!-- <div>
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div> -->
<div>
<ion-card class="result-container" (click)="openRequestDetailsPage()">
<ion-card-content>
<ion-row style="margin-left: -3px; margin-right: -9px;">
<ion-col class="text">Complaints</ion-col>
<ion-col class="date">{{ts.trPK('userProfile','postedDate')}} May2,2021</ion-col>
</ion-row>
<ion-row>There is some Complaints</ion-row>
<ion-row style="margin-top: 5px;">Pending</ion-row>
</ion-card-content>
</ion-card>
</div>
</ion-content>
<ion-footer class="footer">
<div class="Btn">
<ion-button class="CreateBtn" (click)="openHRRequestPage()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
</div>
</ion-footer>

@ -0,0 +1,63 @@
.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;
}
.result-container{
position: relative;
background: white;
/* padding-bottom: 3px; */
border-radius: 20px;
z-index: 1;
margin: 15px;
border-radius: 10px;
border: 1px solid #ccc;
}
.text{
font-size: 15px;
margin-top: -9px;
font-family: 'WorkSans-bold';
}
.date{
margin-top: -9px;
margin-right: -49px;
color: gray;
font-size: 12px;
}
.CreateBtn{
--background: var(--newgreen) !important;
background: var(--newgreen) !important;
white-space: normal;
color: var(--light);
text-transform: capitalize;
min-height: 1.0cm;
--border-radius: 7px !important;
border-radius: 7px !important;
--min-height: 1.6cm !important;
width: 315px;
}
.footer{
padding: 15px 0px;
background-color: var(--light) !important;
border: 0px !important;
box-shadow: none !important;
-webkit-box-shadow: none;
}
.Btn{
margin: auto; text-align: center; display: block;
}

@ -5,7 +5,7 @@ import { TranslatorService } from 'src/app/hmg-common/services/translator/transl
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.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 { 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 { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import { MyTeamService } from '../service/my-team.service'; import { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
@Component({ @Component({
@ -23,7 +23,7 @@ public direction : String;
public authService: AuthenticationService, public authService: AuthenticationService,
public sharedData: SharedDataService, public sharedData: SharedDataService,
public events: Events, public events: Events,
public myTeamService: MyTeamService, public MowadhafiService: MowadhafiService,
private location: Location, private location: Location,
private menu: MenuController, private menu: MenuController,
@ -31,7 +31,9 @@ public direction : String;
this.direction = TranslatorService.getCurrentLanguageName(); this.direction = TranslatorService.getCurrentLanguageName();
} }
ngOnInit() {} ngOnInit() {
this.getTicketsByEmployee();
}
goback() { goback() {
this.location.back(); this.location.back();
@ -43,4 +45,27 @@ public direction : String;
this.menu.toggle(); this.menu.toggle();
} }
public openRequestDetailsPage() {
this.cs.openRequestDetailsPage();
this.menu.toggle();
}
getTicketsByEmployee(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgPageSize:10,
ItgPageNo:1
};
this.MowadhafiService.getTicketsByEmployee(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketsByEmployeeResult(result);
}) }
handlegetTicketsByEmployeeResult(result){
}
} }

@ -0,0 +1,66 @@
<ion-header>
<ion-toolbar class="header-toolbar-new">
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<!-- <div>
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div> -->
<div>
<ion-card class="result-container" >
<ion-card-content>
<ion-row style="margin-left: -3px; margin-right: -9px;">
<ion-col >Pending</ion-col>
<ion-col class="date">{{ts.trPK('userProfile','postedDate')}} May2,2021</ion-col>
</ion-row>
<ion-col [size]="12">
<h2 class="labels">{{ts.trPK('userProfile','refrence')}}</h2>
<p class="text">453388</p>
</ion-col>
<ion-col [size]="12">
<h2 class="labels"> {{ts.trPK('userProfile','section')}}</h2>
<p class="text">Employee</p>
</ion-col>
<ion-col [size]="12">
<h2 class="labels"> {{ts.trPK('userProfile','topic')}}</h2>
<p class="text">Change Tiket</p>
</ion-col>
<ion-col [size]="12">
<h2 class="labels">{{ts.trPK('userProfile','Description')}}</h2>
<p class="DescrText">descriptions</p>
</ion-col>
</ion-card-content>
</ion-card>
</div>
<div>
<ion-card class="result-containerList" >
<ion-card-content>
<div style="position: relative;">
<div [ngClass]=" direction == 'en'? 'request-list-container' : 'request-list-container-ar'" >
<div>
<!-- <div *ngFor="let formattedAction of showFormattedAction; let i = index"> -->
<span [ngClass]="direction == 'en'? 'text-span':'text-span-ar'">Action By</span>
<div class="action-data">
<p >descriptions</p>
<span [ngClass]="direction == 'en'? 'date-span':'date-span-ar'">May 16,2021</span>
</div>
</div>
</div>
</div>
</ion-card-content>
</ion-card>
</div>
</ion-content>

@ -0,0 +1,174 @@
.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;
}
.result-container{
position: relative;
background: white;
/* padding-bottom: 3px; */
border-radius: 20px;
z-index: 1;
margin: 15px;
border-radius: 10px;
border: 1px solid #ccc;
}
.result-containerList{
position: relative;
background: white;
/* padding-bottom: 3px; */
border-radius: 20px;
z-index: 1;
margin: 15px;
border-radius: 10px;
border: 1px solid #ccc;
}
.text{
font-size: 15px;
// margin-top: -9px;
font-family: 'WorkSans-bold';
}
.date{
// margin-top: -9px;
margin-right: -49px;
color: gray;
font-size: 12px;
}
.labels{
font-size: 13px;
margin-bottom: 0px;
margin-top: -10px;
color: gray;
}
.request-list-container {
position: relative;
padding-left: 37px;
clear: both;
min-height: 200px;
margin-bottom: 80px;
padding-top: 15px;
}
.request-list-container:before{
content: "";
position: absolute;
height: 100%;
width: 4px;
left: 7px;
top: 15px;
background-color: #f5f4f4;
}
.request-list-container-ar {
position: relative;
padding-left: 60px;
clear: both;
min-height: 200px;
margin-bottom: 80px;
padding-top: 15px;
}
.request-list-container-ar:before{
content: "";
position: absolute;
height: 100%;
width: 4px;
left: 30px;
top: 15px;
right: 6px;
background-color: #dddddd;
}
.text-span {
position: relative;
display: block;
// margin-bottom: 10px;
font-family: 'WorkSans-bold';
}
.text-span:before{
content: "";
position: absolute;
left: -35px;
border-radius: 50%;
width: 15px;
height: 15px;
background-color: #269db8;
top: 1px;
}
.text-span-ar{
position: relative;
display: block;
// margin-bottom: 10px;
/* margin-top: 10px; */
margin-right: 30px;
}
.text-span-ar:before{
content: "";
position: absolute;
right: -29px;
border-radius: 50%;
width: 15px;
height: 15px;
background-color: #269db8;
top: 1px;
}
.action-data{
background-color: white;
padding: 1px;
border-radius: 20px;
font-family: WorkSans-Regular;
// padding-left: 15px;
margin-right: 20px;
margin-bottom: 15px;
p{
font-size: 14px;
}
}
.date-span{
font-size: 13px;
margin-bottom: 0px;
margin-top: -10px;
color: gray;
margin-left: 178px;
}
.date-span-ar{
font-size: 13px;
margin-bottom: 0px;
margin-top: -10px;
color: gray;
margin-right: 155px;
}

@ -0,0 +1,27 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RequestDetailsComponent } from './request-details.component';
describe('RequestDetailsComponent', () => {
let component: RequestDetailsComponent;
let fixture: ComponentFixture<RequestDetailsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ RequestDetailsComponent ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RequestDetailsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,75 @@
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 { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common';
@Component({
selector: 'app-request-details',
templateUrl: './request-details.component.html',
styleUrls: ['./request-details.component.scss'],
})
export class RequestDetailsComponent implements OnInit {
public direction : String;
constructor(
public ts: TranslatorService,
public cs: CommonService,
public authService: AuthenticationService,
public sharedData: SharedDataService,
public events: Events,
public MowadhafiService: MowadhafiService,
private location: Location,
private menu: MenuController,
) {
this.direction = TranslatorService.getCurrentLanguageName();
}
ngOnInit() {
this.getTicketTransaction();
this.getTicketDetails()
}
goback() {
this.location.back();
}
getTicketTransaction(){
const request = {
// EmployeeNumber:"191817",
ItgTicketId:"5a10de61-c4db-4c77-e464-08d8a1beaaac",
};
this.MowadhafiService.getTicketTransaction(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketTransactionResult(result);
}) }
handlegetTicketTransactionResult(result){
}
getTicketDetails(){
const request = {
// EmployeeNumber:"191817",
ItgTicketId:"5a10de61-c4db-4c77-e464-08d8a1beaaac",
};
this.MowadhafiService.getTicketDetails(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketDetailsResult(result);
}) }
handlegetTicketDetailsResult(result){
}
}

@ -17,7 +17,7 @@
<!-- <ion-col><img src="../assets/imgs/fav filled.svg"></ion-col> --> <!-- <ion-col><img src="../assets/imgs/fav filled.svg"></ion-col> -->
</div> </div>
<div class="user-image"> <div class="user-image">
<img [src]="employee.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+employee.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" alt="Team Member Image"/> <img class="img" [src]="employee.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+employee.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" alt="Team Member Image"/>
</div> </div>
<div style="margin-right: 16px;" slot="end" > <div style="margin-right: 16px;" slot="end" >
<a [ngClass]="employee.EMPLOYEE_MOBILE_NUMBER == '' ? 'disable-phone action-button-icon' : 'action-button-icon'" href="tel:{{employee.EMPLOYEE_MOBILE_NUMBER}}"></a> <a [ngClass]="employee.EMPLOYEE_MOBILE_NUMBER == '' ? 'disable-phone action-button-icon' : 'action-button-icon'" href="tel:{{employee.EMPLOYEE_MOBILE_NUMBER}}"></a>

@ -232,7 +232,17 @@ ion-title{
padding: 15px; padding: 15px;
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
} }
.img{
width: 100px;
height: 100px;
display: inline-flex;
overflow: hidden;
border-radius: 78% !important;
position: relative;
/* top: 34px; */
background: transparent;
margin-left: -3px;
}
///////////////////////// Team Members css //////////////////////@extend ///////////////////////// Team Members css //////////////////////@extend
.filters-row { .filters-row {

@ -1,22 +0,0 @@
<ion-header>
<ion-toolbar class="header-toolbar-new">
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div>
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div>
</ion-content>
<ion-footer>
<div>
<ion-button class="sendCodeBtn" (click)="openHRRequestPage()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
</div>
</ion-footer>

@ -1,33 +0,0 @@
.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;
}

@ -8,8 +8,7 @@ import { IonicModule } from '@ionic/angular';
import { MyTeamPage } from './my-team.page'; import { MyTeamPage } from './my-team.page';
import { HmgCommonModule } from '../hmg-common/hmg-common.module'; import { HmgCommonModule } from '../hmg-common/hmg-common.module';
import {MyRequestComponent} from './my-request/my-request.component'; import { from } from 'rxjs';
import {HRRequestComponent} from './/hr-request/hr-request.component';
const routes: Routes = [ const routes: Routes = [
@ -28,14 +27,7 @@ const routes: Routes = [
path: 'details-2', path: 'details-2',
component: DetailsComponent component: DetailsComponent
}, },
{
path: 'my-request',
component: MyRequestComponent
},
{
path: 'hr-request',
component: HRRequestComponent
}
] ]
} }
@ -49,6 +41,7 @@ const routes: Routes = [
IonicModule, IonicModule,
RouterModule.forChild(routes) RouterModule.forChild(routes)
], ],
declarations: [MyTeamPage,HomeComponent,DetailsComponent,MyRequestComponent,HRRequestComponent] declarations: [MyTeamPage,HomeComponent,DetailsComponent,
]
}) })
export class MyTeamPageModule {} export class MyTeamPageModule {}

@ -8,7 +8,8 @@ export class MyTeamService {
public static EMPLOYEE_SHARED_DATA = 'employee'; public static EMPLOYEE_SHARED_DATA = 'employee';
public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES'; public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES';
public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS'; public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS';
public static getUserInfo ='Services/ERP.svc/REST/Get_UserInformation';
constructor( constructor(
public con: ConnectorService, public con: ConnectorService,
private authService: AuthenticationService private authService: AuthenticationService
@ -25,11 +26,7 @@ export class MyTeamService {
return this.con.post(MyTeamService.getSuborinateStatus, request, onError, errorLabel); 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);
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

@ -38,8 +38,8 @@
"ar": "هل أنت متأكد من إغلاق الحساب" "ar": "هل أنت متأكد من إغلاق الحساب"
}, },
"forgot-id": { "forgot-id": {
"en": "Forgot Patient ID", "en": "Forgot Employee ID",
"ar": "نسيت رقم الملف" "ar": "نسيت رقم الموظف"
}, },
"forgot-password": { "forgot-password": {
"en": "Forgot Password", "en": "Forgot Password",
@ -62,12 +62,12 @@
"ar": "كشف بالراتب" "ar": "كشف بالراتب"
}, },
"forgot-your-id": { "forgot-your-id": {
"en": "Forgot Your Patient ID", "en": "Forgot Your Employee ID",
"ar": "هل نسيت رقم ملف المريض" "ar": "هل نسيت رقمك الوظيفي"
}, },
"forgot-desc": { "forgot-desc": {
"en": "Enter your mobile number to receive your patient file number via SMS", "en": "Enter your mobile number to receive your ID number via SMS",
"ar": "أدخل رقم جوالك لاستلام رقم الملف الخاص بك عن طريق الرسائل النصية" "ar": "أدخل رقم جوالك لاستلام الرقم الوظيفي الخاص بك عن طريق الرسائل النصية"
}, },
"enter-email": { "enter-email": {
"en": "Please you need to enter your email", "en": "Please you need to enter your email",
@ -98,8 +98,8 @@
"ar": "دخول / تسجيل" "ar": "دخول / تسجيل"
}, },
"id-or-file": { "id-or-file": {
"en": "ID or File No", "en": "Employee ID ",
"ar": "هوية أو رقم الملف" "ar": "الرقم الوظيفي"
}, },
"national-id-or-iqama": { "national-id-or-iqama": {
"en": "National ID or Iqama", "en": "National ID or Iqama",
@ -122,12 +122,12 @@
"ar": "الرجاء التحقق من تسجيل الدخول باستخدام أحد هذه الخيارات" "ar": "الرجاء التحقق من تسجيل الدخول باستخدام أحد هذه الخيارات"
}, },
"verify-with-fingerprint": { "verify-with-fingerprint": {
"en": "Verify with fingerprint", "en": "Verify with fingerprint",
"ar": "تحقق باستخدام بصمة" "ar": "تحقق باستخدام بصمة الإصبع"
}, },
"verify-with-faceid": { "verify-with-faceid": {
"en": "Verify with face ID", "en": "Verify with face ID",
"ar": "تحقق باستخدام معرف الوجه" "ar": "تحقق باستخدام بصمة الوجه"
}, },
"verify-with-sms": { "verify-with-sms": {
"en": "Verify with SMS", "en": "Verify with SMS",
@ -142,12 +142,12 @@
"ar": ":آخر تسجيل دخول" "ar": ":آخر تسجيل دخول"
}, },
"last-login-with": { "last-login-with": {
"en": "Last login using:", "en": "Last login using:",
"ar": "آخر تسجيل دخول مع" "ar": "آخر تسجيل دخول بإستخدام"
}, },
"biometric-support": { "biometric-support": {
"en": "It seems that your phone is supporting biometric feature, do you want login with with biometric?", "en": "It seems that your phone is supporting biometric feature, do you want login with biometric?",
"ar": "يبدو أن هاتفك يدعم ميزة البيومترية ، هل تريد تسجيل الدخول باستخدام البيومترية؟" "ar": "يبدو أن هاتفك يدعم ميزة البصمة ، هل تريد تسجيل الدخول باستخدام البصمة؟"
}, },
"verify-fingerprint": { "verify-fingerprint": {
"en": "To activate fingerprint login service, please verify by using one of the following options. ", "en": "To activate fingerprint login service, please verify by using one of the following options. ",
@ -666,8 +666,8 @@
"ar": "إستخدم الرقم التعريفي" "ar": "إستخدم الرقم التعريفي"
}, },
"auth-please": { "auth-please": {
"en": "Please Authenticated", "en": "Please Authenticated",
"ar": "عرف نفسك" "ar": "عرف نفسك"
}, },
"dial-code": { "dial-code": {
"en": "Dial Code", "en": "Dial Code",
@ -727,7 +727,7 @@
}, },
"send-email-short": { "send-email-short": {
"en": "Email", "en": "Email",
"ar": "بريد" "ar": "بريد إلكتروني"
}, },
"hi": { "hi": {
"en": "HI", "en": "HI",
@ -742,8 +742,8 @@
"ar": "تمت مزامنة البيانات بنجاح" "ar": "تمت مزامنة البيانات بنجاح"
}, },
"already-synced": { "already-synced": {
"en": "Latest data already synced", "en": "Latest data has already been synced",
"ar": "أحدث البيانات المتزامنة بالفعل" "ar": "تمت مزامنة أحدث البيانات مسبقاً"
}, },
"weekly": { "weekly": {
"en": "Weekly", "en": "Weekly",
@ -774,8 +774,8 @@
"ar": "الخطوات المغطاة" "ar": "الخطوات المغطاة"
}, },
"hours-asleep": { "hours-asleep": {
"en": "Time asleep in hours", "en": "Time asleep in hours",
"ar": "الوقت نائم في ساعات" "ar": "وقت النوم بالساعات"
}, },
"bad": { "bad": {
"en": "Bad", "en": "Bad",
@ -910,8 +910,8 @@
"ar": "فشل التحقق ، يرجى زيارة أقرب مكتب استقبال في الفرع" "ar": "فشل التحقق ، يرجى زيارة أقرب مكتب استقبال في الفرع"
}, },
"forget-wifi-connection-text": { "forget-wifi-connection-text": {
"en": "Invalid Wi-Fi configuration exists with 'HMG-MOHEMM', please forget the Wi-Fi from settings.", "en": "Invalid Wi-Fi configuration exists with 'HMG-MOHEMM', please forget the network from settings.",
"ar": "فشل الاتصال بشبكة 'HMG-MOHEMM' الرجاء اختيار نسيت الاتصال من اعدادت الشبكة" "ar": "الرجاء اختيار نسيان الشبكه من اعدادت الشبكة 'HMG-MOHEMM'فشل الاتصال بشبكة "
}, },
"qr-text": { "qr-text": {
"en": "QR Code", "en": "QR Code",
@ -943,7 +943,7 @@
}, },
"wifi-connect-message": { "wifi-connect-message": {
"en": "Connecting", "en": "Connecting",
"ar": "توصيل" "ar": "جاري الإتصال"
}, },
"success-attendance": { "success-attendance": {
"en": "Your attendance is marked successfully.", "en": "Your attendance is marked successfully.",
@ -988,8 +988,8 @@
"ar": "طلبات قيد الانتظار" "ar": "طلبات قيد الانتظار"
}, },
"missing-swipes": { "missing-swipes": {
"en": "Missing Swipes", "en": "Missing Swipes",
"ar": "فقدان البصمة" "ar": "تسجيل بصمة حضور سابقة "
}, },
"leave-balance": { "leave-balance": {
"en": "Leave Balance", "en": "Leave Balance",
@ -1054,8 +1054,8 @@
}, },
"work-list": { "work-list": {
"open-analysis": { "open-analysis": {
"en": "Open Request Analysis", "en": "Open Request Analysis",
"ar": "فتح تحليل الطلب" "ar": "تحليل الطلبات المفتوحة"
}, },
"total": { "total": {
"en": "Total", "en": "Total",
@ -1078,8 +1078,8 @@
"ar": "بحث متقدم" "ar": "بحث متقدم"
}, },
"No-data-available": { "No-data-available": {
"en": "No History Available", "en": "No History Available",
"ar": "لا يوجد محفوظات متاحة" "ar": "لايوجد سجل بيانات سابقة "
} }
}, },
"userProfile": { "userProfile": {
@ -1095,6 +1095,54 @@
"en": "Edit Profile", "en": "Edit Profile",
"ar": "تعديل المعلومات" "ar": "تعديل المعلومات"
}, },
"ServiceType": {
"en": "Service Type",
"ar": "نوع الخدمة"
},
"DeptName": {
"en": "Department Name",
"ar": "اسم القسم"
},
"refrence": {
"en": "Tiket Reference",
"ar": "مرجع التذكره"
},
"section": {
"en": "Section",
"ar": " القسم"
},
"topic": {
"en": "Topic",
"ar": "العنوان"
},
"postedDate": {
"en": "Posted on",
"ar": "نشر في"
},
"RelatedSection": {
"en": "Related Section",
"ar": "قسم ذو صله"
},
"RelatedTopic": {
"en": "Related Topic",
"ar": "عنوان ذو صله"
},
"SupportingDocument": {
"en": "Supporting Document",
"ar": "ارفاق ملف"
},
"Description": {
"en": "Description",
"ar": "الوصف"
},
"MyHR-request": {
"en": "MY HR REQUEST",
"ar": "طلباتي"
},
"createHR-Request": {
"en": "CREATE HR REQUEST",
"ar": "انشاء طلب"
},
"performance-evaluation": { "performance-evaluation": {
"en": "Performance Evaluation", "en": "Performance Evaluation",
"ar": "تقييم الاداء" "ar": "تقييم الاداء"
@ -1149,7 +1197,7 @@
}, },
"payrol": { "payrol": {
"en": "Payroll", "en": "Payroll",
"ar": "المشروع" "ar": "سجل الرواتب"
}, },
"orgEmail": { "orgEmail": {
"en": "Organization Email Address", "en": "Organization Email Address",
@ -1263,7 +1311,7 @@
"vacation-rule": { "vacation-rule": {
"vacationRule": { "vacationRule": {
"en": "Vacation Rule", "en": "Vacation Rule",
"ar": "الإنابة بالإجازات" "ar": "الإنابة بالإجازات"
}, },
"apply-for-vacation-rule": { "apply-for-vacation-rule": {
"en": "Apply for vacation Rule", "en": "Apply for vacation Rule",
@ -1342,8 +1390,8 @@
"ar": "التالى" "ar": "التالى"
}, },
"notification-type": { "notification-type": {
"en": "Notification Type", "en": "Notification Type",
"ar": "نوع إعلام" "ar": "نوع الإشعار"
}, },
"notification-tip": { "notification-tip": {
"en": "Indicate the <span class=\"boldTxtNav\">notification format </span>that will activate this rule", "en": "Indicate the <span class=\"boldTxtNav\">notification format </span>that will activate this rule",
@ -1439,7 +1487,7 @@
}, },
"confirmation": { "confirmation": {
"en": "Confirmation", "en": "Confirmation",
"ar": "البريد الإلكتروني" "ar": "تأكيد"
}, },
"rule-success": { "rule-success": {
"en": "Rule created successfully", "en": "Rule created successfully",
@ -1455,11 +1503,11 @@
}, },
"confirm-msg-success": { "confirm-msg-success": {
"en": "Are you sure, you want to Apply for Vacation Rule?", "en": "Are you sure, you want to Apply for Vacation Rule?",
"ar": " تريد التقديم على قواعد الاجازات ؟, هل انت متأكد" "ar": " هل أنت متأكد من رغبتك في التقديم على قواعد الإجازات ؟"
}, },
"update-msg-success": { "update-msg-success": {
"en": "Are you sure, you want to Update this Vacation Rule?", "en": "Are you sure, you want to Update this Vacation Rule?",
"ar": "تريد تحديث قواعد الاجازات ؟, هل انت متأكد" "ar": "هل أنت متأكد من رغبتك في تحديث قاعدة الإجازات هذه ؟"
} }
}, },
"absenceList": { "absenceList": {
@ -2342,23 +2390,23 @@
"ar": "رمز" "ar": "رمز"
}, },
"itemReq": { "itemReq": {
"en": "Items Requsted", "en": "Requsted Items",
"ar": "العناصر المطلوبة" "ar": "العناصر المطلوبة"
}, },
"approveMsg": { "approveMsg": {
"en": "<p class=\"boldP\"> Are you sure to <span class=\"boldText\"> Approve </span>this request ?</p>", "en": "Requsted Items",
"ar": "العناصر المطلوبة" "ar": "العناصر المطلوبة"
}, },
"rejectMsg": { "rejectMsg": {
"en": "<p class=\"boldP\">Are you sure to <span class=\"boldText\"> Reject </span> this request ?</p>", "en": "Requsted Items",
"ar": "العناصر المطلوبة" "ar": "العناصر المطلوبة"
}, },
"delMsg": { "delMsg": {
"en": "<p class=\"boldP\">Are you sure to <span class=\"boldText\"> Delete </span> this request ?</p>", "en": "Requsted Items",
"ar": "العناصر المطلوبة" "ar": "العناصر المطلوبة"
}, },
"closeMsg": { "closeMsg": {
"en": "<p class=\"boldP\">Are you sure to <span class=\"boldText\"> Close </span>this request ?</p>", "en": "Requsted Items",
"ar": "العناصر المطلوبة" "ar": "العناصر المطلوبة"
}, },
"Supplier": { "Supplier": {
@ -2921,7 +2969,7 @@
}, },
"shift-time": { "shift-time": {
"en": "Shift Time", "en": "Shift Time",
"ar": "وقت التناوب" "ar": "وقت المناوبة "
}, },
"shift-type": { "shift-type": {
"en": "Shift Type", "en": "Shift Type",

Loading…
Cancel
Save