Merge branch 'master-newdesign' into umar-issues

master
umasoodch 6 years ago
commit 490ef376c3

@ -443,9 +443,9 @@ export class SubmitAbsenceComponent implements OnInit {
this.textInput = new TextInput(
feildsList[i].SEGMENT_PROMPT,
feildsList[i].APPLICATION_COLUMN_NAME,
defaultValText,
defaultVal,
containerId,
defaultVal,
defaultValText,
feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG

@ -23,7 +23,7 @@
<ion-item class="item-input-login">
<img class="item-icon" src="assets/imgs/username.png" item-start />
<ion-label>{{ts.trPK('login','check-user-text1')}}</ion-label>
<ion-label>{{ts.trPK('login','check-user-place-holder')}}</ion-label>
<ion-input class="login-input" required type="text" [(ngModel)]="P_USER_NAME">
</ion-input>
</ion-item>

@ -32,8 +32,8 @@
</ion-col>
</ion-row>
<div *ngIf="onlySMSBox"><p>{{ts.trPK('login','verify-login-with')}}</p></div>
<div *ngIf="!onlySMSBox && FFloginType == 2"><p>{{ts.trPK('login','verify-fingerprint')}}</p></div>
<div *ngIf="!onlySMSBox && FFloginType == 3"><p>{{ts.trPK('login','verify-faceId')}}</p></div>
<div *ngIf="!onlySMSBox && FFloginType == 2"><p>{{ts.trPK('login','verify-fingerprint')}}</p></div>
<div *ngIf="!onlySMSBox && FFloginType == 3"><p>{{ts.trPK('login','verify-faceId')}}</p></div>
</ion-col>
</ion-row>

@ -147,8 +147,18 @@ export class ConfirmLoginComponent implements OnInit {
this.selectedOption = this.selectedOption && !this.onlySMSBox ? this.selectedOption : el.value;
switch (el.value) {
case 1:
localStorage.setItem('login-type', el.value);
this.loginWithSMS(el);
console.log(el.value);
localStorage.setItem("login-type",el.value);
console.log("login-type: "+ localStorage.getItem("login-type"))
if(this.FFloginType == 3 || this.FFloginType == 2 ){
this.cs.setActiveTypeLogin(el.value);
}else{
this.cs.setActiveTypeLogin(0);
}
this.loginWithSMS(el);
break;
case 2:
localStorage.setItem('login-type', el.value);
@ -159,7 +169,16 @@ export class ConfirmLoginComponent implements OnInit {
this.faceReconization(el);
break;
case 4:
localStorage.setItem('login-type', el.value);
console.log(el.value);
localStorage.setItem("login-type",el.value);
if(this.FFloginType == 3 || this.FFloginType == 2 ){
this.cs.setActiveTypeLogin(el.value);
}else{
this.cs.setActiveTypeLogin(0);
}
this.loginWithWhatsapp(el);
break;
default:
@ -197,11 +216,33 @@ export class ConfirmLoginComponent implements OnInit {
this.authService.setPublicFields(request);
request.OTP_SendType = type;
request.MobileNumber = this.loginData.MobileNumber;
request.IsMobileFingerPrint = 0;
request.P_USER_NAME = this.loginData.P_USER_NAME;
request.LogInTokenID = this.loginData.LogInTokenID;
request.P_LEGISLATION_CODE = 'SA';
this.authService.sendActivationCodeByType(request, () => { }, this.ts.trPK('general', 'ok'))
request.IsMobileFingerPrint =0;
request.P_USER_NAME=this.loginData.P_USER_NAME;
request.LogInTokenID =this.loginData.LogInTokenID;
request.P_LEGISLATION_CODE =this.loginData.P_LEGISLATION_CODE;//"SA";
// request.VersionID ="2.0";
// request.LanguageID = imeiData && imeiData.PreferredLanguage || request.LanguageID;
this.authService
.sendActivationCodeByType(
request,
() => { },
this.ts.trPK("general", "ok")
)
.subscribe((result: any) => {
if (result.isSMSSent) {
// tslint:disable-next-line: max-line-length

@ -6,4 +6,5 @@ export class LoginModel {
EMPLOYEE_DISPLAY_NAME: string;
EMPLOYEE_NAME:string;
EmployeeName:string;
P_LEGISLATION_CODE:string;
}

@ -21,9 +21,9 @@
<p class="leftDiv">{{'verificationcode,title' | translate}}
<span class="boldTxtNav">{{'verificationcode,verificationcode' | translate}}</span>
{{'verificationcode,by' | translate}}
<span *ngIf="loginType == 1" class="boldTxtNav">{{'verificationcode , sms' | translate}}</span>
<span *ngIf="loginType == 4" class="boldTxtNav">{{'verificationcode , whatsapp' | translate}}</span>
<span *ngIf="loginType == 1 || activeType == 1" class="boldTxtNav">{{'verificationcode , sms' | translate}}</span>
<span *ngIf="loginType == 4 || activeType == 4" class="boldTxtNav">{{'verificationcode , whatsapp' | translate}}</span>
{{'verificationcode,instruct' | translate}}
<span class="boldTxtNav">{{'general,submit' | translate}}</span
></p>

@ -47,6 +47,7 @@ export class SmsPageComponent implements OnInit {
user_name: string;
public isPostNoLoad = true;
loginType: any;
activeType: any;
constructor(
@ -60,6 +61,8 @@ export class SmsPageComponent implements OnInit {
) {}
ngOnInit() {
this.activeType=this.common.getActiveTypeLogin();
console.log("activeType :"+this.activeType);
this.count = 0;
this.initTimer();
this.startTimer();
@ -73,7 +76,14 @@ export class SmsPageComponent implements OnInit {
}
console.log('deviceToken :' + this.deviceToken);
this.loginTypeData = this.common.sharedService.getSharedData(SMSCheckRequest.SHARED_DATA, false);
this.loginType = this.loginTypeData.loginType;
if( this.loginTypeData){
this.loginType=this.loginTypeData.loginType;
console.log("loginType :"+this.loginTypeData.loginType);
}else{
this.loginType=1;
}
}
initTimer() {

@ -16,17 +16,18 @@
-->
<!-- <app-generic-header
<app-generic-header
showBack="!getPassdirfromNotifiPage"
[updateDirection]="getPassdirfromNotifiPage"
[headerText]="headerTitle"
(trigger)="closemodal()">
</app-generic-header> -->
(trigger)="closeModal()"
>
</app-generic-header>
<app-generic-header
<!-- <app-generic-header
showBack="true"
[headerText]="headerTitle">
</app-generic-header>
</app-generic-header> -->
<ion-content padding>
<div #containerDiv id="containerDiv">

@ -417,7 +417,8 @@ export class AddEitComponent implements OnInit {
}
}
closemodal() {
closeModal() {
console.log("closeModal");
this.updatedValues = [];
this.modalController.dismiss();
}
@ -664,6 +665,8 @@ export class AddEitComponent implements OnInit {
let obj = this.handleDefaultValueResult(result);
let val = obj.value;
let text = obj.text;
if (val==null){val="";}
if (text==null){text="";}
if (isStandardDate) {
console.log("isStandardDate");
elem.value = this.cs.reverseFormatDate(val);
@ -681,6 +684,7 @@ export class AddEitComponent implements OnInit {
if (val) {
elem.dataset.dtvalue = val;
elem.innerHTML = val;
elem.value=val;
} else {
elem.dataset.dtvalue = "";
elem.innerHTML = "";
@ -1216,7 +1220,11 @@ export class AddEitComponent implements OnInit {
this.eitResponse[i].DISPLAY_FLAG != "N"
) {
//time
if(elemVal.length>5){
elemVal = elemVal.substring(11, 16);
}else{
elemVal = elemVal;
}
}
if (this.eitResponse[i].REQUIRED_FLAG == "Y" && !elemVal) {
elem.classList.add("requiredClassElm");
@ -1225,11 +1233,11 @@ export class AddEitComponent implements OnInit {
} else {
elem.classList.remove("requiredClassElm");
}
if (elemVal != 'null'){
// if (elemVal != 'null'){
varcharValue = elemVal;
} else{
elemVal = null;
}
//} else{
// elemVal = null;
// }
valuseArr.push({
TRANSACTION_NUMBER: transNo,
NAME: this.eitResponse[i].APPLICATION_COLUMN_NAME,

@ -1,10 +1,11 @@
<ion-header>
<ion-toolbar class="header-toolbar-new">
<nav-buttons></nav-buttons>
<ion-title color="light">{{headerTitle}}</ion-title>
<ion-title [ngClass]=" direction === 'en' ? 'title' : 'title-ar'" color="light">{{headerTitle}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<!-------------------------------Start New design ---------------------------------------->
<ion-grid>

@ -229,7 +229,14 @@
.header-toolbar-new{
--background: #22c6b3;
}
.title{
margin-top: -37px;
margin-left: 85px;
}
.title-ar{
margin-top: -37px;
margin-right: 101px;
}
.confirmEitOkButton{
white-space: normal !important;
text-transform: capitalize !important;

@ -46,12 +46,17 @@ export class EitUpdateListComponent implements OnInit {
modal.onDidDismiss()
.then((data: any) => {
console.log("data" + data);
console.log("data" + data.data.updated);
console.log("data" + data.data.eitRequest.EITTransactionTBL);
// console.log("data" + data);
// console.log("data" + data.data.updated);
// console.log("data" + data.data.eitRequest.EITTransactionTBL);
if (data) {
if(data.data == undefined)
{
return;
}
else if (data.data) {
this.updatedData = this.updatedData ? this.updatedData.concat(data.data.updated) : data.data.updated;
this.notificationBodyRes[index].Collection_Notification = data.data.updated;
this.updateTransactionList(data.data.eitRequest.EITTransactionTBL);

@ -81,6 +81,7 @@ export class CommonService {
public updateImage:boolean=false;
public setUpdateImg:any;
DT: any;
activeType: any;
constructor(
public nav: NavController,
public router: Router,
@ -1430,5 +1431,12 @@ public getMonthNameAr(value: number): string {
return this.DT;
}
setActiveTypeLogin(activeType){
this.activeType=activeType;
}
getActiveTypeLogin(){
return this.activeType;
}
}

@ -64,6 +64,31 @@ public static host = 'https://uat.hmgwebservices.com/';
);
}
public postItg(
service: string,
data: any,
onError: any,
errorLabel?: string
): Observable<any> {
this.cs.startLoading();
return this.httpClient
.post<any>(
ConnectorService.host + service,
data,
ConnectorService.httpOptions
)
.pipe(
timeout(ConnectorService.timeOut),
retry(ConnectorService.retryTimes),
tap(
res => this.handleResponseItg(res, onError, errorLabel),
error => this.handleError(error, onError, errorLabel)
)
);
}
// public postNoLoad(service: string, data: any, onError: any): Observable<any> {
// return this.httpClient
// .post<any>(
@ -170,7 +195,10 @@ public static host = 'https://uat.hmgwebservices.com/';
this.cs.stopLoading();
this.cs.presentAcceptDialog(result.ErrorEndUserMessage, () => {
this.cs.sharedService.clearAll();
// this.cs.setIsTimeSessionOut(result.IsAuthenticated);
this.cs.openLogin();
});
return false;
} else if (result.ErrorType === 2 || result.ErrorType === 4) {
@ -183,10 +211,48 @@ public static host = 'https://uat.hmgwebservices.com/';
errorLabel,
result.ErrorEndUserMessage
);
//add flag if user not auth
}
}
}
public handleResponseItg(result: Response, onError: any, errorLabel: string, isPostNoLoad = false) {
console.log("handleResponseItg");
if (!isPostNoLoad) {
this.cs.stopLoading();
}
if (!this.cs.validResponse(result)) {
if (result.IsAuthenticated === false) {
this.cs.stopLoading();
this.cs.presentAcceptDialog(result.ErrorEndUserMessage, () => {
console.log("presentAcceptDialog");
this.cs.sharedService.clearAll();
// this.cs.setIsTimeSessionOut(result.IsAuthenticated);
this.cs.openLogin();
});
return false;
} else if (result.ErrorType === 2 || result.ErrorType === 4) {
console.log("ErrorType if");
// console.log("error expired");
this.cs.stopLoading();
} else {
console.log("ErrorType else");
this.cs.stopLoading();
// this.cs.showErrorMessageDialog(
// onError,
// errorLabel,
// result.Message
// );
//add flag if user not auth
}
}
}
public getURLText(
url: string,
onError: any,

@ -13,5 +13,6 @@ export class Response {
*/
public MessageStatus: number;
public SuccessMsg;
public Message;
}

@ -75,7 +75,8 @@ export class FileUploderProfileComponent implements OnInit {
async openFile() {
const actionSheet = await this.actionSheetCtrl.create({
header: 'Change Profile Photo',
// header: 'Change Profile Photo',
header: this.ts.trPK('userProfile', 'changeImg'),
buttons: [{
// text: 'Delete Current Image',
// role: 'destructive',
@ -85,7 +86,8 @@ export class FileUploderProfileComponent implements OnInit {
// this.deleteCurrent();
// }
// },{
text: 'Take Photo',
// text: 'Take Photo',
text: this.ts.trPK('general', 'takePhoto'),
icon: 'camera',
handler: () => {
console.log('Take Photo');
@ -94,7 +96,8 @@ export class FileUploderProfileComponent implements OnInit {
}
}, {
text: 'Choose from Library',
// text: 'Choose from Library',
text: this.ts.trPK('general', 'Choose-from-Library'),
icon: 'images',
handler: () => {
console.log('Favorite clicked');
@ -102,7 +105,8 @@ export class FileUploderProfileComponent implements OnInit {
}
}, {
text: 'Cancel',
// text: 'Cancel',
text: this.ts.trPK('general', 'cancel'),
icon: 'close',
role: 'cancel',
handler: () => {

@ -45,7 +45,7 @@
</ion-col>
<ion-col [size]="7" class="input-container" no-padding>
<ion-input *ngIf="showEmailInput" placeholder="Employee Email" [(ngModel)]="searchEmail" pattern="email"></ion-input>
<ion-input *ngIf="showUserNameOrNameInput" placeholder="Search" [(ngModel)]="searchNameOrUserName"></ion-input>
<ion-input *ngIf="showUserNameOrNameInput" placeholder ="{{ts.trPK('general','search')}}" [(ngModel)]="searchNameOrUserName"></ion-input>
</ion-col>
<ion-col [size]="2" style="background: #ccc;text-align: center;" no-padding (click)="searchEmployee()">
<ion-icon style="margin-top: 10px;font-size: 20px;" class="search-icons" color="light" name="search"></ion-icon>

@ -13,7 +13,7 @@ style="margin-right: -22px;margin-top: -10px;">
<ion-list>
<ion-radio-group>
<ion-list-header style="margin-bottom: 22px !important;">
<p class="Header">More Action</p>
<p class="Header"> {{ts.trPK('general','moreAction')}}</p>
</ion-list-header>
<div *ngFor="let button of actionBtns ">

@ -301,7 +301,7 @@ export class WorklistMainService {
itgrequest.EmployeeNumber = itgrequest.P_USER_NAME;
console.log(itgrequest);
console.log(actionURL);
return this.api.post(
return this.api.postItg(
actionURL,
itgrequest,
onError,

@ -221,6 +221,7 @@ export class WorkListMainItgComponent implements OnInit {
actionService(action, comments?, grantRequests?) {
let url: string;
let request = new itgRequest();
request.RequestType = this.request_name;
@ -236,17 +237,35 @@ export class WorkListMainItgComponent implements OnInit {
url = WorkListMainItgComponent.APPROVAL;
this.workListService.getITGActionRequest(request, url)
.subscribe((result: any) => {
if (result.MessageStatus != 1) {
this.common.presentAlert(this.ts.trPK('general', 'error-itg'));
} else if (result.MessageStatus == 1) {
console.log("hello action 1");
this.common.presentAlert(this.ts.trPK('worklistMain', 'Tran_Succ'));
this.confirmMsg(1)
// this.common.openNotificationPage();
this.skip();
}
});
} else if (action == 2) {//reject
url = WorkListMainItgComponent.REJECT;
this.workListService.getITGActionRequest(request, url)
.subscribe((result: any) => {
console.log("hello action 2");
if (result.MessageStatus != 1) {
this.common.presentAlert(this.ts.trPK('general', 'error-itg'));
} else if (result.MessageStatus == 1) {
this.common.presentAlert(this.ts.trPK('worklistMain', 'Tran_Succ'));
this.confirmMsg(2)
// this.common.openNotificationPage();
this.skip();
}
});
} else if (action == 3) {//request more info
request.NewUserEMPId = this.replcamentID;
@ -257,9 +276,20 @@ export class WorkListMainItgComponent implements OnInit {
request.Comments = comments;
this.workListService.getITGActionRequest(request, url)
.subscribe((result: any) => {
this.confirmMsg(3)
console.log("hello action 3");
if (result.MessageStatus != 1) {
//this.common.presentAlert(result.Message);
this.common.presentAlert(this.ts.trPK('general', 'error-itg'));
}
if (result.MessageStatus == 1) {
this.common.presentAlert(this.ts.trPK('worklistMain', 'Tran_Succ'));
this.confirmMsg(3)
// this.common.openNotificationPage();
this.skip();
}
});
}
} else if (action == 4) {//delegate
@ -267,9 +297,18 @@ export class WorkListMainItgComponent implements OnInit {
url = WorkListMainItgComponent.DELEGATE;
this.workListService.getITGActionRequest(request, url)
.subscribe((result: any) => {
console.log("hello action 4");
if (result.MessageStatus != 1) {
this.common.presentAlert(this.ts.trPK('general', 'error-itg'));
} else if (result.MessageStatus == 1) {
this.common.presentAlert(this.ts.trPK('worklistMain', 'Tran_Succ'));
this.confirmMsg(4)
// this.common.openNotificationPage();
this.skip();
}
});
} else if (action == 5) { //answer
url = WorkListMainItgComponent.ANSWER;
@ -278,9 +317,18 @@ export class WorkListMainItgComponent implements OnInit {
} else {
this.workListService.getITGActionRequest(request, url)
.subscribe((result: any) => {
console.log("hello action 5");
if (result.MessageStatus != 1) {
this.common.presentAlert(this.ts.trPK('general', 'error-itg'));
} else if (result.MessageStatus == 1) {
this.common.presentAlert(this.ts.trPK('worklistMain', 'Tran_Succ'));
this.confirmMsg(5)
// this.common.openNotificationPage();
this.skip();
}
});
}
} else if (action == 6) { //grant
@ -293,9 +341,17 @@ export class WorkListMainItgComponent implements OnInit {
request.AdditionalFields = this.grantRequest;
this.workListService.getITGActionRequest(request, url)
.subscribe((result: any) => {
console.log("hello action 6");
if (result.MessageStatus != 1) {
this.common.presentAlert(this.ts.trPK('general', 'error-itg'));
} else if (result.MessageStatus == 1) {
this.common.presentAlert(this.ts.trPK('worklistMain', 'Tran_Succ'));
this.confirmMsg(6)
// this.common.openNotificationPage();
this.skip();
}
});
} else {
this.common.presentAlert(this.ts.trPK('worklist', 'empty-comment'));
@ -315,6 +371,7 @@ export class WorkListMainItgComponent implements OnInit {
}
confirmMsg(action) {
console.log("confirmMsg");
if (action === 1) {
return this.ts.trPK('worklist', 'approveMsg');
}

@ -10,9 +10,9 @@
<ion-content >
<div *ngIf="!messageSuccess">
<div class="tipsPadding boldTxtNav">
<!-- <div [hidden]="!RFCEmployeeListListRes > 0" class="boldTxtNav">
{{'replacementRoll , msgRFC' | translate}}
</div>
</div> -->
<!-- <ion-list (ionChange)="radioChecked($event)" radio-group>
<ion-item *ngFor="let rfcEmployeeList of RFCEmployeeListListRes; let i = index;">
<ion-label>{{rfcEmployeeList.EMPLOYEE_DISPLAY_NAME}}</ion-label>
@ -23,7 +23,9 @@
<div class="noDataDiv" *ngIf="!RFCEmployeeListListRes">
<p>{{ 'worklistMain, no-employee-available' | translate}}</p>
</div>
<ion-item lines="none">
<div class="square-container">

@ -36,8 +36,9 @@
<div *ngIf="pInformation && pInformation != '' " class="tipsPadding">{{pInformation}}</div>
<ng-container *ngIf="activeSegment === 'info'">
<div *ngIf="pInformation && pInformation != '' " class="tipsPadding">{{pInformation}}</div>
<div *ngIf="notificationBodyRes?.length > 0 ">
<ion-card *ngFor="let item of notificationBodyRes;let i=index; ">
@ -71,7 +72,7 @@
<div style="margin: 10px; " *ngIf="subordinatesleaveList != undefined && subordinatesleaveList?.length > 0">
Employee will also on leave </div>
{{ts.trPK('worklistMain','employee-on-leave')}} </div>
<ion-item lines="none" class="subOrdinateList" *ngFor="let List of subordinatesleaveList;">
@ -102,12 +103,12 @@
<ion-row class="subOrdinateRow">
<ion-col>
<label class="label" for="">From</label><br />
<label class="label" for=""> {{ts.trPK('worklistMain','from')}}</label><br />
<label class="label" for="">{{List.DATE_START |date}}</label>
</ion-col>
<ion-col>
<label class="label" for="">To</label><br />
<label class="label" for="">{{ts.trPK('worklistMain','to')}}</label><br />
<label class="label" for="">{{List.DATE_END | date}}</label>
</ion-col>
</ion-row>
@ -240,7 +241,7 @@
</ion-card-header> -->
<ion-card-content>
<div style="font-weight: bold;" class="hrTitle">Employee Detail</div>
<div style="font-weight: bold;" class="hrTitle"> {{'userProfile, emp-detail' | translate}}</div>
<div *ngFor="let submitterInfo of submitterInfoRes">
<ion-row class="rowBorder submitterInfo">

@ -1,11 +1,4 @@
.tipsPadding{
padding: 10px 10px;
border-radius: 10px;
margin: 10px;
border: 2px solid #e4e5e7;
color: var(--customnavy);
}
.actionBtn{

@ -3,6 +3,7 @@
<!-- <ion-buttons slot="start">
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
</ion-buttons> -->
<ion-title color="light" > {{ts.trPK('userProfile','changepicture')}}</ion-title>
<ion-buttons slot="start">
<nav-buttons></nav-buttons>

@ -45,7 +45,7 @@ export class TimeInput extends UiElement {
const template =
"<ion-item class='dynamicField' style='" + this.hidden + "'>" +
" <ion-label position='floating' style='font-size: medium !important;' class='dynamiclable-float " + requiredClass + "' id='title' >" + this.label + "</ion-label>" +
"<ion-datetime display-format='h:mm' picker-format='h:mm' class='onic-date' value='" + this.value + "' done-text='" + doneText + "' cancel-text='" + cancelText + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + " ></ion-datetime>" +
"<ion-datetime display-format='HH:mm' picker-format='HH:mm' class='onic-date' value='" + this.value + "' done-text='" + doneText + "' cancel-text='" + cancelText + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + " ></ion-datetime>" +
"</ion-item>"
return template;
}

@ -41,13 +41,15 @@
</ion-item>
<ion-item class="requiredItem">
<ion-label class="label">{{'vacation-rule, start-date' | translate}}</ion-label>
<ion-datetime [(ngModel)]="Sdate" min="1900" max="2100" displayFormat="MM/DD/YYYY hh:mm:ss A"
placeholder="MM/DD/YYYY hh:mm:ss A" required></ion-datetime>
<ion-datetime [(ngModel)]="Sdate" min="1900" max="2100" displayFormat="MM/DD/YYYY hh:mm:ss A"
placeholder="MM/DD/YYYY hh:mm:ss A" required cancelText="{{ts.trPK('general','cancel')}}"
doneText="{{ts.trPK('general','done')}}"></ion-datetime>
</ion-item>
<ion-item class="requiredItem">
<ion-label class="label">{{'vacation-rule, end-date' | translate}}</ion-label>
<ion-datetime [(ngModel)]="Edate" min="1900" max="2100" displayFormat="MM/DD/YYYY hh:mm:ss A"
placeholder="MM/DD/YYYY hh:mm:ss A" required></ion-datetime>
<ion-datetime [(ngModel)]="Edate" min="1900" max="2100" displayFormat="MM/DD/YYYY hh:mm:ss A"
placeholder="MM/DD/YYYY hh:mm:ss A" required cancelText="{{ts.trPK('general','cancel')}}"
doneText="{{ts.trPK('general','done')}}"></ion-datetime>
</ion-item>
<ion-item lines="none" class="requiredItem">
<ion-label>{{'vacation-rule, message-label' | translate}}</ion-label>

@ -118,12 +118,14 @@
<ion-item class="requiredItem selectItem">
<ion-label class="label">{{'vacation-rule, start-date' | translate}}</ion-label>
<ion-datetime [(ngModel)]="Sdate" min="1900" max="2100" displayFormat="MM/DD/YYYY hh:mm:ss A"
placeholder="MM/DD/YYYY hh:mm:ss A" required></ion-datetime>
placeholder="MM/DD/YYYY hh:mm:ss A" required cancelText="{{ts.trPK('general','cancel')}}"
doneText="{{ts.trPK('general','done')}}"></ion-datetime>
</ion-item>
<ion-item class="requiredItem selectItem">
<ion-label class="label">{{'vacation-rule, end-date' | translate}}</ion-label>
<ion-datetime [(ngModel)]="Edate" min="1900" max="2100" displayFormat="MM/DD/YYYY hh:mm:ss A"
placeholder="MM/DD/YYYY hh:mm:ss A" required></ion-datetime>
placeholder="MM/DD/YYYY hh:mm:ss A" required cancelText="{{ts.trPK('general','cancel')}}"
doneText="{{ts.trPK('general','done')}}"></ion-datetime>
</ion-item>
<ion-item lines="none" class="requiredItem selectItem">
<ion-label>{{'vacation-rule, message-label' | translate}}</ion-label>

@ -161,10 +161,14 @@
"en": "Verify its you",
"ar": "Verify its you"
},
"check-user-text1":{
"check-user-place-holder":{
"en":"Employee ID",
"ar":"رقم الموظف "
},
"check-user-text1": {
"en": "Please Enter your Employee ID, A ",
"ar": "يرجى ادخال رقم الموظف "
},
"check-user-text2": {
"en": "login Code ",
"ar": "رمز تسجيل الدخول"
@ -225,6 +229,11 @@
"en": " The connection timeout expired due to an error in the network or servers may be busy!",
"ar": " انتهت مهلة الاتصال بسبب خطأ في الشبكة أو الخوادم قد تكون مشغولة!"
},
"error-itg": {
"en": "Dear, this service is not available now, please try again later",
"ar": " هذه الخدمة غير متاحة الآن ، يرجى المحاولة مرة أخرى في وقت لاحق"
},
"details": {
"en": "Details",
"ar": "التفاصيل"
@ -253,10 +262,22 @@
"en": "Cancel",
"ar": "إلغاء"
},
"takePhoto": {
"en": "Take Photo",
"ar": "أخذ صورة"
},
"Choose-from-Library": {
"en": "Choose from Library",
"ar": " الإختيار من قائمة الصور"
},
"done": {
"en": "Done",
"ar": "تم"
},
"moreAction": {
"en": "More Action",
"ar": "المزيد"
},
"close": {
"en": "Close",
"ar": "إغلق"
@ -998,7 +1019,7 @@
},
"changepicture": {
"en": "Change Picture",
"ar": "تغيير الصوره"
"ar": "تغيير الصورة"
},
"empNo": {
"en": "Employee Number",
@ -1938,6 +1959,10 @@
}
},
"worklistMain": {
"no-employee-available": {
"en": "No employees available to return for correction",
"ar": "لا يوجد موظفون متاحون للعودة للتصحيح"
},
"more": {
"en": "More",
"ar": "المزيد"
@ -1974,6 +1999,10 @@
"en": "Employee Information",
"ar": "معلومات الموظف"
},
"employee-on-leave": {
"en": "Employee will also on leave",
"ar": "الموظف سوف يكون في اجازة ايضا"
},
"info": {
"en": "Info",
"ar": "تفاصيل"

@ -494,6 +494,17 @@ left: 66px;
.less {
max-height: 54px;
}
.tipsPadding{
padding: 10px 10px;
border-radius: 10px;
margin: 10px;
border: 2px solid #e4e5e7;
color: var(--darkblue);
background: white;
font-weight: bold;
text-align: justify;
}
.noDataDiv{
background: #ffffff;

Loading…
Cancel
Save