Merge branch 'MOHEMM-Q2-DEV' of https://gitlab.com/haroon6138/mohemmionic5 into sultan26April
@ -1,39 +1,41 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
|
||||
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: '', redirectTo: 'authentication/login', pathMatch: 'full' },
|
||||
{
|
||||
path: 'authentication', loadChildren: './authentication/authentication.module#AuthenticationPageModule'
|
||||
},
|
||||
{ path: 'home', loadChildren: './home/home.module#HomePageModule' },
|
||||
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
|
||||
{ path: 'vacation-rule', loadChildren: './vacation-rule/vacation-rule.module#VacationRulePageModule' },
|
||||
{ path: 'accrual-balances', loadChildren: './accrual-balances/accrual-balances.module#AccrualBalancesPageModule' },
|
||||
{ path: 'my-team', loadChildren: './my-team/my-team.module#MyTeamPageModule' },
|
||||
{ path: 'attendance', loadChildren: './attendance/attendance.module#AttendancePageModule' },
|
||||
{ path: 'eit', loadChildren: './eit/eit.module#EITPageModule' },
|
||||
{ path: 'absence', loadChildren: './absence/absence.module#AbsencePageModule' },
|
||||
{ path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' },
|
||||
{ path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' },
|
||||
{ path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' },
|
||||
{ path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' },
|
||||
{ path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' },
|
||||
{ path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' },
|
||||
{ path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' },
|
||||
{ path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' },
{ path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' }
|
||||
import { NgModule } from '@angular/core';
|
||||
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
|
||||
|
||||
|
||||
|
||||
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
/*RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules}),*/
|
||||
RouterModule.forRoot(routes),
|
||||
],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class AppRoutingModule { }
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: '', redirectTo: 'authentication/login', pathMatch: 'full' },
|
||||
{
|
||||
path: 'authentication', loadChildren: './authentication/authentication.module#AuthenticationPageModule'
|
||||
},
|
||||
{ path: 'home', loadChildren: './home/home.module#HomePageModule' },
|
||||
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
|
||||
{ path: 'vacation-rule', loadChildren: './vacation-rule/vacation-rule.module#VacationRulePageModule' },
|
||||
{ path: 'accrual-balances', loadChildren: './accrual-balances/accrual-balances.module#AccrualBalancesPageModule' },
|
||||
{ path: 'my-team', loadChildren: './my-team/my-team.module#MyTeamPageModule' },
|
||||
{ path: 'attendance', loadChildren: './attendance/attendance.module#AttendancePageModule' },
|
||||
{ path: 'eit', loadChildren: './eit/eit.module#EITPageModule' },
|
||||
{ path: 'absence', loadChildren: './absence/absence.module#AbsencePageModule' },
|
||||
{ path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' },
|
||||
{ path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' },
|
||||
{ path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' },
|
||||
{ path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' },
|
||||
{ path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' },
|
||||
{ path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' },
|
||||
{ path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' },
|
||||
{ path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' },
|
||||
{ path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' },
|
||||
{ path: 'backend-integrations', loadChildren: './backend-integrations/backend-integrations.module#BackendIntegrationsPageModule' }
|
||||
|
||||
|
||||
|
||||
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
/*RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules}),*/
|
||||
RouterModule.forRoot(routes),
|
||||
],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class AppRoutingModule { }
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
<app-generic-header
|
||||
showBack="true"
|
||||
[headerText]="'login,announcement' | translate">
|
||||
</app-generic-header>
|
||||
|
||||
<ion-content style="--background:#F4F4F4;">
|
||||
<ion-searchbar (ionInput)="filterList($event)" style="--background: white"></ion-searchbar>
|
||||
<ion-list style="background: #f4f4f4;">
|
||||
<div *ngFor="let item of arrList; let i = index"
|
||||
[ngClass]="i>0 && !item.Open ? 'class-dev-close': 'class-dev-open'"
|
||||
style="background: white; margin: 20px; padding: 0px;">
|
||||
<ion-card *ngIf="i === 0 && !item.isOpen" (click)="toggleAnnouncement(item)" style="margin: 0px;">
|
||||
<img [src]="item.img" class="image-center">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h2 class="text-style">{{item.title}}</h2>
|
||||
<p class="text-style">{{item.body}}</p>
|
||||
<p class="text-style">{{item.date}}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-card>
|
||||
|
||||
<ion-card *ngIf="i === 0 && item.isOpen" (click)="toggleAnnouncement(item)" style="margin: 0px;">
|
||||
<ion-card-header style="background: transparent;">
|
||||
<ion-card-title style="font-size: 20px; margin: 5px;">{{item.title}} <br>
|
||||
<p style="font-size: 12px; color: gray;">{{item.date}}</p>
|
||||
</ion-card-title>
|
||||
<img [src]="item.img" class="image-center">
|
||||
</ion-card-header>
|
||||
<ion-card-content>
|
||||
<p>{{item.body}}</p>
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
|
||||
<ion-item *ngIf="i > 0 && !item.isOpen" (click)="toggleAnnouncement(item)" lines='none'
|
||||
style="border: 1px solid lightgray; border-radius: 30px; height: 100px;">
|
||||
<img [src]="item.img" style="width: 30%;">
|
||||
<ion-label style="margin: 5px;">
|
||||
<h2>{{item.title}}</h2>
|
||||
<p>{{item.body}}</p>
|
||||
<p>{{item.date}}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
<ion-card *ngIf="i > 0 && item.isOpen" (click)="toggleAnnouncement(item)" style="margin: 0px;">
|
||||
<ion-card-header style="background: transparent;">
|
||||
<ion-card-title style="font-size: 20px; margin: 5px;">{{item.title}} <br>
|
||||
<p style="font-size: 12px; color: gray;">{{item.date}}</p>
|
||||
</ion-card-title>
|
||||
<img [src]="item.img" class="image-center">
|
||||
</ion-card-header>
|
||||
<ion-card-content>
|
||||
<p>{{item.body}}</p>
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
</div>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
@ -0,0 +1,22 @@
|
||||
.image-center{
|
||||
width: 50%;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.text-style{
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.class-dev-close{
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 30px;
|
||||
}
|
||||
.class-dev-open{}
|
||||
|
||||
.class-item-open{
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 30px;
|
||||
height: 100px;
|
||||
}
|
||||
.class-item-close{}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AnnouncementComponent } from './announcement.component';
|
||||
|
||||
describe('AnnouncementComponent', () => {
|
||||
let component: AnnouncementComponent;
|
||||
let fixture: ComponentFixture<AnnouncementComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ AnnouncementComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AnnouncementComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,62 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { detachEmbeddedView } from '@angular/core/src/view';
|
||||
|
||||
@Component({
|
||||
selector: 'app-announcement',
|
||||
templateUrl: './announcement.component.html',
|
||||
styleUrls: ['./announcement.component.scss'],
|
||||
})
|
||||
export class AnnouncementComponent implements OnInit {
|
||||
dt = new Date().toJSON().slice(0,10).replace(/-/g,'/');
|
||||
public arr =[
|
||||
{
|
||||
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.",
|
||||
img:"../assets/imgs/HMG.png",
|
||||
date: this.dt,
|
||||
isopen: true
|
||||
},
|
||||
{
|
||||
title:"External Visit",
|
||||
body:"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).",
|
||||
img:"../assets/imgs/M.png",
|
||||
date: this.dt,
|
||||
isopen: false
|
||||
},
|
||||
{
|
||||
title:"Maintenance Activity",
|
||||
body:"The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from 'de Finibus Bonorum et Malorum' by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.",
|
||||
img:"../assets/imgs/M.png",
|
||||
date: this.dt,
|
||||
isopen: false
|
||||
},
|
||||
];
|
||||
public arrList = [];
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
this.arrList = this.arr;
|
||||
}
|
||||
|
||||
filterList(event) {
|
||||
const val = event.target.value;
|
||||
if (val === '') {
|
||||
this.arrList = this.arr;
|
||||
}
|
||||
this.arrList = this.arr.filter((item) => {
|
||||
return (item.title.toLowerCase().indexOf(val.toLowerCase()) > -1);
|
||||
});
|
||||
}
|
||||
|
||||
toggleAnnouncement(item){
|
||||
this.arrList.forEach(element => {
|
||||
if(element.title === item.title){
|
||||
element.isOpen = !element.isOpen;
|
||||
}else{
|
||||
element.isOpen = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
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 { HmgCommonModule } from '../hmg-common/hmg-common.module';
|
||||
|
||||
import { BackendIntegrationsPage } from './backend-integrations.page';
|
||||
import { AnnouncementComponent } from './announcement/announcement.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
component: BackendIntegrationsPage,
|
||||
children: [
|
||||
{
|
||||
path: 'announcement',
|
||||
component: AnnouncementComponent
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
IonicModule,
|
||||
HmgCommonModule,
|
||||
RouterModule.forChild(routes)
|
||||
],
|
||||
declarations: [BackendIntegrationsPage, AnnouncementComponent]
|
||||
})
|
||||
export class BackendIntegrationsPageModule {}
|
||||
@ -0,0 +1,3 @@
|
||||
<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 { BackendIntegrationsPage } from './backend-integrations.page';
|
||||
|
||||
describe('BackendIntegrationsPage', () => {
|
||||
let component: BackendIntegrationsPage;
|
||||
let fixture: ComponentFixture<BackendIntegrationsPage>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ BackendIntegrationsPage ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(BackendIntegrationsPage);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-backend-integrations',
|
||||
templateUrl: './backend-integrations.page.html',
|
||||
styleUrls: ['./backend-integrations.page.scss'],
|
||||
})
|
||||
export class BackendIntegrationsPage implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
<div class="main-container" [ngStyle]="active === true ? {'color': color} : {}">
|
||||
<div class="main-container-radius" [ngStyle]="active === true ? {'color': '#ffffff'} : {'color': color}"></div>
|
||||
<span class="text-span" [ngStyle]="active === true ? {'color': '#269DB8'} : {}">{{text}}</span>
|
||||
</div>
|
||||
@ -0,0 +1,20 @@
|
||||
|
||||
|
||||
.main-container{
|
||||
width: 47px;
|
||||
position: relative;
|
||||
margin-left: 9px;
|
||||
}
|
||||
.main-container-radius{
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
}
|
||||
.number-span{
|
||||
display: block;
|
||||
|
||||
}
|
||||
|
||||
.text-span{
|
||||
font-size: 13px;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CardCalendarComponent } from './card-calendar.component';
|
||||
|
||||
describe('CardCalendarComponent', () => {
|
||||
let component: CardCalendarComponent;
|
||||
let fixture: ComponentFixture<CardCalendarComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ CardCalendarComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CardCalendarComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,18 @@
|
||||
import { Component, OnInit, Input } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-card-calendar',
|
||||
templateUrl: './card-calendar.component.html',
|
||||
styleUrls: ['./card-calendar.component.scss'],
|
||||
})
|
||||
export class CardCalendarComponent implements OnInit {
|
||||
|
||||
@Input() text: string;
|
||||
@Input() active: boolean;
|
||||
@Input() color: string;
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
}
|
||||
@ -0,0 +1,195 @@
|
||||
|
||||
|
||||
<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','HR-request')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
|
||||
<ion-content>
|
||||
<div *ngIf="!showRequestDetails" class="contentBg">
|
||||
<div class="result-graph" >
|
||||
<div class="user-info">
|
||||
<div class="user-image-container">
|
||||
<div class="user-image">
|
||||
<img class="img" [src]="EmpImg ? 'data:image/png;base64,'+ EmpImg : '../assets/imgs/profile.png'" alt="Team Member Image"/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-top: 18px;">
|
||||
|
||||
<span class="Nametext">{{EmpName}}</span>
|
||||
<p style=" font-size: 12px; color: rgb(128, 124, 124);">{{EmpEmail}}</p>
|
||||
<!-- <span>{{EmpJob}}</span> -->
|
||||
</div>
|
||||
<div >
|
||||
<ion-row>
|
||||
<ion-col style="border-right: 1px solid rgb(221 221 221);">
|
||||
<p style="font-size: 12px; color: rgb(128, 124, 124);">{{ts.trPK('userProfile','role')}}</p>
|
||||
<span class="Boldtext">{{EmpJob}}</span>
|
||||
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<p style="font-size: 12px; color: rgb(128, 124, 124);">{{ts.trPK('userProfile','empNo')}}</p>
|
||||
|
||||
<span class="Boldtext">{{EmpNum}}</span>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="employee-information-indetail">
|
||||
<ion-row style="padding-left: 13px;">
|
||||
<ion-col>
|
||||
<p style="font-size: 16px; font-family: WorkSans-Bold; margin-top: 15px;">{{ts.trPK('userProfile','profile-details')}}</p>
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','category')}}</h2>
|
||||
<p>{{EmpCatMeaning}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','address')}}</h2>
|
||||
<p>{{EmpLocation}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','phone-no')}}</h2>
|
||||
<p>{{EmpMobile}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','busG')}}</h2>
|
||||
<p>{{EmpOrgName}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','job')}}</h2>
|
||||
<p>{{EmpJob}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','payrol')}}</h2>
|
||||
<p>{{EmpPayrol}}</p>
|
||||
</ion-col>
|
||||
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','position')}}</h2>
|
||||
<p>{{EmpPosition}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12" style="border-bottom: none;">
|
||||
<h2>{{ts.trPK('userProfile','grade')}}</h2>
|
||||
<p>{{EmpGRADENAME}}</p>
|
||||
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
<div>
|
||||
<ion-button class="sendCodeBtn" (click)="createRequest()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ///////////////////////////////////////////////////////////////////next page -->
|
||||
|
||||
<!-- <div>
|
||||
<div class="verify-code">
|
||||
<ion-row style=" margin-left: 9px; margin-bottom: 13px;">
|
||||
<ion-col style="font-size: 12px; color: rgb(128, 124, 124);">{{ts.trPK('userProfile','code-sent')}}</ion-col>
|
||||
<ion-col class="Boldtext"> {{EmpMobile}}</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<ion-row dir="ltr">
|
||||
<ion-col [size]="12">
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()" #ref autofocus="true">
|
||||
</ion-input>
|
||||
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()"></ion-input>
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()"></ion-input>
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()"></ion-input>
|
||||
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
<div>
|
||||
<ion-button class="sendVerifyBtn" (click)="VerifyCode()" >{{ts.trPK('userProfile','verify-code')}}</ion-button>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
|
||||
<!-- ///////////////////////////////////////////////////////////////////next page -->
|
||||
|
||||
<div *ngIf="showRequestDetails" class="result-serviceType">
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','ServiceType')}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<ion-row class="custom-radio">
|
||||
<ion-radio-group (ionChange)="showSelectedField($event)" class="radio-list">
|
||||
|
||||
<ion-radio value="HR Services" [color]="myColor">HR Services</ion-radio>
|
||||
<ion-label class="text-label" >HR Services</ion-label>
|
||||
|
||||
<ion-radio value="Complaints" [color]="myColor" >Complaints</ion-radio>
|
||||
<ion-label class="text-label">Complaints</ion-label>
|
||||
|
||||
<ion-radio value="Inquiry" [color]="myColor" >Inquiry</ion-radio>
|
||||
<ion-label class="text-label">Inquiry</ion-label>
|
||||
|
||||
</ion-radio-group>
|
||||
</ion-row>
|
||||
</div>
|
||||
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','DeptName')}}</span>
|
||||
</div>
|
||||
<div class="filed">
|
||||
<label class="selectLabel">Select Department</label>
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','RelatedSection')}}</span>
|
||||
</div>
|
||||
<div class="filed">
|
||||
<label class="selectLabel">Select Section</label>
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','RelatedTopic')}}</span>
|
||||
</div>
|
||||
<div class="filed">
|
||||
<label class="selectLabel">Select Topic</label>
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','SupportingDocument')}}</span>
|
||||
</div>
|
||||
<div style="margin-left: 15px; margin-top: 12px;">
|
||||
<img (click)="uploadDocument()" src="../assets/imgs/add-photo.svg">
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','Description')}}</span>
|
||||
</div>
|
||||
<div class="filedDesc">
|
||||
<label class="labelDesc">Description</label>
|
||||
</div>
|
||||
|
||||
<ion-row style="margin-left: 5px;">
|
||||
<div class="cancelRequest">
|
||||
<ion-button (click)="cancelRequest()">Cancel
|
||||
</ion-button>
|
||||
</div>
|
||||
<div class="submitRequest">
|
||||
<ion-button (click)="submitRequest()">Submit
|
||||
</ion-button>
|
||||
</div>
|
||||
</ion-row>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
@ -0,0 +1,328 @@
|
||||
|
||||
|
||||
.header-toolbar-new{
|
||||
--background: #269DB8;
|
||||
}
|
||||
|
||||
.contentBg{
|
||||
padding: 0px 20px;
|
||||
}
|
||||
|
||||
.contentBg:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
background: #269DB8;
|
||||
height: 140px;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: 0px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1px) and (max-width:767px){
|
||||
.result-graph {
|
||||
position: relative;
|
||||
background: white;
|
||||
// margin-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 56px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding-top: 12px;
|
||||
}}
|
||||
|
||||
@media screen and (min-width: 768px) and (max-width:1024px){
|
||||
.result-graph {
|
||||
position: relative;
|
||||
background: white;
|
||||
// margin-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 89px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding-top: 114px !important;
|
||||
}}
|
||||
|
||||
.user-info{
|
||||
text-align: center;
|
||||
margin-bottom: 3px;
|
||||
.user-image-container{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 24px;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
margin: 0 auto;
|
||||
align-items: center;
|
||||
}}
|
||||
|
||||
.Boldtext{
|
||||
font-size: 13px;
|
||||
font-family: WorkSans-Bold;
|
||||
color: black !important;
|
||||
display: block !important;
|
||||
// line-height: 0px !important;
|
||||
}
|
||||
|
||||
.Nametext{
|
||||
font-size: 15px;
|
||||
font-family: WorkSans-Bold;
|
||||
color: black !important;
|
||||
display: block !important;
|
||||
// line-height: 0px !important;
|
||||
}
|
||||
|
||||
.employee-information-indetail{
|
||||
background: white;
|
||||
margin-top: 15px;
|
||||
border-radius: 20px;
|
||||
margin-bottom: 15px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
ion-col{
|
||||
padding: 15px;
|
||||
// border-bottom: 1px solid #ccc;
|
||||
}
|
||||
h2{
|
||||
font-size: 13px;
|
||||
// font-family: WorkSans-Bold;
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
color: rgb(128, 124, 124);
|
||||
}
|
||||
p{
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
font-family: WorkSans-Bold;
|
||||
// margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1px) and (max-width:767px){
|
||||
.user-image{
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
border-radius: 80px;
|
||||
/* border: 1px solid #ccc; */
|
||||
margin-top: -125px;
|
||||
|
||||
}}
|
||||
@media screen and (min-width: 768px) and (max-width:1024px){
|
||||
.user-image{
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
border-radius: 80px;
|
||||
margin-bottom: 371px;
|
||||
}}
|
||||
|
||||
.img{
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: inline-flex;
|
||||
overflow: hidden;
|
||||
background: transparent;
|
||||
border-radius: 70% !important;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.sendCodeBtn{
|
||||
--background: #269DB8;
|
||||
color: white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 5px !important;
|
||||
margin-top: 15px !important;
|
||||
margin-bottom: 20px !important;
|
||||
/* border-radius: 4px; */
|
||||
height: 26px;
|
||||
/* padding: 6px 24px; */
|
||||
font-size: 15px;
|
||||
width: 322px;
|
||||
}
|
||||
|
||||
.verify-code{
|
||||
position: relative;
|
||||
background: white;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding: 21px 3px 34px 14px;
|
||||
margin: 25px 22px 2px 22px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// .sms_code{
|
||||
// margin: 0px;
|
||||
// text-align: center;
|
||||
// }
|
||||
|
||||
ion-input {
|
||||
margin: 0 5px;
|
||||
text-align: center;
|
||||
line-height: 0;
|
||||
font-size: 32px;
|
||||
//border: solid 1px #ccc;
|
||||
border: 1px solid #ccc !important;
|
||||
//box-shadow: 0 0 5px #ccc inset;
|
||||
outline: none;
|
||||
width: 20%;
|
||||
transition: all .2s ease-in-out;
|
||||
border-radius: 3px;
|
||||
display: inline-block;
|
||||
&:focus {
|
||||
border-color:var(--ion-color-secondary) !important;
|
||||
box-shadow: 0 0 5px var(--ion-color-secondary) !important;
|
||||
}
|
||||
|
||||
&::selection {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.sendVerifyBtn{
|
||||
--background: #269DB8;
|
||||
color: white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-top: 15px !important;
|
||||
margin-bottom: 20px !important;
|
||||
/* border-radius: 4px; */
|
||||
height: 26px;
|
||||
font-size: 15px;
|
||||
width: 322px;
|
||||
margin-left: 22px;
|
||||
}
|
||||
|
||||
.custom-radio .radio-icon {
|
||||
margin: 0px;
|
||||
border-radius: 50%;
|
||||
border-width: var(--border-width);
|
||||
border-style: var(--border-style);
|
||||
border-color: #dcdcdc;
|
||||
margin-top: 6px !important;
|
||||
border-color: #d8d4d4 !important;
|
||||
margin-bottom: 18px;}
|
||||
|
||||
.text-label{
|
||||
color: black !important;
|
||||
font-size: 10px;
|
||||
margin-left: 15px;
|
||||
margin-right: 18px;
|
||||
font-family: 'WorkSans-Bold';
|
||||
}
|
||||
|
||||
.radio-list{
|
||||
background: white;
|
||||
margin-left: 18px;
|
||||
/* margin-right: 10px; */
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.result-serviceType{
|
||||
position: relative;
|
||||
background: white;
|
||||
padding-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding-top: 12px;
|
||||
margin: 25px 22px 2px 22px;
|
||||
padding-bottom: 241px;
|
||||
}
|
||||
|
||||
.request-heading {
|
||||
span {
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
/* font-weight: bold; */
|
||||
font-size: 14px;
|
||||
font-family: 'WorkSans-Bold';
|
||||
}
|
||||
}
|
||||
|
||||
.filed{
|
||||
border-radius: 30px;
|
||||
border: 1px solid #d3d5d5 !important;
|
||||
margin: 10px;
|
||||
padding-left: 11px !important;
|
||||
padding-top: 6px !important;
|
||||
color: #636161;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.filedDesc{
|
||||
border-radius: 30px;
|
||||
border: 1px solid #d3d5d5 !important;
|
||||
margin: 10px;
|
||||
padding-left: 11px !important;
|
||||
padding-top: 6px !important;
|
||||
color: #636161;
|
||||
padding-bottom: 110px;
|
||||
}
|
||||
|
||||
.labelDesc{
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
color: #adabab;
|
||||
}
|
||||
|
||||
.selectLabel{
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
font-size: 14px;
|
||||
/* font-family: 'WorkSans-Bold'; */
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.cancelRequest{
|
||||
padding: 10px 0px 10px 10px;
|
||||
ion-button{
|
||||
border-radius: 7px;
|
||||
padding: 12px 25px 12px 25px;
|
||||
background: #d00a0a;
|
||||
--background: transparent;
|
||||
--box-shadow: none !important;
|
||||
height: auto;
|
||||
min-height: inherit;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.submitRequest{
|
||||
padding: 10px 10px 10px 1px;
|
||||
ion-button{
|
||||
border-radius: 7px;
|
||||
padding: 12px 25px 12px 25px;
|
||||
background: #19a163;
|
||||
--background: transparent;
|
||||
--box-shadow: none !important;
|
||||
height: auto;
|
||||
min-height: inherit;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { HRRequestComponent } from './hr-request.component';
|
||||
|
||||
describe('HRRequestComponent', () => {
|
||||
let component: HRRequestComponent;
|
||||
let fixture: ComponentFixture<HRRequestComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ HRRequestComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HRRequestComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,131 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Platform, Events, MenuController } from '@ionic/angular';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
|
||||
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
|
||||
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
|
||||
import { MyTeamService } from '../service/my-team.service';
|
||||
import { Location } from '@angular/common';
|
||||
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
|
||||
import { LoginModel } from 'src/app/authentication/models/LoginModel';
|
||||
import { SendActivationByType } from 'src/app/authentication/models/sendActivationByType';
|
||||
|
||||
@Component({
|
||||
selector: 'app-hr-request',
|
||||
templateUrl: './hr-request.component.html',
|
||||
styleUrls: ['./hr-request.component.scss'],
|
||||
})
|
||||
export class HRRequestComponent implements OnInit {
|
||||
|
||||
public EmpName : string;
|
||||
public EmpNum : string;
|
||||
public EmpGroup : string;
|
||||
public EmpMobile : string;
|
||||
public EmpJob : string;
|
||||
public EmpOrgName : string;
|
||||
public EmpPayrol : string;
|
||||
public EmpPosition : string;
|
||||
public EmpEmail: string;
|
||||
public EmpCatMeaning:string;
|
||||
public EmpGRADENAME : string;
|
||||
public EmpLocation : string;
|
||||
public EmpImg : string;
|
||||
public userImage: any = '../assets/imgs/profile.png';
|
||||
public loginData = new LoginModel();
|
||||
public searchKeySelect = 'Complaints';
|
||||
myColor: string = 'secondary';
|
||||
public showRequestDetails = false;
|
||||
|
||||
|
||||
public direction: string;
|
||||
constructor(
|
||||
public ts: TranslatorService,
|
||||
public cs: CommonService,
|
||||
public authService: AuthenticationService,
|
||||
public sharedData: SharedDataService,
|
||||
public events: Events,
|
||||
public myTeamService: MyTeamService,
|
||||
private location: Location,
|
||||
private menu: MenuController,
|
||||
|
||||
) {
|
||||
this.direction = TranslatorService.getCurrentDirection();
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.getUserInformation();
|
||||
|
||||
}
|
||||
|
||||
goback() {
|
||||
this.location.back();
|
||||
|
||||
}
|
||||
|
||||
getUserInformation(){
|
||||
const request = {
|
||||
P_SELECTED_EMPLOYEE_NUMBER:"121816",
|
||||
P_SELECTED_RESP_ID:-999,
|
||||
P_PAGE_NUM:1,
|
||||
P_PAGE_LIMIT:1
|
||||
|
||||
};
|
||||
this.myTeamService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
|
||||
{
|
||||
this.handleUserInfoResult(result);
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
handleUserInfoResult(result){
|
||||
this.EmpName = result.MemberInformationList[0].EMPLOYEE_NAME;
|
||||
console.log("____________" + this.EmpName);
|
||||
this.EmpNum = result.MemberInformationList[0].EMPLOYEE_NUMBER;
|
||||
this.EmpGroup = result.MemberInformationList[0].BUSINESS_GROUP_NAME;
|
||||
this.EmpMobile = result.MemberInformationList[0].EMPLOYEE_MOBILE_NUMBER;
|
||||
this.EmpJob = result.MemberInformationList[0].JOB_NAME;
|
||||
this.EmpOrgName = result.MemberInformationList[0].ORGANIZATION_NAME;
|
||||
this.EmpPayrol = result.MemberInformationList[0].PAYROLL_NAME;
|
||||
this.EmpPosition = result.MemberInformationList[0].POSITION_NAME;
|
||||
this.EmpEmail = result.MemberInformationList[0].EMPLOYEE_EMAIL_ADDRESS;
|
||||
this.EmpCatMeaning = result.MemberInformationList[0].EMPLOYMENT_CATEGORY_MEANING;
|
||||
this.EmpGRADENAME = result.MemberInformationList[0].GRADE_NAME;
|
||||
this.EmpLocation = result.MemberInformationList[0].LOCATION_NAME;
|
||||
this.EmpImg = result.MemberInformationList[0].EMPLOYEE_IMAGE
|
||||
// console.log("total no "+this.EmpTotal)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// public sendActivationCode() {
|
||||
|
||||
// }
|
||||
|
||||
|
||||
// VerifyCode(){
|
||||
|
||||
// }
|
||||
createRequest(){
|
||||
if(this.showRequestDetails){
|
||||
this.showRequestDetails = false
|
||||
|
||||
}else{
|
||||
this.showRequestDetails = true
|
||||
}}
|
||||
|
||||
|
||||
public cancelRequest() {
|
||||
this.cs.openMyRequestPage();
|
||||
this.menu.toggle();
|
||||
}
|
||||
|
||||
submitRequest(){
|
||||
|
||||
}
|
||||
|
||||
uploadDocument(){
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
|
||||
|
||||
<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>
|
||||
@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
.sendCodeBtn{
|
||||
--background: #269DB8;
|
||||
color: white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 23px !important;
|
||||
margin-top: 15px !important;
|
||||
margin-bottom: 20px !important;
|
||||
/* border-radius: 4px; */
|
||||
height: 26px;
|
||||
/* padding: 6px 24px; */
|
||||
font-size: 15px;
|
||||
width: 322px;
|
||||
}
|
||||
|
||||
.empty-en{
|
||||
color: black;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
font-family: WorkSans-Bold;
|
||||
margin: 50px 0px 0px 100px;
|
||||
}
|
||||
.empty-ar{
|
||||
color: black;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
font-family: WorkSans-Bold;
|
||||
margin: 50px 100px 0px 0px;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { MyRequestComponent } from './my-request.component';
|
||||
|
||||
describe('MyRequestComponent', () => {
|
||||
let component: MyRequestComponent;
|
||||
let fixture: ComponentFixture<MyRequestComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ MyRequestComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(MyRequestComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,46 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Platform, Events, MenuController } from '@ionic/angular';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
|
||||
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
|
||||
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
|
||||
import { MyTeamService } from '../service/my-team.service';
|
||||
import { Location } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-my-request',
|
||||
templateUrl: './my-request.component.html',
|
||||
styleUrls: ['./my-request.component.scss'],
|
||||
})
|
||||
export class MyRequestComponent implements OnInit {
|
||||
public direction : String;
|
||||
|
||||
|
||||
constructor(
|
||||
public ts: TranslatorService,
|
||||
public cs: CommonService,
|
||||
public authService: AuthenticationService,
|
||||
public sharedData: SharedDataService,
|
||||
public events: Events,
|
||||
public myTeamService: MyTeamService,
|
||||
private location: Location,
|
||||
private menu: MenuController,
|
||||
|
||||
) {
|
||||
this.direction = TranslatorService.getCurrentLanguageName();
|
||||
}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
goback() {
|
||||
this.location.back();
|
||||
|
||||
}
|
||||
|
||||
public openHRRequestPage() {
|
||||
this.cs.openHRRequestPage();
|
||||
this.menu.toggle();
|
||||
}
|
||||
|
||||
}
|
||||
|
After Width: | Height: | Size: 237 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30">
|
||||
<g id="Group_7231" data-name="Group 7231" transform="translate(-111.351 -245.557)">
|
||||
<circle id="Ellipse_152" data-name="Ellipse 152" cx="15" cy="15" r="15" transform="translate(111.351 245.557)" fill="#1fa169"/>
|
||||
<path id="Path_13" data-name="Path 13" d="M11.706,9.111c-.791-.676-1.593-1.086-2.375-.411l-.466.408c-.341.3-.976,1.681-3.429-1.141S4.443,4.71,4.785,4.416l.469-.409c.777-.677.484-1.529-.077-2.406L4.839,1.07C4.276.2,3.663-.38,2.884.3L2.463.664A3.952,3.952,0,0,0,.922,3.279C.641,5.138,1.528,7.266,3.559,9.6s4.014,3.51,5.895,3.489a3.962,3.962,0,0,0,2.8-1.161l.422-.368c.777-.675.294-1.363-.5-2.041Z" transform="translate(119.204 254.187)" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 769 B |
@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="19.572" height="21" viewBox="0 0 19.572 21">
|
||||
<g id="phone-receiver-silhouette" transform="translate(-0.872 0)">
|
||||
<path id="Path_13" data-name="Path 13" d="M18.252,14.616c-1.269-1.085-2.556-1.742-3.809-.659l-.748.655c-.547.475-1.565,2.7-5.5-1.831S6.6,7.556,7.149,7.085L7.9,6.429c1.246-1.086.776-2.453-.123-3.86l-.543-.852C6.332.313,5.349-.609,4.1.475l-.675.59A6.339,6.339,0,0,0,.953,5.26C.5,8.242,1.924,11.656,5.182,15.4s6.439,5.63,9.456,5.6a6.356,6.356,0,0,0,4.5-1.862l.678-.591c1.246-1.083.472-2.186-.8-3.274Z" transform="translate(0 0)" fill="#259cb8"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 622 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="17.876" height="17.876" viewBox="0 0 17.876 17.876">
|
||||
<g id="new-page" transform="translate(-1 -1)">
|
||||
<path id="Path_14" data-name="Path 14" d="M20.7,7H7.6a.6.6,0,0,0-.6.6V20.7a.6.6,0,0,0,.6.6H20.7a.6.6,0,0,0,.6-.6V7.6A.6.6,0,0,0,20.7,7Zm-2.979,7.746H14.746v2.979H13.554V14.746H10.575V13.554h2.979V10.575h1.192v2.979h2.979Z" transform="translate(-2.425 -2.425)" fill="#fff"/>
|
||||
<path id="Path_15" data-name="Path 15" d="M15.3,3.383V1.6a.6.6,0,0,0-.6-.6H1.6a.6.6,0,0,0-.6.6V14.7a.6.6,0,0,0,.6.6H3.383V5.171A1.788,1.788,0,0,1,5.171,3.383Z" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 619 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="17.876" height="17.876" viewBox="0 0 17.876 17.876">
|
||||
<g id="new-page" transform="translate(-1 -1)">
|
||||
<path id="Path_14" data-name="Path 14" d="M20.7,7H7.6a.6.6,0,0,0-.6.6V20.7a.6.6,0,0,0,.6.6H20.7a.6.6,0,0,0,.6-.6V7.6A.6.6,0,0,0,20.7,7Zm-2.979,7.746H14.746v2.979H13.554V14.746H10.575V13.554h2.979V10.575h1.192v2.979h2.979Z" transform="translate(-2.425 -2.425)" fill="#fff"/>
|
||||
<path id="Path_15" data-name="Path 15" d="M15.3,3.383V1.6a.6.6,0,0,0-.6-.6H1.6a.6.6,0,0,0-.6.6V14.7a.6.6,0,0,0,.6.6H3.383V5.171A1.788,1.788,0,0,1,5.171,3.383Z" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 619 B |
@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="15.663" height="17.821" viewBox="0 0 15.663 17.821">
|
||||
<g id="user_19_" data-name="user (19)" transform="translate(-31)">
|
||||
<g id="Group_7233" data-name="Group 7233" transform="translate(34.133)">
|
||||
<g id="Group_7232" data-name="Group 7232">
|
||||
<path id="Path_16" data-name="Path 16" d="M125.7,0a4.7,4.7,0,1,0,4.7,4.7A4.7,4.7,0,0,0,125.7,0Z" transform="translate(-121)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7235" data-name="Group 7235" transform="translate(31 10.442)">
|
||||
<g id="Group_7234" data-name="Group 7234">
|
||||
<path id="Path_17" data-name="Path 17" d="M44.678,302.026a6.7,6.7,0,0,0-4.8-2.026H37.787a6.7,6.7,0,0,0-4.8,2.026A6.848,6.848,0,0,0,31,306.857a.522.522,0,0,0,.522.522H46.141a.522.522,0,0,0,.522-.522A6.848,6.848,0,0,0,44.678,302.026Z" transform="translate(-31 -300)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 912 B |
@ -0,0 +1,34 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22.515" height="19.099" viewBox="0 0 22.515 19.099">
|
||||
<g id="group_2_" data-name="group (2)" transform="translate(0 -38.84)">
|
||||
<g id="Group_7238" data-name="Group 7238" transform="translate(17.523 49.151)">
|
||||
<g id="Group_7237" data-name="Group 7237" transform="translate(0 0)">
|
||||
<path id="Path_23" data-name="Path 23" d="M400.235,273.32h-1.741a4.53,4.53,0,0,1,.274,1.557v6.581a1.94,1.94,0,0,1-.112.65h2.879a1.952,1.952,0,0,0,1.95-1.95V276.57A3.254,3.254,0,0,0,400.235,273.32Z" transform="translate(-398.494 -273.32)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7240" data-name="Group 7240" transform="translate(0 49.151)">
|
||||
<g id="Group_7239" data-name="Group 7239">
|
||||
<path id="Path_24" data-name="Path 24" d="M4.717,274.878a4.529,4.529,0,0,1,.274-1.557H3.25A3.254,3.254,0,0,0,0,276.571v3.587a1.952,1.952,0,0,0,1.95,1.95H4.829a1.941,1.941,0,0,1-.112-.65Z" transform="translate(0 -273.321)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7242" data-name="Group 7242" transform="translate(6.017 47.458)">
|
||||
<g id="Group_7241" data-name="Group 7241" transform="translate(0 0)">
|
||||
<path id="Path_25" data-name="Path 25" d="M144.06,234.815h-3.981a3.254,3.254,0,0,0-3.25,3.25v6.581a.65.65,0,0,0,.65.65h9.181a.65.65,0,0,0,.65-.65v-6.581A3.254,3.254,0,0,0,144.06,234.815Z" transform="translate(-136.829 -234.815)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7244" data-name="Group 7244" transform="translate(7.349 38.84)">
|
||||
<g id="Group_7243" data-name="Group 7243" transform="translate(0 0)">
|
||||
<path id="Path_26" data-name="Path 26" d="M171.023,38.84a3.908,3.908,0,1,0,3.909,3.909A3.913,3.913,0,0,0,171.023,38.84Z" transform="translate(-167.114 -38.84)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7246" data-name="Group 7246" transform="translate(1.471 42.483)">
|
||||
<g id="Group_7245" data-name="Group 7245" transform="translate(0 0)">
|
||||
<path id="Path_27" data-name="Path 27" d="M36.366,121.689a2.922,2.922,0,1,0,2.923,2.923A2.926,2.926,0,0,0,36.366,121.689Z" transform="translate(-33.443 -121.689)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7248" data-name="Group 7248" transform="translate(15.198 42.483)">
|
||||
<g id="Group_7247" data-name="Group 7247" transform="translate(0 0)">
|
||||
<path id="Path_28" data-name="Path 28" d="M348.53,121.689a2.923,2.923,0,1,0,2.923,2.923A2.926,2.926,0,0,0,348.53,121.689Z" transform="translate(-345.607 -121.689)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="12.339" height="14.601" viewBox="0 0 12.339 14.601">
|
||||
<g id="calendar_26_" data-name="calendar (26)" transform="translate(-7.31 -1.5)">
|
||||
<path id="Path_18" data-name="Path 18" d="M7.31,38.632a.993.993,0,0,0,.993.993H18.656a.993.993,0,0,0,.993-.993V30.71H7.31Zm8.545-5.813h1.61v1.61h-1.61Zm0,2.737h1.61v1.61h-1.61Zm-3.179-2.737h1.608v1.61H12.675Zm0,2.737h1.608v1.61H12.675ZM9.492,32.818H11.1v1.61H9.492Zm0,2.737H11.1v1.61H9.492Z" transform="translate(0 -23.523)" fill="#259cb8"/>
|
||||
<path id="Path_19" data-name="Path 19" d="M54.275,4.755a.175.175,0,0,0,.175-.175v-2.9a.175.175,0,1,0-.35,0v2.9A.175.175,0,0,0,54.275,4.755Z" transform="translate(-37.681)" fill="#259cb8"/>
|
||||
<path id="Path_20" data-name="Path 20" d="M18.656,9.4H17.114v1.542a.528.528,0,1,1-1.055,0V9.4H10.9v1.542a.528.528,0,1,1-1.053,0V9.4H8.3a1,1,0,0,0-.993.993V13.2H19.649V10.393a1,1,0,0,0-.993-.993Z" transform="translate(0 -6.362)" fill="#259cb8"/>
|
||||
<path id="Path_21" data-name="Path 21" d="M22.275,4.824a.175.175,0,0,0,.177-.175v-2.9a.177.177,0,0,0-.352,0v2.9a.175.175,0,0,0,.175.175Z" transform="translate(-11.911 -0.069)" fill="#259cb8"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,6 @@
|
||||
<svg id="data-management_1_" data-name="data-management (1)" xmlns="http://www.w3.org/2000/svg" width="14.455" height="14.455" viewBox="0 0 14.455 14.455">
|
||||
<path id="Path_209" data-name="Path 209" d="M271.424,0H271V6.8h6.8V6.381A6.408,6.408,0,0,0,271.424,0Z" transform="translate(-263.349)" fill="#259cb8"/>
|
||||
<path id="Path_210" data-name="Path 210" d="M78.084,276.2a6.32,6.32,0,0,0,10.529-4.775V271h-5.33Z" transform="translate(-75.879 -263.349)" fill="#259cb8"/>
|
||||
<path id="Path_211" data-name="Path 211" d="M98.924,61H98.5a6.31,6.31,0,0,0-3.7,1.2l4.128,4.128Z" transform="translate(-92.12 -59.278)" fill="#259cb8"/>
|
||||
<path id="Path_212" data-name="Path 212" d="M2.021,122.787a6.25,6.25,0,0,0-.415,8.784l4.6-4.6Z" transform="translate(0 -119.32)" fill="#259cb8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 778 B |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16.567" height="19.604" viewBox="0 0 16.567 19.604">
|
||||
<g id="calendar_26_" data-name="calendar (26)" transform="translate(-7.31 -1.5)">
|
||||
<path id="Path_18" data-name="Path 18" d="M7.31,41.346a1.333,1.333,0,0,0,1.333,1.333h13.9a1.333,1.333,0,0,0,1.333-1.333V30.71H7.31Zm11.472-7.805h2.162V35.7H18.782Zm0,3.675h2.162v2.162H18.782Zm-4.268-3.675h2.159V35.7H14.514Zm0,3.675h2.159v2.162H14.514ZM10.24,33.541H12.4V35.7H10.24Zm0,3.675H12.4v2.162H10.24Z" transform="translate(0 -21.575)" fill="#fff"/>
|
||||
<path id="Path_19" data-name="Path 19" d="M54.335,5.87a.235.235,0,0,0,.235-.235v-3.9a.235.235,0,0,0-.47,0v3.9a.235.235,0,0,0,.235.235Z" transform="translate(-34.56)" fill="#fff"/>
|
||||
<path id="Path_20" data-name="Path 20" d="M22.544,9.4h-2.07v2.07a.708.708,0,0,1-1.417,0V9.4H12.127v2.07a.708.708,0,1,1-1.414,0V9.4H8.643A1.336,1.336,0,0,0,7.31,10.733V14.5H23.877V10.733A1.336,1.336,0,0,0,22.544,9.4Z" transform="translate(0 -5.835)" fill="#fff"/>
|
||||
<path id="Path_21" data-name="Path 21" d="M22.335,5.933a.235.235,0,0,0,.238-.235V1.8a.238.238,0,0,0-.473,0V5.7a.235.235,0,0,0,.235.235Z" transform="translate(-10.924 -0.063)" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="12.339" height="14.601" viewBox="0 0 12.339 14.601">
|
||||
<g id="calendar_26_" data-name="calendar (26)" transform="translate(-7.31 -1.5)">
|
||||
<path id="Path_18" data-name="Path 18" d="M7.31,38.632a.993.993,0,0,0,.993.993H18.656a.993.993,0,0,0,.993-.993V30.71H7.31Zm8.545-5.813h1.61v1.61h-1.61Zm0,2.737h1.61v1.61h-1.61Zm-3.179-2.737h1.608v1.61H12.675Zm0,2.737h1.608v1.61H12.675ZM9.492,32.818H11.1v1.61H9.492Zm0,2.737H11.1v1.61H9.492Z" transform="translate(0 -23.523)" fill="#259cb8"/>
|
||||
<path id="Path_19" data-name="Path 19" d="M54.275,4.755a.175.175,0,0,0,.175-.175v-2.9a.175.175,0,1,0-.35,0v2.9A.175.175,0,0,0,54.275,4.755Z" transform="translate(-37.681)" fill="#259cb8"/>
|
||||
<path id="Path_20" data-name="Path 20" d="M18.656,9.4H17.114v1.542a.528.528,0,1,1-1.055,0V9.4H10.9v1.542a.528.528,0,1,1-1.053,0V9.4H8.3a1,1,0,0,0-.993.993V13.2H19.649V10.393a1,1,0,0,0-.993-.993Z" transform="translate(0 -6.362)" fill="#259cb8"/>
|
||||
<path id="Path_21" data-name="Path 21" d="M22.275,4.824a.175.175,0,0,0,.177-.175v-2.9a.177.177,0,0,0-.352,0v2.9a.175.175,0,0,0,.175.175Z" transform="translate(-11.911 -0.069)" fill="#259cb8"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,6 @@
|
||||
<svg id="data-management_1_" data-name="data-management (1)" xmlns="http://www.w3.org/2000/svg" width="14.455" height="14.455" viewBox="0 0 14.455 14.455">
|
||||
<path id="Path_209" data-name="Path 209" d="M271.424,0H271V6.8h6.8V6.381A6.408,6.408,0,0,0,271.424,0Z" transform="translate(-263.349)" fill="#259cb8"/>
|
||||
<path id="Path_210" data-name="Path 210" d="M78.084,276.2a6.32,6.32,0,0,0,10.529-4.775V271h-5.33Z" transform="translate(-75.879 -263.349)" fill="#259cb8"/>
|
||||
<path id="Path_211" data-name="Path 211" d="M98.924,61H98.5a6.31,6.31,0,0,0-3.7,1.2l4.128,4.128Z" transform="translate(-92.12 -59.278)" fill="#259cb8"/>
|
||||
<path id="Path_212" data-name="Path 212" d="M2.021,122.787a6.25,6.25,0,0,0-.415,8.784l4.6-4.6Z" transform="translate(0 -119.32)" fill="#259cb8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 778 B |