pushed timer code

missing-swipe
umasoodch 6 years ago
parent fd663493e6
commit c955a19ae8

@ -1209,6 +1209,14 @@
"@types/cordova": "^0.0.34" "@types/cordova": "^0.0.34"
} }
}, },
"@ionic-native/vibration": {
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/@ionic-native/vibration/-/vibration-5.19.1.tgz",
"integrity": "sha512-f9fMtBRJmVLklRrnqcSqKktw6skdp+dDQpbBOq1m5VSQF7b6EKkCIUTN69EjeSn2z3AD0kSYn1hCGTp2q+cJIw==",
"requires": {
"@types/cordova": "^0.0.34"
}
},
"@ionic-native/zbar": { "@ionic-native/zbar": {
"version": "5.19.1", "version": "5.19.1",
"resolved": "https://registry.npmjs.org/@ionic-native/zbar/-/zbar-5.19.1.tgz", "resolved": "https://registry.npmjs.org/@ionic-native/zbar/-/zbar-5.19.1.tgz",
@ -4550,6 +4558,11 @@
"resolved": "https://registry.npmjs.org/cordova-plugin-themeablebrowser/-/cordova-plugin-themeablebrowser-0.2.18.tgz", "resolved": "https://registry.npmjs.org/cordova-plugin-themeablebrowser/-/cordova-plugin-themeablebrowser-0.2.18.tgz",
"integrity": "sha512-FdE1L3wItbTtUudysX/QxN6DTnfGPTMiS4Np/XKeSfYM0bU8sP6DhUIUp1vA8GAulihkEfbNIvy68oVkx2xtFQ==" "integrity": "sha512-FdE1L3wItbTtUudysX/QxN6DTnfGPTMiS4Np/XKeSfYM0bU8sP6DhUIUp1vA8GAulihkEfbNIvy68oVkx2xtFQ=="
}, },
"cordova-plugin-vibration": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/cordova-plugin-vibration/-/cordova-plugin-vibration-3.1.1.tgz",
"integrity": "sha512-qgv67Rueo4Pydfant3TwnXeFiN9dl+6lKMM6h5jYg9XewiGAGOr8vfWsTvQssC3m3xMKGS1ap3xPNH+BzZ4RMA=="
},
"cordova-plugin-whitelist": { "cordova-plugin-whitelist": {
"version": "1.3.4", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.4.tgz", "resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.4.tgz",
@ -9392,6 +9405,14 @@
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
"dev": true "dev": true
}, },
"ng-circle-progress": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/ng-circle-progress/-/ng-circle-progress-1.5.1.tgz",
"integrity": "sha512-gJ0SdWc+TkXckfbhbvUY522yjya3qcc1a3lGvvVyLsUfSOgll8LQaZGDEko84d8dk8vYO83n0O5vP+e8bJTInQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"ng2-file-upload": { "ng2-file-upload": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.4.0.tgz", "resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.4.0.tgz",

@ -52,6 +52,7 @@
"@ionic-native/sqlite": "^5.18.0", "@ionic-native/sqlite": "^5.18.0",
"@ionic-native/status-bar": "^5.0.0", "@ionic-native/status-bar": "^5.0.0",
"@ionic-native/themeable-browser": "^5.18.0", "@ionic-native/themeable-browser": "^5.18.0",
"@ionic-native/vibration": "^5.19.1",
"@ionic-native/zbar": "^5.10.0", "@ionic-native/zbar": "^5.10.0",
"@ionic/angular": "^4.1.0", "@ionic/angular": "^4.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.2.2", "@ng-bootstrap/ng-bootstrap": "^4.2.2",
@ -95,6 +96,7 @@
"cordova-plugin-splashscreen": "^5.0.3", "cordova-plugin-splashscreen": "^5.0.3",
"cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-themeablebrowser": "^0.2.18", "cordova-plugin-themeablebrowser": "^0.2.18",
"cordova-plugin-vibration": "^3.1.1",
"cordova-plugin-whitelist": "^1.3.4", "cordova-plugin-whitelist": "^1.3.4",
"cordova-sqlite-storage": "^3.4.0", "cordova-sqlite-storage": "^3.4.0",
"cordova-support-google-services": "^1.3.2", "cordova-support-google-services": "^1.3.2",
@ -102,6 +104,7 @@
"core-js": "^2.5.4", "core-js": "^2.5.4",
"date-fns": "^1.30.1", "date-fns": "^1.30.1",
"mx.ferreyra.callnumber": "0.0.2", "mx.ferreyra.callnumber": "0.0.2",
"ng-circle-progress": "^1.5.1",
"ng2-file-upload": "^1.3.0", "ng2-file-upload": "^1.3.0",
"ng2-pdf-viewer": "^5.3.2", "ng2-pdf-viewer": "^5.3.2",
"npm": "^6.13.1", "npm": "^6.13.1",
@ -111,6 +114,7 @@
"primeng": "^7.1.3", "primeng": "^7.1.3",
"run": "1.4.0", "run": "1.4.0",
"rxjs": "~6.3.3", "rxjs": "~6.3.3",
"tslib": "^1.10.0",
"uk.co.workingedge.phonegap.plugin.launchnavigator": "^3.2.2", "uk.co.workingedge.phonegap.plugin.launchnavigator": "^3.2.2",
"xlsx": "^0.14.3", "xlsx": "^0.14.3",
"zone.js": "~0.8.29" "zone.js": "~0.8.29"
@ -190,7 +194,8 @@
"cordova-plugin-fingerprint-aio": { "cordova-plugin-fingerprint-aio": {
"FACEID_USAGE_DESCRIPTION": "User Authentication" "FACEID_USAGE_DESCRIPTION": "User Authentication"
}, },
"cordova-plugin-firebasex": {} "cordova-plugin-firebasex": {},
"cordova-plugin-vibration": {}
}, },
"platforms": [ "platforms": [
"browser", "browser",

@ -5,18 +5,16 @@ import { HmgCommonModule } from './hmg-common/hmg-common.module';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module'; import { AppRoutingModule } from './app-routing.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ZBar } from '@ionic-native/zbar/ngx'; import { ZBar } from '@ionic-native/zbar/ngx';
import { Geolocation } from '@ionic-native/geolocation/ngx'; import { Geolocation } from '@ionic-native/geolocation/ngx';
import {Camera,CameraOptions,PictureSourceType} from'@ionic-native/Camera/ngx'; import {Camera, CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx';
import { FilePath } from "@ionic-native/file-path/ngx"; import { FilePath } from '@ionic-native/file-path/ngx';
import { File } from "@ionic-native/file/ngx"; import { File } from '@ionic-native/file/ngx';
import { Base64 } from "@ionic-native/base64/ngx"; import { Base64 } from '@ionic-native/base64/ngx';
import { FirebaseX } from '@ionic-native/firebase-x/ngx'; import { FirebaseX } from '@ionic-native/firebase-x/ngx';
@NgModule({ @NgModule({
declarations: [AppComponent], declarations: [AppComponent],
entryComponents: [], entryComponents: [],

@ -0,0 +1,8 @@
import { FeedbackDirective } from './feedback.directive';
describe('FeedbackDirective', () => {
it('should create an instance', () => {
const directive = new FeedbackDirective();
expect(directive).toBeTruthy();
});
});

@ -0,0 +1,24 @@
import { Directive, ElementRef, HostListener } from '@angular/core';
import { TranslatorService } from '../../services/translator/translator.service';
import { CommonService } from '../../services/common/common.service';
import { FeedbackService } from './feedback.service';
@Directive({
selector: '[feedback]'
})
export class FeedbackDirective {
constructor(
private cs: CommonService,
private ts: TranslatorService,
private el: ElementRef,
private feedBackService: FeedbackService
) {
}
@HostListener('mousedown') onMouseEnter() {
this.feedBackService.vibrate();
}
}

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

@ -0,0 +1,20 @@
import { Injectable } from '@angular/core';
import { Vibration } from '@ionic-native/vibration/ngx';
// import { SettingsService } from 'src/app/settings/service/settings.service';
@Injectable({
providedIn: 'root'
})
export class FeedbackService {
// constructor(private vibration: Vibration, private settings: SettingsService) {}
constructor(private vibration: Vibration) {}
public async vibrate() {
try {
const on = true;
if (on) {
this.vibration.vibrate(500);
}} catch (e) {
}
}
}

@ -42,19 +42,14 @@ import { NativeStorage } from '@ionic-native/native-storage/ngx';
import { ProgressLoadingService } from './ui/progressLoading/progress-loading.service'; import { ProgressLoadingService } from './ui/progressLoading/progress-loading.service';
import { BarChartComponent } from './ui/bar-chart/bar-chart.component'; import { BarChartComponent } from './ui/bar-chart/bar-chart.component';
import { DonutChartComponent } from './ui/donut-chart/donut-chart.component'; import { DonutChartComponent } from './ui/donut-chart/donut-chart.component';
//import { UserLocalNotificationService } from './services/user-local-notification/user-local-notification.service';
//import { LocalNotifications } from '@ionic-native/local-notifications/ngx';
import { EmailComponent } from './ui/email/email.component'; import { EmailComponent } from './ui/email/email.component';
import { Badge } from '@ionic-native/badge/ngx'; import { Badge } from '@ionic-native/badge/ngx';
// import { Push } from '@ionic-native/push/ngx';
import { PushService } from './services/push/push.service'; import { PushService } from './services/push/push.service';
import { LifeCycleService } from './services/life-cycle/life-cycle.service'; import { LifeCycleService } from './services/life-cycle/life-cycle.service';
import { HmgBrowserService } from './services/hmg-browser/hmg-browser.service'; import { HmgBrowserService } from './services/hmg-browser/hmg-browser.service';
import { GuidService } from './services/guid/guid.service'; import { GuidService } from './services/guid/guid.service';
import { TabsBarComponent } from './ui/tabs-bar/tabs-bar.component'; import { TabsBarComponent } from './ui/tabs-bar/tabs-bar.component';
import { PageTrailerComponent } from './ui/spacer/page-trailer/page-trailer.component'; import { PageTrailerComponent } from './ui/spacer/page-trailer/page-trailer.component';
//import { GeofencingService } from './services/geofencing/geofencing.service';
// import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx';
import { ButtonComponent } from './ui/button/button.component'; import { ButtonComponent } from './ui/button/button.component';
import { ToolbarButtonComponent } from './ui/toolbar-button/toolbar-button.component'; import { ToolbarButtonComponent } from './ui/toolbar-button/toolbar-button.component';
import { ListboxModule } from 'primeng/listbox'; import { ListboxModule } from 'primeng/listbox';
@ -82,24 +77,23 @@ import { Diagnostic } from '@ionic-native/diagnostic/ngx';
import { DetailButtonComponent } from './ui/detail-button/detail-button.component'; import { DetailButtonComponent } from './ui/detail-button/detail-button.component';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { HeaderButtonComponent } from './ui/header-button/header-button.component'; import { HeaderButtonComponent } from './ui/header-button/header-button.component';
//import { CallNumber } from '@ionic-native/call-number/ngx';
import { AppRate } from '@ionic-native/app-rate/ngx'; import { AppRate } from '@ionic-native/app-rate/ngx';
import { RatingService } from './services/rating/rating.service'; import { RatingService } from './services/rating/rating.service';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { RateService } from './services/rate/rate.service'; import { RateService } from './services/rate/rate.service';
//import { PaymentComponent } from './ui/payment/payment.component';
//import { PaymentService } from './ui/payment/service/payment.service';
import { MenuService } from './services/menu/menuservice.service'; import { MenuService } from './services/menu/menuservice.service';
import { ReplacementListComponent } from '../vacation-rule/replacement-list/replacement-list.component'; import { ReplacementListComponent } from '../vacation-rule/replacement-list/replacement-list.component';
import { FileSelectDirective } from 'ng2-file-upload'; import { FileSelectDirective } from 'ng2-file-upload';
import { PdfViewerModule } from 'ng2-pdf-viewer'; import { PdfViewerModule } from 'ng2-pdf-viewer';
import { WorkListAttachViewComponent } from '../notification/work-list-attach-view/work-list-attach-view.component'; import { WorkListAttachViewComponent } from '../notification/work-list-attach-view/work-list-attach-view.component';
import {Camera,CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx'; import {Camera, CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx';
import {File} from '@ionic-native/file/ngx'; import {File} from '@ionic-native/file/ngx';
import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component' import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component'
import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx'; import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx';
import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.component'; import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.component';
import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component' import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component'
import { StatsButtonComponent } from './ui/stats-button/stats-button.component';
import { ServicesButtonComponent } from './ui/services-button/services-button.component';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
@ -165,7 +159,9 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus
WorkListAttachViewComponent, WorkListAttachViewComponent,
FileUploderProfileComponent, FileUploderProfileComponent,
AccordinTabCustomComponent, AccordinTabCustomComponent,
AccordinCustomComponent AccordinCustomComponent,
StatsButtonComponent,
ServicesButtonComponent
], ],
exports: [ exports: [
NumberRangeComponent, NumberRangeComponent,
@ -212,13 +208,14 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus
EmptyDataComponent, EmptyDataComponent,
DetailButtonComponent, DetailButtonComponent,
HeaderButtonComponent, HeaderButtonComponent,
//PaymentComponent,
ReplacementListComponent, ReplacementListComponent,
FileSelectDirective, FileSelectDirective,
WorkListAttachViewComponent, WorkListAttachViewComponent,
FileUploderProfileComponent, FileUploderProfileComponent,
AccordinTabCustomComponent, AccordinTabCustomComponent,
AccordinCustomComponent AccordinCustomComponent,
StatsButtonComponent,
ServicesButtonComponent
], ],
providers: [ providers: [
ConnectorService, ConnectorService,
@ -234,14 +231,10 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus
NativeStorage, NativeStorage,
ProgressLoadingService, ProgressLoadingService,
PushService, PushService,
//UserLocalNotificationService,
//LocalNotifications,
Badge, Badge,
LifeCycleService, LifeCycleService,
HmgBrowserService, HmgBrowserService,
GuidService, GuidService,
// BackgroundGeolocation,
//GeofencingService,
Keyboard, Keyboard,
KeyboardService, KeyboardService,
Diagnostic, Diagnostic,
@ -250,14 +243,12 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus
HMGPreloadingStrategy, HMGPreloadingStrategy,
HMGPreloadingStrategyLoading, HMGPreloadingStrategyLoading,
Diagnostic, Diagnostic,
// CallNumber,
AppRate, AppRate,
RatingService, RatingService,
InAppBrowser, InAppBrowser,
RateService, RateService,
Camera, Camera,
File, File,
//PaymentService,
MenuService, MenuService,
OpenNativeSettings OpenNativeSettings
] ]

@ -1,3 +1,8 @@
.float-left{ .float-left{
float: left; float: left;
} }
ion-menu-button {
font-size: 0.8cm;
color: white;
background: #22c6b3;
}

@ -0,0 +1,8 @@
<div feedback class="custom-button">
<div class="iconBox">
<img [src]="icon" class="icon">
</div>
<div class="titleBox">
<p class="pClass">{{title}}</p>
</div>
</div>

@ -0,0 +1,34 @@
.custom-button {
background: white;
margin-bottom: 0px;
border: 1px solid #ccc;
border-radius: 20px;
width: 100%;
max-width: 105px;
height: 100px;
padding: 10px;
min-width: 96px;
}
.iconBox {
display: block;
width: 100%;
position: static;
}
.iconBox img{
margin: 0px auto 10px;
display: block;
// max-width: 35%;
}
.titleBox {
display: block;
}
.pClass {
font-size: 12PX;
text-align: center;
margin-top: 10px;
color: black;
font-weight: bold;
}

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

@ -0,0 +1,28 @@
import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core';
import { TranslatorService } from '../../services/translator/translator.service';
@Component({
selector: 'app-services-button',
templateUrl: './services-button.component.html',
styleUrls: ['./services-button.component.scss'],
})
export class ServicesButtonComponent implements OnInit {
@Input() class: any = '';
@Input() buttonClass: any = '';
@Input() icon: string;
@Input() title: string;
@Output() trigger = new EventEmitter();
@Input() focusicon: string;
@Input() disabled = false;
public direction: string;
public style: any;
constructor(
public ts: TranslatorService
) {}
ngOnInit() {}
public onClicked() {}
}

@ -0,0 +1,9 @@
<div feedback class="custom-button">
<div class="iconBox">
<img [src]="icon" class="icon">
</div>
<div class="titleBox">
<span>{{statsValue}}</span>
<p class="pClass">{{title}}</p>
</div>
</div>

@ -0,0 +1,42 @@
.custom-button {
background: white;
margin-bottom: 0px;
border: 1px solid #ccc;
border-radius: 20px;
width: 100%;
max-width: 105px;
height: 160px;
padding: 10px;
}
.iconBox {
display: block;
width: 100%;
position: static;
img {
display: block;
max-width: 45%;
padding-bottom: 5px;
padding-top: 5px;
}
}
.titleBox {
display: block;
span {
font-size: 40px;
font-weight: bold;
color: black;
text-align: left;
display: block;
}
}
.pClass {
color: black;
width: 85%;
margin-top: 5px;
font-weight: bold;
text-align: left;
display: block;
}

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

@ -0,0 +1,29 @@
import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core';
import { TranslatorService } from '../../services/translator/translator.service';
@Component({
selector: 'app-stats-button',
templateUrl: './stats-button.component.html',
styleUrls: ['./stats-button.component.scss'],
})
export class StatsButtonComponent implements OnInit {
@Input() class: any = '';
@Input() buttonClass: any = '';
@Input() icon: string;
@Input() title: string;
@Input() statsValue: string;
@Output() trigger = new EventEmitter();
@Input() focusicon: string;
@Input() disabled = false;
public direction: string;
public style: any;
constructor(
public ts: TranslatorService
) {}
ngOnInit() {}
public onClicked() {}
}

@ -6,7 +6,7 @@ import { HmgCommonModule } from '../hmg-common/hmg-common.module';
import { IonicModule } from '@ionic/angular'; import { IonicModule } from '@ionic/angular';
import { HomePage } from './home.page'; import { HomePage } from './home.page';
import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx'; import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
import { NgCircleProgressModule } from 'ng-circle-progress';
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
@ -20,7 +20,9 @@ const routes: Routes = [
FormsModule, FormsModule,
IonicModule, IonicModule,
HmgCommonModule, HmgCommonModule,
RouterModule.forChild(routes) RouterModule.forChild(routes),
// Specify ng-circle-progress as an import
NgCircleProgressModule.forRoot()
], ],
declarations: [ declarations: [
HomePage HomePage

@ -1,117 +1,164 @@
<!-- <ion-header no-shadow no-border> <ion-header>
<ion-toolbar> <ion-toolbar class="header-toolbar-new">
<nav-buttons [enableMenu]="true" [enableBack]="false" [navigate]="false"></nav-buttons> <nav-buttons [enableMenu]="true" [enableBack]="false" [navigate]="false"></nav-buttons>
<ion-title>home </ion-title> <ion-title>DASHBOARD</ion-title>
<ion-badge id="homeBadgeBtn" item-end>{{notBadge}}</ion-badge> <!-- <ion-icon class="login-icon" name="log-in" slot="end" *ngIf="!logIn" (click)="login()"></ion-icon> -->
</ion-toolbar> </ion-toolbar>
</ion-header> --> </ion-header>
<ion-content class="colorBG">
<div class="header-div"> <ion-content class="main-dashboard-container">
<button ion-button icon-only menuToggle class="menubutton" (click)="openMenu()"> <ion-grid class="main-container contentBg">
<img class="menuImg" src="../assets/imgs/home/burgerMenu.png"/> <ion-row class="slideFullWidth">
<ion-badge id="homeBadgeBtn" slot="end" color="danger">{{notBadge}}</ion-badge> <ion-slides [options]="slideOptsOne" class="padding-slide slide">
</button> <ion-slide *ngFor="let button of statsButtons; let i=index;">
<!-- <button ion-button icon-only menuToggle class="menubuttonTrans" (click)="openMenu()"> <app-stats-button
<img class="transImg" src="../assets/imgs/home/arabicSwitch.png"/> [title]="button.title"
</button> --> [statsValue]="button.statsValue"
<div class="centerDiv homeBox" (click)="openPersonalInfo()"> [icon]="button.icon">
<p class="TxtPlace">{{ts.trPK('home','hello')}}, {{userData.EMPLOYEE_DISPLAY_NAME}}</p> </app-stats-button>
<div class="profileDiv"> </ion-slide>
<!-- <ion-img class="profileImg" src="{{user_image}}"></ion-img> --> </ion-slides>
<img class="profileImg" [src]="user_image"> </ion-row>
</div> <ion-row *ngFor="let menuItem of menuEntries; let i=index">
<ion-row class="attendance-module" *ngIf="i == 1">
</div> <ion-col [size]="8">
<div class="changeImgBtn"> <h3>Monthly Attendance</h3>
<button ion-button icon-only menuToggle class="menubutton" (click)="changeImage()"> <span>View your Monthly Time Sheet</span>
<ion-icon class="changeIcon" name="camera"></ion-icon></button> <ion-button>
View Detail
<!-- <app-file-uploder-profile > </ion-button>
</ion-col>
</app-file-uploder-profile> <ion-col [size]="4">
--> <img src="assets/icon/new-design/attendance_button_icon.png"/>
<!-- <file-uploader (fileSelected)="attachmentSelected($event)" [maxFileSize]="maxFileSize" [multiupload]="false"></file-uploader> --> </ion-col>
</ion-row>
<ion-col [size]="12">
</div> <ion-label>{{menuItem.PROMPT}}</ion-label>
</div> </ion-col>
<ion-slides [options]="slideOptsTwo">
<div>
<div> <ion-slide *ngFor="let subMenu of menuItem.children; let j=index">
<p class="dash-header text-caps">{{ts.trPK('home','dashboard')}}</p> <app-services-button
</div> [title]="subMenu.PROMPT"
<div> icon="assets/icon/new-design/leave_balance.png">
<ion-grid class="cus-grid"> </app-services-button>
<ion-row> </ion-slide>
<ion-col size="6" class="col-grid" *ngFor="let item of menuList; let i=index"> </ion-slides>
<button ion-button block class="serviceItem" (click)="getMeunDetails(i)"> </ion-row>
<img class="serviceItemImg" src="../assets/imgs/{{item.MENU_TYPE}}.png"/>
<p> {{ item.MENU_NAME }} {{item.SUB_MENU_NAME}}</p> <!-- <ion-row class="attendance-module">
</button> <ion-col [size]="8">
</ion-col> <h3>Monthly Attendance</h3>
<ion-col size="6" class="col-grid"> <span>View your Monthly Time Sheet</span>
<button ion-button block class="serviceItem" (click)="getDeviceLocation()"> <ion-button>
<ion-img class="serviceItemImg" src="../assets/imgs/home/attendanceSwipe.png"></ion-img> View Detail
<p>{{ts.trPK('attendance','attendance')}}</p> </ion-button>
</button> </ion-col>
</ion-col> <ion-col [size]="4">
<ion-col size="6" class="col-grid" > <img src="assets/icon/new-design/attendance_button_icon.png"/>
<button ion-button block class="serviceItem" id="vacationRule" (click)="Vacation_Rule()"> </ion-col>
<ion-img class="serviceItemImg" src="../assets/imgs/home/vacationRule.png"></ion-img> </ion-row> -->
<p>{{ts.trPK('vacation-rule','vacationRule')}}</p>
</button> <!-- <ion-row>
</ion-col> <ion-col [size]="12">
<ion-col size="6" class="col-grid"> <ion-label>My Travelling</ion-label>
<button ion-button block class="serviceItem" id="accrualBalance" (click)="accrualBalance()"> </ion-col>
<ion-img class="serviceItemImg" src="../assets/imgs/home/accrualBalances.png"></ion-img> <ion-col [size]="4">
<p>{{ts.trPK('absenceList','accrualBalances')}}</p> <app-services-button
</button> title="Ticket Request"
</ion-col> icon="assets/icon/new-design/ticket_request.png">
</app-services-button>
<ion-col size="6" class="col-grid">
<button ion-button block class="serviceItem" (click)="Change_password()">
<ion-img class="serviceItemImg" src="../assets/imgs/home/changePasword.png"></ion-img>
<p>{{ts.trPK('changePassword','changePassword')}}</p>
</button>
</ion-col> </ion-col>
<ion-col size="6" class="col-grid"> <ion-col [size]="4">
<button ion-button block class="serviceItem" (click)="openPayslip()"> <app-services-button
<ion-img class="serviceItemImg" src="../assets/imgs/home/paySlip.png"></ion-img> title="Borrowing Passport"
<p>{{ts.trPK('login','payslip')}}</p> icon="assets/icon/new-design/borrowing_passport.png">
</button> </app-services-button>
</ion-col> </ion-col>
<!-- <ion-col size="6" class="col-grid"> <ion-col [size]="4">
<button ion-button block class="serviceItem" (click)="Change_password()"> <app-services-button
<ion-img class="serviceItemImg" src="../assets/imgs/home/announcements.png"></ion-img> title="Vacations Rules"
<p>{{ts.trPK('login','announcement')}}</p> icon="assets/icon/new-design/vacation_rules.png">
</button> </app-services-button>
</ion-col> </ion-col>
<ion-col size="6" class="col-grid"> </ion-row> -->
<button ion-button block class="serviceItem" (click)="Change_password()">
<ion-img class="serviceItemImg" src="../assets/imgs/home/timeAttendance.png"></ion-img> <!-- <ion-row>
<p>{{ts.trPK('home','timeAndAttendance')}}</p> <ion-col [size]="12">
</button> <ion-label>Miscellaneous</ion-label>
</ion-col> --> </ion-col>
<ion-col [size]="4">
<!-- <ion-col size="6" class="col-grid"> <app-services-button
<button ion-button block class="serviceItem" (click)="openPayslip()"> title="Uniform Request"
<ion-img class="serviceItemImg" src="../assets/imgs/changepass.png"></ion-img> icon="assets/icon/new-design/uniform_request.png">
<p>{{ts.trPK('payslip','title')}}</p> </app-services-button>
</button> </ion-col>
</ion-col> -->
</ion-row> <ion-col [size]="4">
<app-services-button
<!-- <button class="menu-item" ion-item menuClose ion-item *ngFor="let item of menuList; let i=index" (click)="getMeunDetails(i)" > title="ID Badge Request"
<img width="30" src="../assets/imgs/arrownew.png" item-left class="flipImg"> icon="assets/icon/new-design/id_badge_request.png">
{{ item.MENU_NAME }} {{item.SUB_MENU_NAME}} </app-services-button>
</button> --> </ion-col>
</ion-grid> <ion-col [size]="4">
</div> <app-services-button
</div> title="Separation/ Resignation"
icon="assets/icon/new-design/separation_resignation.png">
</app-services-button>
</ion-col>
</ion-row> -->
<!--
<ion-row>
<ion-col [size]="4">
<app-services-button
title="Recreational Activities"
icon="assets/icon/new-design/recreational_activities.png">
</app-services-button>
</ion-col>
<ion-col [size]="4">
<app-services-button
title="Employee Certificate"
icon="assets/icon/new-design/employee_certificate.png">
</app-services-button>
</ion-col>
<ion-col [size]="4">
<app-services-button
title="IT Forms"
icon="assets/icon/new-design/it_forms.png">
</app-services-button>
</ion-col>
</ion-row> -->
</ion-grid>
<!-- {{displayTime}} -->
<circle-progress
[backgroundColor]= "'#094875'"
[percent]="percent"
[radius]="50"
[outerStrokeWidth]="5"
[innerStrokeWidth]="3"
[outerStrokeColor]="'#ffffff'"
[innerStrokeColor]="'#ffffff'"
[animation]="true"
[animationDuration]="300"
[responsive]="false"
[space]="-4"
[startFromZero]="false"
[title]="displayTime"
[titleColor]="'#ffffff'"
></circle-progress>
{{displayTime}}
</ion-content> </ion-content>
<!-- <ion-fab>
<ion-fab-button>Button</ion-fab-button>
</ion-fab> -->

@ -1,153 +1,85 @@
.button-menutoggle.button-menutoggle-md,button-menutoggle.button-menutoggle-ios, ion-row {
.bar-buttons.bar-buttons-ios.button.button-ios.button-default.button-default-ios.button-menutoggle.button-menutoggle-ios{ margin-bottom: 15px;
box-shadow: none; margin-top: 10px;
-webkit-box-shadow:none; }
-moz-box-shadow: none;
background: transparent !important;
}
.colorBG{
--background: #f0efef;
}
.menubutton{ .header-toolbar-new{
white-space: normal; --background: #22c6b3;
color: var(--light); }
text-transform: capitalize; ion-title{
min-height: 47px; color: white;
background: transparent;
font-size: 2rem;
position: absolute; position: absolute;
top: 40px; top: 0;
}
.menubuttonTrans{
white-space: normal;
color: var(--light);
text-transform: capitalize;
min-height: 47px;
background: transparent;
font-size: 2rem;
position: absolute;
top: 40px;
left: 315px
}
#homeBadgeBtn{
position: absolute;
top: 2px;
width: 20px;
font-size: 10px;
height: 20px;
padding: 0px;
line-height: 2;
min-width: auto;
min-height: auto;
border-radius: 50%;
}
.homeBox{
}
.header-div{
background:var(--primary);
background: -moz-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%);
background: -webkit-linear-gradient(45deg, (--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%);
background: linear-gradient(90deg, #85C48D 0%, #85C48D 13%, #2BB5C6 98%, #2BB5C6 100%);
color:var(--light);
text-transform: capitalize;
display: block;
position: relative;
height: 210px;
margin-bottom:60px;
border-radius: 0px 0px 70px 70px;
}
.dash-header{
text-align: center; text-align: center;
margin: 16px 0 0 0; left: 15%;
right: 15%;
} font-size: 0.42cm;
font-weight: bold;
.TxtPlace { height: 100%;
margin: 0; }
padding: 50px 0 10px 0; ion-label{
text-align: center; display: block;
width:100%; color: black !important;
}
.serviceItem {
// min-height: 160px !important;
// padding: 0;
// width: 95%;
// border: 0px solid #e4e5e7;
// background: white;
// color: var(--dark);
// border-radius: 7px;
min-height: 200px !important;
padding-top: 0;
width: 95%;
margin-left: 4px;
margin-bottom: 13px;
border: 0px solid #e4e5e7;
background: white;
color: var(--dark);
border-radius: 7px;
p{
margin-top: 0px; margin-bottom:0px;
font-weight: normal;
font-size: 14px; font-size: 14px;
min-height: 20px; font-weight: bold;
// white-space: normal; }
text-align: center; .main-dashboard-container{
-webkit-line-clamp: 3; position: relative;
-webkit-box-orient: vertical; width: 100%;
overflow: hidden; }
.header-md:after {
height: 0px !important;
display: none !important;
}
.contentBg:before {
position: absolute;
content: "";
background: #22c6b3;
height: 100px;
width: 100%;
left: 0;
top: 0px;
z-index: 1;
}
.main-container{
position: relative;
z-index: 2;
padding-right: 15px;
padding-left: 15px;
}
.attendance-module{
border-radius: 20px;
background-color: #094875;
padding: 10px;
color: white;
width: 100%;
h3{
font-size: 18px;
font-weight: bold;
margin: 0;
} }
span { span{
display: block; font-size: 13px;
display: block;
} }
.serviceItemImg { img{
min-width: 60px !important; display: block;
min-height: 70px !important; margin: 10px auto;
width: 80px; width: 80%;
height: 80px;
margin: 10px auto;
background: transparent !important;
} }
ion-button{
} border-radius: 10px;
.serviceItem.button,.serviceItem.button-md, .serviceItem.button-ios{ padding: 10px;
background: transparent !important; background: #3CB9DF;
color:var(--dark); --background: transparent;
box-shadow: none; --box-shadow: none !important;
-webkit-box-shadow:none; height: auto;
-moz-box-shadow: none; min-height: inherit;
border: 2px solid var(--gray); margin-top: 10px;
min-width: auto; font-size: 12px;
} }
//test }
.changeImgBtn{ .swiper-container {
margin: 0; margin: 0 !important;
position: absolute; width: 100% !important;
top: 80%; }
left: 53%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
//test
.changeIcon{
background: #c1c1c1;
width: 40px;
height: 39px;
border-radius: 50% !important;
position: relative;
left: 51px;
top:16px;
}
.menuImg{
max-width: 30px;
}
.transImg{
max-width: 45px;
}

@ -1,39 +1,36 @@
import { EitService } from "./../eit/services/eit.service"; import { EitService } from './../eit/services/eit.service';
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from '@angular/core';
import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { MenuController, Events, ActionSheetController } from "@ionic/angular"; import { MenuController, Events, ActionSheetController } from '@ionic/angular';
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { AuthenticatedUser } from "src/app/hmg-common/services/authentication/models/authenticated-user"; import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
import { MenuService } from "src/app/hmg-common/services/menu/menuservice.service"; import { MenuService } from 'src/app/hmg-common/services/menu/menuservice.service';
import { MenuResponse } from "src/app/hmg-common/services/menu/models/menu-response"; import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { Geolocation } from "@ionic-native/geolocation/ngx"; import { Geolocation } from '@ionic-native/geolocation/ngx';
import { ZBar, ZBarOptions } from "@ionic-native/zbar/ngx"; import { ZBar, ZBarOptions } from '@ionic-native/zbar/ngx';
import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx'; import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
import { Device } from "@ionic-native/device/ngx"; import { Device } from '@ionic-native/device/ngx';
import { attendanceSwipeScannerRequest } from "./models/attendanceSwipe.Request"; import { attendanceSwipeScannerRequest } from './models/attendanceSwipe.Request';
import { Response } from "src/app/hmg-common/services/models/response"; import { Response } from 'src/app/hmg-common/services/models/response';
import { AttendanceService } from "./services/attendance.services"; import { AttendanceService } from './services/attendance.services';
import { LoginRequest } from "../hmg-common/services/authentication/models/login.request"; import { LoginRequest } from '../hmg-common/services/authentication/models/login.request';
import {FileUploaderComponent} from '../hmg-common/ui/file-uploader/file-uploader.component' import {FileUploaderComponent} from '../hmg-common/ui/file-uploader/file-uploader.component'
import { Camera, CameraOptions,PictureSourceType} from "@ionic-native/Camera/ngx"; import { Camera, CameraOptions,PictureSourceType} from '@ionic-native/Camera/ngx';
//import { FileChooser } from "@ionic-native/file-chooser/ngx"; import { File } from '@ionic-native/file/ngx';
import { File } from "@ionic-native/file/ngx";
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
//import { FilePath } from "@ionic-native/file-path/ngx";
//import { Base64 } from "@ionic-native/base64/ngx";
import {FileUploderProfileComponent} from '../hmg-common/ui/file-uploder-profile/file-uploder-profile.component' import {FileUploderProfileComponent} from '../hmg-common/ui/file-uploder-profile/file-uploder-profile.component'
import { SharedDataService } from '../hmg-common/services/shared-data-service/shared-data.service'; import { SharedDataService } from '../hmg-common/services/shared-data-service/shared-data.service';
import { DevicePermissionsService } from '../hmg-common/services/device-permissions/device-permissions.service'; import { DevicePermissionsService } from '../hmg-common/services/device-permissions/device-permissions.service';
@Component({ @Component({
selector: "app-home", selector: 'app-home',
templateUrl: "./home.page.html", templateUrl: './home.page.html',
styleUrls: ["./home.page.scss"] styleUrls: ['./home.page.scss']
}) })
export class HomePage implements OnInit { export class HomePage implements OnInit {
userData: any = {}; userData: any = {};
user_image: any = "../assets/imgs/profile.png"; user_image: any = '../assets/imgs/profile.png';
menuList: any = []; menuList: any = [];
zbarOptions: any; zbarOptions: any;
scannedResult: any; scannedResult: any;
@ -41,11 +38,77 @@ export class HomePage implements OnInit {
lat: any; lat: any;
longt: any; longt: any;
deviceID: string; deviceID: string;
public maxFileSize =10 * 1024 * 1024; public maxFileSize = 10 * 1024 * 1024;
public fileUploder :FileUploaderComponent; public fileUploder: FileUploaderComponent;
// public fileUploderProfile:FileUploderProfileComponent // public fileUploderProfile:FileUploderProfileComponent
location: boolean; location: boolean;
camera: boolean camera: boolean;
public statsButtons = [
{
title: 'Work List',
statsValue: '79',
icon: 'assets/icon/new-design/work_list.png'
},
{
title: 'Pending Request',
statsValue: '13',
icon: 'assets/icon/new-design/pending_request.png'
},
{
title: 'Missing Swipes',
statsValue: '99',
icon: 'assets/icon/new-design/missing_swipe.png'
},
{
title: 'Leave Balance',
statsValue: '02',
icon: 'assets/icon/new-design/leave_balance.png'
},
{
title: 'Ticket Balance',
statsValue: '01',
icon: 'assets/icon/new-design/ticket_balance.png'
}
];
public employeeServicesButtons = [
{
title: 'Leave Management',
icon: 'assets/icon/new-design/leave_management.png'
},
{
title: 'Advance Payments',
icon: 'assets/icon/new-design/advance_payments.png'
},
{
title: 'Medical Insurance',
icon: 'assets/icon/new-design/medical_insurance.png'
},
{
title: 'Pay Slip',
icon: 'assets/icon/new-design/pay_slip.png'
}
];
public slideOptsOne = {
slidesPerView: 3.5,
spaceBetween: 10
};
public slideOptsTwo = {
slidesPerView: 3.2,
spaceBetween: 10
};
public timeInSeconds: any = 200;
public time: any;
public runTimer = false;
public hasStarted = false;
public hasFinished = false;
public remainingTime: any;
public displayTime: any;
public menuEntries: any;
public titleFormat: any;
public percent = 10;
constructor( constructor(
public ts: TranslatorService, public ts: TranslatorService,
public menu: MenuController, public menu: MenuController,
@ -63,44 +126,86 @@ export class HomePage implements OnInit {
private cameraController: Camera, private cameraController: Camera,
public sharedData: SharedDataService, public sharedData: SharedDataService,
private sanitizer: DomSanitizer, private sanitizer: DomSanitizer,
//private transfer: Transfer,
private file: File, private file: File,
//private filePath: FilePath
private permissions: DevicePermissionsService private permissions: DevicePermissionsService
) { ) {
this.events.subscribe("img-change", displayImg => { this.events.subscribe('img-change', displayImg => {
this.user_image = this.sanitizer.bypassSecurityTrustUrl('data:Image/*;base64,'+displayImg);
// this.user_image = "data:image/jpeg;base64"+displayImg; console.log('html saved img: ' + this.user_image);
// alert("home app: ");
this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg);
console.log("html saved img: "+this.user_image);
}); });
} }
ngOnInit() { ngOnInit() {
this.getUserDetails(); // this.getUserDetails();
this.getMenu(); // this.getMenu();
this.setServicesPrivilage(); // this.setServicesPrivilage();
this.getCount(); // this.getCount();
this.initTimer();
this.events.subscribe("getNotCount", badge => { // this.events.subscribe('getNotCount', badge => {
this.notBadge = badge; // this.notBadge = badge;
}); // });
} }
// formatSubtitle = (time: number) : string => {
// return
// }
initTimer() {
this.time = this.timeInSeconds;
this.runTimer = false;
this.hasStarted = false;
this.hasFinished = false;
this.remainingTime = this.timeInSeconds;
this.displayTime = this.getSecondsAsDigitalClock(this.remainingTime);
this.startTimer();
}
startTimer() {
this.runTimer = true;
this.hasStarted = true;
this.timerTick();
}
timerTick() {
setTimeout(() => {
if (!this.runTimer) { return; }
this.remainingTime--;
this.displayTime = this.getSecondsAsDigitalClock(this.remainingTime);
this.percent = this.percent + 1;
if (this.remainingTime > 0) {
this.timerTick();
} else {
this.hasFinished = true;
}
}, 1000);
}
getSecondsAsDigitalClock(inputSeconds: number) {
const secNum = parseInt(inputSeconds.toString(), 10); // don't forget the second param
const hours = Math.floor(secNum / 3600);
const minutes = Math.floor((secNum - (hours * 3600)) / 60);
const seconds = secNum - (hours * 3600) - (minutes * 60);
let hoursString = '';
let minutesString = '';
let secondsString = '';
hoursString = (hours < 10) ? '0' + hours : hours.toString();
minutesString = (minutes < 10) ? '0' + minutes : minutes.toString();
secondsString = (seconds < 10) ? '0' + seconds : seconds.toString();
return hoursString + ':' + minutesString + ':' + secondsString;
}
getDeviceLocation() { getDeviceLocation() {
let isVirtual = this.device.isVirtual; const isVirtual = this.device.isVirtual;
if(isVirtual==true){ if (isVirtual === true){
alert("emulater>>>>>>>"+isVirtual); alert('emulater>>>>>>>' + isVirtual);
alert("You are using virtual device"); alert('You are using virtual device');
return false; return false;
} }
this.permissions.requestLocationAutherization().then(granted => { this.permissions.requestLocationAutherization().then(granted => {
this.location = granted as boolean; this.location = granted as boolean;
if (this.location) { if (this.location) {
@ -114,9 +219,8 @@ export class HomePage implements OnInit {
this.attendance(); this.attendance();
}) })
.catch(error => { .catch(error => {
console.log("Error getting location", error); console.log('Error getting location', error);
}); });
} else { } else {
return false; return false;
} }
@ -128,8 +232,8 @@ export class HomePage implements OnInit {
setServicesPrivilage() { setServicesPrivilage() {
for (let i = 0; i < AuthenticationService.servicePrivilage.length; i++) for (let i = 0; i < AuthenticationService.servicePrivilage.length; i++)
if (AuthenticationService.servicePrivilage[i].Previlege == false) { if (AuthenticationService.servicePrivilage[i].Previlege == false) {
document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).setAttribute("disabled", "disabled"); document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).setAttribute('disabled', 'disabled');
document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).style.filter = "grayscale(1)" document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).style.filter = 'grayscale(1)'
} }
} }
getCount() { getCount() {
@ -169,20 +273,19 @@ export class HomePage implements OnInit {
ionViewDidLoad() { ionViewDidLoad() {
this.getUserDetails(); this.getUserDetails();
console.log("getUserDetails"); console.log('getUserDetails');
this.geolocation this.geolocation
.getCurrentPosition() .getCurrentPosition()
.then(resp => { .then(resp => {
// resp.coords.latitude // resp.coords.latitude
// resp.coords.longitude // resp.coords.longitude
//console.log("Loc 1");
console.log(resp.coords.latitude); console.log(resp.coords.latitude);
console.log(resp.coords.longitude); console.log(resp.coords.longitude);
this.lat = resp.coords.latitude; this.lat = resp.coords.latitude;
this.longt = resp.coords.longitude; this.longt = resp.coords.longitude;
}) })
.catch(error => { .catch(error => {
console.log("Error getting location", error); console.log('Error getting location', error);
}); });
} }
private openMenu() { private openMenu() {
@ -193,12 +296,12 @@ export class HomePage implements OnInit {
.loadAuthenticatedUser() .loadAuthenticatedUser()
.subscribe((user: AuthenticatedUser) => { .subscribe((user: AuthenticatedUser) => {
if (user) { if (user) {
this.events.publish("setMenu"); this.events.publish('setMenu');
this.userData = user; this.userData = user;
//set User Info // set User Info
this.sharedData.setSharedData(this.userData, AuthenticatedUser.SHARED_DATA); this.sharedData.setSharedData(this.userData, AuthenticatedUser.SHARED_DATA);
this.user_image = user.EMPLOYEE_IMAGE this.user_image = user.EMPLOYEE_IMAGE
? "data:image/png;base64," + user.EMPLOYEE_IMAGE ? 'data:image/png;base64,' + user.EMPLOYEE_IMAGE
: this.user_image; : this.user_image;
console.log(user); console.log(user);
} else { } else {
@ -207,7 +310,7 @@ export class HomePage implements OnInit {
}); });
} }
public Vacation_Rule() { public Vacation_Rule() {
this.common.navigateForward("/vacation-rule/home"); this.common.navigateForward('/vacation-rule/home');
} }
private getMenu() { private getMenu() {
this.menuService.getMenu().subscribe((result: MenuResponse) => { this.menuService.getMenu().subscribe((result: MenuResponse) => {
@ -217,8 +320,10 @@ export class HomePage implements OnInit {
private handleMenuResult(result) { private handleMenuResult(result) {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
if (this.common.hasData(result.List_Menu)) { if (this.common.hasData(result.List_Menu)) {
console.log("list menu"); console.log('list menu');
this.menuList = result.List_Menu; this.menuList = result.List_Menu;
console.log('umar: ' + this.menuList);
this.getMenuDetails();
} }
} }
} }
@ -230,31 +335,33 @@ export class HomePage implements OnInit {
this.common.openChangeImagePage(); this.common.openChangeImagePage();
} }
public getMeunDetails(index) { public getMenuDetails() {
let item = this.menuList[index]; const item = this.menuList[0];
let selMenu: MenuResponse = new MenuResponse(); const selMenu: MenuResponse = new MenuResponse();
selMenu.List_Menu = item; selMenu.List_Menu = item;
selMenu.userid = this.userData.EMPLOYEE_NUMBER; selMenu.userid = this.userData.EMPLOYEE_NUMBER;
console.log("menu: "+selMenu.List_Menu); console.log('menu: ' + selMenu.List_Menu);
this.common.sharedService.setSharedData(selMenu, MenuResponse.SHARED_DATA); this.common.sharedService.setSharedData(selMenu, MenuResponse.SHARED_DATA);
if (item.MENU_TYPE == "M") { this.getMenuEntries(item);
this.common.openMyTeamPage(); // if (item.MENU_TYPE === 'M') {
// this.navCtrl.push("MySubordinatePage"); // this.common.openMyTeamPage();
} else if (item.MENU_TYPE == "S") { // // this.navCtrl.push("MySubordinatePage");
this.common.sharedService.setSharedData(item, 'mySpecList'); // } else if (item.MENU_TYPE === 'S') {
this.common.openMySpecialistPage(); // this.common.sharedService.setSharedData(item, 'mySpecList');
//this.navCtrl.push('MySpecialistPage',{"mySpecList":item}); // this.common.openMySpecialistPage();
} else { // // this.navCtrl.push('MySpecialistPage',{"mySpecList":item});
this.getMenuEntries(item); // } else {
} // this.getMenuEntries(item);
// }
} }
getMenuEntries(item) { getMenuEntries(item) {
let request: any = {}; console.log('umar I am clicked2');
const request: any = {};
let selEmpNo: string = null; let selEmpNo: string = null;
let nationality: string = null; let nationality: string = null;
request.P_SELECTED_RESP_ID = -999; request.P_SELECTED_RESP_ID = -999;
if (item.MENU_TYPE == "S") { if (item.MENU_TYPE === 'S') {
request.P_SELECTED_RESP_ID = item.RESP_ID; request.P_SELECTED_RESP_ID = item.RESP_ID;
} else { } else {
selEmpNo = this.common.sharedService.getSharedData( selEmpNo = this.common.sharedService.getSharedData(
@ -269,8 +376,8 @@ export class HomePage implements OnInit {
request.P_SELECTED_EMPLOYEE_NUMBER = selEmpNo; request.P_SELECTED_EMPLOYEE_NUMBER = selEmpNo;
request.P_MENU_TYPE = item.MENU_TYPE; request.P_MENU_TYPE = item.MENU_TYPE;
request.NationalityCode = nationality; request.NationalityCode = nationality;
//set emp and resp id // set emp and resp id
console.log("set data"); console.log('set data');
this.common.sharedService.setSharedData( this.common.sharedService.setSharedData(
selEmpNo, selEmpNo,
MenuResponse.SHARED_SEL_EMP MenuResponse.SHARED_SEL_EMP
@ -288,10 +395,12 @@ export class HomePage implements OnInit {
} }
sortMenuEntires(list) { sortMenuEntires(list) {
let tree = this.common.list_to_tree(list); const tree = this.common.list_to_tree(list);
this.common.sharedService.setSharedData(tree, "menuEntries"); this.menuEntries = tree;
console.log(this.menuEntries);
this.common.sharedService.setSharedData(tree, 'menuEntries');
// this.common.navigateForward("/eit/homepage"); // this.common.navigateForward("/eit/homepage");
this.common.openEITPage(); // this.common.openEITPage();
} }
private handleMenuEntiresResult(result) { private handleMenuEntiresResult(result) {
@ -313,8 +422,8 @@ export class HomePage implements OnInit {
// flash: "off", // flash: "off",
// drawSight: false // drawSight: false
// }; // };
//console.log("your currnt location is"); // console.log("your currnt location is");
//console.log("Loc"); // console.log("Loc");
this.permissions.requestCameraAutherization().then(granted => { this.permissions.requestCameraAutherization().then(granted => {
this.camera = granted as boolean; this.camera = granted as boolean;
if (this.camera) { if (this.camera) {
@ -352,25 +461,25 @@ export class HomePage implements OnInit {
} }
swipeAttendance() { swipeAttendance() {
let request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest(); const request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest();
request.Latitude = this.lat; request.Latitude = this.lat;
request.Longitude = this.longt; request.Longitude = this.longt;
request.QRValue = this.scannedResult.text; request.QRValue = this.scannedResult.text;
request.UID = this.deviceID; request.UID = this.deviceID;
request.UserName = this.userData.EMPLOYEE_NUMBER; request.UserName = this.userData.EMPLOYEE_NUMBER;
console.log("request"); console.log('request');
console.log(JSON.stringify(request)); console.log(JSON.stringify(request));
this.attendance_service this.attendance_service
.attendanceSwipeScanner(request, () => { .attendanceSwipeScanner(request, () => {
console.log("Error inside in swipe attendance"); console.log('Error inside in swipe attendance');
}) })
.subscribe((result: Response) => { .subscribe((result: Response) => {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
console.log("response"); console.log('response');
console.log(result); console.log(result);
this.common.presentAlert(this.ts.trPK("home", "swipeAlertSuccess")); this.common.presentAlert(this.ts.trPK('home', 'swipeAlertSuccess'));
} else { } else {
this.common.presentAlert(this.ts.trPK("home", "swipeAlertFailed")); this.common.presentAlert(this.ts.trPK('home', 'swipeAlertFailed'));
} }
}); });
} }
@ -378,3 +487,14 @@ export class HomePage implements OnInit {
this.common.openProfile(); this.common.openProfile();
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

@ -855,3 +855,17 @@ color: var(--dark);
// left: 0; // left: 0;
// width: 100%; // width: 100%;
// //
// .employee-slider .custom-button{
// padding: 13px !important;
// }
// .employee-slider .iconBox img{
// max-width: 40% !important;
// }
.slideFullWidth {
margin-left:-15px;
margin-right:-15px;
}
.slideFullWidth .swiper-container .swiper-wrapper .swiper-slide:first-child {
margin-left:15px;
}

@ -18,5 +18,10 @@
"es2018", "es2018",
"dom" "dom"
] ]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
} }
} }

Loading…
Cancel
Save