{"version":3,"sources":["webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/$_lazy_route_resource lazy namespace object","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.helpers.ts","webpack:///src/app/app.module.ts","webpack:///src/app/app.routes.ts","webpack:///src/app/app.version.ts","webpack:///src/app/auth-guard.ts","webpack:///src/app/common/assettype.pipe.ts","webpack:///src/app/common/enums.ts","webpack:///src/app/common/globals.ts","webpack:///src/app/common/gridhelper.ts","webpack:///src/app/common/leafletGlobals.ts","webpack:///src/app/common/missingTransLationHandler.ts","webpack:///src/app/common/numbersOnly.directive.ts","webpack:///src/app/common/orderBy.pipe.ts","webpack:///src/app/common/relevant.pipe.ts","webpack:///src/app/common/rxjs-operators.ts","webpack:///src/app/common/textFilter.pipe.ts","webpack:///src/app/models/account.model.ts","webpack:///src/app/models/asset.model.ts","webpack:///src/app/models/assetType.model.ts","webpack:///src/app/models/auditlog.model.ts","webpack:///src/app/models/authenticaterequest.model.ts","webpack:///src/app/models/calculationsettings.model.ts","webpack:///src/app/models/config.model.ts","webpack:///src/app/models/customer.model.ts","webpack:///src/app/models/dashboard.model.ts","webpack:///src/app/models/device.model.ts","webpack:///src/app/models/devicetype.model.ts","webpack:///src/app/models/driver.model.ts","webpack:///src/app/models/errorlog.model.ts","webpack:///src/app/models/issue.model.ts","webpack:///src/app/models/issuetype.model.ts","webpack:///src/app/models/jobs.model.ts","webpack:///src/app/models/location.model.ts","webpack:///src/app/models/manufacturer.model.ts","webpack:///src/app/models/notification.model.ts","webpack:///src/app/models/platform.model.ts","webpack:///src/app/models/resolutiontype.model.ts","webpack:///src/app/models/schedule.model.ts","webpack:///src/app/models/sensor.model.ts","webpack:///src/app/models/sensorType.model.ts","webpack:///src/app/models/tag.model.ts","webpack:///src/app/models/user.model.ts","webpack:///src/app/models/wasl.model.ts","webpack:///src/app/models/workflow.model.ts","webpack:///src/app/modules/360grid/index.ts","webpack:///src/app/modules/360grid/src/angular-datatables.directive.ts","webpack:///src/app/modules/360grid/src/angular-datatables.module.ts","webpack:///src/app/modules/counto/counto.directive.ts","webpack:///src/app/modules/counto/counto.module.ts","webpack:///src/app/modules/icheck/components/icheck.component.ts","webpack:///src/app/modules/icheck/icheck.config.ts","webpack:///src/app/modules/icheck/icheck.module.ts","webpack:///src/app/modules/icheck/services/icheck-radio.service.ts","webpack:///src/app/modules/notification/components/container/container.component.ts","webpack:///src/app/modules/notification/components/container/container.component.html","webpack:///src/app/modules/notification/components/notification/notification.component.ts","webpack:///src/app/modules/notification/components/notification/notification.component.html","webpack:///src/app/modules/notification/index.ts","webpack:///src/app/modules/notification/models.ts","webpack:///src/app/modules/notification/services/notifications.service.ts","webpack:///src/app/modules/prettyjson/json.pipe.ts","webpack:///src/app/modules/prettyjson/prettyjson.component.ts","webpack:///src/app/modules/prettyjson/prettyjson.module.ts","webpack:///src/app/modules/prettyjson/prettyjson.pipe.ts","webpack:///src/app/modules/prettyjson/safe.util.ts","webpack:///src/app/modules/timezoneselector/timezoneselector.component.ts","webpack:///src/app/modules/timezoneselector/timezoneselector.component.html","webpack:///src/app/modules/timezoneselector/timezoneselector.module.ts","webpack:///src/app/modules/wizard/wizard-step.ts","webpack:///src/app/modules/wizard/wizard.module.ts","webpack:///src/app/modules/wizard/wizard.ts","webpack:///src/app/modules/wizard/wizard.template.html","webpack:///src/app/services/accounts/accounts.service.ts","webpack:///src/app/services/asset/asset.service.ts","webpack:///src/app/services/asset/assetTypes.service.ts","webpack:///src/app/services/auditlog/auditlog.service.ts","webpack:///src/app/services/authentication/authentication.service.ts","webpack:///src/app/services/calculationsettings/calculationsettings.service.ts","webpack:///src/app/services/charts/charts.service.ts","webpack:///src/app/services/common/cache.service.ts","webpack:///src/app/services/common/color.service.ts","webpack:///src/app/services/common/functions.service.ts","webpack:///src/app/services/common/map.service.ts","webpack:///src/app/services/common/translator.service.ts","webpack:///src/app/services/customers/customers.service.ts","webpack:///src/app/services/dashboard/dashboard.service.ts","webpack:///src/app/services/device/device.service.ts","webpack:///src/app/services/devicetypes/devicetypes.service.ts","webpack:///src/app/services/driver/driver.service.ts","webpack:///src/app/services/events/events.service.ts","webpack:///src/app/services/grid/grid.service.ts","webpack:///src/app/services/help/faq.service.ts","webpack:///src/app/services/info/info.service.ts","webpack:///src/app/services/issues/issues.service.ts","webpack:///src/app/services/issuetypes/issuetypes.service.ts","webpack:///src/app/services/jobs/jobs.service.ts","webpack:///src/app/services/logging/error-log.service.ts","webpack:///src/app/services/logging/logging-error-handler.ts","webpack:///src/app/services/logging/logging.service.ts","webpack:///src/app/services/platform/accountPlatform.service.ts","webpack:///src/app/services/platform/platform.service.ts","webpack:///src/app/services/resolutiontypes/resolutiontypes.service.ts","webpack:///src/app/services/schedule/schedule.service.ts","webpack:///src/app/services/search/search.service.ts","webpack:///src/app/services/sensors/deviceSensors.service.ts","webpack:///src/app/services/sensors/sensorTypes.service.ts","webpack:///src/app/services/sensors/sensors.service.ts","webpack:///src/app/services/tag/tag.service.ts","webpack:///src/app/services/trip/trip.service.ts","webpack:///src/app/services/users/user.service.ts","webpack:///src/app/services/users/userRole.service.ts","webpack:///src/app/services/wasl/wasl.service.ts","webpack:///src/app/services/workflows/workflows.service.ts","webpack:///src/app/views/accounts/accountAdd.component.ts","webpack:///src/app/views/accounts/accountAdd.template.html","webpack:///src/app/views/accounts/accountCalculationSettings.component.ts","webpack:///src/app/views/accounts/accountCalculationSettings.template.html","webpack:///src/app/views/accounts/accountDetails.component.ts","webpack:///src/app/views/accounts/accountDetails.template.html","webpack:///src/app/views/accounts/accountLog.component.ts","webpack:///src/app/views/accounts/accountLog.template.html","webpack:///src/app/views/accounts/accounts.component.ts","webpack:///src/app/views/accounts/accounts.template.html","webpack:///src/app/views/accounts/accountsWithUse.component.ts","webpack:///src/app/views/accounts/accountsWithUse.template.html","webpack:///src/app/views/appviews.module.ts","webpack:///src/app/views/appviews/about.component.ts","webpack:///src/app/views/appviews/about.component.html","webpack:///src/app/views/appviews/dashboard.component.ts","webpack:///src/app/views/appviews/dashboard.template.html","webpack:///src/app/views/appviews/error404.component.ts","webpack:///src/app/views/appviews/error404.component.html","webpack:///src/app/views/appviews/forgotPassword.component.ts","webpack:///src/app/views/appviews/forgotPassword.template.html","webpack:///src/app/views/appviews/help.component.ts","webpack:///src/app/views/appviews/help.component.html","webpack:///src/app/views/appviews/login.component.ts","webpack:///src/app/views/appviews/login.template.html","webpack:///src/app/views/appviews/register.component.ts","webpack:///src/app/views/appviews/register.template.html","webpack:///src/app/views/appviews/search.component.ts","webpack:///src/app/views/appviews/search.component.html","webpack:///src/app/views/appviews/sso-auth-callback.component.ts","webpack:///src/app/views/appviews/sso-auth-callback.component.html","webpack:///src/app/views/appviews/sso-endsession-callback.component.ts","webpack:///src/app/views/appviews/sso-endsession-callback.component.html","webpack:///src/app/views/appviews/sso-login.component.ts","webpack:///src/app/views/appviews/sso-login.component.html","webpack:///src/app/views/appviews/taglist.component.ts","webpack:///src/app/views/appviews/taglist.component.html","webpack:///src/app/views/appviews/tags.component.ts","webpack:///src/app/views/appviews/tags.component.html","webpack:///src/app/views/appviews/unsubscribe.component.ts","webpack:///src/app/views/appviews/unsubscribe.template.html","webpack:///src/app/views/assets/add.component.ts","webpack:///src/app/views/assets/add.template.html","webpack:///src/app/views/assets/assetDetails.component.ts","webpack:///src/app/views/assets/assetDetails.template.html","webpack:///src/app/views/assets/assetDeviceDetails.component.ts","webpack:///src/app/views/assets/assetDeviceDetails.template.html","webpack:///src/app/views/assets/assetDrivers.component.ts","webpack:///src/app/views/assets/assetDrivers.template.html","webpack:///src/app/views/assets/assetLog.component.ts","webpack:///src/app/views/assets/assetLog.template.html","webpack:///src/app/views/assets/assets.component.ts","webpack:///src/app/views/assets/assets.template.html","webpack:///src/app/views/assets/deviceChooser.component.ts","webpack:///src/app/views/assets/deviceChooser.template.html","webpack:///src/app/views/assets/driverChooser.component.ts","webpack:///src/app/views/assets/driverChooser.template.html","webpack:///src/app/views/assets/map.component.ts","webpack:///src/app/views/assets/map.template.html","webpack:///src/app/views/assets/messages.component.ts","webpack:///src/app/views/assets/messages.template.html","webpack:///src/app/views/assets/sensors.component.ts","webpack:///src/app/views/assets/sensors.template.html","webpack:///src/app/views/assets/trailerChooser.component.ts","webpack:///src/app/views/assets/trailerChooser.template.html","webpack:///src/app/views/assets/trailers.component.ts","webpack:///src/app/views/assets/trailers.template.html","webpack:///src/app/views/assets/trips.component.ts","webpack:///src/app/views/assets/trips.template.html","webpack:///src/app/views/assettypes/add.component.ts","webpack:///src/app/views/assettypes/add.template.html","webpack:///src/app/views/assettypes/assetTypeDetails.component.ts","webpack:///src/app/views/assettypes/assetTypeDetails.template.html","webpack:///src/app/views/assettypes/assetTypeLog.component.ts","webpack:///src/app/views/assettypes/assetTypeLog.template.html","webpack:///src/app/views/assettypes/assetTypes.component.ts","webpack:///src/app/views/assettypes/assetTypes.template.html","webpack:///src/app/views/assettypes/assets.component.ts","webpack:///src/app/views/assettypes/assets.template.html","webpack:///src/app/views/assettypes/calibration.component.ts","webpack:///src/app/views/assettypes/calibration.template.html","webpack:///src/app/views/customers/customerAssets.component.ts","webpack:///src/app/views/customers/customerAssets.template.html","webpack:///src/app/views/customers/customerCalculationSettings.component.ts","webpack:///src/app/views/customers/customerCalculationSettings.template.html","webpack:///src/app/views/customers/customerDetails.component.ts","webpack:///src/app/views/customers/customerDetails.template.html","webpack:///src/app/views/customers/customerDevices.component.ts","webpack:///src/app/views/customers/customerDevices.template.html","webpack:///src/app/views/customers/customerIssues.component.ts","webpack:///src/app/views/customers/customerIssues.template.html","webpack:///src/app/views/customers/customers.component.ts","webpack:///src/app/views/customers/customers.template.html","webpack:///src/app/views/devices/add.component.ts","webpack:///src/app/views/devices/add.template.html","webpack:///src/app/views/devices/assetDetails.component.ts","webpack:///src/app/views/devices/assetDetails.template.html","webpack:///src/app/views/devices/deviceCalculationSettings.component.ts","webpack:///src/app/views/devices/deviceCalculationSettings.template.html","webpack:///src/app/views/devices/deviceDetails.component.ts","webpack:///src/app/views/devices/deviceDetails.template.html","webpack:///src/app/views/devices/deviceFuel.component.ts","webpack:///src/app/views/devices/deviceFuel.template.html","webpack:///src/app/views/devices/deviceIssues.component.ts","webpack:///src/app/views/devices/deviceIssues.template.html","webpack:///src/app/views/devices/deviceLocations.component.ts","webpack:///src/app/views/devices/deviceLocations.template.html","webpack:///src/app/views/devices/deviceLog.component.ts","webpack:///src/app/views/devices/deviceLog.template.html","webpack:///src/app/views/devices/deviceSettings.component.ts","webpack:///src/app/views/devices/deviceSettings.template.html","webpack:///src/app/views/devices/devices.component.ts","webpack:///src/app/views/devices/devices.template.html","webpack:///src/app/views/devices/devicesMap.component.ts","webpack:///src/app/views/devices/devicesMap.template.html","webpack:///src/app/views/devices/devicesMap2.component.ts","webpack:///src/app/views/devices/devicesMap2.template.html","webpack:///src/app/views/devices/sensorDetails.component.ts","webpack:///src/app/views/devices/sensorDetails.template.html","webpack:///src/app/views/devices/trips.component.ts","webpack:///src/app/views/devices/trips.template.html","webpack:///src/app/views/devicetypes/deviceTypeCalculationSettings.component.ts","webpack:///src/app/views/devicetypes/deviceTypeCalculationSettings.template.html","webpack:///src/app/views/devicetypes/deviceTypeDetails.component.ts","webpack:///src/app/views/devicetypes/deviceTypeDetails.template.html","webpack:///src/app/views/devicetypes/deviceTypeDevices.component.ts","webpack:///src/app/views/devicetypes/deviceTypeDevices.template.html","webpack:///src/app/views/devicetypes/deviceTypeIssues.component.ts","webpack:///src/app/views/devicetypes/deviceTypeIssues.template.html","webpack:///src/app/views/devicetypes/deviceTypes.component.ts","webpack:///src/app/views/devicetypes/deviceTypes.template.html","webpack:///src/app/views/drivers/add.component.ts","webpack:///src/app/views/drivers/add.template.html","webpack:///src/app/views/drivers/driverAssets.component.ts","webpack:///src/app/views/drivers/driverAssets.template.html","webpack:///src/app/views/drivers/driverDetails.component.ts","webpack:///src/app/views/drivers/driverDetails.template.html","webpack:///src/app/views/drivers/driverDevices.component.ts","webpack:///src/app/views/drivers/driverDevices.template.html","webpack:///src/app/views/drivers/driverLog.component.ts","webpack:///src/app/views/drivers/driverLog.template.html","webpack:///src/app/views/drivers/drivers.component.ts","webpack:///src/app/views/drivers/drivers.template.html","webpack:///src/app/views/issues/charts.component.ts","webpack:///src/app/views/issues/charts.template.html","webpack:///src/app/views/issues/deviceIssues.component.ts","webpack:///src/app/views/issues/deviceIssues.template.html","webpack:///src/app/views/issues/groupedIssues.component.ts","webpack:///src/app/views/issues/groupedIssues.template.html","webpack:///src/app/views/issues/issueDetails.component.ts","webpack:///src/app/views/issues/issueDetails.template.html","webpack:///src/app/views/issues/issueDetailsChart.component.ts","webpack:///src/app/views/issues/issueDetailsChart.template.html","webpack:///src/app/views/issues/issueLog.component.ts","webpack:///src/app/views/issues/issueLog.template.html","webpack:///src/app/views/issues/issues.component.ts","webpack:///src/app/views/issues/issues.template.html","webpack:///src/app/views/issues/issuesMap.component.ts","webpack:///src/app/views/issues/issuesMap.template.html","webpack:///src/app/views/jobs/active.component.ts","webpack:///src/app/views/jobs/active.template.html","webpack:///src/app/views/jobs/history.component.ts","webpack:///src/app/views/jobs/history.template.html","webpack:///src/app/views/platforms/platformCalculationSettings.component.ts","webpack:///src/app/views/platforms/platformCalculationSettings.template.html","webpack:///src/app/views/platforms/platformDetails.component.ts","webpack:///src/app/views/platforms/platformDetails.template.html","webpack:///src/app/views/platforms/platformDevices.component.ts","webpack:///src/app/views/platforms/platformDevices.template.html","webpack:///src/app/views/platforms/platformIssues.component.ts","webpack:///src/app/views/platforms/platformIssues.template.html","webpack:///src/app/views/platforms/platforms.component.ts","webpack:///src/app/views/platforms/platforms.template.html","webpack:///src/app/views/reporting/reporting.component.ts","webpack:///src/app/views/reporting/reporting.template.html","webpack:///src/app/views/schedule/calendar.component.ts","webpack:///src/app/views/schedule/calendar.template.html","webpack:///src/app/views/schedule/schedule.component.ts","webpack:///src/app/views/schedule/schedule.template.html","webpack:///src/app/views/sensortypes/add.component.ts","webpack:///src/app/views/sensortypes/add.template.html","webpack:///src/app/views/sensortypes/sensorTypes.component.ts","webpack:///src/app/views/sensortypes/sensorTypes.template.html","webpack:///src/app/views/sensortypes/sensorTypesDetails.component.ts","webpack:///src/app/views/sensortypes/sensorTypesDetails.template.html","webpack:///src/app/views/settings/calculationSettings.component.ts","webpack:///src/app/views/settings/calculationSettings.template.html","webpack:///src/app/views/settings/calculationSettingsOverview.component.ts","webpack:///src/app/views/settings/calculationSettingsOverview.template.html","webpack:///src/app/views/settings/calculationSettingsOverviewTable.component.ts","webpack:///src/app/views/settings/calculationSettingsOverviewTable.template.html","webpack:///src/app/views/settings/errorlog.component.ts","webpack:///src/app/views/settings/errorlog.component.html","webpack:///src/app/views/settings/general.component.ts","webpack:///src/app/views/settings/general.template.html","webpack:///src/app/views/settings/language.component.ts","webpack:///src/app/views/settings/language.template.html","webpack:///src/app/views/settings/profile.component.ts","webpack:///src/app/views/settings/profile.template.html","webpack:///src/app/views/settings/sensorDetails.component.ts","webpack:///src/app/views/settings/sensorDetails.template.html","webpack:///src/app/views/settings/sensorDevices.component.ts","webpack:///src/app/views/settings/sensorDevices.template.html","webpack:///src/app/views/settings/sensorSettings.component.ts","webpack:///src/app/views/settings/sensorSettings.template.html","webpack:///src/app/views/settings/settings.component.ts","webpack:///src/app/views/settings/settings.template.html","webpack:///src/app/views/settings/theme.component.ts","webpack:///src/app/views/settings/theme.template.html","webpack:///src/app/views/settings/workflow.component.ts","webpack:///src/app/views/settings/workflow.template.html","webpack:///src/app/views/shared/footer/footer.component.ts","webpack:///src/app/views/shared/footer/footer.template.html","webpack:///src/app/views/shared/iboxtools/iboxsearch.component.ts","webpack:///src/app/views/shared/iboxtools/iboxsearch.template.html","webpack:///src/app/views/shared/iboxtools/iboxtools.component.ts","webpack:///src/app/views/shared/iboxtools/iboxtools.template.html","webpack:///src/app/views/shared/iboxtools/iboxtools.module.ts","webpack:///src/app/views/shared/layouts/basicLayout.component.ts","webpack:///src/app/views/shared/layouts/basicLayout.template.html","webpack:///src/app/views/shared/layouts/blankLayout.component.ts","webpack:///src/app/views/shared/layouts/blankLayout.template.html","webpack:///src/app/views/shared/navigation/navigation.component.ts","webpack:///src/app/views/shared/navigation/navigation.template.html","webpack:///src/app/views/shared/sharedlayouts.module.ts","webpack:///src/app/views/shared/topnavbar/topnavbar.component.ts","webpack:///src/app/views/shared/topnavbar/topnavbar.template.html","webpack:///src/app/views/shared/usercontrols.module.ts","webpack:///src/app/views/shared/usercontrols/accountDetails.component.ts","webpack:///src/app/views/shared/usercontrols/accountDetails.component.html","webpack:///src/app/views/shared/usercontrols/accountPlatformControl.component.ts","webpack:///src/app/views/shared/usercontrols/accountPlatformControl.template.html","webpack:///src/app/views/shared/usercontrols/addressDetails.component.ts","webpack:///src/app/views/shared/usercontrols/addressDetails.component.html","webpack:///src/app/views/shared/usercontrols/adviceDetails.component.ts","webpack:///src/app/views/shared/usercontrols/adviceDetails.component.html","webpack:///src/app/views/shared/usercontrols/assetDetails.component.ts","webpack:///src/app/views/shared/usercontrols/assetDetails.component.html","webpack:///src/app/views/shared/usercontrols/assetTypeChooser.component.ts","webpack:///src/app/views/shared/usercontrols/assetTypeChooser.template.html","webpack:///src/app/views/shared/usercontrols/assetTypeDetails.component.ts","webpack:///src/app/views/shared/usercontrols/assetTypeDetails.component.html","webpack:///src/app/views/shared/usercontrols/assetTypeModule.component.ts","webpack:///src/app/views/shared/usercontrols/assetTypeModule.template.html","webpack:///src/app/views/shared/usercontrols/assetTypePropertyEditor.component.ts","webpack:///src/app/views/shared/usercontrols/assetTypePropertyEditor.component.html","webpack:///src/app/views/shared/usercontrols/assetTypeSelector.component.ts","webpack:///src/app/views/shared/usercontrols/assetTypeSelector.template.html","webpack:///src/app/views/shared/usercontrols/calculationSettings.component.ts","webpack:///src/app/views/shared/usercontrols/calculationSettings.component.html","webpack:///src/app/views/shared/usercontrols/calibrationDetails.component.ts","webpack:///src/app/views/shared/usercontrols/calibrationDetails.component.html","webpack:///src/app/views/shared/usercontrols/deleteModal.component.ts","webpack:///src/app/views/shared/usercontrols/deleteModal.template.html","webpack:///src/app/views/shared/usercontrols/deviceDetails.component.ts","webpack:///src/app/views/shared/usercontrols/deviceDetails.template.html","webpack:///src/app/views/shared/usercontrols/devicesNearby.component.ts","webpack:///src/app/views/shared/usercontrols/devicesNearby.template.html","webpack:///src/app/views/shared/usercontrols/driverDetails.component.ts","webpack:///src/app/views/shared/usercontrols/driverDetails.component.html","webpack:///src/app/views/shared/usercontrols/error.component.ts","webpack:///src/app/views/shared/usercontrols/error.component.html","webpack:///src/app/views/shared/usercontrols/filterToggler.component.ts","webpack:///src/app/views/shared/usercontrols/filterToggler.component.html","webpack:///src/app/views/shared/usercontrols/gridPresets.component.ts","webpack:///src/app/views/shared/usercontrols/gridPresets.component.html","webpack:///src/app/views/shared/usercontrols/lang-selector.component.ts","webpack:///src/app/views/shared/usercontrols/logger.component.ts","webpack:///src/app/views/shared/usercontrols/logger.component.html","webpack:///src/app/views/shared/usercontrols/saveFooter.component.ts","webpack:///src/app/views/shared/usercontrols/saveFooter.component.html","webpack:///src/app/views/shared/usercontrols/scheduleDetails.component.ts","webpack:///src/app/views/shared/usercontrols/scheduleDetails.template.html","webpack:///src/app/views/shared/usercontrols/sensorTypeDetails.component.ts","webpack:///src/app/views/shared/usercontrols/sensorTypeDetails.component.html","webpack:///src/app/views/shared/usercontrols/tagging.component.ts","webpack:///src/app/views/shared/usercontrols/tagging.template.html","webpack:///src/app/views/shared/usercontrols/userDetails.component.ts","webpack:///src/app/views/shared/usercontrols/userDetails.component.html","webpack:///src/app/views/shared/usercontrols/userEditor.component.ts","webpack:///src/app/views/shared/usercontrols/userEditor.template.html","webpack:///src/app/views/shared/usercontrols/waslAssetDetails.component.ts","webpack:///src/app/views/shared/usercontrols/waslAssetDetails.component.html","webpack:///src/app/views/shared/usercontrols/waslDriverDetails.component.ts","webpack:///src/app/views/shared/usercontrols/waslDriverDetails.component.html","webpack:///src/app/views/trailers/add.component.ts","webpack:///src/app/views/trailers/add.template.html","webpack:///src/app/views/trailers/assets.component.ts","webpack:///src/app/views/trailers/assets.template.html","webpack:///src/app/views/trailers/trailerDetails.component.ts","webpack:///src/app/views/trailers/trailerDetails.template.html","webpack:///src/app/views/trailers/trailers.component.ts","webpack:///src/app/views/trailers/trailers.template.html","webpack:///src/app/views/users/userAdd.component.ts","webpack:///src/app/views/users/userAdd.template.html","webpack:///src/app/views/users/userDetails.component.ts","webpack:///src/app/views/users/userDetails.template.html","webpack:///src/app/views/users/userLog.component.ts","webpack:///src/app/views/users/userLog.template.html","webpack:///src/app/views/users/userRoleDetails.component.ts","webpack:///src/app/views/users/userRoleDetails.template.html","webpack:///src/app/views/users/userRoles.component.ts","webpack:///src/app/views/users/userRoles.template.html","webpack:///src/app/views/users/users.component.ts","webpack:///src/app/views/users/users.template.html","webpack:///src/app/views/wasl/status.component.ts","webpack:///src/app/views/wasl/status.template.html","webpack:///src/app/views/wasl/wasl.component.ts","webpack:///src/app/views/wasl/wasl.template.html","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","webpackContextKeys","Object","resolve","module","exports","webpackEmptyAsyncContext","Promise","then","window","AppComponent","localeService","renderer","translate","authenticationService","setDefaultLang","currentLang","currentSavedLang","getLanguage","console","log","use","onLangChange","subscribe","event","lang","addClass","document","body","removeClass","selector","templateUrl","styleUrls","correctHeight","pageWrapper","jQuery","navbarHeight","height","wrapperHeight","css","hasClass","detectBody","width","smoothlyMenu","hide","setTimeout","fadeIn","removeAttr","createTranslateLoader","http","AppModule","provide","useValue","rethrowError","unwrapError","useClass","useFactory","forRoot","animationType","rectangleBounce","backdropBackgroundColour","backdropBorderRadius","primaryColour","secondaryColour","tertiaryColour","loader","deps","missingTranslationHandler","timeOut","positionClass","preventDuplicates","declarations","imports","providers","bootstrap","ROUTES","path","redirectTo","pathMatch","component","canActivate","canActivateChild","children","appVersion","appDate","AuthGuard","authService","next","state","auth","IsAuthenticated","url","FilterAssetTypePipe","items","asset","filter","item","brand","toUpperCase","indexOf","model","name","pure","SettingsLevel","SidebarOptions","languages","whitelabels","PermissionsBitmask","IssueTypeEnums","Uom","DistanceUnits","VolumeUnits","MapType","FormMode","ScheduleActions","Severity","AccountType","NotificationCode","kmToMilesMultiplier","litersToUSLiquidGallonsMultiplier","litersToImperialGallonsMultiplier","colorArray","assetTypeOptions","createSearch","dtInstance","dynamicFilterContainer","excluding","createSelectBoxes","html","columns","every","that","visible","header","textContent","divColumn","$","index","title","divColumnInner","icon","iconSpan","appendTo","select","on","val","column","search","draw","statusItems","data","unique","sort","each","d","j","append","textBox","style","placeholder","value","getGridLanguages","translateService","instant","getGridButtons","commonExportOptions","fileName","extend","text","exportOptions","messageTop","filename","orientation","getDropdownSettings","groupBy","badgeShowLimit","showCheckbox","classes","enableSearchFilter","lazyLoading","getTranslatedDropdownSettings","singleSelection","selectAllText","unSelectAllText","searchPlaceholderText","noDataLabel","getDefaultDpConfig","containerClass","dateInputFormat","rangeSeparator","rangeInputFormat","mapMultiDropdown","key","setTableStars","table","tableIds","forEach","star","click","changeFlag","setSelection","tableIdsSelection","checkbox","parentRow","closest","gridSelction","push","splice","setSelectionRows","row","gridSelection","inArray","getMapProviders","L","extraLayers","osm","tileLayer","tileSize","zoomOffset","minZoom","attribution","crossOrigin","googleMaps","maxZoom","subdomains","detectRetina","googleHybrid","maps","createMapOptions","options","layers","zoom","center","latLng","CustomMissingTranslationHandler","params","NumberOnlyDirective","el","regex","RegExp","specialKeys","current","nativeElement","concat","String","match","preventDefault","OrderByPipe","expression","reverse","isCaseInsensitive","comparator","Array","isArray","multiExpressionTransform","sortArray","slice","transformObject","assign","isDeepLink","parseExpression","compareFn","caseInsensitiveSort","defaultCompare","array","a","b","getValue","parsedExpression","lastPredicate","pop","oldValue","setValue","transform","expressions","reduce","result","isString","localeCompare","replace","split","object","i","n","length","k","FilterRelevantPipe","isCustomDeviceSensorTypeId","TextFilterPipe","searchText","toLowerCase","it","parameter","some","predicate","Properties","wasl","InventoryAccount","properties","AccountPlatform","SlimWaslAsset","VehiclePlate","WaslAsset","vehiclePlate","Asset","createNewAssetType","AssetDevice","AssetType","assetClass","category","AuditLog","deltaItems","AuthenticateRequest","Username","Password","Token","CalculationSettings","issueTypeSettings","IssueTypeSettings","severity","lowerThreshold","upperThreshold","duration","IssueTypesWithPermissions","Config","Customer","Dashboard","AdminDashboard","WorstDevices","LocationCount","Device","issues","IntermediateDevice","DeviceDashboard","DeviceType","Driver","dateOfBirth","Date","isActive","WaslDriver","AssetDriver","ErrorLog","Issue","IssueJson","IssueType","Job","JobHistoryLog","Location","latitude","longitude","Manufacturer","DashboardNotification","Platform","AppAccountPlatform","Account","AppAccount","status","AddressDetails","ResolutionType","Schedule","DeviceSensor","isChanged","AssetSensor","calibrationPoints","DeviceSensorType","SensorUser","SensorDevice","InventorySensorType","conversionFormula","Tag","TagSearch","TagUsage","TagPost","TagObjectType","User","AppUser","accountId","password","timezoneIana","UpdatePasswordRequest","UserRole","RegisterOperatingCompanyRequest","Workflow","Action","WorkflowAction","days","nextActions","WorkflowActionActions","DataTable360Directive","dtOptions","dtTrigger","empty","displayTable","unsubscribe","dt","destroy","reject","DataTable","DataTables360Module","ngModule","CountoDirective","countoChange","countoEnd","_duration","parseFloat","run","countTo","_countTo","countFrom","_countFrom","step","_step","_this","clearInterval","_timer","isNaN","intermediate","increment","Math","abs","emit","setInterval","CountoModule","ICheckComponent","render","render2","service","_config","ifClicked","ifChanged","ifChecked","ifUnchecked","ifToggled","ifDisabled","ifEnabled","ifIndeterminate","ifDeterminate","_nodeType","type","handle","_initialConfig","_view","_events","_registry","attributes","iCheckClass","firstChange","previousValue","_wrapper","currentValue","_unregistry","disabled","checked","_isRadio","_name","_value","trigger","_emit","update","uncheck","check","uncheckedClass","checkedClass","enabledClass","disabledClass","getAttribute","registry","_subscription","observable","prefix","theme","_parentNode","parentNode","nodeName","setAttribute","setStyle","childNodes","nodeType","removeAttribute","createElement","ins","layer","position","top","left","display","margin","padding","background","border","opacity","insertBefore","appendChild","_isTheme","label","removeChild","innerHTML","createText","eventName","target","timestamp","now","listen","stopPropagation","hoverClass","labelHover","labelHoverClass","template","ICheckConfig","config","checkboxClass","radioClass","checkedCheckboxClass","checkedRadioClass","uncheckedCheckboxClass","uncheckedRadioClass","disabledCheckboxClass","disabledRadioClass","enabledCheckboxClass","enabledRadioClass","indeterminateClass","indeterminateCheckboxClass","indeterminateRadioClass","determinateClass","determinateCheckboxClass","determinateRadioClass","focusClass","activeClass","ICheckOptions","factoryICheckConfig","ICheckModule","multi","ICheckRadioService","_groups","group","_getGroup","values","toString","subject","asObservable","find","ContainerComponent","notificationsService","router","notifications","notification","existingNotification","message","sub","findSimilar","routerSub","events","NotificationComponent","dismissNotify","dismiss","NotificationsModule","Notification","TYPE_INFO","TYPE_ERROR","TYPE_WARNING","NotificationsService","pushNotification","SafeJsonPipe","obj","spaces","JSON","stringify","PrettyJsonComponent","styles","PrettyJsonModule","PrettyJsonPipe","_syntaxHighlight","json","serializer","spacing","undefined","cls","test","stack","cycleReplacer","join","thisPos","Infinity","call","TimezoneSelectorComponent","cd","timezoneValueChange","showOffset","allTimezones","allTimezones2","zones","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","countryList","BV","HM","AN","formatTimezoneString","zone","arr","offsetOfTimezone","offset","utcOffset","neg","hours","floor","minutes","rjust","string","substr","repeat","res","_i","_a","prop","iso","getZones","markForCheck","timezone","changeDetection","OnPush","TimezoneSelectorModule","WizardStepComponent","parent","validate","open","addStep","isCurrent","stepChange","host","WizardModule","WizardComponent","finish","stepCount","steps","progressWidth","isOnFinalStep","isOnFirstStep","newSteps","thestep","x","percentage","addpercentage","validateForm","valid","handlePrevious","AccountService","loggingService","urlInventory","getWebserviceURL","getInventoryURL","get","headers","parseResponse","handleError","appAccount","post","completed","error","urlExtra","parseResponseData","account","identifier","limitHistoryInDays","put","constructor","accounts","date","issueCount","jobCount","userCount","platformCount","deviceCount","createdDate","assetCount","driverCount","waslAssetCount","waslDriverCount","waslSuccessCount","waslFailedCount","address","commercialRecordIssueDateHijri","commercialRecordNumber","dateOfBirthGregorian","emailAddress","extensionNumber","identityNumber","managerMobileNumber","managerName","managerPhoneNumber","phoneNumber","referenceKey","AssetService","Assets","inventory_url","inventory_url_base","parseReponseDetails","assetTypeId","parentAssetId","childAssetId","startDate","endDate","assetLinkId","assetId","driverId","round","assetDriverId","permanent","assetDevices","assetDevice","deviceId","device","deviceName","start","end","ident","assets","unitId","year","vehicleType","vin","referenceId","plateNumber","color","assetTypeName","identificationTag","humiditySensorPosition","humiditySensorTypeId","temperatureSensorPosition","temperatureSensorTypeId","weightSensorPosition","weightSensorTypeId","assetDriverDto","assetDriver","assetLinkStartDate","assetLinkType","assetLinkEndDate","plateType","sequenceNumber","vehiclePlateNumber","vehiclePlateLeftLetter","vehiclePlateMiddleLetter","vehiclePlateRightLetter","AssetTypeService","token","getAuthToken","parsedResponse","assetType","getTime","serie","trim","isEditable","parse","AuditLogService","userService","users","getTimeZoneIana","getUsers","auditlogs","description","delta","logtype","logType","user","userName","issue","issueType","toDate","AuthenticationService","location","cookieService","eventService","permissions","permissionsFetched","isLoggedInWithSSO","manager","getSSOSettings","setting","permisisonsBit","isEnabled","permission","permissionJson","localStorage","setItem","btoa","getItem","PERMISSIONS_IMPERSONATE","PERMISSIONS","atob","err","enviroment","returnVar","request","TOKEN_IMPERSONATE","TOKEN","TOKEN_IMPERSONATE_EXPIRED","TOKEN_EXPIRED","ID_IMPERSONATE","USERID_IMPERSONATE","ACCOUNTID_IMPERSONATE","setPermissions","TIMEZONEIANA_IMPERSONATE","WHITELABEL_IMPERSONATE","whitelabel","navigate","reload","reloadPage","USERID","LANGUAGE","langTag","DISTANCEUNIT","VOLUMEUNIT","WHITELABEL","serverCulture","getServerCulture","startsWith","warn","CULTURE","TIMEZONE","TIMEZONEIANA","ACCOUNTID","resource","baseUrl","CLUSTER_URL","FLEETOVERVIEW_URL","INVENTORY_URL","LIMITDISTORYINDAYS","_path","getConfig","clearLocalStorage","isImpersonatingUser","isTokenValid","Debug","ssoToken","getSessionCookie","Environment","performLoginWithSsoToken","queryParams","redirect","getPermissions","AuthenticationUrl","environment","clusterUrl","saveToken","provider","SSOPROVIDER","SSOPROVIDERTOKEN","environmentToConfig","cfg","version","InventoryUrl","FleetOverviewUrl","ConsumerToken","SSOAuthenticationUrl","SSOPostLogoutRedirectUrl","SSORedirectUrl","authenticateResult","stopImpersonation","tokenExpires","language","culture","timeZone","set","removeItem","MAPPROVIDER","ISIMPERSONATINGUSER","cookie","domain","tokenExpired","signoutRedirectCallback","clearStaleState","idtoken","userData","nonce","checkNonce","performLoginWithSSO","throwError","local","charset","bytes","Uint8Array","random","crypto","getRandomValues","c","authority","client_id","redirect_uri","response_type","scope","post_logout_redirect_uri","filterProtocolClaims","loadUserInfo","CalculationSettingsService","level","extra","settings","postBody","deleteBody","httpOptions","FhChartService","colors","time","theData","format","chart","subtitle","plotOptions","pie","size","shadow","allowPointSelect","cursor","dataLabels","enabled","showInLegend","credits","xAxis","labels","rotation","fontSize","fontFamily","yAxis","min","legend","layout","align","verticalAlign","floating","y","backgroundColor","borderColor","tooltip","pointFormat","series","overwrite","chartPrimary","chartSecondary","chartThird","chartFourth","chartFifth","theDrilldownData","chartObject","stacking","drilldown","zoomType","allowDecimals","minRange","startOf","add","max","startOnTick","endOnTick","tickInterval","gridLineWidth","headerFormat","footerFormat","shared","useHTML","issueTypes","allIssueTypes","itemName","formatter","issueTypeString","types","areaspline","lineColor","lineWidth","fillOpacity","marker","pane","startAngle","endAngle","innerRadius","outerRadius","shape","stops","minorTickInterval","tickAmount","solidgauge","borderWidth","valueSuffix","plotLines","plotBands","titlesAndUnitsOfMeasurement","yAxes","theMarker","theIcon","iconSize","iconAnchor","iconUrl","shadowUrl","dateTimeLabelFormats","month","borderRadius","footer","points","element","unitOfMeasurement","point","turboThreshold","mouseOver","latlon","removeLayer","addTo","setView","seriesName","mouseOut","opposite","valueDecimals","flyTo","issueCountChart","inverted","spacingLeft","href","issueId","categories","showEmpty","ref$","datapoint","setState","refresh","threshold","violationLowerThreshold","violationDuration","humanize","sensorName","CacheService","accountPlatformService","platformService","deviceService","issueService","deviceTypeService","issueTypeService","IssueTypes","DeviceTypes","Platforms","AccountPlatforms","Devices","ThemeColors","logoBinary","primary","secondary","seachBackground","seachColor","chartPositive","chartNegative","_360locateLogo","locationSolutionsLogo","ColorService","themeName","locate360","ginger","lightBlue","ls","blue","modern","logoLoginBinary","arrayFromMask","nMask","TypeError","fixDate","setHours","getHours","getTimezoneOffset","createMask","thePermissionArray","mask","formatViolationThreshold","isUpperThreshold","violationThreshold","OutlierDistance","TooMuchDistancePerMessage","TooMuchDistance","HighDataConsumptionMinimumMotion","TooFewLocations","TooManyLocations","FarTooManyMessages","BackupBatteryTooLow","BatteryPowerTooLow","LooseConnectionOrIgnitionWire","TooManyPowerlossEvents","BadGpsReception","GpsDrift","MissingDriver","DelayedMessages","humanizeTimespan","originalValue","hourDuration","minuteDuration","hourValue","minuteValue","secondValue","getUTCStartOfDayDateTimeFromTimezone","clone","tz","utc","MapService","leafletView","BuildLeafletClusterIcon","cluster","Icon","MarkerCluster","stats","population","pi2","PI","Point","className","createIcon","_setIconStyles","s","Browser","retina","getContext","createShadow","canvas","lol","l","beginPath","moveTo","fillStyle","from","to","arc","lineTo","fill","closePath","textAlign","textBaseline","font","fillText","PrepareLeafletMarker","setIcon","getPopup","setPopupContent","bindPopup","TranslatorService","translateString","CustomerService","translatorService","customers","setDefinate","customer","count","platformId","platformName","accountPlatformId","accountPlatformName","modifiedDate","DashboardService","parseNotifications","parseNotificationResponse","accountPlatform","customerId","accountPlatformIds","customerIds","parseAdminResponse","returnobject","item1","item2","dashboard","accountsWithoutIssues","activeAccounts","activeJobCount","activeUsers","historyJobCount","allDeviceCount","trailerCount","deviceWithIssues","deviceWithIssuesCount","deviceWithIssuesMax","deviceWithIssuesCountMax","deviceTypesCount","assetTypeCount","assetTypesUsedCount","deviceCountLastPeriod","issueCountLastPeriod","deviceWithIssuesLastPeriod","deviceWithIssuesCountLastPeriod","deviceTypesCountLastPeriod","worstDevices","healthyCount","healthyCountLastPeriod","data1","data2","DeviceService","urlFleetOverview","getFleetOverviewUrl","onlyFromMemmory","lookupDate","intermediateDevice","phone","deviceType","deviceTypeId","Note","note","isNoteWarning","IsFlagged","isFlagged","HasIssueCalculationEnabled","hasIssueCalculationEnabled","issueTypeCSV","devices","customFields","lastCommunication","isEnded","unitId2","modelName","modelId","modelThumb","manufacturer","manufacturerName","sensors","referenceLink","customerName","firmware","lastPosition","latlngStr","lat","lng","DeviceTypeService","includeThumbnails","excludeUnused","deviceTypes","image","thumbnail","DriverService","inventoryUrl","Drivers","driver","drivers","mobileNumber","EventService","assetCount$","onWhitelabelChance","bool","GridService","constructorName","presetList","FaqService","questions","answer","question","unshift","questionsLS","InfoService","IssueService","geoJson","issueDate","issueDateFormatted","issueTypeId","deviceTypeName","issueTypeDescription","issueTypeUom","issueTypeUomDescription","issueTypeUomDisplay","issueTypeUomDisplayDescription","issueTypeEditableThresholds","closedDate","statusDescription","resolutionDescription","resolutionType","hasTelemetrySummary","hasDurationThreshold","violationUpperThreshold","noGpsFixCount","deviceSensorTypeId","hasMotion","ignitionCount","messageCount","distanceInMeters","distanceInKm","toFixed","IssueTypeService","parseResponseDetails","uom","uomDescription","thresholdHasBounds","hasDuration","displayUom","editableThresholds","JobsService","jobUrl","jobHistoryUrl","parseHistoryResponse","jobs","job","parseHistoryResponseData","isRunning","lastRuntime","accountName","nextRun","lastStatus","endJob","totalDeviceCount","devicesErrorCount","devicesProcessedCount","devicesSkippedCount","fromDate","jobId","messages","startJob","diff","ErrorLogService","sendToConsole","sendToServer","caller","logError","CustomError","groupEnd","getStaticToken","getStaticClusterUrl","auditlog","username","createddate","Name","Message","Stack","httpResponse","httpError","LoggingErrorHandlerOptions","LoggingErrorHandlerOptionsTokens","LoggingErrorHandler","errorLogService","findOriginalError","loggingError","originalError","LoggingErrorHandlerProviders","LoggingService","logErrorString","AccountPlatformService","urlInventoryBase","getAccountPlatforms","platforms","platform","platformType","ap","PlatformService","ResolutionTypeService","ResolutionTypes","resolutionTypes","nameTranslated","ScheduleService","ScheduleActionDescriptions","schedule","schedules","actionId","actionName","workflowId","workflowName","userId","SearchService","term","responseArray","response","searchResultType","groupname","DeviceSensorsService","sensorUsers","sensorUser","sensorCount","sensorDevices","sensorDevice","param","sensorTypes","sensorType","sensor","metrics","deviceSensorType","SensorsTypesService","deviceSensorTypeName","SensorService","urlBase","sensorPosition","sensorTypeId","TagService","guid","parseTagSearchResponse","parseTagUsageResponse","tag","objectId","objectType","tags","parseTagSearchResponseDetails","objectName","parseTagUsageResponseDetails","useCount","nameWithCount","Trip","TripService","tripId","parseTripDetails","trips","trip","Id","AssetId","DeviceId","DriverId","driverName","DriverName","beginDateTime","BeginDateTime","beginLabel","BeginLabel","beginCity","BeginCity","beginLatitude","BeginLatitude","beginLongitude","BeginLongitud","endDateTime","EndDateTime","endLabel","EndLabel","endCity","EndCity","endLatitude","EndLatitude","endLongitude","EndLongitud","boundingDistanceInMetres","BoundingDistanceInMetres","segmentDistanceInKilometers","SegmentDistanceInKilometers","locations","Locations","UserService","appUser","firstName","lastName","fullName","userRoleId","userRoleName","email","cronTabPattern","UserRoleService","userLevel","WaslService","waslAsset","waslCompany","waslDriver","WorkflowService","WorkflowActionDescriptions","actions","parseActionResponse","workflows","workflow","workflowActions","workflowAction","wfa","action","isStartAction","isEndAction","hasCommunication","allowAutoProcess","workflowActionActions","wfaa","fromActionId","toActionId","parseActionReponseDetails","isCustom","AccountAddViewComponent","userRoleService","route","accountService","theTrips","accountPlatforms","loading","loadingSensors","formMode","hasError","platformValidation","passwordConfirmation","createNew","optionalAccountPlatform","isBoolean","Valid","Invalid","newAccountPlatform","accountModel","userRequest","accountPlatformRequest","isUsed","isDisabled","accountplatforms","validatedAccountsPlatforms","serializeValues","Number","createAccount","AccountCalculationSettingsViewComponent","getAccountById","AccountDetailsViewComponent","read","hasSuccess","showAccountPlatforms","formModeAccountPlatforms","loadingUsers","loadingAccountPlatforms","getUsersByAccountId","getAccountPlatformByAccountId","updateAccount","success","getAccountIfo","mode","deleteModal","showModal","hideModal","deleteAccount","createAccountPlatformCall","createNewAccountPlatform","createResult","accountPlatformResult","onSave","setFormMode","updateAccountPlatforms","createAccountPlatforms","onAccountDelete","AccountLogViewComponent","auditLogService","accountLog","getAuditLogByAccount","AccountViewComponent","ngZone","countrySelect","showOnlyActive","dropdown_IssueType","dropdown_DeviceType","dropdown_Severity","datatableElement","fn","ext","languageLoaded","initGrid","namespace","pagingType","serverSide","processing","scrollX","colReorder","fixedColumnsLeft","order","stateSave","stateSaveCallback","stateLoadCallback","columnSettings","searchTerm","ajax","dataTablesParameters","callback","getAccounts","resp","recordsTotal","recordsFiltered","initComplete","colVis","restore","showAll","showNone","exclude","orderable","pageLength","seachChanged","AccountWithUseViewComponent","fireFilter","hideForWasl","accountsCall","getAccountsWithUseWasl","getAccountsWithUse","checkFilters","Boolean","AppviewsModule","AboutViewComponent","infoService","applications","getInfo","endPoint","getEndPoint","DashboardComponent","tagService","authentication","chartService","customerService","dashboardService","issueTypesResult","progress","progress2","deviceCountHistory","healthyCountHistory","issueCountHistory","deviceTypesCountHistory","healthyCountHistoryPercentage","issueCountHistoryPercentage","deviceCountHistoryPercentage","deviceTypesCountHistoryPercentage","loadingIssues","dpConfig","maxDate","issueCountObservable","issueCountObservable$","loadingDevices","loadingCustomers","deviceWithIssuesHistory","deviceWithIssuesPercentage","deviceWithIssuesHistoryPercentage","healthyDateSelection","adminIssueCount","adminAccountsWithoutIssues","adminActiveAccounts","adminActiveJobCount","adminActiveUsers","adminHistoryJobCount","healthyShowPie","issueTypesDateSelection","issueTypesShowPie","selectedCustomers","selectedAccountPlatforms","showFilter","loadAccountPlatform","fetchData","loadingPerDeviceChart","loadingPerIssueChart","loadingIssueCount","loadingIssuesPerType","getTagsWithUsage","sliced","selected","innerSize","chartTags","generateDonutChart","dropdown_AccountPlatformsSettings","dropdown_CustomerNameSettings","isImpersonated","getIsImpersonated","daysForDayshboard","dateDisplay","today","snapshot","endOf","daterangepickerModel","getCustomers","theCurrentCount","getAdminDashboard","loadingAccounts","getAccountsWithUseHistory","generateChartAccountUse","generateChartAccountWithoutIssues","getDashboard","generateLocationHealty","getDashboardIssuesPerIssueType","IssuesPerTypeData","generateIssuePerIssueTypeCharts","generateIssueTypesChartBig","orderByIssueCount","getDashboardIssuesPerCustomer","customerResult","getDashboardIssuesPerDeviceType","generateIssuePerDeviceTypeCharts","locationsEnd","locationsStart","loadingMessageCount","getDashboardMessageCount","generateLocationCount","generateDistanceCount","getDashboardIssueCount","generateIssueCount","getNotification","generateLocationType","theNumber","dateSelectionHealthy","healthy","chartHealthy","generateStackedChart","accountData","chartAccountUse","generateStackedChartDashboard","resultData","accountsData","dateEnd","dateStart","loop","toLocaleDateString","newDate","setDate","getDate","chartAccountWithoutIssues","generateStackedChartDashboardNoIssues","theRealData2","theData2","chartPieIssueTypes","generateColumnChart","getIssueTypes","defaultIssueTypes","categoryData","drilldownData","issueTypeVar","issueTypeCategory","categoryObject","drilldownObject","categoryChartData","drilldownChartData","chart1","chartLocationType","series1","series2","chart3","generateSplineArea","chartDistance","toMillisecond","endOfDay","chart4","handleDuplicates","newDevice","findIndex","issuesPerManufacturer","graphData","manufactorer","deviceObject","_id","theSeries","chart2","encapsulation","None","animations","Error404Component","ForgotComponent","messageStatus","UserName","errorLoggedIn","subscription","queryParam","perX","clientX","perY","clientY","performReset","resetDiabled","onMouseMove","clicked","HelpViewComponent","faqService","getQuestions","addQuestion","removeQuestion","LoginComponent","colorService","authGuard","ssoEnabled","SSOEnabled","isWaslDomain","loginImage","getLoginImage","head","getElementsByTagName","createTextNode","performLogin","loginCompleted","errorExtended","statusText","newUrl","RegisterComponent","SearchViewComponent","searchString","AuthCallbackComponent","activatedRoute","notRecognized","ssoUrl","signInWithSSO","errorMessage","EndsessionCallbackComponent","completeSignout","SsoLoginComponent","startAuthentication","timeout","TagListViewComponent","searchFor","getObjectsByName","TagsViewComponent","UnsubscribeComponent","unsubscribeFromEmailReport","unsubscribeSuccess","AssetAddViewComponent","assetService","addDevice","assetTypes","loadingAssetTypes","dropdownSettingsAssetTypes","saveAsset","resetAssetCache","onInsert","updateAssetType","AssetDetailsViewComponent","waslService","tagType","valueOf","loadingDevice","loadingAsset","loadingWasl","formModeWasl","assetFromService","getAssetById","deviceFromService","getDeviceById","showOnMap","initMap","initMaps","overlayMaps","control","invalidateSize","addLayer","updateAsset","getAssetInfo","imeiNumber","number","leftLetter","middleLetter","rightLetter","registerAsset","waslSuccess","resultCode","waslError","unregisterAsset","inquireVehicle","onDelete","onMapReady","AssetDeviceDetailsViewComponent","showHistory","unitHistory","linkItem","fromTime","toTime","loadingAssetDevices","isAnimated","loadDevice","loadAssetDevices","assetHistoryFromService","getAssetDevicesById","assetDeviceHistory","deviceChooser","seconds","linkDevice","unLinkDevice","onSelect","onDeviceUnlink","AssetDriversViewComponent","driverService","loadingDrivers","showPopup","show","loadDrivers","getDriversByAssetId","isEditMode","toolbox","getElementById","classList","remove","driverChooser","linkDriver","unLinkDriver","deleteAssetDriver","AssetLogViewComponent","assetLog","getAuditLogByAsset","AssetViewComponent","modifier","page","buttons","searchDelay","deferRender","deferLoading","beforeSend","getPagingUrl","lengthMenu","search$","DeviceChooserComponent","isModalShown","debounceTime","distinctUntilChanged","info","rowCallback","self","unbind","bind","clickHandler","DriverChooserComponent","AssetsMapViewComponent","theMapService","loadingSidebar","menuState","mapData","updater","getRefreshedLocations","getDeviceLocations","PruneCluster","Marker","Latitude","Longitude","RegisterMarker","DeviceState","Move","RtcBasedTimestamp","speed","SpeedInKph","hasGpsFix","HasGpsFix","ProcessView","RedrawIcons","markers","PruneClusterForLeaflet","setPruneCluster","fillDevices","states","stateName","onClick","centerMap","selectedDevice","hasAlert","getDevices","popup","bounds","Cluster","ComputeGlobalBounds","fitBounds","minLat","maxLng","maxLat","minLng","toggleMenu","AssetMessageViewComponent","tripService","getMessageUrl","load","dataSrc","dateChanged","modalRef","AssetCalibrationViewComponent","modalService","sensorService","sensorTypesService","backdrop","ignoreBackdropClick","formModeCalibration","loadingCalculation","testValue","loadingTest","sensorsList","getSensorTypes","getSensors","getSensorsOnAsset","resut","deleteSensor","saveSensor","addSensor","allowEdit","editSensor","sensorValues","edit","TrailerChooserComponent","getTrailersPagingUrl","AssetTrailersViewComponent","loadingTrailers","loadTrailers","trailersFromService","getAssetsByParentId","trailers","trailerChooser","linkAsset","EndDate","unLinkAsset","deleteAssetTrailer","AssetTripsViewComponent","totalItems","currentPage","smallnumPages","loadingTrip","fetchTrips","getTripsForAsset","timeoutHandler","getTripDetails","drawTrip","selectedTrip","pointList","tripPolyLine","weight","smoothFactor","getBounds","isValid","pageNo","itemsPerPage","pageChanged","AssetTypeAddViewComponent","assetTypeService","objectKeys","assetTypeGroups","temp","mainCat","subcat","saveAssetType","resetAssetTypesCache","AssetTypeDetailsViewComponent","notEditableNotification","loadingAssetType","xs","rv","getAssetTypeById","getAssetType","AssetTypeLogViewComponent","assetTypeLog","getAuditLogByAssetType","AssetTypeViewComponent","AssetTypeAssetsViewComponent","getAssetsByAssetTypeId","AssetTypeCalibrationViewComponent","rawValue","actualValue","successTest","getAssetTypeDetails","testCalibration","CustomerAssetsViewComponent","getCustomerById","getAssetsByCustomerId","CustomerCalculationSettingsViewComponent","CustomerDetailsViewComponent","loadingMapData","heatmapLayer","HeatmapOverlay","radius","maxOpacity","scaleRadius","useLocalExtrema","latField","lngField","valueField","issueTypesFiltered","dateStartWeek","dateStartMonth","getCustomerDashboard","loadingKpis","devicesWithIssues","issuesThisWeek","issueThisWeekCount","loadingIssueTypes","customerServiceService","setDeviceTypeDetails","getIssuesPerIssueType","featureGroup","easyButton","heatmapToggle","animatedToggle","getDevicesByCustomer","ceil","theNormalMarker","setData","LatLngBounds","LatLng","CustomerDevicesViewComponent","CustomerIssuesViewComponent","selectedIssueTypes","issueTypesMultiselect","dropdownIssueTypesSettings","minDate","getLimitHistoryInDays","selectedIssueTypesString","singleday","Person","DataTablesResponse","CustomersViewComponent","DeviceAddViewComponent","createDevice","resetDeviceCache","DeviceAssetViewComponent","getAssetByDeviceId","clearTimeout","DeviceCalculationSettingsViewComponent","DeviceDetailsViewComponent","scheduleService","toastr","issuesLastMonthCount","issuesLastMonthCountOld","issuesLastMonthCountPercentage","issuesLastWeekCount","issuesLastWeekCountOld","issuesLastWeekCountPercentage","locationsLastMonthCount","locationsLastMonthCountOld","locationsLastMonthCountPercentage","locationsLastWeekCount","locationsLastWeekCountOld","locationsLastWeekCountPercentage","loadingNote","loadingFlagged","loadingLocationCount","getLocationCount","theIssueTypesObservable","getIssueCount","issuesByDevice","getIssuesByDevice","generateColumnRangeChart","getDashboardById","yesterday","dayAfterYesterday","oneWeek","twoWeeks","oneMonth","twoMonths","chartLocationCount","chartDistanceCount","chartIssueCount","progressBar","renderDateTime","setDeviceDetails","saveNote","saveFlagged","increase_brightness","hex","percent","r","parseInt","g","sensorNameToSeriesIndex","sensorIndex","issueName","chartColor","interval","theIssueData","low","high","existingSensorIndexValue","chartColumnRangeEnabled","chartColumnRange","subtract","newStartDate","compareDate","theIssues","saveDevice","getDeviceInfo","changeFlagged","DeviceFuelViewComponent","generateRandomLatLon","data3","selectFuelTrip","theTrip","selectedRow","drawGauges","theChartData","theChartDataDistance","theChartDataLevel","theChartDataRange","theChartDataEvents","theChartDataIgnition","enableMouseTracking","symbol","zIndex","linkedTo","filteredEvents","dashStyle","chartFuel","generateFuelChart","DeviceIssuesViewComponent","DeviceLocationsViewComponent","generateRandomLocation","getRandomColor","randomVar","getRandomLocation","bgColor","iconColor","iconBackGround","drawLocation","radiusInMeters","getRandomCoordinates","uniform","cos","sin","randomCoordinates","earth","northOffset","eastOffset","offsetLatitude","offsetLongitude","DeviceLogViewComponent","deviceLog","getAuditLogByDevice","DeviceSettingsViewComponent","DevicesViewComponent","showSelection","showOnlyFlagged","dropdown_CustomerName","selectedDeviceTypes","customersMultiselect","deviceTypesMultiselect","eventsSet","enableSelecting","enablePresets","dropdownSettingsDeviceTypes","forkJoin","getDeviceTypes","preset","selectedDeviceTypesString","selectedCustomersString","checkRoute","setEvents","drawFilterRow","responsivePriority","drawCallback","excludingColumns","DevicesMapViewComponent","DevicesMap2ViewComponent","selectDevice","DeviceSensorsViewComponent","DeviceTripsViewComponent","getTripsForDevice","generateTrips","DeviceTypeCalculationSettingsViewComponent","getDeviceTypeById","DeviceTypeDetailsViewComponent","getDeviceTypeDashboard","deviceTypeFromService","getDevicesByDeviceType","DeviceTypeDevicesViewComponent","DeviceTypeIssuesViewComponent","DevicesTypeViewComponent","getDeviceTypesWithCount","DriversAddViewComponent","saveDriver","resetCache","DriverAssetsViewComponent","getDriverById","getAssetsByDriverId","DriverDetailsViewComponent","loadingDriver","loadingDriverWasl","waslStatus","reference","sequence","plateNo","lmr","updateDriver","getDriverInfo","registerDriver","registerResult","unregisterDriver","unregisterResult","setFormModeWasl","DriverDevicesViewComponent","getDevicesByDriverId","DriverLogViewComponent","driverLog","getAuditLogByDriver","DriversViewComponent","IssuesChartViewComponent","loadingLocationChart","selectSource","chartData","getDeviceTypesChart","addError","getChartData","theDeviceTypes","theTempData2","theData3","deviceTypeNames","theManufacturers","theTempData3","theData4","theData5","theData6","aggrigatedListItem","theDataIssueName","theSubData","theSubData2","theSubData3","theSubData4","theSubData5","theSubData6","theDeviceIssues","theDataIssueAmount","issuePercentage","issuePercentageDevice","manufacturers","theSeries2","theSeries3","theSeries4","theSeries5","theSeries6","drawChart","drawChartPercentage","stackLabels","fontWeight","DevicesIssuesViewComponent","issueTypesWithCategories","getPagingWithIssuesUrl","issueTypeIds","GroupedIssuesViewComponent","dropdown_Group","minimumIssuecount","getPagingWithIssueTypesUrl","dropdownSettings","groupColumn","rowGroup","startRender","rows","groupName","includes","endRender","totalCount","pluck","equalDevices","tableRow","IssueDetailsViewComponent","calculationSettingsService","noDataFound","mapFullWith","hasIssueTypeCalculationEnabled","hasIssueTypeCalculationSource","feature","issueJson","issueDateDetected","geoJsonData","issuePointList","geoJSON","stroke","onEachFeature","pointToLayer","latlng","Timestamp","isSame","issuePolyLine","Polyline","plotIssueTypes","OutlierTime","issueUoM","saveIssueCalculation","postSetting","saveCalculationSettings","loadingSettings","getIssueById","setIssueDetails","thresholdLower","thresholdUpper","violationThresholdLower","violationThresholdUpper","getCalculationSettings","source","outdatedThreshold","outdatedUpdate","getIssueJsonById","setIssueJsonDetails","updatePath","NoCommunication","NoCommunicationPowerLost","applyMarker","features","geometry","coordinates","lon","chartChild","updateChanges","reflowChart","reRenderMap","IssueDetailsChartViewComponent","isDebugMode","showSensors","chartDataTitleAndUnitsOfMeasure","chartDataYAxes","plotIssueBands","changes","formattedData","renderChart","loadingJson","updateChartData","dataPoint","tempExternalPower","ExternalPower","tempIgnition","Ignition","tempGPSFix","GPSFix","GPSLocation","tempDriverInfo","DriverInfo","Speed","exPower","ignition","odo","Odometer","Sensors","sattelites","Sattelites","gsmStrength","Gsm","SignalStrength","driverInfo","cumulativeDistance","CumulativeDistance","invervalMessage","IntervalMessage","gpsFix","hdop","Hdop","delayInMessage","DelayInMessage","messageInViolation","MessageInViolation","date1","date2","issueDates","getPlotBand","getPlotLine","startIssueDate","filterChartData","generateMultiChart","ref","reflow","chartSpeedData","chartOdoData","chartSatteliteData","chartGsmStrengthData","chartExternalPowerData","chartIgnitionData","chartCumulativeData","chartIntervalMessage","chartDriverInfo","chartGPSFix","chartHdop","chartDelayInMessages","allSensorData","lastData","coordinate","dateTime","hasOwnProperty","chartSensorData","sensorsData","sensorData","getExternalPowerChart","getIgnitionChart","getSpeedChart","OdoSensorStuck","OdoOutOfBounds","GpsStuck","getOdoChart","getSatteliteChart","getGsmStrengthChart","getDriverInfoChart","getCumulativeDistanceChart","getIntervalMessageChart","getDelayInMessageChart","getGPSFixChart","getHdopChart","deviceSensors","deviceSensor","unitOfMeasure","axisIndex","visibility","fillColor","pointWidth","IssueLogViewComponent","issueLog","getAuditLogByIssue","IssuesViewComponent","dropdown_Device","severities","devicesMultiselect","selectedDeviceItems","translated","selectedDeviceId","isColumnChooseMode","resetIssueCache","IssuesMapViewComponent","selectedIssue","baseMaps","selectId","getIssuesWithLocation","JobsActiveViewComponent","jobservice","getActiveJobs","JobsHistoryViewComponent","jobService","getHistoryJobs","PlatformCalculationSettingsViewComponent","getAccountPlatformById","PlatformDetailsViewComponent","token_repeat","loadingCurrentToken","updateToken","isMessage","updateMessage","checkTokenForAccountPlatform","tokenIsFalse","loadingNewToken","checkToken","newTokenTested","saveNewToken","testCurrentToken","PlatformDevicesViewComponent","getDevicesByAccountPlatform","PlatformIssuesViewComponent","PlatformViewComponent","ReportingViewComponent","reports","$event","red","yellow","CalendarViewComponent","view","activeDayIsOpen","viewDate","handleEvent","iEvent","resizable","beforeStart","afterEnd","draggable","autoShownModal","getSchedules","newStart","newEnd","modalData","modalContent","ScheduleViewComponent","showItemsInfuture","showOtherOwners","dataIndex","toJSON","columnDefs","targets","titleAttr","SensorTypeAddViewComponent","sensorTypeService","saveSensorType","SensorTypeViewComponent","SensorTypeDetailsViewComponent","getSensorTypeById","updateSensorType","CalculationSettingsViewComponent","CalculationSettingsOverViewComponent","translaterService","accountSettings","generalSettings","platformSettings","deviceTypeSettings","customerSettings","deviceSettings","getAllCalculationSettings","issuetypeName","settingIssueType","CalculationSettingsOverViewTableComponent","ErrorLogComponent","errorLog","getErrorLogs","SettingsGeneralComponent","addInfo","ResetIssueCache","ResetDeviceCache","ResetAssetCache","ResetDriverCache","LanguageSettingsComponent","langDataArray","extractData","langData","onChange","setLangtagMode","ProfileComponent","periods","daysInTheWeek","quarters","getUserId","getUserById","readCronTabPattern","chosenPeriod","pattern","splitPattern","dayOfWeekPattern","dayOfMonthPattern","monthPattern","chosenDayOfTheWeek","chosenDayOfTheMonth","notAllNumbers","chosenQuarter","period","updateUserProfile","isSaved","newPassword","confirmPassword","oldPassword","updateUserPassword","setLanguage","save","savePassword","createCronTab","SensorDetailsComponent","filteredSensors","hideIrrelevant","ascending","sortingFor","setPage","showSensorUsers","getSensorDevices","SensorDevicesComponent","close","SensorSettingsComponent","textFilterPipe","sensorsChanged","getDeviceSensorTypes","saveSensorSettings","detectChanges","activeSensor","getSensorUsers","settingProperty","sortA","sortB","newSearchTerm","sortBy","updatePageNumber","SettingsComponent","ThemeSettingsComponent","color1","color2","chColor1","chColor2","chColor3","textColor","WorkflowSettingsComponent","workflowService","addActionMode","selectedWorkflowId","actionsToChoose","selectedWorkflow","selectedAction","v","newGuid","len","p","len2","getActions","getWorkflows","createNewWorkflow","actionIds","doesNotContain","loadingNextActions","selectOptions","isSelected","possibleActions","newAction","changeWorkflow","FooterComponent","appName","ApplicationName","IboxSearchComponent","showColumns","columnsChanged","showFiltersEnabled","showColumnsEnabled","searchVar","mouseup","is","has","chooser","sumbitSearch","switchEditMode","IboxToolsComponent","ibox","button","content","slideToggle","toggleClass","resize","collapse","IboxToolsModule","BasicLayoutComponent","titleService","setTitle","getWhitelabel","getThemeColors","addTheme","BlankLayoutComponent","NavigationComponent","showId","substring","routename","SharedLayoutsModule","TopNavbarComponent","cacheService","searchService","getId","autoComplete$","create","observer","actualSearch","asyncSelected","searchEntries","clearCache","clearToken","typeaheadLoading","FORedirectUrl","getAuthTokenExpired","toggleNavigation","changeTypeaheadLoading","typeaheadOnSelect","goToOverview","UsercontrolsModule","AccountDetailsComponent","loadingAccountTypes","getAccountTypes","accountTypes","useExisting","viewProviders","AccountPlatformControlComponent","insertOnly","onSubmit","onUpdate","testingEdit","testing","isEditModalShown","showingPasswordColumn","placeholderUrls","accountType","tokenGuard","hasValidAccountPlatforms","checkedFunction","returnSuccess","createTokenCall","check_format","base_validate","flespiWasl","_","isValidated","getPlatforms","setInitial","removedPlatform","is360Platform","guard","validParameters","isChecked","idx","setValidatedPlatform","platformRow","accountPlatformKey","deleteAccountPlatform","editAccountPlatform","updateAccountPlatform","onAccountPlatformDelete","AddressDetailsComponent","Advice","AdviceDetailsComponent","bsValue","bsRangeValue","onUpdated","form","reset","insertAdviseSchedule","addSchedule","addSchedules","AssetDetailsComponent","AssetTypeChooserComponent","AssetTypeDetailsComponent","AssetTypeModuleComponent","assetTypeChooser","AssetTypePropertiesComponent","insertId","isInsertmode","searchId","property","AssetTypeSelectorComponent","getAssetTypes","keyFn","Function","objectsByKeyValue","selectedAssetType","Type","GeneralCalculationSettingsComponent","issueTypesWithPermissions","calculationSettings","settingsToDelete","issueTypeWithPermissions","calculationSetting","currentId","deleteCalculationSettings","loadData","getData","tempIssueTypeSettingsToUpdate","tempIssueTypeSettingsToDelete","sourceName","saveData","deleteData","updateSuccess","CalibrationComponent","DeleteModalComponent","activeId","DeviceDetailsComponent","accountplatformService","loadingDeviceTypes","DevicesNearbyComponent","nearbyDevices","getDevicesNearby","toRad","Value","lat1","lon1","distance","lat2","lon2","R","dLat","dLon","atan2","sqrt","sortedDistance","getSortedKeys","searchAmount","selectedAssetIds","contains","DriverDetailsComponent","accountPlatformsResult","ErrorComponent","autoRemove","FilterTogglerComponent","filterChanged","loadShowFilter","filterValue","changeShowfilter","GridPresetComponent","gridService","preset_name","presetLoaded","initPresets","presets","getGridPresets","apply","presetJson","saveGridPresets","loadGridPreset","savePreset","clearGridPreset","LangSelectorComponent","langs","getLangs","translator","selectLang","LoggerComponent","logItems","numPages","maxSize","SaveFooterComponent","allowDelete","showButtons","showButtonsNotification","ScheduleDetailsComponent","selectedSchedule","getScheduleDetails","getSchedulesForDevice","getSchedulesForIssue","entry","detailsLoading","getScheduleById","scheduleForProcessing","createFormControls","createForm","required","minLength","myform","dateProcessed","processSchedulesForIssue","startProcessSchedule","SensorTypeDetailsComponent","TaggingComponent","translateServe","requestAutocompleteItems","withDefaults","tagInput","dropdown","displayBy","getTagsForObject","saveTag","removeTag","onItemAdded","onInputFocused","onSelected","onItemRemoved","onTagEdited","UserDetailsComponent","loadingUserRoles","getUserRoles","userRoles","UserEditorComponent","onDeleted","onRoleChanged","activeUserId","resetPassword","changeMode","getTokenForUser","setImpersonationToken","userRole","deleteUser","deleteDevice","WaslAssetDetailsComponent","plateTypes","getPlateType","WaslDriverDetailsComponent","TrailerAddViewComponent","TrailerAssetsViewComponent","assetsFromService","getAssetsByChildId","TrailerDetailsViewComponent","trailer","loadingTrailer","TrailerViewComponent","UserAddViewComponent","getAccountId","saveUser","UserDetailsViewComponent","displayPermissions","loadingRoles","getUserRoleById","filteredPermissions","updateRole","roleChanged","UserLogViewComponent","userLog","getAuditLogByUser","UserRoleDetailsViewComponent","permissionEnum","permissionBitmask","theSaveBitmask","UserRolesViewComponent","UsersViewComponent","impersonate","overview","impersonatePublic","overviewPublic","deletePublic","WaslRegistrationStatusViewComponent","getWaslAssetStatus","WaslViewComponent","getAccount","registerCompany","unregisterCompany","inquireCompany","production","SSOFacebookID","bootstrapModule"],"mappings":"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AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AA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AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;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AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AA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","file":"main-es5.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { Component, OnInit, Renderer2 } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n// Models\r\nimport { AuthenticationService } from './services/authentication/authentication.service';\r\nimport { BsLocaleService, defineLocale } from 'ngx-bootstrap';\r\nimport { deLocale, enGbLocale, nlLocale, arLocale, ruLocale, esLocale, frLocale, zhCnLocale, } from 'ngx-bootstrap/locale';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\ndefineLocale('nl', nlLocale);\r\ndefineLocale('de', deLocale);\r\n// defineLocale('en', ); // when undefined it takes default\r\ndefineLocale('gb', enGbLocale);\r\ndefineLocale('ug', enGbLocale);\r\ndefineLocale('ar', arLocale);\r\ndefineLocale('ru', ruLocale);\r\ndefineLocale('es', esLocale);\r\ndefineLocale('fr', frLocale);\r\ndefineLocale('cn', zhCnLocale);\r\n\r\n@Component({\r\n selector: 'fh-app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n\r\n constructor(private localeService: BsLocaleService, private renderer: Renderer2, translate: TranslateService, private authenticationService: AuthenticationService) {\r\n translate.setDefaultLang('lt');\r\n\r\n if (!translate.currentLang) {\r\n let currentSavedLang = this.authenticationService.getLanguage();\r\n if (currentSavedLang === '' || currentSavedLang == null) {\r\n currentSavedLang = 'en';\r\n }\r\n console.log('No currentlang... setting : ' + currentSavedLang);\r\n translate.use(currentSavedLang);\r\n Moment.locale(currentSavedLang);\r\n this.localeService.use(currentSavedLang);\r\n\r\n translate.onLangChange.subscribe((event) => {\r\n Moment.locale(event.lang);\r\n this.localeService.use(event.lang);\r\n if (event.lang === 'ur' || event.lang === 'ar') {\r\n this.renderer.addClass(document.body, 'rtls');\r\n } else {\r\n this.renderer.removeClass(document.body, 'rtls');\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // General load\r\n }\r\n}\r\n","\r\n\r\n","/*\r\n * LocatePage js helpers:\r\n *\r\n * correctHeight() - fix the height of main wrapper\r\n * detectBody() - detect windows size\r\n * smoothlyMenu() - add smooth fade in/out on navigation show/ide\r\n *\r\n */\r\n\r\ndeclare var jQuery: any;\r\n\r\nexport function correctHeight() {\r\n\r\n const pageWrapper = jQuery('#page-wrapper');\r\n const navbarHeight = jQuery('nav.navbar-default').height();\r\n const wrapperHeight = pageWrapper.height();\r\n\r\n if (navbarHeight > wrapperHeight) {\r\n pageWrapper.css('min-height', navbarHeight + 'px');\r\n }\r\n\r\n if (navbarHeight <= wrapperHeight) {\r\n if (navbarHeight < jQuery(window).height()) {\r\n pageWrapper.css('min-height', jQuery(window).height() + 'px');\r\n } else {\r\n pageWrapper.css('min-height', navbarHeight + 'px');\r\n }\r\n }\r\n\r\n if (jQuery('body').hasClass('fixed-nav')) {\r\n if (navbarHeight > wrapperHeight) {\r\n pageWrapper.css('min-height', navbarHeight + 'px');\r\n } else {\r\n pageWrapper.css('min-height', jQuery(window).height() - 60 + 'px');\r\n }\r\n }\r\n}\r\n\r\nexport function detectBody() {\r\n if (jQuery(document).width() < 769) {\r\n jQuery('body').addClass('body-small')\r\n } else {\r\n jQuery('body').removeClass('body-small')\r\n }\r\n}\r\n\r\nexport function smoothlyMenu() {\r\n if (!jQuery('body').hasClass('mini-navbar') || jQuery('body').hasClass('body-small')) {\r\n // Hide menu in order to smoothly turn on when maximize menu\r\n jQuery('#side-menu').hide();\r\n // For smoothly turn on menu\r\n setTimeout(\r\n function () {\r\n jQuery('#side-menu').fadeIn(400);\r\n }, 200);\r\n } else if (jQuery('body').hasClass('fixed-sidebar')) {\r\n jQuery('#side-menu').hide();\r\n setTimeout(\r\n function () {\r\n jQuery('#side-menu').fadeIn(400);\r\n }, 100);\r\n } else {\r\n // Remove all inline style from jquery fadeIn function to reset menu state\r\n jQuery('#side-menu').removeAttr('style');\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpModule } from '@angular/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { LocationStrategy, HashLocationStrategy, PathLocationStrategy, APP_BASE_HREF } from '@angular/common';\r\nimport { AuthGuard } from './auth-guard';\r\nimport { AuthenticationService } from './services/authentication/authentication.service';\r\nimport { AuditLogService } from './services/auditlog/auditlog.service';\r\nimport { UserService } from './services/users/user.service';\r\nimport { DeviceService } from './services/device/device.service';\r\nimport { DashboardService } from './services/dashboard/dashboard.service';\r\nimport { ResolutionTypeService } from './services/resolutiontypes/resolutiontypes.service';\r\nimport { DeviceTypeService } from './services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from './services/issuetypes/issuetypes.service';\r\nimport { IssueService } from './services/issues/issues.service';\r\nimport { ScheduleService } from './services/schedule/schedule.service';\r\nimport { LoggingService } from './services/logging/logging.service';\r\nimport { ErrorLogService } from './services/logging/error-log.service';\r\nimport { CalculationSettingsService } from './services/calculationsettings/calculationsettings.service';\r\nimport { ROUTES } from './app.routes';\r\nimport { AppComponent } from './app.component';\r\n\r\n// App views\r\nimport { AppviewsModule } from './views/appviews.module';\r\n\r\n// App modules/components\r\nimport { SharedLayoutsModule } from './views/shared/sharedlayouts.module';\r\n\r\nimport { NgxLoadingModule, ngxLoadingAnimationTypes } from 'ngx-loading';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { LoggingErrorHandlerProviders, LoggingErrorHandlerOptions } from './services/logging/logging-error-handler';\r\nimport { ColorService } from './services/common/color.service';\r\n\r\n// Calendar\r\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\n\r\n// Translation module\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClient, HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MissingTranslationHandler } from '@ngx-translate/core';\r\nimport { CustomMissingTranslationHandler } from 'app/common/missingTransLationHandler';\r\n\r\n// Chart module\r\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\r\nimport * as more from 'highcharts/highcharts-more.src';\r\nimport * as Highcharts from 'highcharts';\r\nimport * as boostCanvas from 'highcharts/modules/boost-canvas';\r\nimport * as boost from 'highcharts/modules/boost.src';\r\nimport * as drilldown from 'highcharts/modules/drilldown.src';\r\nimport * as serieslabel from 'highcharts/modules/series-label.src';\r\nimport * as overlappingdatalabels from 'highcharts/modules/overlapping-datalabels.src';\r\nimport * as exporting from 'highcharts/modules/exporting.src';\r\nimport * as heatmap from 'highcharts/modules/heatmap.src.js';\r\nimport * as noDataToDisplay from 'highcharts/modules/no-data-to-display.src';\r\nimport * as offlineExporting from 'highcharts/modules/offline-exporting.src';\r\nimport * as solidgauge from 'highcharts/modules/solid-gauge.src';\r\n\r\n// Notifications\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NotificationsModule, NotificationsService } from './modules/notification'\r\n\r\n// Modules\r\nimport { ICheckModule } from './modules/icheck/icheck.module';\r\nimport { WizardModule } from './modules/wizard/wizard.module';\r\n\r\n// Export functions\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\r\n}\r\n\r\nimport './common/rxjs-operators';\r\nimport { TranslatorService } from './services/common/translator.service';\r\nimport { TripService } from './services/trip/trip.service';\r\nimport { PlatformService } from './services/platform/platform.service';\r\nimport { CustomerService } from './services/customers/customers.service';\r\nimport { AccountService } from './services/accounts/accounts.service';\r\nimport { AccountPlatformService } from './services/platform/accountPlatform.service';\r\nimport { UserRoleService } from './services/users/userRole.service';\r\nimport { WorkflowService } from './services/workflows/workflows.service';\r\nimport { CacheService } from './services/common/cache.service';\r\nimport { DeviceSensorsService } from './services/sensors/deviceSensors.service';\r\nimport { TagService } from './services/tag/tag.service';\r\nimport { InfoService } from './services/info/info.service';\r\nimport { EventService } from './services/events/events.service';\r\nimport { environment } from 'environments/environment';\r\nimport { JobsService } from './services/jobs/jobs.service';\r\nimport { AssetService } from './services/asset/asset.service';\r\nimport { DriverService } from './services/driver/driver.service';\r\nimport { AssetTypeService } from './services/asset/assetTypes.service';\r\nimport { WaslService } from './services/wasl/wasl.service';\r\nimport { SensorsTypesService } from './services/sensors/sensorTypes.service';\r\nimport { SensorService } from './services/sensors/sensors.service';\r\nimport { GridService } from './services/grid/grid.service';\r\n// todo : https://www.intertech.com/Blog/angular-4-tutorial-handling-refresh-token-with-new-httpinterceptor/\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpModule,\r\n HttpClientJsonpModule,\r\n SharedLayoutsModule,\r\n AppviewsModule,\r\n ChartModule,\r\n WizardModule,\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory\r\n }),\r\n ICheckModule.forRoot(),\r\n RouterModule.forRoot(ROUTES),\r\n NgxLoadingModule.forRoot({\r\n animationType: ngxLoadingAnimationTypes.rectangleBounce,\r\n backdropBackgroundColour: 'rgba(255,255,255,0.7)',\r\n backdropBorderRadius: '4px',\r\n primaryColour: '#DC8139',\r\n secondaryColour: '#DC8139',\r\n tertiaryColour: '#DC8139'\r\n }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n },\r\n missingTranslationHandler: { provide: MissingTranslationHandler, useClass: CustomMissingTranslationHandler },\r\n }),\r\n HttpClientModule,\r\n NotificationsModule,\r\n ToastrModule.forRoot({\r\n timeOut: 10000,\r\n positionClass: 'toast-bottom-right',\r\n preventDuplicates: true,\r\n }),\r\n ],\r\n providers: [\r\n ErrorLogService,\r\n LoggingErrorHandlerProviders,\r\n {\r\n provide: LoggingErrorHandlerOptions,\r\n useValue: {\r\n rethrowError: false,\r\n unwrapError: false\r\n }\r\n },\r\n AuthGuard,\r\n TranslatorService,\r\n AuthenticationService,\r\n AuditLogService,\r\n DeviceService,\r\n GridService,\r\n DeviceTypeService,\r\n ResolutionTypeService,\r\n PlatformService,\r\n AssetTypeService,\r\n AssetService,\r\n AccountPlatformService,\r\n EventService,\r\n DashboardService,\r\n JobsService,\r\n IssueTypeService,\r\n DriverService,\r\n WaslService,\r\n IssueService,\r\n ScheduleService,\r\n CustomerService,\r\n WorkflowService,\r\n TripService,\r\n UserService,\r\n UserRoleService,\r\n AccountService,\r\n CookieService,\r\n LoggingService,\r\n ErrorLogService,\r\n DeviceSensorsService,\r\n SensorService,\r\n SensorsTypesService,\r\n TagService,\r\n CacheService,\r\n NotificationsService,\r\n ColorService,\r\n InfoService,\r\n CalculationSettingsService,\r\n { provide: LocationStrategy, useClass: HashLocationStrategy },\r\n {\r\n provide: HIGHCHARTS_MODULES,\r\n useFactory: () => [\r\n more, solidgauge, boostCanvas, boost, overlappingdatalabels, drilldown // exporting, heatmap, noDataToDisplay, offlineExporting, serieslabel\r\n ]\r\n }],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { CalculationSettingsOverViewComponent } from './views/settings/calculationSettingsOverview.component';\r\nimport { Routes } from '@angular/router';\r\n\r\nimport { DevicesViewComponent } from './views/devices/devices.component';\r\nimport { DevicesMapViewComponent } from './views/devices/devicesMap.component';\r\nimport { DevicesMap2ViewComponent } from 'app/views/devices/devicesMap2.component';\r\n\r\nimport { DeviceDetailsViewComponent } from './views/devices/deviceDetails.component';\r\nimport { DeviceAssetViewComponent } from 'app/views/devices/assetDetails.component';\r\nimport { DeviceFuelViewComponent } from './views/devices/deviceFuel.component';\r\nimport { DeviceSettingsViewComponent } from 'app/views/devices/deviceSettings.component';\r\nimport { DeviceLocationsViewComponent } from 'app/views/devices/deviceLocations.component';\r\nimport { DeviceTripsViewComponent } from './views/devices/trips.component';\r\nimport { DeviceIssuesViewComponent } from './views/devices/deviceIssues.component';\r\nimport { DeviceLogViewComponent } from './views/devices/deviceLog.component';\r\n\r\nimport { IssuesViewComponent } from './views/issues/issues.component';\r\nimport { IssuesMapViewComponent } from './views/issues/issuesMap.component';\r\n\r\nimport { ReportingViewComponent } from './views/reporting/reporting.component';\r\n\r\nimport { Error404Component } from './views/appviews/error404.component';\r\n\r\nimport { DashboardComponent } from './views/appviews/dashboard.component';\r\nimport { SearchViewComponent } from './views/appviews/search.component';\r\nimport { ScheduleViewComponent } from './views/schedule/schedule.component';\r\nimport { CalendarViewComponent } from './views/schedule/calendar.component';\r\n\r\n// Settings\r\nimport { SettingsComponent } from './views/settings/settings.component';\r\nimport { ThemeSettingsComponent } from './views/settings/theme.component';\r\nimport { LanguageSettingsComponent } from './views/settings/language.component';\r\nimport { WorkflowSettingsComponent } from './views/settings/workflow.component';\r\nimport { ErrorLogComponent } from './views/settings/errorlog.component';\r\nimport { CalculationSettingsViewComponent } from './views/settings/calculationSettings.component';\r\n\r\n// Components\r\nimport { LoginComponent } from './views/appviews/login.component';\r\nimport { RegisterComponent } from './views/appviews/register.component';\r\n\r\nimport { BlankLayoutComponent } from './views/shared/layouts/blankLayout.component';\r\nimport { BasicLayoutComponent } from './views/shared/layouts/basicLayout.component';\r\nimport { AuthGuard } from './auth-guard';\r\n\r\nimport { UnsubscribeComponent } from './views/appviews/unsubscribe.component';\r\n\r\n// Issues\r\nimport { GroupedIssuesViewComponent } from './views/issues/groupedIssues.component';\r\nimport { IssueDetailsViewComponent } from './views/issues/issueDetails.component';\r\nimport { IssueLogViewComponent } from './views/issues/issueLog.component';\r\nimport { DevicesIssuesViewComponent } from './views/issues/deviceIssues.component';\r\n\r\n// Device types\r\nimport { DevicesTypeViewComponent } from './views/devicetypes/deviceTypes.component';\r\nimport { DeviceTypeDetailsViewComponent } from './views/devicetypes/deviceTypeDetails.component';\r\nimport { DeviceTypeIssuesViewComponent } from './views/devicetypes/deviceTypeIssues.component';\r\nimport { DeviceTypeDevicesViewComponent } from './views/devicetypes/deviceTypeDevices.component';\r\nimport { IssuesChartViewComponent } from './views/issues/charts.component';\r\nimport { DeviceTypeCalculationSettingsViewComponent } from './views/devicetypes/deviceTypeCalculationSettings.component';\r\n\r\nimport { AboutViewComponent } from './views/appviews/about.component';\r\nimport { HelpViewComponent } from './views/appviews/help.component';\r\n\r\n// Drivers\r\nimport { PlatformDetailsViewComponent } from './views/platforms/platformDetails.component';\r\nimport { PlatformViewComponent } from './views/platforms/platforms.component';\r\nimport { PlatformDevicesViewComponent } from './views/platforms/platformDevices.component';\r\nimport { DeviceCalculationSettingsViewComponent } from './views/devices/deviceCalculationSettings.component';\r\nimport { PlatformCalculationSettingsViewComponent } from './views/platforms/platformCalculationSettings.component';\r\n\r\n// Customers\r\nimport { CustomersViewComponent } from './views/customers/customers.component';\r\nimport { CustomerDetailsViewComponent } from './views/customers/customerDetails.component';\r\nimport { CustomerDevicesViewComponent } from './views/customers/customerDevices.component';\r\nimport { CustomerCalculationSettingsViewComponent } from './views/customers/customerCalculationSettings.component';\r\nimport { CustomerIssuesViewComponent } from './views/customers/customerIssues.component';\r\n\r\n// Users\r\nimport { UsersViewComponent } from './views/users/users.component';\r\nimport { UserDetailsViewComponent } from './views/users/userDetails.component';\r\nimport { UserAddViewComponent } from './views/users/userAdd.component';\r\nimport { AccountDetailsViewComponent } from './views/accounts/accountDetails.component';\r\nimport { AccountViewComponent } from './views/accounts/accounts.component';\r\nimport { AccountCalculationSettingsViewComponent } from './views/accounts/accountCalculationSettings.component';\r\nimport { UserRoleDetailsViewComponent } from './views/users/userRoleDetails.component';\r\nimport { ProfileComponent } from './views/settings/profile.component';\r\nimport { ForgotComponent } from './views/appviews/forgotPassword.component';\r\nimport { AccountAddViewComponent } from './views/accounts/accountAdd.component';\r\nimport { SensorSettingsComponent } from './views/settings/sensorSettings.component';\r\nimport { SettingsGeneralComponent } from './views/settings/general.component';\r\n\r\n// Authentication (SSO)\r\nimport { AuthCallbackComponent } from './views/appviews/sso-auth-callback.component';\r\nimport { EndsessionCallbackComponent } from './views/appviews/sso-endsession-callback.component';\r\nimport { SsoLoginComponent } from './views/appviews/sso-login.component';\r\nimport { JobsHistoryViewComponent } from './views/jobs/history.component';\r\nimport { JobsActiveViewComponent } from './views/jobs/active.component';\r\nimport { AccountWithUseViewComponent } from './views/accounts/accountsWithUse.component';\r\nimport { UserRolesViewComponent } from './views/users/userRoles.component';\r\nimport { UserLogViewComponent } from './views/users/userLog.component';\r\nimport { PlatformIssuesViewComponent } from './views/platforms/platformIssues.component';\r\nimport { TagsViewComponent } from './views/appviews/tags.component';\r\nimport { TagListViewComponent } from './views/appviews/taglist.component';\r\nimport { WaslViewComponent } from './views/wasl/wasl.component';\r\nimport { DeviceSensorsViewComponent } from './views/devices/sensorDetails.component';\r\nimport { AssetViewComponent } from './views/assets/assets.component';\r\nimport { AssetDetailsViewComponent } from './views/assets/assetDetails.component';\r\nimport { AssetLogViewComponent } from './views/assets/assetLog.component';\r\nimport { AssetDeviceDetailsViewComponent } from './views/assets/assetDeviceDetails.component';\r\nimport { AssetTrailersViewComponent } from './views/assets/trailers.component';\r\nimport { AssetAddViewComponent } from './views/assets/add.component';\r\nimport { DriversAddViewComponent } from './views/drivers/add.component';\r\nimport { DriversViewComponent } from './views/drivers/drivers.component';\r\nimport { AssetDriversViewComponent } from './views/assets/assetDrivers.component';\r\nimport { DriverDetailsViewComponent } from './views/drivers/driverDetails.component';\r\nimport { DriverAssetsViewComponent } from './views/drivers/driverAssets.component';\r\nimport { DriverDevicesViewComponent } from './views/drivers/driverDevices.component';\r\nimport { TrailerDetailsViewComponent } from './views/trailers/trailerDetails.component';\r\nimport { TrailerViewComponent } from './views/trailers/trailers.component';\r\nimport { TrailerAddViewComponent } from './views/trailers/add.component';\r\nimport { AssetTypeViewComponent } from './views/assettypes/assetTypes.component';\r\nimport { AssetTypeAddViewComponent } from './views/assettypes/add.component';\r\nimport { AssetTypeDetailsViewComponent } from './views/assettypes/assetTypeDetails.component';\r\nimport { AssetTypeCalibrationViewComponent } from './views/assettypes/calibration.component';\r\nimport { TrailerAssetsViewComponent } from './views/trailers/assets.component';\r\nimport { DeviceAddViewComponent } from './views/devices/add.component';\r\nimport { AssetTypeAssetsViewComponent } from './views/assettypes/assets.component';\r\nimport { DriverLogViewComponent } from './views/drivers/driverLog.component';\r\nimport { AssetMessageViewComponent } from './views/assets/messages.component';\r\nimport { AssetTripsViewComponent } from './views/assets/trips.component';\r\nimport { AccountLogViewComponent } from './views/accounts/accountLog.component';\r\nimport { AssetTypeLogViewComponent } from './views/assettypes/assetTypeLog.component';\r\nimport { AssetsMapViewComponent } from './views/assets/map.component';\r\nimport { SensorTypeViewComponent } from './views/sensortypes/sensorTypes.component';\r\nimport { SensorTypeDetailsViewComponent } from './views/sensortypes/sensorTypesDetails.component';\r\nimport { SensorTypeAddViewComponent } from './views/sensortypes/add.component';\r\nimport { AssetCalibrationViewComponent } from './views/assets/sensors.component';\r\nimport { WaslRegistrationStatusViewComponent } from './views/wasl/status.component';\r\n\r\nexport const ROUTES: Routes = [\r\n // Main redirect\r\n { path: '', redirectTo: 'Dashboard/Day', pathMatch: 'full' },\r\n\r\n // App views\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Search', component: SearchViewComponent },\r\n { path: 'Tags', component: TagsViewComponent },\r\n { path: 'Tags/:id', component: TagListViewComponent },\r\n { path: 'Schedule', component: ScheduleViewComponent },\r\n { path: 'Schedule/Overview', component: ScheduleViewComponent },\r\n { path: 'Schedule/Calendar', component: CalendarViewComponent },\r\n { path: 'Issues', component: IssuesViewComponent },\r\n { path: 'Issues/Overview', component: IssuesViewComponent },\r\n { path: 'Issues/Grouped', component: GroupedIssuesViewComponent },\r\n { path: 'Issues/Charts', component: IssuesChartViewComponent },\r\n { path: 'Platforms', component: PlatformViewComponent },\r\n { path: 'Platforms/Overview', component: PlatformViewComponent },\r\n { path: 'Customers', component: CustomersViewComponent },\r\n { path: 'Customers/Overview', component: CustomersViewComponent },\r\n { path: 'Assets', component: AssetViewComponent },\r\n { path: 'Assets/Add', component: AssetAddViewComponent },\r\n { path: 'Assets/Map', component: AssetsMapViewComponent },\r\n { path: 'Assets/Overview', component: AssetViewComponent },\r\n { path: 'Drivers', component: DriversViewComponent },\r\n { path: 'Drivers/Add', component: DriversAddViewComponent },\r\n { path: 'Drivers/Overview', component: DriversViewComponent },\r\n { path: 'Trailers', component: TrailerViewComponent },\r\n { path: 'Trailers/Overview', component: TrailerViewComponent },\r\n { path: 'Trailers/Add', component: TrailerAddViewComponent },\r\n { path: 'AssetTypes', component: AssetTypeViewComponent },\r\n { path: 'AssetTypes/Overview', component: AssetTypeViewComponent },\r\n { path: 'AssetTypes/Add', component: AssetTypeAddViewComponent },\r\n { path: 'Devices', component: DevicesViewComponent },\r\n { path: 'Devices/Add', component: DeviceAddViewComponent },\r\n { path: 'Devices/Issues', component: DevicesIssuesViewComponent },\r\n { path: 'Devices/Overview', component: DevicesViewComponent },\r\n { path: 'Devices/Map', component: DevicesMapViewComponent },\r\n { path: 'DeviceTypes', component: DevicesTypeViewComponent },\r\n { path: 'DeviceTypes/Overview', component: DevicesTypeViewComponent },\r\n { path: 'Dashboard', component: DashboardComponent },\r\n { path: 'Dashboard/Default', component: DashboardComponent },\r\n { path: 'Dashboard/Today', component: DashboardComponent },\r\n { path: 'Dashboard/Yesterday', component: DashboardComponent },\r\n { path: 'Dashboard/Week', component: DashboardComponent },\r\n { path: 'Dashboard/Day', component: DashboardComponent },\r\n { path: 'Dashboard/Month', component: DashboardComponent },\r\n { path: 'Reporting', component: ReportingViewComponent },\r\n { path: 'Users', component: UsersViewComponent },\r\n { path: 'Users/Overview', component: UsersViewComponent },\r\n { path: 'UserRoles', component: UserRolesViewComponent },\r\n { path: 'UserRoles/Overview', component: UserRolesViewComponent },\r\n { path: 'Accounts', component: AccountViewComponent },\r\n { path: 'Accounts/Overview', component: AccountWithUseViewComponent },\r\n { path: 'Jobs/Active', component: JobsActiveViewComponent },\r\n { path: 'Jobs/History', component: JobsHistoryViewComponent },\r\n { path: 'DeviceTypes', component: DevicesTypeViewComponent },\r\n { path: 'SensorTypes', component: SensorTypeViewComponent },\r\n { path: 'SensorTypes/Overview', component: SensorTypeViewComponent },\r\n { path: 'SensorTypes/Add', component: SensorTypeAddViewComponent },\r\n { path: 'Settings', component: SettingsComponent },\r\n { path: 'Settings/Profile', component: ProfileComponent },\r\n { path: 'Settings/System', component: SettingsComponent },\r\n { path: 'Settings/Language', component: LanguageSettingsComponent },\r\n { path: 'Settings/Theme', component: ThemeSettingsComponent },\r\n { path: 'Settings/Errorlog', component: ErrorLogComponent },\r\n { path: 'Settings/Workflow', component: WorkflowSettingsComponent },\r\n { path: 'Settings/CalculationSettings', component: CalculationSettingsViewComponent },\r\n { path: 'Settings/OverviewCalculationSettings', component: CalculationSettingsOverViewComponent },\r\n { path: 'Settings/SensorSettings', component: SensorSettingsComponent },\r\n { path: 'Settings/General', component: SettingsGeneralComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Devices/Map2', component: DevicesMap2ViewComponent },\r\n { path: 'Issues/Map', component: IssuesMapViewComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'DeviceDetails/Index/:id', component: DeviceDetailsViewComponent },\r\n { path: 'DeviceDetails/Asset/:id', component: DeviceAssetViewComponent },\r\n { path: 'DeviceDetails/Sensors/:id', component: DeviceSensorsViewComponent },\r\n { path: 'DeviceDetails/Settings/:id', component: DeviceSettingsViewComponent },\r\n { path: 'DeviceDetails/Locations/:id', component: DeviceLocationsViewComponent },\r\n { path: 'DeviceDetails/CalculationSettings/:id', component: DeviceCalculationSettingsViewComponent },\r\n { path: 'DeviceDetails/Fuel/:id', component: DeviceFuelViewComponent },\r\n { path: 'DeviceDetails/Trips/:id', component: DeviceTripsViewComponent },\r\n { path: 'DeviceDetails/Issues/:id', component: DeviceIssuesViewComponent },\r\n { path: 'DeviceDetails/Log/:id', component: DeviceLogViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'AssetDetails/Index/:id', component: AssetDetailsViewComponent },\r\n { path: 'AssetDetails/Device/:id', component: AssetDeviceDetailsViewComponent },\r\n { path: 'AssetDetails/Sensors/:id', component: AssetCalibrationViewComponent },\r\n { path: 'AssetDetails/Drivers/:id', component: AssetDriversViewComponent },\r\n { path: 'AssetDetails/Trailers/:id', component: AssetTrailersViewComponent },\r\n { path: 'AssetDetails/Trips/:id', component: AssetTripsViewComponent },\r\n { path: 'AssetDetails/Messages/:id', component: AssetMessageViewComponent },\r\n { path: 'AssetDetails/Log/:id', component: AssetLogViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'TrailerDetails/Index/:id', component: TrailerDetailsViewComponent },\r\n { path: 'TrailerDetails/Assets/:id', component: TrailerAssetsViewComponent },\r\n { path: 'TrailerDetails/Log/:id', component: AssetLogViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'AssetTypeDetails/Index/:id', component: AssetTypeDetailsViewComponent },\r\n { path: 'AssetTypeDetails/Assets/:id', component: AssetTypeAssetsViewComponent },\r\n { path: 'AssetTypeDetails/Calibration/:id', component: AssetTypeCalibrationViewComponent },\r\n { path: 'AssetTypeDetails/Log/:id', component: AssetTypeLogViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'DriverDetails/Index/:id', component: DriverDetailsViewComponent },\r\n { path: 'DriverDetails/Devices/:id', component: DriverDevicesViewComponent },\r\n { path: 'DriverDetails/Assets/:id', component: DriverAssetsViewComponent },\r\n { path: 'DriverDetails/Log/:id', component: DriverLogViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'PlatformDetails/Index/:id', component: PlatformDetailsViewComponent },\r\n { path: 'PlatformDetails/CalculationSettings/:id', component: PlatformCalculationSettingsViewComponent },\r\n { path: 'PlatformDetails/Devices/:id', component: PlatformDevicesViewComponent },\r\n { path: 'PlatformDetails/Issues/:id', component: PlatformIssuesViewComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'DeviceTypeDetails/Index/:id', component: DeviceTypeDetailsViewComponent },\r\n { path: 'DeviceTypeDetails/CalculationSettings/:id', component: DeviceTypeCalculationSettingsViewComponent },\r\n { path: 'DeviceTypeDetails/Issues/:id', component: DeviceTypeIssuesViewComponent },\r\n { path: 'DeviceTypeDetails/Devices/:id', component: DeviceTypeDevicesViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'CustomerDetails/Index/:id', component: CustomerDetailsViewComponent },\r\n { path: 'CustomerDetails/Devices/:id', component: CustomerDevicesViewComponent },\r\n { path: 'CustomerDetails/Issues/:id', component: CustomerIssuesViewComponent },\r\n { path: 'CustomerDetails/CalculationSettings/:id', component: CustomerCalculationSettingsViewComponent }\r\n ]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'IssueDetails/Index/:id', component: IssueDetailsViewComponent },\r\n { path: 'IssueDetails/Log/:id', component: IssueLogViewComponent }]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Users/Add', component: UserAddViewComponent },\r\n { path: 'UserDetails/Index/:id', component: UserDetailsViewComponent },\r\n { path: 'UserDetails/Log/:id', component: UserLogViewComponent },\r\n { path: 'UserRoleDetails/Index/:id', component: UserRoleDetailsViewComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Accounts/Add', component: AccountAddViewComponent },\r\n { path: 'AccountDetails/Index/:id', component: AccountDetailsViewComponent },\r\n { path: 'AccountDetails/CalculationSettings/:id', component: AccountCalculationSettingsViewComponent },\r\n { path: 'AccountDetails/Log/:id', component: AccountLogViewComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'SensorTypeDetails/Index/:id', component: SensorTypeDetailsViewComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BlankLayoutComponent,\r\n children: [\r\n { path: 'Login', component: LoginComponent },\r\n { path: 'Register', component: RegisterComponent },\r\n { path: 'ForgotPassword', component: ForgotComponent },\r\n { path: 'Unsubscribe/:id', component: UnsubscribeComponent }\r\n ]\r\n }, {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Error404', component: Error404Component },\r\n ]\r\n }, {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'About', component: AboutViewComponent },\r\n ]\r\n }, {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Help', component: HelpViewComponent },\r\n ]\r\n }, {\r\n path: '', component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'Wasl', component: WaslViewComponent },\r\n { path: 'Wasl/Company', component: WaslViewComponent },\r\n { path: 'Wasl/RegistrationStatus', component: WaslRegistrationStatusViewComponent },\r\n { path: 'Wasl/RegistrationStatus/:id', component: WaslRegistrationStatusViewComponent },\r\n ]\r\n },\r\n {\r\n path: '', component: BlankLayoutComponent,\r\n children: [\r\n { path: 'Auth-callback', component: AuthCallbackComponent },\r\n { path: 'Endsession-callback', component: EndsessionCallbackComponent },\r\n { path: 'SSOLogin', component: SsoLoginComponent },\r\n ],\r\n },\r\n // Handle all other routes\r\n { path: '**', redirectTo: 'Error404' }\r\n];\r\n","// This file was generated on Mon, Jan 7, 2019 2:39:54 PM\r\nexport const appVersion = '0.3.3';\r\nexport const appDate = 'Mon, Jan 7, 2019 2:39:54 PM';\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\r\nimport { AuthenticationService } from './services/authentication/authentication.service';\r\n\r\n/**\r\n * AuthGuard uses AuthenticationService to determine if a page can or cannot be shown, base uppon succesfull aquiring a WebserviceToken using the SSOToken cookie.\r\n */\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild {\r\n\r\n constructor(private authService: AuthenticationService) {}\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n console.log('AuthGuard: Checking if we are authenticated...');\r\n const auth = this.authService.IsAuthenticated(state.url);\r\n return auth;\r\n }\r\n\r\n canActivateChild(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n console.log('AuthGuard: Checking if we are authenticated...');\r\n const auth = this.authService.IsAuthenticated(state.url);\r\n return auth;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { AssetType } from 'app/models/assetType.model';\r\n\r\n@Pipe({\r\n name: 'filterAssetType',\r\n pure: false\r\n})\r\nexport class FilterAssetTypePipe implements PipeTransform {\r\n transform(items: AssetType[], asset: Asset): any {\r\n\r\n return items.filter(item => item.brand && item.brand.toUpperCase().indexOf(asset.brand.toUpperCase()) >= 0 && item.model && item.model.toUpperCase().indexOf(asset.model.toUpperCase()) >= 0);\r\n }\r\n}\r\n","\r\nexport enum SettingsLevel {\r\n General = 0,\r\n Account = 1,\r\n Platform = 2,\r\n Customer = 3,\r\n DeviceType = 4,\r\n Device = 5,\r\n None = 6\r\n}\r\n\r\nexport enum SidebarOptions {\r\n City = 0,\r\n Brand = 1,\r\n Model = 2,\r\n Driver = 3,\r\n PlateNumber = 4,\r\n ShowTimeStamp = 5,\r\n ShowLastStateChange = 6,\r\n GroupByState = 7,\r\n Geofence = 8\r\n}\r\nexport enum languages {\r\n nl = './assets/i18n/nl.json',\r\n en = './assets/i18n/en.json',\r\n ar = './assets/i18n/ar.json',\r\n ru = './assets/i18n/ru.json',\r\n de = './assets/i18n/de.json',\r\n ug = './assets/i18n/ug.json',\r\n fr = './assets/i18n/fr.json',\r\n zh = './assets/i18n/zh.json',\r\n pt = './assets/i18n/pt.json',\r\n zw = './assets/i18n/en-zw.json',\r\n es = './assets/i18n/es.json',\r\n lt = './assets/i18n/lt.json'\r\n}\r\n\r\nexport enum whitelabels {\r\n l360 = 'Default (360)',\r\n ls = 'Blue (LS)',\r\n blue = 'Blue',\r\n ginger = 'Ginger',\r\n lightblue = 'Light blue',\r\n modern = 'Modern',\r\n // wasl = 'WASL',\r\n}\r\n\r\nexport enum PermissionsBitmask {\r\n HasUserAdministration = 2,\r\n HasAccountAdministration = 4, //\r\n IsAdministrator = 8,\r\n HasDrivers = 16,\r\n HasCalculationSettings = 32,\r\n HasScheduleView = 64, //\r\n HasReporting = 128,\r\n HasCustomersViewOwn = 256,\r\n HasCustomersViewAll = 512,\r\n HasPlatforms = 1024,\r\n HasScheduleProcessOwn = 2048,\r\n HasScheduleProcessAll = 4096, //\r\n HasWorkflow = 8192,\r\n HasDeviceTypes = 16384,\r\n HasJobs = 32768,\r\n HasDevices = 65536,\r\n HasIssues = 131072,\r\n HasAssets = 262144,\r\n HasWasl = 524288\r\n}\r\n\r\nexport enum IssueTypeEnums {\r\n Unknown = 0,\r\n TooManyLocations = 1,\r\n FarTooManyMessages = 2,\r\n NoCommunication = 3,\r\n TooManyPowerlossEvents = 4,\r\n NoIgnitionSignal = 5,\r\n LooseConnectionOrIgnitionWire = 6,\r\n BadGpsReception = 7,\r\n TooFewLocations = 9,\r\n TooMuchDistance = 13,\r\n TooMuchDistancePerMessage = 14,\r\n SensorStuck = 15,\r\n SensorOutOfBounds = 16,\r\n SensorNoData = 17,\r\n FuelPercentageSensorStuck = 18,\r\n FuelPercentageSensorOutOfBounds = 19,\r\n FuelPercentageSensorNoData = 20,\r\n TemperatureSensorStuck = 21,\r\n TemperatureOutOfBounds = 22,\r\n TemperatureNoData = 23,\r\n OdoSensorStuck = 24,\r\n OdoOutOfBounds = 25,\r\n OdoNoData = 26,\r\n HighDataConsumptionMinimumMotion = 27,\r\n BatteryPowerTooLow = 28,\r\n OutlierTime = 29,\r\n OutlierDistance = 30,\r\n NoCommunicationPowerLost = 31,\r\n BackupBatteryTooLow = 32,\r\n MissingDriver = 33,\r\n GpsDrift = 34,\r\n DelayedMessages = 35,\r\n GpsStuck = 36,\r\n FuelLevelSensorStuck = 37,\r\n FuelLevelSensorOutOfBounds = 38,\r\n FuelLevelSensorNoData = 39\r\n}\r\n\r\nexport enum Uom {\r\n None = 0,\r\n Messages = 1,\r\n Meters = 2,\r\n Count = 3,\r\n FuelPercentage = 4,\r\n TemperatureInCelcius = 5,\r\n Minutes = 6,\r\n Voltage = 7,\r\n Seconds = 8,\r\n FuelLevel = 9\r\n}\r\n\r\nexport enum DistanceUnits {\r\n Kilometers = 0,\r\n Miles = 1\r\n}\r\n\r\nexport enum VolumeUnits {\r\n Liters = 0,\r\n Imperial_Gallon = 1,\r\n US_Liquid_Gallon = 2\r\n}\r\n\r\nexport enum MapType {\r\n Wiki = 1,\r\n OpenStreetMapsVector = 2,\r\n OpenStreetMapsVectorBright = 3,\r\n OpenStreetMap = 4,\r\n OpenStreetMapLocationSolutions = 5,\r\n OpenStreetMapCarto = 6,\r\n GoogleMaps = 7,\r\n GoogleMapsHybrid = 19,\r\n GoogleMapsSatellite = 8,\r\n BingMaps = 9,\r\n BingMapsSatellite = 10,\r\n Esri = 11,\r\n CartoDB = 12,\r\n MapboxVector = 13,\r\n MapboxStreets = 14,\r\n MapboxOutdoors = 15,\r\n MapboxSatellite = 16,\r\n MapboxSatelliteStreets = 17,\r\n ArcGIS = 18\r\n}\r\n\r\nexport enum FormMode {\r\n read = 1,\r\n add = 2,\r\n edit = 3\r\n}\r\n\r\nexport enum ScheduleActions {\r\n 'Unknown' = 0,\r\n 'Fix wiring' = 1,\r\n 'Check device' = 2,\r\n 'Replace device' = 3,\r\n 'Update device firmware' = 4,\r\n 'New roadtest' = 5\r\n}\r\n\r\nexport enum Severity {\r\n Unknown = 0,\r\n low = 1,\r\n Medium = 2,\r\n High = 3,\r\n Top = 4,\r\n Critical = 5\r\n}\r\n\r\nexport enum AccountType {\r\n Unknown = 0,\r\n Trial = 1,\r\n Normal = 2\r\n}\r\n\r\nexport enum NotificationCode {\r\n None = 0,\r\n ApiError = 1,\r\n}\r\n","// Global vars\r\n\r\nexport interface ResultModel {\r\n completed: boolean;\r\n data: T;\r\n}\r\n\r\nexport const kmToMilesMultiplier = 0.621371;\r\n\r\nexport const litersToUSLiquidGallonsMultiplier = 0.264172052;\r\n\r\nexport const litersToImperialGallonsMultiplier = 0.219969;\r\n\r\nexport const colorArray = [\r\n '#000000', '#FFFF00', '#1CE6FF', '#FF34FF', '#FF4A46', '#008941', '#006FA6', '#A30059',\r\n '#FFDBE5', '#7A4900', '#0000A6', '#63FFAC', '#B79762', '#004D43', '#8FB0FF', '#997D87',\r\n '#5A0007', '#809693', '#FEFFE6', '#1B4400', '#4FC601', '#3B5DFF', '#4A3B53', '#FF2F80',\r\n '#61615A', '#BA0900', '#6B7900', '#00C2A0', '#FFAA92', '#FF90C9', '#B903AA', '#D16100',\r\n '#DDEFFF', '#000035', '#7B4F4B', '#A1C299', '#300018', '#0AA6D8', '#013349', '#00846F',\r\n '#372101', '#FFB500', '#C2FFED', '#A079BF', '#CC0744', '#C0B9B2', '#C2FF99', '#001E09',\r\n '#00489C', '#6F0062', '#0CBD66', '#EEC3FF', '#456D75', '#B77B68', '#7A87A1', '#788D66',\r\n '#885578', '#FAD09F', '#FF8A9A', '#D157A0', '#BEC459', '#456648', '#0086ED', '#886F4C',\r\n '#34362D', '#B4A8BD', '#00A6AA', '#452C2C', '#636375', '#A3C8C9', '#FF913F', '#938A81',\r\n '#575329', '#00FECF', '#B05B6F', '#8CD0FF', '#3B9700', '#04F757', '#C8A1A1', '#1E6E00',\r\n '#7900D7', '#A77500', '#6367A9', '#A05837', '#6B002C', '#772600', '#D790FF', '#9B9700',\r\n '#549E79', '#FFF69F', '#201625', '#72418F', '#BC23FF', '#99ADC0', '#3A2465', '#922329',\r\n '#5B4534', '#FDE8DC', '#404E55', '#0089A3', '#CB7E98', '#A4E804', '#324E72', '#6A3A4C',\r\n '#83AB58', '#001C1E', '#D1F7CE', '#004B28', '#C8D0F6', '#A3A489', '#806C66', '#222800',\r\n '#BF5650', '#E83000', '#66796D', '#DA007C', '#FF1A59', '#8ADBB4', '#1E0200', '#5B4E51',\r\n '#C895C5', '#320033', '#FF6832', '#66E1D3', '#CFCDAC', '#D0AC94', '#7ED379', '#012C58',\r\n '#7A7BFF', '#D68E01', '#353339', '#78AFA1', '#FEB2C6', '#75797C', '#837393', '#943A4D',\r\n '#B5F4FF', '#D2DCD5', '#9556BD', '#6A714A', '#001325', '#02525F', '#0AA3F7', '#E98176',\r\n '#DBD5DD', '#5EBCD1', '#3D4F44', '#7E6405', '#02684E', '#962B75', '#8D8546', '#9695C5',\r\n '#E773CE', '#D86A78', '#3E89BE', '#CA834E', '#518A87', '#5B113C', '#55813B', '#E704C4',\r\n '#00005F', '#A97399', '#4B8160', '#59738A', '#FF5DA7', '#F7C9BF', '#643127', '#513A01',\r\n '#6B94AA', '#51A058', '#A45B02', '#1D1702', '#E20027', '#E7AB63', '#4C6001', '#9C6966',\r\n '#64547B', '#97979E', '#006A66', '#391406', '#F4D749', '#0045D2', '#006C31', '#DDB6D0',\r\n '#7C6571', '#9FB2A4', '#00D891', '#15A08A', '#BC65E9', '#FFFFFE', '#C6DC99', '#203B3C',\r\n '#671190', '#6B3A64', '#F5E1FF', '#FFA0F2', '#CCAA35', '#374527', '#8BB400', '#797868',\r\n '#C6005A', '#3B000A', '#C86240', '#29607C', '#402334', '#7D5A44', '#CCB87C', '#B88183',\r\n '#AA5199', '#B5D6C3', '#A38469', '#9F94F0', '#A74571', '#B894A6', '#71BB8C', '#00B433',\r\n '#789EC9', '#6D80BA', '#953F00', '#5EFF03', '#E4FFFC', '#1BE177', '#BCB1E5', '#76912F',\r\n '#003109', '#0060CD', '#D20096', '#895563', '#29201D', '#5B3213', '#A76F42', '#89412E',\r\n '#1A3A2A', '#494B5A', '#A88C85', '#F4ABAA', '#A3F3AB', '#00C6C8', '#EA8B66', '#958A9F',\r\n '#BDC9D2', '#9FA064', '#BE4700', '#658188', '#83A485', '#453C23', '#47675D', '#3A3F00',\r\n '#061203', '#DFFB71', '#868E7E', '#98D058', '#6C8F7D', '#D7BFC2', '#3C3E6E', '#D83D66',\r\n '#2F5D9B', '#6C5E46', '#D25B88', '#5B656C', '#00B57F', '#545C46', '#866097', '#365D25',\r\n '#252F99', '#00CCFF', '#674E60', '#FC009C', '#92896B', '#1E2324', '#DEC9B2', '#9D4948',\r\n '#85ABB4', '#342142', '#D09685', '#A4ACAC', '#00FFFF', '#AE9C86', '#742A33', '#0E72C5',\r\n '#AFD8EC', '#C064B9', '#91028C', '#FEEDBF', '#FFB789', '#9CB8E4', '#AFFFD1', '#2A364C',\r\n '#4F4A43', '#647095', '#34BBFF', '#807781', '#920003', '#B3A5A7', '#018615', '#F1FFC8',\r\n '#976F5C', '#FF3BC1', '#FF5F6B', '#077D84', '#F56D93', '#5771DA', '#4E1E2A', '#830055',\r\n '#02D346', '#BE452D', '#00905E', '#BE0028', '#6E96E3', '#007699', '#FEC96D', '#9C6A7D',\r\n '#3FA1B8', '#893DE3', '#79B4D6', '#7FD4D9', '#6751BB', '#B28D2D', '#E27A05', '#DD9CB8',\r\n '#AABC7A', '#980034', '#561A02', '#8F7F00', '#635000', '#CD7DAE', '#8A5E2D', '#FFB3E1',\r\n '#6B6466', '#C6D300', '#0100E2', '#88EC69', '#8FCCBE', '#21001C', '#511F4D', '#E3F6E3',\r\n '#FF8EB1', '#6B4F29', '#A37F46', '#6A5950', '#1F2A1A', '#04784D', '#101835', '#E6E0D0',\r\n '#FF74FE', '#00A45F', '#8F5DF8', '#4B0059', '#412F23', '#D8939E', '#DB9D72', '#604143',\r\n '#B5BACE', '#989EB7', '#D2C4DB', '#A587AF', '#77D796', '#7F8C94', '#FF9B03', '#555196',\r\n '#31DDAE', '#74B671', '#802647', '#2A373F', '#014A68', '#696628', '#4C7B6D', '#002C27',\r\n '#7A4522', '#3B5859', '#E5D381', '#FFF3FF', '#679FA0', '#261300', '#2C5742', '#9131AF',\r\n '#AF5D88', '#C7706A', '#61AB1F', '#8CF2D4', '#C5D9B8', '#9FFFFB', '#BF45CC', '#493941',\r\n '#863B60', '#B90076', '#003177', '#C582D2', '#C1B394', '#602B70', '#887868', '#BABFB0',\r\n '#030012', '#D1ACFE', '#7FDEFE', '#4B5C71', '#A3A097', '#E66D53', '#637B5D', '#92BEA5',\r\n '#00F8B3', '#BEDDFF', '#3DB5A7', '#DD3248', '#B6E4DE', '#427745', '#598C5A', '#B94C59',\r\n '#8181D5', '#94888B', '#FED6BD', '#536D31', '#6EFF92', '#E4E8FF', '#20E200', '#FFD0F2',\r\n '#4C83A1', '#BD7322', '#915C4E', '#8C4787', '#025117', '#A2AA45', '#2D1B21', '#A9DDB0',\r\n '#FF4F78', '#528500', '#009A2E', '#17FCE4', '#71555A', '#525D82', '#00195A', '#967874',\r\n '#555558', '#0B212C', '#1E202B', '#EFBFC4', '#6F9755', '#6F7586', '#501D1D', '#372D00',\r\n '#741D16', '#5EB393', '#B5B400', '#DD4A38', '#363DFF', '#AD6552', '#6635AF', '#836BBA',\r\n '#98AA7F', '#464836', '#322C3E', '#7CB9BA', '#5B6965', '#707D3D', '#7A001D', '#6E4636',\r\n '#443A38', '#AE81FF', '#489079', '#897334', '#009087', '#DA713C', '#361618', '#FF6F01',\r\n '#006679', '#370E77', '#4B3A83', '#C9E2E6', '#C44170', '#FF4526', '#73BE54', '#C4DF72',\r\n '#ADFF60', '#00447D', '#DCCEC9', '#BD9479', '#656E5B', '#EC5200', '#FF6EC2', '#7A617E',\r\n '#DDAEA2', '#77837F', '#A53327', '#608EFF', '#B599D7', '#A50149', '#4E0025', '#C9B1A9',\r\n '#03919A', '#1B2A25', '#E500F1', '#982E0B', '#B67180', '#E05859', '#006039', '#578F9B',\r\n '#305230', '#CE934C', '#B3C2BE', '#C0BAC0', '#B506D3', '#170C10', '#4C534F', '#224451',\r\n '#3E4141', '#78726D', '#B6602B', '#200441', '#DDB588', '#497200', '#C5AAB6', '#033C61',\r\n '#71B2F5', '#A9E088', '#4979B0', '#A2C3DF', '#784149', '#2D2B17', '#3E0E2F', '#57344C',\r\n '#0091BE', '#E451D1', '#4B4B6A', '#5C011A', '#7C8060', '#FF9491', '#4C325D', '#005C8B',\r\n '#E5FDA4', '#68D1B6', '#032641', '#140023', '#8683A9', '#CFFF00', '#A72C3E', '#34475A',\r\n '#B1BB9A', '#B4A04F', '#8D918E', '#A168A6', '#813D3A', '#425218', '#DA8386', '#776133',\r\n '#563930', '#8498AE', '#90C1D3', '#B5666B', '#9B585E', '#856465', '#AD7C90', '#E2BC00',\r\n '#E3AAE0', '#B2C2FE', '#FD0039', '#009B75', '#FFF46D', '#E87EAC', '#DFE3E6', '#848590',\r\n '#AA9297', '#83A193', '#577977', '#3E7158', '#C64289', '#EA0072', '#C4A8CB', '#55C899',\r\n '#E78FCF', '#004547', '#F6E2E3', '#966716', '#378FDB', '#435E6A', '#DA0004', '#1B000F',\r\n '#5B9C8F', '#6E2B52', '#011115', '#E3E8C4', '#AE3B85', '#EA1CA9', '#FF9E6B', '#457D8B',\r\n '#92678B', '#00CDBB', '#9CCC04', '#002E38', '#96C57F', '#CFF6B4', '#492818', '#766E52',\r\n '#20370E', '#E3D19F', '#2E3C30', '#B2EACE', '#F3BDA4', '#A24E3D', '#976FD9', '#8C9FA8',\r\n '#7C2B73', '#4E5F37', '#5D5462', '#90956F', '#6AA776', '#DBCBF6', '#DA71FF', '#987C95',\r\n '#52323C', '#BB3C42', '#584D39', '#4FC15F', '#A2B9C1', '#79DB21', '#1D5958', '#BD744E',\r\n '#160B00', '#20221A', '#6B8295', '#00E0E4', '#102401', '#1B782A', '#DAA9B5', '#B0415D',\r\n '#859253', '#97A094', '#06E3C4', '#47688C', '#7C6755', '#075C00', '#7560D5', '#7D9F00',\r\n '#C36D96', '#4D913E', '#5F4276', '#FCE4C8', '#303052', '#4F381B', '#E5A532', '#706690',\r\n '#AA9A92', '#237363', '#73013E', '#FF9079', '#A79A74', '#029BDB', '#FF0169', '#C7D2E7',\r\n '#CA8869', '#80FFCD', '#BB1F69', '#90B0AB', '#7D74A9', '#FCC7DB', '#99375B', '#00AB4D',\r\n '#ABAED1', '#BE9D91', '#E6E5A7', '#332C22', '#DD587B', '#F5FFF7', '#5D3033', '#6D3800',\r\n '#FF0020', '#B57BB3', '#D7FFE6', '#C535A9', '#260009', '#6A8781', '#A8ABB4', '#D45262',\r\n '#794B61', '#4621B2', '#8DA4DB', '#C7C890', '#6FE9AD', '#A243A7', '#B2B081', '#181B00',\r\n '#286154', '#4CA43B', '#6A9573', '#A8441D', '#5C727B', '#738671', '#D0CFCB', '#897B77',\r\n '#1F3F22', '#4145A7', '#DA9894', '#A1757A', '#63243C', '#ADAAFF', '#00CDE2', '#DDBC62',\r\n '#698EB1', '#208462', '#00B7E0', '#614A44', '#9BBB57', '#7A5C54', '#857A50', '#766B7E',\r\n '#014833', '#FF8347', '#7A8EBA', '#274740', '#946444', '#EBD8E6', '#646241', '#373917',\r\n '#6AD450', '#81817B', '#D499E3', '#979440', '#011A12', '#526554', '#B5885C', '#A499A5',\r\n '#03AD89', '#B3008B', '#E3C4B5', '#96531F', '#867175', '#74569E', '#617D9F', '#E70452',\r\n '#067EAF', '#A697B6', '#B787A8', '#9CFF93', '#311D19', '#3A9459', '#6E746E', '#B0C5AE',\r\n '#84EDF7', '#ED3488', '#754C78', '#384644', '#C7847B', '#00B6C5', '#7FA670', '#C1AF9E',\r\n '#2A7FFF', '#72A58C', '#FFC07F', '#9DEBDD', '#D97C8E', '#7E7C93', '#62E674', '#B5639E',\r\n '#FFA861', '#C2A580', '#8D9C83', '#B70546', '#372B2E', '#0098FF', '#985975', '#20204C',\r\n '#FF6C60', '#445083', '#8502AA', '#72361F', '#9676A3', '#484449', '#CED6C2', '#3B164A',\r\n '#CCA763', '#2C7F77', '#02227B', '#A37E6F', '#CDE6DC', '#CDFFFB', '#BE811A', '#F77183',\r\n '#EDE6E2', '#CDC6B4', '#FFE09E', '#3A7271', '#FF7B59', '#4E4E01', '#4AC684', '#8BC891',\r\n '#BC8A96', '#CF6353', '#DCDE5C', '#5EAADD', '#F6A0AD', '#E269AA', '#A3DAE4', '#436E83',\r\n '#002E17', '#ECFBFF', '#A1C2B6', '#50003F', '#71695B', '#67C4BB', '#536EFF', '#5D5A48',\r\n '#890039', '#969381', '#371521', '#5E4665', '#AA62C3', '#8D6F81', '#2C6135', '#410601',\r\n '#564620', '#E69034', '#6DA6BD', '#E58E56', '#E3A68B', '#48B176', '#D27D67', '#B5B268',\r\n '#7F8427', '#FF84E6', '#435740', '#EAE408', '#F4F5FF', '#325800', '#4B6BA5', '#ADCEFF',\r\n '#9B8ACC', '#885138', '#5875C1', '#7E7311', '#FEA5CA', '#9F8B5B', '#A55B54', '#89006A',\r\n '#AF756F', '#2A2000', '#7499A1', '#FFB550', '#00011E', '#D1511C', '#688151', '#BC908A',\r\n '#78C8EB', '#8502FF', '#483D30', '#C42221', '#5EA7FF', '#785715', '#0CEA91', '#FFFAED',\r\n '#B3AF9D', '#3E3D52', '#5A9BC2', '#9C2F90', '#8D5700', '#ADD79C', '#00768B', '#337D00',\r\n '#C59700', '#3156DC', '#944575', '#ECFFDC', '#D24CB2', '#97703C', '#4C257F', '#9E0366',\r\n '#88FFEC', '#B56481', '#396D2B', '#56735F', '#988376', '#9BB195', '#A9795C', '#E4C5D3',\r\n '#9F4F67', '#1E2B39', '#664327', '#AFCE78', '#322EDF', '#86B487', '#C23000', '#ABE86B',\r\n '#96656D', '#250E35', '#A60019', '#0080CF', '#CAEFFF', '#323F61', '#A449DC', '#6A9D3B',\r\n '#FF5AE4', '#636A01', '#D16CDA', '#736060', '#FFBAAD', '#D369B4', '#FFDED6', '#6C6D74',\r\n '#927D5E', '#845D70', '#5B62C1', '#2F4A36', '#E45F35', '#FF3B53', '#AC84DD', '#762988',\r\n '#70EC98', '#408543', '#2C3533', '#2E182D', '#323925', '#19181B', '#2F2E2C', '#023C32',\r\n '#9B9EE2', '#58AFAD', '#5C424D', '#7AC5A6', '#685D75', '#B9BCBD', '#834357', '#1A7B42',\r\n '#2E57AA', '#E55199', '#316E47', '#CD00C5', '#6A004D', '#7FBBEC', '#F35691', '#D7C54A',\r\n '#62ACB7', '#CBA1BC', '#A28A9A', '#6C3F3B', '#FFE47D', '#DCBAE3', '#5F816D', '#3A404A',\r\n '#7DBF32', '#E6ECDC', '#852C19', '#285366', '#B8CB9C', '#0E0D00', '#4B5D56', '#6B543F',\r\n '#E27172', '#0568EC', '#2EB500', '#D21656', '#EFAFFF', '#682021', '#2D2011', '#DA4CFF',\r\n '#70968E', '#FF7B7D', '#4A1930', '#E8C282', '#E7DBBC', '#A68486', '#1F263C', '#36574E',\r\n '#52CE79', '#ADAAA9', '#8A9F45', '#6542D2', '#00FB8C', '#5D697B', '#CCD27F', '#94A5A1',\r\n '#790229', '#E383E6', '#7EA4C1', '#4E4452', '#4B2C00', '#620B70', '#314C1E', '#874AA6',\r\n '#E30091', '#66460A', '#EB9A8B', '#EAC3A3', '#98EAB3', '#AB9180', '#B8552F', '#1A2B2F',\r\n '#94DDC5', '#9D8C76', '#9C8333', '#94A9C9', '#392935', '#8C675E', '#CCE93A', '#917100',\r\n '#01400B', '#449896', '#1CA370', '#E08DA7', '#8B4A4E', '#667776', '#4692AD', '#67BDA8',\r\n '#69255C', '#D3BFFF', '#4A5132', '#7E9285', '#77733C', '#E7A0CC', '#51A288', '#2C656A',\r\n '#4D5C5E', '#C9403A', '#DDD7F3', '#005844', '#B4A200', '#488F69', '#858182', '#D4E9B9',\r\n '#3D7397', '#CAE8CE', '#D60034', '#AA6746', '#9E5585', '#BA6200'];\r\n\r\nexport const assetTypeOptions =\r\n [{\r\n 'id': 100,\r\n 'name': 'Bodywork',\r\n 'options': [{\r\n 'id': 101,\r\n 'name': 'Body type'\r\n }, {\r\n 'id': 102,\r\n 'name': 'The length of the car'\r\n }, {\r\n 'id': 103,\r\n 'name': 'The width of the car'\r\n }, {\r\n 'id': 104,\r\n 'name': 'The height of the car'\r\n }, {\r\n 'id': 105,\r\n 'name': 'Wheelbase'\r\n }, {\r\n 'id': 106,\r\n 'name': 'Ground clearance'\r\n }, {\r\n 'id': 107,\r\n 'name': 'Front track'\r\n }, {\r\n 'id': 108,\r\n 'name': 'Rear track'\r\n }, {\r\n 'id': 109,\r\n 'name': 'Cab type'\r\n }, {\r\n 'id': 110,\r\n 'name': 'Length of the tractor'\r\n }, {\r\n 'id': 111,\r\n 'name': 'Tractor width'\r\n }, {\r\n 'id': 112,\r\n 'name': 'Height of the tractor'\r\n }, {\r\n 'id': 113,\r\n 'name': 'Quantity of doors'\r\n }, {\r\n 'id': 114,\r\n 'name': 'Door width'\r\n }, {\r\n 'id': 115,\r\n 'name': 'The width of the passage between the seats'\r\n }, {\r\n 'id': 116,\r\n 'name': 'The ceiling height in the cabin'\r\n }, {\r\n 'id': 117,\r\n 'name': 'The height of a step above the level of the road'\r\n }\r\n ]\r\n }, {\r\n 'id': 200,\r\n 'name': 'Engine',\r\n 'options': [{\r\n 'id': 201,\r\n 'name': 'Potencia'\r\n }, {\r\n 'id': 202,\r\n 'name': 'Engine power'\r\n }, {\r\n 'id': 203,\r\n 'name': 'With turnover'\r\n }, {\r\n 'id': 204,\r\n 'name': 'Torque'\r\n }, {\r\n 'id': 205,\r\n 'name': 'Engine type'\r\n }, {\r\n 'id': 206,\r\n 'name': 'Arrangement of cylinders'\r\n }, {\r\n 'id': 207,\r\n 'name': 'Number of cylinders'\r\n }, {\r\n 'id': 208,\r\n 'name': 'Compression ratio'\r\n }, {\r\n 'id': 209,\r\n 'name': 'Fuel'\r\n }, {\r\n 'id': 210,\r\n 'name': 'Engine model'\r\n }, {\r\n 'id': 211,\r\n 'name': 'Environmental standard'\r\n }, {\r\n 'id': 212,\r\n 'name': 'The number of valves per cylinder'\r\n }, {\r\n 'id': 213,\r\n 'name': 'Pressurization'\r\n }, {\r\n 'id': 214,\r\n 'name': 'Engine power at rpm'\r\n }, {\r\n 'id': 215,\r\n 'name': 'Torque at rpm'\r\n }, {\r\n 'id': 216,\r\n 'name': 'The volume of the engine at rpm'\r\n }, {\r\n 'id': 217,\r\n 'name': 'If the rpm with rpm'\r\n }, {\r\n 'id': 218,\r\n 'name': 'Engine layout'\r\n }\r\n ]\r\n }, {\r\n 'id': 300,\r\n 'name': 'Gearbox and handling',\r\n 'options': [{\r\n 'id': 301,\r\n 'name': 'Number of gear (mechanical gearbox)'\r\n }, {\r\n 'id': 302,\r\n 'name': 'Drive wheels'\r\n }, {\r\n 'id': 303,\r\n 'name': 'Number of gears (automatic transmission)'\r\n }, {\r\n 'id': 304,\r\n 'name': 'Transmission type'\r\n }, {\r\n 'id': 305,\r\n 'name': 'Amount of gear'\r\n }, {\r\n 'id': 306,\r\n 'name': 'Model transmission'\r\n }, {\r\n 'id': 307,\r\n 'name': 'Wheel arrangement'\r\n }\r\n ]\r\n }, {\r\n 'id': 400,\r\n 'name': 'PERFORMANCE',\r\n 'options': [{\r\n 'id': 401,\r\n 'name': 'Maximum speed'\r\n }, {\r\n 'id': 402,\r\n 'name': 'Fuel tank capacity'\r\n }, {\r\n 'id': 403,\r\n 'name': 'Fuel consumption mixed cycle'\r\n }, {\r\n 'id': 404,\r\n 'name': 'Acceleration to 100 km/h'\r\n }, {\r\n 'id': 405,\r\n 'name': 'Acceleration time to 60 km/h'\r\n }, {\r\n 'id': 406,\r\n 'name': 'Diamètre de braquage'\r\n }, {\r\n 'id': 407,\r\n 'name': 'Angle me to ove. lift, not less'\r\n }, {\r\n 'id': 408,\r\n 'name': 'Fuel consumption'\r\n }, {\r\n 'id': 409,\r\n 'name': 'The maximum transport speed'\r\n }, {\r\n 'id': 410,\r\n 'name': 'The height of the fifth wheel'\r\n }, {\r\n 'id': 411,\r\n 'name': 'Recommended tractor'\r\n }, {\r\n 'id': 412,\r\n 'name': 'Fuel consumption at 60 km/h, l/100 km'\r\n }, {\r\n 'id': 413,\r\n 'name': 'Outer turning radius'\r\n }\r\n ]\r\n }, {\r\n 'id': 500,\r\n 'name': 'Payload',\r\n 'options': [{\r\n 'id': 501,\r\n 'name': 'Number of places'\r\n }, {\r\n 'id': 502,\r\n 'name': 'Payload'\r\n }, {\r\n 'id': 503,\r\n 'name': 'Length of cargo area (platform)'\r\n }, {\r\n 'id': 504,\r\n 'name': 'Width the cargo compartment (platform)'\r\n }, {\r\n 'id': 505,\r\n 'name': 'The height of the cargo compartment (sides of the platform)'\r\n }, {\r\n 'id': 506,\r\n 'name': 'The volume of the cargo compartment'\r\n }, {\r\n 'id': 507,\r\n 'name': 'Useful volume'\r\n }, {\r\n 'id': 508,\r\n 'name': 'Length of platform'\r\n }, {\r\n 'id': 509,\r\n 'name': 'Platform width'\r\n }, {\r\n 'id': 510,\r\n 'name': 'Height without awning'\r\n }, {\r\n 'id': 511,\r\n 'name': 'Height with awning'\r\n }, {\r\n 'id': 512,\r\n 'name': 'Number of Euro pallets (800x1200)'\r\n }, {\r\n 'id': 513,\r\n 'name': 'Loading height'\r\n }, {\r\n 'id': 514,\r\n 'name': 'The area of the platform'\r\n }, {\r\n 'id': 515,\r\n 'name': 'Platform description'\r\n }, {\r\n 'id': 516,\r\n 'name': 'Length of loading platform'\r\n }, {\r\n 'id': 517,\r\n 'name': 'Width of loading platform'\r\n }, {\r\n 'id': 518,\r\n 'name': 'Height of loading platform'\r\n }, {\r\n 'id': 519,\r\n 'name': 'The volume of the tank/bodywork'\r\n }, {\r\n 'id': 520,\r\n 'name': 'Pump'\r\n }, {\r\n 'id': 521,\r\n 'name': 'The tank material'\r\n }, {\r\n 'id': 522,\r\n 'name': 'Compartments'\r\n }, {\r\n 'id': 523,\r\n 'name': 'Cross-section'\r\n }, {\r\n 'id': 524,\r\n 'name': 'The height of self-suction'\r\n }\r\n ]\r\n }, {\r\n 'id': 600,\r\n 'name': 'Dimentions and weight',\r\n 'options': [{\r\n 'id': 601,\r\n 'name': 'Curb vehicle weight'\r\n }, {\r\n 'id': 602,\r\n 'name': 'Gross vehicle weight'\r\n }, {\r\n 'id': 603,\r\n 'name': 'Rims, the dimension'\r\n }, {\r\n 'id': 604,\r\n 'name': 'Tyre dimension'\r\n }, {\r\n 'id': 605,\r\n 'name': 'Total weight with trailer'\r\n }, {\r\n 'id': 606,\r\n 'name': 'Total train weight'\r\n }, {\r\n 'id': 607,\r\n 'name': 'Full trailer weight'\r\n }, {\r\n 'id': 608,\r\n 'name': 'Load on fifth wheel'\r\n }, {\r\n 'id': 609,\r\n 'name': 'The load on the front axle'\r\n }, {\r\n 'id': 610,\r\n 'name': 'The load on the rear axle (trolley)'\r\n }, {\r\n 'id': 611,\r\n 'name': 'Curb weight of the trailer'\r\n }, {\r\n 'id': 612,\r\n 'name': 'Total mass'\r\n }, {\r\n 'id': 613,\r\n 'name': 'Length of the trailer'\r\n }, {\r\n 'id': 614,\r\n 'name': 'Width of the trailer'\r\n }, {\r\n 'id': 615,\r\n 'name': 'Height with awning'\r\n }, {\r\n 'id': 616,\r\n 'name': 'Number of axes'\r\n }, {\r\n 'id': 617,\r\n 'name': 'The number of wheels + spare'\r\n }, {\r\n 'id': 618,\r\n 'name': 'Tire size'\r\n }, {\r\n 'id': 619,\r\n 'name': 'Support device'\r\n }, {\r\n 'id': 620,\r\n 'name': 'Height'\r\n }, {\r\n 'id': 621,\r\n 'name': 'The load on the fifth wheel of the tractor'\r\n }, {\r\n 'id': 622,\r\n 'name': 'Base'\r\n }, {\r\n 'id': 623,\r\n 'name': 'Rear track'\r\n }, {\r\n 'id': 624,\r\n 'name': 'The mass on the cart (axis)'\r\n }, {\r\n 'id': 625,\r\n 'name': 'Ground clearance'\r\n }, {\r\n 'id': 626,\r\n 'name': 'Length'\r\n }, {\r\n 'id': 627,\r\n 'name': 'Back track width'\r\n }, {\r\n 'id': 628,\r\n 'name': 'Curb weight'\r\n }, {\r\n 'id': 629,\r\n 'name': 'The full weight of the bus'\r\n }, {\r\n 'id': 630,\r\n 'name': 'Front overhang'\r\n }, {\r\n 'id': 631,\r\n 'name': 'Rear overhang'\r\n }, {\r\n 'id': 632,\r\n 'name': 'Front track'\r\n }, {\r\n 'id': 633,\r\n 'name': 'The load on the rear axle'\r\n }, {\r\n 'id': 634,\r\n 'name': 'The load on the Central axle'\r\n }\r\n ]\r\n }, {\r\n 'id': 700,\r\n 'name': 'Steering',\r\n 'options': [{\r\n 'id': 701,\r\n 'name': 'Diamètre de braquage'\r\n }, {\r\n 'id': 702,\r\n 'name': 'Type steering'\r\n }, {\r\n 'id': 703,\r\n 'name': 'Servo'\r\n }\r\n ]\r\n }, {\r\n 'id': 800,\r\n 'name': 'Suspension and brakes',\r\n 'options': [{\r\n 'id': 801,\r\n 'name': 'Type rear suspension'\r\n }, {\r\n 'id': 802,\r\n 'name': 'Type front suspension'\r\n }, {\r\n 'id': 803,\r\n 'name': 'Type of suspension'\r\n }\r\n ]\r\n }, {\r\n 'id': 900,\r\n 'name': 'Brake System',\r\n 'options': [{\r\n 'id': 901,\r\n 'name': 'Front brake'\r\n }, {\r\n 'id': 902,\r\n 'name': 'Rear brake'\r\n }, {\r\n 'id': 903,\r\n 'name': 'Service brake'\r\n }, {\r\n 'id': 904,\r\n 'name': 'Parking brake'\r\n }, {\r\n 'id': 905,\r\n 'name': 'ABS'\r\n }, {\r\n 'id': 906,\r\n 'name': 'Type brake'\r\n }, {\r\n 'id': 907,\r\n 'name': 'The type of braking system'\r\n }\r\n ]\r\n }, {\r\n 'id': 1000,\r\n 'name': 'Main characteristic',\r\n 'options': [{\r\n 'id': 1001,\r\n 'name': 'Type of trailer'\r\n }, {\r\n 'id': 1002,\r\n 'name': 'Class bus'\r\n }, {\r\n 'id': 1003,\r\n 'name': 'Appointment'\r\n }, {\r\n 'id': 1004,\r\n 'name': 'The total number of seats (including boarding)'\r\n }, {\r\n 'id': 1005,\r\n 'name': 'The Luggage compartment'\r\n }\r\n ]\r\n }\r\n ]\r\n\r\n\r\n","export function createSearch(dtInstance, dynamicFilterContainer, excluding = [], createSelectBoxes = false): void {\r\n\r\n dynamicFilterContainer.html('');\r\n\r\n dtInstance.columns().every(function () {\r\n const that = this;\r\n\r\n\r\n if (that.visible() && that.header().textContent !== '' && excluding.indexOf(that.header().textContent) === -1) {\r\n\r\n const divColumn = $('
', {\r\n id: 'search' + that.index(),\r\n 'class': 'col-sm-6',\r\n title: ''\r\n });\r\n\r\n const divColumnInner = $('
', {\r\n id: 'search' + that.index(),\r\n 'class': 'form-group input-group',\r\n 'style': 'margin-bottom: 5px;',\r\n title: that.header().textContent\r\n });\r\n\r\n const icon = $('', {\r\n id: 'search' + that.index(),\r\n 'class': 'fa fa-fw fa-pen',\r\n title: that.header().textContent\r\n });\r\n\r\n const iconSpan = $('', {\r\n id: 'search' + that.index(),\r\n 'class': 'input-group-addon',\r\n title: that.header().textContent\r\n });\r\n\r\n icon.appendTo(iconSpan);\r\n\r\n iconSpan.appendTo(divColumnInner);\r\n\r\n if (1) {\r\n\r\n // console.log(that.search());\r\n // console.log(that.index(), that['column'](that.index()).search());\r\n\r\n if (createSelectBoxes) {\r\n const select = $('')\r\n .on('change', function () {\r\n const val = $(this).val();\r\n\r\n that.column(that.index())\r\n .search(val)\r\n .draw();\r\n });\r\n\r\n const statusItems = [];\r\n\r\n that.column(that.index()).data().unique().sort().each(function (d, j) {\r\n select.append('')\r\n });\r\n\r\n select.appendTo(divColumnInner);\r\n } else {\r\n const textBox = $('', {\r\n name: 'text',\r\n id: 'text' + that.index(),\r\n style: 'width:100%',\r\n placeholder: that.header().textContent,\r\n value: that['column'](that.index()).search(),\r\n class: 'form-control'\r\n }).on('keyup change', function () {\r\n if (that.search() !== this['value']) {\r\n that\r\n .search(this['value'])\r\n .draw();\r\n }\r\n });\r\n\r\n textBox.appendTo(divColumnInner);\r\n }\r\n }\r\n\r\n divColumnInner.appendTo(divColumn);\r\n\r\n divColumn.appendTo(dynamicFilterContainer);\r\n }\r\n });\r\n}\r\n\r\nexport function getGridLanguages(translateService) {\r\n return {\r\n 'lengthMenu': translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': translateService.instant('grid.empty'),\r\n 'info': translateService.instant('grid.info'),\r\n 'infoEmpty': translateService.instant('grid.infoempty'),\r\n 'infoFiltered': translateService.instant('grid.infofiltered'),\r\n 'search': translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'processing': '
',\r\n 'loadingRecords': translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': translateService.instant('grid.first'),\r\n 'last': translateService.instant('grid.last'),\r\n 'next': translateService.instant('grid.next'),\r\n 'previous': translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': translateService.instant('grid.sortasc'),\r\n 'sortDescending': translateService.instant('grid.sortdesc'),\r\n }\r\n };\r\n}\r\n\r\nexport function getGridButtons(commonExportOptions, fileName, header) {\r\n return [{\r\n extend: 'copy',\r\n text: 'Copy',\r\n exportOptions: commonExportOptions\r\n }, {\r\n extend: 'print',\r\n text: 'Print',\r\n exportOptions: commonExportOptions,\r\n messageTop: header\r\n }, {\r\n extend: 'csv',\r\n text: 'CSV',\r\n exportOptions: commonExportOptions,\r\n filename: fileName\r\n }, {\r\n extend: 'excel',\r\n text: 'XLS',\r\n exportOptions: commonExportOptions,\r\n filename: fileName\r\n }, {\r\n extend: 'pdf',\r\n text: 'PDF',\r\n exportOptions: commonExportOptions,\r\n orientation: 'landscape',\r\n filename: fileName,\r\n messageTop: header\r\n }];\r\n}\r\n\r\nexport function getDropdownSettings(groupBy = true, badgeShowLimit = 3, showCheckbox = true) {\r\n return {\r\n classes: 'form-control multiselector_fix',\r\n enableSearchFilter: true,\r\n lazyLoading: false,\r\n badgeShowLimit: badgeShowLimit,\r\n showCheckbox: showCheckbox,\r\n groupBy: groupBy ? 'category' : ''\r\n };\r\n}\r\n\r\nexport function getTranslatedDropdownSettings(translateService, name, groupBy = true, badgeShowLimit = 3, showCheckbox = true) {\r\n return {\r\n singleSelection: false,\r\n text: translateService.instant(('general.' + name)),\r\n selectAllText: translateService.instant('general.selectAll'),\r\n unSelectAllText: translateService.instant('general.deSelectAll'),\r\n searchPlaceholderText: translateService.instant('general.search'),\r\n noDataLabel: translateService.instant('general.noDataFound'),\r\n classes: 'form-control multiselector_fix',\r\n enableSearchFilter: true,\r\n lazyLoading: false,\r\n badgeShowLimit: badgeShowLimit,\r\n showCheckbox: showCheckbox,\r\n groupBy: groupBy ? 'category' : ''\r\n };\r\n}\r\n\r\nexport function getDefaultDpConfig() {\r\n return {\r\n containerClass: 'theme-default',\r\n dateInputFormat: 'll',\r\n rangeSeparator: ' - ',\r\n rangeInputFormat: 'll'\r\n };\r\n}\r\n\r\nexport const mapMultiDropdown = ((keys) => keys.map(key => ({\r\n 'id': key.id, 'itemName': key.name\r\n})));\r\n\r\nexport function setTableStars(table) {\r\n if (table.tableIds) {\r\n table.tableIds.forEach(id => {\r\n const star = $('#star_' + id);\r\n star.click(() => {\r\n if (star.hasClass('fas')) {\r\n star.removeClass('fas').addClass('far');\r\n } else {\r\n star.removeClass('far').addClass('fas');\r\n }\r\n table.changeFlag(id, star.hasClass('fas'));\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function setSelection(table) {\r\n if (table.tableIdsSelection) {\r\n table.tableIdsSelection.forEach(id => {\r\n const checkbox = $('#selection_' + id);\r\n const parentRow = $(checkbox).closest('tr');\r\n\r\n checkbox.click(() => {\r\n if (checkbox.hasClass('fa-square')) {\r\n table.gridSelction.push(id);\r\n checkbox.removeClass('fa-square').addClass('fa-check-square');\r\n parentRow.addClass('selected');\r\n } else {\r\n const index = table.gridSelction.indexOf(id, 0);\r\n if (index > -1) {\r\n table.gridSelction.splice(index, 1);\r\n }\r\n checkbox.removeClass('fa-check-square').addClass('fa-square');\r\n parentRow.removeClass('selected');\r\n }\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function setSelectionRows(table, row, data, gridSelection) {\r\n if ($.inArray(data.id, gridSelection) !== -1) {\r\n $(row).addClass('selected');\r\n }\r\n}\r\n\r\n","export function getMapProviders(L, extraLayers = null) {\r\n const osm = L.tileLayer('https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=YLfOtVnqZuWr7kkDLbI4', {\r\n tileSize: 512,\r\n zoomOffset: -1,\r\n minZoom: 1,\r\n attribution: '© MapTiler © OpenStreetMap contributors',\r\n crossOrigin: true\r\n });\r\n const googleMaps = L.tileLayer('http://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', {\r\n maxZoom: 20,\r\n subdomains: ['mt0', 'mt1', 'mt2', 'mt3'],\r\n detectRetina: true\r\n });\r\n const googleHybrid = L.tileLayer('http://{s}.google.com/vt/lyrs=s,h&x={x}&y={y}&z={z}', {\r\n maxZoom: 20,\r\n subdomains: ['mt0', 'mt1', 'mt2', 'mt3'],\r\n detectRetina: true\r\n });\r\n\r\n const maps = { 'mapTiler': osm, 'Google': googleMaps, 'Hybrid': googleHybrid };\r\n\r\n return maps;\r\n}\r\n\r\nexport function createMapOptions(L, maps) {\r\n\r\n const options = {\r\n layers: maps,\r\n zoom: 2,\r\n center: L.latLng(24.577100, 55.019531)\r\n };\r\n\r\n return options;\r\n}\r\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from '@ngx-translate/core';\r\n\r\nexport class CustomMissingTranslationHandler implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n return 'lt: ' + params.key;\r\n\r\n // Save it to database or json with indicator\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[numberOnly]'\r\n})\r\nexport class NumberOnlyDirective {\r\n // Allow decimal numbers and negative values\r\n private regex: RegExp = new RegExp(/^-?[0-9]+(\\.[0-9]*){0,1}$/g);\r\n // Allow key codes for special events. Reflect :\r\n // Backspace, tab, end, home\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-'];\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n // Allow Backspace, tab, end, and home keys\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n const current: string = this.el.nativeElement.value;\r\n const next: string = current.concat(event.key);\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'orderBy',\r\n pure: false\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n\r\n /**\r\n * Check if a value is a string\r\n *\r\n * @param value\r\n */\r\n static isString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n /**\r\n * Sorts values ignoring the case\r\n *\r\n * @param a\r\n * @param b\r\n */\r\n static caseInsensitiveSort(a: any, b: any) {\r\n if (OrderByPipe.isString(a) && OrderByPipe.isString(b)) {\r\n return a.localeCompare(b);\r\n }\r\n return OrderByPipe.defaultCompare(a, b);\r\n }\r\n\r\n /**\r\n * Default compare method\r\n *\r\n * @param a\r\n * @param b\r\n */\r\n static defaultCompare(a: any, b: any) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n if (a == null) {\r\n return 1;\r\n }\r\n if (b == null) {\r\n return -1;\r\n }\r\n return a > b ? 1 : -1;\r\n }\r\n\r\n /**\r\n * Parse expression, split into items\r\n * @param expression\r\n * @returns {string[]}\r\n */\r\n static parseExpression(expression: string): string[] {\r\n expression = expression.replace(/\\[(\\w+)\\]/g, '.$1');\r\n expression = expression.replace(/^\\./, '');\r\n return expression.split('.');\r\n }\r\n\r\n /**\r\n * Get value by expression\r\n *\r\n * @param object\r\n * @param expression\r\n * @returns {any}\r\n */\r\n static getValue(object: any, expression: string[]) {\r\n for (let i = 0, n = expression.length; i < n; ++i) {\r\n const k = expression[i];\r\n if (!(k in object)) {\r\n return;\r\n }\r\n object = object[k];\r\n }\r\n\r\n return object;\r\n }\r\n\r\n /**\r\n * Set value by expression\r\n *\r\n * @param object\r\n * @param value\r\n * @param expression\r\n */\r\n static setValue(object: any, value: any, expression: string[]) {\r\n let i;\r\n for (i = 0; i < expression.length - 1; i++) {\r\n object = object[expression[i]];\r\n }\r\n\r\n object[expression[i]] = value;\r\n }\r\n\r\n transform(value: any | any[], expression?: any, reverse?: boolean, isCaseInsensitive: boolean = false, comparator?: Function): any {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n if (Array.isArray(expression)) {\r\n return this.multiExpressionTransform(value, expression, reverse, isCaseInsensitive, comparator);\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return this.sortArray(value.slice(), expression, reverse, isCaseInsensitive, comparator);\r\n }\r\n\r\n if (typeof value === 'object') {\r\n return this.transformObject(Object.assign({}, value), expression, reverse, isCaseInsensitive, comparator);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Sort array\r\n *\r\n * @param value\r\n * @param expression\r\n * @param reverse\r\n * @param isCaseInsensitive\r\n * @param comparator\r\n * @returns {any[]}\r\n */\r\n private sortArray(value: any[], expression?: any, reverse?: boolean, isCaseInsensitive?: boolean, comparator?: Function): any[] {\r\n const isDeepLink = expression && expression.indexOf('.') !== -1;\r\n\r\n if (isDeepLink) {\r\n expression = OrderByPipe.parseExpression(expression);\r\n }\r\n\r\n let compareFn: Function;\r\n\r\n if (comparator && typeof comparator === 'function') {\r\n compareFn = comparator;\r\n } else {\r\n compareFn = isCaseInsensitive ? OrderByPipe.caseInsensitiveSort : OrderByPipe.defaultCompare;\r\n }\r\n\r\n const array: any[] = value.sort((a: any, b: any): number => {\r\n if (!expression) {\r\n return compareFn(a, b);\r\n }\r\n\r\n if (!isDeepLink) {\r\n if (a && b) {\r\n return compareFn(a[expression], b[expression]);\r\n }\r\n return compareFn(a, b);\r\n }\r\n\r\n return compareFn(OrderByPipe.getValue(a, expression), OrderByPipe.getValue(b, expression));\r\n });\r\n\r\n if (reverse) {\r\n return array.reverse();\r\n }\r\n\r\n return array;\r\n }\r\n\r\n /**\r\n * Transform Object\r\n *\r\n * @param value\r\n * @param expression\r\n * @param reverse\r\n * @param isCaseInsensitive\r\n * @param comparator\r\n * @returns {any[]}\r\n */\r\n private transformObject(value: any | any[], expression?: any, reverse?: boolean, isCaseInsensitive?: boolean, comparator?: Function): any {\r\n\r\n const parsedExpression = OrderByPipe.parseExpression(expression);\r\n let lastPredicate = parsedExpression.pop();\r\n let oldValue = OrderByPipe.getValue(value, parsedExpression);\r\n\r\n if (!Array.isArray(oldValue)) {\r\n parsedExpression.push(lastPredicate);\r\n lastPredicate = null;\r\n oldValue = OrderByPipe.getValue(value, parsedExpression);\r\n }\r\n\r\n if (!oldValue) {\r\n return value;\r\n }\r\n\r\n OrderByPipe.setValue(value, this.transform(oldValue, lastPredicate, reverse, isCaseInsensitive), parsedExpression);\r\n return value;\r\n }\r\n\r\n /**\r\n * Apply multiple expressions\r\n *\r\n * @param value\r\n * @param {any[]} expressions\r\n * @param {boolean} reverse\r\n * @param {boolean} isCaseInsensitive\r\n * @param {Function} comparator\r\n * @returns {any}\r\n */\r\n private multiExpressionTransform(value: any, expressions: any[], reverse: boolean, isCaseInsensitive: boolean = false, comparator?: Function): any {\r\n return expressions.reverse().reduce((result: any, expression: any) => {\r\n return this.transform(result, expression, reverse, isCaseInsensitive, comparator);\r\n }, value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterRelevant',\r\n pure: true\r\n})\r\nexport class FilterRelevantPipe implements PipeTransform {\r\n transform(items: any[], filter: boolean): any {\r\n\r\n if (!items) {\r\n return items;\r\n }\r\n if (filter === true) {\r\n return items.filter(item => item.isCustomDeviceSensorTypeId === false);\r\n } else {\r\n return items;\r\n }\r\n }\r\n}\r\n","// Observable class extensions\r\nimport { of } from 'rxjs/observable/of';\r\n\r\n// Observable operators\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/observable/throw';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/switchMap';\r\nimport 'rxjs/add/operator/mergeMap';\r\nimport 'rxjs/add/operator/filter';\r\nimport 'rxjs/add/operator/debounceTime';\r\nimport 'rxjs/add/operator/distinctUntilChanged';\r\nimport 'rxjs/add/observable/forkJoin';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DeviceSensor } from 'app/models/sensor.model';\r\n@Pipe({\r\n name: 'textFilter'\r\n})\r\nexport class TextFilterPipe implements PipeTransform {\r\n transform(items: DeviceSensor[], searchText: string): DeviceSensor[] {\r\n\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLowerCase();\r\n return items.filter(it => {\r\n const parameter = it.parameter;\r\n const name = it.name;\r\n return [parameter, name].some(predicate => predicate && predicate.toLowerCase().indexOf(searchText) > -1);\r\n });\r\n }\r\n}\r\n","import { AddressDetails } from './platform.model';\r\nimport { RegisterOperatingCompanyRequest } from './wasl.model';\r\n\r\nexport class Properties {\r\n wasl = new RegisterOperatingCompanyRequest();\r\n}\r\n\r\nexport class InventoryAccount {\r\n name: any;\r\n id: any;\r\n createdDate: any;\r\n dateCreated: any;\r\n identifier: number;\r\n limitHistoryInDays: number;\r\n date: any;\r\n issueCount: any;\r\n jobCount: any;\r\n userCount: any;\r\n platformCount: any;\r\n deviceCount: any;\r\n status: any;\r\n isActive: any;\r\n\r\n isCurrentAccount: boolean;\r\n\r\n assetCount: number;\r\n driverCount: number;\r\n\r\n waslAssetCount: number;\r\n waslDriverCount: number;\r\n\r\n waslSuccessCount: number;\r\n waslFailedCount: number;\r\n\r\n address: AddressDetails;\r\n\r\n properties = new Properties();\r\n}\r\n\r\nexport class AccountPlatform {\r\n referenceId: any;\r\n name: any;\r\n id: any;\r\n createdDate: any;\r\n dateCreated: any;\r\n identifier: any;\r\n timezoneIana: any;\r\n}\r\n\r\nexport class AccountType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\n\r\n","import { AssetDriver } from './driver.model';\r\n\r\nexport class SlimWaslAsset {\r\n public sequenceNumber: string;\r\n public plateType: string;\r\n public referenceKey: string;\r\n public vehiclePlateNumber: any;\r\n public vehiclePlateLeftLetter: any;\r\n public vehiclePlateMiddleLetter: any;\r\n public vehiclePlateRightLetter: any;\r\n}\r\n\r\nexport class Properties {\r\n public wasl = new SlimWaslAsset();\r\n}\r\n\r\nexport class VehiclePlate {\r\n public number: string;\r\n public leftLetter: string;\r\n public middleLetter: string;\r\n public rightLetter: string;\r\n}\r\n\r\nexport class WaslAsset {\r\n public vehiclePlate: VehiclePlate = new VehiclePlate();\r\n public sequenceNumber: string;\r\n public plateType: string;\r\n public imeiNumber: string;\r\n public referenceKey: string;\r\n}\r\n\r\nexport class Asset {\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public geoJson: string;\r\n public year: any;\r\n public vehicleType: any;\r\n public lastPosition: any;\r\n public vin: any;\r\n public referenceId: any;\r\n public plateNumber: any;\r\n public color: any;\r\n public code: any;\r\n public brand: any;\r\n public model: any;\r\n public deviceId: any;\r\n public assetDriver: AssetDriver;\r\n public assetClass: any;\r\n public assetTypeId: any;\r\n public assetTypeName: any;\r\n public identificationTag: string;\r\n\r\n public createNewAssetType = false;\r\n\r\n public properties = new Properties();\r\n public assetLinkId: any;\r\n public unitId: any;\r\n public assetLinkStartDate: any;\r\n public assetLinkEndDate: any;\r\n public isActive: boolean;\r\n public assetLinkType: any;\r\n\r\n public humiditySensorPosition: any;\r\n public humiditySensorTypeId: any;\r\n public temperatureSensorPosition: any;\r\n public temperatureSensorTypeId: any;\r\n public weightSensorPosition: any;\r\n public weightSensorTypeId: any;\r\n}\r\n\r\nexport class AssetDevice {\r\n public deviceId: string;\r\n public assetId: string;\r\n public startDate: string;\r\n public endDate: string;\r\n public deviceName: any;\r\n isActive: boolean;\r\n}\r\n","\r\nexport class AssetType {\r\n\r\n public id: string;\r\n public name: string;\r\n public referenceId: string;\r\n public year: any;\r\n public brand: any;\r\n public model: any;\r\n public assetClass = 1;\r\n public assetCount: any;\r\n public serie: any;\r\n public trim: any;\r\n public properties: any;\r\n public isEditable: any;\r\n public isGeneral: any;\r\n public category = 1;\r\n}\r\n","import { User } from './user.model';\r\nimport { Device } from './device.model';\r\nimport { Issue } from './issue.model';\r\n\r\nexport class AuditLog {\r\n\r\n public id: string;\r\n public user: string;\r\n public device: Device;\r\n public issue: Issue;\r\n public timestamp: Date;\r\n public description: string;\r\n public logtype: any;\r\n public delta: any;\r\n public deltaItems = [];\r\n}\r\n","/**\r\n * Authentication request object.\r\n */\r\nexport class AuthenticateRequest {\r\n\r\n constructor(public Username: string, public Password: string, public Token: string) { }\r\n}\r\n\r\n\r\n\r\n","import { SettingsLevel } from './../common/enums';\r\n\r\n\r\nexport class CalculationSettings {\r\n public level: SettingsLevel;\r\n public id: string;\r\n public issueTypeSettings: IssueTypeSettings[] = [];\r\n}\r\n\r\nexport class IssueTypeSettings {\r\n public issueType: number;\r\n public isActive: boolean;\r\n public source;\r\n public severity = 3;\r\n public createdDate: Date;\r\n public modifiedDate: Date;\r\n public issuetypeName: string;\r\n public sourceName: string;\r\n public deviceSensorTypeId: string;\r\n public lowerThreshold = 0;\r\n public upperThreshold = 0;\r\n public duration = 0;\r\n}\r\n\r\nexport class IssueTypesWithPermissions {\r\n public issueType: number;\r\n public isActive: boolean;\r\n public source;\r\n public severity = 3;\r\n public createdDate: Date;\r\n public modifiedDate: Date;\r\n public issuetypeName: string;\r\n public sourceName: string;\r\n public deviceSensorTypeId: string;\r\n public lowerThreshold = 0;\r\n public upperThreshold = 0;\r\n public duration = 0;\r\n public isUsed: boolean;\r\n public id: any;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\nexport class Config {\r\n public version: string;\r\n public ConsumerToken: string; // = \"c4p8GFRvoWjo+x1I4QZNZP2hpsoRrIvkj44xP5J0zj6eG7fYI1RgNMyXXxNmmWdkjyRjjs4VlWJFMA8OR6huFw==\";\r\n public AuthenticationUrl: string; // = \"https://services.staging.gpscockpit.net/authentication/api/\";\r\n public Environment: string; // = \"staging\";\r\n public Debug: boolean; // = \"false\";\r\n public Local: boolean; // = \"false\";\r\n public SSOAuthenticationUrl: string // = 'http://sso.staging.gpscockpit.net/'\r\n public SSORedirectUrl: string; // = https://fleethealth.staging.gpscockpit.net/#/Auth-callback?'\r\n public SSOPostLogoutRedirectUrl: string; // = 'https://fleethealth.staging.gpscockpit.net/#/Endsession-callback'\r\n public InventoryUrl: string;\r\n public FleetOverviewUrl: string;\r\n}\r\n","export class Customer {\r\n\r\n public id: string;\r\n public createdDate: Date;\r\n public modifiedDate: Date;\r\n public name: string;\r\n public referenceId: string;\r\n public count: any;\r\n public platformName: any;\r\n public platformId: any;\r\n public accountPlatformId: any;\r\n public accountPlatformName: any;\r\n}\r\n","\r\nexport class Dashboard {\r\n public deviceCount: number;\r\n public issueCount: number;\r\n public deviceWithIssues: number;\r\n public healthyCount: number;\r\n public deviceTypesCount: number;\r\n public assetTypeCount: number;\r\n public driverCount: number;\r\n\r\n public deviceCountLastPeriod: number;\r\n public issueCountLastPeriod: number;\r\n public deviceWithIssuesLastPeriod: number;\r\n public deviceWithIssuesMax: number;\r\n public healthyCountLastPeriod: number;\r\n public deviceTypesCountLastPeriod: number;\r\n\r\n public worstDevices: WorstDevices[];\r\n public assetCount: number;\r\n public trailerCount: number;\r\n public assetTypesUsedCount: any;\r\n public allDeviceCount: any;\r\n}\r\n\r\nexport class AdminDashboard {\r\n public issueCount: number;\r\n public accountsWithoutIssues: number;\r\n public activeAccounts: number;\r\n public activeJobCount: number;\r\n public activeUsers: number;\r\n public historyJobCount: number;\r\n}\r\n\r\n\r\nexport class WorstDevices {\r\n issueCount: number;\r\n issueTypesCount: number;\r\n issuesRatio: number;\r\n issuesWeight: number;\r\n maxSeverity: number;\r\n unit: any;\r\n}\r\n\r\n\r\nexport class LocationCount {\r\n date: number;\r\n count: any;\r\n}\r\n","\r\nimport { Location } from './location.model';\r\nimport { Issue } from './issue.model';\r\nimport { DeviceType } from './devicetype.model';\r\n\r\nexport class Device {\r\n\r\n public id: string;\r\n public createdDate: Date;\r\n public customFields: any;\r\n public sensors: any;\r\n public lastCommunication: Date;\r\n public modifiedDate: Date;\r\n public name: string;\r\n public phone: string;\r\n public referenceId: string;\r\n public referenceLink: string;\r\n public unitId: string;\r\n public unitId2: string;\r\n public distance: number;\r\n public deviceType: DeviceType;\r\n public issues: Issue[] = [];\r\n public lastPosition: Location;\r\n public manufacturer: any;\r\n public manufacturerName: any;\r\n public deviceName: any;\r\n public modelName: any;\r\n public modelId: string;\r\n public issueCount: any;\r\n\r\n public note: any;\r\n public isNoteWarning: false;\r\n public isFlagged: boolean;\r\n\r\n public platformId: string;\r\n public platformName: string;\r\n public customerId: any;\r\n public customerName: any;\r\n public modelThumb: any;\r\n public endDate: Date;\r\n public isEnded: boolean;\r\n public accountPlatformId: any;\r\n public accountPlatformName: any;\r\n\r\n public hasIssueCalculationEnabled: boolean;\r\n public firmware: string;\r\n public deviceTypeId: string;\r\n public assetId: any;\r\n public theMarker: any;\r\n public speed: any;\r\n public hasGpsFix: any;\r\n}\r\n\r\nexport class IntermediateDevice {\r\n public id: string;\r\n public name: string;\r\n public phone: string;\r\n public unitId: string;\r\n public accountPlatformId: string;\r\n public assetId: any;\r\n public deviceType: any;\r\n}\r\n\r\nexport class DeviceDashboard {\r\n issuesLastMonthCount: number;\r\n issuesLastMonthCountOld: number;\r\n issuesLastWeekCount: number;\r\n issuesLastWeekCountOld: number;\r\n locationsLastMonthCount: number;\r\n locationsLastMonthCountOld: number;\r\n locationsLastWeekCount: number;\r\n locationsLastWeekCountOld: number;\r\n issuesThisWeekCount: number;\r\n locationsYesterdayCount: number;\r\n locationsYesterdayCountOld: number;\r\n}\r\n","import { Manufacturer } from './manufacturer.model';\r\n\r\nexport class DeviceType {\r\n\r\n public id: string;\r\n public code: string;\r\n public createdDate: Date;\r\n public modifiedDate: Date;\r\n public name: string;\r\n public referenceId: string;\r\n public deviceCount: number;\r\n public issueCount: number;\r\n public manufacturer: Manufacturer;\r\n public manufacturerName: any;\r\n public image: any;\r\n public thumbnail: any;\r\n}\r\n","export class Driver {\r\n\r\n public id: string;\r\n public name: string;\r\n\r\n public firstName: string;\r\n public lastName: string;\r\n public email: string;\r\n\r\n public referenceId: any;\r\n public code: any;\r\n public phone: any;\r\n public dateOfBirth: Date = new Date();\r\n public licence: any;\r\n public assetDriver: AssetDriver;\r\n\r\n public accountPlatformId: string;\r\n\r\n public language: any;\r\n\r\n public properties = new Properties();\r\n public isActive = false;\r\n}\r\n\r\nexport class Properties {\r\n public wasl = new WaslDriver();\r\n}\r\n\r\nexport class WaslDriver {\r\n public referenceKey: string;\r\n public identityNumber: any;\r\n public dateOfBirthGregorian: any;\r\n public mobileNumber: any;\r\n}\r\n\r\n\r\n\r\nexport class AssetDriver {\r\n public startDate: any;\r\n public endDate: any;\r\n public type: any;\r\n public id: any;\r\n}\r\n\r\n","export class ErrorLog {\r\n\r\n public id: string;\r\n public description: string;\r\n public stack: string;\r\n public location: string;\r\n public username: string;\r\n public message: string;\r\n public createddate: Date;\r\n}\r\n","import { Location } from './location.model';\r\nimport { Device } from './device.model';\r\nimport { DeviceType } from './devicetype.model';\r\n\r\nexport class Issue {\r\n\r\n public id: string;\r\n public device: Device;\r\n public deviceType: DeviceType;\r\n public issueTypeId: string;\r\n public date: Date;\r\n public issueDate: any;\r\n public createdDate: Date;\r\n public modifiedDate: Date;\r\n public issueType: any;\r\n public resolutionType: any;\r\n public lastPosition: Location;\r\n public deviceName: any;\r\n public deviceId: any;\r\n public issueTypeDescription: any;\r\n public resolutionDescription: any;\r\n public deviceTypeName: any;\r\n public modelName: any;\r\n public modelId: any;\r\n\r\n public hasTelemetrySummary: any;\r\n\r\n public hasDurationThreshold: any;\r\n\r\n public messagesWithoutGps: number;\r\n public messageCount: number;\r\n public ignitionCount: number;\r\n public hasMotion: any;\r\n public distanceInMeters: number;\r\n public distanceInKm: string;\r\n\r\n public position: any;\r\n public severity: any;\r\n public issueTypeUom: any;\r\n public issueTypeUomDescription: any;\r\n public issueTypeUomDisplay: any;\r\n public issueTypeUomDisplayDescription: any;\r\n public issueTypeEditableThresholds: any;\r\n public status: any;\r\n public statusDescription: any;\r\n public closedDate: Date;\r\n public issueDateFormatted: string;\r\n public sensorName: any;\r\n public deviceSensorTypeId: any;\r\n\r\n public duration: number;\r\n public lowerThreshold: number;\r\n public upperThreshold: number;\r\n public violationDuration?: number;\r\n public violationLowerThreshold?: number;\r\n public violationUpperThreshold?: number;\r\n public noGpsFixCount: number;\r\n}\r\n\r\nexport class IssueJson {\r\n public id: any;\r\n public geoJson: any;\r\n}\r\n\r\n","\r\nexport class IssueType {\r\n\r\n public id: number;\r\n public name: string;\r\n public count: number;\r\n public description: string;\r\n public uom: any;\r\n public uomDescription: any;\r\n public thresholdHasBounds: any;\r\n public hasDuration: any;\r\n public category: any;\r\n public displayUom: string;\r\n public editableThresholds: boolean;\r\n}\r\n","export class Job {\r\n\r\n public accountId;\r\n public accountName;\r\n public nextRun;\r\n public lastRuntime;\r\n public isRunning;\r\n public lastStatus;\r\n}\r\n\r\nexport class JobHistoryLog {\r\n\r\n public startJob;\r\n public endJob;\r\n public fromDate;\r\n public toDate;\r\n public accountId;\r\n public accountName;\r\n public jobId;\r\n public totalDeviceCount: number;\r\n public devicesProcessedCount: number;\r\n public devicesSkippedCount: number;\r\n public devicesErrorCount: number;\r\n public messages: number;\r\n public issues: number;\r\n public status: string;\r\n public duration: number;\r\n}\r\n","export interface ILatLng {\r\n latitude: number;\r\n longitude: number;\r\n}\r\n\r\nexport class Location implements ILatLng {\r\n speedInKph: number;\r\n\r\n constructor(public latitude: number, public longitude: number) { }\r\n}\r\n","\r\nexport class Manufacturer {\r\n\r\n public id: string;\r\n public code: string;\r\n public createdDate: Date;\r\n public modifiedDate: Date;\r\n public name: string;\r\n public referenceId: string;\r\n}\r\n","export class DashboardNotification {\r\n public message: any;\r\n public code: number;\r\n public data1: any;\r\n public data2: any;\r\n public type: any;\r\n}\r\n","import { AppUser } from './user.model';\r\n\r\nexport class AccountPlatform {\r\n public id: string;\r\n public accountId: string;\r\n public name: string;\r\n public username: string;\r\n public password: string;\r\n public deviceCount: any;\r\n public platformId: any;\r\n public platformName: any;\r\n public platformType: number;\r\n public token: any;\r\n public url: any;\r\n public timezoneIana: any;\r\n}\r\n\r\nexport class Platform {\r\n public id: string;\r\n public name: string;\r\n}\r\n\r\nexport class AppAccountPlatform {\r\n public platformName: string;\r\n public url: string;\r\n public username: string;\r\n public password: string;\r\n public platformType: number;\r\n public token: string;\r\n}\r\n\r\nexport class Account {\r\n public id: string;\r\n public name: string;\r\n public createdDate: any\r\n public identifier: number;\r\n public limitHistoryInDays: number;\r\n public userCount: number;\r\n public deviceCount: number;\r\n public platformCount: number;\r\n public status: number;\r\n}\r\n\r\nexport class AppAccount {\r\n public userRequest: AppUser;\r\n public accountPlatformRequest: AppAccountPlatform[];\r\n public name: string;\r\n public identifier: number;\r\n public limitHistoryInDays: number;\r\n public status = 1;\r\n}\r\n\r\nexport class AddressDetails {\r\n public street: string;\r\n public no: string;\r\n public country: string;\r\n public phone: string;\r\n public ext: string;\r\n public mobile: string;\r\n public email: string;\r\n public zip: string;\r\n}\r\n","\r\nexport class ResolutionType {\r\n\r\n public id: number;\r\n public name: string;\r\n public nameTranslated: string;\r\n public count: number;\r\n}\r\n","import { Device } from './device.model';\r\nimport { User } from './user.model';\r\n\r\nexport class Schedule {\r\n\r\n public issueType: any;\r\n public userName: any;\r\n public deviceName: any;\r\n public deviceId: any;\r\n public id: number;\r\n public device: Device;\r\n public date: Date;\r\n public modifiedDate: any;\r\n public createdDate: any;\r\n public dateProcessed: Date;\r\n public userId: string;\r\n public actionName: string;\r\n public actionId: number;\r\n public workflowName: any;\r\n issueId: any;\r\n workflowId: any;\r\n}\r\n","import { InventorySensorType } from './sensorType.model';\r\n\r\nexport class DeviceSensor {\r\n\r\n public name: any;\r\n public type: any;\r\n public metrics: any;\r\n public parameter: any;\r\n public deviceSensorTypeId: number;\r\n public sensorCount: any;\r\n public isChanged = false;\r\n public isCustomDeviceSensorTypeId = false;\r\n public deviceSensorType: any;\r\n}\r\n\r\nexport class AssetSensor {\r\n public id: any;\r\n public assetId: any;\r\n public sensorTypeId: any;\r\n public sensorTypeName: any;\r\n public sensorPosition: any;\r\n public calibrationPoints: any = [];\r\n public sensorType: InventorySensorType;\r\n}\r\n\r\n\r\nexport class DeviceSensorType {\r\n public id: any;\r\n public name: any;\r\n public category: any;\r\n}\r\n\r\nexport class SensorUser {\r\n public customerId: string;\r\n public customerName: string;\r\n public manufacturer: string;\r\n public deviceTypeId: string;\r\n public deviceType: string;\r\n public sensorCount: number;\r\n}\r\n\r\nexport class SensorDevice {\r\n public sensorName: string;\r\n public parameter: string;\r\n public id: string;\r\n public deviceName: number;\r\n public unitId: number;\r\n}\r\n","export class InventorySensorType {\r\n\r\n public id: string;\r\n public brand: string;\r\n public model: string;\r\n public deviceSensorType: any;\r\n public conversionFormula: any = '';\r\n public calibrationPoints: { rawValue: number; actualValue: number; }[] = [];\r\n public deviceSensorTypeId: any;\r\n public deviceSensorTypeName: any;\r\n}\r\n","\r\nexport class Tag {\r\n\r\n public name: any;\r\n public type: any;\r\n public metrics: any;\r\n public parameter: any;\r\n public deviceSensorTypeId: any;\r\n public sensorCount: any;\r\n public isChanged = false;\r\n public isCustomDeviceSensorTypeId = false;\r\n public deviceSensorType: any;\r\n}\r\n\r\nexport class TagSearch {\r\n public id: string;\r\n public name: string;\r\n public objectId: string;\r\n public objectType: TagObjectType;\r\n public objectName: string;\r\n}\r\n\r\nexport class TagUsage {\r\n public id: string;\r\n public name: string;\r\n public useCount: number;\r\n nameWithCount: string;\r\n}\r\n\r\nexport class TagPost {\r\n public name: string;\r\n public objectId: string;\r\n public objectType: TagObjectType;\r\n}\r\n\r\nexport enum TagObjectType {\r\n Unknown = 0,\r\n Device = 1,\r\n Asset = 2,\r\n Driver = 3,\r\n User = 4,\r\n Sensor = 5,\r\n Customer = 6,\r\n AssetType = 7,\r\n Issue = 10\r\n}\r\n","import { AddressDetails } from './platform.model';\r\n\r\n/**\r\n * User info result object.\r\n */\r\nexport class User {\r\n public Id: string;\r\n public TimeZone: string;\r\n public TimeZoneIana: string;\r\n\r\n public Culture: string;\r\n public MapProvider: string;\r\n public ResellerId: number;\r\n\r\n public WhiteLabel: string;\r\n public Email: string;\r\n\r\n public DistanceUnit: string;\r\n}\r\n\r\nexport class AppUser {\r\n referenceId: any;\r\n name: any;\r\n id: any;\r\n createdDate: any;\r\n accountId = '00000000-0000-0000-0000-000000000000'\r\n accountName: any;\r\n userRoleId: any;\r\n userRoleName: any;\r\n firstName: any;\r\n lastName: any;\r\n fullName: string;\r\n language: any;\r\n password = '';\r\n whitelabel: any;\r\n timezoneIana = 'Europe/Amsterdam';\r\n countryIsoCode: any;\r\n cronTabPattern: string;\r\n email: string;\r\n}\r\n\r\nexport class UpdatePasswordRequest {\r\n id: any;\r\n userName: string;\r\n oldPassword: string;\r\n newPassword: string;\r\n}\r\n\r\nexport class UserRole {\r\n name: any;\r\n id: any;\r\n permissions: any;\r\n userLevel: any;\r\n}\r\n","\r\nexport class RegisterOperatingCompanyRequest {\r\n public identityNumber: string;\r\n public commercialRecordNumber: string;\r\n public commercialRecordIssueDateHijri: string;\r\n public phoneNumber: string;\r\n public extensionNumber: string;\r\n public emailAddress: string;\r\n public managerName: string;\r\n public managerPhoneNumber: string;\r\n public managerMobileNumber: string;\r\n public dateOfBirthGregorian: string;\r\n public referenceKey: string;\r\n}\r\n","import { Device } from './device.model';\r\nimport { User } from './user.model';\r\n\r\nexport class Workflow {\r\n public id: number;\r\n public name: string;\r\n public days: number;\r\n public workflowActions: WorkflowAction[];\r\n public workflowActionActions: WorkflowActionActions[];\r\n}\r\n\r\nexport class Action {\r\n public id: any;\r\n public name: string;\r\n public isCustom: boolean;\r\n}\r\n\r\nexport class WorkflowAction {\r\n public id: number;\r\n public action: Action;\r\n public days: Number = 0;\r\n public isStartAction: Boolean;\r\n public isEndAction: Boolean;\r\n public hasCommunication: Boolean;\r\n public allowAutoProcess: Boolean;\r\n public name: any;\r\n public nextActions: Action[] = [];\r\n public isSelected: boolean;\r\n}\r\n\r\nexport class WorkflowActionActions {\r\n public id;\r\n public fromActionId;\r\n public toActionId;\r\n}\r\n","/**\r\n * @license\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/l-lin/angular-datatables/master/LICENSE\r\n */\r\n\r\n/**\r\n * @module\r\n * @description\r\n * Entry point from which you should import all public library APIs.\r\n */\r\nexport { DataTable360Directive } from './src/angular-datatables.directive';\r\nexport { DataTables360Module } from './src/angular-datatables.module';\r\n","/**\r\n * @license\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/l-lin/angular-datatables/master/LICENSE\r\n */\r\n\r\nimport { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[fh-datatable]'\r\n})\r\nexport class DataTable360Directive implements OnDestroy, OnInit {\r\n /**\r\n * The DataTable option you pass to configure your table.\r\n */\r\n @Input()\r\n dtOptions: any = {};\r\n\r\n /**\r\n * This trigger is used if one wants to trigger manually the DT rendering\r\n * Useful when rendering angular rendered DOM\r\n */\r\n @Input()\r\n dtTrigger: Subject;\r\n\r\n /**\r\n * The DataTable instance built by the jQuery library [DataTables](datatables.net).\r\n *\r\n * It's possible to execute the [DataTables APIs](https://datatables.net/reference/api/) with\r\n * this variable.\r\n */\r\n dtInstance: Promise;\r\n\r\n // Only used for destroying the table when destroying this directive\r\n private dt: any;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n if (this.dtTrigger) {\r\n this.dtTrigger.subscribe(() => {\r\n $(this.el.nativeElement).empty();\r\n this.displayTable();\r\n });\r\n }\r\n this.displayTable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.dtTrigger) {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n if (this.dt) {\r\n this.dt.destroy(true);\r\n }\r\n }\r\n\r\n private displayTable(): void {\r\n this.dtInstance = new Promise((resolve, reject) => {\r\n Promise.resolve(this.dtOptions).then(dtOptions => {\r\n // Using setTimeout as a \"hack\" to be \"part\" of NgZone\r\n setTimeout(() => {\r\n this.dt = $(this.el.nativeElement).DataTable(dtOptions);\r\n resolve(this.dt);\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","/**\r\n * @license\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/l-lin/angular-datatables/master/LICENSE\r\n */\r\n\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DataTable360Directive } from './angular-datatables.directive';\r\n\r\n@NgModule({\r\n imports: [ CommonModule ],\r\n declarations: [ DataTable360Directive ],\r\n exports: [ DataTable360Directive ]\r\n})\r\nexport class DataTables360Module {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: DataTables360Module\r\n };\r\n }\r\n}\r\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[counto]'\r\n})\r\n\r\nexport class CountoDirective {\r\n\r\n @Output() countoChange = new EventEmitter();\r\n @Output() countoEnd = new EventEmitter();\r\n private _timer: any;\r\n private _duration: number;\r\n private _countTo: number;\r\n private _countFrom: number;\r\n private _step: number;\r\n\r\n @Input()\r\n set duration(duration: string) {\r\n this._duration = parseFloat(duration);\r\n this.run();\r\n }\r\n\r\n @Input()\r\n set countTo(countTo: string) {\r\n this._countTo = parseFloat(countTo);\r\n this.run();\r\n }\r\n\r\n @Input()\r\n set countFrom(countFrom: string) {\r\n this._countFrom = parseFloat(countFrom);\r\n this.run();\r\n }\r\n\r\n @Input()\r\n set step(step: string) {\r\n this._step = parseFloat(step);\r\n this.run();\r\n }\r\n\r\n run() {\r\n const _this = this;\r\n clearInterval(_this._timer);\r\n\r\n if (isNaN(_this._duration)) {\r\n return false;\r\n }\r\n\r\n if (isNaN(_this._step)) {\r\n return false;\r\n }\r\n\r\n if (isNaN(_this._countFrom)) {\r\n return false;\r\n }\r\n\r\n if (isNaN(_this._countTo)) {\r\n return false;\r\n }\r\n\r\n if (_this._step <= 0) {\r\n return false;\r\n }\r\n\r\n if (_this._duration <= 0) {\r\n return false;\r\n }\r\n\r\n if (_this._step > _this._duration * 1000) {\r\n return false;\r\n }\r\n\r\n let intermediate = _this._countFrom;\r\n const increment = Math.abs(_this._countTo - _this._countFrom) / ((_this._duration * 1000) / _this._step);\r\n\r\n _this.countoChange.emit(intermediate);\r\n\r\n _this._timer = setInterval(function () {\r\n if (_this._countTo < _this._countFrom) {\r\n if (intermediate <= _this._countTo) {\r\n clearInterval(_this._timer);\r\n _this.countoChange.emit(_this._countTo);\r\n _this.countoEnd.emit();\r\n } else {\r\n _this.countoChange.emit(intermediate);\r\n intermediate -= increment;\r\n }\r\n } else {\r\n if (intermediate >= _this._countTo) {\r\n clearInterval(_this._timer);\r\n _this.countoChange.emit(_this._countTo);\r\n _this.countoEnd.emit();\r\n } else {\r\n _this.countoChange.emit(intermediate);\r\n intermediate += increment;\r\n }\r\n }\r\n }, _this._step);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CountoDirective } from './counto.directive';\r\n\r\n@NgModule({\r\n declarations: [ CountoDirective ],\r\n exports: [ CountoDirective ]\r\n})\r\nexport class CountoModule {}\r\n","import { Component, Inject, Output, OnChanges, EventEmitter, Optional, OnInit, OnDestroy, Input, ElementRef, Renderer2 } from '@angular/core';\r\nimport { ICheckRadioService } from '../services/icheck-radio.service';\r\nimport { ICheckConfig, ICheckConfigArgs } from '../icheck.config';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\ninterface ICheckEvent {\r\n target: any;\r\n type: string;\r\n timestamp: number;\r\n}\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'input[type=\"checkbox\"][icheck], input[type=\"radio\"][icheck]',\r\n template: ''\r\n})\r\nexport class ICheckComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() iCheckClass: string;\r\n @Input() checkedClass: string;\r\n @Input() uncheckedClass: string;\r\n @Input() disabledClass: string;\r\n @Input() enabledClass: string;\r\n @Input() indeterminateClass: string;\r\n @Input() determinateClass: string;\r\n @Input() hoverClass: string;\r\n @Input() focusClass: string;\r\n @Input() activeClass: string;\r\n @Input() labelHover: boolean;\r\n @Input() labelHoverClass: string;\r\n\r\n @Output() ifClicked: EventEmitter = new EventEmitter();\r\n @Output() ifChanged: EventEmitter = new EventEmitter();\r\n @Output() ifChecked: EventEmitter = new EventEmitter();\r\n @Output() ifUnchecked: EventEmitter = new EventEmitter();\r\n @Output() ifToggled: EventEmitter = new EventEmitter();\r\n @Output() ifDisabled: EventEmitter = new EventEmitter();\r\n @Output() ifEnabled: EventEmitter = new EventEmitter();\r\n @Output() ifIndeterminate: EventEmitter = new EventEmitter();\r\n @Output() ifDeterminate: EventEmitter = new EventEmitter();\r\n\r\n private _nodeType: 'Checkbox' | 'Radio';\r\n private _parentNode: any;\r\n private _wrapper: any;\r\n private _subscription: Subscription;\r\n private _name: string;\r\n private _value: string;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private render: Renderer2,\r\n private render2: Renderer2,\r\n private service: ICheckRadioService,\r\n @Inject(ICheckConfig) private _config: ICheckConfig\r\n ) {\r\n this._nodeType = this.el.nativeElement.type.toLowerCase() === 'checkbox' ? 'Checkbox' : 'Radio';\r\n }\r\n\r\n ngOnInit() {\r\n if (this._config.handle !== '' && this._config.handle !== this._nodeType.toLowerCase()) {\r\n return;\r\n }\r\n this._initialConfig();\r\n this._view();\r\n this._events();\r\n this._registry();\r\n }\r\n\r\n ngOnChanges(attributes) {\r\n if (Object.keys(attributes).indexOf('iCheckClass') !== -1) {\r\n if (attributes.iCheckClass.firstChange) {\r\n return;\r\n }\r\n if (attributes.iCheckClass.previousValue) {\r\n this.render2.removeClass(this._wrapper, attributes.iCheckClass.previousValue);\r\n }\r\n if (attributes.iCheckClass.currentValue) {\r\n this.render2.addClass(this._wrapper, attributes.iCheckClass.currentValue);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unregistry();\r\n }\r\n\r\n check() {\r\n if (this.el.nativeElement.disabled || this.el.nativeElement.checked) {\r\n return;\r\n }\r\n if (this._isRadio() && this._name && this._value) {\r\n this.service.trigger(this._name, this._value);\r\n }\r\n this.el.nativeElement.checked = true;\r\n this._emit('ifChanged');\r\n this._emit('ifToggled');\r\n this._emit('ifChecked');\r\n this.update();\r\n }\r\n\r\n uncheck() {\r\n if (!this.el.nativeElement.checked) {\r\n return;\r\n }\r\n this.el.nativeElement.checked = false;\r\n this._emit('ifChanged');\r\n this._emit('ifToggled');\r\n this._emit('ifUnchecked');\r\n this.update();\r\n }\r\n\r\n toggle() {\r\n if (this.el.nativeElement.checked) {\r\n this.uncheck();\r\n } else {\r\n this.check();\r\n }\r\n }\r\n\r\n disable() {\r\n if (this.el.nativeElement.disabled) {\r\n return;\r\n }\r\n this.el.nativeElement.disabled = true;\r\n this._emit('ifChanged');\r\n this._emit('ifDisabled');\r\n this.update();\r\n }\r\n\r\n enable() {\r\n if (!this.el.nativeElement.disabled) {\r\n return;\r\n }\r\n this.el.nativeElement.disabled = false;\r\n this._emit('ifChanged');\r\n this._emit('ifEnabled');\r\n this.update();\r\n }\r\n\r\n update() {\r\n setTimeout(() => {\r\n if (this.el.nativeElement.checked) {\r\n if (this.uncheckedClass.length > 0) {\r\n this.render2.removeClass(this._wrapper, this.uncheckedClass);\r\n }\r\n if (this.checkedClass.length > 0) {\r\n this.render2.addClass(this._wrapper, this.checkedClass);\r\n }\r\n } else {\r\n if (this.checkedClass.length > 0) {\r\n this.render2.removeClass(this._wrapper, this.checkedClass);\r\n }\r\n if (this.uncheckedClass.length > 0) {\r\n this.render2.addClass(this._wrapper, this.uncheckedClass);\r\n }\r\n }\r\n if (this.el.nativeElement.disabled) {\r\n if (this.enabledClass.length > 0) {\r\n this.render2.removeClass(this._wrapper, this.enabledClass);\r\n }\r\n if (this.disabledClass.length > 0) {\r\n this.render2.addClass(this._wrapper, this.disabledClass);\r\n }\r\n } else {\r\n if (this.disabledClass.length > 0) {\r\n this.render2.removeClass(this._wrapper, this.disabledClass);\r\n }\r\n if (this.enabledClass.length > 0) {\r\n this.render2.addClass(this._wrapper, this.enabledClass);\r\n }\r\n }\r\n }, 50);\r\n }\r\n\r\n private _isRadio() {\r\n return this._nodeType === 'Radio';\r\n }\r\n\r\n private _registry() {\r\n if (this._isRadio()) {\r\n this._name = this.el.nativeElement.getAttribute('name');\r\n if (this._name) {\r\n const result = this.service.registry(this._name);\r\n this._value = result.value;\r\n this._subscription = result.observable.subscribe((value) => {\r\n if (value !== this._value) {\r\n this.uncheck();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n private _unregistry() {\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private _initialConfig() {\r\n this.iCheckClass = this.iCheckClass || this._config[this._nodeType.toLowerCase() + 'Class'];\r\n ['checked', 'unchecked', 'disabled', 'enabled', 'indeterminate', 'determinate'].forEach((prefix) => {\r\n this[prefix + 'Class'] = this[prefix + 'Class'] || this._config[prefix + this._nodeType + 'Class'] || this._config[prefix + 'Class'];\r\n });\r\n ['hoverClass', 'focusClass', 'activeClass', 'labelHover', 'labelHoverClass'].forEach((name) => {\r\n this[name] = this[name] || this._config[name];\r\n });\r\n }\r\n\r\n private _isTheme(theme) {\r\n if (this._isRadio()) {\r\n return this.iCheckClass.indexOf('iradio_' + theme.toLowerCase()) === 0;\r\n } else {\r\n return this.iCheckClass.indexOf('icheckbox_' + theme.toLowerCase()) === 0;\r\n }\r\n }\r\n\r\n private _view() {\r\n this._parentNode = this.render2.parentNode(this.el.nativeElement);\r\n // 取消label与input的关联\r\n if (this._parentNode.nodeName.toLowerCase() === 'label') { // 父节点是 label 则赋值 for 属性为空\r\n this._parentNode.setAttribute('for', '');\r\n }\r\n this.render2.setStyle(this._parentNode, 'position', 'relative');\r\n\r\n this._parentNode.childNodes.forEach((el) => {\r\n if (el.nodeType === 1 && el.nodeName.toLowerCase() === 'label') { // 删除所有兄弟 label 节点的 for 属性\r\n el.removeAttribute('for');\r\n }\r\n });\r\n // 格式化 DOM\r\n this._wrapper = this.render2.createElement('div');\r\n this.render2.addClass(this._wrapper, this.iCheckClass);\r\n this.render2.setStyle(this.el.nativeElement, 'position', 'absolute');\r\n this.render2.setStyle(this.el.nativeElement, 'opacity', 0);\r\n\r\n const ins = this.render2.createElement('ins');\r\n this.render2.addClass(ins, 'iCheck-helper');\r\n const layer = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n display: 'block',\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n background: 'rgb(255, 255, 255)',\r\n border: 0,\r\n opacity: 0\r\n };\r\n Object.keys(layer).forEach((key) => this.render2.setStyle(ins, key, layer[key]));\r\n\r\n this.render2.insertBefore(this._parentNode, this._wrapper, this.el.nativeElement);\r\n this.render2.appendChild(this._wrapper, this.el.nativeElement);\r\n if (this._isTheme('line')) {\r\n const icon = this.render2.createElement('div');\r\n this.render2.addClass(icon, 'icheck_line-icon');\r\n this.render2.appendChild(this._wrapper, icon);\r\n let label = '';\r\n if (this._parentNode.nodeName.toLowerCase() === 'label') {\r\n this._parentNode.childNodes.forEach((el) => {\r\n if (el.nodeType === 3) {\r\n label += el.data;\r\n }\r\n this.render2.removeChild(this._parentNode, el);\r\n });\r\n }\r\n this._parentNode.childNodes.forEach((el) => {\r\n if (el.nodeType === 1 && el.nodeName.toLowerCase() === 'label') { // 删除所有兄弟 label 节点的 for 属性\r\n label += el.innerHTML;\r\n this.render2.removeChild(this._parentNode, el);\r\n }\r\n });\r\n const text = this.render2.createText(label);\r\n this.render2.appendChild(this._wrapper, text);\r\n }\r\n this.render2.appendChild(this._wrapper, ins);\r\n this.update();\r\n }\r\n\r\n private _emit(eventName: string) {\r\n if (!this[eventName]) {\r\n return;\r\n }\r\n this[eventName].emit({\r\n target: this.el,\r\n type: eventName,\r\n timestamp: Date.now()\r\n });\r\n }\r\n\r\n private _events() {\r\n this.render.listen(this._parentNode, 'mouseenter', (e) => {\r\n e.stopPropagation();\r\n setTimeout(() => {\r\n if (this._config.hoverClass) {\r\n this.render2.addClass(this._wrapper, this._config.hoverClass);\r\n if (this._config.labelHover) {\r\n if (this._parentNode.nodeName.toLowerCase() === 'label') {\r\n this.render2.addClass(this._parentNode, this._config.labelHoverClass || this._config.hoverClass);\r\n }\r\n this._parentNode.childNodes.forEach((el) => {\r\n if (el.nodeType === 1 && el.nodeName.toLowerCase() === 'label') {\r\n this.render2.addClass(el, this._config.labelHoverClass || this._config.hoverClass);\r\n }\r\n });\r\n }\r\n }\r\n }, 50);\r\n });\r\n\r\n this.render.listen(this._parentNode, 'mouseleave', (e) => {\r\n e.stopPropagation();\r\n setTimeout(() => {\r\n if (this._config.hoverClass) {\r\n this.render2.removeClass(this._wrapper, this._config.hoverClass);\r\n if (this._config.labelHover) {\r\n if (this._parentNode.nodeName.toLowerCase() === 'label') {\r\n this.render2.removeClass(this._parentNode, this._config.labelHoverClass || this._config.hoverClass);\r\n }\r\n this._parentNode.childNodes.forEach((el) => {\r\n if (el.nodeType === 1 && el.nodeName.toLowerCase() === 'label') {\r\n this.render2.removeClass(el, this._config.labelHoverClass || this._config.hoverClass);\r\n }\r\n });\r\n }\r\n }\r\n }, 50);\r\n });\r\n\r\n this.render.listen(this._parentNode, 'click', (e) => {\r\n e.stopPropagation();\r\n if (this.el.nativeElement.disabled) {\r\n return;\r\n }\r\n this._emit('ifClicked');\r\n if (this._isRadio()) {\r\n this.check();\r\n } else {\r\n if (this.el.nativeElement.checked) {\r\n this.uncheck();\r\n } else {\r\n this.check();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type iCheckHandle = 'checkbox' | 'radio' | '';\r\n\r\nexport interface ICheckConfigArgs {\r\n handle?: iCheckHandle;\r\n checkboxClass?: string;\r\n radioClass?: string;\r\n\r\n checkedClass?: string;\r\n checkedCheckboxClass?: string;\r\n checkedRadioClass?: string;\r\n\r\n uncheckedClass?: string;\r\n uncheckedCheckboxClass?: string;\r\n uncheckedRadioClass?: string;\r\n\r\n disabledClass?: string;\r\n disabledCheckboxClass?: string;\r\n disabledRadioClass?: string;\r\n\r\n enabledClass?: string;\r\n enabledCheckboxClass?: string;\r\n enabledRadioClass?: string;\r\n\r\n indeterminateClass?: string;\r\n indeterminateCheckboxClass?: string;\r\n indeterminateRadioClass?: string;\r\n\r\n determinateClass?: string;\r\n determinateCheckboxClass?: string;\r\n determinateRadioClass?: string;\r\n\r\n hoverClass?: string;\r\n focusClass?: string;\r\n activeClass?: string;\r\n\r\n labelHover?: boolean;\r\n labelHoverClass?: string;\r\n}\r\n\r\nexport class ICheckConfig implements ICheckConfigArgs {\r\n\r\n handle: iCheckHandle = '';\r\n checkboxClass = 'icheckbox';\r\n radioClass = 'iradio';\r\n\r\n checkedClass = 'checked';\r\n checkedCheckboxClass = '';\r\n checkedRadioClass = '';\r\n\r\n uncheckedClass = '';\r\n uncheckedCheckboxClass = '';\r\n uncheckedRadioClass = '';\r\n\r\n disabledClass = 'disabled';\r\n disabledCheckboxClass = '';\r\n disabledRadioClass = '';\r\n\r\n enabledClass = '';\r\n enabledCheckboxClass = '';\r\n enabledRadioClass = '';\r\n\r\n indeterminateClass = 'indeterminate';\r\n indeterminateCheckboxClass = '';\r\n indeterminateRadioClass = '';\r\n\r\n determinateClass = '';\r\n determinateCheckboxClass = '';\r\n determinateRadioClass = '';\r\n\r\n hoverClass = 'hover';\r\n focusClass = '';\r\n activeClass = '';\r\n\r\n labelHover = true;\r\n labelHoverClass = '';\r\n\r\n constructor(config: ICheckConfigArgs = {}) {\r\n Object.assign(this, config);\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders, InjectionToken, ANALYZE_FOR_ENTRY_COMPONENTS } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ICheckComponent } from './components/icheck.component';\r\nimport { ICheckRadioService } from './services/icheck-radio.service';\r\nimport { ICheckConfigArgs, ICheckConfig } from './icheck.config';\r\n\r\nconst ICheckOptions = new InjectionToken('config');\r\n\r\nexport function factoryICheckConfig(config: ICheckConfigArgs) {\r\n return new ICheckConfig(config);\r\n}\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [ICheckComponent],\r\n exports: [ICheckComponent],\r\n providers: [ICheckRadioService]\r\n})\r\nexport class ICheckModule {\r\n\r\n static forRoot(config: ICheckConfigArgs = {}): ModuleWithProviders {\r\n return {\r\n ngModule: ICheckModule,\r\n providers: [\r\n { provide: ICheckOptions, useValue: config },\r\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, multi: true, useValue: config },\r\n { provide: ICheckConfig, useFactory: factoryICheckConfig, deps: [ICheckOptions] }\r\n ]\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\ninterface IRadioGroup {\r\n name: string;\r\n values: Array;\r\n subject: Subject;\r\n}\r\n\r\ninterface IRegistryResult {\r\n value: string;\r\n observable: Observable;\r\n}\r\n\r\n@Injectable()\r\nexport class ICheckRadioService {\r\n\r\n private _groups: Array = [];\r\n\r\n constructor() { }\r\n\r\n registry(name, value?: string) {\r\n let group = this._getGroup(name);\r\n if (group) {\r\n value = value || group.values.length.toString();\r\n if (group.values.indexOf(value) === -1) {\r\n group.values.push(value);\r\n }\r\n } else {\r\n value = value || '0';\r\n group = {\r\n name: name,\r\n values: [value],\r\n subject: new Subject()\r\n };\r\n this._groups.push(group);\r\n }\r\n return { value: value, observable: group.subject.asObservable() };\r\n }\r\n\r\n trigger(name, value) {\r\n const group = this._getGroup(name);\r\n if (!group || group.values.indexOf(value) === -1) {\r\n return;\r\n }\r\n group.subject.next(value);\r\n }\r\n\r\n private _getGroup(name): IRadioGroup {\r\n return this._groups.find((group: IRadioGroup) => group.name === name);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { Notification } from '../../models';\r\nimport { NotificationsService } from '../../services/notifications.service';\r\nimport { Router, NavigationStart } from '@angular/router';\r\n\r\nimport 'rxjs/add/operator/filter';\r\n\r\n\r\n@Component({\r\n selector: 'fh-notify-notifications-container',\r\n templateUrl: './container.component.html',\r\n styleUrls: [\r\n './../../notifications.styles.css'\r\n ]\r\n})\r\nexport class ContainerComponent implements OnInit, OnDestroy {\r\n protected sub: Subscription;\r\n protected routerSub: Subscription;\r\n\r\n public notifications: Notification[] = [];\r\n\r\n protected render(notification) {\r\n this.notifications.push(notification);\r\n }\r\n\r\n protected findSimilar(notification: Notification) {\r\n return this.notifications.find(existingNotification => {\r\n return existingNotification.message === notification.message\r\n && existingNotification.type === notification.type\r\n && existingNotification.header === notification.header\r\n });\r\n }\r\n\r\n constructor(protected notificationsService: NotificationsService,\r\n protected router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n this.sub = this.notificationsService.notifications\r\n .subscribe((n: Notification) => {\r\n if (this.findSimilar(n)) {\r\n return;\r\n }\r\n\r\n this.render(n);\r\n });\r\n\r\n this.routerSub = this.router.events\r\n .filter(event => event instanceof NavigationStart)\r\n .subscribe((e) => {\r\n this.notifications = [];\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n this.routerSub.unsubscribe();\r\n }\r\n\r\n onDismissNotify(n: Notification) {\r\n return this.notifications.splice(\r\n this.notifications.indexOf(n),\r\n 1\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Notification } from '../../models';\r\n\r\n@Component({\r\n selector: 'fh-notify-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: [\r\n './../../notifications.styles.css'\r\n ]\r\n})\r\nexport class NotificationComponent {\r\n @Input() notification: Notification;\r\n @Output() dismissNotify = new EventEmitter();\r\n\r\n constructor() {\r\n setTimeout(result => { this.dismiss() }, 5000);\r\n }\r\n\r\n dismiss() {\r\n this.dismissNotify.emit(this.notification);\r\n }\r\n}\r\n","
\r\n {{notification.header}}
\r\n {{notification.message}}\r\n
","import {NgModule, ModuleWithProviders} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {ContainerComponent} from './components/container/container.component';\r\nimport {NotificationComponent} from './components/notification/notification.component';\r\nimport {NotificationsService} from './services/notifications.service';\r\n\r\nexport * from './components/container/container.component';\r\nexport * from './components/notification/notification.component';\r\nexport * from './services/notifications.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ContainerComponent,\r\n NotificationComponent\r\n ],\r\n exports: [\r\n ContainerComponent,\r\n NotificationComponent\r\n ]\r\n})\r\nexport class NotificationsModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: NotificationsModule,\r\n providers: [\r\n NotificationsService\r\n ]\r\n };\r\n }\r\n}\r\n","export class Notification {\r\n header: string;\r\n message: string;\r\n type: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Notification } from '../models';\r\n\r\nconst TYPE_INFO = 'info';\r\nconst TYPE_ERROR = 'error';\r\nconst TYPE_WARNING = 'warning';\r\n\r\n@Injectable()\r\nexport class NotificationsService {\r\n public notifications: Subject;\r\n\r\n constructor() {\r\n this.notifications = new Subject();\r\n }\r\n\r\n private pushNotification(notification) {\r\n this.notifications.next(notification);\r\n }\r\n\r\n public addInfo(header: string, text: string) {\r\n const notification = new Notification();\r\n\r\n notification.header = header;\r\n notification.message = text;\r\n notification.type = TYPE_INFO;\r\n\r\n this.pushNotification(notification);\r\n }\r\n\r\n public addError(header: string, text: string) {\r\n const notification = new Notification();\r\n\r\n notification.header = header;\r\n notification.message = text;\r\n notification.type = TYPE_ERROR;\r\n\r\n this.pushNotification(notification);\r\n }\r\n\r\n public addWarning(header: string, text: string) {\r\n const notification = new Notification();\r\n\r\n notification.header = header;\r\n notification.message = text;\r\n notification.type = TYPE_WARNING;\r\n\r\n this.pushNotification(notification);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {serializer} from './safe.util';\r\n\r\n@Pipe({\r\n name: 'json',\r\n pure: false\r\n})\r\nexport class SafeJsonPipe implements PipeTransform {\r\n public transform(obj: any, spaces: number= 2): string {\r\n return JSON.stringify(obj, serializer(), spaces);\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'prettyjson',\r\n styles: [\r\n `pre {outline: 0px; padding: 5px; margin: 5px; }\r\n :host >>> span {white-space: normal;}\r\n :host >>> .string { color: green; }\r\n :host >>> .number { color: darkorange; }\r\n :host >>> .boolean { color: blue; }\r\n :host >>> .null { color: magenta; }\r\n :host >>> .key { color: red; }`\r\n ],\r\n template: `\r\n
\r\n    
\r\n `,\r\n})\r\nexport class PrettyJsonComponent {\r\n @Input() public obj: any;\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {PrettyJsonComponent} from './prettyjson.component';\r\nimport {PrettyJsonPipe} from './prettyjson.pipe';\r\nimport {SafeJsonPipe} from './json.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrettyJsonComponent,\r\n PrettyJsonPipe,\r\n SafeJsonPipe\r\n ],\r\n exports: [\r\n PrettyJsonComponent,\r\n PrettyJsonPipe,\r\n SafeJsonPipe\r\n ]\r\n})\r\nexport class PrettyJsonModule {\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {serializer as circularSerializer} from './safe.util';\r\n\r\n@Pipe({\r\n name: 'prettyjson',\r\n pure: false\r\n})\r\nexport class PrettyJsonPipe implements PipeTransform {\r\n public transform(obj: any, spaces = 2): string {\r\n return this._syntaxHighlight(obj, circularSerializer(), spaces);\r\n }\r\n\r\n private _syntaxHighlight(json: any, serializer: any, spacing: number): string {\r\n if (json === undefined) {\r\n return '';\r\n }\r\n // Credits to the accepted answer here\r\n // http://stackoverflow.com/questions/4810841/how-can-i-pretty-print-json-using-javascript\r\n if (typeof json !== 'string') {\r\n json = JSON.stringify(json, serializer, spacing);\r\n }\r\n json = json.replace(/&/g, '&').replace(//g, '>');\r\n return json.replace(/(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, (match: any) => {\r\n let cls = 'number';\r\n if (/^\"/.test(match)) {\r\n if (/:$/.test(match)) {\r\n cls = 'key';\r\n } else {\r\n cls = 'string';\r\n }\r\n } else if (/true|false/.test(match)) {\r\n cls = 'boolean';\r\n } else if (/null/.test(match)) {\r\n cls = 'null';\r\n }\r\n return `${match}`;\r\n });\r\n }\r\n}\r\n","// Taken from github.com/isaacs/json-stringify-safe\r\nexport function serializer() {\r\n const stack: any[] = [];\r\n const keys: string[] = [];\r\n\r\n const cycleReplacer = function(key: string, value: any) {\r\n if (stack[0] === value) {\r\n return '[Circular ~]';\r\n }\r\n return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\r\n };\r\n\r\n return function(this: any, key: string, value: any) {\r\n if (stack.length > 0) {\r\n const thisPos = stack.indexOf(this);\r\n // tslint:disable-next-line:no-bitwise\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n // tslint:disable-next-line:no-bitwise\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n // tslint:disable-next-line:no-bitwise\r\n if (~stack.indexOf(value)) {\r\n value = cycleReplacer.call(this, key, value);\r\n }\r\n } else {\r\n stack.push(value);\r\n }\r\n\r\n return value;\r\n };\r\n}\r\n","import { Component, Input, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\r\nimport { tz } from 'moment-timezone';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ng2-timezone-picker-v1',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './timezoneselector.component.html',\r\n})\r\n\r\nexport class TimezoneSelectorComponent implements OnInit {\r\n\r\n @Input() timezone: string;\r\n @Output() timezoneValueChange: EventEmitter = new EventEmitter();\r\n\r\n disabled = false;\r\n showOffset = true;\r\n\r\n allTimezones = [];\r\n\r\n allTimezones2 = [\r\n 'test',\r\n 'abi'\r\n ]\r\n\r\n zones = {\r\n AD: ['Europe/Andorra'],\r\n AE: ['Asia/Dubai'],\r\n AF: ['Asia/Kabul'],\r\n AG: ['America/Antigua'],\r\n AI: ['America/Anguilla'],\r\n AL: ['Europe/Tirane'],\r\n AM: ['Asia/Yerevan'],\r\n AO: ['Africa/Luanda'],\r\n AQ: [\r\n 'Antarctica/McMurdo',\r\n 'Antarctica/Rothera',\r\n 'Antarctica/Palmer',\r\n 'Antarctica/Mawson',\r\n 'Antarctica/Davis',\r\n 'Antarctica/Casey',\r\n 'Antarctica/Vostok',\r\n 'Antarctica/DumontDUrville',\r\n 'Antarctica/Syowa',\r\n 'Antarctica/Troll'\r\n ],\r\n AR: [\r\n 'America/Argentina/Buenos_Aires',\r\n 'America/Argentina/Cordoba',\r\n 'America/Argentina/Salta',\r\n 'America/Argentina/Jujuy',\r\n 'America/Argentina/Tucuman',\r\n 'America/Argentina/Catamarca',\r\n 'America/Argentina/La_Rioja',\r\n 'America/Argentina/San_Juan',\r\n 'America/Argentina/Mendoza',\r\n 'America/Argentina/San_Luis',\r\n 'America/Argentina/Rio_Gallegos',\r\n 'America/Argentina/Ushuaia'\r\n ],\r\n AS: ['Pacific/Pago_Pago', 'Pacific/Samoa'],\r\n AT: ['Europe/Vienna'],\r\n AU: [\r\n 'Australia/Lord_Howe',\r\n 'Antarctica/Macquarie',\r\n 'Australia/Hobart',\r\n 'Australia/Currie',\r\n 'Australia/Melbourne',\r\n 'Australia/Sydney',\r\n 'Australia/Broken_Hill',\r\n 'Australia/Brisbane',\r\n 'Australia/Lindeman',\r\n 'Australia/Adelaide',\r\n 'Australia/Darwin',\r\n 'Australia/Perth',\r\n 'Australia/Eucla',\r\n 'Australia/Canberra',\r\n 'Australia/Queensland',\r\n 'Australia/Tasmania',\r\n 'Australia/Victoria'\r\n ],\r\n AW: ['America/Aruba'],\r\n AX: ['Europe/Mariehamn'],\r\n AZ: ['Asia/Baku'],\r\n BA: ['Europe/Sarajevo'],\r\n BB: ['America/Barbados'],\r\n BD: ['Asia/Dhaka'],\r\n BE: ['Europe/Brussels'],\r\n BF: ['Africa/Ouagadougou'],\r\n BG: ['Europe/Sofia'],\r\n BH: ['Asia/Bahrain'],\r\n BI: ['Africa/Bujumbura'],\r\n BJ: ['Africa/Porto-Novo'],\r\n BL: ['America/St_Barthelemy'],\r\n BM: ['Atlantic/Bermuda'],\r\n BN: ['Asia/Brunei'],\r\n BO: ['America/La_Paz'],\r\n BQ: ['America/Kralendijk'],\r\n BR: [\r\n 'America/Noronha',\r\n 'America/Belem',\r\n 'America/Fortaleza',\r\n 'America/Recife',\r\n 'America/Araguaina',\r\n 'America/Maceio',\r\n 'America/Bahia',\r\n 'America/Sao_Paulo',\r\n 'America/Campo_Grande',\r\n 'America/Cuiaba',\r\n 'America/Santarem',\r\n 'America/Porto_Velho',\r\n 'America/Boa_Vista',\r\n 'America/Manaus',\r\n 'America/Eirunepe',\r\n 'America/Rio_Branco'\r\n ],\r\n BS: ['America/Nassau'],\r\n BT: ['Asia/Thimphu'],\r\n BW: ['Africa/Gaborone'],\r\n BY: ['Europe/Minsk'],\r\n BZ: ['America/Belize'],\r\n CA: [\r\n 'America/St_Johns',\r\n 'America/Halifax',\r\n 'America/Glace_Bay',\r\n 'America/Moncton',\r\n 'America/Goose_Bay',\r\n 'America/Blanc-Sablon',\r\n 'America/Toronto',\r\n 'America/Nipigon',\r\n 'America/Thunder_Bay',\r\n 'America/Iqaluit',\r\n 'America/Pangnirtung',\r\n 'America/Resolute',\r\n 'America/Atikokan',\r\n 'America/Rankin_Inlet',\r\n 'America/Winnipeg',\r\n 'America/Rainy_River',\r\n 'America/Regina',\r\n 'America/Swift_Current',\r\n 'America/Edmonton',\r\n 'America/Cambridge_Bay',\r\n 'America/Yellowknife',\r\n 'America/Inuvik',\r\n 'America/Creston',\r\n 'America/Dawson_Creek',\r\n 'America/Vancouver',\r\n 'America/Whitehorse',\r\n 'America/Dawson',\r\n 'America/Montreal',\r\n 'Canada/Atlantic',\r\n 'Canada/Central',\r\n 'Canada/Eastern',\r\n 'Canada/Mountain',\r\n 'Canada/Newfoundland',\r\n 'Canada/Pacific',\r\n 'Canada/Saskatchewan',\r\n 'Canada/Yukon'\r\n ],\r\n CC: ['Indian/Cocos'],\r\n CD: ['Africa/Kinshasa', 'Africa/Lubumbashi'],\r\n CF: ['Africa/Bangui'],\r\n CG: ['Africa/Brazzaville'],\r\n CH: ['Europe/Zurich'],\r\n CI: ['Africa/Abidjan'],\r\n CK: ['Pacific/Rarotonga'],\r\n CL: [\r\n 'America/Santiago',\r\n 'Pacific/Easter',\r\n 'Chile/Continental',\r\n 'Chile/EasterIsland'\r\n ],\r\n CM: ['Africa/Douala'],\r\n CN: [\r\n 'Asia/Shanghai',\r\n 'Asia/Harbin',\r\n 'Asia/Chongqing',\r\n 'Asia/Urumqi',\r\n 'Asia/Kashgar'\r\n ],\r\n CO: ['America/Bogota'],\r\n CR: ['America/Costa_Rica'],\r\n CU: ['America/Havana'],\r\n CV: ['Atlantic/Cape_Verde'],\r\n CW: ['America/Curacao'],\r\n CX: ['Indian/Christmas'],\r\n CY: ['Asia/Nicosia'],\r\n CZ: ['Europe/Prague'],\r\n DE: ['Europe/Berlin'],\r\n DJ: ['Africa/Djibouti'],\r\n DK: ['Europe/Copenhagen'],\r\n DM: ['America/Dominica'],\r\n DO: ['America/Santo_Domingo'],\r\n DZ: ['Africa/Algiers'],\r\n EC: ['America/Guayaquil', 'Pacific/Galapagos'],\r\n EE: ['Europe/Tallinn'],\r\n EG: ['Egypt'],\r\n EH: ['Africa/El_Aaiun'],\r\n ER: ['Africa/Asmara'],\r\n ES: ['Europe/Madrid', 'Africa/Ceuta', 'Atlantic/Canary'],\r\n ET: ['Africa/Addis_Ababa'],\r\n FI: ['Europe/Helsinki'],\r\n FJ: ['Pacific/Fiji'],\r\n FK: ['Atlantic/Stanley'],\r\n FM: ['Pacific/Chuuk', 'Pacific/Pohnpei', 'Pacific/Kosrae'],\r\n FO: ['Atlantic/Faroe'],\r\n FR: ['Europe/Paris'],\r\n GA: ['Africa/Libreville'],\r\n GB: ['Europe/London'],\r\n GD: ['America/Grenada'],\r\n GE: ['Asia/Tbilisi'],\r\n GF: ['America/Cayenne'],\r\n GG: ['Europe/Guernsey'],\r\n GH: ['Africa/Accra'],\r\n GI: ['Europe/Gibraltar'],\r\n GL: [\r\n 'America/Godthab',\r\n 'America/Danmarkshavn',\r\n 'America/Scoresbysund',\r\n 'America/Thule'\r\n ],\r\n GM: ['Africa/Banjul'],\r\n GN: ['Africa/Conakry'],\r\n GP: ['America/Guadeloupe'],\r\n GQ: ['Africa/Malabo'],\r\n GR: ['Europe/Athens'],\r\n GS: ['Atlantic/South_Georgia'],\r\n GT: ['America/Guatemala'],\r\n GU: ['Pacific/Guam'],\r\n GW: ['Africa/Bissau'],\r\n GY: ['America/Guyana'],\r\n HK: ['Asia/Hong_Kong'],\r\n HN: ['America/Tegucigalpa'],\r\n HR: ['Europe/Zagreb'],\r\n HT: ['America/Port-au-Prince'],\r\n HU: ['Europe/Budapest'],\r\n ID: ['Asia/Jakarta', 'Asia/Pontianak', 'Asia/Makassar', 'Asia/Jayapura'],\r\n IE: ['Europe/Dublin'],\r\n IL: ['Asia/Jerusalem'],\r\n IM: ['Europe/Isle_of_Man'],\r\n IN: ['Asia/Kolkata'],\r\n IO: ['Indian/Chagos'],\r\n IQ: ['Asia/Baghdad'],\r\n IR: ['Asia/Tehran'],\r\n IS: ['Atlantic/Reykjavik'],\r\n IT: ['Europe/Rome'],\r\n JE: ['Europe/Jersey'],\r\n JM: ['America/Jamaica'],\r\n JO: ['Asia/Amman'],\r\n JP: ['Asia/Tokyo'],\r\n KE: ['Africa/Nairobi'],\r\n KG: ['Asia/Bishkek'],\r\n KH: ['Asia/Phnom_Penh'],\r\n KI: ['Pacific/Tarawa', 'Pacific/Enderbury', 'Pacific/Kiritimati'],\r\n KM: ['Indian/Comoro'],\r\n KN: ['America/St_Kitts'],\r\n KP: ['Asia/Pyongyang'],\r\n KR: ['Asia/Seoul'],\r\n KW: ['Asia/Kuwait'],\r\n KY: ['America/Cayman'],\r\n KZ: [\r\n 'Asia/Almaty',\r\n 'Asia/Qyzylorda',\r\n 'Asia/Aqtobe',\r\n 'Asia/Aqtau',\r\n 'Asia/Oral'\r\n ],\r\n LA: ['Asia/Vientiane'],\r\n LB: ['Asia/Beirut'],\r\n LC: ['America/St_Lucia'],\r\n LI: ['Europe/Vaduz'],\r\n LK: ['Asia/Colombo'],\r\n LR: ['Africa/Monrovia'],\r\n LS: ['Africa/Maseru'],\r\n LT: ['Europe/Vilnius'],\r\n LU: ['Europe/Luxembourg'],\r\n LV: ['Europe/Riga'],\r\n LY: ['Africa/Tripoli'],\r\n MA: ['Africa/Casablanca'],\r\n MC: ['Europe/Monaco'],\r\n MD: ['Europe/Chisinau'],\r\n ME: ['Europe/Podgorica'],\r\n MF: ['America/Marigot'],\r\n MG: ['Indian/Antananarivo'],\r\n MH: ['Pacific/Majuro', 'Pacific/Kwajalein'],\r\n MK: ['Europe/Skopje'],\r\n ML: ['Africa/Bamako'],\r\n MM: ['Asia/Rangoon'],\r\n MN: ['Asia/Ulaanbaatar', 'Asia/Hovd', 'Asia/Choibalsan'],\r\n MO: ['Asia/Macau'],\r\n MP: ['Pacific/Saipan'],\r\n MQ: ['America/Martinique'],\r\n MR: ['Africa/Nouakchott'],\r\n MS: ['America/Montserrat'],\r\n MT: ['Europe/Malta'],\r\n MU: ['Indian/Mauritius'],\r\n MV: ['Indian/Maldives'],\r\n MW: ['Africa/Blantyre'],\r\n MX: [\r\n 'America/Mexico_City',\r\n 'America/Cancun',\r\n 'America/Merida',\r\n 'America/Monterrey',\r\n 'America/Matamoros',\r\n 'America/Mazatlan',\r\n 'America/Chihuahua',\r\n 'America/Ojinaga',\r\n 'America/Hermosillo',\r\n 'America/Tijuana',\r\n 'America/Santa_Isabel',\r\n 'America/Bahia_Banderas'\r\n ],\r\n MY: ['Asia/Kuala_Lumpur', 'Asia/Kuching'],\r\n MZ: ['Africa/Maputo'],\r\n NA: ['Africa/Windhoek'],\r\n NC: ['Pacific/Noumea'],\r\n NE: ['Africa/Niamey'],\r\n NF: ['Pacific/Norfolk'],\r\n NG: ['Africa/Lagos'],\r\n NI: ['America/Managua'],\r\n NL: ['Europe/Amsterdam'],\r\n NO: ['Europe/Oslo'],\r\n NP: ['Asia/Kathmandu'],\r\n NR: ['Pacific/Nauru'],\r\n NU: ['Pacific/Niue'],\r\n NZ: ['Pacific/Auckland', 'Pacific/Chatham'],\r\n OM: ['Asia/Muscat'],\r\n PA: ['America/Panama'],\r\n PE: ['America/Lima'],\r\n PF: ['Pacific/Tahiti', 'Pacific/Marquesas', 'Pacific/Gambier'],\r\n PG: ['Pacific/Port_Moresby'],\r\n PH: ['Asia/Manila'],\r\n PK: ['Asia/Karachi'],\r\n PL: ['Europe/Warsaw', 'Poland'],\r\n PM: ['America/Miquelon'],\r\n PN: ['Pacific/Pitcairn'],\r\n PR: ['America/Puerto_Rico'],\r\n PS: ['Asia/Gaza', 'Asia/Hebron'],\r\n PT: ['Europe/Lisbon', 'Atlantic/Madeira', 'Atlantic/Azores'],\r\n PW: ['Pacific/Palau'],\r\n PY: ['America/Asuncion'],\r\n QA: ['Asia/Qatar'],\r\n RE: ['Indian/Reunion'],\r\n RO: ['Europe/Bucharest'],\r\n RS: ['Europe/Belgrade'],\r\n RU: [\r\n 'Europe/Kaliningrad',\r\n 'Europe/Moscow',\r\n 'Europe/Volgograd',\r\n 'Europe/Samara',\r\n 'Europe/Simferopol',\r\n 'Asia/Yekaterinburg',\r\n 'Asia/Omsk',\r\n 'Asia/Novosibirsk',\r\n 'Asia/Novokuznetsk',\r\n 'Asia/Krasnoyarsk',\r\n 'Asia/Irkutsk',\r\n 'Asia/Yakutsk',\r\n 'Asia/Khandyga',\r\n 'Asia/Vladivostok',\r\n 'Asia/Sakhalin',\r\n 'Asia/Ust-Nera',\r\n 'Asia/Magadan',\r\n 'Asia/Kamchatka',\r\n 'Asia/Anadyr'\r\n ],\r\n RW: ['Africa/Kigali'],\r\n SA: ['Asia/Riyadh'],\r\n SB: ['Pacific/Guadalcanal'],\r\n SC: ['Indian/Mahe'],\r\n SD: ['Africa/Khartoum'],\r\n SE: ['Europe/Stockholm'],\r\n SG: ['Asia/Singapore'],\r\n SH: ['Atlantic/St_Helena'],\r\n SI: ['Europe/Ljubljana'],\r\n SJ: ['Arctic/Longyearbyen'],\r\n SK: ['Europe/Bratislava'],\r\n SL: ['Africa/Freetown'],\r\n SM: ['Europe/San_Marino'],\r\n SN: ['Africa/Dakar'],\r\n SO: ['Africa/Mogadishu'],\r\n SR: ['America/Paramaribo'],\r\n SS: ['Africa/Juba'],\r\n ST: ['Africa/Sao_Tome'],\r\n SV: ['America/El_Salvador'],\r\n SX: ['America/Lower_Princes'],\r\n SY: ['Asia/Damascus'],\r\n SZ: ['Africa/Mbabane'],\r\n TC: ['America/Grand_Turk'],\r\n TD: ['Africa/Ndjamena'],\r\n TF: ['Indian/Kerguelen'],\r\n TG: ['Africa/Lome'],\r\n TH: ['Asia/Bangkok'],\r\n TJ: ['Asia/Dushanbe'],\r\n TK: ['Pacific/Fakaofo'],\r\n TL: ['Asia/Dili'],\r\n TM: ['Asia/Ashgabat'],\r\n TN: ['Africa/Tunis'],\r\n TO: ['Pacific/Tongatapu'],\r\n TR: ['Europe/Istanbul'],\r\n TT: ['America/Port_of_Spain'],\r\n TV: ['Pacific/Funafuti'],\r\n TW: ['Asia/Taipei'],\r\n TZ: ['Africa/Dar_es_Salaam'],\r\n UA: ['Europe/Kiev', 'Europe/Uzhgorod', 'Europe/Zaporozhye'],\r\n UG: ['Africa/Kampala'],\r\n UM: ['Pacific/Johnston', 'Pacific/Midway', 'Pacific/Wake'],\r\n US: [\r\n 'America/New_York',\r\n 'America/Detroit',\r\n 'America/Kentucky/Louisville',\r\n 'America/Kentucky/Monticello',\r\n 'America/Indiana/Indianapolis',\r\n 'America/Indiana/Vincennes',\r\n 'America/Indiana/Winamac',\r\n 'America/Indiana/Marengo',\r\n 'America/Indiana/Petersburg',\r\n 'America/Indiana/Vevay',\r\n 'America/Chicago',\r\n 'America/Indiana/Tell_City',\r\n 'America/Indiana/Knox',\r\n 'America/Menominee',\r\n 'America/North_Dakota/Center',\r\n 'America/North_Dakota/New_Salem',\r\n 'America/North_Dakota/Beulah',\r\n 'America/Denver',\r\n 'America/Boise',\r\n 'America/Phoenix',\r\n 'America/Los_Angeles',\r\n 'America/Anchorage',\r\n 'America/Juneau',\r\n 'America/Sitka',\r\n 'America/Yakutat',\r\n 'America/Nome',\r\n 'America/Adak',\r\n 'America/Metlakatla',\r\n 'Pacific/Honolulu'\r\n ],\r\n UY: ['America/Montevideo'],\r\n UZ: ['Asia/Samarkand', 'Asia/Tashkent'],\r\n VA: ['Europe/Vatican'],\r\n VC: ['America/St_Vincent'],\r\n VE: ['America/Caracas'],\r\n VG: ['America/Tortola'],\r\n VI: ['America/St_Thomas'],\r\n VN: ['Asia/Ho_Chi_Minh'],\r\n VU: ['Pacific/Efate'],\r\n WF: ['Pacific/Wallis'],\r\n WS: ['Pacific/Apia'],\r\n YE: ['Asia/Aden'],\r\n YT: ['Indian/Mayotte'],\r\n ZA: ['Africa/Johannesburg'],\r\n ZM: ['Africa/Lusaka'],\r\n ZW: ['Africa/Harare']\r\n };\r\n\r\n countryList = {\r\n AF: 'Afghanistan',\r\n AX: 'Aland Islands',\r\n AL: 'Albania',\r\n DZ: 'Algeria',\r\n AS: 'American Samoa',\r\n AD: 'Andorra',\r\n AO: 'Angola',\r\n AI: 'Anguilla',\r\n AQ: 'Antarctica',\r\n AG: 'Antigua and Barbuda',\r\n AR: 'Argentina',\r\n AM: 'Armenia',\r\n AW: 'Aruba',\r\n AU: 'Australia',\r\n AT: 'Austria',\r\n AZ: 'Azerbaijan',\r\n BS: 'Bahamas',\r\n BH: 'Bahrain',\r\n BD: 'Bangladesh',\r\n BB: 'Barbados',\r\n BY: 'Belarus',\r\n BE: 'Belgium',\r\n BZ: 'Belize',\r\n BJ: 'Benin',\r\n BM: 'Bermuda',\r\n BT: 'Bhutan',\r\n BO: 'Bolivia',\r\n BA: 'Bosnia and Herzegovina',\r\n BW: 'Botswana',\r\n BV: 'Bouvet Island',\r\n BR: 'Brazil',\r\n VG: 'British Virgin Islands',\r\n IO: 'British Indian Ocean Territory',\r\n BN: 'Brunei Darussalam',\r\n BG: 'Bulgaria',\r\n BF: 'Burkina Faso',\r\n BI: 'Burundi',\r\n KH: 'Cambodia',\r\n CM: 'Cameroon',\r\n CA: 'Canada',\r\n CV: 'Cape Verde',\r\n KY: 'Cayman Islands',\r\n CF: 'Central African Republic',\r\n TD: 'Chad',\r\n CL: 'Chile',\r\n CN: 'China',\r\n HK: 'Hong Kong',\r\n MO: 'Macao',\r\n CX: 'Christmas Island',\r\n CC: 'Cocos (Keeling) Islands',\r\n CO: 'Colombia',\r\n KM: 'Comoros',\r\n CG: 'Congo (Brazzaville)',\r\n CD: 'Congo, (Kinshasa)',\r\n CK: 'Cook Islands',\r\n CR: 'Costa Rica',\r\n CI: `Côte d'Ivoire`,\r\n HR: 'Croatia',\r\n CU: 'Cuba',\r\n CY: 'Cyprus',\r\n CZ: 'Czech Republic',\r\n DK: 'Denmark',\r\n DJ: 'Djibouti',\r\n DM: 'Dominica',\r\n DO: 'Dominican Republic',\r\n EC: 'Ecuador',\r\n EG: 'Egypt',\r\n SV: 'El Salvador',\r\n GQ: 'Equatorial Guinea',\r\n ER: 'Eritrea',\r\n EE: 'Estonia',\r\n ET: 'Ethiopia',\r\n FK: 'Falkland Islands (Malvinas)',\r\n FO: 'Faroe Islands',\r\n FJ: 'Fiji',\r\n FI: 'Finland',\r\n FR: 'France',\r\n GF: 'French Guiana',\r\n PF: 'French Polynesia',\r\n TF: 'French Southern Territories',\r\n GA: 'Gabon',\r\n GM: 'Gambia',\r\n GE: 'Georgia',\r\n DE: 'Germany',\r\n GH: 'Ghana',\r\n GI: 'Gibraltar',\r\n GR: 'Greece',\r\n GL: 'Greenland',\r\n GD: 'Grenada',\r\n GP: 'Guadeloupe',\r\n GU: 'Guam',\r\n GT: 'Guatemala',\r\n GG: 'Guernsey',\r\n GN: 'Guinea',\r\n GW: 'Guinea-Bissau',\r\n GY: 'Guyana',\r\n HT: 'Haiti',\r\n HM: 'Heard and Mcdonald Islands',\r\n VA: 'Vatican City State',\r\n HN: 'Honduras',\r\n HU: 'Hungary',\r\n IS: 'Iceland',\r\n IN: 'India',\r\n ID: 'Indonesia',\r\n IR: 'Iran',\r\n IQ: 'Iraq',\r\n IE: 'Ireland',\r\n IM: 'Isle of Man',\r\n IL: 'Israel',\r\n IT: 'Italy',\r\n JM: 'Jamaica',\r\n JP: 'Japan',\r\n JE: 'Jersey',\r\n JO: 'Jordan',\r\n KZ: 'Kazakhstan',\r\n KE: 'Kenya',\r\n KI: 'Kiribati',\r\n KP: 'Korea (North)',\r\n KR: 'Korea (South)',\r\n KW: 'Kuwait',\r\n KG: 'Kyrgyzstan',\r\n LA: 'Lao PDR',\r\n LV: 'Latvia',\r\n LB: 'Lebanon',\r\n LS: 'Lesotho',\r\n LR: 'Liberia',\r\n LY: 'Libya',\r\n LI: 'Liechtenstein',\r\n LT: 'Lithuania',\r\n LU: 'Luxembourg',\r\n MK: 'Macedonia',\r\n MG: 'Madagascar',\r\n MW: 'Malawi',\r\n MY: 'Malaysia',\r\n MV: 'Maldives',\r\n ML: 'Mali',\r\n MT: 'Malta',\r\n MH: 'Marshall Islands',\r\n MQ: 'Martinique',\r\n MR: 'Mauritania',\r\n MU: 'Mauritius',\r\n YT: 'Mayotte',\r\n MX: 'Mexico',\r\n FM: 'Micronesia',\r\n MD: 'Moldova',\r\n MC: 'Monaco',\r\n MN: 'Mongolia',\r\n ME: 'Montenegro',\r\n MS: 'Montserrat',\r\n MA: 'Morocco',\r\n MZ: 'Mozambique',\r\n MM: 'Myanmar',\r\n NA: 'Namibia',\r\n NR: 'Nauru',\r\n NP: 'Nepal',\r\n NL: 'Netherlands',\r\n AN: 'Netherlands Antilles',\r\n NC: 'New Caledonia',\r\n NZ: 'New Zealand',\r\n NI: 'Nicaragua',\r\n NE: 'Niger',\r\n NG: 'Nigeria',\r\n NU: 'Niue',\r\n NF: 'Norfolk Island',\r\n MP: 'Northern Mariana Islands',\r\n NO: 'Norway',\r\n OM: 'Oman',\r\n PK: 'Pakistan',\r\n PW: 'Palau',\r\n PS: 'Palestinian Territory',\r\n PA: 'Panama',\r\n PG: 'Papua New Guinea',\r\n PY: 'Paraguay',\r\n PE: 'Peru',\r\n PH: 'Philippines',\r\n PN: 'Pitcairn',\r\n PL: 'Poland',\r\n PT: 'Portugal',\r\n PR: 'Puerto Rico',\r\n QA: 'Qatar',\r\n RE: 'Réunion',\r\n RO: 'Romania',\r\n RU: 'Russian Federation',\r\n RW: 'Rwanda',\r\n BL: 'Saint-Barthélemy',\r\n SH: 'Saint Helena',\r\n KN: 'Saint Kitts and Nevis',\r\n LC: 'Saint Lucia',\r\n MF: 'Saint-Martin (French part)',\r\n PM: 'Saint Pierre and Miquelon',\r\n VC: 'Saint Vincent and Grenadines',\r\n WS: 'Samoa',\r\n SM: 'San Marino',\r\n ST: 'Sao Tome and Principe',\r\n SA: 'Saudi Arabia',\r\n SN: 'Senegal',\r\n RS: 'Serbia',\r\n SC: 'Seychelles',\r\n SL: 'Sierra Leone',\r\n SG: 'Singapore',\r\n SK: 'Slovakia',\r\n SI: 'Slovenia',\r\n SB: 'Solomon Islands',\r\n SO: 'Somalia',\r\n ZA: 'South Africa',\r\n GS: 'South Georgia and the South Sandwich Islands',\r\n SS: 'South Sudan',\r\n ES: 'Spain',\r\n LK: 'Sri Lanka',\r\n SD: 'Sudan',\r\n SR: 'Suriname',\r\n SJ: 'Svalbard and Jan Mayen Islands',\r\n SZ: 'Swaziland',\r\n SE: 'Sweden',\r\n CH: 'Switzerland',\r\n SY: 'Syria',\r\n TW: 'Taiwan',\r\n TJ: 'Tajikistan',\r\n TZ: 'Tanzania',\r\n TH: 'Thailand',\r\n TL: 'Timor-Leste',\r\n TG: 'Togo',\r\n TK: 'Tokelau',\r\n TO: 'Tonga',\r\n TT: 'Trinidad and Tobago',\r\n TN: 'Tunisia',\r\n TR: 'Turkey',\r\n TM: 'Turkmenistan',\r\n TC: 'Turks and Caicos Islands',\r\n TV: 'Tuvalu',\r\n UG: 'Uganda',\r\n UA: 'Ukraine',\r\n AE: 'United Arab Emirates',\r\n GB: 'United Kingdom (GB)',\r\n US: 'United States of America (USA)',\r\n UM: 'US Minor Outlying Islands',\r\n UY: 'Uruguay',\r\n UZ: 'Uzbekistan',\r\n VU: 'Vanuatu',\r\n VE: 'Venezuela',\r\n VN: 'Viet Nam',\r\n VI: 'Virgin Islands, US',\r\n WF: 'Wallis and Futuna Islands',\r\n EH: 'Western Sahara',\r\n YE: 'Yemen',\r\n ZM: 'Zambia',\r\n ZW: 'Zimbabwe'\r\n };\r\n\r\n getZones(): any[] {\r\n const res = [];\r\n for (let _i = 0, _a = Object.keys(this.zones); _i < _a.length; _i++) {\r\n const prop = _a[_i];\r\n res.push({\r\n iso: prop,\r\n zones: this.zones[prop]\r\n });\r\n }\r\n return res;\r\n }\r\n\r\n iso2country(iso: string): string {\r\n return this.countryList[iso] ? this.countryList[iso] : iso;\r\n };\r\n\r\n formatTimezoneString = (zone) => {\r\n const arr = zone.split('/');\r\n return arr[arr.length - 1].replace('_', ' ');\r\n };\r\n\r\n offsetOfTimezone = (zone) => {\r\n let offset = tz(zone).utcOffset();\r\n const neg = offset < 0;\r\n if (neg) {\r\n offset = -1 * offset;\r\n }\r\n const hours = Math.floor(offset / 60);\r\n const minutes = (offset / 60 - hours) * 60;\r\n return '(GMT' + (neg ? '-' : '+') + this.rjust(hours.toString(), 2) + ':' + this.rjust(minutes.toString(), 2) + ')';\r\n };\r\n\r\n rjust = (string, width, padding = '0') => {\r\n padding = padding || ' ';\r\n padding = padding.substr(0, 1);\r\n if (string.length < width) {\r\n return padding.repeat(width - string.length) + string;\r\n } else {\r\n return string;\r\n }\r\n };\r\n\r\n constructor(private cd: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.allTimezones = this.getZones();\r\n this.cd.markForCheck();\r\n }\r\n\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { TimezoneSelectorComponent } from './timezoneselector.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [ TimezoneSelectorComponent ],\r\n exports: [ TimezoneSelectorComponent ]\r\n})\r\nexport class TimezoneSelectorModule {}\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { WizardComponent } from './wizard';\r\n\r\n@Component({\r\n selector: 'fh-wizard-step',\r\n // tslint:disable-next-line:use-host-property-decorator\r\n host: {\r\n '[style.display]': 'isCurrent ? \"flex\" : \"none\"',\r\n },\r\n template: `\r\n \r\n \r\n `,\r\n})\r\nexport class WizardStepComponent implements OnInit {\r\n private isCurrent;\r\n private step;\r\n\r\n @Input() title = '';\r\n @Input() icon = 'fa-memory';\r\n @Input() disabled = false;\r\n @Input() validate = false;\r\n\r\n @Output() open = new EventEmitter();\r\n\r\n constructor(private parent: WizardComponent) {\r\n }\r\n\r\n ngOnInit() {\r\n this.step = this.parent.addStep(this.title, this.icon, this.disabled, this.validate);\r\n this.isCurrent = this.step === this.parent.step;\r\n\r\n if (this.isCurrent) {\r\n this.open.emit();\r\n }\r\n\r\n this.parent.stepChange.subscribe(step => {\r\n this.isCurrent = this.step === step;\r\n if (this.isCurrent) {\r\n this.open.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { WizardComponent } from '../../modules/wizard/wizard';\r\nimport { WizardStepComponent } from '../../modules/wizard/wizard-step';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n TranslateModule\r\n ],\r\n declarations: [\r\n WizardComponent,\r\n WizardStepComponent,\r\n ],\r\n exports: [\r\n WizardComponent,\r\n WizardStepComponent,\r\n TranslateModule\r\n ]\r\n})\r\nexport class WizardModule {\r\n\r\n}\r\n","import { Directive, Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fh-wizard',\r\n styleUrls: ['wizard.template.css'],\r\n templateUrl: 'wizard.template.html',\r\n})\r\nexport class WizardComponent {\r\n @Input() step = 1;\r\n @Output() finish = new EventEmitter();\r\n @Output() stepChange = new EventEmitter();\r\n public stepCount = 0;\r\n public steps = [];\r\n public progressWidth = 0 + '%';\r\n\r\n public isOnFinalStep = () => this.step === this.stepCount;\r\n public isOnFirstStep = () => this.step === 1;\r\n\r\n public addStep(title, icon, disabled, validate) {\r\n const newSteps = this.stepCount + 1;\r\n this.steps.push({ id: newSteps, title: title, icon: icon, disabled: disabled, validate: validate });\r\n this.stepCount = newSteps;\r\n return newSteps;\r\n }\r\n\r\n handleNext() {\r\n this.stepChange.emit(this.step + 1)\r\n }\r\n\r\n handlePrevious() {\r\n this.stepChange.emit(this.step - 1)\r\n }\r\n\r\n handleFinish() {\r\n this.finish.emit(this.step + 1)\r\n }\r\n\r\n checkDisabled() {\r\n const thestep = this.steps.filter(x => x.id === this.step)[0];\r\n\r\n const percentage = (this.step - 1) / (this.steps.length - 1);\r\n const addpercentage = 0 + (percentage * 100);\r\n this.progressWidth = addpercentage + '%';\r\n\r\n if (thestep.validate) {\r\n const validateForm = thestep.validate;\r\n if (validateForm !== undefined && !validateForm.valid) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{stepItem.title}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {{step}} / {{stepCount}}\r\n \r\n \r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { InventoryAccount, AccountType } from '../../models/account.model';\r\nimport { AppAccount, Account, AddressDetails } from '../../models/platform.model';\r\nimport { ResultModel } from '../../common/globals';\r\nimport { RegisterOperatingCompanyRequest } from '../../models/wasl.model';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class AccountService {\r\n\r\n url = '';\r\n urlInventory = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('Account');\r\n this.urlInventory = authenticationService.getInventoryURL('Account');\r\n }\r\n\r\n getAccounts(): Observable {\r\n this.url = this.authenticationService.getWebserviceURL('Account');\r\n this.urlInventory = this.authenticationService.getInventoryURL('Account');\r\n\r\n console.log('getting accounts from service');\r\n return this.http.get(this.url, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n createAccount(appAccount: AppAccount): Observable> {\r\n return this.http.post(this.urlInventory, appAccount, { headers: this.authenticationService.headers })\r\n .map((data) => ({\r\n completed: true,\r\n data: data\r\n })\r\n )\r\n .catch((error) => of({\r\n completed: false,\r\n data: error\r\n }));\r\n }\r\n\r\n deleteAccount(id: any): Observable {\r\n return this.http.delete(this.urlInventory + id, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountsWithUse(): Observable {\r\n console.log('getting accounts from service');\r\n return this.http.get(this.url + 'GetAccountsWithUse', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountsWithUseWasl(): Observable {\r\n console.log('getting accounts from service');\r\n this.url = this.authenticationService.getWebserviceURL('Account');\r\n this.urlInventory = this.authenticationService.getInventoryURL('Account');\r\n\r\n return this.http.get(this.urlInventory + 'Wasl', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountsWithUseHistory(): Observable {\r\n console.log('getting accounts from service');\r\n this.url = this.authenticationService.getWebserviceURL('Account');\r\n this.urlInventory = this.authenticationService.getInventoryURL('Account');\r\n\r\n return this.http.get(this.url + 'getAccountsWithUseHistory', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountTypes(): Observable {\r\n const urlExtra = 'AccountTypes';\r\n console.log('getting account types from service');\r\n return this.http.get(this.url + urlExtra, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return (data as AccountType[]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccount(): Observable {\r\n console.log('getting accounts from service');\r\n return this.http.get(this.url, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponseData(data[0]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountById(id: any): Observable {\r\n console.log('getting accounts by id from service');\r\n return this.http.get(this.url + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponseData(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n updateAccount(account: InventoryAccount): Observable {\r\n console.log('update account');\r\n\r\n account.identifier = +account.identifier;\r\n account.limitHistoryInDays = +account.limitHistoryInDays;\r\n\r\n return this.http.put(this.urlInventory + account.id, account, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): InventoryAccount[] {\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Accounts.');\r\n\r\n const accounts: InventoryAccount[] = [];\r\n\r\n json.forEach(item => {\r\n let account = new InventoryAccount();\r\n account = this.parseResponseData(item);\r\n accounts.push(account);\r\n });\r\n\r\n return accounts;\r\n }\r\n\r\n parseResponseData(item: any): InventoryAccount {\r\n const account = new InventoryAccount();\r\n account.id = item.id;\r\n account.name = item.name;\r\n account.status = item.status;\r\n account.isActive = item.isActive;\r\n\r\n account.date = item.date;\r\n account.issueCount = item.issueCount;\r\n account.jobCount = item.jobCount;\r\n\r\n account.userCount = item.userCount;\r\n account.platformCount = item.platformCount;\r\n account.deviceCount = item.deviceCount;\r\n\r\n account.createdDate = item.createdDate;\r\n account.identifier = item.identifier;\r\n account.limitHistoryInDays = item.limitHistoryInDays;\r\n\r\n\r\n account.assetCount = item.assetCount;\r\n account.driverCount = item.driverCount;\r\n\r\n account.waslAssetCount = item.waslAssetCount;\r\n account.waslDriverCount = item.waslDriverCount;\r\n\r\n account.waslSuccessCount = item.waslSuccessCount;\r\n account.waslFailedCount = item.waslFailedCount;\r\n\r\n account.address = new AddressDetails();\r\n\r\n account.properties.wasl = new RegisterOperatingCompanyRequest();\r\n\r\n if (item.properties) {\r\n\r\n if (item.properties.wasl) {\r\n const wasl = new RegisterOperatingCompanyRequest();\r\n wasl.commercialRecordIssueDateHijri = item.properties.wasl.commercialRecordIssueDateHijri;\r\n wasl.commercialRecordNumber = item.properties.wasl.commercialRecordNumber;\r\n wasl.dateOfBirthGregorian = item.properties.wasl.dateOfBirthGregorian;\r\n wasl.emailAddress = item.properties.wasl.emailAddress;\r\n wasl.extensionNumber = item.properties.wasl.extensionNumber;\r\n wasl.identityNumber = item.properties.wasl.identityNumber;\r\n wasl.managerMobileNumber = item.properties.wasl.managerMobileNumber;\r\n wasl.managerName = item.properties.wasl.managerName;\r\n wasl.managerPhoneNumber = item.properties.wasl.managerPhoneNumber;\r\n wasl.phoneNumber = item.properties.wasl.phoneNumber;\r\n wasl.referenceKey = item.properties.wasl.referenceKey;\r\n account.properties.wasl = wasl;\r\n }\r\n }\r\n\r\n return account\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Asset, SlimWaslAsset, AssetDevice } from '../../models/asset.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AssetDriver } from '../../models/driver.model';\r\nimport { fixDate } from '../common/functions.service';\r\n\r\n@Injectable()\r\nexport class AssetService {\r\n Assets: Asset[] = [];\r\n url = '';\r\n inventory_url = '';\r\n inventory_url_base = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = this.authenticationService.getWebserviceURL('asset');\r\n this.inventory_url = this.authenticationService.getInventoryURL('asset');\r\n this.inventory_url_base = this.authenticationService.getInventoryURL('');\r\n }\r\n\r\n getPagingUrl() {\r\n return this.url + 'PagedAssets';\r\n }\r\n\r\n getTruckPagingUrl() {\r\n return this.url + 'PagedAssets?assetClass=1';\r\n }\r\n\r\n getTrailersPagingUrl() {\r\n return this.url + 'PagedAssets?assetClass=2';\r\n }\r\n\r\n getAssets(): Observable {\r\n console.log('getting assets from service');\r\n return this.http.get(this.url, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetsByCustomerId(id: string): Observable {\r\n console.log('getting assets from service');\r\n return this.http.get(this.url + 'Customer/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetsByAssetTypeId(id: string): Observable {\r\n console.log('getting assets from service');\r\n return this.http.get(this.url + 'AssetType/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetsByParentId(id: string, assetClass: number): Observable {\r\n console.log('getting assets from service');\r\n return this.http.get(this.url + 'Parent/' + id + '?assetClass=' + assetClass, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetsByChildId(id: string, assetClass: number): Observable {\r\n console.log('getting assets from service');\r\n return this.http.get(this.url + 'Child/' + id + '?assetClass=' + assetClass, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n getAssetsByDriverId(id: string): Observable {\r\n console.log('getting assets from service');\r\n return this.http.get(this.url + 'Driver/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetById(id: string): Observable {\r\n console.log('Fetch asset by id ' + id);\r\n return this.http.get(this.url + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseReponseDetails(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveAsset(asset: Asset): Observable {\r\n console.log('save asset');\r\n\r\n if (asset.assetTypeId === -1) {\r\n asset.assetTypeId = null;\r\n asset.createNewAssetType = true;\r\n }\r\n\r\n return this.http.post(this.inventory_url, asset, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n resetAssetCache(): Observable {\r\n return this.http.get(this.url + 'ResetCache', { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n updateAsset(asset: Asset): Observable {\r\n console.log('save asset');\r\n return this.http.put(this.inventory_url, asset, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetByDeviceId(id: string): Observable {\r\n console.log('Fetch asset by id ' + id);\r\n return this.http.get(this.url + 'Device/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseReponseDetails(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getWaslAssetStatus(): Observable {\r\n console.log('Fetch assets for wasl status');\r\n return this.http.get(this.inventory_url_base + 'Assets/Wasl', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return (data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return Observable.throw(error);\r\n }\r\n\r\n linkAsset(parentAssetId, childAssetId, startDate, endDate): Observable {\r\n console.log('link asset');\r\n\r\n const body = {\r\n 'parentAssetId': parentAssetId,\r\n 'childAssetId': childAssetId,\r\n 'assetLinkType': 1 // Manual\r\n }\r\n\r\n return this.http.post(this.inventory_url_base + 'AssetLink', body, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unLinkAsset(assetLinkId: string): Observable {\r\n console.log('unlink asset');\r\n return this.http.delete(this.inventory_url_base + 'AssetLink/' + assetLinkId, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n linkDriver(assetId, driverId, startDate, endDate): Observable {\r\n console.log('link assetDriver', startDate, endDate);\r\n\r\n startDate = Math.round(startDate / 1000);\r\n if (endDate) {\r\n endDate = Math.round(endDate / 1000);\r\n }\r\n\r\n const body = {\r\n 'AssetId': assetId,\r\n 'DriverId': driverId,\r\n 'startDate': startDate,\r\n 'endDate': endDate,\r\n 'type': 1\r\n }\r\n\r\n return this.http.post(this.inventory_url_base + 'AssetDriver', body, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unLinkDriver(assetDriverId: string, permanent = false): Observable {\r\n console.log('unlink assetDriver');\r\n return this.http.delete(this.inventory_url_base + 'AssetDriver/' + assetDriverId + '/' + permanent, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getAssetDevicesById(id: string): Observable {\r\n console.log('Fetch asset by id ' + id);\r\n return this.http.get(this.inventory_url_base + 'AssetDevice/Asset/' + id, { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n\r\n const assetDevices: AssetDevice[] = [];\r\n\r\n data.forEach(item => {\r\n const assetDevice = new AssetDevice();\r\n assetDevice.assetId = item.assetId;\r\n assetDevice.deviceId = item.deviceId;\r\n assetDevice.startDate = item.startDate;\r\n assetDevice.endDate = item.endDate;\r\n assetDevice.deviceId = item.deviceId;\r\n if (item.device != null) {\r\n assetDevice.deviceName = item.device.name;\r\n }\r\n\r\n assetDevice.isActive = (assetDevice.endDate == null || new Date(assetDevice.endDate) > new Date());\r\n\r\n assetDevices.push(assetDevice);\r\n });\r\n\r\n return assetDevices;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n linkDevice(assetId, deviceId, startDate, endDate): Observable {\r\n console.log('link assetDevice', startDate, endDate);\r\n\r\n const body = {\r\n 'deviceId': deviceId,\r\n 'assetId': assetId,\r\n 'startDate': startDate,\r\n 'endDate': endDate\r\n }\r\n\r\n return this.http.post(this.inventory_url_base + 'AssetDevice', body, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unLinkDevice(assetId: string): Observable {\r\n console.log('unlink assetId');\r\n return this.http.delete(this.inventory_url_base + 'AssetDevice/Asset/' + assetId, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unLinkDeviceOnAssetLink(assetLinkId: string): Observable {\r\n console.log('unlink assetLinkId');\r\n return this.http.delete(this.inventory_url_base + 'AssetDevice/' + assetLinkId, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getAssetMessagesById(id: string, start, end): Observable {\r\n console.log('Fetch asset by id ' + id);\r\n return this.http.get(this.url + id + '/Messages?start=' + start + '&end=' + end, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): Asset[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Assets.');\r\n\r\n const ident = 1;\r\n const assets: Asset[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const asset = this.parseReponseDetails(item);\r\n assets.push(asset);\r\n });\r\n\r\n return assets;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n\r\n if (item === null) {\r\n return null;\r\n }\r\n\r\n const asset = new Asset();\r\n asset.id = item.id;\r\n asset.deviceId = item.deviceId;\r\n asset.unitId = item.unitId;\r\n asset.name = item.name;\r\n asset.year = item.year;\r\n asset.vehicleType = item.vehicleType;\r\n asset.vin = item.vin;\r\n asset.referenceId = item.referenceId;\r\n asset.plateNumber = item.plateNumber;\r\n asset.color = item.color;\r\n asset.code = item.code;\r\n asset.brand = item.brand;\r\n asset.model = item.model;\r\n\r\n asset.assetClass = item.assetClass;\r\n asset.assetTypeId = item.assetTypeId;\r\n asset.assetTypeName = item.assetTypeName;\r\n\r\n asset.identificationTag = item.identificationTag;\r\n\r\n asset.humiditySensorPosition = item.humiditySensorPosition;\r\n asset.humiditySensorTypeId = item.humiditySensorTypeId;\r\n asset.temperatureSensorPosition = item.temperatureSensorPosition;\r\n asset.temperatureSensorTypeId = item.temperatureSensorTypeId;\r\n asset.weightSensorPosition = item.weightSensorPosition;\r\n asset.weightSensorTypeId = item.weightSensorTypeId;\r\n\r\n asset.assetLinkId = item.assetLinkId;\r\n\r\n if (item.assetDriverDto != null) {\r\n const assetDriver = item.assetDriverDto;\r\n asset.assetDriver = new AssetDriver();\r\n asset.assetDriver.startDate = assetDriver.startDate;\r\n asset.assetDriver.endDate = assetDriver.endDate;\r\n asset.assetDriver.type = assetDriver.type;\r\n }\r\n\r\n if (item.assetLinkStartDate != null) {\r\n asset.assetLinkStartDate = item.assetLinkStartDate;\r\n asset.assetLinkType = item.assetLinkType;\r\n }\r\n\r\n if (item.assetLinkEndDate != null) {\r\n asset.assetLinkEndDate = item.assetLinkEndDate;\r\n }\r\n\r\n asset.isActive = (asset.assetLinkEndDate == null || new Date(asset.assetLinkEndDate) > new Date());\r\n\r\n if (item.properties) {\r\n if (item.properties.wasl) {\r\n const wasl = new SlimWaslAsset();\r\n wasl.referenceKey = item.properties.wasl.referenceKey;\r\n wasl.plateType = item.properties.wasl.plateType;\r\n wasl.sequenceNumber = item.properties.wasl.sequenceNumber;\r\n\r\n wasl.vehiclePlateNumber = item.properties.wasl.vehiclePlateNumber;\r\n wasl.vehiclePlateLeftLetter = item.properties.wasl.vehiclePlateLeftLetter;\r\n wasl.vehiclePlateMiddleLetter = item.properties.wasl.vehiclePlateMiddleLetter;\r\n wasl.vehiclePlateRightLetter = item.properties.wasl.vehiclePlateRightLetter;\r\n\r\n asset.properties.wasl = wasl;\r\n }\r\n }\r\n\r\n return asset;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Asset } from '../../models/asset.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\n\r\n@Injectable()\r\nexport class AssetTypeService {\r\n\r\n token: string;\r\n timestamp;\r\n url = '';\r\n Assets: Asset[] = [];\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = this.authenticationService.getInventoryURL('assetType');\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n getPagingUrl(assetClass?: number) {\r\n return this.url + 'PagedAssetTypes' + (assetClass ? `?assetClass=${assetClass}` : '');\r\n }\r\n\r\n getAssetTypes(assetClass?: number): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting assetTypes from service');\r\n return this.http.get(this.url + (assetClass ? `?assetClass=${assetClass}` : ''), { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAssetTypeById(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch AssetType by id ' + id);\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseReponseDetails(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n resetAssetTypesCache(): Observable {\r\n return this.http.get(this.url + 'ResetCache', { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveAssetType(assetType: AssetType): Observable {\r\n console.log('save assetType');\r\n return this.http.post(this.url, assetType, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n updateAssetType(assetType: AssetType): Observable {\r\n console.log('save assetType');\r\n return this.http.put(this.url, assetType, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): AssetType[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' AssetTypes.');\r\n\r\n const ident = 1;\r\n const assets: AssetType[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const asset = this.parseReponseDetails(item);\r\n assets.push(asset);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return assets;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const asset = new AssetType();\r\n asset.id = item.id;\r\n asset.name = item.name;\r\n asset.year = item.year;\r\n asset.referenceId = item.referenceId;\r\n asset.brand = item.brand;\r\n asset.model = item.model;\r\n asset.serie = item.serie;\r\n asset.trim = item.trim;\r\n asset.category = item.category;\r\n asset.isEditable = item.isEditable;\r\n if (item.properties) {\r\n asset.properties = JSON.parse(item.properties);\r\n }\r\n asset.assetClass = item.assetClass;\r\n asset.assetCount = item.assetCount;\r\n\r\n return asset;\r\n }\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return Observable.throw(error);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\n\r\nimport { AuditLog } from '../../models/auditlog.model';\r\nimport { Issue } from '../../models/issue.model';\r\nimport { Device } from '../../models/device.model';\r\nimport { UserService } from '../users/user.service';\r\nimport { AppUser } from '../../models/user.model';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class AuditLogService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n users: AppUser[] = [];\r\n timezoneIana: string;\r\n urlInventory: string;\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService, private userService: UserService) {\r\n this.url = authenticationService.getWebserviceURL('');\r\n this.urlInventory = authenticationService.getInventoryURL('');\r\n\r\n this.token = authenticationService.getAuthToken();\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n\r\n this.userService.getUsers().subscribe(users => {\r\n this.users = users;\r\n });\r\n }\r\n\r\n getAuditLogByDevice(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.urlInventory + 'device/' + id + '/auditlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAuditLogByDriver(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.urlInventory + 'driver/' + id + '/auditlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAuditLogByAccount(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.urlInventory + 'account/' + id + '/auditlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAuditLogByAsset(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.urlInventory + 'asset/' + id + '/auditlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAuditLogByAssetType(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.urlInventory + 'assetType/' + id + '/auditlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAuditLogByUser(id: string): Observable {\r\n const auditlogs: AuditLog[] = [];\r\n return of(auditlogs);\r\n }\r\n\r\n\r\n getAuditLogByIssue(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.url + 'issue/' + id + '/auditlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): AuditLog[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Logitems.');\r\n\r\n const ident = 1;\r\n const auditlogs: AuditLog[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const log = new AuditLog();\r\n log.id = item.id;\r\n log.timestamp = moment.utc(item.createdDate)['tz'](this.timezoneIana);\r\n log.description = item.description;\r\n log.delta = item.delta;\r\n if (item.delta) {\r\n log.deltaItems = JSON.parse(item.delta);\r\n }\r\n log.logtype = item.logType;\r\n\r\n if (item.user != null) {\r\n log.user = item.user.userName;\r\n } else {\r\n if (item.name != null) {\r\n log.user = item.name\r\n } else {\r\n log.user = 'System';\r\n }\r\n }\r\n\r\n if (item.device) {\r\n const device = new Device();\r\n device.name = item.device.name;\r\n device.id = item.device.id;\r\n log.device = device;\r\n }\r\n\r\n if (item.issue) {\r\n const issue = new Issue();\r\n issue.issueType = item.issue.issueType;\r\n issue.id = item.issue.id;\r\n issue.date = moment.utc(item.issue.timestamp)['tz'](this.timezoneIana).toDate();\r\n log.issue = issue;\r\n }\r\n auditlogs.push(log);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return auditlogs;\r\n }\r\n}\r\n","import { Injectable, OnInit } from '@angular/core';\r\nimport { Headers, RequestOptions } from '@angular/http';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { of } from 'rxjs/observable/of';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\nimport { Location } from '@angular/common';\r\nimport * as jwt_decode from 'jwt-decode';\r\n\r\nimport { Crypto } from '../../common/crypto';\r\nimport { AuthenticateRequest } from '../../models/authenticaterequest.model';\r\nimport { AuthenticateResult } from '../../models/authenticateresult.model';\r\nimport { Config } from '../../models/config.model';\r\nimport { environment } from 'app/../environments/environment';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { PermissionsBitmask } from '../../common/enums';\r\nimport { UserManager, UserManagerSettings } from 'oidc-client';\r\nimport { EventService } from '../events/events.service';\r\nimport { arrayFromMask } from '../common/functions.service';\r\n\r\n@Injectable()\r\nexport class AuthenticationService implements OnInit {\r\n\r\n // Constants for our preferences.\r\n public static get TOKEN(): string { return 'token'; }\r\n public static get TOKEN_EXPIRED(): string { return 'token_expired'; }\r\n\r\n public static get TOKEN_IMPERSONATE(): string { return 'token_impersonate'; }\r\n public static get TOKEN_IMPERSONATE_EXPIRED(): string { return 'token_impersonate_expired'; }\r\n\r\n public static get CLUSTER_URL(): string { return 'cluster_url'; }\r\n public static get INVENTORY_URL(): string { return 'inventory_url'; }\r\n public static get FLEETOVERVIEW_URL(): string { return 'fleetoverview_url'; }\r\n\r\n public static get USERID(): string { return 'userid'; }\r\n public static get USERID_IMPERSONATE(): string { return 'userid_impersonate'; }\r\n public static get PERMISSIONS(): string { return 'permissions'; }\r\n public static get PERMISSIONS_IMPERSONATE(): string { return 'permissions_impersonate'; }\r\n\r\n\r\n public static get ID(): string { return 'id'; }\r\n public static get ID_IMPERSONATE(): string { return 'id_impersonate'; }\r\n\r\n public static get ACCOUNTID(): string { return 'accountid'; }\r\n public static get ACCOUNTID_IMPERSONATE(): string { return 'accountid_impersonate'; }\r\n\r\n public static get TIMEZONE(): string { return 'timezone'; }\r\n public static get TIMEZONEIANA(): string { return 'timezoneiana'; }\r\n public static get TIMEZONEIANA_IMPERSONATE(): string { return 'timezoneiana_impersonate'; }\r\n public static get CULTURE(): string { return 'culture'; }\r\n public static get LIMITDISTORYINDAYS(): string { return 'limithistoryindays'; }\r\n public static get WHITELABEL(): string { return 'whitelabel'; }\r\n public static get WHITELABEL_IMPERSONATE(): string { return 'whitelabel_impersonate'; }\r\n public static get LANGUAGE(): string { return 'language'; }\r\n public static get MAPPROVIDER(): string { return 'mapprovider'; }\r\n public static get DISTANCEUNIT(): string { return 'distanceunit'; }\r\n public static get VOLUMEUNIT(): string { return 'volumeunit'; }\r\n public static get ISIMPERSONATINGUSER(): string { return 'isimpersonatinguser'; }\r\n public static get SSOPROVIDER(): string { return 'ssoprovider'; }\r\n public static get SSOPROVIDERTOKEN(): string { return 'ssoprovidertoken'; }\r\n\r\n public permissions = {};\r\n public permissionsFetched = false;\r\n public config: Config;\r\n\r\n public isLoggedInWithSSO = false;\r\n private manager: UserManager = new UserManager(AuthenticationService.getSSOSettings())\r\n\r\n public static getStaticToken(): string {\r\n return localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE) ? localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE) : localStorage.getItem(AuthenticationService.TOKEN);\r\n }\r\n public static getStaticClusterUrl(): string { return localStorage.getItem(AuthenticationService.CLUSTER_URL); }\r\n public static getStaticInventoryUrl(): string { return localStorage.getItem(AuthenticationService.INVENTORY_URL); }\r\n public static getStaticFleetOverviewUrl(): string { return localStorage.getItem(AuthenticationService.FLEETOVERVIEW_URL); }\r\n public static getSSOSettings(): UserManagerSettings {\r\n return {\r\n authority: environment.SSOAuthenticationUrl,\r\n client_id: 'Fleethealth',\r\n redirect_uri: environment.SSORedirectUrl,\r\n response_type: 'id_token token',\r\n scope: 'openid profile Roles',\r\n post_logout_redirect_uri: environment.SSOPostLogoutRedirectUrl,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true\r\n };\r\n }\r\n\r\n constructor(private http: HttpClient, private router: Router, private location: Location, private cookieService: CookieService, private eventService: EventService) {\r\n }\r\n\r\n setPermissions(setting, permisisonsBit) {\r\n let permissions = [];\r\n this.permissions = {};\r\n permissions = arrayFromMask(permisisonsBit, permissions).filter(x => x.isEnabled === true);\r\n\r\n permissions.forEach(permission => {\r\n this.permissions[permission.name] = true;\r\n });\r\n\r\n const permissionJson = JSON.stringify(this.permissions);\r\n\r\n if (permissionJson.length > 0) {\r\n localStorage.setItem(setting, btoa(permissionJson));\r\n }\r\n }\r\n\r\n getPermissions() {\r\n // Try to decode\r\n const permissions = localStorage.getItem(AuthenticationService.PERMISSIONS_IMPERSONATE) ? localStorage.getItem(AuthenticationService.PERMISSIONS_IMPERSONATE) : localStorage.getItem(AuthenticationService.PERMISSIONS);\r\n try {\r\n const permissionJson = JSON.parse(atob(permissions));\r\n if (this.permissions) {\r\n this.permissions = permissionJson;\r\n\r\n if (this.permissions['IsAdministrator']) {\r\n this.permissions['HasSensorTypes'] = true;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n // The cookie we retrieve our ssoToken from.\r\n public getSsoCookie(enviroment: string): string {\r\n\r\n let returnVar = 'authGpscockpit';\r\n if (enviroment.indexOf('clust01') !== -1) {\r\n returnVar = 'authGpscockpit';\r\n }\r\n if (enviroment.indexOf('clust02') !== -1) {\r\n returnVar = 'authGpscockpitCLUST02';\r\n }\r\n if (enviroment.indexOf('staging') !== -1) {\r\n returnVar = 'authGpscockpit';\r\n }\r\n if (enviroment.indexOf('local') !== -1) {\r\n returnVar = 'authGpscockpit';\r\n }\r\n return returnVar;\r\n }\r\n\r\n // The cookie we retrieve our ssoToken from.\r\n public getSessionCookie(enviroment: string): string {\r\n const returnVar = 'sessionToken';\r\n return returnVar;\r\n }\r\n\r\n // TODO: will be deprecated, just to make code compile for now\r\n public getAuthToken(): string {\r\n const request = localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE) ? localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE) : localStorage.getItem(AuthenticationService.TOKEN);\r\n return (request === 'null') ? '' : request;\r\n };\r\n\r\n public get headers(): HttpHeaders {\r\n const token = this.getAuthToken();\r\n return new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + token });\r\n }\r\n\r\n public getAuthTokenExpired(): string {\r\n const request = localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE_EXPIRED) ? localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE_EXPIRED) : localStorage.getItem(AuthenticationService.TOKEN_EXPIRED);\r\n return (request === 'null') ? '' : request;\r\n };\r\n\r\n public getIsImpersonated(): boolean {\r\n return localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE) && localStorage.getItem(AuthenticationService.TOKEN_IMPERSONATE) !== '' ? true : false;\r\n }\r\n\r\n public setImpersonationToken(user, result) {\r\n console.log(result.user);\r\n\r\n localStorage.setItem(AuthenticationService.ID_IMPERSONATE, user.name);\r\n localStorage.setItem(AuthenticationService.USERID_IMPERSONATE, user.id);\r\n localStorage.setItem(AuthenticationService.ACCOUNTID_IMPERSONATE, user.accountId);\r\n this.setPermissions(AuthenticationService.PERMISSIONS_IMPERSONATE, result.user.permissions);\r\n localStorage.setItem(AuthenticationService.TIMEZONEIANA_IMPERSONATE, result.user.timezoneIana);\r\n localStorage.setItem(AuthenticationService.WHITELABEL_IMPERSONATE, result.user.whitelabel);\r\n localStorage.setItem(AuthenticationService.TOKEN_IMPERSONATE, result.token);\r\n\r\n this.router.navigate(['/']).then(() => {\r\n location.reload();\r\n });\r\n }\r\n\r\n public stopImpersonation(reloadPage = true) {\r\n localStorage.setItem(AuthenticationService.TIMEZONEIANA_IMPERSONATE, '');\r\n localStorage.setItem(AuthenticationService.USERID_IMPERSONATE, '');\r\n localStorage.setItem(AuthenticationService.ACCOUNTID_IMPERSONATE, '');\r\n localStorage.setItem(AuthenticationService.ID_IMPERSONATE, '');\r\n localStorage.setItem(AuthenticationService.PERMISSIONS_IMPERSONATE, '');\r\n localStorage.setItem(AuthenticationService.WHITELABEL_IMPERSONATE, '');\r\n localStorage.setItem(AuthenticationService.TOKEN_IMPERSONATE, '');\r\n\r\n if (reloadPage) {\r\n location.reload();\r\n }\r\n }\r\n\r\n public getUserId(): string { return localStorage.getItem(AuthenticationService.USERID_IMPERSONATE) ? localStorage.getItem(AuthenticationService.USERID_IMPERSONATE) : localStorage.getItem(AuthenticationService.USERID); }\r\n\r\n public getLanguage(): string { return localStorage.getItem(AuthenticationService.LANGUAGE); }\r\n public setLanguage(langTag) { localStorage.setItem(AuthenticationService.LANGUAGE, langTag); }\r\n\r\n public getDistanceUnit(): string { return localStorage.getItem(AuthenticationService.DISTANCEUNIT); }\r\n\r\n public getVolumeUnit(): string { return localStorage.getItem(AuthenticationService.VOLUMEUNIT); }\r\n\r\n public getWhitelabel(): string { return localStorage.getItem(AuthenticationService.WHITELABEL_IMPERSONATE) ? localStorage.getItem(AuthenticationService.WHITELABEL_IMPERSONATE) : localStorage.getItem(AuthenticationService.WHITELABEL); }\r\n\r\n public getCulture(lang: string): string {\r\n const serverCulture = this.getServerCulture();\r\n\r\n // Try to guess the culture from the language\r\n switch (lang) {\r\n case 'nl':\r\n return 'nl-NL';\r\n case 'fr':\r\n return 'fr-FR';\r\n case 'ar':\r\n if (serverCulture && serverCulture.startsWith('ar')) {\r\n return serverCulture;\r\n }\r\n return 'ar-EG';\r\n case 'en':\r\n if (serverCulture && serverCulture.startsWith('en')) {\r\n return serverCulture;\r\n }\r\n return 'en-US';\r\n case 'de':\r\n return 'de-DE';\r\n default:\r\n console.warn('Could not translate language to culture. Falling back to server culture');\r\n return serverCulture;\r\n }\r\n }\r\n\r\n public getServerCulture(): string {\r\n return localStorage.getItem(AuthenticationService.CULTURE);\r\n }\r\n\r\n public getTimeZone(): string { return localStorage.getItem(AuthenticationService.TIMEZONE); }\r\n\r\n public getTimeZoneIana(): string {\r\n return localStorage.getItem(AuthenticationService.TIMEZONEIANA_IMPERSONATE)\r\n ? localStorage.getItem(AuthenticationService.TIMEZONEIANA_IMPERSONATE)\r\n : localStorage.getItem(AuthenticationService.TIMEZONEIANA);\r\n }\r\n\r\n public getId(): string {\r\n return localStorage.getItem(AuthenticationService.ID_IMPERSONATE) &&\r\n localStorage.getItem(AuthenticationService.ID_IMPERSONATE) !== '' ?\r\n localStorage.getItem(AuthenticationService.ID_IMPERSONATE) :\r\n localStorage.getItem(AuthenticationService.ID);\r\n }\r\n\r\n public getAccountId(): string {\r\n return localStorage.getItem(AuthenticationService.ACCOUNTID_IMPERSONATE) &&\r\n localStorage.getItem(AuthenticationService.ACCOUNTID_IMPERSONATE) !== '' ?\r\n localStorage.getItem(AuthenticationService.ACCOUNTID_IMPERSONATE) :\r\n localStorage.getItem(AuthenticationService.ACCOUNTID);\r\n }\r\n\r\n public getWebserviceURL(resource: string): string {\r\n // Checks if the url is set, if not then get new one. Else return the url.\r\n const baseUrl = localStorage.getItem(AuthenticationService.CLUSTER_URL);\r\n return (baseUrl === 'null') ? null : baseUrl + ((resource === '') ? '' : resource + '/');\r\n };\r\n\r\n public getFleetOverviewUrl(resource: string): string {\r\n // Checks if the url is set, if not then get new one. Else return the url.\r\n const baseUrl = localStorage.getItem(AuthenticationService.FLEETOVERVIEW_URL);\r\n return (baseUrl === 'null') ? null : baseUrl + ((resource === '') ? '' : resource + '/');\r\n };\r\n\r\n public getInventoryURL(resource: string): string {\r\n // Checks if the url is set, if not then get new one. Else return the url.\r\n const baseUrl = localStorage.getItem(AuthenticationService.INVENTORY_URL);\r\n return (baseUrl === 'null') ? null : baseUrl + ((resource === '') ? '' : resource + '/');\r\n };\r\n\r\n public getLimitHistoryInDays(): string { return localStorage.getItem(AuthenticationService.LIMITDISTORYINDAYS); }\r\n\r\n public IsAuthenticated(_path: string): Observable {\r\n const config = this.getConfig();\r\n\r\n this.clearLocalStorage().then();\r\n\r\n if (this.isImpersonatingUser() || !this.isTokenValid()) {\r\n\r\n if (this.config.Debug) { console.log('Token expired... '); }\r\n // get ssotoken cookie\r\n const ssoToken = this.cookieService.get(this.getSessionCookie(config.Environment));\r\n if (ssoToken != null && ssoToken !== 'null' && ssoToken !== '') {\r\n if (this.config.Debug) { console.log('Trying to login with ssoToken... ' + ssoToken); }\r\n return this.performLoginWithSsoToken(ssoToken, config)\r\n .map((result) => {\r\n\r\n if (result === true) {\r\n console.log('Is still logged in');\r\n\r\n }\r\n\r\n if (this.config.Debug) { console.log('Could not login with ssoToken!'); }\r\n this.router.navigate(['/Login'], { queryParams: { redirect: _path } });\r\n return false;\r\n }).catch((error) => {\r\n if (this.config.Debug) { console.log('Could not login with ssoToken!'); }\r\n this.router.navigate(['/Login'], { queryParams: { redirect: _path } });\r\n return of(false);\r\n });\r\n } else {\r\n this.router.navigate(['/Login'], { queryParams: { redirect: _path } });\r\n return of(false);\r\n }\r\n\r\n } else {\r\n if (this.config.Debug) { console.log('Token not expired yet.'); }\r\n console.log('get permissions');\r\n this.getPermissions();\r\n }\r\n\r\n if (this.config.Debug) { console.log('AuthenticationService: Done with IsAuthenticated.'); }\r\n return of(true);\r\n }\r\n\r\n performLoginWithSsoToken(token: string, config: Config): Observable {\r\n\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + token });\r\n\r\n return this.http.get(config.AuthenticationUrl + 'Authentication/FromToken', { headers: headers })\r\n .map(res => {\r\n return res;\r\n });\r\n }\r\n\r\n performReset(userName: string) {\r\n\r\n if (!this.config || !this.config.Debug) { console.log('AuthenticateService: Performing reset for user: ' + userName); }\r\n\r\n const config = this.getConfig()\r\n\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' });\r\n const request = new AuthenticateRequest(userName, '', '');\r\n\r\n const body = JSON.stringify(request);\r\n\r\n return this.http.post(config.AuthenticationUrl + 'User/resetByUsername', body, { headers: headers });\r\n }\r\n\r\n performLogin(userName: string, password: string): Observable {\r\n\r\n if (!this.config || !this.config.Debug) { console.log('AuthenticateService: Performing login for user: ' + userName); }\r\n\r\n const config = this.getConfig()\r\n\r\n const request = new AuthenticateRequest(userName,\r\n password, null);\r\n\r\n const body = JSON.stringify(request);\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' });\r\n\r\n return this.http.post(config.AuthenticationUrl + 'Authentication', body, { headers: headers })\r\n .map(res => {\r\n console.log(res);\r\n const result = (res as AuthenticateResult);\r\n result.environment = config.Environment;\r\n result.clusterUrl = config.AuthenticationUrl;\r\n return this.saveToken(result);\r\n });\r\n }\r\n\r\n performLoginWithSSO(userName: string, provider: string, token: string): Observable {\r\n if (!this.config || !this.config.Debug) { console.log('AuthenticateService: Performing SSO login for user: ' + userName); }\r\n\r\n localStorage.setItem(AuthenticationService.ID, userName);\r\n localStorage.setItem(AuthenticationService.SSOPROVIDER, provider);\r\n localStorage.setItem(AuthenticationService.SSOPROVIDERTOKEN, token);\r\n\r\n const config = this.getConfig()\r\n\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' });\r\n const body = JSON.stringify(userName);\r\n\r\n return this.http.post(config.AuthenticationUrl + 'Authentication/SSOAuthentication', body, { headers: headers })\r\n .map(res => {\r\n console.log(res);\r\n const result = (res as AuthenticateResult);\r\n result.environment = config.Environment;\r\n result.clusterUrl = config.AuthenticationUrl;\r\n return this.saveToken(result);\r\n });\r\n\r\n }\r\n\r\n private getConfig(): Config {\r\n console.log('getConfig: Retrieving configuration...');\r\n const config = this.config = this.environmentToConfig();\r\n if (!this.config.Debug) {\r\n console.log('getConfig: Retrieved configuration, enviroment: ' + config.Environment);\r\n }\r\n return config;\r\n }\r\n\r\n // XXX: replace Config with environment completely\r\n private environmentToConfig(): Config {\r\n const cfg = new Config();\r\n\r\n cfg.version = environment.version;\r\n cfg.AuthenticationUrl = environment.AuthenticationUrl;\r\n cfg.InventoryUrl = environment.InventoryUrl;\r\n cfg.FleetOverviewUrl = environment.FleetOverviewUrl;\r\n cfg.ConsumerToken = environment.ConsumerToken;\r\n cfg.Debug = environment.Debug;\r\n cfg.Environment = environment.Environment;\r\n cfg.SSOAuthenticationUrl = environment.SSOAuthenticationUrl;\r\n cfg.SSOPostLogoutRedirectUrl = environment.SSOPostLogoutRedirectUrl;\r\n cfg.SSORedirectUrl = environment.SSORedirectUrl;\r\n\r\n return cfg;\r\n }\r\n\r\n\r\n saveToken(authenticateResult: AuthenticateResult): AuthenticateResult {\r\n if (authenticateResult) {\r\n this.config = this.getConfig()\r\n if (authenticateResult.token && authenticateResult.clusterUrl) {\r\n\r\n this.stopImpersonation(false);\r\n\r\n if (this.config.Debug) {\r\n console.log('saving login token: ' + authenticateResult.token + ' expires: ' + authenticateResult.tokenExpires.toString() + ' url: ' + authenticateResult.clusterUrl);\r\n }\r\n\r\n console.log(authenticateResult.user);\r\n\r\n // this.eventService.setWhitelabel('360');\r\n localStorage.setItem(AuthenticationService.WHITELABEL, authenticateResult.user.whitelabel);\r\n\r\n localStorage.setItem(AuthenticationService.TOKEN, authenticateResult.token);\r\n localStorage.setItem(AuthenticationService.TOKEN_EXPIRED, authenticateResult.tokenExpires.toString());\r\n localStorage.setItem(AuthenticationService.CLUSTER_URL, authenticateResult.clusterUrl);\r\n localStorage.setItem(AuthenticationService.INVENTORY_URL, this.config.InventoryUrl);\r\n localStorage.setItem(AuthenticationService.FLEETOVERVIEW_URL, this.config.FleetOverviewUrl);\r\n localStorage.setItem(AuthenticationService.USERID, authenticateResult.user.id);\r\n localStorage.setItem(AuthenticationService.LANGUAGE, authenticateResult.user.language);\r\n\r\n localStorage.setItem(AuthenticationService.ID, authenticateResult.user.userName);\r\n localStorage.setItem(AuthenticationService.ACCOUNTID, authenticateResult.user.accountId);\r\n localStorage.setItem(AuthenticationService.CULTURE, authenticateResult.user.culture);\r\n\r\n localStorage.setItem(AuthenticationService.TIMEZONE, authenticateResult.user.timeZone);\r\n localStorage.setItem(AuthenticationService.TIMEZONEIANA, authenticateResult.user.timezoneIana);\r\n\r\n localStorage.setItem(AuthenticationService.LIMITDISTORYINDAYS, authenticateResult.user.limitHistoryInDays);\r\n\r\n this.setPermissions(AuthenticationService.PERMISSIONS, authenticateResult.user.permissions);\r\n\r\n this.cookieService.set(this.getSessionCookie(this.config.Environment), authenticateResult.token);\r\n\r\n return authenticateResult;\r\n } else {\r\n\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n clearToken() {\r\n if (this.config.Debug) { console.log('Logging out and removing tokens'); }\r\n\r\n localStorage.removeItem(AuthenticationService.ACCOUNTID);\r\n localStorage.removeItem(AuthenticationService.TOKEN);\r\n localStorage.removeItem(AuthenticationService.TOKEN_EXPIRED);\r\n localStorage.removeItem(AuthenticationService.CLUSTER_URL);\r\n localStorage.removeItem(AuthenticationService.INVENTORY_URL);\r\n localStorage.removeItem(AuthenticationService.USERID);\r\n localStorage.removeItem(AuthenticationService.TIMEZONE);\r\n localStorage.removeItem(AuthenticationService.CULTURE);\r\n localStorage.removeItem(AuthenticationService.DISTANCEUNIT);\r\n localStorage.removeItem(AuthenticationService.VOLUMEUNIT);\r\n localStorage.removeItem(AuthenticationService.WHITELABEL);\r\n localStorage.removeItem(AuthenticationService.MAPPROVIDER);\r\n localStorage.removeItem(AuthenticationService.ISIMPERSONATINGUSER);\r\n localStorage.removeItem(AuthenticationService.SSOPROVIDER);\r\n localStorage.removeItem(AuthenticationService.SSOPROVIDERTOKEN);\r\n\r\n const enviroment = 'clust01';\r\n const cookie = this.getSessionCookie(enviroment);\r\n let domain = '';\r\n\r\n if (enviroment.indexOf('staging') !== -1) {\r\n domain = '.gpscockpit.net';\r\n } else {\r\n domain = '.gpscockpit.com';\r\n }\r\n if (this.config.Debug) { console.log('Logging out and removing ' + cookie + ' for domain' + domain); }\r\n this.cookieService.delete(cookie, '/', domain);\r\n\r\n if (this.config.Debug) { console.log('Redirecting'); }\r\n\r\n this.router.navigate(['/Login']);\r\n\r\n }\r\n\r\n private isImpersonatingUser(): boolean {\r\n const value = localStorage.getItem(AuthenticationService.ISIMPERSONATINGUSER);\r\n if (value) {\r\n return JSON.parse(value);\r\n }\r\n return false;\r\n }\r\n\r\n private isTokenValid(): boolean {\r\n\r\n if (!this.config || !this.config.Debug) { console.log('Testing token validity...'); }\r\n\r\n const token = localStorage.getItem(AuthenticationService.TOKEN);\r\n const tokenExpired = localStorage.getItem(AuthenticationService.TOKEN_EXPIRED);\r\n\r\n if (token != null && tokenExpired != null) {\r\n if (Date.now() < Date.parse(tokenExpired)) {\r\n if (!this.config || !this.config.Debug) { console.log('Token ' + token + ' is still valid!'); }\r\n return true;\r\n }\r\n }\r\n\r\n if (!this.config || !this.config.Debug) { console.log('Token is invalid!'); }\r\n return false;\r\n }\r\n\r\n startAuthentication(): Promise {\r\n console.error('SSO has been disabled on 1/12/2020');\r\n return Promise.reject();\r\n }\r\n\r\n completeSignout(): Promise {\r\n return this.manager.signoutRedirectCallback().then(function () {\r\n if (this.config.Debug) {\r\n console.log('signoutredirectcallback completed');\r\n }\r\n this.authService.clearLocalStorage();\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n }\r\n\r\n clearLocalStorage(): Promise {\r\n return this.manager.clearStaleState().then(result => { if (this.config.Debug) { console.log('state cleared'); } });\r\n }\r\n\r\n signInWithSSO(idtoken: string): Observable {\r\n const userData = jwt_decode(idtoken);\r\n const nonce = userData['nonce'];\r\n const userName = userData['Email'];\r\n if (this.checkNonce(nonce)) {\r\n return this.performLoginWithSSO(userName, 'sso360', idtoken);\r\n }\r\n return Observable.throwError('Something went wrong while trying to login')\r\n\r\n }\r\n\r\n checkNonce(nonce: string): boolean {\r\n const local = localStorage.getItem('360SSO')\r\n if (nonce === local) {\r\n localStorage.removeItem('360SSO');\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n generateNonce(length) {\r\n const charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._~'\r\n let result = ''\r\n\r\n while (length > 0) {\r\n const bytes = new Uint8Array(16);\r\n const random = window.crypto.getRandomValues(bytes);\r\n\r\n random.forEach(function (c) {\r\n if (length === 0) {\r\n return;\r\n }\r\n if (c < charset.length) {\r\n result += charset[c];\r\n length--;\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { CalculationSettings, IssueTypeSettings } from '../../models/calculationsettings.model';\r\nimport { SettingsLevel } from '../../common/enums';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class CalculationSettingsService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private http: HttpClient, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('issuecalculatorsetting');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getCalculationSettings(level: SettingsLevel, id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n let extra = '';\r\n switch (level) {\r\n case 5:\r\n extra = '?deviceId=' + id;\r\n break;\r\n case 3:\r\n extra = '?customerId=' + id;\r\n break;\r\n case 4:\r\n extra = '?deviceTypeId=' + id;\r\n break;\r\n case 2:\r\n extra = '?accountPlatformId=' + id;\r\n break;\r\n case 1:\r\n extra = '?accountId=' + id;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n console.log('Fetch calculation settings by level ' + level + ' and id ' + id);\r\n return this.http.get(this.url + extra, { headers: headers })\r\n .map((data) => {\r\n const settings = new CalculationSettings;\r\n settings.id = id;\r\n settings.level = level;\r\n settings.issueTypeSettings = data\r\n return settings;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAllCalculationSettings(): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n const extra = 'All';\r\n\r\n console.log('Fetch all calculation settings ');\r\n return this.http.get(this.url + extra, { headers: headers })\r\n .map((data) => {\r\n return data\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveCalculationSettings(settings: CalculationSettings, id: string): Observable {\r\n\r\n const postBody = {};\r\n switch (settings.level) {\r\n case 1:\r\n if (id !== '-') {\r\n console.log(id);\r\n postBody['accountId'] = id;\r\n }\r\n break;\r\n case 2:\r\n postBody['accountPlatformId'] = id;\r\n break;\r\n case 4:\r\n postBody['deviceTypeId'] = id;\r\n break;\r\n case 3:\r\n postBody['customerId'] = id;\r\n break;\r\n case 5:\r\n postBody['deviceId'] = id;\r\n break;\r\n default:\r\n break;\r\n }\r\n postBody['issueSettings'] = settings.issueTypeSettings;\r\n const body = JSON.stringify(postBody);\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n console.log('Post calculation settings by level ' + settings.level + ' and id ' + id + ' and active ');\r\n return this.http.post(this.url, body, { headers: headers })\r\n .map(result => {\r\n return result;\r\n }).catch(this.handleError);\r\n }\r\n\r\n deleteCalculationSettings(settings: CalculationSettings, id: string): Observable {\r\n const deleteBody = {};\r\n switch (settings.level) {\r\n case 1:\r\n if (id !== '-') {\r\n console.log(id);\r\n deleteBody['accountId'] = id;\r\n }\r\n break;\r\n case 2:\r\n deleteBody['accountPlatformId'] = id;\r\n break;\r\n case 4:\r\n deleteBody['deviceTypeId'] = id;\r\n break;\r\n case 3:\r\n deleteBody['customerId'] = id;\r\n break;\r\n case 5:\r\n deleteBody['deviceId'] = id;\r\n break;\r\n default:\r\n break;\r\n }\r\n deleteBody['issueSettings'] = settings.issueTypeSettings;\r\n const body = JSON.stringify(deleteBody);\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const header = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n const httpOptions = {\r\n headers: header, body: body\r\n };\r\n\r\n console.log('Delete calculation settings by level ' + settings.level + ' and id ' + id);\r\n return this.http.delete(this.url, httpOptions)\r\n .map(result => {\r\n return result;\r\n }).catch(this.handleError);\r\n }\r\n\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Chart } from 'angular-highcharts';\r\nimport * as Highcharts from 'highcharts';\r\nimport { ColorService } from '../common/color.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, TileLayer } from 'leaflet';\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\n\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { formatViolationThreshold, humanizeTimespan } from '../common/functions.service';\r\n\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n\r\n@Injectable()\r\nexport class FhChartService {\r\n timezoneIana: string;\r\n\r\n constructor(private colors: ColorService, private authenticationService: AuthenticationService) {\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n console.log(this.timezoneIana);\r\n\r\n if (this.timezoneIana !== 'undefined') {\r\n Highcharts.setOptions({\r\n time: {\r\n timezone: this.timezoneIana\r\n // timezoneOffset: -4 * 60\r\n }\r\n });\r\n }\r\n }\r\n\r\n generateDonutChart(theData, format) {\r\n return new Chart({\r\n chart: {\r\n type: 'pie'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n plotOptions: {\r\n pie: {\r\n size: '100%',\r\n shadow: false,\r\n center: ['50%', '40%'],\r\n allowPointSelect: false,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false,\r\n // distance: -50\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '9px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: ''\r\n }\r\n },\r\n legend: {\r\n layout: 'horizontal',\r\n align: 'center',\r\n verticalAlign: 'bottom',\r\n floating: true,\r\n enabled: true,\r\n y: 20,\r\n backgroundColor: 'rgba(255,255,255,0.5)',\r\n borderColor: '#ffffff',\r\n },\r\n tooltip: {\r\n pointFormat: '{point.y} ' + format + ''\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n });\r\n }\r\n\r\n generateStackedChart(theData, theDrilldownData = {}) {\r\n\r\n const chartObject = {\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '9px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: ''\r\n }\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal',\r\n }\r\n },\r\n tooltip: {\r\n pointFormat: 'Issues: {point.y}'\r\n },\r\n series: theData,\r\n drilldown: theDrilldownData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n };\r\n const chart = new Chart(chartObject);\r\n return chart;\r\n }\r\n\r\n generateStackedChartDashboard(theData, yAxis) {\r\n\r\n const that = this;\r\n\r\n const chartObject = {\r\n chart: {\r\n zoomType: 'x',\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n // xAxis: {\r\n // type: 'datetime',\r\n // dateTimeLabelFormats: { // don't display the dummy year\r\n // month: '%e. %b',\r\n // year: '%b'\r\n // },\r\n // title: {\r\n // text: ''\r\n // },\r\n // },\r\n xAxis: {\r\n type: 'datetime',\r\n allowDecimals: false,\r\n minRange: 3600 * 24 * 7 * 1000,\r\n min: Moment()['tz'](this.authenticationService.getTimeZoneIana()).startOf('day').add(-1, 'day').add(-1, 'month').toDate().getTime(),\r\n max: Moment()['tz'](this.authenticationService.getTimeZoneIana()).startOf('day').add(-1, 'day').toDate().getTime(),\r\n startOnTick: false,\r\n endOnTick: false,\r\n tickInterval: 24 * 3600 * 1000,\r\n title: {\r\n text: null\r\n },\r\n labels: {\r\n rotation: -45,\r\n },\r\n gridLineWidth: 1\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: ''\r\n }\r\n },\r\n legend: {\r\n layout: 'vertical',\r\n align: 'right',\r\n verticalAlign: 'top'\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal',\r\n }\r\n },\r\n tooltip: {\r\n headerFormat: '{point.key}',\r\n pointFormat: '' +\r\n '',\r\n footerFormat: '
{series.name}: {point.y} issues
',\r\n shared: true,\r\n useHTML: true\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n };\r\n const chart = new Chart(chartObject);\r\n return chart;\r\n }\r\n\r\n generateStackedChartDashboardNoIssues(theData, yAxis) {\r\n\r\n const that = this;\r\n\r\n const chartObject = {\r\n chart: {\r\n zoomType: 'x',\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n // xAxis: {\r\n // type: 'datetime',\r\n // dateTimeLabelFormats: { // don't display the dummy year\r\n // month: '%e. %b',\r\n // year: '%b'\r\n // },\r\n // title: {\r\n // text: ''\r\n // },\r\n // },\r\n xAxis: {\r\n type: 'datetime',\r\n allowDecimals: false,\r\n minRange: 3600 * 24 * 7 * 1000,\r\n min: Moment()['tz'](this.authenticationService.getTimeZoneIana()).startOf('day').add(-1, 'day').add(-1, 'month').toDate().getTime(),\r\n max: Moment()['tz'](this.authenticationService.getTimeZoneIana()).startOf('day').add(-1, 'day').toDate().getTime(),\r\n startOnTick: false,\r\n endOnTick: false,\r\n tickInterval: 24 * 3600 * 1000,\r\n title: {\r\n text: null\r\n },\r\n labels: {\r\n rotation: -45,\r\n },\r\n gridLineWidth: 1\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: ''\r\n }\r\n },\r\n legend: {\r\n layout: 'vertical',\r\n align: 'right',\r\n verticalAlign: 'top'\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal',\r\n }\r\n },\r\n tooltip: {\r\n headerFormat: '{point.key}',\r\n pointFormat: '' +\r\n '',\r\n footerFormat: '
{series.name}: No issues
',\r\n shared: true,\r\n useHTML: true\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n };\r\n const chart = new Chart(chartObject);\r\n return chart;\r\n }\r\n\r\n generateColumnChart(theData, theDrilldownData = {}) {\r\n\r\n const chartObject = {\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n type: 'category',\r\n labels: {\r\n rotation: -45,\r\n style: {\r\n fontSize: '9px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: ''\r\n }\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n pointFormat: 'Issues: {point.y}'\r\n },\r\n series: theData,\r\n drilldown: theDrilldownData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n };\r\n const chart = new Chart(chartObject);\r\n return chart;\r\n }\r\n\r\n generateSplineArea(theData, yAxis, issueTypes = null, allIssueTypes = null, itemName = 'Issues') {\r\n\r\n const that = this;\r\n\r\n return new Chart({\r\n chart: {\r\n type: 'areaspline',\r\n zoomType: 'x',\r\n },\r\n title: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n labels: {\r\n rotation: -45,\r\n },\r\n type: 'datetime',\r\n title: {\r\n text: ''\r\n }\r\n },\r\n yAxis: yAxis,\r\n tooltip: {\r\n formatter: function () {\r\n let issueTypeString = '';\r\n if (issueTypes) {\r\n const types = issueTypes.find(x => this.x === x[0]);\r\n if (issueTypes && types[1] && types[1].length && types[1][0]) {\r\n types[1].forEach((issueType, x) => {\r\n issueTypeString += x === 0 ? allIssueTypes[issueType].trim() : ', ' + allIssueTypes[issueType].trim()\r\n });\r\n }\r\n }\r\n return '' + this.y + ' ' + itemName + ' on ' + Moment.utc(this.x)['tz'](that.timezoneIana).format('LL') + '
' + issueTypeString;\r\n }\r\n },\r\n legend: {\r\n layout: 'vertical',\r\n align: 'left',\r\n x: 80,\r\n verticalAlign: 'top',\r\n y: 55,\r\n floating: false,\r\n enabled: false\r\n },\r\n plotOptions: {\r\n areaspline: {\r\n stacking: 'normal',\r\n lineColor: '#fff',\r\n lineWidth: 1,\r\n fillOpacity: 0.5,\r\n marker: {\r\n lineWidth: 1,\r\n lineColor: '#fff'\r\n }\r\n },\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n });\r\n }\r\n\r\n generateSplineChart(theData): any {\r\n return new Chart({\r\n chart: {\r\n type: 'spline',\r\n zoomType: 'x',\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n labels: {\r\n rotation: -45,\r\n },\r\n type: 'datetime',\r\n title: {\r\n text: ''\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: ''\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n pointFormat: 'Issues: {point.y}'\r\n },\r\n series: [{\r\n name: 'Issues',\r\n data: theData\r\n }],\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n });\r\n }\r\n\r\n generateSpeedChart(theData) {\r\n return new Chart({\r\n chart: {\r\n type: 'solidgauge'\r\n },\r\n title: null,\r\n pane: {\r\n center: ['50%', '85%'],\r\n size: '140%',\r\n startAngle: -90,\r\n endAngle: 90,\r\n background: {\r\n backgroundColor: '#EEE',\r\n innerRadius: '60%',\r\n outerRadius: '100%',\r\n shape: 'arc'\r\n }\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n // the value axis\r\n yAxis: {\r\n min: 0,\r\n max: 160,\r\n title: {\r\n text: ''\r\n },\r\n stops: [\r\n [0.1, '#55BF3B'], // green\r\n [0.5, '#DDDF0D'], // yellow\r\n [0.9, '#DF5353'] // red\r\n ],\r\n lineWidth: 0,\r\n minorTickInterval: null,\r\n tickAmount: 2,\r\n labels: {\r\n y: 16\r\n }\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n y: 5,\r\n borderWidth: 0,\r\n useHTML: true,\r\n format: '
{y}
' +\r\n 'km/h
'\r\n },\r\n tooltip: {\r\n valueSuffix: ' km/h'\r\n }\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n series: [{\r\n name: 'Speed',\r\n data: theData,\r\n }]\r\n });\r\n }\r\n\r\n generateRpmChart(theData) {\r\n return new Chart({\r\n chart: {\r\n type: 'solidgauge'\r\n },\r\n title: null,\r\n pane: {\r\n center: ['50%', '85%'],\r\n size: '140%',\r\n startAngle: -90,\r\n endAngle: 90,\r\n background: {\r\n backgroundColor: '#EEE',\r\n innerRadius: '60%',\r\n outerRadius: '100%',\r\n shape: 'arc'\r\n }\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n // the value axis\r\n yAxis: {\r\n min: 0,\r\n max: 5,\r\n title: {\r\n text: ''\r\n },\r\n stops: [\r\n [0.1, '#55BF3B'], // green\r\n [0.5, '#DDDF0D'], // yellow\r\n [0.9, '#DF5353'] // red\r\n ],\r\n lineWidth: 0,\r\n minorTickInterval: null,\r\n tickAmount: 2,\r\n labels: {\r\n y: 16\r\n }\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n y: 5,\r\n borderWidth: 0,\r\n useHTML: true,\r\n format: '
{y:.1f}
' +\r\n '* 1000 / min
'\r\n },\r\n tooltip: {\r\n valueSuffix: ' revolutions/min'\r\n }\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n series: [{\r\n name: 'RPM',\r\n data: theData\r\n }]\r\n });\r\n }\r\n\r\n generateMultiChart(theData, map = null, plotLines = null, plotBands = null, titlesAndUnitsOfMeasurement, yAxes, translateService: TranslateService = null) {\r\n let theMarker;\r\n const theIcon = icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n\r\n const that = this;\r\n\r\n return new Chart({\r\n chart: {\r\n zoomType: 'x'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n dateTimeLabelFormats: { // don't display the dummy year\r\n month: '%e. %b',\r\n year: '%b'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n plotLines: plotLines,\r\n plotBands: plotBands,\r\n },\r\n yAxis: yAxes,\r\n credits: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n borderRadius: 2,\r\n borderWidth: 1,\r\n borderColor: '#ccc',\r\n shadow: false,\r\n shared: true,\r\n useHTML: true,\r\n formatter: function () {\r\n const date = Moment.utc(this.x)['tz'](that.timezoneIana).format('LLLL Z');\r\n const header = '';\r\n const footer = '
' + date + '
';\r\n let body = '';\r\n this.points.forEach(element => {\r\n const unitOfMeasurement = titlesAndUnitsOfMeasurement[element.series.name];\r\n let value = element.y;\r\n if (element.series.name === translateService.instant('chart.ignition') ||\r\n element.series.name === translateService.instant('chart.externalPower') ||\r\n element.series.name === translateService.instant('chart.GPSFix')) {\r\n value = element.y ? translateService.instant('chart.on') : translateService.instant('chart.off');\r\n }\r\n if (element.series.name === translateService.instant('chart.driverInfo')) {\r\n if (element.point.n !== '0') {\r\n value = element.point.n;\r\n } else {\r\n value = translateService.instant('general.none')\r\n }\r\n }\r\n if (element.series.name === translateService.instant('chart.delayInMessage') ||\r\n element.series.name === translateService.instant('chart.intervalMessage')) {\r\n value = humanizeTimespan(translateService, value);\r\n }\r\n if (unitOfMeasurement !== '') {\r\n body += '' + element.series.name + ' (' + unitOfMeasurement + ') ' + ': ' + value + ''\r\n } else {\r\n body += '' + element.series.name + ': ' + value + ''\r\n }\r\n });\r\n\r\n return header + body + footer;\r\n }\r\n },\r\n legend: {\r\n align: 'center',\r\n verticalAlign: 'bottom',\r\n floating: false,\r\n x: 0,\r\n y: 10\r\n },\r\n plotOptions: {\r\n series: {\r\n turboThreshold: 99999,\r\n point: {\r\n events: {\r\n mouseOver: function () {\r\n if (this.latlon) {\r\n if (theMarker) {\r\n map.removeLayer(theMarker);\r\n }\r\n theMarker = marker(this.latlon, { icon: theIcon }).addTo(map);\r\n map.setView(this.latlon);\r\n }\r\n },\r\n click: function () {\r\n const seriesName = this.series.name;\r\n return true;\r\n },\r\n mouseOut: function () {\r\n if (theMarker) {\r\n map.removeLayer(theMarker);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n areaspline: {\r\n fillOpacity: 0.1\r\n }\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n });\r\n }\r\n\r\n generateFuelChart(theData, plotLines = null, map = null) {\r\n let theMarker;\r\n const theIcon = icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n\r\n return new Chart({\r\n chart: {\r\n zoomType: 'x'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n dateTimeLabelFormats: { // don't display the dummy year\r\n month: '%e. %b',\r\n year: '%b'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n plotLines: plotLines\r\n },\r\n yAxis: [{ // Primary yAxis\r\n labels: {\r\n format: '{value} km'\r\n },\r\n title: {\r\n text: 'Trip in km'\r\n }\r\n }, { // Secondary yAxis\r\n min: 0,\r\n max: 101,\r\n title: {\r\n text: 'Fuel tank'\r\n },\r\n labels: {\r\n format: '{value} %'\r\n },\r\n opposite: true\r\n }],\r\n tooltip: {\r\n borderRadius: 2,\r\n borderWidth: 1,\r\n borderColor: '#ccc',\r\n shadow: false,\r\n shared: true,\r\n useHTML: true,\r\n valueDecimals: 0,\r\n headerFormat:\r\n ''\r\n + '',\r\n pointFormat:\r\n ''\r\n + '',\r\n footerFormat:\r\n '
{point.key}
{series.name}: {point.y}
'\r\n },\r\n legend: {\r\n align: 'center',\r\n verticalAlign: 'top',\r\n floating: true,\r\n x: 0,\r\n y: 0\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n point: {\r\n events: {\r\n\r\n mouseOver: function () {\r\n if (this.latlon) {\r\n if (theMarker) {\r\n map.removeLayer(theMarker);\r\n }\r\n theMarker = marker(this.latlon, { icon: theIcon }).addTo(map);\r\n map.flyTo(this.latlon);\r\n }\r\n },\r\n click: function () {\r\n const seriesName = this.series.name;\r\n return true;\r\n },\r\n mouseOut: function () {\r\n if (theMarker) {\r\n map.removeLayer(theMarker);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n });\r\n }\r\n\r\n generateColumnRangeChart(theData, xAxis, translateService: TranslateService = null, issueCountChart: Chart = null) {\r\n\r\n const that = this;\r\n return new Chart({\r\n chart: {\r\n zoomType: 'y',\r\n type: 'columnrange',\r\n inverted: true,\r\n spacingLeft: 0\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n title: {\r\n text: null,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n series: {\r\n cursor: 'pointer',\r\n events: {\r\n click: function (event) {\r\n const point = event.point as any;\r\n location.href = '/#/IssueDetails/Index/' + point.issueId;\r\n }\r\n }\r\n }\r\n },\r\n xAxis: {\r\n categories: xAxis,\r\n showEmpty: false,\r\n title: {\r\n text: null\r\n },\r\n gridLineWidth: 1\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n if (issueCountChart) {\r\n issueCountChart.ref$.subscribe(res => {\r\n res.series[0].data.forEach(datapoint => {\r\n datapoint.setState(datapoint.x === this.y ? 'hover' : '');\r\n if (datapoint.x === this.y) {\r\n res.tooltip.refresh(datapoint);\r\n }\r\n });\r\n });\r\n }\r\n\r\n const threshold = formatViolationThreshold(translateService, this.point.issueType, this.point.violationLowerThreshold);\r\n\r\n let tooltip = '' + Moment.utc(this.point.date)['tz'](that.timezoneIana).format('LL') + ' ' +\r\n (this.point.violationDuration ? translateService.instant('general.duration') + ' ' + Moment.duration(this.point.violationDuration * 1000, 'milliseconds').humanize() + '' : '') +\r\n (this.point.violationLowerThreshold ? translateService.instant('general.violationThresholds') + ' ' + threshold + '' : '')\r\n if (this.point.sensorName) {\r\n tooltip += ', ' + translateService.instant('chart.sensorDefaultName') + ' ' + this.point.sensorName + '';\r\n }\r\n return tooltip;\r\n }\r\n },\r\n yAxis: {\r\n type: 'datetime',\r\n allowDecimals: false,\r\n // endOnTick: true,\r\n // startOnTick: true,\r\n // tickInterval: 1000 * 60 * 60 * 24, // every day\r\n minRange: 3600 * 24 * 7 * 1000,\r\n max: Moment().toDate().getTime(),\r\n title: {\r\n text: null\r\n },\r\n labels: {\r\n rotation: -45,\r\n },\r\n gridLineWidth: 1\r\n },\r\n series: theData,\r\n colors: [this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#CB711D', this.colors.theme.overwrite ? this.colors.theme.chartSecondary : '#D6A282', this.colors.theme.overwrite ? this.colors.theme.chartThird : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFourth : '#D3C6BE', this.colors.theme.overwrite ? this.colors.theme.chartFifth : '#D3C6BE']\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DeviceService } from '../device/device.service';\r\nimport { IssueService } from '../issues/issues.service';\r\nimport { PlatformService } from '../platform/platform.service';\r\nimport { AccountPlatformService } from '../platform/accountPlatform.service';\r\n\r\n@Injectable()\r\nexport class CacheService {\r\n\r\n constructor(translate: TranslateService, private authenticationService: AuthenticationService , private accountPlatformService: AccountPlatformService, private platformService: PlatformService, private deviceService: DeviceService, private issueService: IssueService, private deviceTypeService: DeviceTypeService, private issueTypeService: IssueTypeService) {\r\n }\r\n\r\n clearCache() {\r\n this.issueTypeService.IssueTypes = [];\r\n this.deviceTypeService.DeviceTypes = [];\r\n this.platformService.Platforms = [];\r\n this.accountPlatformService.AccountPlatforms = [];\r\n this.deviceService.Devices = [];\r\n this.authenticationService.permissions = [];\r\n }\r\n}\r\n","\r\nimport { Injectable, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { when } from 'q';\r\n\r\nexport class ThemeColors {\r\n public overwrite = false;\r\n public logoBinary = '';\r\n public logoLoginBinary: { width: number; height: number; url: string; };\r\n\r\n // Colors\r\n public primary = '';\r\n public secondary = '';\r\n public seachBackground = '';\r\n public seachColor = '';\r\n public background = '';\r\n\r\n public chartPrimary = '';\r\n public chartSecondary = '';\r\n public chartThird = '';\r\n public chartFourth = '';\r\n public chartFifth = '';\r\n\r\n public chartPositive = '';\r\n public chartNegative = '';\r\n\r\n}\r\n\r\n\r\n// tslint:disable-next-line:max-line-length\r\nconst _360locateLogo = { width: 300, height: 62, url: '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' };\r\n\r\n// tslint:disable-next-line:max-line-length\r\nconst locationSolutionsLogo = { width: 220, height: 90, url: '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' };\r\n\r\n@Injectable()\r\nexport class ColorService implements OnInit {\r\n theme: ThemeColors;\r\n\r\n constructor() {\r\n this.theme = new ThemeColors();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getLoginImage(whitelabel): any {\r\n\r\n switch (whitelabel) {\r\n case 'l360':\r\n return _360locateLogo\r\n case '360':\r\n return _360locateLogo\r\n case 'wasl':\r\n return locationSolutionsLogo\r\n default:\r\n return _360locateLogo;\r\n }\r\n }\r\n\r\n getThemeColors(themeName): Observable {\r\n\r\n switch (themeName) {\r\n case 'l360':\r\n this.locate360();\r\n break;\r\n case 'wasl':\r\n this.wasl();\r\n break;\r\n case 'ginger':\r\n this.ginger();\r\n break;\r\n case 'lightblue':\r\n this.lightBlue();\r\n break;\r\n case 'ls':\r\n this.ls();\r\n break;\r\n case 'blue':\r\n this.blue();\r\n break;\r\n case 'modern':\r\n this.modern();\r\n break;\r\n default:\r\n this.locate360();\r\n }\r\n\r\n return of(this.theme)\r\n }\r\n\r\n lightBlue() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = _360locateLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = `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`;\r\n\r\n this.theme.primary = '#B4D0DB';\r\n this.theme.secondary = '#DF5F62';\r\n this.theme.seachBackground = '#B8D4DF';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#F7F7F7';\r\n\r\n this.theme.chartPrimary = '#DF5F62';\r\n this.theme.chartSecondary = '#DB9B9D';\r\n this.theme.chartThird = '#D8B6B7';\r\n this.theme.chartFourth = '#D8B6B7';\r\n this.theme.chartFifth = '#D8B6B7';\r\n\r\n this.theme.chartPositive = '#5BB862';\r\n this.theme.chartNegative = '#D8504F';\r\n }\r\n\r\n ginger() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = _360locateLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = `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`;\r\n\r\n this.theme.primary = '#503518';\r\n this.theme.secondary = '#E85912';\r\n this.theme.seachBackground = '#5B3D1E';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#D7CEBA';\r\n\r\n this.theme.chartPrimary = '#503518';\r\n this.theme.chartSecondary = '#EC8055';\r\n this.theme.chartThird = '#E8AF99';\r\n this.theme.chartFourth = '#D8B6B7';\r\n this.theme.chartFifth = '#D8B6B7';\r\n\r\n this.theme.chartPositive = '#E85912';\r\n this.theme.chartNegative = '#503518';\r\n }\r\n\r\n locate360() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = _360locateLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = `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`;\r\n this.theme.primary = '#47394D';\r\n this.theme.secondary = '#BD543B';\r\n this.theme.seachBackground = '#54445B';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#F7F7F7';\r\n\r\n this.theme.chartPrimary = '#BD543B';\r\n this.theme.chartSecondary = '#BF7263';\r\n this.theme.chartThird = '#BC7A6F';\r\n this.theme.chartFourth = '#D8B6B7';\r\n this.theme.chartFifth = '#D8B6B7';\r\n\r\n this.theme.chartPositive = '#5BB862';\r\n this.theme.chartNegative = '#D8504F';\r\n }\r\n\r\n wasl() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = locationSolutionsLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = `iVBORw0KGgoAAAANSUhEUgAAANsAAABfCAYAAABhorKOAAAACXBIWXMAAC4jAAAuIwF4pT92AAALqmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA5LTI1VDEwOjQ5OjE0KzAyOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wOS0yNVQxMTozNjoyNyswMjowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wOS0yNVQxMTozNjoyNyswMjowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NzRhZGVhMi1jNWZhLTc5NDgtYThmMC03ODhmYjE4ZDIzMjQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmNTdmMWRiZi0xOTZjLWY0NDAtODAzMC1lN2E1MTZlZTE3MmQiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZDhlMDQ2Yy1hNjI4LTNkNDQtYTliMy03ZWJlZThiM2ViNGUiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjIxOSIgZXhpZjpQaXhlbFlEaW1lbnNpb249Ijk1Ij4gPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8cmRmOkJhZz4gPHJkZjpsaSBwaG90b3Nob3A6TGF5ZXJOYW1lPSJGbGVldCBJbnZlbnRvcnkiIHBob3Rvc2hvcDpMYXllclRleHQ9IkZsZWV0IEludmVudG9yeSIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZWQ4ZTA0NmMtYTYyOC0zZDQ0LWE5YjMtN2ViZWU4YjNlYjRlIiBzdEV2dDp3aGVuPSIyMDE5LTA5LTI1VDEwOjQ5OjE0KzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBpbWFnZS9wbmcgdG8gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDUwODdkY2ItNTVjYi0wOTQ1LWExYzAtYWE1MjE1YzRhNzlkIiBzdEV2dDp3aGVuPSIyMDE5LTA5LTI1VDExOjIwOjUyKzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjcxN2YyY2U3LTkwM2QtNGI0Mi1hMDU2LWRiYWJlMGRmMzRlMiIgc3RFdnQ6d2hlbj0iMjAxOS0wOS0yNVQxMTozNjoyNyswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NzRhZGVhMi1jNWZhLTc5NDgtYThmMC03ODhmYjE4ZDIzMjQiIHN0RXZ0OndoZW49IjIwMTktMDktMjVUMTE6MzY6MjcrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dz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`;\r\n\r\n this.theme.primary = '#503518';\r\n this.theme.secondary = '#209AC5';\r\n this.theme.seachBackground = '#5B3D1E';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#D7CEBA';\r\n\r\n this.theme.chartPrimary = '#503518';\r\n this.theme.chartSecondary = '#EC8055';\r\n this.theme.chartThird = '#E8AF99';\r\n this.theme.chartFourth = '#D8B6B7';\r\n this.theme.chartFifth = '#D8B6B7';\r\n\r\n this.theme.chartPositive = '#E85912';\r\n this.theme.chartNegative = '#503518';\r\n }\r\n\r\n modern() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = _360locateLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = `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`;\r\n\r\n // (\"#000000\", \"#E69F00\", \"#56B4E9\", \"#009E73\", \"#F0E442\", \"#0072B2\", \"#D55E00\", \"#CC79A7\")\r\n\r\n this.theme.primary = '#353535';\r\n this.theme.secondary = '#3C6E71';\r\n this.theme.seachBackground = '#3F3F3F';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#F7F7F7';\r\n\r\n this.theme.chartPrimary = '#BE4F37';\r\n this.theme.chartSecondary = '#56B4E9';\r\n this.theme.chartThird = '#009E73';\r\n this.theme.chartFourth = '#F0E442';\r\n this.theme.chartFifth = '#0072B2';\r\n\r\n this.theme.chartPositive = '#009E73';\r\n this.theme.chartNegative = '#BE4F37';\r\n }\r\n\r\n ls() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = locationSolutionsLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = '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';\r\n\r\n this.theme.primary = '#356191';\r\n this.theme.secondary = '#CE6C1D';\r\n this.theme.seachBackground = '#33577F';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#F7F7F7';\r\n\r\n this.theme.chartPrimary = '#CE6C1D';\r\n this.theme.chartSecondary = '#CC9770';\r\n this.theme.chartThird = '#CCB6A7';\r\n this.theme.chartFourth = '#D8B6B7';\r\n this.theme.chartFifth = '#D8B6B7';\r\n\r\n this.theme.chartPositive = '#5BB862';\r\n this.theme.chartNegative = '#D8504F';\r\n }\r\n\r\n blue() {\r\n this.theme.overwrite = true;\r\n\r\n this.theme.logoLoginBinary = _360locateLogo;\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.theme.logoBinary = `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`;\r\n this.theme.primary = '#356191';\r\n this.theme.secondary = '#CE6C1D';\r\n this.theme.seachBackground = '#33577F';\r\n this.theme.seachColor = '#fff';\r\n this.theme.background = '#F7F7F7';\r\n\r\n this.theme.chartPrimary = '#CE6C1D';\r\n this.theme.chartSecondary = '#CC9770';\r\n this.theme.chartThird = '#CCB6A7';\r\n this.theme.chartFourth = '#D8B6B7';\r\n this.theme.chartFifth = '#D8B6B7';\r\n\r\n this.theme.chartPositive = '#5BB862';\r\n this.theme.chartNegative = '#D8504F';\r\n }\r\n}\r\n\r\n","import { PermissionsBitmask, IssueTypeEnums } from 'app/common/enums';\r\nimport * as moment from 'moment-timezone';\r\n\r\n/* tslint:disable */\r\nexport function arrayFromMask(nMask, permissions) {\r\n // nMask must be between -2147483648 and 2147483647\r\n if (nMask > 0x7fffffff || nMask < -0x80000000) {\r\n throw new TypeError('arrayFromMask - out of range');\r\n }\r\n\r\n permissions = Object.keys(PermissionsBitmask)\r\n .filter(k => typeof PermissionsBitmask[k] === 'number')\r\n .map(n => ({ name: n, value: PermissionsBitmask[n], isEnabled: false }))\r\n\r\n permissions.forEach(permission => {\r\n permission.isEnabled = ((nMask & permission.value) == permission.value);\r\n });\r\n\r\n return permissions;\r\n}\r\n\r\nexport function fixDate(d: Date): Date {\r\n if (d == null){\r\n return null;\r\n }\r\n d.setHours(d.getHours() - d.getTimezoneOffset() / 60);\r\n return d;\r\n }\r\n\r\nexport function createMask(thePermissionArray) {\r\n\r\n let mask = 0;\r\n\r\n thePermissionArray.forEach(permission => {\r\n if (permission.isEnabled == true) {\r\n mask = mask | permission.value;\r\n }\r\n });\r\n\r\n return mask;\r\n}\r\n /* tslint:enable */\r\n\r\nexport function formatViolationThreshold(translateService, issueType, threshold, isUpperThreshold = false) {\r\n let violationThreshold = threshold;\r\n\r\n if (threshold == null) {\r\n return threshold;\r\n }\r\n\r\n if (issueType === IssueTypeEnums.OutlierDistance ||\r\n issueType === IssueTypeEnums.TooMuchDistancePerMessage ||\r\n issueType === IssueTypeEnums.TooMuchDistance) {\r\n // format km\r\n violationThreshold = Math.round(threshold / 1000) + ' ' + translateService.instant('abbreviation.kiloMeters');\r\n } else if (\r\n issueType === IssueTypeEnums.HighDataConsumptionMinimumMotion ||\r\n issueType === IssueTypeEnums.TooFewLocations ||\r\n issueType === IssueTypeEnums.TooManyLocations ||\r\n issueType === IssueTypeEnums.FarTooManyMessages) {\r\n // format # messages\r\n violationThreshold = threshold + ' ' + translateService.instant('general.messages');\r\n } else if (\r\n issueType === IssueTypeEnums.BackupBatteryTooLow ||\r\n issueType === IssueTypeEnums.BatteryPowerTooLow) {\r\n // format volt\r\n violationThreshold = threshold + ' ' + translateService.instant('general.volt');\r\n } else if (\r\n issueType === IssueTypeEnums.LooseConnectionOrIgnitionWire ||\r\n issueType === IssueTypeEnums.TooManyPowerlossEvents) {\r\n // format # flips\r\n violationThreshold = threshold + ' ' + translateService.instant('general.flips');\r\n } else if (issueType === IssueTypeEnums.BadGpsReception && isUpperThreshold) {\r\n violationThreshold = threshold + ' ' + translateService.instant('chart.hdop');\r\n } else if (\r\n issueType === IssueTypeEnums.BadGpsReception ||\r\n issueType === IssueTypeEnums.GpsDrift ||\r\n issueType === IssueTypeEnums.MissingDriver ||\r\n issueType === IssueTypeEnums.DelayedMessages ) {\r\n // format % of messages\r\n violationThreshold = threshold + ' ' + translateService.instant('general.percentageOfMessages');\r\n }\r\n\r\n return violationThreshold;\r\n}\r\n\r\nexport function humanizeTimespan(translateService, value) {\r\n let result = '';\r\n let originalValue = value;\r\n const hourDuration = (60 * 60);\r\n const minuteDuration = 60;\r\n let hourValue = 0;\r\n let minuteValue = 0;\r\n let secondValue = 0;\r\n\r\n while (originalValue >= hourDuration) {\r\n hourValue += 1;\r\n originalValue = originalValue - hourDuration;\r\n }\r\n while (originalValue >= minuteDuration) {\r\n minuteValue += 1;\r\n originalValue = originalValue - minuteDuration;\r\n }\r\n secondValue += Math.round(originalValue);\r\n\r\n if (hourValue > 0) {\r\n result += hourValue + translateService.instant('abbreviation.hours');\r\n }\r\n if (minuteValue > 0) {\r\n result += minuteValue + translateService.instant('abbreviation.minutes');\r\n }\r\n if (secondValue > 0) {\r\n result += secondValue + translateService.instant('abbreviation.seconds');\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function getUTCStartOfDayDateTimeFromTimezone(date: Date, timezone: string) {\r\n return moment.utc(moment(date).clone().tz(timezone).startOf('day').utc().format('YYYY-MM-DD HH:mm:SS')).toDate();\r\n}\r\n","\r\nimport { Injectable, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\ndeclare var L;\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Injectable()\r\nexport class MapService {\r\n\r\n setPruneCluster(leafletView) {\r\n\r\n const that = this;\r\n\r\n leafletView.BuildLeafletClusterIcon = function (cluster) {\r\n const e = new L.Icon.MarkerCluster();\r\n e.stats = cluster.stats;\r\n e.population = cluster.population;\r\n return e;\r\n };\r\n\r\n const colors = ['#ff4b00', '#bac900', '#EC1813', '#55BCBE', '#D2204C', '#FF0000', '#ada59a', '#3e647e'];\r\n const pi2 = Math.PI * 2;\r\n\r\n L.Icon.MarkerCluster = L.Icon.extend({\r\n options: {\r\n iconSize: new L.Point(44, 44),\r\n className: 'prunecluster leaflet-markercluster-icon'\r\n },\r\n createIcon: function () {\r\n // based on L.Icon.Canvas from shramov/leaflet-plugins (BSD licence)\r\n const e = document.createElement('canvas');\r\n this._setIconStyles(e, 'icon');\r\n const s = this.options.iconSize;\r\n if (L.Browser.retina) {\r\n e.width = s.x + s.x;\r\n e.height = s.y + s.y;\r\n } else {\r\n e.width = s.x;\r\n e.height = s.y;\r\n }\r\n // this.draw(e.getContext('2d'), s.x, s.y);\r\n this.draw(e.getContext('2d'), e.width, e.height);\r\n return e;\r\n },\r\n createShadow: function () {\r\n return null;\r\n },\r\n draw: function (canvas, width, height) {\r\n\r\n const lol = 0;\r\n\r\n let start = 0;\r\n for (let i = 0, l = colors.length; i < l; ++i) {\r\n\r\n const size = this.stats[i] / this.population;\r\n\r\n\r\n if (size > 0) {\r\n canvas.beginPath();\r\n canvas.moveTo(22, 22);\r\n canvas.fillStyle = colors[i];\r\n let from = start + 0.14,\r\n // tslint:disable-next-line:prefer-const\r\n to = start + size * pi2;\r\n\r\n if (to < from) {\r\n from = start;\r\n }\r\n canvas.arc(22, 22, 22, from, to);\r\n\r\n start = start + size * pi2;\r\n canvas.lineTo(22, 22);\r\n canvas.fill();\r\n canvas.closePath();\r\n }\r\n }\r\n\r\n canvas.beginPath();\r\n canvas.fillStyle = 'white';\r\n canvas.arc(22, 22, 18, 0, Math.PI * 2);\r\n canvas.fill();\r\n canvas.closePath();\r\n\r\n canvas.fillStyle = '#555';\r\n canvas.textAlign = 'center';\r\n canvas.textBaseline = 'middle';\r\n canvas.font = 'bold 12px sans-serif';\r\n\r\n canvas.fillText(this.population, 22, 22, 40);\r\n }\r\n });\r\n\r\n leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n };\r\n\r\n return true;\r\n }\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class TranslatorService {\r\n constructor(private translateService: TranslateService) {\r\n }\r\n\r\n translate(translateString: string, prefix: string = '') {\r\n if (translateString != null && translateString.length > 0) {\r\n translateString = translateString.replace('translate:', '');\r\n return this.translateService.instant(prefix + (prefix !== '' ? '.' : '') + translateString);\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { DeviceType } from '../../models/devicetype.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { Customer } from '../../models/customer.model';\r\n\r\n@Injectable()\r\nexport class CustomerService {\r\n\r\n token: string;\r\n timestamp;\r\n url = '';\r\n customers: Customer[] = [];\r\n\r\n\r\n constructor(private http: HttpClient, private translatorService: TranslatorService, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('customer');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getCustomers(setDefinate = true): Observable {\r\n\r\n if (setDefinate && this.customers.length !== 0) {\r\n return of(this.customers);\r\n }\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting customers from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n this.customers = parsedResponse;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getCustomerById(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting customer from service');\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponseData(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getCustomerDashboard(id: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting dashboard from service per devicetype');\r\n return this.http.get(this.url + id + '/dashboard?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): Customer[] {\r\n\r\n const customers: Customer[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const customer = this.parseResponseData(item);\r\n customers.push(customer);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return customers;\r\n }\r\n\r\n getIssuesPerIssueType(id: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting dashboard from service per issuetype');\r\n return this.http.get(this.url + id + '/IssuesPerIssueType?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [this.translatorService.translate(k, 'enums.issuetypes'), data[k]]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponseData(item) {\r\n const customer = new Customer();\r\n customer.id = item.id;\r\n customer.name = item.name;\r\n customer.count = item.count;\r\n customer.platformId = item.platformId;\r\n customer.platformName = item.platformName;\r\n customer.accountPlatformId = item.accountPlatformId;\r\n customer.accountPlatformName = item.accountPlatformName;\r\n customer.createdDate = item.createdDate ? moment(item.createdDate.replace(' ', '')).toDate() : null;\r\n customer.modifiedDate = item.modifiedDate ? moment(item.modifiedDate.replace(' ', '')).toDate() : null;\r\n customer.referenceId = item.referenceId;\r\n return customer;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Dashboard, LocationCount, AdminDashboard } from '../../models/dashboard.model';\r\nimport { DashboardNotification } from '../../models/notification.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class DashboardService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private translate: TranslateService, private translatorService: TranslatorService, private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('dashboard');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getNotification(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting notification from service');\r\n return this.http.get(this.authenticationService.getWebserviceURL('account') + 'Notification', { headers: headers })\r\n .map((data) => {\r\n if (data) {\r\n const parsedResponse = this.parseNotifications(data);\r\n return parsedResponse;\r\n }\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseNotifications(json: any): DashboardNotification[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' notifications.');\r\n\r\n const notifications: DashboardNotification[] = [];\r\n json.forEach(item => {\r\n const notification = this.parseNotificationResponse(item);\r\n notifications.push(notification);\r\n });\r\n return notifications;\r\n }\r\n\r\n getDashboard(start, end, accountPlatform?, customerId?): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n accountPlatformIds: accountPlatform,\r\n customerIds: customerId,\r\n }\r\n\r\n console.log('getting dashboard from service from ' + start + ' to ' + end);\r\n return this.http.post(this.url\r\n + '?start=' + Math.round(start / 1000)\r\n + '&end=' + Math.round(end / 1000),\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAdminDashboard(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting admin dashboard from service');\r\n return this.http.get(this.url + 'Administrator', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseAdminResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDashboardIssuesPerIssueType(start, end, accountPlatform?, customerId?): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n accountPlatformIds: accountPlatform,\r\n customerIds: customerId,\r\n }\r\n\r\n console.log('getting dashboard from service per issuetype');\r\n return this.http.post(this.url + 'IssuesPerIssueType'\r\n + '?start=' + Math.round(start / 1000)\r\n + '&end=' + Math.round(end / 1000),\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [this.translatorService.translate(k, 'enums.issuetypes'), data[k]]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getDashboardIssuesPerCustomer(start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting dashboard from service per customer');\r\n return this.http.get(this.url + 'IssuesPerCustomer?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [k, data[k]]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDashboardIssuesPerDeviceType(start, end, accountPlatform?, customerId?): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n accountPlatformIds: accountPlatform,\r\n customerIds: customerId,\r\n }\r\n\r\n console.log('getting dashboard from service per devicetype');\r\n return this.http.post(this.url + 'IssuesPerDeviceType'\r\n + '?start=' + Math.round(start / 1000)\r\n + '&end=' + Math.round(end / 1000),\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [k, data[k]]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDashboardMessageCount(start, end, accountPlatform?, customerId?): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n accountPlatformIds: accountPlatform,\r\n customerIds: customerId,\r\n }\r\n\r\n console.log('getting dashboard locationCount from service per devicetype from ' + start + ' to ' + end);\r\n return this.http.post(this.url + 'GetMessageCountByDay'\r\n + '?start=' + Math.round(start / 1000)\r\n + '&end=' + Math.round(end / 1000),\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data: any) => {\r\n const returnobject = Object.keys(data).map(k => [(parseFloat(k) * 1000), data[k].item1, data[k].item2]);\r\n return returnobject;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDashboardIssueCount(start, end, accountPlatform?, customerId?): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n accountPlatformIds: accountPlatform,\r\n customerIds: customerId,\r\n }\r\n\r\n console.log('getting dashboard locationCount from service per devicetype from ' + start + ' to ' + end);\r\n return this.http.post(this.url + 'GetIssueCountByDay'\r\n + '?start=' + Math.round(start / 1000)\r\n + '&end=' + Math.round(end / 1000),\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [(parseFloat(k) * 1000), data[k].issueCount]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n\r\n parseAdminResponse(json: any): AdminDashboard {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' dashboard.');\r\n\r\n const dashboard = new AdminDashboard();\r\n\r\n dashboard.issueCount = json.issueCount;\r\n dashboard.accountsWithoutIssues = json.accountsWithoutIssues;\r\n dashboard.activeAccounts = json.activeAccounts;\r\n dashboard.activeJobCount = json.activeJobCount;\r\n dashboard.activeUsers = json.activeUsers;\r\n dashboard.historyJobCount = json.historyJobCount;\r\n\r\n return dashboard;\r\n }\r\n\r\n parseResponse(json: any): Dashboard {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' dashboard.');\r\n\r\n const dashboard = new Dashboard();\r\n dashboard.deviceCount = json.deviceCount;\r\n dashboard.allDeviceCount = json.allDeviceCount;\r\n dashboard.assetCount = json.assetCount;\r\n dashboard.trailerCount = json.trailerCount;\r\n dashboard.issueCount = json.issueCount;\r\n dashboard.deviceWithIssues = json.deviceWithIssuesCount;\r\n dashboard.deviceWithIssuesMax = json.deviceWithIssuesCountMax;\r\n dashboard.deviceTypesCount = json.deviceTypesCount;\r\n\r\n dashboard.assetTypeCount = json.assetTypeCount;\r\n dashboard.assetTypesUsedCount = json.assetTypesUsedCount;\r\n dashboard.driverCount = json.driverCount;\r\n\r\n dashboard.deviceCountLastPeriod = json.deviceCountLastPeriod;\r\n dashboard.issueCountLastPeriod = json.issueCountLastPeriod;\r\n dashboard.deviceWithIssuesLastPeriod = json.deviceWithIssuesCountLastPeriod;\r\n dashboard.deviceTypesCountLastPeriod = json.deviceTypesCountLastPeriod;\r\n\r\n dashboard.worstDevices = json.worstDevices;\r\n\r\n dashboard.healthyCount = 100 - Math.round(json.deviceWithIssuesCount > 0 ? (json.deviceWithIssuesCount / json.deviceCount) * 100 : 0);\r\n dashboard.healthyCountLastPeriod = 100 - Math.round(json.deviceWithIssuesCountLastPeriod > 0 ? (json.deviceWithIssuesCountLastPeriod / json.deviceCountLastPeriod) * 100 : 0);\r\n this.timestamp = new Date().getTime();\r\n return dashboard;\r\n }\r\n\r\n parseNotificationResponse(json: any): DashboardNotification {\r\n\r\n const notification = new DashboardNotification();\r\n notification.message = json.message;\r\n notification.code = json.code;\r\n notification.type = json.type;\r\n notification.data1 = json.data1;\r\n notification.data2 = json.data2;\r\n\r\n return notification;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Device, DeviceDashboard, IntermediateDevice } from '../../models/device.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { DeviceType } from '../../models/devicetype.model';\r\nimport { Manufacturer } from '../../models/manufacturer.model';\r\nimport { LocationCount } from '../../models/dashboard.model';\r\nimport { DATE } from 'ngx-bootstrap/chronos/units/constants';\r\n\r\n@Injectable()\r\nexport class DeviceService {\r\n url = '';\r\n Devices: Device[] = [];\r\n inventory_url: string;\r\n urlFleetOverview = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = this.authenticationService.getWebserviceURL('device');\r\n this.urlFleetOverview = this.authenticationService.getFleetOverviewUrl('');\r\n this.inventory_url = this.authenticationService.getInventoryURL('device');\r\n }\r\n\r\n getPagingUrl() {\r\n return this.url + 'PagedDevices';\r\n }\r\n\r\n getPagingWithIssuesUrl() {\r\n return this.url + 'PagedDevicesWithIssues';\r\n }\r\n\r\n getPagingWithIssueTypesUrl() {\r\n return this.url + 'PagedDevicesWithIssueTypes';\r\n }\r\n\r\n getDevices(setDefinate = true, onlyFromMemmory = false): Observable {\r\n\r\n if (this.Devices.length !== 0) {\r\n return of(this.Devices);\r\n }\r\n\r\n console.log('getting devices from service');\r\n return this.http.get(this.url, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n if (setDefinate) {\r\n console.log('setting Devices');\r\n this.Devices = parsedResponse;\r\n }\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDeviceLocations(lookupDate): Observable {\r\n\r\n console.log('getting devices from service');\r\n return this.http.get(this.urlFleetOverview + 'Location/' + lookupDate + '/All', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDevicesWithIssues(start, end): Observable {\r\n console.log('getting devices from service');\r\n return this.http.get(this.url + 'GetDevicesWithIssues/?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDeviceById(id: string): Observable {\r\n console.log('Fetch device by id ' + id);\r\n return this.http.get(this.url + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseReponseDetails(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveDevice(device: Device): Observable {\r\n console.log('save device');\r\n\r\n const intermediateDevice = new IntermediateDevice();\r\n intermediateDevice.assetId = device.assetId;\r\n intermediateDevice.id = device.id;\r\n intermediateDevice.name = device.name;\r\n intermediateDevice.phone = device.phone;\r\n intermediateDevice.unitId = device.unitId;\r\n intermediateDevice.accountPlatformId = device.accountPlatformId;\r\n\r\n return this.http.put(this.inventory_url, intermediateDevice, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n createDevice(device: Device): Observable {\r\n console.log('save device');\r\n\r\n const intermediateDevice = new IntermediateDevice();\r\n intermediateDevice.id = device.id;\r\n intermediateDevice.name = device.name;\r\n intermediateDevice.phone = device.phone;\r\n intermediateDevice.unitId = device.unitId;\r\n intermediateDevice.accountPlatformId = device.accountPlatformId\r\n\r\n intermediateDevice.deviceType = {};\r\n intermediateDevice.deviceType.id = device.deviceTypeId;\r\n\r\n return this.http.post(this.inventory_url, intermediateDevice, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n resetDeviceCache(): Observable {\r\n return this.http.get(this.url + 'ResetCache', { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveNote(device: Device): Observable {\r\n\r\n const post = { Note: device.note, isNoteWarning: device.isNoteWarning };\r\n const body = JSON.stringify(post);\r\n\r\n return this.http.post(this.url + device.id + '/Note', body, { headers: this.authenticationService.headers })\r\n .map(result => {\r\n console.log(result);\r\n return true;\r\n }).catch(this.handleError);\r\n }\r\n\r\n saveFlagged(device: Device): Observable {\r\n\r\n const post = { IsFlagged: device.isFlagged };\r\n const body = JSON.stringify(post);\r\n\r\n return this.http.post(this.url + device.id + '/Flagged', body, { headers: this.authenticationService.headers })\r\n .map(result => {\r\n console.log(result);\r\n return true;\r\n }).catch(this.handleError);\r\n }\r\n\r\n saveIssueCalculation(device: Device): Observable {\r\n\r\n const post = { HasIssueCalculationEnabled: device.hasIssueCalculationEnabled };\r\n const body = JSON.stringify(post);\r\n\r\n return this.http.post(this.url + device.id + '/IssueCalculation', body, { headers: this.authenticationService.headers })\r\n .map(result => {\r\n console.log(result);\r\n return true;\r\n }).catch(this.handleError);\r\n }\r\n // Other properties\r\n\r\n getDashboardById(id: string): Observable {\r\n console.log('Fetch device by id ' + id);\r\n return this.http.get(this.url + id + '/Dashboard', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getDeviceSensorsById(id: string): Observable {\r\n console.log('Fetch device sensors by id ' + id);\r\n return this.http.get(this.url + id + '/Sensors/', { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDevicesByDeviceType(id: string) {\r\n console.log('getting devices from service');\r\n return this.http.get(this.url + 'deviceType/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDevicesByCustomer(id: string) {\r\n console.log('getting devices from service');\r\n return this.http.get(this.url + 'customer/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDevicesByDriverId(id: string) {\r\n console.log('getting devices from service');\r\n return this.http.get(this.url + 'driver/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDevicesByAccountPlatform(id: string) {\r\n console.log('getting devices from service');\r\n return this.http.get(this.url + 'accountplatform/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getLocationCount(id: string, start, end): Observable {\r\n console.log('getting dashboard locationCount from service per devicetype');\r\n return this.http.get(this.url + id + '/GetMessageCountByDay/?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [(parseFloat(k) * 1000), data[k].item1, data[k].item2]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getIssueCount(id: string, start, end): Observable {\r\n console.log('getting dashboard locationCount from service per devicetype');\r\n return this.http.get(this.url + id + '/GetIssueCountByDay/?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n if (data) {\r\n if (Object.keys(data).length && typeof data[Object.keys(data)[0]] === 'number') {\r\n return {\r\n issueCount: Object.keys(data).map(k => [(parseFloat(k) * 1000), data[k]])\r\n }\r\n }\r\n return {\r\n issueCount: Object.keys(data).map(k => [(parseFloat(k) * 1000), data[k].issueCount]),\r\n issueTypes: Object.keys(data).map(k => [(parseFloat(k) * 1000), data[k].issueTypeCSV.split(',')]),\r\n };\r\n }\r\n return { issueCount: [] }\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): Device[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Devices.');\r\n\r\n const ident = 1;\r\n const devices: Device[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const device = this.parseReponseDetails(item);\r\n\r\n devices.push(device);\r\n });\r\n\r\n return devices;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n const device = new Device();\r\n device.id = item.id;\r\n device.assetId = item.assetId;\r\n device.createdDate = item.createdDate ? moment(item.createdDate.replace(' ', '')).toDate() : new Date();\r\n device.name = item.name;\r\n device.customFields = item.customFields;\r\n device.lastCommunication = item.lastCommunication ? moment(item.lastCommunication.replace(' ', '')).toDate() : new Date();\r\n device.modifiedDate = item.modifiedDate ? moment(item.modifiedDate.replace(' ', '')).toDate() : new Date();\r\n device.endDate = item.endDate ? moment(item.endDate.replace(' ', '')).toDate() : null;\r\n device.isEnded = device.endDate != null && device.endDate.getTime() < new Date().getTime();\r\n device.phone = item.phone;\r\n device.referenceId = item.referenceId;\r\n device.unitId = item.unitId;\r\n device.unitId2 = item.unitId2;\r\n device.modelName = item.modelName;\r\n device.modelId = item.modelId;\r\n device.modelThumb = item.modelThumb;\r\n device.manufacturer = item.manufacturer;\r\n device.manufacturerName = item.manufacturerName;\r\n device.sensors = item.sensors;\r\n device.issueCount = item.issueCount;\r\n\r\n device.platformId = item.platformId;\r\n device.platformName = item.platformName;\r\n\r\n device.referenceLink = '#';\r\n if (device.platformName === 'FlespiWasl' && device.referenceId) {\r\n device.referenceLink = 'https://flespi.io/#/panel/list/devices/' + device.referenceId;\r\n }\r\n\r\n device.accountPlatformId = item.accountPlatformId;\r\n device.accountPlatformName = item.accountPlatformName;\r\n\r\n device.customerId = item.customerId;\r\n device.customerName = item.customerName;\r\n\r\n device.note = item.note;\r\n device.isNoteWarning = item.isNoteWarning;\r\n\r\n device.isFlagged = item.isFlagged;\r\n\r\n device.hasIssueCalculationEnabled = item.hasIssueCalculationEnabled;\r\n device.firmware = item.firmware;\r\n\r\n if (item.lastPosition && item.lastPosition.indexOf(',') > -1) {\r\n const latlngStr = item.lastPosition.split(',', 2);\r\n const lat = parseFloat(latlngStr[0]);\r\n const lng = parseFloat(latlngStr[1]);\r\n\r\n device.lastPosition = item.lastPosition ? new Location(latlngStr[1], latlngStr[0]) : null // new Location({ });\r\n }\r\n\r\n if (item.model) {\r\n const deviceType = new DeviceType();\r\n deviceType.id = item.model.id;\r\n deviceType.name = item.model.name;\r\n device.deviceName = item.model.name;\r\n deviceType.code = item.model.code;\r\n deviceType.createdDate = item.model.createdDate ? moment(item.model.createdDate.replace(' ', '')).toDate() : new Date();\r\n deviceType.modifiedDate = item.model.modifiedDate ? moment(item.model.modifiedDate.replace(' ', '')).toDate() : new Date();\r\n\r\n if (item.model.manufacturer) {\r\n const manufacturer = new Manufacturer();\r\n manufacturer.id = item.model.manufacturer.id\r\n manufacturer.name = item.model.manufacturer.name\r\n device.manufacturerName = manufacturer.name;\r\n manufacturer.createdDate = moment(item.model.manufacturer.createdDate.replace(' ', '')).toDate();\r\n manufacturer.modifiedDate = moment(item.model.manufacturer.modifiedDate.replace(' ', '')).toDate();\r\n deviceType.manufacturer = manufacturer;\r\n }\r\n\r\n device.deviceType = deviceType;\r\n }\r\n\r\n return device;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\nimport { of } from 'rxjs/observable/of';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { DeviceType } from '../../models/devicetype.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { Manufacturer } from '../../models/manufacturer.model';\r\nimport { IssueType } from '../../models/issuetype.model';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class DeviceTypeService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n public DeviceTypes: DeviceType[] = [];\r\n\r\n constructor(private http: HttpClient, private translatorService: TranslatorService, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('devicetype');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getDeviceTypes(setDefinate = true, includeThumbnails = true, excludeUnused = true): Observable {\r\n\r\n if (setDefinate && this.DeviceTypes.length !== 0) {\r\n return of(this.DeviceTypes);\r\n }\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting devicetypes from service');\r\n return this.http.get(this.url + '?includeThumbnails=' + includeThumbnails + '&excludeUnused=' + excludeUnused, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n if (setDefinate) {\r\n console.log('setting DeviceTypes');\r\n this.DeviceTypes = parsedResponse;\r\n }\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getDeviceTypeById(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting devicetypes from service');\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponseData(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getDeviceTypeDashboard(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting dashboard from service per devicetype');\r\n return this.http.get(this.url + id + '/dashboard/', { headers: headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDeviceTypeIssueTypes(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting dashboard from service per devicetype');\r\n return this.http.get(this.url + id + '/issuetypes/', { headers: headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getIssuesPerIssueType(id: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting dashboard from service per issuetype');\r\n return this.http.get(this.url + id + '/IssuesPerIssueType?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data: any) => {\r\n return Object.keys(data).map(k => [this.translatorService.translate(k, 'enums.issuetypes'), data[k]]);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDeviceTypesWithCount(setDefinate = true): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting devicetypes from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDeviceTypesChart(start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting devicetypes from service');\r\n return this.http.get(this.url + 'chart/?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n\r\n parseResponse(json: any): DeviceType[] {\r\n\r\n const deviceTypes: DeviceType[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n\r\n const deviceType = this.parseResponseData(item);\r\n\r\n deviceTypes.push(deviceType);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return deviceTypes;\r\n }\r\n\r\n parseResponseData(item) {\r\n const deviceType = new DeviceType();\r\n deviceType.id = item.id;\r\n deviceType.name = item.name;\r\n deviceType.code = item.code;\r\n deviceType.image = item.image;\r\n deviceType.thumbnail = item.thumbnail;\r\n deviceType.createdDate = item.createdDate ? moment(item.createdDate.replace(' ', '')).toDate() : null;\r\n deviceType.modifiedDate = item.modifiedDate ? moment(item.modifiedDate.replace(' ', '')).toDate() : null;\r\n deviceType.deviceCount = item.deviceCount;\r\n deviceType.manufacturerName = item.manufacturerName;\r\n\r\n deviceType.referenceId = item.referenceId;\r\n deviceType.issueCount = 0;\r\n return deviceType;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Driver, AssetDriver, WaslDriver } from '../../models/driver.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { fixDate } from '../common/functions.service';\r\n\r\n@Injectable()\r\nexport class DriverService {\r\n url = '';\r\n inventoryUrl = '';\r\n Drivers: Driver[] = [];\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = this.authenticationService.getWebserviceURL('driver');\r\n this.inventoryUrl = this.authenticationService.getInventoryURL('driver');\r\n }\r\n\r\n getPagingUrl() {\r\n return this.url + 'PagedDrivers';\r\n }\r\n\r\n getDrivers(): Observable {\r\n console.log('getting drivers from service');\r\n return this.http.get(this.url, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getDriverById(id: string): Observable {\r\n console.log('Fetch driver by id ' + id);\r\n return this.http.get(this.url + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n return this.parseReponseDetails(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveDriver(driver: Driver): Observable {\r\n console.log('save driver', driver);\r\n\r\n driver.dateOfBirth = fixDate(driver.dateOfBirth);\r\n\r\n return this.http.post(this.inventoryUrl, driver, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n updateDriver(driver: Driver): Observable {\r\n console.log('update driver', driver);\r\n\r\n driver.dateOfBirth = fixDate(driver.dateOfBirth);\r\n\r\n return this.http.put(this.inventoryUrl, driver, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n resetCache(): Observable {\r\n return this.http.get(this.url + 'ResetCache', { headers: this.authenticationService.headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDriversByDeviceId(id: string): Observable {\r\n console.log('Fetch drivers by id ' + id);\r\n return this.http.get(this.url + 'Device/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDriversByAssetId(id: string): Observable {\r\n console.log('Fetch drivers by id ' + id);\r\n return this.http.get(this.url + 'Asset/' + id, { headers: this.authenticationService.headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return Observable.throw(error);\r\n }\r\n\r\n parseResponse(json: any): Driver[] {\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Drivers.');\r\n\r\n const ident = 1;\r\n const drivers: Driver[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const driver = this.parseReponseDetails(item);\r\n drivers.push(driver);\r\n });\r\n\r\n return drivers;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n const driver = new Driver();\r\n driver.id = item.id;\r\n driver.name = item.name;\r\n driver.referenceId = item.referenceId;\r\n driver.code = item.code;\r\n driver.dateOfBirth = new Date(item.dateOfBirth);\r\n driver.phone = item.phone;\r\n driver.accountPlatformId = item.accountPlatformId;\r\n\r\n\r\n if (item.assetDriverDto != null) {\r\n const assetDriver = item.assetDriverDto;\r\n driver.assetDriver = new AssetDriver();\r\n driver.assetDriver.id = assetDriver.assetDriverId;\r\n driver.assetDriver.startDate = assetDriver.startDate;\r\n driver.assetDriver.endDate = assetDriver.endDate;\r\n driver.assetDriver.type = assetDriver.type;\r\n\r\n driver.isActive = (assetDriver.endDate == null || new Date(assetDriver.endDate) > new Date());\r\n }\r\n\r\n if (item.properties) {\r\n if (item.properties.wasl) {\r\n const wasl = new WaslDriver();\r\n wasl.referenceKey = item.properties.wasl.referenceKey;\r\n wasl.identityNumber = item.properties.wasl.identityNumber;\r\n wasl.dateOfBirthGregorian = item.properties.wasl.dateOfBirthGregorian;\r\n wasl.mobileNumber = item.properties.wasl.mobileNumber;\r\n\r\n driver.properties.wasl = wasl;\r\n }\r\n }\r\n\r\n return driver;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\n@Injectable()\r\nexport class EventService {\r\n\r\n // Observable assetCount source\r\n private assetCount = new Subject();\r\n\r\n // Observable assetCount stream\r\n assetCount$ = this.assetCount.asObservable();\r\n\r\n // Whitelabel\r\n private whitelabel = new Subject();\r\n onWhitelabelChance = this.whitelabel.asObservable();\r\n\r\n setAssetsUpdated(bool) {\r\n this.assetCount.next(bool);\r\n }\r\n\r\n setWhitelabel(whitelabel) {\r\n this.whitelabel.next(whitelabel);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { of } from 'rxjs/observable/of';\r\n\r\n\r\n@Injectable()\r\nexport class GridService {\r\n\r\n constructor() {\r\n }\r\n\r\n getGridPresets(constructorName): Observable {\r\n return of(JSON.parse(localStorage.getItem('Presets_' + constructorName)));\r\n }\r\n\r\n saveGridPresets(constructorName, presetList): Observable {\r\n localStorage.setItem('Presets_' + constructorName, JSON.stringify(presetList));\r\n return of(true);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Question } from '../../models/question';\r\n\r\n\r\n@Injectable()\r\nexport class FaqService {\r\n questions: Question[];\r\n constructor() {\r\n this.questions = [];\r\n }\r\n\r\n getQuestions() {\r\n if (localStorage.getItem('questions') !== null) {\r\n this.questions = JSON.parse(localStorage.getItem('questions'));\r\n console.log(this.questions);\r\n } else {\r\n console.log('questions = 0');\r\n this.questions = [\r\n {\r\n text: 'What is this application ?',\r\n answer: 'With this application you can analise the devices in your assets. Many times you only see problems with your assets very late. We made this application to help you',\r\n hide: true\r\n },\r\n {\r\n text: 'Who are you?',\r\n answer: 'We are 360Locate, A company based in Rotterdam, Netherlands... specialised in asset tracking and analising.',\r\n hide: true\r\n }\r\n ];\r\n }\r\n\r\n return this.questions;\r\n }\r\n\r\n addQuestion(question: Question) {\r\n this.questions.unshift(question);\r\n let questionsLS = [];\r\n if (localStorage.getItem('questions') != null) {\r\n questionsLS = JSON.parse(localStorage.getItem('questions'));\r\n }\r\n questionsLS.unshift(question);\r\n localStorage.setItem('questions', JSON.stringify(questionsLS));\r\n\r\n }\r\n\r\n removeQuestion(question: Question) {\r\n\r\n for (let i = 0; i < this.questions.length; i++) {\r\n if (this.questions[i] === question) {\r\n this.questions.splice(i, 1);\r\n localStorage.setItem('questions', JSON.stringify(this.questions));\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n\r\n@Injectable()\r\nexport class InfoService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private translatorService: TranslatorService, private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('info');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getEndPoint() {\r\n return this.authenticationService.getWebserviceURL('');\r\n }\r\n\r\n getInfo(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch info');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Issue, IssueJson } from '../../models/issue.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { Device } from '../../models/device.model';\r\nimport { DeviceType } from '../../models/devicetype.model';\r\nimport { Manufacturer } from '../../models/manufacturer.model';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport * as moment from 'moment-timezone';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class IssueService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private translatorService: TranslatorService, private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('issue');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getPagingUrl() {\r\n return this.url + 'PagedIssues';\r\n }\r\n\r\n getIssueById(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch issue by id ' + id);\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseReponseDetails(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getIssueJsonById(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch issue geojson by id ' + id);\r\n return this.http.get(this.url + 'GeoJson/' + id, { headers: headers })\r\n .map((data: any) => {\r\n const issue = new IssueJson();\r\n\r\n issue.id = data.id;\r\n issue.geoJson = data.json;\r\n return issue;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n resetIssueCache(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + 'ResetCache', { headers: headers })\r\n .map((data: any) => {\r\n return data;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getIssues(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting issues from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getIssuesWithLocation(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting issues from service');\r\n return this.http.get(this.url + 'locations', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n getIssuesByDevice(id: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting issues from service');\r\n return this.http.get(this.url + 'device/' + id + '/?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getIssuesByDeviceType(id: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting issues from service');\r\n return this.http.get(this.url + 'devicetype/' + id + '/?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n\r\n parseResponse(json: any): Issue[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' issues.');\r\n\r\n const ident = 1;\r\n const issues: Issue[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n const issue = this.parseReponseDetails(item);\r\n issues.push(issue);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return issues;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n const issue = new Issue();\r\n\r\n issue.id = item.id;\r\n\r\n issue.date = moment.utc(item.issueDate).toDate();\r\n issue.issueDate = item.issueDate ? moment.utc(item.issueDate).tz(this.authenticationService.getTimeZoneIana()) : null;\r\n issue.issueDateFormatted = item.issueDate ? moment.utc(item.issueDate).tz(this.authenticationService.getTimeZoneIana()).format('LLLL Z') : '';\r\n issue.issueType = item.issueType;\r\n issue.issueTypeId = item.issueTypeId;\r\n issue.deviceTypeName = item.deviceTypeName;\r\n issue.issueTypeDescription = this.translatorService.translate(item.issueTypeDescription, 'enums.issuetypes');\r\n issue.issueTypeUom = item.issueTypeUom ? item.issueTypeUom : 0;\r\n issue.issueTypeUomDescription = this.translatorService.translate(issue.issueTypeUom.toString(), 'enums.issuetypesuom');\r\n issue.issueTypeUomDisplay = item.issueTypeUomDisplay ? item.issueTypeUomDisplay : 0;\r\n issue.issueTypeUomDisplayDescription = this.translatorService.translate(issue.issueTypeUomDisplay.toString(), 'enums.issuetypesuom');\r\n issue.issueTypeEditableThresholds = item.issueTypeEditableThresholds;\r\n issue.closedDate = item.closedDate ? moment.utc(item.closedDate.replace(' ', '')).tz(this.authenticationService.getTimeZoneIana()).toDate() : null;\r\n issue.status = item.status ? item.status : 0;\r\n issue.statusDescription = this.translatorService.translate(issue.status.toString(), 'enums.issuestatus');\r\n issue.resolutionDescription = this.translatorService.translate(item.issueTypeDescription, 'enums.issuetypes.resolution');\r\n issue.resolutionType = item.resolutionType;\r\n issue.deviceName = item.deviceName;\r\n issue.deviceId = item.deviceId;\r\n issue.hasTelemetrySummary = item.hasTelemetrySummary;\r\n issue.hasDurationThreshold = item.hasDurationThreshold;\r\n\r\n issue.violationDuration = item.violationDuration;\r\n issue.violationLowerThreshold = item.violationLowerThreshold;\r\n issue.violationUpperThreshold = item.violationUpperThreshold;\r\n\r\n issue.noGpsFixCount = item.noGpsFixCount\r\n\r\n issue.sensorName = item.sensorName;\r\n issue.deviceSensorTypeId = item.deviceSensorTypeId;\r\n\r\n if (item.position && item.position.indexOf(',') > -1 && item.position.indexOf('geometry') === -1) {\r\n const latlngStr = item.position.split(',', 2);\r\n const lat = parseFloat(latlngStr[0]);\r\n const lng = parseFloat(latlngStr[1]);\r\n\r\n issue.position = item.position ? new Location(latlngStr[1], latlngStr[0]) : null // new Location({ });\r\n }\r\n\r\n issue.severity = item.severity;\r\n issue.hasMotion = item.hasMotion;\r\n issue.ignitionCount = item.ignitionCount;\r\n issue.messageCount = item.messageCount\r\n issue.distanceInMeters = item.distanceInMeters;\r\n issue.distanceInKm = item.distanceInMeters > 0 ? (item.distanceInMeters / 1000).toFixed(1) : '0';\r\n\r\n if (item.device) {\r\n const device = new Device();\r\n device.id = item.device.id;\r\n device.createdDate = moment(item.device.createdDate.replace(' ', '')).toDate();\r\n device.name = item.device.name;\r\n issue.deviceName = item.device.name;\r\n issue.lastPosition = item.device.lastPosition;\r\n issue.device = device;\r\n }\r\n\r\n if (item.model) {\r\n const deviceType = new DeviceType();\r\n deviceType.id = item.model.id;\r\n deviceType.name = item.model.name;\r\n deviceType.code = item.model.code;\r\n deviceType.createdDate = moment(item.model.createdDate.replace(' ', '')).toDate();\r\n deviceType.modifiedDate = moment(item.model.modifiedDate.replace(' ', '')).toDate();\r\n\r\n if (item.model.manufacturer) {\r\n const manufacturer = new Manufacturer();\r\n manufacturer.id = item.model.manufacturer.id\r\n manufacturer.name = item.model.manufacturer.name\r\n manufacturer.createdDate = moment(item.model.manufacturer.createdDate.replace(' ', '')).toDate();\r\n manufacturer.modifiedDate = moment(item.model.manufacturer.modifiedDate.replace(' ', '')).toDate();\r\n deviceType.manufacturer = manufacturer;\r\n }\r\n issue.deviceType = deviceType;\r\n }\r\n\r\n issue.duration = item.duration;\r\n issue.lowerThreshold = item.lowerThreshold;\r\n issue.upperThreshold = item.upperThreshold;\r\n\r\n return issue;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { of } from 'rxjs/observable/of';\r\nimport * as moment from 'moment';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { IssueType } from '../../models/issuetype.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class IssueTypeService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n public IssueTypes: IssueType[] = [];\r\n\r\n constructor(private translatorService: TranslatorService, private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('issuetype');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getIssueTypes(setDefinate = true): Observable {\r\n\r\n if (this.IssueTypes.length !== 0) {\r\n return of(this.IssueTypes);\r\n }\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting issuetypes from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n if (setDefinate) {\r\n console.log('setting IssueTypes');\r\n this.IssueTypes = parsedResponse;\r\n }\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): IssueType[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' IssueTypes.');\r\n\r\n const ident = 1;\r\n const issueTypes: IssueType[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n\r\n const issueType = this.parseResponseDetails(item);\r\n issueTypes.push(issueType);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return issueTypes;\r\n }\r\n\r\n parseResponseDetails(item) {\r\n const issueType = new IssueType();\r\n issueType.id = item.id;\r\n issueType.name = this.translatorService.translate(item.name, 'enums.issuetypes');\r\n issueType.uom = item.uom;\r\n issueType.uomDescription = this.translatorService.translate(item.uom.toString(), 'enums.issuetypesuom');\r\n issueType.thresholdHasBounds = item.thresholdHasBounds;\r\n issueType.hasDuration = item.hasDuration;\r\n issueType.count = 0;\r\n issueType.category = item.category;\r\n issueType.displayUom = item.displayUom;\r\n issueType.editableThresholds = item.editableThresholds;\r\n return issueType;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\nimport * as moment from 'moment-timezone';\r\nimport 'rxjs/add/operator/map'\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { Job, JobHistoryLog } from 'app/models/jobs.model';\r\n\r\n@Injectable()\r\nexport class JobsService {\r\n\r\n token: string;\r\n timestamp;\r\n jobUrl = '';\r\n jobHistoryUrl = '';\r\n\r\n\r\n constructor(private http: HttpClient, private translatorService: TranslatorService, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.jobUrl = authenticationService.getWebserviceURL('job');\r\n this.jobHistoryUrl = authenticationService.getWebserviceURL('jobHistoryLog');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getActiveJobs(): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting customers from service');\r\n return this.http.get(this.jobUrl, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getHistoryJobs(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting customers from service');\r\n return this.http.get(this.jobHistoryUrl, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseHistoryResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): Job[] {\r\n\r\n const jobs: Job[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const job = this.parseResponseData(item);\r\n jobs.push(job);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return jobs;\r\n }\r\n\r\n\r\n parseHistoryResponse(json: any): JobHistoryLog[] {\r\n\r\n const jobs: JobHistoryLog[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const job = this.parseHistoryResponseData(item);\r\n jobs.push(job);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return jobs;\r\n }\r\n\r\n parseResponseData(item) {\r\n const job = new Job();\r\n\r\n job.isRunning = item.isRunning;\r\n job.lastRuntime = item.lastRuntime;\r\n job.accountId = item.accountId;\r\n job.accountName = item.accountName;\r\n job.nextRun = item.nextRun;\r\n job.lastStatus = item.lastStatus;\r\n\r\n return job;\r\n }\r\n\r\n parseHistoryResponseData(item) {\r\n const job = new JobHistoryLog();\r\n\r\n job.accountId = item.accountId;\r\n job.accountName = item.accountName;\r\n job.endJob = item.endJob;\r\n job.totalDeviceCount = item.totalDeviceCount;\r\n job.devicesErrorCount = item.devicesErrorCount;\r\n job.devicesProcessedCount = item.devicesProcessedCount;\r\n job.devicesSkippedCount = item.devicesSkippedCount;\r\n job.fromDate = item.fromDate;\r\n job.issues = item.issues;\r\n job.jobId = item.jobId;\r\n job.messages = item.messages;\r\n job.startJob = item.startJob;\r\n job.status = item.status;\r\n job.toDate = item.toDate;\r\n job.duration = moment(item.endJob).diff(moment(item.startJob));\r\n\r\n return job;\r\n }\r\n}\r\n","import { Http, Headers, RequestOptions, Response } from '@angular/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Config } from '../../models/config.model';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\nimport { ErrorLog } from '../../models/errorlog.model';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class ErrorLogService {\r\n\r\n url: string;\r\n token: string;\r\n public config: Config;\r\n\r\n // I initialize the service.\r\n constructor(private http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n // I log the given error to various aggregation and tracking services.\r\n public logError(error: any): void {\r\n // Internal tracking.\r\n this.sendToConsole(error);\r\n this.sendToServer(error);\r\n }\r\n\r\n public logErrorString(caller: any, error: any): void {\r\n this.logError(new CustomError(caller + ' , ' + error));\r\n }\r\n\r\n // I send the error the browser console (safely, if it exists).\r\n private sendToConsole(error: any): void {\r\n if (console && console.group && console.error) {\r\n console.group('Error Log Service');\r\n console.error(error);\r\n console.error(error.message);\r\n console.error(error.stack);\r\n console.groupEnd();\r\n }\r\n }\r\n\r\n getErrorLogs(): Observable {\r\n\r\n this.token = AuthenticationService.getStaticToken();\r\n this.url = AuthenticationService.getStaticClusterUrl();\r\n\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting auditlog from service');\r\n return this.http.get(this.url + 'errorlog', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): ErrorLog[] {\r\n const ident = 1;\r\n const auditlogs: ErrorLog[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const auditlog = new ErrorLog();\r\n auditlog.id = item.id;\r\n auditlog.description = item.description;\r\n auditlog.stack = item.stack;\r\n auditlog.location = item.location;\r\n auditlog.username = item.userName;\r\n auditlog.message = item.message;\r\n auditlog.createddate = item.createdDate;\r\n\r\n auditlogs.push(auditlog);\r\n });\r\n\r\n return auditlogs;\r\n }\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return throwError(error);\r\n }\r\n\r\n // I send the error to the server-side error tracking end-point.\r\n private sendToServer(error: any): void {\r\n\r\n console.log('Error send to server');\r\n\r\n\r\n this.token = AuthenticationService.getStaticToken();\r\n this.url = AuthenticationService.getStaticClusterUrl();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n\r\n this.http.post(this.url + 'ErrorLog',\r\n {\r\n Location: window.location.href,\r\n Name: error.name,\r\n Message: error.message,\r\n Stack: error.stack\r\n }, { headers: headers }\r\n ).subscribe(\r\n (httpResponse: Response): void => { },\r\n (httpError: any): void => { });\r\n\r\n }\r\n}\r\n\r\nexport function CustomError(message) {\r\n this.name = 'Custom Error';\r\n this.message = message || 'Default Message';\r\n this.stack = (new Error()).stack;\r\n}\r\n","// Import the core angular services.\r\nimport { ErrorHandler, InjectionToken, Inject, Injectable } from '@angular/core';\r\n\r\n// Import the application components and services.\r\nimport { ErrorLogService } from './error-log.service';\r\n\r\nexport class LoggingErrorHandlerOptions {\r\n rethrowError: boolean;\r\n unwrapError: boolean;\r\n}\r\n\r\nexport const LoggingErrorHandlerOptionsTokens = new InjectionToken('error.handler.options');\r\n\r\n@Injectable()\r\nexport class LoggingErrorHandler implements ErrorHandler {\r\n\r\n private errorLogService: ErrorLogService;\r\n private options: LoggingErrorHandlerOptions;\r\n\r\n // I initialize the service.\r\n // --\r\n // CAUTION: The core implementation of the ErrorHandler class accepts a boolean\r\n // parameter, `rethrowError`; however, this is not part of the interface for the\r\n // class. In our version, we are supporting that same concept; but, we are doing it\r\n // through an Options object (which is being defaulted in the providers).\r\n constructor(errorLogService: ErrorLogService,\r\n @Inject(LoggingErrorHandlerOptions) options: LoggingErrorHandlerOptions\r\n ) {\r\n\r\n this.errorLogService = errorLogService;\r\n this.options = options;\r\n\r\n\r\n }\r\n\r\n // I handle the given error.\r\n public handleError(error: any): void {\r\n\r\n // Send to the error-logging service.\r\n try {\r\n this.options.unwrapError\r\n ? this.errorLogService.logError(this.findOriginalError(error))\r\n : this.errorLogService.logError(error)\r\n ;\r\n } catch (loggingError) {\r\n console.group('ErrorHandler');\r\n console.warn('Error when trying to log error to', this.errorLogService);\r\n console.error(loggingError);\r\n console.groupEnd();\r\n }\r\n\r\n if (this.options.rethrowError) {\r\n throw (error);\r\n }\r\n }\r\n\r\n // I attempt to find the underlying error in the given Wrapped error.\r\n private findOriginalError(error: any): any {\r\n while (error && error.originalError) {\r\n error = error.originalError;\r\n }\r\n return (error);\r\n }\r\n}\r\n\r\nexport let LoggingErrorHandlerProviders = [\r\n {\r\n provide: LoggingErrorHandlerOptions,\r\n useValue: LoggingErrorHandlerOptions\r\n },\r\n {\r\n provide: ErrorHandler,\r\n useClass: LoggingErrorHandler\r\n }\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { ErrorLogService } from './error-log.service';\r\n\r\n@Injectable()\r\nexport class LoggingService {\r\n\r\n constructor(private errorLogService: ErrorLogService, private authenticationService: AuthenticationService) { }\r\n\r\n public log(caller: string, object: any) {\r\n if (this.authenticationService.config.Debug === true) {\r\n console.log(caller, object);\r\n }\r\n }\r\n public warn(caller: string, object: any) {\r\n console.warn(caller, object);\r\n }\r\n\r\n public error(caller: string, error: any) {\r\n this.errorLogService.logErrorString(caller, error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AccountPlatform } from '../../models/platform.model';\r\n\r\n@Injectable()\r\nexport class AccountPlatformService {\r\n\r\n token: string;\r\n timestamp;\r\n url = '';\r\n AccountPlatforms: AccountPlatform[] = [];\r\n urlInventory: string;\r\n urlInventoryBase: string;\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('accountPlatform');\r\n this.urlInventory = authenticationService.getInventoryURL('accountPlatform');\r\n this.urlInventoryBase = authenticationService.getInventoryURL('');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getAccountPlatforms(setDefinate = true, onlyFromMemmory = false): Observable {\r\n\r\n if (setDefinate !== true && this.AccountPlatforms.length !== 0) {\r\n return of(this.AccountPlatforms);\r\n }\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting accountplatforms from service');\r\n return this.http.get(this.urlInventory, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n if (setDefinate) {\r\n console.log('setting AccountPlatforms');\r\n this.AccountPlatforms = parsedResponse;\r\n }\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountPlatformById(id: string): Observable {\r\n return this.getAccountPlatforms(true).map(platforms => {\r\n console.log('get AccountPlatforms');\r\n const platform = platforms.filter(x => x.id === id)[0];\r\n return platform;\r\n });\r\n }\r\n\r\n updateToken(accountId: string, token: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.post(this.url + 'UpdateToken', { accountId, token }, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = data;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n checkTokenForAccountPlatform(accountPlatformId: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + accountPlatformId + '/TestToken', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = data;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n checkToken(platformType: number, token: string, url: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + 'TestToken/' + platformType + '/' + btoa(token) + '/' + btoa(url), { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = data;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n createNewAccountPlatform(accountId: string, name: string, username: string, password: string, platformType: number, token: string, url: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const ap = new AccountPlatform();\r\n ap.accountId = accountId;\r\n ap.name = name;\r\n ap.username = username;\r\n ap.password = password;\r\n ap.platformType = platformType;\r\n ap.token = token;\r\n ap.url = url;\r\n\r\n return this.http.post(this.urlInventory, ap, { headers: headers })\r\n .map((data) => ({\r\n completed: true,\r\n data: data\r\n }))\r\n .catch((error) => of({\r\n completed: false,\r\n data: error\r\n }));\r\n }\r\n\r\n updateAccountPlatform(accountPlatform: AccountPlatform): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.put(this.urlInventory, accountPlatform, { headers: headers })\r\n .map((data) => ({\r\n completed: true,\r\n data: data\r\n }))\r\n .catch((error) => of({\r\n completed: false,\r\n data: error\r\n }));\r\n }\r\n\r\n deleteAccountPlatform(id: any): Observable {\r\n return this.http.delete(this.urlInventory + id, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveNewToken(accountPlatformId: string, token: string, url: string, name: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const ap = new AccountPlatform();\r\n ap.id = accountPlatformId;\r\n ap.token = token;\r\n ap.url = url;\r\n ap.name = name;\r\n\r\n return this.http.put(this.urlInventory, ap, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = data;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getAccountPlatformByAccountId(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting accountplatforms from service');\r\n return this.http.get(this.urlInventoryBase + 'Account/' + id + '/AccountPlatform', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n this.AccountPlatforms = parsedResponse;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): AccountPlatform[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' AccountPlatforms.');\r\n\r\n const ident = 1;\r\n const platforms: AccountPlatform[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const platform = this.parseReponseDetails(item);\r\n\r\n platforms.push(platform);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return platforms;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const accountPlatform = new AccountPlatform();\r\n accountPlatform.id = item.id;\r\n accountPlatform.name = item.name;\r\n accountPlatform.platformId = item.platformId;\r\n accountPlatform.platformName = item.platformName;\r\n accountPlatform.platformType = item.platformType;\r\n accountPlatform.timezoneIana = item.timezoneIana;\r\n accountPlatform.deviceCount = item.deviceCount;\r\n accountPlatform.token = item.token;\r\n accountPlatform.url = item.url;\r\n\r\n return accountPlatform;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { Platform } from '../../models/platform.model';\r\n\r\n@Injectable()\r\nexport class PlatformService {\r\n\r\n token: string;\r\n timestamp;\r\n url = '';\r\n Platforms: Platform[] = [];\r\n urlInventory: string;\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('platform');\r\n this.urlInventory = authenticationService.getInventoryURL('platform');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n\r\n getPlatforms(setDefinate = true, onlyFromMemmory = false): Observable {\r\n\r\n if (this.Platforms.length !== 0) {\r\n return of(this.Platforms);\r\n }\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting devices from service');\r\n return this.http.get(this.urlInventory + 'PlatformTypes', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n if (setDefinate) {\r\n console.log('setting Platforms');\r\n this.Platforms = parsedResponse;\r\n }\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): Platform[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Platforms.');\r\n\r\n const ident = 1;\r\n const platforms: Platform[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const platform = this.parseReponseDetails(item);\r\n\r\n platforms.push(platform);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return platforms;\r\n }\r\n\r\n parseReponseDetails(item) {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const platform = new Platform();\r\n platform.id = item.id;\r\n platform.name = item.name;\r\n\r\n return platform;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { ResolutionType } from '../../models/resolutiontype.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\n\r\n@Injectable()\r\nexport class ResolutionTypeService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n public ResolutionTypes: ResolutionType[] = [];\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('resolutiontype');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getResolutionTypes(setDefinate = true): Observable {\r\n\r\n if (this.ResolutionTypes.length !== 0) {\r\n return of(this.ResolutionTypes);\r\n }\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting resolutiontypes from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n if (setDefinate) {\r\n console.log('setting ResolutionTypes');\r\n this.ResolutionTypes = parsedResponse;\r\n }\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n console.log(error);\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): ResolutionType[] {\r\n // this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' ResolutionTypes.');\r\n\r\n const resolutionTypes: ResolutionType[] = [];\r\n\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const resolutionType = new ResolutionType();\r\n resolutionType.id = item.id;\r\n resolutionType.name = item.name;\r\n resolutionType.nameTranslated = item.name;\r\n resolutionType.count = 0;\r\n\r\n resolutionTypes.push(resolutionType);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return resolutionTypes;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Schedule } from '../../models/schedule.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { ScheduleActions } from 'app/common/enums';\r\nimport { Device } from '../../models/device.model';\r\n\r\n@Injectable()\r\nexport class ScheduleService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n ScheduleActionDescriptions: string[] = [];\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('schedule');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getScheduleById(id: number): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch schedule by id ' + id);\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseReponseDetails(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getSchedulesForDevice(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + 'device/' + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getSchedulesForIssue(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + 'issue/' + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n processSchedulesForIssue(id: number, schedule: Schedule): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.delete(this.url + id, { headers: headers })\r\n .map((data) => { console.log(data); })\r\n .catch(this.handleError);\r\n }\r\n\r\n getSchedules(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting schedule from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n addSchedule(schedule: Schedule): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.post(this.url, schedule, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n updateSchedule(schedule: Schedule): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.put(this.url, schedule, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n parseResponse(json: any): Schedule[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' schedules.');\r\n\r\n const ident = 1;\r\n const schedules: Schedule[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const schedule = this.parseReponseDetails(item);\r\n schedules.push(schedule);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return schedules;\r\n }\r\n\r\n parseReponseDetails(item): Schedule {\r\n\r\n const schedule = new Schedule();\r\n schedule.id = item.id;\r\n schedule.date = moment(item.date.replace(' ', '')).toDate();\r\n schedule.actionId = item.actionId;\r\n schedule.actionName = item.actionName;\r\n schedule.deviceId = item.deviceId;\r\n schedule.deviceName = item.deviceName;\r\n schedule.workflowId = item.workflowId;\r\n schedule.workflowName = item.workflowName;\r\n schedule.userId = item.userId;\r\n schedule.userName = item.userName;\r\n schedule.issueId = item.issueId;\r\n\r\n if (item.device) {\r\n const device = new Device();\r\n device.id = item.device.id;\r\n schedule.deviceId = item.device.id;\r\n device.createdDate = moment(item.device.createdDate.replace(' ', '')).toDate();\r\n device.name = item.device.name;\r\n schedule.deviceName = item.device.name;\r\n device.lastCommunication = moment(item.device.lastCommunication.replace(' ', '')).toDate();\r\n device.modelId = item.device.model;\r\n device.modifiedDate = moment(item.device.modifiedDate.replace(' ', '')).toDate();\r\n device.phone = item.device.phone;\r\n device.referenceId = item.device.referenceId;\r\n device.unitId = item.device.unitId;\r\n device.unitId2 = item.device.unitId2;\r\n schedule.device = device;\r\n }\r\n\r\n if (item.user) {\r\n schedule.userId = item.user.id;\r\n }\r\n return schedule;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/debounceTime';\r\nimport 'rxjs/add/operator/distinctUntilChanged';\r\nimport 'rxjs/add/operator/switchMap';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class SearchService {\r\n token: string;\r\n url: string;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('search');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n searchEntries(term): Observable {\r\n\r\n if (term) {\r\n\r\n console.log('Search for ' + term);\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + term, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n console.log('Return list ' + parsedResponse.length);\r\n return parsedResponse;\r\n })\r\n .catch((error: any) => throwError(error || 'Server error'));\r\n } else {\r\n return of([]);\r\n }\r\n }\r\n\r\n parseResponse(data) {\r\n const responseArray = [];\r\n data.forEach(item => {\r\n const response = { id: item.id, name: item.name, group: item.searchResultType, groupname: this.translateService.instant('enums.searchresulttypes.' + item.searchResultType) };\r\n responseArray.push(response);\r\n });\r\n return responseArray;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { DeviceSensor, DeviceSensorType, SensorUser, SensorDevice } from 'app/models/sensor.model';\r\nimport { TranslatorService } from '../common/translator.service';\r\n\r\n@Injectable()\r\nexport class DeviceSensorsService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private translatorService: TranslatorService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('deviceSensor');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getSensors(): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting sensors from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getSensorUsers(name: string, parameter: string, deviceSensorTypeId: number, isCustomDeviceSensorTypeId: boolean): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting sensor users from service');\r\n return this.http.get(this.url + 'SensorUsers?name=' + name + '¶meter=' + (parameter ? parameter : '') + '&deviceSensorTypeId=' + deviceSensorTypeId + '&isCustomDeviceSensorTypeId=' + isCustomDeviceSensorTypeId, { headers: headers })\r\n .map((data: any) => {\r\n const sensorUsers: SensorUser[] = [];\r\n data.forEach(item => {\r\n const sensorUser = new SensorUser();\r\n sensorUser.customerId = item.customerId;\r\n sensorUser.customerName = item.customerName;\r\n sensorUser.manufacturer = item.manufacturer;\r\n sensorUser.deviceType = item.deviceType;\r\n sensorUser.deviceTypeId = item.deviceTypeId;\r\n sensorUser.sensorCount = item.sensorCount;\r\n sensorUsers.push(sensorUser);\r\n });\r\n return sensorUsers;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getSensorDevices(name: string, parameter: string, deviceSensorTypeId: number, isCustomDeviceSensorTypeId: boolean, deviceTypeId: string, manufacturer: string, customerId: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting sensor devices from service');\r\n return this.http.get(this.url + 'SensorDevices?name=' + name + '¶meter=' + (parameter ? parameter : '') + '&deviceSensorTypeId=' + deviceSensorTypeId + '&isCustomDeviceSensorTypeId=' + isCustomDeviceSensorTypeId + '&deviceTypeId=' + deviceTypeId + '&manufacturer=' + manufacturer + '&customerId=' + customerId, { headers: headers })\r\n .map((data: any) => {\r\n const sensorDevices: SensorDevice[] = [];\r\n data.forEach(item => {\r\n const sensorDevice = new SensorDevice();\r\n sensorDevice.sensorName = item.sensorName;\r\n sensorDevice.parameter = item.param;\r\n sensorDevice.id = item.id;\r\n sensorDevice.deviceName = item.deviceName;\r\n sensorDevice.unitId = item.unitId;\r\n sensorDevices.push(sensorDevice);\r\n });\r\n return sensorDevices;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getDeviceSensorTypes(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting schedule from service');\r\n return this.http.get(this.url + 'DeviceSensorTypes', { headers: headers })\r\n .map((data: any) => {\r\n const sensorTypes: DeviceSensorType[] = [];\r\n data.forEach(item => {\r\n const sensorType = new DeviceSensorType();\r\n sensorType.id = item.id;\r\n sensorType.name = item.name;\r\n sensorType.category = item.category;\r\n sensorTypes.push(sensorType);\r\n });\r\n return sensorTypes;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveSensorSettings(sensors: DeviceSensor[]): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Saving sensor settings');\r\n\r\n return this.http.put(this.url + 'SaveDeviceSensors', sensors, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): DeviceSensor[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' sensortypes.');\r\n\r\n const ident = 1;\r\n const sensors: DeviceSensor[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const sensor = this.parseReponseDetails(item);\r\n sensors.push(sensor);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return sensors;\r\n }\r\n\r\n parseReponseDetails(item): DeviceSensor {\r\n\r\n const sensor = new DeviceSensor();\r\n sensor.name = item.name;\r\n sensor.type = item.type;\r\n sensor.metrics = item.metrics;\r\n sensor.parameter = item.parameter;\r\n sensor.deviceSensorTypeId = item.deviceSensorTypeId;\r\n sensor.deviceSensorType = this.translatorService.translate(item.deviceSensorTypeId, 'enums.sensorTypes');\r\n sensor.isCustomDeviceSensorTypeId = item.isCustomDeviceSensorTypeId;\r\n sensor.sensorCount = item.sensorCount;\r\n\r\n return sensor;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { InventorySensorType } from 'app/models/sensorType.model';\r\n\r\n@Injectable()\r\nexport class SensorsTypesService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private translatorService: TranslatorService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getInventoryURL('sensorType');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getSensorTypes(): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting sensorTypes from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getSensorTypeById(id: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch sensorType by id ' + id);\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseReponseDetails(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveSensorType(assetType: InventorySensorType): Observable {\r\n console.log('save assetType');\r\n return this.http.post(this.url, assetType, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n updateSensorType(assetType: InventorySensorType): Observable {\r\n console.log('save assetType');\r\n return this.http.put(this.url, assetType, { headers: this.authenticationService.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any): InventorySensorType[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' sensortypes.');\r\n\r\n const ident = 1;\r\n const sensorTypes: InventorySensorType[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const sensor = this.parseReponseDetails(item);\r\n sensorTypes.push(sensor);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return sensorTypes;\r\n }\r\n\r\n parseReponseDetails(item): InventorySensorType {\r\n\r\n const sensorType = new InventorySensorType();\r\n sensorType.id = item.id;\r\n sensorType.model = item.model;\r\n sensorType.brand = item.brand;\r\n sensorType.deviceSensorTypeName = item.deviceSensorTypeName;\r\n sensorType.deviceSensorTypeId = item.deviceSensorTypeId;\r\n sensorType.calibrationPoints = item.calibrationPoints;\r\n sensorType.conversionFormula = item.conversionFormula;\r\n\r\n return sensorType;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { DeviceSensor, DeviceSensorType, SensorUser, SensorDevice, AssetSensor } from 'app/models/sensor.model';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { of } from 'rxjs/observable/of';\r\n\r\n@Injectable()\r\nexport class SensorService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n urlBase = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private translatorService: TranslatorService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getInventoryURL('Sensor');\r\n this.urlBase = authenticationService.getInventoryURL('');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getSensorsOnAsset(assetId, sensorTypes): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting sensors from service');\r\n return this.http.get(this.urlBase + 'Asset/' + assetId + '/Sensors', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data, assetId, sensorTypes);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n\r\n // const sensorsList = [];\r\n // const sensor1 = new AssetSensor();\r\n // sensor1.assetId = assetId;\r\n // sensor1.calibrationPoints = [];\r\n // sensor1.sensorPosition = 1;\r\n // sensor1.sensorTypeId = '8375e11d-22d9-4779-5892-08d7724ee468';\r\n // sensor1.sensorType = sensorTypes.find(x => x.id === sensor1.sensorTypeId);\r\n\r\n // sensorsList.push(sensor1);\r\n\r\n // const sensor2 = new AssetSensor();\r\n // sensor2.assetId = assetId;\r\n // sensor2.calibrationPoints = [];\r\n // sensor2.sensorPosition = 2;\r\n // sensor2.sensorTypeId = '5904f66c-ef10-4f93-6749-08d7725cac86';\r\n // sensor2.sensorType = sensorTypes.find(x => x.id === sensor2.sensorTypeId);\r\n\r\n // sensorsList.push(sensor2);\r\n\r\n // const sensor3 = new AssetSensor();\r\n // sensor3.assetId = assetId;\r\n // sensor3.calibrationPoints = [];\r\n // sensor3.sensorPosition = 0;\r\n // sensor3.sensorTypeId = '3f96713e-e560-4288-82c0-08d7726f2854';\r\n // sensor3.sensorType = sensorTypes.find(x => x.id === sensor3.sensorTypeId);\r\n\r\n // sensorsList.push(sensor3);\r\n\r\n // return of(sensorsList);\r\n }\r\n\r\n addSensor(sensor: AssetSensor): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Post sensor');\r\n\r\n return this.http.post(this.url, sensor, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveSensor(sensor: AssetSensor): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Put sensor');\r\n\r\n return this.http.put(this.url + sensor.id, sensor, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n deleteSensor(sensor: AssetSensor): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Saving sensor settings');\r\n\r\n return this.http.delete(this.url + sensor.id, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseResponse(json: any, assetId, sensorTypes): AssetSensor[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' sensortypes.');\r\n\r\n const ident = 1;\r\n const sensors: AssetSensor[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const sensor = this.parseReponseDetails(item, assetId, sensorTypes);\r\n sensors.push(sensor);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return sensors;\r\n }\r\n\r\n parseReponseDetails(item, assetId, sensorTypes): AssetSensor {\r\n\r\n const sensor = new AssetSensor();\r\n\r\n sensor.id = item.id;\r\n sensor.assetId = item.assetId;\r\n sensor.calibrationPoints = item.calibrationPoints;\r\n sensor.sensorPosition = item.sensorPosition;\r\n sensor.sensorTypeId = item.sensorTypeId;\r\n sensor.sensorType = sensorTypes.find(x => x.id === sensor.sensorTypeId);\r\n\r\n return sensor;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { TagSearch, TagUsage, TagPost, TagObjectType } from 'app/models/tag.model';\r\nimport { TranslatorService } from '../common/translator.service';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class TagService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private translatorService: TranslatorService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('tag');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getTagsForObject(guid: string, type: TagObjectType): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n if (guid == null) {\r\n return of([]);\r\n }\r\n console.log('getting tags for object ' + guid + ' with type ' + type + ' from service');\r\n return this.http.get(this.url + 'GetTagsForObject?objectId=' + guid + '&objectType=' + type, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseTagSearchResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getTagsWithUsage(): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting tags with usage from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseTagUsageResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getObjectsByName(tag): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting tags with usage from service');\r\n return this.http.get(this.url + 'GetMatches?Tags=' + tag, { headers: headers })\r\n .map((data) => {\r\n console.log(data);\r\n const parsedResponse = this.parseTagSearchResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveTag(tag: string, objectId: string, objectType: TagObjectType): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n name: tag,\r\n objectId: objectId,\r\n objectType: objectType\r\n }\r\n\r\n console.log('posting tag ' + tag + ' for object ' + objectId + ' of type ' + objectType);\r\n return this.http.post(this.url + 'PostTag',\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = (data === true);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n removeTag(tag: string, objectId: string, objectType: TagObjectType): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n const body = {\r\n name: tag,\r\n objectId: objectId,\r\n objectType: objectType\r\n }\r\n\r\n console.log('removing tag ' + tag + ' for object ' + objectId + ' of type ' + objectType);\r\n return this.http.post(this.url + 'RemoveTag',\r\n JSON.stringify(body),\r\n { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = (data === true);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n parseTagSearchResponse(json: any): TagSearch[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' tags.');\r\n\r\n const ident = 1;\r\n const tags: TagSearch[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const tag = this.parseTagSearchResponseDetails(item);\r\n tags.push(tag);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return tags;\r\n }\r\n\r\n parseTagSearchResponseDetails(item): TagSearch {\r\n\r\n const tag = new TagSearch();\r\n tag.id = item.id;\r\n tag.name = item.name;\r\n tag.objectId = item.objectId;\r\n tag.objectName = item.objectName;\r\n tag.objectType = item.objectType;\r\n\r\n return tag;\r\n }\r\n\r\n parseTagUsageResponse(json: any): TagUsage[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' tags.');\r\n\r\n const ident = 1;\r\n const tags: TagUsage[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const tag = this.parseTagUsageResponseDetails(item);\r\n tags.push(tag);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return tags;\r\n }\r\n\r\n parseTagUsageResponseDetails(item): TagUsage {\r\n\r\n const tag = new TagUsage();\r\n tag.id = item.id;\r\n tag.name = item.name;\r\n tag.useCount = item.useCount;\r\n tag.nameWithCount = item.name + ' (' + item.useCount + ')';\r\n\r\n return tag;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport * as moment from 'moment';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\n\r\nexport class Trip {\r\n beginLongitude: any;\r\n endLatitude: any;\r\n endLongitude: any;\r\n beginLatitude: any;\r\n locations: any;\r\n segmentDistanceInKilometers: any;\r\n boundingDistanceInMetres: any;\r\n endCity: any;\r\n endLabel: any;\r\n endDateTime: any;\r\n beginCity: any;\r\n beginLabel: any;\r\n beginDateTime: any;\r\n driverName: any;\r\n driverId: any;\r\n deviceId: any;\r\n assetId: any;\r\n id: any;\r\n}\r\n\r\n@Injectable()\r\nexport class TripService {\r\n token: string;\r\n timestamp;\r\n urlFleetOverview: string;\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.urlFleetOverview = authenticationService.getFleetOverviewUrl('');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n getTripsForAsset(assetId: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting schedule from service');\r\n return this.http.get(this.urlFleetOverview + 'Asset/' + assetId + '/Trip/' + Math.round(start / 1000) + '/' + Math.round(end / 1000) + '/True/True', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getTripsForDevice(deviceId: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting trips from service');\r\n return this.http.get('./assets/data/trips.json')\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getTripDetails(tripId: string, assetId: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting schedule from service');\r\n return this.http.get(this.urlFleetOverview + '/Trip/' + tripId + '/True/' + assetId + '/' + Math.round(start / 1000) + '/' + Math.round(end / 1000) + '/True/True', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseTripDetails(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getMessageUrl(deviceId: string, start, end) {\r\n return this.urlFleetOverview + 'Device/' + deviceId + '/Locations?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000);\r\n }\r\n\r\n getMessagesForDevice(deviceId: string, start, end): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting schedule from service');\r\n return this.http.get(this.urlFleetOverview + 'Device/' + deviceId + '/Locations?start=' + Math.round(start / 1000) + '&end=' + Math.round(end / 1000), { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = data;\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): Trip[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' schedules.');\r\n\r\n const ident = 1;\r\n const trips: Trip[] = [];\r\n\r\n json.forEach(item => {\r\n\r\n const trip = this.parseTripDetails(item);\r\n\r\n trips.push(trip);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return trips;\r\n }\r\n\r\n parseTripDetails(item) {\r\n const trip = new Trip();\r\n trip.id = item.Id;\r\n trip.assetId = item.AssetId;\r\n trip.deviceId = item.DeviceId;\r\n trip.driverId = item.DriverId;\r\n trip.driverName = item.DriverName;\r\n\r\n trip.beginDateTime = item.BeginDateTime;\r\n trip.beginLabel = item.BeginLabel;\r\n trip.beginCity = item.BeginCity;\r\n trip.beginLatitude = item.BeginLatitude;\r\n trip.beginLongitude = item.BeginLongitud;\r\n\r\n trip.endDateTime = item.EndDateTime;\r\n trip.endLabel = item.EndLabel;\r\n trip.endCity = item.EndCity;\r\n trip.endLatitude = item.EndLatitude;\r\n trip.endLongitude = item.EndLongitud;\r\n\r\n trip.boundingDistanceInMetres = item.BoundingDistanceInMetres;\r\n trip.segmentDistanceInKilometers = item.SegmentDistanceInKilometers;\r\n\r\n trip.locations = item.Locations;\r\n\r\n return trip;\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { AppUser, UpdatePasswordRequest } from '../../models/user.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { of } from 'rxjs/internal/observable/of';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n\r\n url = '';\r\n urlInventory = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('user');\r\n this.urlInventory = authenticationService.getInventoryURL('user');\r\n }\r\n\r\n get headers(): HttpHeaders {\r\n const token = this.authenticationService.getAuthToken();\r\n return new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + token });\r\n }\r\n\r\n getUsers(): Observable {\r\n this.url = this.authenticationService.getWebserviceURL('user');\r\n this.urlInventory = this.authenticationService.getInventoryURL('user');\r\n\r\n console.log('getting users from service : ' + this.url);\r\n return this.http.get(this.url, { headers: this.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getUsersByAccountId(id: any): Observable {\r\n console.log('getting users from service : ' + this.url);\r\n return this.http.get(this.url + 'Account/' + id, { headers: this.headers })\r\n .map((data) => {\r\n return this.parseResponse(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getUserById(id: any): Observable {\r\n console.log('getting users from service');\r\n return this.http.get(this.url + id, { headers: this.headers })\r\n .map((data) => {\r\n return this.parseResponseData(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getTokenForUser(id: any): Observable {\r\n console.log('getting users from service');\r\n return this.http.get(this.url + 'impersonateToken/' + id, { headers: this.headers })\r\n .map((data) => {\r\n return data as any;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n resetPassword(id: any): Observable {\r\n return this.http.post(this.url + 'reset/' + id, id, { headers: this.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n deleteUser(id: any): Observable {\r\n return this.http.delete(this.urlInventory + id, { headers: this.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n updateUserProfile(appUser: AppUser): Observable {\r\n return this.http.put(this.url, appUser, { headers: this.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n updateUserPassword(request: UpdatePasswordRequest): Observable {\r\n const urlExtra = 'Password'\r\n\r\n return this.http.put(this.url + urlExtra, request, { headers: this.headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n saveUser(appUser: AppUser): Observable {\r\n return this.http.post(this.urlInventory + 'Create', appUser, { headers: this.headers })\r\n .map((data) => ({\r\n completed: true,\r\n data: data\r\n })\r\n )\r\n .catch((error) => of({\r\n completed: false,\r\n data: error\r\n }));\r\n }\r\n\r\n getUserRoleById(id: any): Observable {\r\n console.log('getting users from service');\r\n return this.http.get(this.url + 'UserRole/' + id, { headers: this.headers })\r\n .map((data) => {\r\n return this.parseResponseData(data);\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): AppUser[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Users.');\r\n\r\n const users: AppUser[] = [];\r\n\r\n json.forEach(item => {\r\n let user = new AppUser();\r\n user = this.parseResponseData(item);\r\n users.push(user);\r\n });\r\n\r\n return users;\r\n }\r\n\r\n unsubscribeFromEmailReport(userId: string): Observable {\r\n return this.http.put(this.url + 'Unsubscribe/' + userId, userId, { headers: this.headers })\r\n .map((result) => {\r\n return result;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponseData(item: any): AppUser {\r\n\r\n const user = new AppUser();\r\n user.id = item.id;\r\n user.name = item.name;\r\n user.firstName = item.firstName ? item.firstName : '';\r\n user.lastName = item.lastName ? item.lastName : '';\r\n user.fullName = user.firstName + ' ' + user.lastName;\r\n user.language = item.language;\r\n user.timezoneIana = item.timezoneIana;\r\n user.accountId = item.accountId;\r\n user.accountName = item.accountName;\r\n user.userRoleId = item.userRoleId;\r\n user.userRoleName = item.userRoleName;\r\n user.whitelabel = item.whitelabel\r\n user.referenceId = item.referenceId;\r\n user.createdDate = item.createdDate;\r\n user.email = item.email;\r\n user.cronTabPattern = item.cronTabPattern;\r\n\r\n return user\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { User, UserRole } from '../../models/user.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\n\r\n@Injectable()\r\nexport class UserRoleService {\r\n\r\n token: any;\r\n url = '';\r\n timestamp: number;\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('userrole');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n\r\n getUserRoles(): Observable {\r\n\r\n this.url = this.url ? this.url : this.authenticationService.getWebserviceURL('userrole');\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting users from service : ' + this.url);\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n getUserRoleById(id: any): Observable {\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting users from service');\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponseData(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n parseResponse(json: any): UserRole[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Users.');\r\n\r\n const ident = 1;\r\n const users: UserRole[] = [];\r\n\r\n json.forEach(item => {\r\n let user = new UserRole();\r\n user = this.parseResponseData(item);\r\n users.push(user);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return users;\r\n }\r\n\r\n parseResponseData(item: any): UserRole {\r\n const user = new UserRole();\r\n user.id = item.id;\r\n user.name = item.name;\r\n user.permissions = item.permissions;\r\n user.userLevel = item.userLevel;\r\n return user\r\n }\r\n\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map'\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\nimport { WaslAsset } from 'app/models/asset.model';\r\nimport { RegisterOperatingCompanyRequest } from 'app/models/wasl.model';\r\nimport { WaslDriver } from 'app/models/driver.model';\r\n\r\n@Injectable()\r\nexport class WaslService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = this.authenticationService.getInventoryURL('');\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n inquireVehicle(assetId: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch driver by id ' + assetId);\r\n return this.http.get(this.url + 'Asset/' + assetId + '/InquireVehicle', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = (data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n registerAsset(assetId: string, waslAsset: WaslAsset): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('register asset');\r\n\r\n return this.http.post(this.url + 'Asset/' + assetId + '/Vehicle_Register', waslAsset, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unregisterAsset(assetId: string, waslAsset: WaslAsset): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('unregister asset');\r\n\r\n return this.http.post(this.url + 'Asset/' + assetId + '/Vehicle_Unregister', waslAsset, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n registerCompany(accountId: string, waslCompany: RegisterOperatingCompanyRequest): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('register asset');\r\n\r\n return this.http.post(this.url + 'Account/' + accountId + '/Company_Register', waslCompany, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unregisterCompany(accountId: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('unregister asset');\r\n\r\n return this.http.post(this.url + 'Account/' + accountId + '/Company_Unregister', null, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n\r\n\r\n registerDriver(driverId: string, waslDriver: WaslDriver): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('register driver');\r\n\r\n return this.http.post(this.url + 'Driver/' + driverId + '/Driver_Register', waslDriver, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n unregisterDriver(driverId: string, waslDriver: WaslDriver): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('unregister driver');\r\n\r\n return this.http.post(this.url + 'Driver/' + driverId + '/Driver_Unregister', waslDriver, { headers: headers })\r\n .catch(this.handleError);\r\n }\r\n\r\n inquireCompany(accountId: string): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Inquire account by id ' + accountId);\r\n return this.http.get(this.url + 'Account/' + accountId + '/Inquire', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = (data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { Workflow, Action, WorkflowAction, WorkflowActionActions } from '../../models/workflow.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { LoggingService } from '../logging/logging.service';\r\nimport { Device } from '../../models/device.model';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\n\r\n@Injectable()\r\nexport class WorkflowService {\r\n token: string;\r\n timestamp;\r\n url = '';\r\n WorkflowActionDescriptions: string[] = [];\r\n\r\n constructor(private http: HttpClient, private loggingService: LoggingService, private authenticationService: AuthenticationService) {\r\n this.url = authenticationService.getWebserviceURL('workflow');\r\n this.token = authenticationService.getAuthToken();\r\n }\r\n\r\n\r\n getWorkflows(actions: Action[]): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('getting workflows from service');\r\n return this.http.get(this.url, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseResponse(data, actions);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getWorkflowsById(id: number, actions: Action[]): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n console.log('Fetch workflow by id ' + id);\r\n return this.http.get(this.url + id, { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseReponseDetails(data, actions);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n getActions(): Observable {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer ' + this.token });\r\n\r\n return this.http.get(this.url + 'Actions', { headers: headers })\r\n .map((data) => {\r\n const parsedResponse = this.parseActionResponse(data);\r\n return parsedResponse;\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: Response) {\r\n return throwError(error);\r\n }\r\n\r\n\r\n parseResponse(json: any, actions: Action[]): Workflow[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Workflows.');\r\n\r\n const ident = 1;\r\n const workflows: Workflow[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const workflow = this.parseReponseDetails(item, actions);\r\n workflows.push(workflow);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return workflows;\r\n }\r\n\r\n parseReponseDetails(item, actions: Action[]): Workflow {\r\n\r\n const workflow = new Workflow();\r\n workflow.id = item.id;\r\n workflow.name = item.name;\r\n workflow.days = item.days;\r\n\r\n // Actions in workflow\r\n if (item.workflowActions) {\r\n workflow.workflowActions = [];\r\n item.workflowActions.forEach(workflowAction => {\r\n const wfa = new WorkflowAction();\r\n wfa.action = actions.filter(x => x.id === workflowAction.actionId)[0];\r\n wfa.name = wfa.action.name;\r\n wfa.id = wfa.action.id;\r\n wfa.days = workflowAction.days;\r\n wfa.isStartAction = workflowAction.isStartAction;\r\n wfa.isEndAction = workflowAction.isEndAction;\r\n wfa.hasCommunication = workflowAction.hasCommunication;\r\n wfa.allowAutoProcess = workflowAction.allowAutoProcess;\r\n wfa.nextActions = [];\r\n workflow.workflowActions.push(wfa);\r\n });\r\n }\r\n\r\n // Actions to actions in workflow\r\n if (item.workflowActionActions) {\r\n workflow.workflowActionActions = [];\r\n item.workflowActionActions.forEach(workflowActionActions => {\r\n const wfaa = new WorkflowActionActions();\r\n wfaa.fromActionId = workflowActionActions.fromActionId;\r\n wfaa.toActionId = workflowActionActions.toActionId;\r\n\r\n const from = workflow.workflowActions.filter(x => x.id === workflowActionActions.fromActionId)[0];\r\n const to = workflowActionActions.toActionId;\r\n if (from != null && to != null) {\r\n from.nextActions.push(to);\r\n }\r\n\r\n workflow.workflowActionActions.push(wfaa);\r\n });\r\n }\r\n console.log(workflow);\r\n return workflow;\r\n }\r\n\r\n\r\n\r\n parseActionResponse(json: any): Action[] {\r\n\r\n this.loggingService.log(this.constructor.name, 'Retrieved ' + json.length + ' Workflows.');\r\n\r\n const ident = 1;\r\n const actions: Action[] = [];\r\n\r\n // this.loggingService.log(json);\r\n json.forEach(item => {\r\n // this.loggingService.log(this.constructor().name + \" - New\", item);\r\n const action = this.parseActionReponseDetails(item);\r\n actions.push(action);\r\n });\r\n\r\n this.timestamp = new Date().getTime();\r\n return actions;\r\n }\r\n\r\n parseActionReponseDetails(item): Action {\r\n\r\n const action = new Action();\r\n action.id = item.id;\r\n action.name = item.name;\r\n action.isCustom = item.accountId != null;\r\n\r\n return action;\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, OnDestroy, ViewChild } from '@angular/core';\r\n\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { languages, FormMode } from 'app/common/enums';\r\nimport { Map } from 'leaflet';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { User, AppUser, UserRole } from '../../models/user.model';\r\nimport { PlatformService } from '../../services/platform/platform.service';\r\nimport { AccountPlatform, AppAccount, AppAccountPlatform, AddressDetails } from '../../models/platform.model';\r\nimport { UserRoleService } from '../../services/users/userRole.service';\r\nimport { AccountService } from '../../services/accounts/accounts.service';\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { AccountType } from 'app/models/account.model';\r\nimport { AccountPlatformService } from 'app/services/platform/accountPlatform.service';\r\nimport { AccountPlatformControlComponent } from '../shared/usercontrols/accountPlatformControl.component';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-account-add',\r\n templateUrl: 'accountAdd.template.html'\r\n})\r\n\r\nexport class AccountAddViewComponent implements OnInit {\r\n @ViewChild('accountplatforms') accountplatforms: AccountPlatformControlComponent;\r\n\r\n map: Map;\r\n options;\r\n layersControl;\r\n selectedRow: any;\r\n selected: any;\r\n theTrips = [];\r\n accountPlatforms: AccountPlatform[] = [];\r\n timeoutHandler;\r\n chartFuel: any;\r\n sensors;\r\n sub;\r\n user: AppUser = new AppUser;\r\n loading = false;\r\n loadingSensors = false;\r\n platforms: any;\r\n issueCalculationEndDate: Date;\r\n accountSynchronizationEndDate: Date;\r\n\r\n formMode = FormMode.add;\r\n\r\n hasError = undefined;\r\n\r\n accountModel: AppAccount;\r\n\r\n platformValidation = {\r\n 'Valid': 1,\r\n 'Invalid': 2\r\n }\r\n\r\n passwordConfirmation = '';\r\n\r\n userRoles: UserRole[];\r\n languages: { name: string; path: any; }[];\r\n\r\n createNew = true;\r\n optionalAccountPlatform = false;\r\n accountName;\r\n\r\n constructor(private authenticationService: AuthenticationService, private deviceService: DeviceService, private userRoleService: UserRoleService,\r\n private route: ActivatedRoute, private accountPlatformService: AccountPlatformService, private router: Router,\r\n private userService: UserService, private platformService: PlatformService, private accountService: AccountService) {\r\n // new user\r\n this.user = new AppUser();\r\n\r\n // add 1 accountplatform\r\n const newAccountPlatform = new AccountPlatform();\r\n this.accountPlatforms.push(newAccountPlatform);\r\n\r\n this.sensors = [];\r\n this.theTrips = [];\r\n\r\n this.accountModel = new AppAccount();\r\n this.accountModel.userRequest = new AppUser();\r\n this.accountModel.limitHistoryInDays = 60;\r\n this.accountModel.identifier = 1;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.accountModel.userRequest.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n this.accountModel.userRequest.language = this.authenticationService.getLanguage();\r\n this.accountModel.accountPlatformRequest = [new AppAccountPlatform()];\r\n }\r\n\r\n togglePlatform(platform) {\r\n platform.isUsed = !platform.isUsed;\r\n }\r\n\r\n addAccountPlatform() {\r\n this.accountModel.accountPlatformRequest.push(new AppAccountPlatform());\r\n }\r\n\r\n removeAccountPlatform(i) {\r\n this.accountModel.accountPlatformRequest.splice(i, 1);\r\n }\r\n\r\n checkTokenValidation(accountPlatformRequest: AppAccountPlatform[]) {\r\n let isDisabled = true;\r\n if (accountPlatformRequest.length) {\r\n isDisabled = !((accountPlatformRequest[0].platformName && accountPlatformRequest[0].platformName.length > 0)\r\n && (accountPlatformRequest[0].token && accountPlatformRequest[0].token.length > 0)\r\n && (accountPlatformRequest[0].url && accountPlatformRequest[0].url.length > 0)\r\n && (!isNaN(accountPlatformRequest[0].platformType))\r\n );\r\n }\r\n return isDisabled;\r\n }\r\n\r\n serializeValues(platform): string {\r\n\r\n if (isNaN(platform.platformType)) {\r\n return '';\r\n }\r\n\r\n if (platform.platformType === 6) {\r\n return 'flespiwasl';\r\n }\r\n\r\n return btoa([platform.platformType, platform.token, platform.url].join('-'));\r\n }\r\n\r\n isBoolean = (result) => (typeof (result) === 'boolean' && (result\r\n ? this.platformValidation.Valid\r\n : this.platformValidation.Invalid)\r\n );\r\n\r\n hasValidPlatform(): boolean {\r\n console.log('checking latform valid');\r\n\r\n if (!this.accountplatforms) {\r\n return false;\r\n }\r\n\r\n return !this.accountModel.accountPlatformRequest.some((platform) => !this.accountplatforms.validatedAccountsPlatforms[this.serializeValues(platform)]);\r\n }\r\n\r\n createAccount() {\r\n\r\n this.accountModel.limitHistoryInDays = this.accountModel.limitHistoryInDays || 60;\r\n this.accountModel.status = this.accountModel.status || 1;\r\n\r\n if (!Number(this.accountModel.identifier)) {\r\n this.accountModel.identifier = 4;\r\n }\r\n\r\n this.loading = true;\r\n\r\n this.accountService.createAccount(this.accountModel).subscribe((result) => {\r\n this.loading = false;\r\n if (result.completed) {\r\n this.router.navigate(['AccountDetails/Index/' + result.data.id]);\r\n }\r\n this.hasError = result.data;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.accounts' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.add' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.account' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.addUser' | translate }}\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { AccountService } from '../../services/accounts/accounts.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { InventoryAccount } from '../../models/account.model';\r\n\r\n@Component({\r\n selector: 'fh-account-calculation-settings',\r\n templateUrl: 'accountCalculationSettings.template.html'\r\n})\r\nexport class AccountCalculationSettingsViewComponent implements OnInit {\r\n sub;\r\n account: InventoryAccount;\r\n\r\n constructor(private http: HttpClient, private accountService: AccountService, private route: ActivatedRoute, private router: Router) {\r\n this.account = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.account = new InventoryAccount;\r\n this.account.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountService.getAccountById(id).subscribe(account => {\r\n this.account = account;\r\n\r\n if (this.account == null) {\r\n this.router.navigate(['/Accounts/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.accounts' | translate }}\r\n
  4. \r\n
  5. \r\n {{account?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.calculationsettings' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, AfterViewInit, OnDestroy, ViewChild, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { Map } from 'leaflet';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { User, AppUser } from '../../models/user.model';\r\nimport { PlatformService } from '../../services/platform/platform.service';\r\nimport { AccountService } from '../../services/accounts/accounts.service';\r\nimport { InventoryAccount, AccountPlatform } from '../../models/account.model';\r\nimport { AccountPlatformService } from '../../services/platform/accountPlatform.service';\r\nimport { DeleteModalComponent } from '../shared/usercontrols/deleteModal.component';\r\nimport { AppAccountPlatform } from 'app/models/platform.model';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { FormMode } from 'app/common/enums';\r\n\r\n@Component({\r\n selector: 'fh-account-details-view',\r\n templateUrl: 'accountDetails.template.html'\r\n})\r\n\r\nexport class AccountDetailsViewComponent implements OnInit {\r\n\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n\r\n formMode = FormMode.read;\r\n\r\n map: Map;\r\n options;\r\n layersControl;\r\n selectedRow: any;\r\n selected: any;\r\n theTrips = [];\r\n timeoutHandler;\r\n chartFuel: any;\r\n sensors;\r\n sub;\r\n account: InventoryAccount;\r\n loading = false;\r\n loadingSensors = false;\r\n platforms: any;\r\n users: AppUser[];\r\n accountPlatforms = [];\r\n loadingUsers: boolean;\r\n loadingAccountPlatforms: boolean;\r\n\r\n hasError = [];\r\n hasSuccess = [];\r\n\r\n showAccountPlatforms = false;\r\n error: any;\r\n success: string;\r\n\r\n formModeAccountPlatforms = FormMode.read;\r\n\r\n constructor(private cd: ChangeDetectorRef, private deviceService: DeviceService, private accountPlatformService: AccountPlatformService, private route: ActivatedRoute, private router: Router, private userService: UserService, private accountService: AccountService, private platformService: PlatformService) {\r\n this.account = null;\r\n this.sensors = [];\r\n this.theTrips = [];\r\n this.accountPlatforms = [];\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.account = new InventoryAccount;\r\n this.loading = true;\r\n this.loadingUsers = true;\r\n this.loadingAccountPlatforms = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountService.getAccountById(id).subscribe(account => {\r\n this.account = account;\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n if (this.account == null) {\r\n this.router.navigate(['/Accounts/Overview'])\r\n }\r\n });\r\n\r\n this.userService.getUsersByAccountId(id).subscribe(result => {\r\n this.loadingUsers = false;\r\n this.users = result;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.accountPlatformService.getAccountPlatformByAccountId(id).subscribe(result => {\r\n this.accountPlatforms = result;\r\n this.loadingAccountPlatforms = false;\r\n this.cd.markForCheck();\r\n });\r\n });\r\n }\r\n\r\n getAccountIfo() {\r\n this.loading = true;\r\n\r\n this.accountService.getAccountById(this.account.id).subscribe(account => {\r\n this.account = account;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onSave() {\r\n this.loading = true;\r\n\r\n this.accountService.updateAccount(this.account).subscribe(result => {\r\n console.log(result);\r\n this.error = null;\r\n this.success = 'Succes';\r\n\r\n this.getAccountIfo();\r\n }, error => {\r\n this.error = error\r\n this.getAccountIfo();\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n\r\n if (this.formMode === FormMode.read) {\r\n this.loading = true;\r\n this.getAccountIfo();\r\n }\r\n }\r\n\r\n deleteAccount() {\r\n this.deleteModal.showModal(0);\r\n }\r\n\r\n onAccountDelete(event) {\r\n this.deleteModal.hideModal();\r\n\r\n this.accountService.deleteAccount(this.account.id).subscribe(appUser => {\r\n // todo: refresh grid\r\n this.router.navigate(['Accounts/Overview']);\r\n });\r\n console.log(event);\r\n }\r\n\r\n togglePlatform(platform) {\r\n platform.isUsed = !platform.isUsed;\r\n }\r\n\r\n updateAccountPlatforms(event) {\r\n this.loadingAccountPlatforms = true;\r\n this.cd.markForCheck();\r\n\r\n this.accountPlatformService.getAccountPlatformByAccountId(this.account.id).subscribe(result => {\r\n this.accountPlatforms = result;\r\n this.loadingAccountPlatforms = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n createAccountPlatforms(accountPlatforms: AppAccountPlatform[]) {\r\n\r\n const createAccountPlatformCall = ((request: AppAccountPlatform) =>\r\n this.accountPlatformService.createNewAccountPlatform(\r\n this.account.id,\r\n request.platformName,\r\n request.username,\r\n request.password,\r\n request.platformType,\r\n request.token,\r\n request.url\r\n )\r\n );\r\n\r\n forkJoin(accountPlatforms\r\n .filter(ap => ap.platformType)\r\n .map(createAccountPlatformCall)).subscribe(createResult => {\r\n\r\n this.loadingAccountPlatforms = true;\r\n this.hasError = [];\r\n this.hasSuccess = [];\r\n\r\n createResult.forEach(accountPlatform => {\r\n if (accountPlatform.completed) {\r\n this.hasSuccess.push(accountPlatform.data.message);\r\n } else {\r\n this.hasError.push(accountPlatform.data);\r\n }\r\n });\r\n\r\n this.accountPlatformService.getAccountPlatformByAccountId(this.account.id).subscribe(accountPlatformResult => {\r\n this.accountPlatforms = accountPlatformResult;\r\n this.loadingAccountPlatforms = false;\r\n\r\n console.log('Set formmode');\r\n this.formModeAccountPlatforms = FormMode.read;\r\n this.cd.markForCheck();\r\n });\r\n });\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.accounts' | translate }}\r\n
  4. \r\n
  5. \r\n {{account?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.details' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.accountDetails' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.users' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ 'general.name' | translate}}\r\n
\r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n \r\n {{ user.name }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { AccountService } from 'app/services/accounts/accounts.service';\r\nimport { InventoryAccount } from 'app/models/account.model';\r\n\r\n@Component({\r\n selector: 'fh-account-log',\r\n templateUrl: 'accountLog.template.html'\r\n})\r\nexport class AccountLogViewComponent implements OnInit {\r\n accountLog = [];\r\n sub;\r\n loading = false;\r\n account: InventoryAccount;\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private accountService: AccountService, private route: ActivatedRoute, private router: Router) {\r\n this.account = null;\r\n this.accountLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.account = new InventoryAccount;\r\n this.account.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountService.getAccountById(id).subscribe(account => {\r\n this.account = account;\r\n\r\n if (this.account == null) {\r\n this.router.navigate(['/Accounts/Overview'])\r\n }\r\n\r\n this.auditLogService.getAuditLogByAccount(id).subscribe(accountLog => {\r\n console.log('loading done');\r\n this.accountLog = accountLog;\r\n this.loading = false;\r\n });\r\n\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.accounts' | translate }}\r\n
  4. \r\n
  5. \r\n {{account?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.log' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, NgZone } from '@angular/core';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsLocaleService } from 'ngx-bootstrap/datepicker';\r\nimport { AccountService } from '../../services/accounts/accounts.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-accounts',\r\n templateUrl: 'accounts.template.html',\r\n styleUrls: ['accounts.template.css']\r\n})\r\nexport class AccountViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n countrySelect = false;\r\n\r\n dtOptions = {};\r\n loading = false;\r\n showOnlyActive = true;\r\n permissions: {};\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n dropdown_Severity = '';\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n constructor(private ngZone: NgZone, private localeService: BsLocaleService, private route: ActivatedRoute, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private authenticationService: AuthenticationService, private accountService: AccountService) {\r\n const that = this;\r\n\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.permissions = this.authenticationService.permissions;\r\n }\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n window['my'] = window['my'] || {};\r\n window['my'].namespace = window['my'].namespace || {};\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n order: [[1, 'asc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.accountService.getAccounts().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n data: 'createdDate',\r\n title: this.translateService.instant('general.created'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n return data;\r\n }\r\n }\r\n ],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.accounts' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, NgZone } from '@angular/core';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { BsLocaleService } from 'ngx-bootstrap/datepicker';\r\nimport { AccountService } from '../../services/accounts/accounts.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-accounts-with-use',\r\n templateUrl: 'accountsWithUse.template.html',\r\n styleUrls: ['accountsWithUse.template.css']\r\n})\r\nexport class AccountWithUseViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n countrySelect = false;\r\n\r\n dtOptions = {};\r\n loading = false;\r\n permissions: {};\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n dropdown_Severity = '';\r\n languageLoaded: boolean;\r\n showOnlyActive = true;\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n constructor(private ngZone: NgZone, private localeService: BsLocaleService, private route: ActivatedRoute, private router: Router, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private authenticationService: AuthenticationService, private accountService: AccountService) {\r\n const that = this;\r\n\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n this.token = this.authenticationService.getAuthToken();\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.showOnlyActive = !this.permissions['HasWasl'];\r\n\r\n }\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter('init');\r\n }\r\n\r\n fireFilter(event): void {\r\n\r\n if (event != null) {\r\n console.log('Fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n if (this.showOnlyActive === true) {\r\n dtInstance.column('isActive:name').search('true');\r\n } else {\r\n dtInstance.column('isActive:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n window['my'] = window['my'] || {};\r\n window['my'].namespace = window['my'].namespace || {};\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const hideForWasl = !this.permissions['HasWasl'];\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n order: [[2, 'desc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n const accountsCall = this.permissions['HasWasl']\r\n ? this.accountService.getAccountsWithUseWasl()\r\n : this.accountService.getAccountsWithUse()\r\n\r\n accountsCall.subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n data: 'userCount',\r\n title: this.translateService.instant('general.userCount')\r\n },\r\n {\r\n data: 'platformCount',\r\n title: this.translateService.instant('general.platformCount'),\r\n visible: hideForWasl\r\n },\r\n {\r\n data: 'deviceCount',\r\n title: hideForWasl ? this.translateService.instant('general.deviceCount') : this.translateService.instant('general.devices'),\r\n },\r\n {\r\n data: 'status',\r\n title: this.translateService.instant('general.accountStatus'),\r\n visible: hideForWasl,\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.accountStatus') : '-';\r\n }\r\n },\r\n {\r\n data: 'createdDate',\r\n title: this.translateService.instant('general.created'),\r\n visible: hideForWasl,\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n return data;\r\n }\r\n }\r\n ],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n\r\n if (this.permissions['HasWasl']) {\r\n\r\n this.dtOptions['columns'].push({\r\n name: 'waslCompany',\r\n data: 'properties',\r\n title: `
${this.translateService.instant('general.registered')}
`,\r\n render: (data, type, row) => {\r\n return Boolean(data && data.wasl && data.wasl.referenceKey) ? this.translateService.instant('general.yes') : this.translateService.instant('general.no')\r\n }\r\n });\r\n this.dtOptions['columns'].push({\r\n data: 'assetCount',\r\n title: this.translateService.instant('general.assets'),\r\n });\r\n this.dtOptions['columns'].push({\r\n data: 'waslAssetCount',\r\n title: `
${this.translateService.instant('general.waslAsset')}
`,\r\n });\r\n this.dtOptions['columns'].push({\r\n data: 'driverCount',\r\n title: this.translateService.instant('general.drivers'),\r\n });\r\n this.dtOptions['columns'].push({\r\n data: 'waslDriverCount',\r\n title: `
${this.translateService.instant('general.waslDriver')}
`,\r\n });\r\n this.dtOptions['columns'].push({\r\n data: 'waslFailedCount',\r\n title: `
${this.translateService.instant('general.inquiryIssues')}
`,\r\n });\r\n this.dtOptions['columns'].push({\r\n data: 'waslSuccessCount',\r\n visible: false,\r\n title: `
${this.translateService.instant('general.inquiryValid')}
`,\r\n });\r\n } else {\r\n\r\n this.dtOptions['columns'].push(\r\n {\r\n data: 'date',\r\n title: this.translateService.instant('general.issueDate'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n return data;\r\n }\r\n },\r\n {\r\n data: 'jobCount',\r\n title: this.translateService.instant('general.jobCount')\r\n },\r\n {\r\n name: 'isActive',\r\n data: 'isActive',\r\n title: this.translateService.instant('general.active'),\r\n visible: false,\r\n // render: function (data, type, row) {\r\n // return data === true ? '' : '';\r\n // }\r\n },\r\n {\r\n data: 'issueCount',\r\n title: this.translateService.instant('general.issueCount')\r\n });\r\n\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.accounts' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { DataTablesModule } from 'angular-datatables';\r\n\r\nimport { DashboardComponent } from './appviews/dashboard.component';\r\nimport { UnsubscribeComponent } from './appviews/unsubscribe.component';\r\n\r\n// Platform\r\nimport { PlatformViewComponent } from './platforms/platforms.component';\r\nimport { PlatformDetailsViewComponent } from './platforms/platformDetails.component';\r\nimport { PlatformDevicesViewComponent } from './platforms/platformDevices.component';\r\n\r\n// Device\r\nimport { DevicesViewComponent } from './devices/devices.component';\r\nimport { DeviceDetailsViewComponent } from './devices/deviceDetails.component';\r\nimport { DeviceAssetViewComponent } from 'app/views/devices/assetDetails.component';\r\nimport { DeviceFuelViewComponent } from 'app/views/devices/deviceFuel.component';\r\nimport { DevicesIssuesViewComponent } from './issues/deviceIssues.component';\r\nimport { DeviceCalculationSettingsViewComponent } from './devices/deviceCalculationSettings.component';\r\n\r\nimport { DeviceSettingsViewComponent } from 'app/views/devices/deviceSettings.component';\r\nimport { DeviceLocationsViewComponent } from 'app/views/devices/deviceLocations.component';\r\nimport { DeviceTripsViewComponent } from 'app/views/devices/trips.component';\r\nimport { DevicesMapViewComponent } from './devices/devicesMap.component';\r\nimport { DevicesMap2ViewComponent } from 'app/views/devices/devicesMap2.component';\r\nimport { DeviceLogViewComponent } from './devices/deviceLog.component';\r\nimport { DeviceIssuesViewComponent } from './devices/deviceIssues.component';\r\n\r\n// Issues\r\nimport { IssuesViewComponent } from './issues/issues.component';\r\nimport { IssuesMapViewComponent } from './issues/issuesMap.component';\r\nimport { ReportingViewComponent } from './reporting/reporting.component';\r\n\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations'\r\n\r\n// Customers\r\nimport { CustomersViewComponent } from './customers/customers.component';\r\nimport { CustomerDetailsViewComponent } from './customers/customerDetails.component';\r\nimport { CustomerDevicesViewComponent } from './customers/customerDevices.component';\r\nimport { CustomerCalculationSettingsViewComponent } from './customers/customerCalculationSettings.component';\r\nimport { CustomerIssuesViewComponent } from './customers/customerIssues.component';\r\n\r\n// Users\r\nimport { UsersViewComponent } from './users/users.component';\r\nimport { UserDetailsViewComponent } from './users/userDetails.component';\r\nimport { UserAddViewComponent } from './users/userAdd.component';\r\n\r\n// Settings\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { ThemeSettingsComponent } from './settings/theme.component';\r\nimport { LanguageSettingsComponent } from './settings/language.component';\r\nimport { WorkflowSettingsComponent } from './settings/workflow.component';\r\nimport { ErrorLogComponent } from './settings/errorlog.component';\r\nimport { CalculationSettingsOverViewComponent } from './settings/calculationSettingsOverview.component';\r\nimport { CalculationSettingsOverViewTableComponent } from './settings/calculationSettingsOverviewTable.component';\r\n\r\n// Error\r\nimport { Error404Component } from './appviews/error404.component';\r\n\r\n// Search\r\nimport { SearchViewComponent } from './appviews/search.component';\r\n\r\n// Schedule\r\nimport { ScheduleViewComponent } from './schedule/schedule.component';\r\nimport { CalendarViewComponent } from './schedule/calendar.component';\r\n\r\n// Calendar\r\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\n\r\n// Forms\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LoginComponent } from './appviews/login.component';\r\nimport { RegisterComponent } from './appviews/register.component';\r\n\r\n// Modules\r\nimport { ChartModule } from 'angular-highcharts';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgxLoadingModule, ngxLoadingAnimationTypes } from 'ngx-loading';\r\nimport { PrettyJsonModule } from '../modules/prettyjson/prettyjson.module';\r\n\r\n// Leaflet\r\nimport { LeafletModule } from '@asymmetrik/ngx-leaflet';\r\n\r\n// Color picker\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n// Issues\r\nimport { IssueLogViewComponent } from './issues/issueLog.component';\r\nimport { IssueDetailsViewComponent } from './issues/issueDetails.component';\r\nimport { IssueDetailsChartViewComponent } from './issues/issueDetailsChart.component';\r\n\r\n// Device types\r\nimport { DevicesTypeViewComponent } from './devicetypes/deviceTypes.component';\r\nimport { DeviceTypeDetailsViewComponent } from './devicetypes/deviceTypeDetails.component';\r\nimport { DeviceTypeIssuesViewComponent } from './devicetypes/deviceTypeIssues.component';\r\nimport { DeviceTypeDevicesViewComponent } from './devicetypes/deviceTypeDevices.component';\r\nimport { IssuesChartViewComponent } from './issues/charts.component';\r\n\r\n// NGX-Bootstrap\r\nimport { ModalModule, TimepickerModule } from 'ngx-bootstrap';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { SortableModule } from 'ngx-bootstrap/sortable';\r\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\r\nimport { TabsModule } from 'ngx-bootstrap/tabs';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\n\r\n// Modules\r\nimport { ICheckModule } from '../modules/icheck/icheck.module';\r\nimport { WizardModule } from '../modules/wizard/wizard.module';\r\n\r\nimport { TimezoneSelectorModule } from '../modules/timezoneselector/timezoneselector.module';\r\n\r\nimport { CountoModule } from '../modules/counto/counto.module';\r\nimport { AboutViewComponent } from './appviews/about.component';\r\nimport { HelpViewComponent } from './appviews/help.component';\r\n\r\n// IboxTools\r\nimport { IboxToolsModule } from './shared/iboxtools/iboxtools.module';\r\nimport { UsercontrolsModule } from './shared/usercontrols.module';\r\nimport { DeviceTypeCalculationSettingsViewComponent } from './devicetypes/deviceTypeCalculationSettings.component';\r\nimport { PlatformCalculationSettingsViewComponent } from './platforms/platformCalculationSettings.component';\r\nimport { CalculationSettingsViewComponent } from './settings/calculationSettings.component';\r\nimport { AccountViewComponent } from './accounts/accounts.component';\r\nimport { AccountDetailsViewComponent } from './accounts/accountDetails.component';\r\nimport { AccountCalculationSettingsViewComponent } from './accounts/accountCalculationSettings.component';\r\nimport { AccountWithUseViewComponent } from './accounts/accountsWithUse.component';\r\nimport { UserRoleDetailsViewComponent } from './users/userRoleDetails.component';\r\nimport { ProfileComponent } from './settings/profile.component';\r\nimport { ForgotComponent } from './appviews/forgotPassword.component';\r\nimport { AccountAddViewComponent } from './accounts/accountAdd.component';\r\nimport { SensorSettingsComponent } from './settings/sensorSettings.component';\r\nimport { SensorDetailsComponent } from './settings/sensorDetails.component';\r\nimport { SensorDevicesComponent } from './settings/sensorDevices.component';\r\nimport { SettingsGeneralComponent } from './settings/general.component';\r\n\r\n// Authentication callback components\r\nimport { EndsessionCallbackComponent } from './appviews/sso-endsession-callback.component';\r\nimport { AuthCallbackComponent } from './appviews/sso-auth-callback.component';\r\nimport { SsoLoginComponent } from './appviews/sso-login.component';\r\nimport { GroupedIssuesViewComponent } from './issues/groupedIssues.component';\r\n\r\n// Jobs\r\nimport { JobsActiveViewComponent } from './jobs/active.component';\r\nimport { JobsHistoryViewComponent } from './jobs/history.component';\r\n\r\n// Pipes\r\nimport { FilterRelevantPipe } from 'app/common/relevant.pipe';\r\nimport { TextFilterPipe } from 'app/common/textFilter.pipe';\r\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { UserRolesViewComponent } from './users/userRoles.component';\r\nimport { UserLogViewComponent } from './users/userLog.component';\r\nimport { PlatformIssuesViewComponent } from './platforms/platformIssues.component';\r\n\r\n// Tags (chips)\r\nimport { TagInputModule } from 'ngx-chips';\r\nimport { TagsViewComponent } from './appviews/tags.component';\r\nimport { TagListViewComponent } from './appviews/taglist.component';\r\nimport { WaslViewComponent } from './wasl/wasl.component';\r\nimport { DeviceSensorsViewComponent } from './devices/sensorDetails.component';\r\nimport { AssetViewComponent } from './assets/assets.component';\r\nimport { AssetDetailsViewComponent } from './assets/assetDetails.component';\r\nimport { AssetLogViewComponent } from './assets/assetLog.component';\r\nimport { AssetDeviceDetailsViewComponent } from './assets/assetDeviceDetails.component';\r\nimport { AssetTrailersViewComponent } from './assets/trailers.component';\r\nimport { AssetAddViewComponent } from './assets/add.component';\r\nimport { CustomerAssetsViewComponent } from './customers/customerAssets.component';\r\nimport { DriversViewComponent } from './drivers/drivers.component';\r\nimport { DriversAddViewComponent } from './drivers/add.component';\r\nimport { AssetDriversViewComponent } from './assets/assetDrivers.component';\r\nimport { DriverDetailsViewComponent } from './drivers/driverDetails.component';\r\nimport { DriverAssetsViewComponent } from './drivers/driverAssets.component';\r\nimport { DriverDevicesViewComponent } from './drivers/driverDevices.component';\r\nimport { TrailerViewComponent } from './trailers/trailers.component';\r\nimport { TrailerDetailsViewComponent } from './trailers/trailerDetails.component';\r\nimport { TrailerAddViewComponent } from './trailers/add.component';\r\nimport { AssetTypeViewComponent } from './assettypes/assetTypes.component';\r\nimport { AssetTypeDetailsViewComponent } from './assettypes/assetTypeDetails.component';\r\nimport { AssetTypeAddViewComponent } from './assettypes/add.component';\r\nimport { AssetTypeCalibrationViewComponent } from './assettypes/calibration.component';\r\nimport { TrailerAssetsViewComponent } from './trailers/assets.component';\r\nimport { DeviceAddViewComponent } from './devices/add.component';\r\nimport { AssetTypeAssetsViewComponent } from './assettypes/assets.component';\r\nimport { TrailerChooserComponent } from './assets/trailerChooser.component';\r\nimport { DriverChooserComponent } from './assets/driverChooser.component';\r\nimport { DeviceChooserComponent } from './assets/deviceChooser.component';\r\nimport { DriverLogViewComponent } from './drivers/driverLog.component';\r\nimport { AssetMessageViewComponent } from './assets/messages.component';\r\nimport { AssetTripsViewComponent } from './assets/trips.component';\r\nimport { AccountLogViewComponent } from './accounts/accountLog.component';\r\nimport { AssetTypeLogViewComponent } from './assettypes/assetTypeLog.component';\r\nimport { AssetsMapViewComponent } from './assets/map.component';\r\nimport { SensorTypeDetailsViewComponent } from './sensortypes/sensorTypesDetails.component';\r\nimport { SensorTypeViewComponent } from './sensortypes/sensorTypes.component';\r\nimport { SensorTypeAddViewComponent } from './sensortypes/add.component';\r\nimport { AssetCalibrationViewComponent } from './assets/sensors.component';\r\nimport { WaslRegistrationStatusViewComponent } from './wasl/status.component';\r\nimport { DataTables360Module } from 'app/modules/360grid';\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n RegisterComponent,\r\n ForgotComponent,\r\n AssetViewComponent,\r\n AssetDetailsViewComponent,\r\n AssetDeviceDetailsViewComponent,\r\n AssetCalibrationViewComponent,\r\n AssetMessageViewComponent,\r\n AssetDriversViewComponent,\r\n AssetTrailersViewComponent,\r\n AssetTypeAssetsViewComponent,\r\n AssetTripsViewComponent,\r\n AssetLogViewComponent,\r\n AssetAddViewComponent,\r\n AssetsMapViewComponent,\r\n DashboardComponent,\r\n UnsubscribeComponent,\r\n PlatformViewComponent,\r\n PlatformDetailsViewComponent,\r\n PlatformDevicesViewComponent,\r\n PlatformIssuesViewComponent,\r\n PlatformCalculationSettingsViewComponent,\r\n CustomersViewComponent,\r\n CustomerDetailsViewComponent,\r\n CustomerDevicesViewComponent,\r\n CustomerCalculationSettingsViewComponent,\r\n CustomerAssetsViewComponent,\r\n CustomerIssuesViewComponent,\r\n DevicesViewComponent,\r\n DevicesIssuesViewComponent,\r\n DeviceDetailsViewComponent,\r\n DeviceAssetViewComponent,\r\n DeviceFuelViewComponent,\r\n DeviceSettingsViewComponent,\r\n DeviceLocationsViewComponent,\r\n DeviceTripsViewComponent,\r\n DeviceIssuesViewComponent,\r\n DeviceCalculationSettingsViewComponent,\r\n DevicesMapViewComponent,\r\n DevicesMap2ViewComponent,\r\n DeviceLogViewComponent,\r\n DevicesTypeViewComponent,\r\n DeviceSensorsViewComponent,\r\n DeviceAddViewComponent,\r\n DeviceChooserComponent,\r\n DeviceTypeDetailsViewComponent,\r\n DeviceTypeIssuesViewComponent,\r\n DeviceTypeDevicesViewComponent,\r\n DeviceTypeCalculationSettingsViewComponent,\r\n TrailerViewComponent,\r\n TrailerDetailsViewComponent,\r\n TrailerAddViewComponent,\r\n TrailerAssetsViewComponent,\r\n TrailerChooserComponent,\r\n DriverChooserComponent,\r\n AssetTypeViewComponent,\r\n AssetTypeDetailsViewComponent,\r\n AssetTypeAddViewComponent,\r\n AssetTypeCalibrationViewComponent,\r\n AssetTypeLogViewComponent,\r\n DriversViewComponent,\r\n DriversAddViewComponent,\r\n DriverDetailsViewComponent,\r\n DriverAssetsViewComponent,\r\n DriverDevicesViewComponent,\r\n DriverLogViewComponent,\r\n IssuesChartViewComponent,\r\n IssuesViewComponent,\r\n IssuesMapViewComponent,\r\n JobsActiveViewComponent,\r\n JobsHistoryViewComponent,\r\n GroupedIssuesViewComponent,\r\n Error404Component,\r\n SearchViewComponent,\r\n TagsViewComponent,\r\n TagListViewComponent,\r\n ScheduleViewComponent,\r\n CalendarViewComponent,\r\n ReportingViewComponent,\r\n SettingsComponent,\r\n ThemeSettingsComponent,\r\n LanguageSettingsComponent,\r\n WorkflowSettingsComponent,\r\n CalculationSettingsOverViewComponent,\r\n CalculationSettingsOverViewTableComponent,\r\n SensorSettingsComponent,\r\n SensorDetailsComponent,\r\n SensorDevicesComponent,\r\n UsersViewComponent,\r\n UserDetailsViewComponent,\r\n UserLogViewComponent,\r\n UserRoleDetailsViewComponent,\r\n UserRolesViewComponent,\r\n AccountViewComponent,\r\n AccountDetailsViewComponent,\r\n AccountCalculationSettingsViewComponent,\r\n AccountAddViewComponent,\r\n AccountWithUseViewComponent,\r\n AccountLogViewComponent,\r\n UserAddViewComponent,\r\n CalculationSettingsViewComponent,\r\n ErrorLogComponent,\r\n ProfileComponent,\r\n SettingsGeneralComponent,\r\n IssueLogViewComponent,\r\n IssueDetailsViewComponent,\r\n IssueDetailsChartViewComponent,\r\n AboutViewComponent,\r\n HelpViewComponent,\r\n EndsessionCallbackComponent,\r\n SensorTypeDetailsViewComponent,\r\n SensorTypeViewComponent,\r\n SensorTypeAddViewComponent,\r\n WaslViewComponent,\r\n WaslRegistrationStatusViewComponent,\r\n AuthCallbackComponent,\r\n SsoLoginComponent,\r\n FilterRelevantPipe,\r\n TextFilterPipe\r\n ],\r\n imports: [\r\n BrowserModule,\r\n RouterModule,\r\n AngularMultiSelectModule,\r\n ChartModule,\r\n DataTablesModule,\r\n DataTables360Module,\r\n HttpClientModule,\r\n MomentModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BrowserAnimationsModule,\r\n CountoModule,\r\n IboxToolsModule,\r\n TimezoneSelectorModule,\r\n TagInputModule,\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory\r\n }),\r\n ICheckModule.forRoot(),\r\n WizardModule,\r\n SortableModule.forRoot(),\r\n CarouselModule.forRoot(),\r\n TabsModule.forRoot(),\r\n LeafletModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n BsDatepickerModule.forRoot(),\r\n TimepickerModule.forRoot(),\r\n PaginationModule.forRoot(),\r\n ModalModule.forRoot(),\r\n UsercontrolsModule,\r\n NgxLoadingModule.forRoot({\r\n animationType: ngxLoadingAnimationTypes.rectangleBounce,\r\n backdropBackgroundColour: 'rgba(255,255,255,0.7)',\r\n backdropBorderRadius: '4px',\r\n primaryColour: '#DC8139',\r\n secondaryColour: '#DC8139',\r\n tertiaryColour: '#DC8139'\r\n }),\r\n ColorPickerModule,\r\n TranslateModule,\r\n PrettyJsonModule\r\n ],\r\n exports: [\r\n DashboardComponent,\r\n LoginComponent,\r\n TranslateModule\r\n ],\r\n})\r\n\r\nexport class AppviewsModule {\r\n}\r\n","import { Component, OnDestroy, OnInit, } from '@angular/core';\r\nimport { appDate, appVersion } from '../../app.version'\r\nimport { InfoService } from 'app/services/info/info.service';\r\nimport { environment } from 'app/../environments/environment';\r\n\r\n@Component({\r\n selector: 'fh-about',\r\n templateUrl: 'about.component.html'\r\n})\r\nexport class AboutViewComponent implements OnDestroy, OnInit {\r\n\r\n appDate: string;\r\n appVersion: string;\r\n applications = [];\r\n endPoint: string;\r\n database: string;\r\n\r\n constructor(private infoService: InfoService) {\r\n infoService.getInfo().subscribe(result => {\r\n this.applications = result;\r\n })\r\n\r\n this.endPoint = infoService.getEndPoint();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.appVersion = environment.version;\r\n this.appDate = appDate;\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'about.header' | translate }}\r\n
  4. \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'about.header' | translate }}
\r\n
\r\n
\r\n \r\n

{{'about.intro' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'about.header' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'about.build' | translate }}\r\n \r\n {{ appVersion }}\r\n
\r\n Endpoint\r\n \r\n {{ endPoint }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ application.application}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'about.build' | translate }}\r\n \r\n {{ application.version}}\r\n
\r\n {{'about.builddate' | translate }}\r\n \r\n {{ application.date | amDateFormat: 'LLL' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Wouter de Korte\r\n
\r\n Head of Development\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Jelle de Vos\r\n
\r\n Senior developer\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Paul Redert\r\n
\r\n Developer\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n Volha Smirnova\r\n
\r\n Head of Brand Development\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Öteken Pekince\r\n
\r\n Junior developer\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Damien Rietdijk\r\n
\r\n Junior developer\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Willem Romijn\r\n
\r\n Senior developer\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Maurice Weijgand\r\n
\r\n Founder\r\n
\r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { TranslatorService } from 'app/services/common/translator.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DashboardService } from '../../services/dashboard/dashboard.service';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { WorstDevices } from '../../models/dashboard.model';\r\nimport { ToastrService } from '../../../../node_modules/ngx-toastr';\r\nimport { Router, ActivatedRoute } from '../../../../node_modules/@angular/router';\r\nimport { BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { ColorService } from 'app/services/common/color.service';\r\n\r\nimport { DashboardNotification } from 'app/models/notification.model';\r\nimport { AccountService } from 'app/services/accounts/accounts.service';\r\nimport { AccountPlatformService } from 'app/services/platform/accountPlatform.service';\r\n\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\n\r\nimport { trigger, transition, animate, style, state, group } from '@angular/animations'\r\n// Timezone\r\nimport * as moment from 'moment-timezone';\r\nimport { TagService } from 'app/services/tag/tag.service';\r\nimport { TagUsage } from 'app/models/tag.model';\r\nimport { getTranslatedDropdownSettings, mapMultiDropdown, getDropdownSettings } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-dashboard',\r\n templateUrl: 'dashboard.template.html',\r\n styleUrls: ['dashboard.template.css'],\r\n providers: [FhChartService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0.5 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 1 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-in-out', style({ 'opacity': '0.5' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(-100%)' }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0.5 }),\r\n group([\r\n animate(300, style({ height: '*' })),\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('400ms ease-in-out', style({ 'opacity': '1' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(0%)' }))\r\n ])\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class DashboardComponent implements OnDestroy, OnInit {\r\n\r\n chartPieIssueTypes: Chart;\r\n chartDistance: Chart;\r\n loadingIssuesPerType: boolean;\r\n loadingMessageCount: boolean;\r\n worstDevices: WorstDevices[] = [];\r\n today: number;\r\n start: number;\r\n daysForDayshboard: number;\r\n\r\n loadingPerDeviceChart: boolean;\r\n loadingPerIssueChart: boolean;\r\n loadingIssueCount: Boolean;\r\n issueTypesResult = [];\r\n deviceTypes: DeviceType[];\r\n issueTypes: IssueType[];\r\n progress = [];\r\n progress2 = [];\r\n\r\n deviceCountHistory = 0;\r\n healthyCountHistory = 0;\r\n issueCountHistory = 0;\r\n deviceTypesCountHistory = 0;\r\n\r\n healthyCountHistoryPercentage = 0;\r\n issueCountHistoryPercentage = 0;\r\n deviceCountHistoryPercentage = 0;\r\n deviceTypesCountHistoryPercentage = 0;\r\n\r\n issueTypesEnum;\r\n\r\n public nav: any;\r\n loadingIssues = false;\r\n deviceTypesCount = 0;\r\n issueCount = 0;\r\n healthyCount = 0;\r\n issues: Issue[];\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n private issueCountObservable = new Subject();\r\n issueCountObservable$ = this.issueCountObservable.asObservable();\r\n\r\n loadingDevices = false;\r\n loadingCustomers = false;\r\n\r\n deviceCount = 0;\r\n\r\n chart1;\r\n chart2;\r\n chart3;\r\n chart4;\r\n\r\n chartHealthy;\r\n chartLocationType;\r\n deviceWithIssues = 0;\r\n deviceWithIssuesLastPeriod = 0;\r\n deviceWithIssuesHistory = 0;\r\n deviceWithIssuesPercentage = 0;\r\n deviceWithIssuesHistoryPercentage = 0;\r\n deviceWithIssuesMax: any;\r\n\r\n healthyDateSelection = 1;\r\n adminIssueCount = 0;\r\n adminAccountsWithoutIssues = 0;\r\n adminActiveAccounts = 0;\r\n adminActiveJobCount = 0;\r\n adminActiveUsers = 0;\r\n adminHistoryJobCount = 0;\r\n assetCount = 0;\r\n trailerCount = 0;\r\n driverCount = 0;\r\n allDeviceCount = 0;\r\n assetTypeCount = 0;\r\n assetTypesUsedCount = 0;\r\n healthyShowPie = true;\r\n\r\n issueTypesDateSelection = '1';\r\n issueTypesShowPie = true;\r\n customerResult: any[];\r\n dateDisplay: any;\r\n timezoneIana: string;\r\n IssuesPerTypeData: any;\r\n notifications: DashboardNotification[];\r\n permissions: {};\r\n isImpersonated: boolean;\r\n\r\n\r\n\r\n loadingAccounts: boolean;\r\n chartAccountUse: Chart;\r\n chartAccountWithoutIssues: Chart;\r\n\r\n selectedCustomers = [];\r\n selectedAccountPlatforms = [];\r\n\r\n dropdown_AccountPlatformsSettings: any;\r\n dropdown_CustomerNameSettings: any;\r\n\r\n accountPlatforms = [];\r\n customers = [];\r\n\r\n tags: TagUsage[];\r\n chartTags: Chart;\r\n\r\n showFilter = true;\r\n constructorName = this.constructor.name;\r\n\r\n public constructor(private router: Router,\r\n private accountService: AccountService,\r\n private route: ActivatedRoute,\r\n private authenticationService: AuthenticationService,\r\n private colors: ColorService,\r\n private tagService: TagService,\r\n private translateService: TranslateService,\r\n private translatorService: TranslatorService,\r\n private authentication: AuthenticationService,\r\n private chartService: FhChartService,\r\n private accountPlatformService: AccountPlatformService,\r\n private customerService: CustomerService,\r\n private cd: ChangeDetectorRef,\r\n private issueTypeService: IssueTypeService,\r\n private dashboardService: DashboardService) {\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana()\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadingDevices = true;\r\n this.loadingIssues = true;\r\n this.loadingPerDeviceChart = true\r\n this.loadingPerIssueChart = true\r\n this.loadingIssueCount = true;\r\n this.loadingIssuesPerType = true;\r\n this.loadingCustomers = true;\r\n\r\n const that = this;\r\n\r\n this.tagService.getTagsWithUsage().subscribe(result => {\r\n this.tags = result;\r\n\r\n // let success = 3;\r\n // let noSuccess = 2;\r\n\r\n // const s = this.tags.filter(x => x.name === 'Wasl communication successfull');\r\n // const ns = this.tags.filter(x => x.name === 'Wasl communication unsuccessfull');\r\n\r\n // success = (s && s[0]) ? s[0].useCount : 0;\r\n // noSuccess = (ns && ns[0]) ? ns[0].useCount : 0;\r\n\r\n // let theData = [{\r\n // name: this.translatorService.translate('dashboard.waslSuccessTitle'),\r\n // innerSize: '60%',\r\n // data: [{\r\n // name: this.translatorService.translate('dashboard.waslSuccess'),\r\n // y: success,\r\n // sliced: false,\r\n // selected: false,\r\n // color: this.colors.theme.overwrite ? this.colors.theme.chartPositive : '#5BB862',\r\n // events: {\r\n // click: function (event) {\r\n // const point = event.point as any;\r\n // console.log(event);\r\n // location.href = '/#/Tags/Wasl%20communication%20successfull';\r\n // }\r\n // }\r\n // }, {\r\n // name: this.translatorService.translate('dashboard.waslNoSuccess'),\r\n // y: noSuccess,\r\n // color: this.colors.theme.overwrite ? this.colors.theme.chartNegative : '#D8504F',\r\n // events: {\r\n // click: function (event) {\r\n // const point = event.point as any;\r\n // console.log(event);\r\n // location.href = '/#/Tags/Wasl%20communication%20unsuccessfull';\r\n // }\r\n // }\r\n // }]\r\n // }];\r\n\r\n const data = [];\r\n this.tags.forEach(tag => {\r\n\r\n data.push({\r\n name: tag.nameWithCount,\r\n y: tag.useCount,\r\n sliced: false,\r\n selected: false,\r\n events: {\r\n click: function (event) {\r\n that.router.navigate(['/Wasl/RegistrationStatus/' + tag.name]);\r\n }\r\n }\r\n });\r\n });\r\n\r\n const theData = [{\r\n name: this.translatorService.translate('dashboard.waslSuccessTitle'),\r\n innerSize: '60%',\r\n data: data\r\n }];\r\n\r\n this.chartTags = this.chartService.generateDonutChart(theData, '');\r\n });\r\n\r\n this.dropdown_AccountPlatformsSettings = getDropdownSettings();\r\n this.dropdown_CustomerNameSettings = getDropdownSettings();\r\n\r\n this.isImpersonated = this.authentication.getIsImpersonated();\r\n this.permissions = this.authentication.permissions;\r\n\r\n // Days in this period\r\n this.daysForDayshboard = 1;\r\n this.dateDisplay = this.translateService.instant('dates.today');\r\n this.today = moment().add(0, 'days').toDate().getTime();\r\n this.start = moment().add(0 - this.daysForDayshboard, 'days').toDate().getTime();\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n\r\n this.dropdown_CustomerNameSettings = getTranslatedDropdownSettings(this.translateService, 'allCustomers', false);\r\n this.dropdown_AccountPlatformsSettings = getTranslatedDropdownSettings(this.translateService, 'allPlatforms', false);\r\n\r\n switch (this.route.snapshot.url.length > 1 && this.route.snapshot.url[1].path) {\r\n case 'Month':\r\n this.daysForDayshboard = 31;\r\n this.dateDisplay = this.translateService.instant('dates.lastmonth');\r\n break;\r\n\r\n case 'Default':\r\n this.daysForDayshboard = 7;\r\n this.dateDisplay = this.translateService.instant('dates.lastweek');\r\n break;\r\n\r\n case 'Day':\r\n this.daysForDayshboard = 1;\r\n this.dateDisplay = this.translateService.instant('dates.yesterday');\r\n break;\r\n\r\n case 'Week':\r\n this.daysForDayshboard = 7;\r\n this.dateDisplay = this.translateService.instant('dates.lastweek');\r\n break;\r\n\r\n case 'Yesterday':\r\n this.daysForDayshboard = 2;\r\n this.dateDisplay = this.translateService.instant('dates.yesterday');\r\n break;\r\n\r\n case 'Today':\r\n this.daysForDayshboard = 1;\r\n this.dateDisplay = this.translateService.instant('dates.today');\r\n break;\r\n\r\n default:\r\n this.daysForDayshboard = 1;\r\n this.dateDisplay = this.translateService.instant('dates.yesterday');\r\n break;\r\n }\r\n\r\n const today = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-1, 'day').toDate();\r\n this.today = today.getTime();\r\n\r\n const start = moment().tz(this.authenticationService.getTimeZoneIana()).startOf('day').add(0 - this.daysForDayshboard, 'days').toDate();\r\n this.start = start.getTime();\r\n\r\n this.daterangepickerModel = [start, today];\r\n\r\n this.dpConfig.containerClass = 'theme-default'; // or whatever color\r\n this.dpConfig.dateInputFormat = 'll';\r\n // range picker\r\n this.dpConfig.rangeSeparator = ' - ';\r\n this.dpConfig.rangeInputFormat = 'll';\r\n\r\n forkJoin(this.accountPlatformService.getAccountPlatforms(), this.customerService.getCustomers())\r\n .subscribe(this.loadAccountPlatform);\r\n\r\n });\r\n }\r\n\r\n clearSelectedCustomers() {\r\n this.selectedCustomers = [];\r\n this.fireFilter();\r\n }\r\n\r\n clearSelectedAccountPlatforms() {\r\n this.selectedAccountPlatforms = [];\r\n this.fireFilter();\r\n }\r\n\r\n dateChanged(event) {\r\n this.fireFilter();\r\n }\r\n\r\n fireFilter() {\r\n\r\n const accountPlatforms = this.selectedAccountPlatforms.map(item => item.id);\r\n const customerIds = this.selectedCustomers.map(item => item.id);\r\n\r\n this.fetchData(accountPlatforms, customerIds);\r\n }\r\n\r\n loadAccountPlatform = ([accountPlatforms, customers]) => {\r\n\r\n this.customers = mapMultiDropdown(customers);\r\n this.accountPlatforms = mapMultiDropdown(accountPlatforms);\r\n // '968f42ab-b1df-486a-9879-01e4ee9f7247'\r\n this.fetchData([], []);\r\n };\r\n\r\n fetchData(accountPlatformId, customerId): any {\r\n\r\n this.start = this.daterangepickerModel[0].getTime();\r\n this.today = this.daterangepickerModel[1].getTime();\r\n\r\n this.loadingDevices = true;\r\n this.loadingIssues = true;\r\n this.loadingPerDeviceChart = true\r\n this.loadingPerIssueChart = true\r\n this.loadingIssueCount = true;\r\n this.loadingIssuesPerType = true;\r\n this.loadingCustomers = true;\r\n\r\n if (this.permissions['IsAdministrator']) {\r\n // Fetch administrator dashboard\r\n const theCurrentCount = this.dashboardService.getAdminDashboard()\r\n .subscribe((response) => {\r\n\r\n this.adminIssueCount = response.issueCount;\r\n this.adminAccountsWithoutIssues = response.accountsWithoutIssues;\r\n this.adminActiveAccounts = response.activeAccounts;\r\n this.adminActiveJobCount = response.activeJobCount;\r\n this.adminActiveUsers = response.activeUsers;\r\n this.adminHistoryJobCount = response.historyJobCount;\r\n\r\n this.loadingDevices = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.loadingAccounts = true;\r\n this.accountService.getAccountsWithUseHistory().subscribe(resp => {\r\n this.loadingAccounts = false;\r\n\r\n this.generateChartAccountUse(resp);\r\n this.generateChartAccountWithoutIssues(resp);\r\n });\r\n\r\n } else {\r\n // Fetch user dashboard\r\n const theCurrentCount = this.dashboardService.getDashboard(this.start, this.today, accountPlatformId, customerId)\r\n .subscribe((response) => {\r\n\r\n this.deviceCount = response.deviceCount;\r\n this.allDeviceCount = response.allDeviceCount;\r\n this.assetCount = response.assetCount;\r\n this.trailerCount = response.trailerCount;\r\n this.issueCount = response.issueCount;\r\n this.healthyCount = response.healthyCount;\r\n this.deviceTypesCount = response.deviceTypesCount;\r\n this.worstDevices = response.worstDevices;\r\n\r\n this.driverCount = response.driverCount;\r\n this.assetTypeCount = response.assetTypeCount;\r\n this.assetTypesUsedCount = response.assetTypesUsedCount\r\n\r\n this.deviceCountHistory = response.deviceCountLastPeriod;\r\n this.issueCountHistory = response.issueCountLastPeriod;\r\n this.healthyCountHistory = response.healthyCountLastPeriod;\r\n this.deviceTypesCountHistory = response.deviceTypesCountLastPeriod;\r\n\r\n this.deviceWithIssues = response.deviceWithIssues;\r\n this.deviceWithIssuesMax = response.deviceWithIssuesMax;\r\n this.deviceWithIssuesHistory = response.deviceWithIssuesLastPeriod;\r\n\r\n this.deviceCountHistoryPercentage = this.deviceCountHistory > 0 ? Math.round(((this.deviceCount / this.deviceCountHistory) - 1) * 100) : 0;\r\n this.issueCountHistoryPercentage = this.issueCountHistory > 0 ? Math.round(((this.issueCount / this.issueCountHistory) - 1) * 100) : 0;\r\n this.healthyCountHistoryPercentage = this.healthyCountHistory > 0 ? Math.round(((this.healthyCount / this.healthyCountHistory) - 1) * 100) : 0;\r\n this.deviceTypesCountHistoryPercentage = this.deviceTypesCountHistory > 0 ? Math.round(((this.deviceTypesCount / this.deviceTypesCountHistory) - 1) * 100) : 0;\r\n this.deviceWithIssuesHistoryPercentage = this.deviceWithIssuesHistory > 0 ? Math.round(((this.deviceWithIssues / this.deviceWithIssuesHistory) - 1) * 100) : 0;\r\n\r\n this.loadingDevices = false;\r\n this.loadingIssues = false;\r\n\r\n // this.toastr.warning('There are new issues since your last visit, ' + this.deviceWithIssues + ' of these issues are critical. Click here to see them '\r\n // , 'New issues', {\r\n // progressBar: true,\r\n // timeOut: 30000\r\n // }).onTap.subscribe(x => {\r\n // this.router.navigate(['/Issues/Devices']);\r\n // });\r\n\r\n // Set donut chart\r\n\r\n this.generateLocationHealty(this.healthyDateSelection);\r\n\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.dashboardService.getDashboardIssuesPerIssueType(this.start, this.today, accountPlatformId, customerId).subscribe(result => {\r\n this.IssuesPerTypeData = result;\r\n this.loadingIssuesPerType = false;\r\n this.generateIssuePerIssueTypeCharts(result, this.issueTypesDateSelection);\r\n this.generateIssueTypesChartBig(result);\r\n this.issueTypesResult = this.orderByIssueCount(result);\r\n\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.dashboardService.getDashboardIssuesPerCustomer(this.start, this.today).subscribe(result => {\r\n this.loadingCustomers = false;\r\n this.customerResult = this.orderByIssueCount(result);\r\n\r\n this.cd.markForCheck();\r\n });\r\n\r\n\r\n this.dashboardService.getDashboardIssuesPerDeviceType(this.start, this.today, accountPlatformId, customerId).subscribe(result => {\r\n this.generateIssuePerDeviceTypeCharts(result);\r\n this.cd.markForCheck();\r\n });\r\n const locationsEnd = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-1, 'day').toDate().getTime()\r\n const locationsStart = moment().tz(this.authenticationService.getTimeZoneIana()).startOf('day').add(-1, 'month').toDate().getTime();\r\n\r\n this.loadingMessageCount = true;\r\n this.cd.markForCheck();\r\n\r\n this.dashboardService.getDashboardMessageCount(locationsStart, locationsEnd, accountPlatformId, customerId).subscribe(result => {\r\n this.generateLocationCount(result);\r\n this.generateDistanceCount(result);\r\n this.loadingMessageCount = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.loadingIssueCount = true;\r\n this.dashboardService.getDashboardIssueCount(locationsStart, locationsEnd, accountPlatformId, customerId).subscribe(result => {\r\n this.generateIssueCount(result);\r\n this.loadingIssueCount = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.dashboardService.getNotification().subscribe(result => {\r\n this.notifications = result;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.generateLocationType();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n checkPositive(theNumber) {\r\n if (theNumber === Infinity) {\r\n return '^';\r\n }\r\n if (theNumber > 0) {\r\n return '+' + theNumber + '%';\r\n } else {\r\n return theNumber.toString() + '%';\r\n }\r\n }\r\n\r\n // Sorting\r\n\r\n orderBy(array: any[], prop: string) {\r\n return array.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n }\r\n\r\n orderByIssueCount(array: any[]) {\r\n return array.sort((a, b) => a[1].issueCount > b[1].issueCount ? 1 : a[1].issueCount === b[1].issueCount ? 0 : -1);\r\n }\r\n\r\n // Charts\r\n\r\n reDrawHealthy() {\r\n this.generateLocationHealty(this.healthyDateSelection);\r\n }\r\n\r\n reDrawIssueTypes() {\r\n this.generateIssuePerIssueTypeCharts(this.IssuesPerTypeData, this.issueTypesDateSelection);\r\n }\r\n\r\n generateLocationHealty(dateSelectionHealthy) {\r\n\r\n const healthy = this.healthyCount;\r\n if (this.healthyShowPie) {\r\n\r\n const theData = [{\r\n name: this.translatorService.translate('dashboard.healthyfleetcharttitle'),\r\n innerSize: '60%',\r\n data: [{\r\n name: this.translatorService.translate('dashboard.healthy'),\r\n y: healthy,\r\n sliced: false,\r\n selected: false,\r\n color: this.colors.theme.overwrite ? this.colors.theme.chartPositive : '#5BB862',\r\n }, {\r\n name: this.translatorService.translate('dashboard.unhealthy'),\r\n y: 100 - healthy,\r\n color: this.colors.theme.overwrite ? this.colors.theme.chartNegative : '#D8504F',\r\n }]\r\n }];\r\n\r\n this.chartHealthy = this.chartService.generateDonutChart(theData, '%');\r\n } else {\r\n\r\n const theData = [{\r\n name: this.translatorService.translate('dashboard.healthyfleetcharttitle'),\r\n innerSize: '60%',\r\n data: [{\r\n name: this.translatorService.translate('dashboard.healthy'),\r\n y: healthy,\r\n color: this.colors.theme.overwrite ? this.colors.theme.chartPositive : '#5BB862',\r\n }, {\r\n name: this.translatorService.translate('dashboard.unhealthy'),\r\n y: 100 - healthy,\r\n color: this.colors.theme.overwrite ? this.colors.theme.chartNegative : '#D8504F',\r\n }]\r\n }];\r\n\r\n this.chartHealthy = this.chartService.generateStackedChart(theData, '%');\r\n }\r\n }\r\n\r\n generateChartAccountUse(data) {\r\n\r\n const accounts = [];\r\n const accountData = [];\r\n const theData = [];\r\n\r\n this.loadingAccounts = false;\r\n\r\n data.forEach(value => {\r\n if (accounts.indexOf(value.name) === -1) {\r\n accounts.push(value.name);\r\n accountData[value.name] = [];\r\n }\r\n });\r\n\r\n // tslint:disable-next-line:forin\r\n data.forEach(value => {\r\n accountData[value.name].push([new Date(value.date).getTime(), value.issueCount]);\r\n });\r\n\r\n for (const account of accounts) {\r\n\r\n theData.push({\r\n name: account,\r\n data: accountData[account],\r\n type: 'column',\r\n yAxis: 0,\r\n });\r\n };\r\n\r\n const yAxis = [{\r\n title: {\r\n text: 'Issues'\r\n }\r\n }];\r\n\r\n this.chartAccountUse = this.chartService.generateStackedChartDashboard(theData, yAxis);\r\n this.cd.markForCheck();\r\n }\r\n\r\n generateChartAccountWithoutIssues(data) {\r\n const accounts = [];\r\n const accountData = [];\r\n const theData = [];\r\n\r\n this.loadingAccounts = false;\r\n\r\n this.accountService.getAccounts().subscribe(\r\n resultData => {\r\n\r\n const accountsData = resultData.filter(x => x.status !== 0);\r\n\r\n accountsData.forEach(account => {\r\n if (accounts.indexOf(account.name) === -1) {\r\n accounts.push(account.name);\r\n accountData[account.name] = [];\r\n }\r\n });\r\n\r\n // tslint:disable-next-line:forin\r\n\r\n const dateEnd = moment().add(-1, 'days').startOf('day').toDate().getTime();\r\n const dateStart = moment().add(-35, 'days').startOf('day').toDate().getTime();\r\n\r\n let loop = new Date(dateStart);\r\n while (loop <= dateEnd) {\r\n\r\n accountsData.forEach(account => {\r\n // tslint:disable-next-line:triple-equals\r\n if (data.filter(x => x.name === account.name && new Date(x.date).toLocaleDateString() == loop.toLocaleDateString()).length === 0) {\r\n accountData[account.name].push([loop.getTime(), 1]);\r\n }\r\n });\r\n\r\n const newDate = loop.setDate(loop.getDate() + 1);\r\n loop = new Date(newDate);\r\n }\r\n\r\n for (const account of accounts) {\r\n\r\n theData.push({\r\n name: account,\r\n data: accountData[account],\r\n type: 'column',\r\n yAxis: 0,\r\n });\r\n };\r\n\r\n const yAxis = [{\r\n title: {\r\n text: 'Issues'\r\n }\r\n }];\r\n\r\n this.chartAccountWithoutIssues = this.chartService.generateStackedChartDashboardNoIssues(theData, yAxis);\r\n this.cd.markForCheck();\r\n }\r\n );\r\n }\r\n\r\n generateIssuePerIssueTypeCharts(issueTypes, issueTypesDateSelection) {\r\n\r\n if (this.issueTypesShowPie) {\r\n const theRealData2 = [];\r\n\r\n this.orderByIssueCount(issueTypes).reverse().slice(0, 4).forEach(issueType => {\r\n theRealData2.push([issueType[0], issueType[1].issueCount]);\r\n });\r\n\r\n const theData2 = [{ name: 'Issues', data: theRealData2 }]\r\n this.chartPieIssueTypes = this.chartService.generateDonutChart(theData2, '');\r\n } else {\r\n const theRealData2 = [];\r\n\r\n this.orderByIssueCount(issueTypes).reverse().slice(0, 4).forEach(issueType => {\r\n theRealData2.push([issueType[0], issueType[1].issueCount]);\r\n });\r\n\r\n const theData2 = [{ name: 'Issues', data: theRealData2 }]\r\n this.chartPieIssueTypes = this.chartService.generateColumnChart(theData2, '');\r\n }\r\n }\r\n\r\n generateIssueTypesChartBig(issueTypes) {\r\n this.issueTypeService.getIssueTypes().subscribe(defaultIssueTypes => {\r\n const categoryData = [];\r\n const drilldownData = [];\r\n issueTypes.forEach(issueType => {\r\n const issueTypeVar = defaultIssueTypes.find(x => x.id === issueType[1].issueId);\r\n const issueTypeCategory = issueTypeVar != null ? issueTypeVar.category : 'Undefined'\r\n\r\n if (!categoryData.find(x => x.name === issueTypeCategory)) {\r\n const categoryObject = {\r\n name: issueTypeCategory,\r\n y: issueType[1].issueCount,\r\n drilldown: issueTypeCategory\r\n }\r\n const drilldownObject = {\r\n id: issueTypeCategory,\r\n data: [[issueType[0], issueType[1].issueCount]]\r\n }\r\n categoryData.push(categoryObject);\r\n drilldownData.push(drilldownObject);\r\n } else {\r\n categoryData.find(x => x.name === issueTypeCategory).y += issueType[1].issueCount;\r\n drilldownData.find(x => x.id === issueTypeCategory).data.push([issueType[0], issueType[1].issueCount]);\r\n }\r\n });\r\n const categoryChartData = [{ name: 'Issue Categories', data: categoryData }]\r\n const drilldownChartData = { series: drilldownData }\r\n this.chart1 = this.chartService.generateColumnChart(categoryChartData, drilldownChartData);\r\n this.loadingPerIssueChart = false;\r\n this.cd.markForCheck();\r\n console.log('End analising chart');\r\n });\r\n }\r\n\r\n\r\n\r\n generateLocationType() {\r\n const theData = [{\r\n name: 'Location type',\r\n innerSize: '60%',\r\n data: [{\r\n name: 'Ignition off',\r\n y: 61.41,\r\n sliced: false,\r\n selected: false\r\n }, {\r\n name: 'Ignition on',\r\n y: 11.84\r\n }, {\r\n name: 'Events',\r\n y: 10.85\r\n }]\r\n }];\r\n\r\n this.chartLocationType = this.chartService.generateDonutChart(theData, '');\r\n }\r\n\r\n generateLocationCount(result) {\r\n const series1 = [];\r\n const series2 = [];\r\n\r\n // tslint:disable-next-line:forin\r\n result.forEach(value => {\r\n series1.push([value[0], value[1]]);\r\n series2.push([value[0], value[2]]);\r\n });\r\n\r\n const theData = [{\r\n name: 'Messages',\r\n data: series1,\r\n type: 'areaspline',\r\n yAxis: 0,\r\n }];\r\n\r\n const yAxis = [{\r\n title: {\r\n text: this.translateService.instant('general.messages')\r\n }\r\n }];\r\n\r\n this.chart3 = this.chartService.generateSplineArea(theData, yAxis, null, null, this.translateService.instant('general.messages'));\r\n }\r\n\r\n generateDistanceCount(result) {\r\n const series1 = [];\r\n const series2 = [];\r\n\r\n // tslint:disable-next-line:forin\r\n result.forEach(value => {\r\n series1.push([value[0], value[1]]);\r\n series2.push([value[0], value[2]]);\r\n });\r\n\r\n const theData = [{\r\n name: 'Distance',\r\n data: series2,\r\n type: 'areaspline',\r\n yAxis: 0,\r\n }];\r\n\r\n const yAxis = [{\r\n title: {\r\n text: this.translateService.instant('general.kmDriven'),\r\n }\r\n }];\r\n\r\n this.chartDistance = this.chartService.generateSplineArea(theData, yAxis, null, null, this.translateService.instant('general.kmDriven'));\r\n }\r\n\r\n\r\n generateIssueCount(result) {\r\n const theData = [{\r\n name: 'IssueCount',\r\n data: result,\r\n point: {\r\n events: {\r\n click: function () {\r\n const toMillisecond = (value = 0) => value * 1000;\r\n const endOfDay = this.x + toMillisecond(24 * 60 * 60);\r\n location.href = '/#/Issues/Overview?DateStart=' + this.x + '&DateEnd=' + endOfDay;\r\n }\r\n }\r\n }\r\n }];\r\n\r\n const yAxis = [{\r\n title: {\r\n text: this.translateService.instant('general.issues')\r\n }\r\n }];\r\n\r\n this.chart4 = this.chartService.generateSplineArea(theData, yAxis);\r\n }\r\n\r\n generateIssuePerDeviceTypeCharts(deviceTypes) {\r\n\r\n const handleDuplicates = (devices, newDevice) => {\r\n const i = devices.findIndex(id => id[0] === newDevice[0]);\r\n if (i >= 0) {\r\n devices[i][1] += newDevice[1];\r\n return [newDevice[1], devices];\r\n }\r\n return [newDevice[1], [...devices, newDevice]];\r\n }\r\n\r\n const issuesPerManufacturer = deviceTypes.map(id => id[1]).reduce((graphData, device) => {\r\n\r\n const i = graphData.findIndex(id => id.name === device.manufactorer);\r\n const deviceObject = [device.deviceType, device.issueCount];\r\n if (i >= 0) {\r\n const [count, devices] = handleDuplicates(graphData[i].data, deviceObject);\r\n graphData[i].data = devices;\r\n graphData[i].y += count;\r\n return graphData;\r\n }\r\n\r\n const _id = device.manufactorer.toLowerCase().replace(/\\s/g, '');\r\n return [...graphData, { name: device.manufactorer, y: device.issueCount, id: _id, drilldown: _id, data: [deviceObject] }];\r\n }, []).sort((a, b) => a.name !== b.name ? a.name < b.name ? -1 : 1 : 0);\r\n\r\n const theSeries = [{ name: 'Issues', data: issuesPerManufacturer }];\r\n const theDrilldownData = { series: issuesPerManufacturer }\r\n\r\n this.chart2 = this.chartService.generateColumnChart(theSeries, theDrilldownData);\r\n\r\n this.loadingPerDeviceChart = false;\r\n console.log('End analising chart');\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'general.warning' | translate }}: {{notification.message}}\r\n Click\r\n here to update the token.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{'general.filter' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedCustomers()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedAccountPlatforms()\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n 0, 'label-danger': deviceCountHistoryPercentage < 0}\">\r\n {{ checkPositive(deviceCountHistoryPercentage) }}\r\n \r\n
\r\n {{'dashboard.devicecount' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{\r\n deviceCount?.toLocaleString()\r\n }} / {{\r\n allDeviceCount?.toLocaleString()\r\n }}\r\n

\r\n {{'dates.today' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0, 'label-danger': deviceTypesCountHistoryPercentage < 0}\">\r\n {{ checkPositive(deviceTypesCountHistoryPercentage) }}\r\n \r\n
\r\n {{'general.devicetypes' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{\r\n deviceTypesCount?.toLocaleString()\r\n }}\r\n

\r\n {{'dates.today' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0}\">\r\n {{ checkPositive(deviceWithIssuesHistoryPercentage) }}\r\n \r\n
\r\n {{'dashboard.deviceWithIssues' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{\r\n deviceWithIssues }} 0\"\r\n style=\"font-size: 15px; color: red\">({{\r\n deviceWithIssuesMax }} {{'dashboard.critical' | translate }})

\r\n {{ dateDisplay }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0, 'label-success': issueCountHistoryPercentage < 0}\">\r\n {{ checkPositive(issueCountHistoryPercentage) }}\r\n \r\n
\r\n {{'dashboard.issuecount' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{\r\n issueCount?.toLocaleString() }}

\r\n {{ dateDisplay }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'dashboard.healthy' | translate }}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ dateDisplay }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'dashboard.topissuetypes' | translate }}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ dateDisplay }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'dashboard.worstdevices' | translate }}\r\n
\r\n {{ dateDisplay }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.device' | translate }}{{'general.severity' | translate }}{{'general.issues' | translate }}
{{ worstDevice.name }}{{ ('enums.severity.' +\r\n worstDevice.maxSeverity) | translate }}{{ worstDevice.issueCount?.toLocaleString()\r\n }}\r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'dashboard.issues' | translate }}\r\n
\r\n {{ dateDisplay }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.issue' | translate }}{{'general.count' | translate }}
{{ issueType[0] }}{{ issueType[1].issueCount?.toLocaleString()\r\n }}\r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{'general.customers' | translate }}\r\n
\r\n {{ dateDisplay }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.customer' | translate }}{{'general.issues' | translate }}
{{ customer[0] }}{{ customer[1].issueCount?.toLocaleString()\r\n }}\r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{'dashboard.issuecount' | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{'general.messages' | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{'general.distance' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'dashboard.issuesperissuetype' | translate }}\r\n
\r\n \r\n {{ dateDisplay }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'dashboard.issuesperdevicetype' | translate }}\r\n
\r\n \r\n {{ dateDisplay }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.accounts' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{adminActiveAccounts}} /\r\n {{adminAccountsWithoutIssues}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.users' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{adminActiveUsers}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.jobs' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{adminActiveJobCount}} /\r\n {{adminHistoryJobCount}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.issues' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{adminIssueCount}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.accounts' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.accountsWithoutIssues' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n 0, 'label-danger': deviceCountHistoryPercentage < 0}\">\r\n {{ checkPositive(deviceCountHistoryPercentage) }}\r\n \r\n
\r\n {{'dashboard.devicecount' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n {{ deviceCount?.toLocaleString() }} / {{ allDeviceCount?.toLocaleString() }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n 0, 'label-danger': deviceCountHistoryPercentage < 0}\">\r\n {{ checkPositive(deviceCountHistoryPercentage) }}\r\n \r\n
\r\n {{'dashboard.assetcount' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n {{ assetCount?.toLocaleString() }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n 0, 'label-danger': deviceCountHistoryPercentage < 0}\">\r\n {{ checkPositive(deviceCountHistoryPercentage) }}\r\n \r\n
\r\n {{'dashboard.trailercount' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n {{ trailerCount?.toLocaleString() }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.tags' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.drivers' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n {{ driverCount?.toLocaleString() }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.assetTypes' | translate }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n {{ assetTypesUsedCount?.toLocaleString() }} / {{ assetTypeCount?.toLocaleString() }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fh-error404',\r\n templateUrl: 'error404.component.html'\r\n})\r\nexport class Error404Component { }\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n Error 404\r\n
  4. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Error 404 : Page Not Found
\r\n
\r\n
\r\n We are terribly sorry, but the URL you typed no longer exists. It might have been moved or deleted, or perhaps you mistyped\r\n it. We suggest searching the site\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component } from '@angular/core';\r\nimport { NgModule, HostListener } from '@angular/core'\r\nimport { Http } from '@angular/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { appDate, appVersion } from '../../app.version'\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { TweenMax } from 'gsap';\r\n\r\nimport { AuthenticateResult } from '../../models/authenticateresult.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n templateUrl: './forgotPassword.template.html',\r\n styleUrls: ['./login.template.css'],\r\n})\r\nexport class ForgotComponent {\r\n model: any = {};\r\n loading = false;\r\n messageStatus = 'alert-danger';\r\n appDate: string;\r\n appVersion: string;\r\n UserName = '';\r\n Password = '';\r\n error: string;\r\n data: string;\r\n returnUrl;\r\n subscription;\r\n param = null;\r\n errorLoggedIn = false;\r\n resetDiabled: boolean;\r\n\r\n constructor(private route: ActivatedRoute, private translateService: TranslateService, private router: Router, private http: Http, private authenticationService: AuthenticationService, private userService: UserService) {\r\n this.subscription = route.queryParams.subscribe(\r\n (queryParam: any) => this.param = queryParam['prev']\r\n );\r\n this.appVersion = appVersion;\r\n this.appDate = appDate;\r\n }\r\n\r\n\r\n onMouseMove(event) {\r\n\r\n const e = event;\r\n // Mouse Move 3d Effect\r\n\r\n const perX = (e.clientX / $(window).width()) - 0.5;\r\n const perY = (e.clientY / $(window).height()) - 0.5;\r\n // TweenMax.to('.effect-3d-element', 0.4, { rotationY: 5 * perX, rotationX: 5 * perY, transformPerspective: 1000, transformOrigin: 'center' })\r\n }\r\n\r\n clicked(event) {\r\n this.loading = true;\r\n const that = this;\r\n\r\n this.authenticationService.performReset(this.UserName).subscribe(result => {\r\n this.loading = false;\r\n\r\n if (result === true) {\r\n this.messageStatus = 'alert-success';\r\n this.resetDiabled = true;\r\n this.error = this.translateService.instant('login.passwordResetSucces');\r\n } else {\r\n this.messageStatus = 'alert-danger';\r\n this.error = this.translateService.instant('login.passwordResetFailed');\r\n }\r\n });\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {{error}}\r\n
\r\n \r\n
\r\n
\r\n

\r\n {{'general.title' | translate }}\r\n

\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{'login.footer' | translate }} - {{ appVersion }}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, } from '@angular/core';\r\nimport { Question } from '../../models/question';\r\nimport { FaqService } from '../../services/help/faq.service';\r\n\r\n@Component({\r\n selector: 'fh-help',\r\n templateUrl: 'help.component.html',\r\n providers: [FaqService]\r\n})\r\nexport class HelpViewComponent implements OnDestroy, OnInit {\r\n\r\n text;\r\n answer;\r\n\r\n questions: Question[];\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n\r\n constructor(private faqService: FaqService) {\r\n }\r\n\r\n ngOnInit() {\r\n console.log('get questions');\r\n this.questions = this.faqService.getQuestions();\r\n }\r\n\r\n addQuestion() {\r\n\r\n const question: Question = {\r\n text: this.text,\r\n answer: this.answer,\r\n hide: true\r\n };\r\n\r\n // console.log(question);\r\n this.faqService.addQuestion(question);\r\n }\r\n\r\n removeQuestion(question) {\r\n console.log('1 ' + question);\r\n this.faqService.removeQuestion(question);\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n {{'help.header' | translate }}

\r\n {{'help.intro' | translate }}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'help.header' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{question.text}}\r\n
\r\n
\r\n {{question.answer}}\r\n\r\n Remove\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'help.header' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject } from '@angular/core';\r\nimport { NgModule, HostListener } from '@angular/core'\r\nimport { Http } from '@angular/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { appDate, appVersion } from '../../app.version'\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { TweenMax } from 'gsap';\r\n\r\nimport { AuthenticateResult } from '../../models/authenticateresult.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthGuard } from '../../auth-guard';\r\nimport { environment } from 'environments/environment';\r\nimport { isUndefined } from 'util';\r\n\r\nimport { BsLocaleService } from 'ngx-bootstrap';\r\nimport { ColorService } from 'app/services/common/color.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n templateUrl: './login.template.html',\r\n styleUrls: ['./login.template.css'],\r\n})\r\nexport class LoginComponent {\r\n\r\n appVersion: string;\r\n UserName = '';\r\n Password = '';\r\n error: string;\r\n data: string;\r\n returnUrl;\r\n subscription;\r\n param = null;\r\n redirect = '';\r\n loading = false;\r\n errorLoggedIn = false;\r\n errorExtended: string;\r\n ssoEnabled = false;\r\n\r\n constructor(private localeService: BsLocaleService, private translate: TranslateService, private colorService: ColorService, private route: ActivatedRoute, private router: Router, private http: Http, private authenticationService: AuthenticationService, private userService: UserService, private authGuard: AuthGuard) {\r\n const that = this;\r\n this.ssoEnabled = environment.SSOEnabled;\r\n\r\n const isWaslDomain = window.location.href.indexOf('wasl') !== -1;\r\n\r\n const loginImage = isWaslDomain ? this.colorService.getLoginImage('wasl') : this.colorService.getLoginImage('360');\r\n\r\n const css = '.site_login_logo { display: inline-flex; width: ' + loginImage.width + 'px; height: ' + loginImage.height + 'px; background: url(data:image/png;base64,' + loginImage.url + ')!important;} ';\r\n\r\n const head = document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.type = 'text/css';\r\n style.appendChild(document.createTextNode(css));\r\n\r\n head.appendChild(style);\r\n\r\n this.subscription = route.queryParams.subscribe((queryParam: any) => {\r\n that.param = queryParam['prev'];\r\n that.redirect = queryParam['redirect'];\r\n });\r\n\r\n this.appVersion = environment.version;\r\n }\r\n\r\n onMouseMove(event) {\r\n\r\n const e = event;\r\n // Mouse Move 3d Effect\r\n\r\n const perX = (e.clientX / $(window).width()) - 0.5;\r\n const perY = (e.clientY / $(window).height()) - 0.5;\r\n // TweenMax.to('.effect-3d-element', 0.4, { rotationY: 5 * perX, rotationX: 5 * perY, transformPerspective: 1000, transformOrigin: 'center' })\r\n }\r\n\r\n clicked(event) {\r\n console.log('Clicked login -> Authenticating');\r\n this.loading = true;\r\n\r\n this.authenticationService\r\n .performLogin(this.UserName, this.Password)\r\n .subscribe((result) => {\r\n this.loading = false;\r\n if (result !== null) {\r\n this.loginCompleted(result);\r\n } else {\r\n this.error = ('Error while logging in');\r\n }\r\n\r\n }, (error) => {\r\n this.errorLoggedIn = true;\r\n console.log(error);\r\n if (error.status === 401) {\r\n this.error = ('Error while logging in');\r\n } else {\r\n this.error = ('Unable to connect to api');\r\n }\r\n\r\n this.errorExtended = error.message + ' : ' + error.statusText;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n private logError(err) {\r\n console.error('There was an error: ' + err);\r\n }\r\n\r\n private loginCompleted(authenticateResult: AuthenticateResult) {\r\n this.loading = true;\r\n\r\n if (this.translate.currentLang !== authenticateResult.user.language) {\r\n console.log('Use user language ' + authenticateResult.user.language);\r\n this.translate.use(authenticateResult.user.language);\r\n Moment.locale(authenticateResult.user.language);\r\n this.localeService.use(authenticateResult.user.language);\r\n }\r\n\r\n const newUrl = this.redirect;\r\n this.redirect ? this.router.navigate([newUrl]) : this.router.navigate(['/']);\r\n /*\r\n this.userService.getUser()\r\n .subscribe((result) => {\r\n if (result) {\r\n console.log('2 loginCompleted ' + this.param);\r\n this.router.navigate(['/']);\r\n }\r\n }, (error) => {\r\n this.error = error;\r\n console.log(error);\r\n setTimeout(() => {\r\n this.router.navigate(['/']);\r\n }, 3000);\r\n });\r\n */\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {{error}}\r\n
\r\n\r\n \r\n
\r\n \r\n

\r\n {{'general.title' | translate }}\r\n

\r\n
\r\n \r\n
\r\n
\r\n

{{'login.emailrequired' | translate }}

\r\n

{{'login.emailpattern' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{'login.passwordrequired' | translate }}

\r\n

{{'login.passwordminlength' | translate }}

\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
OR
\r\n
\r\n\r\n
\r\n \r\n {{'login.forgotPassword' | translate }} ?\r\n \r\n

 

\r\n
\r\n\r\n
\r\n
{{'login.footer' | translate }} - {{ appVersion }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component } from '@angular/core';\r\nimport { NgModule, HostListener } from '@angular/core'\r\nimport { Http } from '@angular/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { appDate, appVersion } from '../../app.version'\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { TweenMax } from 'gsap';\r\n\r\nimport { AuthenticateResult } from '../../models/authenticateresult.model';\r\n\r\n@Component({\r\n templateUrl: './register.template.html',\r\n styleUrls: ['./login.template.css'],\r\n})\r\nexport class RegisterComponent {\r\n model: any = {};\r\n loading = false;\r\n\r\n appDate: string;\r\n appVersion: string;\r\n UserName = '';\r\n Password = '';\r\n error: string;\r\n data: string;\r\n returnUrl;\r\n subscription;\r\n param = null;\r\n errorLoggedIn = false;\r\n\r\n constructor(private route: ActivatedRoute, private router: Router, private http: Http, private authenticationService: AuthenticationService, private userService: UserService) {\r\n this.subscription = route.queryParams.subscribe(\r\n (queryParam: any) => this.param = queryParam['prev']\r\n );\r\n this.appVersion = appVersion;\r\n this.appDate = appDate;\r\n }\r\n\r\n\r\n onMouseMove(event) {\r\n\r\n const e = event;\r\n // Mouse Move 3d Effect\r\n\r\n const perX = (e.clientX / $(window).width()) - 0.5;\r\n const perY = (e.clientY / $(window).height()) - 0.5;\r\n // TweenMax.to('.effect-3d-element', 0.4, { rotationY: 5 * perX, rotationX: 5 * perY, transformPerspective: 1000, transformOrigin: 'center' })\r\n }\r\n\r\n register() {\r\n this.loading = true;\r\n const that = this;\r\n\r\n // setTimeout(function () {\r\n // that.userService.createUser(that.model)\r\n // .subscribe(\r\n // data => {\r\n // that.router.navigate(['/Login']);\r\n // },\r\n // error => {\r\n // that.loading = false;\r\n // });\r\n // }, 2000);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {{error}}\r\n
\r\n \r\n
\r\n
\r\n

\r\n {{'general.title' | translate }}\r\n

\r\n
\r\n \r\n
First Name is required
\r\n
\r\n
\r\n \r\n
Last Name is required
\r\n
\r\n
\r\n \r\n
Username is required
\r\n
\r\n
\r\n \r\n
Password is required
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{'login.footer' | translate }} - {{ appVersion }}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fh-search',\r\n templateUrl: 'search.component.html'\r\n})\r\nexport class SearchViewComponent implements OnDestroy, OnInit {\r\n searchString = '';\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n {{'search.header' | translate }}

\r\n {{'search.intro' | translate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'search.search' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { appVersion } from 'app/app.version';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Component({\r\n selector: 'fh-app-auth-callback',\r\n templateUrl: './sso-auth-callback.component.html',\r\n styleUrls: ['../appviews/login.template.css']\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n\r\n appVersion: string;\r\n error = false;\r\n errorMessage: string;\r\n notRecognized = false;\r\n ssoUrl: string;\r\n\r\n constructor(private authService: AuthenticationService, private router: Router, private activatedRoute: ActivatedRoute) {\r\n this.appVersion = appVersion;\r\n this.ssoUrl = environment.SSOAuthenticationUrl;\r\n }\r\n\r\n ngOnInit() {\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n if (params['id_token']) {\r\n this.authService.signInWithSSO(params['id_token']).subscribe((result) => {\r\n if (result !== null) {\r\n this.router.navigate(['/']);\r\n } else {\r\n this.error = true;\r\n this.errorMessage = 'Error while logging in';\r\n }\r\n }, (error) => {\r\n this.error = true;\r\n if (error.status === 401) {\r\n this.errorMessage = 'Error while logging in';\r\n } else if (error.status === 404 && error.error === 'no user') {\r\n this.errorMessage = localStorage.getItem(AuthenticationService.ID) + ' is not recognized. Please login with a different account.';\r\n this.notRecognized = true;\r\n } else {\r\n this.errorMessage = 'Error while logging in';\r\n }\r\n }\r\n )\r\n } else if (params['error']) {\r\n console.log('Error while trying to login ');\r\n this.router.navigate(['/Login'])\r\n } else {\r\n console.log('no parameters found');\r\n this.router.navigate(['/Login'])\r\n }\r\n });\r\n }\r\n failed(): boolean {\r\n return this.error;\r\n }\r\n onMouseMove(event) {\r\n\r\n const e = event;\r\n // Mouse Move 3d Effect\r\n\r\n const perX = (e.clientX / $(window).width()) - 0.5;\r\n const perY = (e.clientY / $(window).height()) - 0.5;\r\n // TweenMax.to('.effect-3d-element', 0.4, { rotationY: 5 * perX, rotationX: 5 * perY, transformPerspective: 1000, transformOrigin: 'center' })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ (errorMessage) }}\r\n

{{'login.ssoUrlMessage' | translate }} : SSO

\r\n
\r\n\r\n
\r\n

\r\n {{'general.title' | translate }}\r\n

\r\n \r\n {{ failed() ? ('login.ssoReturnError' | translate ) : 'login.loading' | translate }} \r\n
\r\n Login page\r\n
\r\n\r\n
\r\n
{{'login.footer' | translate }} - {{ appVersion }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport { appVersion } from 'app/app.version';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Component({\r\n selector: 'fh-app-endsession-callback',\r\n templateUrl: './sso-endsession-callback.component.html',\r\n styleUrls: ['../appviews/login.template.css']\r\n})\r\nexport class EndsessionCallbackComponent implements OnInit {\r\n\r\n appVersion: string;\r\n errorMessage: string;\r\n error = false;\r\n loading = false;\r\n ssoEnabled = false;\r\n\r\n constructor(private authService: AuthenticationService, private router: Router ) {\r\n this.appVersion = appVersion;\r\n this.ssoEnabled = environment.SSOEnabled;\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.authService.completeSignout().then(response => {\r\n this.router.navigate(['/Login']);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onMouseMove(event) {\r\n\r\n const e = event;\r\n // Mouse Move 3d Effect\r\n\r\n const perX = (e.clientX / $(window).width()) - 0.5;\r\n const perY = (e.clientY / $(window).height()) - 0.5;\r\n // TweenMax.to('.effect-3d-element', 0.4, { rotationY: 5 * perX, rotationX: 5 * perY, transformPerspective: 1000, transformOrigin: 'center' })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{errorMessage}}\r\n
\r\n \r\n
\r\n

\r\n {{'general.title' | translate }}\r\n

\r\n Processing callback\r\n
\r\n
{{'login.footer' | translate }} - {{ appVersion }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport { appVersion } from 'app/app.version';\r\n\r\n@Component({\r\n selector: 'fh-app-sso-login',\r\n templateUrl: './sso-login.component.html',\r\n styleUrls: ['./login.template.css']\r\n})\r\nexport class SsoLoginComponent implements OnInit {\r\n\r\n appVersion: string;\r\n error = false;\r\n errorMessage: string;\r\n loading = false;\r\n\r\n constructor(private authService: AuthenticationService, private router: Router) {\r\n this.appVersion = appVersion;\r\n }\r\n\r\n ngOnInit() {\r\n this.authService.startAuthentication().then().catch(error => {this.error = true; });\r\n }\r\n\r\n failed(): boolean {\r\n return this.error;\r\n }\r\n\r\n redirectToLogin() {\r\n setTimeout(timeout => {this.router.navigate(['/Login']); }, 3000)\r\n }\r\n\r\n onMouseMove(event) {\r\n\r\n const e = event;\r\n // Mouse Move 3d Effect\r\n\r\n const perX = (e.clientX / $(window).width()) - 0.5;\r\n const perY = (e.clientY / $(window).height()) - 0.5;\r\n // TweenMax.to('.effect-3d-element', 0.4, { rotationY: 5 * perX, rotationX: 5 * perY, transformPerspective: 1000, transformOrigin: 'center' })\r\n}\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ failed() ? ('login.ssoError' | translate) : ''}}\r\n
\r\n \r\n
\r\n

\r\n {{'general.title' | translate }}\r\n

\r\n \r\n {{ failed() ? '' : 'login.loading' | translate }} \r\n {{ failed() ? redirectToLogin() : '' }}\r\n\r\n
\r\n
{{'login.footer' | translate }} - {{ appVersion }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnDestroy, OnInit, } from '@angular/core';\r\nimport { TagService } from 'app/services/tag/tag.service';\r\nimport { TagUsage, TagSearch } from 'app/models/tag.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-taglist',\r\n templateUrl: 'taglist.component.html'\r\n})\r\nexport class TagListViewComponent implements OnDestroy, OnInit {\r\n\r\n sub: any;\r\n searchFor: any;\r\n tags: TagSearch[] = [];\r\n loading = false;\r\n\r\n constructor(private tagService: TagService, private router: Router, private route: ActivatedRoute, ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.searchFor = id;\r\n this.loading = true;\r\n this.tagService.getObjectsByName(id).subscribe(result => {\r\n console.log(result);\r\n this.tags = result;\r\n this.loading = false;\r\n })\r\n });\r\n }\r\n\r\n goTo(tag) {\r\n\r\n let path = '';\r\n\r\n switch (tag.objectType) {\r\n case 1:\r\n path = '/DeviceDetails/Index/';\r\n break;\r\n case 2:\r\n path = '/AssetDetails/Index/';\r\n break;\r\n case 3:\r\n path = '/DriverDetails/Index/';\r\n break;\r\n case 4:\r\n path = '/UserDetails/Index/';\r\n break;\r\n case 5:\r\n path = '/SensorDetails/Index/';\r\n break;\r\n case 6:\r\n path = '/CustomerDetails/Index/';\r\n break;\r\n case 10:\r\n path = '/IssueDetails/Index/';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n const url = path + tag.objectId;\r\n console.log(url);\r\n this.router.navigate([url]);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.tags' | translate }}\r\n
  4. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'search.tags' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.tag' | translate}}\r\n \r\n {{ 'general.name' | translate}}\r\n \r\n {{ 'general.type' | translate}}\r\n
\r\n {{tag.name}}\r\n \r\n {{tag.objectName}}\r\n \r\n {{('enums.objectType.'+ tag.objectType) | translate }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, } from '@angular/core';\r\nimport { TagService } from 'app/services/tag/tag.service';\r\nimport { TagUsage } from 'app/models/tag.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-tags',\r\n templateUrl: 'tags.component.html'\r\n})\r\nexport class TagsViewComponent implements OnDestroy, OnInit {\r\n tags: TagUsage[] = [];\r\n loading = false;\r\n\r\n constructor(private tagService: TagService, private router: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n this.tagService.getTagsWithUsage().subscribe(result => {\r\n this.tags = result;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onSelected(event) {\r\n console.log('Item selected and navigating: ' + event.name);\r\n\r\n this.router.navigate(['/Tags/' + event.name]);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.tags' | translate }}\r\n
  4. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'search.tags' | translate }}
\r\n
\r\n
\r\n \r\n 0\" [(ngModel)]='tags' class=\"taginput\" theme='bootstrap'\r\n readonly='true' hideForm='true' [identifyBy]=\"'name'\" [displayBy]=\"'nameWithCount'\"\r\n [editable]='false' (onSelect)=\"onSelected($event)\">\r\n \r\n\r\n {{'search.noTagsFound' | translate }}\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserService } from 'app/services/users/user.service';\r\nimport { User } from 'app/models/user.model';\r\n\r\n@Component({\r\n selector: 'fh-unsubscribe',\r\n templateUrl: 'unsubscribe.template.html'\r\n})\r\nexport class UnsubscribeComponent implements OnInit {\r\n unsubscribeSuccess: boolean;\r\n user: User;\r\n loading: boolean;\r\n\r\n constructor(private route: ActivatedRoute, private userService: UserService) { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n this.route.params.subscribe(params => {\r\n this.userService.unsubscribeFromEmailReport(params['id']).subscribe(result => {\r\n console.log(result);\r\n if (result) {\r\n this.unsubscribeSuccess = true;\r\n this.user = result;\r\n } else {\r\n this.unsubscribeSuccess = false;\r\n }\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Unsubscribe\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ user.email }} has successfully been removed from our mailinglist.\r\n
\r\n
\r\n Something went wrong while unsubscribing. Please try again...\r\n
\r\n
Unsubscribing...
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { AddressDetails } from 'app/models/platform.model';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { Router } from '@angular/router';\r\nimport { groupBy } from 'rxjs/internal/operators/groupBy';\r\nimport { mergeMap } from 'rxjs/internal/operators/mergeMap';\r\nimport { toArray } from 'rxjs/internal/operators/toArray';\r\n\r\n@Component({\r\n selector: 'fh-assets-add',\r\n templateUrl: 'add.template.html'\r\n})\r\nexport class AssetAddViewComponent {\r\n token: string;\r\n addDevice = false;\r\n asset: Asset;\r\n formMode = FormMode.add;\r\n error: any;\r\n loading = false;\r\n firstName: any;\r\n lastName: any;\r\n email: any;\r\n password: any;\r\n language: any;\r\n form: any;\r\n\r\n assetTypes: AssetType[] = [];\r\n assetTypesMultiselect: any[];\r\n selectedAssetType;\r\n loadingAssetTypes = false;\r\n\r\n dropdownSettingsAssetTypes = {};\r\n success: { statusText: string; success: string; };\r\n assetTypeGroups: any;\r\n permissions: {};\r\n\r\n constructor(private router: Router, private assetService: AssetService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService) {\r\n this.asset = new Asset();\r\n this.asset.assetClass = 1;\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n this.permissions = this.authenticationService.permissions;\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n this.assetService.saveAsset(this.asset).subscribe(result => {\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'You will be redirected to the asset'\r\n };\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/AssetDetails/Index/' + result.id]);\r\n }, 2000);\r\n\r\n this.assetService.resetAssetCache().subscribe(res => {\r\n console.log('Assets are cleared');\r\n console.log(res);\r\n });\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n updateAssetType(event) {\r\n\r\n console.log(event);\r\n\r\n if (!event.id) {\r\n return;\r\n }\r\n\r\n this.asset.assetTypeId = event.id;\r\n this.asset.assetTypeName = event.name;\r\n this.asset.brand = event.brand;\r\n this.asset.model = event.model;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.asset' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.wasl' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { Map, marker, icon } from 'leaflet';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { WaslService } from 'app/services/wasl/wasl.service';\r\nimport { Asset, WaslAsset, VehiclePlate, SlimWaslAsset } from 'app/models/asset.model';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-asset-details',\r\n templateUrl: 'assetDetails.template.html'\r\n})\r\nexport class AssetDetailsViewComponent implements OnInit {\r\n\r\n sub: any;\r\n asset = new Asset();\r\n device: any;\r\n tagType = TagObjectType.Asset.valueOf();\r\n\r\n loadingDevice = false;\r\n loadingAsset = false;\r\n\r\n loadingWasl = false;\r\n\r\n error: any;\r\n\r\n map: Map;\r\n defaultMap;\r\n\r\n options;\r\n marker;\r\n\r\n formMode = FormMode.read;\r\n formModeWasl = FormMode.read;\r\n\r\n permissions: {};\r\n\r\n waslError: any;\r\n waslSuccess: any;\r\n success: { statusText: string; success: string; };\r\n maps: any;\r\n\r\n constructor(private waslService: WaslService, private authentication: AuthenticationService, private assetService: AssetService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loadingDevice = true;\r\n this.loadingAsset = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingAsset = false;\r\n\r\n if (asset.deviceId == null) {\r\n this.loadingDevice = false;\r\n } else {\r\n\r\n const deviceFromService = this.deviceService.getDeviceById(this.asset.deviceId).subscribe(device => {\r\n this.device = device;\r\n\r\n this.showOnMap(device);\r\n this.loadingDevice = false;\r\n }, error => {\r\n this.error = error\r\n this.loadingDevice = false;\r\n });\r\n }\r\n });\r\n });\r\n this.initMap();\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n showOnMap(asset): void {\r\n\r\n if (this.marker) {\r\n this.map.removeLayer(this.marker);\r\n }\r\n\r\n if (asset.lastPosition && asset.lastPosition.latitude) {\r\n\r\n this.marker = marker([asset.lastPosition.latitude, asset.lastPosition.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.map.addLayer(this.marker);\r\n this.map.flyTo([asset.lastPosition.latitude, asset.lastPosition.longitude], 10);\r\n }\r\n }\r\n\r\n // Form\r\n\r\n onDelete() {\r\n this.error = 'Deleting is not implemented';\r\n }\r\n\r\n onSave() {\r\n this.loadingAsset = true;\r\n\r\n console.log(this.asset);\r\n\r\n this.assetService.updateAsset(this.asset).subscribe(result => {\r\n this.loadingAsset = false;\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Asset is successfull updated'\r\n };\r\n\r\n this.error = null;\r\n\r\n this.getAssetInfo();\r\n\r\n }, error => {\r\n this.error = error\r\n this.loadingAsset = false;\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n\r\n if (this.formMode === FormMode.read) {\r\n this.loadingAsset = true;\r\n this.getAssetInfo();\r\n }\r\n }\r\n\r\n setFormModeWasl(mode) {\r\n this.formModeWasl = mode;\r\n\r\n if (this.formModeWasl === FormMode.read) {\r\n this.loadingWasl = true;\r\n this.getAssetInfo();\r\n }\r\n }\r\n\r\n getAssetInfo() {\r\n if (this.loadingAsset !== true && this.loadingWasl !== true) {\r\n this.loadingAsset = true;\r\n }\r\n\r\n const assetFromService = this.assetService.getAssetById(this.asset.id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingAsset = false;\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n updateAssetType(event) {\r\n\r\n if (!event.id) {\r\n return;\r\n }\r\n\r\n this.loadingAsset = true;\r\n this.asset.assetTypeId = event.id;\r\n\r\n this.assetService.updateAsset(this.asset).subscribe(result => {\r\n this.getAssetInfo();\r\n });\r\n }\r\n\r\n // Wasl\r\n\r\n register() {\r\n\r\n this.loadingWasl = true;\r\n\r\n const waslAsset = new WaslAsset();\r\n waslAsset.imeiNumber = this.asset.unitId;\r\n waslAsset.plateType = this.asset.properties.wasl.plateType;\r\n waslAsset.referenceKey = this.asset.properties.wasl.referenceKey;\r\n waslAsset.sequenceNumber = this.asset.properties.wasl.sequenceNumber;\r\n\r\n waslAsset.vehiclePlate = new VehiclePlate();\r\n waslAsset.vehiclePlate.number = this.asset.properties.wasl.vehiclePlateNumber;\r\n waslAsset.vehiclePlate.leftLetter = this.asset.properties.wasl.vehiclePlateLeftLetter;\r\n waslAsset.vehiclePlate.middleLetter = this.asset.properties.wasl.vehiclePlateMiddleLetter;\r\n waslAsset.vehiclePlate.rightLetter = this.asset.properties.wasl.vehiclePlateRightLetter;\r\n\r\n this.waslService.registerAsset(this.asset.id, waslAsset).subscribe(result => {\r\n console.log(result.result);\r\n this.loadingWasl = false;\r\n if (result.success) {\r\n this.waslSuccess = {\r\n statusText: 'Register succeeded.',\r\n success: result.resultCode\r\n };\r\n this.waslError = null;\r\n this.asset.properties.wasl.referenceKey = result.result.referenceKey;\r\n } else {\r\n this.waslError = {\r\n statusText: 'Error',\r\n error: result.resultCode\r\n };\r\n }\r\n this.getAssetInfo();\r\n }, error => {\r\n console.log(error);\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n unRegister() {\r\n\r\n const waslAsset = new WaslAsset();\r\n waslAsset.imeiNumber = this.asset.unitId;\r\n waslAsset.plateType = this.asset.properties.wasl.plateType;\r\n waslAsset.referenceKey = this.asset.properties.wasl.referenceKey;\r\n waslAsset.sequenceNumber = this.asset.properties.wasl.sequenceNumber;\r\n\r\n waslAsset.vehiclePlate = new VehiclePlate();\r\n waslAsset.vehiclePlate.number = this.asset.properties.wasl.vehiclePlateNumber;\r\n waslAsset.vehiclePlate.leftLetter = this.asset.properties.wasl.vehiclePlateLeftLetter;\r\n waslAsset.vehiclePlate.middleLetter = this.asset.properties.wasl.vehiclePlateMiddleLetter;\r\n waslAsset.vehiclePlate.rightLetter = this.asset.properties.wasl.vehiclePlateRightLetter;\r\n\r\n this.waslService.unregisterAsset(this.asset.id, waslAsset).subscribe(result => {\r\n console.log(result);\r\n this.loadingWasl = false;\r\n if (result.success) {\r\n this.waslSuccess = {\r\n statusText: 'Unregister succeeded',\r\n success: result.resultCode\r\n };\r\n this.waslError = null;\r\n this.asset.properties.wasl.referenceKey = null;\r\n } else {\r\n this.waslError = {\r\n statusText: 'Error',\r\n error: result.resultCode\r\n };\r\n }\r\n\r\n this.getAssetInfo();\r\n }, error => {\r\n console.log(error);\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n inquire() {\r\n this.loadingWasl = true;\r\n this.waslService.inquireVehicle(this.asset.id).subscribe(result => {\r\n console.log(result);\r\n this.loadingWasl = false;\r\n\r\n this.waslSuccess = {\r\n statusText: 'Result',\r\n success: result.result,\r\n json: result.json ? JSON.parse(result.json) : undefined\r\n };\r\n this.waslError = null;\r\n }, error => {\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.assetDetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'general.asset' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.map' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n

\r\n {{'general.noRegistrationWhenNoDevice' | translate }}

\r\n

{{'general.waslFormInvalid' | translate }}

\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {{'general.wasl' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Device } from 'app/models/device.model';\r\nimport { DeleteModalComponent } from '../shared/usercontrols/deleteModal.component';\r\nimport { DeviceChooserComponent } from './deviceChooser.component';\r\nimport { AssetDevice } from 'app/models/asset.model';\r\nimport { BsDaterangepickerConfig, BsDatepickerConfig } from 'ngx-bootstrap';\r\n\r\ndeclare var L;\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-fh-asset-device-details',\r\n templateUrl: 'assetDeviceDetails.template.html'\r\n})\r\nexport class AssetDeviceDetailsViewComponent implements OnInit {\r\n sub: any;\r\n asset: any;\r\n device: any;\r\n\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n @ViewChild('deviceChooser') deviceChooser: DeviceChooserComponent;\r\n\r\n formMode = FormMode.read;\r\n\r\n loadingDevice = false;\r\n loadingAsset = false;\r\n error: any;\r\n\r\n map: Map;\r\n defaultMap;\r\n\r\n options;\r\n marker;\r\n permissions: {};\r\n\r\n showHistory = false;\r\n\r\n unitHistory = [{\r\n name: 'Device 1',\r\n startDate: new Date(),\r\n endDate: new Date()\r\n }, {\r\n name: 'Device 2',\r\n startDate: new Date(),\r\n endDate: new Date()\r\n }, {\r\n name: 'Device 3',\r\n startDate: new Date(),\r\n endDate: new Date()\r\n }]\r\n\r\n linkItem: any = { id: null, to: null, from: new Date() };\r\n\r\n success: { statusText: string; success: string; };\r\n\r\n assetDeviceHistory: AssetDevice[];\r\n\r\n fromTime = new Date();\r\n toTime = undefined;\r\n\r\n // Datepicker\r\n public dpConfig: Partial = new BsDatepickerConfig();\r\n loadingAssetDevices = false;\r\n\r\n\r\n constructor(private authentication: AuthenticationService, private assetService: AssetService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n this.dpConfig.containerClass = 'theme-default'; // or whatever color\r\n this.dpConfig.dateInputFormat = 'll';\r\n this.dpConfig.isAnimated = true;\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loadingDevice = true;\r\n this.loadingAsset = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingAsset = false;\r\n\r\n if (asset.deviceId == null) {\r\n this.loadingDevice = false;\r\n } else {\r\n this.loadDevice();\r\n }\r\n\r\n this.loadAssetDevices();\r\n });\r\n\r\n\r\n });\r\n }\r\n\r\n loadAssetDevices() {\r\n this.loadingAssetDevices = true;\r\n const assetHistoryFromService = this.assetService.getAssetDevicesById(this.asset.id).subscribe(data => {\r\n this.assetDeviceHistory = data;\r\n this.loadingAssetDevices = false;\r\n });\r\n }\r\n\r\n loadDevice() {\r\n if (this.asset.deviceId != null) {\r\n const deviceFromService = this.deviceService.getDeviceById(this.asset.deviceId).subscribe(device => {\r\n this.device = device;\r\n\r\n this.loadingDevice = false;\r\n }, error => {\r\n this.error = error\r\n this.loadingDevice = false;\r\n });\r\n }\r\n }\r\n\r\n showAddPopup() {\r\n this.deviceChooser.showModal();\r\n }\r\n\r\n onSelect(event) {\r\n this.linkItem.id = event.id;\r\n this.linkItem.name = event.name;\r\n }\r\n\r\n onToDate(event) {\r\n console.log(event, 'todateset');\r\n\r\n if (this.toTime == null && event !== null) {\r\n this.toTime = new Date();\r\n }\r\n }\r\n\r\n resetToDate() {\r\n this.linkItem.to = null;\r\n this.toTime = null;\r\n }\r\n\r\n saveNew() {\r\n\r\n this.loadingDevice = true;\r\n\r\n const fromTime = Moment(this.linkItem.from)\r\n .hours(Moment(this.fromTime).hours())\r\n .minutes(Moment(this.fromTime).minutes())\r\n .seconds(0)\r\n .toDate();\r\n\r\n let toTime = null;\r\n if (this.linkItem.to) {\r\n\r\n toTime = Moment(this.linkItem.to)\r\n .hours(Moment(this.toTime).hours())\r\n .minutes(Moment(this.toTime).minutes())\r\n .seconds(0)\r\n .toDate();\r\n\r\n }\r\n\r\n this.assetService.linkDevice(this.asset.id, this.linkItem.id, fromTime, toTime).subscribe(result => {\r\n this.device = null;\r\n this.loadingDevice = false;\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Device is successfull unlinked from asset'\r\n };\r\n\r\n this.loadDevice();\r\n this.loadAssetDevices();\r\n\r\n this.error = null;\r\n\r\n }, error => {\r\n this.error = error\r\n this.loadingDevice = false;\r\n });\r\n }\r\n\r\n\r\n unlinkDevice(deviceId) {\r\n this.deleteModal.showModal(deviceId);\r\n }\r\n\r\n onDeviceUnlink(event) {\r\n this.deleteModal.hideModal();\r\n\r\n this.loadingDevice = true;\r\n this.asset.deviceId = null;\r\n\r\n this.assetService.unLinkDevice(this.asset.id).subscribe(result => {\r\n this.device = null;\r\n this.loadingDevice = false;\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Device is successfull unlinked from asset'\r\n };\r\n\r\n this.loadDevice();\r\n this.loadAssetDevices();\r\n\r\n this.error = null;\r\n\r\n }, error => {\r\n this.error = error\r\n this.loadingDevice = false;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.device' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.noDeviceLinked' | translate }}\r\n
\r\n\r\n
\r\n {{'general.noUnlinkWhenWasl' | translate }}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.device' | translate }}
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{linkItem.name}}\r\n
\r\n {{ 'general.from' | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.to' | translate}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ assetDevice?.deviceName }}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.startDate' | translate}}\r\n \r\n {{ assetDevice.startDate | amDateFormat: 'LLL' }}\r\n
\r\n {{ 'general.endDate' | translate}}\r\n \r\n {{ assetDevice.endDate | amDateFormat: 'LLL' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AccountPlatformService } from '../../services/platform/accountPlatform.service';\r\nimport { Platform } from '../../models/platform.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\n\r\n\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { DeleteModalComponent } from '../shared/usercontrols/deleteModal.component';\r\nimport { DriverChooserComponent } from './driverChooser.component';\r\nimport { BsDaterangepickerConfig, BsDatepickerConfig } from 'ngx-bootstrap';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-asset-drivers',\r\n templateUrl: 'assetDrivers.template.html'\r\n})\r\nexport class AssetDriversViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n @ViewChild('driverChooser') driverChooser: DriverChooserComponent;\r\n\r\n loading = false;\r\n loadingDrivers = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n deviceType: DeviceType;\r\n platform: Platform;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n asset: Asset;\r\n drivers: Driver[];\r\n\r\n showPopup: any = { show: false };\r\n\r\n fromTime = new Date();\r\n toTime = undefined;\r\n\r\n linkItem: any = { id: null, to: null, from: new Date() };\r\n error: any;\r\n success: any;\r\n assetId: any;\r\n\r\n // Datepicker\r\n public dpConfig: Partial = new BsDatepickerConfig();\r\n\r\n\r\n constructor(private authenticationService: AuthenticationService, private translateService: TranslateService, private assetService: AssetService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private driverService: DriverService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n\r\n this.dpConfig.containerClass = 'theme-default'; // or whatever color\r\n this.dpConfig.dateInputFormat = 'll';\r\n this.dpConfig.isAnimated = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.assetId = id;\r\n\r\n this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n });\r\n\r\n this.loadDrivers();\r\n });\r\n }\r\n\r\n loadDrivers() {\r\n this.loadingDrivers = true;\r\n this.driverService.getDriversByAssetId(this.assetId).subscribe(resp => {\r\n this.drivers = resp;\r\n this.loadingDrivers = false;\r\n });\r\n }\r\n\r\n onSelect(event) {\r\n this.linkItem.id = event.id;\r\n this.linkItem.name = event.name;\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n showAddPopup() {\r\n this.driverChooser.showModal();\r\n }\r\n\r\n onToDate(event) {\r\n console.log(event, 'todateset');\r\n\r\n if (this.toTime == null && event !== null) {\r\n this.toTime = new Date();\r\n }\r\n }\r\n\r\n resetToDate() {\r\n this.linkItem.to = null;\r\n this.toTime = null;\r\n }\r\n\r\n saveNew() {\r\n console.log('new save');\r\n\r\n const fromTime = Moment.utc(this.linkItem.from)\r\n .hours(Moment.utc(this.fromTime)['tz'](this.timezoneIana).hours())\r\n .minutes(Moment.utc(this.fromTime)['tz'](this.timezoneIana).minutes())\r\n .seconds(0)\r\n .valueOf();\r\n\r\n let toTime = null;\r\n if (this.linkItem.to) {\r\n toTime = Moment.utc(this.linkItem.to)['tz'](this.timezoneIana).valueOf();\r\n\r\n toTime = Moment.utc(this.linkItem.to)\r\n .hours(Moment.utc(this.toTime)['tz'](this.timezoneIana).hours())\r\n .minutes(Moment.utc(this.toTime)['tz'](this.timezoneIana).minutes())\r\n .seconds(0).valueOf();\r\n }\r\n\r\n console.log(fromTime, toTime);\r\n\r\n this.loadingDrivers = true;\r\n this.assetService.linkDriver(this.asset.id, this.linkItem.id, fromTime, toTime).subscribe(result => {\r\n this.driverChooser.hideModal();\r\n this.success = 'Driver is linked';\r\n this.error = null;\r\n this.loadingDrivers = false;\r\n this.loadDrivers();\r\n this.linkItem = { id: null, to: new Date(), from: new Date() };\r\n }, error => {\r\n this.driverChooser.hideModal();\r\n this.error = error\r\n this.loadingDrivers = false;\r\n this.loadDrivers();\r\n });\r\n }\r\n\r\n deleteAssetDriver(event) {\r\n\r\n this.loadingDrivers = true;\r\n this.assetService.unLinkDriver(event.id, event.permanent).subscribe(result => {\r\n this.deleteModal.hideModal();\r\n this.success = 'Driver is unlinked';\r\n this.error = null;\r\n this.loadingDrivers = false;\r\n this.loadDrivers();\r\n }, error => {\r\n this.deleteModal.hideModal();\r\n this.error = error\r\n this.loadingDrivers = false;\r\n this.loadDrivers();\r\n });\r\n }\r\n\r\n // Modal\r\n\r\n showModal(id, permanent) {\r\n this.deleteModal.showModal({ id, permanent });\r\n }\r\n\r\n hideModal() {\r\n this.deleteModal.hideModal();\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.drivers' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.drivers' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.driver' | translate}}\r\n \r\n {{linkItem.name}}\r\n
\r\n {{ 'general.from' | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.to' | translate}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{ driver.name }}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.phone' | translate}}\r\n \r\n {{ driver.phone }}\r\n
\r\n {{ 'general.dateOfBirth' | translate}}\r\n \r\n {{ driver.dateOfBirth | amDateFormat: 'LL' }}\r\n
\r\n {{ 'general.referenceId' | translate}}\r\n \r\n {{ driver.referenceId }}\r\n
\r\n {{ 'general.startDate' | translate}}\r\n \r\n {{ driver.assetDriver?.startDate | amDateFormat: 'LLL' }}\r\n
\r\n {{ 'general.endDate' | translate}}\r\n \r\n {{ driver.assetDriver?.endDate | amDateFormat: 'LLL' }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\n\r\n@Component({\r\n selector: 'fh-asset-log',\r\n templateUrl: 'assetLog.template.html'\r\n})\r\nexport class AssetLogViewComponent implements OnInit {\r\n assetLog: AuditLog[];\r\n sub;\r\n asset;\r\n loading = false;\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private assetService: AssetService, private route: ActivatedRoute, private router: Router) {\r\n this.asset = null;\r\n this.assetLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.asset = new Asset;\r\n this.asset.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n\r\n if (this.asset == null) {\r\n this.router.navigate(['/Assets/Overview'])\r\n }\r\n\r\n this.auditLogService.getAuditLogByAsset(id).subscribe(assetLog => {\r\n console.log('loading done');\r\n\r\n this.assetLog = assetLog;\r\n this.loading = false;\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.assets' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.log' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getGridLanguages, getGridButtons } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-assets',\r\n templateUrl: 'assets.template.html'\r\n})\r\nexport class AssetViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private assetService: AssetService) {\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'device_overview', this.translateService.instant('menu.deviceoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.assetService.getPagingUrl() + (this.permissions['HasWasl'] ? '?assetClass=1' : ''),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'unitId',\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n visible: true\r\n },\r\n {\r\n name: 'deviceTypeName',\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n name: 'plateNumber',\r\n data: 'plateNumber',\r\n title: this.translateService.instant('general.plateNumber'),\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n },\r\n {\r\n name: 'color',\r\n data: 'color',\r\n title: this.translateService.instant('general.color'),\r\n },\r\n {\r\n name: 'driversString',\r\n data: 'driversString',\r\n title: this.translateService.instant('general.drivers'),\r\n visible: false\r\n },\r\n {\r\n name: 'trailerString',\r\n data: 'trailerString',\r\n title: this.translateService.instant('general.trailers'),\r\n visible: false\r\n },\r\n {\r\n data: 'lastCommunication',\r\n width: '80',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('ll')\r\n }\r\n return data;\r\n },\r\n visible: false\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n\r\n if (this.permissions['HasWasl']) {\r\n this.dtOptions['columns'].push({\r\n name: 'wasl',\r\n data: 'waslReference',\r\n title: this.translateService.instant('general.wasl'),\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.assets' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, ChangeDetectorRef, ViewChild, OnDestroy, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-device-chooser',\r\n templateUrl: 'deviceChooser.template.html',\r\n styleUrls: ['deviceChooser.template.css'],\r\n providers: []\r\n})\r\nexport class DeviceChooserComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n\r\n activeId;\r\n\r\n token: string;\r\n @Output() onSelect = new EventEmitter();\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n selected;\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n dataTable: DataTables.JQueryDataTables;\r\n\r\n search$ = new Subject();\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private deviceService: DeviceService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.search$\r\n .debounceTime(700)\r\n .distinctUntilChanged()\r\n .subscribe(search => {\r\n this.seachChanged(search);\r\n });\r\n }\r\n\r\n close() {\r\n this.hideModal();\r\n }\r\n\r\n onHidden() {\r\n this.hideModal();\r\n }\r\n\r\n select() {\r\n this.hideModal();\r\n this.onSelect.emit({ id: this.selected.id, name: this.selected.name });\r\n }\r\n\r\n clickHandler(info: any): void {\r\n this.selected = info;\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n select: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.deviceService.getPagingUrl(),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n rowCallback: (row: Node, data: any[] | Object, index: number) => {\r\n const self = this;\r\n // Unbind first in order to avoid any duplicate handler\r\n // (see https://github.com/l-lin/angular-datatables/issues/87)\r\n $('td', row).unbind('click');\r\n $('td', row).bind('click', () => {\r\n self.clickHandler(data);\r\n });\r\n return row;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [{\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'unitId',\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n visible: false\r\n },\r\n {\r\n name: 'note',\r\n data: 'note',\r\n title: this.translateService.instant('general.note'),\r\n visible: false\r\n },\r\n {\r\n name: 'deviceTypeId',\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n visible: false\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n visible: false\r\n },\r\n {\r\n name: 'deviceTypeName',\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype')\r\n },\r\n {\r\n name: 'manufactorerName',\r\n data: 'manufactorerName',\r\n title: this.translateService.instant('general.manufacturer'),\r\n visible: false\r\n },\r\n {\r\n name: 'customerName',\r\n data: 'customerName',\r\n title: this.translateService.instant('general.customer')\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n\r\n // Model\r\n public showModal(): void {\r\n console.log('show modal');\r\n this.isModalShown = true;\r\n }\r\n\r\n public hideModal(): void {\r\n this.isModalShown = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'general.devices' | translate }}\r\n

\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, ChangeDetectorRef, ViewChild, OnDestroy, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { ModalDirective, BsModalRef } from 'ngx-bootstrap';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-driver-chooser',\r\n templateUrl: 'driverChooser.template.html',\r\n styleUrls: ['driverChooser.template.css'],\r\n providers: []\r\n})\r\nexport class DriverChooserComponent implements OnInit, OnDestroy {\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n\r\n token: string;\r\n @Output() onSelect = new EventEmitter();\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n selected: any;\r\n\r\n search$ = new Subject();\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private driverService: DriverService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.search$\r\n .debounceTime(700)\r\n .distinctUntilChanged()\r\n .subscribe(search => {\r\n this.seachChanged(search);\r\n });\r\n }\r\n\r\n close() {\r\n this.hideModal();\r\n }\r\n\r\n onHidden() {\r\n this.hideModal();\r\n }\r\n\r\n select() {\r\n this.hideModal();\r\n this.onSelect.emit({ id: this.selected.id, name: this.selected.name });\r\n }\r\n\r\n clickHandler(info: any): void {\r\n this.selected = info;\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n select: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.driverService.getPagingUrl(),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n rowCallback: (row: Node, data: any[] | Object, index: number) => {\r\n const self = this;\r\n // Unbind first in order to avoid any duplicate handler\r\n // (see https://github.com/l-lin/angular-datatables/issues/87)\r\n $('td', row).unbind('click');\r\n $('td', row).bind('click', () => {\r\n self.clickHandler(data);\r\n });\r\n return row;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'phone',\r\n data: 'phone',\r\n title: this.translateService.instant('general.phone'),\r\n },\r\n {\r\n name: 'code',\r\n data: 'code',\r\n title: this.translateService.instant('general.code'),\r\n },\r\n {\r\n name: 'referenceId',\r\n data: 'referenceId',\r\n title: this.translateService.instant('general.referenceId'),\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n\r\n // Model\r\n public showModal(): void {\r\n console.log('show modal');\r\n this.isModalShown = true;\r\n }\r\n\r\n public hideModal(): void {\r\n this.isModalShown = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'general.drivers' | translate }}\r\n

\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, NgZone, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, TileLayer } from 'leaflet';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { MapService } from '../../services/common/map.service';\r\nimport * as L from 'leaflet';\r\nimport 'leaflet-easybutton';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Component({\r\n selector: 'fh-assets-map',\r\n templateUrl: 'map.template.html',\r\n styleUrls: ['map.template.css'],\r\n providers: [MapService],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })),\r\n state('out', style({\r\n transform: 'translate3d(calc(100% - 20px), 0, 0)'\r\n })),\r\n transition('in => out', animate('400ms ease-in-out')),\r\n transition('out => in', animate('400ms ease-in-out'))\r\n ]),\r\n ]\r\n})\r\nexport class AssetsMapViewComponent implements OnInit, OnDestroy {\r\n\r\n leafletView: any;\r\n selectedDevice: Device;\r\n deviceId: string;\r\n loadingSidebar = false;\r\n googleMaps: TileLayer;\r\n googleHybrid: TileLayer;\r\n loading = false;\r\n markers: any;\r\n streets: any;\r\n osm: any;\r\n cities: any;\r\n map: Map;\r\n options;\r\n devices: Device[];\r\n menuState = 'out';\r\n\r\n mapData = {\r\n data: []\r\n };\r\n lookupDate = 0;\r\n updater;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private theMapService: MapService, private zone: NgZone, private http: HttpClient, private deviceService: DeviceService) {\r\n this.initMap();\r\n }\r\n\r\n toggleMenu() {\r\n // 1-line if statement that toggles the value:\r\n this.menuState = this.menuState === 'out' ? 'in' : 'out';\r\n }\r\n\r\n ngOnInit() {\r\n console.log('getting locations');\r\n this.updater = setInterval(() => {\r\n this.getRefreshedLocations();\r\n }, 30000);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n clearInterval(this.updater);\r\n }\r\n\r\n getRefreshedLocations() {\r\n console.log('getting locations 1');\r\n this.deviceService.getDeviceLocations(this.lookupDate).subscribe(result => {\r\n\r\n this.lookupDate = new Date().getTime() - 5000;\r\n result.Locations.forEach(location => {\r\n\r\n const device = this.devices.filter(x => x.assetId === location.AssetId)[0];\r\n if (device) {\r\n\r\n if (device.theMarker == null) {\r\n device.theMarker = new PruneCluster.Marker(location.Latitude, location.Longitude, { title: device.name });\r\n\r\n this.leafletView.RegisterMarker(device.theMarker);\r\n }\r\n\r\n device.theMarker.category = location.DeviceState;\r\n device.theMarker.Move(location.Latitude, location.Longitude);\r\n device.lastCommunication = location.RtcBasedTimestamp;\r\n device.speed = location.SpeedInKph;\r\n device.hasGpsFix = location.HasGpsFix;\r\n } else {\r\n console.log('no move ' + location.AssetId);\r\n }\r\n });\r\n\r\n this.leafletView.ProcessView();\r\n this.leafletView.RedrawIcons();\r\n });\r\n }\r\n\r\n // Leaflet\r\n\r\n initMap() {\r\n\r\n this.markers = L.featureGroup();\r\n this.leafletView = new PruneClusterForLeaflet();\r\n\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n initMaps.push(this.markers);\r\n initMaps.push(this.leafletView);\r\n this.options = createMapOptions(L, initMaps);\r\n\r\n const that = this;\r\n\r\n this.loading = true;\r\n setTimeout(function () {\r\n that.setPruneCluster(); // Marker clluster version\r\n that.fillDevices();\r\n this.loading = false;\r\n }, 100);\r\n }\r\n\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.on('click', () => {\r\n this.zone.run(() => {\r\n this.menuState = 'out';\r\n });\r\n });\r\n\r\n const that = this;\r\n\r\n // Easybutton\r\n L.easyButton({\r\n id: 'fit map button',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-expand-arrows-alt',\r\n title: 'Fit map',\r\n onClick: function (control) {\r\n that.centerMap();\r\n }\r\n }]\r\n }).addTo(this.map);\r\n }\r\n\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n\r\n setPruneCluster() {\r\n\r\n const that = this;\r\n this.theMapService.setPruneCluster(this.leafletView);\r\n\r\n this.leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n\r\n theMarker.on('click', () => {\r\n that.zone.run(() => {\r\n that.menuState = 'in';\r\n that.selectedDevice = data.device;\r\n });\r\n\r\n });\r\n };\r\n\r\n this.leafletView.BuildLeafletClusterIcon = function (cluster) {\r\n const e = new L.Icon['MarkerCluster']({ className: cluster.hasAlert ? 'prunecluster leaflet-markercluster-icon leaflet-marker-pulse' : 'prunecluster leaflet-markercluster-icon' });\r\n e.stats = cluster.stats;\r\n e.population = cluster.population;\r\n\r\n return e;\r\n };\r\n\r\n const colors = ['#676767', '#008E43', '#971C24', '#EE9234', '#206EB4', '#000000', '#FFE99B'],\r\n pi2 = Math.PI * 2;\r\n\r\n L.Icon['MarkerCluster'] = L.Icon.extend({\r\n options: {\r\n iconSize: new L.Point(44, 44),\r\n className: 'prunecluster leaflet-markercluster-icon'\r\n },\r\n\r\n createIcon: function () {\r\n // based on L.Icon.Canvas from shramov/leaflet-plugins (BSD licence)\r\n const e = document.createElement('canvas');\r\n this._setIconStyles(e, 'icon');\r\n const s = this.options.iconSize;\r\n e.width = s.x;\r\n e.height = s.y;\r\n this.draw(e.getContext('2d'), s.x, s.y);\r\n return e;\r\n },\r\n\r\n createShadow: function () {\r\n return null;\r\n },\r\n\r\n draw: function (canvas, width, height) {\r\n\r\n const lol = 0;\r\n\r\n let start = 0;\r\n for (let i = 0, l = colors.length; i < l; ++i) {\r\n\r\n const size = this.stats[i] / this.population;\r\n\r\n\r\n if (size > 0) {\r\n canvas.beginPath();\r\n canvas.moveTo(22, 22);\r\n canvas.fillStyle = colors[i];\r\n let from = start + 0.14;\r\n const to = start + size * pi2;\r\n\r\n if (to < from) {\r\n from = start;\r\n }\r\n canvas.arc(22, 22, 22, from, to);\r\n\r\n start = start + size * pi2;\r\n canvas.lineTo(22, 22);\r\n canvas.fill();\r\n canvas.closePath();\r\n }\r\n }\r\n\r\n canvas.beginPath();\r\n canvas.fillStyle = 'white';\r\n canvas.arc(22, 22, 18, 0, Math.PI * 2);\r\n canvas.fill();\r\n canvas.closePath();\r\n\r\n canvas.fillStyle = '#555';\r\n canvas.textAlign = 'center';\r\n canvas.textBaseline = 'middle';\r\n canvas.font = 'bold 12px sans-serif';\r\n\r\n canvas.fillText(this.population, 22, 22, 40);\r\n }\r\n });\r\n }\r\n\r\n fillDevices() {\r\n const that = this;\r\n const markers = [];\r\n let size = 0;\r\n\r\n this.deviceService.getDevices().subscribe(devices => {\r\n this.devices = devices;\r\n this.devices.forEach(device => {\r\n if (device.lastPosition && Math.abs(device.lastPosition.latitude) > 0.1) {\r\n\r\n // Prune cluster\r\n\r\n device.theMarker = new PruneCluster.Marker(device.lastPosition.latitude, device.lastPosition.longitude, { title: device.name });\r\n\r\n device.theMarker.category = 5;\r\n device.theMarker.data.popup = device.name;\r\n device.theMarker.data.device = device;\r\n\r\n markers.push(device.theMarker);\r\n size = size + 1;\r\n this.leafletView.RegisterMarker(device.theMarker);\r\n }\r\n });\r\n this.loading = false;\r\n\r\n this.centerMap();\r\n\r\n this.getRefreshedLocations();\r\n\r\n });\r\n }\r\n\r\n centerMap() {\r\n const bounds = this.leafletView.Cluster.ComputeGlobalBounds();\r\n if (bounds) {\r\n this.map.fitBounds(new L.LatLngBounds(new L.LatLng(bounds.minLat, bounds.maxLng), new L.LatLng(bounds.maxLat, bounds.minLng)), { padding: [50, 50] });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ selectedDevice?.name }}\r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n {{ selectedDevice?.createdDate | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.lastCommunication' | translate}}\r\n \r\n {{ selectedDevice?.lastCommunication | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.modelId' | translate}}\r\n \r\n {{ selectedDevice?.modelName\r\n }}\r\n
\r\n {{ 'general.phone' | translate}}\r\n \r\n {{ selectedDevice?.phone }}\r\n
\r\n {{ 'general.referenceId' | translate}}\r\n \r\n {{ selectedDevice?.referenceId }}\r\n
\r\n {{ 'general.lastCommunication' | translate}}\r\n \r\n {{ selectedDevice?.lastCommunication | amDateFormat:'LLL'}}\r\n
\r\n {{ 'general.speed' | translate}}\r\n \r\n {{ selectedDevice?.speed }}\r\n
\r\n {{ 'general.gpsFix' | translate}}\r\n \r\n {{ selectedDevice?.hasGpsFix }}\r\n
\r\n {{ 'general.unitId' | translate}}\r\n \r\n {{ selectedDevice?.unitId }}\r\n
\r\n {{ 'general.customer' | translate}}\r\n \r\n {{ selectedDevice?.customerName }}\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { TripService } from 'app/services/trip/trip.service';\r\nimport { BsDaterangepickerConfig } from 'ngx-bootstrap';\r\n\r\n// Timezone\r\nimport * as moment from 'moment-timezone';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getDefaultDpConfig, getGridLanguages } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-asset-messages',\r\n templateUrl: 'messages.template.html'\r\n})\r\nexport class AssetMessageViewComponent implements OnInit, OnDestroy {\r\n loading: boolean;\r\n asset: any;\r\n sub: any;\r\n messages: any;\r\n\r\n // Datepicker\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n to: any;\r\n from: any;\r\n daterangepickerModel: any[];\r\n permissions: {};\r\n languageLoaded: boolean;\r\n dtOptions;\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n device: Device;\r\n timezoneIana: string;\r\n token: string;\r\n\r\n error: any;\r\n success: any;\r\n\r\n\r\n constructor(private deviceService: DeviceService, private translateService: TranslateService, private authenticationService: AuthenticationService, private tripService: TripService, private assetService: AssetService, private route: ActivatedRoute, private router: Router) {\r\n\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.token = authenticationService.getAuthToken();\r\n\r\n this.to = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(0, 'day').toDate();\r\n this.from = moment().tz(this.authenticationService.getTimeZoneIana()).startOf('day').add(0 - 7, 'days').toDate();\r\n\r\n this.daterangepickerModel = [this.from, this.to];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.asset = new Asset;\r\n this.asset.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n\r\n this.loadDevice();\r\n\r\n if (this.asset == null) {\r\n this.router.navigate(['/Assets/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.permissions = this.authenticationService.permissions;\r\n }\r\n\r\n loadDevice() {\r\n if (this.asset.deviceId != null) {\r\n const deviceFromService = this.deviceService.getDeviceById(this.asset.deviceId).subscribe(device => {\r\n this.device = device;\r\n\r\n this.initGrid();\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n });\r\n }, error => {\r\n this.error = error\r\n });\r\n } else {\r\n this.error = 'No device found';\r\n }\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n dateChanged(event) {\r\n const that = this;\r\n if (event !== null) {\r\n\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.tripService.getMessageUrl(this.device.id, this.daterangepickerModel[0].getTime(), this.daterangepickerModel[1].getTime())).load();\r\n });\r\n\r\n this.fireFilter();\r\n }\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n order: [[1, 'desc']],\r\n ajax: {\r\n url: that.tripService.getMessageUrl(this.device.id, this.daterangepickerModel[0].getTime(), this.daterangepickerModel[1].getTime()),\r\n type: 'GET',\r\n dataSrc: '',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'Timestamp',\r\n data: 'Timestamp',\r\n title: this.translateService.instant('general.timestamp'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n },\r\n },\r\n {\r\n name: 'ServerTimestamp',\r\n data: 'ServerTimestamp',\r\n title: this.translateService.instant('general.serverTimestamp'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n },\r\n },\r\n {\r\n name: 'HasGpsFix',\r\n data: 'HasGpsFix',\r\n title: this.translateService.instant('general.hasGpsFix')\r\n },\r\n {\r\n name: 'HasDriverCodeInformation',\r\n data: 'HasDriverCodeInformation',\r\n title: this.translateService.instant('general.hasDriverCodeInformation')\r\n }, {\r\n name: 'Course',\r\n data: 'Position.Course',\r\n title: this.translateService.instant('general.course')\r\n },\r\n {\r\n name: 'Latitude',\r\n data: 'Position.Latitude',\r\n title: this.translateService.instant('general.latitude')\r\n }, {\r\n name: 'Longitude',\r\n data: 'Position.Longitude',\r\n title: this.translateService.instant('general.longitude')\r\n }, {\r\n name: 'Satellites',\r\n data: 'Position.Satellites',\r\n title: this.translateService.instant('general.satellites')\r\n }, {\r\n name: 'Speed',\r\n data: 'Position.Speed',\r\n title: this.translateService.instant('general.speed')\r\n },\r\n {\r\n name: 'MessageType',\r\n data: 'MessageType',\r\n title: this.translateService.instant('general.messageType')\r\n },\r\n {\r\n name: 'Lac',\r\n data: 'GsmData.Lac',\r\n title: this.translateService.instant('general.lac')\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.messages' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.date' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ 'general.messages' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { AssetSensor } from 'app/models/sensor.model';\r\nimport { SensorsTypesService } from 'app/services/sensors/sensorTypes.service';\r\nimport { InventorySensorType } from 'app/models/sensorType.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap';\r\nimport { DeleteModalComponent } from '../shared/usercontrols/deleteModal.component';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\nimport { SensorService } from 'app/services/sensors/sensors.service';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-asset-sensors',\r\n templateUrl: 'sensors.template.html'\r\n})\r\nexport class AssetCalibrationViewComponent implements OnInit {\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n\r\n config = {\r\n backdrop: true,\r\n ignoreBackdropClick: true\r\n };\r\n\r\n modalRef: BsModalRef;\r\n sub: any;\r\n asset: any;\r\n\r\n formMode = FormMode.add;\r\n formModeCalibration = FormMode.read;\r\n\r\n loadingCalculation = false;\r\n loadingAsset = false;\r\n error: any;\r\n\r\n options;\r\n marker;\r\n\r\n permissions: {};\r\n\r\n testValue = 0;\r\n loadingTest = false;\r\n errorTest;\r\n successTest;\r\n calibrationPoints = [];\r\n\r\n success;\r\n\r\n sensorsList = [];\r\n loading = false;\r\n sensorTypes: InventorySensorType[];\r\n\r\n sensorTypesWeight: InventorySensorType[];\r\n sensorTypesTemperature: InventorySensorType[];\r\n sensorTypesHumidity: InventorySensorType[];\r\n\r\n weightSensorTypeId;\r\n weightSensorPositionId;\r\n sensorValues: any;\r\n allowEdit: boolean;\r\n editSensor: any;\r\n\r\n constructor(private modalService: BsModalService, private authentication: AuthenticationService, private assetService: AssetService, private sensorService: SensorService, private sensorTypesService: SensorsTypesService, private route: ActivatedRoute) {\r\n this.loading = true;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loadingCalculation = true;\r\n this.loadingAsset = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingCalculation = false;\r\n this.loadingAsset = false;\r\n\r\n this.sensorTypesService.getSensorTypes().subscribe(resp => {\r\n this.sensorTypes = resp;\r\n\r\n // this.sensorTypesWeight = this.sensorTypes.filter(x => x.deviceSensorTypeId === 18);\r\n // this.sensorTypesTemperature = this.sensorTypes.filter(x => x.deviceSensorTypeId === 15);\r\n // this.sensorTypesHumidity = this.sensorTypes.filter(x => x.deviceSensorTypeId === 27);\r\n\r\n this.loading = false;\r\n\r\n this.getSensors();\r\n });\r\n });\r\n });\r\n }\r\n\r\n getSensors() {\r\n this.loading = true;\r\n this.sensorService.getSensorsOnAsset(this.asset.id, this.sensorTypes).subscribe(resut => {\r\n this.loading = false;\r\n this.sensorsList = resut;\r\n }, error => {\r\n this.error = error;\r\n });\r\n }\r\n\r\n getAssetInfo() {\r\n this.assetService.getAssetById(this.asset.id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingCalculation = false;\r\n this.loadingAsset = false;\r\n });\r\n }\r\n\r\n showDeleteModal(sensor) {\r\n this.deleteModal.showModal(sensor);\r\n }\r\n\r\n deleteSensor(sensor) {\r\n this.deleteModal.hideModal();\r\n this.loading = true;\r\n this.sensorService.deleteSensor(sensor).subscribe(result => {\r\n this.getSensors();\r\n }, error => {\r\n this.error = error;\r\n this.getSensors();\r\n });\r\n }\r\n\r\n onSave(sensor) {\r\n this.sensorService.saveSensor(sensor).subscribe(result => {\r\n this.getSensors();\r\n }, error => {\r\n this.error = error;\r\n this.getSensors();\r\n });\r\n }\r\n\r\n addSensor(sensorType, sensorPosition) {\r\n const sensor = new AssetSensor();\r\n\r\n sensor.assetId = this.asset.id;\r\n sensor.calibrationPoints = [];\r\n sensor.sensorTypeId = sensorType.value;\r\n sensor.sensorType = this.sensorTypes.find(x => x.id === sensor.sensorTypeId);\r\n sensor.sensorPosition = sensorPosition.value;\r\n\r\n this.loading = true;\r\n this.sensorService.addSensor(sensor).subscribe(result => {\r\n this.getSensors();\r\n }, error => {\r\n this.error = error;\r\n this.getSensors();\r\n });\r\n }\r\n\r\n openModal(allowEdit = false, template: TemplateRef, sensor) {\r\n\r\n this.editSensor = sensor;\r\n\r\n // When overwriting a new calibration... copy values from current sensor calibration\r\n if (allowEdit && (sensor.calibrationPoints == null || sensor.calibrationPoints.length === 0)) {\r\n console.log('setting overwrite calibrationpoints from original sensor ', sensor.sensorType.calibrationPoints);\r\n\r\n sensor.sensorType.calibrationPoints.forEach(x => {\r\n this.editSensor.calibrationPoints.push(x)\r\n });\r\n this.success = 'Sensor values are copied from original calibration';\r\n } else {\r\n this.success = '';\r\n }\r\n\r\n // Set edit and form mode\r\n this.allowEdit = allowEdit;\r\n\r\n if (allowEdit === false) {\r\n this.formModeCalibration = FormMode.read;\r\n this.sensorValues = sensor.sensorType.calibrationPoints;\r\n } else {\r\n this.formModeCalibration = FormMode.edit;\r\n this.sensorValues = sensor.calibrationPoints;\r\n }\r\n\r\n this.modalRef = this.modalService.show(template, this.config);\r\n }\r\n\r\n setFormModeCalibration(mode) {\r\n this.formModeCalibration = mode;\r\n\r\n if (this.formModeCalibration === FormMode.read) {\r\n\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.sensors' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.sensors' | translate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.sensorType' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.sensorPosition' | translate}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.sensors' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ 'general.sensorType' | translate}}{{ 'general.sensorPosition' | translate}}{{ 'general.formula' | translate}}{{ 'general.calibration' | translate}}{{ 'general.overWrite' | translate}}
{{ 'general.noDataFound' | translate}}
{{sensor.sensorType.brand}} {{sensor.sensorType.model}} {{('enums.assetSensorPosition.' + sensor.sensorPosition) | translate}} {{ sensor.sensorType.conversionFormula }}\r\n - 0\">\r\n \r\n \r\n 0)\">\r\n - 0)\">\r\n \r\n \r\n \r\n 0)\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n

{{'general.sensorValues' | translate }}

\r\n \r\n
\r\n
\r\n \r\n
\r\n {{'general.configurationBaseSensors' | translate }}\r\n
\r\n
\r\n {{'general.configurationOverwriteSensors' | translate }}\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, ChangeDetectorRef, ViewChild, OnDestroy, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-trailer-chooser',\r\n templateUrl: 'trailerChooser.template.html',\r\n styleUrls: ['trailerChooser.template.css'],\r\n providers: []\r\n})\r\nexport class TrailerChooserComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n\r\n activeId;\r\n\r\n token: string;\r\n @Output() onSelect = new EventEmitter();\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n selected;\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n dataTable: DataTables.JQueryDataTables;\r\n\r\n search$ = new Subject();\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private assetService: AssetService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.search$\r\n .debounceTime(700)\r\n .distinctUntilChanged()\r\n .subscribe(search => {\r\n this.seachChanged(search);\r\n });\r\n }\r\n\r\n close() {\r\n this.hideModal();\r\n }\r\n\r\n onHidden() {\r\n this.hideModal();\r\n }\r\n\r\n select() {\r\n this.hideModal();\r\n this.onSelect.emit({ id: this.selected.id, name: this.selected.name });\r\n }\r\n\r\n clickHandler(info: any): void {\r\n this.selected = info;\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n select: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.assetService.getTrailersPagingUrl(),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n rowCallback: (row: Node, data: any[] | Object, index: number) => {\r\n const self = this;\r\n // Unbind first in order to avoid any duplicate handler\r\n // (see https://github.com/l-lin/angular-datatables/issues/87)\r\n $('td', row).unbind('click');\r\n $('td', row).bind('click', () => {\r\n self.clickHandler(data);\r\n });\r\n return row;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'plateNumber',\r\n data: 'plateNumber',\r\n title: this.translateService.instant('general.plateNumber'),\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n },\r\n {\r\n name: 'color',\r\n data: 'color',\r\n title: this.translateService.instant('general.color'),\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n\r\n // Model\r\n public showModal(): void {\r\n console.log('show modal');\r\n this.isModalShown = true;\r\n }\r\n\r\n public hideModal(): void {\r\n this.isModalShown = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'general.trailers' | translate }}\r\n

\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { DeleteModalComponent } from '../shared/usercontrols/deleteModal.component';\r\nimport { TrailerChooserComponent } from './trailerChooser.component';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-asset-trailers',\r\n templateUrl: 'trailers.template.html'\r\n})\r\nexport class AssetTrailersViewComponent implements OnInit {\r\n\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n @ViewChild('trailerChooser') trailerChooser: TrailerChooserComponent;\r\n\r\n sub: any;\r\n asset: any;\r\n device: any;\r\n\r\n loadingAsset = false;\r\n loadingTrailers = false\r\n\r\n linkItem: any = { id: null, to: null, from: null };\r\n\r\n error: any;\r\n success: any;\r\n\r\n map: Map;\r\n defaultMap;\r\n\r\n options;\r\n marker;\r\n trailers: Asset[];\r\n assetId: any;\r\n\r\n\r\n\r\n constructor(private assetService: AssetService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n }\r\n\r\n onSelect(event) {\r\n this.linkItem.id = event.id;\r\n this.linkItem.name = event.name;\r\n }\r\n\r\n ngOnInit() {\r\n this.loadingAsset = true;\r\n this.loadingTrailers = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.assetId = id;\r\n\r\n const assetFromService = this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingAsset = false;\r\n });\r\n\r\n this.loadTrailers();\r\n });\r\n }\r\n\r\n\r\n loadTrailers() {\r\n this.loadingTrailers = true;\r\n const trailersFromService = this.assetService.getAssetsByParentId(this.assetId, 2).subscribe(trailers => {\r\n this.trailers = trailers;\r\n this.loadingTrailers = false;\r\n }, error => {\r\n this.error = error\r\n this.loadingTrailers = false;\r\n });\r\n }\r\n\r\n showAddPopup() {\r\n this.trailerChooser.showModal();\r\n }\r\n\r\n saveNew() {\r\n console.log('new save');\r\n this.loadingTrailers = true;\r\n this.assetService.linkAsset(this.asset.id, this.linkItem.id, this.linkItem.startDate, this.linkItem.EndDate).subscribe(result => {\r\n this.trailerChooser.hideModal();\r\n console.log('Trailer is linked', result);\r\n this.success = 'Trailer is linked';\r\n this.error = null;\r\n this.loadingTrailers = false;\r\n this.loadTrailers();\r\n\r\n this.linkItem = { id: null, to: null, from: null };\r\n }, error => {\r\n this.trailerChooser.hideModal();\r\n this.error = error\r\n this.loadingTrailers = false;\r\n this.loadTrailers();\r\n });\r\n }\r\n\r\n deleteAssetTrailer(id) {\r\n this.loadingTrailers = true;\r\n this.assetService.unLinkAsset(id).subscribe(result => {\r\n this.deleteModal.hideModal();\r\n this.success = 'Trailer is deleted';\r\n this.error = null;\r\n this.loadingTrailers = false;\r\n this.loadTrailers();\r\n }, error => {\r\n this.deleteModal.hideModal();\r\n this.error = error\r\n this.loadingTrailers = false;\r\n this.loadTrailers();\r\n });\r\n }\r\n\r\n // Modal\r\n\r\n showModal(id) {\r\n this.deleteModal.showModal(id);\r\n }\r\n\r\n hideModal() {\r\n this.deleteModal.hideModal();\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.assetDetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.trailers' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.trailer' | translate}}\r\n \r\n {{linkItem.name}}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{ trailer.name }}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.type' | translate}}\r\n \r\n {{ trailer.type }}\r\n
\r\n {{ 'general.identificationTag' | translate}}\r\n \r\n {{ trailer.identificationTag }}\r\n
\r\n {{ 'general.assetLinkType' | translate}}\r\n \r\n {{ ('enums.assetLinkType.' +\r\n trailer.assetLinkType) | translate }}\r\n
\r\n {{ 'general.brand' | translate}}\r\n \r\n {{ trailer.brand }}\r\n
\r\n {{ 'general.model' | translate}}\r\n \r\n {{ trailer.model }}\r\n
\r\n {{ 'general.startDate' | translate}}\r\n \r\n {{ trailer.assetLinkStartDate | amDateFormat: 'LLL' }}\r\n
\r\n {{ 'general.endDate' | translate}}\r\n \r\n {{ trailer.assetLinkEndDate | amDateFormat: 'LLL' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, Marker } from 'leaflet';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { TripService } from '../../services/trip/trip.service';\r\nimport * as L from 'leaflet';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\n// Timezone\r\nimport * as moment from 'moment-timezone';\r\nimport { getDefaultDpConfig } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-asset-trips',\r\n templateUrl: 'trips.template.html',\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n // css styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('0.5s', style({ opacity: 1 }))\r\n ]),\r\n ]\r\n )\r\n ],\r\n})\r\nexport class AssetTripsViewComponent implements OnInit, OnDestroy {\r\n loading: boolean;\r\n tripPolyLine;\r\n selectedTrip: any;\r\n osm: L.TileLayer;\r\n googleMaps: L.TileLayer;\r\n googleHybrid: L.TileLayer;\r\n leafletView: any;\r\n heatmapLayer: any;\r\n markers: any;\r\n zone: any;\r\n menuState: string;\r\n map: any;\r\n marker: Marker;\r\n options;\r\n timeoutHandler;\r\n trips: any[];\r\n sub;\r\n device: Device;\r\n layersControl;\r\n\r\n // Pagination\r\n totalItems = 0;\r\n currentPage = 1;\r\n smallnumPages = 0;\r\n assetId: any;\r\n asset: Asset;\r\n loadingTrip = false;\r\n\r\n // Datepicker\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n to: any;\r\n from: any;\r\n daterangepickerModel: any[];\r\n timezoneIana: string;\r\n token: string;\r\n today: any;\r\n start: any;\r\n permissions: {};\r\n translateService: any;\r\n languageLoaded: boolean;\r\n error: any;\r\n success: any;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n constructor(private authenticationService: AuthenticationService, private tripService: TripService, private http: HttpClient, private assetService: AssetService, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.token = authenticationService.getAuthToken();\r\n\r\n this.to = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(0, 'day').toDate();\r\n this.from = moment().tz(this.authenticationService.getTimeZoneIana()).startOf('day').add(0 - 7, 'days').toDate();\r\n\r\n this.daterangepickerModel = [this.from, this.to];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n this.initMap();\r\n }\r\n\r\n\r\n dateChanged(event) {\r\n console.log(event);\r\n\r\n this.loading = true;\r\n this.fetchTrips();\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.asset = new Asset;\r\n this.asset.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n\r\n this.fetchTrips();\r\n\r\n if (this.asset == null) {\r\n this.router.navigate(['/Assets/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.permissions = this.authenticationService.permissions;\r\n }\r\n\r\n\r\n fetchTrips() {\r\n this.tripService.getTripsForAsset(this.asset.id, this.daterangepickerModel[0].getTime(), this.daterangepickerModel[1].getTime()).subscribe(trips => {\r\n this.trips = trips;\r\n this.totalItems = this.trips.length;\r\n this.loading = false;\r\n }, error => {\r\n this.error = 'Unable to fetch trip data';\r\n this.loading = false;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.timeoutHandler) {\r\n console.log('Distroy timeouthandler');\r\n clearInterval(this.timeoutHandler);\r\n }\r\n }\r\n // Map\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n const that = this;\r\n\r\n const overlayMaps = {};\r\n\r\n this.map.on('click', () => {\r\n this.zone.run(() => {\r\n this.menuState = 'out';\r\n });\r\n });\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n // Easybuttona\r\n\r\n L.easyButton({\r\n id: 'fit map button',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-expand-arrows-alt',\r\n title: 'Fit map',\r\n onClick: function (control) {\r\n that.centerMap();\r\n }\r\n }]\r\n }).addTo(this.map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n\r\n centerMap() {\r\n // do nothing\r\n }\r\n\r\n getTripDetails(trip) {\r\n\r\n this.loadingTrip = true;\r\n this.tripService.getTripDetails(trip.id, this.asset.id, new Date(trip.beginDateTime).getTime(), new Date(trip.endDateTime).getTime()).subscribe(result => {\r\n console.log(result);\r\n this.drawTrip(result);\r\n this.loadingTrip = false;\r\n });\r\n }\r\n\r\n drawTrip(trip) {\r\n console.log(trip);\r\n this.selectedTrip = trip;\r\n const pointList = [];\r\n\r\n if (this.tripPolyLine) { this.map.removeLayer(this.tripPolyLine); }\r\n\r\n this.selectedTrip.locations.forEach(location => {\r\n pointList.push(new L.LatLng(location.Latitude, location.Longitude));\r\n });\r\n\r\n this.tripPolyLine = new L.Polyline(pointList, {\r\n color: '#2490EA',\r\n weight: 4,\r\n opacity: 0.9,\r\n smoothFactor: 1\r\n });\r\n this.tripPolyLine.addTo(this.map);\r\n\r\n const bounds = this.tripPolyLine.getBounds();\r\n\r\n if (bounds.isValid()) {\r\n this.map.fitBounds(bounds, { padding: [15, 15] });\r\n }\r\n }\r\n\r\n\r\n drawLocation(location) {\r\n setTimeout(() => {\r\n if (location) {\r\n\r\n if (this.marker) {\r\n this.map.removeLayer(this.marker);\r\n }\r\n\r\n this.marker = marker([location.latitude, location.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.map.addLayer(this.marker);\r\n this.map.flyTo([location.latitude, location.longitude], 6);\r\n }\r\n }, 100);\r\n }\r\n\r\n // Pagination\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n\r\n pageChanged(event: any): void {\r\n console.log('Page changed to: ' + event.page);\r\n console.log('Number items per page: ' + event.itemsPerPage);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.assets' | translate }}\r\n
  4. \r\n
  5. \r\n {{asset?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.trips' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.date' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n {{'menu.trips' | translate }}\r\n
\r\n
\r\n \r\n {{'dashboard.pageNumber' | translate:{current: currentPage, max: smallnumPages} }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.date' | translate }}{{'general.details' | translate }}
{{ trip.beginDateTime | amDateFormat:'YYYY-MM-DD HH:mm' }}{{ trip.beginCity }} / {{trip.segmentDistanceInKilometers}} km\r\n \r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
No trip found in this daterange
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.location' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { Router } from '@angular/router';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\n\r\n\r\n@Component({\r\n selector: 'fh-assettype-add',\r\n templateUrl: 'add.template.html'\r\n})\r\nexport class AssetTypeAddViewComponent {\r\n token: string;\r\n addDevice = false;\r\n formMode = FormMode.add;\r\n error: any;\r\n loading = false;\r\n\r\n success: { statusText: string; success: string; };\r\n assetType: AssetType;\r\n objectKeys = Object.keys;\r\n\r\n assetTypeGroups = [];\r\n isImpersonated: boolean;\r\n permissions: {};\r\n\r\n constructor(private router: Router, private assetTypeService: AssetTypeService, private cd: ChangeDetectorRef, private authentication: AuthenticationService) {\r\n\r\n this.isImpersonated = this.authentication.getIsImpersonated();\r\n this.token = this.authentication.getAuthToken();\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.assetTypeGroups = [];\r\n\r\n this.assetType = new AssetType();\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n const temp = [];\r\n this.assetTypeGroups.forEach(mainCat => {\r\n mainCat.forEach(subcat => {\r\n temp.push(subcat);\r\n });\r\n });\r\n this.assetType.properties = JSON.stringify(temp);\r\n\r\n this.assetTypeService.saveAssetType(this.assetType).subscribe(result => {\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'You will be redirected to the assettype'\r\n };\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/AssetTypeDetails/Index/' + result.id]);\r\n }, 2000);\r\n\r\n this.assetTypeService.resetAssetTypesCache().subscribe(res => {\r\n console.log('AssetTypes are cleared');\r\n console.log(res);\r\n });\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.assetType' | translate }}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AssetType } from 'app/models/assetType.model';\r\n\r\n@Component({\r\n selector: 'fh-fh-assettype-details',\r\n templateUrl: 'assetTypeDetails.template.html'\r\n})\r\nexport class AssetTypeDetailsViewComponent implements OnInit {\r\n sub: any;\r\n assetType: any;\r\n\r\n tagType = TagObjectType.AssetType.valueOf();\r\n formMode = FormMode.read;\r\n notEditableNotification = 'Note! Only custom created assettypes can be updated';\r\n\r\n loadingAssetType = false;\r\n error: any;\r\n\r\n options;\r\n\r\n permissions: {};\r\n\r\n assetTypeGroups = [];\r\n objectKeys = Object.keys;\r\n success: { statusText: string; success: string; };\r\n isImpersonated: boolean;\r\n\r\n constructor(private authentication: AuthenticationService, private assetTypeService: AssetTypeService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n this.assetType = new AssetType();\r\n }\r\n\r\n groupBy = function (xs, key) {\r\n return xs.reduce(function (rv, x) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, []);\r\n };\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n this.isImpersonated = this.authentication.getIsImpersonated();\r\n\r\n this.loadingAssetType = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetTypeService.getAssetTypeById(id).subscribe(assetType => {\r\n this.assetType = assetType;\r\n if (this.assetType.properties) {\r\n this.assetTypeGroups = this.groupBy(this.assetType.properties, 'Type');\r\n this.loadingAssetType = false;\r\n } else {\r\n this.loadingAssetType = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n getAssetType() {\r\n const assetFromService = this.assetTypeService.getAssetTypeById(this.assetType.id).subscribe(assetType => {\r\n this.assetType = assetType;\r\n if (this.assetType.properties) {\r\n this.assetTypeGroups = this.groupBy(this.assetType.properties, 'Type');\r\n this.loadingAssetType = false;\r\n } else {\r\n this.loadingAssetType = false;\r\n }\r\n });\r\n }\r\n\r\n // Form\r\n\r\n onDelete() {\r\n this.error = 'Deleting is not implemented';\r\n }\r\n\r\n onSave() {\r\n this.loadingAssetType = true;\r\n\r\n const temp = [];\r\n this.assetTypeGroups.forEach(mainCat => {\r\n mainCat.forEach(subcat => {\r\n temp.push(subcat);\r\n });\r\n });\r\n this.assetType.properties = JSON.stringify(temp);\r\n\r\n this.assetTypeService.updateAssetType(this.assetType).subscribe(result => {\r\n this.loadingAssetType = false;\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Asset is successfull updated'\r\n };\r\n\r\n this.error = null;\r\n\r\n this.getAssetType();\r\n\r\n }, error => {\r\n this.error = error\r\n this.loadingAssetType = false;\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n\r\n if (this.formMode === FormMode.read) {\r\n this.loadingAssetType = true;\r\n this.getAssetType();\r\n }\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.assetType' | translate }}\r\n
  4. \r\n
  5. \r\n {{assetType?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.assetTypeDetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.assetType' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\n\r\n@Component({\r\n selector: 'fh-assettype-log',\r\n templateUrl: 'assetTypeLog.template.html'\r\n})\r\nexport class AssetTypeLogViewComponent implements OnInit {\r\n assetTypeLog: AuditLog[];\r\n sub;\r\n assetType;\r\n loading = false;\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private assetTypeService: AssetTypeService, private route: ActivatedRoute, private router: Router) {\r\n this.assetType = null;\r\n this.assetTypeLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.assetType = new AssetType;\r\n this.assetType.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.assetTypeService.getAssetTypeById(id).subscribe(assetType => {\r\n this.assetType = assetType;\r\n\r\n if (this.assetType == null) {\r\n this.router.navigate(['/AssetTypes/Overview'])\r\n }\r\n\r\n this.auditLogService.getAuditLogByAssetType(id).subscribe(assetLog => {\r\n console.log('loading done');\r\n\r\n this.assetTypeLog = assetLog;\r\n this.loading = false;\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.assetTypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{assetType?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.log' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { TranslatorService } from 'app/services/common/translator.service';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-assettypes-view',\r\n templateUrl: 'assetTypes.template.html'\r\n})\r\nexport class AssetTypeViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private translatorService: TranslatorService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private assetTypeService: AssetTypeService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.assetTypeService.getPagingUrl(),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.brand')\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.model')\r\n },\r\n {\r\n name: 'assetClass',\r\n data: 'assetClass',\r\n title: this.translateService.instant('general.assetClass'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.assetClass') : '-';\r\n }\r\n },\r\n {\r\n name: 'category',\r\n data: 'category',\r\n title: this.translateService.instant('general.category'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.assetCategory') : '-';\r\n }\r\n },\r\n {\r\n name: 'assetCount',\r\n data: 'assetCount',\r\n title: this.translateService.instant('general.assetCount')\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.assetTypes' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\n\r\nimport { Device } from 'app/models/device.model';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-assettypes-assets',\r\n templateUrl: 'assets.template.html'\r\n})\r\nexport class AssetTypeAssetsViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n languageLoaded: boolean;\r\n assetType: AssetType;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private assetService: AssetService, private issueTypeService: IssueTypeService, private assetTypeService: AssetTypeService, private route: ActivatedRoute, private router: Router) {\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n const assetFromService = this.assetTypeService.getAssetTypeById(id).subscribe(assetType => {\r\n this.assetType = assetType;\r\n });\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.assetService.getAssetsByAssetTypeId(id).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n },\r\n {\r\n data: 'plateNumber',\r\n title: this.translateService.instant('general.plateNumber'),\r\n },\r\n {\r\n data: 'referenceId',\r\n title: this.translateService.instant('general.referenceId'),\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.assetTypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{assetType?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.overview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.overview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { FormMode } from 'app/common/enums';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-assettype-calibration',\r\n templateUrl: 'calibration.template.html'\r\n})\r\nexport class AssetTypeCalibrationViewComponent implements OnInit {\r\n sub: any;\r\n assetType: any;\r\n device: any;\r\n tagType = TagObjectType.Asset.valueOf();\r\n\r\n loadingCalculation = false;\r\n loadingAssetType = false;\r\n error: any;\r\n\r\n options;\r\n marker;\r\n\r\n permissions: {};\r\n\r\n testValue = 0;\r\n loadingTest = false;\r\n errorTest;\r\n successTest;\r\n calibrationPoints = [];\r\n\r\n formMode = FormMode.read;\r\n success: { statusText: string; success: string; };\r\n\r\n constructor(private authentication: AuthenticationService, private assetTypeService: AssetTypeService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n this.calibrationPoints = [\r\n { rawValue: 0, actualValue: 0 },\r\n { rawValue: 1, actualValue: 2000 },\r\n { rawValue: 2, actualValue: 2500 },\r\n { rawValue: 3, actualValue: 3000 },\r\n { rawValue: 4, actualValue: 6000 },\r\n { rawValue: 5, actualValue: 20000 },\r\n ];\r\n }\r\n\r\n testCalibration() {\r\n this.loadingTest = true;\r\n // this.errorTest = 'error';\r\n setTimeout(result => {\r\n this.loadingTest = false;\r\n this.successTest = 'Calibration returns 0';\r\n }, 1000);\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loadingCalculation = true;\r\n this.loadingAssetType = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetTypeService.getAssetTypeById(id).subscribe(asset => {\r\n this.assetType = asset;\r\n this.loadingCalculation = false;\r\n this.loadingAssetType = false;\r\n });\r\n });\r\n }\r\n\r\n getAssetTypeDetails() {\r\n const assetFromService = this.assetTypeService.getAssetTypeById(this.assetType.id).subscribe(asset => {\r\n this.assetType = asset;\r\n this.loadingCalculation = false;\r\n this.loadingAssetType = false;\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n\r\n if (this.formMode === FormMode.read) {\r\n this.loadingAssetType = true;\r\n\r\n this.getAssetTypeDetails();\r\n }\r\n }\r\n\r\n onSave() {\r\n this.loadingAssetType = true;\r\n\r\n console.log(this.assetType);\r\n\r\n this.assetTypeService.updateAssetType(this.assetType).subscribe(result => {\r\n this.loadingAssetType = false;\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Asset is successfull updated'\r\n };\r\n\r\n this.error = null;\r\n\r\n this.getAssetTypeDetails();\r\n\r\n }, error => {\r\n this.error = error\r\n this.loadingAssetType = false;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.assetType' | translate }}\r\n
  4. \r\n
  5. \r\n {{assetType?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.assetTypeDetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.assetType' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ assetType?.name }}\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{'general.tester' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.rawValue' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.calibration' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { Customer } from '../../models/customer.model';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-customer-assets',\r\n templateUrl: 'customerAssets.template.html'\r\n})\r\nexport class CustomerAssetsViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n customer: Customer;\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private assetService: AssetService, private issueTypeService: IssueTypeService, private customerService: CustomerService, private route: ActivatedRoute, private router: Router) {\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.customerService.getCustomerById(id).subscribe(customer => {\r\n this.customer = customer;\r\n });\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.assetService.getAssetsByCustomerId(id).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n },\r\n {\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n },\r\n {\r\n data: 'lastCommunication',\r\n width: '80',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n return new Date(data).toLocaleDateString();\r\n }\r\n return data;\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.customers' | translate }}\r\n
  4. \r\n
  5. \r\n {{customer?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.assetoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.assetoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CustomerService } from '../../services/customers/customers.service';\r\nimport { Customer } from '../../models/customer.model';\r\n\r\n@Component({\r\n selector: 'fh-customer-calculation-settings',\r\n templateUrl: 'customerCalculationSettings.template.html'\r\n})\r\nexport class CustomerCalculationSettingsViewComponent implements OnInit {\r\n sub;\r\n customer: Customer;\r\n\r\n constructor(private http: HttpClient, private customerService: CustomerService, private route: ActivatedRoute, private router: Router) {\r\n this.customer = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.customer = new Customer;\r\n this.customer.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.customerService.getCustomerById(id).subscribe(customer => {\r\n this.customer = customer;\r\n\r\n if (this.customer == null) {\r\n this.router.navigate(['/Customers/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.customers' | translate }}\r\n
  4. \r\n
  5. \r\n {{customer?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.calculationsettings' | translate }}\r\n
  8. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { MapService } from '../../services/common/map.service';\r\nimport { Customer } from '../../models/customer.model';\r\n\r\nimport * as moment from 'moment-timezone';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Component({\r\n selector: 'fh-customer-details',\r\n templateUrl: 'customerDetails.template.html',\r\n providers: [MapService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['customerDetails.template.css']\r\n})\r\nexport class CustomerDetailsViewComponent implements OnInit {\r\n tagType = TagObjectType.Customer.valueOf();\r\n\r\n devices: any;\r\n markers: any;\r\n defaultMap: any;\r\n issueTypesResult: any;\r\n loadingIssueTypes: boolean;\r\n loadingKpis: boolean;\r\n issuesThisWeek: any;\r\n devicesWithIssues: any;\r\n deviceCount;\r\n issueCount;\r\n\r\n issues: Issue[];\r\n sub: Subscription;\r\n loading = false;\r\n loadingMapData = false;\r\n customer: Customer;\r\n\r\n options;\r\n layersControl;\r\n map: Map;\r\n nearbyDevices;\r\n marker;\r\n\r\n mapData = {\r\n data: []\r\n };\r\n\r\n heatmapLayer = new HeatmapOverlay({\r\n radius: 15,\r\n maxOpacity: 0.8,\r\n scaleRadius: false,\r\n useLocalExtrema: false,\r\n latField: 'lat',\r\n lngField: 'lng',\r\n valueField: 'count'\r\n });\r\n\r\n\r\n issueTypes: IssueType[];\r\n issueTypesFiltered: IssueType[];\r\n googleMaps: any;\r\n googleHybrid: any;\r\n leafletView: any;\r\n\r\n dateStartMonth: number;\r\n dateStartWeek: number;\r\n today: any;\r\n permissions: {};\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private theMapService: MapService, private http: HttpClient, private issueTypeService: IssueTypeService, private customerService: CustomerService, private deviceService: DeviceService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.customer = null;\r\n this.permissions = this.authenticationService.permissions;\r\n this.issueTypesFiltered = [];\r\n this.issueTypesResult = [];\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.today = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-1, 'day').toDate().getTime();\r\n this.dateStartWeek = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-7, 'day').toDate().getTime();\r\n this.dateStartMonth = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-1, 'month').toDate().getTime();\r\n\r\n this.initMap();\r\n }\r\n\r\n setDeviceTypeDetails(customer: Customer): any {\r\n if (customer == null) {\r\n this.router.navigate(['/Customers/Overview'])\r\n } else {\r\n this.customer = customer;\r\n\r\n this.customerService.getCustomerDashboard(this.customer.id, this.dateStartMonth, this.today).subscribe(dashboard => {\r\n this.loadingKpis = false;\r\n this.issueCount = dashboard.issueCount;\r\n this.deviceCount = dashboard.deviceCount;\r\n this.devicesWithIssues = dashboard.deviceWithIssuesCount;\r\n this.issuesThisWeek = dashboard.issueThisWeekCount;\r\n\r\n this.cd.markForCheck();\r\n });\r\n\r\n // https://github.com/Asymmetrik/ngx-leaflet\r\n }\r\n }\r\n\r\n orderBy(array: any[], prop: string) {\r\n return array.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n }\r\n\r\n orderByIssueCount(array: any[]) {\r\n return array.sort((a, b) => a[1].issueCount > b[1].issueCount ? 1 : a[1].issueCount === b[1].issueCount ? 0 : -1);\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.loading = true;\r\n this.loadingIssueTypes = true;\r\n this.loadingKpis = true;\r\n\r\n const customerServiceService = this.customerService.getCustomerById(id).subscribe(deviceType => {\r\n this.loading = false;\r\n this.setDeviceTypeDetails(deviceType);\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.customerService.getIssuesPerIssueType(id, this.dateStartMonth, this.today).subscribe(result => {\r\n this.issueTypesResult = this.orderByIssueCount(result);\r\n this.loadingIssueTypes = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.fillDevices(id);\r\n });\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n\r\n\r\n this.markers = L.featureGroup();\r\n this.leafletView = new PruneClusterForLeaflet();\r\n\r\n this.maps = getMapProviders(L);\r\n\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n initMaps.push(this.leafletView);\r\n\r\n this.options = createMapOptions(L, initMaps);\r\n\r\n const that = this;\r\n\r\n setTimeout(function () {\r\n that.setPruneCluster(); // Marker clluster version\r\n }, 100);\r\n }\r\n\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n const that = this;\r\n\r\n const overlayMaps = {\r\n 'Prunecluster': this.leafletView,\r\n 'Heatmap': this.heatmapLayer,\r\n // 'Markers': this.markers\r\n };\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n // Easybuttona\r\n\r\n L.easyButton({\r\n id: 'fit map button',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-expand-arrows-alt',\r\n title: 'Fit map',\r\n onClick: function (control) {\r\n that.centerMap();\r\n }\r\n }]\r\n }).addTo(this.map);\r\n\r\n const heatmapToggle = L.easyButton({\r\n id: 'animated-heatmap-toggle',\r\n states: [{\r\n stateName: 'remove-markers',\r\n title: 'Remove heatmap',\r\n icon: 'fa-undo',\r\n onClick: function (control) {\r\n that.map.removeLayer(that.heatmapLayer);\r\n control.state('add-markers');\r\n }\r\n }, {\r\n stateName: 'add-markers',\r\n icon: 'fa-map',\r\n title: 'Show heatmap',\r\n onClick: function (control) {\r\n that.map.addLayer(that.heatmapLayer);\r\n control.state('remove-markers');\r\n }\r\n }]\r\n });\r\n heatmapToggle.addTo(this.map);\r\n\r\n const animatedToggle = L.easyButton({\r\n id: 'animated-marker-toggle',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-map-marker',\r\n title: 'Show markers',\r\n onClick: function (control) {\r\n that.map.addLayer(that.leafletView);\r\n control.state('remove-markers');\r\n }\r\n }, {\r\n stateName: 'remove-markers',\r\n title: 'Remove markers',\r\n icon: 'fa-undo',\r\n onClick: function (control) {\r\n that.map.removeLayer(that.leafletView);\r\n control.state('add-markers');\r\n }\r\n }]\r\n });\r\n animatedToggle.addTo(this.map);\r\n\r\n // End easybutton\r\n }\r\n\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n\r\n setPruneCluster() {\r\n\r\n const that = this;\r\n this.theMapService.setPruneCluster(this.leafletView);\r\n\r\n this.leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n };\r\n }\r\n\r\n\r\n\r\n fillDevices(id) {\r\n const that = this;\r\n this.deviceService.getDevicesByCustomer(id).subscribe(devices => {\r\n this.devices = devices;\r\n this.devices.forEach(device => {\r\n if (device.lastPosition) {\r\n\r\n // Prune cluster\r\n\r\n const theMarker = new PruneCluster.Marker(device.lastPosition.latitude, device.lastPosition.longitude, { title: device.name });\r\n\r\n theMarker.category = Math.ceil(Math.random() * 6).toString();\r\n theMarker.data.popup = device.name;\r\n theMarker.data.device = device;\r\n\r\n this.leafletView.RegisterMarker(theMarker);\r\n\r\n // Heatmap\r\n this.mapData.data.push({\r\n lat: device.lastPosition.latitude,\r\n lng: device.lastPosition.longitude,\r\n count: 1\r\n });\r\n\r\n // Normal marker\r\n const theNormalMarker = marker([device.lastPosition.latitude, device.lastPosition.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.markers.addLayer(theNormalMarker);\r\n }\r\n });\r\n\r\n this.heatmapLayer.setData(this.mapData);\r\n this.loading = false;\r\n\r\n this.centerMap();\r\n\r\n });\r\n }\r\n\r\n centerMap() {\r\n const bounds = this.leafletView.Cluster.ComputeGlobalBounds();\r\n if (bounds) {\r\n this.map.fitBounds(new L.LatLngBounds(new L.LatLng(bounds.minLat, bounds.maxLng), new L.LatLng(bounds.maxLat, bounds.minLng)), { padding: [50, 50] });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.customers' | translate }}\r\n
  4. \r\n
  5. \r\n {{customer?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.details' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ customer?.name }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'general.name' | translate }}\r\n \r\n {{ customer?.name }}\r\n
\r\n {{'general.reference' | translate }}\r\n \r\n {{ customer?.referenceId }}\r\n
\r\n {{ 'general.platform' | translate}}\r\n \r\n {{ customer?.platformName }}\r\n
\r\n {{ 'general.accountPlatform' | translate}}\r\n \r\n {{\r\n customer?.accountPlatformName }}\r\n \r\n {{ customer?.accountPlatformName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.map' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.kpis' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n

{{ issuesThisWeek?.toLocaleString() }}

\r\n {{'general.issues' | translate }} {{'dates.thisweek' | translate }}\r\n
\r\n
\r\n

{{ issueCount?.toLocaleString() }}

\r\n {{'general.issues' | translate }} {{'dates.thismonth' | translate }}\r\n
\r\n
\r\n

{{ devicesWithIssues?.toLocaleString() }}

\r\n {{'general.deviceswithissues' | translate }} {{'dates.thismonth' | translate }}\r\n
\r\n
\r\n

{{ deviceCount?.toLocaleString() }}

\r\n {{'general.devices' | translate }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n {{'dashboard.issues' | translate }}
\r\n {{'dates.lastmonth' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.issue' | translate }}{{'general.count' | translate }}
{{ issueType[0] }}{{ issueType[1].issueCount?.toLocaleString()\r\n }}\r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { Customer } from '../../models/customer.model';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-customer-devices',\r\n templateUrl: 'customerDevices.template.html'\r\n})\r\nexport class CustomerDevicesViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n customer: Customer;\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private customerService: CustomerService, private route: ActivatedRoute, private router: Router) {\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.customerService.getCustomerById(id).subscribe(customer => {\r\n this.customer = customer;\r\n });\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.deviceService.getDevicesByCustomer(id).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n },\r\n {\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n },\r\n {\r\n data: 'lastCommunication',\r\n width: '80',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n return new Date(data).toLocaleDateString();\r\n }\r\n return data;\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.customers' | translate }}\r\n
  4. \r\n
  5. \r\n {{customer?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.deviceoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.deviceoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { Customer } from 'app/models/customer.model';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getTranslatedDropdownSettings, getDropdownSettings, getDefaultDpConfig, getGridLanguages } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-customer-issues',\r\n templateUrl: 'customerIssues.template.html'\r\n})\r\nexport class CustomerIssuesViewComponent implements OnInit {\r\n customerId = '0';\r\n token: any;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n loading: boolean;\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n issues: Issue[];\r\n customer: Customer;\r\n timezoneIana;\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n // Grid\r\n dtOptions = {};\r\n minDate: Date;\r\n limitHistoryInDays: number;\r\n languageLoaded: boolean;\r\n dropdownIssueTypesSettings: any;\r\n issueTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n\r\n\r\n constructor(private localeService: BsLocaleService, private translatorService: TranslatorService, private authenticationService: AuthenticationService, private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private customerService: CustomerService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.customer = null;\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.customerId = '00000000-0000-0000-0000-000000000001';\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.customerId = id;\r\n this.customerService.getCustomerById(id).subscribe(customer => {\r\n this.customer = customer;\r\n this.customerId = customer.id;\r\n\r\n if (this.customer == null) {\r\n this.router.navigate(['/DeviceTypes/Overview'])\r\n }\r\n });\r\n });\r\n\r\n // Buuild issuetypes dropdown\r\n this.dropdownIssueTypesSettings = getDropdownSettings();\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownIssueTypesSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n });\r\n\r\n\r\n // Filtering\r\n const that = this;\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n\r\n\r\n this.maxDate.setDate(this.today.getDate() - 31);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n });\r\n }\r\n\r\n dateChanged(event) {\r\n const that = this;\r\n if (event !== null) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.issueService.getPagingUrl() + '?customerId=' + this.customerId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000)).load();\r\n });\r\n\r\n this.fireFilter();\r\n }\r\n }\r\n\r\n fireFilter(event = null): void {\r\n\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeId:name').search(selectedIssueTypesString);\r\n\r\n } else {\r\n dtInstance.column('issueTypeId:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n // Set issuetype from get\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['IssueType'];\r\n if (issueType) {\r\n this.selectedIssueTypes = [{ id: issueType, itemName: 'filter' }];\r\n this.fireFilter();\r\n } else {\r\n this.fireFilter();\r\n }\r\n\r\n const singleday = params['Singleday'];\r\n if (singleday) {\r\n this.daterangepickerModel = [new Date(singleday / 1), new Date(singleday / 1)];\r\n this.dateChanged(1);\r\n }\r\n\r\n const dateStart = params['DateStart'];\r\n const dateEnd = params['DateEnd'];\r\n if (dateStart && dateEnd) {\r\n this.daterangepickerModel = [new Date(dateStart / 1), new Date(dateEnd / 1)];\r\n this.dateChanged(1);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n console.log('get from grid');\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'desc'], [9, 'desc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.issueService.getPagingUrl() + '?customerId=' + this.customerId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n width: '20',\r\n orderable: false,\r\n title: '',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'issueDate',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('YYYY-MM-DD')\r\n }\r\n },\r\n {\r\n data: 'timestamp',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n },\r\n visible: false\r\n },\r\n {\r\n data: 'deviceName',\r\n title: this.translateService.instant('general.device'),\r\n width: '80',\r\n render: function (data, type, row) {\r\n return data ? data : '';\r\n }\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n width: '80',\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n },\r\n {\r\n data: 'issueType',\r\n title: this.translateService.instant('general.issue'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data, 'enums.issuetypes') : '';\r\n }\r\n },\r\n {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n }, {\r\n data: 'severity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.customers' | translate }}\r\n
  4. \r\n
  5. \r\n {{customer?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.issueoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.issueoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { CustomerService } from '../../services/customers/customers.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\n\r\nclass Person {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nclass DataTablesResponse {\r\n data: any[];\r\n draw: number;\r\n recordsFiltered: number;\r\n recordsTotal: number;\r\n}\r\n\r\n@Component({\r\n selector: 'fh-customers',\r\n templateUrl: 'customers.template.html',\r\n styleUrls: ['customers.template.css']\r\n})\r\nexport class CustomersViewComponent implements OnInit, AfterViewInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n dtOptions = {};\r\n assets: Subject = new Subject();\r\n persons: Person[];\r\n loading = false;\r\n data = 0;\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private customerService: CustomerService) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'asc']],\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.customerService.getCustomers(false).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n name: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n data: 'referenceId',\r\n name: 'referenceId',\r\n title: this.translateService.instant('general.reference'),\r\n render: function (data, type, row) {\r\n return data ? data : '-';\r\n },\r\n visible: false\r\n }, {\r\n data: 'accountPlatformName',\r\n name: 'accountPlatformName',\r\n title: this.translateService.instant('general.accountPlatform')\r\n },\r\n {\r\n data: 'platformName',\r\n name: 'platformName',\r\n title: this.translateService.instant('general.platform'),\r\n render: function (data, type, row) {\r\n return data ? data : '-';\r\n },\r\n },\r\n {\r\n data: 'count',\r\n title: this.translateService.instant('general.count')\r\n }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.customeroverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Device } from 'app/models/device.model';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\n\r\n@Component({\r\n selector: 'fh-devices-add',\r\n templateUrl: 'add.template.html'\r\n})\r\nexport class DeviceAddViewComponent {\r\n token: string;\r\n addDevice = false;\r\n device: Device;\r\n formMode = FormMode.add;\r\n error: any;\r\n loading = false;\r\n form: any;\r\n success: { statusText: string; success: any; };\r\n\r\n constructor(private deviceService: DeviceService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private router: Router) {\r\n this.device = new Device();\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n this.deviceService.createDevice(this.device).subscribe(result => {\r\n this.loading = false;\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'You will be redirected to the device'\r\n };\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/DeviceDetails/Index/' + result.id]);\r\n }, 2000);\r\n\r\n this.deviceService.resetDeviceCache().subscribe(res => {\r\n console.log('Devices are cleared');\r\n console.log(res);\r\n });\r\n\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'general.device' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\nimport { DeviceSensorType } from 'app/models/sensor.model';\r\nimport { TranslatorService } from 'app/services/common/translator.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\ndeclare var L;\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\n@Component({\r\n selector: 'fh-device-asset',\r\n templateUrl: 'assetDetails.template.html',\r\n providers: [FhChartService]\r\n})\r\n\r\nexport class DeviceAssetViewComponent implements OnInit, OnDestroy {\r\n\r\n timeoutHandler;\r\n chartRpm: any;\r\n chartSpeed: any;\r\n sensors;\r\n sub;\r\n asset: Asset;\r\n loading = false;\r\n sensorTypes: DeviceSensorType[];\r\n osm: any;\r\n map: any;\r\n options: {};\r\n marker: any;\r\n device: Device;\r\n\r\n formMode = FormMode.read;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private chartService: FhChartService, private deviceService: DeviceService, private http: HttpClient, private assetService: AssetService, private route: ActivatedRoute, private router: Router) {\r\n this.asset = null;\r\n this.asset = null;\r\n this.sensors = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n // this.showOnMap(device);\r\n });\r\n\r\n this.assetService.getAssetByDeviceId(id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loading = false;\r\n });\r\n });\r\n\r\n this.initMap();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n clearTimeout(this.timeoutHandler);\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n showOnMap(asset): void {\r\n\r\n if (this.marker) {\r\n this.map.removeLayer(this.marker);\r\n }\r\n\r\n this.marker = marker([asset.lastPosition.latitude, asset.lastPosition.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.map.addLayer(this.marker);\r\n this.map.flyTo([asset.lastPosition.latitude, asset.lastPosition.longitude], 10);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.asset' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n {{'general.noAssetLinked' | translate }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.asset' | translate }}
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.map' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\n\r\n@Component({\r\n selector: 'fh-device-calculation-settings',\r\n templateUrl: 'deviceCalculationSettings.template.html'\r\n})\r\nexport class DeviceCalculationSettingsViewComponent implements OnInit {\r\n sub;\r\n device: Device;\r\n\r\n constructor(private http: HttpClient, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.device = new Device;\r\n this.device.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.calculationsettings' | translate }}\r\n
  8. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, AfterViewInit, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { Chart } from 'angular-highcharts';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap';\r\nimport { ScheduleService } from 'app/services/schedule/schedule.service';\r\nimport { Schedule } from 'app/models/schedule.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { IssueTypeService } from '../../services/issuetypes/issuetypes.service';\r\nimport { ColorService } from '../../services/common/color.service';\r\nimport { IssueType } from '../../models/issuetype.model';\r\n\r\nimport { TagObjectType } from 'app/models/tag.model';\r\n\r\n// Timezone\r\nimport * as moment from 'moment-timezone';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-device-details',\r\n templateUrl: 'deviceDetails.template.html',\r\n providers: [FhChartService],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DeviceDetailsViewComponent implements OnInit {\r\n\r\n tagType = TagObjectType.Device.valueOf();\r\n chartColumnRangeEnabled: boolean;\r\n theIssueTypesObservable: Observable;\r\n issuesByDevice: Observable;\r\n loadingIssues: boolean;\r\n chartColumnRange: Chart;\r\n yesterday: number;\r\n dayAfterYesterday: number;\r\n oneWeek: number;\r\n twoWeeks: number;\r\n oneMonth: number;\r\n twoMonths: number;\r\n endYesterday: number;\r\n startYesterday: number;\r\n issuesLastMonthCount = 0;\r\n issuesLastMonthCountOld = 0;\r\n issuesLastMonthCountPercentage = 0;\r\n issuesLastWeekCount = 0;\r\n issuesLastWeekCountOld = 0;\r\n issuesLastWeekCountPercentage = 0;\r\n locationsLastMonthCount = 0;\r\n locationsLastMonthCountOld = 0;\r\n locationsLastMonthCountPercentage = 0;\r\n locationsLastWeekCount = 0;\r\n locationsLastWeekCountOld = 0;\r\n locationsLastWeekCountPercentage = 0;\r\n\r\n defaultMap: any;\r\n chartLocationCount: Chart;\r\n chartDistanceCount: Chart;\r\n chartIssueCount: Chart;\r\n\r\n progress = [];\r\n hasAdvice: any;\r\n hasSchedule: any;\r\n hasNotes: any;\r\n renderDateTime: number;\r\n insertAdviseSchedule: boolean;\r\n deviceType: any;\r\n\r\n note: string;\r\n isFlagged: boolean;\r\n\r\n locationsThisMonth: number;\r\n locationsLastWeek: number;\r\n issuesThisMonth: number;\r\n issuesThisWeek: number;\r\n\r\n sub: Subscription;\r\n loading = false;\r\n loadingNote = false;\r\n loadingFlagged = false;\r\n loadingIssueCount = false;\r\n loadingLocationCount = false;\r\n device: Device;\r\n options;\r\n layersControl;\r\n map: Map;\r\n nearbyDevices;\r\n marker;\r\n\r\n chartLocationType;\r\n permissions: {};\r\n\r\n formMode = FormMode.read;\r\n error: any;\r\n success: { statusText: string; success: string; };\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private authenticationService: AuthenticationService,\r\n private cd: ChangeDetectorRef,\r\n private colors: ColorService,\r\n private issueTypeService: IssueTypeService,\r\n private chartService: FhChartService,\r\n private scheduleService: ScheduleService,\r\n private toastr: ToastrService,\r\n private http: HttpClient,\r\n private deviceTypeService: DeviceTypeService,\r\n private deviceService: DeviceService,\r\n private issueService: IssueService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authentication: AuthenticationService,\r\n private translateService: TranslateService) {\r\n\r\n this.device = null;\r\n\r\n this.progress[0] = 0;\r\n this.progress[1] = 0;\r\n this.progress[2] = 0;\r\n this.progress[3] = 0;\r\n this.progress[4] = 0;\r\n this.progress[5] = 0;\r\n\r\n this.initMap();\r\n }\r\n\r\n checkPositive(theNumber) {\r\n if (theNumber === Infinity) {\r\n return '^ ';\r\n }\r\n if (theNumber > 0) {\r\n return '+' + theNumber + '%';\r\n } else {\r\n return theNumber.toString() + '%';\r\n }\r\n }\r\n\r\n setDeviceDetails(device: Device): any {\r\n if (device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n } else {\r\n\r\n const theData = [{\r\n name: 'Location type',\r\n innerSize: '50%',\r\n data: [{\r\n name: 'Ignition off',\r\n y: 61.41,\r\n sliced: false,\r\n selected: false\r\n }, {\r\n name: 'Ignition on',\r\n y: 11.84\r\n }, {\r\n name: 'Events',\r\n y: 10.85\r\n }]\r\n }];\r\n\r\n this.chartLocationType = this.chartService.generateDonutChart(theData, '');\r\n\r\n // End mockcharts\r\n\r\n this.device = device;\r\n this.loadingNote = false;\r\n // https://github.com/Asymmetrik/ngx-leaflet\r\n\r\n\r\n setTimeout(() => {\r\n if (this.device && this.device.lastPosition) {\r\n\r\n if (this.marker) {\r\n this.map.removeLayer(this.marker);\r\n }\r\n\r\n this.marker = marker([this.device.lastPosition.latitude, this.device.lastPosition.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.map.addLayer(this.marker);\r\n this.map.flyTo([this.device.lastPosition.latitude, this.device.lastPosition.longitude], 10);\r\n }\r\n }, 100);\r\n\r\n console.log('getting locations by device');\r\n\r\n const locationsEnd = moment().add(-1, 'day').toDate().getTime();\r\n const locationsStart = moment().add(-1, 'month').toDate().getTime();\r\n\r\n this.deviceService.getLocationCount(this.device.id, locationsStart, locationsEnd).subscribe(result => {\r\n this.generateLocationCount(result);\r\n this.generateDistanceCount(result);\r\n this.loadingLocationCount = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.theIssueTypesObservable = this.issueTypeService.getIssueTypes(true);\r\n\r\n this.deviceService.getIssueCount(this.device.id, locationsStart, locationsEnd).subscribe(result => {\r\n this.theIssueTypesObservable.subscribe((response) => {\r\n const issueTypes = {};\r\n response.forEach(issueType => {\r\n issueTypes[issueType.id] = issueType.name\r\n });\r\n\r\n this.generateIssueCount(result, issueTypes);\r\n this.loadingIssueCount = false;\r\n this.cd.markForCheck();\r\n\r\n this.issuesByDevice = this.issueService.getIssuesByDevice(this.device.id, locationsStart, locationsEnd);\r\n\r\n forkJoin([this.theIssueTypesObservable, this.issuesByDevice])\r\n .subscribe((res) => {\r\n this.generateColumnRangeChart(res[0], res[1], this.translateService);\r\n this.loadingIssues = false;\r\n this.cd.markForCheck();\r\n });\r\n });\r\n });\r\n\r\n console.log('getting issues by device');\r\n this.deviceService.getDashboardById(this.device.id).subscribe(result => {\r\n\r\n this.yesterday = moment().add(-1, 'days').toDate().getTime();\r\n this.dayAfterYesterday = moment().add(-2, 'days').toDate().getTime();\r\n this.oneWeek = moment().add(-8, 'days').toDate().getTime();\r\n this.twoWeeks = moment().add(-15, 'days').toDate().getTime();\r\n this.oneMonth = moment().add(-31, 'days').toDate().getTime();\r\n this.twoMonths = moment().add(-62, 'days').toDate().getTime();\r\n\r\n this.issuesLastMonthCount = result.issuesLastMonthCount;\r\n this.issuesLastMonthCountOld = result.issuesLastMonthCountOld;\r\n this.issuesLastMonthCountPercentage = this.issuesLastMonthCount > 0 ? Math.round(((this.issuesLastMonthCount / this.issuesLastMonthCountOld) - 1) * 100) : 0;\r\n this.issuesLastWeekCount = result.issuesLastWeekCount;\r\n this.issuesLastWeekCountOld = result.issuesLastWeekCountOld;\r\n this.issuesLastWeekCountPercentage = this.issuesLastWeekCount > 0 ? Math.round(((this.issuesLastWeekCount / this.issuesLastWeekCountOld) - 1) * 100) : 0;\r\n this.locationsLastMonthCount = result.locationsLastMonthCount;\r\n this.locationsLastMonthCountOld = result.locationsLastMonthCountOld;\r\n this.locationsLastMonthCountPercentage = this.locationsLastMonthCount > 0 ? Math.round(((this.locationsLastMonthCount / this.locationsLastMonthCountOld) - 1) * 100) : 0;\r\n this.locationsLastWeekCount = result.locationsLastWeekCount;\r\n this.locationsLastWeekCountOld = result.locationsLastWeekCountOld;\r\n this.locationsLastWeekCountPercentage = this.locationsLastWeekCount > 0 ? Math.round(((this.locationsLastWeekCount / this.locationsLastWeekCountOld) - 1) * 100) : 0;\r\n this.locationsLastWeekCount = result.locationsLastWeekCount;\r\n this.locationsLastWeekCountOld = result.locationsLastWeekCountOld;\r\n this.locationsLastWeekCountPercentage = this.locationsLastWeekCount > 0 ? Math.round(((this.locationsLastWeekCount / this.locationsLastWeekCountOld) - 1) * 100) : 0;\r\n\r\n // this.generateIssuePerIssueTypeCharts(issues);\r\n\r\n // Begin mockcharts\r\n this.progress[0] = 43;\r\n this.progress[1] = 37;\r\n this.progress[2] = 56;\r\n this.progress[3] = 15;\r\n this.progress[4] = 11;\r\n this.progress[5] = 8;\r\n\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n generateLocationCount(result) {\r\n\r\n const series1 = [];\r\n const series2 = [];\r\n\r\n // tslint:disable-next-line:forin\r\n result.forEach(value => {\r\n series1.push([value[0], value[1]]);\r\n series2.push([value[0], value[2]]);\r\n });\r\n\r\n const theData = [{\r\n name: 'Messages',\r\n data: series1,\r\n type: 'areaspline',\r\n yAxis: 0,\r\n }];\r\n\r\n const yAxis = [{\r\n title: {\r\n text: 'Messages'\r\n }\r\n }];\r\n\r\n this.chartLocationCount = this.chartService.generateSplineArea(theData, yAxis, null, null, 'Messages');\r\n }\r\n\r\n generateDistanceCount(result) {\r\n\r\n const series1 = [];\r\n const series2 = [];\r\n\r\n // tslint:disable-next-line:forin\r\n result.forEach(value => {\r\n series1.push([value[0], value[1]]);\r\n series2.push([value[0], value[2]]);\r\n });\r\n\r\n const theData = [{\r\n name: 'Distance',\r\n data: series2,\r\n type: 'areaspline',\r\n yAxis: 0,\r\n }];\r\n\r\n const yAxis = [{\r\n title: {\r\n text: 'Distance in km',\r\n }\r\n }];\r\n\r\n this.chartDistanceCount = this.chartService.generateSplineArea(theData, yAxis, null, null, 'Distance');\r\n }\r\n\r\n\r\n generateIssueCount(result, issueTypes) {\r\n const theData = [{\r\n name: 'IssueCount',\r\n data: result.issueCount\r\n }];\r\n\r\n const yAxis = [{\r\n title: {\r\n text: 'Issues'\r\n }\r\n }];\r\n\r\n this.chartIssueCount = this.chartService.generateSplineArea(theData, yAxis, result.issueTypes ? result.issueTypes : null, issueTypes, 'Issues');\r\n // console.log(this.chartIssueCount.ref);\r\n // this.chartIssueCount.options.tooltip.refresh([chart.series[0].points[i]]);\r\n }\r\n\r\n showDeletedNotification(event: Device) {\r\n this.toastr.error('Device ' + event.name, 'Deleted', {\r\n progressBar: true\r\n });\r\n }\r\n\r\n updateSchedule(event) {\r\n // Update the schedule\r\n console.log('Update the schedule');\r\n this.renderDateTime = new Date().getTime();\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loading = true;\r\n this.loadingNote = true;\r\n this.loadingLocationCount = true;\r\n this.loadingIssueCount = true;\r\n this.loadingIssues = true;\r\n this.device = new Device;\r\n this.device.id = '';\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n const deviceFromService = this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.setDeviceDetails(device);\r\n this.cd.markForCheck();\r\n });\r\n });\r\n }\r\n\r\n saveNote() {\r\n console.log('Adding note');\r\n\r\n this.loadingNote = true;\r\n\r\n this.deviceService.saveNote(this.device).subscribe(result => {\r\n this.loadingNote = false;\r\n this.cd.markForCheck();\r\n }, error => {\r\n this.loadingNote = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n\r\n saveFlagged() {\r\n console.log('Adding flagged');\r\n\r\n this.loadingNote = true;\r\n\r\n this.deviceService.saveFlagged(this.device).subscribe(result => {\r\n console.log(result);\r\n this.loadingFlagged = false;\r\n this.cd.markForCheck();\r\n }, error => {\r\n this.loadingFlagged = false;\r\n console.log(error);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n sortByDate(array) {\r\n if (!array || array === undefined || array.length === 0) { return null; }\r\n\r\n array.sort((a: any, b: any) => {\r\n if (a.date < b.date) {\r\n return -1;\r\n } else if (a.date > b.date) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n return array;\r\n }\r\n\r\n\r\n\r\n generateColumnRangeChart(issueTypes, issues: Issue[], translateService: TranslateService) {\r\n\r\n function increase_brightness(hex, percent) {\r\n // strip the leading # if it's there\r\n hex = hex.replace(/^\\s*#|\\s*$/g, '');\r\n\r\n // convert 3 char codes --> 6, e.g. `E0F` --> `EE00FF`\r\n if (hex.length === 3) {\r\n hex = hex.replace(/(.)/g, '$1$1');\r\n }\r\n\r\n const r = parseInt(hex.substr(0, 2), 16),\r\n g = parseInt(hex.substr(2, 2), 16),\r\n b = parseInt(hex.substr(4, 2), 16);\r\n\r\n /* tslint:disable */\r\n return '#' +\r\n ((0 | (1 << 8) + r + (256 - r) * percent / 100).toString(16)).substr(1) +\r\n ((0 | (1 << 8) + g + (256 - g) * percent / 100).toString(16)).substr(1) +\r\n ((0 | (1 << 8) + b + (256 - b) * percent / 100).toString(16)).substr(1);\r\n /* tslint:enable */\r\n }\r\n\r\n const theData = [{\r\n data: []\r\n }];\r\n\r\n const xAxis = [];\r\n\r\n const sensorNameToSeriesIndex: { [sensorName: string]: number; } = {};\r\n let sensorIndex = 1;\r\n issues.forEach(issue => {\r\n\r\n const issueType = issueTypes.find(x => x.id === issue.issueType);\r\n const issueName = issueType && issueType.name;\r\n\r\n if (xAxis.indexOf(issueName) === -1) {\r\n xAxis.push(issueName);\r\n }\r\n\r\n let chartColor = this.colors.theme.overwrite ? this.colors.theme.chartPrimary : '#D6A282';\r\n const percentage = 80 - (80 * (issue.severity / 5));\r\n\r\n chartColor = increase_brightness(chartColor, percentage);\r\n\r\n const interval = 1000 * 60 * 60 * 24; // 24 hours in milliseconds\r\n const theIssueData = {\r\n x: xAxis.indexOf(issueName),\r\n low: moment.utc(issue.issueDate).tz(this.authenticationService.getTimeZoneIana()).startOf('day').toDate().getTime(),\r\n date: moment.utc(issue.issueDate).tz(this.authenticationService.getTimeZoneIana()).toDate().getTime(),\r\n high: moment.utc(issue.issueDate).tz(this.authenticationService.getTimeZoneIana()).startOf('day').toDate().getTime() + 86400000,\r\n violationDuration: issue.violationDuration,\r\n violationLowerThreshold: issue.violationLowerThreshold,\r\n violationUpperThreshold: issue.violationUpperThreshold,\r\n color: chartColor,\r\n issueId: issue.id,\r\n severity: issue.severity,\r\n issueType: issue.issueType,\r\n sensorName: issue.sensorName\r\n };\r\n if (!issue.sensorName) {\r\n theData[0].data.push(theIssueData);\r\n } else {\r\n const existingSensorIndexValue = sensorNameToSeriesIndex[issue.sensorName];\r\n existingSensorIndexValue ? theData[existingSensorIndexValue].data.push(theIssueData)\r\n : theData.push({ data: [] });\r\n if (existingSensorIndexValue == null) {\r\n sensorNameToSeriesIndex[issue.sensorName] = sensorIndex\r\n theData[sensorIndex].data.push(theIssueData);\r\n sensorIndex++;\r\n }\r\n }\r\n });\r\n\r\n for (let index = 0; index < theData.length; index++) {\r\n const element = theData[index];\r\n if (element.data.length === 0) {\r\n theData.splice(index, 1)\r\n }\r\n }\r\n\r\n if (!theData.find(x => x.data.length !== 0)) {\r\n this.chartColumnRangeEnabled = false;\r\n this.loadingNote = false;\r\n this.cd.markForCheck();\r\n } else {\r\n this.chartColumnRangeEnabled = true;\r\n this.chartColumnRange = this.chartService.generateColumnRangeChart(theData, xAxis, this.translateService, this.chartIssueCount);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n generateIssuePerIssueTypeCharts(issues: Issue[]) {\r\n\r\n // tslint:disable-next-line:prefer-const\r\n let theData = [];\r\n const that = this;\r\n\r\n let startDate = moment().subtract(1, 'months').toDate();\r\n const endDate = new Date();\r\n\r\n while (startDate < endDate) {\r\n const newStartDate = new Date(startDate.setDate(startDate.getDate() + 1));\r\n const compareDate = new Date(startDate.setDate(startDate.getDate() - 1));\r\n // startDate = startDate.;\r\n const theIssues = issues.filter(x => x.date.getTime() >= compareDate.getTime() && x.date.getTime() <= newStartDate.getTime());\r\n\r\n theData.push([startDate.getTime(), theIssues.length]);\r\n startDate = newStartDate;\r\n }\r\n\r\n console.log('End analising chart');\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n }\r\n\r\n // Form\r\n changeFlagged(event) {\r\n this.device.isFlagged = !this.device.isFlagged;\r\n this.deviceService.saveFlagged(this.device).subscribe(result => {\r\n console.log(result);\r\n });\r\n }\r\n\r\n onDelete() {\r\n this.error = 'Deleting is not implemented';\r\n }\r\n\r\n onSave() {\r\n this.loading = true;\r\n\r\n this.deviceService.saveDevice(this.device).subscribe(result => {\r\n this.loading = false;\r\n\r\n this.error = null;\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Device is successfull updated'\r\n };\r\n\r\n this.deviceService.resetDeviceCache().subscribe(res => {\r\n console.log('Devices are cleared');\r\n console.log(res);\r\n });\r\n\r\n this.getDeviceInfo();\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n\r\n this.getDeviceInfo();\r\n }\r\n\r\n getDeviceInfo() {\r\n const deviceFromService = this.deviceService.getDeviceById(this.device.id).subscribe(device => {\r\n this.setDeviceDetails(device);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.details' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n Warning! {{device?.note}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ device?.name }}\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{'dashboard.issuecount' | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{'general.messages' | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{'general.distance' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.kpis' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n

{{\r\n locationsLastWeekCount?.toLocaleString() }}

\r\n 0, 'label-danger': locationsLastWeekCountPercentage < 0}\">\r\n {{ checkPositive(locationsLastWeekCountPercentage) }}\r\n \r\n {{'general.messages' | translate }} {{'dates.lastweek' | translate }}\r\n
\r\n \r\n

{{\r\n issuesLastWeekCount?.toLocaleString() }}

\r\n 0, 'label-danger': issuesLastWeekCountPercentage < 0}\">\r\n {{ checkPositive(issuesLastWeekCountPercentage) }}\r\n \r\n {{'general.issues' | translate }} {{'dates.lastweek' | translate }}\r\n
\r\n \r\n

{{\r\n locationsLastMonthCount?.toLocaleString() }}

\r\n 0, 'label-danger': locationsLastMonthCountPercentage < 0}\">\r\n {{ checkPositive(locationsLastMonthCountPercentage) }}\r\n \r\n {{'general.messages' | translate }} {{'dates.lastmonth' | translate }}\r\n
\r\n \r\n

{{\r\n issuesLastMonthCount?.toLocaleString() }}

\r\n 0, 'label-danger': issuesLastMonthCountPercentage < 0}\">\r\n {{ checkPositive(issuesLastMonthCountPercentage) }}\r\n \r\n {{'general.issues' | translate }} {{'dates.lastmonth' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n {{'devicedetails.issuetimeline' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.note' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'devicedetails.lastknown' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-device-fuel',\r\n templateUrl: 'deviceFuel.template.html',\r\n providers: [FhChartService]\r\n})\r\n\r\nexport class DeviceFuelViewComponent implements OnInit, OnDestroy {\r\n\r\n map: Map;\r\n options;\r\n layersControl;\r\n selectedRow: any;\r\n selected: any;\r\n theTrips = [];\r\n timeoutHandler;\r\n chartFuel: any;\r\n sensors;\r\n sub;\r\n device: Device;\r\n loading = false;\r\n loadingSensors = false;\r\n maps: any;\r\n\r\n constructor(private chartService: FhChartService, private http: HttpClient, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n this.sensors = [];\r\n this.theTrips = [];\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.initMap();\r\n\r\n function generateRandomLatLon() {\r\n return [(24.577100 + Math.random() * 1).toFixed(3), (55.019531 + Math.random() * 1).toFixed(3)];\r\n }\r\n\r\n const data1 = [[new Date('2016-10-01 10:40').getTime(), 1044.922, 96, 1, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-01 10:50').getTime(), 1044.987, 95.59999847, 2, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-03 16:47').getTime(), 1081.972, 89.59999847, 5, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-03 20:56').getTime(), 1142.389, 82, 2, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-04 21:07').getTime(), 1144.046, 79.59999847, 5, 1144.046, null, generateRandomLatLon()],\r\n [new Date('2016-10-05 00:53').getTime(), 1263.924, 64.80000305, 5, 1263.924, null, generateRandomLatLon()],\r\n [new Date('2016-10-05 08:26').getTime(), 1380.844, 57.20000076, 5, 1380.844, null, generateRandomLatLon()],\r\n [new Date('2016-10-05 09:05').getTime(), 1380.865, 57.20000076, 5, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-05 20:26').getTime(), 1381.629, 96, 5, null, 96, generateRandomLatLon()],\r\n [new Date('2016-10-05 20:35').getTime(), 1382.262, 95.59999847, 2, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-05 21:12').getTime(), 1382.787, 95.59999847, 5, 1382.787, null, generateRandomLatLon()],\r\n [new Date('2016-10-06 00:30').getTime(), 1502.462, 82.80000305, 5, 1502.462, null, generateRandomLatLon()],\r\n [new Date('2016-10-06 03:00').getTime(), 1503.226, 83.59999847, 2, 1503.226, null, generateRandomLatLon()],\r\n [new Date('2016-10-06 04:57').getTime(), 1503.336, 83.59999847, 5, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-06 07:49').getTime(), 1619.320, 74.80000305, 5, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-07 18:16').getTime(), 1620.759, 72, 2, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-07 18:34').getTime(), 1620.759, 72, 2, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-07 21:45').getTime(), 1621.308, 72, 2, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-08 02:49').getTime(), 1742.521, 59.59999847, 10, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-08 08:44').getTime(), 1857.882, 50.40000153, 10, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-08 09:09').getTime(), 1857.945, 80, 10, null, 80, generateRandomLatLon()],\r\n [new Date('2016-10-08 09:10').getTime(), 1857.945, 50, 10, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-08 11:23').getTime(), 1857.988, 49.19999695, 5, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-08 11:24').getTime(), 1857.988, 28.80000305, 4, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-09 08:10').getTime(), 2040.411, 24.80000305, 6, null, null, generateRandomLatLon()],\r\n [new Date('2016-10-09 11:25').getTime(), 2067.941, 23.80000305, 5, null, null, generateRandomLatLon()]];\r\n\r\n const data2 = [[new Date('2017-10-01 10:40').getTime(), 0.922, 96, 1],\r\n [new Date('2017-10-01 10:50').getTime(), 100.987, 95.59999847, 2],\r\n [new Date('2017-10-03 16:47').getTime(), 200.972, 89.59999847, 5],\r\n [new Date('2017-10-03 20:56').getTime(), 300.389, 82, 2],\r\n [new Date('2017-10-04 21:07').getTime(), 400.046, 79.59999847, 5],\r\n [new Date('2017-10-05 00:53').getTime(), 1263.924, 70.80000305, 5],\r\n [new Date('2017-10-05 08:26').getTime(), 1380.844, 70.20000076, 5],\r\n [new Date('2017-10-05 09:05').getTime(), 1380.865, 70.20000076, 5]];\r\n\r\n const data3 = [[new Date('2018-10-01 10:40').getTime(), 100, 96, 1],\r\n [new Date('2018-10-01 10:50').getTime(), 101.987, 95.59999847, 2],\r\n [new Date('2018-10-03 16:47').getTime(), 105.972, 89.59999847, 5],\r\n [new Date('2018-10-03 20:56').getTime(), 110.389, 82, 2],\r\n [new Date('2018-10-04 21:07').getTime(), 120.046, 79.59999847, 5],\r\n [new Date('2018-10-05 00:53').getTime(), 150.924, 70.80000305, 5],\r\n [new Date('2018-10-06 08:26').getTime(), 170.844, 70.20000076, 5],\r\n [new Date('2018-10-07 09:05').getTime(), 180.865, 70.20000076, 5]];\r\n\r\n this.theTrips = [\r\n { name: 'test', date: new Date('2016-10-01 10:40').getTime(), data: data1 },\r\n { name: 'test 2', date: new Date('2017-10-01 10:40').getTime(), data: data2 },\r\n { name: 'test 3', date: new Date('2018-10-01 10:40').getTime(), data: data3 }\r\n ];\r\n\r\n this.device = new Device;\r\n this.loading = true;\r\n this.device.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n this.device.customFields = JSON.parse(this.device.customFields);\r\n this.loading = false;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n\r\n this.selectFuelTrip(this.theTrips[0]);\r\n\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n clearTimeout(this.timeoutHandler);\r\n }\r\n\r\n selectFuelTrip(theTrip) {\r\n this.selectedRow = theTrip;\r\n this.drawGauges(theTrip.data);\r\n }\r\n\r\n drawGauges(theChartData) {\r\n // The speed gauge\r\n // data, km, fuel percentage, deviation, symbol\r\n\r\n const theChartDataDistance = [];\r\n const theChartDataLevel = [];\r\n const theChartDataRange = [];\r\n const theChartDataEvents = [];\r\n const theChartDataIgnition = [];\r\n\r\n\r\n $.each(theChartData, function (index, value) {\r\n theChartDataDistance.push({ x: value[0], y: value[1], latlon: value[6] });\r\n theChartDataLevel.push([value[0], value[2]]);\r\n theChartDataRange.push([value[0], value[2] - value[3], value[2] + value[3]]);\r\n theChartDataEvents.push([value[0], value[5]]);\r\n theChartDataIgnition.push([value[0], value[4]]);\r\n });\r\n\r\n let theData = [];\r\n\r\n theData = [{\r\n name: 'Distance',\r\n type: 'area',\r\n threshold: null,\r\n fillOpacity: 0.6,\r\n data: theChartDataDistance\r\n }, {\r\n name: 'Ignition',\r\n type: 'line',\r\n color: '#5AB867',\r\n enableMouseTracking: false,\r\n marker: {\r\n enabled: true,\r\n lineWidth: 2,\r\n symbol: 'square'\r\n },\r\n zIndex: 3,\r\n data: theChartDataIgnition\r\n }, {\r\n name: 'Fuel data event',\r\n type: 'scatter',\r\n color: '#5A3E67',\r\n yAxis: 1,\r\n zIndex: 4,\r\n marker: {\r\n enabled: true,\r\n lineWidth: 2,\r\n radius: 5,\r\n symbol: 'square'\r\n },\r\n data: theChartDataEvents\r\n }, {\r\n name: 'Fuel percentage',\r\n type: 'line',\r\n marker: {\r\n enabled: true,\r\n lineWidth: 2,\r\n },\r\n yAxis: 1,\r\n data: theChartDataLevel\r\n }, {\r\n name: 'Range',\r\n data: theChartDataRange,\r\n type: 'arearange',\r\n lineWidth: 0,\r\n linkedTo: ':previous',\r\n fillOpacity: 0.3,\r\n zIndex: 0,\r\n color: '#ccc',\r\n tooltip: false,\r\n enableMouseTracking: false,\r\n yAxis: 1,\r\n marker: {\r\n enabled: false\r\n }\r\n }];\r\n\r\n // Plotlines\r\n const filteredEvents = theChartDataEvents.filter(x => x[1] != null);\r\n\r\n const plotLines = []\r\n filteredEvents.forEach(event => {\r\n plotLines.push({\r\n color: '#ddd',\r\n dashStyle: 'dash',\r\n width: 2,\r\n value: event[0],\r\n });\r\n });\r\n\r\n this.chartFuel = this.chartService.generateFuelChart(theData, plotLines, this.map);\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.fuel' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Warning! This fuel data is fictional.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.trips' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.date' | translate }}{{'general.name' | translate }}
{{ trip.date | amDateFormat: 'll' }}{{ trip.name }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.fuel' | translate }}
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.map' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { Device } from '../../models/device.model';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getTranslatedDropdownSettings, getDefaultDpConfig, getDropdownSettings, getGridLanguages } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-device-issues',\r\n templateUrl: 'deviceIssues.template.html'\r\n})\r\nexport class DeviceIssuesViewComponent implements OnInit {\r\n deviceId = '0';\r\n token: any;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n loading: boolean;\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n issues: Issue[];\r\n deviceType: DeviceType;\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n // Grid\r\n dtOptions = {};\r\n device: Device;\r\n\r\n minDate: Date;\r\n limitHistoryInDays: number;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n dropdownIssueTypesSettings: any;\r\n issueTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n\r\n constructor(private localeService: BsLocaleService, private translatorService: TranslatorService, private authenticationService: AuthenticationService, private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private deviceTypeService: DeviceTypeService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n this.deviceId = device.id;\r\n this.dateChanged(1);\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n\r\n this.dropdownIssueTypesSettings = getDropdownSettings(true);\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownIssueTypesSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n });\r\n\r\n // Filtering\r\n const that = this;\r\n\r\n this.maxDate.setDate(this.today.getDate() - 7);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n });\r\n }\r\n\r\n dateChanged(event) {\r\n const that = this;\r\n if (event !== null) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.issueService.getPagingUrl() + '?deviceId=' + this.deviceId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000)).load();\r\n });\r\n\r\n this.fireFilter();\r\n }\r\n }\r\n\r\n fireFilter(event = null): void {\r\n\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeId:name').search(selectedIssueTypesString);\r\n\r\n } else {\r\n dtInstance.column('issueTypeId:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid() {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n order: [[1, 'desc'], [9, 'desc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.issueService.getPagingUrl() + '?deviceId=' + this.deviceId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n width: '20',\r\n orderable: false,\r\n title: '',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'issueDate',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('ll')\r\n }\r\n },\r\n {\r\n data: 'timestamp',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n },\r\n visible: false\r\n },\r\n {\r\n data: 'deviceName',\r\n title: this.translateService.instant('general.device'),\r\n width: '80',\r\n render: function (data, type, row) {\r\n return data ? data : '';\r\n }\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n width: '80',\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n },\r\n {\r\n data: 'issueType',\r\n title: this.translateService.instant('general.issue'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data, 'enums.issuetypes') : '';\r\n }\r\n },\r\n {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n }, {\r\n data: 'severity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.issueoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.issueoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, Marker } from 'leaflet';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\nimport * as L from 'leaflet';\r\n\r\n@Component({\r\n selector: 'fh-device-locations',\r\n templateUrl: 'deviceLocations.template.html',\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n // css styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('0.5s', style({ opacity: 1 }))\r\n ]),\r\n ]\r\n )\r\n ],\r\n})\r\nexport class DeviceLocationsViewComponent implements OnInit, OnDestroy {\r\n\r\n map: any;\r\n marker: Marker;\r\n options;\r\n timeoutHandler;\r\n locations: any[];\r\n sub;\r\n device: Device;\r\n layersControl;\r\n\r\n // Pagination\r\n totalItems = 0;\r\n currentPage = 1;\r\n smallnumPages = 0;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private http: HttpClient, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n this.locations = [];\r\n\r\n this.initMap();\r\n }\r\n\r\n ngOnInit() {\r\n this.device = new Device;\r\n this.device.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n });\r\n });\r\n\r\n // Fill initial\r\n this.generateRandomLocation(1);\r\n\r\n this.timeoutHandler = setInterval(() => {\r\n this.generateRandomLocation(1);\r\n this.totalItems = this.locations.length;\r\n }, 5000);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.timeoutHandler) {\r\n console.log('Distroy timeouthandler');\r\n clearInterval(this.timeoutHandler);\r\n }\r\n }\r\n\r\n generateRandomLocation(value: number) {\r\n this.totalItems = value;\r\n\r\n function getRandomColor() {\r\n const colors = ['009900', 'CC0000', 'FF8000', '606060', 'FFF', 'FFF', 'FFF'];\r\n const randomVar = Math.floor(Math.random() * (colors.length));\r\n return '#' + colors[randomVar];\r\n }\r\n\r\n for (let i = 1; i <= value; i++) {\r\n const location = this.getRandomLocation(25.2048, 55.2708, 1000000);\r\n const bgColor = getRandomColor();\r\n const iconColor = (bgColor === '#FFF' ? '#514d6a' : '#FFF')\r\n this.locations.push({ iconBackGround: bgColor, iconColor: iconColor, date: new Date(), location: location });\r\n this.drawLocation(location);\r\n }\r\n }\r\n\r\n // Map\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n drawLocation(location) {\r\n setTimeout(() => {\r\n if (location) {\r\n\r\n if (this.marker) {\r\n this.map.removeLayer(this.marker);\r\n }\r\n\r\n this.marker = marker([location.latitude, location.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.map.addLayer(this.marker);\r\n this.map.flyTo([location.latitude, location.longitude], 6);\r\n }\r\n }, 100);\r\n }\r\n\r\n getRandomLocation(latitude, longitude, radiusInMeters) {\r\n\r\n const getRandomCoordinates = function (radius, uniform) {\r\n // Generate two random numbers\r\n let a = Math.random(),\r\n b = Math.random();\r\n\r\n // Flip for more uniformity.\r\n if (uniform) {\r\n if (b < a) {\r\n const c = b;\r\n b = a;\r\n a = c;\r\n }\r\n }\r\n\r\n // It's all triangles.\r\n return [\r\n b * radius * Math.cos(2 * Math.PI * a / b),\r\n b * radius * Math.sin(2 * Math.PI * a / b)\r\n ];\r\n };\r\n\r\n const randomCoordinates = getRandomCoordinates(radiusInMeters, true);\r\n\r\n // Earths radius in meters via WGS 84 model.\r\n const earth = 6378137;\r\n\r\n // Offsets in meters.\r\n const northOffset = randomCoordinates[0],\r\n eastOffset = randomCoordinates[1];\r\n\r\n // Offset coordinates in radians.\r\n const offsetLatitude = northOffset / earth,\r\n offsetLongitude = eastOffset / (earth * Math.cos(Math.PI * (latitude / 180)));\r\n\r\n // Offset position in decimal degrees.\r\n return {\r\n latitude: latitude + (offsetLatitude * (180 / Math.PI)),\r\n longitude: longitude + (offsetLongitude * (180 / Math.PI))\r\n }\r\n }\r\n\r\n // Pagination\r\n\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n\r\n pageChanged(event: any): void {\r\n console.log('Page changed to: ' + event.page);\r\n console.log('Number items per page: ' + event.itemsPerPage);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.devicelocations' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{'menu.devicelocations' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
The selected page no: {{currentPage}}/{{smallnumPages}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{item.date}}\r\n
\r\n {{item.location.latitude}} - {{item.location.longitude}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.location' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\n\r\n@Component({\r\n selector: 'fh-device-log',\r\n templateUrl: 'deviceLog.template.html'\r\n})\r\nexport class DeviceLogViewComponent implements OnInit {\r\n deviceLog: AuditLog[];\r\n sub;\r\n device: Device;\r\n loading = false;\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n this.deviceLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.device = new Device;\r\n this.device.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n\r\n this.auditLogService.getAuditLogByDevice(id).subscribe(deviceLog => {\r\n console.log('loading done');\r\n this.deviceLog = deviceLog;\r\n this.loading = false;\r\n });\r\n\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.log' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\n\r\n@Component({\r\n selector: 'fh-device-settings',\r\n templateUrl: 'deviceSettings.template.html'\r\n})\r\nexport class DeviceSettingsViewComponent implements OnInit {\r\n sub;\r\n device: Device;\r\n\r\n constructor(private http: HttpClient, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.device = new Device;\r\n this.device.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.devicesettings' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.devicesettings' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Naam\r\n \r\n Waarde\r\n \r\n Inv\r\n
\r\n Input 1\r\n \r\n \r\n \r\n \r\n
\r\n Input 2\r\n \r\n \r\n \r\n \r\n
\r\n Input 3\r\n \r\n \r\n \r\n \r\n
\r\n Input 4\r\n \r\n \r\n \r\n \r\n
\r\n Input 5\r\n \r\n \r\n \r\n \r\n
\r\n Input 6\r\n \r\n \r\n \r\n \r\n
\r\n A1\r\n \r\n \r\n
\r\n A2\r\n \r\n \r\n
\r\n ExternalPower\r\n \r\n \r\n
\r\n Ignition\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'devicedetails.outputs' | translate }}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Naam\r\n \r\n Waarde\r\n
\r\n Output 1\r\n \r\n \r\n
\r\n Output 2\r\n \r\n \r\n
\r\n Output 3\r\n \r\n \r\n
\r\n Output 4\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'devicedetails.auxiliary' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Naam\r\n \r\n Waarde\r\n
\r\n AuxilaryAttachments\r\n \r\n \r\n
\r\n RfidReaderInverted\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { CustomerService } from './../../services/customers/customers.service';\r\nimport { Customer } from 'app/models/customer.model';\r\nimport { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, AfterViewInit, } from '@angular/core';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport * as moment from 'moment';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { trigger, transition, animate, style, state, group } from '@angular/animations'\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { Device } from 'app/models/device.model';\r\nimport { IssueTypeEnums } from '../../common/enums';\r\nimport { createSearch, getGridLanguages, getGridButtons, getDropdownSettings, getTranslatedDropdownSettings, getDefaultDpConfig, mapMultiDropdown, setTableStars, setSelection, setSelectionRows } from 'app/common/gridhelper';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { getDate } from 'date-fns';\r\nimport { DataTable360Directive } from 'app/modules/360grid';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-devices',\r\n templateUrl: 'devices.template.html',\r\n styleUrls: ['devices.template.css'],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0.5 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 1 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-in-out', style({ 'opacity': '0.5' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(-100%)' }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0.5 }),\r\n group([\r\n animate(300, style({ height: '*' })),\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('400ms ease-in-out', style({ 'opacity': '1' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(0%)' }))\r\n ])\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class DevicesViewComponent implements OnInit, OnDestroy {\r\n tableIds = [];\r\n tableIdsSelection = [];\r\n\r\n token: string;\r\n countrySelect = false;\r\n\r\n @ViewChild(DataTable360Directive)\r\n datatableElement: DataTable360Directive;\r\n dtTrigger = new Subject();\r\n gridSelction = [];\r\n showSelection = false;\r\n\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n\r\n dtOptions = {};\r\n loading = false;\r\n\r\n min: number;\r\n max: number;\r\n\r\n showOnlyFlagged = false;\r\n showOnlyActive = true;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n dropdown_CustomerName = '';\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n dropdown_CustomerNameSettings: any;\r\n selectedCustomers = [];\r\n\r\n dropdownSettingsDeviceTypes: any;\r\n selectedDeviceTypes: any[] = [];\r\n\r\n customersMultiselect: any[] = [];\r\n deviceTypesMultiselect: any[] = [];\r\n\r\n showFilter = true;\r\n\r\n constructorName = this.constructor.name;\r\n\r\n searchTerm: any;\r\n\r\n eventsSet = false;\r\n\r\n\r\n enableSelecting = true;\r\n enablePresets = true;\r\n\r\n constructor(private localeService: BsLocaleService, private route: ActivatedRoute, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private customerService: CustomerService, private authenticationService: AuthenticationService, private deviceService: DeviceService, private deviceTypeService: DeviceTypeService) {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana()\r\n\r\n // Setup dropdown boxes\r\n this.dropdownSettingsDeviceTypes = getDropdownSettings();\r\n this.dropdown_CustomerNameSettings = getDropdownSettings();\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownSettingsDeviceTypes = getTranslatedDropdownSettings(this.translateService, 'allDeviceTypes', true);\r\n this.dropdown_CustomerNameSettings = getTranslatedDropdownSettings(this.translateService, 'allCustomers', false);\r\n });\r\n\r\n // Get all the date for dropdown boxes\r\n Observable.forkJoin(\r\n this.issueTypeService.getIssueTypes(true),\r\n this.deviceTypeService.getDeviceTypes(true, false, true),\r\n this.customerService.getCustomers(true),\r\n this.translateService.get('general.date')\r\n ).subscribe(\r\n data => {\r\n this.issueTypes = data[0];\r\n this.deviceTypes = data[1];\r\n\r\n this.deviceTypesMultiselect = [];\r\n this.deviceTypes.forEach(deviceType => {\r\n this.deviceTypesMultiselect.push({ 'id': deviceType.id, 'itemName': deviceType.name, 'category': deviceType.manufacturerName });\r\n });\r\n\r\n this.customersMultiselect = mapMultiDropdown(data[2].filter(x => x.count > 0));\r\n\r\n this.languageLoaded = true;\r\n this.loading = false;\r\n\r\n this.initGrid();\r\n },\r\n err => console.error(err)\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onPresetLoaded(preset) {\r\n\r\n // this.resetSelection();\r\n\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.destroy();\r\n // Load settings\r\n localStorage.setItem('Columns_' + this.constructor.name, preset.json);\r\n // Call the dtTrigger to rerender again\r\n this.dtTrigger.next();\r\n });\r\n }\r\n\r\n // Check custom filters from grid save\r\n checkFilters() {\r\n console.log('Checking filters');\r\n // Set custom filters from grid save\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n const selectedCustomers = dtInstance.column('customerName:name').search().split(',');\r\n this.selectedCustomers = this.customersMultiselect.filter(x => selectedCustomers.indexOf(x.itemName.toString()) !== -1);\r\n\r\n const selectedDeviceTypes = dtInstance.column('deviceTypeId:name').search().split(',');\r\n this.selectedDeviceTypes = this.deviceTypesMultiselect.filter(x => selectedDeviceTypes.indexOf(x.id.toString()) !== -1);\r\n\r\n this.showOnlyFlagged = dtInstance.column('isFlagged:name').search() === 'true';\r\n this.showOnlyActive = dtInstance.column('isActive:name').search() === 'true';\r\n });\r\n\r\n // make sure all is updated\r\n // this.fireFilter(1);\r\n }\r\n\r\n // Check route to apply filters\r\n checkRoute() {\r\n // Set issuetype from get\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['IssueType'];\r\n if (issueType) {\r\n this.dropdown_IssueType = issueType;\r\n }\r\n });\r\n }\r\n\r\n // Fire custom filters to update grid and call server again\r\n fireFilter(event): void {\r\n if (event != null) {\r\n console.log('Fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n if (this.selectedDeviceTypes !== []) {\r\n const selectedDeviceTypesString = this.selectedDeviceTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('deviceTypeId:name').search(selectedDeviceTypesString);\r\n } else {\r\n dtInstance.column('deviceTypeId:name').search('');\r\n }\r\n\r\n // Search for the customer\r\n if (this.selectedCustomers !== []) {\r\n const selectedCustomersString = this.selectedCustomers.map((i) => i.itemName, []).join(',');\r\n dtInstance.column('customerName:name').search(selectedCustomersString);\r\n } else {\r\n dtInstance.column('customerName:name').search('');\r\n }\r\n\r\n if (this.showOnlyFlagged === true) {\r\n dtInstance.column('isFlagged:name').search('true');\r\n } else {\r\n dtInstance.column('isFlagged:name').search('');\r\n }\r\n\r\n if (this.showOnlyActive === true) {\r\n dtInstance.column('isActive:name').search('true');\r\n } else {\r\n dtInstance.column('isActive:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n }\r\n\r\n // Clean the datatrigger\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'device_overview', this.translateService.instant('menu.deviceoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 2000,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 2 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n if (columnSettings && columnSettings.time) {\r\n columnSettings.time = (new Date()).getTime();\r\n }\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[2, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.deviceService.getPagingUrl(),\r\n data: (d) => {\r\n return d;\r\n },\r\n dataSrc: function (json) {\r\n // if selection and returning keys\r\n if (that.tableIdsSelection && that.tableIdsSelection.length === 0) {\r\n console.log('Set keys tableIdsSelection');\r\n that.tableIdsSelection = json.keys;\r\n }\r\n return json.data;\r\n },\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.checkRoute();\r\n that.checkFilters();\r\n that.setEvents();\r\n that.drawFilterRow();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id', 'deviceTypeId']\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'unitId',\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n visible: true\r\n },\r\n {\r\n name: 'lastCommunication',\r\n data: 'lastCommunication',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n },\r\n {\r\n name: 'note',\r\n data: 'note',\r\n title: this.translateService.instant('general.note'),\r\n visible: false\r\n },\r\n {\r\n name: 'deviceTypeId',\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n visible: false\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n visible: false\r\n },\r\n {\r\n name: 'deviceTypeName',\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype')\r\n },\r\n {\r\n name: 'manufactorerName',\r\n data: 'manufactorerName',\r\n title: this.translateService.instant('general.manufacturer'),\r\n visible: false\r\n },\r\n {\r\n name: 'customerName',\r\n data: 'customerName',\r\n title: this.translateService.instant('general.customer')\r\n },\r\n {\r\n name: 'isFlagged',\r\n data: 'isFlagged',\r\n title: this.translateService.instant('general.isFlagged'),\r\n visible: true,\r\n width: '40',\r\n responsivePriority: 1,\r\n render: function (data, type, row) {\r\n if (!that.tableIds) {\r\n that.tableIds = [];\r\n }\r\n if (that.tableIds.indexOf(row.id) === -1) {\r\n that.tableIds.push(row.id);\r\n }\r\n return '';\r\n }\r\n },\r\n {\r\n name: 'isActive',\r\n data: 'isActive',\r\n title: this.translateService.instant('general.isActive'),\r\n visible: true,\r\n width: '40',\r\n render: function (data, type, row) {\r\n return data === true ? '' : '';\r\n }\r\n },\r\n {\r\n name: 'firmware',\r\n data: 'firmware',\r\n title: this.translateService.instant('general.firmware')\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n drawCallback: (data) => {\r\n setTableStars(that);\r\n setSelection(that);\r\n },\r\n rowCallback: (row, data) => {\r\n setSelectionRows(that, row, data, that.gridSelction);\r\n }\r\n };\r\n }\r\n\r\n // Set events for datatable to listen on\r\n setEvents() {\r\n const that = this;\r\n if (this.eventsSet === false) {\r\n this.eventsSet = true;\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.on('search.dt', function () {\r\n // that.resetSelection();\r\n });\r\n\r\n dtInstance.on('column-reorder', function (event) {\r\n // that.drawFilterRow();\r\n });\r\n\r\n dtInstance.on('draw.dt', function () {\r\n // console.log('Table redrawn');\r\n });\r\n });\r\n }\r\n }\r\n\r\n // Create dynamic filters\r\n drawFilterRow(): void {\r\n const dynamicFilterContainer = $('#dynamicFilters');\r\n const excludingColumns = [this.translateService.instant('general.isFlagged'), this.translateService.instant('general.isActive'), this.translateService.instant('general.customer'), this.translateService.instant('general.devicetype')];\r\n\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n createSearch(dtInstance, dynamicFilterContainer, excludingColumns);\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n // Change flag for device\r\n changeFlag(id: string, isFlagged: boolean): void {\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n device.isFlagged = isFlagged;\r\n this.deviceService.saveFlagged(device).subscribe(() => { });\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"selectedDeviceTypes = []; fireFilter(1);\"> \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"selectedCustomers = []; fireFilter(1);\"> \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{'general.devices' | translate }}
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\ndeclare var HeatmapOverlay;\r\n\r\nclass Person {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nclass DataTablesResponse {\r\n data: any[];\r\n draw: number;\r\n recordsFiltered: number;\r\n recordsTotal: number;\r\n}\r\n\r\n@Component({\r\n selector: 'fh-devices-map',\r\n templateUrl: 'devicesMap.template.html'\r\n})\r\nexport class DevicesMapViewComponent implements OnInit {\r\n markers: any;\r\n defaultMap: any;\r\n map: Map;\r\n options;\r\n layersControl;\r\n devices: Device[];\r\n\r\n mapData = {\r\n data: []\r\n };\r\n\r\n heatmapLayer = new HeatmapOverlay({\r\n radius: 15,\r\n maxOpacity: 0.8,\r\n scaleRadius: false,\r\n useLocalExtrema: false,\r\n latField: 'lat',\r\n lngField: 'lng',\r\n valueField: 'count'\r\n });\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private deviceService: DeviceService) {\r\n this.initMap();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {\r\n 'Heatmap': this.heatmapLayer,\r\n 'Markers': this.markers\r\n };\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n getDevices() {\r\n this.deviceService.getDevices().subscribe(devices => {\r\n this.devices = devices;\r\n this.devices.forEach(device => {\r\n if (device.lastPosition && device.lastPosition.latitude !== 0) {\r\n\r\n this.mapData.data.push({\r\n lat: device.lastPosition.latitude,\r\n lng: device.lastPosition.longitude,\r\n count: 1\r\n });\r\n\r\n const theMarker = marker([device.lastPosition.latitude, device.lastPosition.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n }).bindPopup(device.name);\r\n\r\n this.markers.addLayer(theMarker);\r\n }\r\n });\r\n\r\n this.heatmapLayer.setData(this.mapData);\r\n\r\n const bounds = this.markers.getBounds();\r\n if (bounds.isValid()) {\r\n this.map.fitBounds(bounds);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'general.map' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, NgZone } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, TileLayer } from 'leaflet';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { MapService } from '../../services/common/map.service';\r\nimport * as L from 'leaflet';\r\nimport '../../../../node_modules/leaflet-easybutton/src/easy-button.js';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Component({\r\n selector: 'fh-devices-map2',\r\n templateUrl: 'devicesMap2.template.html',\r\n styleUrls: ['devicesMap2.template.css'],\r\n providers: [MapService],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })),\r\n state('out', style({\r\n transform: 'translate3d(calc(100% - 20px), 0, 0)'\r\n })),\r\n transition('in => out', animate('400ms ease-in-out')),\r\n transition('out => in', animate('400ms ease-in-out'))\r\n ]),\r\n ]\r\n})\r\nexport class DevicesMap2ViewComponent implements OnInit {\r\n\r\n leafletView: any;\r\n selectedDevice: Device;\r\n deviceId: string;\r\n loadingSidebar = false;\r\n googleMaps: TileLayer;\r\n googleHybrid: TileLayer;\r\n loading = false;\r\n markers: any;\r\n streets: any;\r\n osm: any;\r\n cities: any;\r\n map: Map;\r\n options;\r\n devices: Device[];\r\n menuState = 'out';\r\n\r\n mapData = {\r\n data: []\r\n };\r\n\r\n heatmapLayer = new HeatmapOverlay({\r\n radius: 15,\r\n maxOpacity: 0.8,\r\n scaleRadius: false,\r\n useLocalExtrema: false,\r\n latField: 'lat',\r\n lngField: 'lng',\r\n valueField: 'count'\r\n });\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private theMapService: MapService, private zone: NgZone, private http: HttpClient, private deviceService: DeviceService) {\r\n this.initMap();\r\n }\r\n\r\n toggleMenu() {\r\n // 1-line if statement that toggles the value:\r\n this.menuState = this.menuState === 'out' ? 'in' : 'out';\r\n }\r\n\r\n selectDevice(deviceId: string): any {\r\n this.loadingSidebar = true;\r\n const that = this;\r\n\r\n this.deviceService.getDeviceById(deviceId).subscribe(\r\n device => {\r\n this.selectedDevice = device;\r\n that.loadingSidebar = false;\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n\r\n this.markers = L.featureGroup();\r\n this.leafletView = new PruneClusterForLeaflet();\r\n\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n initMaps.push(this.markers);\r\n initMaps.push(this.leafletView);\r\n this.options = createMapOptions(L, initMaps);\r\n\r\n const that = this;\r\n\r\n this.loading = true;\r\n setTimeout(function () {\r\n that.setPruneCluster(); // Marker clluster version\r\n that.fillDevices();\r\n this.loading = false;\r\n }, 100);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n const that = this;\r\n\r\n const overlayMaps = {\r\n 'Heatmap': this.heatmapLayer,\r\n 'Markers': this.markers\r\n };\r\n\r\n this.map.on('click', () => {\r\n this.zone.run(() => {\r\n this.menuState = 'out';\r\n });\r\n });\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n // Easybuttona\r\n\r\n L.easyButton({\r\n id: 'fit map button',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-expand-arrows-alt',\r\n title: 'Fit map',\r\n onClick: function (control) {\r\n that.centerMap();\r\n }\r\n }]\r\n }).addTo(this.map);\r\n\r\n const heatmapToggle = L.easyButton({\r\n id: 'animated-heatmap-toggle',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-map',\r\n title: 'Show heatmap',\r\n onClick: function (control) {\r\n that.map.addLayer(that.heatmapLayer);\r\n control.state('remove-markers');\r\n }\r\n }, {\r\n stateName: 'remove-markers',\r\n title: 'Remove heatmap',\r\n icon: 'fa-undo',\r\n onClick: function (control) {\r\n that.map.removeLayer(that.heatmapLayer);\r\n control.state('add-markers');\r\n }\r\n }]\r\n });\r\n heatmapToggle.addTo(this.map);\r\n\r\n const animatedToggle = L.easyButton({\r\n id: 'animated-marker-toggle',\r\n states: [{\r\n stateName: 'remove-markers',\r\n title: 'Remove markers',\r\n icon: 'fa-undo',\r\n onClick: function (control) {\r\n that.map.removeLayer(that.leafletView);\r\n control.state('add-markers');\r\n }\r\n }, {\r\n stateName: 'add-markers',\r\n icon: 'fa-map-marker',\r\n title: 'Show markers',\r\n onClick: function (control) {\r\n that.map.addLayer(that.leafletView);\r\n control.state('remove-markers');\r\n }\r\n }]\r\n });\r\n animatedToggle.addTo(this.map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n\r\n setPruneCluster() {\r\n\r\n const that = this;\r\n this.theMapService.setPruneCluster(this.leafletView);\r\n\r\n this.leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n\r\n theMarker.on('click', () => {\r\n that.zone.run(() => {\r\n that.menuState = 'in';\r\n that.selectDevice(data.device.id);\r\n });\r\n\r\n });\r\n };\r\n\r\n this.leafletView.BuildLeafletClusterIcon = function (cluster) {\r\n const e = new L.Icon['MarkerCluster']({ className: cluster.hasAlert ? 'prunecluster leaflet-markercluster-icon leaflet-marker-pulse' : 'prunecluster leaflet-markercluster-icon' });\r\n e.stats = cluster.stats;\r\n e.population = cluster.population;\r\n\r\n return e;\r\n };\r\n\r\n const colors = ['#676767', '#008E43', '#971C24', '#EE9234', '#206EB4', '#000000', '#FFE99B'],\r\n pi2 = Math.PI * 2;\r\n\r\n L.Icon['MarkerCluster'] = L.Icon.extend({\r\n options: {\r\n iconSize: new L.Point(44, 44),\r\n className: 'prunecluster leaflet-markercluster-icon'\r\n },\r\n\r\n createIcon: function () {\r\n // based on L.Icon.Canvas from shramov/leaflet-plugins (BSD licence)\r\n const e = document.createElement('canvas');\r\n this._setIconStyles(e, 'icon');\r\n const s = this.options.iconSize;\r\n e.width = s.x;\r\n e.height = s.y;\r\n this.draw(e.getContext('2d'), s.x, s.y);\r\n return e;\r\n },\r\n\r\n createShadow: function () {\r\n return null;\r\n },\r\n\r\n draw: function (canvas, width, height) {\r\n\r\n const lol = 0;\r\n\r\n let start = 0;\r\n for (let i = 0, l = colors.length; i < l; ++i) {\r\n\r\n const size = this.stats[i] / this.population;\r\n\r\n\r\n if (size > 0) {\r\n canvas.beginPath();\r\n canvas.moveTo(22, 22);\r\n canvas.fillStyle = colors[i];\r\n let from = start + 0.14;\r\n const to = start + size * pi2;\r\n\r\n if (to < from) {\r\n from = start;\r\n }\r\n canvas.arc(22, 22, 22, from, to);\r\n\r\n start = start + size * pi2;\r\n canvas.lineTo(22, 22);\r\n canvas.fill();\r\n canvas.closePath();\r\n }\r\n }\r\n\r\n canvas.beginPath();\r\n canvas.fillStyle = 'white';\r\n canvas.arc(22, 22, 18, 0, Math.PI * 2);\r\n canvas.fill();\r\n canvas.closePath();\r\n\r\n canvas.fillStyle = '#555';\r\n canvas.textAlign = 'center';\r\n canvas.textBaseline = 'middle';\r\n canvas.font = 'bold 12px sans-serif';\r\n\r\n canvas.fillText(this.population, 22, 22, 40);\r\n }\r\n });\r\n }\r\n\r\n fillDevices() {\r\n const that = this;\r\n const markers = [];\r\n let size = 0;\r\n\r\n this.deviceService.getDevices().subscribe(devices => {\r\n this.devices = devices;\r\n this.devices.forEach(device => {\r\n if (device.lastPosition && Math.abs(device.lastPosition.latitude) > 0.1) {\r\n\r\n // Prune cluster\r\n\r\n const theMarker = new PruneCluster.Marker(device.lastPosition.latitude, device.lastPosition.longitude, { title: device.name });\r\n\r\n theMarker.category = Math.ceil(Math.random() * 6).toString();\r\n theMarker.data.popup = device.name;\r\n theMarker.data.device = device;\r\n\r\n markers.push(theMarker);\r\n size = size + 1;\r\n this.leafletView.RegisterMarker(theMarker);\r\n\r\n // Heatmap\r\n this.mapData.data.push({\r\n lat: device.lastPosition.latitude,\r\n lng: device.lastPosition.longitude,\r\n count: 1\r\n });\r\n }\r\n });\r\n\r\n this.heatmapLayer.setData(this.mapData);\r\n this.loading = false;\r\n\r\n this.centerMap();\r\n\r\n });\r\n }\r\n\r\n centerMap() {\r\n const bounds = this.leafletView.Cluster.ComputeGlobalBounds();\r\n if (bounds) {\r\n this.map.fitBounds(new L.LatLngBounds(new L.LatLng(bounds.minLat, bounds.maxLng), new L.LatLng(bounds.maxLat, bounds.minLng)), { padding: [50, 50] });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ selectedDevice?.name }}\r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n {{ selectedDevice?.createdDate | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.lastCommunication' | translate}}\r\n \r\n {{ selectedDevice?.lastCommunication | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.modelId' | translate}}\r\n \r\n {{ selectedDevice?.modelName\r\n }}\r\n
\r\n {{ 'general.phone' | translate}}\r\n \r\n {{ selectedDevice?.phone }}\r\n
\r\n {{ 'general.referenceId' | translate}}\r\n \r\n {{ selectedDevice?.referenceId }}\r\n
\r\n {{ 'general.unitId' | translate}}\r\n \r\n {{ selectedDevice?.unitId }}\r\n
\r\n {{ 'general.customer' | translate}}\r\n \r\n {{ selectedDevice?.customerName }}\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\nimport { DeviceSensorType } from 'app/models/sensor.model';\r\nimport { TranslatorService } from 'app/services/common/translator.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'fh-device-sensors',\r\n templateUrl: 'sensorDetails.template.html',\r\n providers: [FhChartService]\r\n})\r\n\r\nexport class DeviceSensorsViewComponent implements OnInit, OnDestroy {\r\n\r\n timeoutHandler;\r\n chartRpm: any;\r\n chartSpeed: any;\r\n sensors;\r\n sub;\r\n device: Device;\r\n loading = false;\r\n loadingSensors = false;\r\n sensorTypes: DeviceSensorType[];\r\n\r\n constructor(private chartService: FhChartService, private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n this.sensors = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.device = new Device;\r\n this.loading = true;\r\n this.device.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n console.log(this.device.customFields);\r\n this.device.customFields = JSON.stringify(this.device.customFields);\r\n this.sensors = this.device.sensors;\r\n\r\n this.sensors.forEach(sensor => {\r\n sensor.deviceSensorType = this.translateService.instant('enums.sensorTypes.' + sensor.deviceSensorTypeId);\r\n });\r\n\r\n this.loading = false;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n clearTimeout(this.timeoutHandler);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.sensors' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.sensors' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate }}\r\n \r\n {{'general.param' | translate }}\r\n \r\n {{'general.uoM' | translate }}\r\n \r\n {{'general.sensorType' | translate }}\r\n
{{sensor.name}}{{sensor.parameter}}{{sensor.metrics}}{{sensor.deviceSensorType}}
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, Marker } from 'leaflet';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { TripService } from '../../services/trip/trip.service';\r\nimport * as L from 'leaflet';\r\nimport { createMapOptions, getMapProviders } from 'app/common/leafletGlobals';\r\n\r\n@Component({\r\n selector: 'fh-device-trips',\r\n templateUrl: 'trips.template.html',\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n // css styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('0.5s', style({ opacity: 1 }))\r\n ]),\r\n ]\r\n )\r\n ],\r\n})\r\nexport class DeviceTripsViewComponent implements OnInit, OnDestroy {\r\n loading: boolean;\r\n tripPolyLine;\r\n selectedTrip: any;\r\n osm: L.TileLayer;\r\n googleMaps: L.TileLayer;\r\n googleHybrid: L.TileLayer;\r\n leafletView: any;\r\n heatmapLayer: any;\r\n markers: any;\r\n zone: any;\r\n menuState: string;\r\n map: any;\r\n marker: Marker;\r\n options;\r\n timeoutHandler;\r\n trips: any[];\r\n sub;\r\n device: Device;\r\n layersControl;\r\n\r\n // Pagination\r\n totalItems = 0;\r\n currentPage = 1;\r\n smallnumPages = 0;\r\n maps: {\r\n 'mapTiler': any; // css styles at start of transition\r\n // css styles at start of transition\r\n 'Google': any; 'Hybrid': any;\r\n };\r\n\r\n constructor(private tripService: TripService, private http: HttpClient, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.device = null;\r\n this.trips = [];\r\n\r\n this.initMap();\r\n }\r\n\r\n generateTrips(id) {\r\n this.tripService.getTripsForDevice(id, 0, 0).subscribe(trips => {\r\n this.trips = trips;\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.device = new Device;\r\n this.device.id = ''\r\n this.loading = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.generateTrips(id);\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n this.device = device;\r\n\r\n if (this.device == null) {\r\n this.router.navigate(['/Devices/Overview'])\r\n }\r\n\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.timeoutHandler) {\r\n console.log('Distroy timeouthandler');\r\n clearInterval(this.timeoutHandler);\r\n }\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n this.options = createMapOptions(L, this.maps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n const that = this;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.on('click', () => {\r\n this.zone.run(() => {\r\n this.menuState = 'out';\r\n });\r\n });\r\n\r\n // Easybutton\r\n\r\n L.easyButton({\r\n id: 'fit map button',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-expand-arrows-alt',\r\n title: 'Fit map',\r\n onClick: function (control) {\r\n that.centerMap();\r\n }\r\n }]\r\n }).addTo(this.map);\r\n }\r\n\r\n centerMap() {\r\n // do nothing\r\n }\r\n\r\n drawTrip(trip) {\r\n console.log(trip);\r\n this.selectedTrip = trip;\r\n const pointList = [];\r\n\r\n if (this.tripPolyLine) { this.map.removeLayer(this.tripPolyLine); }\r\n\r\n this.selectedTrip.locations.forEach(location => {\r\n pointList.push(new L.LatLng(location.Latitude, location.Longitude));\r\n });\r\n\r\n this.tripPolyLine = new L.Polyline(pointList, {\r\n color: '#2490EA',\r\n weight: 4,\r\n opacity: 0.9,\r\n smoothFactor: 1\r\n });\r\n this.tripPolyLine.addTo(this.map);\r\n\r\n const bounds = this.tripPolyLine.getBounds();\r\n\r\n if (bounds.isValid()) {\r\n this.map.fitBounds(bounds, { padding: [15, 15] });\r\n }\r\n }\r\n\r\n\r\n drawLocation(location) {\r\n setTimeout(() => {\r\n if (location) {\r\n\r\n if (this.marker) {\r\n this.map.removeLayer(this.marker);\r\n }\r\n\r\n this.marker = marker([location.latitude, location.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.map.addLayer(this.marker);\r\n this.map.flyTo([location.latitude, location.longitude], 6);\r\n }\r\n }, 100);\r\n }\r\n\r\n // Pagination\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n\r\n pageChanged(event: any): void {\r\n console.log('Page changed to: ' + event.page);\r\n console.log('Number items per page: ' + event.itemsPerPage);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devices' | translate }}\r\n
  4. \r\n
  5. \r\n {{device?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.trips' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n Start date\r\n
\r\n
\r\n
\r\n
\r\n End date\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n {{'menu.trips' | translate }}\r\n
\r\n
\r\n \r\n {{'dashboard.pageNumber' | translate:{current: currentPage, max: smallnumPages} }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.date' | translate }}{{'general.details' | translate }}
{{ trip.beginDateTime | amDateFormat:'yyyy-MM-dd HH:mm' }}{{ trip.beginCity }} / {{trip.segmentDistanceInKilometers}} km\r\n \r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.location' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { DeviceTypeService } from '../../services/devicetypes/devicetypes.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\n\r\n@Component({\r\n selector: 'fh-device-type-calculation-settings',\r\n templateUrl: 'deviceTypeCalculationSettings.template.html'\r\n})\r\nexport class DeviceTypeCalculationSettingsViewComponent implements OnInit {\r\n sub;\r\n deviceType: DeviceType;\r\n\r\n constructor(private http: HttpClient, private deviceTypeService: DeviceTypeService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.deviceType = new DeviceType;\r\n this.deviceType.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceTypeService.getDeviceTypeById(id).subscribe(deviceType => {\r\n this.deviceType = deviceType;\r\n\r\n if (this.deviceType == null) {\r\n this.router.navigate(['/DeviceTypes/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devicetypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{deviceType?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.calculationsettings' | translate }}\r\n
  8. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { MapService } from '../../services/common/map.service';\r\n\r\nimport * as moment from 'moment-timezone';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Component({\r\n selector: 'fh-fh-device-type-details',\r\n templateUrl: 'deviceTypeDetails.template.html',\r\n providers: [MapService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['deviceTypeDetails.template.css']\r\n})\r\nexport class DeviceTypeDetailsViewComponent implements OnInit {\r\n devices: any;\r\n markers: any;\r\n defaultMap: any;\r\n issueTypesResult: any;\r\n loadingIssueTypes: boolean;\r\n loadingKpis: boolean;\r\n issuesThisWeek: any;\r\n devicesWithIssues: any;\r\n deviceCount;\r\n issueCount;\r\n\r\n issues: Issue[];\r\n sub: Subscription;\r\n loading = false;\r\n loadingMapData = false;\r\n deviceType: DeviceType;\r\n\r\n options;\r\n layersControl;\r\n map: Map;\r\n nearbyDevices;\r\n marker;\r\n\r\n mapData = {\r\n data: []\r\n };\r\n\r\n heatmapLayer = new HeatmapOverlay({\r\n radius: 15,\r\n maxOpacity: 0.8,\r\n scaleRadius: false,\r\n useLocalExtrema: false,\r\n latField: 'lat',\r\n lngField: 'lng',\r\n valueField: 'count'\r\n });\r\n\r\n\r\n issueTypes: IssueType[];\r\n issueTypesFiltered: IssueType[];\r\n googleMaps: any;\r\n googleHybrid: any;\r\n leafletView: any;\r\n\r\n today: any;\r\n dateStartWeek: any;\r\n dateStartMonth: any;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private authenticationService: AuthenticationService, private cd: ChangeDetectorRef, private theMapService: MapService, private http: HttpClient, private issueTypeService: IssueTypeService, private deviceTypeService: DeviceTypeService, private deviceService: DeviceService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n this.issueTypesFiltered = [];\r\n this.issueTypesResult = [];\r\n\r\n this.today = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-1, 'day').toDate().getTime();\r\n this.dateStartWeek = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-7, 'day').toDate().getTime();\r\n this.dateStartMonth = moment().tz(this.authenticationService.getTimeZoneIana()).endOf('day').add(-1, 'month').toDate().getTime();\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.initMap();\r\n }\r\n\r\n orderByIssueCount(array: any[]) {\r\n return array.sort((a, b) => a[1].issueCount > b[1].issueCount ? 1 : a[1].issueCount === b[1].issueCount ? 0 : -1);\r\n }\r\n\r\n\r\n setDeviceTypeDetails(deviceType: DeviceType): any {\r\n if (deviceType == null) {\r\n this.router.navigate(['/DeviceTypes/Overview'])\r\n } else {\r\n this.deviceType = deviceType;\r\n\r\n\r\n this.deviceTypeService.getDeviceTypeDashboard(this.deviceType.id).subscribe(dashboard => {\r\n this.loadingKpis = false;\r\n this.issueCount = dashboard.issueCount;\r\n this.deviceCount = dashboard.deviceCount;\r\n this.devicesWithIssues = dashboard.deviceWithIssuesCount;\r\n this.issuesThisWeek = dashboard.issueThisWeekCount;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.deviceTypeService.getIssuesPerIssueType(this.deviceType.id, this.dateStartMonth, this.today).subscribe(result => {\r\n this.issueTypesResult = this.orderByIssueCount(result);\r\n this.loadingIssueTypes = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n // https://github.com/Asymmetrik/ngx-leaflet\r\n }\r\n }\r\n\r\n orderBy(array: any[], prop: string) {\r\n return array.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n }\r\n\r\n ngOnInit() {\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.loading = true;\r\n this.loadingIssueTypes = true;\r\n this.loadingKpis = true;\r\n\r\n const deviceTypeFromService = this.deviceTypeService.getDeviceTypeById(id).subscribe(deviceType => {\r\n this.loading = false;\r\n this.setDeviceTypeDetails(deviceType);\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.fillDevices(id);\r\n });\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n\r\n setPruneCluster() {\r\n\r\n const that = this;\r\n this.theMapService.setPruneCluster(this.leafletView);\r\n\r\n this.leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n };\r\n }\r\n\r\n fillDevices(id) {\r\n const that = this;\r\n this.deviceService.getDevicesByDeviceType(id).subscribe(devices => {\r\n this.devices = devices;\r\n this.devices.forEach(device => {\r\n if (device.lastPosition) {\r\n\r\n // Prune cluster\r\n\r\n const theMarker = new PruneCluster.Marker(device.lastPosition.latitude, device.lastPosition.longitude, { title: device.name });\r\n\r\n theMarker.category = Math.ceil(Math.random() * 6).toString();\r\n theMarker.data.popup = device.name;\r\n theMarker.data.device = device;\r\n\r\n this.leafletView.RegisterMarker(theMarker);\r\n\r\n // Heatmap\r\n this.mapData.data.push({\r\n lat: device.lastPosition.latitude,\r\n lng: device.lastPosition.longitude,\r\n count: 1\r\n });\r\n\r\n // Normal marker\r\n const theNormalMarker = marker([device.lastPosition.latitude, device.lastPosition.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n });\r\n\r\n this.markers.addLayer(theNormalMarker);\r\n }\r\n });\r\n\r\n this.heatmapLayer.setData(this.mapData);\r\n this.loading = false;\r\n\r\n this.centerMap();\r\n\r\n });\r\n }\r\n\r\n centerMap() {\r\n const bounds = this.leafletView.Cluster.ComputeGlobalBounds();\r\n if (bounds) {\r\n this.map.fitBounds(new L.LatLngBounds(new L.LatLng(bounds.minLat, bounds.maxLng), new L.LatLng(bounds.maxLat, bounds.minLng)), { padding: [50, 50] });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devicetypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{deviceType?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.devicetypedetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ deviceType?.name }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'general.name' | translate }}\r\n \r\n {{ deviceType?.name }}\r\n
\r\n {{ 'general.manufacturer' | translate}}\r\n \r\n {{ deviceType?.manufacturerName }}\r\n
\r\n {{ 'general.code' | translate}}\r\n \r\n {{ deviceType?.code }}\r\n
\r\n {{ 'general.reference' | translate}}\r\n \r\n {{ deviceType?.referenceId }}\r\n
\r\n {{ 'general.image' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.map' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.kpis' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n

{{ issuesThisWeek?.toLocaleString() }}

\r\n {{'general.issues' | translate }} {{'dates.thisweek' | translate }}\r\n
\r\n
\r\n

{{ issueCount?.toLocaleString() }}

\r\n {{'general.issues' | translate }} {{'dates.thismonth' | translate }}\r\n
\r\n
\r\n

{{ devicesWithIssues?.toLocaleString() }}

\r\n {{'general.deviceswithissues' | translate }} {{'dates.thismonth' | translate }}\r\n
\r\n
\r\n

{{ deviceCount?.toLocaleString() }}

\r\n {{'general.devices' | translate }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'dashboard.issues' | translate }}
\r\n {{'dates.lastmonth' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.issue' | translate }}{{'general.count' | translate }}
{{ issueType[0] }}{{ issueType[1].issueCount?.toLocaleString()\r\n }}\r\n \r\n \r\n {{'general.details' | translate }}\r\n \r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-device-type-devices',\r\n templateUrl: 'deviceTypeDevices.template.html'\r\n})\r\nexport class DeviceTypeDevicesViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n deviceType: DeviceType;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n\r\n constructor(private authenticationService: AuthenticationService, private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private deviceTypeService: DeviceTypeService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const deviceTypeFromService = this.deviceTypeService.getDeviceTypeById(id).subscribe(deviceType => {\r\n this.deviceType = deviceType;\r\n });\r\n\r\n this.deviceService.getDevicesByDeviceType(id).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n },\r\n {\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n },\r\n {\r\n data: 'lastCommunication',\r\n width: '80',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('ll')\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devicetypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{deviceType?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.deviceoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.deviceoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getTranslatedDropdownSettings, getDropdownSettings, getGridLanguages } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-device-type-issues',\r\n templateUrl: 'deviceTypeIssues.template.html'\r\n})\r\nexport class DeviceTypeIssuesViewComponent implements OnInit {\r\n deviceTypeId = '0';\r\n token: any;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n loading: boolean;\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n issues: Issue[];\r\n deviceType: DeviceType;\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n // Grid\r\n dtOptions = {};\r\n minDate: Date;\r\n limitHistoryInDays: number;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n dropdownIssueTypesSettings: any;\r\n issueTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n\r\n constructor(private localeService: BsLocaleService, private translatorService: TranslatorService, private authenticationService: AuthenticationService, private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private deviceTypeService: DeviceTypeService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.deviceTypeId = '00000000-0000-0000-0000-000000000001';\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.deviceTypeId = id;\r\n this.deviceTypeService.getDeviceTypeById(id).subscribe(deviceType => {\r\n this.deviceType = deviceType;\r\n this.deviceTypeId = deviceType.id;\r\n\r\n if (this.deviceType == null) {\r\n this.router.navigate(['/DeviceTypes/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.dropdownIssueTypesSettings = getDropdownSettings(true);\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownIssueTypesSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n });\r\n\r\n // Filtering\r\n const that = this;\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n this.maxDate.setDate(this.today.getDate() - 31);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig.containerClass = 'theme-default'; // or whatever color\r\n this.dpConfig.dateInputFormat = 'YYYY-MM-DD';\r\n\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n });\r\n }\r\n\r\n dateChanged(event) {\r\n const that = this;\r\n if (event !== null) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.issueService.getPagingUrl() + '?deviceTypeId=' + this.deviceTypeId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000)).load();\r\n });\r\n\r\n this.fireFilter();\r\n }\r\n }\r\n\r\n fireFilter(event = null): void {\r\n\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeId:name').search(selectedIssueTypesString);\r\n\r\n } else {\r\n dtInstance.column('issueTypeId:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n // Set issuetype from get\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['IssueType'];\r\n if (issueType) {\r\n this.selectedIssueTypes = [{ id: issueType, itemName: 'filter' }];\r\n this.fireFilter();\r\n } else {\r\n this.fireFilter();\r\n }\r\n\r\n const singleday = params['Singleday'];\r\n if (singleday) {\r\n this.daterangepickerModel = [new Date(singleday / 1), new Date(singleday / 1)];\r\n this.dateChanged(1);\r\n }\r\n\r\n const dateStart = params['DateStart'];\r\n const dateEnd = params['DateEnd'];\r\n if (dateStart && dateEnd) {\r\n this.daterangepickerModel = [new Date(dateStart / 1), new Date(dateEnd / 1)];\r\n this.dateChanged(1);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n console.log('get from grid');\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'desc'], [9, 'desc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.issueService.getPagingUrl() + '?deviceTypeId=' + this.deviceTypeId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n width: '20',\r\n orderable: false,\r\n title: '',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'issueDate',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('ll')\r\n }\r\n },\r\n {\r\n data: 'timestamp',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n },\r\n visible: false\r\n },\r\n {\r\n data: 'deviceName',\r\n title: this.translateService.instant('general.device'),\r\n width: '80',\r\n render: function (data, type, row) {\r\n return data ? data : '';\r\n }\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n width: '80',\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n },\r\n {\r\n data: 'issueType',\r\n title: this.translateService.instant('general.issue'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data, 'enums.issuetypes') : '';\r\n }\r\n },\r\n {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n }, {\r\n data: 'severity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.devicetypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{deviceType?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.issueoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.issueoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceTypeService } from '../../services/devicetypes/devicetypes.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { DeviceType } from '../../models/devicetype.model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nclass Person {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nclass DataTablesResponse {\r\n data: any[];\r\n draw: number;\r\n recordsFiltered: number;\r\n recordsTotal: number;\r\n}\r\n\r\n@Component({\r\n selector: 'fh-device-types',\r\n templateUrl: 'deviceTypes.template.html',\r\n styleUrls: ['deviceTypes.template.css']\r\n})\r\nexport class DevicesTypeViewComponent implements OnInit, AfterViewInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n dtOptions = {};\r\n assets: Subject = new Subject();\r\n persons: Person[];\r\n loading = false;\r\n data = 0;\r\n sub: any;\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private deviceTypeService: DeviceTypeService, private route: ActivatedRoute, private router: Router) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n order: [[4, 'desc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.deviceTypeService.getDeviceTypesWithCount().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n { data: 'name', title: this.translateService.instant('general.name') },\r\n {\r\n data: 'manufacturerName',\r\n title: this.translateService.instant('general.manufacturer'),\r\n render: function (data, type, row) {\r\n return data ? data : '-';\r\n }\r\n }, {\r\n data: 'thumbnail',\r\n title: this.translateService.instant('general.thumbnail'),\r\n render: function (data, type, row) {\r\n return data ? '' : '-';\r\n }\r\n },\r\n { data: 'deviceCount', width: '80', title: 'Devices' }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.devicetypeoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-drivers-add',\r\n templateUrl: 'add.template.html'\r\n})\r\nexport class DriversAddViewComponent {\r\n token: string;\r\n loading = false;\r\n driver: Driver = new Driver();\r\n\r\n formMode: FormMode = FormMode.add;\r\n error: any;\r\n permissions: {};\r\n success: { statusText: string; success: string; };\r\n\r\n constructor(private driverService: DriverService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private router: Router) {\r\n this.permissions = this.authenticationService.permissions;\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n this.driverService.saveDriver(this.driver).subscribe(result => {\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'You will be redirected to the driver'\r\n };\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/DriverDetails/Index/' + result.id]);\r\n }, 2000);\r\n\r\n this.driverService.resetCache().subscribe(res => {\r\n console.log('drivers are cleared');\r\n console.log(res);\r\n });\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n log(event) {\r\n console.log(event);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.driver' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.wasl' | translate }}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { Customer } from '../../models/customer.model';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { Asset } from 'app/models/asset.model';\r\n\r\n\r\n@Component({\r\n selector: 'fh-driver-assets',\r\n templateUrl: 'driverAssets.template.html'\r\n})\r\nexport class DriverAssetsViewComponent {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n customer: Customer;\r\n languageLoaded: boolean;\r\n driver: Driver;\r\n assets: Asset[] = [];\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private assetService: AssetService, private issueTypeService: IssueTypeService, private driverService: DriverService, private route: ActivatedRoute, private router: Router) {\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.loading = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.driverService.getDriverById(id).subscribe(driver => {\r\n this.driver = driver;\r\n });\r\n\r\n this.assetService.getAssetsByDriverId(id).subscribe(resp => {\r\n this.assets = resp;\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.drivers' | translate }}\r\n
  4. \r\n
  5. \r\n {{'general.assets' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'general.assets' | translate }}\r\n
\r\n
\r\n
\r\n\r\n {{ 'general.noAssets' | translate }}\r\n
\r\n
\r\n {{ 'general.toAddAssetStory' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{ asset.name }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.brand' | translate}}\r\n \r\n {{ asset.brand }}\r\n
\r\n {{ 'general.model' | translate}}\r\n \r\n {{ asset.model }}\r\n
\r\n {{ 'general.referenceId' | translate}}\r\n \r\n {{ asset.referenceId }}\r\n
\r\n {{ 'general.startDate' | translate}}\r\n \r\n {{ asset.assetDriver?.startDate | amDateFormat: 'LL' }}\r\n
\r\n {{ 'general.endDate' | translate}}\r\n \r\n {{ asset.assetDriver?.endDate | amDateFormat: 'LL' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DriverService } from '../../services/driver/driver.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { WaslService } from 'app/services/wasl/wasl.service';\r\nimport { BsDaterangepickerConfig } from 'ngx-bootstrap';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-driver-details',\r\n templateUrl: 'driverDetails.template.html'\r\n})\r\nexport class DriverDetailsViewComponent implements OnInit {\r\n sub: any;\r\n driver: Driver = new Driver();\r\n device: any;\r\n tagType = TagObjectType.Driver.valueOf();\r\n formMode = FormMode.read;\r\n formModeWasl = FormMode.read;\r\n\r\n loadingDriver = false;\r\n loadingDriverWasl = false;\r\n\r\n error: any;\r\n\r\n map: Map;\r\n defaultMap;\r\n\r\n options;\r\n marker;\r\n\r\n waslStatus = {\r\n reference: 'ed3c444f-a9f7-4dc7-8e89-e1aae81b12db',\r\n sequence: '452818110',\r\n plateType: 'PubblbicTransport',\r\n plateNo: '3003',\r\n lmr: 'ع'\r\n };\r\n permissions: {};\r\n success: string;\r\n waslSuccess: { statusText: string; success: any; };\r\n waslError: any;\r\n\r\n constructor(private waslService: WaslService, private authentication: AuthenticationService, private driverService: DriverService, private route: ActivatedRoute) {\r\n this.permissions = this.authentication.permissions;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadingDriver = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.driverService.getDriverById(id).subscribe(driver => {\r\n this.driver = driver;\r\n this.loadingDriver = false;\r\n });\r\n });\r\n }\r\n\r\n\r\n // Form\r\n\r\n onDelete() {\r\n this.error = 'Deleting is not implemented';\r\n }\r\n\r\n onSave() {\r\n this.loadingDriver = true;\r\n\r\n this.driverService.updateDriver(this.driver).subscribe(result => {\r\n console.log(result);\r\n this.error = null;\r\n this.success = 'Succes';\r\n\r\n this.driverService.resetCache().subscribe(res => {\r\n console.log('Drivers are cleared');\r\n });\r\n\r\n this.getDriverInfo();\r\n }, error => {\r\n this.error = error\r\n this.getDriverInfo();\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n\r\n if (this.formMode === FormMode.read) {\r\n this.loadingDriver = true;\r\n this.getDriverInfo();\r\n }\r\n }\r\n\r\n setFormModeWasl(mode) {\r\n this.formModeWasl = mode;\r\n\r\n if (this.formModeWasl === FormMode.read) {\r\n this.loadingDriverWasl = true;\r\n this.getDriverInfo();\r\n }\r\n }\r\n\r\n getDriverInfo() {\r\n if (this.loadingDriver !== true && this.loadingDriverWasl !== true) {\r\n this.loadingDriver = true;\r\n }\r\n\r\n this.driverService.getDriverById(this.driver.id).subscribe(driver => {\r\n this.driver = driver;\r\n this.loadingDriver = false;\r\n this.loadingDriverWasl = false;\r\n });\r\n }\r\n\r\n // Wasl\r\n\r\n register() {\r\n this.loadingDriverWasl = true;\r\n\r\n this.driver.properties.wasl.dateOfBirthGregorian = Moment(this.driver.dateOfBirth).format('YYYY-MM-DD');\r\n\r\n this.waslService.registerDriver(this.driver.id, this.driver.properties.wasl).subscribe(registerResult => {\r\n console.log(registerResult);\r\n this.loadingDriverWasl = false;\r\n if (registerResult.success) {\r\n this.waslSuccess = {\r\n statusText: 'Success',\r\n success: registerResult.resultCode\r\n };\r\n this.driver.properties.wasl.referenceKey = registerResult.result.referenceKey;\r\n this.waslError = null;\r\n } else {\r\n this.waslError = {\r\n statusText: 'Error',\r\n error: registerResult.resultCode\r\n };\r\n }\r\n this.getDriverInfo();\r\n }, error => {\r\n console.log(error);\r\n this.waslError = error\r\n this.loadingDriverWasl = false;\r\n });\r\n }\r\n\r\n unRegister() {\r\n this.loadingDriverWasl = true;\r\n\r\n this.driver.properties.wasl.dateOfBirthGregorian = Moment(this.driver.dateOfBirth).format('YYYY-MM-DD');\r\n\r\n this.waslService.unregisterDriver(this.driver.id, this.driver.properties.wasl).subscribe(unregisterResult => {\r\n console.log(unregisterResult);\r\n this.loadingDriverWasl = false;\r\n if (unregisterResult.success) {\r\n this.waslSuccess = {\r\n statusText: 'Success',\r\n success: unregisterResult.resultCode\r\n };\r\n this.driver.properties.wasl.referenceKey = null;\r\n this.waslError = null;\r\n } else {\r\n this.waslError = {\r\n statusText: 'Error',\r\n error: unregisterResult.resultCode\r\n };\r\n }\r\n this.getDriverInfo();\r\n }, error => {\r\n console.log(error);\r\n this.waslError = error\r\n this.loadingDriverWasl = false;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.driver' | translate }}\r\n
  4. \r\n
  5. \r\n {{'general.driverDetails' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.driver' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

- {{'general.waslFormInvalid' | translate }}

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.wasl' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { Customer } from '../../models/customer.model';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-driver-devices',\r\n templateUrl: 'driverDevices.template.html'\r\n})\r\nexport class DriverDevicesViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n customer: Customer;\r\n languageLoaded: boolean;\r\n driver: Driver;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private driverService: DriverService, private route: ActivatedRoute, private router: Router) {\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.driverService.getDriverById(id).subscribe(driver => {\r\n this.driver = driver;\r\n });\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n serverSide: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.deviceService.getDevicesByDriverId(id).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n },\r\n {\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n },\r\n {\r\n data: 'lastCommunication',\r\n width: '80',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n return new Date(data).toLocaleDateString();\r\n }\r\n return data;\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.drivers' | translate }}\r\n
  4. \r\n
  5. \r\n {{'general.devices' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.devices' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { Driver } from 'app/models/driver.model';\r\n\r\n@Component({\r\n selector: 'fh-driver-log',\r\n templateUrl: 'driverLog.template.html'\r\n})\r\nexport class DriverLogViewComponent implements OnInit {\r\n driverLog: AuditLog[];\r\n sub;\r\n driver: Driver;\r\n loading = false;\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private driverService: DriverService, private route: ActivatedRoute, private router: Router) {\r\n this.driver = null;\r\n this.driverLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.driver = new Driver;\r\n this.driver.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.driverService.getDriverById(id).subscribe(driver => {\r\n this.driver = driver;\r\n\r\n if (this.driver == null) {\r\n this.router.navigate(['/Drivers/Overview'])\r\n }\r\n\r\n this.auditLogService.getAuditLogByDriver(id).subscribe(deviceLog => {\r\n console.log('loading done');\r\n this.driverLog = deviceLog;\r\n this.loading = false;\r\n });\r\n\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.drivers' | translate }}\r\n
  4. \r\n
  5. \r\n {{driver?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.log' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\nimport { getGridLanguages, getGridButtons } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-drivers',\r\n templateUrl: 'drivers.template.html'\r\n})\r\nexport class DriversViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private driverService: DriverService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'device_overview', this.translateService.instant('menu.deviceoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.driverService.getPagingUrl(),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'phone',\r\n data: 'phone',\r\n title: this.translateService.instant('general.phone'),\r\n },\r\n {\r\n name: 'code',\r\n data: 'code',\r\n title: this.translateService.instant('general.code'),\r\n },\r\n {\r\n name: 'referenceId',\r\n data: 'referenceId',\r\n title: this.translateService.instant('general.referenceId'),\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n\r\n if (this.permissions['HasWasl']) {\r\n this.dtOptions['columns'].push({\r\n name: 'wasl',\r\n data: 'waslReference',\r\n title: this.translateService.instant('general.wasl'),\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.drivers' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { Chart } from 'angular-highcharts';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NotificationsService } from '../../modules/notification';\r\nimport { BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { trigger, transition, animate, style, state, group } from '@angular/animations'\r\nimport { getDefaultDpConfig } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-device-types-chart',\r\n templateUrl: 'charts.template.html',\r\n styleUrls: ['charts.template.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0.5 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 1 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-in-out', style({ 'opacity': '0.5' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(-100%)' }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0.5 }),\r\n group([\r\n animate(300, style({ height: '*' })),\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('400ms ease-in-out', style({ 'opacity': '1' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(0%)' }))\r\n ])\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class IssuesChartViewComponent implements OnInit, AfterViewInit {\r\n loading = false;\r\n dropdown_IssueType = '';\r\n chart1: Chart;\r\n chart2: Chart;\r\n chart3: Chart;\r\n selectSource;\r\n\r\n deviceTypes: DeviceType[];\r\n issueTypes: IssueType[];\r\n\r\n public nav: any;\r\n loadingIssues = false;\r\n loadingLocationChart = false\r\n deviceTypeCount;\r\n issueCount;\r\n deviceCount;\r\n\r\n private issueCountObservable = new Subject();\r\n issueCountObservable$ = this.issueCountObservable.asObservable();\r\n loadingDevices = false;\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n chartData: any;\r\n\r\n showFilter = true;\r\n constructorName = this.constructor.name;\r\n\r\n\r\n\r\n public constructor(private localeService: BsLocaleService, private deviceTypeService: DeviceTypeService, private issueTypeService: IssueTypeService, private deviceService: DeviceService, private issueService: IssueService, private toastr: ToastrService, protected notificationsService: NotificationsService) {\r\n this.loadingDevices = true;\r\n this.loadingIssues = true;\r\n this.loadingLocationChart = true;\r\n\r\n this.selectSource = 'devicetype'\r\n // Filtering\r\n const that = this;\r\n\r\n this.maxDate.setDate(this.today.getDate() - 7);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n this.dateChanged(this.daterangepickerModel);\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n }\r\n\r\n public ngOnInit(): any {\r\n\r\n }\r\n\r\n fireFilter(event = null): void {\r\n this.generateIssuePerDeviceTypeCharts(this.chartData);\r\n }\r\n\r\n getChartData(event) {\r\n this.loading = true;\r\n const that = this;\r\n\r\n if (event != null) {\r\n this.deviceTypeService.getDeviceTypesChart(event[0].getTime(), event[1].getTime()).subscribe(chartData => {\r\n this.chartData = chartData;\r\n this.generateIssuePerDeviceTypeCharts(chartData);\r\n this.loadingDevices = false;\r\n },\r\n error => {\r\n\r\n console.log(error);\r\n\r\n that.toastr.error(error.statusText\r\n , 'Error', {\r\n progressBar: true\r\n });\r\n\r\n that.notificationsService.addError(error.statusText, error.message);\r\n });\r\n }\r\n }\r\n\r\n dateChanged(event) {\r\n if (event != null) {\r\n const that = this;\r\n this.getChartData(event);\r\n }\r\n }\r\n\r\n generateIssuePerDeviceTypeCharts(chartData) {\r\n\r\n // tslint:disable-next-line:prefer-const\r\n let theDeviceTypes = [];\r\n\r\n const theTempData2 = [];\r\n const theData = [];\r\n const theData2 = [];\r\n const theData3 = [];\r\n const that = this;\r\n const deviceTypeNames = [];\r\n const index = 0;\r\n\r\n let theManufacturers = [];\r\n const theTempData3 = [];\r\n const theData4 = [];\r\n const theData5 = [];\r\n const theData6 = [];\r\n\r\n chartData.forEach(aggrigatedListItem => {\r\n if (theDeviceTypes.indexOf(aggrigatedListItem.deviceTypeName) === -1) {\r\n theDeviceTypes.push(aggrigatedListItem.deviceTypeName);\r\n theTempData2[aggrigatedListItem.deviceTypeName] = aggrigatedListItem.issueTypes;\r\n }\r\n if (theManufacturers.indexOf(aggrigatedListItem.manufactorer) === -1) {\r\n theManufacturers.push(aggrigatedListItem.manufactorer);\r\n theTempData3[aggrigatedListItem.manufactorer] = aggrigatedListItem.issueTypes;\r\n }\r\n });\r\n\r\n that.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n issueTypes.forEach(issueType => {\r\n\r\n const theDataIssueName = issueType.name;\r\n const theSubData = [];\r\n const theSubData2 = [];\r\n const theSubData3 = []\r\n\r\n const theSubData4 = [];\r\n const theSubData5 = [];\r\n const theSubData6 = [];\r\n\r\n theDeviceTypes = theDeviceTypes.sort(function (a, b) {\r\n if (a < b) { return -1; }\r\n if (a > b) { return 1; }\r\n return 0;\r\n });\r\n\r\n theDeviceTypes.forEach(deviceType => {\r\n const theDeviceIssues = theTempData2[deviceType];\r\n const theDataIssueAmount = theDeviceIssues.filter(x => x.issueTypeId === issueType.id)[0];\r\n\r\n if (theDataIssueAmount) {\r\n theSubData.push(theDataIssueAmount.issueCount);\r\n theSubData2.push(theDataIssueAmount.issuePercentage);\r\n theSubData3.push(theDataIssueAmount.issuePercentageDevice);\r\n } else {\r\n theSubData.push(0);\r\n theSubData2.push(0);\r\n theSubData3.push(0);\r\n }\r\n });\r\n\r\n theManufacturers = theManufacturers.sort(function (a, b) {\r\n if (a < b) { return -1; }\r\n if (a > b) { return 1; }\r\n return 0;\r\n });\r\n\r\n theManufacturers.forEach(manufacturers => {\r\n const theDeviceIssues = theTempData3[manufacturers];\r\n const theDataIssueAmount = theDeviceIssues.filter(x => x.issueTypeId === issueType.id)[0];\r\n\r\n if (theDataIssueAmount) {\r\n theSubData4.push(theDataIssueAmount.issueCount);\r\n theSubData5.push(theDataIssueAmount.issuePercentage);\r\n theSubData6.push(theDataIssueAmount.issuePercentageDevice);\r\n } else {\r\n theSubData4.push(0);\r\n theSubData5.push(0);\r\n theSubData6.push(0);\r\n }\r\n });\r\n\r\n const theSeries = { name: theDataIssueName, data: theSubData };\r\n const theSeries2 = { name: theDataIssueName, data: theSubData2 };\r\n const theSeries3 = { name: theDataIssueName, data: theSubData3 };\r\n\r\n const theSeries4 = { name: theDataIssueName, data: theSubData4 };\r\n const theSeries5 = { name: theDataIssueName, data: theSubData5 };\r\n const theSeries6 = { name: theDataIssueName, data: theSubData6 };\r\n\r\n\r\n theData.push(theSeries);\r\n theData2.push(theSeries2);\r\n theData3.push(theSeries3);\r\n\r\n theData4.push(theSeries4);\r\n theData5.push(theSeries5);\r\n theData6.push(theSeries6);\r\n });\r\n\r\n if (this.selectSource === 'manufacturer') {\r\n this.chart1 = this.drawChart(theManufacturers, theData4);\r\n this.chart2 = this.drawChartPercentage(theManufacturers, theData5);\r\n this.chart3 = this.drawChartPercentage(theManufacturers, theData6);\r\n } else {\r\n this.chart1 = this.drawChart(theDeviceTypes, theData);\r\n this.chart2 = this.drawChartPercentage(theDeviceTypes, theData2);\r\n this.chart3 = this.drawChartPercentage(theDeviceTypes, theData3);\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n drawChart(theDeviceTypes, theData) {\r\n\r\n return new Chart({\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n categories: theDeviceTypes,\r\n type: 'category',\r\n labels: {\r\n rotation: 45,\r\n style: {\r\n fontSize: '10px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Total issues'\r\n },\r\n stackLabels: {\r\n enabled: false,\r\n style: {\r\n fontWeight: 'normal',\r\n color: 'white'\r\n }\r\n }\r\n },\r\n legend: {\r\n align: 'right',\r\n verticalAlign: 'middle',\r\n layout: 'vertical'\r\n },\r\n tooltip: {\r\n headerFormat: '{point.x}
',\r\n pointFormat: '{series.name}: {point.y}
Total: {point.stackTotal}'\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: false,\r\n color: 'white'\r\n }\r\n }\r\n },\r\n series: theData,\r\n colors: ['#CB711D', '#776655', '#995522', '#7F5E3F', '#A85100', '#884411', '#4C443D', '#663300', '#663100', '#2B2B2B', '#331800', '#221100', '#111110', '#EAE6E3', '#DDDAD7', '#DDCCBB', '#DDCCAA', '#D8C2AD', '#F2B379', '#AA9988']\r\n });\r\n }\r\n\r\n drawChartPercentage(theDeviceTypes, theData) {\r\n\r\n return new Chart({\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n credits: { enabled: false },\r\n xAxis: {\r\n categories: theDeviceTypes,\r\n type: 'category',\r\n labels: {\r\n rotation: 45,\r\n style: {\r\n fontSize: '10px',\r\n fontFamily: 'Verdana, sans-serif'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n title: {\r\n text: 'Total issues %'\r\n },\r\n stackLabels: {\r\n enabled: false,\r\n style: {\r\n fontWeight: 'normal',\r\n color: 'white'\r\n }\r\n }\r\n },\r\n legend: {\r\n align: 'right',\r\n verticalAlign: 'middle',\r\n layout: 'vertical'\r\n },\r\n tooltip: {\r\n headerFormat: '{point.x}
',\r\n pointFormat: '{series.name}: {point.y} %
Total: {point.stackTotal} %'\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: false,\r\n color: 'white'\r\n }\r\n }\r\n },\r\n series: theData,\r\n colors: ['#CB711D', '#776655', '#995522', '#7F5E3F', '#A85100', '#884411', '#4C443D', '#663300', '#663100', '#2B2B2B', '#331800', '#221100', '#111110', '#EAE6E3', '#DDDAD7', '#DDCCBB', '#DDCCAA', '#D8C2AD', '#F2B379', '#AA9988']\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Percentage issues per devicetype\r\n \r\n
\r\n
\r\n \r\n \r\n Absolute issues per devicetype\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Percentage of devicetype issues\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { CustomerService } from './../../services/customers/customers.service';\r\nimport { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport * as moment from 'moment';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { Customer } from 'app/models/customer.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { trigger, transition, animate, style, state, group } from '@angular/animations'\r\nimport { IssueTypeEnums } from 'app/common/enums';\r\nimport { getGridLanguages, getGridButtons, getDropdownSettings, getTranslatedDropdownSettings, getDefaultDpConfig, mapMultiDropdown } from 'app/common/gridhelper';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Component({\r\n selector: 'fh-deviceissues',\r\n templateUrl: 'deviceIssues.template.html',\r\n styleUrls: ['deviceIssues.template.css'],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0.5 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 1 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-in-out', style({ 'opacity': '0.5' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(-100%)' }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0.5 }),\r\n group([\r\n animate(300, style({ height: '*' })),\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('400ms ease-in-out', style({ 'opacity': '1' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(0%)' }))\r\n ])\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class DevicesIssuesViewComponent implements OnInit, OnDestroy {\r\n tableIds: string[];\r\n token: string;\r\n countrySelect = false;\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n dtOptions = {};\r\n loading = false;\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[] = [];\r\n deviceTypes: DeviceType[] = [];\r\n\r\n customersMultiselect: any[] = [];\r\n\r\n dropdown_CustomerName = '';\r\n\r\n minDate: Date;\r\n limitHistoryInDays: number;\r\n languageLoaded: boolean;\r\n dropdown_CustomerNameSettings: any;\r\n selectedCustomers = [];\r\n\r\n issueTypesWithCategories: { category: string, types: IssueType[] }[];\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n dropdownIssueTypesSettings: any;\r\n issueTypesMultiselect = [];\r\n\r\n dropdownSettingsDeviceTypes: any;\r\n selectedDeviceTypes: any[] = [];\r\n deviceTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n\r\n showFilter = true;\r\n constructorName = this.constructor.name;\r\n\r\n constructor(private localeService: BsLocaleService, private route: ActivatedRoute, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private authenticationService: AuthenticationService, private deviceService: DeviceService, private deviceTypeService: DeviceTypeService, private customerService: CustomerService) {\r\n const that = this;\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n\r\n this.maxDate.setDate(this.today.getDate() - 7);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n\r\n // Set issuetype from get\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['IssueType'];\r\n if (issueType) {\r\n that.dropdown_IssueType = issueType;\r\n }\r\n });\r\n\r\n Observable.forkJoin(\r\n this.issueTypeService.getIssueTypes(),\r\n this.deviceTypeService.getDeviceTypes(),\r\n this.customerService.getCustomers()\r\n ).subscribe(\r\n data => {\r\n this.issueTypes = data[0];\r\n this.deviceTypes = data[1];\r\n\r\n this.issueTypesWithCategories = [];\r\n this.issueTypes.forEach(type => {\r\n if (this.issueTypesWithCategories.find(x => x.category === type.category)) {\r\n this.issueTypesWithCategories.find(x => x.category === type.category).types.push(type)\r\n } else {\r\n this.issueTypesWithCategories.push({ category: type.category, types: [type] })\r\n }\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n\r\n });\r\n\r\n this.deviceTypesMultiselect = [];\r\n this.deviceTypes.forEach(deviceType => {\r\n this.deviceTypesMultiselect.push({ 'id': deviceType.id, 'itemName': deviceType.name, 'category': deviceType.manufacturerName });\r\n });\r\n\r\n this.customersMultiselect = mapMultiDropdown(data[2].filter(x => x.count > 0));\r\n\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n },\r\n err => console.error(err)\r\n );\r\n\r\n }\r\n\r\n checkFilters() {\r\n console.log('Checking filters');\r\n\r\n // Set custom filters from grid save\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n console.log(dtInstance.column('customerName:name').search());\r\n\r\n const selectedCustomers = dtInstance.column('customerName:name').search().split(',');\r\n this.selectedCustomers = this.customersMultiselect.filter(x => selectedCustomers.indexOf(x.itemName.toString()) !== -1);\r\n\r\n const selectedDeviceTypes = dtInstance.column('deviceTypeId:name').search().split(',');\r\n this.selectedDeviceTypes = this.deviceTypesMultiselect.filter(x => selectedDeviceTypes.indexOf(x.id.toString()) !== -1);\r\n\r\n const selectedIssueTypes = dtInstance.column('issueTypeCSV:name').search().split(',');\r\n this.selectedIssueTypes = this.issueTypesMultiselect.filter(x => selectedIssueTypes.indexOf(x.id.toString()) !== -1);\r\n // make sure all is updated\r\n this.fireFilter(1);\r\n });\r\n }\r\n\r\n checkRoute() {\r\n // get from route\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['issueType'];\r\n if (issueType) {\r\n this.selectedIssueTypes = [{ id: issueType, itemName: 'filter' }];\r\n this.fireFilter(1);\r\n } else {\r\n this.fireFilter(1);\r\n }\r\n\r\n const customer = params['customer'];\r\n if (customer) {\r\n this.dropdown_CustomerName = customer;\r\n this.fireFilter(1);\r\n } else {\r\n this.fireFilter(1);\r\n }\r\n\r\n const singleday = params['Singleday'];\r\n if (singleday) {\r\n this.daterangepickerModel = [new Date(singleday / 1), new Date(singleday / 1)];\r\n this.dateChanged(1);\r\n }\r\n\r\n\r\n const dateStart = params['DateStart'];\r\n const dateEnd = params['DateEnd'];\r\n if (dateStart && dateEnd) {\r\n this.daterangepickerModel = [new Date(dateStart / 1), new Date(dateEnd / 1)];\r\n this.dateChanged(1);\r\n }\r\n\r\n // make sure all is updated\r\n this.fireFilter(1);\r\n });\r\n }\r\n\r\n clearSelectedCustomers() {\r\n this.selectedCustomers = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n clearSelectedDeviceTypes() {\r\n this.selectedDeviceTypes = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n clearSelectedIssueTypes() {\r\n this.selectedIssueTypes = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(event): void {\r\n\r\n if (event != null) {\r\n console.log('Fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n if (this.selectedDeviceTypes !== []) {\r\n const selectedDeviceTypesString = this.selectedDeviceTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('deviceTypeId:name').search(selectedDeviceTypesString);\r\n } else {\r\n dtInstance.column('deviceTypeId:name').search('');\r\n }\r\n\r\n // Search for the customer\r\n if (this.selectedCustomers !== []) {\r\n const selectedCustomersString = this.selectedCustomers.map((i) => i.itemName, []).join(',');\r\n dtInstance.column('customerName:name').search(selectedCustomersString);\r\n } else {\r\n dtInstance.column('customerName:name').search('');\r\n }\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeCSV:name').search(selectedIssueTypesString);\r\n } else {\r\n dtInstance.column('issueTypeCSV:name').search('');\r\n }\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n }\r\n\r\n dateChanged(event) {\r\n\r\n const that = this;\r\n if (event !== null && this.datatableElement.dtInstance !== null) {\r\n\r\n console.log('Changed date... new database query');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.deviceService.getPagingWithIssuesUrl() + '?startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000)).load();\r\n });\r\n\r\n this.fireFilter(null);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.dropdownSettingsDeviceTypes = getDropdownSettings();\r\n this.dropdown_CustomerNameSettings = getDropdownSettings();\r\n this.dropdownIssueTypesSettings = getDropdownSettings();\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownSettingsDeviceTypes = getTranslatedDropdownSettings(this.translateService, 'allDeviceTypes', true);\r\n this.dropdown_CustomerNameSettings = getTranslatedDropdownSettings(this.translateService, 'allCustomers', false);\r\n this.dropdownIssueTypesSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n });\r\n }\r\n\r\n changeFlag(id: string, isFlagged: boolean): void {\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n device.isFlagged = isFlagged;\r\n this.deviceService.saveFlagged(device).subscribe(() => { });\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'deviceissues_overview', this.translateService.instant('menu.issuesoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[9, 'desc'], [10, 'desc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.deviceService.getPagingWithIssuesUrl() + '?startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.checkRoute();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id', 'deviceTypeId']\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'unitId',\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId')\r\n },\r\n {\r\n name: 'lastCommunication',\r\n data: 'lastCommunication',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n }\r\n },\r\n {\r\n name: 'deviceTypeId',\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n visible: false\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n visible: false\r\n },\r\n {\r\n name: 'deviceTypeName',\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype')\r\n },\r\n {\r\n name: 'manufactorerName',\r\n data: 'manufactorerName',\r\n title: this.translateService.instant('general.manufacturer')\r\n },\r\n {\r\n name: 'customerName',\r\n data: 'customerName',\r\n title: this.translateService.instant('general.customer')\r\n },\r\n {\r\n name: 'issueCount',\r\n data: 'issueCount',\r\n title: this.translateService.instant('general.issuecount')\r\n },\r\n {\r\n name: 'maxSeverity',\r\n data: 'maxSeverity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n },\r\n {\r\n name: 'issueTypesCount',\r\n data: 'issueTypesCount',\r\n title: this.translateService.instant('general.issueTypesCount')\r\n },\r\n {\r\n name: 'isDeviceFlagged',\r\n data: 'isFlagged',\r\n title: this.translateService.instant('general.isFlagged'),\r\n visible: true,\r\n width: '40',\r\n responsivePriority: 1,\r\n render: function (data, type, row) {\r\n if (!that.tableIds || (that.tableIds.length === 10)) {\r\n that.tableIds = [];\r\n }\r\n\r\n that.tableIds.push(row.id);\r\n\r\n return '';\r\n }\r\n },\r\n {\r\n name: 'issueTypeCSV',\r\n data: 'issueTypeCSV',\r\n title: this.translateService.instant('general.issuetypes'),\r\n visible: true,\r\n render: function (data, type, row) {\r\n const issueTypeIds = data.split(',');\r\n let issueTypeString = '';\r\n issueTypeIds.forEach(id => {\r\n if (id) {\r\n const issueType = that.issueTypes.find(x => x.id === parseInt(id, 10));\r\n issueTypeString += !issueTypeString ? issueType.name.trim() : ', ' + issueType.name.trim();\r\n }\r\n });\r\n return issueTypeString;\r\n }\r\n },\r\n {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.mostCommonIssueType'),\r\n render: function (data, type, row) {\r\n const issueType = IssueTypeEnums[data]\r\n return data !== 0 ? that.translateService.instant('enums.issuetypes.' + issueType.toString()) : '';\r\n }\r\n },\r\n {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.mostCommonIssueTypeResolution'),\r\n render: function (data, type, row) {\r\n const issueType = IssueTypeEnums[data]\r\n return data !== 0 ? that.translateService.instant('enums.issuetypes.resolution.' + issueType.toString()) : ''\r\n },\r\n visible: false\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n drawCallback: () => {\r\n if (that.tableIds) {\r\n that.tableIds.forEach(id => {\r\n const star = $('#' + id);\r\n star.click(() => {\r\n if (star.hasClass('fas')) {\r\n star.removeClass('fas').addClass('far');\r\n } else {\r\n star.removeClass('far').addClass('fas');\r\n }\r\n that.changeFlag(id, star.hasClass('fas'));\r\n });\r\n });\r\n }\r\n }\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedCustomers()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedDeviceTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.issuesoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { CustomerService } from './../../services/customers/customers.service';\r\nimport { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport * as moment from 'moment-timezone';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { Customer } from 'app/models/customer.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { listLocales } from 'ngx-bootstrap/chronos';\r\nimport { defineLocale } from 'ngx-bootstrap/chronos';\r\nimport { getUTCStartOfDayDateTimeFromTimezone } from '../../services/common/functions.service';\r\nimport { trigger, transition, animate, style, state, group } from '@angular/animations'\r\nimport { getGridLanguages, getGridButtons, getTranslatedDropdownSettings, getDefaultDpConfig, mapMultiDropdown, getDropdownSettings } from 'app/common/gridhelper';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Component({\r\n selector: 'fh-grouped-issues',\r\n templateUrl: 'groupedIssues.template.html',\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0.5 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 1 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-in-out', style({ 'opacity': '0.5' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(-100%)' }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0.5 }),\r\n group([\r\n animate(300, style({ height: '*' })),\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('400ms ease-in-out', style({ 'opacity': '1' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(0%)' }))\r\n ])\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class GroupedIssuesViewComponent implements OnInit, OnDestroy {\r\n tableIds: any[];\r\n token: string;\r\n countrySelect = false;\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n dropdown_Group = '';\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n dtOptions = {};\r\n loading = false;\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[] = [];\r\n deviceTypes: DeviceType[] = [];\r\n\r\n issueType: any[] = [];\r\n\r\n customersMultiselect: any[] = [];\r\n\r\n dropdown_CustomerName = '';\r\n\r\n minDate: Date;\r\n limitHistoryInDays: number;\r\n minimumIssuecount: number;\r\n languageLoaded: boolean;\r\n\r\n issueTypesWithCategories: { category: string, types: IssueType[] }[];\r\n timezoneIana: string;\r\n\r\n issueTypesMultiselect: any[] = [];\r\n dropdownSettings: any;\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n dropdown_CustomerNameSettings: any;\r\n selectedCustomers = [];\r\n dropdownSettingsDeviceTypes: any;\r\n selectedDeviceTypes: any[] = [];\r\n deviceTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n showFilter = true;\r\n constructorName = this.constructor.name;\r\n\r\n constructor(private localeService: BsLocaleService, private route: ActivatedRoute, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private authenticationService: AuthenticationService, private deviceService: DeviceService, private deviceTypeService: DeviceTypeService, private customerService: CustomerService) {\r\n const that = this;\r\n\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n\r\n this.maxDate.setDate(this.today.getDate() - 14);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n // Set issuetype from get\r\n\r\n this.dropdown_Group = 'issueType';\r\n this.minimumIssuecount = 4;\r\n\r\n // Set issuetype from get\r\n Observable.forkJoin(\r\n this.issueTypeService.getIssueTypes(),\r\n this.deviceTypeService.getDeviceTypes(),\r\n this.customerService.getCustomers()\r\n ).subscribe(\r\n data => {\r\n this.issueTypes = data[0];\r\n this.deviceTypes = data[1];\r\n\r\n this.issueTypesWithCategories = [];\r\n this.issueTypes.forEach(type => {\r\n if (this.issueTypesWithCategories.find(x => x.category === type.category)) {\r\n this.issueTypesWithCategories.find(x => x.category === type.category).types.push(type)\r\n } else {\r\n this.issueTypesWithCategories.push({ category: type.category, types: [type] })\r\n }\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n\r\n });\r\n\r\n this.deviceTypesMultiselect = [];\r\n this.deviceTypes.forEach(deviceType => {\r\n this.deviceTypesMultiselect.push({ 'id': deviceType.id, 'itemName': deviceType.name, 'category': deviceType.manufacturerName });\r\n });\r\n\r\n this.customersMultiselect = mapMultiDropdown(data[2].filter(x => x.count > 0));\r\n\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n },\r\n err => console.error(err)\r\n );\r\n\r\n }\r\n\r\n clearSelectedCustomers() {\r\n this.selectedCustomers = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n clearSelectedDeviceTypes() {\r\n this.selectedDeviceTypes = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n clearSelectedIssueTypes() {\r\n this.selectedIssueTypes = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n console.log('Checking filters');\r\n\r\n // Set custom filters from grid save\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n console.log(dtInstance.column('customerName:name').search());\r\n\r\n const selectedCustomers = dtInstance.column('customerName:name').search().split(',');\r\n this.selectedCustomers = this.customersMultiselect.filter(x => selectedCustomers.indexOf(x.itemName.toString()) !== -1);\r\n\r\n const selectedDeviceTypes = dtInstance.column('deviceTypeId:name').search().split(',');\r\n this.selectedDeviceTypes = this.deviceTypesMultiselect.filter(x => selectedDeviceTypes.indexOf(x.id.toString()) !== -1);\r\n\r\n const selectedIssueTypes = dtInstance.column('issueTypeId:name').search().split(',');\r\n this.selectedIssueTypes = this.issueTypesMultiselect.filter(x => selectedIssueTypes.indexOf(x.id.toString()) !== -1);\r\n // make sure all is updated\r\n this.fireFilter(1);\r\n });\r\n }\r\n\r\n checkRoute() {\r\n this.fireFilter('init');\r\n }\r\n\r\n fireFilter(event): void {\r\n\r\n if (event != null) {\r\n console.log('Fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n if (this.selectedDeviceTypes !== []) {\r\n const selectedDeviceTypesString = this.selectedDeviceTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('deviceTypeId:name').search(selectedDeviceTypesString);\r\n } else {\r\n dtInstance.column('deviceTypeId:name').search('');\r\n }\r\n\r\n if (this.dropdown_CustomerName !== '') {\r\n dtInstance.column('customerName:name').search(this.dropdown_CustomerName);\r\n console.log('hallo: ' + this.dropdown_CustomerName);\r\n } else {\r\n dtInstance.column('customerName:name').search('');\r\n }\r\n\r\n // Search for the customer\r\n if (this.selectedCustomers !== []) {\r\n const selectedCustomersString = this.selectedCustomers.map((i) => i.itemName, []).join(',');\r\n dtInstance.column('customerName:name').search(selectedCustomersString);\r\n } else {\r\n dtInstance.column('customerName:name').search('');\r\n }\r\n\r\n if (this.dropdown_Group !== '') {\r\n console.log('group on ' + this.dropdown_Group);\r\n dtInstance['rowGroup']().dataSrc(this.dropdown_Group);\r\n }\r\n\r\n if (this.minimumIssuecount !== 0) {\r\n dtInstance.column('issueCount:name').search(this.minimumIssuecount.toString());\r\n } else {\r\n dtInstance.column('issueCount:name').search('');\r\n }\r\n\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeId:name').search(selectedIssueTypesString);\r\n\r\n } else {\r\n dtInstance.column('issueTypeId:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n }\r\n\r\n dateChanged(event) {\r\n\r\n const that = this;\r\n if (event !== null && this.datatableElement.dtInstance !== null) {\r\n\r\n console.log('Changed date... new database query');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n const start = getUTCStartOfDayDateTimeFromTimezone(this.daterangepickerModel[0], this.authenticationService.getTimeZoneIana()).getTime();\r\n const end = getUTCStartOfDayDateTimeFromTimezone(this.daterangepickerModel[1], this.authenticationService.getTimeZoneIana()).getTime();\r\n dtInstance.ajax.url(that.deviceService.getPagingWithIssueTypesUrl() + '?startDate=' + Math.round(start / 1000) + '&endDate=' + Math.round(end / 1000)).load();\r\n });\r\n\r\n this.fireFilter(null);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dropdownSettingsDeviceTypes = getDropdownSettings();\r\n this.dropdown_CustomerNameSettings = getDropdownSettings();\r\n this.dropdownSettings = getDropdownSettings();\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownSettingsDeviceTypes = getTranslatedDropdownSettings(this.translateService, 'allDeviceTypes', true);\r\n this.dropdown_CustomerNameSettings = getTranslatedDropdownSettings(this.translateService, 'allCustomers', false);\r\n this.dropdownSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n });\r\n\r\n }\r\n\r\n changeFlag(id: string, isFlagged: boolean): void {\r\n this.deviceService.getDeviceById(id).subscribe(device => {\r\n device.isFlagged = isFlagged;\r\n this.deviceService.saveFlagged(device).subscribe(() => { });\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const groupColumn = 1;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'deviceissues_overview', this.translateService.instant('menu.issuesoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[groupColumn, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.deviceService.getPagingWithIssueTypesUrl() + '?startDate=' +\r\n Math.round(getUTCStartOfDayDateTimeFromTimezone(this.daterangepickerModel[0], this.authenticationService.getTimeZoneIana()).getTime() / 1000)\r\n + '&endDate=' +\r\n Math.round(getUTCStartOfDayDateTimeFromTimezone(this.daterangepickerModel[1], this.authenticationService.getTimeZoneIana()).getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n rowGroup: {\r\n dataSrc: this.dropdown_Group,\r\n // tslint:disable-next-line:no-shadowed-variable\r\n startRender: function (rows, group) {\r\n const groupName = (that.translatorService.translate(group, 'enums.issuetypes')).includes('enums.issuetypes') ? group : that.translatorService.translate(group, 'enums.issuetypes');\r\n return $('' + groupName + '');\r\n },\r\n // tslint:disable-next-line:no-shadowed-variable\r\n endRender: function (rows, group) {\r\n const totalCount = rows\r\n .data()\r\n .pluck('issueCount')\r\n .reduce(function (a, b) {\r\n return a + b;\r\n }, 0);\r\n\r\n return $('' + that.translateService.instant('general.summery') + '' + totalCount + '');\r\n },\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.checkRoute();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id', 'deviceTypeId', 'issueTypeId']\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n // http://localhost:4200/#/Issues/Overview\r\n return ' Details';\r\n }\r\n }, {\r\n name: 'issueType',\r\n data: 'issueType',\r\n title: this.translateService.instant('general.issue'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data, 'enums.issuetypes') : '';\r\n }\r\n }, {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.issue'),\r\n visible: false\r\n },\r\n {\r\n name: 'issueCount',\r\n data: 'issueCount',\r\n title: this.translateService.instant('general.noOfDays')\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n render: function (data, type, row) {\r\n return '' + data + '';\r\n }\r\n },\r\n {\r\n name: 'lastCommunication',\r\n data: 'lastCommunication',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n visible: false,\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n return data;\r\n }\r\n },\r\n {\r\n name: 'lastOccurrence',\r\n data: 'lastOccurrence',\r\n title: this.translateService.instant('general.lastOccurrence'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n return data;\r\n }\r\n },\r\n {\r\n name: 'deviceTypeId',\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n name: 'deviceTypeName',\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype')\r\n },\r\n {\r\n name: 'manufactorerName',\r\n data: 'manufactorerName',\r\n title: this.translateService.instant('general.manufacturer')\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n visible: false\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n visible: false\r\n },\r\n {\r\n name: 'customerName',\r\n data: 'customerName',\r\n title: this.translateService.instant('general.customer')\r\n },\r\n {\r\n name: 'unitId',\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId')\r\n },\r\n {\r\n name: 'severity',\r\n data: 'severity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n },\r\n {\r\n name: 'isFlagged',\r\n data: 'isFlagged',\r\n title: this.translateService.instant('general.isFlagged'),\r\n visible: true,\r\n width: '40',\r\n responsivePriority: 1,\r\n render: function (data, type, row) {\r\n if (!that.tableIds || (that.tableIds.length === 50)) {\r\n that.tableIds = [];\r\n }\r\n\r\n that.tableIds.push({ id: row.id, index: that.tableIds.length });\r\n\r\n return '';\r\n }\r\n }],\r\n pageLength: 50,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n drawCallback: () => {\r\n if (that.tableIds) {\r\n that.tableIds.forEach(item => {\r\n $('#' + item.id + '-' + item.index).click(() => {\r\n const equalDevices = that.tableIds.filter(tableRow => tableRow.id === item.id);\r\n equalDevices.forEach(device => {\r\n const star = $('#' + device.id + '-' + device.index);\r\n if (star.hasClass('fas')) {\r\n star.removeClass('fas').addClass('far');\r\n } else {\r\n star.removeClass('far').addClass('fas');\r\n }\r\n });\r\n that.changeFlag(item.id, $('#' + item.id + '-' + item.index).hasClass('fas'));\r\n });\r\n });\r\n }\r\n }\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedCustomers()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedDeviceTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.issuesoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import * as moment from 'moment';\r\nimport { CalculationSettingsService } from './../../services/calculationsettings/calculationsettings.service';\r\nimport { Component, OnInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, TileLayer } from 'leaflet';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { Issue, IssueJson } from 'app/models/issue.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { ResolutionTypeService } from '../../services/resolutiontypes/resolutiontypes.service';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { MapService } from '../../services/common/map.service';\r\nimport { IssueTypeSettings, CalculationSettings } from '../../models/calculationsettings.model';\r\nimport { IssueDetailsChartViewComponent } from './issueDetailsChart.component';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\nimport { DeviceSensorType } from 'app/models/sensor.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { formatViolationThreshold } from 'app/services/common/functions.service';\r\nimport { IssueTypeEnums, Uom } from 'app/common/enums';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Component({\r\n selector: 'fh-fh-issue-details',\r\n templateUrl: 'issueDetails.template.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [MapService],\r\n})\r\nexport class IssueDetailsViewComponent implements OnInit {\r\n @ViewChild(IssueDetailsChartViewComponent)\r\n private chartChild: IssueDetailsChartViewComponent;\r\n\r\n tagType = TagObjectType.Issue.valueOf();\r\n\r\n leafletView: any;\r\n markers: any;\r\n googleHybrid;\r\n googleMaps: TileLayer;\r\n noDataFound = false;\r\n mapFullWith = false;\r\n loadingMapData: boolean;\r\n geoJson: any;\r\n defaultMap;\r\n hasAdvice: any;\r\n hasSchedule: any;\r\n issueDescription: string;\r\n resolutionDescription: string;\r\n renderDateTime: number;\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n issue: Issue;\r\n device: Device;\r\n hasIssueTypeCalculationEnabled = true;\r\n\r\n sub: Subscription;\r\n loading = false;\r\n options;\r\n layersControl;\r\n map: Map;\r\n nearbyDevices;\r\n marker;\r\n\r\n deviceType: DeviceType;\r\n issueType: IssueType;\r\n issueUoM: string;\r\n\r\n threshold: number;\r\n outdatedThreshold: boolean;\r\n\r\n mapData = {\r\n data: []\r\n };\r\n\r\n heatmapLayer = new HeatmapOverlay({\r\n radius: 15,\r\n maxOpacity: 0.8,\r\n scaleRadius: false,\r\n useLocalExtrema: true,\r\n latField: 'lat',\r\n lngField: 'lng',\r\n valueField: 'count'\r\n });\r\n\r\n outdatedUpdate: Date;\r\n loadingSettings: boolean;\r\n loadingDevice: boolean;\r\n duration: moment.Duration;\r\n thresholdUpper: number;\r\n thresholdLower: number;\r\n violationDuration: moment.Duration;\r\n violationThresholdLower: number;\r\n violationThresholdUpper: number;\r\n thresholdHasBounds: any;\r\n trips: any;\r\n tripPolyLine: any;\r\n issuePolyLine: any;\r\n geoJsonData: any;\r\n permissions: {};\r\n setting: IssueTypeSettings;\r\n hasIssueTypeCalculationSource = 0;\r\n postSetting: CalculationSettings;\r\n sensorTypes: DeviceSensorType[];\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private cd: ChangeDetectorRef, private theMapService: MapService, private http: HttpClient, private deviceService: DeviceService,\r\n private issueService: IssueService, private route: ActivatedRoute, private router: Router, private authentication: AuthenticationService,\r\n private calculationSettingsService: CalculationSettingsService, private translateService: TranslateService) {\r\n this.issue = null;\r\n\r\n this.initMap();\r\n }\r\n\r\n // Function\r\n onEachFeature(feature, layer) {\r\n const that = this;\r\n layer.bindPopup('Issue');\r\n layer.on('click', () => {\r\n console.log(feature);\r\n });\r\n }\r\n\r\n setIssueJsonDetails(issueJson: IssueJson, issue: Issue): any {\r\n let issueDateDetected = false;\r\n const that = this;\r\n if (issueJson.geoJson) {\r\n this.geoJsonData = issueJson.geoJson;\r\n }\r\n // Set on map\r\n setTimeout(() => {\r\n if (issueJson.geoJson) {\r\n this.geoJsonData = issueJson.geoJson;\r\n\r\n if (this.geoJson) {\r\n this.map.removeLayer(this.geoJson);\r\n }\r\n const pointList = [];\r\n const issuePointList = [];\r\n\r\n this.geoJson = L.geoJSON(JSON.parse(issueJson.geoJson), {\r\n style: function (feature) {\r\n if (feature.properties.fill) { return { color: feature.properties.fill }; }\r\n if (feature.properties.stroke) { return { stroke: feature.properties.stroke }; }\r\n },\r\n onEachFeature: this.onEachFeature,\r\n pointToLayer: function (feature, latlng) {\r\n\r\n that.mapData.data.push({\r\n lat: latlng.lat,\r\n lng: latlng.lng,\r\n count: 1\r\n });\r\n\r\n pointList.push(new L.LatLng(latlng.lat, latlng.lng));\r\n\r\n if (issueDateDetected) {\r\n issuePointList.push(new L.LatLng(latlng.lat, latlng.lng));\r\n issueDateDetected = false;\r\n }\r\n if (moment(feature.properties.Timestamp).isSame(issue.issueDate)) {\r\n issuePointList.push(new L.LatLng(latlng.lat, latlng.lng));\r\n issueDateDetected = true;\r\n }\r\n\r\n const theMarker = new PruneCluster.Marker(latlng.lat, latlng.lng);\r\n theMarker.category = Math.ceil(Math.random() * 6).toString();\r\n theMarker.data.popup = 'device.name';\r\n theMarker.data.title = latlng.lat + ':' + latlng.lng;\r\n theMarker.data.device = 'device';\r\n that.leafletView.RegisterMarker(theMarker);\r\n return false;\r\n },\r\n }).addTo(this.markers);\r\n\r\n this.loadingMapData = false;\r\n this.noDataFound = false;\r\n\r\n // Trip\r\n if (this.tripPolyLine) { this.map.removeLayer(this.tripPolyLine); }\r\n if (this.issuePolyLine) { this.map.removeLayer(this.issuePolyLine); }\r\n\r\n this.tripPolyLine = new L.Polyline(pointList, {\r\n color: '#2490EA',\r\n weight: 4,\r\n opacity: 0.9,\r\n smoothFactor: 1\r\n });\r\n\r\n this.issuePolyLine = new L.Polyline(issuePointList, {\r\n color: '#FF0000',\r\n weight: 4,\r\n opacity: 0.9,\r\n smoothFactor: 1\r\n });\r\n this.tripPolyLine.addTo(this.trips);\r\n\r\n // Issue types that should have a red plot on the issue date\r\n const plotIssueTypes = [IssueTypeEnums.OutlierDistance, IssueTypeEnums.OutlierTime, IssueTypeEnums.TooMuchDistancePerMessage];\r\n if (plotIssueTypes.indexOf(IssueTypeEnums[IssueTypeEnums[issue.issueType]]) !== -1) {\r\n this.issuePolyLine.addTo(this.trips);\r\n }\r\n\r\n const bounds = this.tripPolyLine.getBounds();\r\n\r\n if (bounds.isValid()) {\r\n this.map.fitBounds(bounds, { padding: [15, 15] });\r\n }\r\n\r\n this.heatmapLayer.setData(this.mapData);\r\n this.cd.markForCheck();\r\n } else {\r\n this.loadingMapData = false;\r\n this.noDataFound = true;\r\n this.cd.markForCheck();\r\n }\r\n }, 100);\r\n // End set on map\r\n }\r\n\r\n setIssueDetails(issue: Issue): any {\r\n\r\n if (issue == null) {\r\n this.router.navigate(['/Issues/Overview'])\r\n } else {\r\n this.issue = issue;\r\n this.deviceService.getDeviceById(issue.deviceId).subscribe(device => {\r\n this.device = device;\r\n this.loadingDevice = false;\r\n if (this.issue.sensorName) {\r\n const sensor = device.sensors.find(x => x.name === this.issue.sensorName);\r\n if (sensor != null) {\r\n this.issueUoM = sensor.metrics;\r\n }\r\n } else if (issue.issueTypeUomDisplay !== 0) {\r\n this.issueUoM = issue.issueTypeUomDisplayDescription;\r\n } else {\r\n this.issueUoM = issue.issueTypeUomDescription;\r\n }\r\n\r\n this.device.sensors.forEach(sensor => {\r\n sensor.deviceSensorType = this.translateService.instant('enums.sensorTypes.' + sensor.deviceSensorTypeId);\r\n });\r\n\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n updateSchedule(event) {\r\n // Update the schedule\r\n console.log('Update the schedule');\r\n this.renderDateTime = new Date().getTime();\r\n }\r\n\r\n changeIssueCalculation(event) {\r\n this.loadingDevice = true;\r\n this.device.hasIssueCalculationEnabled = !this.device.hasIssueCalculationEnabled;\r\n this.deviceService.saveIssueCalculation(this.device).subscribe(result => {\r\n this.loadingDevice = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n changeIssueTypeCalculation(event) {\r\n this.loadingDevice = true;\r\n\r\n this.setting.isActive = !this.setting.isActive;\r\n\r\n const postSetting = new CalculationSettings();\r\n postSetting.level = 5;\r\n postSetting.issueTypeSettings = [this.setting];\r\n\r\n this.calculationSettingsService.saveCalculationSettings(postSetting, this.device.id).subscribe(result => {\r\n this.loadingDevice = false;\r\n this.hasIssueTypeCalculationSource = 5;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.issue = new Issue;\r\n this.issue.id = '';\r\n this.loading = true;\r\n this.loadingSettings = true;\r\n this.loadingMapData = true;\r\n this.loadingDevice = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.issueService.getIssueById(id).subscribe(issue => {\r\n this.setIssueDetails(issue);\r\n\r\n this.thresholdLower = formatViolationThreshold(this.translateService, issue.issueType, issue.lowerThreshold);\r\n this.thresholdUpper = (issue.upperThreshold !== 0) ? formatViolationThreshold(this.translateService, issue.issueType, issue.upperThreshold, true) : null;\r\n this.duration = moment.duration(issue.duration * 1000);\r\n if (issue.violationDuration) {\r\n this.violationDuration = moment.duration(issue.violationDuration * 1000);\r\n }\r\n\r\n this.violationThresholdLower = formatViolationThreshold(this.translateService, issue.issueType, issue.violationLowerThreshold);\r\n this.violationThresholdUpper = issue.violationUpperThreshold;\r\n\r\n this.calculationSettingsService.getCalculationSettings(5, this.issue.deviceId).subscribe(result => {\r\n if (result.issueTypeSettings) {\r\n const setting = result.issueTypeSettings.filter(x => x.issueType === this.issue.issueType);\r\n if (setting.length > 0) {\r\n this.setting = setting[0];\r\n if (setting) {\r\n this.thresholdHasBounds = setting[0].upperThreshold !== 0;\r\n this.hasIssueTypeCalculationEnabled = setting[0].isActive;\r\n this.hasIssueTypeCalculationSource = setting[0].source;\r\n\r\n if (new Date(setting[0].modifiedDate) > this.issue.issueDate) {\r\n this.outdatedThreshold = true;\r\n this.outdatedUpdate = setting[0].modifiedDate;\r\n } else {\r\n this.outdatedThreshold = false;\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n this.loadingSettings = false;\r\n });\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n this.issueService.getIssueJsonById(id).subscribe(result => {\r\n this.setIssueJsonDetails(result, this.issue);\r\n this.updatePath();\r\n if (this.issue.issueType === IssueTypeEnums.NoCommunication ||\r\n this.issue.issueType === IssueTypeEnums.NoCommunicationPowerLost) {\r\n this.applyMarker();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n applyMarker() {\r\n let theMarker;\r\n const theIcon = icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n if (this.map) {\r\n const lat = JSON.parse(this.geoJsonData).features[0].geometry.coordinates[1];\r\n const lon = JSON.parse(this.geoJsonData).features[0].geometry.coordinates[0];\r\n theMarker = marker([lat, lon], { icon: theIcon }).addTo(this.map);\r\n this.map.setView([lat, lon], 6);\r\n }\r\n }\r\n\r\n // When redrawing the chart on detail change\r\n updatePath() {\r\n setTimeout(() => {\r\n console.log('Forcing path update.. waited 200ms for data to fetch');\r\n if (this.chartChild) {\r\n this.chartChild.updateChanges();\r\n this.chartChild.reflowChart();\r\n this.cd.markForCheck();\r\n }\r\n }, 100);\r\n }\r\n\r\n // When flipping from full screen mode to normal mode\r\n reRenderMap() {\r\n this.loadingMapData = true;\r\n\r\n this.mapFullWith = !this.mapFullWith;\r\n\r\n setTimeout(() => {\r\n this.map.invalidateSize()\r\n if (this.chartChild) {\r\n this.chartChild.reflowChart();\r\n } else {\r\n console.log('No child to update chart');\r\n }\r\n this.loadingMapData = false;\r\n this.cd.markForCheck();\r\n }, 100);\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.markers = L.featureGroup();\r\n this.trips = L.featureGroup();\r\n this.leafletView = new PruneClusterForLeaflet();\r\n\r\n this.maps = getMapProviders(L);\r\n\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n initMaps.push(this.trips);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {\r\n 'Prunecluster': this.leafletView,\r\n 'Heatmap': this.heatmapLayer,\r\n 'Markers': this.markers,\r\n 'Trips': this.trips\r\n };\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n\r\n setPruneCluster() {\r\n\r\n const that = this;\r\n this.theMapService.setPruneCluster(this.leafletView);\r\n\r\n this.leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.issues' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.issuedetails' | translate }}\r\n
  6. \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'general.deviceDetails' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'general.device' | translate }}\r\n \r\n {{\r\n issue?.deviceName }}\r\n
\r\n {{'general.devicetype' | translate }}\r\n \r\n {{\r\n device?.modelName }}\r\n \r\n
\r\n {{'general.manufacturer' | translate }}\r\n \r\n {{ device?.manufacturerName }}\r\n
\r\n {{ 'general.isActiveCalculating' | translate}}\r\n \r\n \r\n
\r\n {{ ('general.calculateIssueType' | translate).replace('{0}',\r\n issue?.issueTypeDescription)}}\r\n \r\n \r\n \r\n
\r\n {{ 'general.sourceOfThreshold' | translate }}\r\n \r\n {{ ('enums.settingsLevel.' + hasIssueTypeCalculationSource) | translate }} {{\r\n 'general.level' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.issuedetails' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'general.date' | translate }}\r\n \r\n {{ issue?.issueDate | amDateFormat: 'LLL' }}\r\n
\r\n {{'general.closedDate' | translate }}\r\n \r\n {{ issue?.closedDate }}\r\n
\r\n {{'general.status' | translate }}\r\n \r\n {{ issue?.statusDescription }}\r\n
\r\n {{ 'general.customer' | translate}}\r\n \r\n {{\r\n device?.customerName\r\n }}\r\n \r\n
\r\n {{ 'general.platform' | translate}}\r\n \r\n {{\r\n device?.platformName }} - {{ device?.accountPlatformName }}\r\n
\r\n {{'general.issuetype' | translate }}\r\n \r\n {{ issue?.issueTypeDescription }}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'general.sensorName' | translate }}\r\n \r\n {{ issue?.sensorName }}\r\n
\r\n {{ 'general.thresholdSettingsDuringCalculation' | translate }}\r\n \r\n \r\n \r\n \r\n
    \r\n
  • {{\r\n 'general.threshold' | translate }}: {{ thresholdLower }}\r\n
  • \r\n \r\n
  • {{ 'general.thresholdUpper' | translate }}: {{ thresholdUpper }}
  • \r\n
  • {{ 'general.thresholdLower' | translate }}: {{ thresholdLower }}
  • \r\n
    \r\n \r\n
  • {{ 'general.threshold' | translate }}: {{ thresholdUpper }}
  • \r\n
  • {{ 'general.threshold' | translate }}: {{ thresholdLower }}
  • \r\n
    \r\n
  • {{ 'general.duration' | translate }}:\r\n {{ duration?.humanize() }}\r\n
  • \r\n
\r\n
\r\n {{ 'general.thresholdSettingsDuringCalculation' | translate }}\r\n \r\n
    \r\n
  • {{ 'general.duration' | translate }}: {{ duration?.humanize() }}\r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n {{ 'general.violationThresholds' | translate }}\r\n \r\n
    \r\n
  • \r\n {{ 'general.threshold' | translate }}: {{ violationThresholdLower }}\r\n
  • \r\n
  • \r\n {{ 'general.thresholdUpper' | translate }}: {{ violationThresholdUpper }}\r\n
  • \r\n
  • \r\n {{ 'general.duration' | translate }}: {{ violationDuration.humanize() }}\r\n
  • \r\n
\r\n
\r\n {{'general.resolution' | translate }}\r\n \r\n {{ issue?.resolutionDescription }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.issuesummary' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.nodatafound' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.severity' | translate }}\r\n \r\n {{ ('enums.severity.' + issue?.severity) | translate }}\r\n
\r\n {{ 'general.hasMotion' | translate }}\r\n \r\n {{ issue?.hasMotion ? ('general.yes' | translate) : ('general.no' | translate) }}\r\n
\r\n {{ 'general.ignitionCount' | translate }}\r\n \r\n {{ issue?.ignitionCount }}\r\n
\r\n {{ 'general.locationCount' | translate }}\r\n \r\n {{ issue?.messageCount }}\r\n
\r\n {{ 'general.locationCountWithoutGpsFix' | translate }}\r\n \r\n {{ issue?.noGpsFixCount }}\r\n
\r\n {{ 'general.distance' | translate }}\r\n \r\n {{ issue?.distanceInKm }} km\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'issuedetails.location' | translate }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n Warning! No location data found\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
","\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, AfterViewInit, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { Input } from '@angular/core';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { FormattedChartDataObject } from '../../models/formatChartData.model';\r\nimport { Issue } from '../../models/issue.model';\r\nimport { IssueTypeEnums } from 'app/common/enums';\r\nimport * as moment from 'moment-timezone';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-issue-details-chart',\r\n templateUrl: 'issueDetailsChart.template.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [FhChartService]\r\n})\r\nexport class IssueDetailsChartViewComponent implements OnInit, OnChanges {\r\n @Input() data: any;\r\n @Input() map: Map;\r\n @Input() deviceSensors: any;\r\n @Input() issue: Issue;\r\n\r\n geoJsonData;\r\n chart: any;\r\n loading = true;\r\n isDebugMode = false;\r\n showSensors = false;\r\n loadingJson: boolean;\r\n sensors = [];\r\n chartDataTitleAndUnitsOfMeasure = {};\r\n chartDataYAxes = [];\r\n plotIssueBands = true;\r\n formattedData: FormattedChartDataObject[];\r\n\r\n\r\n constructor(private cd: ChangeDetectorRef, private chartService: FhChartService, private http: HttpClient, private deviceService: DeviceService,\r\n private route: ActivatedRoute, private router: Router, private translateService: TranslateService) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log('NgOnChanges !');\r\n }\r\n\r\n updateChanges() {\r\n console.log('Update changes !');\r\n\r\n this.chart = undefined;\r\n this.geoJsonData = undefined;\r\n this.sensors = [];\r\n this.chartDataTitleAndUnitsOfMeasure = {};\r\n this.chartDataYAxes = [];\r\n this.formattedData = [];\r\n this.renderChart();\r\n }\r\n\r\n flipDebugMode() {\r\n this.loadingJson = true;\r\n this.cd.markForCheck();\r\n setTimeout(() => {\r\n this.isDebugMode = !this.isDebugMode\r\n this.loadingJson = false;\r\n this.cd.markForCheck();\r\n }, 100);\r\n }\r\n\r\n flipPlotIssueBand() {\r\n this.plotIssueBands = !this.plotIssueBands;\r\n this.updateChartData();\r\n }\r\n\r\n renderChart() {\r\n console.log('rerender chart');\r\n if (!(this.data === undefined || this.data === '')) {\r\n this.geoJsonData = JSON.parse(this.data);\r\n const formattedData: FormattedChartDataObject[] = [];\r\n\r\n if (this.geoJsonData.features) {\r\n this.geoJsonData.features.forEach((dataPoint: any) => {\r\n let tempExternalPower = dataPoint.properties.ExternalPower;\r\n let tempIgnition = dataPoint.properties.Ignition;\r\n // TODO: Old name of GPSFix was GPSLocation. Had to stay in for backwards compatability with geojsons of old issues.\r\n // Alter to only take properties.GPSFix after issues before 31/01/2019 have become redundant.\r\n let tempGPSFix = (dataPoint.properties.GPSFix !== undefined) ? dataPoint.properties.GPSFix : dataPoint.properties.GPSLocation\r\n\r\n let tempDriverInfo = dataPoint.properties.DriverInfo;\r\n\r\n\r\n if (tempExternalPower === true || tempExternalPower === 'True' || tempExternalPower === '1') {\r\n tempExternalPower = 1;\r\n } else if (tempExternalPower === false || tempExternalPower === 'False' || tempExternalPower === '0') {\r\n tempExternalPower = 0;\r\n } else {\r\n tempExternalPower = null;\r\n }\r\n\r\n if (tempIgnition === true || tempIgnition === 'True' || tempIgnition === '1') {\r\n tempIgnition = 1;\r\n } else if (tempIgnition === false || tempIgnition === 'False' || tempIgnition === '0') {\r\n tempIgnition = 0;\r\n } else {\r\n tempIgnition = null;\r\n }\r\n\r\n if (tempGPSFix === true || tempGPSFix === 'True' || tempGPSFix === '1') {\r\n tempGPSFix = 1;\r\n } else if (tempGPSFix === false || tempGPSFix === 'False' || tempGPSFix === '0') {\r\n tempGPSFix = 0;\r\n } else {\r\n tempGPSFix = null;\r\n }\r\n\r\n if (tempDriverInfo === true || tempDriverInfo === 'True' || tempDriverInfo === '1') {\r\n tempDriverInfo = 1;\r\n } else if (tempDriverInfo === false || tempDriverInfo === 'False' || tempDriverInfo === '0') {\r\n tempDriverInfo = 0;\r\n } else {\r\n tempDriverInfo = null;\r\n }\r\n\r\n if (dataPoint.geometry && dataPoint.properties) {\r\n const point: FormattedChartDataObject = {\r\n date: moment.utc(dataPoint.properties.Timestamp).toDate().getTime(),\r\n lat: dataPoint.geometry.coordinates[0],\r\n lon: dataPoint.geometry.coordinates[1],\r\n speed: dataPoint.properties.Speed,\r\n exPower: tempExternalPower,\r\n ignition: tempIgnition,\r\n odo: parseFloat(dataPoint.properties.Odometer),\r\n sensors: dataPoint.properties.Sensors,\r\n sattelites: dataPoint.properties.Sattelites,\r\n gsmStrength: dataPoint.properties.Gsm != null ? dataPoint.properties.Gsm.SignalStrength : null,\r\n driverInfo: tempDriverInfo,\r\n cumulativeDistance: dataPoint.properties.CumulativeDistance,\r\n invervalMessage: dataPoint.properties.IntervalMessage,\r\n gpsFix: tempGPSFix,\r\n hdop: dataPoint.properties.Hdop,\r\n delayInMessage: dataPoint.properties.DelayInMessage,\r\n messageInViolation: dataPoint.properties.MessageInViolation,\r\n driverId: dataPoint.properties.DriverId\r\n };\r\n point.cumulativeDistance = point.cumulativeDistance / 1000;\r\n point.cumulativeDistance = parseFloat(point.cumulativeDistance.toFixed(2));\r\n formattedData.push(point);\r\n }\r\n });\r\n\r\n this.formattedData = formattedData;\r\n this.updateChartData();\r\n }\r\n }\r\n this.loading = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.updateChanges();\r\n }\r\n\r\n getPlotLine(date: Date) {\r\n return {\r\n color: '#FF0000',\r\n dashStyle: 'dash',\r\n width: 1,\r\n value: date,\r\n zIndex: 10,\r\n };\r\n }\r\n\r\n getPlotBand(date1: Date, date2: Date) {\r\n return {\r\n color: 'rgba(255, 0, 0, 0.35)',\r\n backgroundColor: null,\r\n from: date1,\r\n to: date2,\r\n zIndex: 5,\r\n fillOpacity: 1\r\n };\r\n }\r\n\r\n updateChartData() {\r\n\r\n console.log('Update chartdata');\r\n\r\n const plotBands = [];\r\n const plotLines = []\r\n\r\n if (this.plotIssueBands) {\r\n if (this.issue.issueType === IssueTypeEnums.OutlierTime) {\r\n const issueDates: Date[] = [];\r\n issueDates.push(this.issue.issueDate);\r\n let next = false;\r\n\r\n this.formattedData.forEach(dataPoint => {\r\n if (next && !(this.issue.issueDate.valueOf() === dataPoint.date)) {\r\n issueDates.push(new Date(dataPoint.date))\r\n next = false;\r\n }\r\n if (this.issue.issueDate.valueOf() === dataPoint.date) {\r\n next = true;\r\n }\r\n });\r\n plotBands.push(this.getPlotBand(issueDates[0], issueDates[1]));\r\n plotLines.push(this.getPlotLine(issueDates[0]));\r\n plotLines.push(this.getPlotLine(issueDates[1]));\r\n\r\n } else if (this.issue.issueType === IssueTypeEnums.GpsDrift ||\r\n this.issue.issueType === IssueTypeEnums.MissingDriver ||\r\n this.issue.issueType === IssueTypeEnums.DelayedMessages ||\r\n this.issue.issueType === IssueTypeEnums.BadGpsReception) {\r\n let startIssueDate = null;\r\n for (let index = 0; index < this.formattedData.length; index++) {\r\n const element = this.formattedData[index];\r\n if (element.messageInViolation && startIssueDate == null) {\r\n startIssueDate = new Date(element.date);\r\n }\r\n if (!element.messageInViolation && startIssueDate !== null) {\r\n plotBands.push(this.getPlotBand(new Date(startIssueDate), new Date(element.date)));\r\n startIssueDate = null;\r\n }\r\n if (index === (this.formattedData.length - 1) && startIssueDate !== null) {\r\n plotBands.push(this.getPlotBand(new Date(startIssueDate), new Date(element.date)));\r\n startIssueDate = null;\r\n }\r\n }\r\n } else {\r\n plotLines.push(this.getPlotLine(this.issue.issueDate));\r\n }\r\n }\r\n\r\n const chartData = this.filterChartData(this.formattedData);\r\n\r\n console.log('Update chart');\r\n this.chart = this.chartService.generateMultiChart(chartData, this.map, plotLines, plotBands, this.chartDataTitleAndUnitsOfMeasure, this.chartDataYAxes, this.translateService);\r\n this.cd.markForCheck();\r\n }\r\n\r\n reflowChart() {\r\n console.log('reflow chart');\r\n if (this.chart && this.chart.ref) {\r\n this.chart.ref.update({ /* options object */ }, true);\r\n this.chart.ref.reflow();\r\n }\r\n }\r\n\r\n filterChartData(formattedData: FormattedChartDataObject[]): any {\r\n const chartSpeedData = [];\r\n const chartOdoData = [];\r\n const chartSatteliteData = [];\r\n const chartGsmStrengthData = [];\r\n const chartExternalPowerData = [];\r\n const chartIgnitionData = [];\r\n const chartCumulativeData = [];\r\n const chartIntervalMessage = [];\r\n const chartDriverInfo = [];\r\n const chartGPSFix = [];\r\n const chartHdop = [];\r\n const chartDelayInMessages = [];\r\n const allSensorData = [];\r\n let lastData = null;\r\n\r\n for (let index = 0; index < formattedData.length; index++) {\r\n const data = formattedData[index];\r\n const coordinate = [data.lon, data.lat];\r\n const dateTime = data.date;\r\n\r\n chartSpeedData.push({ x: dateTime, y: data.speed, latlon: coordinate });\r\n chartOdoData.push({ x: dateTime, y: data.odo, latlon: coordinate });\r\n chartSatteliteData.push({ x: dateTime, y: data.sattelites, latlon: coordinate });\r\n chartHdop.push({ x: dateTime, y: data.hdop, latlon: coordinate });\r\n chartGsmStrengthData.push({ x: dateTime, y: data.gsmStrength, latlon: coordinate });\r\n chartDriverInfo.push({ x: dateTime, y: data.driverInfo, n: data.driverId, latlon: coordinate });\r\n chartCumulativeData.push({ x: dateTime, y: data.cumulativeDistance, latlon: coordinate });\r\n chartIntervalMessage.push({ x: dateTime, y: data.invervalMessage, latlon: coordinate });\r\n chartDelayInMessages.push({ x: dateTime, y: data.delayInMessage, latlon: coordinate });\r\n allSensorData.push([]);\r\n chartExternalPowerData.push({ x: dateTime, y: data.exPower, latlon: coordinate });\r\n chartIgnitionData.push({ x: dateTime, y: data.ignition, latlon: coordinate });\r\n chartGPSFix.push({ x: dateTime, y: data.gpsFix, latlon: coordinate });\r\n\r\n for (const sensor in data.sensors) {\r\n if (data.sensors.hasOwnProperty(sensor)) {\r\n let element = data.sensors[sensor];\r\n if (data.sensors[sensor] === 'True') {\r\n element = 1;\r\n } else if (data.sensors[sensor] === 'False') {\r\n element = 0;\r\n }\r\n allSensorData[index].push({ x: dateTime, y: element, latlon: coordinate, sensorName: sensor });\r\n }\r\n }\r\n lastData = data;\r\n }\r\n const chartSensorData = [];\r\n\r\n allSensorData.forEach(sensorsData => {\r\n let index = 0;\r\n for (const sensorData in sensorsData) {\r\n if (sensorsData.hasOwnProperty(sensorData)) {\r\n while (chartSensorData[index] == null) {\r\n chartSensorData.push([]);\r\n }\r\n const element = sensorsData[sensorData];\r\n element.y = parseFloat(element.y);\r\n chartSensorData[index].push(element);\r\n index++;\r\n }\r\n }\r\n });\r\n const chartData = [];\r\n let show = false;\r\n\r\n if (chartExternalPowerData.some(x => x.y)) {\r\n chartData.push(this.getExternalPowerChart(chartExternalPowerData));\r\n }\r\n if (chartIgnitionData.some(x => x.y)) {\r\n chartData.push(this.getIgnitionChart(chartIgnitionData));\r\n }\r\n if (chartSpeedData.some(x => x.y)) {\r\n chartData.push(this.getSpeedChart(chartSpeedData));\r\n }\r\n if (chartOdoData.some(x => x.y)) {\r\n show = (this.issue.issueType === IssueTypeEnums.OdoSensorStuck ||\r\n this.issue.issueType === IssueTypeEnums.OdoOutOfBounds ||\r\n this.issue.issueType === IssueTypeEnums.GpsStuck);\r\n chartData.push(this.getOdoChart(chartOdoData, show));\r\n }\r\n if (chartSatteliteData.some(x => x.y)) {\r\n chartData.push(this.getSatteliteChart(chartSatteliteData));\r\n }\r\n if (chartGsmStrengthData.some(x => x.y)) {\r\n chartData.push(this.getGsmStrengthChart(chartGsmStrengthData));\r\n }\r\n\r\n if (chartDriverInfo.find(x => x.y != null)) {\r\n chartData.push(this.getDriverInfoChart(chartDriverInfo));\r\n }\r\n if (chartCumulativeData.some(x => x.y)) {\r\n chartData.push(this.getCumulativeDistanceChart(chartCumulativeData));\r\n }\r\n if (chartIntervalMessage.some(x => x.y)) {\r\n chartData.push(this.getIntervalMessageChart(chartIntervalMessage));\r\n }\r\n if (chartDelayInMessages.some(x => x.y)) {\r\n chartData.push(this.getDelayInMessageChart(chartDelayInMessages));\r\n }\r\n if (chartGPSFix.find(x => x.y != null)) {\r\n chartData.push(this.getGPSFixChart(chartGPSFix));\r\n }\r\n if (chartHdop.some(x => x.y)) {\r\n show = (this.issue.issueType === IssueTypeEnums.GpsDrift ||\r\n this.issue.issueType === IssueTypeEnums.BadGpsReception);\r\n chartData.push(this.getHdopChart(chartHdop, show));\r\n }\r\n let i = 1;\r\n chartSensorData.forEach(sensorData => {\r\n let sensor;\r\n this.deviceSensors.forEach(deviceSensor => {\r\n if (deviceSensor.id === sensorData[0].sensorName) {\r\n sensor = deviceSensor;\r\n }\r\n });\r\n if (sensor) {\r\n const title = sensor.name ? sensor.name : this.translateService.instant('chart.sensorDefaultName') + ' ' + i;\r\n const unitOfMeasure = sensor.metrics;\r\n const yAxis = {\r\n visible: false,\r\n showEmpty: false,\r\n step: 'left',\r\n labels: {\r\n format: '{value}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n const visibility = (this.issue.sensorName === sensor.name || (sensor.deviceSensorTypeId === 11 && this.issue.issueType === IssueTypeEnums.GpsStuck))\r\n chartData.push(\r\n {\r\n name: title,\r\n type: 'line',\r\n step: 'left',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n data: sensorData,\r\n lineWidth: 1,\r\n visible: visibility,\r\n }\r\n );\r\n i++;\r\n } else {\r\n console.log('Sensor ' + sensorData[0].sensorName + ' could not be found');\r\n const title = this.translateService.instant('chart.sensorDefaultName') + ' ' + i;\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n visible: false,\r\n showEmpty: false,\r\n step: 'left',\r\n labels: {\r\n format: '{value}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n const visibility = false;\r\n chartData.push(\r\n {\r\n name: title,\r\n type: 'line',\r\n step: 'left',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n data: sensorData,\r\n lineWidth: 1,\r\n visible: visibility,\r\n }\r\n );\r\n i++;\r\n }\r\n });\r\n\r\n return chartData;\r\n }\r\n\r\n getExternalPowerChart(data: any) {\r\n const title = this.translateService.instant('chart.externalPower');\r\n const unitOfMeasure = this.translateService.instant('chart.onOff');\r\n const yAxis = {\r\n allowDecimals: false,\r\n visible: false,\r\n min: -2,\r\n max: 11,\r\n tickInterval: 1,\r\n endOnTick: false,\r\n title: {\r\n text: title\r\n },\r\n categories: ['OFF', 'ON', ''],\r\n labels: {\r\n formatter: function () {\r\n return this.value;\r\n }\r\n },\r\n opposite: true\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n color: '#5A3E67',\r\n zIndex: 1,\r\n step: 'left',\r\n marker: {\r\n enabled: false,\r\n lineWidth: 1,\r\n radius: 1,\r\n fillColor: '#5A3E67',\r\n symbol: 'square'\r\n },\r\n yAxis: axisIndex,\r\n data: data\r\n }\r\n }\r\n\r\n getIgnitionChart(data: any) {\r\n const title = this.translateService.instant('chart.ignition');\r\n const unitOfMeasure = this.translateService.instant('chart.onOff');\r\n const yAxis = {\r\n allowDecimals: false,\r\n visible: false,\r\n min: 0,\r\n max: 10,\r\n tickInterval: 1,\r\n endOnTick: false,\r\n title: {\r\n text: title\r\n },\r\n categories: ['OFF', 'ON', ''],\r\n labels: {\r\n formatter: function () {\r\n return this.value;\r\n }\r\n },\r\n opposite: true\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n color: '#ff9933',\r\n zIndex: 3,\r\n step: 'left',\r\n marker: {\r\n enabled: false,\r\n lineWidth: 1,\r\n radius: 1,\r\n fillColor: '#ff9933',\r\n symbol: 'square'\r\n },\r\n yAxis: axisIndex,\r\n data: data\r\n }\r\n }\r\n\r\n getSpeedChart(data: any) {\r\n const title = this.translateService.instant('chart.speed');\r\n const unitOfMeasure = this.translateService.instant('abbreviation.kilometerPerHour');\r\n const yAxis = {\r\n visible: true,\r\n showEmpty: false,\r\n labels: {\r\n format: '{value}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'area',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: '#D6A282',\r\n data: data,\r\n lineWidth: 1,\r\n visible: true\r\n }\r\n }\r\n\r\n getOdoChart(data: any, show: boolean) {\r\n const title = this.translateService.instant('chart.Odometer');\r\n let unitOfMeasure = '';\r\n if ([24, 25, 26].find(x => x === this.issue.issueType)) {\r\n unitOfMeasure = this.deviceSensors.find(x => x.name === this.issue.sensorName).metrics;\r\n } else {\r\n unitOfMeasure = this.translateService.instant('abbreviation.meters');\r\n }\r\n const yAxis = {\r\n visible: false,\r\n allowDecimals: false,\r\n tickInterval: 1,\r\n endOnTick: false,\r\n gridLineWidth: 0,\r\n title: {\r\n text: title\r\n },\r\n labels: {\r\n format: '{value}'\r\n },\r\n opposite: true\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: '#186F7A',\r\n data: data,\r\n visible: show\r\n }\r\n }\r\n\r\n getSatteliteChart(data: any) {\r\n const title = this.translateService.instant('chart.sattelites');\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n visible: false,\r\n allowDecimals: true,\r\n labels: {\r\n format: '{point.y:.2f}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: '#30187A',\r\n data: data,\r\n lineWidth: 1,\r\n visible: false\r\n }\r\n }\r\n\r\n getHdopChart(data: any, show: boolean) {\r\n const title = this.translateService.instant('chart.hdop');\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n visible: false,\r\n allowDecimals: true,\r\n labels: {\r\n format: '{point.y:.2f}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: '#30187A',\r\n data: data,\r\n lineWidth: 1,\r\n visible: show\r\n }\r\n }\r\n\r\n getGsmStrengthChart(data: any) {\r\n const title = this.translateService.instant('chart.gsmStrength');\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n visible: false,\r\n allowDecimals: true,\r\n labels: {\r\n format: '{point.y:.2f}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: '#187A4C',\r\n data: data,\r\n lineWidth: 1,\r\n visible: false\r\n }\r\n }\r\n\r\n getDriverInfoChart(data: any) {\r\n const title = this.translateService.instant('chart.driverInfo');\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n allowDecimals: false,\r\n visible: false,\r\n min: -6,\r\n max: 5,\r\n tickInterval: 1,\r\n endOnTick: false,\r\n title: {\r\n text: title\r\n },\r\n categories: ['OFF', 'ON', ''],\r\n labels: {\r\n formatter: function () {\r\n return this.value;\r\n }\r\n },\r\n opposite: true\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n color: '#D88CFF',\r\n zIndex: 3,\r\n step: 'left',\r\n marker: {\r\n enabled: false,\r\n lineWidth: 1,\r\n radius: 1,\r\n fillColor: '#0119EC',\r\n symbol: 'square'\r\n },\r\n yAxis: axisIndex,\r\n data: data\r\n }\r\n }\r\n\r\n getCumulativeDistanceChart(data: any) {\r\n const title = this.translateService.instant('chart.cumulativeDistance');\r\n const unitOfMeasure = this.translateService.instant('abbreviation.kiloMeters');\r\n const yAxis = {\r\n visible: true,\r\n opposite: true,\r\n allowDecimals: true,\r\n showEmpty: false,\r\n labels: {\r\n format: '{value}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'areaspline',\r\n zIndex: 5,\r\n yAxis: axisIndex,\r\n color: '#187A4C',\r\n data: data,\r\n lineWidth: 1,\r\n visible: true\r\n }\r\n }\r\n\r\n getIntervalMessageChart(data: any) {\r\n const title = this.translateService.instant('chart.intervalMessage');\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n visible: false,\r\n opposite: true,\r\n allowDecimals: true,\r\n showEmpty: false,\r\n labels: {\r\n format: '{value}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'column',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: 'rgba(128, 128, 128, 0.80)',\r\n data: data,\r\n visible: true,\r\n pointWidth: 3,\r\n }\r\n }\r\n\r\n getDelayInMessageChart(data: any) {\r\n const title = this.translateService.instant('chart.delayInMessage');\r\n const unitOfMeasure = '';\r\n const yAxis = {\r\n visible: false,\r\n opposite: true,\r\n allowDecimals: true,\r\n showEmpty: false,\r\n labels: {\r\n format: '{value}'\r\n },\r\n title: {\r\n text: title\r\n }\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'column',\r\n zIndex: 0,\r\n yAxis: axisIndex,\r\n color: 'rgba(128, 128, 128, 0.80)',\r\n data: data,\r\n visible: true,\r\n pointWidth: 3,\r\n }\r\n }\r\n\r\n getGPSFixChart(data: any) {\r\n\r\n const title = this.translateService.instant('chart.GPSFix');\r\n const unitOfMeasure = this.translateService.instant('chart.onOff');\r\n const yAxis = {\r\n allowDecimals: false,\r\n visible: false,\r\n min: -4,\r\n max: 11,\r\n tickInterval: 1,\r\n endOnTick: false,\r\n title: {\r\n text: title\r\n },\r\n categories: ['OFF', 'ON', ''],\r\n labels: {\r\n formatter: function () {\r\n return this.value;\r\n }\r\n },\r\n opposite: true\r\n }\r\n this.chartDataTitleAndUnitsOfMeasure[title] = unitOfMeasure;\r\n this.chartDataYAxes.push(yAxis);\r\n const axisIndex = this.chartDataYAxes.indexOf(yAxis);\r\n return {\r\n name: title,\r\n type: 'line',\r\n color: '#0119EC',\r\n zIndex: 3,\r\n step: 'left',\r\n marker: {\r\n enabled: false,\r\n lineWidth: 1,\r\n radius: 1,\r\n fillColor: '#0119EC',\r\n symbol: 'square'\r\n },\r\n yAxis: axisIndex,\r\n data: data\r\n }\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n {{'general.chart' | translate }}
\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.chart' | translate }}
\r\n
\r\n
\r\n {{ 'general.noGeoJsonData' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.debug' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.sensors' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate }}\r\n \r\n {{'general.param' | translate }}\r\n \r\n {{'general.uoM' | translate }}\r\n \r\n {{'general.sensorType' | translate }}\r\n
{{sensor.name}}{{sensor.parameter}}{{sensor.metrics}}{{sensor.deviceSensorType}}
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\n\r\n@Component({\r\n selector: 'fh-issue-log',\r\n templateUrl: 'issueLog.template.html',\r\n styleUrls: ['issueLog.template.css']\r\n})\r\nexport class IssueLogViewComponent implements OnInit {\r\n sub;\r\n issue: Issue;\r\n issueLog: AuditLog[];\r\n loading = false;\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.issue = null;\r\n this.issueLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.issue = new Issue;\r\n this.issue.id = '';\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.auditLogService.getAuditLogByIssue(id).subscribe(issueLog => {\r\n this.issueLog = issueLog;\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.issues' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.log' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { Severity } from '../../common/enums';\r\nimport { CustomerService } from 'app/services/customers/customers.service';\r\nimport { Customer } from 'app/models/customer.model';\r\nimport { Device } from 'app/models/device.model';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { formatViolationThreshold, getUTCStartOfDayDateTimeFromTimezone } from 'app/services/common/functions.service';\r\nimport { trigger, transition, animate, style, state, group } from '@angular/animations'\r\nimport { getGridLanguages, getGridButtons, getDropdownSettings, getTranslatedDropdownSettings, getDefaultDpConfig, mapMultiDropdown } from 'app/common/gridhelper';\r\nimport { Observable } from 'rxjs/Observable';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-issues',\r\n templateUrl: 'issues.template.html',\r\n styleUrls: ['issues.template.css'],\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({ height: '*', opacity: 0.5 })),\r\n transition(':leave', [\r\n style({ height: '*', opacity: 1 }),\r\n group([\r\n animate(300, style({ height: 0 })),\r\n animate('200ms ease-in-out', style({ 'opacity': '0.5' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(-100%)' }))\r\n ])\r\n ]),\r\n transition(':enter', [\r\n style({ height: '0', opacity: 0.5 }),\r\n group([\r\n animate(300, style({ height: '*' })),\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('400ms ease-in-out', style({ 'opacity': '1' })),\r\n animate('200ms ease-in', style({ transform: 'translateY(0%)' }))\r\n ])\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class IssuesViewComponent implements OnInit, OnDestroy {\r\n tableIds: any[];\r\n token: string;\r\n countrySelect = false;\r\n languageLoaded = false;\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n dropdown_CustomerName = '';\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n dropdown_Severity = '';\r\n dropdown_Device = '';\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n severities = [];\r\n\r\n dtOptions = {};\r\n loading = false;\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n limitHistoryInDays: number;\r\n issueTypesWithCategories: { category: string, types: IssueType[] }[];\r\n\r\n minDate: Date;\r\n customersMultiselect: any[] = [];\r\n timezoneIana: string;\r\n devices: Device[] = [];\r\n dropdown_DeviceName: any;\r\n dropdownSettings: any;\r\n devicesMultiselect: any[] = [];\r\n selectedDeviceItems: { 'id': any; 'itemName': any; }[] = [];\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n dropdownIssueTypesSettings: any;\r\n issueTypesMultiselect = [];\r\n dropdown_CustomerNameSettings: any;\r\n selectedCustomers = [];\r\n\r\n dropdownSettingsDeviceTypes: any;\r\n selectedDeviceTypes: any[] = [];\r\n deviceTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n\r\n showFilter = true;\r\n constructorName = this.constructor.name;\r\n\r\n constructor(private localeService: BsLocaleService, private customerService: CustomerService, private route: ActivatedRoute, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private authenticationService: AuthenticationService, private issueService: IssueService, private deviceService: DeviceService, private deviceTypeService: DeviceTypeService) {\r\n const that = this;\r\n\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n this.maxDate.setDate(this.today.getDate() - 14);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n // Map severities from enum\r\n this.severities = Object.keys(Severity)\r\n .filter(k => typeof Severity[k] === 'number')\r\n .map(n => ({ name: n, translated: this.translatorService.translate(Severity[n].toString(), 'enums.severity'), value: Severity[n] }));\r\n\r\n\r\n // fetch data\r\n Observable.forkJoin(\r\n this.issueTypeService.getIssueTypes(),\r\n this.deviceTypeService.getDeviceTypes(),\r\n this.customerService.getCustomers(),\r\n this.deviceService.getDevices()\r\n ).subscribe(\r\n data => {\r\n this.issueTypes = data[0];\r\n this.deviceTypes = data[1];\r\n this.devices = data[3];\r\n\r\n this.issueTypesWithCategories = [];\r\n this.issueTypes.forEach(type => {\r\n if (this.issueTypesWithCategories.find(x => x.category === type.category)) {\r\n this.issueTypesWithCategories.find(x => x.category === type.category).types.push(type)\r\n } else {\r\n this.issueTypesWithCategories.push({ category: type.category, types: [type] })\r\n }\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n });\r\n\r\n this.deviceTypesMultiselect = [];\r\n this.deviceTypes.forEach(deviceType => {\r\n this.deviceTypesMultiselect.push({ 'id': deviceType.id, 'itemName': deviceType.name, 'category': deviceType.manufacturerName });\r\n });\r\n\r\n this.customersMultiselect = mapMultiDropdown(data[2].filter(x => x.count > 0));\r\n\r\n this.devices.forEach(device => {\r\n this.devicesMultiselect.push({ 'id': device.id, 'itemName': device.name });\r\n });\r\n\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n },\r\n err => console.error(err)\r\n );\r\n }\r\n\r\n checkFilters() {\r\n console.log('Checking filters');\r\n\r\n // Set custom filters from grid save\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n console.log(dtInstance.column('customerName:name').search());\r\n\r\n const selectedCustomers = dtInstance.column('customerName:name').search().split(',');\r\n this.selectedCustomers = this.customersMultiselect.filter(x => selectedCustomers.indexOf(x.itemName.toString()) !== -1);\r\n\r\n const selectedDeviceTypes = dtInstance.column('deviceTypeId:name').search().split(',');\r\n this.selectedDeviceTypes = this.deviceTypesMultiselect.filter(x => selectedDeviceTypes.indexOf(x.id.toString()) !== -1);\r\n\r\n const selectedIssueTypes = dtInstance.column('issueTypeId:name').search().split(',');\r\n this.selectedIssueTypes = this.issueTypesMultiselect.filter(x => selectedIssueTypes.indexOf(x.id.toString()) !== -1);\r\n\r\n\r\n const selectedDeviceId = dtInstance.column('deviceId:name').search().split(',');\r\n this.selectedDeviceItems = this.devicesMultiselect.filter(x => selectedDeviceId.indexOf(x.id.toString()) !== -1);\r\n // make sure all is updated\r\n this.fireFilter(1);\r\n });\r\n }\r\n\r\n checkRoute() {\r\n // Set issuetype from get\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['issueType'];\r\n if (issueType) {\r\n this.selectedIssueTypes = [{ id: issueType, itemName: 'filter' }];\r\n this.fireFilter(1);\r\n } else {\r\n this.fireFilter(1);\r\n }\r\n\r\n const customer = params['customer'];\r\n if (customer) {\r\n this.selectedCustomers = [customer];\r\n this.fireFilter(1);\r\n } else {\r\n this.fireFilter(1);\r\n }\r\n\r\n const deviceName = params['deviceName'];\r\n const deviceId = params['deviceId'];\r\n\r\n if (deviceId) {\r\n this.selectedDeviceItems = [{ 'id': deviceId, 'itemName': deviceName }];\r\n } else {\r\n this.selectedDeviceItems = [];\r\n }\r\n\r\n if (deviceId && this.selectedDeviceItems[0]) {\r\n this.dropdown_Device = this.selectedDeviceItems[0].id;\r\n console.log(this.dropdown_Device);\r\n this.fireFilter(1);\r\n } else {\r\n this.fireFilter(1);\r\n }\r\n\r\n const singleday = params['Singleday'];\r\n if (singleday) {\r\n this.daterangepickerModel = [new Date(singleday / 1), new Date(singleday / 1)];\r\n this.dateChanged(1);\r\n }\r\n\r\n const dateStart = params['DateStart'];\r\n const dateEnd = params['DateEnd'];\r\n if (dateStart && dateEnd) {\r\n\r\n this.daterangepickerModel = [new Date(dateStart / 1), new Date(dateEnd / 1)];\r\n this.dateChanged(1);\r\n }\r\n });\r\n }\r\n\r\n clearSelectedDevice() {\r\n this.selectedDeviceItems = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n columnChooseMode(isColumnChooseMode) {\r\n const toolbox = document.getElementById('grid-column-chooser');\r\n\r\n console.log(isColumnChooseMode);\r\n if (isColumnChooseMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(event): void {\r\n\r\n if (event != null) {\r\n console.log('Fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n if (this.selectedDeviceTypes !== []) {\r\n const selectedDeviceTypesString = this.selectedDeviceTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('deviceTypeId:name').search(selectedDeviceTypesString);\r\n } else {\r\n dtInstance.column('deviceTypeId:name').search('');\r\n }\r\n\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeId:name').search(selectedIssueTypesString);\r\n\r\n } else {\r\n dtInstance.column('issueTypeId:name').search('');\r\n }\r\n\r\n // Search for the customer\r\n if (this.selectedCustomers !== []) {\r\n const selectedCustomersString = this.selectedCustomers.map((i) => i.itemName, []).join(',');\r\n dtInstance.column('customerName:name').search(selectedCustomersString);\r\n } else {\r\n dtInstance.column('customerName:name').search('');\r\n }\r\n\r\n // Search for the severity\r\n if (this.dropdown_Severity !== '') {\r\n dtInstance.column('severity:name').search(this.dropdown_Severity);\r\n } else {\r\n dtInstance.column('severity:name').search('');\r\n }\r\n\r\n\r\n // Search for the severity\r\n if (this.selectedDeviceItems.length > 0) {\r\n dtInstance.column('deviceId:name').search(this.selectedDeviceItems[0].id);\r\n } else {\r\n dtInstance.column('deviceId:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n // dtInstance.page( 4 ).draw( 'page' );\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n dateChanged(event) {\r\n\r\n const that = this;\r\n if (event !== null && this.datatableElement.dtInstance !== null) {\r\n\r\n console.log('Changed date... new database query');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.issueService.getPagingUrl() + '?startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000)).load();\r\n });\r\n\r\n this.fireFilter(null);\r\n }\r\n }\r\n\r\n clearSelectedCustomers() {\r\n this.selectedCustomers = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n clearSelectedDeviceTypes() {\r\n this.selectedDeviceTypes = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n clearSelectedIssueTypes() {\r\n this.selectedIssueTypes = [];\r\n this.fireFilter(1);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.dropdownSettingsDeviceTypes = getDropdownSettings();\r\n this.dropdown_CustomerNameSettings = getDropdownSettings();\r\n this.dropdownSettings = getDropdownSettings(false);\r\n this.dropdownIssueTypesSettings = getDropdownSettings();\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n\r\n this.dropdownSettingsDeviceTypes = getTranslatedDropdownSettings(this.translateService, 'allDeviceTypes', true);\r\n this.dropdown_CustomerNameSettings = getTranslatedDropdownSettings(this.translateService, 'allCustomers', false);\r\n this.dropdownIssueTypesSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n\r\n this.dropdownSettings = {\r\n singleSelection: true,\r\n text: this.translateService.instant('general.allDevices'),\r\n selectAllText: this.translateService.instant('general.selectAll'),\r\n unSelectAllText: this.translateService.instant('general.deSelectAll'),\r\n searchPlaceholderText: this.translateService.instant('general.search'),\r\n noDataLabel: this.translateService.instant('general.noDataFound'),\r\n classes: 'form-control multiselector_fix',\r\n enableSearchFilter: true,\r\n lazyLoading: true,\r\n badgeShowLimit: 20,\r\n showCheckbox: false,\r\n };\r\n });\r\n };\r\n\r\n changeFlag(id: string, isFlagged: boolean): void {\r\n const device = this.devices.find((d) => { return d.id === id });\r\n device.isFlagged = isFlagged;\r\n\r\n this.deviceService.saveFlagged(device).subscribe(() => {\r\n this.issueService.resetIssueCache().subscribe(() => { });\r\n });\r\n }\r\n\r\n initGrid() {\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'issue_overview', this.translateService.instant('menu.issueoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'desc'], [10, 'desc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.issueService.getPagingUrl() +\r\n '?startDate=' +\r\n Math.round(getUTCStartOfDayDateTimeFromTimezone(this.daterangepickerModel[0], this.authenticationService.getTimeZoneIana()).getTime() / 1000) +\r\n '&endDate=' +\r\n Math.round(getUTCStartOfDayDateTimeFromTimezone(this.daterangepickerModel[1], this.authenticationService.getTimeZoneIana()).getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.tableIds = [];\r\n that.checkFilters();\r\n that.checkRoute();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id', 'issueDate', 'timestamp', 'deviceName', 'deviceId', 'deviceTypeId', 'issueTypeId']\r\n },\r\n columns: [{\r\n name: 'id',\r\n data: 'id',\r\n width: '20',\r\n orderable: false,\r\n title: '',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n },\r\n }, {\r\n name: 'issueDate',\r\n data: 'issueDate',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n },\r\n\r\n }, {\r\n name: 'timestamp',\r\n data: 'timestamp',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n },\r\n visible: false,\r\n }, {\r\n name: 'deviceName',\r\n data: 'deviceName',\r\n title: this.translateService.instant('general.device'),\r\n width: '80',\r\n render: function (data, type, row) {\r\n return data ? data : '';\r\n }\r\n }, {\r\n name: 'deviceId',\r\n data: 'deviceId',\r\n title: this.translateService.instant('general.device'),\r\n visible: false,\r\n }, {\r\n name: 'deviceTypeName',\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n width: '80',\r\n }, {\r\n name: 'deviceTypeId',\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false,\r\n\r\n }, {\r\n name: 'issueType',\r\n data: 'issueType',\r\n title: this.translateService.instant('general.issue'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data, 'enums.issuetypes') : '';\r\n }\r\n }, {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false,\r\n\r\n }, {\r\n name: 'customerName',\r\n data: 'customerName',\r\n title: this.translateService.instant('general.customer'),\r\n render: function (data, type, row) {\r\n return data ? data.toString() : '-';\r\n }\r\n }, {\r\n name: 'severity',\r\n data: 'severity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n }, {\r\n name: 'violationLowerThreshold',\r\n data: 'violationLowerThreshold',\r\n title: this.translateService.instant('general.violationThresholds'),\r\n render: function (data, type, row) {\r\n return formatViolationThreshold(that.translateService, row.issueTypeId, data);\r\n }\r\n }, {\r\n name: 'violationDuration',\r\n data: 'violationDuration',\r\n title: this.translateService.instant('general.duration'),\r\n render: function (data, type, row) {\r\n return data ? Moment.duration(data * 1000, 'milliseconds').humanize() : '-';\r\n }\r\n },\r\n {\r\n name: 'isDeviceFlagged',\r\n data: 'isDeviceFlagged',\r\n title: this.translateService.instant('general.isFlagged'),\r\n visible: true,\r\n width: '40',\r\n responsivePriority: 1,\r\n render: function (data, type, row) {\r\n if (!that.tableIds || (that.tableIds.length === 10)) {\r\n that.tableIds = [];\r\n }\r\n\r\n that.tableIds.push({ id: row.id, deviceId: row.deviceId });\r\n\r\n return '';\r\n }\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n drawCallback: () => {\r\n if (that.tableIds) {\r\n that.tableIds.forEach(row => {\r\n $('#' + row.id + '-' + row.deviceId).click(() => {\r\n const equalDevices = that.tableIds.filter(tableRow => tableRow.deviceId === row.deviceId);\r\n equalDevices.forEach(device => {\r\n const star = $('#' + device.id + '-' + device.deviceId);\r\n if (star.hasClass('fas')) {\r\n star.removeClass('fas').addClass('far');\r\n } else {\r\n star.removeClass('far').addClass('fas');\r\n }\r\n });\r\n that.changeFlag(row.deviceId, $('#' + row.id + '-' + row.deviceId).hasClass('fas'));\r\n });\r\n });\r\n }\r\n }\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedCustomers()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedDevice()\">\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedDeviceTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.issues' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, NgZone, ChangeDetectionStrategy } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon, TileLayer } from 'leaflet';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { MapService } from '../../services/common/map.service';\r\nimport * as L from 'leaflet';\r\nimport '../../../../node_modules/leaflet-easybutton/src/easy-button.js';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var HeatmapOverlay;\r\ndeclare var PruneCluster;\r\ndeclare var PruneClusterForLeaflet;\r\n\r\n@Component({\r\n selector: 'fh-issues-map',\r\n templateUrl: 'issuesMap.template.html',\r\n styleUrls: ['issuesMap.template.css'],\r\n providers: [MapService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [\r\n trigger('slideInOut', [\r\n state('in', style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })),\r\n state('out', style({\r\n transform: 'translate3d(calc(100% - 20px), 0, 0)'\r\n })),\r\n transition('in => out', animate('400ms ease-in-out')),\r\n transition('out => in', animate('400ms ease-in-out'))\r\n ]),\r\n ]\r\n})\r\nexport class IssuesMapViewComponent implements OnInit {\r\n\r\n leafletView: any;\r\n selectedIssue: Issue;\r\n deviceId: string;\r\n loadingSidebar = false;\r\n googleMaps: TileLayer;\r\n googleHybrid: TileLayer;\r\n loading = false;\r\n markers: any;\r\n streets: any;\r\n osm: any;\r\n cities: any;\r\n map: Map;\r\n options;\r\n issues: Issue[];\r\n menuState = 'out';\r\n\r\n mapData = {\r\n data: []\r\n };\r\n\r\n heatmapLayer = new HeatmapOverlay({\r\n radius: 15,\r\n maxOpacity: 0.8,\r\n scaleRadius: false,\r\n useLocalExtrema: false,\r\n latField: 'lat',\r\n lngField: 'lng',\r\n valueField: 'count'\r\n });\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private theMapService: MapService, private zone: NgZone, private http: HttpClient, private issueService: IssueService) {\r\n this.initMap();\r\n }\r\n\r\n toggleMenu() {\r\n // 1-line if statement that toggles the value:\r\n this.menuState = this.menuState === 'out' ? 'in' : 'out';\r\n }\r\n\r\n selectId(issueId: string): any {\r\n this.loadingSidebar = true;\r\n const that = this;\r\n\r\n this.issueService.getIssueById(issueId).subscribe(\r\n issue => {\r\n this.selectedIssue = issue;\r\n that.loadingSidebar = false;\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n\r\n const that = this;\r\n setTimeout(function () {\r\n that.setPruneCluster(); // Marker clluster version\r\n that.fillDevices();\r\n }, 100);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n const that = this;\r\n\r\n const baseMaps = {\r\n 'Osm': this.osm,\r\n 'Google maps': this.googleMaps,\r\n 'Google hybrid': this.googleHybrid\r\n };\r\n\r\n const overlayMaps = {\r\n 'Prunecluster': this.leafletView,\r\n 'Heatmap': this.heatmapLayer,\r\n // 'Markers': this.markers\r\n };\r\n\r\n this.map.on('click', () => {\r\n this.zone.run(() => {\r\n this.menuState = 'out';\r\n });\r\n });\r\n\r\n L.control.layers(baseMaps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n // Easybuttona\r\n\r\n L.easyButton({\r\n id: 'fit map button',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-expand-arrows-alt',\r\n title: 'Fit map',\r\n onClick: function (control) {\r\n that.centerMap();\r\n }\r\n }]\r\n }).addTo(this.map);\r\n\r\n const heatmapToggle = L.easyButton({\r\n id: 'animated-heatmap-toggle',\r\n states: [{\r\n stateName: 'remove-markers',\r\n title: 'Remove heatmap',\r\n icon: 'fa-undo',\r\n onClick: function (control) {\r\n that.map.removeLayer(that.heatmapLayer);\r\n control.state('add-markers');\r\n }\r\n }, {\r\n stateName: 'add-markers',\r\n icon: 'fa-map',\r\n title: 'Show heatmap',\r\n onClick: function (control) {\r\n that.map.addLayer(that.heatmapLayer);\r\n control.state('remove-markers');\r\n }\r\n }]\r\n });\r\n heatmapToggle.addTo(this.map);\r\n\r\n const animatedToggle = L.easyButton({\r\n id: 'animated-marker-toggle',\r\n states: [{\r\n stateName: 'add-markers',\r\n icon: 'fa-map-marker',\r\n title: 'Show markers',\r\n onClick: function (control) {\r\n that.map.addLayer(that.leafletView);\r\n control.state('remove-markers');\r\n }\r\n }, {\r\n stateName: 'remove-markers',\r\n title: 'Remove markers',\r\n icon: 'fa-undo',\r\n onClick: function (control) {\r\n that.map.removeLayer(that.leafletView);\r\n control.state('add-markers');\r\n }\r\n }]\r\n });\r\n animatedToggle.addTo(this.map);\r\n\r\n this.loading = false;\r\n\r\n // End easybutton\r\n }\r\n\r\n createIcon() {\r\n return L.icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n });\r\n }\r\n\r\n setPruneCluster() {\r\n\r\n const that = this;\r\n this.theMapService.setPruneCluster(this.leafletView);\r\n\r\n this.leafletView.PrepareLeafletMarker = function (theMarker, data, category) {\r\n // parse data to icon\r\n theMarker.setIcon(that.createIcon());\r\n\r\n if (theMarker.getPopup()) {\r\n theMarker.setPopupContent(data.title + ' - ' + category);\r\n } else {\r\n theMarker.bindPopup(data.title + ' - ' + category);\r\n }\r\n\r\n theMarker.on('click', () => {\r\n that.zone.run(() => {\r\n that.menuState = 'in';\r\n that.selectId(data.issue.id);\r\n });\r\n\r\n });\r\n };\r\n }\r\n\r\n\r\n\r\n fillDevices() {\r\n const that = this;\r\n this.issueService.getIssuesWithLocation().subscribe(issues => {\r\n this.issues = issues;\r\n this.issues.forEach(issue => {\r\n if (issue.position && issue.position.latitude !== 0) {\r\n\r\n // Prune cluster\r\n\r\n const theMarker = new PruneCluster.Marker(issue.position.latitude, issue.position.longitude, { title: issue.id });\r\n\r\n theMarker.category = Math.ceil(Math.random() * 6).toString();\r\n theMarker.data.popup = issue.id;\r\n theMarker.data.issue = issue;\r\n\r\n this.leafletView.RegisterMarker(theMarker);\r\n\r\n // Heatmap\r\n this.mapData.data.push({\r\n lat: issue.position.latitude,\r\n lng: issue.position.longitude,\r\n count: 1\r\n });\r\n\r\n // Normal marker\r\n const theNormalMarker = marker([issue.position.latitude, issue.position.longitude], {\r\n icon: icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/marker-icon.png',\r\n shadowUrl: 'assets/marker-shadow.png'\r\n })\r\n }).bindPopup(issue.id).on('click', () => {\r\n this.zone.run(() => {\r\n this.menuState = 'in';\r\n this.selectId(issue.id);\r\n });\r\n });\r\n\r\n this.markers.addLayer(theNormalMarker);\r\n }\r\n });\r\n\r\n this.heatmapLayer.setData(this.mapData);\r\n this.loading = false;\r\n\r\n this.centerMap();\r\n\r\n });\r\n }\r\n\r\n centerMap() {\r\n const bounds = this.leafletView.Cluster.ComputeGlobalBounds();\r\n if (bounds) {\r\n this.map.fitBounds(new L.LatLngBounds(new L.LatLng(bounds.minLat, bounds.maxLng), new L.LatLng(bounds.maxLat, bounds.minLng)), { padding: [50, 50] });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ selectedIssue?.id }}\r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n {{ selectedIssue?.createdDate | amDateFormat: 'll' }}\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { JobsService } from 'app/services/jobs/jobs.service';\r\nimport * as moment from 'moment-timezone';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\n\r\nclass Person {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nclass DataTablesResponse {\r\n data: any[];\r\n draw: number;\r\n recordsFiltered: number;\r\n recordsTotal: number;\r\n}\r\n\r\n@Component({\r\n selector: 'fh-jobs-active',\r\n templateUrl: 'active.template.html'\r\n})\r\nexport class JobsActiveViewComponent implements OnInit, AfterViewInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n dtOptions = {};\r\n assets: Subject = new Subject();\r\n persons: Person[];\r\n loading = false;\r\n data = 0;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private jobservice: JobsService, private authenticationService: AuthenticationService) {\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'desc']],\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.jobservice.getActiveJobs().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n columns: [{\r\n data: 'isRunning',\r\n title: this.translateService.instant('general.running'),\r\n render: function (data, type, row) {\r\n if (data && data === true) {\r\n return that.translateService.instant('general.yes') + ' ';\r\n }\r\n return that.translateService.instant('general.no');\r\n }\r\n }, {\r\n data: 'lastRuntime',\r\n title: this.translateService.instant('general.lastRuntime'),\r\n render: function (data, type, row) {\r\n const date = moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('LLL')\r\n }\r\n }, {\r\n data: 'accountName',\r\n title: this.translateService.instant('general.account'),\r\n }, {\r\n data: 'lastStatus',\r\n title: this.translateService.instant('general.lastStatus')\r\n }, {\r\n data: 'nextRun',\r\n title: this.translateService.instant('general.nextRun'),\r\n render: function (data, type, row) {\r\n if (data) {\r\n const date = moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('LLL')\r\n }\r\n return that.translateService.instant('general.never');\r\n }\r\n }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'menu.active' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { JobsService } from 'app/services/jobs/jobs.service';\r\nimport * as moment from 'moment-timezone';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\n\r\nclass Person {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nclass DataTablesResponse {\r\n data: any[];\r\n draw: number;\r\n recordsFiltered: number;\r\n recordsTotal: number;\r\n}\r\n\r\n@Component({\r\n selector: 'fh-jobs-history',\r\n templateUrl: 'history.template.html'\r\n})\r\nexport class JobsHistoryViewComponent implements OnInit, AfterViewInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n dtOptions = {};\r\n assets: Subject = new Subject();\r\n persons: Person[];\r\n loading = false;\r\n data = 0;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private jobService: JobsService, private authenticationService: AuthenticationService) {\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'desc']],\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.jobService.getHistoryJobs().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'startJob',\r\n title: this.translateService.instant('general.startJob'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('LLL')\r\n }\r\n return data;\r\n }\r\n }, {\r\n data: 'accountName',\r\n title: this.translateService.instant('general.account'),\r\n }, {\r\n data: 'duration',\r\n title: this.translateService.instant('general.duration'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n return moment.duration(data).humanize();\r\n }\r\n return data;\r\n }\r\n }, {\r\n data: 'totalDeviceCount',\r\n title: this.translateService.instant('general.totalDeviceCount'),\r\n }, {\r\n data: 'devicesProcessedCount',\r\n title: this.translateService.instant('general.devicesProcessedCount'),\r\n }, {\r\n data: 'devicesErrorCount',\r\n title: this.translateService.instant('general.devicesErrorCount'),\r\n }, {\r\n data: 'devicesSkippedCount',\r\n title: this.translateService.instant('general.devicesSkippedCount'),\r\n }, {\r\n data: 'issues',\r\n title: this.translateService.instant('general.issues'),\r\n }, {\r\n data: 'messages',\r\n title: this.translateService.instant('general.messages'),\r\n }, {\r\n data: 'status',\r\n title: this.translateService.instant('general.status'),\r\n }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.history' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { AccountPlatformService } from '../../services/platform/accountPlatform.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Platform } from 'app/models/platform.model';\r\n\r\n@Component({\r\n selector: 'fh-platform-calculation-settings',\r\n templateUrl: 'platformCalculationSettings.template.html'\r\n})\r\nexport class PlatformCalculationSettingsViewComponent implements OnInit {\r\n sub;\r\n platform: Platform;\r\n\r\n constructor(private http: HttpClient, private accountPlatformService: AccountPlatformService, private route: ActivatedRoute, private router: Router) {\r\n this.platform = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.platform = new Platform;\r\n this.platform.id = ''\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountPlatformService.getAccountPlatformById(id).subscribe(platform => {\r\n this.platform = platform;\r\n\r\n if (this.platform == null) {\r\n this.router.navigate(['/Platforms/Overview'])\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.platforms' | translate }}\r\n
  4. \r\n
  5. \r\n {{platform?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.calculationsettings' | translate }}\r\n
  8. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { Platform, AccountPlatform } from '../../models/platform.model';\r\nimport { AccountPlatformService } from '../../services/platform/accountPlatform.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { IssueTypeService } from '../../services/issuetypes/issuetypes.service';\r\nimport { IssueType } from '../../models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormMode } from 'app/common/enums';\r\n\r\n\r\n@Component({\r\n selector: 'fh-fh-platform-details',\r\n templateUrl: 'platformDetails.template.html'\r\n})\r\nexport class PlatformDetailsViewComponent {\r\n\r\n issueTypes: IssueType[];\r\n sub: any;\r\n accountPlatform: AccountPlatform;\r\n\r\n token_repeat = '';\r\n token = '';\r\n isMessage: boolean;\r\n messageStatus = 0;\r\n updateMessage: any;\r\n\r\n loadingCurrentToken = false;\r\n tokenIsFalse: boolean;\r\n newTokenTested: boolean;\r\n loadingNewToken: boolean;\r\n\r\n error: any;\r\n success: any;\r\n\r\n formMode = FormMode.read;\r\n\r\n constructor(private translateService: TranslateService, private issueTypeService: IssueTypeService, private accountPlatformService: AccountPlatformService, private route: ActivatedRoute) {\r\n this.accountPlatform = new AccountPlatform;\r\n this.loadingCurrentToken = false;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountPlatformService.getAccountPlatformById(id).subscribe(platform => {\r\n this.accountPlatform = platform;\r\n });\r\n });\r\n\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n }\r\n\r\n saveToken() {\r\n this.accountPlatformService.updateToken(this.accountPlatform.id, this.token).subscribe(result => {\r\n if (result === true) {\r\n this.isMessage = true;\r\n this.messageStatus = 3;\r\n this.updateMessage = this.translateService.instant('general.updateUser');\r\n } else {\r\n this.isMessage = true;\r\n this.messageStatus = 1;\r\n this.updateMessage = this.translateService.instant('general.errorUpdate');\r\n }\r\n });\r\n }\r\n\r\n testCurrentToken() {\r\n this.loadingCurrentToken = true;\r\n\r\n this.accountPlatformService.checkTokenForAccountPlatform(this.accountPlatform.id).subscribe(result => {\r\n\r\n this.loadingCurrentToken = false;\r\n\r\n if (result === true) {\r\n this.tokenIsFalse = false;\r\n this.success = this.translateService.instant('general.tokenWorks');\r\n } else {\r\n this.tokenIsFalse = true;\r\n this.error = this.translateService.instant('general.tokenFails');\r\n }\r\n })\r\n\r\n }\r\n\r\n testNewToken() {\r\n console.log('Testing token', this.accountPlatform);\r\n this.loadingNewToken = true;\r\n\r\n this.accountPlatformService.checkToken(this.accountPlatform.platformType, this.token, this.accountPlatform.url).subscribe(result => {\r\n\r\n this.loadingNewToken = false;\r\n\r\n if (result === true) {\r\n this.newTokenTested = true;\r\n this.success = this.translateService.instant('general.tokenWorks');\r\n } else {\r\n this.newTokenTested = false;\r\n this.error = this.translateService.instant('general.tokenFails');\r\n }\r\n }, error => {\r\n this.loadingNewToken = false;\r\n this.newTokenTested = false;\r\n this.error = this.translateService.instant('general.tokenFails');\r\n });\r\n\r\n }\r\n\r\n saveNewToken() {\r\n this.loadingNewToken = true;\r\n\r\n this.accountPlatformService.saveNewToken(this.accountPlatform.id, this.token, this.accountPlatform.url, this.accountPlatform.name).subscribe(result => {\r\n\r\n this.loadingNewToken = false;\r\n\r\n this.tokenIsFalse = false;\r\n this.success = this.translateService.instant('general.tokenSaved');\r\n\r\n }, error => {\r\n this.loadingNewToken = false;\r\n this.tokenIsFalse = true;\r\n\r\n this.error = error;\r\n this.error.statusText = this.translateService.instant('general.errorSavingToken');\r\n });\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.platform' | translate }}\r\n
  4. \r\n
  5. \r\n {{accountPlatform?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.platformdetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{'general.platformdetails' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ accountPlatform?.name }}\r\n
\r\n {{ 'general.platform' | translate}}\r\n \r\n {{ accountPlatform?.platformName }}\r\n
\r\n {{ 'general.url' | translate}}\r\n \r\n {{ accountPlatform?.url }}\r\n
\r\n {{ 'dates.timezone' | translate}}\r\n \r\n {{ accountPlatform?.timezoneIana }}\r\n
\r\n {{ 'general.token' | translate}}\r\n \r\n xxxxxxxxxxxxxx\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.updateToken' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
{{'general.testTokenFirst' |\r\n translate }}
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'general.url' | translate }} *\r\n \r\n\r\n \r\n
\r\n {{'general.token' | translate }} *\r\n \r\n\r\n \r\n
\r\n {{'general.repeatToken' | translate }} *\r\n \r\n \r\n
\r\n
\r\n * Tokens do not match\r\n
\r\n
\r\n * Tokens must be at least 4 characters long.\r\n
\r\n
\r\n * Tokens is required.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.platformoptions' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Type\r\n \r\n Enabled\r\n
\r\n Enable device analytics\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AccountPlatformService } from '../../services/platform/accountPlatform.service';\r\nimport { Platform } from '../../models/platform.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-platform-devices',\r\n templateUrl: 'platformDevices.template.html'\r\n})\r\nexport class PlatformDevicesViewComponent implements OnInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n loading = false;\r\n\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n\r\n sub;\r\n dtOptions = {};\r\n devices: Device[];\r\n deviceType: DeviceType;\r\n platform: Platform;\r\n languageLoaded: boolean;\r\n timezoneIana: string;\r\n searchTerm: any;\r\n\r\n\r\n constructor(private authenticationService: AuthenticationService, private translateService: TranslateService, private accountPlatformService: AccountPlatformService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private deviceTypeService: DeviceTypeService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.deviceType = null;\r\n this.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n\r\n issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountPlatformService.getAccountPlatformById(id).subscribe(platform => {\r\n this.platform = platform;\r\n });\r\n });\r\n\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.deviceService.getDevicesByAccountPlatform(id).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name'),\r\n },\r\n {\r\n data: 'unitId',\r\n title: this.translateService.instant('general.unitId'),\r\n },\r\n {\r\n data: 'lastCommunication',\r\n width: '80',\r\n title: this.translateService.instant('general.lastCommunication'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('ll')\r\n }\r\n return data;\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.platform' | translate }}\r\n
  4. \r\n
  5. \r\n {{platform?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.deviceoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.deviceoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { AccountPlatform } from 'app/models/platform.model';\r\nimport { AccountPlatformService } from 'app/services/platform/accountPlatform.service';\r\nimport { getTranslatedDropdownSettings, getDropdownSettings, getDefaultDpConfig, getGridLanguages } from 'app/common/gridhelper';\r\n\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-platform-issues',\r\n templateUrl: 'platformIssues.template.html'\r\n})\r\nexport class PlatformIssuesViewComponent implements OnInit {\r\n accountPlatformId = '0';\r\n token: any;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n loading: boolean;\r\n issueTypes: IssueType[];\r\n deviceTypes: DeviceType[];\r\n selectedIssueTypes: { 'id': any; 'itemName': any; }[] = [];\r\n\r\n sub;\r\n issues: Issue[];\r\n\r\n timezoneIana;\r\n\r\n // Daterange\r\n public dpConfig: Partial = new BsDaterangepickerConfig();\r\n today = new Date();\r\n daterangepickerModel: Date[];\r\n maxDate = new Date();\r\n\r\n // Grid\r\n dtOptions = {};\r\n minDate: Date;\r\n limitHistoryInDays: number;\r\n languageLoaded: boolean;\r\n platform: any;\r\n dropdownIssueTypesSettings: any;\r\n issueTypesMultiselect: any[] = [];\r\n searchTerm: any;\r\n\r\n constructor(private localeService: BsLocaleService, private translatorService: TranslatorService, private authenticationService: AuthenticationService, private translateService: TranslateService, private http: HttpClient, private deviceService: DeviceService, private issueTypeService: IssueTypeService, private accountPlatformService: AccountPlatformService, private issueService: IssueService, private route: ActivatedRoute, private router: Router) {\r\n this.platform = null;\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.accountPlatformId = '00000000-0000-0000-0000-000000000001';\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.accountPlatformId = id;\r\n this.accountPlatformService.getAccountPlatforms(true).subscribe(platforms => {\r\n\r\n this.platform = platforms.find(x => x.id === id);\r\n this.accountPlatformId = this.platform.id;\r\n\r\n if (this.platform == null) {\r\n this.router.navigate(['/DeviceTypes/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.dropdownIssueTypesSettings = getDropdownSettings(true);\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.dropdownIssueTypesSettings = getTranslatedDropdownSettings(this.translateService, 'allIssueTypes', true);\r\n });\r\n\r\n // Filtering\r\n const that = this;\r\n\r\n this.minDate = new Date();\r\n this.limitHistoryInDays = +this.authenticationService.getLimitHistoryInDays();\r\n this.minDate.setDate(this.minDate.getDate() - this.limitHistoryInDays);\r\n\r\n\r\n this.maxDate.setDate(this.today.getDate() - 31);\r\n this.daterangepickerModel = [this.maxDate, this.today];\r\n\r\n this.dpConfig = getDefaultDpConfig();\r\n\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n\r\n this.issueTypesMultiselect = [];\r\n this.issueTypes.forEach(issueType => {\r\n this.issueTypesMultiselect.push({ 'id': issueType.id, 'itemName': issueType.name, 'category': issueType.category });\r\n });\r\n });\r\n }\r\n\r\n dateChanged(event) {\r\n const that = this;\r\n if (event !== null) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.url(that.issueService.getPagingUrl() + '?accountPlatformId=' + this.accountPlatformId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000)).load();\r\n });\r\n\r\n this.fireFilter();\r\n }\r\n }\r\n\r\n fireFilter(event = null): void {\r\n\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the issuetype\r\n if (this.selectedIssueTypes !== []) {\r\n const selectedIssueTypesString = this.selectedIssueTypes.map((i) => i.id, []).join(',');\r\n dtInstance.column('issueTypeId:name').search(selectedIssueTypesString);\r\n\r\n } else {\r\n dtInstance.column('issueTypeId:name').search('');\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n // Set issuetype from get\r\n this.route.queryParams.subscribe(params => {\r\n const issueType = params['IssueType'];\r\n if (issueType) {\r\n this.selectedIssueTypes = [{ id: issueType, itemName: 'filter' }];\r\n this.fireFilter();\r\n } else {\r\n this.fireFilter();\r\n }\r\n\r\n const singleday = params['Singleday'];\r\n if (singleday) {\r\n this.daterangepickerModel = [new Date(singleday / 1), new Date(singleday / 1)];\r\n this.dateChanged(1);\r\n }\r\n\r\n const dateStart = params['DateStart'];\r\n const dateEnd = params['DateEnd'];\r\n if (dateStart && dateEnd) {\r\n this.daterangepickerModel = [new Date(dateStart / 1), new Date(dateEnd / 1)];\r\n this.dateChanged(1);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n console.log('get from grid');\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'desc'], [9, 'desc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.issueService.getPagingUrl() + '?accountPlatformId=' + this.accountPlatformId + '&startDate=' + Math.round(this.daterangepickerModel[0].getTime() / 1000) + '&endDate=' + Math.round(this.daterangepickerModel[1].getTime() / 1000),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n width: '20',\r\n orderable: false,\r\n title: '',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'issueDate',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('YYYY-MM-DD')\r\n }\r\n },\r\n {\r\n data: 'timestamp',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n },\r\n visible: false\r\n },\r\n {\r\n data: 'deviceName',\r\n title: this.translateService.instant('general.device'),\r\n width: '80',\r\n render: function (data, type, row) {\r\n return data ? data : '';\r\n }\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n width: '80',\r\n },\r\n {\r\n data: 'deviceTypeName',\r\n title: this.translateService.instant('general.devicetype'),\r\n visible: false\r\n },\r\n {\r\n data: 'deviceTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n },\r\n {\r\n data: 'issueType',\r\n title: this.translateService.instant('general.issue'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data, 'enums.issuetypes') : '';\r\n }\r\n },\r\n {\r\n name: 'issueTypeId',\r\n data: 'issueTypeId',\r\n title: this.translateService.instant('general.issuetypeid'),\r\n visible: false\r\n }, {\r\n data: 'severity',\r\n title: this.translateService.instant('general.severity'),\r\n render: function (data, type, row) {\r\n return data ? that.translatorService.translate(data.toString(), 'enums.severity') : '-';\r\n }\r\n }],\r\n pageLength: 10,\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.platforms' | translate }}\r\n
  4. \r\n
  5. \r\n {{platform?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.issueoverview' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n (click)=\"clearSelectedIssueTypes()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.issueoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { AccountPlatformService } from '../../services/platform/accountPlatform.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\n\r\n@Component({\r\n selector: 'fh-platforms',\r\n templateUrl: 'platforms.template.html'\r\n})\r\nexport class PlatformViewComponent implements OnInit, AfterViewInit {\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n dtOptions: any = {};\r\n assets: Subject = new Subject();\r\n\r\n loading = false;\r\n data = 0;\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient, private accountPlatformService: AccountPlatformService) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n function getRandomColor() {\r\n const colors = ['009900', 'CC0000', 'FF800', '606060'];\r\n return '#' + colors[Math.floor(Math.random() * colors.length)];\r\n }\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'asc']],\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.accountPlatformService.getAccountPlatforms(true).subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n data: 'platformName',\r\n title: this.translateService.instant('general.platform')\r\n },\r\n {\r\n data: 'deviceCount',\r\n title: this.translateService.instant('general.devices')\r\n }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.platformoverview' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fh-reporting',\r\n templateUrl: 'reporting.template.html'\r\n})\r\nexport class ReportingViewComponent implements OnInit {\r\n\r\n public reports = [\r\n { 'name': 'Issue overview' },\r\n { 'name': 'Fleet health' },\r\n { 'name': 'Location count' },\r\n { 'name': 'Device replacements' },\r\n { 'name': 'Comparison report' }\r\n ];\r\n\r\n constructor() { }\r\n // SSRS https://github.com/tycomo/ngx-ssrs-reportviewer\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n {{'reporting.header' | translate }}

\r\n {{'reporting.intro' | translate }}
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.reporting' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ report.name }}\r\n \r\n {{'general.view' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.reporting' | translate }}
\r\n
\r\n
\r\n Contents\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, ChangeDetectionStrategy, ViewChild, TemplateRef, OnInit } from '@angular/core';\r\nimport { startOfDay, endOfDay, subDays, addDays, endOfMonth, isSameDay, isSameMonth, addHours } from 'date-fns';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { BsModalService, BsModalRef, ModalDirective, BsDatepickerConfig } from 'ngx-bootstrap';\r\nimport { CalendarEvent, CalendarEventAction, CalendarEventTimesChangedEvent } from 'angular-calendar';\r\nimport { ScheduleService } from '../../services/schedule/schedule.service';\r\n\r\nconst colors: any = {\r\n red: {\r\n primary: '#ad2121',\r\n secondary: '#FAE3E3'\r\n },\r\n blue: {\r\n primary: '#1e90ff',\r\n secondary: '#D1E8FF'\r\n },\r\n yellow: {\r\n primary: '#e3bc08',\r\n secondary: '#FDF1BA'\r\n }\r\n};\r\n\r\n@Component({\r\n selector: 'fh-calendar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: 'calendar.template.html'\r\n})\r\nexport class CalendarViewComponent implements OnInit {\r\n @ViewChild('modalContent') modalContent: TemplateRef;\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n view = 'month';\r\n activeDayIsOpen = true;\r\n events: CalendarEvent[];\r\n\r\n viewDate: Date = new Date();\r\n\r\n modalData: {\r\n action: string;\r\n event: CalendarEvent;\r\n };\r\n\r\n actions: CalendarEventAction[] = [\r\n {\r\n label: '',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.handleEvent('Edited', event);\r\n }\r\n },\r\n {\r\n label: '',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.events = this.events.filter(iEvent => iEvent !== event);\r\n this.handleEvent('Deleted', event);\r\n }\r\n }\r\n ];\r\n\r\n refresh: Subject = new Subject();\r\n\r\n hideModal(): void {\r\n this.autoShownModal.hide();\r\n }\r\n\r\n constructor(private modalService: BsModalService, private scheduleService: ScheduleService) {\r\n this.events = [];\r\n this.events = [\r\n {\r\n start: subDays(startOfDay(new Date()), 1),\r\n end: addDays(new Date(), 1),\r\n title: 'A 3 day event',\r\n color: colors.red,\r\n actions: this.actions\r\n },\r\n {\r\n start: startOfDay(new Date()),\r\n title: 'An event with no end date',\r\n color: colors.yellow,\r\n actions: this.actions\r\n },\r\n {\r\n start: subDays(endOfMonth(new Date()), 3),\r\n end: addDays(endOfMonth(new Date()), 3),\r\n title: 'A long event that spans 2 months',\r\n color: colors.blue\r\n },\r\n {\r\n start: addHours(startOfDay(new Date()), 2),\r\n end: new Date(),\r\n title: 'A draggable and resizable event',\r\n color: colors.yellow,\r\n actions: this.actions,\r\n resizable: {\r\n beforeStart: true,\r\n afterEnd: true\r\n },\r\n draggable: true\r\n }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.scheduleService.getSchedules().subscribe(result => {\r\n result.forEach(element => {\r\n const event: CalendarEvent = {\r\n start: element.date,\r\n end: addDays(element.date, 1),\r\n title: element.actionName,\r\n color: colors.red,\r\n actions: this.actions\r\n };\r\n this.events.push(event);\r\n });\r\n\r\n console.log(this.events);\r\n });\r\n }\r\n\r\n dayClicked({ date, events }: { date: Date; events: CalendarEvent[] }): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n if (\r\n (isSameDay(this.viewDate, date) && this.activeDayIsOpen === true) ||\r\n events.length === 0\r\n ) {\r\n this.activeDayIsOpen = false;\r\n } else {\r\n this.activeDayIsOpen = true;\r\n this.viewDate = date;\r\n }\r\n }\r\n }\r\n\r\n eventTimesChanged({\r\n event,\r\n newStart,\r\n newEnd\r\n }: CalendarEventTimesChangedEvent): void {\r\n event.start = newStart;\r\n event.end = newEnd;\r\n this.handleEvent('Dropped or resized', event);\r\n this.refresh.next();\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n this.modalData = { event, action };\r\n this.modalService.show(this.modalContent);\r\n }\r\n\r\n addEvent(): void {\r\n this.events.push({\r\n title: 'New event',\r\n start: startOfDay(new Date()),\r\n end: endOfDay(new Date()),\r\n color: colors.red,\r\n draggable: true,\r\n resizable: {\r\n beforeStart: true,\r\n afterEnd: true\r\n }\r\n });\r\n this.refresh.next();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'schedule.schedule' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{'schedule.schedule' | translate }}

\r\n \r\n
\r\n
\r\n
\r\n Action:\r\n
{{ modalData?.action }}
\r\n
\r\n
\r\n Event:\r\n
{{ modalData?.event | json }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Previous\r\n
\r\n
\r\n Today\r\n
\r\n
\r\n Next\r\n
\r\n
\r\n
\r\n
\r\n

{{ viewDate | calendarDate:(view + 'ViewTitle'):'en' }}

\r\n
\r\n
\r\n
\r\n
\r\n Month\r\n
\r\n
\r\n Week\r\n
\r\n
\r\n Day\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { ScheduleService } from 'app/services/schedule/schedule.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { IssueTypeService } from '../../services/issuetypes/issuetypes.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { parseDate } from 'ngx-bootstrap/chronos';\r\nimport { UserService } from '../../services/users/user.service';\r\n\r\n@Component({\r\n selector: 'fh-schedule',\r\n templateUrl: 'schedule.template.html'\r\n})\r\nexport class ScheduleViewComponent implements OnInit, OnDestroy {\r\n\r\n instance: DataTables.Api;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n issueTypes: any;\r\n dtOptions = {};\r\n loading = false;\r\n\r\n dropdown_IssueType = '';\r\n showItemsInfuture = false;\r\n showOtherOwners = true;\r\n users;\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private userService: UserService, private issueTypeService: IssueTypeService, private cd: ChangeDetectorRef, private scheduleService: ScheduleService) {\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n\r\n this.userService.getUsersByAccountId('00000000-0000-0000-0000-000000000000').subscribe(result => {\r\n this.users = result;\r\n });\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(event = null): void {\r\n console.log('fire filter');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n this.loading = true;\r\n\r\n console.log($.fn['dataTable'].ext.search);\r\n\r\n // Init all filters\r\n\r\n // IssueType filter\r\n $.fn['dataTable'].ext.search.push((settings, data, dataIndex) => {\r\n const id = parseFloat(data[6]) || 0; // use data for the id column\r\n if (that.dropdown_IssueType === '' || that.dropdown_IssueType === '0' || id === parseFloat(that.dropdown_IssueType)) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n // Date filter\r\n // const compareDate = Date.now();\r\n const compareDate = new Date();\r\n $.fn['dataTable'].ext.search.push((settings, data, dataIndex) => {\r\n const date = parseDate(data[3]);\r\n if (that.showItemsInfuture || date.getTime() <= compareDate.getTime()) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n order: [[2, 'asc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.scheduleService.getSchedules().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'deviceId',\r\n width: '20',\r\n orderable: false,\r\n title: '',\r\n render: function (data, type, row) {\r\n return data ? ' Details' : '-';\r\n }\r\n },\r\n {\r\n data: 'id',\r\n width: '80',\r\n title: this.translateService.instant('general.id'),\r\n visible: false\r\n },\r\n {\r\n data: 'date',\r\n width: '80',\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toLocaleDateString();\r\n }\r\n },\r\n {\r\n data: 'date',\r\n visible: false,\r\n title: this.translateService.instant('general.date'),\r\n render: function (data, type, row) {\r\n return new Date(data).toJSON();\r\n }\r\n },\r\n {\r\n data: 'deviceName',\r\n title: this.translateService.instant('general.device'),\r\n width: '120',\r\n render: function (data, type, row) {\r\n return data ? data : '-';\r\n }\r\n },\r\n {\r\n data: 'actionName',\r\n title: this.translateService.instant('general.action')\r\n },\r\n {\r\n data: 'workflowName',\r\n title: this.translateService.instant('general.workflow')\r\n },\r\n {\r\n data: 'userName',\r\n title: this.translateService.instant('general.user'),\r\n render: function (data, type, row) {\r\n return data ? data : '-';\r\n }\r\n }],\r\n columnDefs: [\r\n { width: '80', targets: 0 },\r\n { width: '80', targets: 0 },\r\n { width: '80', targets: 0 },\r\n { width: '200', targets: 0 }\r\n ],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n buttons: [\r\n {\r\n extend: 'colvis',\r\n text: ' colvis',\r\n titleAttr: 'Colvis'\r\n },\r\n {\r\n extend: 'copyHtml5',\r\n text: ' Copy',\r\n titleAttr: 'Copy'\r\n },\r\n {\r\n extend: 'excelHtml5',\r\n text: ' Xls',\r\n titleAttr: 'Excel'\r\n },\r\n {\r\n extend: 'csvHtml5',\r\n text: ' Csv',\r\n titleAttr: 'CSV'\r\n },\r\n {\r\n extend: 'pdfHtml5',\r\n text: ' Pdf',\r\n titleAttr: 'PDF'\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.filter' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n {{'schedule.schedule' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { Router } from '@angular/router';\r\nimport { InventorySensorType } from 'app/models/sensorType.model';\r\nimport { SensorsTypesService } from 'app/services/sensors/sensorTypes.service';\r\n\r\n@Component({\r\n selector: 'fh-sensor-type-add',\r\n templateUrl: 'add.template.html'\r\n})\r\nexport class SensorTypeAddViewComponent {\r\n token: string;\r\n addDevice = false;\r\n asset: Asset;\r\n formMode = FormMode.add;\r\n loading = false;\r\n assetTypes: AssetType[] = [];\r\n error: any;\r\n success: { statusText: string; success: string; };\r\n sensorType: InventorySensorType;\r\n\r\n constructor(private router: Router, private sensorTypeService: SensorsTypesService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService) {\r\n this.sensorType = new InventorySensorType();\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n this.sensorTypeService.saveSensorType(this.sensorType).subscribe(result => {\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'You will be redirected to the sensorType'\r\n };\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/SensorTypeDetails/Index/' + result.id]);\r\n }, 2000);\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.sensorTypes' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'general.calibration' | translate }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SensorsTypesService } from 'app/services/sensors/sensorTypes.service';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-sensor-types',\r\n templateUrl: 'sensorTypes.template.html'\r\n})\r\nexport class SensorTypeViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private sensorTypeService: SensorsTypesService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n const fileName = 'device_overview';\r\n const header = this.translateService.instant('menu.deviceoverview');\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n order: [[1, 'asc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n this.sensorTypeService.getSensorTypes().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.brand'),\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.model'),\r\n },\r\n {\r\n name: 'deviceSensorTypeName',\r\n data: 'deviceSensorTypeName',\r\n title: this.translateService.instant('general.deviceSensorTypeName'),\r\n },\r\n ],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.sensorTypes' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { InventorySensorType } from 'app/models/sensorType.model';\r\nimport { SensorsTypesService } from 'app/services/sensors/sensorTypes.service';\r\n\r\n@Component({\r\n selector: 'fh-fh-sensor-type-details',\r\n templateUrl: 'sensorTypesDetails.template.html'\r\n})\r\nexport class SensorTypeDetailsViewComponent implements OnInit {\r\n sub: any;\r\n sensorType = new InventorySensorType();\r\n device: any;\r\n tagType = TagObjectType.Asset.valueOf();\r\n\r\n loadingDevice = false;\r\n loading = false;\r\n error: any;\r\n success: any;\r\n formMode = FormMode.read;\r\n options;\r\n marker;\r\n\r\n permissions: {};\r\n trailer: Asset;\r\n calibrationPoints: { rawValue: number; actualValue: number; }[];\r\n\r\n constructor(private authentication: AuthenticationService, private assetService: AssetService, private sensorTypeService: SensorsTypesService, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loadingDevice = true;\r\n this.loading = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const sensorTypes = this.sensorTypeService.getSensorTypeById(id).subscribe(result => {\r\n this.sensorType = result;\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n\r\n // Form\r\n\r\n onDelete() {\r\n this.error = 'Deleting is not implemented';\r\n }\r\n\r\n onSave() {\r\n this.loading = true;\r\n\r\n this.sensorTypeService.updateSensorType(this.sensorType).subscribe(result => {\r\n\r\n this.error = '';\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'SensorType has been saved'\r\n };\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.sensorTypes' | translate }}\r\n
  4. \r\n
  5. \r\n {{sensorType?.brand}}\r\n
  6. \r\n
  7. \r\n {{'general.sensorTypeDetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'general.sensorType' | translate }}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.calibration' | translate }}
\r\n
\r\n \r\n \r\n
\r\n {{'general.usingFormula' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { PlatformService } from '../../services/platform/platform.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-calculation-settings',\r\n templateUrl: 'calculationSettings.template.html'\r\n})\r\nexport class CalculationSettingsViewComponent {\r\n sub;\r\n\r\n constructor() {\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.calculationsettings' | translate }}\r\n
  6. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { TranslatorService } from 'app/services/common/translator.service';\r\nimport { Severity, SettingsLevel } from './../../common/enums';\r\nimport { IssueTypeSettings } from './../../models/calculationsettings.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CalculationSettingsService } from './../../services/calculationsettings/calculationsettings.service';\r\nimport { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { PlatformService } from '../../services/platform/platform.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IssueTypeService } from '../../services/issuetypes/issuetypes.service';\r\nimport { IssueType } from '../../models/issuetype.model';\r\n\r\n@Component({\r\n selector: 'fh-calculation-settings-overview',\r\n templateUrl: 'calculationSettingsOverview.template.html'\r\n})\r\nexport class CalculationSettingsOverViewComponent implements OnInit {\r\n dtOptions = {};\r\n token;\r\n settings: any[] = [];\r\n accountSettings: any[] = [];\r\n generalSettings: any[] = [];\r\n platformSettings: any[] = [];\r\n deviceTypeSettings: any[] = [];\r\n customerSettings: any[] = [];\r\n deviceSettings: any[] = [];\r\n issueTypes: IssueType[];\r\n loading: boolean;\r\n\r\n constructor(private calculationSettingsService: CalculationSettingsService, private translateService: TranslateService,\r\n private translatorService: TranslatorService,\r\n private authenticationService: AuthenticationService, private translaterService: TranslatorService,\r\n private issueTypeService: IssueTypeService) {\r\n this.settings = [];\r\n this.accountSettings = [];\r\n this.generalSettings = [];\r\n this.platformSettings = [];\r\n this.deviceTypeSettings = [];\r\n this.deviceSettings = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n this.calculationSettingsService.getAllCalculationSettings().subscribe(result => {\r\n if (result != null) {\r\n this.settings = result;\r\n }\r\n\r\n this.settings.forEach(setting => {\r\n\r\n setting.name = this.translatorService.translate(setting.issuetypeName, 'enums.issuetypes');\r\n\r\n setting.duration = Math.round((setting.duration / 60) * 100) / 100;\r\n\r\n const settingIssueType = this.issueTypes.find(issueType => issueType.id === setting.issueType);\r\n if (settingIssueType) {\r\n setting.description = settingIssueType.uomDescription;\r\n setting.uom = settingIssueType.uom;\r\n }\r\n switch (SettingsLevel[setting.source]) {\r\n case 'General':\r\n this.generalSettings.push(setting);\r\n break;\r\n case 'Account':\r\n this.accountSettings.push(setting);\r\n break;\r\n case 'Platform':\r\n this.platformSettings.push(setting);\r\n break;\r\n case 'DeviceType':\r\n this.deviceTypeSettings.push(setting);\r\n break;\r\n case 'Customer':\r\n this.customerSettings.push(setting);\r\n break;\r\n case 'Device':\r\n this.deviceSettings.push(setting);\r\n break;\r\n }\r\n });\r\n\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.calculationSettingsOverview' | translate }}\r\n
  6. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'menu.devicesettings' | translate }}\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ 'grid.infoempty' | translate }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
","import { Severity, SettingsLevel } from './../../common/enums';\r\nimport { IssueTypeSettings } from './../../models/calculationsettings.model';\r\nimport { Component, OnInit, AfterViewInit, Input } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { PlatformService } from '../../services/platform/platform.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IssueType } from '../../models/issuetype.model';\r\n\r\n@Component({\r\n selector: 'fh-calculation-settings-overview-table',\r\n templateUrl: 'calculationSettingsOverviewTable.template.html'\r\n})\r\nexport class CalculationSettingsOverViewTableComponent {\r\n @Input() settings: any[];\r\n @Input() title: string;\r\n @Input() issueTypes: IssueType[];\r\n\r\n constructor() {\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n {{ title | translate }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.type' | translate}}\r\n \r\n {{ 'general.source' | translate}}\r\n \r\n {{ 'general.sourceName' | translate}}\r\n \r\n {{ 'general.threshold' | translate}}\r\n \r\n {{ 'general.severity' | translate}}\r\n \r\n {{ 'general.active' | translate}}\r\n
\r\n {{ 'enums.issuetypes.' + setting.issuetypeName | translate }}\r\n \r\n {{ 'enums.settingsLevel.' + setting.source | translate }}\r\n \r\n \r\n {{\r\n setting.sourceName }}\r\n {{\r\n setting.sourceName }}\r\n {{\r\n setting.sourceName }}\r\n {{\r\n setting.sourceName }}\r\n {{ setting.sourceName }}\r\n \r\n\r\n\r\n \r\n \r\n {{ setting.lowerThreshold }}\r\n - {{ setting.upperThreshold }} \r\n {{ setting.description}}\r\n for {{ setting.duration }} {{ 'general.minutes' |\r\n translate }} \r\n \r\n \r\n {{ 'enums.severity.' + setting.severity | translate }}\r\n \r\n {{ setting.isActive ? ('general.yes' | translate) : ('general.no' | translate) }}\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { ErrorLog } from '../../models/errorlog.model';\r\nimport { ErrorLogService } from '../../services/logging/error-log.service';\r\n\r\n@Component({\r\n selector: 'fh-error-log',\r\n templateUrl: 'errorlog.component.html'\r\n})\r\nexport class ErrorLogComponent implements OnInit {\r\n errorLog: ErrorLog[];\r\n sub;\r\n loading = false;\r\n\r\n\r\n constructor(private http: HttpClient, private errorLogService: ErrorLogService, private deviceService: DeviceService, private route: ActivatedRoute, private router: Router) {\r\n this.errorLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.errorLogService.getErrorLogs().subscribe(errorLog => {\r\n this.errorLog = errorLog;\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.log' | translate}}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { IssueService } from 'app/services/issues/issues.service';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { NotificationsService } from 'app/modules/notification';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { DriverService } from 'app/services/driver/driver.service';\r\n\r\n@Component({\r\n selector: 'fh-general-sttings',\r\n templateUrl: 'general.template.html'\r\n})\r\nexport class SettingsGeneralComponent implements OnInit {\r\n loading: boolean;\r\n\r\n\r\n constructor(private issueService: IssueService, private deviceService: DeviceService, private driverService: DriverService, private assetService: AssetService, protected notificationsService: NotificationsService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ResetIssueCache() {\r\n this.loading = true;\r\n this.issueService.resetIssueCache().subscribe(result => {\r\n this.loading = false;\r\n this.notificationsService.addInfo('Update', 'Issue cache has been cleared');\r\n console.log(result);\r\n });\r\n }\r\n\r\n ResetDeviceCache() {\r\n this.loading = true;\r\n this.deviceService.resetDeviceCache().subscribe(result => {\r\n this.loading = false;\r\n this.notificationsService.addInfo('Update', 'Device cache has been cleared');\r\n console.log(result);\r\n });\r\n }\r\n\r\n ResetAssetCache() {\r\n this.loading = true;\r\n this.assetService.resetAssetCache().subscribe(result => {\r\n this.loading = false;\r\n this.notificationsService.addInfo('Update', 'Asset cache has been cleared');\r\n console.log(result);\r\n });\r\n }\r\n\r\n ResetDriverCache() {\r\n this.loading = true;\r\n this.driverService.resetCache().subscribe(result => {\r\n this.loading = false;\r\n this.notificationsService.addInfo('Update', 'Driver cache has been cleared');\r\n console.log(result);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'general.settings' | translate}}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.settings' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { ReplaySubject } from 'rxjs/ReplaySubject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { IssueTypeService } from '../../services/issuetypes/issuetypes.service';\r\nimport { languages } from '../../common/enums';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { BsLocaleService } from 'ngx-bootstrap';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-language-settings',\r\n templateUrl: 'language.template.html'\r\n})\r\nexport class LanguageSettingsComponent implements OnInit {\r\n loading: boolean;\r\n dtOptions: DataTables.Settings = {};\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n\r\n languages;\r\n langData\r\n dtTrigger: Subject = new Subject();\r\n langDataArray = [];\r\n currentLang: any;\r\n\r\n constructor(private localeService: BsLocaleService, private http: HttpClient, private translate: TranslateService, private issueTypeService: IssueTypeService) {\r\n }\r\n\r\n onChange($event, lang) {\r\n this.loading = true;\r\n const that = this;\r\n\r\n this.http.get(lang)\r\n .map(this.extractData)\r\n .subscribe(langData => {\r\n this.langData = langData;\r\n this.loading = false;\r\n });\r\n\r\n if (lang) {\r\n lang = lang.replace('./assets/i18n/', '');\r\n lang = lang.replace('.json', '');\r\n this.translate.use(lang);\r\n Moment.locale(lang);\r\n this.localeService.use(lang);\r\n }\r\n\r\n this.issueTypeService.IssueTypes = [];\r\n }\r\n\r\n setLangtagMode() {\r\n console.log('Setting langtag mode');\r\n }\r\n\r\n\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // https://stackoverflow.com/questions/47606201/how-could-you-implement-a-database-approach-to-angular-internationalization\r\n\r\n this.currentLang = this.translate.currentLang;\r\n this.onChange(null, './assets/i18n/' + this.currentLang + '.json');\r\n\r\n this.languages = Object.keys(languages)\r\n .filter(k => typeof languages[k] === 'string')\r\n .map(n => ({ name: n, path: languages[n] }));\r\n\r\n\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n };\r\n }\r\n\r\n private extractData(res: Response) {\r\n this.langDataArray = [];\r\n // tslint:disable-next-line:forin\r\n for (const key in res) {\r\n const value = res[key];\r\n const object = { tag: key, text: value };\r\n this.langDataArray.push(object);\r\n }\r\n return this.langDataArray || {};\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.settingslanguage' | translate}}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.settingslanguage' | translate}}
\r\n
\r\n
\r\n
\r\n
{{'settings.chooselanguage' | translate}}
\r\n
\r\n \r\n
\r\n
{{'settings.langtagmode' | translate}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.settingslanguage' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'settings.tag' | translate}}{{'settings.text' | translate}}
{{ langtag.tag }}{{ langtag.text }}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { AccountService } from '../../services/accounts/accounts.service';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { InventoryAccount } from '../../models/account.model';\r\nimport { AppUser, UpdatePasswordRequest } from '../../models/user.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { languages, whitelabels } from '../../common/enums';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { BsLocaleService } from 'ngx-bootstrap';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-profile',\r\n templateUrl: 'profile.template.html'\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n dtOptions: DataTables.Settings = {};\r\n account: InventoryAccount;\r\n loading: boolean;\r\n user: AppUser;\r\n users: AppUser[];\r\n languages: { name: string; path: any; }[];\r\n currentLang;\r\n updateMessage: string;\r\n isSaved: boolean;\r\n\r\n oldPassword: string;\r\n confirmPassword: string;\r\n newPassword: string;\r\n whitelabels: { value: string; name: any; }[];\r\n\r\n periods: string[] = [];\r\n daysInTheWeek: string[] = [];\r\n days: number[] = [];\r\n quarters: string[] = [];\r\n\r\n chosenPeriod: string;\r\n chosenDayOfTheWeek: string;\r\n chosenDayOfTheMonth: number;\r\n chosenQuarter: string;\r\n\r\n constructor(private localeService: BsLocaleService, private translate: TranslateService, private authenticationService: AuthenticationService, private issueTypeService: IssueTypeService, private accountService: AccountService, private userService: UserService) {\r\n\r\n this.user = new AppUser();\r\n this.user.timezoneIana = 'Europe/Amsterdam'\r\n\r\n const userId = authenticationService.getUserId();\r\n this.currentLang = authenticationService.getLanguage();\r\n\r\n this.loading = true;\r\n\r\n this.userService.getUserById(userId).subscribe(user => {\r\n this.user = user;\r\n if (user.cronTabPattern) {\r\n this.readCronTabPattern(user.cronTabPattern);\r\n };\r\n });\r\n\r\n this.accountService.getAccountById('00000000-0000-0000-0000-000000000000').subscribe(account => {\r\n this.account = account;\r\n this.loading = false;\r\n\r\n this.userService.getUsersByAccountId(this.account.id).subscribe(result => {\r\n this.users = result;\r\n });\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n while (this.days.length < 31) {\r\n this.days.push(this.days.length + 1);\r\n }\r\n\r\n this.translate.get('general.date').subscribe(value => {\r\n this.periods.push(this.translate.instant('general.none'));\r\n this.periods.push(this.translate.instant('report.weekly'));\r\n this.periods.push(this.translate.instant('report.monthly'));\r\n this.periods.push(this.translate.instant('report.quarterly'));\r\n\r\n this.chosenPeriod = this.periods[0];\r\n\r\n this.daysInTheWeek.push(this.translate.instant('dates.monday'));\r\n this.daysInTheWeek.push(this.translate.instant('dates.tuesday'));\r\n this.daysInTheWeek.push(this.translate.instant('dates.wednesday'));\r\n this.daysInTheWeek.push(this.translate.instant('dates.thursday'));\r\n this.daysInTheWeek.push(this.translate.instant('dates.friday'));\r\n this.daysInTheWeek.push(this.translate.instant('dates.saturday'));\r\n this.daysInTheWeek.push(this.translate.instant('dates.sunday'));\r\n\r\n this.quarters.push(this.translate.instant('report.quarter1'));\r\n this.quarters.push(this.translate.instant('report.quarter2'));\r\n this.quarters.push(this.translate.instant('report.quarter3'));\r\n });\r\n\r\n this.languages = Object.keys(languages)\r\n .filter(k => typeof languages[k] === 'string')\r\n .map(n => ({ name: n, path: languages[n] }));\r\n\r\n this.whitelabels = Object.keys(whitelabels)\r\n .filter(k => typeof whitelabels[k] === 'string')\r\n .map(n => ({ value: n, name: whitelabels[n] }));\r\n\r\n }\r\n\r\n readCronTabPattern(pattern: string): void {\r\n const splitPattern = pattern.split(' ');\r\n\r\n if (splitPattern.length === 3) {\r\n const dayOfWeekPattern = parseInt(splitPattern[0], 10);\r\n const dayOfMonthPattern = parseInt(splitPattern[1], 10);\r\n const monthPattern = splitPattern[2];\r\n\r\n if (!isNaN(dayOfWeekPattern) && monthPattern === '*') {\r\n if (dayOfWeekPattern > 0 && dayOfWeekPattern <= 7) {\r\n this.chosenPeriod = this.periods[1];\r\n this.chosenDayOfTheWeek = this.daysInTheWeek[dayOfWeekPattern - 1].toString();\r\n }\r\n } else if (!isNaN(dayOfMonthPattern) && monthPattern === '*') {\r\n this.chosenPeriod = this.periods[2];\r\n this.chosenDayOfTheMonth = dayOfMonthPattern;\r\n } else if (!isNaN(dayOfMonthPattern) && monthPattern !== '-' && monthPattern !== '*') {\r\n const quarters = monthPattern.split(',');\r\n const notAllNumbers = quarters.find(x => isNaN(parseInt(x, 10)));\r\n if (!notAllNumbers) {\r\n this.chosenPeriod = this.periods[3];\r\n this.chosenDayOfTheMonth = dayOfMonthPattern;\r\n this.chosenQuarter = this.quarters[parseInt(monthPattern.split(',')[0], 10) - 1];\r\n }\r\n }\r\n } else {\r\n this.chosenPeriod = this.periods[0];\r\n }\r\n }\r\n\r\n createCronTab(period: string): void {\r\n let cronTabPattern = '';\r\n if (period === this.periods[1]) {\r\n if (!this.chosenDayOfTheWeek) {\r\n this.chosenDayOfTheWeek = this.daysInTheWeek[0];\r\n }\r\n cronTabPattern += (this.daysInTheWeek.indexOf(this.chosenDayOfTheWeek) + 1) + ' - *';\r\n } else if (period === this.periods[2]) {\r\n if (!this.chosenDayOfTheMonth) {\r\n this.chosenDayOfTheMonth = this.days[0];\r\n }\r\n cronTabPattern += '- ' + this.chosenDayOfTheMonth + ' *';\r\n } else if (period === this.periods[3]) {\r\n if (!this.chosenDayOfTheMonth || !this.chosenQuarter) {\r\n this.chosenDayOfTheMonth = this.chosenDayOfTheMonth ? this.chosenDayOfTheMonth : this.days[0];\r\n this.chosenQuarter = this.chosenQuarter ? this.chosenQuarter : this.quarters[0];\r\n }\r\n cronTabPattern += '- ' + this.chosenDayOfTheMonth + ' ' + (this.quarters.indexOf(this.chosenQuarter) === 0 ? '1,4,7,10' : this.quarters.indexOf(this.chosenQuarter) === 1 ? '2,5,8,11' : '3,6,9,12');\r\n }\r\n this.user.cronTabPattern = cronTabPattern ? cronTabPattern : null;\r\n }\r\n\r\n save() {\r\n this.loading = true;\r\n this.userService.updateUserProfile(this.user).subscribe(result => {\r\n this.loading = false;\r\n\r\n this.updateMessage = this.translate.instant('general.profileUpdated');\r\n this.isSaved = true;\r\n });\r\n }\r\n\r\n savePassword() {\r\n if (this.newPassword === this.confirmPassword) {\r\n const request = new UpdatePasswordRequest();\r\n request.id = this.user.id;\r\n request.userName = this.user.name;\r\n request.oldPassword = this.oldPassword;\r\n request.newPassword = this.newPassword;\r\n this.userService.updateUserPassword(request).subscribe(result => {\r\n this.updateMessage = this.translate.instant('general.passwordUpdated');\r\n this.isSaved = true;\r\n });\r\n }\r\n }\r\n\r\n onChange($event, lang) {\r\n this.isSaved = false;\r\n\r\n this.user.language = lang;\r\n if (lang !== this.translate.currentLang) {\r\n this.translate.use(lang);\r\n Moment.locale(lang);\r\n this.localeService.use(lang);\r\n }\r\n\r\n this.issueTypeService.IssueTypes = [];\r\n\r\n // Set language to localStorage\r\n this.authenticationService.setLanguage(lang);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.profile' | translate}}\r\n
  4. \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ updateMessage }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.profile' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.userNameEmail' | translate}}\r\n \r\n {{ user?.name }}\r\n
\r\n {{ 'general.firstName' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.lastName' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.whitelabel' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.language' | translate}}\r\n \r\n \r\n
{{ 'general.translateremark' | translate}}
\r\n {{ 'dates.timezone' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.account' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ account?.name }}\r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n {{ account?.createdDate | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.identifier' | translate}}\r\n \r\n {{ account?.identifier }}\r\n
\r\n {{ 'general.limitHistoryInDays' | translate}}\r\n \r\n {{ account?.limitHistoryInDays }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'general.changePassword' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.oldPassword' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.newPassword' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.confirmPassword' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Email report\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'report.email' | translate }}\r\n \r\n \r\n
\r\n {{ 'report.period' | translate }}\r\n \r\n \r\n
\r\n {{ 'dates.day' | translate }} {{ 'dates.ofThe' | translate }}\r\n {{ 'dates.week' | translate | lowercase }}\r\n \r\n \r\n
\r\n {{ 'dates.day' | translate }} {{ 'dates.ofThe' | translate }}\r\n {{ 'dates.month' | translate }}\r\n \r\n \r\n
\r\n {{ 'report.quarters' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { DeviceSensor, SensorUser, SensorDevice } from 'app/models/sensor.model';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\n\r\n@Component({\r\n selector: 'fh-sensor-details',\r\n templateUrl: 'sensorDetails.template.html',\r\n providers: []\r\n})\r\nexport class SensorDetailsComponent implements OnChanges {\r\n @Input() sensor: DeviceSensor;\r\n @Input() sensorUsers: SensorUser[];\r\n @Input() showSensorUsers: any;\r\n filteredSensors: DeviceSensor[] = [];\r\n loading: boolean;\r\n hideIrrelevant = true;\r\n // Pagination\r\n currentPage = 1;\r\n smallnumPages = 0;\r\n ascending = false;\r\n sortingFor = '';\r\n\r\n sensorDevices: SensorDevice[];\r\n\r\n constructor(private sensorService: DeviceSensorsService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (Object.keys(changes).indexOf('showSensorUsers') !== -1) {\r\n this.setPage(1);\r\n setTimeout(() => {\r\n $('.modal .ibox').css('min-height', $('.modal .ibox').height() + 14);\r\n }, 10);\r\n }\r\n }\r\n\r\n close(): void {\r\n this.showSensorUsers.show = false;\r\n $('.modal .ibox').removeAttr('style');\r\n }\r\n\r\n getSensorDevices(sensorUser: SensorUser): void {\r\n this.loading = true;\r\n this.sensorService.getSensorDevices(this.sensor.name, this.sensor.parameter, this.sensor.deviceSensorTypeId, this.sensor.isCustomDeviceSensorTypeId, sensorUser.deviceTypeId, sensorUser.manufacturer, sensorUser.customerId)\r\n .subscribe((result: SensorDevice[]) => {\r\n this.loading = false;\r\n this.sensorDevices = result;\r\n });\r\n }\r\n\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n {{ 'chart.sensorDefaultName' | translate }}: {{ sensor.name }}{{ sensor.parameter ? ' (' + sensor.parameter + ')' : '' }}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ 'general.customer' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.manufacturer' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.devicetype' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.count' | translate}}\r\n
\r\n
\r\n {{ sensorUser.customerName }}\r\n \r\n {{ sensorUser.manufacturer }}\r\n \r\n {{ sensorUser.deviceType }}\r\n \r\n {{ sensorUser.sensorCount }}\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { DeviceSensor, SensorUser, SensorDevice } from 'app/models/sensor.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-sensor-devices',\r\n templateUrl: 'sensorDevices.template.html',\r\n providers: []\r\n})\r\nexport class SensorDevicesComponent implements OnChanges {\r\n @Input() sensor: DeviceSensor;\r\n @Input() sensorDevices: SensorDevice[];\r\n\r\n filteredSensors: DeviceSensor[] = [];\r\n loading: boolean;\r\n hideIrrelevant = true;\r\n // Pagination\r\n currentPage = 1;\r\n smallnumPages = 0;\r\n ascending = false;\r\n sortingFor = '';\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (Object.keys(changes).indexOf('showSensorDevices') !== -1) {\r\n this.setPage(1);\r\n setTimeout(() => {\r\n $('.modal .ibox').css('min-height', $('.modal .ibox').height() + 14);\r\n }, 10);\r\n }\r\n }\r\n\r\n close(): void {\r\n this.sensorDevices.splice(0, this.sensorDevices.length);\r\n }\r\n\r\n goToDeviceDetails(deviceId: string): void {\r\n this.router.navigate(['/DeviceDetails/Index/' + deviceId]);\r\n }\r\n\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n {{ 'chart.sensorDefaultName' | translate }}:\r\n {{ sensor.name }}{{ sensor.parameter ? ' (' + sensor.parameter + ')' : '' }}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ 'general.sensorName' | translate }}\r\n
\r\n
\r\n
\r\n {{ 'general.name' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.unitId' | translate }}\r\n
\r\n
\r\n {{ sensorDevice.sensorName }}{{sensorDevice.parameter ? ' (' + sensorDevice.parameter + ')' : ''}}\r\n \r\n {{ sensorDevice.deviceName }}\r\n \r\n {{ sensorDevice.unitId }}\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\nimport { DeviceSensor, DeviceSensorType, SensorUser } from 'app/models/sensor.model';\r\nimport { TextFilterPipe } from 'app/common/textFilter.pipe';\r\n\r\n@Component({\r\n selector: 'fh-sensor-settings',\r\n templateUrl: 'sensorSettings.template.html',\r\n providers: [TextFilterPipe],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SensorSettingsComponent implements OnInit {\r\n sensors: DeviceSensor[] = [];\r\n filteredSensors: DeviceSensor[] = [];\r\n loading: boolean;\r\n sensorTypes: DeviceSensorType[] = [];\r\n hideIrrelevant = true;\r\n sensorUsers: SensorUser[] = [];\r\n activeSensor: DeviceSensor;\r\n showSensorUsers: any = { show: false };\r\n\r\n // Pagination\r\n totalItems = 0;\r\n currentPage = 1;\r\n smallnumPages = 0;\r\n sensorsChanged: DeviceSensor[] = [];\r\n searchTerm = '';\r\n ascending = false;\r\n sortingFor = '';\r\n error: any;\r\n success: string;\r\n\r\n constructor(private cd: ChangeDetectorRef, private sensorService: DeviceSensorsService, private textFilterPipe: TextFilterPipe) {\r\n this.loading = true;\r\n\r\n sensorService.getDeviceSensorTypes().subscribe(result => {\r\n this.sensorTypes = result;\r\n });\r\n\r\n sensorService.getSensors().subscribe(result => {\r\n this.sensors = result;\r\n this.filteredSensors = textFilterPipe.transform(this.sensors, this.searchTerm);\r\n this.totalItems = this.filteredSensors.length;\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n changeSensorsChanged(sensor) {\r\n sensor.isChanged = true;\r\n sensor.isCustomDeviceSensorTypeId = true;\r\n\r\n this.sensorsChanged = this.sensors.filter(x => x.isChanged === true);\r\n }\r\n\r\n save() {\r\n this.loading = true;\r\n this.sensorService.saveSensorSettings(this.sensorsChanged).subscribe(result => {\r\n this.loading = false;\r\n this.success = 'Sensors saved successfully';\r\n if (result === true) {\r\n this.sensorsChanged = [];\r\n }\r\n this.cd.markForCheck();\r\n },\r\n err => {\r\n this.loading = false;\r\n this.error = err;\r\n this.cd.markForCheck();\r\n console.error(err)\r\n }\r\n );\r\n }\r\n\r\n newSearchTerm() {\r\n this.filteredSensors = this.textFilterPipe.transform(this.sensors, this.searchTerm);\r\n this.totalItems = this.filteredSensors.length;\r\n }\r\n\r\n // Pagination\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n\r\n updatePageNumber(value): void {\r\n this.smallnumPages = value;\r\n this.cd.detectChanges();\r\n }\r\n\r\n pageChanged(event: any): void {\r\n console.log('Page changed to: ' + event.page);\r\n console.log('Number items per page: ' + event.itemsPerPage);\r\n }\r\n\r\n showSensor(sensor: DeviceSensor) {\r\n this.activeSensor = sensor;\r\n this.loading = true;\r\n this.sensorService.getSensorUsers(sensor.name, sensor.parameter, sensor.deviceSensorTypeId, sensor.isCustomDeviceSensorTypeId).subscribe(result => {\r\n this.sensorUsers = result;\r\n this.loading = false;\r\n this.showSensorUsers.show = true;\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n sortBy(settingProperty: string) {\r\n if (!(this.sortingFor === settingProperty)) {\r\n this.ascending = false;\r\n }\r\n this.sortingFor = settingProperty\r\n const sortA = this.ascending ? -1 : 1;\r\n const sortB = this.ascending ? 1 : -1;\r\n\r\n switch (settingProperty) {\r\n case 'name':\r\n this.filteredSensors.sort((a, b) => { return (a.name > b.name ? sortA : sortB) });\r\n break;\r\n case 'metrics':\r\n this.filteredSensors.sort((a, b) => { return (a.metrics > b.metrics ? sortA : sortB) });\r\n break;\r\n case 'parameter':\r\n this.filteredSensors.sort((a, b) => { return (a.parameter > b.parameter ? sortA : sortB) });\r\n break;\r\n case 'sensorCount':\r\n this.filteredSensors.sort((a, b) => { return (a.sensorCount > b.sensorCount ? sortA : sortB) });\r\n break;\r\n case 'sensorType':\r\n this.filteredSensors.sort((a, b) => { return (this.sensorTypes.find(x => x.id === a.deviceSensorTypeId).name > this.sensorTypes.find(x => x.id === b.deviceSensorTypeId).name ? sortA : sortB) });\r\n break;\r\n case 'save':\r\n this.filteredSensors.sort((a, b) => { return (a.isChanged === b.isChanged ? 0 : this.ascending ? sortA : sortB) });\r\n break;\r\n }\r\n\r\n this.ascending = !this.ascending;\r\n this.filteredSensors = Object.assign([], this.filteredSensors);\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.sensorSettings' | translate }}\r\n
  6. \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ 'general.sensors' | translate }}\r\n
\r\n {{currentPage}}/{{smallnumPages}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ 'general.name' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.metrics' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.parameter' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.sensorCount' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.sensorType' | translate}}\r\n
\r\n
\r\n
\r\n {{ 'general.save' | translate}}\r\n
\r\n
\r\n {{ sensor.name }}\r\n \r\n {{ sensor.metrics }}\r\n \r\n {{ sensor.parameter }}\r\n \r\n {{ sensor.sensorCount }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fh-settings',\r\n templateUrl: 'settings.template.html'\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n dtOptions: DataTables.Settings = {};\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.settingsgeneral' | translate}}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.settings' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Change password\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n System settings\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Sign contract for\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Lines From Great Russian Literature?\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Flooded: One year later, assessing what was lost\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Create 4 Invisible User Experiences\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'fh-theme-sttings',\r\n templateUrl: 'theme.template.html'\r\n})\r\nexport class ThemeSettingsComponent implements OnInit {\r\n\r\n color1;\r\n color2;\r\n chColor1;\r\n chColor2;\r\n chColor3;\r\n textColor;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n // https://material.io/color/#!/?view.left=0&view.right=0&primary.color=E6EE9C&secondary.color=FAFAFA\r\n\r\n this.color1 = '#385D91';\r\n this.color2 = '#CB711D';\r\n this.chColor1 = '#CB711D';\r\n this.chColor2 = '#C9A484';\r\n this.chColor3 = '#e6cbb4';\r\n this.textColor = '#3D3E3F';\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.settingstheme' | translate}}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.settingstheme' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
Select theme
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Primary color
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Secondary color
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Logo
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Chart color 1
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Chart color 2
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Chart color 3
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Text color
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Preview\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Header
SidebarLorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam iaculis quam ac vehicula tristique.\r\n Vestibulum molestie velit et magna viverra hendrerit. Maecenas a magna dapibus purus dapibus\r\n lacinia at eu nulla. Phasellus eu sodales odio.\r\n\r\n
\r\n
\r\n\r\n
Color 1
\r\n
Color 2
\r\n\r\n
\r\n
\r\n
\r\n\r\n
Chart 1
\r\n
Chart 2
\r\n
Chart 3
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { SortableModule } from 'ngx-bootstrap/sortable';\r\nimport { WorkflowService } from '../../services/workflows/workflows.service';\r\nimport { Workflow, Action, WorkflowAction, WorkflowActionActions } from '../../models/workflow.model';\r\n\r\n@Component({\r\n selector: 'fh-theme-workflow',\r\n templateUrl: 'workflow.template.html',\r\n styleUrls: ['workflow.template.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class WorkflowSettingsComponent implements OnInit {\r\n\r\n possibleActions: any;\r\n selectedAction: any;\r\n addActionMode = false;\r\n actionName: any;\r\n actionsInWorkflow;\r\n @Input() model: { type: string, id: number, columns };\r\n @Input() list: any[];\r\n\r\n selectedWorkflowId = '0';\r\n selectedWorkflow: Workflow;\r\n workflowName = '';\r\n\r\n actions: Action[] = [];\r\n\r\n workflowActions: WorkflowAction[] = []\r\n actionsToChoose: Action[] = [];\r\n workflows: Workflow[] = [];\r\n nextActions: WorkflowAction[];\r\n loadingNextActions: boolean;\r\n\r\n constructor(private workflowService: WorkflowService) {\r\n this.selectedWorkflowId = '0';\r\n this.selectedWorkflow = new Workflow();\r\n this.selectedWorkflow.workflowActions = [];\r\n this.selectedAction = null;\r\n this.workflowName = '';\r\n }\r\n\r\n newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n // tslint:disable-next-line:no-bitwise\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n addAction() {\r\n console.log(this.actionsToChoose);\r\n\r\n const action = new Action();\r\n action.name = this.actionName;\r\n action.id = this.newGuid();\r\n\r\n this.actions.push(action);\r\n this.actionsToChoose = this.actions;\r\n\r\n console.log(this.actionsToChoose);\r\n }\r\n\r\n doesNotContain(a, obj) {\r\n for (let i = 0, len = a.length; i < len; i++) {\r\n if (a[i] === obj) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n doesNotContainArray(a, obj) {\r\n for (let p = 0, len = obj.length; p < len; p++) {\r\n for (let i = 0, len2 = a.length; i < len2; i++) {\r\n if (a[i] === obj[p]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n createNewWorkflow() {\r\n this.selectedWorkflowId = '0';\r\n this.selectedWorkflow = new Workflow();\r\n this.selectedWorkflow.workflowActions = [];\r\n this.selectedAction = null;\r\n this.workflowName = '';\r\n this.actionsToChoose = this.actions;\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.workflowService.getActions().subscribe(actions => {\r\n this.actions = actions;\r\n this.actionsToChoose = actions;\r\n\r\n this.workflowService.getWorkflows(this.actions).subscribe(workflows => {\r\n this.workflows = workflows;\r\n });\r\n });\r\n }\r\n\r\n changeWorkflow(event) {\r\n if (this.selectedWorkflowId === '0') {\r\n this.createNewWorkflow()\r\n } else {\r\n this.selectedWorkflow = this.workflows.filter(x => x.id.toString() === this.selectedWorkflowId)[0];\r\n const actionIds = [];\r\n this.selectedAction = null;\r\n\r\n this.selectedWorkflow.workflowActions.forEach(action => {\r\n actionIds.push(action.id);\r\n });\r\n\r\n this.actionsToChoose = this.actions.filter(x => this.doesNotContain(actionIds, x.id))\r\n this.nextActions = this.selectedWorkflow.workflowActions.slice();\r\n }\r\n }\r\n\r\n\r\n selectAction(action) {\r\n this.loadingNextActions = true;\r\n this.selectedAction = action;\r\n setTimeout(() => {\r\n this.nextActions = this.selectedWorkflow.workflowActions.slice();\r\n const selectOptions = this.selectedWorkflow.workflowActionActions.filter(x => x.fromActionId === this.selectedAction.id).map(x => x.toActionId);\r\n this.nextActions.forEach(wfa => {\r\n wfa.isSelected = false;\r\n if (!this.doesNotContain(selectOptions, wfa.id)) {\r\n wfa.isSelected = true;\r\n }\r\n });\r\n this.loadingNextActions = false;\r\n this.possibleActions = [];\r\n }, 200);\r\n }\r\n\r\n saveNextActions(action) {\r\n this.loadingNextActions = true;\r\n setTimeout(() => {\r\n if (action.isSelected) {\r\n const newAction: WorkflowActionActions = new WorkflowActionActions();\r\n newAction.fromActionId = this.selectedAction.id;\r\n newAction.toActionId = action.id;\r\n\r\n this.selectedWorkflow.workflowActionActions.push(newAction);\r\n } else {\r\n this.selectedWorkflow.workflowActionActions.splice(this.selectedWorkflow.workflowActionActions.findIndex(x => x.toActionId === action.id), 1);\r\n }\r\n this.loadingNextActions = false;\r\n }, 200);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.settings' | translate }}\r\n
  4. \r\n
  5. \r\n {{'workflow.header' | translate}}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.settingsworkflow' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'workflow.actionstochoose' | translate}}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'workflow.actionsinworkflow' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'workflow.actionsafterselected' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n No actions in workflow\r\n
\r\n
\r\n \r\n {{ actionInWorkflow.name }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ actionInWorkflow.name }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'workflow.actiondetails' | translate}} \"{{\r\n selectedAction?.name }}\"\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'workflow.startworkflow' | translate}}\r\n \r\n \r\n \r\n {{ 'workflow.endworkflow' | translate}}\r\n \r\n \r\n
\r\n {{ 'workflow.days' | translate}}\r\n \r\n \r\n \r\n {{ 'workflow.allowAutoProcess' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'workflow.correspondence' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'workflow.hasCorrespondence' | translate}}\r\n \r\n \r\n \r\n {{ 'workflow.userlevel' | translate}}\r\n \r\n \r\n
\r\n {{ 'workflow.method' | translate}}\r\n \r\n \r\n \r\n {{ 'workflow.user' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { environment } from 'app/../environments/environment';\r\n\r\n@Component({\r\n selector: 'fh-footer',\r\n templateUrl: 'footer.template.html'\r\n})\r\nexport class FooterComponent implements OnInit {\r\n appVersion: string;\r\n appName: string;\r\n ngOnInit(): void {\r\n this.appVersion = environment.version;\r\n this.appName = environment.ApplicationName;\r\n }\r\n}\r\n","
\r\n
\r\n {{ appName }}, Build {{ appVersion }}\r\n
\r\n
\r\n Copyright © 2017-2020\r\n
\r\n
","import { Component, Output, EventEmitter, Input, OnChanges } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'iboxseach',\r\n templateUrl: 'iboxsearch.template.html'\r\n})\r\nexport class IboxSearchComponent implements OnChanges {\r\n\r\n @Input() searchTerm: string;\r\n @Input() showColumns: Boolean = true;\r\n @Output() public seachChanged: EventEmitter = new EventEmitter();\r\n @Output() public columnsChanged: EventEmitter = new EventEmitter();\r\n\r\n searchVar: string;\r\n isEditMode = false;\r\n search$ = new Subject();\r\n\r\n showFiltersEnabled = true;\r\n showColumnsEnabled = false;\r\n\r\n constructor() {\r\n this.searchVar = '';\r\n\r\n this.search$\r\n .debounceTime(700)\r\n .distinctUntilChanged()\r\n .subscribe(search => {\r\n this.seachChanged.emit(search);\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.searchTerm != null) {\r\n this.searchVar = this.searchTerm;\r\n }\r\n }\r\n\r\n sumbitSearch() {\r\n this.seachChanged.emit(this.searchVar);\r\n }\r\n\r\n switchEditMode() {\r\n if (this.isEditMode === false) {\r\n this.isEditMode = true;\r\n const toolbox = $('#grid-toolbox');\r\n\r\n if (this.isEditMode) {\r\n toolbox.removeClass('hidden');\r\n\r\n // reset trey\r\n $(document).mouseup((e: any) => {\r\n if (!toolbox.is(e.target) && toolbox.has(e.target).length === 0) {\r\n\r\n $(this).unbind(e);\r\n\r\n toolbox.addClass('hidden');\r\n this.isEditMode = false;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n switchColumnChooser() {\r\n if (this.showColumnsEnabled === false) {\r\n this.showColumnsEnabled = true;\r\n const chooser = $('#grid-column-chooser');\r\n\r\n if (this.showColumnsEnabled) {\r\n chooser.removeClass('hidden');\r\n\r\n // reset trey\r\n $(document).mouseup((e: any) => {\r\n if (!chooser.is(e.target) && chooser.has(e.target).length === 0) {\r\n\r\n $(this).unbind(e);\r\n\r\n chooser.addClass('hidden');\r\n this.showColumnsEnabled = false;\r\n this.columnsChanged.next();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
","import { Component } from '@angular/core';\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'iboxtools',\r\n templateUrl: 'iboxtools.template.html'\r\n})\r\nexport class IboxToolsComponent {\r\n\r\n public collapse(e): void {\r\n e.preventDefault();\r\n const ibox = jQuery(e.target).closest('div.ibox');\r\n const button = jQuery(e.target).closest('i');\r\n const content = ibox.children('.ibox-content');\r\n content.slideToggle(200);\r\n button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');\r\n ibox.toggleClass('').toggleClass('border-bottom');\r\n setTimeout(function () {\r\n ibox.resize();\r\n ibox.find('[id^=map-]').resize();\r\n }, 50);\r\n }\r\n\r\n public close(e): void {\r\n e.preventDefault();\r\n const content = jQuery(e.target).closest('div.ibox');\r\n content.remove();\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BsDropdownModule } from 'ngx-bootstrap';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\nimport { IboxToolsComponent } from './iboxtools.component';\r\nimport { IboxSearchComponent } from './iboxsearch.component';\r\n\r\n@NgModule({\r\n declarations: [IboxToolsComponent, IboxSearchComponent],\r\n imports: [FormsModule, TranslateModule, BrowserModule, BsDropdownModule.forRoot()],\r\n exports: [IboxToolsComponent, IboxSearchComponent],\r\n})\r\n\r\nexport class IboxToolsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { detectBody } from '../../../app.helpers';\r\nimport { ColorService } from '../../../services/common/color.service';\r\nimport { EventService } from 'app/services/events/events.service';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { environment } from 'app/../environments/environment';\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'fh-basic',\r\n templateUrl: 'basicLayout.template.html',\r\n // tslint:disable-next-line:use-host-property-decorator\r\n host: { '(window:resize)': 'onResize()' }\r\n})\r\nexport class BasicLayoutComponent implements OnInit {\r\n cssVariables: any;\r\n\r\n public ngOnInit(): any {\r\n detectBody();\r\n console.log('Init basiclayout');\r\n\r\n const whitelabel = this.authenticationService.getWhitelabel();\r\n this.colors.getThemeColors(whitelabel).subscribe(result => {\r\n console.log('Add theme');\r\n this.addTheme(result);\r\n });\r\n\r\n // this.eventService.onWhitelabelChance.subscribe(whitelabelChanged => {\r\n // this.colors.getThemeColors(whitelabelChanged).subscribe(result => {\r\n // console.log('Add theme');\r\n // this.addTheme(result);\r\n // });\r\n // });\r\n }\r\n\r\n constructor(private colors: ColorService, private eventService: EventService, private authenticationService: AuthenticationService, private titleService: Title) {\r\n this.titleService.setTitle(environment.ApplicationName);\r\n }\r\n\r\n addTheme(colors) {\r\n let css = '';\r\n\r\n css = '.nav-header, .navbar-static-top, #wrapper, .footer {background-color: ' + colors.primary + ' !important; }';\r\n css += '.primary { color: ' + colors.primary + '!important; } .secondary { color: ' + colors.secondary + '!important; }';\r\n css += '.nav > li.active { border-left: 4px solid ' + colors.secondary + '!important; } .nav.nav-second-level > li.active { border-left: 0px solid ' + colors.secondary + '!important; }';\r\n css += '.btn-primary.btn-outline { color: ' + colors.secondary + '!important; background-color: #FFF!important; border-color: ' + colors.secondary + '!important; } ';\r\n css += '.btn-primary { background-color: ' + colors.secondary + '!important; border-color: ' + colors.secondary + '!important; } ';\r\n css += '.bootstrap tag { background-color: ' + colors.secondary + '!important; box-shadow: ' + colors.secondary + '!important; } ';\r\n css += '.seach-background { background-color: ' + colors.seachBackground + '!important } ';\r\n css += '.seach-background .form-control, .seach-background .form-control::placeholder { color: ' + colors.seachColor + ' !important; } ';\r\n css += '.nav .open > a, .nav .open > a:hover, .nav .open > a:focus { background: ' + colors.secondary + ' !important; } ';\r\n css += '.label-primary, .badge-primary{ background-color: ' + colors.secondary + '!important; } ';\r\n css += '.cube1, .cube2, .rect1, .rect2, .rect3, .rect4, .rect5 , .sk-rect1, .sk-rect2, .sk-rect3, .sk-rect4, .sk-rect5{ background-color: ' + colors.secondary + '!important; } ';\r\n css += '.form-control:focus, .single-line:focus { border-color: ' + colors.secondary + '!important; } ';\r\n css += '.gray-bg { background-color: ' + colors.background + '!important;} ';\r\n css += '.progress-bar { background-color: ' + colors.secondary + '; } ';\r\n css += 'a { color: #515151; } a:hover { color: #515151; } ';\r\n css += '.toast-success { background-color: ' + colors.secondary + '; } ';\r\n css += '.site_logo { width: 220px; height: 95px; background: url(data:image/png;base64,' + colors.logoBinary + ')!important;} ';\r\n css += '.pace .pace-progress { background: ' + colors.secondary + '!important; } ';\r\n css += '.dropdown-menu > .active > a, .dropdown-menu > .active > a:focus, .dropdown-menu > .active > a:hover { color: #fff; text-decoration: none; background-color: ' + colors.secondary + '!important;}';\r\n css += '.label-success, .badge-success { background-color: ' + colors.chartPositive + '!important; color: #FFFFFF; }.label-danger, .badge-danger { background-color: ' + colors.chartNegative + '!important; color: #FFFFFF;} ';\r\n\r\n const head = document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.type = 'text/css';\r\n style.appendChild(document.createTextNode(css));\r\n if (colors.overwrite === true) {\r\n head.appendChild(style);\r\n }\r\n }\r\n\r\n public onResize() {\r\n detectBody();\r\n }\r\n}\r\n","\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n \r\n\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { environment } from 'app/../environments/environment';\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'fh-blank',\r\n templateUrl: 'blankLayout.template.html'\r\n})\r\nexport class BlankLayoutComponent {\r\n constructor(private titleService: Title) {\r\n this.titleService.setTitle(environment.ApplicationName);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, AfterViewInit, ChangeDetectionStrategy, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport 'jquery-slimscroll';\r\nimport { AuthenticationService } from '../../../services/authentication/authentication.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\n\r\n@Component({\r\n selector: 'fh-navigation',\r\n templateUrl: 'navigation.template.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class NavigationComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n hasFuel: any;\r\n // Permissions\r\n hasReporting: any;\r\n hasCalculationSettings: any;\r\n hasLocations: any;\r\n hasTrips: any;\r\n hasAdvice: any;\r\n hasSchedule: any;\r\n hasSettings: any;\r\n hasAssets: any;\r\n hasDevices: any;\r\n hasCustomers: any;\r\n\r\n showId: any;\r\n id: number;\r\n private sub: Subscription;\r\n children = false;\r\n permissions: {};\r\n isImpersonated: boolean;\r\n\r\n constructor(private cd: ChangeDetectorRef, private router: Router, private route: ActivatedRoute, private authentication: AuthenticationService) {\r\n this.id = 0;\r\n this.showId = '';\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n setTimeout(() => {\r\n $('#side-menu')['metisMenu']();\r\n }, 1);\r\n\r\n if ($('body').hasClass('fixed-sidebar')) {\r\n $('.sidebar-collapse')['slimscroll']({\r\n height: '100%'\r\n })\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.isImpersonated = this.authentication.getIsImpersonated();\r\n\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.router.events.subscribe(params => {\r\n // console.log(params);\r\n this.cd.markForCheck();\r\n });\r\n\r\n if (this.route.children.length > 0) {\r\n this.children = true;\r\n\r\n this.sub = this.route.children[0].params.subscribe(params => {\r\n console.log('Update route ' + params['id']);\r\n this.id = params['id'];\r\n this.showId = this.id ? this.id.toString().substring(0, 4) : '';\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n activeRoute(routename: string): boolean {\r\n return this.router.url.indexOf(routename) === 1;\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n if (this.children) {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n }\r\n}\r\n","","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { BsDropdownModule } from 'ngx-bootstrap';\r\n\r\nimport { BasicLayoutComponent } from './layouts/basicLayout.component';\r\nimport { BlankLayoutComponent } from './layouts/blankLayout.component';\r\n\r\nimport { NavigationComponent } from './navigation/navigation.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { TopNavbarComponent } from './topnavbar/topnavbar.component';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { NotificationsModule } from '../../modules/notification'\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { UsercontrolsModule } from './usercontrols.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n FooterComponent,\r\n BasicLayoutComponent,\r\n BlankLayoutComponent,\r\n NavigationComponent,\r\n TopNavbarComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n UsercontrolsModule,\r\n TypeaheadModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n TranslateModule,\r\n NotificationsModule\r\n ],\r\n exports: [\r\n FooterComponent,\r\n BasicLayoutComponent,\r\n BlankLayoutComponent,\r\n NavigationComponent,\r\n TopNavbarComponent,\r\n TranslateModule\r\n ],\r\n})\r\n\r\nexport class SharedLayoutsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { smoothlyMenu } from '../../../app.helpers';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { AuthenticationService } from '../../../services/authentication/authentication.service';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { SearchService } from '../../../services/search/search.service';\r\n\r\ndeclare var jQuery: any;\r\n\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\r\nimport { Http } from '@angular/http';\r\nimport { Observer } from 'rxjs/Observer';\r\nimport { switchMap, delay, map } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { CacheService } from '../../../services/common/cache.service';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Component({\r\n selector: 'fh-topnavbar',\r\n templateUrl: 'topnavbar.template.html',\r\n providers: [SearchService]\r\n})\r\nexport class TopNavbarComponent implements OnInit {\r\n\r\n asyncSelected: any;\r\n form: any;\r\n api_url: string;\r\n id: string;\r\n results: Object;\r\n autoComplete$: Observable;\r\n isImpersonated = false;\r\n\r\n autoCompleteSearchTerm: string;\r\n typeaheadLoading: boolean;\r\n typeaheadNoResults: boolean;\r\n\r\n constructor(private router: Router, private http: Http, private cacheService: CacheService, private cookieService: CookieService, private authenticationService: AuthenticationService, private searchService: SearchService) {\r\n }\r\n\r\n stopImpersonation() {\r\n this.router.navigate(['/']).then(response => {\r\n this.authenticationService.stopImpersonation();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isImpersonated = this.authenticationService.getIsImpersonated();\r\n\r\n this.id = this.authenticationService.getId();\r\n\r\n this.autoComplete$ = Observable.create((observer: any) => {\r\n this.actualSearch(this.asyncSelected).subscribe((result: any) => {\r\n observer.next(result);\r\n })\r\n });\r\n }\r\n\r\n actualSearch(search) {\r\n console.log(search);\r\n return this.searchService.searchEntries(search).debounceTime(300).distinctUntilChanged();\r\n }\r\n\r\n toggleNavigation(): void {\r\n jQuery('body').toggleClass('mini-navbar');\r\n smoothlyMenu();\r\n }\r\n\r\n logout() {\r\n // Logout from application ... clearing tokens and redirecting\r\n this.cookieService.delete('SsoToken', '/');\r\n this.cacheService.clearCache();\r\n this.authenticationService.clearToken();\r\n }\r\n\r\n onSubmit() {\r\n console.log('Search on');\r\n }\r\n\r\n changeTypeaheadLoading(e: boolean): void {\r\n this.typeaheadLoading = e;\r\n }\r\n\r\n typeaheadOnSelect(e: TypeaheadMatch): void {\r\n console.log('Selected value: ', e);\r\n // Device\r\n if (e.item.group === 1) {\r\n this.router.navigate(['/DeviceDetails/Index/' + e.item.id])\r\n }\r\n\r\n // DeviceType\r\n if (e.item.group === 2) {\r\n this.router.navigate(['/DeviceTypeDetails/Index/' + e.item.id])\r\n }\r\n\r\n // Issue\r\n if (e.item.group === 3) {\r\n this.router.navigate(['/IssueDetails/Index/' + e.item.id])\r\n }\r\n\r\n // Customer\r\n if (e.item.group === 5) {\r\n this.router.navigate(['/CustomerDetails/Index/' + e.item.id])\r\n }\r\n\r\n // Asset\r\n if (e.item.group === 6) {\r\n this.router.navigate(['/AssetDetails/Index/' + e.item.id])\r\n }\r\n }\r\n\r\n goToOverview() {\r\n window.open(environment.FORedirectUrl + 'Login/?token=' + this.authenticationService.getAuthToken() + '&expired=' + this.authenticationService.getAuthTokenExpired());\r\n }\r\n}\r\n","
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// NGX-Bootstrap\r\nimport { ModalModule, TooltipModule, PaginationModule } from 'ngx-bootstrap';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { BsDropdownModule } from 'ngx-bootstrap';\r\n\r\n// Forms\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { TimezoneSelectorModule } from '../../modules/timezoneselector/timezoneselector.module';\r\n\r\n// User Controlls\r\nimport { DevicesNearbyComponent } from './usercontrols/devicesNearby.component';\r\nimport { ScheduleDetailsComponent } from './usercontrols/scheduleDetails.component';\r\nimport { AdviceDetailsComponent } from './usercontrols/adviceDetails.component';\r\nimport { GeneralCalculationSettingsComponent } from './usercontrols/calculationSettings.component';\r\nimport { UserEditorComponent } from './usercontrols/userEditor.component';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { NgxLoadingModule, ngxLoadingAnimationTypes } from 'ngx-loading';\r\nimport { WizardModule } from '../../modules/wizard/wizard.module';\r\nimport { LangSelectorComponent } from './usercontrols/lang-selector.component';\r\n\r\n// Pipes\r\nimport { OrderByPipe } from 'app/common/orderBy.pipe';\r\nimport { MomentModule } from 'angular2-moment';\r\n\r\n// Tags (chips)\r\nimport { TagInputModule } from 'ngx-chips';\r\nimport { TaggingComponent } from './usercontrols/tagging.component';\r\nimport { AssetTypeModuleComponent } from './usercontrols/assetTypeModule.component';\r\nimport { AddressDetailsComponent } from './usercontrols/addressDetails.component';\r\nimport { SaveFooterComponent } from './usercontrols/saveFooter.component';\r\nimport { AssetDetailsComponent } from './usercontrols/assetDetails.component';\r\nimport { DeviceDetailsComponent } from './usercontrols/deviceDetails.component';\r\nimport { DriverDetailsComponent } from './usercontrols/driverDetails.component';\r\n\r\nimport { WaslAssetDetailsComponent } from './usercontrols/waslAssetDetails.component';\r\nimport { ErrorComponent } from './usercontrols/error.component';\r\nimport { UserDetailsComponent } from './usercontrols/userDetails.component';\r\nimport { DeleteModalComponent } from './usercontrols/deleteModal.component';\r\nimport { AccountPlatformControlComponent } from './usercontrols/accountPlatformControl.component';\r\nimport { PrettyJsonModule } from 'app/modules/prettyjson/prettyjson.module';\r\nimport { LoggerComponent } from './usercontrols/logger.component';\r\nimport { AssetTypeSelectorComponent } from './usercontrols/assetTypeSelector.component';\r\nimport { FilterAssetTypePipe } from 'app/common/assettype.pipe';\r\nimport { AssetTypeDetailsComponent } from './usercontrols/assetTypeDetails.component';\r\nimport { IboxToolsModule } from './iboxtools/iboxtools.module';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { AssetTypeChooserComponent } from './usercontrols/assetTypeChooser.component';\r\nimport { AssetTypePropertiesComponent } from './usercontrols/assetTypePropertyEditor.component';\r\nimport { SensorTypeDetailsComponent } from './usercontrols/sensorTypeDetails.component';\r\nimport { CalibrationComponent } from './usercontrols/calibrationDetails.component';\r\nimport { WaslDriverDetailsComponent } from './usercontrols/waslDriverDetails.component';\r\nimport { NumberOnlyDirective } from 'app/common/numbersOnly.directive';\r\nimport { AccountDetailsComponent } from './usercontrols/accountDetails.component';\r\nimport { DataTables360Module } from 'app/modules/360grid';\r\nimport { FilterTogglerComponent } from './usercontrols/filterToggler.component';\r\nimport { GridPresetComponent } from './usercontrols/gridPresets.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n FilterTogglerComponent,\r\n UserEditorComponent,\r\n TaggingComponent,\r\n DevicesNearbyComponent,\r\n GeneralCalculationSettingsComponent,\r\n AddressDetailsComponent,\r\n AccountDetailsComponent,\r\n GridPresetComponent,\r\n AssetDetailsComponent,\r\n AssetTypeDetailsComponent,\r\n WaslAssetDetailsComponent,\r\n WaslDriverDetailsComponent,\r\n AssetTypePropertiesComponent,\r\n DeleteModalComponent,\r\n DriverDetailsComponent,\r\n UserDetailsComponent,\r\n AccountPlatformControlComponent,\r\n DeviceDetailsComponent,\r\n SaveFooterComponent,\r\n ErrorComponent,\r\n LoggerComponent,\r\n ScheduleDetailsComponent,\r\n AssetTypeModuleComponent,\r\n AssetTypeSelectorComponent,\r\n LangSelectorComponent,\r\n AdviceDetailsComponent,\r\n SensorTypeDetailsComponent,\r\n CalibrationComponent,\r\n OrderByPipe,\r\n FilterAssetTypePipe,\r\n AssetTypeChooserComponent,\r\n NumberOnlyDirective\r\n ],\r\n imports: [\r\n TagInputModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n MomentModule,\r\n ReactiveFormsModule,\r\n BrowserModule,\r\n RouterModule,\r\n IboxToolsModule,\r\n DataTablesModule,\r\n DataTables360Module,\r\n PrettyJsonModule,\r\n TimezoneSelectorModule,\r\n TooltipModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n BsDatepickerModule.forRoot(),\r\n PaginationModule.forRoot(),\r\n ModalModule.forRoot(),\r\n WizardModule,\r\n NgxLoadingModule.forRoot({\r\n animationType: ngxLoadingAnimationTypes.rectangleBounce,\r\n backdropBackgroundColour: 'rgba(255,255,255,0.7)',\r\n backdropBorderRadius: '4px',\r\n primaryColour: '#DC8139',\r\n secondaryColour: '#DC8139',\r\n tertiaryColour: '#DC8139'\r\n }),\r\n TranslateModule\r\n ],\r\n exports: [\r\n FilterTogglerComponent,\r\n OrderByPipe,\r\n FilterAssetTypePipe,\r\n TaggingComponent,\r\n UserEditorComponent,\r\n AddressDetailsComponent,\r\n AccountDetailsComponent,\r\n GridPresetComponent,\r\n AssetDetailsComponent,\r\n AssetTypeDetailsComponent,\r\n UserDetailsComponent,\r\n AccountPlatformControlComponent,\r\n AssetTypePropertiesComponent,\r\n DeleteModalComponent,\r\n ErrorComponent,\r\n LoggerComponent,\r\n WaslAssetDetailsComponent,\r\n WaslDriverDetailsComponent,\r\n DriverDetailsComponent,\r\n DeviceDetailsComponent,\r\n SaveFooterComponent,\r\n DevicesNearbyComponent,\r\n AssetTypeModuleComponent,\r\n AssetTypeSelectorComponent,\r\n LangSelectorComponent,\r\n GeneralCalculationSettingsComponent,\r\n CalibrationComponent,\r\n SensorTypeDetailsComponent,\r\n ScheduleDetailsComponent,\r\n AdviceDetailsComponent,\r\n AssetTypeChooserComponent,\r\n NumberOnlyDirective\r\n ],\r\n})\r\n\r\nexport class UsercontrolsModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { InventoryAccount } from 'app/models/account.model';\r\nimport { AccountService } from 'app/services/accounts/accounts.service';\r\n\r\n\r\n@Component({\r\n selector: 'fh-account-details',\r\n templateUrl: 'accountDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AccountDetailsComponent implements OnInit {\r\n\r\n @Input() account: InventoryAccount;\r\n @Input() formMode: FormMode = FormMode.read;\r\n loadingAccountTypes: boolean;\r\n accountTypes: any;\r\n\r\n constructor(private accountService: AccountService) {\r\n this.loadingAccountTypes = true;\r\n this.accountService.getAccountTypes().subscribe(data => {\r\n this.loadingAccountTypes = false;\r\n this.accountTypes = data.filter(d => d.name !== 'Unknown');\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noAccount' | translate}}\r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n\r\n \r\n
\r\n {{ 'general.identifier' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.limitHistoryInDays' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.accountType' | translate}}\r\n \r\n \r\n
\r\n
","import { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AppAccountPlatform } from 'app/models/platform.model';\r\nimport { PlatformService } from 'app/services/platform/platform.service';\r\nimport { AccountPlatformService } from 'app/services/platform/accountPlatform.service';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { DeleteModalComponent } from './deleteModal.component';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'fh-accountplatform-control',\r\n templateUrl: 'accountPlatformControl.template.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AccountPlatformControlComponent implements OnInit {\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n @ViewChild('editModal') editModal: ModalDirective;\r\n\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n @Input() accountPlatformRequest: AppAccountPlatform[] = [new AppAccountPlatform()];\r\n @Input() accountPlatforms: AppAccountPlatform[] = [];\r\n\r\n @Input() loading = false;\r\n editAccountPlatform;\r\n\r\n @Input() insertOnly = false;\r\n\r\n @Output() onSubmit = new EventEmitter();\r\n @Output() onUpdate = new EventEmitter();\r\n\r\n platforms = [];\r\n\r\n testingEdit = false;\r\n testing = false;\r\n isEditModalShown = false;\r\n\r\n success;\r\n error;\r\n\r\n showingPasswordColumn = false;\r\n\r\n validatedAccountsPlatforms = {\r\n 'flespiwasl': true\r\n };\r\n\r\n placeholderUrls = ((accountType) => (\r\n (result = {\r\n 1: 'https://hst-api.wialon.com/wialon/ajax.html',\r\n 2: 'https://services.gpscockpit.com/api360',\r\n 3: 'https://api.fm-track.com',\r\n 5: 'https://flespi.io/'\r\n }[accountType]) => result ? result : ''\r\n )());\r\n\r\n\r\n tokenGuard = ((platforms: AppAccountPlatform[]) => ({\r\n\r\n hasValidAccountPlatforms: (() => {\r\n return Boolean(platforms.find(\r\n (platform) => this.validatedAccountsPlatforms[this.serializeValues(platform)])\r\n );\r\n }),\r\n\r\n validate: ((checkedFunction) => {\r\n\r\n const returnSuccess = of(true);\r\n\r\n const createTokenCall = ((request: AppAccountPlatform) =>\r\n checkedFunction(request)\r\n ? returnSuccess\r\n : this.accountPlatformService.checkToken(request.platformType, request.token, request.url)\r\n );\r\n\r\n return ((callback) =>\r\n forkJoin(platforms.map(createTokenCall)).subscribe(result => callback(result, platforms))\r\n );\r\n\r\n }),\r\n\r\n check_format: (() => {\r\n\r\n if (!(platforms.length && !isNaN(platforms[0].platformType))) {\r\n return false;\r\n }\r\n\r\n const base_validate = ((request: AppAccountPlatform) => (\r\n (request.platformName && request.platformName.length > 0)\r\n && (request.token && request.token.length > 0)\r\n && (request.url && request.url.length > 0)\r\n && (!isNaN(request.platformType))\r\n ));\r\n\r\n const flespiWasl = (_ => true);\r\n\r\n return Boolean(platforms[0].platformType === 6 ? flespiWasl(platforms[0]) : base_validate(platforms[0]));\r\n })\r\n\r\n }));\r\n\r\n platformValidation = {\r\n 'Valid': 1,\r\n 'Invalid': 2\r\n }\r\n\r\n constructor(\r\n private platformService: PlatformService,\r\n private accountPlatformService: AccountPlatformService) {\r\n\r\n this.platformService.getPlatforms(true).subscribe(result => {\r\n this.platforms = result.filter(r => r.name !== 'Unknown');\r\n this.setInitial();\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setInitial();\r\n }\r\n\r\n setInitial() {\r\n if (this.formMode === 2 && this.platforms && this.platforms.length > 0) {\r\n this.accountPlatformRequest[0].platformType = this.platforms[0].id;\r\n }\r\n }\r\n\r\n addAccountPlatform() {\r\n this.accountPlatformRequest.push(new AppAccountPlatform());\r\n }\r\n\r\n removeAccountPlatform(i) {\r\n const removedPlatform = this.accountPlatformRequest.splice(i, 1);\r\n\r\n const is360Platform = (platform) => platform.platformType === 2;\r\n\r\n if (is360Platform(removedPlatform[0])) {\r\n this.showingPasswordColumn = Boolean(this.accountPlatformRequest.find(is360Platform));\r\n }\r\n\r\n }\r\n\r\n serializeValues(platform): string {\r\n\r\n if (isNaN(platform.platformType)) {\r\n return '';\r\n }\r\n\r\n if (platform.platformType === 6) {\r\n return 'flespiwasl';\r\n }\r\n\r\n return btoa([platform.platformType, platform.token, platform.url].join('-'));\r\n }\r\n\r\n anyValidated() {\r\n const guard = this.tokenGuard(this.accountPlatformRequest);\r\n return guard.hasValidAccountPlatforms();\r\n }\r\n\r\n isValidated = (accountPlatform) =>\r\n this.isBoolean(this.validatedAccountsPlatforms[this.serializeValues(accountPlatform)]);\r\n\r\n isBoolean = (result) => (typeof (result) === 'boolean' && (result\r\n ? this.platformValidation.Valid\r\n : this.platformValidation.Invalid)\r\n );\r\n\r\n checkTokenValidation(accountPlatformRequest: AppAccountPlatform[]) {\r\n\r\n const guard = this.tokenGuard(accountPlatformRequest);\r\n const validParameters = guard.check_format();\r\n\r\n return validParameters;\r\n }\r\n\r\n hasValidPlatform(): boolean {\r\n for (const platform of this.accountPlatformRequest) {\r\n if (this.validatedAccountsPlatforms[this.serializeValues(platform)]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n testTokens() {\r\n\r\n this.testing = true;\r\n\r\n const guard = this.tokenGuard(this.accountPlatformRequest);\r\n const isChecked = () => false; // (platform) => this.isValidated(platform);\r\n\r\n guard.validate(isChecked.bind(this))((result: Boolean[], platforms: AppAccountPlatform[]) => {\r\n result.forEach((value, idx) => {\r\n this.testing = false;\r\n this.setValidatedPlatform(platforms[idx], value);\r\n });\r\n });\r\n\r\n }\r\n\r\n setPlatformUrl(platformId, platformRow) {\r\n\r\n if (!this.showingPasswordColumn) {\r\n this.showingPasswordColumn = platformId === 2;\r\n }\r\n\r\n this.accountPlatformRequest[platformRow].url = this.placeholderUrls(platformId);\r\n }\r\n\r\n setValidatedPlatform(request: AppAccountPlatform, result: Boolean) {\r\n this.validatedAccountsPlatforms[this.serializeValues(request)] = result;\r\n }\r\n\r\n createAccountPlatforms() {\r\n this.onSubmit.emit(this.accountPlatformRequest);\r\n }\r\n\r\n // Deleting\r\n deleteAccountPlatform(accountPlatformKey) {\r\n this.deleteModal.showModal(accountPlatformKey);\r\n }\r\n\r\n onAccountPlatformDelete(event) {\r\n\r\n this.deleteModal.hideModal();\r\n\r\n this.loading = true;\r\n\r\n this.accountPlatformService.deleteAccountPlatform(event).subscribe(result => {\r\n\r\n this.loading = false;\r\n this.success = 'Succes';\r\n // todo: refresh grid\r\n this.onUpdate.emit();\r\n }, (error) => {\r\n\r\n this.loading = false;\r\n this.error = error;\r\n console.log('err:' + error);\r\n });\r\n }\r\n\r\n // Editing\r\n testEditToken(accountPlatform) {\r\n\r\n this.testing = true;\r\n this.testingEdit = true;\r\n\r\n const guard = this.tokenGuard([accountPlatform]);\r\n const isChecked = () => false; // (platform) => this.isValidated(platform);\r\n\r\n guard.validate(isChecked.bind(this))((result: Boolean[], platforms: AppAccountPlatform[]) => {\r\n this.testingEdit = false;\r\n\r\n result.forEach((value, idx) => {\r\n this.testing = false;\r\n this.setValidatedPlatform(platforms[idx], value);\r\n });\r\n });\r\n\r\n }\r\n\r\n OpenEditAccountPlatform(accountPlatform) {\r\n // this.editModal.show();\r\n\r\n this.editAccountPlatform = accountPlatform;\r\n this.isEditModalShown = true;\r\n }\r\n\r\n hideEditModal() {\r\n this.isEditModalShown = false;\r\n }\r\n\r\n declineEdit() {\r\n this.isEditModalShown = false;\r\n }\r\n\r\n updateAccountPlatform(accountPlatform) {\r\n this.loading = true;\r\n this.isEditModalShown = false;\r\n\r\n this.accountPlatformService.updateAccountPlatform(accountPlatform).subscribe(result => {\r\n\r\n this.loading = false;\r\n this.success = 'Succes';\r\n // todo: refresh grid\r\n this.onUpdate.emit();\r\n }, (error) => {\r\n\r\n this.loading = false;\r\n this.error = error;\r\n console.log('err:' + error);\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n {{'general.accountPlatforms' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.type' | translate}}\r\n \r\n {{ 'general.name' | translate}}\r\n \r\n {{ 'general.userNameEmail' | translate}}\r\n \r\n {{ 'general.password' | translate}}\r\n \r\n {{ 'general.token' | translate}}\r\n \r\n {{ 'general.url' | translate}}\r\n \r\n  \r\n
\r\n {{ accountPlatform.platformName }}\r\n \r\n {{ accountPlatform.name }}\r\n \r\n {{accountPlatform.token}}\r\n \r\n {{accountPlatform.url}}\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n {{'general.accountPlatforms' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.type' | translate}}\r\n \r\n {{ 'general.name' | translate}}\r\n \r\n {{ 'general.userNameEmail' | translate}}\r\n \r\n {{ 'general.password' | translate}}\r\n \r\n {{ 'general.token' | translate}}\r\n \r\n {{ 'general.url' | translate}}\r\n \r\n  \r\n \r\n  \r\n \r\n  \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n  \r\n \r\n \r\n  \r\n \r\n \r\n \r\n  \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'general.editAccountPlatform' | translate }}\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ 'general.name' | translate}}\r\n \r\n \r\n
{{ 'general.userNameEmail' | translate}}\r\n \r\n \r\n
{{ 'general.password' | translate}}\r\n \r\n \r\n
{{ 'general.token' | translate}}\r\n \r\n \r\n
{{ 'general.url' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { AddressDetails } from 'app/models/platform.model';\r\n\r\n@Component({\r\n selector: 'fh-address-details',\r\n templateUrl: 'addressDetails.component.html',\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n // css styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('0.5s', style({ opacity: 1 }))\r\n ]),\r\n ]\r\n )\r\n ],\r\n})\r\nexport class AddressDetailsComponent implements OnInit {\r\n\r\n @Input() address: AddressDetails;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n {{ 'general.noAddress' | translate}}\r\n
\r\n {{ 'general.street' | translate}} / {{ 'general.no' | translate}}\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.zip' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.country' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.phone' | translate}} / {{ 'general.ext' | translate}}\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.mobile' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.email' | translate}}\r\n \r\n \r\n
\r\n
","import { Component, Input, OnChanges, Output, ViewChild, EventEmitter, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport * as moment from 'moment';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\n// Schedule\r\nimport { Schedule } from 'app/models/schedule.model';\r\nimport { ScheduleService } from 'app/services/schedule/schedule.service';\r\nimport { BsModalService, BsModalRef, ModalDirective, BsDatepickerConfig } from 'ngx-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { UserService } from '../../../services/users/user.service';\r\nimport { WorkflowService } from '../../../services/workflows/workflows.service';\r\nimport { Workflow } from '../../../models/workflow.model';\r\n\r\nclass Advice {\r\n constructor(\r\n public workflow: string = '',\r\n public date: Date = moment().toDate(),\r\n public user: string = '') {\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'fh-advice-details',\r\n templateUrl: 'adviceDetails.component.html',\r\n})\r\nexport class AdviceDetailsComponent implements OnInit, OnChanges {\r\n\r\n model: Advice = new Advice();\r\n\r\n issueTypes: IssueType[];\r\n\r\n insertAdviseSchedule: boolean;\r\n loading: boolean;\r\n schedule: Schedule[];\r\n\r\n // Datepicker\r\n minDate = new Date(2017, 5, 10);\r\n maxDate = new Date(2018, 9, 15);\r\n\r\n bsValue: Date = new Date();\r\n bsRangeValue: any = [new Date(2017, 7, 4), new Date(2017, 7, 20)];\r\n\r\n public dpConfig: Partial = new BsDatepickerConfig();\r\n @ViewChild('f') form: any;\r\n\r\n @Input() device;\r\n @Input() issue;\r\n\r\n @Output() onUpdated = new EventEmitter();\r\n\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n\r\n mode: FormMode;\r\n users: any;\r\n actions: any;\r\n workflows: Workflow[];\r\n\r\n constructor(private toastr: ToastrService, private userService: UserService, private modalService: BsModalService, private deviceService: DeviceService, private scheduleService: ScheduleService, private issueTypeService: IssueTypeService, private workflowService: WorkflowService) {\r\n this.schedule = [];\r\n this.loading = false;\r\n this.dpConfig.containerClass = 'theme-default'; // or whatever color\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getUsersByAccountId('00000000-0000-0000-0000-000000000000').subscribe(result => {\r\n this.users = result;\r\n });\r\n\r\n this.workflowService.getActions().subscribe(actions => {\r\n this.actions = actions;\r\n\r\n this.workflowService.getWorkflows(this.actions).subscribe(workflows => {\r\n this.workflows = workflows;\r\n });\r\n });\r\n }\r\n\r\n addSchedules() {\r\n\r\n if (this.form.valid) {\r\n console.log('Form Submitted!');\r\n this.form.reset();\r\n\r\n this.loading = true;\r\n\r\n this.insertAdviseSchedule = true;\r\n\r\n const schedule: Schedule = new Schedule;\r\n schedule.date = this.bsValue;\r\n schedule.id = null;\r\n schedule.actionId = 1;\r\n\r\n const deviceFromService = this.scheduleService.addSchedule(schedule).subscribe(response => {\r\n this.insertAdviseSchedule = false;\r\n\r\n this.toastr.success('Schedule added for device ' + schedule.date, 'Added', {\r\n progressBar: true\r\n });\r\n\r\n this.loading = false;\r\n\r\n this.onUpdated.emit(schedule);\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n });\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n {{'general.advice' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'fh-asset-details',\r\n templateUrl: 'assetDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AssetDetailsComponent implements OnInit {\r\n\r\n @Input() asset: Asset;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noAsset' | translate}}\r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.identificationTag' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.unitId' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.code' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.color' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.plate' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.year' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.vin' | translate}}\r\n *\r\n \r\n \r\n
\r\n
","import { Component, ChangeDetectorRef, ViewChild, OnDestroy, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n@Component({\r\n selector: 'fh-assettype-chooser',\r\n templateUrl: 'assetTypeChooser.template.html',\r\n styleUrls: ['assetTypeChooser.template.css'],\r\n providers: []\r\n})\r\nexport class AssetTypeChooserComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n\r\n @Input() asset: Asset;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n\r\n activeId;\r\n\r\n token: string;\r\n @Output() onSelect = new EventEmitter();\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n selected;\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n dataTable: DataTables.JQueryDataTables;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private assetTypeService: AssetTypeService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private deviceService: DeviceService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n close() {\r\n this.hideModal();\r\n }\r\n\r\n onHidden() {\r\n this.hideModal();\r\n }\r\n\r\n select() {\r\n this.hideModal();\r\n\r\n this.onSelect.emit({ id: this.selected.id, name: this.selected.name, brand: this.selected.brand, model: this.selected.model });\r\n }\r\n\r\n clickHandler(info: any): void {\r\n this.selected = info;\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: false,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.assetTypeService.getPagingUrl(this.asset.assetClass),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n rowCallback: (row: Node, data: any[] | Object, index: number) => {\r\n const self = this;\r\n // Unbind first in order to avoid any duplicate handler\r\n // (see https://github.com/l-lin/angular-datatables/issues/87)\r\n $('td', row).unbind('click');\r\n $('td', row).bind('click', () => {\r\n self.clickHandler(data);\r\n });\r\n return row;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.brand')\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.model')\r\n }\r\n ],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n\r\n // Model\r\n public showModal(): void {\r\n console.log('show modal');\r\n this.isModalShown = true;\r\n }\r\n\r\n public hideModal(): void {\r\n this.isModalShown = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.assetTypes' | translate }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { AssetType } from 'app/models/assetType.model';\r\n\r\n\r\n@Component({\r\n selector: 'fh-asset-type-details',\r\n templateUrl: 'assetTypeDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AssetTypeDetailsComponent implements OnInit {\r\n\r\n @Input() assetType: AssetType;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noAssetType' | translate}}\r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.class' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.category' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.referenceId' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.brand' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.model' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.serie' | translate}}\r\n \r\n \r\n \r\n
\r\n {{ 'general.trim' | translate}}\r\n \r\n \r\n \r\n
\r\n
","import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { AssetTypeChooserComponent } from 'app/views/shared/usercontrols/assetTypeChooser.component';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'fh-assettype-module',\r\n templateUrl: 'assetTypeModule.template.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AssetTypeModuleComponent {\r\n @Input() asset: Asset;\r\n @Input() loading: false;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n @Output() onSelect = new EventEmitter();\r\n\r\n @ViewChild('assetTypeChooser') assetTypeChooser: AssetTypeChooserComponent;\r\n\r\n constructor() {\r\n }\r\n\r\n updateAssetType(event) {\r\n this.onSelect.emit(event);\r\n }\r\n\r\n showChooser() {\r\n this.assetTypeChooser.showModal();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{'general.assetType' | translate }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n {{ asset?.assetTypeName}}\r\n
\r\n {{ 'general.class' | translate}}\r\n \r\n {{ ('enums.assetClass.' + asset?.assetClass) | translate }}\r\n
\r\n {{ 'general.brand' | translate}}\r\n \r\n {{asset?.brand}}\r\n
\r\n {{ 'general.model' | translate}}\r\n \r\n {{asset?.model}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit, OnChanges } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { assetTypeOptions } from 'app/common/globals';\r\n\r\n\r\n@Component({\r\n selector: 'fh-asset-type-property-editor',\r\n templateUrl: 'assetTypePropertyEditor.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AssetTypePropertiesComponent implements OnInit, OnChanges {\r\n\r\n @Input() assetTypeGroups: any;\r\n @Input() formMode: FormMode = FormMode.read;\r\n assetTypeOptions = assetTypeOptions;\r\n objectKeys = Object.keys;\r\n insertId = 0;\r\n isInsertmode = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(): void {\r\n }\r\n\r\n\r\n getOptionsOnValue(searchId) {\r\n\r\n const temp = this.assetTypeOptions.filter(x => x.id.toString() === searchId.toString());\r\n const returnobject = temp.length > 0 ? temp[0].options : '';\r\n return returnobject;\r\n }\r\n\r\n addMain() {\r\n if (!this.assetTypeGroups[this.insertId]) {\r\n this.assetTypeGroups[this.insertId] = [];\r\n }\r\n }\r\n\r\n addSub(key) {\r\n this.assetTypeGroups[key].push({ 'Id': '0', 'Type': key, 'Value': '' });\r\n }\r\n\r\n removeMain(property) {\r\n if (this.assetTypeGroups[property] != null) {\r\n this.assetTypeGroups.splice(property, 1);\r\n }\r\n }\r\n\r\n removeSub(key, property) {\r\n\r\n for (let i = this.assetTypeGroups[key].length - 1; i >= 0; --i) {\r\n if (this.assetTypeGroups[key][i].Id === property.Id) {\r\n this.assetTypeGroups[key].splice(i, 1);\r\n }\r\n }\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n {{'general.properties' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noProperties' | translate}}\r\n
\r\n {{ ('enums.spec.' + assetTypeGroupKey) | translate}}\r\n
\r\n {{ ('enums.spec.' + property.Id) | translate}}\r\n \r\n {{property.Value}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.properties' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n {{ ('enums.spec.' + assetTypeGroupKey) | translate}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { FormMode } from 'app/common/enums';\r\n\r\n@Component({\r\n selector: 'fh-assettype-selector',\r\n templateUrl: 'assetTypeSelector.template.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AssetTypeSelectorComponent {\r\n\r\n @Input() asset: Asset;\r\n @Input() assetClass = 1;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n loadingAssetTypes: boolean;\r\n assetTypes: AssetType[] = [];\r\n selectedAssetType: any;\r\n assetTypeGroups: Record;\r\n objectKeys = Object.keys;\r\n\r\n constructor(private assetTypeService: AssetTypeService) {\r\n this.loadingAssetTypes = true;\r\n this.assetTypeService.getAssetTypes().subscribe(assetTypes => {\r\n this.assetTypes = assetTypes.filter(x => x.assetClass === this.assetClass);\r\n this.loadingAssetTypes = false;\r\n });\r\n }\r\n\r\n groupBy(array: T[], key: K | ((obj: T) => string)): Record {\r\n const keyFn = key instanceof Function ? key : (obj: T) => obj[key];\r\n\r\n return array.reduce(\r\n (objectsByKeyValue, obj) => {\r\n const value = keyFn(obj)\r\n objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj)\r\n return objectsByKeyValue\r\n },\r\n {} as Record\r\n )\r\n }\r\n\r\n selectAssetType(event) {\r\n if (event.value === -1) {\r\n this.selectedAssetType = null;\r\n } else {\r\n this.assetTypeService.getAssetTypeById(event.value).subscribe(result => {\r\n this.selectedAssetType = result;\r\n\r\n this.assetTypeGroups = this.groupBy(this.selectedAssetType.properties, obj => obj.Type);\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n {{'general.assetType' | translate }}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.brand' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.model' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.assetType' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.assetType' | translate }}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.serie' | translate}}\r\n \r\n \r\n {{ selectedAssetType?.serie }}\r\n
\r\n {{ 'general.trim' | translate}}\r\n \r\n \r\n {{ selectedAssetType?.trim }}\r\n
\r\n {{ ('enums.spec.' + assetTypeGroupKey) | translate}}\r\n
\r\n {{ ('enums.spec.' + property.Id) | translate}}\r\n \r\n {{property.Value}}\r\n
\r\n
\r\n
","import { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Issue } from './../../../models/issue.model';\r\nimport { Component, Input, OnInit, OnChanges, SimpleChanges, NgModule, AfterViewInit } from '@angular/core';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { CalculationSettings, IssueTypeSettings, IssueTypesWithPermissions } from '../../../models/calculationsettings.model';\r\nimport { CalculationSettingsService } from '../../../services/calculationsettings/calculationsettings.service';\r\nimport { SettingsLevel, Severity } from '../../../common/enums';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TranslatorService } from '../../../services/common/translator.service';\r\n\r\n@Component({\r\n selector: 'fh-general-calculationsettings',\r\n templateUrl: 'calculationSettings.component.html',\r\n styleUrls: ['calculationSettings.component.css'],\r\n providers: [CalculationSettingsService]\r\n})\r\nexport class GeneralCalculationSettingsComponent implements OnInit, OnChanges {\r\n @Input() device;\r\n @Input() deviceType;\r\n @Input() platform;\r\n @Input() account;\r\n @Input() customer;\r\n\r\n issueTypes = [];\r\n level: SettingsLevel;\r\n SettingsLevel: typeof SettingsLevel = SettingsLevel;\r\n currentId;\r\n loading: boolean;\r\n calculationSettings: CalculationSettings;\r\n issueTypesWithPermissions: IssueTypesWithPermissions[];\r\n loadingSettings: boolean;\r\n showSettingsLevels: boolean;\r\n settingsToDelete: CalculationSettings;\r\n isSaved: boolean;\r\n updateMessage: string;\r\n severities = [];\r\n updateSuccess: boolean;\r\n\r\n constructor(private issueTypeService: IssueTypeService, private toastr: ToastrService, private calculationSettingsService: CalculationSettingsService, private translateService: TranslateService, private translatorService: TranslatorService) {\r\n this.issueTypesWithPermissions = [];\r\n\r\n // Map severities from enum\r\n this.severities = Object.keys(Severity)\r\n .filter(k => typeof Severity[k] === 'number')\r\n .map(n => ({ name: n, value: Severity[n] }))\r\n }\r\n\r\n getData(level, id) {\r\n\r\n console.log('---- dataa');\r\n\r\n this.loadingSettings = true;\r\n this.calculationSettingsService.getCalculationSettings(level, id).subscribe(result => {\r\n this.calculationSettings = result;\r\n this.settingsToDelete = new CalculationSettings();\r\n this.loadingSettings = false;\r\n this.issueTypesWithPermissions = [];\r\n\r\n this.issueTypes.forEach(issueType => {\r\n const issueTypeWithPermissions: IssueTypesWithPermissions = issueType;\r\n\r\n let calculationSetting = this.calculationSettings.issueTypeSettings.find(function (setting) {\r\n return setting.issueType === issueType.id;\r\n });\r\n\r\n if (calculationSetting == null) {\r\n calculationSetting = new IssueTypesWithPermissions();\r\n }\r\n\r\n issueTypeWithPermissions.source = calculationSetting && calculationSetting.source;\r\n issueTypeWithPermissions.lowerThreshold = calculationSetting && calculationSetting.lowerThreshold;\r\n issueTypeWithPermissions.upperThreshold = calculationSetting && calculationSetting.upperThreshold;\r\n issueTypeWithPermissions.deviceSensorTypeId = calculationSetting && calculationSetting.deviceSensorTypeId;\r\n issueTypeWithPermissions.duration = calculationSetting && calculationSetting.duration;\r\n issueTypeWithPermissions.severity = calculationSetting && calculationSetting.severity;\r\n issueTypeWithPermissions.isActive = calculationSetting && calculationSetting.isActive;\r\n\r\n if (calculationSetting != null) {\r\n issueTypeWithPermissions.isUsed = (parseInt(calculationSetting.source, null) === this.level);\r\n } else {\r\n issueTypeWithPermissions.isUsed = false;\r\n issueTypeWithPermissions.source = 3;\r\n }\r\n\r\n this.issueTypesWithPermissions.push(issueTypeWithPermissions);\r\n });\r\n this.loading = false;\r\n });\r\n\r\n }\r\n\r\n saveData(): Observable {\r\n this.calculationSettings.level = this.level;\r\n return this.calculationSettingsService.saveCalculationSettings(this.calculationSettings, this.currentId).map(result => {\r\n return result;\r\n });\r\n }\r\n\r\n deleteData(): Observable {\r\n this.settingsToDelete.level = this.level;\r\n return this.calculationSettingsService.deleteCalculationSettings(this.settingsToDelete, this.currentId).map(result => {\r\n return result;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log('init');\r\n this.level = SettingsLevel.Account;\r\n this.currentId = '-';\r\n\r\n // fetch issuetypes\r\n this.issueTypeService.getIssueTypes().subscribe(issueTypes => {\r\n this.issueTypes = issueTypes;\r\n\r\n if (this.device || this.platform || this.deviceType || this.account || this.customer) {\r\n // No data yet... wait for the changes in the model\r\n this.loadData();\r\n } else {\r\n // No device platform or devicetype... get the system data\r\n this.getData(null, null);\r\n }\r\n });\r\n\r\n }\r\n\r\n save() {\r\n console.log('saving');\r\n this.loading = true;\r\n this.loadingSettings = true;\r\n const tempIssueTypeSettingsToUpdate: IssueTypeSettings[] = [];\r\n const tempIssueTypeSettingsToDelete: IssueTypeSettings[] = [];\r\n\r\n this.issueTypesWithPermissions.forEach(setting => {\r\n if (setting.isUsed) {\r\n tempIssueTypeSettingsToUpdate.push({\r\n issueType: setting.id, isActive: setting.isActive, lowerThreshold: setting.lowerThreshold, upperThreshold: setting.upperThreshold, duration: setting.duration,\r\n source: setting.source, severity: setting.severity, createdDate: setting.createdDate,\r\n modifiedDate: setting.modifiedDate, issuetypeName: setting.id, sourceName: '', deviceSensorTypeId: ''\r\n })\r\n } else {\r\n tempIssueTypeSettingsToDelete.push({\r\n issueType: setting.id, isActive: setting.isActive, lowerThreshold: setting.lowerThreshold, upperThreshold: setting.upperThreshold, duration: setting.duration,\r\n source: setting.source, severity: setting.severity, createdDate: setting.createdDate,\r\n modifiedDate: setting.modifiedDate, issuetypeName: setting.id, sourceName: '', deviceSensorTypeId: ''\r\n })\r\n }\r\n });\r\n\r\n this.calculationSettings.issueTypeSettings = tempIssueTypeSettingsToUpdate;\r\n this.settingsToDelete.issueTypeSettings = tempIssueTypeSettingsToDelete;\r\n\r\n Observable.forkJoin([this.saveData(), this.deleteData()])\r\n .subscribe((response) => {\r\n this.loading = false;\r\n this.loadingSettings = false;\r\n this.getData(this.level, this.currentId);\r\n this.isSaved = true;\r\n this.updateSuccess = true;\r\n this.updateMessage = this.translateService.instant('general.updateMessage').replace('{0}', response[0]).replace('{1}', response[1]);\r\n }, (error) => {\r\n console.log('err:' + error);\r\n this.loading = false;\r\n this.loadingSettings = false;\r\n this.isSaved = true;\r\n this.updateSuccess = false;\r\n this.updateMessage = this.translateService.instant('general.errorUpdate');\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n this.loading = true;\r\n\r\n if (this.issueTypesWithPermissions.length > 0) { return; }\r\n\r\n if (this.device && this.device.id !== '') {\r\n this.level = SettingsLevel.Device;\r\n this.currentId = this.device.id;\r\n\r\n // get data\r\n this.getData(this.level, this.currentId);\r\n this.loading = false;\r\n }\r\n if (this.deviceType && this.deviceType.id !== '') {\r\n this.level = SettingsLevel.DeviceType;\r\n this.currentId = this.deviceType.id;\r\n // get data\r\n this.getData(this.level, this.currentId);\r\n this.loading = false;\r\n }\r\n if (this.platform && this.platform.id !== '') {\r\n\r\n this.level = SettingsLevel.Platform;\r\n this.currentId = this.platform.id;\r\n\r\n // get data\r\n this.getData(this.level, this.currentId);\r\n this.loading = false;\r\n }\r\n if (this.customer && this.customer.id !== '') {\r\n\r\n this.level = SettingsLevel.Customer;\r\n this.currentId = this.customer.id;\r\n\r\n // get data\r\n this.getData(this.level, this.currentId);\r\n this.loading = false;\r\n }\r\n if (this.account && this.account.id !== '') {\r\n this.level = SettingsLevel.Account;\r\n this.currentId = this.account.id;\r\n\r\n // get data\r\n this.getData(this.level, this.currentId);\r\n this.loading = false;\r\n }\r\n }\r\n}\r\n\r\n\r\n","
\r\n\r\n
\r\n
\r\n
\r\n {{ updateMessage }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.issuetypes' | translate }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.override' | translate}}\r\n \r\n {{ 'general.type' | translate}}\r\n \r\n {{ 'general.sensorTypeSmall' | translate}}\r\n \r\n {{ 'general.source' | translate}}\r\n \r\n {{ 'general.uoM' | translate}}\r\n \r\n {{ 'general.threshold' | translate}}\r\n \r\n {{ 'general.duration' | translate}}\r\n \r\n {{ 'general.severity' | translate}}\r\n \r\n {{ 'general.active' | translate}}\r\n
\r\n \r\n {{ issueType.name }}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ issueType.deviceSensorTypeId }}\r\n \r\n {{ ('enums.settingsLevel.' + issueType.source) | translate }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'settings.fieldRequired' | translate }}\r\n \r\n \r\n {{ 'settings.fieldNumerical' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ 'settings.fieldRequired' | translate }}\r\n \r\n \r\n {{ 'settings.fieldNumerical' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ 'settings.fieldRequired' | translate }}\r\n \r\n \r\n {{ 'settings.fieldNumerical' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{'general.displayFlow' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ ('enums.settingsLevel.0') | translate }}\r\n
\r\n {{ ('enums.settingsLevel.1')\r\n | translate }}\r\n
\r\n {{ ('enums.settingsLevel.2')\r\n | translate }}\r\n
\r\n {{ ('enums.settingsLevel.3')\r\n | translate }}\r\n
\r\n {{ ('enums.settingsLevel.4')\r\n | translate }}\r\n
\r\n {{ ('enums.settingsLevel.5')\r\n | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'fh-calibration-details',\r\n templateUrl: 'calibrationDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class CalibrationComponent implements OnInit {\r\n\r\n @Input() calibrationPoints = [];\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n rawValue;\r\n actualValue;\r\n\r\n constructor() {\r\n }\r\n\r\n addRow(rawValue, actualValue) {\r\n console.log(rawValue, actualValue);\r\n this.calibrationPoints.push({ rawValue: +rawValue.value, actualValue: +actualValue.value });\r\n }\r\n\r\n removeRow(data) {\r\n const index: number = this.calibrationPoints.indexOf(data);\r\n if (index !== -1) {\r\n this.calibrationPoints.splice(index, 1);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ 'general.rawValue' | translate }}{{ 'general.actualValue' | translate }}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
","import { Component, ViewChild, Output, OnChanges, Input } from '@angular/core';\r\nimport { BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'fh-delete-modal',\r\n templateUrl: 'deleteModal.template.html',\r\n})\r\nexport class DeleteModalComponent implements OnChanges {\r\n\r\n @Output() onDelete = new EventEmitter();\r\n @Input() message = 'general.warningDelete';\r\n\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n\r\n activeId;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(): void {\r\n }\r\n\r\n // Model\r\n public showModal(id): void {\r\n this.activeId = id;\r\n this.isModalShown = true;\r\n }\r\n\r\n public hideModal(): void {\r\n this.autoShownModal.hide();\r\n }\r\n\r\n delete() {\r\n this.onDelete.emit(this.activeId);\r\n }\r\n\r\n decline(): void {\r\n this.autoShownModal.hide();\r\n }\r\n\r\n onHidden(): void {\r\n this.isModalShown = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'general.areyousure' | translate }}\r\n

\r\n \r\n
\r\n
\r\n {{ message | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, TemplateRef, ViewChild, Output, OnChanges, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { BsModalService, BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { DeviceService } from '../../../services/device/device.service';\r\nimport { Device } from '../../../models/device.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\n\r\nimport 'rxjs/add/observable/of';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { AccountPlatformService } from 'app/services/platform/accountPlatform.service';\r\nimport { AccountPlatform } from 'app/models/platform.model';\r\n\r\n@Component({\r\n selector: 'fh-device-details',\r\n templateUrl: 'deviceDetails.template.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n // css styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('0.5s', style({ opacity: 1 }))\r\n ]),\r\n ]\r\n )\r\n ],\r\n})\r\nexport class DeviceDetailsComponent implements OnChanges, OnInit {\r\n\r\n @Input() device: Device;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n permissions: {};\r\n deviceTypes: DeviceType[];\r\n accountPlatforms: AccountPlatform[];\r\n loadingDeviceTypes = false;\r\n\r\n constructor(private accountplatformService: AccountPlatformService, private deviceTypeService: DeviceTypeService, private modalService: BsModalService, private deviceService: DeviceService, private authentication: AuthenticationService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authentication.permissions;\r\n this.loadingDeviceTypes = true;\r\n\r\n this.deviceTypeService.getDeviceTypes(false, false, false).subscribe(deviceTypes => {\r\n this.loadingDeviceTypes = false;\r\n this.deviceTypes = deviceTypes;\r\n\r\n if (this.formMode === 2) {\r\n this.device.deviceTypeId = deviceTypes[0].id;\r\n }\r\n });\r\n\r\n this.accountplatformService.getAccountPlatforms().subscribe(accountPlatforms => {\r\n this.accountPlatforms = accountPlatforms;\r\n\r\n if (this.formMode === 2) {\r\n this.device.accountPlatformId = this.accountPlatforms[0].id;\r\n }\r\n });\r\n }\r\n\r\n changeIssueCalculation(event) {\r\n this.device.hasIssueCalculationEnabled = !this.device.hasIssueCalculationEnabled;\r\n this.deviceService.saveIssueCalculation(this.device).subscribe(result => {\r\n console.log(result);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n }\r\n\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n 0 && (name?.dirty || name?.touched)\">\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n 0 && (unitId?.dirty || unitId?.touched)\">\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ device?.name }}\r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n {{ device?.createdDate | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.enddate' | translate}}\r\n \r\n {{ device?.endDate | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.lastCommunication' | translate}}\r\n \r\n {{ device?.lastCommunication | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.modelId' | translate}}\r\n \r\n {{\r\n device?.modelName }}\r\n \r\n
\r\n {{'general.manufacturer' | translate }}\r\n \r\n {{ device?.manufacturerName }}\r\n
\r\n {{ 'general.customer' | translate}}\r\n \r\n {{\r\n device?.customerName }}\r\n
\r\n {{ 'general.phone' | translate}}\r\n \r\n {{ device?.phone }}\r\n
\r\n {{ 'general.referenceId' | translate}}\r\n \r\n {{ device?.referenceId }}\r\n
\r\n {{ 'general.unitId' | translate}}\r\n \r\n {{ device?.unitId }}\r\n
\r\n {{ 'general.firmware' | translate}}\r\n \r\n {{ device?.firmware }}\r\n
\r\n {{ 'general.platform' | translate}}\r\n \r\n \r\n {{ device?.platformName }} - {{ device?.accountPlatformName }}\r\n
\r\n {{ 'general.isActiveCalculating' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n * Name must be at least 2 characters long.\r\n
\r\n
\r\n * Name is required\r\n
\r\n
\r\n {{ 'general.phone' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.unitId' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n * UnitId must be at least 15 characters long.\r\n
\r\n
\r\n * UnitId is required\r\n
\r\n
\r\n {{ 'general.devicetype' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.accountPlatform' | translate}}\r\n *\r\n \r\n \r\n
\r\n
","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\n\r\n@Component({\r\n selector: 'fh-device-details-nearby',\r\n templateUrl: 'devicesNearby.template.html',\r\n})\r\nexport class DevicesNearbyComponent implements OnChanges {\r\n loading: boolean;\r\n nearbyDevices: Device[];\r\n @Input() device: Device;\r\n\r\n constructor(private deviceService: DeviceService) {\r\n this.loading = false;\r\n this.nearbyDevices = [];\r\n }\r\n\r\n ngOnChanges() {\r\n const that = this;\r\n console.log('Set loading');\r\n this.loading = true;\r\n setTimeout(function () {\r\n that.getDevicesNearby()\r\n }, 1400);\r\n }\r\n\r\n getSortedKeys(obj) {\r\n // tslint:disable-next-line:forin\r\n const keys = []; for (const key in obj) { keys.push(key); }\r\n return keys.sort(function (a, b) { return obj[a] - obj[b]; });\r\n }\r\n\r\n\r\n contains(a, obj) {\r\n\r\n for (let i = 0, len = a.length; i < len; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (a[i] == obj) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getDevicesNearby() {\r\n function toRad(Value) {\r\n /** Converts numeric degrees to radians */\r\n return Value * Math.PI / 180;\r\n }\r\n\r\n this.deviceService.getDevices(true).subscribe(devices => {\r\n\r\n if (this.device && this.device.lastPosition) {\r\n const lat1 = this.device.lastPosition.latitude;\r\n const lon1 = this.device.lastPosition.longitude;\r\n const distance = [];\r\n\r\n $.each(devices, function (idx, device) {\r\n\r\n if (device.lastPosition && device.lastPosition.latitude) {\r\n const lat2 = device.lastPosition.latitude;\r\n const lon2 = device.lastPosition.longitude;\r\n\r\n const R = 3958.7558657440545; // Radius of earth in Miles\r\n const dLat = toRad(lat2 - lat1);\r\n const dLon = toRad(lon2 - lon1);\r\n const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *\r\n Math.sin(dLon / 2) * Math.sin(dLon / 2);\r\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n const d = R * c;\r\n distance[device.id] = d;\r\n device.distance = Math.round(d * 100) / 100;\r\n }\r\n });\r\n\r\n const sortedDistance = this.getSortedKeys(distance);\r\n\r\n const searchAmount = 7;\r\n const selectedAssetIds = sortedDistance.slice(1, searchAmount);\r\n\r\n this.nearbyDevices = devices.filter(asset => this.contains(selectedAssetIds, asset.id));\r\n console.log('Set stop loading');\r\n this.loading = false;\r\n } else {\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{'devicedetails.nearby' | translate }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.name' | translate }}{{'general.distance' | translate }}
\r\n \r\n {{'general.details' | translate }}\r\n {{device.name}}{{device.distance}} km
{{'general.nodatafound' | translate }}
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Driver } from 'app/models/driver.model';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { AccountPlatformService } from 'app/services/platform/accountPlatform.service';\r\nimport { BsDatepickerConfig } from 'ngx-bootstrap';\r\n\r\n@Component({\r\n selector: 'fh-driver-details',\r\n templateUrl: 'driverDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class DriverDetailsComponent implements OnInit {\r\n\r\n @Input() driver: Driver;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n // Datepicker\r\n public dpConfig: Partial = new BsDatepickerConfig();\r\n\r\n accountPlatforms = [];\r\n\r\n constructor(private accountPlatform: AccountPlatformService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // Datepicker\r\n this.dpConfig.containerClass = 'theme-default'; // or whatever color\r\n this.dpConfig.dateInputFormat = 'll';\r\n this.dpConfig.isAnimated = true;\r\n\r\n this.accountPlatform.getAccountPlatforms().subscribe((accountPlatformsResult) => {\r\n if (this.formMode === 2) {\r\n this.driver.accountPlatformId = accountPlatformsResult[0].id;\r\n }\r\n\r\n this.accountPlatforms = accountPlatformsResult;\r\n })\r\n }\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n {{ 'general.noDriver' | translate}}\r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n * name must be at least 4 characters long.\r\n
\r\n
\r\n * name is required\r\n
\r\n
\r\n {{ 'general.accountPlatform' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.dateOfBirth' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.phone' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.referenceId' | translate}}\r\n *\r\n \r\n \r\n
\r\n
","import { Component, Input, OnInit, ChangeDetectorRef, OnChanges } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'fh-error',\r\n templateUrl: 'error.component.html',\r\n})\r\nexport class ErrorComponent implements OnInit, OnChanges {\r\n\r\n @Input() error = null;\r\n @Input() success = null;\r\n @Input() autoRemove = true;\r\n\r\n constructor(private cd: ChangeDetectorRef) {\r\n }\r\n\r\n clearError() {\r\n this.success = null;\r\n this.error = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(): void {\r\n\r\n if (this.success != null && this.autoRemove) {\r\n setTimeout(() => {\r\n this.success = null;\r\n this.cd.markForCheck();\r\n }, 5000);\r\n }\r\n if (this.error != null && this.autoRemove) {\r\n setTimeout(() => {\r\n this.error = null;\r\n this.cd.markForCheck();\r\n }, 10000);\r\n }\r\n }\r\n}\r\n\r\n","
\r\n \r\n \r\n

{{ error?.statusText }}

\r\n
\r\n \r\n

- {{ error?.error }}

\r\n
\r\n \r\n \r\n \r\n \r\n\r\n {{ error }}\r\n
\r\n\r\n
\r\n \r\n \r\n

{{ success?.statusText }}

\r\n
\r\n \r\n

{{ success?.success }}

\r\n
\r\n \r\n \r\n \r\n \r\n

{{ success }}

\r\n
\r\n
","import { Component, Input, OnInit, Output, EventEmitter, OnChanges } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'fh-filter-toggler',\r\n templateUrl: 'filterToggler.component.html',\r\n viewProviders: [],\r\n})\r\nexport class FilterTogglerComponent implements OnInit, OnChanges {\r\n\r\n showFilter = false;\r\n @Input() constructorName: any;\r\n @Output() filterChanged = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if ('ShowFilter_' + this.constructorName) {\r\n console.log('ShowFilter_' + this.constructorName);\r\n this.loadShowFilter();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // Hide or show filters\r\n loadShowFilter() {\r\n this.showFilter = localStorage.getItem('ShowFilter_' + this.constructorName) !== 'false';\r\n\r\n this.filterChanged.emit(this.showFilter);\r\n }\r\n\r\n changeShowfilter(filterValue) {\r\n this.showFilter = filterValue;\r\n localStorage.setItem('ShowFilter_' + this.constructorName, filterValue)\r\n\r\n this.filterChanged.emit(this.showFilter);\r\n }\r\n}\r\n\r\n","\r\n \r\n {{'filter.hideFilter' | translate }}\r\n {{'filter.showFilter' | translate }}\r\n","import { Component, Input, OnInit, Output, EventEmitter, OnChanges } from '@angular/core';\r\nimport { GridService } from 'app/services/grid/grid.service';\r\n\r\n\r\n@Component({\r\n selector: 'fh-grid-presets',\r\n templateUrl: 'gridPresets.component.html',\r\n viewProviders: [],\r\n})\r\nexport class GridPresetComponent implements OnInit, OnChanges {\r\n\r\n @Input() constructorName: any;\r\n\r\n presetList = [];\r\n preset_name = '';\r\n gridPresets: string;\r\n success: { statusText: string; success: string; };\r\n error: { statusText: string; error: string; };\r\n @Output() presetLoaded = new EventEmitter();\r\n\r\n constructor(private gridService: GridService) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.constructorName) {\r\n console.log(this.constructorName);\r\n this.presetList = [];\r\n this.initPresets();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initPresets();\r\n }\r\n\r\n // Saving and loading presets\r\n initPresets() {\r\n const that = this;\r\n this.presetList = [];\r\n const presets = this.gridService.getGridPresets(this.constructorName).subscribe(result => {\r\n that.presetList.push.apply(that.presetList, result);\r\n });\r\n }\r\n\r\n savePreset() {\r\n const that = this;\r\n const presetJson = localStorage.getItem('Columns_' + this.constructorName);\r\n\r\n this.presetList = this.presetList.filter(function (el) { return el.name !== that.preset_name; });\r\n this.presetList.push({ name: this.preset_name, json: presetJson });\r\n\r\n const presets = this.gridService.saveGridPresets(this.constructorName, this.presetList).subscribe(result => {\r\n that.success = {\r\n statusText: 'Success',\r\n success: `Preset ${that.preset_name} saved`\r\n };\r\n });\r\n\r\n }\r\n\r\n deletePreset(preset_name) {\r\n const that = this;\r\n this.presetList = this.presetList.filter(function (el) { return el.name !== preset_name; });\r\n const presets = this.gridService.saveGridPresets(this.constructorName, this.presetList).subscribe(result => {\r\n this.success = {\r\n statusText: 'Success',\r\n success: `Preset ${preset_name} deleted`\r\n };\r\n });\r\n }\r\n\r\n clearGridPreset() {\r\n this.loadGridPreset({ name: '', json: null });\r\n\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'Grid cleared to default'\r\n };\r\n }\r\n\r\n loadGridPreset(preset) {\r\n this.preset_name = preset.name;\r\n this.presetLoaded.next(preset);\r\n }\r\n // End saving and loading presets\r\n}\r\n\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n {{'general.presets' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n {{ 'general.clearSettings' | translate }}\r\n
  • \r\n
  • \r\n {{ preset.name }}\r\n \r\n
  • \r\n
\r\n
\r\n
","import { Component } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'fh-lang-selector',\r\n template: `\r\n
\r\n \r\n
\r\n `\r\n})\r\nexport class LangSelectorComponent {\r\n public langs;\r\n public currentLang;\r\n private translator;\r\n\r\n constructor(private translate: TranslateService) {\r\n this.langs = translate.getLangs();\r\n this.currentLang = this.translate.currentLang;\r\n // this.currentLang = this.translator.getBrowserLang();\r\n }\r\n\r\n /**\r\n * @desc Triggered when the select's value changes\r\n * @param event\r\n */\r\n public selectLang(event): void {\r\n this.currentLang = event.target.value;\r\n this.translator.use(this.currentLang);\r\n }\r\n}\r\n","import { Component, Input, OnInit, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'fh-logger',\r\n templateUrl: 'logger.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoggerComponent implements OnInit {\r\n\r\n\r\n @Input() logItems = [];\r\n @Input() loading = false;\r\n\r\n // Pagination\r\n totalItems = 0;\r\n currentPage = 1;\r\n numPages = 0;\r\n maxSize = 10;\r\n itemsPerPage = 10;\r\n\r\n constructor(private cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.totalItems = this.logItems.length\r\n }\r\n\r\n updatePageNumber(value): void {\r\n this.numPages = value;\r\n this.cd.detectChanges();\r\n }\r\n\r\n // Pagination\r\n setPage(pageNo: number): void {\r\n this.currentPage = pageNo;\r\n }\r\n\r\n pageChanged(event: any): void {\r\n console.log('Page changed to: ' + event.page);\r\n console.log('Number items per page: ' + event.itemsPerPage);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n {{'general.log' | translate }}\r\n
\r\n
\r\n {{'general.page' | translate }}: {{currentPage}} / {{numPages}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ log.user }}\r\n  {{ 'general.on' | translate }}\r\n {{ log.timestamp | amDateFormat: 'lll' }}\r\n  {{ 'general.on' | translate }}\r\n {{ log.createddate | amDateFormat: 'lll' }}\r\n
\r\n
\r\n {{ 'general.message' | translate }} : {{ log.message }}\r\n
\r\n
\r\n {{ 'general.location' | translate }} : {{ log.location }}\r\n
\r\n \r\n
\r\n {{ log.description }}\r\n
\r\n \r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.item' | translate}}\r\n \r\n {{ 'general.from' | translate}}\r\n \r\n {{ 'general.to' | translate}}\r\n
\r\n {{ item.Item}}\r\n \r\n {{ item.From}}\r\n \r\n {{ item.To}}\r\n
\r\n
\r\n
\r\n
\r\n {{ log.stack }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.nodatafound' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit, Output, EventEmitter, OnChanges, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { DeleteModalComponent } from './deleteModal.component';\r\n\r\n\r\n@Component({\r\n selector: 'fh-save-footer',\r\n templateUrl: 'saveFooter.component.html',\r\n})\r\nexport class SaveFooterComponent implements OnInit {\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n\r\n @Input() formMode: FormMode = FormMode.read;\r\n @Output() onSave = new EventEmitter();\r\n @Output() onInsert = new EventEmitter();\r\n @Output() onDelete = new EventEmitter();\r\n @Output() setFormMode = new EventEmitter();\r\n @Input() valid = false;\r\n @Input() allowDelete = false;\r\n @Input() showButtons = true;\r\n @Input() showButtonsNotification = ''\r\n\r\n constructor(private cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.valid);\r\n }\r\n\r\n insert() {\r\n this.onInsert.emit(true);\r\n this.setFormMode.emit(1);\r\n }\r\n\r\n save() {\r\n this.onSave.emit(true);\r\n this.setFormMode.emit(1);\r\n }\r\n\r\n sendFormMode(mode) {\r\n this.setFormMode.emit(mode);\r\n }\r\n\r\n delete() {\r\n this.onDelete.emit();\r\n this.deleteModal.hideModal();\r\n }\r\n\r\n showDelete() {\r\n this.deleteModal.showModal(null);\r\n }\r\n}\r\n\r\n","
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n {{showButtonsNotification}}\r\n \r\n \r\n\r\n \r\n
\r\n\r\n","import { Component, Input, OnChanges, Output, ViewChild, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\n\r\n// Schedule\r\nimport { Schedule } from 'app/models/schedule.model';\r\nimport { ScheduleService } from 'app/services/schedule/schedule.service';\r\nimport { BsModalService, BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'fh-schedule-details',\r\n templateUrl: 'scheduleDetails.template.html',\r\n})\r\nexport class ScheduleDetailsComponent implements OnChanges, OnInit {\r\n detailsLoading: boolean;\r\n scheduleForProcessing: Schedule;\r\n loading: boolean;\r\n schedule: Schedule[];\r\n selectedSchedule: Schedule;\r\n\r\n @Input() device;\r\n @Input() issue;\r\n @Input() renderDateTime;\r\n\r\n @Output() onUpdated = new EventEmitter();\r\n\r\n // Form\r\n\r\n // tslint:disable-next-line:member-ordering\r\n langs: string[] = [\r\n 'English',\r\n 'French',\r\n 'German',\r\n ];\r\n\r\n myform: FormGroup;\r\n firstName: FormControl;\r\n lastName: FormControl;\r\n // tslint:disable-next-line:member-ordering\r\n email: FormControl;\r\n password: FormControl;\r\n language: FormControl;\r\n\r\n @ViewChild('autoShownModal') autoShownModal: ModalDirective;\r\n modalRef: BsModalRef;\r\n isModalShown = false;\r\n public step = 1;\r\n mode: FormMode;\r\n\r\n constructor(private cd: ChangeDetectorRef, private modalService: BsModalService, private deviceService: DeviceService, private scheduleService: ScheduleService, ) {\r\n this.schedule = [];\r\n this.loading = false;\r\n }\r\n\r\n ngOnChanges() {\r\n const that = this;\r\n this.selectedSchedule = null;\r\n this.getScheduleDetails();\r\n }\r\n\r\n getScheduleDetails() {\r\n this.loading = true;\r\n if (this.device && this.device.id !== '') {\r\n this.scheduleService.getSchedulesForDevice(this.device.id).subscribe(schedules => {\r\n this.schedule = schedules;\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n if (this.issue && this.issue.id !== '') {\r\n this.scheduleService.getSchedulesForIssue(this.issue.id).subscribe(schedules => {\r\n this.schedule = schedules;\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n onSelectionChange(entry) {\r\n this.selectedSchedule = entry;\r\n }\r\n // Model\r\n\r\n startProcessSchedule(): void {\r\n this.detailsLoading = true;\r\n\r\n this.scheduleService.getScheduleById(this.selectedSchedule.id).subscribe(schedule => {\r\n this.scheduleForProcessing = schedule;\r\n console.log(this.scheduleForProcessing);\r\n this.detailsLoading = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.isModalShown = true;\r\n }\r\n\r\n onScheduleFinish() {\r\n console.log('Schedule finsihed');\r\n this.autoShownModal.hide();\r\n this.step = 1;\r\n }\r\n\r\n ngOnInit() {\r\n this.createFormControls();\r\n this.createForm();\r\n }\r\n\r\n initForm() {\r\n console.log('init tab');\r\n }\r\n\r\n createFormControls() {\r\n this.firstName = new FormControl('', Validators.required);\r\n this.lastName = new FormControl('', Validators.required);\r\n this.email = new FormControl('', [\r\n Validators.required,\r\n Validators.pattern('[^ @]*@[^ @]*')\r\n ]);\r\n this.password = new FormControl('', [\r\n Validators.required,\r\n Validators.minLength(8)\r\n ]);\r\n this.language = new FormControl('');\r\n }\r\n\r\n createForm() {\r\n this.myform = new FormGroup({\r\n name: new FormGroup({\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n }),\r\n email: this.email,\r\n password: this.password,\r\n language: this.language\r\n });\r\n }\r\n\r\n processSchedule(): void {\r\n this.scheduleForProcessing.dateProcessed = new Date();\r\n this.scheduleService.processSchedulesForIssue(this.selectedSchedule.id, this.scheduleForProcessing).subscribe(schedules => {\r\n this.scheduleForProcessing = null;\r\n this.selectedSchedule = null;\r\n\r\n this.onUpdated.emit(this.schedule);\r\n });\r\n\r\n this.autoShownModal.hide();\r\n }\r\n\r\n declineSchedule(): void {\r\n this.autoShownModal.hide();\r\n }\r\n\r\n hideModal(): void {\r\n this.autoShownModal.hide();\r\n }\r\n\r\n onHidden(): void {\r\n this.isModalShown = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{'schedule.schedule' | translate }}
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ scheduleItem.date | amDateFormat: 'll'}}{{ scheduleItem.userName }}{{ scheduleItem.actionName }}{{ scheduleItem.workflowName }}
{{'schedule.noschedulefound' | translate }}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'schedule.schedule' | translate }}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.issue' | translate}}\r\n \r\n {{ scheduleForProcessing?.issueId }}\r\n
\r\n {{ 'general.date' | translate}}\r\n \r\n {{ scheduleForProcessing?.date | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.owner' | translate}}\r\n \r\n {{ scheduleForProcessing?.ownerId }}\r\n
\r\n {{ 'general.action' | translate}}\r\n \r\n {{ scheduleForProcessing?.actionDescription }}\r\n
\r\n Lorem ipsum. L Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.\r\n Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.\r\n Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat\r\n massa quis enim\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.action' | translate}} (Processed.. skipped.. reschedule)\r\n \r\n \r\n \r\n
\r\n {{ 'general.owner' | translate}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
First Name
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
Last Name
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Email
\r\n
\r\n \r\n
\r\n
\r\n

Email is required

\r\n

The email address must contain at least the @ character

\r\n
\r\n
\r\n\r\n
\r\n
Password
\r\n
\r\n \r\n
\r\n
\r\n

Password is required

\r\n

Password must be 8 characters long, we need another {{password.errors.minlength.requiredLength\r\n - password.errors.minlength.actualLength}} characters

\r\n
\r\n
\r\n
\r\n
Language
\r\n
\r\n \r\n
\r\n
\r\n\r\n
{{myform.value | json}}
\r\n
\r\n
\r\n \r\n Finish step\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { InventorySensorType } from 'app/models/sensorType.model';\r\nimport { DeviceSensorsService } from 'app/services/sensors/deviceSensors.service';\r\nimport { DeviceSensorType } from 'app/models/sensor.model';\r\n\r\n\r\n@Component({\r\n selector: 'fh-sensor-type-details',\r\n templateUrl: 'sensorTypeDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class SensorTypeDetailsComponent implements OnInit {\r\n\r\n @Input() sensorType: InventorySensorType;\r\n @Input() formMode: FormMode = FormMode.read;\r\n sensorTypes: DeviceSensorType[] = [];\r\n\r\n constructor(private sensorTypeService: DeviceSensorsService) {\r\n sensorTypeService.getDeviceSensorTypes().subscribe(result => {\r\n this.sensorTypes = result;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noSensorType' | translate}}\r\n
\r\n {{ 'general.brand' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.model' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.deviceSensorType' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.conversionFormula' | translate}}\r\n *\r\n
\r\n \r\n
\r\n
","import { Component, Input, OnChanges, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { DeviceService } from 'app/services/device/device.service';\r\nimport { Device } from 'app/models/device.model';\r\nimport { TagService } from 'app/services/tag/tag.service';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { TagInputModule } from 'ngx-chips';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-tagging',\r\n templateUrl: 'tagging.template.html',\r\n})\r\nexport class TaggingComponent implements OnInit, OnChanges {\r\n\r\n @Input() objectId: string;\r\n @Input() objectType: TagObjectType;\r\n\r\n items = [];\r\n isMessage: boolean;\r\n messageStatus: string;\r\n updateMessage: any;\r\n loading = false;\r\n\r\n constructor(private tagService: TagService, private router: Router, private translateServe: TranslateService, private cd: ChangeDetectorRef) {\r\n this.loading = false;\r\n }\r\n\r\n public requestAutocompleteItems = (text: string): Observable => {\r\n\r\n return this.tagService.getTagsWithUsage().map(tags => tags.map(tag => tag.name));\r\n };\r\n\r\n ngOnInit() {\r\n TagInputModule.withDefaults({\r\n tagInput: {\r\n placeholder: 'Add a new tag',\r\n // add here other default values for tag-input\r\n\r\n },\r\n dropdown: {\r\n displayBy: 'my-display-value',\r\n // add here other default values for tag-input-dropdown\r\n }\r\n });\r\n\r\n this.items = [];\r\n }\r\n\r\n ngOnChanges() {\r\n console.log('Changes detected');\r\n this.loading = true;\r\n this.tagService.getTagsForObject(this.objectId, this.objectType).subscribe(result => {\r\n this.items = result.map(x => x.name);\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n onItemAdded(event) {\r\n console.log(event);\r\n console.log('Item added: ' + event.display);\r\n this.loading = true;\r\n this.tagService.saveTag(event.display, this.objectId, this.objectType).subscribe(result => {\r\n console.log(result);\r\n if (result === true) {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-success';\r\n this.updateMessage = this.translateServe.instant('general.tagSaved');\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n } else {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-warning';\r\n this.updateMessage = this.translateServe.instant('general.tagNotSaved');\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n }\r\n }, (error) => {\r\n this.updateMessage = this.translateServe.instant('general.tagNotSaved');\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n // return Observable.of(true);\r\n }\r\n\r\n onItemRemoved(event) {\r\n console.log('Item deleting: ' + event);\r\n this.loading = true;\r\n this.tagService.removeTag(event, this.objectId, this.objectType).subscribe(result => {\r\n console.log(result);\r\n if (result === true) {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-success';\r\n this.updateMessage = this.translateServe.instant('general.tagRemoved');\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n } else {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-warning';\r\n this.updateMessage = this.translateServe.instant('general.tagNotRemoved');\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n }\r\n }, (error) => {\r\n this.updateMessage = this.translateServe.instant('general.tagNotRemoved');\r\n this.loading = false;\r\n this.cd.markForCheck();\r\n });\r\n\r\n // return Observable.of(true);\r\n }\r\n\r\n onSelected(event) {\r\n console.log('Item selected and navigating: ' + event);\r\n\r\n this.router.navigate(['/Tags/' + event]);\r\n }\r\n\r\n onTagEdited(event) {\r\n console.log('Item edited: ' + event);\r\n }\r\n\r\n onInputFocused(event) {\r\n console.log('Input focussed: ' + event);\r\n }\r\n}\r\n","
\r\n {{ updateMessage }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ 'general.tags' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode, languages, whitelabels } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { AppUser, UserRole } from 'app/models/user.model';\r\nimport { UserRoleService } from 'app/services/users/userRole.service';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { InventoryAccount } from 'app/models/account.model';\r\n\r\n\r\n@Component({\r\n selector: 'fh-user-details',\r\n templateUrl: 'userDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class UserDetailsComponent implements OnInit {\r\n\r\n @Input() user: AppUser = new AppUser();\r\n @Input() accounts: InventoryAccount[] = [];\r\n @Input() formMode: FormMode = FormMode.read;\r\n passwordConfirmation = '';\r\n userRoles: UserRole[];\r\n languages: { name: string; path: any; }[];\r\n permissions: {};\r\n whitelabels: { value: string; name: any; }[];\r\n loadingUserRoles = false;\r\n\r\n constructor(private authenticationService: AuthenticationService, private userRoleService: UserRoleService) {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.loadingUserRoles = true;\r\n this.userRoleService.getUserRoles().subscribe(userRoles => {\r\n this.loadingUserRoles = false;\r\n\r\n this.userRoles = userRoles;\r\n\r\n if (this.formMode === FormMode.add) {\r\n this.user.userRoleId = userRoles.sort((a, b) => b.userLevel - a.userLevel)[0].id;\r\n }\r\n });\r\n\r\n this.languages = Object.keys(languages)\r\n .filter(k => typeof languages[k] === 'string')\r\n .map(n => ({ name: n, path: languages[n] }));\r\n\r\n this.whitelabels = Object.keys(whitelabels)\r\n .filter(k => typeof whitelabels[k] === 'string')\r\n .map(n => ({ value: n, name: whitelabels[n] }));\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.formMode === FormMode.add) {\r\n if (this.user.whitelabel == null) {\r\n this.user.whitelabel = this.whitelabels[0].value;\r\n }\r\n\r\n this.user.language = 'en';\r\n }\r\n }\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 && password2.value?.length > 0 && password.value !== password2.value || (password?.invalid && (password?.dirty || password?.touched))\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n 0 && formMode == 2\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noUser' | translate}}\r\n
\r\n {{ 'general.userNameEmail' | translate}}\r\n \r\n {{ user?.name }}\r\n
\r\n {{ 'general.firstName' | translate}}\r\n \r\n {{ user?.firstName }}\r\n
\r\n {{ 'general.lastName' | translate}}\r\n \r\n {{ user?.lastName }}\r\n
\r\n {{ 'general.account' | translate}}\r\n \r\n {{\r\n user?.accountName }}\r\n {{\r\n user?.accountName }}\r\n
\r\n {{ 'general.createdDate' | translate}}\r\n \r\n {{ user?.createdDate | amDateFormat: 'll' }}\r\n
\r\n {{ 'general.language' | translate}}\r\n \r\n {{user?.language}}\r\n
\r\n {{ 'dates.timezone' | translate}}\r\n \r\n {{user?.timezoneIana}}\r\n
\r\n {{ 'general.userRole' | translate}}\r\n \r\n {{\r\n user?.userRoleName }}\r\n\r\n {{\r\n user?.userRoleName }}\r\n
\r\n {{ 'general.userNameEmail' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.password' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.repeatPassword' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n * Passwords do not match\r\n
\r\n
\r\n * Password must be at least 4 characters long.\r\n
\r\n
\r\n * Password is required\r\n
\r\n
\r\n {{ 'general.firstName' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.lastName' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.language' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.account' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.whitelabel' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.userRole' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'dates.timezone' | translate}}\r\n \r\n \r\n
\r\n
","import { Component, Input, TemplateRef, ViewChild, Output, OnChanges } from '@angular/core';\r\nimport { FormMode, languages } from 'app/common/enums';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { BsModalService, BsModalRef, ModalDirective } from 'ngx-bootstrap';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { DeviceService } from '../../../services/device/device.service';\r\nimport { UserRoleService } from '../../../services/users/userRole.service';\r\nimport { UserRole } from '../../../models/user.model';\r\nimport { UserService } from '../../../services/users/user.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport { DeleteModalComponent } from './deleteModal.component';\r\n\r\n@Component({\r\n selector: 'fh-user-details-editor',\r\n templateUrl: 'userEditor.template.html',\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n // css styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('0.5s', style({ opacity: 1 }))\r\n ]),\r\n ]\r\n )\r\n ],\r\n})\r\nexport class UserEditorComponent implements OnChanges {\r\n\r\n @Input() user;\r\n @Input() loading;\r\n @Output() onDeleted = new EventEmitter();\r\n @Output() onRoleChanged = new EventEmitter();\r\n @ViewChild('deleteModal') deleteModal: DeleteModalComponent;\r\n\r\n messageStatus = 'alert-success';\r\n\r\n formMode: FormMode = FormMode.read;\r\n userRoles: UserRole[];\r\n languages: { name: string; path: any; }[];\r\n isMessage: boolean;\r\n updateMessage: string;\r\n permissions: {};\r\n activeUserId: string;\r\n error: any;\r\n\r\n constructor(private router: Router, private translateServe: TranslateService, private userRoleService: UserRoleService, private userService: UserService, private authenticationService: AuthenticationService) {\r\n this.permissions = this.authenticationService.permissions;\r\n this.activeUserId = this.authenticationService.getUserId();\r\n\r\n this.userRoleService.getUserRoles().subscribe(userRoles => {\r\n this.userRoles = userRoles;\r\n });\r\n\r\n this.languages = Object.keys(languages)\r\n .filter(k => typeof languages[k] === 'string')\r\n .map(n => ({ name: n, path: languages[n] }));\r\n }\r\n\r\n ngOnChanges(): void {\r\n }\r\n\r\n changeMode(formMode: FormMode) {\r\n this.formMode = formMode;\r\n }\r\n\r\n resetPassword() {\r\n this.userService.resetPassword(this.user.id).subscribe(result => {\r\n\r\n this.changeMode(FormMode.read);\r\n\r\n if (result === true) {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-success';\r\n this.updateMessage = this.translateServe.instant('login.passwordResetSucces');\r\n } else {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-warning';\r\n this.updateMessage = this.translateServe.instant('login.passwordResetFailed');\r\n }\r\n });\r\n }\r\n\r\n impersonate() {\r\n this.userService.getTokenForUser(this.user.id).subscribe(result => {\r\n this.authenticationService.setImpersonationToken(this.user, result);\r\n });\r\n }\r\n\r\n save() {\r\n this.userService.updateUserProfile(this.user).subscribe(result => {\r\n\r\n const userRole = this.userRoles.filter(x => x.id === result.userRoleId);\r\n if (userRole.length === 1) {\r\n this.user.userRoleName = userRole[0].name;\r\n }\r\n\r\n if (result === false) {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-warning';\r\n this.updateMessage = this.translateServe.instant('general.errorUpdate');\r\n\r\n } else {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-success';\r\n this.updateMessage = this.translateServe.instant('general.updateUser');\r\n }\r\n\r\n this.changeMode(FormMode.read);\r\n });\r\n\r\n this.onRoleChanged.emit(this.user);\r\n }\r\n\r\n deleteDevice(): void {\r\n this.userService.deleteUser(this.user.id).subscribe(result => {\r\n this.onDeleted.emit(this.user);\r\n\r\n if (result === true) {\r\n\r\n this.router.navigate(['/Users/Overview']);\r\n } else {\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-warning';\r\n this.updateMessage = this.translateServe.instant('general.errorUpdate');\r\n }\r\n }, error => {\r\n this.hideModal();\r\n this.error = error;\r\n this.isMessage = true;\r\n this.messageStatus = 'alert-warning';\r\n this.updateMessage = this.translateServe.instant('general.errorUpdate');\r\n });\r\n }\r\n\r\n roleChagned() {\r\n this.onRoleChanged.emit(this.user);\r\n }\r\n\r\n showModal() {\r\n this.deleteModal.showModal(null);\r\n }\r\n\r\n hideModal() {\r\n this.deleteModal.hideModal();\r\n }\r\n}\r\n","
\r\n {{ updateMessage }}\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n {{ user?.name }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Asset } from 'app/models/asset.model';\r\n\r\n\r\n@Component({\r\n selector: 'fh-wasl-asset-details',\r\n templateUrl: 'waslAssetDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class WaslAssetDetailsComponent implements OnInit {\r\n\r\n @Input() asset: Asset;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n plateTypes = [\r\n 'enums.plateType.0',\r\n 'enums.plateType.1',\r\n 'enums.plateType.2',\r\n 'enums.plateType.3',\r\n 'enums.plateType.4',\r\n 'enums.plateType.5',\r\n 'enums.plateType.6',\r\n 'enums.plateType.7',\r\n 'enums.plateType.8',\r\n 'enums.plateType.9',\r\n 'enums.plateType.10',\r\n 'enums.plateType.11'\r\n ]\r\n\r\n getPlateType = ((value) => Number(value)\r\n ? this.plateTypes[value]\r\n : 'enums.plateType.0'\r\n );\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.noWaslAsset' | translate}}\r\n
\r\n {{ 'general.waslReference' | translate}}\r\n \r\n \r\n
\r\n {{ 'general.plateType' | translate}}\r\n *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.sequenceNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.plateNo' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.plate' | translate}}\r\n *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Driver } from 'app/models/driver.model';\r\n\r\n\r\n@Component({\r\n selector: 'fh-driver-wasl-details',\r\n templateUrl: 'waslDriverDetails.component.html',\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class WaslDriverDetailsComponent implements OnInit {\r\n\r\n @Input() driver: Driver;\r\n @Input() formMode: FormMode = FormMode.read;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.waslReference' | translate}}\r\n \r\n {{ (driver.properties.wasl.referenceKey ? 'general.true' : 'general.false') | translate}}\r\n
\r\n {{ 'general.identityNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.mobileNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.dateOfBirthGregorian' | translate}}\r\n *\r\n \r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Asset } from 'app/models/asset.model';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { AssetService } from 'app/services/asset/asset.service';\r\nimport { AssetTypeService } from 'app/services/asset/assetTypes.service';\r\nimport { AssetType } from 'app/models/assetType.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'fh-trailers-add',\r\n templateUrl: 'add.template.html'\r\n})\r\nexport class TrailerAddViewComponent {\r\n token: string;\r\n addDevice = false;\r\n asset: Asset;\r\n formMode = FormMode.add;\r\n loading = false;\r\n error: any;\r\n assetTypes: AssetType[] = [];\r\n success: { statusText: string; success: string; };\r\n\r\n constructor(private router: Router, private assetTypeService: AssetTypeService, private assetService: AssetService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService) {\r\n this.asset = new Asset();\r\n this.asset.assetClass = 2;\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n this.assetService.saveAsset(this.asset).subscribe(result => {\r\n this.success = {\r\n statusText: 'Success',\r\n success: 'You will be redirected to the trailer'\r\n };\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/TrailerDetails/Index/' + result.id]);\r\n }, 2000);\r\n\r\n this.assetService.resetAssetCache().subscribe(res => {\r\n console.log('Assets are cleared');\r\n console.log(res);\r\n });\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.error = error\r\n this.loading = false;\r\n });\r\n }\r\n\r\n updateAssetType(event) {\r\n\r\n console.log(event);\r\n\r\n if (!event.id) {\r\n return;\r\n }\r\n\r\n this.asset.assetTypeId = event.id;\r\n this.asset.assetTypeName = event.name;\r\n this.asset.brand = event.brand;\r\n this.asset.model = event.model;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.trailer' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { tileLayer, latLng, circle, polygon, Map, marker, icon } from 'leaflet';\r\nimport { Asset } from 'app/models/asset.model';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-fh-trailer-assets',\r\n templateUrl: 'assets.template.html'\r\n})\r\nexport class TrailerAssetsViewComponent implements OnInit {\r\n sub: any;\r\n asset: any;\r\n device: any;\r\n\r\n loadingAsset = false;\r\n loadingTrailers = false\r\n\r\n error: any;\r\n\r\n map: Map;\r\n defaultMap;\r\n\r\n options;\r\n marker;\r\n assets: Asset[] = [];\r\n\r\n constructor(private assetService: AssetService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n this.loadingAsset = true;\r\n this.loadingTrailers = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetService.getAssetById(id).subscribe(asset => {\r\n this.asset = asset;\r\n this.loadingAsset = false;\r\n });\r\n\r\n const assetsFromService = this.assetService.getAssetsByChildId(id, 1).subscribe(assets => {\r\n this.assets = assets;\r\n this.loadingTrailers = false;\r\n }, error => {\r\n this.error = error\r\n this.loadingTrailers = false;\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.asset' | translate }}\r\n
  4. \r\n
  5. \r\n {{'general.assetDetails' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'general.assets' | translate }}\r\n
\r\n
\r\n
\r\n {{ 'general.noAssets' | translate }}\r\n
\r\n
\r\n {{ 'general.toAddAssetStory' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{ asset.name }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.type' | translate}}\r\n \r\n {{ asset.type }}\r\n
\r\n {{ 'general.brand' | translate}}\r\n \r\n {{ asset.brand }}\r\n
\r\n {{ 'general.model' | translate}}\r\n \r\n {{ asset.model }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { TagObjectType } from 'app/models/tag.model';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { Asset } from 'app/models/asset.model';\r\n\r\n@Component({\r\n selector: 'fh-fh-trailer-details',\r\n templateUrl: 'trailerDetails.template.html'\r\n})\r\nexport class TrailerDetailsViewComponent implements OnInit {\r\n sub: any;\r\n trailer: Asset = new Asset();\r\n device: any;\r\n tagType = TagObjectType.Asset.valueOf();\r\n\r\n loadingDevice = false;\r\n loadingTrailer = false;\r\n error: any;\r\n success: any;\r\n formMode = FormMode.read;\r\n options;\r\n marker;\r\n\r\n permissions: {};\r\n\r\n constructor(private authentication: AuthenticationService, private assetService: AssetService, private deviceService: DeviceService, private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n this.permissions = this.authentication.permissions;\r\n\r\n this.loadingDevice = true;\r\n this.loadingTrailer = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n const assetFromService = this.assetService.getAssetById(id).subscribe(asset => {\r\n this.trailer = asset;\r\n this.loadingTrailer = false;\r\n\r\n if (this.trailer.deviceId) {\r\n\r\n const deviceFromService = this.deviceService.getDeviceById(this.trailer.deviceId).subscribe(device => {\r\n this.device = device;\r\n\r\n this.loadingDevice = false;\r\n }, error => {\r\n this.error = error\r\n this.loadingDevice = false;\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n getAssetInfo() {\r\n this.loadingTrailer = true;\r\n\r\n const assetFromService = this.assetService.getAssetById(this.trailer.id).subscribe(asset => {\r\n this.trailer = asset;\r\n this.loadingTrailer = false;\r\n });\r\n }\r\n\r\n // Form\r\n\r\n onDelete() {\r\n this.error = 'Deleting is not implemented';\r\n }\r\n\r\n onSave() {\r\n this.loadingTrailer = true;\r\n\r\n this.assetService.updateAsset(this.trailer).subscribe(result => {\r\n console.log(result);\r\n this.loadingTrailer = false;\r\n }, error => {\r\n this.error = error\r\n this.loadingTrailer = false;\r\n });\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.trailers' | translate }}\r\n
  4. \r\n
  5. \r\n {{trailer?.name}}\r\n
  6. \r\n
  7. \r\n {{'general.trailerdetails' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'general.trailer' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n {{'general.calibration' | translate }}\r\n
\r\n
\r\n
\r\n Implicit from assettype\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { getGridLanguages, getGridButtons } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-trailers',\r\n templateUrl: 'trailers.template.html'\r\n})\r\nexport class TrailerViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private assetService: AssetService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n checkFilters() {\r\n this.fireFilter();\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n columns: ':visible[tabindex]'\r\n };\r\n\r\n this.dtOptions = {\r\n buttons: getGridButtons(commonExportOptions, 'device_overview', this.translateService.instant('menu.deviceoverview')),\r\n pagingType: 'simple_numbers',\r\n serverSide: true,\r\n processing: true,\r\n searchDelay: 500,\r\n deferRender: true,\r\n scrollX: true,\r\n colReorder: { fixedColumnsLeft: 1 },\r\n deferLoading: 0,\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[0, 'asc']],\r\n ajax: {\r\n beforeSend: () => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n },\r\n url: that.assetService.getTrailersPagingUrl(),\r\n type: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + that.token\r\n }\r\n },\r\n initComplete: function (settings, json) {\r\n console.log('init complete');\r\n that.checkFilters();\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'name',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n name: 'plateNumber',\r\n data: 'plateNumber',\r\n title: this.translateService.instant('general.plateNumber'),\r\n },\r\n {\r\n name: 'brand',\r\n data: 'brand',\r\n title: this.translateService.instant('general.assetBrand'),\r\n },\r\n {\r\n name: 'model',\r\n data: 'model',\r\n title: this.translateService.instant('general.assetModel'),\r\n },\r\n {\r\n name: 'color',\r\n data: 'color',\r\n title: this.translateService.instant('general.color'),\r\n }],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n\r\n if (this.permissions['HasWasl']) {\r\n this.dtOptions['columns'].push({\r\n name: 'wasl',\r\n data: 'waslReference',\r\n title: this.translateService.instant('general.wasl'),\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.trailer' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { languages, FormMode } from 'app/common/enums';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { User, AppUser, UserRole } from '../../models/user.model';\r\nimport { PlatformService } from '../../services/platform/platform.service';\r\nimport { UserRoleService } from '../../services/users/userRole.service';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { AccountService } from 'app/services/accounts/accounts.service';\r\nimport { InventoryAccount } from 'app/models/account.model';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-user-add',\r\n templateUrl: 'userAdd.template.html'\r\n})\r\n\r\nexport class UserAddViewComponent implements OnInit {\r\n accountPlatforms: any;\r\n languages: { name: string; path: any; }[] = [];\r\n loading: boolean;\r\n user: AppUser = new AppUser();\r\n userRoles: UserRole[];\r\n password2;\r\n formMode = FormMode.add;\r\n accounts: InventoryAccount[] = [];\r\n permissions = {};\r\n error: HttpErrorResponse;\r\n accountId: string;\r\n\r\n constructor(private authenticationService: AuthenticationService, private accountService: AccountService, private userRoleService: UserRoleService, private route: ActivatedRoute, private router: Router, private userService: UserService) {\r\n\r\n this.permissions = this.authenticationService.permissions;\r\n this.accountId = this.authenticationService.getAccountId();\r\n\r\n if (this.permissions['IsAdministrator']) {\r\n this.accountService.getAccounts().subscribe(result => {\r\n this.accounts = result.sort((a, b) => ('' + a.name).localeCompare(b.name));\r\n this.user.accountId = this.accounts.find(a => a.id === this.accountId).id;\r\n });\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onInsert() {\r\n this.loading = true;\r\n\r\n this.user.timezoneIana = this.authenticationService.getTimeZoneIana();\r\n this.userService.saveUser(this.user).subscribe(result => {\r\n this.loading = false;\r\n\r\n if (result.completed) {\r\n this.router.navigate(['/Users/Overview']);\r\n } else {\r\n this.error = result.data.error\r\n }\r\n\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.users' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.add' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {{'menu.addUser' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\n\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { Map } from 'leaflet';\r\nimport { UserService } from '../../services/users/user.service';\r\nimport { User, AppUser } from '../../models/user.model';\r\nimport { PermissionsBitmask } from 'app/common/enums';\r\nimport { arrayFromMask } from 'app/services/common/functions.service';\r\nimport { UserRoleService } from 'app/services/users/userRole.service';\r\nimport { AuthenticationService } from 'app/services/authentication/authentication.service';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-user-details-view',\r\n templateUrl: 'userDetails.template.html',\r\n providers: [FhChartService]\r\n})\r\n\r\nexport class UserDetailsViewComponent implements OnInit {\r\n\r\n map: Map;\r\n options;\r\n layersControl;\r\n selectedRow: any;\r\n selected: any;\r\n theTrips = [];\r\n timeoutHandler;\r\n chartFuel: any;\r\n sensors;\r\n sub;\r\n user: AppUser = new AppUser();\r\n loading = false;\r\n loadingSensors = false;\r\n\r\n theSaveBitmask;\r\n\r\n permissions: { name: string; value: any; isEnabled: boolean; }[];\r\n userRole: any;\r\n permissionBitmask: any;\r\n filteredPermissions: any;\r\n loadingRoles: boolean;\r\n displayPermissions: any;\r\n isImpersonated = false;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private userRoleService: UserRoleService, private route: ActivatedRoute, private router: Router, private userService: UserService, private authenticationService: AuthenticationService) {\r\n this.user = null;\r\n this.sensors = [];\r\n this.theTrips = [];\r\n this.permissions = Object.keys(PermissionsBitmask)\r\n .filter(k => typeof PermissionsBitmask[k] === 'number')\r\n .map(n => ({ name: n, value: PermissionsBitmask[n], isEnabled: false }))\r\n }\r\n\r\n ngOnInit() {\r\n this.displayPermissions = this.authenticationService.permissions;\r\n this.isImpersonated = this.authenticationService.getIsImpersonated();\r\n\r\n this.user = new AppUser;\r\n this.loading = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.userService.getUserById(id).subscribe(user => {\r\n this.user = user;\r\n this.loading = false;\r\n this.loadingRoles = true;\r\n\r\n this.userRoleService.getUserRoleById(user.userRoleId).subscribe(userRole => {\r\n this.userRole = userRole;\r\n this.loading = false;\r\n this.loadingRoles = false;\r\n\r\n this.permissions = arrayFromMask(userRole.permissions, this.permissions);\r\n this.filteredPermissions = this.permissions.filter(x => x.isEnabled === true);\r\n\r\n if (this.userRole == null) {\r\n this.router.navigate(['/Users/Overview'])\r\n }\r\n });\r\n\r\n if (this.user == null) {\r\n this.router.navigate(['/Users/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.initMap()\r\n }\r\n\r\n roleChanged(event) {\r\n console.log('Role changed' + this.user.userRoleId);\r\n\r\n this.updateRole();\r\n }\r\n\r\n updateRole() {\r\n this.loadingRoles = true;\r\n this.userRoleService.getUserRoleById(this.user.userRoleId).subscribe(userRole => {\r\n this.userRole = userRole;\r\n this.loading = false;\r\n\r\n this.permissions = arrayFromMask(userRole.permissions, this.permissions);\r\n this.filteredPermissions = this.permissions.filter(x => x.isEnabled === true);\r\n\r\n this.loadingRoles = false;\r\n });\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.users' | translate }}\r\n
  4. \r\n
  5. \r\n {{user?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.details' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'menu.permissions' | translate }}
\r\n
\r\n
\r\n Bitmask! {{ theSaveBitmask }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.permission' | translate }}{{'general.active' | translate }}
\r\n {{ permission.name }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.map' | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuditLogService } from '../../services/auditlog/auditlog.service';\r\nimport { AuditLog } from '../../models/auditlog.model';\r\nimport { UserService } from 'app/services/users/user.service';\r\nimport { AppUser } from 'app/models/user.model';\r\n\r\n@Component({\r\n selector: 'fh-user-log',\r\n templateUrl: 'userLog.template.html',\r\n styleUrls: ['userLog.template.css']\r\n})\r\nexport class UserLogViewComponent implements OnInit {\r\n sub;\r\n user: AppUser;\r\n userLog: AuditLog[];\r\n loading = false;\r\n\r\n\r\n constructor(private http: HttpClient, private auditLogService: AuditLogService, private route: ActivatedRoute, private router: Router) {\r\n this.user = null;\r\n this.userLog = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.user = new AppUser;\r\n this.user.id = '';\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n\r\n this.auditLogService.getAuditLogByUser(id).subscribe(userLog => {\r\n this.userLog = userLog;\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.users' | translate }}\r\n
  4. \r\n
  5. \r\n {{'menu.log' | translate }}\r\n
  6. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';\r\n\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Device } from 'app/models/device.model';\r\nimport { FhChartService } from '../../services/charts/charts.service';\r\nimport { Map } from 'leaflet';\r\nimport { UserRoleService } from '../../services/users/userRole.service';\r\nimport { User, UserRole } from '../../models/user.model';\r\nimport { PermissionsBitmask } from '../../common/enums';\r\nimport { createMask, arrayFromMask } from 'app/services/common/functions.service';\r\nimport { getMapProviders, createMapOptions } from 'app/common/leafletGlobals';\r\n\r\ndeclare var L;\r\n\r\n@Component({\r\n selector: 'fh-user-role-details',\r\n templateUrl: 'userRoleDetails.template.html'\r\n})\r\n\r\nexport class UserRoleDetailsViewComponent implements OnInit {\r\n\r\n map: Map;\r\n options;\r\n layersControl;\r\n selectedRow: any;\r\n selected: any;\r\n theTrips = [];\r\n permissionEnum = [];\r\n timeoutHandler;\r\n chartFuel: any;\r\n sensors;\r\n sub;\r\n userRole: UserRole;\r\n loading = false;\r\n loadingSensors = false;\r\n permissions: { name: string; value: any; isEnabled: boolean; }[];\r\n permissionBitmask = [];\r\n theSaveBitmask: number;\r\n maps: { 'mapTiler': any; 'Google': any; 'Hybrid': any; };\r\n\r\n constructor(private route: ActivatedRoute, private router: Router, private userRoleService: UserRoleService) {\r\n this.userRole = null;\r\n this.sensors = [];\r\n this.theTrips = [];\r\n }\r\n\r\n save() {\r\n const theSaveBitmask = createMask(this.permissions);\r\n this.theSaveBitmask = theSaveBitmask;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.permissions = Object.keys(PermissionsBitmask)\r\n .filter(k => typeof PermissionsBitmask[k] === 'number')\r\n .map(n => ({ name: n, value: PermissionsBitmask[n], isEnabled: false }))\r\n\r\n this.userRole = new UserRole;\r\n this.loading = true;\r\n\r\n this.sub = this.route.params.subscribe(params => {\r\n const id = params['id'];\r\n this.userRoleService.getUserRoleById(id).subscribe(userRole => {\r\n this.userRole = userRole;\r\n this.loading = false;\r\n\r\n this.permissions = arrayFromMask(userRole.permissions, this.permissions);\r\n\r\n if (this.userRole == null) {\r\n this.router.navigate(['/Users/Overview'])\r\n }\r\n });\r\n });\r\n\r\n this.initMap();\r\n }\r\n\r\n // Leaflet\r\n initMap() {\r\n this.maps = getMapProviders(L);\r\n const initMaps = [];\r\n initMaps.push(Object.values(this.maps)[0]);\r\n this.options = createMapOptions(L, initMaps);\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n const overlayMaps = {};\r\n\r\n L.control.layers(this.maps, overlayMaps, { position: 'topleft' }).addTo(map);\r\n\r\n this.map.invalidateSize();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
    \r\n
  1. \r\n \r\n {{'general.home' | translate }}\r\n
  2. \r\n
  3. \r\n {{'general.userRoles' | translate }}\r\n
  4. \r\n
  5. \r\n {{userRole?.name}}\r\n
  6. \r\n
  7. \r\n {{'menu.details' | translate }}\r\n
  8. \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.userroledetails' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n \r\n {{ userRole?.name }}\r\n
\r\n {{ 'general.permissions' | translate}}\r\n \r\n {{ userRole?.permissions }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'menu.permissions' | translate }}
\r\n
\r\n
\r\n Bitmask! {{ theSaveBitmask }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'general.permission' | translate }}{{'general.active' | translate }}
\r\n {{ permission.name }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, NgZone, } from '@angular/core';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport * as moment from 'moment';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { Severity } from '../../common/enums';\r\nimport { UserService } from '../../services/users/user.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { UserRoleService } from 'app/services/users/userRole.service';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-user-roles',\r\n templateUrl: 'userRoles.template.html',\r\n styleUrls: ['userRoles.template.css']\r\n})\r\nexport class UserRolesViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n countrySelect = false;\r\n\r\n dtOptions = {};\r\n loading = false;\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n dropdown_Severity = '';\r\n timezoneIana: string;\r\n permissions: {};\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n constructor(private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private userRoleService: UserRoleService) {\r\n const that = this;\r\n this.permissions = this.authenticationService.permissions;\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n order: [[1, 'asc']],\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.userRoleService.getUserRoles().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id']\r\n },\r\n columns: [{\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.userName')\r\n },\r\n {\r\n data: 'createdDate',\r\n title: this.translateService.instant('general.created'),\r\n render: function (data, type, row) {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('ll')\r\n }\r\n }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.userRoles' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, NgZone, } from '@angular/core';\r\nimport { DeviceService } from '../../services/device/device.service';\r\nimport { IssueService } from '../../services/issues/issues.service';\r\nimport { Issue } from 'app/models/issue.model';\r\nimport * as moment from 'moment';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { Chart } from 'angular-highcharts';\r\n\r\nimport { DeviceTypeService } from 'app/services/devicetypes/devicetypes.service';\r\nimport { IssueTypeService } from 'app/services/issuetypes/issuetypes.service';\r\nimport { DeviceType } from 'app/models/devicetype.model';\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslatorService } from '../../services/common/translator.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BsDatepickerConfig, BsLocaleService, BsDaterangepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { Severity } from '../../common/enums';\r\nimport { UserService } from '../../services/users/user.service';\r\n\r\n// Moment timezone\r\nimport * as Moment from 'moment';\r\nimport * as mTZ from 'moment-timezone';\r\nimport { environment } from 'environments/environment';\r\nwindow['moment'] = Moment;\r\nmTZ()\r\n\r\n@Component({\r\n selector: 'fh-users',\r\n templateUrl: 'users.template.html',\r\n styleUrls: ['users.template.css']\r\n})\r\nexport class UsersViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n countrySelect = false;\r\n\r\n dtOptions = {};\r\n loading = false;\r\n\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n dropdown_DeviceType = '';\r\n dropdown_Severity = '';\r\n timezoneIana: string;\r\n permissions: {};\r\n languageLoaded: boolean;\r\n searchTerm: any;\r\n\r\n\r\n impersonatePublic(userId) {\r\n this.ngZone.run(() => this.impersonate(userId));\r\n }\r\n\r\n overviewPublic(userId) {\r\n this.ngZone.run(() => this.overview(userId));\r\n }\r\n\r\n deletePublic(userId) {\r\n this.ngZone.run(() => this.delete(userId));\r\n }\r\n\r\n constructor(private ngZone: NgZone, private localeService: BsLocaleService, private route: ActivatedRoute, private translatorService: TranslatorService, private translateService: TranslateService, private cd: ChangeDetectorRef, private issueTypeService: IssueTypeService, private authenticationService: AuthenticationService, private userService: UserService) {\r\n const that = this;\r\n this.permissions = this.authenticationService.permissions;\r\n this.timezoneIana = authenticationService.getTimeZoneIana();\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n seachChanged(value) {\r\n console.log('Search changed');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n impersonate(userId) {\r\n const user = this.userService.getUserById(userId).subscribe(appUser => {\r\n this.userService.getTokenForUser(appUser.id).subscribe(result => {\r\n this.authenticationService.setImpersonationToken(appUser, result);\r\n });\r\n });\r\n }\r\n\r\n delete(userId) {\r\n const user = this.userService.deleteUser(userId).subscribe(appUser => {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.ajax.reload();\r\n });\r\n });\r\n }\r\n\r\n overview(userId) {\r\n const user = this.userService.getUserById(userId).subscribe(appUser => {\r\n this.userService.getTokenForUser(appUser.id).subscribe(result => {\r\n window.open(environment.FORedirectUrl + 'Login/?token=' + result.token + '&expired=' + result.tokenExpires);\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n\r\n window['my'].namespace.impersonate = null;\r\n window['my'].namespace.overview = null;\r\n window['my'].namespace.delete = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true; this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n\r\n window['my'] = window['my'] || {};\r\n window['my'].namespace = window['my'].namespace || {};\r\n window['my'].namespace.impersonate = this.impersonatePublic.bind(this);\r\n window['my'].namespace.overview = this.overviewPublic.bind(this);\r\n window['my'].namespace.delete = this.deletePublic.bind(this);\r\n\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n deferRender: true,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'asc']],\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.userService.getUsers().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n exclude: ['id', 'impersonate']\r\n },\r\n columns: [{\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n data: 'name',\r\n title: this.translateService.instant('general.userName')\r\n }, {\r\n data: 'fullName',\r\n title: this.translateService.instant('general.name')\r\n },\r\n {\r\n data: 'accountName',\r\n title: this.translateService.instant('general.account')\r\n },\r\n {\r\n data: 'userRoleName',\r\n title: this.translateService.instant('general.userRole')\r\n },\r\n {\r\n data: 'createdDate',\r\n title: this.translateService.instant('general.created'),\r\n render: function (data, type, row) {\r\n if (type === 'display') {\r\n const date = Moment.utc(data)['tz'](that.timezoneIana);\r\n return date.format('lll')\r\n }\r\n return data;\r\n }\r\n }, {\r\n name: 'impersonate',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '30',\r\n render: function (data, type, row) {\r\n return that.permissions['IsAdministrator'] ? `\r\n \r\n \r\n ` : '';\r\n }\r\n }],\r\n pageLength: 10,\r\n language: {\r\n 'lengthMenu': this.translateService.instant('grid.lengthmenu'),\r\n 'zeroRecords': this.translateService.instant('grid.empty'),\r\n 'info': this.translateService.instant('grid.info'),\r\n 'infoEmpty': this.translateService.instant('grid.infoempty'),\r\n 'infoFiltered': this.translateService.instant('grid.infofiltered'),\r\n 'search': this.translateService.instant('grid.search'),\r\n 'infoThousands': '.',\r\n 'loadingRecords': this.translateService.instant('grid.loadingrecords'),\r\n 'paginate': {\r\n 'first': this.translateService.instant('grid.first'),\r\n 'last': this.translateService.instant('grid.last'),\r\n 'next': this.translateService.instant('grid.next'),\r\n 'previous': this.translateService.instant('grid.previous'),\r\n },\r\n 'aria': {\r\n 'sortAscending': this.translateService.instant('grid.sortasc'),\r\n 'sortDescending': this.translateService.instant('grid.sortdesc'),\r\n }\r\n },\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.users' | translate }}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ViewChild, } from '@angular/core';\r\n\r\nimport { IssueType } from 'app/models/issuetype.model';\r\nimport { DataTableDirective } from 'angular-datatables';\r\nimport { AuthenticationService } from '../../services/authentication/authentication.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AssetService } from '../../services/asset/asset.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { getGridLanguages } from 'app/common/gridhelper';\r\n\r\n\r\n@Component({\r\n selector: 'fh-wasl-registration-status',\r\n templateUrl: 'status.template.html'\r\n})\r\nexport class WaslRegistrationStatusViewComponent implements OnInit, OnDestroy {\r\n token: string;\r\n @ViewChild(DataTableDirective)\r\n datatableElement: DataTableDirective;\r\n dropdown_IssueType = '';\r\n\r\n dtOptions = {};\r\n\r\n min: number;\r\n max: number;\r\n\r\n issueTypes: IssueType[];\r\n loading = false;\r\n languageLoaded: boolean;\r\n permissions: {};\r\n searchTerm: any;\r\n\r\n constructor(private route: ActivatedRoute, private translateService: TranslateService, private cd: ChangeDetectorRef, private authenticationService: AuthenticationService, private assetService: AssetService) {\r\n\r\n this.token = this.authenticationService.getAuthToken();\r\n }\r\n\r\n editMode(isEditMode) {\r\n const toolbox = document.getElementById('grid-toolbox');\r\n\r\n console.log(isEditMode);\r\n if (isEditMode) {\r\n toolbox.classList.remove('hidden');\r\n } else {\r\n toolbox.classList.add('hidden');\r\n }\r\n }\r\n\r\n seachChanged(value) {\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n dtInstance.search(value).draw();\r\n });\r\n }\r\n\r\n checkFilters(): void {\r\n // Set issuetype from get\r\n this.route.params.subscribe(params => {\r\n const search = params['id'];\r\n if (search) {\r\n console.log('search changed ' + search);\r\n this.seachChanged(search);\r\n }\r\n });\r\n\r\n this.fireFilter();\r\n }\r\n\r\n fireFilter(): void {\r\n console.log('fire update');\r\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\r\n\r\n // Search for the devicetype\r\n\r\n // Search for the issuetype\r\n if (this.dropdown_IssueType !== '') {\r\n dtInstance.column(6).search(this.dropdown_IssueType);\r\n }\r\n\r\n // Fire the request\r\n dtInstance.draw();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // We remove the last function in the global ext search array so we do not add the fn each time the component is drawn\r\n // /!\\ This is not the ideal solution as other components may add other search function in this array, so be careful when\r\n // handling this global variable\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n // Had to reset the array...\r\n $.fn['dataTable'].ext.search = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.permissions = this.authenticationService.permissions;\r\n\r\n this.translateService.get('general.date').subscribe(value => {\r\n this.languageLoaded = true;\r\n this.initGrid();\r\n });\r\n }\r\n\r\n initGrid(): void {\r\n const that = this;\r\n\r\n $.fn['dataTable'].ext.search.pop();\r\n\r\n this.loading = true;\r\n\r\n const commonExportOptions = {\r\n modifier: {\r\n page: 'all',\r\n search: 'none'\r\n },\r\n // columns: ':visible[tabindex]'\r\n };\r\n const fileName = 'device_overview';\r\n const header = this.translateService.instant('menu.deviceoverview');\r\n\r\n this.dtOptions = {\r\n pagingType: 'simple_numbers',\r\n serverSide: false,\r\n deferRender: true,\r\n processing: false,\r\n scrollX: true,\r\n colReorder: {fixedColumnsLeft: 1},\r\n stateSave: true,\r\n stateSaveCallback: function (settings, data) {\r\n localStorage.setItem('Columns_' + that.constructor.name, JSON.stringify(data));\r\n },\r\n stateLoadCallback: function () {\r\n try {\r\n const columnSettings = JSON.parse(localStorage.getItem('Columns_' + that.constructor.name));\r\n that.searchTerm = columnSettings && columnSettings.search && columnSettings.search.search;\r\n return columnSettings;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n order: [[1, 'asc']],\r\n ajax: (dataTablesParameters: any, callback) => {\r\n $('.dataTables_info').html(this.translateService.instant('grid.loadingData'));\r\n\r\n this.assetService.getWaslAssetStatus().subscribe(resp => {\r\n callback({\r\n recordsTotal: resp.length,\r\n recordsFiltered: resp.length,\r\n data: resp\r\n });\r\n });\r\n },\r\n initComplete: function (settings, json) {\r\n that.loading = false;\r\n that.checkFilters();\r\n },\r\n colVis: {\r\n restore: this.translateService.instant('general.restore'),\r\n showAll: this.translateService.instant('general.showAll'),\r\n showNone: this.translateService.instant('general.hideAll'),\r\n },\r\n columns: [\r\n {\r\n name: 'id',\r\n data: 'id',\r\n orderable: false,\r\n title: '',\r\n width: '20',\r\n render: function (data, type, row) {\r\n return ' Details';\r\n }\r\n },\r\n {\r\n name: 'name',\r\n data: 'assetName',\r\n title: this.translateService.instant('general.name')\r\n }, {\r\n name: 'assetProperties',\r\n data: 'assetProperties',\r\n title: this.translateService.instant('general.assetProperties'),\r\n render: function (data, type, row) {\r\n\r\n if (data === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === 'false') {\r\n return '-';\r\n }\r\n\r\n return '';\r\n },\r\n }, {\r\n name: 'assetPropertiesExport',\r\n data: 'assetProperties',\r\n title: this.translateService.instant('general.assetProperties') + ' ' + this.translateService.instant('general.export'),\r\n render: function (data, type, row) {\r\n\r\n if (data === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === 'false') {\r\n return '-';\r\n }\r\n\r\n return data.wasl.referenceKey;\r\n },\r\n visible: false\r\n }, {\r\n name: 'tag',\r\n data: 'tag',\r\n title: this.translateService.instant('general.tag')\r\n }, {\r\n name: 'driverName',\r\n data: 'driverName',\r\n title: this.translateService.instant('general.driver')\r\n }, {\r\n name: 'driverProperties',\r\n data: 'driverProperties',\r\n title: this.translateService.instant('general.driverProperties'),\r\n render: function (data, type, row) {\r\n if (data === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === 'false') {\r\n return '-';\r\n }\r\n return '';\r\n },\r\n }, {\r\n name: 'driverPropertiesExport',\r\n data: 'driverProperties',\r\n title: this.translateService.instant('general.driverProperties') + ' ' + this.translateService.instant('general.export'),\r\n render: function (data, type, row) {\r\n if (data === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === 'false') {\r\n return '-';\r\n }\r\n return data.wasl.referenceKey;\r\n },\r\n visible: false\r\n }, {\r\n name: 'trailerName',\r\n data: 'trailerName',\r\n title: this.translateService.instant('general.trailer')\r\n }, {\r\n name: 'trailerProperties',\r\n data: 'trailerProperties',\r\n title: this.translateService.instant('general.trailerProperties'),\r\n render: function (data, type, row) {\r\n if (data === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === 'false') {\r\n return '-';\r\n }\r\n return '';\r\n },\r\n }, {\r\n name: 'trailerPropertiesExport',\r\n data: 'trailerProperties',\r\n title: this.translateService.instant('general.trailerProperties') + ' ' + this.translateService.instant('general.export'),\r\n render: function (data, type, row) {\r\n if (data === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === undefined) {\r\n return '-';\r\n }\r\n if (data.wasl.referenceKey === 'false') {\r\n return '-';\r\n }\r\n return data.wasl.referenceKey;\r\n },\r\n visible: false\r\n },\r\n ],\r\n pageLength: 10,\r\n lengthMenu: [[10, 25, 50, -1], [10, 25, 50, this.translateService.instant('general.all')]],\r\n language: getGridLanguages(this.translateService),\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'general.wasl' | translate }}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { AccountService } from 'app/services/accounts/accounts.service';\r\nimport { FormMode } from 'app/common/enums';\r\nimport { InventoryAccount } from 'app/models/account.model';\r\nimport { RegisterOperatingCompanyRequest } from 'app/models/wasl.model';\r\nimport { WaslService } from 'app/services/wasl/wasl.service';\r\n\r\n@Component({\r\n selector: 'fh-wasl',\r\n templateUrl: 'wasl.template.html'\r\n})\r\nexport class WaslViewComponent implements OnInit {\r\n\r\n account: InventoryAccount;\r\n\r\n loadingWasl = false;\r\n loading: boolean;\r\n formMode = FormMode.read;\r\n waslSuccess: any;\r\n waslError: any;\r\n\r\n constructor(private waslService: WaslService, private accountService: AccountService) {\r\n\r\n this.account = new InventoryAccount();\r\n this.loadingWasl = true;\r\n\r\n this.getAccount();\r\n }\r\n\r\n getAccount() {\r\n this.accountService.getAccount().subscribe(account => {\r\n this.account = account;\r\n this.loading = false;\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // Form\r\n\r\n onSave() {\r\n this.loadingWasl = true;\r\n\r\n this.accountService.updateAccount(this.account).subscribe(result => {\r\n this.loadingWasl = false;\r\n\r\n this.waslSuccess = {\r\n statusText: 'Success',\r\n success: 'Account is successfully updated'\r\n };\r\n\r\n this.waslError = null;\r\n }, error => {\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n onInsert() {\r\n this.loadingWasl = true;\r\n\r\n setTimeout(() => {\r\n this.loadingWasl = false;\r\n }, 2000);\r\n }\r\n\r\n setFormMode(mode) {\r\n this.formMode = mode;\r\n }\r\n\r\n // Wasl\r\n\r\n register() {\r\n\r\n this.loadingWasl = true;\r\n\r\n this.waslService.registerCompany(this.account.id, this.account.properties.wasl).subscribe(result => {\r\n console.log(result);\r\n this.loadingWasl = false;\r\n if (result.success) {\r\n this.waslSuccess = {\r\n statusText: 'Success',\r\n success: result.resultCode\r\n };\r\n this.waslError = null;\r\n this.account.properties.wasl.referenceKey = result.result.referenceKey;\r\n\r\n } else {\r\n this.waslError = {\r\n statusText: 'Error',\r\n error: result.resultCode\r\n };\r\n }\r\n\r\n this.getAccount();\r\n }, error => {\r\n console.log(error);\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n unRegister() {\r\n this.waslService.unregisterCompany(this.account.id).subscribe(result => {\r\n console.log(result);\r\n this.loadingWasl = false;\r\n if (result.success) {\r\n this.waslSuccess = {\r\n statusText: 'Success',\r\n success: result.resultCode\r\n };\r\n this.waslError = null;\r\n this.account.properties.wasl.referenceKey = null;\r\n } else {\r\n this.waslError = {\r\n statusText: 'Error',\r\n error: result.resultCode\r\n };\r\n }\r\n this.getAccount();\r\n }, error => {\r\n console.log(error);\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n }\r\n\r\n inquire() {\r\n this.loadingWasl = true;\r\n this.waslService.inquireCompany(this.account.id).subscribe(result => {\r\n console.log(result);\r\n this.loadingWasl = false;\r\n\r\n this.waslSuccess = {\r\n statusText: 'Result',\r\n success: result.result,\r\n json: result.json ? JSON.parse(result.json) : undefined\r\n };\r\n this.waslError = null;\r\n }, error => {\r\n this.waslError = error\r\n this.loadingWasl = false;\r\n });\r\n}\r\n}\r\n","
\r\n
\r\n

\r\n {{'general.wasl' | translate }}

\r\n {{'general.introWasl' | translate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n {{'general.company' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.name' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n {{'general.waslStatus' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.connected' | translate}}\r\n \r\n {{ account.properties.wasl.referenceKey }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n

- {{'general.waslFormInvalid' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'general.wasl' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.waslReference' | translate}}\r\n \r\n {{ (account.properties.wasl.referenceKey ? 'general.true' : 'general.false') | translate}}\r\n
\r\n {{ 'general.waslIdentity' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.commercialRecordNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.commercialRecordIssueDateHijri' | translate}}\r\n *\r\n \r\n\r\n \r\n\r\n
\r\n {{ 'general.phoneNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.emailAddress' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.managerName' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.managerPhoneNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n {{ 'general.managerMobileNumber' | translate}}\r\n *\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","export const environment = {\r\n version: '1.2021.0323.1',\r\n production: false,\r\n ConsumerToken: 'c4p8GFRvoWjo+x1I4QZNZP2hpsoRrIvkj44xP5J0zj6eG7fYI1RgNMyXXxNmmWdkjyRjjs4VlWJFMA8OR6huFw==',\r\n AuthenticationUrl: 'https://fleethealth-api.staging.gpscockpit.net/api/',\r\n InventoryUrl: 'https://fleetinventory-api.staging.gpscockpit.net/api/',\r\n FleetOverviewUrl: 'https://fleetoverview-api.staging.gpscockpit.net/api/',\r\n Environment: 'staging',\r\n Debug: true,\r\n SSOEnabled: true,\r\n SSOAuthenticationUrl: 'https://sso.staging.gpscockpit.net',\r\n SSORedirectUrl: 'https://fleethealth.staging.gpscockpit.net/#/Auth-callback?',\r\n SSOPostLogoutRedirectUrl: 'https://fleethealth.staging.gpscockpit.net/#/Endsession-callback',\r\n SSOFacebookID: '570992783334044',\r\n FORedirectUrl: 'https://fleetoverview-foaaa-new.staging.gpscockpit.net/#/',\r\n ApplicationName: '360Locate - Fleet Health',\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport '@angular/compiler';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"]}