Merge branch 'MOHEMM-Q2-DEV' into sultan26April
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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
Loading…
Reference in New Issue