{"version":3,"file":"main.js","mappings":"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CAACs0B,eAAe,GAAG,IAAIpF,yEAAW,CAAC,IAAI,CAACzB,OAAO,CAAC;IACpD,IAAI,CAAC8G,qBAAqB,GAAG,IAAI;EACnC;EAEAC,wBAAwB;IACtB,IAAI,CAAC/G,OAAO,GAAG,IAAIyB,yEAAW,CAAC,IAAI,CAACoF,eAAe,CAAC;IACpD,IAAI,CAACC,qBAAqB,GAAG,KAAK;EACpC;EAEAE,kBAAkB;IAChB,IAAI,CAACF,qBAAqB,GAAG,KAAK;IAClC,IAAI,CAACj2B,cAAc,CAACo2B,aAAa,CAAC,IAAI,CAACjH,OAAO,CAAC,CAAChxB,SAAS,CAACjC,MAAM,IAAG;MACjE,IAAI,CAACizB,OAAO,GAAG,IAAIyB,yEAAW,CAAC10B,MAAM,CAAC;IACxC,CAAC,EAAE,MAAK;MACN,IAAI,CAACwB,oBAAoB,CAACc,gBAAgB,EAAE,CAACL,SAAS,CAAC,MAAK,CAC5D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EAEA;EACA;EACA;EAEAk4B,eAAe,CAACC,mBAAyC;IACvD,IAAIC,kBAAkB,GAAG,IAAIrF,iFAAkB,CAACoF,mBAAmB,CAAC;IACpE,IAAI,CAACnhC,MAAM,CAACO,QAAQ,CAAC,CAAC,uBAAuB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IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WA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EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,EAC3C;MAAED,KAAK,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAW,CAAE,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","sources":["./src/api-authorization/api-authorization.constants.ts","./src/api-authorization/api-authorization.module.ts","./src/api-authorization/authorize.guard.ts","./src/api-authorization/authorize.interceptor.ts","./src/api-authorization/authorize.service.ts","./src/api-authorization/login-menu/login-menu.component.ts","./src/api-authorization/login-menu/login-menu.component.html","./src/api-authorization/login/login.component.ts","./src/api-authorization/login/login.component.html","./src/api-authorization/logout/logout.component.ts","./src/api-authorization/logout/logout.component.html","./src/app/admin-lists/components/audit-history/audit-history.component.ts","./src/app/admin-lists/components/audit-history/audit-history.component.html","./src/app/admin-lists/components/company-training-course-details/company-training-course-details.component.ts","./src/app/admin-lists/components/company-training-course-details/company-training-course-details.component.html","./src/app/admin-lists/components/company-training-courses/company-training-courses.component.ts","./src/app/admin-lists/components/company-training-courses/company-training-courses.component.html","./src/app/admin-lists/components/risk-help/risk-help.component.ts","./src/app/admin-lists/components/risk-help/risk-help.component.html","./src/app/admin-lists/components/risk-matrix/risk-matrix.component.ts","./src/app/admin-lists/components/risk-matrix/risk-matrix.component.html","./src/app/admin-lists/services/terms-condition.service.ts","./src/app/admin-lists/training-course-editor/training-course-editor.component.ts","./src/app/admin-lists/training-course-editor/training-course-editor.component.html","./src/app/alerts/alerts.module.ts","./src/app/alerts/components/alert-email-editor/alert-email-editor.component.ts","./src/app/alerts/components/alert-email-editor/alert-email-editor.component.html","./src/app/alerts/components/alert-settings-editor/alert-settings-editor.component.ts","./src/app/alerts/components/alert-settings-editor/alert-settings-editor.component.html","./src/app/alerts/components/company-alerts-page/company-alerts-page.component.ts","./src/app/alerts/components/company-alerts-page/company-alerts-page.component.html","./src/app/alerts/components/company-alerts-settings/company-alerts-settings.component.ts","./src/app/alerts/components/company-alerts-settings/company-alerts-settings.component.html","./src/app/alerts/components/supervision-alerts-page/supervision-alerts-page.component.ts","./src/app/alerts/components/supervision-alerts-page/supervision-alerts-page.component.html","./src/app/alerts/models/AlertInfo.class.ts","./src/app/alerts/models/IAlertInfo.interface.ts","./src/app/alerts/pipes/alert-notice-level-string.pipe.ts","./src/app/alerts/pipes/entity-alert-type-string.pipe.ts","./src/app/alerts/services/alerts.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/bug-logger/bug-logger.module.ts","./src/app/bug-logger/components/log-item-editor-modal/log-item-editor-modal.component.ts","./src/app/bug-logger/components/log-item-editor-modal/log-item-editor-modal.component.html","./src/app/bug-logger/models/log-item.class.ts","./src/app/bug-logger/services/bug-logger-modal.service.ts","./src/app/bug-logger/services/bug-logger.service.ts","./src/app/common/base-api.service.ts","./src/app/common/cached-data.class.ts","./src/app/common/commons.module.ts","./src/app/common/components/confirm-process-date-modal/confirm-process-date-modal.component.ts","./src/app/common/components/confirm-process-date-modal/confirm-process-date-modal.component.html","./src/app/common/components/confirm-process-modal/confirm-process-modal.component.ts","./src/app/common/components/confirm-process-modal/confirm-process-modal.component.html","./src/app/common/components/dashboard-card/dashboard-card.component.ts","./src/app/common/components/dashboard-card/dashboard-card.component.html","./src/app/common/components/detail-container/detail-container.component.html","./src/app/common/components/detail-container/detail-container.component.ts","./src/app/common/components/list-item-selector-modal/list-item-selector-modal.component.ts","./src/app/common/components/list-item-selector-modal/list-item-selector-modal.component.html","./src/app/common/components/list-item-selector/list-item-selector.component.ts","./src/app/common/components/modal-host/modal-host.component.ts","./src/app/common/components/modal-host/modal-host.component.html","./src/app/common/date-time-with-zone.class.ts","./src/app/common/excelStyle.class.ts","./src/app/common/modals/cancel-only-modal-options.class.ts","./src/app/common/modals/consts.ts","./src/app/common/modals/dashboard-card.class.ts","./src/app/common/modals/yesno-modal-options.class.ts","./src/app/common/pipes/ellipsis-pipe.ts","./src/app/common/services/cancel-interceptor.service.ts","./src/app/common/services/export-excel.service.ts","./src/app/common/services/http-cancel.service.ts","./src/app/common/settings-provider.service.ts","./src/app/company/company.module.ts","./src/app/company/components/agree-contract-modal/agree-contract-modal.component.ts","./src/app/company/components/agree-contract-modal/agree-contract-modal.component.html","./src/app/company/components/agree-contract/agree-contract.component.ts","./src/app/company/components/agree-contract/agree-contract.component.html","./src/app/company/components/companies-documents-lists/companies-documents-list.component.ts","./src/app/company/components/companies-documents-lists/companies-documents-list.component.html","./src/app/company/components/company-dashboard/company-dashboard.component.ts","./src/app/company/components/company-dashboard/company-dashboard.component.html","./src/app/company/components/company-details-modal/company-details-modal.component.ts","./src/app/company/components/company-details-modal/company-details-modal.component.html","./src/app/company/components/company-details/company-details.component.ts","./src/app/company/components/company-details/company-details.component.html","./src/app/company/components/company-document-details-page/company-document-details-page.component.ts","./src/app/company/components/company-document-details-page/company-document-details-page.component.html","./src/app/company/components/company-documents-page/company-documents-page.component.ts","./src/app/company/components/company-documents-page/company-documents-page.component.html","./src/app/company/components/company-documents/company-documents.component.ts","./src/app/company/components/company-documents/company-documents.component.html","./src/app/company/components/company-operative-training-records-page/company-operative-training-records-page.component.ts","./src/app/company/components/company-operative-training-records-page/company-operative-training-records-page.component.html","./src/app/company/components/company-operative-training-records/company-operative-training-records.component.ts","./src/app/company/components/company-operative-training-records/company-operative-training-records.component.html","./src/app/company/components/company-operatives/company-operatives.component.ts","./src/app/company/components/company-operatives/company-operatives.component.html","./src/app/company/components/company-opt-in-modal/company-opt-in-modal.component.ts","./src/app/company/components/company-opt-in-modal/company-opt-in-modal.component.html","./src/app/company/components/company-settings-email-modal/company-settings-email-modal.component.ts","./src/app/company/components/company-settings-email-modal/company-settings-email-modal.component.html","./src/app/company/components/company-settings-page/company-settings-page.component.ts","./src/app/company/components/company-settings-page/company-settings-page.component.html","./src/app/company/components/order-form-page/order-form-page.component.ts","./src/app/company/components/order-form-page/order-form-page.component.html","./src/app/company/services/company-dashboard-state.service.ts","./src/app/company/services/company-documents.service.ts","./src/app/company/services/company-opt-in-modal.service.ts","./src/app/company/services/company-opt-in.service.ts","./src/app/company/services/company-settings-modal.service.ts","./src/app/company/services/company.service.ts","./src/app/documents/components/document-type-editor/document-type-editor.component.ts","./src/app/documents/components/document-type-editor/document-type-editor.component.html","./src/app/documents/components/document-uploader-modal/document-uploader-modal.component.ts","./src/app/documents/components/document-uploader-modal/document-uploader-modal.component.html","./src/app/documents/components/document-uploader/document-uploader.component.ts","./src/app/documents/components/document-uploader/document-uploader.component.html","./src/app/documents/components/document-viewer/document-viewer.component.html","./src/app/documents/components/document-viewer/document-viewer.component.ts","./src/app/documents/components/documents-list/documents-list.component.ts","./src/app/documents/components/documents-list/documents-list.component.html","./src/app/documents/documents.module.ts","./src/app/documents/services/document-modal.service.ts","./src/app/documents/services/document.service.ts","./src/app/domain-model/audit-info.class.ts","./src/app/domain-model/company-info.class.ts","./src/app/domain-model/company-observation.classs.ts","./src/app/domain-model/company-opt-in-acceptance-summary.class.ts","./src/app/domain-model/document-observation.class.ts","./src/app/domain-model/observation-summary.ts","./src/app/domain-model/observation.class.ts","./src/app/domain-model/operative-info.class.ts","./src/app/domain-model/operative-observation.class.ts","./src/app/domain-model/training-record-observation.class.ts","./src/app/domain-model/training-record.class.ts","./src/app/eca-breadcrumb/components/eca-breadcrumb/eca-breadcrumb.component.ts","./src/app/eca-breadcrumb/components/eca-breadcrumb/eca-breadcrumb.component.html","./src/app/eca-breadcrumb/eca-breadcrumb.module.ts","./src/app/eca-breadcrumb/services/eca-breadcrumb.service.ts","./src/app/help/help.module.ts","./src/app/help/modals/help-info-modal/help-info-modal.component.ts","./src/app/help/modals/help-info-modal/help-info-modal.component.html","./src/app/help/models/help-consts.ts","./src/app/help/pages/help-page/help-page.component.ts","./src/app/help/pages/help-page/help-page.component.html","./src/app/help/services/help-modal.service.ts","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/main-shell/main-shell.component.ts","./src/app/main-shell/main-shell.component.html","./src/app/message-models/business-unit.class.ts","./src/app/message-models/company-alert-email-settings.class.ts","./src/app/message-models/company-alert-settings.class.ts","./src/app/message-models/company-document-summary.class.ts","./src/app/message-models/company-engagement-history.class.ts","./src/app/message-models/company-job-title.class.ts","./src/app/message-models/decision-requirement.enum.ts","./src/app/message-models/document-entity-type.enum.ts","./src/app/message-models/eca-document-type.class.ts","./src/app/message-models/electrical-work-type.ts","./src/app/message-models/employment-status.class.ts","./src/app/message-models/entity-document-summary.class.ts","./src/app/message-models/extended-job-level.class.ts","./src/app/message-models/extended-risk-info.class.ts","./src/app/message-models/job-level.class.ts","./src/app/message-models/job-title.class.ts","./src/app/message-models/observation-document-summary.class.ts","./src/app/message-models/operative-document-summary.class.ts","./src/app/message-models/operative-type.class.ts","./src/app/message-models/optin-modal-info.class.ts","./src/app/message-models/risk-info.class.ts","./src/app/message-models/risk-matrix-level.enum.ts","./src/app/message-models/training-record-document-summary.class.ts","./src/app/message-models/training-record-type.class.ts","./src/app/message-models/training-type-document-summary.class.ts","./src/app/nav-menu/nav-menu.component.ts","./src/app/nav-menu/nav-menu.component.html","./src/app/observations/components/company-observations/company-observations.component.ts","./src/app/observations/components/company-observations/company-observations.component.html","./src/app/observations/components/create-or-edit-observation-modal/create-or-edit-observation-modal.component.ts","./src/app/observations/components/create-or-edit-observation-modal/create-or-edit-observation-modal.component.html","./src/app/observations/components/observation-details/observation-details.component.ts","./src/app/observations/components/observation-details/observation-details.component.html","./src/app/observations/components/observation-document-details-page/observation-document-details-page.component.ts","./src/app/observations/components/observation-document-details-page/observation-document-details-page.component.html","./src/app/observations/components/observation-form/observation-form.component.ts","./src/app/observations/components/observation-form/observation-form.component.html","./src/app/observations/components/observations-list/observations-list.component.ts","./src/app/observations/components/observations-list/observations-list.component.html","./src/app/observations/components/operatives-observations/operatives-observations.component.ts","./src/app/observations/components/operatives-observations/operatives-observations.component.html","./src/app/observations/components/recent-observations-list/recent-observations-list.component.ts","./src/app/observations/components/recent-observations-list/recent-observations-list.component.html","./src/app/observations/observation.module.ts","./src/app/observations/services/observation-document.service.ts","./src/app/observations/services/observation-modal.service.ts","./src/app/observations/services/observations.service.ts","./src/app/operatives/components/engagement-history-editor/engagement-history-editor.component.ts","./src/app/operatives/components/engagement-history-editor/engagement-history-editor.component.html","./src/app/operatives/components/engagement-history-modal/engagement-history-modal.component.ts","./src/app/operatives/components/engagement-history-modal/engagement-history-modal.component.html","./src/app/operatives/components/operative-details-documents-list/operative-details-documents-list.component.ts","./src/app/operatives/components/operative-details-documents-list/operative-details-documents-list.component.html","./src/app/operatives/components/operative-details/operative-details.component.ts","./src/app/operatives/components/operative-details/operative-details.component.html","./src/app/operatives/components/operative-document-details-page/operative-document-details-page.component.ts","./src/app/operatives/components/operative-document-details-page/operative-document-details-page.component.html","./src/app/operatives/components/operative-documents-page/operative-documents-page.component.ts","./src/app/operatives/components/operative-documents-page/operative-documents-page.component.html","./src/app/operatives/components/operative-documents/operative-documents.component.ts","./src/app/operatives/components/operative-documents/operative-documents.component.html","./src/app/operatives/components/operative-editor-modal/operative-editor-modal.component.ts","./src/app/operatives/components/operative-editor-modal/operative-editor-modal.component.html","./src/app/operatives/components/operative-editor/operative-editor.component.ts","./src/app/operatives/components/operative-editor/operative-editor.component.html","./src/app/operatives/components/operative-history/operative-history.component.ts","./src/app/operatives/components/operative-history/operative-history.component.html","./src/app/operatives/components/operative-list/operative-list.component.ts","./src/app/operatives/components/operative-list/operative-list.component.html","./src/app/operatives/components/operative-observations/operative-observations.component.ts","./src/app/operatives/components/operative-observations/operative-observations.component.html","./src/app/operatives/components/operative-training-records/operative-training-records.component.ts","./src/app/operatives/components/operative-training-records/operative-training-records.component.html","./src/app/operatives/components/operative-upload-form/operative-upload-form.component.ts","./src/app/operatives/components/operative-upload-form/operative-upload-form.component.html","./src/app/operatives/components/operative-upload/operative-upload.component.ts","./src/app/operatives/components/operative-upload/operative-upload.component.html","./src/app/operatives/components/operatives-leave-confirm/operatives-leave-confirm.component.ts","./src/app/operatives/components/operatives-leave-confirm/operatives-leave-confirm.component.html","./src/app/operatives/operatives.module.ts","./src/app/operatives/services/engagement-modal.service.ts","./src/app/operatives/services/operative-document.service.ts","./src/app/operatives/services/operative-modal.service.ts","./src/app/operatives/services/operatives.service.ts","./src/app/opt-in-guard/company-opt-in.guard.ts","./src/app/services/audit.service.ts","./src/app/services/document-type.service.ts","./src/app/services/error-handling.service.ts","./src/app/services/list-data.service.ts","./src/app/services/risk-help-modal.service.ts","./src/app/services/settings.service.ts","./src/app/setting/business-units/business-unit-assign/business-unit-assign.component.ts","./src/app/setting/business-units/business-unit-assign/business-unit-assign.component.html","./src/app/setting/business-units/business-unit-editor/business-unit-editor.component.ts","./src/app/setting/business-units/business-unit-editor/business-unit-editor.component.html","./src/app/setting/business-units/business-unit-list/business-unit-list.component.ts","./src/app/setting/business-units/business-unit-list/business-unit-list.component.html","./src/app/setting/job-role/components/company-job-role-editor/company-job-role-editor.component.ts","./src/app/setting/job-role/components/company-job-role-editor/company-job-role-editor.component.html","./src/app/setting/job-role/components/company-job-role-modal/company-job-role-modal.component.ts","./src/app/setting/job-role/components/company-job-role-modal/company-job-role-modal.component.html","./src/app/setting/job-role/components/job-role-list/job-role-list.component.ts","./src/app/setting/job-role/components/job-role-list/job-role-list.component.html","./src/app/setting/job-role/services/company-job-role-modal.service.ts","./src/app/setting/job-role/services/company-job-role.service.ts","./src/app/shared/components/eca-app-version/eca-app-version.component.ts","./src/app/shared/components/eca-app-version/eca-app-version.component.html","./src/app/shared/components/eca-checkbox/eca-checkbox.component.ts","./src/app/shared/components/eca-checkbox/eca-checkbox.component.html","./src/app/shared/components/eca-confirm-modal/eca-confirm-modal.component.ts","./src/app/shared/components/eca-confirm-modal/eca-confirm-modal.component.html","./src/app/shared/components/eca-date-picker/eca-date-picker.component.ts","./src/app/shared/components/eca-date-picker/eca-date-picker.component.html","./src/app/shared/components/eca-ghost-btn/eca-ghost-btn.component.ts","./src/app/shared/components/eca-ghost-btn/eca-ghost-btn.component.html","./src/app/shared/components/eca-help-alert/eca-help-alert.component.ts","./src/app/shared/components/eca-help-alert/eca-help-alert.component.html","./src/app/shared/components/eca-html-editor/eca-html-editor.component.ts","./src/app/shared/components/eca-html-editor/eca-html-editor.component.html","./src/app/shared/components/eca-image-viewer/eca-image-viewer.component.ts","./src/app/shared/components/eca-image-viewer/eca-image-viewer.component.html","./src/app/shared/components/eca-input-guide/eca-input-guide.component.html","./src/app/shared/components/eca-input-guide/eca-input-guide.component.ts","./src/app/shared/components/eca-input/eca-input.component.ts","./src/app/shared/components/eca-input/eca-input.component.html","./src/app/shared/components/eca-marquee/eca-marquee.component.ts","./src/app/shared/components/eca-marquee/eca-marquee.component.html","./src/app/shared/components/eca-modal-host/eca-modal-host.component.ts","./src/app/shared/components/eca-modal-host/eca-modal-host.component.html","./src/app/shared/components/eca-question-icon/eca-question-icon.component.ts","./src/app/shared/components/eca-question-icon/eca-question-icon.component.html","./src/app/shared/components/eca-row-menu/eca-row-menu.component.ts","./src/app/shared/components/eca-row-menu/eca-row-menu.component.html","./src/app/shared/components/eca-select/eca-select.component.ts","./src/app/shared/components/eca-select/eca-select.component.html","./src/app/shared/models/confirm-delete-modal-options.class.ts","./src/app/shared/models/confirm-info-modal-options.class.ts","./src/app/shared/models/yesno-modal-options.class.ts","./src/app/shared/services/eca-confirm-process.service.ts","./src/app/shared/services/eca-dynamic-modal-service.ts","./src/app/shared/shared.module.ts","./src/app/training-records/components/training-record-details/training-record-details.component.ts","./src/app/training-records/components/training-record-details/training-record-details.component.html","./src/app/training-records/components/training-record-document-details-page/training-record-document-details-page.component.ts","./src/app/training-records/components/training-record-document-details-page/training-record-document-details-page.component.html","./src/app/training-records/components/training-record-documents-page/training-record-documents-page.component.ts","./src/app/training-records/components/training-record-documents-page/training-record-documents-page.component.html","./src/app/training-records/components/training-record-documents/training-record-documents.component.ts","./src/app/training-records/components/training-record-documents/training-record-documents.component.html","./src/app/training-records/components/training-record-editor-modal/training-record-editor-modal.component.ts","./src/app/training-records/components/training-record-editor-modal/training-record-editor-modal.component.html","./src/app/training-records/components/training-record-editor/training-record-editor.component.ts","./src/app/training-records/components/training-record-editor/training-record-editor.component.html","./src/app/training-records/components/training-type-document-details-page/training-type-document-details-page.component.ts","./src/app/training-records/components/training-type-document-details-page/training-type-document-details-page.component.html","./src/app/training-records/components/training-type-editor/training-type-editor.component.ts","./src/app/training-records/components/training-type-editor/training-type-editor.component.html","./src/app/training-records/services/training-record-document.service.ts","./src/app/training-records/services/training-record-modal.service.ts","./src/app/training-records/services/training-records.service.ts","./src/app/training-records/services/training-type-document.service.ts","./src/app/training-records/services/training-type.service.ts","./src/app/training-records/training-records.module.ts","./src/app/users/services/user.service.ts","./src/environments/environment.ts","./src/main.ts","ignored|C:\\Git\\ECA_SCC - eCOMS\\src\\Eca.Ecoms.Web\\ClientApp\\node_modules\\xlsx-js-style\\dist|fs","ignored|C:\\Git\\ECA_SCC - eCOMS\\src\\Eca.Ecoms.Web\\ClientApp\\node_modules\\xlsx-js-style\\dist|stream"],"sourcesContent":["\r\n\r\n\r\nexport const ApplicationName = 'Eca.Ecoms.Web';\r\n\r\nexport const ReturnUrlType = 'returnUrl';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: ReturnUrlType,\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nlet applicationPaths: ApplicationPathsType = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `_configuration/${ApplicationName}`,\r\n Login: `authentication/${LoginActions.Login}`,\r\n LoginFailed: `authentication/${LoginActions.LoginFailed}`,\r\n LoginCallback: `authentication/${LoginActions.LoginCallback}`,\r\n Register: `authentication/${LoginActions.Register}`,\r\n Profile: `authentication/${LoginActions.Profile}`,\r\n LogOut: `authentication/${LogoutActions.Logout}`,\r\n LoggedOut: `authentication/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `authentication/${LogoutActions.LogoutCallback}`,\r\n LoginPathComponents: [],\r\n LoginFailedPathComponents: [],\r\n LoginCallbackPathComponents: [],\r\n RegisterPathComponents: [],\r\n ProfilePathComponents: [],\r\n LogOutPathComponents: [],\r\n LoggedOutPathComponents: [],\r\n LogOutCallbackPathComponents: [],\r\n IdentityRegisterPath: 'Identity/Account/Register',\r\n IdentityManagePath: 'Identity/Account/Manage'\r\n};\r\n\r\napplicationPaths = {\r\n ...applicationPaths,\r\n LoginPathComponents: applicationPaths.Login.split('/'),\r\n LoginFailedPathComponents: applicationPaths.LoginFailed.split('/'),\r\n RegisterPathComponents: applicationPaths.Register.split('/'),\r\n ProfilePathComponents: applicationPaths.Profile.split('/'),\r\n LogOutPathComponents: applicationPaths.LogOut.split('/'),\r\n LoggedOutPathComponents: applicationPaths.LoggedOut.split('/'),\r\n LogOutCallbackPathComponents: applicationPaths.LogOutCallback.split('/')\r\n};\r\n\r\ninterface ApplicationPathsType {\r\n readonly DefaultLoginRedirectPath: string;\r\n readonly ApiAuthorizationClientConfigurationUrl: string;\r\n readonly Login: string;\r\n readonly LoginFailed: string;\r\n readonly LoginCallback: string;\r\n readonly Register: string;\r\n readonly Profile: string;\r\n readonly LogOut: string;\r\n readonly LoggedOut: string;\r\n readonly LogOutCallback: string;\r\n readonly LoginPathComponents: string [];\r\n readonly LoginFailedPathComponents: string [];\r\n readonly LoginCallbackPathComponents: string [];\r\n readonly RegisterPathComponents: string [];\r\n readonly ProfilePathComponents: string [];\r\n readonly LogOutPathComponents: string [];\r\n readonly LoggedOutPathComponents: string [];\r\n readonly LogOutCallbackPathComponents: string [];\r\n readonly IdentityRegisterPath: string;\r\n readonly IdentityManagePath: string;\r\n}\r\n\r\nexport const ApplicationPaths: ApplicationPathsType = applicationPaths;\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginMenuComponent } from './login-menu/login-menu.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { LogoutComponent } from './logout/logout.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ApplicationPaths } from './api-authorization.constants';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule.forChild(\r\n [\r\n { path: ApplicationPaths.Register, component: LoginComponent },\r\n { path: ApplicationPaths.Profile, component: LoginComponent },\r\n { path: ApplicationPaths.Login, component: LoginComponent },\r\n { path: ApplicationPaths.LoginFailed, component: LoginComponent },\r\n { path: ApplicationPaths.LoginCallback, component: LoginComponent },\r\n { path: ApplicationPaths.LogOut, component: LogoutComponent },\r\n { path: ApplicationPaths.LoggedOut, component: LogoutComponent },\r\n { path: ApplicationPaths.LogOutCallback, component: LogoutComponent }\r\n ]\r\n )\r\n ],\r\n declarations: [LoginMenuComponent, LoginComponent, LogoutComponent],\r\n exports: [LoginMenuComponent, LoginComponent, LogoutComponent]\r\n})\r\nexport class ApiAuthorizationModule { }\r\n","import {Injectable} from '@angular/core';\r\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router} from '@angular/router';\r\nimport {Observable} from 'rxjs';\r\nimport {AuthorizeService} from './authorize.service';\r\nimport {tap} from 'rxjs/operators';\r\nimport {ApplicationPaths, QueryParameterNames} from './api-authorization.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorizeGuard implements CanActivate {\r\n constructor(private authorize: AuthorizeService, private router: Router) {\r\n }\r\n\r\n canActivate(\r\n _next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean {\r\n return this.authorize.isAuthenticated()\r\n .pipe(tap(async isAuthenticated => await this.handleAuthorization(isAuthenticated, state)));\r\n }\r\n\r\n private async handleAuthorization(isAuthenticated: boolean, state: RouterStateSnapshot): Promise {\r\n if (!isAuthenticated) {\r\n await this.router.navigate(ApplicationPaths.LoginPathComponents, {\r\n queryParams: {\r\n [QueryParameterNames.ReturnUrl]: state.url\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthorizeService } from './authorize.service';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorizeInterceptor implements HttpInterceptor {\r\n constructor(private authorize: AuthorizeService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return this.authorize.getAccessToken()\r\n .pipe(mergeMap(token => this.processRequestWithToken(token, req, next)));\r\n }\r\n\r\n // Checks if there is an access_token available in the authorize service\r\n // and adds it to the request in case it's targeted at the same origin as the\r\n // single page application.\r\n private processRequestWithToken(token: string, req: HttpRequest, next: HttpHandler) {\r\n if (!!token && this.isSameOriginUrl(req)) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n });\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n\r\n private isSameOriginUrl(req: any) {\r\n // It's an absolute url with the same origin.\r\n if (req.url.startsWith(`${window.location.origin}/`)) {\r\n return true;\r\n }\r\n\r\n // It's a protocol relative url with the same origin.\r\n // For example: //www.example.com/api/Products\r\n if (req.url.startsWith(`//${window.location.host}/`)) {\r\n return true;\r\n }\r\n\r\n // It's a relative url like /api/Products\r\n if (/^\\/[^\\/].*/.test(req.url)) {\r\n return true;\r\n }\r\n\r\n // It's an absolute or protocol relative url that\r\n // doesn't have the same origin.\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { User, UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { BehaviorSubject, concat, from, Observable } from 'rxjs';\r\nimport { filter, map, mergeMap, take, tap } from 'rxjs/operators';\r\nimport { ApplicationPaths, ApplicationName } from './api-authorization.constants';\r\n\r\nexport type IAuthenticationResult =\r\n SuccessAuthenticationResult |\r\n FailureAuthenticationResult |\r\n RedirectAuthenticationResult;\r\n\r\nexport interface SuccessAuthenticationResult {\r\n status: AuthenticationResultStatus.Success;\r\n state: any;\r\n}\r\n\r\nexport interface FailureAuthenticationResult {\r\n status: AuthenticationResultStatus.Fail;\r\n message: string;\r\n}\r\n\r\nexport interface RedirectAuthenticationResult {\r\n status: AuthenticationResultStatus.Redirect;\r\n}\r\n\r\nexport enum AuthenticationResultStatus {\r\n Success,\r\n Redirect,\r\n Fail\r\n}\r\n\r\nexport interface IUser {\r\n name?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorizeService {\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n\r\n private popUpDisabled = true;\r\n private userManager: UserManager;\r\n private userSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public isAuthenticated(): Observable {\r\n return this.getUser().pipe(map(u => !!u));\r\n }\r\n\r\n public getUser(): Observable {\r\n return concat(\r\n this.userSubject.pipe(take(1), filter(u => !!u)),\r\n this.getUserFromStorage().pipe(filter(u => !!u), tap(u => this.userSubject.next(u))),\r\n this.userSubject.asObservable());\r\n }\r\n\r\n public getAccessToken(): Observable {\r\n return from(this.ensureUserManagerInitialized())\r\n .pipe(mergeMap(() => from(this.userManager.getUser())),\r\n map(user => user && user.access_token));\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n public async signIn(state: any): Promise {\r\n await this.ensureUserManagerInitialized();\r\n let user: User = null;\r\n try {\r\n user = await this.userManager.signinSilent(this.createArguments());\r\n this.userSubject.next(user.profile);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log('Silent authentication error: ', silentError);\r\n\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log('Redirect authentication error: ', redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n\r\n public async completeSignIn(url: string): Promise {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.userSubject.next(user && user.profile);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n public async signOut(state: any): Promise {\r\n try {\r\n if (this.popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'authorize.service.ts:AuthorizeService.popupDisabled\\' to false to enable it.');\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.userSubject.next(null);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log('Popup signout error: ', popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log('Redirect signout error: ', redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n public async completeSignOut(url: string): Promise {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.userSubject.next(null);\r\n return this.success(response && response.state);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n private createArguments(state?: any): any {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n private error(message: string): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n private success(state: any): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n private redirect(): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n private async ensureUserManagerInitialized(): Promise {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n const response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n const settings: any = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.userSubject.next(null);\r\n });\r\n }\r\n\r\n private getUserFromStorage(): Observable {\r\n return from(this.ensureUserManagerInitialized())\r\n .pipe(\r\n mergeMap(() => this.userManager.getUser()),\r\n map(u => u && u.profile));\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthorizeService } from '../authorize.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-login-menu',\r\n templateUrl: './login-menu.component.html',\r\n styleUrls: ['./login-menu.component.css']\r\n})\r\nexport class LoginMenuComponent implements OnInit {\r\n public isAuthenticated: Observable;\r\n public userName: Observable;\r\n\r\n constructor(private authorizeService: AuthorizeService) { }\r\n\r\n ngOnInit() {\r\n this.isAuthenticated = this.authorizeService.isAuthenticated();\r\n this.userName = this.authorizeService.getUser().pipe(map(u => u && u.name));\r\n }\r\n}\r\n","\r\n\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {AuthorizeService, AuthenticationResultStatus} from '../authorize.service';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {LoginActions, QueryParameterNames, ApplicationPaths, ReturnUrlType} from '../api-authorization.constants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n public message = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private authorizeService: AuthorizeService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) {\r\n }\r\n\r\n async ngOnInit() {\r\n const action = this.activatedRoute.snapshot.url[1];\r\n switch (action.path) {\r\n case LoginActions.Login:\r\n await this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n await this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const message = this.activatedRoute.snapshot.queryParamMap.get(QueryParameterNames.Message);\r\n this.message.next(message);\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n\r\n private async login(returnUrl: string): Promise {\r\n const state: INavigationState = {returnUrl};\r\n const result = await this.authorizeService.signIn(state);\r\n this.message.next(undefined);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n await this.router.navigate(ApplicationPaths.LoginFailedPathComponents, {\r\n queryParams: {[QueryParameterNames.Message]: result.message}\r\n });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${(result as any).status}.`);\r\n }\r\n }\r\n\r\n private async processLoginCallback(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as completeSignIn never redirects.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n // If anything fails, redirect back to login path...\r\n await this.router.navigateByUrl(ApplicationPaths.Login);\r\n break;\r\n }\r\n }\r\n\r\n private redirectToRegister(): any {\r\n this.redirectToApiAuthorizationPath(\r\n `${ApplicationPaths.IdentityRegisterPath}?returnUrl=${encodeURI('/' + ApplicationPaths.Login)}`);\r\n }\r\n\r\n private redirectToProfile(): void {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true\r\n });\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is coming from the query string, check that is either\r\n // a relative url or an absolute url\r\n\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n ApplicationPaths.DefaultLoginRedirectPath;\r\n }\r\n\r\n private redirectToApiAuthorizationPath(apiAuthorizationPath: string) {\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser they get sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n const redirectUrl = `${window.location.origin}/${apiAuthorizationPath}`;\r\n window.location.replace(redirectUrl);\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","

{{ message | async }}

","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationResultStatus, AuthorizeService } from '../authorize.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { take } from 'rxjs/operators';\r\nimport { LogoutActions, ApplicationPaths, ReturnUrlType } from '../api-authorization.constants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.css']\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n public message = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private authorizeService: AuthorizeService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n const action = this.activatedRoute.snapshot.url[1];\r\n switch (action.path) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.local) {\r\n await this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.message.next('The logout was not initiated from within the page.');\r\n }\r\n\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n await this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.message.next('You successfully logged out!');\r\n await this.navigateToReturnUrl(ApplicationPaths.Login);\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n private async logout(returnUrl: string): Promise {\r\n const state: INavigationState = { returnUrl };\r\n const isauthenticated = await this.authorizeService.isAuthenticated().pipe(\r\n take(1)\r\n ).toPromise();\r\n if (isauthenticated) {\r\n const result = await this.authorizeService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n } else {\r\n await this.navigateToReturnUrl(ApplicationPaths.Login);\r\n this.message.next('You successfully logged out!');\r\n }\r\n }\r\n\r\n private async processLogoutCallback(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true\r\n });\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is coming from the query string, check that is either\r\n // a relative url or an absolute url\r\n if (fromQuery &&\r\n !(fromQuery.startsWith(`${window.location.origin}/`) ||\r\n /\\/[^\\/].*/.test(fromQuery))) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n ApplicationPaths.LoggedOut;\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","

{{ message | async }}

","import { Component, Input } from '@angular/core';\r\nimport { ExportExcelService } from '../../../common/services/export-excel.service';\r\nimport { AuditInfo } from '../../../domain-model/audit-info.class';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { AuditService } from '../../../services/audit.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-audit-history',\r\n templateUrl: './audit-history.component.html',\r\n styleUrls: ['./audit-history.component.scss']\r\n})\r\nexport class AuditHistoryComponent {\r\n @Input() companyId: string;\r\n\r\n loggedInUser: IUserInfo;\r\n auditHistory: AuditInfo[] = [];\r\n loadingAuditHistory: boolean = true;\r\n columns: any[];\r\n tableColumns: any[];\r\n exportColumns: any[];\r\n\r\n constructor(private helpService: HelpModalService,\r\n private exportExcelService: ExportExcelService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private auditService: AuditService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private userService: OurUserService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n const auditBreadcrumbs = new Array();\r\n auditBreadcrumbs.push({ label: 'Audit History', iconName: 'history' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(auditBreadcrumbs);\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n this.initialiseColumnDataTableColumns();\r\n this.loadAuditHistory();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n \r\n\r\n initialiseColumnDataTableColumns() {\r\n this.columns = null;\r\n this.columns = [\r\n { field: 'auditDate', header: 'Date', type: 'date' },\r\n { field: 'auditAction', header: 'Action', type: 'text' },\r\n { field: 'updatedBy', header: 'User', type: 'text' },\r\n { field: 'operation', header: 'Operation', type: 'text' }\r\n //{ field: 'auditString', header: 'Audit String', type: 'text' }\r\n ];\r\n }\r\n\r\n loadAuditHistory() {\r\n this.auditService.getAuditHistory(this.companyId).subscribe(allAuditData => {\r\n this.auditHistory = [];\r\n allAuditData?.forEach(auditData => this.auditHistory.push(new AuditInfo(auditData)));\r\n this.loadingAuditHistory = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n openAuditHistoryHelp() {\r\n this.helpService.openHelpModal(HelpConsts.AuditHistoryHelp);\r\n }\r\n\r\n exportToExcel() {\r\n //TODO: Not implemented\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Audit History \r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 5\"\r\n scrollHeight=\"500px\" [responsive]=\"true\" [columns]=\"columns\" [totalRecords]=\"auditHistory?.length\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ auditHistory.length }}\r\n Audit History\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n Action\r\n \r\n \r\n \r\n User\r\n \r\n \r\n \r\n Operation\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \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, ViewEncapsulation } from '@angular/core';\r\nimport { IOperative } from '../../../message-models/operative.interface';\r\nimport { TrainingTypeService } from '../../../training-records/services/training-type.service';\r\nimport { TrainingRecordsService } from '../../../training-records/services/training-records.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TrainingType } from '../../../message-models/training-record-type.class';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\nimport { CompanyService } from '../../../company/services/company.service';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { TrainingTypeDocumentService } from '../../../training-records/services/training-type-document.service';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { EcaConfirmDeleteModalOptions } from \"../../../shared/models/confirm-delete-modal-options.class\";\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\n\r\n@Component({\r\n selector: 'app-company-training-course-details',\r\n templateUrl: './company-training-course-details.component.html',\r\n styleUrls: ['./company-training-course-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class TrainingCourseDetailsComponent implements OnInit {\r\n @ViewChild('ttDetailsContainerComponent') ttDetailsContainerComponent: DetailContainerComponent;\r\n editingDetails: boolean;\r\n private trainingTypeId: string;\r\n trainingTypes: ITrainingType[] = [];\r\n trainingType: TrainingType = new TrainingType({} as ITrainingType);\r\n trainingTypeDocuments: IEntityDocumentSummary[] = [];\r\n public loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n tempTrainingType: TrainingType = new TrainingType();\r\n isTrainingTypeLoading: boolean = false;\r\n saveAttempted: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private trainingTypeService: TrainingTypeService,\r\n private trainingRecordsService: TrainingRecordsService,\r\n private trainingTypeDocumentService: TrainingTypeDocumentService,\r\n private companyService: CompanyService,\r\n private helpService: HelpModalService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private documentModalService: DocumentModalService,\r\n private documentService: DocumentService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private alertsService: AlertsService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private userService: OurUserService,\r\n private router: Router,\r\n private errorHandlingService: ErrorHandlingService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.trainingTypeId = this.route.snapshot.params.trainingTypeId;\r\n this.isTrainingTypeLoading = true;\r\n this.userService.getLoggedInUser().subscribe(() => {\r\n \r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid || this.companyId !== undefined) {\r\n this.trainingRecordsService.getTrainingTypesForId(this.trainingTypeId).subscribe(trainingType => {\r\n this.trainingType = new TrainingType(trainingType);\r\n this.tempTrainingType = new TrainingType(this.trainingType);\r\n this.getTrainingTypeDocuments();\r\n this.isTrainingTypeLoading = false;\r\n \r\n })\r\n }\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n getTrainingTypeDocuments(includeExpired: boolean = false) {\r\n this.trainingTypeDocumentService.getAllTrainingTypeDocumentSummaries(this.companyId, this.trainingType.id, includeExpired).subscribe(trainingTypeDocuments => {\r\n this.trainingTypeDocuments = [];\r\n trainingTypeDocuments.forEach(doc => this.trainingTypeDocuments.push(doc));\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n editDetails() {\r\n if (this.ttDetailsContainerComponent.isCollapsed) {\r\n //this.trDetailsContainerComponent.expandClicked();\r\n this.ttDetailsContainerComponent.panelToggle();\r\n }\r\n this.editingDetails = true;\r\n // this.tempTrainingRecord = new TrainingRecord(this.trainingRecord);\r\n }\r\n\r\n cancelEdit() {\r\n this.tempTrainingType = new TrainingType(this.trainingType as ITrainingType);\r\n this.editingDetails = false;\r\n }\r\n\r\n saveDetails() {\r\n if (this.tempTrainingType.isValid) {\r\n this.isTrainingTypeLoading = true;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(new TrainingType(this.tempTrainingType)).subscribe(trainingType => {\r\n this.trainingType = new TrainingType(trainingType);\r\n this.tempTrainingType = new TrainingType(this.trainingType as ITrainingType);\r\n this.editingDetails = false;\r\n this.isTrainingTypeLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n\r\n viewTrainingTypeDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.router.navigate(['training-course-document', entityDocumentSummary.documentId]);\r\n }\r\n downloadTrainingTypeDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(entityDocumentSummary, true);\r\n }\r\n\r\n deleteTrainingTypeDocumentClick(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to remove this document?',\r\n 'Remove ' + entityDocumentSummary.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.deleteTrainingTypeDocument(entityDocumentSummary);\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteTrainingTypeDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.trainingTypeDocumentService.deleteTrainingTypeDocument(entityDocumentSummary.documentId, this.companyId).subscribe(\r\n result => {\r\n if (result) {\r\n const documentIndex = this.trainingTypeDocuments.findIndex(c => c.documentId !== entityDocumentSummary.documentId);\r\n this.trainingTypeDocuments.splice(documentIndex, 1);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n addTrainingTypeDocument() {\r\n this.documentModalService.openDocumentUploaderModal(null, DocumentEntityType.trainingCourse, 'Add Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('TrainingTypeId', this.trainingType.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n\r\n this.trainingTypeDocumentService\r\n .createOrUpdateTrainingTypeDocument(documentUploadRequest).subscribe(trainingTypeSummary => {\r\n this.trainingTypeDocuments.unshift(trainingTypeSummary);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n console.log(this.tempTrainingType);\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Training Courses', iconName: 'users-class', routeLink: '/training-courses' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: 'Course Detail', iconName: 'users-class' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Details for: {{trainingType.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 Training Course Details\r\n \r\n\r\n \r\n Training Course Details\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \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, ViewEncapsulation } from '@angular/core';\r\nimport { TrainingType } from '../../../message-models/training-record-type.class';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\nimport { TrainingRecordsService } from '../../../training-records/services/training-records.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IAllowedOperations, IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { ExportExcelService } from '../../../common/services/export-excel.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { TrainingCourseEditorComponent } from '../../training-course-editor/training-course-editor.component';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { EcaDynamicModalService } from \"../../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../../shared/models/eca-dialog-ref.interface';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { Router } from '@angular/router';\r\nimport { TrainingTypeDocumentService } from '../../../training-records/services/training-type-document.service';\r\nimport { ListDataService } from '../../../services/list-data.service';\r\nimport { ITrainingTypeCategoryInfo } from '../../../message-models/trainning-record-category.interface';\r\nimport { EcaConfirmInfoModalOptions } from '../../../shared/models/confirm-info-modal-options.class';\r\nimport { ITrainingRecordSummary } from '../../../message-models/training-record-summary.interface';\r\n\r\n@Component({\r\n selector: 'app-company-training-courses',\r\n templateUrl: './company-training-courses.component.html',\r\n styleUrls: ['./company-training-courses.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CompanyTrainingCoursesComponent implements OnInit {\r\n private loggedInUser: IUserInfo;\r\n private modalRef: IEcaDialogRef;\r\n trainingTypes: TrainingType[] = [];\r\n public companyId: string = consts.emptyGuid;\r\n public operativeUpdateOperations: IAllowedOperations = {} as IAllowedOperations;\r\n allTrainingTypeCategory: ITrainingTypeCategoryInfo[] = [];\r\n selectTrainingTypeCategory: ITrainingTypeCategoryInfo;\r\n loggedInUserSubscription: Subscription;\r\n canAddItem: boolean = true;\r\n coursesLoading: boolean = false;\r\n isOnMobile = false;\r\n columns: any[];\r\n trainingTypesListToExport: any[] = [];\r\n rowMenuItems: MenuItem[];\r\n companyDocumentSummaries: IDocumentSummaryInfo[] = [];\r\n newTrainingTypeId: string;\r\n isActive = false;\r\n\r\n trainingRecords: ITrainingRecordSummary[] = [];\r\n\r\n constructor(private router: Router,\r\n private trainingRecordsService: TrainingRecordsService,\r\n private exportExcelService: ExportExcelService,\r\n private userService: OurUserService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private helpService: HelpModalService,\r\n private datePipe: DatePipe,\r\n private ecaDynamicModalService: EcaDynamicModalService,\r\n private documentModalService: DocumentModalService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private alertsService: AlertsService,\r\n private listDataService: ListDataService,\r\n private trainingTypeDocumentService: TrainingTypeDocumentService, ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.listDataService.getAllTrainTypeCategory().subscribe({\r\n next: response => {\r\n this.allTrainingTypeCategory = response;\r\n }\r\n });\r\n\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n if (this.loggedInUser?.operativeOperations?.canUpdate) {\r\n this.operativeUpdateOperations = { canInsert: true, canUpdate: true, canRetrieve: true, canDelete: true } as IAllowedOperations;\r\n } else {\r\n this.operativeUpdateOperations = {} as IAllowedOperations;\r\n }\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.loggedInUser?.operativeOperations?.canUpdate) {\r\n this.operativeUpdateOperations = { canInsert: true, canUpdate: true, canRetrieve: true, canDelete: true } as IAllowedOperations;\r\n } else {\r\n this.operativeUpdateOperations = {} as IAllowedOperations;\r\n }\r\n if (this.companyId !== consts.emptyGuid && this.companyId !== undefined) {\r\n this.getAllTrainingTypes();\r\n this.getAllTrainingRecordsForComapny();\r\n }\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.columns = [{ field: 'name', header: 'Course Name', type: 'text' },\r\n { field: 'description', header: 'Course Description', type: 'html' },\r\n { field: 'trainingTypeCategoryName', header: 'Course Category', type: 'text' },\r\n { field: 'heldOn', header: 'Held On', type: 'date' },\r\n { field: 'validTo', header: 'Valid To', type: 'date' },\r\n ];\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n visible: true,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.confirmDeleteItem($event)\r\n }\r\n ]\r\n\r\n this.populateBreadcrumbs();\r\n\r\n \r\n\r\n\r\n }\r\n\r\n private getAllTrainingTypes() {\r\n this.coursesLoading = true;\r\n this.trainingRecordsService.getTrainingTypesForCompany(this.companyId, false).subscribe(trainingTypesResult => {\r\n this.trainingTypes = [];\r\n this.coursesLoading = false;\r\n trainingTypesResult.forEach(t => {\r\n t.trainingTypeCategoryName = this.allTrainingTypeCategory.find(x => x.id === t.trainingTypeCategoryId)?.name;\r\n\r\n this.trainingTypes.push(new TrainingType(t));\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n\r\n addNewItemClick() {\r\n let trainingType = new TrainingType();\r\n trainingType.companyId = this.loggedInUser?.companyId;\r\n this.openEditor(trainingType, 'Add New Training Course');\r\n }\r\n\r\n editItemClick(item: ITrainingType) {\r\n let trainingType = new TrainingType(item);\r\n //this.openEditor(trainingType, 'Edit Existing Training Course - ' + item.name);\r\n this.router.navigate([\"/training-course/\" + item.id])\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n\r\n operativeBreadCrumbs.push({\r\n label: 'Training Courses',\r\n iconName: 'users-class'\r\n } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private openEditor(trainingType: TrainingType, heading: string) {\r\n let config = {\r\n styleClass: 'modal-dialog-scrollable modal-lg',\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading: heading,\r\n trainingType: trainingType\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.modalRef = this.ecaDynamicModalService.openDialog(TrainingCourseEditorComponent, config);\r\n this.modalRef.content.choiceMade.subscribe(result => {\r\n if (result) {\r\n this.coursesLoading = true;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(result).subscribe(updatedJobTitle => {\r\n if (updatedJobTitle) {\r\n this.getAllTrainingTypes();\r\n this.coursesLoading = false;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n this.modalRef.content.saveNewTrainingTypeDocumentRequested.subscribe(result => {\r\n if (result) {\r\n this.coursesLoading = true;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(result).subscribe(updatedTrainingType => {\r\n if (updatedTrainingType) {\r\n this.getAllTrainingTypes();\r\n this.newTrainingTypeId = updatedTrainingType.id;\r\n this.coursesLoading = false;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.documentModalService.openDocumentUploaderModal({ documentCreationDate: result.HeldOn } as IEntityDocumentSummary\r\n , DocumentEntityType.trainingCourse, 'Add new Document for Training Course')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close()\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n documentUploadRequest.append('TrainingTypeId', this.newTrainingTypeId);\r\n this.trainingTypeDocumentService.createOrUpdateTrainingTypeDocument(documentUploadRequest).subscribe(trainingTypeDocumentSummary => {\r\n //this.getCompanyDocumentSummaries(this.companyId);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }); \r\n });\r\n documentModalRef.content.cancelClicked?.subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n }\r\n \r\n confirmDeleteItem(trainingType: ITrainingType) {\r\n\r\n this.isActive = this.isActiveTrainingType(trainingType);\r\n if (!this.isActive) {\r\n this.confirmProcessService.openConfirmProcessModal('

Are you SURE you wish to DELETE this training course?

', 'Confirm Deletion', new EcaConfirmDeleteModalOptions())\r\n .subscribe(result => {\r\n if (result) {\r\n this.coursesLoading = true;\r\n this.trainingRecordsService.deleteTrainingType(trainingType).subscribe(result => {\r\n this.getAllTrainingTypes();\r\n this.coursesLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n } else {\r\n this.confirmProcessService.openConfirmProcessModal('

Training Course can only be deleted if they are not in use

', 'Remove Training Course'\r\n , new EcaConfirmInfoModalOptions()).subscribe({});\r\n }\r\n\r\n //this.confirmProcessService.openConfirmProcessModal('

Are you SURE you wish to DELETE this training course?

This will not remove it from existing operative training records.

', 'Confirm Deletion', new EcaConfirmDeleteModalOptions())\r\n // .subscribe(result => {\r\n // if (result) {\r\n // this.coursesLoading = true;\r\n // this.trainingRecordsService.deleteTrainingType(trainingType).subscribe(result => {\r\n // this.getAllTrainingTypes();\r\n // this.coursesLoading = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // }\r\n // });\r\n }\r\n\r\n openCompanyTrainingCoursesHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanyTrainingCoursesHelp);\r\n }\r\n\r\n exportToExcel() {\r\n this.trainingTypesListToExport = [];\r\n this.trainingTypes?.forEach(element => {\r\n let html = element?.description;\r\n let div = document.createElement('div');\r\n div.innerHTML = html;\r\n let text = div.textContent || div.innerText || '';\r\n const tempObject = {\r\n name: element?.name,\r\n description: text,\r\n heldOn: this.datePipe.transform(element.heldOn?.dateTime, 'dd/MM/yyyy'),\r\n validTo: this.datePipe.transform(element.validTo?.dateTime, 'dd/MM/yyyy'),\r\n };\r\n this.trainingTypesListToExport.push(tempObject);\r\n });\r\n this.exportExcelService.exportToExcel(this.trainingTypesListToExport, this.columns, 'Training Courses');\r\n }\r\n\r\n private getAllTrainingRecordsForComapny(){\r\n this.trainingRecordsService.getTrainingRecordSummariesForCompany(this.companyId).subscribe(trainingRecords => {\r\n this.trainingRecords = trainingRecords;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n}\r\n\r\n\r\n isActiveTrainingType(trainingType: ITrainingType) {\r\n var list = this.trainingRecords.find(o => o.trainingTypeId == trainingType.id);\r\n if (list != null) {\r\n return true;\r\n }\r\n else return false;\r\n }\r\n}\r\n","
\r\n \r\n \r\n

\r\n Training Courses \r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n 5\" scrollHeight=\"500px\" dataKey=\"id\"\r\n [globalFilterFields]=\"['name', 'heldOn.dateTime','description','validTo.dateTime','trainingTypeCategory.name']\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ trainingTypes.length }}\r\n Training Courses\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Course Name\r\n \r\n \r\n \r\n Course Description\r\n \r\n \r\n \r\n Course Category\r\n \r\n \r\n\r\n \r\n Held On\r\n \r\n \r\n \r\n Valid To\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \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 { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { IRiskInfo } from '../../../message-models/risk-info.interface';\r\nimport { IJobLevelInfo } from '../../../message-models/job-level.interface';\r\nimport { IRiskMatrixEntry } from '../../../message-models/risk-matrix-entry.interface';\r\nimport { OperativeInfo } from '../../../domain-model/operative-info.class';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\n\r\n@Component({\r\n selector: 'app-risk-help',\r\n templateUrl: './risk-help.component.html',\r\n styleUrls: ['./risk-help.component.scss']\r\n})\r\n\r\nexport class RiskHelpComponent implements OnInit {\r\n @Input() riskMatrixEntries: IRiskMatrixEntry[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() operatives: OperativeInfo[] = [];\r\n @Input() asOfDate = '';\r\n @Input() heading: string = \"EAS Guidance\";\r\n @Input() companyName = '';\r\n @Input() isQsRole = false;\r\n showingHelp = false;\r\n easGuidanceHelpText: string = HelpConsts.EasGuidance.sections[0].body;\r\n isHV = false;\r\n lowVString = \"EAS\";\r\n lowVBS7671 = \"covered by BS 7671\";\r\n\r\n constructor(public modalRef: DynamicDialogRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.operatives.length === 1) {\r\n this.operatives.forEach(o => {\r\n if (o.currentOperativeTypeId === \"9e693556-8c16-44a2-b1e4-2c8d18b081ad\") {\r\n this.isHV = true;\r\n this.lowVString = \"Risk\";\r\n this.lowVBS7671 = \"\";\r\n }\r\n })\r\n }\r\n }\r\n getHeadingFromOperative() {\r\n if (this.isHV) {\r\n return \"Risk Guidance\";\r\n }\r\n return \"EAS Guidance\";\r\n \r\n }\r\n cancelClicked(): void {\r\n this.modalRef.close();\r\n }\r\n\r\n getJobLevelWithIndex(jobIndex: number) {\r\n return this.allJobLevels.find(l => l.index === jobIndex);\r\n }\r\n\r\n getRiskWithIndex(riskIndex: number) {\r\n return this.allRisks.find(r => r.index === riskIndex);\r\n }\r\n\r\n getOperativeNumbersInRiskRow(rowNum: number): number {\r\n const riskLevel = this.getRiskWithIndex(rowNum);\r\n if (!riskLevel) {\r\n return 0;\r\n }\r\n let numOps = 0;\r\n this.operatives.forEach(o => {\r\n //o.currentOperativeTypeId == hv\r\n if (o.currentRiskId === riskLevel.id) {\r\n numOps++;\r\n }\r\n });\r\n return numOps;\r\n }\r\n\r\n getOperativeNumbersInJobLevelRow(rowNum: number): number {\r\n const jobLevel = this.getJobLevelWithIndex(rowNum);\r\n if (!jobLevel) {\r\n return 0;\r\n }\r\n let numOps = 0;\r\n this.operatives.forEach(o => {\r\n if (o.currentJobLevelId === jobLevel.id) {\r\n numOps++;\r\n }\r\n });\r\n return numOps;\r\n }\r\n\r\n getRiskCellClass(rowNum: number): string {\r\n if (this.operatives.length !== 1) {\r\n return '';\r\n }\r\n const numOpsInRow = this.getOperativeNumbersInRiskRow(rowNum);\r\n if (numOpsInRow !== 1) {\r\n return '';\r\n }\r\n const riskLevel = this.getRiskWithIndex(rowNum);\r\n\r\n switch (riskLevel.name) {\r\n case 'Low':\r\n return 'selected-cell selected-cell-low';\r\n case 'Medium':\r\n return 'selected-cell selected-cell-warning';\r\n case 'High':\r\n return 'selected-cell selected-cell-danger';\r\n }\r\n return '';\r\n }\r\n\r\n getJobLevelCellClass(rowNum: number): string {\r\n if (this.operatives.length !== 1) {\r\n return '';\r\n }\r\n\r\n const numOpsInRow = this.getOperativeNumbersInJobLevelRow(rowNum);\r\n if (numOpsInRow !== 1) {\r\n return '';\r\n }\r\n\r\n return 'selected-cell';\r\n }\r\n\r\n showHelpClicked() {\r\n this.showingHelp = true;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{companyName}} - {{lowVString}} guidance for {{operatives[0].getFullName()}}

\r\n
\r\n
\r\n
1 && companyName !== ''\">\r\n
\r\n

{{companyName}} - Current Operatives

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

{{companyName}} - {{lowVString}} guidance for {{operatives[0].getFullName()}} as of {{asOfDate | date:'dd/MM/yyyy'}}

\r\n
\r\n
\r\n
1\">\r\n
\r\n

{{companyName}} - Operatives as of {{asOfDate | date:'dd/MM/yyyy'}}

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

Degree of Supervision (based on the risk matrix)

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Operative is a Qualified Supervisor - carried out installation work requires no additional Assessment ({{lowVString}} Appendix 10)
\r\n
1\"> Where installation work is carried out by someone registered as a QS there is no additional Assessment required ({{lowVString}} Appendix 10)
\r\n
\r\n
\r\n
\r\n

Risk Matrix

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

Degree of Risk in the Electrotechnical Work {{lowVBS7671}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Installation Work Examples\r\n (Note: The Enterprise will be responsible for judging the degree of risk, this table is provided for Guidance)\r\n Degree of Risk
\r\n 1 && !isHV\" >{{ getOperativeNumbersInRiskRow(1) }}\r\n 1 && isHV\">{{ getOperativeNumbersInRiskRow(4) }}\r\n \r\n Electrical work where the installation is isolated when not under the control of the installer e.g.\r\n
    \r\n
  • First fix Electrotechnical work.
  • \r\n
  • Second fix Electrotechnical work.
  • \r\n
\r\n
\r\n \r\n Working on an isolated system\r\n \r\n Low\r\n \r\n Low\r\n
\r\n Electrical work defined as Minor Works in an unoccupied building – subject to safe isolation procedures documented and implemented\r\n \r\n Low\r\n
\r\n 1 && !isHV\">{{ getOperativeNumbersInRiskRow(2) }}\r\n 1 && isHV\">{{ getOperativeNumbersInRiskRow(5) }}\r\n \r\n Electrical work defined as Minor Works in an occupied building – subject to safe isolation procedures documented and implemented\r\n \r\n Medium\r\n \r\n \r\n Off load switching & isolating\r\n \r\n Medium\r\n
\r\n 1 && !isHV\">{{ getOperativeNumbersInRiskRow(3) }}\r\n 1 && isHV\">{{ getOperativeNumbersInRiskRow(6) }}\r\n \r\n All other Electrotechnical work whether or not it is subject to safe isolation procedures.\r\n High\r\n \r\n Live working, On-load switching & isolating.\r\n High
\r\n Electrical work – Periodic Inspection and Testing\r\n High
\r\n
\r\n
\r\n
\r\n
\r\n

Level of Operative Appointed

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Operative LevelGuidance
\r\n 1 && !isHV\">{{ getOperativeNumbersInJobLevelRow(1) }}\r\n 1 && isHV\">{{ getOperativeNumbersInJobLevelRow(4) }}\r\n \r\n Level 1\r\n \r\n Level 1 \r\n \r\n Operatives would be Instructed persons (electrically) who would generally be apprentices, labourers, electrician’s mates or electrical improvers – and who under the supervision of a skilled person (electrically),\r\n could be able to install wiring systems. Others that fall within this category are career changers who may have training and/or qualifications but lack experience.\r\n \r\n Operatives would be instructed with a degree of competence in high voltage electrical work and safety, but would not be classed as skilled. Examples would include apprentices, improvers and mates etc.\r\n
\r\n 1 && !isHV\">{{ getOperativeNumbersInJobLevelRow(2) }}\r\n 1 && isHV\">{{ getOperativeNumbersInJobLevelRow(5) }}\r\n \r\n Level 2\r\n \r\n Level 2 \r\n \r\n Operatives would be Instructed persons (electrically) who are experienced, trusted electrical installers who can carry out Electrotechnical work efficiently and in\r\n accordance with the current BS 7671 and Building Regulations/Standards and can therefore be expected mostly to work without the need of close and detailed supervision.\r\n \r\n Operatives would be skilled and competent in high voltage electrical work and safety.\r\n Authorised Persons or equivalent and suitably skilled and competent in the area of work they undertake.\r\n
\r\n 1 && !isHV\">{{ getOperativeNumbersInJobLevelRow(3) }}\r\n 1 && isHV \">{{ getOperativeNumbersInJobLevelRow(6) }}\r\n \r\n Level 3\r\n \r\n Level 3 \r\n \r\n Operatives would be considered as Skilled persons (electrically) who possess practical, theoretical and electrical engineering skills,\r\n experience and knowledge with adequate technical supervisory experience comparable to that of QS.\r\n \r\n Operatives would be highly skilled in and competent in high voltage electrical work and safety.\r\n Senior Authorised Persons or equivalent and suitably skilled and competent in the area of work they undertake.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {IRiskMatrixEntry} from \"../../../message-models/risk-matrix-entry.interface\";\r\nimport {IRiskInfo} from \"../../../message-models/risk-info.interface\";\r\nimport {IJobLevelInfo} from \"../../../message-models/job-level.interface\";\r\nimport {RiskMatrixLevel} from \"../../../message-models/risk-matrix-level.enum\";\r\nimport {IOperative} from \"../../../message-models/operative.interface\";\r\nimport {OperativeInfo} from \"../../../domain-model/operative-info.class\";\r\n\r\n@Component({\r\n selector: 'app-risk-matrix',\r\n templateUrl: './risk-matrix.component.html',\r\n styleUrls: ['./risk-matrix.component.scss']\r\n})\r\nexport class RiskMatrixComponent implements OnInit {\r\n @Input() riskMatrixEntries: IRiskMatrixEntry[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() operatives: OperativeInfo[] = [];\r\n\r\n isHV = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (this.operatives?.length === 1) {\r\n if (this.operatives[0].currentOperativeTypeId === \"9e693556-8c16-44a2-b1e4-2c8d18b081ad\") {\r\n this.isHV = true;\r\n }\r\n }\r\n \r\n }\r\n\r\n getRiskMatrixCell(jobIndex: number, riskIndex: number) : IRiskMatrixEntry{\r\n const jobLevel = this.getJobLevelWithIndex(jobIndex);\r\n if (!jobLevel)\r\n return null;\r\n\r\n const risk = this.getRiskWithIndex(riskIndex);\r\n if (!risk)\r\n return null;\r\n\r\n return this.riskMatrixEntries.find(e => e.riskId === risk.id && e.jobLevelId === jobLevel.id);\r\n }\r\n\r\n getJobLevelWithIndex(jobIndex: number) {\r\n return this.allJobLevels.find(l => l.index === jobIndex);\r\n }\r\n\r\n getRiskWithIndex(riskIndex: number) {\r\n return this.allRisks.find(r => r.index === riskIndex);\r\n }\r\n\r\n getMatrixClassFor(jobIndex: number, riskIndex: number) {\r\n const matrixEntry = this.getRiskMatrixCell(jobIndex, riskIndex);\r\n if (!matrixEntry)\r\n return '';\r\n\r\n switch (matrixEntry.riskMatrixLevel){\r\n case RiskMatrixLevel.low:\r\n return 'low-risk-cell';\r\n case RiskMatrixLevel.warning:\r\n return 'warning-risk-cell';\r\n case RiskMatrixLevel.danger:\r\n return 'danger-risk-cell';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n getOperativeNumbersInCell(jobIndex: number, riskIndex: number): number {\r\n const matrixEntry = this.getRiskMatrixCell(jobIndex, riskIndex);\r\n if (!matrixEntry)\r\n return 0;\r\n\r\n let numOps: number = 0;\r\n this.operatives.forEach(o => {\r\n if (o.riskMatrixLevel === matrixEntry.riskMatrixLevel &&\r\n o.currentRiskId === matrixEntry.riskId &&\r\n o.currentJobLevelId == matrixEntry.jobLevelId){\r\n numOps++;\r\n }\r\n })\r\n\r\n return numOps;\r\n }\r\n\r\n getIconNameInCell(jobIndex: number, riskIndex: number): any {\r\n if (this.operatives?.length > 1)\r\n return \"\";\r\n\r\n const numOpsInCell = this.getOperativeNumbersInCell(jobIndex, riskIndex);\r\n if (numOpsInCell === 0)\r\n return \"\";\r\n\r\n const matrixEntry = this.getRiskMatrixCell(jobIndex, riskIndex);\r\n switch (matrixEntry.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'check-circle';\r\n case RiskMatrixLevel.warning:\r\n return 'exclamation-triangle';\r\n case RiskMatrixLevel.danger:\r\n return 'siren-on';\r\n }\r\n return \"\";\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Level of Operative

\r\n
\r\n
\r\n \r\n
{{ getJobLevelWithIndex(4)?.name }} Operative
\r\n
{{ getJobLevelWithIndex(1)?.name }} Operative
\r\n
({{ getJobLevelWithIndex(4)?.examples }})
\r\n
({{ getJobLevelWithIndex(1)?.examples }})
\r\n
\r\n 1\">{{ getOperativeNumbersInCell(1,1) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(4,4) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(1,2) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(4,5) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(1,3) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(4,6) }}\r\n \r\n
\r\n
{{ getJobLevelWithIndex(2)?.name }} Operative
\r\n
{{ getJobLevelWithIndex(5)?.name }} Operative
\r\n
({{ getJobLevelWithIndex(2)?.examples }})
\r\n
({{ getJobLevelWithIndex(5)?.examples }})
\r\n
\r\n 1\">{{ getOperativeNumbersInCell(2,1) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(5,4) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(2,2) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(5,5) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(2,3) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(5,6) }}\r\n \r\n
\r\n
{{ getJobLevelWithIndex(3)?.name }} Operative
\r\n
{{ getJobLevelWithIndex(6)?.name }} Operative
\r\n
({{ getJobLevelWithIndex(3)?.examples }})
\r\n
({{ getJobLevelWithIndex(6)?.examples }})
\r\n
\r\n 1\">{{ getOperativeNumbersInCell(3,1) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(6,4) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(3,2) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(6,5) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(3,3) }}\r\n \r\n \r\n 1\">{{ getOperativeNumbersInCell(6,6) }}\r\n \r\n
\r\n {{ getRiskWithIndex(1)?.name}} Risk\r\n \r\n {{ getRiskWithIndex(2)?.name}} Risk\r\n \r\n {{ getRiskWithIndex(3)?.name}} Risk\r\n \r\n {{ getRiskWithIndex(4)?.name}} Risk \r\n \r\n {{ getRiskWithIndex(5)?.name}} Risk \r\n \r\n {{ getRiskWithIndex(6)?.name}} Risk \r\n
\r\n Degree of Risk in the Installation \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport {BaseApiService} from \"../../common/base-api.service\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {SettingsProviderService} from \"../../common/settings-provider.service\";\r\nimport {Observable} from \"rxjs\";\r\nimport {IOptInModalInfo} from \"../../message-models/optin-modal-info.interface\";\r\nimport {IOptInEntry} from \"../../message-models/optin-entry.interface\";\r\nimport {OptInEntry} from \"../../message-models/optin-entry.class\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TermsConditionService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'TermsAndCondition');\r\n }\r\n\r\n getOptInModalDetails(): Observable{\r\n return this.get('GetOptInModalDetails');\r\n }\r\n getAllOptInEntries(): Observable{\r\n return this.get('GetAllOptInEntries');\r\n }\r\n createOrUpdateOptInEntry(optInEntry: OptInEntry):Observable{\r\n return this.post(\"CreateOrUpdateOptInEntry\", optInEntry);\r\n }\r\n UpdateOptInModalSettings(optInModalInfo: IOptInModalInfo):Observable{\r\n return this.post(\"UpdateOptInModalDetails\", optInModalInfo);\r\n }\r\n deleteOptInEntry(optInEntry: OptInEntry):Observable{\r\n return this.post(\"DeleteOptInEntry\", optInEntry);\r\n }\r\n clearAllCompanyOptInEntries(optInEntry: OptInEntry):Observable{\r\n return this.post(\"ClearAllCompanyOptInEntries\", optInEntry);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TrainingType } from 'src/app/message-models/training-record-type.class';\r\nimport { HelpConsts } from \"../../help/models/help-consts\";\r\nimport { consts } from \"../../common/modals/consts\";\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { ITrainingTypeCategoryInfo } from '../../message-models/trainning-record-category.interface';\r\nimport { ListDataService } from '../../services/list-data.service';\r\n\r\n@Component({\r\n selector: 'app-training-course-editor',\r\n templateUrl: './training-course-editor.component.html',\r\n styleUrls: ['./training-course-editor.component.scss']\r\n})\r\n\r\nexport class TrainingCourseEditorComponent implements OnInit {\r\n @Input() trainingType: TrainingType = new TrainingType();\r\n @Input() heading = 'Editing Training Type';\r\n \r\n\r\n @Output() choiceMade: EventEmitter = new EventEmitter();\r\n @Output() saveNewTrainingTypeDocumentRequested: EventEmitter = new EventEmitter();\r\n submitted = false;\r\n helpMessage: string = HelpConsts.TrainingCourseEntrysHelp.sections[0].body;\r\n showingHelp = false;\r\n saveAttempted: boolean = false;\r\n\r\n selectedTrainingTypeCategory: ITrainingTypeCategoryInfo;\r\n\r\n allTrainingTypeCategory: ITrainingTypeCategoryInfo[] = [];\r\n\r\n\r\n constructor(public modalRef: DynamicDialogRef,\r\n private listDataService: ListDataService\r\n ) {\r\n\r\n }\r\n\r\n get isCompanyTraining(): boolean {\r\n return this.trainingType?.companyId && this.trainingType?.companyId != consts.emptyGuid;\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.listDataService.getAllTrainTypeCategory().subscribe({\r\n next: response => {\r\n this.allTrainingTypeCategory = response;\r\n }\r\n });\r\n\r\n }\r\n\r\n cancelClicked() {\r\n this.modalRef.close();\r\n this.choiceMade.emit(null);\r\n }\r\n\r\n saveClicked() {\r\n this.submitted = true;\r\n if (!this.trainingType.isValid) {\r\n return;\r\n }\r\n\r\n this.modalRef.close();\r\n this.choiceMade.emit(this.trainingType);\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n\r\n saveAndUploadDocument() {\r\n\r\n this.saveAttempted = true;\r\n\r\n if (!this.trainingType.isValid) {\r\n return;\r\n }\r\n\r\n this.saveAttempted = false;\r\n\r\n this.modalRef.close();\r\n\r\n let newTrainingType = new TrainingType(this.trainingType);\r\n this.saveNewTrainingTypeDocumentRequested.emit(newTrainingType);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \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 { CommonModule } from '@angular/common';\r\nimport { CompanyAlertsPageComponent } from './components/company-alerts-page/company-alerts-page.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { TableModule } from 'primeng/table';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { EntityAlertTypeStringPipe } from './pipes/entity-alert-type-string.pipe';\r\nimport { AlertNoticeLevelStringPipe } from './pipes/alert-notice-level-string.pipe';\r\nimport { SupervisionAlertsPageComponent } from './components/supervision-alerts-page/supervision-alerts-page.component';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { PanelModule } from 'primeng/panel';\r\n\r\n\r\n@NgModule({\r\n declarations: [CompanyAlertsPageComponent, EntityAlertTypeStringPipe, AlertNoticeLevelStringPipe, SupervisionAlertsPageComponent],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n FontAwesomeModule,\r\n TableModule,\r\n RouterModule,\r\n FormsModule,\r\n MultiSelectModule,\r\n InputTextModule,\r\n ButtonModule,\r\n RippleModule,\r\n ReactiveFormsModule,\r\n PanelModule\r\n ]\r\n})\r\nexport class AlertsModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ICompanyAlertSettings } from '../../../message-models/company-alert-settings.interface';\r\nimport { CompanyAlertSettings } from '../../../message-models/company-alert-settings.class';\r\nimport { ICompanyAlertEmailSettings } from '../../../message-models/company-alert-email-settings.interface';\r\nimport { CompanyAlertEmailSettings } from '../../../message-models/company-alert-email-settings.class';\r\n\r\n@Component({\r\n selector: 'app-alert-email-editor',\r\n templateUrl: './alert-email-editor.component.html',\r\n styleUrls: ['./alert-email-editor.component.scss']\r\n})\r\nexport class AlertEmailEditorComponent implements OnInit {\r\n @Input() editingType: boolean = false;\r\n @Input() saveAttempted: boolean = false;\r\n @Input() emailAddresses: Array = new Array();\r\n @Output() removeEmail: EventEmitter = new EventEmitter();\r\n @Output() addRecipientEmail: EventEmitter = new EventEmitter();\r\n public elements: Array = [];\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n removeEmailClick(companySettings: CompanyAlertEmailSettings) {\r\n this.removeEmail.emit(companySettings);\r\n }\r\n}\r\n","
\r\n Alert Recipient Emails\r\n
\r\n
\r\n
\r\n 5\" scrollHeight=\"500px\"\r\n [globalFilterFields]=\"['emailAddresses.personName', 'emailAddresses.email']\">\r\n \r\n \r\n \r\n Person Name\r\n \r\n \r\n \r\n Email Address\r\n \r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{email.personName}}\r\n
\r\n \r\n \r\n
\r\n {{email.email}}\r\n
\r\n \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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ICompanyAlertSettings } from '../../../message-models/company-alert-settings.interface';\r\nimport { CompanyAlertSettings } from '../../../message-models/company-alert-settings.class';\r\n\r\n@Component({\r\n selector: 'app-alert-settings-editor',\r\n templateUrl: './alert-settings-editor.component.html',\r\n styleUrls: ['./alert-settings-editor.component.scss']\r\n})\r\n\r\nexport class AlertSettingsEditorComponent implements OnInit {\r\n @Input() companyAlertSettings: ICompanyAlertSettings = new CompanyAlertSettings();\r\n @Input() editingType: boolean = false;\r\n @Input() saveAttempted: boolean = false;\r\n public elements: Array = [];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n addNewInput() {\r\n this.elements = [...this.elements, this.elements.length + 1];\r\n }\r\n}\r\n","
\r\n Alert Frequency\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \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 {AlertNoticeLevel, AlertNoticeLevels, EntityAlertType, EntityAlertTypes, IAlertInfo} from '../../models/IAlertInfo.interface';\r\nimport {AlertInfo} from '../../models/AlertInfo.class';\r\nimport {EcaBreadcrumbService} from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport {IBreadcrumb} from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport {AlertsService} from '../../services/alerts.service';\r\nimport {IUserInfo} from '../../../users/models/userInfo.interface';\r\nimport {OurUserService} from '../../../users/services/user.service';\r\nimport {EcaConfirmDeleteModalOptions} from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport {EcaConfirmProcessService} from '../../../shared/services/eca-confirm-process.service';\r\nimport {ExportExcelService} from '../../../common/services/export-excel.service';\r\nimport {DatePipe} from '@angular/common';\r\nimport {EcaConfirmInfoModalOptions} from '../../../shared/models/confirm-info-modal-options.class';\r\nimport {HelpConsts} from '../../../help/models/help-consts';\r\nimport {HelpModalService} from '../../../help/services/help-modal.service';\r\nimport {IHelpInfo} from '../../../help/models/i-help-info.interface';\r\n\r\n@Component({\r\n selector: 'app-company-alerts-page',\r\n templateUrl: './company-alerts-page.component.html',\r\n styleUrls: ['./company-alerts-page.component.scss']\r\n})\r\nexport class CompanyAlertsPageComponent implements OnInit {\r\n entityAlertType = EntityAlertType;\r\n loadingAlerts: boolean;\r\n isOnMobile = false;\r\n alertInfos: AlertInfo[];\r\n columns: any;\r\n loggedInUser: IUserInfo;\r\n alertsLoading = true;\r\n alertsFilter = {includeRisks: false, showOnlyRisks: false};\r\n showFilters = true;\r\n alertTypes = EntityAlertTypes;\r\n alertNoticeLevels = AlertNoticeLevels;\r\n\r\n constructor(private confirmProcessService: EcaConfirmProcessService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private exportExcelService: ExportExcelService,\r\n private helpService: HelpModalService,\r\n private datePipe: DatePipe,\r\n private alertsService: AlertsService, private userService: OurUserService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n const alertBreadcrumbs = new Array();\r\n alertBreadcrumbs.push({label: 'Action Alerts', iconName: 'bell'} as IBreadcrumb);\r\n this.userService.getLoggedInUser().subscribe(loggedInUser => {\r\n this.loggedInUser = loggedInUser;\r\n this.getAlertsForCompany(this.alertsFilter);\r\n });\r\n this.ecaBreadcrumbService.breadCrumbs.next(alertBreadcrumbs);\r\n this.columns = [\r\n {field: 'alertType', header: 'Type', type: 'alertType', colWidth: 'width: 10%;'},\r\n {field: 'title', header: 'Title', type: 'text', colWidth: 'width: 10%;'},\r\n {field: 'detailsHtml', header: 'Details', type: 'html', colWidth: 'width: 20%;'},\r\n {field: 'directLink', header: 'Link', type: 'link', colWidth: 'width: 10%;'},\r\n {field: 'followUpOn', header: 'Follow Up On', type: 'date', colWidth: 'width: 10%;'},\r\n {field: 'alertLevel', header: 'Alert Level', type: 'alertNoticeLevel', colWidth: 'width: 5%;'},\r\n ];\r\n }\r\n\r\n\r\n getAlertsForCompany(alertsFilter?: any) {\r\n this.alertsService.getCurrentAlerts(this.loggedInUser?.companyId, alertsFilter.includeRisks, alertsFilter.showOnlyRisks).subscribe(alertInfos => {\r\n this.alertInfos = [];\r\n alertInfos?.forEach(alertInfo => this.alertInfos.push(new AlertInfo(alertInfo)));\r\n this.alertsLoading = false;\r\n });\r\n }\r\n\r\n openAlertsLoadingHelp() {\r\n this.helpService.openHelpModal(HelpConsts.ActionAlertsHelp);\r\n\r\n }\r\n\r\n riskFilterChanged() {\r\n this.getAlertsForCompany(this.alertsFilter);\r\n }\r\n exportToExcel() {\r\n const alertInfosToExport = [];\r\n this.alertInfos.forEach( alertInfo =>{\r\n const temporalDivElement = document.createElement('div');\r\n temporalDivElement.innerHTML = alertInfo.detailsHtml;\r\n const tempObject = {\r\n title: alertInfo.title,\r\n followUpOn: this.datePipe.transform(alertInfo.followUpOn, 'dd/MM/yyyy'),\r\n alertLevel: AlertNoticeLevels.find(c => c.value === alertInfo.alertLevel).label,\r\n alertType: EntityAlertTypes.find(c => c.value === alertInfo.alertType).label,\r\n detailsHtml: temporalDivElement.textContent || temporalDivElement.innerText || ''\r\n };\r\n alertInfosToExport.push(tempObject);\r\n });\r\n const exportColumns = [\r\n {field: 'title', header: 'Title', type: 'text'},\r\n {field: 'followUpOn', header: 'Follow Up On', type: 'date'},\r\n {field: 'alertLevel', header: 'Alert Level', type: 'alertNoticeLevel'},\r\n {field: 'alertType', header: 'Type', type: 'alertType', colWidth: 'width: 10%;'},\r\n {field: 'detailsHtml', header: 'Details', type: 'html', colWidth: 'width: 20%;'},\r\n ];\r\n this.exportExcelService.exportToExcel(alertInfosToExport, exportColumns, 'Alerts');\r\n\r\n }\r\n dismissAlert(alertInfo: AlertInfo) {\r\n const ecaConfirmDeleteModalOptions = new EcaConfirmDeleteModalOptions();\r\n ecaConfirmDeleteModalOptions.yesButtonText = 'Dismiss';\r\n this.confirmProcessService.openConfirmProcessModal('Are you SURE you wish to DISMISS this Alert?',\r\n 'Confirm Dismiss', ecaConfirmDeleteModalOptions).subscribe(result => {\r\n if (result) {\r\n this.alertsService.dismissAlert(this.loggedInUser?.companyId, alertInfo.alertType, alertInfo.entityId).subscribe(res => {\r\n const index = this.alertInfos.findIndex(c => c === alertInfo);\r\n this.getAlertsForCompany(this.alertsFilter);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe(res => {\r\n\r\n });\r\n });\r\n }\r\n });\r\n\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n

\r\n Action Alerts \r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 10\" scrollHeight=\"500px\" [rows]=\"10\" [responsive]=\"true\" [columns]=\"columns\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ alertInfos.length }}\r\n Action Alerts\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\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 \r\n\r\n \r\n \r\n \r\n
\r\n {{ option.label }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Title\r\n \r\n \r\n \r\n Details\r\n \r\n \r\n \r\n Link\r\n \r\n \r\n \r\n Follow Up On\r\n \r\n \r\n \r\n\r\n \r\n Alert Level\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ option.label }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{col.header}}: \r\n
\r\n \r\n {{alertInfo[col.field]}}\r\n \r\n \r\n {{alertInfo[col.field] | entityAlertTypeString}}\r\n \r\n \r\n \r\n \r\n {{alertInfo.linkText}}\r\n \r\n \r\n {{alertInfo[col.field] | date:'dd/MM/yyyy'}}\r\n \r\n \r\n {{alertInfo[col.field] | alertNoticeLevelString}}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \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, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { CompanyAlertSettings } from '../../../message-models/company-alert-settings.class';\r\nimport { ICompanyAlertSettings } from '../../../message-models/company-alert-settings.interface';\r\nimport { CompanyAlertEmailSettings } from '../../../message-models/company-alert-email-settings.class';\r\nimport { ICompanyAlertEmailSettings } from '../../../message-models/company-alert-email-settings.interface';\r\nimport { CompanyService } from '../../../company/services/company.service';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { CompanySettingsModalService } from '../../../company/services/company-settings-modal.service';\r\n\r\n@Component({\r\n selector: 'app-company-alerts-settings',\r\n templateUrl: './company-alerts-settings.component.html',\r\n styleUrls: ['./company-alerts-settings.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CompanyAlertsSettingsComponent implements OnInit {\r\n @ViewChild('alertSettingsContainerComponent') alertSettingsContainerComponent: DetailContainerComponent;\r\n editingDetails: boolean;\r\n public loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n isAlertSettingsLoading: boolean = false;\r\n tempCompanyAlertSetting: CompanyAlertSettings = new CompanyAlertSettings();\r\n AlertSetting: CompanyAlertSettings = new CompanyAlertSettings();\r\n companyAlertSettings: CompanyAlertSettings = new CompanyAlertSettings({} as ICompanyAlertSettings);\r\n tempCompanyAlertEmailSetting: Array = new Array();\r\n companyAlertEmailSettings: Array = new Array({} as ICompanyAlertEmailSettings);\r\n saveAttempted: boolean = false;\r\n\r\n // originalTrainingRecord: TrainingRecord = new TrainingRecord({} as ITrainingRecord);\r\n constructor(private route: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private companyService: CompanyService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private companySettingsModalService: CompanySettingsModalService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.updateUserAndReload(user);\r\n this.populateBreadcrumbs();\r\n this.companyId = this.loggedInUser?.companyId;\r\n this.isAlertSettingsLoading = true;\r\n this.getFrequency();\r\n this.getAlertEmails();\r\n this.isAlertSettingsLoading = false;\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid && this.companyId !== undefined) {\r\n }\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const companySettingsBreadCrumbs = new Array();\r\n companySettingsBreadCrumbs.push({ label: 'Company Settings', iconName: 'users', routeLink: '/company-settings' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(companySettingsBreadCrumbs);\r\n }\r\n\r\n getFrequency() {\r\n this.tempCompanyAlertSetting.companyId = this.companyId;\r\n this.companyService.getCompanyAlertFrequencySettings(new CompanyAlertSettings(this.tempCompanyAlertSetting)).subscribe(companyAlertSetting => {\r\n this.companyAlertSettings = new CompanyAlertSettings(companyAlertSetting);\r\n this.tempCompanyAlertSetting = new CompanyAlertSettings(this.companyAlertSettings);\r\n }, (error) => {\r\n console.log(error);\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n getAlertEmails() {\r\n this.AlertSetting.companyId = this.companyId;\r\n this.companyService.getCompanyAlertEmailSettings(new CompanyAlertSettings(this.AlertSetting)).subscribe(companyAlertEmailSetting => {\r\n this.tempCompanyAlertEmailSetting = companyAlertEmailSetting;\r\n }, (error) => {\r\n console.log(error);\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n editDetails() {\r\n this.editingDetails = true;\r\n }\r\n\r\n cancelEdit() {\r\n this.tempCompanyAlertSetting = new CompanyAlertSettings(this.companyAlertSettings as ICompanyAlertSettings);\r\n this.editingDetails = false;\r\n }\r\n\r\n saveDetails() {\r\n this.isAlertSettingsLoading = true;\r\n this.tempCompanyAlertSetting.companyId = this.companyId;\r\n this.companyService.createOrUpdateCompanyAlertSettings(new CompanyAlertSettings(this.tempCompanyAlertSetting)).subscribe(companyAlertSetting => {\r\n this.companyAlertSettings = new CompanyAlertSettings(companyAlertSetting);\r\n this.tempCompanyAlertSetting = new CompanyAlertSettings(this.companyAlertSettings as ICompanyAlertSettings);\r\n this.editingDetails = false;\r\n this.isAlertSettingsLoading = false;\r\n this.getFrequency();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n addRecipientEmailClick() {\r\n this.companySettingsModalService.openCompanySettingsEmailModal('Add Recipient Email')\r\n .subscribe(companySettingsModalRef => {\r\n companySettingsModalRef.content.modalClosed.subscribe(result => {\r\n this.modalClosed();\r\n })\r\n });\r\n }\r\n\r\n removeEmailClick(companySettings: CompanyAlertEmailSettings) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to stop this user from receiving alerts?',\r\n 'Remove ' + companySettings.personName + ' - ' + companySettings.email, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.isAlertSettingsLoading = true;\r\n this.removeEmail(companySettings);\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeEmail(companySettings: CompanyAlertEmailSettings) {\r\n this.companyService.removeEmail(companySettings).subscribe(result => {\r\n this.getAlertEmails();\r\n this.isAlertSettingsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n modalClosed() {\r\n this.isAlertSettingsLoading = true;\r\n this.getAlertEmails();\r\n this.isAlertSettingsLoading = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n Alert Frequency\r\n \r\n\r\n \r\n Alert Frequency\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Alert Recipients\r\n \r\n\r\n \r\n Alert Recipients\r\n \r\n\r\n \r\n \r\n \r\n
\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 {AlertNoticeLevels, EntityAlertType, EntityAlertTypes} from '../../models/IAlertInfo.interface';\r\nimport {AlertInfo} from '../../models/AlertInfo.class';\r\nimport {IUserInfo} from '../../../users/models/userInfo.interface';\r\nimport {EcaConfirmProcessService} from '../../../shared/services/eca-confirm-process.service';\r\nimport {EcaBreadcrumbService} from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport {ExportExcelService} from '../../../common/services/export-excel.service';\r\nimport {DatePipe} from '@angular/common';\r\nimport {AlertsService} from '../../services/alerts.service';\r\nimport {OurUserService} from '../../../users/services/user.service';\r\nimport {IBreadcrumb} from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport {IOperativeAlertSummaryInfo} from '../../models/OperativeAlertSummaryInfo';\r\nimport {ListDataService} from '../../../services/list-data.service';\r\nimport {DegreeOfSupervisionString, RiskMatrixLevel} from '../../../message-models/risk-matrix-level.enum';\r\nimport {Router} from '@angular/router';\r\nimport {HelpConsts} from '../../../help/models/help-consts';\r\nimport {HelpModalService} from '../../../help/services/help-modal.service';\r\n\r\n@Component({\r\n selector: 'app-supervision-alerts-page',\r\n templateUrl: './supervision-alerts-page.component.html',\r\n styleUrls: ['./supervision-alerts-page.component.scss']\r\n})\r\nexport class SupervisionAlertsPageComponent implements OnInit {\r\n\r\n entityAlertType = EntityAlertType;\r\n loadingAlerts: boolean;\r\n alertInfos: AlertInfo[];\r\n columns: any;\r\n loggedInUser: IUserInfo;\r\n alertsLoading = true;\r\n alertsFilter = {includeRisks: false, showOnlyRisks: false};\r\n showFilters = true;\r\n alertTypes = EntityAlertTypes;\r\n alertNoticeLevels = AlertNoticeLevels;\r\n supervisionAlerts: IOperativeAlertSummaryInfo[]=[];\r\n DegreeOfSupervisionString: typeof DegreeOfSupervisionString = DegreeOfSupervisionString;\r\n constructor(private confirmProcessService: EcaConfirmProcessService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private exportExcelService: ExportExcelService,\r\n private datePipe: DatePipe,\r\n private helpService: HelpModalService,\r\n private router: Router,\r\n private listDataService: ListDataService,\r\n private alertsService: AlertsService, private userService: OurUserService) {\r\n\r\n }\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.initialiseColumnDataTableColumns();\r\n const alertBreadcrumbs = new Array();\r\n alertBreadcrumbs.push({label: 'Supervision Alerts', iconName: 'exclamation-triangle'} as IBreadcrumb);\r\n this.userService.getLoggedInUser().subscribe(loggedInUser => {\r\n this.loggedInUser = loggedInUser;\r\n this.getSupervisionAlertsForCompany();\r\n });\r\n this.ecaBreadcrumbService.breadCrumbs.next(alertBreadcrumbs);\r\n }\r\n initialiseColumnDataTableColumns(){\r\n this.columns = null;\r\n this.columns = [\r\n { field: 'operativeFullName', header: 'Name', type: 'text' },\r\n { field: 'referenceNumbers', header: 'Reference Nos', type: 'text' },\r\n { field: 'currentJobTitle', header: 'Job Role', type: 'text' },\r\n { field: 'currentRisk', header: 'Work Risk', type: 'text' },\r\n { field: 'currentJobLevel', header: 'Job Level', type: 'text' },\r\n { field: 'riskMatrixLevel', header: 'Supervision', type: 'enum' },\r\n { field: 'startedOn', header: 'Started On', type: 'date' },\r\n ];\r\n }\r\n\r\n getSupervisionAlertsForCompany() {\r\n this.alertsService.getSupervisionAlertsForCompany(this.loggedInUser?.companyId).subscribe(supervisionAlerts => {\r\n this.supervisionAlerts = supervisionAlerts;\r\n this.alertsLoading = false;\r\n })\r\n }\r\n\r\n openAlertsLoadingHelp() {\r\n this.helpService.openHelpModal(HelpConsts.SupervisionAlertsHelp);\r\n\r\n }\r\n\r\n exportToExcel() {\r\n const alertInfosToExport = [];\r\n this.supervisionAlerts.forEach( alertInfo => {\r\n const tempObject = {\r\n operativeFullName: alertInfo.operativeFullName,\r\n referenceNumbers: alertInfo.referenceNumbers,\r\n currentJobTitle: alertInfo.currentJobTitle,\r\n currentRisk: alertInfo.currentRisk,\r\n currentJobLevel: alertInfo.currentJobLevel,\r\n riskMatrixLevel: this.DegreeOfSupervisionString[alertInfo?.riskMatrixLevel],\r\n startedOn: this.datePipe.transform(alertInfo.startedOn, 'dd/MM/yyyy'),\r\n };\r\n alertInfosToExport.push(tempObject);\r\n });\r\n const exportColumns = [\r\n { field: 'operativeFullName', header: 'Name', type: 'text' },\r\n { field: 'referenceNumbers', header: 'Reference Nos', type: 'text' },\r\n { field: 'currentJobTitle', header: 'Job Role', type: 'text' },\r\n { field: 'currentRisk', header: 'Work Risk', type: 'text' },\r\n { field: 'currentJobLevel', header: 'Job Level', type: 'text' },\r\n { field: 'riskMatrixLevel', header: 'Supervision', type: 'enum' },\r\n { field: 'startedOn', header: 'Started On', type: 'date' },\r\n ];\r\n this.exportExcelService.exportToExcel(alertInfosToExport, exportColumns, 'Operatives in High Supervision - Alerts');\r\n\r\n\r\n }\r\n viewOperative(iOperativeAlertSummaryInfo: IOperativeAlertSummaryInfo) {\r\n this.router.navigateByUrl(\"/operative/\" + iOperativeAlertSummaryInfo.operativeId);\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n

\r\n Supervision Alerts \r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 5\" scrollHeight=\"500px\" [responsive]=\"true\"\r\n [columns]=\"columns\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ alertInfos.length }}\r\n Operative/s In High Supervision\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n Reference Nos\r\n \r\n \r\n \r\n Job Role\r\n \r\n \r\n \r\n Work Risk\r\n \r\n \r\n \r\n Job Level\r\n \r\n \r\n \r\n Supervision\r\n \r\n \r\n \r\n Started On\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \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 {AlertNoticeLevel, EntityAlertType, IAlertInfo} from './IAlertInfo.interface';\r\nimport {RiskMatrixLevel} from '../../message-models/risk-matrix-level.enum';\r\n\r\nexport class AlertInfo implements IAlertInfo {\r\n constructor(iAlertInfo: IAlertInfo) {\r\n this.title = iAlertInfo?.title;\r\n this.detailsHtml = iAlertInfo?.detailsHtml;\r\n this.canBeDismissed = iAlertInfo?.canBeDismissed;\r\n this.followUpOn = iAlertInfo?.followUpOn;\r\n this.directLink = iAlertInfo?.directLink;\r\n this.alertLevel = iAlertInfo?.alertLevel;\r\n this.linkText = iAlertInfo?.linkText;\r\n this.alertType = iAlertInfo?.alertType;\r\n this.entityId = iAlertInfo?.entityId;\r\n }\r\n\r\n title: string;\r\n detailsHtml: string;\r\n canBeDismissed: boolean;\r\n directLink: string;\r\n linkText: string;\r\n followUpOn: string;\r\n alertLevel: AlertNoticeLevel;\r\n alertType: EntityAlertType;\r\n entityId: string;\r\n\r\n getRiskColour(): string {\r\n switch (this.alertLevel) {\r\n case AlertNoticeLevel.Danger:\r\n return 'red';\r\n case AlertNoticeLevel.Warning: // TODO Get Alert info colors.\r\n return 'darkorange';\r\n case AlertNoticeLevel.Information:\r\n return 'black';\r\n case AlertNoticeLevel.Upcoming:\r\n return 'blue';\r\n }\r\n return 'black';\r\n }\r\n}\r\n","export enum AlertNoticeLevel {\r\n Information,\r\n Warning,\r\n Danger,\r\n Upcoming\r\n}\r\nexport enum EntityAlertType {\r\n CompanyDocumentFollowUp,\r\n OperativeDocumentFollowUp,\r\n TrainingRecordDocumentFollowUp,\r\n CompanyFollowUp,\r\n TrainingRecordFollowUp,\r\n OperativeFollowUp,\r\n DocumentReview,\r\n DocumentExpired,\r\n OperativeRisk\r\n}\r\n\r\nexport const EntityAlertTypes = [\r\n { value: EntityAlertType.CompanyDocumentFollowUp, label: 'Enterprise Document'},\r\n {value: EntityAlertType.TrainingRecordDocumentFollowUp, label: 'Training Record Document'},\r\n {value: EntityAlertType.OperativeDocumentFollowUp, label: 'Operative Document'},\r\n { value: EntityAlertType.CompanyFollowUp, label: 'Enterprise'},\r\n {value: EntityAlertType.TrainingRecordFollowUp, label: 'Training Record'},\r\n {value: EntityAlertType.OperativeFollowUp, label: 'Operative'},\r\n {value: EntityAlertType.DocumentReview, label: 'Document Review'},\r\n {value: EntityAlertType.DocumentExpired, label: 'Document Expired'},\r\n {value: EntityAlertType.OperativeRisk, label: 'Operative Risk'},\r\n];\r\nexport const AlertNoticeLevels = [\r\n {value: AlertNoticeLevel.Information, label: 'Information'},\r\n {value: AlertNoticeLevel.Warning, label: 'Warning'},\r\n {value: AlertNoticeLevel.Danger, label: 'Danger'},\r\n];\r\nexport interface IAlertInfo {\r\n title: string;\r\n detailsHtml: string;\r\n canBeDismissed: boolean;\r\n directLink: string;\r\n linkText: string;\r\n followUpOn: string;\r\n alertLevel: AlertNoticeLevel;\r\n alertType: EntityAlertType;\r\n entityId: string;\r\n}\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {AlertNoticeLevel, AlertNoticeLevels, EntityAlertType, EntityAlertTypes} from '../models/IAlertInfo.interface';\r\n\r\n@Pipe({\r\n name: 'alertNoticeLevelString'\r\n})\r\nexport class AlertNoticeLevelStringPipe implements PipeTransform {\r\n\r\n transform(value: AlertNoticeLevel) {\r\n return AlertNoticeLevels?.find(c => c.value === value)?.label;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {EntityAlertType, EntityAlertTypes} from '../models/IAlertInfo.interface';\r\n\r\n@Pipe({\r\n name: 'entityAlertTypeString'\r\n})\r\nexport class EntityAlertTypeStringPipe implements PipeTransform {\r\n\r\n transform(value: EntityAlertType) {\r\n return EntityAlertTypes?.find(c => c.value === value)?.label;\r\n }\r\n\r\n}\r\n","import {BaseApiService} from '../../common/base-api.service';\r\nimport {AlertNoticeLevel, EntityAlertType, IAlertInfo} from '../models/IAlertInfo.interface';\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {ICompanyInfo} from '../../message-models/company-info.interface';\r\nimport {BehaviorSubject, Observable, of} from 'rxjs';\r\nimport {switchMap} from 'rxjs/operators';\r\nimport {IUserInfo} from '../../users/models/userInfo.interface';\r\nimport {IOperativeAlertSummaryInfo} from '../models/OperativeAlertSummaryInfo';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertsService extends BaseApiService {\r\n alerts: IAlertInfo[];\r\n alertsCountSubject = new BehaviorSubject(null);\r\n supervisionAlertsCountSubject = new BehaviorSubject(null);\r\n\r\n // alerts: IAlertInfo[] = [\r\n // {\r\n // title: 'Operative/s in Danger Category',\r\n // detailsHtml: '

Operative George Westinghouse is working in a role that is identified as dangerous

',\r\n // alertLevel: AlertNoticeLevel.Danger\r\n //\r\n // } as IAlertInfo,\r\n // {\r\n // title: 'Followup/s Due',\r\n // detailsHtml: 'A follow up is due for operative Nicola Tesla',\r\n // alertLevel: AlertNoticeLevel.Warning\r\n // } as IAlertInfo\r\n // ];\r\n totalAlerts: number;\r\n totalSupervisionAlerts: number;\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Alerts');\r\n }\r\n\r\n\r\n getSupervisionAlertsCountForCompany(companyId: string): Observable {\r\n return this.post('GetAlertsCountForCompany', {\r\n companyId,\r\n showOnlyRisks: true\r\n }).pipe(switchMap(totalSupervisionAlerts => {\r\n this.totalSupervisionAlerts = totalSupervisionAlerts;\r\n this.supervisionAlertsCountSubject.next(totalSupervisionAlerts);\r\n return of(this.totalAlerts);\r\n }));\r\n }\r\n getAlertsCountForCompany(companyId: string, includeRisks?: boolean, showOnlyRisks?: boolean): Observable {\r\n return this.post('GetAlertsCountForCompany', {\r\n companyId,\r\n includeRisks,\r\n showOnlyRisks\r\n }).pipe(switchMap(totalAlerts => {\r\n this.totalAlerts = totalAlerts;\r\n this.alertsCountSubject.next(totalAlerts);\r\n return of(this.totalAlerts);\r\n }));\r\n }\r\n getCurrentAlerts(companyId: string, includeRisks?: boolean, showOnlyRisks?: boolean): Observable {\r\n return this.post('GetAlertInfosForCompany', {\r\n companyId,\r\n includeRisks,\r\n showOnlyRisks\r\n });\r\n }\r\n getSupervisionAlertsForCompany(companyId: string): Observable {\r\n return this.post('GetSupervisionAlertsForCompany', {companyId});\r\n }\r\n\r\n dismissAlert(companyId: string, alertType: EntityAlertType, entityId: string): Observable {\r\n return this.post('DismissAlert', {\r\n companyId,\r\n alertType,\r\n entityId\r\n });\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {RouterModule, Routes} from '@angular/router';\r\nimport {OperativeDetailsComponent} from './operatives/components/operative-details/operative-details.component';\r\nimport {CompanyDashboardComponent} from './company/components/company-dashboard/company-dashboard.component';\r\nimport {CompanyDocumentsPageComponent} from './company/components/company-documents-page/company-documents-page.component';\r\nimport {DocumentViewerComponent} from './documents/components/document-viewer/document-viewer.component';\r\nimport {OperativeDocumentsPageComponent} from './operatives/components/operative-documents-page/operative-documents-page.component';\r\nimport {CompanyObservationsComponent} from './observations/components/company-observations/company-observations.component';\r\nimport {OperativesObservationsComponent} from './observations/components/operatives-observations/operatives-observations.component';\r\nimport {CompanyDocumentDetailsPageComponent} from './company/components/company-document-details-page/company-document-details-page.component';\r\nimport {OperativeDocumentDetailsPageComponent} from './operatives/components/operative-document-details-page/operative-document-details-page.component';\r\nimport {TrainingRecordDocumentsPageComponent} from './training-records/components/training-record-documents-page/training-record-documents-page.component';\r\nimport {TrainingRecordDetailsComponent} from './training-records/components/training-record-details/training-record-details.component';\r\nimport {TrainingRecordDocumentDetailsPageComponent} from './training-records/components/training-record-document-details-page/training-record-document-details-page.component';\r\nimport {CompanyOperativesComponent} from './company/components/company-operatives/company-operatives.component';\r\nimport {AuthorizeGuard} from '../api-authorization/authorize.guard';\r\nimport {MainShellComponent} from './main-shell/main-shell.component';\r\nimport {CompanyOperativeTrainingRecordsPageComponent} from './company/components/company-operative-training-records-page/company-operative-training-records-page.component';\r\nimport {CompanyAlertsPageComponent} from './alerts/components/company-alerts-page/company-alerts-page.component';\r\nimport {SupervisionAlertsPageComponent} from './alerts/components/supervision-alerts-page/supervision-alerts-page.component';\r\nimport {HelpPageComponent} from './help/pages/help-page/help-page.component';\r\nimport {HelpConsts} from './help/models/help-consts';\r\nimport {CompanyOptInGuard} from './opt-in-guard/company-opt-in.guard';\r\nimport {OrderFormPageComponent} from './company/components/order-form-page/order-form-page.component';\r\nimport {CompanyTrainingCoursesComponent} from \"./admin-lists/components/company-training-courses/company-training-courses.component\";\r\nimport {OperativeUploadComponent} from \"./operatives/components/operative-upload/operative-upload.component\";\r\nimport { AuditHistoryComponent } from './admin-lists/components/audit-history/audit-history.component';\r\nimport { TrainingCourseDetailsComponent } from \"./admin-lists/components/company-training-course-details/company-training-course-details.component\";\r\nimport { TrainingTypeDocumentDetailsPageComponent } from './training-records/components/training-type-document-details-page/training-type-document-details-page.component';\r\nimport { ObservationDocumentDetailsPageComponent } from './observations/components/observation-document-details-page/observation-document-details-page.component';\r\nimport { ObservationDetailsComponent } from './observations/components/observation-details/observation-details.component';\r\nimport { CompanySettingsPageComponent } from './company/components/company-settings-page/company-settings-page.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: MainShellComponent,\r\n canActivate: [AuthorizeGuard, CompanyOptInGuard],\r\n data: {breadcrumb: {label: 'Dashboard', info: {iconName: 'tachometer-alt-fast'}}},\r\n children: [{\r\n path: '', component: CompanyDashboardComponent,\r\n data: {help: HelpConsts.CompanyDashboardHelp},\r\n },\r\n {\r\n path: 'dashboard', component: CompanyDashboardComponent,\r\n data: {help: HelpConsts.CompanyDashboardHelp},\r\n },\r\n {\r\n path: 'order-form', component: OrderFormPageComponent,\r\n data: {\r\n breadcrumb: {alias: 'operativeDetails', label: ' ', info: {iconName: 'user'}}\r\n },\r\n },\r\n {\r\n path: 'operatives', component: CompanyOperativesComponent,\r\n data: {help: HelpConsts.CompanyOperativesHelp},\r\n },\r\n {\r\n path: 'operative/:operativeId', component: OperativeDetailsComponent,\r\n data: {help: HelpConsts.OperativeDetails},\r\n },\r\n {\r\n path: 'createoperative/:operativeId', component: OperativeDetailsComponent,\r\n data: {\r\n breadcrumb: {alias: 'operativeDetails', label: ' ', info: {iconName: 'user'}}\r\n },\r\n },\r\n {\r\n path: 'operative-documents', component: OperativeDocumentsPageComponent,\r\n data: {help: HelpConsts.AllOperativeDocumentsHelp},\r\n },\r\n {\r\n path: 'operative-document/:documentId', component: OperativeDocumentDetailsPageComponent,\r\n },\r\n {\r\n path: 'operative-upload', component: OperativeUploadComponent,\r\n },\r\n {\r\n path: 'company-documents/:navAction', component: CompanyDocumentsPageComponent,\r\n data: {help: HelpConsts.CompanyDocumentsHelp},\r\n },\r\n {\r\n path: 'company-documents', component: CompanyDocumentsPageComponent,\r\n data: {help: HelpConsts.CompanyDocumentsHelp},\r\n },\r\n {\r\n path: 'company-document/:documentId', component: CompanyDocumentDetailsPageComponent,\r\n },\r\n {\r\n path: 'document/:docUrl', component: DocumentViewerComponent,\r\n },\r\n {\r\n path: 'company-observations', component: CompanyObservationsComponent,\r\n data: {help: HelpConsts.CompanyObservationsHelp},\r\n },\r\n {\r\n path: 'operative-observations', component: OperativesObservationsComponent,\r\n data: {help: HelpConsts.AllOperativeObservationsHelp},\r\n },\r\n {\r\n path: 'observation-details/:observationId', component: ObservationDetailsComponent,\r\n data: { help: HelpConsts.ObservationDetailsHelp },\r\n },\r\n {\r\n path: 'observation-document/:documentId', component: ObservationDocumentDetailsPageComponent,\r\n data: { help: HelpConsts.ObservationDocumentDetailsHelp },\r\n },\r\n {\r\n path: 'training-record-documents', component: TrainingRecordDocumentsPageComponent,\r\n },\r\n {\r\n path: 'training-record-document/:documentId', component: TrainingRecordDocumentDetailsPageComponent,\r\n },\r\n {\r\n path: 'training-record/:trainingRecordId', component: TrainingRecordDetailsComponent,\r\n data: {help: HelpConsts.TrainingRecordHelp}\r\n },\r\n {\r\n path: 'training-records', component: CompanyOperativeTrainingRecordsPageComponent,\r\n data: {help: HelpConsts.OperativeTrainingRecordsHelp},\r\n },\r\n {\r\n path: 'training-courses', component: CompanyTrainingCoursesComponent,\r\n data: {help: HelpConsts.CompanyTrainingCoursesHelp},\r\n },\r\n {\r\n path: 'training-course/:trainingTypeId', component: TrainingCourseDetailsComponent,\r\n data: { help: HelpConsts.CompanyTrainingCoursesHelp },\r\n },\r\n {\r\n path: 'training-course-document/:documentId', component: TrainingTypeDocumentDetailsPageComponent,\r\n }, \r\n {\r\n path: 'alerts', component: CompanyAlertsPageComponent,\r\n data: {help: HelpConsts.ActionAlertsHelp},\r\n },\r\n {\r\n path: 'supervision-alerts', component: SupervisionAlertsPageComponent,\r\n data: {help: HelpConsts.SupervisionAlertsHelp},\r\n },\r\n {\r\n path: 'audit-history', component: AuditHistoryComponent,\r\n data: { help: HelpConsts.AuditHistoryHelp },\r\n },\r\n {\r\n path: 'help', component: HelpPageComponent,\r\n },\r\n {\r\n path: 'company-settings', component: CompanySettingsPageComponent,\r\n },\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n scrollPositionRestoration: 'enabled'\r\n })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {\r\n}\r\n","import {Component} from '@angular/core';\r\nimport {\r\n Router,\r\n NavigationEnd,\r\n} from '@angular/router';\r\n\r\n//declare const gtag: Function;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n\r\n constructor(private router: Router) {\r\n this.router.events.subscribe(event => {\r\n //if (event instanceof NavigationEnd) {\r\n // gtag('config', 'UA-1456906-8',\r\n // {\r\n // 'page_path': event.urlAfterRedirects\r\n // }\r\n // );\r\n //}\r\n });\r\n }\r\n}\r\n"," \r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { ApiAuthorizationModule } from '../api-authorization/api-authorization.module';\r\nimport { AuthorizeInterceptor } from '../api-authorization/authorize.interceptor';\r\nimport { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { far } from '@fortawesome/pro-regular-svg-icons';\r\nimport { fas } from '@fortawesome/pro-solid-svg-icons';\r\nimport { fad } from '@fortawesome/pro-duotone-svg-icons';\r\nimport { ConfirmProcessModalComponent } from './common/components/confirm-process-modal/confirm-process-modal.component';\r\nimport { ConfirmProcessDateModalComponent } from './common/components/confirm-process-date-modal/confirm-process-date-modal.component';\r\nimport { ListItemSelectorComponent } from './common/components/list-item-selector/list-item-selector.component';\r\nimport { ListItemSelectorModalComponent } from './common/components/list-item-selector-modal/list-item-selector-modal.component';\r\n//import { OperativeTrainingRecordsComponent } from './training-records/operative-training-records/operative-training-records.component';\r\n//import { OperativeTrainingRecordComponent } from './training-records/operative-training-record/operative-training-record.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { OperativesModule } from './operatives/operatives.module';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { CompanyService } from './company/services/company.service';\r\nimport { CompanyDocumentService } from './company/services/company-documents.service';\r\nimport { CompanyModule } from './company/company.module';\r\nimport { DocumentTypeService } from './services/document-type.service';\r\nimport { CommonsModule } from './common/commons.module';\r\nimport { DocumentsModule } from './documents/documents.module';\r\nimport { ObservationsService } from './observations/services/observations.service';\r\nimport { DocumentService } from './documents/services/document.service';\r\nimport { DocumentModalService } from './documents/services/document-modal.service';\r\nimport { OperativeDocumentService } from './operatives/services/operative-document.service';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { TrainingRecordDocumentService } from './training-records/services/training-record-document.service';\r\nimport { MainShellComponent } from './main-shell/main-shell.component';\r\nimport { EcaBreadcrumbModule } from './eca-breadcrumb/eca-breadcrumb.module';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AlertsModule } from './alerts/alerts.module';\r\nimport { BugLoggerModule } from './bug-logger/bug-logger.module';\r\nimport { HelpPageComponent } from './help/pages/help-page/help-page.component';\r\nimport { HelpModule } from './help/help.module';\r\nimport { CompanyOptInService } from './company/services/company-opt-in.service';\r\nimport { TableModule } from 'primeng/table';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { DialogService } from \"primeng/dynamicdialog\";\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { NgxPrintModule } from 'ngx-print';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { RiskHelpComponent } from './admin-lists/components/risk-help/risk-help.component';\r\nimport { RiskMatrixComponent } from './admin-lists/components/risk-matrix/risk-matrix.component';\r\nimport { CompanyTrainingCoursesComponent } from './admin-lists/components/company-training-courses/company-training-courses.component';\r\nimport { TrainingCourseEditorComponent } from './admin-lists/training-course-editor/training-course-editor.component';\r\nimport { TrainingCourseDetailsComponent } from './admin-lists/components/company-training-course-details/company-training-course-details.component';\r\nimport { HttpCancelService } from './common/services/http-cancel.service';\r\nimport { HttpCancelInterceptor } from './common/services/cancel-interceptor.service';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { AuditHistoryComponent } from './admin-lists/components/audit-history/audit-history.component';\r\nimport { TrainingRecordsModule } from './training-records/training-records.module';\r\nimport { ObservationDocumentService } from './observations/services/observation-document.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n HomeComponent,\r\n ConfirmProcessModalComponent,\r\n ConfirmProcessDateModalComponent,\r\n ListItemSelectorComponent,\r\n ListItemSelectorModalComponent,\r\n //OperativeTrainingRecordsComponent,\r\n //OperativeTrainingRecordComponent,\r\n MainShellComponent,\r\n HelpPageComponent,\r\n RiskHelpComponent,\r\n RiskMatrixComponent,\r\n CompanyTrainingCoursesComponent,\r\n TrainingCourseEditorComponent,\r\n TrainingCourseDetailsComponent,\r\n AuditHistoryComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ApiAuthorizationModule,\r\n QuillModule.forRoot(),\r\n NgxPrintModule,\r\n FontAwesomeModule,\r\n\r\n // primeng\r\n TableModule,\r\n DropdownModule,\r\n InputTextModule,\r\n CalendarModule,\r\n CheckboxModule,\r\n PanelModule,\r\n TabViewModule,\r\n MenubarModule,\r\n BreadcrumbModule,\r\n\r\n // our modules\r\n EcaBreadcrumbModule,\r\n AlertsModule,\r\n BugLoggerModule,\r\n HelpModule,\r\n CompanyModule,\r\n CommonsModule,\r\n DocumentsModule,\r\n SharedModule,\r\n OperativesModule,\r\n AppRoutingModule,\r\n TrainingRecordsModule\r\n ],\r\n providers: [\r\n DatePipe,\r\n CompanyDocumentService,\r\n ObservationsService,\r\n CompanyService,\r\n DocumentTypeService,\r\n DocumentService,\r\n DocumentModalService,\r\n OperativeDocumentService,\r\n ObservationDocumentService,\r\n TrainingRecordDocumentService,\r\n CompanyOptInService,\r\n HttpCancelService,\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthorizeInterceptor, multi: true },\r\n {\r\n multi: true,\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpCancelInterceptor\r\n },\r\n DialogService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n constructor(library: FaIconLibrary) {\r\n // Add an icon to the library for convenient access in other components\r\n library.addIconPacks(far, fad, fas);\r\n }\r\n}\r\n\r\nexport function getWindow() {\r\n return window;\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {LogItemEditorModalComponent} from './components/log-item-editor-modal/log-item-editor-modal.component';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {SharedModule} from '../shared/shared.module';\r\nimport {FileUploadModule} from 'primeng/fileupload';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {TableModule} from 'primeng/table';\r\nimport {RouterModule} from '@angular/router';\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport {CommonsModule} from \"../common/commons.module\";\r\n\r\n\r\n@NgModule({\r\n declarations: [LogItemEditorModalComponent],\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n FontAwesomeModule,\r\n SharedModule,\r\n FileUploadModule,\r\n FormsModule,\r\n TableModule,\r\n RouterModule,\r\n CommonsModule\r\n ]\r\n})\r\nexport class BugLoggerModule {\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { ILogItem, LogItem, LogItemStatusString } from '../../models/log-item.class';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { BugLoggerService } from '../../services/bug-logger.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { SettingsProviderService } from '../../../common/settings-provider.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { Router } from '@angular/router';\r\nimport { FileUpload } from \"primeng/fileupload\";\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-log-item-editor-modal',\r\n templateUrl: './log-item-editor-modal.component.html',\r\n styleUrls: ['./log-item-editor-modal.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class LogItemEditorModalComponent implements OnInit {\r\n documentUploadRequest: FormData;\r\n settingsProviderService = new SettingsProviderService('ecaApi');\r\n @Input() modalHeading = 'Log a Problem';\r\n @Input() editing = false;\r\n @Input() isReadOnly = false;\r\n @Input() logItem: ILogItem = new LogItem();\r\n @Output() saveLogItemRequested: EventEmitter = new EventEmitter();\r\n @Output() cancelRequested: EventEmitter = new EventEmitter();\r\n acceptedFileTypes = '.doc, .docx,.png, .jpg, .jpeg, .txt,.ppt, .pptx,.xls, .xlsx, .xlsm, .pdf';\r\n submitted: boolean;\r\n isEditing = true;\r\n uploadedFiles: File[] = [];\r\n maxFileSize = 20971520; // TODO Get max file size from settings.. default to 20mb\r\n chooseLabel = 'Choose File';\r\n logItemStatus: typeof LogItemStatusString = LogItemStatusString;\r\n @ViewChild('uploader', { static: true }) uploader: FileUpload;\r\n\r\n showingHelp: any;\r\n ctrlFileUploadLabel = 'Attachments';\r\n sectionOptions = [\r\n { value: '', label: '' },\r\n { value: 'Dashboard', label: 'Dashboard' },\r\n { value: 'EAS Guidance', label: 'EAS Guidance' },\r\n { value: 'Adding Operatives', label: 'Adding Operatives' },\r\n { value: 'Editing Operatives', label: 'Editing Operatives' },\r\n { value: 'Operative Management', label: 'Operative Management' },\r\n { value: 'Adding Documents', label: 'Adding Documents' },\r\n { value: 'Editing Documents', label: 'Editing Documents' },\r\n { value: 'Document Management', label: 'Document Management' },\r\n { value: 'Adding Training Records', label: 'Adding Training Records' },\r\n { value: 'Editing Training Records', label: 'Editing Training Records' },\r\n { value: 'Training Record Management', label: 'Training Record Management' },\r\n { value: 'Training Courses Management', label: 'Training Courses Management' },\r\n { value: 'Adding Observations', label: 'Adding Observations' },\r\n { value: 'Editing Observations', label: 'Editing Observations' },\r\n { value: 'Observation Management', label: 'Observation Management' },\r\n ];\r\n private loggedInuser: IUserInfo;\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private modalRef: DynamicDialogRef,\r\n private deviceService: DeviceDetectorService,\r\n private bugLoggerService: BugLoggerService,\r\n private userService: OurUserService,\r\n private documentService: DocumentService,\r\n private router: Router\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService?.getLoggedInUser().subscribe(res => {\r\n this.loggedInuser = res;\r\n });\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Preview',\r\n icon: 'fas fa-search',\r\n state: { 'contextLogic': 'canPreviewDocument' },\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openLogItemDocumentClicked($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadLogItemDocumentClicked($event)\r\n }\r\n\r\n ]\r\n }\r\n getBrowserDetail() {\r\n const deviceInfo = this.deviceService.getDeviceInfo();\r\n this.logItem.browserDetail = `${deviceInfo?.browser} ${deviceInfo?.browser_version}`;\r\n }\r\n saveLogItem() {\r\n this.modalRef.close();\r\n }\r\n\r\n editLogItem() {\r\n this.editing = false;\r\n }\r\n\r\n cancelClicked() {\r\n this.cancelRequested.emit();\r\n this.modalRef.close();\r\n }\r\n\r\n getHeadingFromOperative() {\r\n if (!this.logItem?.id || this.logItem.id === consts.emptyGuid) {\r\n return 'Add a New Issue';\r\n }\r\n return 'Update Issue';\r\n }\r\n\r\n onUpload(event: any) {\r\n this.uploadedFiles = [];\r\n for (const file of event.files) {\r\n this.uploadedFiles.push(file);\r\n }\r\n }\r\n\r\n onRemove(event: any) {\r\n const index = this.uploader.files.indexOf(event);\r\n if (index > -1) {\r\n this.uploader.remove(null, index);\r\n }\r\n const fileIndex = this.uploadedFiles?.findIndex(c => c?.name === event?.name);\r\n this.uploadedFiles.splice(fileIndex, 1);\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n\r\n editClicked() {\r\n\r\n }\r\n\r\n saveClicked() {\r\n this.getBrowserDetail();\r\n this.logItem.appRoute = this.router.url;\r\n this.logItem.officeId = this.loggedInuser?.companyId;\r\n this.logItem.foundInVersion = this.settingsProviderService.appVersion;\r\n this.documentUploadRequest = new FormData();\r\n const v = this.logItem as {};\r\n for (const prop in this.logItem) {\r\n if (this.logItem.hasOwnProperty(prop)) {\r\n this.documentUploadRequest.append(prop, this.logItem[prop]);\r\n }\r\n }\r\n this.uploadedFiles?.forEach(file => {\r\n this.documentUploadRequest.append('Files', file);\r\n });\r\n\r\n this.saveLogItemRequested.emit(this.documentUploadRequest);\r\n }\r\n\r\n selectedPriorityChanged() {\r\n\r\n }\r\n\r\n viewLogItemDocumentClicked(document: any) {\r\n\r\n }\r\n\r\n downloadLogItemDocumentClicked(document: any) {\r\n this.documentService.downloadOrOpenDocument(document, true);\r\n }\r\n\r\n openLogItemDocumentClicked(document: any) {\r\n this.documentService.downloadOrOpenDocument(document);\r\n\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The bug logger screen allows you to record any issues you may have with the system.

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

Drop Your Files Here

\r\n
\r\n \r\n
{{file.name | ellipsis : 10: false}}
\r\n
{{file.size}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\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
\r\n \r\n \r\n \r\n Supporting Documents\r\n \r\n \r\n \r\n \r\n \r\n {{document.originalFilename}}\r\n \r\n
\r\n \r\n \r\n
\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 {consts} from '../../common/modals/consts';\r\nimport {IDocumentSummaryInfo} from '../../message-models/document-summary-info.interface';\r\nimport {IDocumentSummary} from '../../message-models/document-summary.interface';\r\nimport {ILogItemDocumentSummary} from './log-item-document-summary';\r\nimport {IDateTimeWithZone} from '../../common/date-time-with-zone.interface';\r\n\r\nexport class LogItem implements ILogItem {\r\n\r\n constructor(iLogItem?: ILogItem) {\r\n this.id = iLogItem?.id || consts.emptyGuid;\r\n this.descriptionHtml = iLogItem?.descriptionHtml || '';\r\n this.logItemNumber = iLogItem?.logItemNumber || 0;\r\n this.loggedForEmail = iLogItem?.loggedForEmail || '';\r\n this.companyName = iLogItem?.companyName || '';\r\n this.browserDetail = iLogItem?.browserDetail || '';\r\n this.memberNumber = iLogItem?.memberNumber || '';\r\n this.officeId = iLogItem?.officeId || consts.emptyGuid;\r\n this.loggedByEmail = iLogItem?.loggedByEmail || '';\r\n this.completedBy = iLogItem?.completedBy || '';\r\n this.fixedInVersion = iLogItem?.fixedInVersion || '';\r\n this.loggedOn = iLogItem?.loggedOn || null;\r\n this.completionOn = iLogItem?.completionOn || null;\r\n this.lastStatusUpdate = iLogItem?.lastStatusUpdate || null;\r\n this.assignedTo = iLogItem?.assignedTo || '';\r\n this.itemStatus = iLogItem?.itemStatus || LogItemStatus.NotStarted;\r\n this.summaryInfo = iLogItem?.summaryInfo || '';\r\n iLogItem?.documents?.forEach(doc => this.documents?.push(doc));\r\n this.appRoute = iLogItem?.appRoute || '';\r\n this.canReproduce = iLogItem?.canReproduce || false;\r\n this.section = iLogItem?.section || '';\r\n\r\n }\r\n id: string;\r\n descriptionHtml: string;\r\n summaryInfo: string;\r\n logItemNumber: number;\r\n loggedForEmail: string;\r\n companyName: string;\r\n browserDetail: string;\r\n memberNumber: string;\r\n officeId: string;\r\n loggedByEmail: string;\r\n completedBy: string;\r\n fixedInVersion: string;\r\n foundInVersion: string;\r\n loggedOn: IDateTimeWithZone | null;\r\n completionOn: IDateTimeWithZone | null;\r\n lastStatusUpdate: IDateTimeWithZone | null;\r\n assignedTo: string;\r\n itemStatus: LogItemStatus;\r\n documents: ILogItemDocumentSummary[];\r\n appRoute: string;\r\n canReproduce: boolean;\r\n section: string;\r\n}\r\n\r\n\r\nexport interface ILogItem {\r\n id: string;\r\n descriptionHtml: string;\r\n summaryInfo: string;\r\n logItemNumber: number;\r\n loggedForEmail: string;\r\n companyName: string;\r\n browserDetail: string;\r\n memberNumber: string;\r\n officeId: string;\r\n loggedByEmail: string;\r\n completedBy: string;\r\n fixedInVersion: string;\r\n foundInVersion: string;\r\n loggedOn: IDateTimeWithZone | null;\r\n completionOn: IDateTimeWithZone | null;\r\n lastStatusUpdate: IDateTimeWithZone | null;\r\n assignedTo: string;\r\n itemStatus: LogItemStatus;\r\n documents: ILogItemDocumentSummary[];\r\n appRoute: string;\r\n canReproduce: boolean;\r\n section: string;\r\n}\r\n\r\n\r\nexport enum LogItemStatus {\r\n NotStarted,\r\n InProgress,\r\n Complete\r\n}\r\nexport enum LogItemStatusString {\r\n 'Not Started',\r\n 'In Progress',\r\n 'Complete'\r\n}\r\n\r\n\r\n\r\n","import {Injectable} from '@angular/core';\r\nimport {IModalOptions} from '../../common/modals/modal-options.interface';\r\nimport {EcaModalOptions} from '../../shared/models/yesno-modal-options.class';\r\nimport {LogItem} from '../models/log-item.class';\r\nimport {LogItemEditorModalComponent} from '../components/log-item-editor-modal/log-item-editor-modal.component';\r\nimport {EcaConfirmInfoModalOptions} from '../../shared/models/confirm-info-modal-options.class';\r\nimport {EcaConfirmProcessService} from '../../shared/services/eca-confirm-process.service';\r\nimport {BugLoggerService} from './bug-logger.service';\r\nimport {ErrorHandlingService} from '../../services/error-handling.service';\r\nimport {OurUserService} from '../../users/services/user.service';\r\nimport {IUserInfo} from '../../users/models/userInfo.interface';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class BugLoggerModalService {\r\n bugLogEditorModalRef: IEcaDialogRef;\r\n bugLogSettingsEditorModalRef: IEcaDialogRef;\r\n private loggedInUser: IUserInfo;\r\n\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService,\r\n private bugLoggerService: BugLoggerService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private confirmProcessService: EcaConfirmProcessService) {\r\n this.userService.getLoggedInUserSubject().subscribe(res => {\r\n this.loggedInUser = res;\r\n });\r\n }\r\n\r\n openLogItemEditorModal(logItem?: LogItem,\r\n headerText?: string,\r\n isNewLogItem: boolean = false,\r\n options?: IModalOptions) {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += ' modal-eca-success';\r\n }\r\n let isReadOnly;\r\n if (!logItem) {\r\n logItem = new LogItem();\r\n isReadOnly = false;\r\n } else {\r\n isReadOnly = true;\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n header: headerText,\r\n data: {\r\n heading: headerText,\r\n logItem,\r\n isReadOnly\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.bugLogEditorModalRef = this.ecaDynamicModalService.openDialog(LogItemEditorModalComponent,config);\r\n this.bugLogEditorModalRef?.content?.saveLogItemRequested.subscribe(documentUploadRequest => {\r\n if (documentUploadRequest) {\r\n this.bugLoggerService.saveOrCreateLogItem(documentUploadRequest).subscribe(res => {\r\n this.bugLogEditorModalRef?.dynamicDialogRef.close();\r\n if (res) {\r\n this.confirmProcessService.openConfirmProcessModal(`

Issue logged succesfully.

`, 'Issue logged succesfully',\r\n new EcaConfirmInfoModalOptions()).asObservable().subscribe(res2 => {\r\n });\r\n }\r\n }, error => {\r\n });\r\n }\r\n });\r\n this.bugLogEditorModalRef?.content?.cancelRequested.subscribe(cancelRequested => {\r\n this.bugLogEditorModalRef?.dynamicDialogRef.close();\r\n });\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport {ILogItem} from '../models/log-item.class';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {Router} from '@angular/router';\r\nimport {DocumentTypeService} from '../../services/document-type.service';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {ILogItemSettings} from '../models/log-item-settings.class';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BugLoggerService extends BaseApiService {\r\n logItemsSubject = new BehaviorSubject([]);\r\n totalIssuesCountSubject = new BehaviorSubject(0);\r\n\r\n constructor(http: HttpClient, private router: Router, private documentTypeService: DocumentTypeService) {\r\n super(http, new SettingsProviderService('ecaApi'), 'BugLogger');\r\n }\r\n\r\n getLogItemSettings(): Observable {\r\n return this.post('GetLogItemSettings');\r\n }\r\n\r\n getLogItem(logItemId: string): Observable {\r\n return this.post('GetLogItem', {logItemId});\r\n }\r\n\r\n saveOrCreateLogItem(logItemFormData: FormData): Observable {\r\n return this.post('SaveOrCreateLogItem', logItemFormData);\r\n }\r\n\r\n}\r\n","import { SettingsProviderService } from './settings-provider.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {Observable} from \"rxjs\";\r\n\r\n\r\nexport class BaseApiService {\r\n\r\n constructor(protected http: HttpClient, protected settingsProvider: SettingsProviderService, private controllerName: string ) { }\r\n\r\n protected get baseUrl(): string {\r\n return `${this.settingsProvider.baseApiUrl}/${this.controllerName}/`;\r\n }\r\n\r\n protected post(urlPart: string, body: any = null): Observable{\r\n return this.http.post(this.baseUrl + urlPart, body);\r\n }\r\n\r\n protected get(urlPart: string): Observable{\r\n return this.http.get(this.baseUrl + urlPart);\r\n }\r\n}\r\n","import {add, isAfter} from 'date-fns'\r\nimport {Observable, of} from \"rxjs\";\r\n\r\nexport class CachedData {\r\n public lastLoaded: Date;\r\n private _numSecondsToKeep: number;\r\n data: T[] = [];\r\n\r\n constructor(data: T[], numSecondsToKeep: number = 300) {\r\n this._numSecondsToKeep = numSecondsToKeep;\r\n this.data = data;\r\n //this.lastLoaded = new Date();\r\n }\r\n\r\n invalidateData() {\r\n this.lastLoaded = null;\r\n }\r\n\r\n isDataFresh() {\r\n if (this.lastLoaded == null)\r\n return false;\r\n\r\n return isAfter(this.lastLoaded, add(new Date(), {seconds: -1 * this._numSecondsToKeep}));\r\n }\r\n\r\n clear() {\r\n this.data.length = 0;\r\n }\r\n\r\n addData(dataPoint: T) {\r\n this.data.push(dataPoint);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ModalHostComponent } from './components/modal-host/modal-host.component';\r\nimport { EllipsisPipe } from './pipes/ellipsis-pipe';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { DashboardCardComponent } from './components/dashboard-card/dashboard-card.component';\r\nimport { DetailContainerComponent } from './components/detail-container/detail-container.component';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { CardModule } from 'primeng/card';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ModalHostComponent,\r\n EllipsisPipe,\r\n DashboardCardComponent,\r\n DetailContainerComponent\r\n\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n FontAwesomeModule,\r\n TableModule,\r\n InputTextModule,\r\n RouterModule,\r\n CommonModule,\r\n PanelModule,\r\n CardModule,\r\n DropdownModule\r\n ],\r\n exports: [\r\n EllipsisPipe, DashboardCardComponent, DetailContainerComponent, PanelModule, CardModule, DropdownModule\r\n ]\r\n})\r\nexport class CommonsModule { }\r\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\n\r\n@Component({\r\n selector: 'app-confirm-process-date-modal',\r\n templateUrl: './confirm-process-date-modal.component.html',\r\n styleUrls: ['./confirm-process-date-modal.component.scss']\r\n})\r\nexport class ConfirmProcessDateModalComponent implements OnInit {\r\n @Input() question: string;\r\n @Input() heading: string;\r\n @Input() yesButtonText = 'Yes';\r\n @Input() noButtonText = 'No';\r\n @Input() yesButtonColour = 'success';\r\n @Input() noButtonColour = 'danger';\r\n @Input() yesButtonIcon: string = null;\r\n @Input() noButtonIcon: string = null;\r\n\r\n @Output() answer: EventEmitter = new EventEmitter();\r\n selectedDate: string;\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n clicked(dateEntered: string) {\r\n this.answer.emit(dateEntered);\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n \r\n
\r\n
\r\n
\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, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\n\r\n@Component({\r\n selector: 'app-confirm-process-modal',\r\n templateUrl: './confirm-process-modal.component.html',\r\n styleUrls: ['./confirm-process-modal.component.scss']\r\n})\r\nexport class ConfirmProcessModalComponent implements OnInit {\r\n @Input() question: string;\r\n @Input() heading: string;\r\n @Input() yesButtonText = 'Yes';\r\n @Input() noButtonText = 'No';\r\n @Input() yesButtonColour = 'success';\r\n @Input() noButtonColour = 'danger';\r\n @Input() yesButtonIcon: string = null;\r\n @Input() noButtonIcon: string = null;\r\n\r\n @Output() answer: EventEmitter = new EventEmitter();\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n clicked(answer: boolean) {\r\n this.answer.emit(answer);\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\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, TemplateRef } from '@angular/core';\r\nimport { DashboardCard, IDashboardCard } from '../../modals/dashboard-card.class';\r\n\r\n@Component({\r\n selector: 'app-dashboard-card',\r\n templateUrl: './dashboard-card.component.html',\r\n styleUrls: ['./dashboard-card.component.scss']\r\n})\r\nexport class DashboardCardComponent implements OnInit {\r\n @Input() cardHeaderAction: TemplateRef;\r\n @Input() collapsedCardHeader: TemplateRef;\r\n @Input() cardHeader: TemplateRef;\r\n @Input() dashboardCard: DashboardCard = new DashboardCard({} as IDashboardCard);\r\n @Input() headerIcon: string;\r\n @Input() headerText: string;\r\n @Input() toggleable: true;\r\n @Input() transitionOptions: string;\r\n @Input() collapsedOnMobile = false;\r\n constructor() {\r\n }\r\n ngOnInit(): void {\r\n if (this.collapsedOnMobile) {\r\n if (window.innerWidth < 468) {\r\n this.dashboardCard.isCollapsed = true;\r\n }\r\n }\r\n }\r\n panelToggle() {\r\n this.dashboardCard.isCollapsed = !this.dashboardCard.isCollapsed;\r\n };\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

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

\r\n

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

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n","\r\n
\r\n\r\n \r\n \r\n \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, TemplateRef, ViewChild } from '@angular/core';\r\n//import { DashboardCard, IDashboardCard } from '../../modals/dashboard-card.class';\r\n\r\n@Component({\r\n selector: 'app-detail-container',\r\n templateUrl: './detail-container.component.html',\r\n styleUrls: ['./detail-container.component.scss']\r\n})\r\nexport class DetailContainerComponent implements OnInit {\r\n @Input() containerHeaderAction: TemplateRef;\r\n @Input() containerHeader: TemplateRef;\r\n @Input() collapsedContainerHeader: TemplateRef;\r\n// @Input() dashboardCard: DashboardCard = new DashboardCard({} as IDashboardCard);\r\n @Input() containerClass: string;\r\n @Input() isCollapsible = true;\r\n @Input() isCollapsed = false;\r\n @Input() pullRightOnMobile = true;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (window.innerWidth < 480) {\r\n this.isCollapsed = true;\r\n }\r\n }\r\n\r\n expandClicked() {\r\n // this.isCollapsed = false;\r\n }\r\n collapseClicked() {\r\n // this.isCollapsed = true;\r\n }\r\n panelToggle() {\r\n //alert(this.dashboardCard.isCollapsed);\r\n this.isCollapsed = !this.isCollapsed;\r\n //this.isCollapsed = !this.isCollapsed;\r\n };\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { IHaveDescription } from \"../../have-description.interface\";\r\n\r\n@Component({\r\n selector: 'app-list-item-selector-modal',\r\n templateUrl: './list-item-selector-modal.component.html',\r\n styleUrls: ['./list-item-selector-modal.component.scss']\r\n})\r\n\r\nexport class ListItemSelectorModalComponent implements OnInit {\r\n @Input() guidance: string;\r\n @Input() heading: string;\r\n @Input() cancelButtonText = 'Cancel';\r\n @Input() cancelButtonColour = 'danger';\r\n @Input() cancelButtonIcon: string = null;\r\n\r\n @Input() items: IHaveDescription[] = [];\r\n @Input() currentItem: IHaveDescription;\r\n\r\n @Output() itemSelected: EventEmitter = new EventEmitter();\r\n\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n selectItem(item: IHaveDescription) {\r\n this.itemSelected.emit(item);\r\n this.modalRef.close();\r\n }\r\n\r\n closeWithoutSelect() {\r\n this.itemSelected.emit(null);\r\n this.modalRef.close();\r\n }\r\n\r\n onItemSelected(item: IHaveDescription) {\r\n this.selectItem(item);\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\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, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {IHaveDescription} from \"../../have-description.interface\";\r\n\r\n@Component({\r\n selector: 'app-list-item-selector',\r\n templateUrl: './list-item-selector.component.html',\r\n styleUrls: ['./list-item-selector.component.scss']\r\n})\r\nexport class ListItemSelectorComponent implements OnInit {\r\n @Input() items: IHaveDescription[] = [];\r\n @Input() currentItem: IHaveDescription;\r\n\r\n @Output() itemSelected: EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n selectItem(item: IHaveDescription) {\r\n this.itemSelected.emit(item);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\n\r\n@Component({\r\n selector: 'app-modal-host',\r\n templateUrl: './modal-host.component.html',\r\n styleUrls: ['./modal-host.component.scss']\r\n})\r\nexport class ModalHostComponent implements OnInit {\r\n @Input() heading: string;\r\n @Input() yesButtonText = 'Save';\r\n @Input() noButtonText = 'Cancel';\r\n @Input() yesButtonColour = 'success';\r\n @Input() noButtonColour = 'danger';\r\n @Input() yesButtonIcon: string = null;\r\n @Input() noButtonIcon: string = null;\r\n\r\n @Output() answer: EventEmitter = new EventEmitter();\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n clicked(answer: boolean) {\r\n this.answer.emit(answer);\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import {IDateTimeWithZone} from './date-time-with-zone.interface';\r\n\r\nexport class DateTimeWithZone implements IDateTimeWithZone {\r\n constructor(iDateTimeWithZone?: IDateTimeWithZone) {\r\n if(iDateTimeWithZone?.dateTime === '') {\r\n this.dateTime = null;\r\n }\r\n this.dateTime = iDateTimeWithZone?.dateTime || null;\r\n this.timeZone = iDateTimeWithZone?.timeZone;\r\n }\r\n\r\n dateTime: string;\r\n timeZone: string;\r\n}\r\n","export class excelStyle {\r\n public excelStyleAlignment: excelStyleAlignment;\r\n public excelStyleFill: excelStyleFill;\r\n public excelStyleFont: excelStyleFont;\r\n constructor();\r\n constructor(fgColor?: string, alignmentH?: string, fontSz?: string, fontColour?: string, fontBold?: boolean)\r\n\r\n constructor(fgColor?: string, alignmentH?: string, fontSz?: string, fontColour?: string, fontBold?: boolean) {\r\n this.excelStyleAlignment = new excelStyleAlignment();\r\n this.excelStyleFill = new excelStyleFill();\r\n this.excelStyleFont = new excelStyleFont();\r\n }\r\n}\r\n\r\nexport class excelStyleAlignment {\r\n public vertical: string;\r\n public horizontal: string;\r\n public wrapText: boolean;\r\n public textRotation: number;\r\n constructor() {\r\n this.vertical = 'bottom';\r\n this.horizontal = 'left';\r\n this.wrapText = false;\r\n this.textRotation = 0;\r\n }\r\n}\r\n\r\nexport class excelStyleFill {\r\n public fgColor: excelStyleColor;\r\n public bgColor: excelStyleColor;\r\n constructor() {\r\n this.fgColor = new excelStyleColor('');\r\n this.bgColor = new excelStyleColor('');\r\n }\r\n}\r\n\r\nexport class excelStyleFont {\r\n public bold: boolean;\r\n public color: excelStyleColor;\r\n public italic: boolean;\r\n public sz: string;\r\n constructor() {\r\n this.bold = false;\r\n this.color = new excelStyleColor('');\r\n this.italic = false;\r\n this.sz = '11';\r\n }\r\n}\r\n\r\nexport class excelStyleColor {\r\n public rgb: string;\r\n constructor(rgb: string) {\r\n this.rgb = rgb;\r\n }\r\n}\r\n \r\n","import {IModalOptions} from './modal-options.interface';\r\n\r\nexport class CancelOnlyModalOptions implements IModalOptions {\r\n modalClasses = 'modal-info';\r\n noButtonColour = 'danger';\r\n noButtonIcon = 'fas fa-times';\r\n noButtonText = 'Cancel';\r\n yesButtonColour = '';\r\n yesButtonIcon = '';\r\n yesButtonText = '';\r\n editButtonIcon: 'fas fa-edit';\r\n}\r\n","export class consts{\r\n static emptyGuid = \"00000000-0000-0000-0000-000000000000\";\r\n}\r\n","export class DashboardCard implements IDashboardCard{\r\n constructor(iDashboardCard: IDashboardCard) {\r\n this.columnSize = iDashboardCard?.columnSize || 12;\r\n this.headerClass = iDashboardCard?.headerClass || '';\r\n this.isCollapsed = iDashboardCard?.isCollapsed || false;\r\n this.toggleable = iDashboardCard?.toggleable || true;\r\n this.transitionOptions = iDashboardCard?.transitionOptions || '200ms';\r\n }\r\n columnSize: number;\r\n headerClass: string;\r\n isCollapsed: boolean;\r\n toggleable: boolean;\r\n transitionOptions: string;\r\n}\r\nexport interface IDashboardCard {\r\n columnSize: number;\r\n headerClass: string;\r\n isCollapsed: boolean;\r\n toggleable: boolean;\r\n transitionOptions: string;\r\n}\r\n","import {IModalOptions} from './modal-options.interface';\r\n\r\nexport class YesNoModalOptions implements IModalOptions {\r\n modalClasses = 'modal-info';\r\n noButtonColour = 'danger';\r\n noButtonIcon = 'fas fa-times';\r\n noButtonText = 'No';\r\n yesButtonColour = 'success';\r\n yesButtonIcon = 'fas fa-check';\r\n yesButtonText = 'Yes';\r\n editButtonIcon: 'fas fa-edit';\r\n}\r\n","import { Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'ellipsis'\r\n})\r\nexport class EllipsisPipe {\r\n transform(val, args, removeOnMobile = true) {\r\n if(removeOnMobile){\r\n if (window.innerWidth < 1200) {\r\n return val;\r\n }\r\n }\r\n\r\n if (args === undefined) {\r\n return val;\r\n }\r\n\r\n if (val.length > args) {\r\n return val.substring(0, args) + '...';\r\n } else {\r\n return val;\r\n }\r\n }\r\n}\r\n","import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpCancelService} from './http-cancel.service';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class HttpCancelInterceptor implements HttpInterceptor {\r\n constructor(private httpCancelService: HttpCancelService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(takeUntil(this.httpCancelService.onCancelPendingRequests()));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { saveAs } from 'file-saver';\r\nimport { parse, differenceInDays, isValid } from 'date-fns';\r\nimport { excelStyle } from '../excelStyle.class';\r\nimport * as XLSXStyle from 'xlsx-js-style';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ExportExcelService {\r\n\r\n public exportToExcelByProp(objectList: any, columnNames?: string[], filename?: string): void {\r\n import('xlsx').then(xlsx => {\r\n const newArray: any[] = [];\r\n objectList.forEach((obj, index) => {\r\n const tempObj = {};\r\n columnNames.forEach(column => {\r\n tempObj[column] = obj[column];\r\n\r\n });\r\n newArray.push(tempObj);\r\n });\r\n const worksheet = xlsx.utils.json_to_sheet(newArray);\r\n this.autoFitColumns(newArray, worksheet);\r\n const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, filename);\r\n });\r\n }\r\n\r\n public exportToExcel(objectList: any, columnNames?: any, filename?: string, groupByResults = false) {\r\n import('xlsx').then(xlsx => {\r\n const newArray: any[] = [];\r\n if (!groupByResults) {\r\n objectList.forEach((obj, index) => {\r\n const o = {};\r\n columnNames.forEach(c => {\r\n const value = obj[c.field];\r\n const description = c.header;\r\n o[description] = value;\r\n });\r\n newArray.push(o);\r\n });\r\n } else {\r\n objectList.forEach((obj, index) => {\r\n const o = {};\r\n columnNames.forEach(c => {\r\n let value;\r\n if (c.header === 'Count') {\r\n value = obj.count;\r\n } else {\r\n value = obj.header[c.field];\r\n }\r\n const description = c.header;\r\n o[description] = value;\r\n });\r\n newArray.push(o);\r\n });\r\n }\r\n\r\n const worksheet = xlsx.utils.json_to_sheet(newArray);\r\n this.autoFitColumns(newArray, worksheet);\r\n const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array', cellStyles: true });\r\n this.saveAsExcelFile(excelBuffer, filename);\r\n });\r\n }\r\n\r\n public exportTrainingMatrix(objectList: any, columnNames?: any, filename?: string, groupByResults = false) {\r\n import('xlsx-js-style').then(xlsx => {\r\n const newArray: any[] = [];\r\n if (!groupByResults) {\r\n objectList.forEach((obj, index) => {\r\n const o = {};\r\n columnNames.forEach(c => {\r\n const value = obj[c.field];\r\n const description = c.header;\r\n o[description] = value;\r\n });\r\n newArray.push(o);\r\n });\r\n } else {\r\n objectList.forEach((obj, index) => {\r\n const o = {};\r\n columnNames.forEach(c => {\r\n let value;\r\n if (c.header === 'Count') {\r\n value = obj.count;\r\n } else {\r\n value = obj.header[c.field];\r\n }\r\n const description = c.header;\r\n o[description] = value;\r\n });\r\n newArray.push(o);\r\n });\r\n }\r\n\r\n const data = newArray.map(obj => Object.values(obj));//convert to array of arrays so that data keys are not used as headers\r\n\r\n //Create header rows\r\n const titleRow1 = new Array(data[0].length);\r\n titleRow1[0] = filename; //Title\r\n const titleRow2 = new Array(data[0].length);\r\n titleRow2[0] = 'Exported from ECA eCOMS on ' + new Date().toDateString();//export info\r\n titleRow2[5] = 'Expired'; //colour key\r\n titleRow2[6] = 'Due <30 Days'; //colour key\r\n titleRow2[7] = 'Due >30 Days'; //colour key\r\n const titleRow3 = new Array(data[0].length); //blank\r\n data.unshift(titleRow3);\r\n data.unshift(titleRow2);\r\n data.unshift(titleRow1);\r\n\r\n //Create Worksheet\r\n const worksheet = xlsx.utils.aoa_to_sheet(data);// use aoa instead of Json to stop json key headers being added automatically\r\n\r\n //Apply the styling\r\n this.addFilter(worksheet, data, 4);//apply filter to column headers (2nd row) \r\n this.setDateStyle(worksheet, 30, 0); //apply styles to the cells based on days difference\r\n\r\n const myNoExpirystyle = this.styleBuilder(new excelStyle());\r\n myNoExpirystyle.fill.fgColor.rgb = styleColors.Green;\r\n myNoExpirystyle.alignment.horizontal = 'center';\r\n this.setTextStyle(worksheet, 'No Expiry', myNoExpirystyle); //set No Expiry colour\r\n\r\n const myTitlestyle = this.styleBuilder(new excelStyle());\r\n myTitlestyle.fill.fgColor.rgb = styleColors.SteelBlue;\r\n myTitlestyle.font.bold = true;\r\n myTitlestyle.font.sz = '16';\r\n myTitlestyle.font.color.rgb = styleColors.White;\r\n this.setRowStyle(worksheet, [0], myTitlestyle); //set title colour\r\n this.mergeCells(worksheet, [0, 2], [0, 0]);//merge title cells\r\n\r\n const mySubTitlestyle = this.styleBuilder(new excelStyle());\r\n mySubTitlestyle.fill.fgColor.rgb = styleColors.SteelBlue;\r\n mySubTitlestyle.font.color.rgb = styleColors.White;\r\n this.setRowStyle(worksheet, [1, 2], mySubTitlestyle); //set title colour\r\n this.mergeCells(worksheet, [0, 2], [1, 1]);//merge sub title cells\r\n\r\n const myExpiredStyle = this.styleBuilder(new excelStyle());\r\n myExpiredStyle.fill.fgColor.rgb = styleColors.Red;\r\n myExpiredStyle.alignment.horizontal = 'center';\r\n this.setCellStyle(worksheet, 1, 5, myExpiredStyle); //set Expired Key colour\r\n const myWarningStyle = this.styleBuilder(new excelStyle());\r\n myWarningStyle.fill.fgColor.rgb = styleColors.Yellow;\r\n myWarningStyle.alignment.horizontal = 'center';\r\n this.setCellStyle(worksheet, 1, 6, myWarningStyle); //set Warning Key colour\r\n const myValidStyle = this.styleBuilder(new excelStyle());\r\n myValidStyle.fill.fgColor.rgb = styleColors.Green;\r\n myValidStyle.alignment.horizontal = 'center';\r\n this.setCellStyle(worksheet, 1, 7, myValidStyle); //set Valid Key colour\r\n\r\n const myHeaderstyle = this.styleBuilder(new excelStyle());\r\n myHeaderstyle.fill.fgColor.rgb = styleColors.LightGrey;\r\n myHeaderstyle.alignment.textRotation = 45;\r\n this.setRowStyle(worksheet, [3], myHeaderstyle); //set column headers colour\r\n\r\n const myHVstyle = this.styleBuilder(new excelStyle());\r\n myHVstyle.fill.fgColor.rgb = styleColors.CornflowerBlue;\r\n this.setTextStyle(worksheet, 'High Voltage', myHVstyle); //set HV colour\r\n\r\n\r\n const myLVStyle = this.styleBuilder(new excelStyle());\r\n myLVStyle.fill.fgColor.rgb = styleColors.LightBlue;\r\n this.setTextStyle(worksheet, 'Low Voltage', myLVStyle); //set LV color\r\n\r\n const myNEStyle = this.styleBuilder(new excelStyle());\r\n myNEStyle.fill.fgColor.rgb = styleColors.LightsteelBlue;\r\n this.setTextStyle(worksheet, 'Non Electrical', myNEStyle); //set NE colour\r\n\r\n const autoHeaders = new Array('Operative Name', 'Business Unit', 'Operative Type', 'Job Title');\r\n this.autoFitColumns(newArray, worksheet, autoHeaders); //Auto fit width of first 4 columns\r\n\r\n const myColumnArray = Array.from({ length: 75 }, (v, i) => i + 4);\r\n this.setColumnWidth(worksheet, myColumnArray, 14); //set columns 5-79 to a width of 12\r\n\r\n //Export the workbook\r\n const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array', cellStyles: true });\r\n this.saveAsExcelFile(excelBuffer, filename);\r\n });\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): Promise {\r\n return import('file-saver').then(FileSaver => {\r\n const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n const EXCEL_EXTENSION = '.xlsx';\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n });\r\n }\r\n\r\n private setDateStyle(worksheet: any, expiryAge: number, warningAge: number) {\r\n //Set the styles\r\n const expiredStyle = this.styleBuilder(new excelStyle());\r\n expiredStyle.fill.fgColor.rgb = styleColors.Red;\r\n expiredStyle.alignment.horizontal = 'center'\r\n\r\n const warningStyle = this.styleBuilder(new excelStyle());\r\n warningStyle.fill.fgColor.rgb = styleColors.Yellow;\r\n warningStyle.alignment.horizontal = 'center'\r\n\r\n const validStyle = this.styleBuilder(new excelStyle());\r\n validStyle.fill.fgColor.rgb = styleColors.Green;\r\n validStyle.alignment.horizontal = 'center'\r\n\r\n //Basic Loop throught the worksheet and apply styling based on whether it can pass it as a date\r\n const todaysDate = new Date(); //Todays Date\r\n for (const element in worksheet) {\r\n let data = worksheet[element].v;\r\n //const parsedDate = parse(data, 'dd-MM-yyyy', new Date());//Try to parse the data as a date\r\n const parsedDate = parse(data, 'yyyy-MM-dd', new Date());//Try to parse the data as a date\r\n if (isValid(parsedDate)) { //valid date\r\n const daysDifference = differenceInDays(parsedDate, todaysDate); // Calculate the difference in days (negative days are in the past)\r\n if (daysDifference > expiryAge) //more than 30 days in the future\r\n {\r\n worksheet[element].s = validStyle;\r\n }\r\n else if (daysDifference >= warningAge && daysDifference <= expiryAge) //due in next 30 days\r\n {\r\n worksheet[element].s = warningStyle;\r\n }\r\n else if (daysDifference < warningAge) //in the past\r\n {\r\n worksheet[element].s = expiredStyle;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setTextStyle(worksheet: any, text: string, style: any) {\r\n for (const element in worksheet) {\r\n let data = worksheet[element].v;\r\n if (data == text) {\r\n worksheet[element].s = style;\r\n }\r\n }\r\n }\r\n\r\n private setCellStyle(worksheet: any, rowNumber: number, colNumber: number, style: any) {\r\n const cellAddress = XLSXStyle.utils.encode_cell({ r: rowNumber, c: colNumber });\r\n if (!worksheet[cellAddress]) worksheet[cellAddress] = { v: '' }; // Create the cell if it doesn't exist\r\n worksheet[cellAddress].s = style;\r\n }\r\n\r\n private setRowStyle(worksheet: any, rowNumbers: number[], style: any) {\r\n const range = XLSXStyle.utils.decode_range(worksheet['!ref']);\r\n rowNumbers.forEach(function (element, index, array) {\r\n for (let colNum = range.s.c; colNum <= range.e.c; colNum++) {\r\n const cellAddress = XLSXStyle.utils.encode_cell({ r: element, c: colNum });\r\n if (!worksheet[cellAddress]) worksheet[cellAddress] = { v: '' }; // Create the cell if it doesn't exist\r\n worksheet[cellAddress].s = style;\r\n }\r\n });\r\n }\r\n\r\n private setColumnStyle(worksheet: any, colNumber: number, style: any) {\r\n const range = XLSXStyle.utils.decode_range(worksheet['!ref']);\r\n for (let rowNum = range.s.r; rowNum <= range.e.c; rowNum++) {\r\n const cellAddress = XLSXStyle.utils.encode_cell({ r: rowNum, c: colNumber });\r\n if (!worksheet[cellAddress]) worksheet[cellAddress] = { v: '' }; // Create the cell if it doesn't exist\r\n worksheet[cellAddress].s = style;\r\n }\r\n }\r\n\r\n private setColumnWidth(worksheet: any, colNumber: number[], newWidth: number) {\r\n if (!worksheet['!cols']) {\r\n worksheet['!cols'] = [];\r\n }\r\n colNumber.forEach(function (element, index, array) {\r\n worksheet['!cols'][element] = { width: newWidth };// Set the width for the specified column\r\n })\r\n }\r\n\r\n private autoFitColumns(json: any[], worksheet: any, header?: string[]) {\r\n const jsonKeys = header ? header : Object.keys(json[0]);\r\n const objectMaxLength = [];\r\n for (let i = 0; i < json.length; i++) {\r\n const value = json[i];\r\n for (let j = 0; j < jsonKeys.length; j++) {\r\n if (typeof value[jsonKeys[j]] === 'number') {\r\n objectMaxLength[j] = 10;\r\n } else {\r\n const l = value[jsonKeys[j]] ? value[jsonKeys[j]].length : 0;\r\n objectMaxLength[j] = objectMaxLength[j] >= l ? objectMaxLength[j] : l;\r\n }\r\n }\r\n const key = jsonKeys;\r\n for (let j = 0; j < key.length; j++) {\r\n objectMaxLength[j] =\r\n objectMaxLength[j] >= key[j].length\r\n ? objectMaxLength[j]\r\n : key[j].length;\r\n }\r\n }\r\n worksheet['!cols'] = objectMaxLength.map(w => ({ width: w }));\r\n }\r\n\r\n private mergeCells(worksheet: any, colNumbers: number[], rowNumbers: number[]) {\r\n if (!worksheet['!merges']) {\r\n worksheet['!merges'] = [];\r\n }\r\n const mergeCount = worksheet['!merges'].length;\r\n worksheet['!merges'][mergeCount] = { s: { r: rowNumbers[0], c: colNumbers[0] }, e: { r: rowNumbers[1], c: colNumbers[1] } };\r\n }\r\n\r\n private styleBuilder(style: excelStyle) {\r\n return {\r\n alignment: {\r\n vertical: style.excelStyleAlignment.vertical,\r\n horizontal: style.excelStyleAlignment.horizontal,\r\n wrapText: style.excelStyleAlignment.wrapText,\r\n textRotation: style.excelStyleAlignment.textRotation,\r\n },\r\n fill: {\r\n fgColor:\r\n {\r\n rgb: style.excelStyleFill.fgColor.rgb,\r\n },\r\n bgColor:\r\n {\r\n rgb: style.excelStyleFill.bgColor.rgb,\r\n }\r\n },\r\n font: {\r\n bold: style.excelStyleFont.bold,\r\n color:\r\n {\r\n rgb: style.excelStyleFont.color.rgb,\r\n },\r\n italic: style.excelStyleFont.italic,\r\n sz: style.excelStyleFont.sz\r\n }\r\n }\r\n }\r\n\r\n private addFilter(worksheet: any, data: any, rowNumber: number) {\r\n const lastRow = data.length; // The last row index\r\n \r\n let lastColumn = data[0].length;\r\n let filterIndex = \"\"; //find column index by column number\r\n while (lastColumn > 0) {\r\n let remainder = (lastColumn - 1) % 26;\r\n filterIndex = String.fromCharCode(65 + remainder) + filterIndex;\r\n lastColumn = Math.floor((lastColumn - 1) / 26);\r\n }\r\n\r\n const filterRange = `A${rowNumber}:${filterIndex}${lastRow}`; //set up the filter rande\r\n worksheet['!autofilter'] = { ref: filterRange }; // Apply autofilter to the determined range\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nenum styleColors {\r\n Red = 'FF6D6D',\r\n Green = '70AD47',\r\n Yellow = 'FFDD71',\r\n SteelBlue = '44546A',\r\n CornflowerBlue = '8EA9DB',\r\n LightBlue = 'B4C6E7',\r\n LightsteelBlue = 'D9E1F2',\r\n LightGrey = 'D3D3D3',\r\n White = 'FFFFFF'\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HttpCancelService {\r\n private cancelPendingRequests$ = new Subject();\r\n\r\n constructor() {\r\n }\r\n\r\n /** Cancels all pending Http requests. */\r\n public cancelPendingRequests(): void {\r\n this.cancelPendingRequests$.next();\r\n }\r\n\r\n public onCancelPendingRequests(): Observable {\r\n return this.cancelPendingRequests$.asObservable();\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {environment} from '../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingsProviderService {\r\n\r\n baseApiUrl = '';\r\n baseUrl = `${window.location.origin}/`;\r\n appVersion = 'v2.0.0';\r\n\r\n constructor(baseApiUrl: string) {\r\n this.baseApiUrl = this.baseUrl + baseApiUrl;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CompanyDashboardComponent } from './components/company-dashboard/company-dashboard.component';\r\nimport { CompanyDetailsComponent } from './components/company-details/company-details.component';\r\nimport { CompanyDocumentsComponent } from './components/company-documents/company-documents.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { CompanyDocumentsPageComponent } from './components/company-documents-page/company-documents-page.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonsModule } from '../common/commons.module';\r\nimport { DocumentsModule } from '../documents/documents.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { CompanyDocumentDetailsPageComponent } from './components/company-document-details-page/company-document-details-page.component';\r\nimport { OperativesModule } from '../operatives/operatives.module';\r\nimport { ObservationModule } from '../observations/observation.module';\r\nimport { CompanyOperativesComponent } from './components/company-operatives/company-operatives.component';\r\nimport { CompanyDetailsModalComponent } from './components/company-details-modal/company-details-modal.component';\r\nimport { CompaniesDocumentsListComponent } from './components/companies-documents-lists/companies-documents-list.component';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { CompanyOperativeTrainingRecordsComponent } from './components/company-operative-training-records/company-operative-training-records.component';\r\nimport { CompanyOperativeTrainingRecordsPageComponent } from './components/company-operative-training-records-page/company-operative-training-records-page.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CompanyOptInModalComponent } from './components/company-opt-in-modal/company-opt-in-modal.component';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { OrderFormPageComponent } from './components/order-form-page/order-form-page.component';\r\nimport { AgreeContractComponent } from './components/agree-contract/agree-contract.component';\r\nimport { AgreeContractModalComponent } from './components/agree-contract-modal/agree-contract-modal.component';\r\nimport { CompanySettingsPageComponent } from './components/company-settings-page/company-settings-page.component';\r\nimport { CompanyAlertsSettingsComponent } from '../alerts/components/company-alerts-settings/company-alerts-settings.component';\r\nimport { AlertSettingsEditorComponent } from '../alerts/components/alert-settings-editor/alert-settings-editor.component';\r\nimport { JobRoleListComponent } from '../setting/job-role/components/job-role-list/job-role-list.component';\r\nimport { CompanyJobRoleModalComponent } from '../setting/job-role/components/company-job-role-modal/company-job-role-modal.component';\r\nimport { CompanyJobRoleEditorComponent } from '../setting/job-role/components/company-job-role-editor/company-job-role-editor.component';\r\nimport { BusinessUnitListComponent } from '../setting/business-units/business-unit-list/business-unit-list.component';\r\nimport { BusinessUnitEditorComponent } from '../setting/business-units/business-unit-editor/business-unit-editor.component';\r\n\r\nimport { AlertEmailEditorComponent } from '../alerts/components/alert-email-editor/alert-email-editor.component';\r\nimport { CompanySettingsEmailModalComponent } from '../company/components/company-settings-email-modal/company-settings-email-modal.component';\r\nimport { BusinessUnitAssignComponent } from '../setting/business-units/business-unit-assign/business-unit-assign.component';\r\n@NgModule({\r\n declarations: [\r\n CompanyDashboardComponent,\r\n CompanyDetailsComponent,\r\n CompanyDocumentsComponent,\r\n CompanyDocumentsPageComponent,\r\n CompanyDocumentDetailsPageComponent,\r\n CompanyOperativesComponent,\r\n CompanyDetailsModalComponent,\r\n CompaniesDocumentsListComponent,\r\n CompanyOperativeTrainingRecordsComponent,\r\n CompanyOperativeTrainingRecordsPageComponent,\r\n CompanyOptInModalComponent,\r\n OrderFormPageComponent,\r\n AgreeContractComponent,\r\n AgreeContractModalComponent,\r\n CompanySettingsPageComponent,\r\n CompanyAlertsSettingsComponent,\r\n AlertSettingsEditorComponent,\r\n JobRoleListComponent,\r\n CompanyJobRoleModalComponent,\r\n CompanyJobRoleEditorComponent,\r\n BusinessUnitListComponent,\r\n BusinessUnitEditorComponent,\r\n AlertEmailEditorComponent,\r\n CompanySettingsEmailModalComponent,\r\n BusinessUnitAssignComponent\r\n ],\r\n\r\n imports: [\r\n CommonModule,\r\n CommonsModule,\r\n ReactiveFormsModule,\r\n FontAwesomeModule,\r\n TableModule,\r\n ButtonModule,\r\n RippleModule,\r\n InputTextModule,\r\n RouterModule,\r\n DocumentsModule,\r\n SharedModule,\r\n OperativesModule,\r\n ObservationModule,\r\n CardModule,\r\n PanelModule,\r\n FormsModule,\r\n //PrimeIcons,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n TabViewModule,\r\n ],\r\n\r\n exports: [\r\n CompanyDashboardComponent,\r\n CompanyDetailsComponent,\r\n CompanyDocumentsComponent,\r\n ]\r\n})\r\n\r\nexport class CompanyModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { OptInModalInfo } from \"../../../message-models/optin-modal-info.class\";\r\nimport { IOptInModalInfo } from \"../../../message-models/optin-modal-info.interface\";\r\nimport { AuthorizeService } from \"../../../../api-authorization/authorize.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { CompanyOptInService } from \"../../services/company-opt-in.service\";\r\n//import { IEcaDialogRef } from '../../../shared/models/eca-dialog-ref.interface';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { CompanyInfo } from \"../../../domain-model/company-info.class\";\r\n\r\n@Component({\r\n selector: 'app-agree-contract-modal',\r\n templateUrl: './agree-contract-modal.component.html',\r\n styleUrls: ['./agree-contract-modal.component.scss']\r\n})\r\nexport class AgreeContractModalComponent implements OnInit {\r\n @Input() modalDetails: OptInModalInfo = new OptInModalInfo({} as IOptInModalInfo);\r\n @Input() company: CompanyInfo;\r\n\r\n constructor(public modalRef: DynamicDialogRef, private companyOptInService: CompanyOptInService, private authorizeService: AuthorizeService, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n signOut() {\r\n this.authorizeService.signOut('App').then(result =>\r\n this.router.navigate(['/'])\r\n );\r\n }\r\n\r\n agreeContract() {\r\n this.companyOptInService.recordContractAgreed(this.company?.id).subscribe(result => {\r\n if (result && result.contractAgreed) {\r\n this.modalRef.close();\r\n }\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n

{{ modalDetails?.optInModalTitle }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\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 {CompanyInfo} from \"../../../domain-model/company-info.class\";\r\n\r\n@Component({\r\n selector: 'app-agree-contract',\r\n templateUrl: './agree-contract.component.html',\r\n styleUrls: ['./agree-contract.component.scss']\r\n})\r\nexport class AgreeContractComponent implements OnInit {\r\n @Input() company: CompanyInfo;\r\n\r\n constructor() { }\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 Please read this Acceptance statement and our Agreement carefully before proceeding:\r\n
\r\n\r\n
    \r\n
  1. \r\n Our Agreement is comprised of this Acceptance, the ECA Software Terms and the other documents incorporated into our Agreement as described in the ECA Software Terms copies of which are located at https://www.eca.co.uk/eca-software-support.\r\n
  2. \r\n
  3. \r\n By clicking ‘Accept’ you accept our Agreement on behalf of the Customer indicated in this Acceptance as a legally binding contract with ECA.\r\n
  4. \r\n
  5. \r\n You represent and warrant that you have all necessary capacity and authority to enter into our Agreement on behalf of the Customer as a legally binding contract with ECA in all applicable jurisdictions. If you do not have such capacity or authority or do not wish to accept this Agreement on behalf of the Customer please select the ‘Decline’ option before proceeding to request the provision of Services.\r\n
  6. \r\n
  7. \r\n Defined terms in this Acceptance shall have the meaning given in the ECA Software Terms as applied by our Agreement and the rules of interpretation set out in the ECA Software Terms apply to this Acceptance unless otherwise agreed. References to this Acceptance include its schedules, annexes and appendices (if any).\r\n
  8. \r\n
  9. \r\n Any Special Terms included herein shall vary and prevail over any conflicting terms in any other part of our Agreement, including any other part of this Acceptance.\r\n
  10. \r\n
  11. \r\n Where the Customer is a Member all Subscribed Services are available to the Customer for the duration of the period during which they remain a Member at zero cost for an unlimited number of Authorised Users. For the avoidance of doubt, if the Customer ceases to be a Member this Agreement will terminate, and in order to continue to subscribe to the Services, the Customer will need to enter into a new Agreement with ECA.\r\n
  12. \r\n
  13. \r\n There are Support Services available for each Subscribed Service to the Customer for the duration of the respective Subscribed Service Period. To contact these Support Services email ecoms@eca.co.uk\r\n
  14. \r\n
  15. In this Acceptance:\r\n
    \r\n
    \r\n
    \r\n Customer\r\n
    \r\n
    \r\n

    is any ECA Member.

    \r\n

    Notices to the Customer will be sent to their nominated representative as identified to ECA within the ECA rules and also to the eCOMS contacts maintained within the eCOMS system.

    \r\n

    Physical address for notices to the Customer: {{ company?.inlineAddress }}

    \r\n

    Such contact details may be updated from time to time by the Customer in accordance with the process set out in the ECA Software Terms.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ECA\r\n
    \r\n
    \r\n as defined in the ECA Software Terms\r\n
    \r\n
    \r\n
    \r\n
    \r\n ECA Software Terms\r\n
    \r\n
    \r\n means the latest version of the document available at https://www.eca.co.uk/eca-software-support, as Updated from time to time;\r\n
    \r\n
    \r\n
    \r\n
    \r\n Member\r\n
    \r\n
    \r\n as defined in the ECA Software Terms\r\n
    \r\n
    \r\n
    \r\n
    \r\n Subscription Service Specific Terms\r\n
    \r\n
    \r\n means any terms set out within this Acceptance and identified to applied to specific Subscribed Services; and\r\n
    \r\n
    \r\n
    \r\n
    \r\n Subscribed Territory\r\n
    \r\n
    \r\n United Kingdom and Channel Islands\r\n
    \r\n
    \r\n
    \r\n
  16. \r\n
\r\n\r\n\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { DocumentEntityType, DocumentEntityTypeString } from '../../../message-models/document-entity-type.enum';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-companies-documents-lists',\r\n templateUrl: './companies-documents-list.component.html',\r\n styleUrls: ['./companies-documents-list.component.scss']\r\n})\r\nexport class CompaniesDocumentsListComponent implements OnInit {\r\n documentEntityType = DocumentEntityType;\r\n documentEntityTypeString: typeof DocumentEntityTypeString = DocumentEntityTypeString;\r\n @Input() showTableCaption: boolean;\r\n @Input() documentSummaryInfos: Array;\r\n @Input() allowEdit: boolean = true;\r\n @Input() allowDelete: boolean = true;\r\n\r\n @Output() openCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() editCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() downloadCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() deleteCompanyDocumentClick: EventEmitter = new EventEmitter();\r\n @Output() refreshDocumentsRequested: EventEmitter = new EventEmitter();\r\n expiredFilter = { includeExpired: false };\r\n columns: any[];\r\n rowMenuItems: MenuItem[];\r\n\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.columns = [\r\n { field: 'companyName', header: 'Owner', type: 'owner' },\r\n { field: 'entityType', header: 'Type', type: 'type' },\r\n { field: 'documentType', header: 'Document Type', type: 'text' },\r\n { field: 'originalFilename', header: 'Original Filename', type: 'text' },\r\n { field: 'documentCreationDate', header: 'Created On', type: 'date' },\r\n { field: 'expiryDate', header: 'Expires On', type: 'date' },\r\n { field: 'reviewDate', header: 'Review Due On', type: 'date' },\r\n { field: 'totalObservations', header: 'Num. Obs.', type: 'int' },\r\n ];\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Preview',\r\n icon: 'fas fa-search',\r\n state: { 'contextLogic': 'canPreviewDocument' },\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openDocument($event)\r\n },\r\n {\r\n label: 'Edit',\r\n icon: 'fas fa-edit',\r\n styleClass: 'eca-menu-item-green',\r\n visible: this.allowEdit,\r\n command: ($event) => this.editDocument($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadDocument($event)\r\n },\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n visible: this.allowDelete,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteCompanyDocument($event)\r\n }\r\n ]\r\n }\r\n\r\n openDocument(documentSummaryInfo: IDocumentSummaryInfo) {\r\n this.openCompanyDocument.emit(documentSummaryInfo);\r\n }\r\n\r\n deleteCompanyDocument(documentSummaryInfo: any) {\r\n this.deleteCompanyDocumentClick.emit(documentSummaryInfo);\r\n }\r\n\r\n downloadDocument(documentSummaryInfo: any) {\r\n this.downloadCompanyDocument.emit(documentSummaryInfo);\r\n\r\n }\r\n\r\n editDocument(documentSummaryInfo: any) {\r\n this.editCompanyDocument.emit(documentSummaryInfo);\r\n }\r\n\r\n viewCompanyDocumentClicked(documentSummaryInfo: IDocumentSummaryInfo) {\r\n if (documentSummaryInfo.entityType === DocumentEntityType.company) {\r\n this.router.navigate(['/company-document/', documentSummaryInfo.documentId]);\r\n }\r\n else if (documentSummaryInfo.entityType === DocumentEntityType.employedPerson) {\r\n this.router.navigate(['/operative-document/', documentSummaryInfo.documentId]);\r\n }\r\n else if (documentSummaryInfo.entityType === DocumentEntityType.trainingRecord) {\r\n this.router.navigate(['/training-record-document/', documentSummaryInfo.documentId]);\r\n }\r\n else if (documentSummaryInfo.entityType === DocumentEntityType.trainingCourse) {\r\n this.router.navigate(['/training-course-document/', documentSummaryInfo.documentId]);\r\n }\r\n }\r\n\r\n expiredFilterChanged() {\r\n this.refreshDocumentsRequested.emit(this.expiredFilter.includeExpired);\r\n\r\n }\r\n}\r\n"," 5\" scrollHeight=\"500px\"\r\n [globalFilterFields]=\"['documentType', 'originalFilename']\" [responsive]=\"true\" [columns]=\"columns\">\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Our Documents\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Owner\r\n \r\n \r\n \r\n Type\r\n \r\n \r\n \r\n Document Type\r\n \r\n \r\n \r\n Original Filename\r\n \r\n \r\n \r\n Created On\r\n \r\n \r\n \r\n Expires On\r\n \r\n \r\n \r\n Review Due On\r\n \r\n \r\n \r\n Num. Obs.\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n
\r\n \r\n {{companyDocument[col.field]}}\r\n \r\n \r\n {{companyDocument[col.field]?.dateTime | date:'dd/MM/yyyy'}}\r\n \r\n \r\n {{documentEntityTypeString[ companyDocument[col.field]]}}\r\n \r\n
\r\n \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, ViewChild, ViewEncapsulation} from '@angular/core';\r\nimport {IObservation} from '../../../message-models/observation.interface';\r\nimport {IDocument} from '../../../message-models/document.interface';\r\nimport {ICompanyInfo} from '../../../message-models/company-info.interface';\r\nimport {IJobTitleInfo} from '../../../message-models/job-title.interface';\r\nimport {ListDataService} from '../../../services/list-data.service';\r\nimport {IAlertInfo} from '../../../alerts/models/IAlertInfo.interface';\r\nimport {IModalOptions} from '../../../common/modals/modal-options.interface';\r\nimport {CompanyDocumentService} from '../../services/company-documents.service';\r\nimport {ICompanyDocumentSummary} from '../../../message-models/company-document-summary.interface';\r\nimport {Router} from '@angular/router';\r\nimport {DocumentService} from '../../../documents/services/document.service';\r\nimport {DocumentModalService} from '../../../documents/services/document-modal.service';\r\nimport {IEntityDocumentSummary} from '../../../message-models/entity-document-summary';\r\nimport {DocumentEntityType} from '../../../message-models/document-entity-type.enum';\r\nimport {IRiskInfo} from '../../../message-models/risk-info.interface';\r\nimport {IJobLevelInfo} from '../../../message-models/job-level.interface';\r\nimport {IRiskMatrixEntry} from '../../../message-models/risk-matrix-entry.interface';\r\nimport {OperativeInfo} from '../../../domain-model/operative-info.class';\r\nimport {OperativesService} from '../../../operatives/services/operatives.service';\r\nimport {CompanyService} from '../../services/company.service';\r\nimport {CompanyInfo} from '../../../domain-model/company-info.class';\r\nimport {IDocumentSummaryInfo} from '../../../message-models/document-summary-info.interface';\r\nimport {IObservationSummary} from '../../../message-models/observation-summary.interface';\r\nimport {ObservationsService} from '../../../observations/services/observations.service';\r\nimport {Observation, ObservationType, ObservationTypeString} from 'src/app/domain-model/observation.class';\r\nimport {ObservationModalService} from '../../../observations/services/observation-modal.service';\r\nimport {DashboardCardComponent} from '../../../common/components/dashboard-card/dashboard-card.component';\r\nimport {DashboardCard, IDashboardCard} from '../../../common/modals/dashboard-card.class';\r\nimport {OperativeModalService} from '../../../operatives/services/operative-modal.service';\r\nimport {ExtendedJobLevel} from '../../../message-models/extended-job-level.class';\r\nimport {ExtendedRiskInfo} from '../../../message-models/extended-risk-info.class';\r\nimport {CompanyDashboardStateService} from '../../services/company-dashboard-state.service';\r\nimport {OurUserService} from '../../../users/services/user.service';\r\nimport {IUserInfo} from '../../../users/models/userInfo.interface';\r\nimport {RiskHelpModalService} from '../../../services/risk-help-modal.service';\r\nimport {IBreadcrumb} from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport {EcaBreadcrumbService} from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport {EcaConfirmProcessService} from '../../../shared/services/eca-confirm-process.service';\r\nimport {EcaConfirmDeleteModalOptions} from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport {ErrorHandlingService} from '../../../services/error-handling.service';\r\nimport {AlertsService} from '../../../alerts/services/alerts.service';\r\nimport {HelpConsts} from '../../../help/models/help-consts';\r\nimport {HelpModalService} from '../../../help/services/help-modal.service';\r\nimport {IEmploymentStatus} from '../../../message-models/employment-status.interface';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { ObservationSummary } from '../../../domain-model/observation-summary';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { CompanyJobRoleService } from '../../../setting/job-role/services/company-job-role.service';\r\nimport { consts } from '../../../common/modals/consts';\r\n\r\n@Component({\r\n selector: 'app-company-dashboard',\r\n templateUrl: './company-dashboard.component.html',\r\n styleUrls: ['./company-dashboard.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CompanyDashboardComponent implements OnInit, OnDestroy {\r\n @ViewChild('compDetailCard') compDetailCard: DashboardCardComponent;\r\n\r\n alerts: IAlertInfo[];\r\n recentObservations: Array;\r\n selectedObservation: Observation = new Observation({} as IObservation);\r\n ObservationType: typeof ObservationType = ObservationType;\r\n ObservationTypeString: typeof ObservationTypeString = ObservationTypeString;\r\n allRisks: IRiskInfo[];\r\n allEmploymentStatuses: IEmploymentStatus[];\r\n allJobLevels: IJobLevelInfo[];\r\n riskMatrix: IRiskMatrixEntry[];\r\n operatives: OperativeInfo[];\r\n selectedOperativeId: string;\r\n selectedDocumentId: string;\r\n selectedTrainingRecordId: string;\r\n observationModalHeading: string;\r\n entityObservationId: string;\r\n observations: IObservation[];\r\n documents: IDocument[];\r\n company: CompanyInfo = new CompanyInfo({} as ICompanyInfo);\r\n companyDocuments: Array;\r\n companyId = '';\r\n isTrialCompany: boolean;\r\n jobTitles: IJobTitleInfo[];\r\n allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n selectedCompanyJobTitle: ICompanyJobTitle;\r\n allOperativeTypes: IOperativeTypeInfo[];\r\n allBusinessUnits: IBusinessUnitInfo[];\r\n loading: boolean;\r\n\r\n loadingOperatives: boolean = true;\r\n documentsLoading: boolean = true;\r\n loadingObservations: boolean = true;\r\n loadingCompanyDetails: boolean = true;\r\n editingCompanyDetails: boolean = false;\r\n private originalCompany: CompanyInfo;\r\n companyDocumentSummaries: IDocumentSummaryInfo[];\r\n companyDetailsCard: DashboardCard;\r\n operativesListCard: DashboardCard;\r\n recentObservationsListCard: DashboardCard;\r\n recentDocumentsCard: DashboardCard;\r\n loggedInUser: IUserInfo;\r\n\r\n constructor(private confirmProcessService: EcaConfirmProcessService,\r\n private companyService: CompanyService,\r\n private operativesService: OperativesService,\r\n private companyDocumentService: CompanyDocumentService,\r\n private documentService: DocumentService,\r\n private documentModalService: DocumentModalService,\r\n private listDataService: ListDataService,\r\n private observationsService: ObservationsService,\r\n private observationModalService: ObservationModalService,\r\n private operativeModalService: OperativeModalService,\r\n private helpService: HelpModalService,\r\n private companyDashboardStateService: CompanyDashboardStateService,\r\n private router: Router, private userService: OurUserService,\r\n private riskHelpModalService: RiskHelpModalService,\r\n private alertsService: AlertsService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService) {\r\n\r\n }\r\n\r\n setCompanyDashboardCards() {\r\n this.companyDetailsCard = new DashboardCard({ headerClass: 'eca-secondary-bg'} as IDashboardCard);\r\n this.operativesListCard = new DashboardCard({ headerClass: 'eca-secondary-bg'} as IDashboardCard);\r\n this.recentObservationsListCard = new DashboardCard({ headerClass: 'eca-secondary-bg'} as IDashboardCard);\r\n this.recentDocumentsCard = new DashboardCard({ headerClass: 'eca-secondary-bg'} as IDashboardCard);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.companyDashboardStateService\r\n .setDashboardState(this.companyDetailsCard, this.operativesListCard, this.recentObservationsListCard, this.recentDocumentsCard);\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n this.companyService.getCompany(this.companyId).subscribe(company => {\r\n if (company.trialValidTo != null) {\r\n this.isTrialCompany = true;\r\n }\r\n })\r\n this.initDashboard();\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n }\r\n\r\n initDashboardCards() {\r\n if (this.companyDashboardStateService.cardsSet) {\r\n this.recentDocumentsCard = new DashboardCard(this.companyDashboardStateService.getRecentDocumentsCard());\r\n this.companyDetailsCard = new DashboardCard(this.companyDashboardStateService.getCompanyDetailsCard());\r\n this.operativesListCard = new DashboardCard(this.companyDashboardStateService.getOperativesListCard());\r\n this.recentObservationsListCard = new DashboardCard(this.companyDashboardStateService.getRecentObservationsListCard());\r\n } else {\r\n this.setCompanyDashboardCards();\r\n }\r\n }\r\n\r\n initDashboard() {\r\n this.initDashboardCards();\r\n this.companyService.getCompany(this.companyId).subscribe(company => {\r\n this.company = new CompanyInfo(company);\r\n this.loadingCompanyDetails = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.listDataService.getAllJobTitles().subscribe({\r\n next: response => {\r\n this.jobTitles = response;\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n this.companyJobRoleService.getCompanyJobTitlesByCompanyId(this.companyId).subscribe({\r\n next: response => {\r\n this.allCompanyJobTitles = response;\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n\r\n\r\n this.listDataService.getAllOperativeTypes().subscribe({\r\n next: response => {\r\n this.allOperativeTypes = response;\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n this.listDataService.getBusinessUnitsForCompany(this.companyId).subscribe({\r\n next: response => {\r\n this.allBusinessUnits = response;\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n this.observationsService.getRecentObservationsForCompany(this.companyId).subscribe(recentObservationSummaries => {\r\n this.recentObservations = recentObservationSummaries;\r\n this.loadingObservations = false;\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.getCompanyDocumentSummaries();\r\n this.loadOperatives();\r\n\r\n this.listDataService.getAllRisks().subscribe({\r\n next: response => {\r\n this.allRisks = response;\r\n this.operativesService.setOperativeRisks(response);\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n this.listDataService.getAllEmploymentStatuses().subscribe({\r\n next: response => {\r\n this.allEmploymentStatuses = response;\r\n this.operativesService.setOperativeEmploymentStatus(response);\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n this.listDataService.getAllJobLevels().subscribe({\r\n next: response => {\r\n this.allJobLevels = response;\r\n this.operativesService.setOperativeJobLevels(response);\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n }); \r\n\r\n this.listDataService.getRiskMatrix().subscribe({\r\n next: response => {\r\n this.riskMatrix = response;\r\n this.operativesService.setOperativeRiskMatrixLevels(response);\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private loadOperatives() {\r\n this.operativesService.getOperativesInCompany(this.companyId, new Date().toISOString()).subscribe({\r\n next: operatives => {\r\n this.operatives = operatives;\r\n if (this.jobTitles) {\r\n this.operatives.forEach(op => {\r\n if (op.currentOperativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") { \r\n op.jobTitle = this.allCompanyJobTitles.find(x => x.id === op.currentJobTitleId)?.name;\r\n }\r\n else {\r\n op.jobTitle = this.jobTitles.find(x => x.id === op.currentJobTitleId)?.name;\r\n }\r\n op.totalCPDHours = op.trainingRecords.filter(record => record.cpdHour > 0).reduce((acc, record) => acc + record.cpdHour, 0);\r\n });\r\n }\r\n if (this.allOperativeTypes) {\r\n this.operatives.forEach(op => {\r\n op.operativeType = this.allOperativeTypes.find(x => x.id === op.currentOperativeTypeId).name;\r\n op.totalCPDHours = op.trainingRecords.filter(record => record.cpdHour > 0).reduce((acc, record) => acc + record.cpdHour, 0);\r\n op.totalCPDHours = parseFloat(op.totalCPDHours.toFixed(2));\r\n });\r\n }\r\n if (this.allBusinessUnits) {\r\n this.operatives.forEach(op => {\r\n op.businessUnit = this.allBusinessUnits.length > 0 ? this.allBusinessUnits.find(x => x.id === op.currentBusinessUnitId)?.name : \"\";\r\n });\r\n }\r\n this.operativesService.setOperativeRiskAndLevels(this.allRisks, this.allJobLevels, this.riskMatrix, this.allEmploymentStatuses);\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n },\r\n complete: () => this.loadingOperatives = false\r\n });\r\n }\r\n\r\n getCompanyDocumentSummaries(includeExpired: boolean = false) {\r\n this.companyDocumentService.getAllDocumentSummariesByEntityType(this.companyId, null, includeExpired).subscribe(companyDocuments => {\r\n this.companyDocumentSummaries = companyDocuments;\r\n this.documentsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n downloadCompanyDocument(documentSummaryInfo: IDocumentSummaryInfo) {\r\n this.documentService.downloadOrOpenDocument(documentSummaryInfo, true);\r\n }\r\n\r\n openCompanyDocument(documentSummaryInfo: IDocumentSummaryInfo) {\r\n this.documentService.downloadOrOpenDocument(documentSummaryInfo);\r\n }\r\n\r\n deleteCompanyDocumentClick(companyDocument: IEntityDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete this document?', 'Delete ' + companyDocument.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.documentsLoading = true;\r\n this.deleteCompanyDocument(companyDocument);\r\n }\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n deleteCompanyDocument(companyDocument: IEntityDocumentSummary) {\r\n this.companyDocumentService.deleteCompanyDocument(companyDocument.documentId, this.companyId).subscribe(\r\n result => {\r\n if (result) {\r\n this.getCompanyDocumentSummaries();\r\n this.documentsLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n addCompanyDocument() {\r\n this.documentModalService.openDocumentUploaderModal(null, DocumentEntityType.company, 'Add Document').subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.documentsLoading = true;\r\n this.companyDocumentService.createOrUpdateCompanyDocument(documentUploadRequest).subscribe(companyDocumentSummary => {\r\n this.loading = false;\r\n this.documentsLoading = false;\r\n this.getCompanyDocumentSummaries();\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n editCompanyDocument(companyDocumentSummary: IEntityDocumentSummary) {\r\n this.documentModalService.openDocumentUploaderModal(companyDocumentSummary, DocumentEntityType.company, 'Edit Document').subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n this.documentsLoading = true;\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.companyDocumentService.createOrUpdateCompanyDocument(documentUploadRequest).subscribe(updatedCompanyDocumentSummary => {\r\n this.loading = false;\r\n this.documentsLoading = false;\r\n this.getCompanyDocumentSummaries();\r\n this.loading = false;\r\n this.documentsLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n editCompanyDetails() {\r\n if (this.companyDetailsCard.isCollapsed) {\r\n this.compDetailCard.panelToggle();\r\n }\r\n this.originalCompany = new CompanyInfo(this.company);\r\n this.editingCompanyDetails = true;\r\n }\r\n\r\n cancelEditCompanyDetails() {\r\n this.company = new CompanyInfo(this.originalCompany);\r\n this.editingCompanyDetails = false;\r\n }\r\n\r\n saveCompanyDetails() {\r\n this.editingCompanyDetails = false;\r\n this.companyService.updateCompany(this.company).subscribe(result => {\r\n this.company = new CompanyInfo(result);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n //viewObservation(observationId: string, isEditing: boolean = false, isNew?: boolean) {\r\n // this.recentObservations.forEach(opObservation => {\r\n // if (opObservation.observationId === observationId) {\r\n // this.observationModalHeading = '';\r\n // this.selectedOperativeId = opObservation.operativeId;\r\n // this.selectedObservation.id = observationId;\r\n // this.selectedObservation.summaryInfo = opObservation.summaryInfo;\r\n // this.selectedObservation.followUpOn = opObservation.followUpOn;\r\n // this.selectedObservation.observationType = opObservation.observationType;\r\n // this.selectedObservation.observedOn = opObservation.observedOn;\r\n // this.selectedObservation.observedBy = opObservation.observedBy;\r\n // this.selectedObservation.notesAsHtml = opObservation.notesAsHtml;\r\n // switch (opObservation.observationType) {\r\n // case ObservationType.Operative: {\r\n // this.entityObservationId = opObservation.operativeObservationId;\r\n // this.observationModalHeading = 'Observation of ' + opObservation?.operativeName;\r\n // break;\r\n // }\r\n // case ObservationType.CompanyDocument: {\r\n // this.entityObservationId = opObservation.documentObservationId;\r\n // this.selectedDocumentId = opObservation.documentId;\r\n // this.observationModalHeading = 'Observation of ' + opObservation?.companyName;\r\n // break;\r\n // }\r\n // case ObservationType.OperativeDocument:\r\n // case ObservationType.TrainingRecordDocument : {\r\n // this.entityObservationId = opObservation.documentObservationId;\r\n // this.selectedDocumentId = opObservation.documentId;\r\n // this.observationModalHeading = 'Observation of ' + opObservation?.operativeName;\r\n // break;\r\n // }\r\n // case ObservationType.TrainingRecord: {\r\n // this.entityObservationId = opObservation.trainingRecordObservationId;\r\n // this.selectedTrainingRecordId = opObservation.trainingRecordId;\r\n // this.observationModalHeading = 'Observation of ' + opObservation?.operativeName;\r\n // break;\r\n // }\r\n // case ObservationType.Company: {\r\n // this.entityObservationId = opObservation.companyObservationId;\r\n // this.observationModalHeading = 'Observation of ' + opObservation?.companyName;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // });\r\n // this.observationModalService.createOrEditObservation(this.selectedObservation, this.observationModalHeading, false).subscribe(observationModalRef => {\r\n // observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n // if (observationResult !== null) {\r\n // observationModalRef.dynamicDialogRef.close();\r\n // switch (observationResult.observationType) {\r\n // case ObservationType.Operative: {\r\n // this.loadingObservations = true;\r\n // this.observationsService.createOrUpdateOperativeObservation(observationResult, this.selectedOperativeId, this.companyId, this.entityObservationId).subscribe(operativeObservation => {\r\n // this.recentObservations = this.observationsService.updateObservationSummaries(this.recentObservations, operativeObservation);\r\n // this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n // this.loadingObservations = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // case ObservationType.OperativeDocument:\r\n // case ObservationType.TrainingRecordDocument :\r\n // case ObservationType.CompanyDocument: {\r\n // this.loadingObservations = true;\r\n // this.observationsService.createOrUpdateDocumentObservation(observationResult, this.selectedDocumentId, this.companyId, this.entityObservationId).subscribe(documentObservation => {\r\n // this.recentObservations = this.observationsService.updateObservationSummaries(this.recentObservations, documentObservation);\r\n // this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n // this.loadingObservations = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // case ObservationType.TrainingRecord: {\r\n // this.loadingObservations = true;\r\n // this.observationsService.createOrUpdateTrainingRecordObservation(observationResult, this.selectedTrainingRecordId, this.companyId, this.entityObservationId).subscribe(trainingRecordObservation => {\r\n // this.recentObservations = this.observationsService.updateObservationSummaries(this.recentObservations, trainingRecordObservation);\r\n // this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n // this.loadingObservations = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // case ObservationType.Company: {\r\n // this.loadingObservations = true;\r\n // this.observationsService.createOrUpdateCompanyObservation(observationResult, this.companyId, this.entityObservationId).subscribe(companyObservation => {\r\n // this.recentObservations = this.observationsService.updateObservationSummaries(this.recentObservations, companyObservation);\r\n // this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n // this.loadingObservations = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // }\r\n\r\n\r\n // }\r\n\r\n // });\r\n // });\r\n //}\r\n\r\n viewObservation(iObservationSummary?: IObservationSummary) {\r\n let observationSummary = new ObservationSummary(iObservationSummary);\r\n this.router.navigate([\"/observation-details/\" + observationSummary.observationId])\r\n }\r\n\r\n\r\n //editObservation(observationId: string) {\r\n // this.viewObservation(observationId, true);\r\n //}\r\n\r\n deleteObservation(observationId: string) {\r\n let observation: IObservationSummary;\r\n this.recentObservations.forEach(observationSummary => {\r\n if (observationSummary.observationId === observationId) {\r\n observation = observationSummary;\r\n }\r\n });\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete this observation?',\r\n 'Delete ', new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.loadingObservations = true;\r\n this.observationsService.deleteObservation(observation.observationId, observation.observationType, this.companyId).subscribe(result => {\r\n if (result) {\r\n this.recentObservations.forEach(x => {\r\n if (x.observationId === observation.observationId) {\r\n this.recentObservations = this.recentObservations.filter(d => d.observationId !== observation.observationId);\r\n }\r\n });\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.loadingObservations = false;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n //createCompanyObservation() {\r\n // this.observationModalHeading = 'Observation for ' + this.company.companyName;\r\n // this.selectedObservation = new Observation({} as IObservation);\r\n // this.observationModalService.createOrEditObservation(this.selectedObservation, this.observationModalHeading, true, ObservationType.Company).subscribe(observationModalRef => {\r\n // observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n // if (observationResult !== null) {\r\n // observationResult.observationType = ObservationType.Company;\r\n // this.loadingObservations = true;\r\n // this.observationsService.createOrUpdateCompanyObservation(observationResult, this.companyId).subscribe(companyObservation => {\r\n // this.recentObservations = this.observationsService.updateObservationSummaries(this.recentObservations, companyObservation, this.company.companyName);\r\n // this.loadingObservations = false;\r\n // this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // observationModalRef.dynamicDialogRef.close();\r\n // }\r\n // });\r\n // });\r\n //}\r\n\r\n goToCompanyObservations() {\r\n this.router.navigate(['/company-observations']);\r\n }\r\n\r\n goToOperativeObservations() {\r\n this.router.navigate(['/operative-observations']);\r\n }\r\n\r\n gotoOperativesPage() {\r\n this.router.navigate(['/operatives']);\r\n }\r\n\r\n addOperative() {\r\n const newOperative = new OperativeInfo();\r\n newOperative.companyId = this.company.id;\r\n\r\n newOperative.currentBusinessUnitId = consts.emptyGuid;\r\n const defaultEmploymentStatus = this.allEmploymentStatuses.find(s => s.isDefault);\r\n newOperative.currentEmploymentStatusId = defaultEmploymentStatus?.id;\r\n\r\n const jobLevels: ExtendedJobLevel[] = [];\r\n this.allJobLevels.forEach(l => {\r\n jobLevels.push(new ExtendedJobLevel(l));\r\n });\r\n\r\n const risks: ExtendedRiskInfo[] = [];\r\n this.allRisks.forEach(r => {\r\n risks.push(new ExtendedRiskInfo(r));\r\n });\r\n \r\n this.operativeModalService.openOperativeEditorModal(newOperative, 'Add a New Operative',\r\n this.jobTitles, this.allCompanyJobTitles, jobLevels, risks, this.allEmploymentStatuses, this.allOperativeTypes, this.allBusinessUnits, true).subscribe(modalRef => {\r\n modalRef.content.saveOperativeRequested.subscribe(operative => {\r\n if (operative) {\r\n this.loadingOperatives = true;\r\n this.operativesService.createOrUpdateOperative(operative).subscribe(result => {\r\n if (result) {\r\n this.loadOperatives();\r\n this.loadingOperatives = false;\r\n }\r\n }, (error) => {\r\n console.log(error);\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n openRiskHelp() {\r\n this.riskHelpModalService.openRiskHelpModal('Help', this.riskMatrix, this.allRisks, this.allJobLevels, this.operatives, null, '', this.loggedInUser?.companyName, false);\r\n }\r\n\r\n openCompanyHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanyDetailsHelp);\r\n\r\n }\r\n\r\n openOperativesHelp() {\r\n this.helpService.openHelpModal(HelpConsts.DashboardOperativesListHelp);\r\n }\r\n\r\n openObservationsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.RecentObservationsList);\r\n }\r\n\r\n openRecentDocumentsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.RecentDocumentsList);\r\n }\r\n}\r\n\r\nexport class DangerAlertModalOptions implements IModalOptions {\r\n modalClasses = 'modal-danger';\r\n noButtonColour = 'danger';\r\n noButtonIcon = 'fas fa-times';\r\n noButtonText = 'Dismiss';\r\n yesButtonColour = 'warning';\r\n yesButtonIcon = 'fas fa-check';\r\n yesButtonText = 'Remind Me Later';\r\n editButtonIcon = 'fas fa-edit';\r\n}\r\n\r\nexport class WarningAlertModalOptions implements IModalOptions {\r\n modalClasses = 'modal-warning';\r\n noButtonColour = 'danger';\r\n noButtonIcon = 'fas fa-times';\r\n noButtonText = 'Dismiss';\r\n yesButtonColour = 'warning';\r\n yesButtonIcon = 'fas fa-check';\r\n yesButtonText = 'Remind Me Later';\r\n editButtonIcon = 'fas fa-edit';\r\n}\r\n","
\r\n \r\n \r\n Enterprise Details\r\n \r\n\r\n \r\n Enterprise Details - {{company.companyName}} - {{company.contactName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n Current Operatives\r\n \r\n \r\n {{operatives?.length}} Current Operatives\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n Recent Observations\r\n \r\n \r\n {{recentObservations?.length}} Recent Observations\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Recent Documents\r\n \r\n \r\n {{companyDocumentSummaries?.length}} Recent Documents\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\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\n\r\n@Component({\r\n selector: 'app-company-details-modal',\r\n templateUrl: './company-details-modal.component.html',\r\n styleUrls: ['./company-details-modal.component.scss']\r\n})\r\nexport class CompanyDetailsModalComponent implements OnInit {\r\n @Input() heading: string;\r\n @Input() editing: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n cancelClicked() {\r\n\r\n }\r\n\r\n editCompanyDetails() {\r\n\r\n }\r\n\r\n saveCompanyDetails() {\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 {ControlContainer, UntypedFormControl, NgForm, Validators} from '@angular/forms';\r\nimport {ICompanyInfo} from \"../../../message-models/company-info.interface\";\r\n\r\n@Component({\r\n selector: 'app-company-details',\r\n templateUrl: './company-details.component.html',\r\n styleUrls: ['./company-details.component.scss'],\r\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\r\n})\r\nexport class CompanyDetailsComponent implements OnInit {\r\n\r\n @Input() company: ICompanyInfo = {} as ICompanyInfo;\r\n @Input() editing: boolean = false;\r\n email: UntypedFormControl;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n validateEmail(email) {\r\n this.email = new UntypedFormControl(email,\r\n [Validators.email, Validators.pattern('^(?=.{1,64}@)[A-Za-z0-9_-]+(\\\\.[A-Za-z0-9_-]+)*@[^-][A-Za-z0-9-]+(\\\\.[A-Za-z0-9-]+)*(\\\\.[A-Za-z]{2,})$')]);\r\n if (this.editing) {\r\n return this.email.valid;\r\n } else {\r\n return true;\r\n }\r\n }\r\n lookupPostcode() {\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \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, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { CompanyDocumentService } from '../../services/company-documents.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ICompanyDocumentSummary } from '../../../message-models/company-document-summary.interface';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { BreadcrumbService } from 'xng-breadcrumb';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { CompanyDocumentSummary } from '../../../message-models/company-document-summary.class';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationType } from '../../../domain-model/observation.class';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-company-document-details-page',\r\n templateUrl: './company-document-details-page.component.html',\r\n styleUrls: ['./company-document-details-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CompanyDocumentDetailsPageComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('docDetailsContainerComponent') docDetailsContainerComponent: DetailContainerComponent;\r\n\r\n loading: boolean;\r\n\r\n isEditing = false;\r\n documentUploadRequest: FormData;\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n\r\n companyDocumentSummary: ICompanyDocumentSummary;\r\n companyDocumentTypes: IDocumentType[];\r\n companyDocumentObservations: Array = new Array();\r\n ObservationType: typeof ObservationType = ObservationType;\r\n documentId: string;\r\n\r\n public loggedInUser: IUserInfo;\r\n companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n submitted: boolean = false;\r\n\r\n constructor(private documentTypeService: DocumentTypeService,\r\n private companyDocumentService: CompanyDocumentService,\r\n private documentService: DocumentService,\r\n private breadcrumbService: BreadcrumbService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private alertsService: AlertsService,\r\n private activatedRoute: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService\r\n ) {\r\n this.documentId = this.activatedRoute.snapshot.params.documentId;\r\n this.breadcrumbService.set('@companyDocument', { label: 'Company Document' });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.setUserAndReload(user);\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private setUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (!this.companyId)\r\n return;\r\n\r\n if (this.companyId !== consts.emptyGuid) {\r\n this.documentTypeService.getAllDocumentTypesForEntityType(DocumentEntityType.company).subscribe(companyDocumentTypes => {\r\n this.companyDocumentTypes = companyDocumentTypes;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.companyDocumentService.getCompanyDocumentSummary(this.documentId).subscribe(companyDocumentSummary => {\r\n this.companyDocumentSummary = new CompanyDocumentSummary(companyDocumentSummary);\r\n this.initCompanyDocument();\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n if (this.companyId) {\r\n this.observationsService.getDocumentObservations(this.documentId, this.companyId).subscribe(companyDocumentObservations => {\r\n this.companyDocumentObservations = companyDocumentObservations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n initCompanyDocument() {\r\n this.isEditing = false;\r\n this.documentUploadRequest = new FormData();\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.companyDocumentSummary);\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n getSelectedDocumentType(documentTypeId: string): IDocumentType {\r\n return this.companyDocumentTypes.find(t => t.id === documentTypeId);\r\n }\r\n\r\n saveCompanyDocumentClicked() {\r\n this.submitted = true;\r\n if (!this.tempDocumentSummary?.documentTypeId || !this.tempDocumentSummary?.documentCreationDate?.dateTime || !this.tempDocumentSummary?.originalFilename ||\r\n (!this.tempDocumentSummary?.extraDescription && this.getSelectedDocumentType(this.tempDocumentSummary?.documentTypeId)?.name === \"Other\")) {\r\n return false;\r\n }\r\n this.submitted = false;\r\n this.appendDocumentUploadRequest();\r\n this.loading = true;\r\n this.companyDocumentService.createOrUpdateCompanyDocument(this.documentUploadRequest).subscribe(companyDocumentSummary => {\r\n this.loading = false;\r\n this.companyDocumentSummary = new CompanyDocumentSummary(companyDocumentSummary);\r\n this.isEditing = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n downloadCompanyDocument() {\r\n this.documentService.downloadOrOpenDocument(this.companyDocumentSummary, true);\r\n }\r\n\r\n openCompanyDocument() {\r\n this.documentService.downloadOrOpenDocument(this.companyDocumentSummary);\r\n }\r\n\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType, showSaveAndUploadButton?: boolean) {\r\n this.observationModalService.createOrEditObservation(observation, heading + this.companyDocumentSummary.originalFilename, isEditing, observationType, showSaveAndUploadButton).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n if (observationResult.observationType === null) {\r\n observationResult.observationType = ObservationType.CompanyDocument;\r\n }\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.companyDocumentObservations?.forEach(trObservationSummary => {\r\n if (trObservationSummary.observationId === observationResult.id) {\r\n entityObservationId = trObservationSummary.documentObservationId;\r\n }\r\n });\r\n this.observationsService.createOrUpdateDocumentObservation(observationResult as IObservation, this.documentId, this.companyId, entityObservationId).subscribe(companyDocObservation => {\r\n this.companyDocumentObservations = this.observationsService.updateObservationSummaries(this.companyDocumentObservations, companyDocObservation);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Documents', iconName: 'books', routeLink: `company-documents` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.companyDocumentSummary.originalFilename, iconName: 'book' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private appendDocumentUploadRequest() {\r\n this.documentUploadRequest.append('CompanyId', this.companyId);\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', this.tempDocumentSummary.documentTypeId);\r\n this.documentUploadRequest.append('ExtraDescription', this.tempDocumentSummary.extraDescription);\r\n\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n\r\n if (this.tempDocumentSummary.reviewDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentReviewDate', this.tempDocumentSummary.reviewDate.dateTime);\r\n }\r\n if (this.tempDocumentSummary.expiryDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentExpiryDate', this.tempDocumentSummary.expiryDate.dateTime);\r\n }\r\n this.documentUploadRequest.append('DocumentCreationDate', this.tempDocumentSummary.documentCreationDate.dateTime);\r\n }\r\n\r\n editClicked() {\r\n if (this.docDetailsContainerComponent.isCollapsed) {\r\n //this.docDetailsContainerComponent.expandClicked();\r\n this.docDetailsContainerComponent.panelToggle();\r\n }\r\n this.isEditing = true;\r\n }\r\n\r\n cancelClicked() {\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.companyDocumentSummary);\r\n this.isEditing = false;\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n formStatusChange(formIsValid: any) {\r\n this.formIsValid = formIsValid;\r\n }\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n}\r\n","\r\n \r\n

\r\n Enterprise Document\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Document Details\r\n \r\n \r\n Document Details - {{companyDocumentSummary?.originalFilename}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Observations\r\n \r\n
\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, ViewEncapsulation } from '@angular/core';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { CompanyDocumentService } from '../../services/company-documents.service';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\n\r\n@Component({\r\n selector: 'app-company-documents-page',\r\n templateUrl: './company-documents-page.component.html',\r\n styleUrls: ['./company-documents-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CompanyDocumentsPageComponent implements OnInit, OnDestroy {\r\n companyDocumentSummaries: IDocumentSummaryInfo[] = [];\r\n companyDocumentTypes: IDocumentType[];\r\n loading: boolean;\r\n documentsLoading: boolean = false;\r\n companyDocumentsLoading: boolean = true;\r\n isOnMobile: boolean = true;\r\n\r\n loggedInUser: IUserInfo;\r\n private companyId: string = consts.emptyGuid;\r\n private loggedInUserSubscription: Subscription;\r\n\r\n constructor(private documentTypeService: DocumentTypeService,\r\n private companyDocumentService: CompanyDocumentService,\r\n private documentService: DocumentService,\r\n private documentModalService: DocumentModalService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private helpService: HelpModalService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private alertsService: AlertsService,\r\n private userService: OurUserService, private errorHandlingService: ErrorHandlingService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n if (user) {\r\n this.updateUserAndReload(user);\r\n this.populateBreadcrumbs();\r\n }\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n\r\n const navAction = this.activatedRoute.snapshot.params.navAction;\r\n // TODO Change to route data, rather than params?\r\n if (navAction === 'add-document') {\r\n this.addCompanyDocument();\r\n }\r\n this.documentTypeService.getAllDocumentTypesForEntityType(DocumentEntityType.company).subscribe(companyDocumentTypes => {\r\n this.companyDocumentTypes = companyDocumentTypes;\r\n this.companyDocumentsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n this.getCompanyDocumentSummaries(this.companyId);\r\n }\r\n\r\n downloadCompanyDocument(companyDocument: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(companyDocument, true);\r\n }\r\n\r\n openCompanyDocument(companyDocument: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(companyDocument);\r\n }\r\n\r\n getCompanyDocumentSummaries(companyId: string, includeExpired: boolean = false) {\r\n this.companyDocumentSummaries = [];\r\n\r\n this.companyDocumentService.getAllDocumentSummariesForEnterprise(companyId, includeExpired).subscribe(companyDocuments => {\r\n companyDocuments?.forEach(companyDocument => this.companyDocumentSummaries.push(companyDocument));\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n ////Company Documents\r\n //this.companyDocumentService.getAllDocumentSummariesByEntityType(companyId, DocumentEntityType.company, includeExpired).subscribe(companyDocuments => {\r\n // companyDocuments?.forEach(companyDocument => this.companyDocumentSummaries.push(companyDocument));\r\n //}, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n //});\r\n\r\n ////Training Course Documents\r\n //this.companyDocumentService.getAllDocumentSummariesByEntityType(companyId, DocumentEntityType.trainingCourse, includeExpired).subscribe(trainingCourseDocuments => {\r\n // trainingCourseDocuments?.forEach(trainingCourseDocument => this.companyDocumentSummaries.push(trainingCourseDocument));\r\n //}, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n //});\r\n\r\n ////Observation Documents (Company specific)\r\n //this.companyDocumentService.getAllDocumentSummariesByEntityType(companyId, DocumentEntityType.observation, includeExpired).subscribe(observationDocuments => {\r\n // observationDocuments?.forEach(observationDocument => this.companyDocumentSummaries.push(observationDocument));\r\n //}, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n //});\r\n }\r\n\r\n deleteCompanyDocumentClick(companyDocument: IEntityDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete this document?',\r\n 'Delete ' + companyDocument.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.companyDocumentsLoading = true;\r\n this.deleteCompanyDocument(companyDocument);\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteCompanyDocument(companyDocument: IEntityDocumentSummary) {\r\n this.companyDocumentService.deleteCompanyDocument(companyDocument.documentId, this.companyId).subscribe(\r\n result => {\r\n if (result) {\r\n this.getCompanyDocumentSummaries(this.companyId);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }\r\n this.companyDocumentsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n addCompanyDocument() {\r\n this.documentModalService.openDocumentUploaderModal(null, DocumentEntityType.company, 'Add Enterprise Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n this.companyDocumentsLoading = true;\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.companyDocumentService.createOrUpdateCompanyDocument(documentUploadRequest).subscribe(companyDocumentSummary => {\r\n this.loading = false;\r\n this.getCompanyDocumentSummaries(this.companyId);\r\n this.companyDocumentsLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n editCompanyDocument(companyDocumentSummary: IEntityDocumentSummary) {\r\n this.documentModalService.openDocumentUploaderModal(companyDocumentSummary, DocumentEntityType.company, 'Edit Enterprise Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n this.companyDocumentsLoading = true;\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.companyDocumentService.createOrUpdateCompanyDocument(documentUploadRequest).subscribe(updatedCompanyDocumentSummary => {\r\n this.loading = false;\r\n this.getCompanyDocumentSummaries(this.companyId);\r\n this.companyDocumentsLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n viewCompanyDocument(companyDocument: IEntityDocumentSummary) {\r\n if (companyDocument.entityType === DocumentEntityType.company) {\r\n this.router.navigate(['company-document', companyDocument.documentId]);\r\n }\r\n else if (companyDocument.entityType === DocumentEntityType.trainingCourse) {\r\n this.router.navigate(['/training-course-document/', companyDocument.documentId]);\r\n }\r\n else if (companyDocument.entityType === DocumentEntityType.observation) {\r\n this.router.navigate(['/observation-document/', companyDocument.documentId]);\r\n }\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({\r\n label: this.loggedInUser?.companyName?.toString() + ' - ' + 'Enterprise Documents',\r\n iconName: 'books',\r\n } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n refreshDocuments(includeExpired: boolean) {\r\n this.getCompanyDocumentSummaries(this.companyId, includeExpired);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n openCompanyDocumentsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanyDocumentsHelp);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Enterprise Documents\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\n\r\n@Component({\r\n selector: 'app-company-documents',\r\n templateUrl: './company-documents.component.html',\r\n styleUrls: ['./company-documents.component.scss']\r\n})\r\nexport class CompanyDocumentsComponent implements OnInit {\r\n @Input() showTableCaption: boolean;\r\n @Input() companyDocuments: Array;\r\n @Output() openCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() addCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() editCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() downloadCompanyDocument: EventEmitter = new EventEmitter();\r\n @Output() deleteCompanyDocumentClick: EventEmitter = new EventEmitter();\r\n @Input() headerText = 'Our Documents';\r\n @Input() showCount = false;\r\n @Input() addDocumentButtonText = 'Add';\r\n @Input() showAddDocumentButton = true;\r\n rowMenuItems: MenuItem[];\r\n constructor(private router: Router) {\r\n }\r\n\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Preview',\r\n icon: 'fas fa-search',\r\n state: { 'contextLogic': 'canPreviewDocument' },\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openDocument($event)\r\n },\r\n {\r\n label: 'Edit',\r\n icon: 'fas fa-edit',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.editDocument($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadDocument($event)\r\n },\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteCompanyDocument($event)\r\n }\r\n ]\r\n }\r\n\r\n openDocument(companyDocument: IDocumentSummaryInfo) {\r\n this.openCompanyDocument.emit(companyDocument);\r\n }\r\n\r\n deleteCompanyDocument(companyDocument: any) {\r\n this.deleteCompanyDocumentClick.emit(companyDocument);\r\n }\r\n\r\n downloadDocument(companyDocument: any) {\r\n this.downloadCompanyDocument.emit(companyDocument);\r\n }\r\n\r\n editDocument(companyDocument: any) {\r\n this.editCompanyDocument.emit(companyDocument);\r\n }\r\n\r\n viewCompanyDocumentClicked(companyDocument: IDocumentSummaryInfo) {\r\n if (companyDocument.entityType === DocumentEntityType.company) {\r\n this.router.navigate(['company-document', companyDocument.documentId]);\r\n }\r\n else if (companyDocument.entityType === DocumentEntityType.trainingCourse) {\r\n this.router.navigate(['/training-course-document/', companyDocument.documentId]);\r\n }\r\n else if (companyDocument.entityType === DocumentEntityType.observation) {\r\n this.router.navigate(['/observation-document/', companyDocument.documentId]);\r\n }\r\n }\r\n\r\n addDocumentClicked() {\r\n this.addCompanyDocument.emit();\r\n }\r\n}\r\n"," 5\" scrollHeight=\"500px\"\r\n [globalFilterFields]=\"['documentType', 'originalFilename']\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{companyDocuments?.length}} {{headerText}}\r\n {{headerText}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Include Expired?\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\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 \r\n \r\n Created On\r\n \r\n \r\n \r\n Expires On\r\n \r\n \r\n \r\n Original Filename\r\n \r\n \r\n \r\n Observations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ companyDocument.documentType }}\r\n {{ companyDocument.documentCreationDate?.dateTime | date: 'dd/MM/yyyy' }}\r\n {{ companyDocument?.expiryDate?.dateTime | date: 'dd/MM/yyyy' }}\r\n {{ companyDocument.originalFilename }}\r\n {{ companyDocument.totalObservations }}\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 {ITrainingRecordSummary} from '../../../message-models/training-record-summary.interface';\r\nimport {TrainingRecordsService} from '../../../training-records/services/training-records.service';\r\nimport {EcaBreadcrumbService} from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport {IBreadcrumb} from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport {OurUserService} from \"../../../users/services/user.service\";\r\nimport {IUserInfo} from \"../../../users/models/userInfo.interface\";\r\nimport {consts} from \"../../../common/modals/consts\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {EcaConfirmInfoModalOptions} from '../../../shared/models/confirm-info-modal-options.class';\r\nimport {EcaConfirmProcessService} from '../../../shared/services/eca-confirm-process.service';\r\nimport {ErrorHandlingService} from '../../../services/error-handling.service';\r\nimport {AlertsService} from '../../../alerts/services/alerts.service';\r\nimport {HelpConsts} from '../../../help/models/help-consts';\r\nimport {HelpModalService} from '../../../help/services/help-modal.service';\r\n\r\n@Component({\r\n selector: 'app-company-operative-training-records-page',\r\n templateUrl: './company-operative-training-records-page.component.html',\r\n styleUrls: ['./company-operative-training-records-page.component.scss']\r\n})\r\nexport class CompanyOperativeTrainingRecordsPageComponent implements OnInit, OnDestroy {\r\n trainingRecords: ITrainingRecordSummary[] = [];\r\n trainingRecordsLoading: boolean = true;\r\n\r\n loggedInUser: IUserInfo;\r\n private companyId: string = consts.emptyGuid;\r\n private subscription: Subscription;\r\n\r\n constructor(private trainingRecordsService: TrainingRecordsService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private alertsService: AlertsService,\r\n private helpService: HelpModalService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n // this.updateUserAndReload(user);\r\n this.subscription = this.userService.getLoggedInUserSubject()\r\n .subscribe(user =>\r\n {\r\n this.updateUserAndReload(user);\r\n }\r\n )\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n\r\n\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo){\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if(this.companyId !== undefined || this.companyId !== consts.emptyGuid){\r\n this.loadTrainingRecordSummaries();\r\n }\r\n\r\n }\r\n\r\n loadTrainingRecordSummaries() {\r\n this.trainingRecordsService.getTrainingRecordSummariesForCompany(this.companyId).subscribe(trainingRecords => {\r\n this.trainingRecords = [];\r\n trainingRecords?.forEach(trainingRecord => this.trainingRecords.push(trainingRecord));\r\n this.trainingRecordsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n operativeBreadCrumbs.push({label: 'Operatives', iconName: 'users', routeLink: '/operatives'} as IBreadcrumb);\r\n operativeBreadCrumbs.push({label: 'Training Records', iconName: 'graduation-cap'} as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n openTrainingRecordsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.OperativeTrainingRecordsHelp);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Training Records \r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ITrainingRecordSummary } from '../../../message-models/training-record-summary.interface';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { Router } from '@angular/router';\r\nimport { ITrainingRecord } from '../../../message-models/training-record.interface';\r\nimport { IAllowedOperations } from \"../../../users/models/userInfo.interface\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { ExportExcelService } from 'src/app/common/services/export-excel.service';\r\nimport { EcaConfirmProcessService } from \"../../../shared/services/eca-confirm-process.service\";\r\nimport { EcaConfirmDeleteModalOptions } from \"../../../shared/models/confirm-delete-modal-options.class\";\r\nimport { TrainingRecordsService } from \"../../../training-records/services/training-records.service\";\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { ITrainingMatrix } from '../../../message-models/training-matrix.interface';\r\n\r\n@Component({\r\n selector: 'app-company-operative-training-records',\r\n templateUrl: './company-operative-training-records.component.html',\r\n styleUrls: ['./company-operative-training-records.component.scss']\r\n})\r\nexport class CompanyOperativeTrainingRecordsComponent implements OnInit {\r\n isOnMobile = false;\r\n @Input() showHeaderText = true;\r\n @Input() trainingRecords: Array = new Array();\r\n @Input() allowedOperations: IAllowedOperations;\r\n @Input() companyId: string;\r\n @Output() refreshListRequested: EventEmitter = new EventEmitter();\r\n @Output() trainingRecordId: EventEmitter = new EventEmitter();\r\n columns: any[];\r\n exportColumns: any[];\r\n matrixColumns: any[];\r\n companyOperativesTraingRecordsToExport: any[] = [];\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private router: Router, private confirmProcessService: EcaConfirmProcessService, private datePipe: DatePipe,\r\n private trainingRecordsService: TrainingRecordsService,\r\n private exportExcelService: ExportExcelService,\r\n private errorHandlingService: ErrorHandlingService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.columns = [\r\n { field: 'operativeFirstName', header: 'Operative First Name', type: 'text' },\r\n { field: 'operativeLastName', header: 'Operative Last Name', type: 'text' },\r\n { field: 'achievedOn', header: 'Achieved On', type: 'date' },\r\n { field: 'validTo', header: 'Valid To', type: 'date' },\r\n { field: 'trainingTypeName', header: 'Training Course', type: 'text' },\r\n { field: 'trainingExtraDescription', header: 'Description', type: 'html' },\r\n { field: 'categoryName', header: 'Category Name', type: 'text' },\r\n { field: 'totalObservations', header: 'Observations', type: 'text' },\r\n \r\n { field: 'cpdHour', header: 'CPD Hours', type: 'text' }\r\n\r\n ];\r\n this.exportColumns = [\r\n { field: 'operativeFirstName', header: 'Operative First Name' },\r\n { field: 'operativeLastName', header: 'Operative Last Name' },\r\n { field: 'achievedOn', header: 'Achieved On' },\r\n { field: 'validTo', header: 'Valid To' },\r\n { field: 'trainingTypeName', header: 'Training Course' },\r\n { field: 'trainingExtraDescription', header: 'Description' },\r\n { field: 'categoryName', header: 'Category Name', type: 'text' },\r\n { field: 'totalObservations', header: 'Observations' },\r\n \r\n { field: 'cpdHour', header: 'CPD Hours' }\r\n ];\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n visible: this.allowedOperations?.canDelete,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.confirmDeleteTrainingRecord($event)\r\n }\r\n ]\r\n\r\n this.matrixColumns = [\r\n { field: 'operativeName', header: 'Operative Name' },\r\n { field: 'businessUnit', header: 'Business Unit' },\r\n { field: 'operativeType', header: 'Operative Type' },\r\n { field: 'jobTitle', header: 'Job Title' },\r\n { field: 'course_1', header: 'Course 1' },\r\n { field: 'course_2', header: 'Course 2' },\r\n { field: 'course_3', header: 'Course 3' },\r\n { field: 'course_4', header: 'Course 4' },\r\n { field: 'course_5', header: 'Course 5' },\r\n { field: 'course_6', header: 'Course 6' },\r\n { field: 'course_7', header: 'Course 7' },\r\n { field: 'course_8', header: 'Course 8' },\r\n { field: 'course_9', header: 'Course 9' },\r\n { field: 'course_10', header: 'Course 10' },\r\n { field: 'course_11', header: 'Course 11' },\r\n { field: 'course_12', header: 'Course 12' },\r\n { field: 'course_13', header: 'Course 13' },\r\n { field: 'course_14', header: 'Course 14' },\r\n { field: 'course_15', header: 'Course 15' },\r\n { field: 'course_16', header: 'Course 16' },\r\n { field: 'course_17', header: 'Course 17' },\r\n { field: 'course_18', header: 'Course 18' },\r\n { field: 'course_19', header: 'Course 19' },\r\n { field: 'course_20', header: 'Course 20' },\r\n { field: 'course_21', header: 'Course 21' },\r\n { field: 'course_22', header: 'Course 22' },\r\n { field: 'course_23', header: 'Course 23' },\r\n { field: 'course_24', header: 'Course 24' },\r\n { field: 'course_25', header: 'Course 25' },\r\n { field: 'course_26', header: 'Course 26' },\r\n { field: 'course_27', header: 'Course 27' },\r\n { field: 'course_28', header: 'Course 28' },\r\n { field: 'course_29', header: 'Course 29' },\r\n { field: 'course_30', header: 'Course 30' },\r\n { field: 'course_31', header: 'Course 31' },\r\n { field: 'course_32', header: 'Course 32' },\r\n { field: 'course_33', header: 'Course 33' },\r\n { field: 'course_34', header: 'Course 34' },\r\n { field: 'course_35', header: 'Course 35' },\r\n { field: 'course_36', header: 'Course 36' },\r\n { field: 'course_37', header: 'Course 37' },\r\n { field: 'course_38', header: 'Course 38' },\r\n { field: 'course_39', header: 'Course 39' },\r\n { field: 'course_40', header: 'Course 40' },\r\n { field: 'course_41', header: 'Course 41' },\r\n { field: 'course_42', header: 'Course 42' },\r\n { field: 'course_43', header: 'Course 43' },\r\n { field: 'course_44', header: 'Course 44' },\r\n { field: 'course_45', header: 'Course 45' },\r\n { field: 'course_46', header: 'Course 46' },\r\n { field: 'course_47', header: 'Course 47' },\r\n { field: 'course_48', header: 'Course 48' },\r\n { field: 'course_49', header: 'Course 49' },\r\n { field: 'course_50', header: 'Course 50' },\r\n { field: 'course_51', header: 'Course 51' },\r\n { field: 'course_52', header: 'Course 52' },\r\n { field: 'course_53', header: 'Course 53' },\r\n { field: 'course_54', header: 'Course 54' },\r\n { field: 'course_55', header: 'Course 55' },\r\n { field: 'course_56', header: 'Course 56' },\r\n { field: 'course_57', header: 'Course 57' },\r\n { field: 'course_58', header: 'Course 58' },\r\n { field: 'course_59', header: 'Course 59' },\r\n { field: 'course_60', header: 'Course 60' },\r\n { field: 'course_61', header: 'Course 61' },\r\n { field: 'course_62', header: 'Course 62' },\r\n { field: 'course_63', header: 'Course 63' },\r\n { field: 'course_64', header: 'Course 64' },\r\n { field: 'course_65', header: 'Course 65' },\r\n { field: 'course_66', header: 'Course 66' },\r\n { field: 'course_67', header: 'Course 67' },\r\n { field: 'course_68', header: 'Course 68' },\r\n { field: 'course_69', header: 'Course 69' },\r\n { field: 'course_70', header: 'Course 70' },\r\n { field: 'course_71', header: 'Course 71' },\r\n { field: 'course_72', header: 'Course 72' },\r\n { field: 'course_73', header: 'Course 73' },\r\n { field: 'course_74', header: 'Course 74' },\r\n { field: 'course_75', header: 'Course 75' },\r\n \r\n ];\r\n }\r\n\r\n viewTrainingRecord(trainingRecord: ITrainingRecord) {\r\n if (!trainingRecord?.id)\r\n return;\r\n\r\n this.router.navigate([\"/training-record/\" + trainingRecord.id]);\r\n }\r\n\r\n exportToExcel() {\r\n this.companyOperativesTraingRecordsToExport = [];\r\n this.trainingRecords.forEach(element => {\r\n let temporalDivElement = document.createElement(\"div\");\r\n temporalDivElement.innerHTML = element.trainingExtraDescription;\r\n const tempObject = {\r\n operativeFirstName: element.operativeFirstName,\r\n operativeLastName: element.operativeLastName,\r\n achievedOn: this.datePipe.transform(element.achievedOn?.dateTime, 'dd/MM/yyyy'),\r\n validTo: this.datePipe.transform(element.validTo?.dateTime, 'dd/MM/yyyy'),\r\n trainingTypeName: element.trainingTypeName,\r\n trainingExtraDescription: temporalDivElement.textContent || temporalDivElement.innerText || \"\",\r\n categoryName: element.categoryName,\r\n totalObservations: element.totalObservations,\r\n //totalDocuments: element.totalDocuments,\r\n cpdHour: element.cpdHour\r\n };\r\n this.companyOperativesTraingRecordsToExport.push(tempObject);\r\n });\r\n\r\n this.exportExcelService.exportToExcel(this.companyOperativesTraingRecordsToExport, this.exportColumns, 'Company Operative Training Records')\r\n\r\n }\r\n\r\n exportTrainingMatrix() {\r\n //get data\r\n this.trainingRecordsService.getTrainingMatrixForCompany(this.companyId).subscribe(trainingMatrix => {\r\n //send for export\r\n this.exportExcelService.exportTrainingMatrix(trainingMatrix, this.matrixColumns, 'Company Operative Training Matrix')\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n\r\n });\r\n })\r\n };\r\n\r\n confirmDeleteTrainingRecord(trainingRecord: ITrainingRecordSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to remove the training record for ' + trainingRecord.operativeName,\r\n \"Remove training Record?\", new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.trainingRecordsService.deleteTrainingRecord(trainingRecord).subscribe(result => {\r\n if (result) {\r\n this.refreshListRequested.emit();\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n 5\" scrollHeight=\"500px\" dataKey=\"id\"\r\n [responsive]=\"true\" [columns]=\"columns\"\r\n [globalFilterFields]=\"['operativeFirstName', 'operativeLastName', 'achievedOn.dateTime','validTo.dateTime', 'trainingTypeName', 'trainingExtraDescription' , 'totalObservations', 'categoryName', 'cpdHour']\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ trainingRecords.length }}\r\n Training Records\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n Operative First Name\r\n \r\n \r\n \r\n Operative Last Name\r\n \r\n \r\n \r\n Achieved On\r\n \r\n \r\n \r\n Valid To\r\n \r\n \r\n \r\n Training Course\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n Category Name\r\n \r\n \r\n \r\n Observations\r\n \r\n \r\n\r\n \r\n CPD Hours\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {{col.header}}: \r\n \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, ViewEncapsulation} from '@angular/core';\r\nimport {OperativesService} from '../../../operatives/services/operatives.service';\r\nimport {ListDataService} from '../../../services/list-data.service';\r\nimport {IRiskInfo} from '../../../message-models/risk-info.interface';\r\nimport {IJobLevelInfo} from '../../../message-models/job-level.interface';\r\nimport {IRiskMatrixEntry} from '../../../message-models/risk-matrix-entry.interface';\r\nimport {OperativeInfo} from '../../../domain-model/operative-info.class';\r\nimport {IBreadcrumb} from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport {EcaBreadcrumbService} from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport {RiskHelpModalService} from '../../../services/risk-help-modal.service';\r\nimport {IJobTitleInfo} from '../../../message-models/job-title.interface';\r\nimport {OurUserService} from '../../../users/services/user.service';\r\nimport {IUserInfo} from '../../../users/models/userInfo.interface';\r\nimport {consts} from '../../../common/modals/consts';\r\nimport {BehaviorSubject, Subscription} from 'rxjs';\r\nimport {EcaConfirmProcessService} from '../../../shared/services/eca-confirm-process.service';\r\nimport {AlertsService} from '../../../alerts/services/alerts.service';\r\nimport {HelpModalService} from '../../../help/services/help-modal.service';\r\nimport {HelpConsts} from '../../../help/models/help-consts';\r\nimport {IEmploymentStatus} from '../../../message-models/employment-status.interface';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { CompanyJobRoleService } from '../../../setting/job-role/services/company-job-role.service';\r\n\r\n@Component({\r\n selector: 'app-company-operatives',\r\n templateUrl: './company-operatives.component.html',\r\n styleUrls: ['./company-operatives.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CompanyOperativesComponent implements OnInit, OnDestroy {\r\n allRisks: IRiskInfo[] = [];\r\n allRisksLoaded = false;\r\n\r\n allJobLevels: IJobLevelInfo[] = [];\r\n allJobLevelsLoaded = false;\r\n\r\n allJobTitles: IJobTitleInfo[] = [];\r\n allJobTitlesLoaded = false;\r\n allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n\r\n\r\n allEmploymentStatuses: IEmploymentStatus[] = [];\r\n allEmploymentStatusesLoaded = false;\r\n\r\n allOperativeTypes: IOperativeTypeInfo[] = [];\r\n allOperativeTypesLoaded = false;\r\n\r\n allBusinessUnits: IBusinessUnitInfo[] = [];\r\n allBusinessUnitsLoaded = false;\r\n\r\n riskMatrix: IRiskMatrixEntry[] = [];\r\n riskMatrixLoaded = false;\r\n\r\n operatives: OperativeInfo[] = [];\r\n companyId: string = consts.emptyGuid;\r\n operativesAsOf = '';\r\n loadingOperatives = true;\r\n public loggedInUser: IUserInfo;\r\n private loggedInUserSubscription: Subscription;\r\n loadedOperativesSubject = new BehaviorSubject(false);\r\n\r\n constructor(private operativesService: OperativesService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private alertsService: AlertsService,\r\n private listDataService: ListDataService,\r\n private riskHelpModalService: RiskHelpModalService,\r\n private helpService: HelpModalService,\r\n private userService: OurUserService,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n private confirmProcessService: EcaConfirmProcessService, ) { }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe( user => {\r\n this.updateUserAndReload(user);\r\n });\r\n });\r\n\r\n\r\n this.listDataService.getAllRisks().subscribe( {\r\n next: response => {\r\n this.allRisks = response;\r\n this.allRisksLoaded = true;\r\n this.operativesService.setOperativeRisks(response);\r\n }\r\n });\r\n\r\n this.listDataService.getAllJobTitles().subscribe( {\r\n next: response => {\r\n this.allJobTitles = response;\r\n this.allJobTitlesLoaded = true;\r\n }\r\n });\r\n\r\n this.companyJobRoleService.getCompanyJobTitlesByCompanyId(this.companyId).subscribe({\r\n next: response => {\r\n this.allCompanyJobTitles = response;\r\n this.allJobTitlesLoaded = true;\r\n }\r\n });\r\n\r\n\r\n\r\n\r\n\r\n this.listDataService.getAllOperativeTypes().subscribe({\r\n next: response => {\r\n this.allOperativeTypes = response;\r\n this.allOperativeTypesLoaded = true;\r\n }\r\n });\r\n\r\n this.listDataService.getBusinessUnitsForCompany(this.companyId).subscribe({\r\n next: response => {\r\n this.allBusinessUnits = response;\r\n this.allBusinessUnitsLoaded = true;\r\n }\r\n });\r\n\r\n this.listDataService.getAllJobLevels().subscribe( {\r\n next: response => {\r\n this.allJobLevels = response;\r\n this.allJobLevelsLoaded = true;\r\n this.operativesService.setOperativeJobLevels(response);\r\n }\r\n });\r\n\r\n this.listDataService.getRiskMatrix().subscribe( {\r\n next: response => {\r\n this.riskMatrix = response;\r\n this.riskMatrixLoaded = true;\r\n this.operativesService.setOperativeRiskMatrixLevels(response);\r\n }\r\n });\r\n this.listDataService.getAllEmploymentStatuses().subscribe( {\r\n next: response => {\r\n this.allEmploymentStatuses = response;\r\n this.allEmploymentStatusesLoaded = true;\r\n this.operativesService.setOperativeEmploymentStatus(response);\r\n }\r\n });\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid && this.companyId !== undefined) {\r\n this.loadOperatives(new Date().toISOString());\r\n }\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n private loadOperatives(asOf: string,allHistory: boolean = false) {\r\n this.operativesService.getOperativesInCompany(this.companyId, asOf,false,allHistory).subscribe({\r\n next: operatives => {\r\n this.operatives = new Array();\r\n this.operatives = operatives;\r\n \r\n this.loadedOperativesSubject.next(true);\r\n this.operatives?.forEach(op => {\r\n if (op.currentOperativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n op.jobTitle = this.allCompanyJobTitles.find(x => x.id === op.currentJobTitleId)?.name;\r\n }\r\n else {\r\n op.jobTitle = this.allJobTitles?.find(x => x.id === op.currentJobTitleId)?.name;\r\n }\r\n \r\n op.operativeType = this.allOperativeTypes?.find(x => x.id === op.currentOperativeTypeId)?.name;\r\n op.businessUnit = this.allBusinessUnits?.find(x => x.id === op.currentBusinessUnitId)?.name;\r\n op.totalCPDHours = op.trainingRecords.filter(record => record.cpdHour > 0).reduce((acc, record) => acc + record.cpdHour, 0);\r\n op.totalCPDHours = parseFloat(op.totalCPDHours.toFixed(2));\r\n });\r\n\r\n this.operativesService.setOperativeRiskAndLevels(this.allRisks, this.allJobLevels, this.riskMatrix, this.allEmploymentStatuses);\r\n }, error: err => {\r\n this.loadingOperatives = false;\r\n }, complete: () => {\r\n this.loadingOperatives = false;\r\n }\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({label: this.loggedInUser?.companyName?.toString() + ' - ' + 'Operatives', iconName: 'users'} as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n openRiskHelp() {\r\n this.riskHelpModalService.openRiskHelpModal('Help', this.riskMatrix, this.allRisks, this.allJobLevels, this.operatives, null, this.operativesAsOf, this.loggedInUser?.companyName, false);\r\n }\r\n\r\n reloadOperatives(asOf: string,allHistory:boolean = false) {\r\n this.loadingOperatives = true;\r\n this.loadOperatives(asOf,allHistory);\r\n this.loadingOperatives = false;\r\n this.alertsService.getSupervisionAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }\r\n\r\n asOfSelected(date: any) {\r\n this.operativesAsOf = date;\r\n }\r\n\r\n openOperativesHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanyOperativesHelp);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Operatives \r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\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, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { CompanyOptInAcceptanceSummary } from '../../../domain-model/company-opt-in-acceptance-summary.class';\r\nimport { OptInAction } from '../../../message-models/optin-action.interface';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { IOptInModalInfo } from '../../../message-models/optin-modal-info.interface';\r\nimport { OptInModalInfo } from '../../../message-models/optin-modal-info.class';\r\nimport { CompanyOptInService } from '../../services/company-opt-in.service';\r\nimport { DecisionRequirement } from '../../../message-models/decision-requirement.enum';\r\nimport { AuthorizeService } from '../../../../api-authorization/authorize.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-company-opt-in-modal',\r\n templateUrl: './company-opt-in-modal.component.html',\r\n styleUrls: ['./company-opt-in-modal.component.scss']\r\n})\r\n\r\nexport class CompanyOptInModalComponent implements OnInit {\r\n @Input() modalDetails: OptInModalInfo = new OptInModalInfo({} as IOptInModalInfo);\r\n @Input() companyOptInAcceptanceSummaries: CompanyOptInAcceptanceSummary[] = [];\r\n @Output() recordOptInActionsClicked: EventEmitter = new EventEmitter();\r\n showErrors: boolean = false;\r\n showIndividualError: boolean = false;\r\n currentIndex: number = null;\r\n mustVisitMessage: string = 'You must visit this page to review the information before continuing';\r\n\r\n constructor(\r\n public modalRef: DynamicDialogRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n private companyOptInService: CompanyOptInService,\r\n private authorizeService: AuthorizeService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.companyOptInAcceptanceSummaries.forEach(item => {\r\n if (item.decision === null) {\r\n item.decision = item.defaultOptInState;\r\n }\r\n })\r\n }\r\n\r\n goToLink(companyOptInAcceptanceSummary: CompanyOptInAcceptanceSummary) {\r\n this.recordOptInAction(companyOptInAcceptanceSummary, true, companyOptInAcceptanceSummary.decision);\r\n if (companyOptInAcceptanceSummary.optInUrl !== '') {\r\n if (companyOptInAcceptanceSummary.openOnSamePage) {\r\n this.document.location.href = companyOptInAcceptanceSummary.optInUrl;\r\n } else {\r\n window.open(companyOptInAcceptanceSummary.optInUrl, '_newtab');\r\n }\r\n }\r\n }\r\n\r\n recordOptInActions() {\r\n let anyErrors = false;\r\n this.companyOptInAcceptanceSummaries.forEach(optIn => {\r\n optIn.showMustVisit = (optIn.mustVisit && !optIn.isUrlVisited);\r\n optIn.showError = (optIn.decisionRequirement === DecisionRequirement.MandatoryYes && optIn.decision !== true)\r\n || (optIn.decisionRequirement === DecisionRequirement.MandatoryNo && optIn.decision !== false);\r\n if (optIn.showError || optIn.showMustVisit)\r\n anyErrors = true;\r\n });\r\n\r\n if (anyErrors)\r\n return;\r\n\r\n let optInActions: Array = [];\r\n this.companyOptInAcceptanceSummaries.forEach(item => {\r\n let optInAction = {\r\n companyId: item.companyId,\r\n optInEntryId: item.optInEntryId,\r\n visited: item.visitedOn.dateTime !== '',\r\n decision: item.decision ?? item.defaultOptInState,\r\n isFinalAcceptance: true\r\n } as OptInAction;\r\n optInActions.push(optInAction);\r\n })\r\n this.companyOptInService.recordOptInActions(optInActions).subscribe(result => {\r\n if (result) {\r\n this.modalRef.close();\r\n this.recordOptInActionsClicked.emit(optInActions);\r\n }\r\n })\r\n }\r\n\r\n compareHtmlStrings(str1: string, str2: string) {\r\n let div1 = document.createElement(\"div\");\r\n div1.innerHTML = str1;\r\n let div2 = document.createElement(\"div\");\r\n div2.innerHTML = str2;\r\n if (div1.textContent.toUpperCase() > div2.textContent.toUpperCase()) {\r\n return 1;\r\n } else if (div1.textContent.toUpperCase() < div2.textContent.toUpperCase()) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n recordOptInAction(companyOptInAcceptanceSummary: CompanyOptInAcceptanceSummary, visited: boolean, decision?: boolean, saveOnly?: boolean) {\r\n let optInAction = {\r\n companyId: companyOptInAcceptanceSummary.companyId,\r\n optInEntryId: companyOptInAcceptanceSummary.optInEntryId,\r\n visited: visited,\r\n decision: decision\r\n } as OptInAction;\r\n\r\n companyOptInAcceptanceSummary.decisionFinalised = true;\r\n\r\n this.companyOptInService.recordOptInAction(optInAction).subscribe(result => {\r\n if (!saveOnly && result) {\r\n let newCompanyAcceptance = new CompanyOptInAcceptanceSummary(result);\r\n newCompanyAcceptance.showMustVisit = true;\r\n newCompanyAcceptance.showError = (newCompanyAcceptance.decisionRequirement === DecisionRequirement.MandatoryYes && newCompanyAcceptance.decision !== true)\r\n || (newCompanyAcceptance.decisionRequirement === DecisionRequirement.MandatoryNo && newCompanyAcceptance.decision !== false);\r\n this.companyOptInAcceptanceSummaries = this.companyOptInAcceptanceSummaries.filter(d => d.optInEntryId !== newCompanyAcceptance.optInEntryId);\r\n this.companyOptInAcceptanceSummaries.push(newCompanyAcceptance);\r\n this.companyOptInAcceptanceSummaries.sort((a, b) => this.compareHtmlStrings(a.optInDescription, b.optInDescription));\r\n }\r\n })\r\n }\r\n\r\n onChangeToggled(companyOptInAcceptanceSummary: CompanyOptInAcceptanceSummary) {\r\n this.recordOptInAction(companyOptInAcceptanceSummary, companyOptInAcceptanceSummary.visitedOn.dateTime !== null, companyOptInAcceptanceSummary.decision, true);\r\n if (companyOptInAcceptanceSummary.mustVisit && companyOptInAcceptanceSummary.visitedOn.dateTime === null) {\r\n setTimeout(() => {\r\n companyOptInAcceptanceSummary.showMustVisit = true;\r\n }, 500);\r\n }\r\n }\r\n\r\n clicked(b: boolean) { }\r\n\r\n signOut() {\r\n this.authorizeService.signOut('App').then(result =>\r\n this.router.navigate(['/'])\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n

{{ modalDetails?.optInModalTitle }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {{mustVisitMessage}}\r\n \r\n
    \r\n
    \r\n \r\n {{companyOptInAcceptanceSummary?.errorText}}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { HelpConsts } from \"../../../help/models/help-consts\";\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { CompanyService } from '../../../company/services/company.service';\r\nimport { AlertEmailOptions } from '../../../message-models/alert-email-options.class';\r\nimport { IAlertEmailOptions } from '../../../message-models/alert-email-options.interface';\r\nimport { ICompanyAlertEmailSettings } from '../../../message-models/company-alert-email-settings.interface';\r\nimport { CompanyAlertEmailSettings } from '../../../message-models/company-alert-email-settings.class';\r\n\r\n@Component({\r\n selector: 'app-company-settings-email-modal',\r\n templateUrl: './company-settings-email-modal.component.html',\r\n styleUrls: ['./company-settings-email-modal.component.scss']\r\n})\r\n\r\nexport class CompanySettingsEmailModalComponent implements OnInit {\r\n\r\n @Input() isEditing = false;\r\n EmailAddRequest: FormData;\r\n @Input() headerText = 'Add Recipient Email';\r\n @Output() emaillAddSave: EventEmitter = new EventEmitter();\r\n @Output() modalClosed: EventEmitter = new EventEmitter();\r\n loggedInUserSubscription: Subscription;\r\n public loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n public emailOptions: Array = new Array();\r\n selectedEmailOptions: Array = new Array();\r\n isEmailModalLoading: boolean = false;\r\n\r\n constructor(public modalRef: DynamicDialogRef,\r\n private errorHandlingService: ErrorHandlingService,\r\n private userService: OurUserService,\r\n private companyService: CompanyService) { }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.updateUserAndReload(user);\r\n this.companyId = this.loggedInUser?.companyId;\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n this.isEmailModalLoading = true;\r\n this.getAlertEmailOptionsList();\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if(this.companyId !== consts.emptyGuid && this.companyId !== undefined) {\r\n }\r\n }\r\n\r\n getAlertEmailOptionsList() {\r\n this.companyService.getAlertEmailOptionsList(this.companyId).subscribe(results => {\r\n this.emailOptions = results;\r\n this.isEmailModalLoading = false;\r\n }, (error) => {\r\n console.log(error);\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n saveClicked() {\r\n this.isEmailModalLoading = true;\r\n this.emailOptions.forEach(item => {\r\n if (item.selected == true) {\r\n var selectedOption = new CompanyAlertEmailSettings();\r\n selectedOption.companySettingsId = consts.emptyGuid;\r\n selectedOption.companyId = this.companyId;\r\n selectedOption.email = item.email;\r\n selectedOption.personName = item.Name;\r\n this.selectedEmailOptions.push(selectedOption);\r\n }\r\n });\r\n console.log(this.selectedEmailOptions);\r\n this.companyService.addAlertEmail(this.selectedEmailOptions).subscribe(companyEmailSetting => {\r\n this.selectedEmailOptions = new Array();\r\n this.isEmailModalLoading = false;\r\n this.modalRef.close();\r\n this.modalClosed.emit();\r\n })\r\n }\r\n\r\n cancelBtnClicked() {\r\n this.modalRef.close();\r\n }\r\n}\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, EventEmitter, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { IOperative } from '../../../message-models/operative.interface';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IAllowedOperations, IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { CompanyJobRoleService } from '../../../setting/job-role/services/company-job-role.service';\r\nimport { CompanyJobTitle } from '../../../message-models/company-job-title.class';\r\nimport { CompanyJobRoleModalService } from '../../../setting/job-role/services/company-job-role-modal.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { ListDataService } from '../../../services/list-data.service';\r\n\r\n@Component({\r\n selector: 'app-company-settings-page-details',\r\n templateUrl: './company-settings-page.component.html',\r\n styleUrls: ['./company-settings-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CompanySettingsPageComponent implements OnInit {y\r\n editingDetails: boolean; \r\n loggedInUserSubscription: Subscription;\r\n companyJobTitles: ICompanyJobTitle[] = [];\r\n jobTitlesLoaded: boolean = true;\r\n loggedInUser: IUserInfo;\r\n private companyId: string = consts.emptyGuid;\r\n private subscription: Subscription;\r\n public CompanySettingOperations: IAllowedOperations = {} as IAllowedOperations;\r\n // originalTrainingRecord: TrainingRecord = new TrainingRecord({} as ITrainingRecord);\r\n\r\n constructor(private route: ActivatedRoute,\r\n private helpService: HelpModalService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private alertsService: AlertsService,\r\n private userService: OurUserService,\r\n private router: Router,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n private listDataService: ListDataService,\r\n private companyJobRoleModalService: CompanyJobRoleModalService,\r\n private errorHandlingService: ErrorHandlingService) {\r\n }\r\n ngOnInit(): void {\r\n \r\n this.userService.getLoggedInUser().subscribe(user => {\r\n //this.updateUserAndReload(user);\r\n this.subscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n\r\n \r\n\r\n this.updateUserAndReload(user);\r\n })\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n \r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid && this.companyId !== undefined) {\r\n this.CompanySettingOperations = {\r\n canInsert: true,\r\n canUpdate: true,\r\n canRetrieve: true,\r\n canDelete: true\r\n } as IAllowedOperations;\r\n\r\n this.getAllCompanyJobTitles();\r\n }\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const companySettingsBreadCrumbs = new Array();\r\n companySettingsBreadCrumbs.push({ label: 'Company Settings', iconName: 'users', routeLink: '/company-settings' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(companySettingsBreadCrumbs);\r\n }\r\n\r\n\r\n getAllCompanyJobTitles() {\r\n \r\n this.companyJobRoleService.getCompanyJobTitlesByCompanyId(this.companyId).subscribe(listResut => {\r\n \r\n this.companyJobTitles = [];\r\n listResut?.forEach(r => this.companyJobTitles.push(r));\r\n this.jobTitlesLoaded = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n addNewCompanyJobRole() {\r\n const newCompanyJobTitle = new CompanyJobTitle();\r\n newCompanyJobTitle.name = \"\";\r\n newCompanyJobTitle.companyId = this.companyId;\r\n newCompanyJobTitle.defaultJobLevelId = \"F98C9737-8A67-44EB-947C-ACFA010EF3A6\";\r\n newCompanyJobTitle.operativeTypeId = \"4EFF2451-6793-4590-82C1-FC189DC47859\";\r\n newCompanyJobTitle.electricalWorkType = 1;\r\n newCompanyJobTitle.createdBy = this.loggedInUser.userName;\r\n newCompanyJobTitle.updatedBy = newCompanyJobTitle.createdBy;\r\n\r\n this.companyJobRoleModalService.openCompanyJobTitleEditorModal(\r\n \"Add new Company Job Role for Non electrician \",\r\n true,\r\n newCompanyJobTitle).subscribe(modalRef => {\r\n modalRef.content.cancelCompanyJobTitleClicked.subscribe(result => {\r\n this.companyJobRoleModalService.companyJobTitleEditorModalRef.dynamicDialogRef.close();\r\n });\r\n modalRef.content.saveCompanyJobTitleClicked.subscribe(companyJobTitle => {\r\n console.log(companyJobTitle);\r\n this.companyJobRoleModalService.companyJobTitleEditorModalRef.dynamicDialogRef.close();\r\n this.companyJobRoleService.CreateOrUpdateCompanyJobTitle(companyJobTitle).subscribe(companyJobRole => {\r\n this.getAllCompanyJobTitles();\r\n //This will trigger any component that is suscribed to this event.\r\n this.listDataService.updateLists();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n deleteCompanyJobTitle(companyJobTitle: CompanyJobTitle) {\r\n this.confirmProcessService.openConfirmProcessModal('

Are you SURE you want to remove this job title?

','Remove Company Job Title'\r\n , new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.companyJobRoleService.RemoveCompanyJobTitle(companyJobTitle).subscribe(result => {\r\n this.getAllCompanyJobTitles();\r\n //This will trigger any component that is suscribed to this event.\r\n this.listDataService.updateLists();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n
\r\n

\r\n \r\n Company 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 Alert 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 Job Roles\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n My Business Units\r\n \r\n
\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 {IBreadcrumb} from \"../../../eca-breadcrumb/models/breadcrumb.interface\";\r\nimport {EcaBreadcrumbService} from \"../../../eca-breadcrumb/services/eca-breadcrumb.service\";\r\n\r\n@Component({\r\n selector: 'app-order-form-page',\r\n templateUrl: './order-form-page.component.html',\r\n styleUrls: ['./order-form-page.component.scss']\r\n})\r\nexport class OrderFormPageComponent implements OnInit {\r\n\r\n constructor(private ecaBreadcrumbService: EcaBreadcrumbService) { }\r\n\r\n ngOnInit(): void {\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const breadCrumbs = new Array();\r\n this.ecaBreadcrumbService.breadCrumbs.next(breadCrumbs);\r\n breadCrumbs.push({label: 'Order Form', iconName: 'file-contract', routeLink: '/order-form'} as IBreadcrumb);\r\n breadCrumbs.push({label: 'HideDashboard'} as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(breadCrumbs);\r\n }\r\n\r\n}\r\n","\r\n","import {Injectable, Input} from '@angular/core';\r\nimport {DashboardCard, IDashboardCard} from '../../common/modals/dashboard-card.class';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyDashboardStateService {\r\n companyDetailsCard: DashboardCard;\r\n operativesListCard: DashboardCard;\r\n recentObservationsListCard: DashboardCard;\r\n recentDocumentsCard: DashboardCard;\r\n cardsSet: boolean;\r\n constructor() {\r\n this.cardsSet = false;\r\n }\r\n setDashboardState(companyDetailsCard, operativesListCard, recentObservationsListCard, recentDocumentsCard) {\r\n this.companyDetailsCard = companyDetailsCard;\r\n this.operativesListCard = operativesListCard;\r\n this.recentObservationsListCard = recentObservationsListCard;\r\n this.recentDocumentsCard = recentDocumentsCard;\r\n this.cardsSet = true;\r\n }\r\n getCompanyDetailsCard(): DashboardCard {\r\n return this.companyDetailsCard;\r\n }\r\n getOperativesListCard(): DashboardCard {\r\n return this.operativesListCard;\r\n }\r\n getRecentObservationsListCard(): DashboardCard {\r\n return this.recentObservationsListCard;\r\n }\r\n getRecentDocumentsCard(): DashboardCard {\r\n return this.recentDocumentsCard;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BaseApiService } from '../../common/base-api.service';\r\nimport { HttpClient, HttpEvent, HttpRequest } from '@angular/common/http';\r\nimport { SettingsProviderService } from '../../common/settings-provider.service';\r\nimport { ICompanyDocument } from '../../message-models/company-document.interface';\r\nimport { Observable, of } from 'rxjs';\r\nimport { DocumentEntityType } from '../../message-models/document-entity-type.enum';\r\nimport { ICompanyDocumentSummary } from '../../message-models/company-document-summary.interface';\r\nimport { IDocumentSummaryInfo } from '../../message-models/document-summary-info.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CompanyDocumentService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'CompanyDocument');\r\n }\r\n\r\n getAllDocumentSummariesByEntityType(companyId: string, entityType?: DocumentEntityType, includeExpired?: boolean): Observable {\r\n return this.post('getAllDocumentSummariesByEntityType', { companyId, entityType, includeExpired });\r\n }\r\n\r\n getAllDocumentSummariesForEnterprise(companyId: string, includeExpired?: boolean): Observable {\r\n return this.post('getAllDocumentSummariesForEnterprise', { companyId, includeExpired });\r\n }\r\n\r\n getAllDocumentSummariesForOperatives(companyId: string, includeExpired?: boolean): Observable {\r\n return this.post('getAllDocumentSummariesForOperatives', { companyId, includeExpired });\r\n }\r\n\r\n getCompanyDocument(documentId: string): Observable {\r\n return this.post('GetCompanyDocument', { documentId });\r\n }\r\n getCompanyDocumentSummary(documentId: string): Observable {\r\n return this.post('GetCompanyDocumentSummary', { documentId });\r\n }\r\n getCompanyDocumentForViewOrDownload(documentId: string): Observable> {\r\n return this.http.request(new HttpRequest(\r\n 'POST',\r\n this.baseUrl + 'GetCompanyDocumentForViewOrDownload',\r\n { documentId },\r\n {\r\n reportProgress: true,\r\n responseType: 'blob'\r\n }));\r\n }\r\n createOrUpdateCompanyDocument(companyDocumentUpload: any): Observable {\r\n return this.post('CreateOrUpdateCompanyDocument', companyDocumentUpload);\r\n }\r\n\r\n deleteCompanyDocument(documentId: string, companyId: string): Observable {\r\n return this.post('DeleteCompanyDocument', { companyId, documentId });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IModalOptions } from '../../common/modals/modal-options.interface';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EcaModalOptions } from '../../shared/models/yesno-modal-options.class';\r\nimport { CompanyOptInModalComponent } from '../components/company-opt-in-modal/company-opt-in-modal.component';\r\nimport { CompanyOptInAcceptanceSummary } from '../../domain-model/company-opt-in-acceptance-summary.class';\r\nimport { OptInModalInfo } from '../../message-models/optin-modal-info.class';\r\nimport { ICompanyInfo } from \"../../message-models/company-info.interface\";\r\nimport { AgreeContractModalComponent } from \"../components/agree-contract-modal/agree-contract-modal.component\";\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CompanyOptInModalService {\r\n optInModalRef: IEcaDialogRef;\r\n\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) { }\r\n\r\n openCompanyOptInModal(modalDetails: OptInModalInfo, optIns: CompanyOptInAcceptanceSummary[], options?: IModalOptions): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += \" modal-eca-success\";\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n modalDetails: modalDetails,\r\n companyOptInAcceptanceSummaries: optIns,\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.optInModalRef = this.ecaDynamicModalService.openDialog(CompanyOptInModalComponent, config);\r\n return of(this.optInModalRef);\r\n }\r\n\r\n openCompanyContractModal(modalDetails: OptInModalInfo, company: ICompanyInfo, options?: IModalOptions): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += \" modal-eca-success\";\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n modalDetails: modalDetails,\r\n company: company\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.optInModalRef = this.ecaDynamicModalService.openDialog(AgreeContractModalComponent, config);\r\n return of(this.optInModalRef);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {Observable} from 'rxjs';\r\nimport {ICompanyInfo} from '../../message-models/company-info.interface';\r\nimport {ICompanyOptInAcceptanceSummary} from '../../message-models/company-opt-in-acceptance-summary.interface';\r\nimport {OptInAction} from '../../message-models/optin-action.interface';\r\nimport {IOptInModalInfo} from '../../message-models/optin-modal-info.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyOptInService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'CompanyOptIn');\r\n }\r\n\r\n getPendingCompanyOptInAcceptances(companyId: string): Observable {\r\n return this.post('GetPendingCompanyOptInAcceptances', { companyId });\r\n }\r\n\r\n recordOptInAction(action: OptInAction): Observable {\r\n return this.post('RecordOptInAction', {companyId: action.companyId, optInEntryId: action.optInEntryId, visited: action.visited, decision: action.decision})\r\n }\r\n\r\n recordContractAgreed(companyId: string): Observable {\r\n return this.post('recordContractAgreed', {companyId: companyId})\r\n }\r\n\r\n recordOptInActions(actions: OptInAction[]): Observable {\r\n return this.post('RecordOptInActions', {optInActions:actions})\r\n }\r\n\r\n getOptInModalDetails():Observable {\r\n return this.post('GetOptInModalDetails');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IModalOptions } from '../../common/modals/modal-options.interface';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EcaModalOptions } from '../../shared/models/yesno-modal-options.class';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\nimport { ICompanyInfo } from \"../../message-models/company-info.interface\";\r\nimport { CompanySettingsEmailModalComponent } from \"../../../app/company/components/company-settings-email-modal/company-settings-email-modal.component\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CompanySettingsModalService {\r\n companySettingsModalRef: IEcaDialogRef;\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) { }\r\n\r\n openCompanySettingsEmailModal(headerText?: string, options?: IModalOptions): Observable {\r\n if (this.companySettingsModalRef) {\r\n this.companySettingsModalRef.dynamicDialogRef.close();\r\n }\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += ' modal-eca-success';\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n header: headerText,\r\n data: {\r\n headerText: headerText,\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.companySettingsModalRef = this.ecaDynamicModalService.openDialog(CompanySettingsEmailModalComponent, config);\r\n return of(this.companySettingsModalRef);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {Observable} from 'rxjs';\r\nimport {ICompanyDocument} from '../../message-models/company-document.interface';\r\nimport {ICompanyInfo} from '../../message-models/company-info.interface';\r\nimport {ICompanySearch} from '../../message-models/company-search.interface';\r\nimport { ICompanyAlertSettings } from '../../message-models/company-alert-settings.interface';\r\nimport { ICompanyAlertEmailSettings } from '../../message-models/company-alert-email-settings.interface';\r\nimport { CompanyAlertEmailSettings } from '../../message-models/company-alert-email-settings.class';\r\nimport { IAlertEmailOptions } from '../../message-models/alert-email-options.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Company');\r\n }\r\n getCompany(companyId: string): Observable {\r\n return this.post('GetCompany', { companyId });\r\n }\r\n\r\n updateCompany(company: ICompanyInfo): Observable {\r\n return this.post('UpdateCompany', company );\r\n }\r\n getCompaniesWith(companySearch: ICompanySearch): Observable{\r\n return this.post('SearchForCompanies', companySearch);\r\n }\r\n createOrUpdateCompanyAlertSettings(companyAlertSettings: ICompanyAlertSettings): Observable {\r\n return this.post('CreateOrUpdateCompanyAlertSettings', companyAlertSettings);\r\n }\r\n getCompanyAlertFrequencySettings(companyAlertSettings: ICompanyAlertSettings): Observable {\r\n return this.post('GetAlertFrequencySettings', companyAlertSettings);\r\n }\r\n getCompanyAlertEmailSettings(companyAlertSettings: ICompanyAlertSettings): Observable {\r\n return this.post('GetCompanyAlertEmailSettings', companyAlertSettings);\r\n }\r\n removeEmail(email: ICompanyAlertEmailSettings): Observable {\r\n return this.post('RemoveEmail', email);\r\n }\r\n getAlertEmailOptionsList(companyId: string): Observable {\r\n return this.post('GetAlertEmailOptions', { companyId })\r\n }\r\n addAlertEmail(emailAddRequest: ICompanyAlertEmailSettings[]): Observable {\r\n return this.post('AddAlertEmailSettings', emailAddRequest);\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {ITrainingType} from '../../../message-models/training-record-type.interface';\r\nimport {TrainingType} from '../../../message-models/training-record-type.class';\r\nimport {IDocumentType} from '../../../message-models/document-type.interface';\r\nimport {EcaDocumentType} from '../../../message-models/eca-document-type.class';\r\n\r\n@Component({\r\n selector: 'app-document-type-editor',\r\n templateUrl: './document-type-editor.component.html',\r\n styleUrls: ['./document-type-editor.component.scss']\r\n})\r\nexport class DocumentTypeEditorComponent implements OnInit {\r\n @Input() documentType: IDocumentType = new EcaDocumentType();\r\n @Input() editingType: boolean = false;\r\n @Input() saveAttempted: boolean = false;\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","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { HelpConsts } from \"../../../help/models/help-consts\";\r\n\r\n@Component({\r\n selector: 'app-document-uploader-modal',\r\n templateUrl: './document-uploader-modal.component.html',\r\n styleUrls: ['./document-uploader-modal.component.scss']\r\n})\r\n\r\nexport class DocumentUploaderModalComponent implements OnInit {\r\n\r\n defaultFileName: string;\r\n private loading: boolean;\r\n isNewDocument = false;\r\n\r\n @Input() documentTypes: IDocumentType[];\r\n @Input() isEditing = false;\r\n @Input() entityDocumentSummary: IEntityDocumentSummary;\r\n documentUploadRequest: FormData;\r\n @Input() headerText = 'Upload Document';\r\n @Output() documentUploadSave: EventEmitter = new EventEmitter();\r\n @Output() cancelClicked: EventEmitter = new EventEmitter();\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n saveAttempted: boolean = false;\r\n showingHelp: boolean = false;\r\n helpText: string = HelpConsts.DocumentsEntryHelp.sections[0].body;\r\n\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n this.initDocumentUploadForm();\r\n }\r\n\r\n initDocumentUploadForm() {\r\n this.documentUploadRequest = new FormData();\r\n if (this.entityDocumentSummary && this.entityDocumentSummary?.documentId !== consts.emptyGuid && this.entityDocumentSummary?.documentId != null) {\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.entityDocumentSummary);\r\n this.defaultFileName = this.entityDocumentSummary.originalFilename;\r\n } else {\r\n this.isEditing = true;\r\n this.isNewDocument = true;\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.entityDocumentSummary);\r\n }\r\n }\r\n\r\n \r\n\r\n getSelectedDocumentType(documentTypeId: string): IDocumentType {\r\n return this.documentTypes.find(t => t.id === documentTypeId);\r\n }\r\n\r\n saveClicked() {\r\n this.saveAttempted = true;\r\n if (!this.tempDocumentSummary?.documentTypeId || !this.tempDocumentSummary?.documentCreationDate?.dateTime || !this.tempDocumentSummary?.originalFilename ||\r\n (!this.tempDocumentSummary?.extraDescription && this.getSelectedDocumentType(this.tempDocumentSummary?.documentTypeId)?.name === \"Other\")) {\r\n return false;\r\n }\r\n\r\n this.saveAttempted = false;\r\n\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', this.tempDocumentSummary.documentTypeId);\r\n this.documentUploadRequest.append('ExtraDescription', this.tempDocumentSummary.extraDescription);\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n if (this.tempDocumentSummary.reviewDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentReviewDate', this.tempDocumentSummary.reviewDate.dateTime);\r\n }\r\n if (this.tempDocumentSummary.expiryDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentExpiryDate', this.tempDocumentSummary.expiryDate.dateTime);\r\n }\r\n this.documentUploadRequest.append('DocumentCreationDate', this.tempDocumentSummary.documentCreationDate.dateTime);\r\n this.documentUploadSave.emit(this.documentUploadRequest);\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n\r\n cancelBtnClicked() {\r\n if (this.isNewDocument) {\r\n this.modalRef.close();\r\n this.cancelClicked.emit();\r\n } else {\r\n this.isEditing = false;\r\n }\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n canSaveDocument(canSave: any) {\r\n this.formIsValid = canSave;\r\n }\r\n\r\n editClicked() {\r\n this.isEditing = true;\r\n }\r\n}\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 { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { FileUpload } from \"primeng/fileupload\";\r\n\r\n@Component({\r\n selector: 'app-document-uploader',\r\n templateUrl: './document-uploader.component.html',\r\n styleUrls: ['./document-uploader.component.scss']\r\n})\r\nexport class DocumentUploaderComponent implements OnInit, AfterViewInit {\r\n acceptedFileTypes = '.doc, .docx,.png, .jpg, .jpeg, .txt,.ppt, .pptx,.xls, .xlsx, .xlsm, .pdf';\r\n @ViewChild('documentUploadForm', { static: true }) documentUploadForm: NgForm;\r\n @ViewChild('uploader', { static: true }) uploader: FileUpload;\r\n @Input() isEditing = true;\r\n @Input() isViewOnly = false;\r\n @Input() saveAttempted: boolean = true;\r\n @Input() submitted: boolean = false;\r\n @Input() maxFileSize = 20971520; // TODO Get max file size from settings.. default to 20mb\r\n defaultFileName;\r\n // @Output() documentUploadFormChange: EventEmitter = new EventEmitter();\r\n @Input() documentTypes: IDocumentType[];\r\n @Input() documentSummary: IEntityDocumentSummary;\r\n @Output() formStatusChange: EventEmitter = new EventEmitter();\r\n @Output() canSave: EventEmitter = new EventEmitter();\r\n @Output() fileUpload: EventEmitter = new EventEmitter();\r\n @Output() fileRemove: EventEmitter = new EventEmitter();\r\n\r\n file: File;\r\n //errorMessage: string;\r\n //showErrorMessage = false;\r\n @Output() documentUploadRequest: EventEmitter = new EventEmitter();\r\n otherDocumentType: any;\r\n selectedDocumentTypeId: any;\r\n addingNewDocumentType: boolean;\r\n newDocumentType: any;\r\n saveNewDocumentTypeAttempted: any;\r\n tempFileName: string = '';\r\n creationMaxDate: Date = new Date(Date.now());\r\n selectedMaxDate: Date = new Date(Date.now());\r\n selectedMinDate: Date;\r\n filetypeTooltip: string;\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.documentSummary?.originalFilename !== '') {\r\n this.defaultFileName = this.documentSummary.originalFilename;\r\n }\r\n if (this.documentSummary?.documentCreationDate !== null || true) {\r\n this.disableDatesPriorSelected(this.documentSummary.documentCreationDate);\r\n }\r\n if ((this.documentSummary?.documentCreationDate !== null || true) && (this.documentSummary?.expiryDate !== null || true)) {\r\n this.setReviewDateLimit();\r\n }\r\n\r\n if (this.documentSummary.documentTypeId === '') {\r\n const defaultDocumentType = this.documentTypes.find(c => c.isDefault);\r\n if (defaultDocumentType) {\r\n this.documentSummary.documentTypeId = defaultDocumentType.id;\r\n }\r\n }\r\n this.initTooltip();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.documentUploadForm.form.statusChanges.subscribe(() => {\r\n this.documentUploadRequest.emit(this.documentSummary);\r\n if (!this.documentSummary.documentCreationDate.dateTime !== undefined || true) {\r\n this.canSave.emit(this.documentUploadForm.form.valid);\r\n }\r\n });\r\n }\r\n\r\n initTooltip() {\r\n this.filetypeTooltip =\r\n 'We accept the following files, under 5MB size:'\r\n + '
    '\r\n + '
  • '\r\n + '
     Acrobat
    '\r\n + '
    .pdf
    '\r\n + '
  • '\r\n + '
  • '\r\n + '
     Excel
    '\r\n + '
    .xls, .xlsx, .xlsm
    '\r\n + '
  • '\r\n + '
  • '\r\n + '
     PowerPoint
    '\r\n + '
    .ppt, .pptx
    '\r\n + '
  • '\r\n + '
  • '\r\n + '
     Plain Text
    '\r\n + '
    .txt
    '\r\n + '
  • '\r\n + '
  • '\r\n + '
     Word
    '\r\n + '
    .doc, .docx
    '\r\n + '
  • '\r\n + '
  • '\r\n + '
     Images
    '\r\n + '
    .png, .jpg, .jpeg
    '\r\n + '
  • '\r\n + '
'\r\n + ''\r\n }\r\n\r\n disableDatesPriorSelected(date: IDateTimeWithZone) {\r\n if (date.dateTime) {\r\n let observedOn = new Date(date.dateTime);\r\n this.selectedMinDate = new Date(observedOn.setDate(observedOn.getDate() + 1));\r\n }\r\n }\r\n\r\n onFileRemove(file?: File) {\r\n const index = this.uploader.files.indexOf(file);\r\n if (index > -1) {\r\n this.uploader.remove(null, index);\r\n }\r\n this.defaultFileName = this.tempFileName;\r\n this.documentSummary.originalFilename = this.tempFileName;\r\n this.fileRemove.emit(true);\r\n // this.formStatusChange.emit(false);\r\n }\r\n\r\n onFileAdd(event: any) {\r\n if (event?.files?.length > 0) {\r\n const file = event?.files[0];\r\n //this.showErrorMessage = false;\r\n if (file.size > this.maxFileSize) {\r\n //this.showErrorMessage = true;\r\n //this.errorMessage = `${file.name} exceeds the maximum upload size permitted`;\r\n this.uploader.clear();\r\n } else {\r\n this.tempFileName = this.documentSummary.originalFilename;\r\n this.documentSummary.originalFilename = file.name;\r\n }\r\n this.defaultFileName = file.name;\r\n this.fileUpload.emit(file);\r\n this.formStatusChange.emit(this.documentUploadForm.form.valid);\r\n }\r\n\r\n }\r\n\r\n removeDefaultFile() {\r\n this.defaultFileName = '';\r\n }\r\n\r\n getSelectedDocumentType(documentTypeId: string): IDocumentType {\r\n return this.documentTypes?.find(t => t.id === documentTypeId);\r\n }\r\n\r\n setReviewDateLimit() {\r\n if (this.documentSummary?.documentCreationDate.dateTime && this.documentSummary?.expiryDate.dateTime) {\r\n let expiresOn = new Date(this.documentSummary?.expiryDate?.dateTime);\r\n let currentDate = new Date(Date.now());\r\n let newExpiryDate = new Date(expiresOn.setDate(expiresOn.getDate() - 1));\r\n this.selectedMaxDate = newExpiryDate;\r\n this.creationMaxDate = currentDate < newExpiryDate ? currentDate : newExpiryDate;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ defaultFileName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Please select a file by clicking the Choose File button\r\n below\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Accepted File Types\r\n \r\n
\r\n \r\n \r\n

Drop Your Files Here

\r\n
\r\n \r\n
{{file.name | ellipsis : 10: false}}
\r\n
{{ file.size / 1000 }} KB
\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\n\r\n@Component({\r\n selector: 'app-document-viewer',\r\n templateUrl: './document-viewer.component.html',\r\n styleUrls: ['./document-viewer.component.scss']\r\n})\r\nexport class DocumentViewerComponent implements OnInit {\r\n docUrl: string;\r\n constructor(private activatedRoute: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n const docUrl = this.activatedRoute.snapshot.params.docUrl;\r\n\r\n }\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ExportExcelService } from 'src/app/common/services/export-excel.service';\r\nimport {IEntityDocumentSummary} from '../../../message-models/entity-document-summary';\r\nimport {IAllowedOperations} from \"../../../users/models/userInfo.interface\";\r\n\r\n@Component({\r\n selector: 'app-documents-list',\r\n templateUrl: './documents-list.component.html',\r\n styleUrls: ['./documents-list.component.scss']\r\n})\r\nexport class DocumentsListComponent implements OnInit {\r\n @Input() showTableCaption: boolean;\r\n @Input() showHeaderText = true;\r\n isOnMobile = false;\r\n @Input() headerText = 'Documents';\r\n @Input() showCount = false;\r\n @Input() addDocumentButtonText = 'Add';\r\n @Input() showAddDocumentButton = true;\r\n @Input() showRowControllerButtons = false;\r\n @Input() allowedOperations: IAllowedOperations;\r\n @Input() documents: Array = new Array();\r\n @Output() openDocument: EventEmitter = new EventEmitter();\r\n @Output() editDocument: EventEmitter = new EventEmitter();\r\n @Output() downloadDocument: EventEmitter = new EventEmitter();\r\n @Output() deleteDocument: EventEmitter = new EventEmitter();\r\n @Output() addDocument: EventEmitter = new EventEmitter();\r\n @Output() viewDocument: EventEmitter = new EventEmitter();\r\n @Output() addObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() refreshDocumentsRequested: EventEmitter = new EventEmitter();\r\n\r\n\r\n columns: any[];\r\n exportColumns: any[];\r\n expiredFilter = { includeExpired : false };\r\n DocumentSummariesToExport: any[] = [];\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private datePipe: DatePipe,private exportExcelService: ExportExcelService) {\r\n this.columns = [\r\n {field: 'documentType', header: 'Type', type: 'text'},\r\n {field: 'documentCreationDate', header: 'Created On', type: 'date'},\r\n {field: 'reviewDate', header: 'Review Due', type: 'date'},\r\n {field: 'expiryDate', header: 'Expires On', type: 'date'},\r\n {field: 'originalFilename', header: 'Original Filename', type: 'text'},\r\n {field: 'totalObservations', header: 'Observations', type: 'text'},\r\n ];\r\n\r\n this.exportColumns = [\r\n {field: 'documentType', header: 'Type'},\r\n {field: 'documentCreationDate', header: 'Created On'},\r\n {field: 'reviewDate', header: 'Review Due'},\r\n {field: 'expiryDate', header: 'Expires On'},\r\n {field: 'originalFilename', header: 'Original Filename'},\r\n {field: 'totalObservations', header: 'Observations'},\r\n ]\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Preview',\r\n icon: 'fas fa-search',\r\n state: { 'contextLogic': 'canPreviewDocument' },\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openDocumentClicked($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadDocumentClicked($event)\r\n },\r\n {\r\n label: 'Add Observation',\r\n icon: 'fas fa-eye',\r\n visible: this.showRowControllerButtons,\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.addObservationToADocumentClicked($event)\r\n },\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n visible: this.allowedOperations?.canDelete,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteDocumentClicked($event)\r\n }\r\n ]\r\n }\r\n\r\n openDocumentClicked(entityDocument: IEntityDocumentSummary) {\r\n this.openDocument.emit(entityDocument);\r\n }\r\n\r\n deleteDocumentClicked(entityDocument: IEntityDocumentSummary) {\r\n this.deleteDocument.emit(entityDocument);\r\n }\r\n\r\n downloadDocumentClicked(entityDocument: IEntityDocumentSummary) {\r\n this.downloadDocument.emit(entityDocument);\r\n }\r\n\r\n editDocumentClicked(entityDocument: IEntityDocumentSummary) {\r\n this.editDocument.emit(entityDocument);\r\n }\r\n\r\n addDocumentClicked() {\r\n this.addDocument.emit();\r\n }\r\n\r\n viewDocumentClicked(entityDocument: IEntityDocumentSummary) {\r\n this.viewDocument.emit(entityDocument);\r\n }\r\n\r\n expiredFilterChanged() {\r\n this.refreshDocumentsRequested.emit(this.expiredFilter.includeExpired);\r\n }\r\n exportToExcel() {\r\n this.DocumentSummariesToExport = [];\r\n this.documents.forEach(element =>{\r\n const tempObject = {\r\n documentType: element.documentType,\r\n documentCreationDate : this.datePipe.transform(element.documentCreationDate?.dateTime, 'dd/MM/yyyy'),\r\n reviewDate : this.datePipe.transform(element.reviewDate?.dateTime, 'dd/MM/yyyy'),\r\n expiryDate : this.datePipe.transform(element.expiryDate?.dateTime, 'dd/MM/yyyy'),\r\n originalFilename: element.originalFilename,\r\n totalObservations: element?.totalObservations\r\n };\r\n this.DocumentSummariesToExport.push(tempObject);\r\n });\r\n this.exportExcelService.exportToExcel(this.DocumentSummariesToExport, this.exportColumns, this.headerText.toString())\r\n\r\n }\r\n\r\n addObservationToADocumentClicked(entityDocument: IEntityDocumentSummary) {\r\n this.addObservationClicked.emit(entityDocument)\r\n }\r\n}\r\n","
\r\n
\r\n 5\" scrollHeight=\"500px\" dataKey=\"id\"\r\n [rows]=\"5\" [globalFilterFields]=\"['documentType', 'documentCreationDate.dateTime', 'reviewDate.dateTime', 'expiryDate.dateTime', 'originalFilename']\" [responsive]=\"true\" [columns]=\"columns\">\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{documents?.length}} {{headerText}} \r\n {{headerText}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\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 \r\n Created On\r\n \r\n \r\n Review Due\r\n \r\n \r\n Expires On\r\n \r\n \r\n Original Filename\r\n \r\n \r\n Observations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n
\r\n \r\n {{entityDocument[col.field]}}\r\n \r\n \r\n {{entityDocument[col.field]?.dateTime | date:'dd/MM/yyyy'}}\r\n \r\n
\r\n \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 { CommonModule } from '@angular/common';\r\nimport { DocumentViewerComponent } from './components/document-viewer/document-viewer.component';\r\nimport { DocumentsListComponent } from './components/documents-list/documents-list.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { CommonsModule } from '../common/commons.module';\r\nimport { DocumentUploaderModalComponent } from './components/document-uploader-modal/document-uploader-modal.component';\r\nimport { DocumentUploaderComponent } from './components/document-uploader/document-uploader.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DocumentTypeEditorComponent } from './components/document-type-editor/document-type-editor.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\n\r\n@NgModule({\r\n declarations: [\r\n DocumentViewerComponent,\r\n DocumentsListComponent,\r\n DocumentUploaderModalComponent,\r\n DocumentUploaderComponent,\r\n DocumentTypeEditorComponent,\r\n ],\r\n\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n TableModule,\r\n InputTextModule,\r\n CommonsModule,\r\n FormsModule,\r\n SharedModule,\r\n FileUploadModule\r\n ],\r\n\r\n providers: [],\r\n\r\n exports: [DocumentViewerComponent, DocumentsListComponent, DocumentUploaderComponent]\r\n})\r\n\r\nexport class DocumentsModule { }\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { HttpClient, HttpEvent, HttpRequest } from '@angular/common/http';\r\nimport { IEntityDocumentSummary } from '../../message-models/entity-document-summary';\r\nimport { DocumentEntityType } from '../../message-models/document-entity-type.enum';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { DocumentTypeService } from '../../services/document-type.service';\r\nimport { DocumentUploaderModalComponent } from '../components/document-uploader-modal/document-uploader-modal.component';\r\nimport { EcaModalOptions } from '../../shared/models/yesno-modal-options.class';\r\nimport { IModalOptions } from '../../common/modals/modal-options.interface';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class DocumentModalService {\r\n\r\n documentModalRef: IEcaDialogRef;\r\n\r\n constructor(http: HttpClient,\r\n private ecaDynamicModalService: EcaDynamicModalService,\r\n private documentTypeService: DocumentTypeService) {\r\n }\r\n\r\n openDocumentUploaderModal(\r\n entityDocumentSummary?: IEntityDocumentSummary,\r\n documentEntityType?: DocumentEntityType,\r\n headerText?: string,\r\n options?: IModalOptions): Observable {\r\n return this.documentTypeService.getAllDocumentTypesForEntityType(documentEntityType).pipe(switchMap(documentTypes => {\r\n if (this.documentModalRef) {\r\n this.documentModalRef.dynamicDialogRef.close();\r\n }\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += ' modal-eca-success';\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n header: headerText,\r\n data: {\r\n headerText: headerText,\r\n documentTypes: documentTypes,\r\n entityDocumentSummary: entityDocumentSummary,\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.documentModalRef = this.ecaDynamicModalService.openDialog(DocumentUploaderModalComponent, config);\r\n return of(this.documentModalRef);\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BaseApiService } from '../../common/base-api.service';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { SettingsProviderService } from '../../common/settings-provider.service';\r\nimport { Observable, of } from 'rxjs';\r\nimport { IEntityDocumentSummary } from '../../message-models/entity-document-summary';\r\nimport { DocumentTypeService } from '../../services/document-type.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentService extends BaseApiService {\r\n\r\n constructor(http: HttpClient,\r\n private documentTypeService: DocumentTypeService) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Document');\r\n }\r\n\r\n getDocumentForViewOrDownload(documentId: string): Observable> {\r\n return this.http.request(new HttpRequest(\r\n 'POST',\r\n this.baseUrl + 'GetDocumentForViewOrDownload',\r\n { documentId },\r\n {\r\n reportProgress: true,\r\n responseType: 'blob'\r\n }));\r\n }\r\n\r\n downloadOrOpenDocument(documentSummary: IEntityDocumentSummary, withDownload = false) {\r\n this.getDocumentForViewOrDownload(documentSummary.documentId).subscribe(\r\n fileContentResult => {\r\n switch (fileContentResult.type) {\r\n case HttpEventType.UploadProgress:\r\n break;\r\n case HttpEventType.DownloadProgress:\r\n break;\r\n case HttpEventType.Response:\r\n const downloadedFile = new Blob([fileContentResult.body], {\r\n type: fileContentResult.body.type\r\n });\r\n const a = document.createElement('a');\r\n a.download = documentSummary.originalFilename;\r\n\r\n a.setAttribute('style', 'display:none;');\r\n document.body.appendChild(a);\r\n a.href = URL.createObjectURL(downloadedFile);\r\n\r\n a.target = '_blank';\r\n if (!withDownload && documentSummary.canPreviewDocument) {\r\n const url = window.URL.createObjectURL(downloadedFile);\r\n window.open(url);// Does not show the file name in the tab title.\r\n } else {\r\n a.click();\r\n }\r\n document.body.removeChild(a);\r\n break;\r\n }\r\n }, error => {\r\n });\r\n }\r\n}\r\n\r\n","import { IDateTimeWithZone } from \"../common/date-time-with-zone.interface\";\r\nimport { IAuditInfo } from \"../message-models/audit-info.interface\";\r\n\r\nexport class AuditInfo implements IAuditInfo {\r\n companyName: string;\r\n companyId: string;\r\n auditId: string;\r\n updatedBy: string;\r\n auditDate: IDateTimeWithZone;\r\n auditAction: string;\r\n operation: string;\r\n entityType: string;\r\n auditString: string;\r\n\r\n constructor(auditInfo: IAuditInfo) {\r\n this.companyName = auditInfo.companyName;\r\n this.companyId = auditInfo.companyId;\r\n this.auditId = auditInfo.auditId;\r\n this.updatedBy = auditInfo.updatedBy;\r\n this.auditDate = auditInfo.auditDate;\r\n this.auditAction = auditInfo.auditAction;\r\n this.operation = auditInfo.operation;\r\n this.entityType = auditInfo.entityType;\r\n this.auditString = auditInfo.auditString;\r\n }\r\n}\r\n","import {ICompanyInfo} from '../message-models/company-info.interface';\r\n\r\nexport class CompanyInfo implements ICompanyInfo{\r\n id: string;\r\n companyName: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n addressTown: string;\r\n addressCounty: string;\r\n addressPostcode: string;\r\n inlineAddress: string;\r\n contactName: string;\r\n contactPhone: string;\r\n contactEmail: string;\r\n referenceNumber: number;\r\n anyOptInsNotAccepted: boolean;\r\n trialValidTo: Date;\r\n\r\n contractAgreedBy: string = \"\";\r\n contractAgreedOn: Date | null = null;\r\n contractAgreed: boolean = false;\r\n\r\n constructor(iCompany: ICompanyInfo) {\r\n this.id = iCompany?.id || '00000000-0000-0000-0000-000000000000';\r\n this.companyName = iCompany?.companyName || '';\r\n this.addressLine1 = iCompany?.addressLine1 || '';\r\n this.addressLine2 = iCompany?.addressLine2 || '';\r\n this.addressLine3 = iCompany?.addressLine3 || '';\r\n this.addressTown = iCompany?.addressTown || '';\r\n this.addressCounty = iCompany?.addressCounty || '';\r\n this.addressPostcode = iCompany?.addressPostcode || '';\r\n this.contactName = iCompany?.contactName || '';\r\n this.contactPhone = iCompany?.contactPhone || '';\r\n this.contactEmail = iCompany?.contactEmail || '';\r\n this.referenceNumber = iCompany?.referenceNumber || null;\r\n this.anyOptInsNotAccepted = iCompany?.anyOptInsNotAccepted;\r\n\r\n this.contractAgreedBy = iCompany?.contractAgreedBy;\r\n this.contractAgreedOn = iCompany?.contractAgreedOn;\r\n this.contractAgreed = iCompany?.contractAgreed;\r\n this.inlineAddress = iCompany?.inlineAddress;\r\n }\r\n}\r\n","import {ICompanyObservation} from '../message-models/company-observation.interface';\r\nimport {Observation} from './observation.class';\r\n\r\nexport class CompanyObservation implements ICompanyObservation {\r\n id: string;\r\n companyId: string;\r\n observationId: string;\r\n observation: Observation;\r\n constructor(iCompanyObservation: ICompanyObservation) {\r\n this.id = iCompanyObservation.id || '00000000-0000-0000-0000-000000000000';\r\n this.companyId = iCompanyObservation.companyId || '00000000-0000-0000-0000-000000000000';\r\n this.observationId = iCompanyObservation.observationId || '00000000-0000-0000-0000-000000000000';\r\n this.observation =new Observation(iCompanyObservation.observation);\r\n }\r\n}\r\n","\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport {ICompanyOptInAcceptanceSummary} from '../message-models/company-opt-in-acceptance-summary.interface';\r\nimport {consts} from '../common/modals/consts';\r\nimport {DecisionRequirement} from '../message-models/decision-requirement.enum';\r\n\r\nexport class CompanyOptInAcceptanceSummary implements ICompanyOptInAcceptanceSummary{\r\n companyId: string;\r\n optInEntryId: string;\r\n optInUrl: string;\r\n optInDescription: string;\r\n decisionOn: DateTimeWithZone;\r\n decisionBy: string;\r\n decisionLabel: string;\r\n decisionIpAddress: string;\r\n decisionRequirement: DecisionRequirement;\r\n decision: boolean | null;\r\n defaultOptInState: boolean;\r\n visitedOn: DateTimeWithZone;\r\n visitedBy: string;\r\n visitedIpAddress: string;\r\n isActive: boolean;\r\n mustVisit: boolean;\r\n openOnSamePage: boolean;\r\n userFocused: boolean;\r\n visited?: boolean;\r\n errorText: string;\r\n showMustVisit: boolean;\r\n showError: boolean;\r\n decisionFinalised: boolean;\r\n\r\n\r\n constructor(iCompanyOptInAcceptanceSummary?: ICompanyOptInAcceptanceSummary) {\r\n this.companyId = iCompanyOptInAcceptanceSummary?.companyId || consts.emptyGuid;\r\n this.optInEntryId = iCompanyOptInAcceptanceSummary?.optInEntryId || consts.emptyGuid;\r\n this.optInUrl = iCompanyOptInAcceptanceSummary?.optInUrl || '';\r\n this.optInDescription = iCompanyOptInAcceptanceSummary?.optInDescription || '';\r\n this.decisionOn = new DateTimeWithZone(iCompanyOptInAcceptanceSummary?.decisionOn);\r\n this.decisionBy = iCompanyOptInAcceptanceSummary?.decisionBy || '';\r\n this.decisionIpAddress = iCompanyOptInAcceptanceSummary?.decisionIpAddress || '';\r\n this.decisionRequirement = iCompanyOptInAcceptanceSummary?.decisionRequirement ?? DecisionRequirement.MandatoryYes;\r\n this.decision = iCompanyOptInAcceptanceSummary?.decision ?? null;\r\n this.defaultOptInState = iCompanyOptInAcceptanceSummary?.defaultOptInState || false;\r\n this.visitedOn = new DateTimeWithZone(iCompanyOptInAcceptanceSummary?.visitedOn);\r\n this.visitedBy = iCompanyOptInAcceptanceSummary?.visitedBy || '';\r\n this.visitedIpAddress = iCompanyOptInAcceptanceSummary?.visitedIpAddress || '';\r\n this.isActive = iCompanyOptInAcceptanceSummary?.isActive || false;\r\n this.mustVisit = iCompanyOptInAcceptanceSummary?.mustVisit || false;\r\n this.openOnSamePage = iCompanyOptInAcceptanceSummary?.openOnSamePage || false;\r\n this.userFocused = iCompanyOptInAcceptanceSummary?.userFocused || false;\r\n this.decisionLabel = iCompanyOptInAcceptanceSummary?.decisionLabel || '';\r\n this.visited = iCompanyOptInAcceptanceSummary?.visited;\r\n this.errorText = iCompanyOptInAcceptanceSummary?.errorText || 'Please make your decision before continuing';\r\n }\r\n\r\n getDecisionRequirementClass():string {\r\n switch (this.decisionRequirement) {\r\n case DecisionRequirement.None:\r\n return '';\r\n case DecisionRequirement.MandatoryYes:\r\n return 'optin-mandatory';\r\n case DecisionRequirement.MandatoryNo:\r\n return 'optin-mandatory';\r\n case DecisionRequirement.OptionalYesNo:\r\n return 'optin-optional';\r\n }\r\n return '';\r\n }\r\n getVisitedClass():string {\r\n if(!!this.visitedOn.dateTime ){\r\n return 'optin-visited';\r\n }else if(this.visitedOn.dateTime === '' || this.visitedOn.dateTime === null){\r\n return 'optin-not-visited';\r\n }\r\n }\r\n getIcon():string {\r\n if(this.optInUrl === ''){\r\n return 'info-circle';\r\n }else{\r\n if(this.openOnSamePage) {\r\n return 'link';\r\n }else{\r\n return 'external-link-square';\r\n }\r\n }\r\n }\r\n get isUrlVisited(): boolean {\r\n return !!this.visitedOn.dateTime;\r\n }\r\n\r\n get decisionRequired(): boolean {\r\n return this.decisionRequirement !== DecisionRequirement.None;\r\n }\r\n\r\n}\r\n\r\n\r\n","import {IDocumentObservation} from '../message-models/document-observation.interface';\r\nimport {Observation} from './observation.class';\r\n\r\nexport class DocumentObservation implements IDocumentObservation {\r\n id: string;\r\n documentId: string;\r\n observationId:string;\r\n observation: Observation;\r\n constructor(iDocumentObservation: IDocumentObservation) {\r\n this.id = iDocumentObservation.id || '00000000-0000-0000-0000-000000000000';\r\n this.documentId = iDocumentObservation.documentId || '00000000-0000-0000-0000-000000000000';\r\n this.observationId = iDocumentObservation.observationId || '00000000-0000-0000-0000-000000000000';\r\n this.observation = new Observation(iDocumentObservation.observation) ;\r\n }\r\n}\r\n","import {IDateTimeWithZone} from '../common/date-time-with-zone.interface';\r\nimport {ObservationType} from './observation.class';\r\nimport {DocumentEntityType} from '../message-models/document-entity-type.enum';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport {IObservationSummary} from '../message-models/observation-summary.interface';\r\n\r\nexport class ObservationSummary implements IObservationSummary {\r\n observationId: string;\r\n summaryInfo: string;\r\n notesAsHtml: string;\r\n observedBy: string;\r\n observedOn: IDateTimeWithZone;\r\n followUpOn: IDateTimeWithZone;\r\n observationType: ObservationType;\r\n createdOn: Date;\r\n operativeId: string;\r\n operativeName: string;\r\n operativeFirstName: string;\r\n operativeLastName: string;\r\n companyId: string;\r\n companyName: string;\r\n documentId: string;\r\n documentObservationId: string;\r\n operativeObservationId: string;\r\n trainingRecordId: string;\r\n trainingRecordObservationId: string;\r\n companyObservationId: string;\r\n companyDocumentId: string;\r\n // observationTypeString: string;\r\n constructor(iObservationSummary: IObservationSummary) {\r\n this.observationId = iObservationSummary?.observationId || '00000000-0000-0000-0000-000000000000';\r\n this.summaryInfo = iObservationSummary?.summaryInfo || '';\r\n this.notesAsHtml = iObservationSummary?.notesAsHtml || '';\r\n this.observedBy = iObservationSummary?.observedBy || '';\r\n this.observedOn = iObservationSummary?.observedOn || new DateTimeWithZone(iObservationSummary?.observedOn) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n this.followUpOn = iObservationSummary?.followUpOn || new DateTimeWithZone(iObservationSummary?.followUpOn) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n this.observationType = iObservationSummary?.observationType || null;\r\n this.operativeId = iObservationSummary?.operativeId || '00000000-0000-0000-0000-000000000000';\r\n this.operativeName = iObservationSummary?.operativeName || '';\r\n this.operativeFirstName = iObservationSummary?.operativeFirstName || '';\r\n this.operativeLastName = iObservationSummary?.operativeLastName || '';\r\n this.companyId = iObservationSummary?.companyId || '00000000-0000-0000-0000-000000000000';\r\n this.companyName = iObservationSummary?.companyName || '';\r\n this.documentId = iObservationSummary?.documentId || '00000000-0000-0000-0000-000000000000';\r\n this.documentObservationId = iObservationSummary?.documentObservationId || '00000000-0000-0000-0000-000000000000';\r\n this.operativeObservationId = iObservationSummary?.operativeObservationId || '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordId = iObservationSummary?.trainingRecordId || '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordObservationId = iObservationSummary?.trainingRecordObservationId || '00000000-0000-0000-0000-000000000000';\r\n this.companyObservationId = iObservationSummary?.companyObservationId || '00000000-0000-0000-0000-000000000000';\r\n this.companyDocumentId = iObservationSummary?.companyDocumentId || '00000000-0000-0000-0000-000000000000';\r\n this.createdOn = iObservationSummary?.createdOn || null;\r\n // this.observationTypeString = iObservationSummary?.observationTypeString || '';\r\n }\r\n}\r\n","import {IObservation} from '../message-models/observation.interface';\r\nimport {IDateTimeWithZone} from '../common/date-time-with-zone.interface';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\n\r\nexport class Observation implements IObservation{\r\n id: string;\r\n summaryInfo: string;\r\n notesAsHtml: string;\r\n observedBy: string;\r\n observedOn: DateTimeWithZone;\r\n followUpOn: DateTimeWithZone;\r\n observationType: ObservationType;\r\n constructor(iObservation?: IObservation ) {\r\n this.id = iObservation?.id || '00000000-0000-0000-0000-000000000000';\r\n this.summaryInfo = iObservation?.summaryInfo || '';\r\n this.notesAsHtml = iObservation?.notesAsHtml || '';\r\n this.observedBy = iObservation?.observedBy || '';\r\n this.observedOn = new DateTimeWithZone(iObservation?.observedOn) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n this.followUpOn = new DateTimeWithZone(iObservation?.followUpOn) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n if(iObservation.observationType !=null){\r\n this.observationType = iObservation.observationType;\r\n }else{\r\n this.observationType = null;\r\n }\r\n\r\n }\r\n get isValid() : boolean {\r\n return !!this.summaryInfo && !!this.observedBy && !!this.observedOn?.dateTime\r\n }\r\n}\r\n\r\nexport enum ObservationType {\r\n Company,\r\n Operative,\r\n TrainingRecord,\r\n CompanyDocument,\r\n OperativeDocument,\r\n TrainingRecordDocument\r\n}\r\nexport enum ObservationTypeString {\r\n 'Company',\r\n 'Operative',\r\n 'Training Record',\r\n 'Enterprise Document',\r\n 'Operative Document',\r\n 'Training Record Document'\r\n}\r\n","import { IOperative } from '../message-models/operative.interface';\r\nimport { DegreeOfSupervisionString, RiskMatrixLevel } from '../message-models/risk-matrix-level.enum';\r\nimport { IRiskInfo } from '../message-models/risk-info.interface';\r\nimport { IJobLevelInfo } from '../message-models/job-level.interface';\r\nimport { IRiskMatrixEntry } from '../message-models/risk-matrix-entry.interface';\r\nimport { IDateTimeWithZone } from '../common/date-time-with-zone.interface';\r\nimport { consts } from '../common/modals/consts';\r\nimport { DateTimeWithZone } from '../common/date-time-with-zone.class';\r\nimport { IEmploymentStatus } from '../message-models/employment-status.interface';\r\nimport { ITrainingRecord } from '../message-models/training-record.interface';\r\n\r\nexport class OperativeInfo implements IOperative {\r\n id: string;\r\n currentJobLevelId: string;\r\n currentRiskId: string;\r\n currentEmploymentStatusId: string;\r\n\r\n fullName: string;\r\n lastObserved: string;\r\n numTrainingRecords: number;\r\n referenceNumbers: string;\r\n nextFollowUp: string;\r\n firstName: string;\r\n middleInitials: string;\r\n lastName: string;\r\n currentRisk: string;\r\n currentJobLevel: string;\r\n riskMatrixLevel: RiskMatrixLevel;\r\n jobTitle: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n currentJobTitleId: string;\r\n companyId: string;\r\n latestEngagementFrom: IDateTimeWithZone;\r\n latestEngagementTo: IDateTimeWithZone;\r\n followUpOn: IDateTimeWithZone;\r\n latestEngagementId: string;\r\n image: string;\r\n currentOperativeTypeId: string;\r\n operativeType: string;\r\n currentBusinessUnitId: string;\r\n businessUnit: string;\r\n\r\n jobLevel?: any;\r\n currentWorkRisk?: any;\r\n currentRiskMatrixLevel?: any;\r\n currentEmploymentStatus?: any;\r\n\r\n totalCPDHours: number;\r\n trainingRecords: ITrainingRecord[];\r\n\r\n constructor(operative: IOperative = null) {\r\n this.id = operative?.id || consts.emptyGuid;\r\n this.firstName = operative?.firstName || '';\r\n this.middleInitials = operative?.middleInitials || '';\r\n this.lastName = operative?.lastName || '';\r\n this.currentJobLevelId = operative?.currentJobLevelId || '';\r\n this.currentRiskId = operative?.currentRiskId || '';\r\n this.currentJobTitleId = operative?.currentJobTitleId || '';\r\n this.latestEngagementFrom = new DateTimeWithZone(operative?.latestEngagementFrom || new DateTimeWithZone({\r\n dateTime: new Date(new Date().setHours(1, 0, 0, 0)).toISOString(),\r\n timeZone: ''\r\n }));\r\n if (!this.latestEngagementFrom.dateTime) {\r\n this.latestEngagementFrom.dateTime = new Date(new Date().setHours(1, 0, 0, 0)).toISOString();\r\n }\r\n\r\n this.latestEngagementTo = operative?.latestEngagementTo || { dateTime: null } as IDateTimeWithZone;\r\n this.referenceNumbers = operative?.referenceNumbers || '';\r\n this.lastObserved = operative?.lastObserved || '';\r\n this.numTrainingRecords = operative?.numTrainingRecords || 0;\r\n this.nextFollowUp = operative?.nextFollowUp || '';\r\n this.jobTitle = operative?.jobTitle || '';\r\n this.emailAddress = operative?.emailAddress || '';\r\n this.phoneNumber = operative?.phoneNumber || '';\r\n this.companyId = operative?.companyId || '';\r\n this.latestEngagementId = operative?.latestEngagementId || consts.emptyGuid;\r\n this.fullName = operative?.lastName + ', ' + operative?.middleInitials + ' ' + operative?.firstName || '';\r\n this.followUpOn = operative?.followUpOn || { dateTime: null } as IDateTimeWithZone;\r\n this.currentEmploymentStatusId = operative?.currentEmploymentStatusId || consts.emptyGuid;\r\n this.image = operative?.image || \"\";\r\n this.currentOperativeTypeId = operative?.currentOperativeTypeId || '';\r\n this.operativeType = operative?.operativeType || '';\r\n this.currentBusinessUnitId = operative?.currentBusinessUnitId || '';\r\n this.businessUnit = operative?.businessUnit || '';\r\n this.trainingRecords = operative?.trainingRecords;\r\n }\r\n\r\n populateRisk(risks: IRiskInfo[]) {\r\n if (!this.currentRiskId) {\r\n this.currentRisk = '';\r\n return;\r\n }\r\n const currentRisk = risks.filter(r => r.id === this.currentRiskId);\r\n if (currentRisk && currentRisk.length > 0) {\r\n this.currentRisk = currentRisk[0].name;\r\n this.currentWorkRisk = { label: currentRisk[0].name, value: currentRisk[0].id };\r\n } else {\r\n this.currentRisk = '';\r\n this.currentWorkRisk = null;\r\n }\r\n }\r\n\r\n getFullName() {\r\n this.fullName = this.firstName + ' ' + this.middleInitials + ' ' + this.lastName;\r\n return this.fullName;\r\n }\r\n\r\n populateJobLevel(jobLevels: IJobLevelInfo[]) {\r\n if (!this.currentJobLevelId) {\r\n this.currentJobLevel = '';\r\n return;\r\n }\r\n\r\n const currentJobLevel = jobLevels.filter(l => l.id === this.currentJobLevelId);\r\n if (currentJobLevel && currentJobLevel.length > 0) {\r\n this.currentJobLevel = currentJobLevel[0].name;\r\n this.jobLevel = { label: currentJobLevel[0].name, value: currentJobLevel[0].id };\r\n } else {\r\n this.currentJobLevel = '';\r\n this.jobLevel = null;\r\n }\r\n }\r\n\r\n setDefaultEmploymentStatus(employmentStatuses: IEmploymentStatus[]) {\r\n const defaultEmployment = employmentStatuses.find(c => c.isDefault === true);\r\n if (defaultEmployment) {\r\n this.currentEmploymentStatusId = defaultEmployment.id;\r\n }\r\n }\r\n\r\n populateEmploymentStatus(employmentStatuses: IEmploymentStatus[]) {\r\n const defaultEmploymentStatus = employmentStatuses.find(l => l.isDefault);\r\n\r\n if (!this.currentEmploymentStatusId) {\r\n this.currentEmploymentStatus = { label: defaultEmploymentStatus?.name, value: defaultEmploymentStatus?.id };\r\n this.currentEmploymentStatusId = defaultEmploymentStatus?.id;\r\n return;\r\n }\r\n\r\n const currentEmploymentStatus = employmentStatuses.find(l => l.id === this.currentEmploymentStatusId);\r\n if (currentEmploymentStatus) {\r\n this.currentEmploymentStatus = { label: currentEmploymentStatus?.name, value: currentEmploymentStatus?.id };\r\n } else {\r\n this.currentEmploymentStatus = { label: defaultEmploymentStatus?.name, value: defaultEmploymentStatus?.id };\r\n this.currentEmploymentStatusId = defaultEmploymentStatus?.id;\r\n }\r\n }\r\n\r\n populateRiskMatrixLevel(riskMatrix: IRiskMatrixEntry[]) {\r\n if (!riskMatrix) {\r\n return;\r\n }\r\n\r\n this.riskMatrixLevel = null;\r\n riskMatrix.forEach(riskEntry => {\r\n if (riskEntry.jobLevelId === this.currentJobLevelId && riskEntry.riskId === this.currentRiskId) {\r\n this.riskMatrixLevel = riskEntry.riskMatrixLevel;\r\n this.currentRiskMatrixLevel = { label: this.jobTitle === 'Qualified Supervisor' ? 'QS' : DegreeOfSupervisionString[this.riskMatrixLevel], value: this.jobTitle === 'Qualified Supervisor' ? 'QS' : this.riskMatrixLevel };\r\n return;\r\n }\r\n });\r\n\r\n if (this.riskMatrixLevel === null) {\r\n this.riskMatrixLevel = RiskMatrixLevel.danger;\r\n this.currentRiskMatrixLevel = { label: DegreeOfSupervisionString.High, value: this.riskMatrixLevel };\r\n }\r\n\r\n }\r\n\r\n getRiskColour(): string {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'darkgreen';\r\n case RiskMatrixLevel.warning:\r\n return 'darkorange';\r\n case RiskMatrixLevel.danger:\r\n return 'red';\r\n }\r\n return 'black';\r\n }\r\n\r\n getRiskClass(): string {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'low-risk';\r\n case RiskMatrixLevel.warning:\r\n return 'medium-risk';\r\n case RiskMatrixLevel.danger:\r\n return 'high-risk';\r\n }\r\n return '';\r\n }\r\n\r\n getRiskName(): string {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return '1 - Low';\r\n case RiskMatrixLevel.warning:\r\n return '2 - Warning';\r\n case RiskMatrixLevel.danger:\r\n return '3 - Danger';\r\n }\r\n return this.riskMatrixLevel;\r\n }\r\n\r\n getDegreeOfRisk(): string {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'Low Degree of Risk';\r\n case RiskMatrixLevel.warning:\r\n return 'Medium Degree of Risk';\r\n case RiskMatrixLevel.danger:\r\n return 'High Degree of Risk';\r\n }\r\n return this.riskMatrixLevel;\r\n }\r\n\r\n getSupervisionRequirement(): string {\r\n if (this.currentOperativeTypeId == \"9e693556-8c16-44a2-b1e4-2c8d18b081ad\") {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'Risk - Verbal Instruction / Remote QS Involvement on Site';\r\n case RiskMatrixLevel.warning:\r\n return 'Risk - Written Instruction / Periodic QS Involvement on Site';\r\n case RiskMatrixLevel.danger:\r\n return 'Risk - Written Instruction / Close and Detailed QS Involvement on Site';\r\n }\r\n }\r\n else {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'EAS - Verbal Instruction / Remote QS Involvement on Site';\r\n case RiskMatrixLevel.warning:\r\n return 'EAS - Written Instruction / Periodic QS Involvement on Site';\r\n case RiskMatrixLevel.danger:\r\n return 'EAS - Written Instruction / Close and Detailed QS Involvement on Site';\r\n }\r\n }\r\n \r\n return '';\r\n }\r\n\r\n\r\n getRiskBadgeClass() {\r\n switch (this.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'badge-low-risk';\r\n case RiskMatrixLevel.warning:\r\n return 'badge-medium-risk';\r\n case RiskMatrixLevel.danger:\r\n return 'badge-high-risk';\r\n }\r\n return '';\r\n }\r\n\r\n get startedOn(): string {\r\n return this.latestEngagementFrom?.dateTime;\r\n }\r\n\r\n get endedOn(): string {\r\n return this.latestEngagementTo?.dateTime;\r\n }\r\n\r\n get nextObservationFollowUp(): string {\r\n return this.followUpOn?.dateTime;\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.lastName && !!this.firstName && !!this.currentJobTitleId && !!this.currentRiskId && !!this.currentJobLevelId && !!this.startedOn && !!this.currentEmploymentStatusId && !!this.currentOperativeTypeId;\r\n }\r\n}\r\n","import {IOperativeObservation} from '../message-models/operative-observation.interface';\r\nimport {Observation} from './observation.class';\r\n\r\nexport class OperativeObservation implements IOperativeObservation {\r\n id: string;\r\n operativeId: string;\r\n observationId: string;\r\n observation: Observation;\r\n operativeName: string;\r\n operativeFirstName: string;\r\n operativeLastName: string;\r\n constructor(iOperativeObservation: IOperativeObservation) {\r\n this.id = iOperativeObservation?.id || '00000000-0000-0000-0000-000000000000';\r\n this.operativeId = iOperativeObservation?.operativeId || '00000000-0000-0000-0000-000000000000';\r\n this.observationId = iOperativeObservation?.observationId || '00000000-0000-0000-0000-000000000000';\r\n this.observation = new Observation(iOperativeObservation?.observation);\r\n this.operativeName = iOperativeObservation.operativeName || '' ;\r\n this.operativeFirstName = iOperativeObservation.operativeFirstName || '' ;\r\n this.operativeLastName = iOperativeObservation.operativeLastName || '' ;\r\n }\r\n\r\n\r\n\r\n }\r\n","import {ITrainingRecordObservation} from '../message-models/training-record-observation.interface';\r\nimport {Observation} from './observation.class';\r\n\r\nexport class TrainingRecordObservation implements ITrainingRecordObservation{\r\n id: string;\r\n trainingRecordId: string;\r\n observationId: string;\r\n observation: Observation;\r\n constructor(iTrainingRecordObservation: ITrainingRecordObservation) {\r\n this.id = iTrainingRecordObservation.id || '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordId = iTrainingRecordObservation.trainingRecordId || '00000000-0000-0000-0000-000000000000';\r\n this.observationId = iTrainingRecordObservation.observationId || '00000000-0000-0000-0000-000000000000';\r\n this.observation = new Observation(iTrainingRecordObservation.observation) ;\r\n }\r\n}\r\n","import {ITrainingRecord} from '../message-models/training-record.interface';\r\nimport {IDateTimeWithZone} from '../common/date-time-with-zone.interface';\r\nimport {ITrainingType} from '../message-models/training-record-type.interface';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport {TrainingRecordObservation} from './training-record-observation.class';\r\nimport {Observation} from './observation.class';\r\nimport {consts} from \"../common/modals/consts\";\r\nimport { DecimalPipe } from '@angular/common';\r\n\r\nexport class TrainingRecord implements ITrainingRecord{\r\n id: string;\r\n achievedOn: DateTimeWithZone;\r\n validTo: DateTimeWithZone;\r\n trainingType?: ITrainingType;\r\n trainingTypeId : string;\r\n trainingExtraDescription: string;\r\n operativeId: string;\r\n\r\n cpdHour: number;\r\n\r\n // trainingRecordObservations: Array = new Array();\r\n observations?: Array = new Array();\r\n trainingTypeName?: string;\r\n constructor(iTrainingRecord: ITrainingRecord = null) {\r\n this.id = iTrainingRecord?.id || consts.emptyGuid;\r\n this.trainingTypeId = iTrainingRecord?.trainingTypeId || consts.emptyGuid;\r\n this.operativeId = iTrainingRecord?.operativeId || consts.emptyGuid;\r\n this.achievedOn = new DateTimeWithZone(iTrainingRecord?.achievedOn);\r\n this.trainingType = iTrainingRecord?.trainingType || null;\r\n this.trainingExtraDescription = iTrainingRecord?.trainingExtraDescription || '';\r\n this.validTo = new DateTimeWithZone(iTrainingRecord?.validTo);\r\n this.cpdHour = iTrainingRecord?.cpdHour || 0;\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.achievedOn?.dateTime && this.trainingTypeSet && this.cpdHourCheck;\r\n }\r\n\r\n get trainingTypeSet(): boolean {\r\n return !!this.trainingTypeId && this.trainingTypeId !== consts.emptyGuid;\r\n }\r\n\r\n get cpdHourCheck(): boolean {\r\n return this.cpdHour >= 0;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EcaBreadcrumbService } from '../../services/eca-breadcrumb.service';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-eca-breadcrumb',\r\n templateUrl: './eca-breadcrumb.component.html',\r\n styleUrls: ['./eca-breadcrumb.component.scss']\r\n})\r\n\r\nexport class EcaBreadcrumbComponent implements OnInit {\r\n showDashboardCrumb: boolean = true;\r\n private ecaBreadcrumb: MenuItem[] = [];\r\n ecaBreadcrumbHome: MenuItem;\r\n \r\n constructor(private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit(): void {\r\n //Set home breadcrumb\r\n this.ecaBreadcrumbHome = {\r\n label: 'Dashboard',\r\n icon: 'fa-solid fa-gauge-high',\r\n routerLink: ['dashboard'],\r\n };\r\n\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.ecaBreadcrumb = [];\r\n }\r\n });\r\n\r\n this.ecaBreadcrumbService.breadCrumbs.asObservable().subscribe(ecaBreadcrumbs => {\r\n this.ecaBreadcrumb = [];\r\n ecaBreadcrumbs.forEach(breadcrumb => {\r\n if (breadcrumb?.label && breadcrumb.label !== \"HideDashboard\") {\r\n let newBreadcrumbItem: MenuItem;\r\n newBreadcrumbItem = {\r\n label: breadcrumb?.label,\r\n icon: 'fad fa-' + breadcrumb?.iconName,\r\n visible: true,\r\n routerLink: breadcrumb?.routeLink,\r\n };\r\n this.ecaBreadcrumb.push(newBreadcrumbItem);\r\n console.log(this.ecaBreadcrumb);\r\n }\r\n else if (breadcrumb.label === \"HideDashboard\") {\r\n this.showDashboardCrumb = false;\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 { CommonModule } from '@angular/common';\r\nimport { EcaBreadcrumbComponent } from './components/eca-breadcrumb/eca-breadcrumb.component';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {RouterModule} from '@angular/router';\r\n//import {BreadcrumbModule} from 'ng-uikit-pro-standard';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [EcaBreadcrumbComponent],\r\n exports: [\r\n EcaBreadcrumbComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n BreadcrumbModule,\r\n FontAwesomeModule,\r\n RouterModule\r\n ]\r\n})\r\nexport class EcaBreadcrumbModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IBreadcrumb } from '../models/breadcrumb.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EcaBreadcrumbService {\r\n breadCrumbs: BehaviorSubject = new BehaviorSubject([{} as IBreadcrumb]);\r\n constructor() {\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HelpInfoModalComponent } from './modals/help-info-modal/help-info-modal.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TableModule } from 'primeng/table';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DividerModule } from 'primeng/divider';\r\n\r\n@NgModule({\r\n declarations: [HelpInfoModalComponent],\r\n\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n FontAwesomeModule,\r\n SharedModule,\r\n FileUploadModule,\r\n FormsModule,\r\n TableModule,\r\n RouterModule,\r\n DividerModule\r\n ]\r\n})\r\n\r\nexport class HelpModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { IHelpInfo } from '../../models/i-help-info.interface';\r\n\r\n@Component({\r\n selector: 'app-help-info-modal',\r\n templateUrl: './help-info-modal.component.html',\r\n styleUrls: ['./help-info-modal.component.scss']\r\n})\r\n\r\nexport class HelpInfoModalComponent implements OnInit {\r\n @Input() helpInfo: IHelpInfo;\r\n heading = '';\r\n noButtonText = 'Close';\r\n noButtonColour = 'transparent';\r\n @Output() answer: EventEmitter = new EventEmitter();\r\n\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit() {\r\n if (!this.helpInfo?.heading && this.helpInfo?.sections?.length > 0) {\r\n this.heading = this.helpInfo?.sections[0]?.heading;\r\n } else {\r\n this.heading = this.helpInfo?.heading;\r\n }\r\n }\r\n\r\n clicked(answer: boolean) {\r\n this.answer.emit(answer);\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n \r\n
\r\n
\r\n
\r\n
1\">\r\n
\r\n
{{section.heading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
1 && !helpInfo === last\">\r\n
\r\n \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 { IHelpSection } from './i-help-section.interface';\r\nimport { IHelpInfo } from './i-help-info.interface';\r\n\r\nexport class HelpConsts {\r\n static CompanyDetailsHelp = {\r\n sections: [{\r\n heading: 'Enterprise Details Help',\r\n body: '

You can edit and maintain the contact information for the individual in your organisation in the Enterprise Details Panel. ' +\r\n 'The information is captured from the MyECA website. You may change the contact information specific to this system here but the address information is maintained via the MyECA website.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static OperativeTrainingRecordsHelp = {\r\n sections: [{\r\n heading: 'Operative Training Records Help',\r\n body: '

This page shows a list of all operative training records. You can sort and search for particular records here, including exporting the information to Excel.

' +\r\n '

You can also view and edit a an existing record by clicking on View in the particular row. You may also remove a record using the Remove option from the context menu for the particular row.

' +\r\n '

If you wish to add a new training record, you should navigate to the Our Operatives page and select the Operative or Operatives you wish to add a new record to.

'\r\n\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static DashboardOperativesListHelp = {\r\n sections: [{\r\n heading: 'Dashboard Operatives List Help',\r\n body: '

On the Enterprise dashboard, a list of your current operatives are shown. ' +\r\n 'The current Job Role, Work Risk, Job Level are shown along with the calculated Supervision required for the particular operative according to the EAS guidance. ' +\r\n 'Furthermore, the individual\\'s level of supervision is highlighted in \\'traffic lighted\\' row colours.

' +\r\n '

When there are observations or followups due on the operative, the next applicable date is also shown

' +\r\n '

Quick actions to Add New operative to your team, and to Manage ' +\r\n 'the operatives more closely, are provided on the title of the panel. To get an overview of the EAS guidance for your current workforce, you can click the EAS button.

' +\r\n '

To see the detailed information that is stored on an individual operative you can click View on respective row\\'s context menu. You may also remove and individual from this screen.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static RecentDocumentsList = {\r\n sections: [{\r\n heading: 'Recent Documents List',\r\n body: '

Documents that have been added in the last month are shown in the Recent Documents panel.

' +\r\n '

Documents can be added a various levels throughout the system to store documentation and evidence of Enterprise information and operative competence for example. The levels include

' +\r\n '
    ' +\r\n '
  • General Enterprise documents
  • ' +\r\n '
  • General operative documents
  • ' +\r\n '
  • Operative training records documents
  • ' +\r\n '
' +\r\n '

You can view the particular document from the context menu in this panel and you can use the quick action buttons to Add Enterprise Documents or to ' +\r\n 'Manage Enterprise documents more closely and to view documents older than the most recent ones shown in this panel.

' +\r\n '

To add documents to operative records, you should open the individual operative in question and add documents directly to their record or to their training records.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static RecentObservationsList = {\r\n sections: [{\r\n heading: 'Recent Observations List',\r\n body: '

The Recent Observations panel shows observations that have been made to your various records in the past month

' +\r\n '

Observations are the mechanism whereby use can record details of inspections that have been made on the various records throughout the eCOMS system. This helps to demonstrate that you are keeping information ' +\r\n 'up to date and have procedures in place to review this information at periodic intervals. The types of information your can record observations against include:

' +\r\n '
    ' +\r\n '
  • General Enterprise information
  • ' +\r\n '
  • Enterprise documents
  • ' +\r\n '
  • General operative information
  • ' +\r\n '
  • Operative documents
  • ' +\r\n '
  • Operative training records and their documents
  • ' +\r\n '
' +\r\n '

On this panel, you can view a particular observation from the table row\\'s context menu and you can use the quick action buttons to Add Enterprise Observations or to ' +\r\n 'Manage Enterprise based observations more closely and to see observations older than the most recent ones shown on this panel.

' +\r\n '

To make observations on operative records, you should open the individual operative in question where you can observe their details, their training records and their documents from there.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static TrainingRecordHelp = {\r\n sections: [{\r\n heading: 'Training Record Help',\r\n body: '

The training record screen allows you to record training, ' +\r\n 'qualifications and other experience that you wish to record against an operative to help ensure that you are managing their skills and competence.\\n

' +\r\n '

Once you have added training records you can make observations on them and attach documents to the training record to further manage the operative\\'s competence.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static AllOperativeDocumentsHelp = {\r\n sections: [{\r\n heading: 'All Operative Documents Help',\r\n body: '

This screen shows a list of documents recorded against operatives or their training records. If you would like to add new documents to an operative, then you should navigate to the operatives list and select the operative in question and perform the action there.

' +\r\n '

You can view and remove an existing document by selecting the required operation from table row context menu for the particular document record.

' +\r\n '

To see old \"expired\" information, you can click the Include Expired checkbox.

' +\r\n '

You may also, search and export the table information to excel.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static AllOperativeObservationsHelp = {\r\n sections: [{\r\n heading: 'All Operative Observations Help',\r\n body: '

This screen shows a list of observations recorded against operatives or their training records or their documents. If you would like to add new observates to an operative, then you should navigate to the operatives list and select the operative in question and perform the action there.

' +\r\n '

You can view and remove an existing observation by selecting the required operation from the table row context menu for the particular observation record.

' +\r\n '

You may also, search and export the table information to excel.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanyObservationsHelp = {\r\n sections: [{\r\n heading: 'Enterprise Observations Help',\r\n body: '

This screen shows a list of Observations that have been recorded on the Enterprise itself or its documents.

' +\r\n '

You can add a new observation directly on the Enterprise via the Add button or you can edit or remove existing observations via the corresponding table row context menu.

' +\r\n '

You may also, search and export the table information to excel.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanyOperativesHelp = {\r\n sections: [{\r\n heading: 'Enterprise Operatives Help',\r\n body: '

This is the Operatives List page.

' +\r\n '

The operatives in recorded as having worked in Roles with your organisation are shown here. By default, this page loads with operatives that have a current role with your organisation. To see past Operatives ' +\r\n 'you can change select a different date in the Show as of date control. Doing so will refresh the table with operatives that were in a role during that time.

' +\r\n '

The Operative\\'s name, reference no if any, current Job Role, Work Risk, Job Level are shown, along with the calculated Supervision required for the particular operative according to the EAS guidance. ' +\r\n 'Furthermore, the individual\\'s level of supervision is highlighted in \\'traffic lighted\\' row colours. The date the Operative\\'s role started on is shown as is the date the role ended if there was one

' +\r\n '

When there are observations or followups due on the operative, the next applicable date is also shown

' +\r\n '

The table can be sorted by individual columns and also filtered by Work Risk, Job Level and Supervision. The table can also be exported to Excel via the Exportb> button.

' +\r\n '

To see an individual Operative\\'s details in more detail, you can click the View button in the corresponding table row.

' +\r\n '

For each operative row, there is also a context menu visible by clicking the ellipsis buttons (three vertical dots). From the row menu, you can remove the respective operative.

' +\r\n '

You may also Add New Operative via the appropriate button above the table. You can use this to add a complete new operative or to bring a past operative back into a new role with your company.

' +\r\n '

Finally, you can perform operations on multiple Operative records but using the checkbox selectors at the start of each column or select the checkbox in the header row to select them all.' +\r\n 'Once you have selected at least one operative in this manner, you can use the Add Training Records to add the same training information to all the selected operatives, or you can use the Remove Operatives button to remove them from you company by setting their roles as ended.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanyDocumentsHelp = {\r\n sections: [{\r\n heading: 'Enterprise Documents Help',\r\n body: '

This screen shows a list of documents recorded for the Enterprise itself. Examples here could include items such as corporate structure, health and safety documentation, etc

' +\r\n '

You can add to the list of documents via the Add button or edit or remove existing documents via the corresponding table row context menu.

' +\r\n '

To see old \"expired\" information, you can click the Include Expired checkbox.

' +\r\n '

You may also, search and export the table information to excel.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static DocumentsEntryHelp = {\r\n sections: [{\r\n heading: 'Document Entry Help',\r\n body: '

On this screen, you can enter the details about a document. Mandatory details include:

' +\r\n '
    ' +\r\n '
  • The type of the document - selected from drop-down. If Other type is selected than the additional information field is required
  • ' +\r\n '
  • The date the document was first created/written. This will most often not coincide to the date you uploaded it here.
  • ' +\r\n '
  • The file itself - selected via the Choose File button. You can also drag a file and drop it here if you wish.
  • ' +\r\n '
' +\r\n '

Optional information includes:

' +\r\n '
    ' +\r\n '
  • Additional Information text - if the Document Type is \"Other\" than this field is mandatory
  • ' +\r\n '
  • An expiry date - for when the document may have a specific life-time and you wish it to automatically be hidden after it expires.
  • ' +\r\n '
  • A review date - to record when this document should be reviewed. When the review date passes, an alert will be created on the system to bring your attention to the fact.' +\r\n ' this functionality is useful when a document such as Health and Safety policies etc need periodic review.
  • ' +\r\n '
'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static SupervisionAlertsHelp = {\r\n sections: [{\r\n heading: 'Supervision Alerts Help',\r\n body: '

This page shows you a simple list of your current operatives that are flagged as requiring a High level of supervision in their work.

' +\r\n '

You can navigate to the particular operative record via the View button on their corresponding row in the table.

' +\r\n '

You can also sort, search and export the table to Excel

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static ActionAlertsHelp = {\r\n sections: [{\r\n heading: 'Action Alerts Help',\r\n body: '

This page shows you a list of items that need attention. These items may include follow-ups due on operatives or training records or documents expired or due for review

' +\r\n '

You can action an item by looking up the particular record and changing the follow-up details for instance. Or you can click Dismiss on the particular row to dismiss the alert.

' +\r\n '

You can also sort, search and export the table to Excel.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static TrainingTypesHelp = {\r\n sections: [{\r\n heading: 'Training Types Help',\r\n body: '

General training types.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static TrainingCourseEntrysHelp = {\r\n sections: [{\r\n heading: 'Training Course Entry Help',\r\n body: '

Here you can create Enterprise based training courses or Enterprise based training types that will be available when adding training records to operatives.' +\r\n '

Add a Name for the Training that will be visible from the training record drop-down and also a Description about the course for your records. You can also add an optional \"Held On\" date if this course was held on a particular day

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static JobTitlesHelp = {\r\n sections: [{\r\n heading: 'Job Roles Help',\r\n body: '

List of job roles.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static DocumentTypesHelp = {\r\n sections: [{\r\n heading: 'Document Types Help',\r\n body: '

Document types.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static OptInEntryHelp = {\r\n sections: [{\r\n heading: 'OptIn Entry Help',\r\n body: '

OptIn Entries.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static OptInModalHelp = {\r\n sections: [{\r\n heading: 'OptIn Modal Help',\r\n body: '

OptIn Modal Details.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanyTrainingCoursesHelp = {\r\n sections: [{\r\n heading: 'Enterprise Training Courses Help',\r\n body: '

This screen shows any saved Enterprise-based training courses that are available for selection when adding training records to one or more of your operatives.

' +\r\n '

You can add new Enterprise based training courses here or edit or remove existing ones by selecting the appropriate record via is corresponding table row context menu.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanySearchHelp = {\r\n sections: [{\r\n heading: 'Enterprise Search Help',\r\n body: '

You can search and select Enterprise which you want to manage.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static Admin = {\r\n sections: [{\r\n heading: 'Admin Dashboard Help',\r\n body: '

Admin Dashboard.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static OperativeDetails = {\r\n sections: [{\r\n heading: 'Operative Details Help',\r\n body: '

On this page you can view and edit everything about an individual operative

' +\r\n '

The page is split into three main sections:' +\r\n '

    ' +\r\n '
  • The Operative name and contact details, including any reference number such as a ECS card number
  • ' +\r\n '
  • The operative\\'s Current Role, including the Operative\\'s current Job Role and Job Level, the Degree or Risk in they current Work and the dates they are in the role. The End Date input can be left blank if this role is ongoing
  • ' +\r\n '
  • And the bottom section is presented in multiple tabs to show the operative\\'s Training Records, Documents, Observations and Role History
  • ' +\r\n '

' +\r\n // tslint:disable-next-line:max-line-length\r\n '

The current role section also shows the current Level of Supervision that the Operative requires according to the EAS guidance.' +\r\n 'The panel\\'s background is also coloured according to the traffic light system to easily see supervision requirements for the Operative

' +\r\n '

To see information about the operative\\'s Training Records, Documents, observations and Role History, click on the respective tab heading.' +\r\n 'Each tab will show a table of the applicable data and the ability to edit and add new items.' +\r\n ' Each table displayed can be export and sorted as with all tables in the system. You can also edit individual records using the row menus.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n//

This screen shows the status of the operatives according to the < a[href]=\"\\'https://electrical.theiet.org/bs-7671/building-regulations/electrotechnical-assessment-specification/\\'\" target = \"_blank\" > EAS(Electrotechnical Assessment Specification) Guidance < /a>' +\r\n//' and the tables contained in the Appendices of the guidance documents

\r\n static EasGuidance = {\r\n sections: [{\r\n heading: 'EAS Guidance',\r\n body: \r\n \"

On this screen you can quickly see the job levels, work risks and importantly the amount of supervision required.

\" +\r\n \"

At the bottom of the screen you can click 'Print' to print a copy of the guidance to a printer or to PDF via your operating system.

\"\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static ObservationGuidance = {\r\n sections: [{\r\n heading: 'Observations Help',\r\n body: '

The Observation screen allows you to record observations for Enterprise, operatives, training records, and documents.

' +\r\n '

Observations are a key part of the EAS guidance to demonstrate the Enterprise records are maintained and reviewed. Also to support the EAS Guidance, you should also monitor and record observations.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static ObservationEntryHelp = {\r\n sections: [{\r\n heading: 'Observations Entry Help',\r\n body: '

On this screen you should record the details about an observation. Mandatory fields include:

' +\r\n '

    ' +\r\n '
  • The name of the individual who made the observation, Observed By
  • ' +\r\n '
  • A basic Summary of what the observation was about or why it was made.
  • ' +\r\n '
  • The date the observation was made, Observed On
  • ' +\r\n '
' +\r\n '

Optional information includes:

' +\r\n '
    ' +\r\n '
  • A follow up date - to record when there should be a follow up observation made. When the follow-up date passes, an alert will be created on the system to bring your attention to the fact.' +\r\n ' This functionality is useful to help ensure that observations continue regularly.
  • ' +\r\n '
  • Notes can also be recorded in a rich text input to record more information that maybe pertinent to the observation
  • ' +\r\n '
'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static ObservationDetailsHelp = {\r\n sections: [{\r\n heading: 'Observations Details Help',\r\n body: '

On this screen you should record the details about an observation. Mandatory fields include:

' +\r\n '

    ' +\r\n '
  • The name of the individual who made the observation, Observed By
  • ' +\r\n '
  • A basic Summary of what the observation was about or why it was made.
  • ' +\r\n '
  • The date the observation was made, Observed On
  • ' +\r\n '
' +\r\n '

Optional information includes:

' +\r\n '
    ' +\r\n '
  • A follow up date - to record when there should be a follow up observation made. When the follow-up date passes, an alert will be created on the system to bring your attention to the fact.' +\r\n ' This functionality is useful to help ensure that observations continue regularly.
  • ' +\r\n '
  • Notes can also be recorded in a rich text input to record more information that maybe pertinent to the observation
  • ' +\r\n '
'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static ObservationDocumentDetailsHelp = {\r\n sections: [{\r\n heading: 'All Observation Documents Help',\r\n body: '

This screen shows a list of documents recorded against Observation or their training records. If you would like to add new documents to an operative, then you should navigate to the operatives list and select the operative in question and perform the action there.

' +\r\n '

You can view and remove an existing document by selecting the required operation from table row context menu for the particular document record.

' +\r\n '

To see old \"expired\" information, you can click the Include Expired checkbox.

' +\r\n '

You may also, search and export the table information to excel.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanyDashboardHelp = {\r\n heading: 'Enterprise Dashboard Help',\r\n sections: [\r\n HelpConsts.CompanyDetailsHelp.sections[0], HelpConsts.DashboardOperativesListHelp.sections[0],\r\n HelpConsts.RecentDocumentsList.sections[0], HelpConsts.RecentObservationsList.sections[0]\r\n ] as IHelpSection[]\r\n } as IHelpInfo;\r\n static AuditHistoryHelp = {\r\n sections: [{\r\n heading: 'Audit History Help',\r\n body: '

The Audit History Screen allows you to view a complete timeline of changes made across your entire Enterprise.

' +\r\n '

If you require more details about any audit entry then please contact your local ECA Regional Manager

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n static CompanySettingJobRoleHelp = {\r\n sections: [{\r\n heading: 'Job Role Help',\r\n body: '

Only can ADD, EDIT, DELETE FOR Operative type \"Non Electrical\"' +\r\n '

just do it

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n\r\n static BusinessUnitHelp = {\r\n sections: [{\r\n heading: 'Business Unit Help',\r\n body: '

Defining your own business units allow you to split your operatives into there respective areas/departments to make managing your operatives easier

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n\r\n static BusinessUnitInUseHelp = {\r\n sections: [{\r\n heading: 'Business Unit In Use',\r\n body: '

This business unit has been used against an operative record (current or past engagement) and therefore cannot be deleted.

'\r\n }] as IHelpSection[]\r\n } as IHelpInfo;\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {IBreadcrumb} from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport {EcaBreadcrumbService} from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport {IUserInfo} from '../../../users/models/userInfo.interface';\r\nimport {Subscription} from 'rxjs';\r\nimport {OurUserService} from '../../../users/services/user.service';\r\nimport {consts} from '../../../common/modals/consts';\r\n\r\n@Component({\r\n selector: 'app-help-page',\r\n templateUrl: './help-page.component.html',\r\n styleUrls: ['./help-page.component.scss']\r\n})\r\nexport class HelpPageComponent implements OnInit , OnDestroy{\r\n public loggedInUser: IUserInfo;\r\n private loggedInUserSubscription: Subscription;\r\n companyId: string = consts.emptyGuid;\r\n constructor( private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,) { }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe( user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n this.populateBreadcrumbs();\r\n });\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({label: this.loggedInUser?.companyName?.toString() + ' - ' + 'Help', iconName: 'question'} as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n openRiskHelp() {\r\n\r\n }\r\n}\r\n","\r\n \r\n
\r\n

\r\n Help \r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n","import {EventEmitter, Injectable} from '@angular/core';\r\nimport {IHelpInfo} from '../models/i-help-info.interface';\r\nimport {EcaConfirmProcessService} from '../../shared/services/eca-confirm-process.service';\r\nimport {HelpInfoModalComponent} from '../modals/help-info-modal/help-info-modal.component';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class HelpModalService {\r\n modalRef: IEcaDialogRef;\r\n\r\n constructor(private confirmProcessService: EcaConfirmProcessService, private ecaDynamicModalService: EcaDynamicModalService) { }\r\n\r\n openHelpModal(helpInfo: IHelpInfo): EventEmitter {\r\n\r\n let config = {\r\n styleClass: 'modal-notify modal-eca modal-xl',\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n helpInfo\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.modalRef = this.ecaDynamicModalService.openDialog(HelpInfoModalComponent, config);\r\n return this.modalRef.content.answer;\r\n }\r\n}\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n})\r\nexport class HomeComponent {\r\n}\r\n","

Hello, world!

\r\n

Welcome to your new single-page application, built with:

\r\n\r\n

To help you get started, we've also set up:

\r\n
    \r\n
  • Client-side navigation. For example, click Counter then Back to return here.
  • \r\n
  • Angular CLI integration. In development mode, there's no need to run ng serve. It runs in the background automatically, so your client-side resources are dynamically built on demand and the page refreshes when you modify any file.
  • \r\n
  • Efficient production builds. In production mode, development-time features are disabled, and your dotnet publish configuration automatically invokes ng build to produce minified, ahead-of-time compiled JavaScript files.
  • \r\n
\r\n

The ClientApp subdirectory is a standard Angular CLI application. If you open a command prompt in that directory, you can run any ng command (e.g., ng test), or use npm to install extra packages into it.

\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SettingsService } from '../services/settings.service';\r\n\r\n@Component({\r\n selector: 'app-main-shell',\r\n templateUrl: './main-shell.component.html',\r\n styleUrls: ['./main-shell.component.scss']\r\n})\r\nexport class MainShellComponent implements OnInit {\r\n\r\n environmentSetting: string;\r\n\r\n\r\n constructor(\r\n private settingsService: SettingsService\r\n ) {\r\n this.settingsService.getEnvironment().subscribe(res => {\r\n if (res?.environment) {\r\n this.environmentSetting = res?.environment;\r\n }\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","import { consts } from '../common/modals/consts';\r\nimport { IBusinessUnitInfo } from \"./business-unit.interface\";\r\n\r\nexport class BusinessUnitInfo implements IBusinessUnitInfo {\r\n id: string;\r\n name: string;\r\n description: string;\r\n isSelected: boolean;\r\n companyId: string;\r\n deleted: boolean;\r\n\r\n\r\n constructor(iBusinessUnitInfo: IBusinessUnitInfo = null) {\r\n this.id = iBusinessUnitInfo?.id || consts.emptyGuid;\r\n this.name = iBusinessUnitInfo?.name || \"\";\r\n this.description = iBusinessUnitInfo?.description || \"\";\r\n this.isSelected = iBusinessUnitInfo?.isSelected || false;\r\n this.companyId = iBusinessUnitInfo?.companyId || consts.emptyGuid;\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.name;\r\n }\r\n}\r\n","import { ICompanyAlertEmailSettings } from './company-alert-email-settings.interface';\r\n\r\nexport class CompanyAlertEmailSettings implements ICompanyAlertEmailSettings {\r\n companySettingsId: string;//Array = [];\r\n companyId: string;\r\n personName: string;\r\n email: string;\r\n constructor(iCompanyAlertSettings: ICompanyAlertEmailSettings = null) {\r\n this.companySettingsId = iCompanyAlertSettings?.companySettingsId;// ?? [];\r\n this.companyId = iCompanyAlertSettings?.companyId;\r\n this.personName = iCompanyAlertSettings?.personName;\r\n this.email = iCompanyAlertSettings?.email;\r\n }\r\n}\r\n\r\n","import { ICompanyAlertSettings } from './company-alert-settings.interface';\r\n\r\nexport class CompanyAlertSettings implements ICompanyAlertSettings {\r\n companySettingsId: Array = [];\r\n companyId: string;\r\n alertContactEmail: string;\r\n alertMinus90Days: boolean;\r\n alertMinus60Days: boolean;\r\n alertMinus30Days: boolean;\r\n alertMinus14Days: boolean;\r\n alert0Days: boolean;\r\n alert14Days: boolean;\r\n\r\n constructor(iCompanyAlertSettings: ICompanyAlertSettings = null) {\r\n this.companySettingsId = iCompanyAlertSettings?.companySettingsId;\r\n this.companyId = iCompanyAlertSettings?.companyId;\r\n this.alertMinus90Days = iCompanyAlertSettings?.alertMinus90Days;\r\n this.alertMinus60Days = iCompanyAlertSettings?.alertMinus60Days;\r\n this.alertMinus30Days = iCompanyAlertSettings?.alertMinus30Days;\r\n this.alertMinus14Days = iCompanyAlertSettings?.alertMinus14Days;\r\n this.alert0Days = iCompanyAlertSettings?.alert0Days;\r\n this.alert14Days = iCompanyAlertSettings?.alert14Days;\r\n }\r\n\r\n}\r\n","import {IEntityDocumentSummary} from './entity-document-summary';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport {ICompanyDocumentSummary} from './company-document-summary.interface';\r\nimport {EntityDocumentSummary} from './entity-document-summary.class';\r\nimport {IObservation} from './observation.interface';\r\n\r\nexport class CompanyDocumentSummary extends EntityDocumentSummary implements ICompanyDocumentSummary {\r\n constructor(iCompanyDocumentSummary?: ICompanyDocumentSummary) {\r\n super(iCompanyDocumentSummary as IEntityDocumentSummary);\r\n this.companyId = iCompanyDocumentSummary?.companyId || '00000000-0000-0000-0000-000000000000';\r\n }\r\n companyId: string;\r\n\r\n}\r\n","import { IDateTimeWithZone } from \"../common/date-time-with-zone.interface\";\r\nimport { IJobLevelInfo } from \"./job-level.interface\";\r\nimport { IJobTitleInfo } from \"./job-title.interface\";\r\nimport { IRiskInfo } from \"./risk-info.interface\";\r\nimport { ICompanyEngagementHistory } from \"./company-engagement-history.interface\";\r\nimport { DateTimeWithZone } from \"../common/date-time-with-zone.class\";\r\nimport { DegreeOfSupervisionString, RiskMatrixLevel } from \"./risk-matrix-level.enum\";\r\nimport { EmploymentStatus } from './employment-status.class';\r\nimport { consts } from '../common/modals/consts';\r\nimport { RiskInfo } from './risk-info.class';\r\nimport { JobTitleInfo } from './job-title.class';\r\nimport { JobLevelInfo } from './job-level.class';\r\nimport { OperativeTypeInfo } from \"./operative-type.class\";\r\nimport { IOperativeTypeInfo } from \"./operative-type.interface\";\r\nimport { IBusinessUnitInfo } from \"./business-unit.interface\";\r\nimport { BusinessUnitInfo } from \"./business-unit.class\";\r\n\r\nexport class CompanyEngagementHistory implements ICompanyEngagementHistory {\r\n id: string;\r\n companyId: string;\r\n operativeId: string;\r\n from: IDateTimeWithZone;\r\n to: IDateTimeWithZone;\r\n jobLevel: JobLevelInfo;\r\n jobLevelId: string;\r\n jobTitle: JobTitleInfo;\r\n jobTitleId: string;\r\n risk: RiskInfo;\r\n riskId: string;\r\n riskMatrixLevel: RiskMatrixLevel;\r\n employmentStatusId: string;\r\n employmentStatus: EmploymentStatus;\r\n supervisionString: string;\r\n operativeTypeId: string;\r\n operativeType: OperativeTypeInfo;\r\n businessUnitId: string;\r\n businessUnit: BusinessUnitInfo;\r\n\r\n constructor(iCompanyEngagementHistory?: ICompanyEngagementHistory) {\r\n this.id = iCompanyEngagementHistory?.id;\r\n this.companyId = iCompanyEngagementHistory?.companyId;\r\n this.operativeId = iCompanyEngagementHistory?.operativeId;\r\n this.from = new DateTimeWithZone(iCompanyEngagementHistory?.from);\r\n this.to = new DateTimeWithZone(iCompanyEngagementHistory?.to);\r\n this.jobLevelId = iCompanyEngagementHistory?.jobLevelId;\r\n this.jobTitleId = iCompanyEngagementHistory?.jobTitleId;\r\n this.riskId = iCompanyEngagementHistory?.riskId;\r\n this.riskMatrixLevel = iCompanyEngagementHistory?.riskMatrixLevel;\r\n this.employmentStatusId = iCompanyEngagementHistory?.employmentStatusId || consts.emptyGuid;\r\n this.employmentStatus = new EmploymentStatus(iCompanyEngagementHistory?.employmentStatus);\r\n this.supervisionString = iCompanyEngagementHistory?.supervisionString || '';\r\n this.jobLevel = new JobLevelInfo(iCompanyEngagementHistory?.jobLevel as IJobLevelInfo) || new JobLevelInfo({} as IJobLevelInfo);\r\n this.jobTitle = new JobTitleInfo(iCompanyEngagementHistory?.jobTitle as IJobTitleInfo) || new JobTitleInfo({} as IJobTitleInfo);\r\n this.risk = new RiskInfo(iCompanyEngagementHistory?.risk) || new RiskInfo({} as IRiskInfo);\r\n this.operativeTypeId = iCompanyEngagementHistory?.operativeTypeId;\r\n this.operativeType = new OperativeTypeInfo(iCompanyEngagementHistory?.operativeType as IOperativeTypeInfo) || new OperativeTypeInfo({} as IOperativeTypeInfo);\r\n this.businessUnitId = iCompanyEngagementHistory?.businessUnitId;\r\n this.businessUnit = new BusinessUnitInfo(iCompanyEngagementHistory?.businessUnit as IBusinessUnitInfo) || new BusinessUnitInfo({} as IBusinessUnitInfo);\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.jobLevelId && !!this.jobTitleId && !!this.riskId && !!this.from?.dateTime && !!this.employmentStatusId && !!this.operativeTypeId;\r\n }\r\n\r\n}\r\n","import { consts } from \"../common/modals/consts\";\r\nimport { ICompanyJobTitle } from \"./company-job-title.interface\";\r\nimport { ElectricalWorkType } from \"./electrical-work-type\";\r\n\r\nexport class CompanyJobTitle implements ICompanyJobTitle {\r\n name: string;\r\n defaultJobLevelId: string;\r\n defaultJobLevelName?: string;\r\n electricalWorkType?: ElectricalWorkType;\r\n operativeTypeId: string;\r\n createdBy: string;\r\n updatedBy: string;\r\n isSelected: boolean;\r\n id: string;\r\n description: string;\r\n companyId: string;\r\n\r\n\r\n constructor(iCompanyJobTitle: ICompanyJobTitle = null) {\r\n this.id = iCompanyJobTitle?.id || consts.emptyGuid;\r\n this.name = iCompanyJobTitle?.name || \"\";\r\n this.description = iCompanyJobTitle?.description || \"\";\r\n this.isSelected = iCompanyJobTitle?.isSelected || false;\r\n this.companyId = iCompanyJobTitle?.companyId || consts.emptyGuid;\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.name;\r\n }\r\n\r\n}\r\n","export enum DecisionRequirement\r\n{\r\n None,\r\n OptionalYesNo,\r\n MandatoryYes,\r\n MandatoryNo\r\n}\r\nexport enum DecisionRequirementString\r\n{\r\n 'None',\r\n 'Optional Yes & No',\r\n 'Mandatory Yes',\r\n 'Mandatory No'\r\n}\r\n","export enum DocumentEntityType {\r\n company,\r\n employedPerson,\r\n trainingRecord,\r\n bugLog,\r\n trainingCourse,\r\n observation\r\n}\r\n\r\nexport enum DocumentEntityTypeString {\r\n 'Company',\r\n 'Operative',\r\n 'Training Record',\r\n 'Bug Log',\r\n 'Training Course',\r\n 'Observation'\r\n}\r\n","import {DocumentEntityType} from './document-entity-type.enum';\r\nimport {IHaveName} from '../common/have-name.interface';\r\nimport {IDocumentType} from './document-type.interface';\r\n\r\nexport class EcaDocumentType implements IDocumentType {\r\n constructor(iDocumentType?: IDocumentType) {\r\n this.id = iDocumentType?.id || '00000000-0000-0000-0000-000000000000';\r\n this.name = iDocumentType?.name || '';\r\n this.description = iDocumentType?.description || '';\r\n this.documentEntityType = iDocumentType?.documentEntityType || null;\r\n this.isSelected = iDocumentType?.isSelected || true;\r\n this.isDefault = iDocumentType?.isDefault || false;\r\n }\r\n\r\n id: string;\r\n name: string;\r\n description: string;\r\n documentEntityType: DocumentEntityType;\r\n isSelected: boolean;\r\n isDefault: boolean;\r\n}\r\n","export enum ElectricalWorkType {\r\n Electrical,\r\n NonElectrical,\r\n QualifiedSupervisor\r\n}\r\nexport enum ElectricalWorkTypeString {\r\n 'Electrical', //0\r\n 'Non Electrical', //1\r\n 'Qualified Supervisor' //2\r\n}\r\n","import {IEmploymentStatus} from './employment-status.interface';\r\nimport {HelpConsts} from '../help/models/help-consts';\r\nimport {consts} from '../common/modals/consts';\r\n\r\nexport class EmploymentStatus implements IEmploymentStatus{\r\n constructor(iEmploymentStatus?: IEmploymentStatus) {\r\n this.id = iEmploymentStatus?.id || consts.emptyGuid;\r\n this.name = iEmploymentStatus?.name || '';\r\n this.description = iEmploymentStatus?.description || '';\r\n this.isDefault = iEmploymentStatus?.isDefault || false;\r\n this.isSelected = iEmploymentStatus?.isSelected || false;\r\n }\r\n id: string;\r\n name: string;\r\n description: string;\r\n isDefault: boolean;\r\n isSelected: boolean;\r\n}\r\n","import {IEntityDocumentSummary} from './entity-document-summary';\r\nimport {IDateTimeWithZone} from '../common/date-time-with-zone.interface';\r\nimport {IOperative} from './operative.interface';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport {IObservation} from './observation.interface';\r\nimport {TrainingRecordObservation} from '../domain-model/training-record-observation.class';\r\nimport { DocumentEntityType } from './document-entity-type.enum';\r\n\r\nexport class EntityDocumentSummary implements IEntityDocumentSummary {\r\n constructor(entityDocumentSummary?: IEntityDocumentSummary) {\r\n this.documentCreationDate = new DateTimeWithZone(entityDocumentSummary?.documentCreationDate) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n this.documentId = entityDocumentSummary?.documentId || '00000000-0000-0000-0000-000000000000';\r\n this.documentTypeId = entityDocumentSummary?.documentTypeId || '';\r\n this.documentType = entityDocumentSummary?.documentType || '';\r\n this.originalFilename = entityDocumentSummary?.originalFilename || '';\r\n this.expiryDate = new DateTimeWithZone(entityDocumentSummary?.expiryDate) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n this.reviewDate = new DateTimeWithZone(entityDocumentSummary?.reviewDate) || new DateTimeWithZone({} as IDateTimeWithZone);\r\n this.observations = entityDocumentSummary?.observations || new Array();\r\n this.totalObservations = entityDocumentSummary?.totalObservations || 0;\r\n this.canPreviewDocument = entityDocumentSummary?.canPreviewDocument;\r\n this.extraDescription = entityDocumentSummary?.extraDescription || \"\";\r\n this.entityType = entityDocumentSummary?.entityType\r\n }\r\n documentCreationDate: DateTimeWithZone;\r\n documentId: string;\r\n documentType: string;\r\n documentTypeId: string;\r\n expiryDate: DateTimeWithZone;\r\n originalFilename: string;\r\n reviewDate: DateTimeWithZone;\r\n observations: IObservation[];\r\n totalObservations: number;\r\n canPreviewDocument: boolean;\r\n extraDescription: string;\r\n entityType: DocumentEntityType;\r\n}\r\n","import {IJobLevelInfo} from \"./job-level.interface\";\r\n\r\nexport class ExtendedJobLevel implements IJobLevelInfo{\r\n id: string;\r\n index: number;\r\n private _name: string;\r\n description: string;\r\n examples: string;\r\n operativeTypeId: string;\r\n isSelected: boolean;\r\n\r\n constructor(iJobLevelInfo: IJobLevelInfo = null) {\r\n this.id = iJobLevelInfo.id ?? \"\";\r\n this.index= iJobLevelInfo.index ?? 0;\r\n this._name = iJobLevelInfo.name ?? \"\";\r\n this.description = iJobLevelInfo.description ?? \"\";\r\n this.examples = iJobLevelInfo.examples ?? \"\";\r\n this.operativeTypeId = iJobLevelInfo.operativeTypeId ?? \"\";\r\n this.isSelected = iJobLevelInfo.isSelected ?? false;\r\n }\r\n\r\n get name(): string{\r\n return this._name + ' (' + this.examples.trim() + ')';\r\n }\r\n\r\n get basicName(): string{\r\n return this._name;\r\n }\r\n}\r\n","\r\nimport {IRiskInfo} from \"./risk-info.interface\";\r\n\r\nexport class ExtendedRiskInfo implements IRiskInfo{\r\n id: string;\r\n index: number;\r\n private _name: string;\r\n description: string;\r\n examples: string;\r\n examplesSummary: string;\r\n operativeTypeId: string;\r\n isSelected: boolean;\r\n\r\n constructor(iRiskInfo: IRiskInfo = null){\r\n this.id = iRiskInfo?.id ?? \"\";\r\n this.index = iRiskInfo?.index ?? 0;\r\n this._name = iRiskInfo?.name ?? \"\";\r\n this.description = iRiskInfo?.description ?? \"\";\r\n this.examples = iRiskInfo?.examples ?? \"\";\r\n this.examplesSummary = iRiskInfo?.examplesSummary ?? \"\";\r\n this.operativeTypeId = iRiskInfo?.operativeTypeId ?? \"\";\r\n\r\n this.isSelected = iRiskInfo?.isSelected ?? false;\r\n }\r\n\r\n get name(): string{\r\n return this._name + ' - (' + this.examplesSummary.trim() + ')';\r\n }\r\n\r\n get basicName(): string{\r\n return this._name;\r\n }\r\n\r\n}\r\n","import {IJobLevelInfo} from \"./job-level.interface\";\r\nimport {consts} from '../common/modals/consts';\r\n\r\nexport class JobLevelInfo implements IJobLevelInfo{\r\n id: string;\r\n index: number;\r\n name: string;\r\n description: string;\r\n examples: string;\r\n operativeTypeId: string;\r\n isSelected: boolean;\r\n\r\n constructor(iJobLevelInfo: IJobLevelInfo = null) {\r\n this.id = iJobLevelInfo?.id || consts.emptyGuid;\r\n this.index= iJobLevelInfo?.index || 0;\r\n this.name = iJobLevelInfo?.name || \"\";\r\n this.description = iJobLevelInfo?.description || \"\";\r\n this.examples = iJobLevelInfo?.examples || \"\";\r\n this.operativeTypeId = iJobLevelInfo?.operativeTypeId || \"\";\r\n this.isSelected = iJobLevelInfo?.isSelected || false;\r\n }\r\n\r\n get nameAndExample(): string{\r\n return this.name + ' (' + this.examples + ')';\r\n }\r\n}\r\n","import {IJobTitleInfo} from \"./job-title.interface\";\r\nimport {consts} from \"../common/modals/consts\";\r\nimport {IJobLevelInfo} from \"./job-level.interface\";\r\nimport {ElectricalWorkType} from './electrical-work-type';\r\n\r\nexport class JobTitleInfo implements IJobTitleInfo{\r\n defaultJobLevelId: string;\r\n description: string;\r\n id: string;\r\n isSelected: boolean;\r\n name: string;\r\n defaultJobLevelName?: string;\r\n electricalWorkType?: ElectricalWorkType;\r\n operativeTypeId: string;\r\n\r\n get jobLevelIsSet(): boolean {\r\n return this.defaultJobLevelId != consts.emptyGuid;\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.name && !!this.description && this.defaultJobLevelId != consts.emptyGuid && !!this.electricalWorkType.toString();\r\n }\r\n\r\n getDefaultJobLevel(allJobLevels: IJobLevelInfo[]) : IJobLevelInfo {\r\n let jobLevel = allJobLevels.find(l => l.id === this.defaultJobLevelId);\r\n this.defaultJobLevelName = jobLevel?.name;\r\n return jobLevel;\r\n }\r\n\r\n constructor(iJobTitleInfo: IJobTitleInfo = null) {\r\n this.id = iJobTitleInfo?.id ?? consts.emptyGuid;\r\n this.name = iJobTitleInfo?.name ?? \"\";\r\n this.description = iJobTitleInfo?.description ?? \"\";\r\n this.isSelected = iJobTitleInfo?.isSelected ?? false;\r\n this.defaultJobLevelId = iJobTitleInfo?.defaultJobLevelId ?? consts.emptyGuid;\r\n this.defaultJobLevelName = iJobTitleInfo?.defaultJobLevelName ?? '';\r\n this.electricalWorkType = iJobTitleInfo?.electricalWorkType;\r\n this.operativeTypeId = iJobTitleInfo?.operativeTypeId ?? consts.emptyGuid;\r\n }\r\n\r\n}\r\n","import { IDateTimeWithZone } from '../common/date-time-with-zone.interface';\r\nimport { IEntityDocumentSummary } from './entity-document-summary';\r\nimport { EntityDocumentSummary } from './entity-document-summary.class';\r\nimport { IObservationDocumentSummary } from './observation-document-summary.interface';\r\n\r\nexport class ObservationDocumentSummary extends EntityDocumentSummary implements IObservationDocumentSummary {\r\n constructor(iObservationDocumentSummary?: IObservationDocumentSummary) {\r\n super(iObservationDocumentSummary as IEntityDocumentSummary);\r\n this.observationId = iObservationDocumentSummary?.observationId || '00000000-0000-0000-0000-000000000000';\r\n this.summaryInfo = iObservationDocumentSummary?.summaryInfo || '';\r\n this.notesAsHtml = iObservationDocumentSummary?.notesAsHtml || '';\r\n this.observedBy = iObservationDocumentSummary?.observedBy || '';\r\n }\r\n observationId: string;\r\n summaryInfo: string;\r\n notesAsHtml: string;\r\n observedBy: string;\r\n observedOn: IDateTimeWithZone;\r\n followUpOn: IDateTimeWithZone;\r\n}\r\n","import {IEntityDocumentSummary} from './entity-document-summary';\r\nimport {EntityDocumentSummary} from './entity-document-summary.class';\r\nimport {IOperativeDocumentSummary} from './operative-document-summary.interface';\r\n\r\nexport class OperativeDocumentSummary extends EntityDocumentSummary implements IOperativeDocumentSummary {\r\n constructor(iOperativeDocumentSummary?: IOperativeDocumentSummary) {\r\n super(iOperativeDocumentSummary as IEntityDocumentSummary);\r\n this.companyId = iOperativeDocumentSummary?.companyId || '00000000-0000-0000-0000-000000000000';\r\n this.operativeFullName = iOperativeDocumentSummary?.operativeFullName || '';\r\n this.operativeFirstName = iOperativeDocumentSummary?.operativeFirstName || '';\r\n this.operativeLastName = iOperativeDocumentSummary?.operativeLastName || '';\r\n this.operativeId = iOperativeDocumentSummary?.operativeId || '00000000-0000-0000-0000-000000000000';\r\n }\r\n companyId: string;\r\n operativeFullName: string;\r\n operativeFirstName: string;\r\n operativeLastName: string;\r\n operativeId: string;\r\n\r\n}\r\n","import { consts } from '../common/modals/consts';\r\nimport { IOperativeTypeInfo } from \"./operative-type.interface\";\r\n\r\nexport class OperativeTypeInfo implements IOperativeTypeInfo {\r\n id: string;\r\n name: string;\r\n description: string;\r\n isSelected: boolean;\r\n\r\n\r\n constructor(iOperativeTypeInfo: IOperativeTypeInfo = null) {\r\n this.id = iOperativeTypeInfo?.id || consts.emptyGuid;\r\n this.name = iOperativeTypeInfo?.name || \"\";\r\n this.description = iOperativeTypeInfo?.description || \"\";\r\n this.isSelected = iOperativeTypeInfo?.isSelected || false;\r\n } \r\n}\r\n","import {IOptInModalInfo} from \"./optin-modal-info.interface\";\r\n\r\n\r\nexport class OptInModalInfo implements IOptInModalInfo{\r\n constructor(iOptInModalInfo ?: IOptInModalInfo ) {\r\n this.optInModalText = iOptInModalInfo?.optInModalText || '';\r\n this.optInModalTitle = iOptInModalInfo?.optInModalTitle || '';\r\n this.continueButtonText = iOptInModalInfo?.continueButtonText || 'Continue';\r\n }\r\n optInModalText: string;\r\n optInModalTitle: string;\r\n continueButtonText: string;\r\n\r\n}\r\n","\r\nimport {IRiskInfo} from \"./risk-info.interface\";\r\nimport {consts} from '../common/modals/consts';\r\n\r\nexport class RiskInfo implements IRiskInfo{\r\n id: string;\r\n index: number;\r\n name: string;\r\n description: string;\r\n examples: string;\r\n examplesSummary: string;\r\n operativeTypeId: string;\r\n isSelected: boolean;\r\n\r\n constructor(iRiskInfo: IRiskInfo = null){\r\n this.id = iRiskInfo?.id ?? consts.emptyGuid;\r\n this.index = iRiskInfo?.index ?? 0;\r\n this.name = iRiskInfo?.name ?? \"\";\r\n this.description = iRiskInfo?.description ?? \"\";\r\n this.examples = iRiskInfo?.examples ?? \"\";\r\n this.examplesSummary = iRiskInfo?.examplesSummary ?? \"\";\r\n this.operativeTypeId = iRiskInfo?.operativeTypeId ?? \"\";\r\n this.isSelected = iRiskInfo?.isSelected ?? false;\r\n }\r\n\r\n\r\n\r\n}\r\n","export enum RiskMatrixLevel {\r\n low,\r\n warning,\r\n danger,\r\n}\r\nexport enum DegreeOfSupervisionString {\r\n 'Low',\r\n 'Medium',\r\n 'High'\r\n}\r\nexport enum RiskMatrixLevelString {\r\n '1 - Low',\r\n '2 - Warning',\r\n '3 - Danger',\r\n '4 - Low',\r\n '5 - Warning',\r\n '6 - Danger'\r\n}\r\n// export enum RiskMatrixLevel {\r\n// nonElectrical,\r\n// low,\r\n// warning,\r\n// danger,\r\n//\r\n//\r\n// }\r\n// export enum DegreeOfSupervisionString {\r\n// 'Non Electrical',\r\n// 'Low',\r\n// 'Medium',\r\n// 'High',\r\n//\r\n// }\r\n// export enum RiskMatrixLevelString {\r\n// '0 - Non Electrical',\r\n// '1 - Low',\r\n// '2 - Warning',\r\n// '3 - Danger',\r\n//\r\n// }\r\n","import {IEntityDocumentSummary} from './entity-document-summary';\r\nimport {EntityDocumentSummary} from './entity-document-summary.class';\r\nimport {ITrainingRecordDocumentSummary} from './training-record-document-summary.interface';\r\nimport {ITrainingType} from './training-record-type.interface';\r\nimport {TrainingType} from './training-record-type.class';\r\n\r\nexport class TrainingRecordDocumentSummary extends EntityDocumentSummary implements ITrainingRecordDocumentSummary {\r\n constructor(iTrainingRecordDocumentSummary?: ITrainingRecordDocumentSummary) {\r\n super(iTrainingRecordDocumentSummary as IEntityDocumentSummary);\r\n this.companyId = iTrainingRecordDocumentSummary?.companyId || '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordId = iTrainingRecordDocumentSummary?.trainingRecordId || '00000000-0000-0000-0000-000000000000';\r\n this.operativeFullName = iTrainingRecordDocumentSummary?.operativeFullName || '';\r\n this.operativeFirstName = iTrainingRecordDocumentSummary?.operativeFirstName || '';\r\n this.operativeLastName = iTrainingRecordDocumentSummary?.operativeLastName || '';\r\n this.operativeId = iTrainingRecordDocumentSummary?.operativeId || '00000000-0000-0000-0000-000000000000';\r\n this.trainingTypeId = iTrainingRecordDocumentSummary?.trainingTypeId || '00000000-0000-0000-0000-000000000000';\r\n this.trainingType = iTrainingRecordDocumentSummary?.trainingType || new TrainingType({} as ITrainingType);\r\n }\r\n companyId: string;\r\n operativeFullName: string;\r\n operativeId: string;\r\n trainingRecordId: string;\r\n trainingType?: ITrainingType;\r\n trainingTypeId: string;\r\n operativeFirstName: string;\r\n operativeLastName: string;\r\n}\r\n","import {IDateTimeWithZone} from '../common/date-time-with-zone.interface';\r\nimport {ITrainingType} from './training-record-type.interface';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport { ITrainingTypeCategoryInfo } from './trainning-record-category.interface';\r\nimport { TrainingTypeCategoryInfo } from './trainning-record-category.class';\r\n\r\nexport class TrainingType implements ITrainingType {\r\n companyId: string;\r\n id: string;\r\n name: string;\r\n description: string;\r\n heldOn: IDateTimeWithZone;\r\n isSelected = false;\r\n validTo: IDateTimeWithZone;\r\n trainingTypeCategory: ITrainingTypeCategoryInfo;\r\n trainingTypeCategoryId: string;\r\n trainingTypeCategoryName: string;\r\n constructor(iTrainingType: ITrainingType = null) {\r\n this.companyId = iTrainingType?.companyId;\r\n this.id = iTrainingType?.id;\r\n\r\n this.name = iTrainingType?.name || '';\r\n this.description = iTrainingType?.description || '';\r\n this.validTo = new DateTimeWithZone(iTrainingType?.validTo);\r\n this.heldOn = new DateTimeWithZone(iTrainingType?.heldOn);\r\n\r\n this.trainingTypeCategory = iTrainingType?.trainingTypeCategory;\r\n this.trainingTypeCategoryId = iTrainingType?.trainingTypeCategoryId;\r\n this.trainingTypeCategoryName = iTrainingType?.trainingTypeCategoryName;\r\n\r\n }\r\n\r\n get isValid(): boolean {\r\n return !!this.name;\r\n }\r\n\r\n}\r\n","import {IEntityDocumentSummary} from './entity-document-summary';\r\nimport {DateTimeWithZone} from '../common/date-time-with-zone.class';\r\nimport { ITrainingTypeDocumentSummary } from './training-type-document-summary.interface';\r\nimport {EntityDocumentSummary} from './entity-document-summary.class';\r\nimport {IObservation} from './observation.interface';\r\n\r\nexport class TrainingTypeDocumentSummary extends EntityDocumentSummary implements ITrainingTypeDocumentSummary {\r\n constructor(iTrainingTypeDocumentSummary?: ITrainingTypeDocumentSummary) {\r\n super(iTrainingTypeDocumentSummary as IEntityDocumentSummary);\r\n this.trainingTypeId = iTrainingTypeDocumentSummary?.trainingTypeId || '00000000-0000-0000-0000-000000000000';\r\n this.companyId = iTrainingTypeDocumentSummary?.companyId || '00000000-0000-0000-0000-000000000000';\r\n }\r\n trainingTypeId: string;\r\n companyId: string;\r\n\r\n}\r\n","/// \r\n/// \r\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { OurUserService } from '../users/services/user.service';\r\nimport { IUserInfo } from '../users/models/userInfo.interface';\r\nimport { AuthorizeService } from '../../api-authorization/authorize.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { consts } from '../common/modals/consts';\r\nimport { Observation, ObservationType } from '../domain-model/observation.class';\r\nimport { IObservation } from '../message-models/observation.interface';\r\nimport { ObservationModalService } from '../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../observations/services/observations.service';\r\nimport { AlertsService } from '../alerts/services/alerts.service';\r\nimport { BugLoggerModalService } from '../bug-logger/services/bug-logger-modal.service';\r\nimport { HelpModalService } from '../help/services/help-modal.service';\r\nimport { IHelpInfo } from '../help/models/i-help-info.interface';\r\nimport { SettingsProviderService } from '../common/settings-provider.service';\r\nimport { OperativeInfo } from \"../domain-model/operative-info.class\";\r\nimport { ExtendedJobLevel } from \"../message-models/extended-job-level.class\";\r\nimport { ExtendedRiskInfo } from \"../message-models/extended-risk-info.class\";\r\nimport { ListDataService } from \"../services/list-data.service\";\r\nimport { OperativeModalService } from \"../operatives/services/operative-modal.service\";\r\nimport { IRiskInfo } from \"../message-models/risk-info.interface\";\r\nimport { IEmploymentStatus } from \"../message-models/employment-status.interface\";\r\nimport { IJobLevelInfo } from \"../message-models/job-level.interface\";\r\nimport { IRiskMatrixEntry } from \"../message-models/risk-matrix-entry.interface\";\r\nimport { ErrorHandlingService } from \"../services/error-handling.service\";\r\nimport { IJobTitleInfo } from \"../message-models/job-title.interface\";\r\nimport { OperativesService } from \"../operatives/services/operatives.service\";\r\nimport { SettingsService } from '../services/settings.service';\r\nimport { HttpCancelService } from '../common/services/http-cancel.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { TermsConditionService } from \"../admin-lists/services/terms-condition.service\";\r\nimport { IOptInEntry } from \"../message-models/optin-entry.interface\";\r\nimport { IOperativeTypeInfo } from '../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../message-models/business-unit.interface';\r\nimport { CompanyJobRoleService } from '../setting/job-role/services/company-job-role.service';\r\nimport { ICompanyJobTitle } from '../message-models/company-job-title.interface';\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.scss']\r\n})\r\n\r\nexport class NavMenuComponent implements OnInit, OnDestroy {\r\n optInEntries: IOptInEntry[] = [];\r\n navItems: MenuItem[] = [];\r\n eCOMsGuidePdfUrl = '';\r\n companyId = '';\r\n isExpanded = false;\r\n loggedInUser: IUserInfo;\r\n subscription: Subscription;\r\n totalAlerts = 0;\r\n totalSupervisionAlerts = 0;\r\n totalLogItems = 0;\r\n private helpContext: IHelpInfo;\r\n showQuickHelp: boolean;\r\n currentHelp: IHelpInfo;\r\n allRisks: IRiskInfo[];\r\n jobTitles: IJobTitleInfo[];\r\n allCompanyJobTitles: ICompanyJobTitle[];\r\n allEmploymentStatuses: IEmploymentStatus[];\r\n allJobLevels: IJobLevelInfo[];\r\n riskMatrix: IRiskMatrixEntry[];\r\n allRisksLoaded = false;\r\n allEmploymentStatusesLoaded = false;\r\n allJobLevelsLoaded = false;\r\n riskMatrixLoaded = false;\r\n allJobTitlesLoaded = false;\r\n privacyStatementLink: string;\r\n environmentSetting: string;\r\n addOperativePermission = false;\r\n allOperativeTypesLoaded = false;\r\n allOperativeTypes: IOperativeTypeInfo[];\r\n allBusinessUnitsLoaded = false;\r\n allBusinessUnits: IBusinessUnitInfo[];\r\n\r\n private settingsProviderService: SettingsProviderService;\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private userService: OurUserService,\r\n private bugLoggerModalService: BugLoggerModalService,\r\n private alertsService: AlertsService,\r\n private authorizeService: AuthorizeService,\r\n private listDataService: ListDataService,\r\n private operativeModalService: OperativeModalService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private settingsService: SettingsService,\r\n private operativesService: OperativesService,\r\n private httpCancelService: HttpCancelService,\r\n private helpService: HelpModalService,\r\n private observationsService: ObservationsService,\r\n private tncService: TermsConditionService,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n private observationModalService: ObservationModalService) {\r\n this.settingsProviderService = new SettingsProviderService('');\r\n this.eCOMsGuidePdfUrl = this.settingsProviderService.baseUrl + 'Documentation/eCOMs_guide.pdf';\r\n this.settingsService.getPrivacyStatementUrl().subscribe(res => {\r\n this.privacyStatementLink = res;\r\n });\r\n this.settingsService.getEnvironment().subscribe(res => {\r\n if (res?.environment) {\r\n this.environmentSetting = res?.environment;\r\n }\r\n });\r\n }\r\n\r\n get companyIdIsSet(): boolean {\r\n return this.loggedInUser?.companyId && this.loggedInUser?.companyId != consts.emptyGuid;\r\n }\r\n\r\n signOut() {\r\n this.authorizeService.signOut('App').then(result =>\r\n this.router.navigate(['/'])\r\n );\r\n }\r\n\r\n openCompanyDocumentUploaderModal() {\r\n this.router.navigate(['/company-documents', 'add-document']);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n if (user.isInternalAdminUser) {//Log out if in the admin role..\r\n this.httpCancelService.cancelPendingRequests();\r\n this.signOut();\r\n return;\r\n }\r\n this.companyId = this.loggedInUser?.companyId;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.alertsService.alertsCountSubject.subscribe(res => {\r\n this.totalAlerts = res;\r\n });\r\n this.alertsService.getSupervisionAlertsCountForCompany(user?.companyId).subscribe();\r\n this.alertsService.supervisionAlertsCountSubject.subscribe(res => {\r\n this.totalSupervisionAlerts = res;\r\n });\r\n });\r\n this.subscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n });\r\n this.initLists();\r\n this.tncService.getAllOptInEntries().subscribe(data => {\r\n this.optInEntries = data;\r\n //this.optInEntriesLoading = false;\r\n });\r\n\r\n this.listDataService.updateListRequired.subscribe(() => {\r\n this.initLists();\r\n });\r\n }\r\n\r\n initLists() {\r\n this.listDataService.getAllJobTitles().subscribe({\r\n next: response => {\r\n this.allJobTitlesLoaded = true;\r\n this.jobTitles = response;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n \r\n this.companyJobRoleService.getCompanyJobTitlesByCompanyId(this.companyId).subscribe({\r\n next: response => {\r\n this.allJobTitlesLoaded = true;\r\n this.allCompanyJobTitles = response;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n this.listDataService.getAllRisks().subscribe({\r\n next: response => {\r\n this.allRisks = response;\r\n this.allRisksLoaded = true;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n this.listDataService.getAllEmploymentStatuses().subscribe({\r\n next: response => {\r\n this.allEmploymentStatuses = response;\r\n this.allEmploymentStatusesLoaded = true;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n this.listDataService.getAllJobLevels().subscribe({\r\n next: response => {\r\n this.allJobLevelsLoaded = true;\r\n this.allJobLevels = response;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n this.listDataService.getRiskMatrix().subscribe({\r\n next: response => {\r\n this.riskMatrixLoaded = true;\r\n this.riskMatrix = response;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n this.listDataService.getAllOperativeTypes().subscribe({\r\n next: response => {\r\n this.allOperativeTypesLoaded = true;\r\n this.allOperativeTypes = response;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n this.listDataService.getBusinessUnitsForCompany(this.companyId).subscribe({\r\n next: response => {\r\n this.allBusinessUnitsLoaded = true;\r\n this.allBusinessUnits = response;\r\n this.updateNavBar();\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n initNavBar() {\r\n this.navItems = [\r\n //Links\r\n {\r\n label: this.loggedInUser?.companyName,\r\n icon: 'fa-solid fa-gauge-high',\r\n routerLink: ['dashboard'],\r\n visible: this.companyIdIsSet\r\n },\r\n //Operatives\r\n {\r\n label: 'Operatives',\r\n icon: 'fad fa-users',\r\n visible: this.companyIdIsSet && this.loggedInUser?.operativeOperations?.canRetrieve,\r\n items: [\r\n {\r\n label: 'Our Operatives',\r\n icon: 'fad fa-users',\r\n routerLink: ['operatives'],\r\n },\r\n { separator: true },\r\n {\r\n label: 'Add New Operative',\r\n icon: 'fad fa-user-plus',\r\n visible: this.addOperativePermission,\r\n command: () => this.addOperative(),\r\n },\r\n {\r\n label: 'Upload New Operatives',\r\n icon: 'fad fa-user-plus',\r\n visible: true,\r\n routerLink: ['operative-upload'],\r\n },\r\n ]\r\n },\r\n //Training Records\r\n {\r\n label: 'Training Records',\r\n icon: 'fad fa-graduation-cap',\r\n visible: this.companyIdIsSet && this.loggedInUser?.trainingRecordOperations?.canRetrieve,\r\n items: [\r\n {\r\n label: 'Operative Training',\r\n icon: 'fad fa-graduation-cap',\r\n routerLink: ['training-records'],\r\n },\r\n {\r\n separator: true,\r\n visible: this.loggedInUser?.trainingRecordOperations?.canUpdate || this.loggedInUser?.trainingRecordOperations?.canInsert,\r\n },\r\n {\r\n label: 'Training Courses',\r\n icon: 'fad fa-users-class',\r\n routerLink: ['training-courses'],\r\n visible: this.loggedInUser?.trainingRecordOperations?.canUpdate || this.loggedInUser?.trainingRecordOperations?.canInsert,\r\n },\r\n ]\r\n },\r\n //Documents\r\n {\r\n label: 'Documents',\r\n icon: 'fad fa-books',\r\n visible: this.companyIdIsSet && this.loggedInUser?.documentOperations?.canRetrieve,\r\n items: [\r\n {\r\n label: 'Enterprise Documents',\r\n icon: 'fad fa-books',\r\n routerLink: ['company-documents'],\r\n },\r\n {\r\n label: 'Operative Documents',\r\n icon: 'fad fa-books',\r\n routerLink: ['operative-documents'],\r\n },\r\n {\r\n separator: true,\r\n visible: this.loggedInUser?.documentOperations?.canInsert,\r\n },\r\n {\r\n label: 'Add Enterprise Document',\r\n icon: 'fad fa-books-medical',\r\n visible: this.loggedInUser?.documentOperations?.canInsert,\r\n command: () => this.openCompanyDocumentUploaderModal(),\r\n },\r\n ]\r\n },\r\n //Observations\r\n {\r\n label: 'Observations',\r\n icon: 'fad fa-eye',\r\n visible: this.companyIdIsSet && this.loggedInUser?.observationOperations?.canRetrieve,\r\n items: [\r\n {\r\n label: 'Enterprise Observations',\r\n icon: 'fad fa-eye',\r\n routerLink: ['company-observations'],\r\n },\r\n {\r\n label: 'Operative Observations',\r\n icon: 'fad fa-eye',\r\n routerLink: ['operative-observations'],\r\n },\r\n //{\r\n // separator: true,\r\n // visible: this.loggedInUser?.observationOperations?.canUpdate || this.loggedInUser?.observationOperations?.canInsert,\r\n //},\r\n //{\r\n // label: 'Add Enterprise Observation',\r\n // icon: 'fad fa-plus',\r\n // visible: this.loggedInUser?.observationOperations?.canInsert,\r\n // command: () => this.createCompanyObservation(),\r\n //},\r\n ]\r\n },\r\n //Help\r\n {\r\n label: 'Help',\r\n icon: 'fad fa-question-circle',\r\n visible: this.companyIdIsSet,\r\n items: [\r\n {\r\n label: 'How to use eCOMS',\r\n icon: 'fad fa-question',\r\n //url: this.settingsProviderService.baseUrl + 'Documentation/eCOMs_guide.pdf',\r\n url: 'https://ecaprodneecoms.blob.core.windows.net/ecoms-documents/eCOMs_guide.pdf',\r\n target: '_blank',\r\n },\r\n {\r\n label: 'Help about this page',\r\n icon: 'fad fa-question-circle',\r\n visible: this.currentHelp && this.showQuickHelp,\r\n command: () => this.helpAboutThisPageClick(),\r\n },\r\n {\r\n label: 'EAS Guide',\r\n icon: 'fad fa-external-link-alt',\r\n url: 'https://electrical.theiet.org/bs-7671/building-regulations/electrotechnical-assessment-specification/',\r\n target: '_blank',\r\n },\r\n {\r\n label: 'ECA Website',\r\n icon: 'fad fa-directions',\r\n url: 'https://www.eca.co.uk',\r\n target: '_blank',\r\n },\r\n {\r\n label: 'Privacy Statement',\r\n icon: 'fad fa-file-contract',\r\n url: this.privacyStatementLink,\r\n target: '_blank',\r\n visible: this.privacyStatementLink ? true : false,\r\n },\r\n {\r\n label: 'Terms & Conditions',\r\n icon: '',\r\n url: 'https://www.eca.co.uk/saas-master-terms',\r\n target: '_blank',\r\n\r\n },\r\n ]\r\n },\r\n //Alerts/Support\r\n {\r\n label: this.loggedInUser.displayName,\r\n styleClass: 'p-menuitem-right',\r\n items: [\r\n {\r\n label: 'Action Alerts',\r\n icon: 'fas fa-bell',\r\n routerLink: ['alerts'],\r\n },\r\n {\r\n label: 'Supervision Alerts',\r\n icon: 'fas fa-exclamation-triangle',\r\n routerLink: ['supervision-alerts'],\r\n }, \r\n { separator: true, },\r\n {\r\n label: 'Settings',\r\n icon: 'fad fa-cog',\r\n visible: this.companyIdIsSet,\r\n routerLink: ['company-settings']\r\n },\r\n { separator: true, },\r\n {\r\n label: 'Log a Problem',\r\n icon: 'fad fa-bug',\r\n command: () => this.logIssueClick(),\r\n },\r\n { separator: true, },\r\n {\r\n label: 'Log Out',\r\n icon: 'fad fa-sign-out',\r\n command: () => this.signOut(),\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n clearCompanySelectiion() {\r\n this.loggedInUser.companyId = consts.emptyGuid;\r\n this.loggedInUser.companyName = '';\r\n this.userService.updateUserCompanyDetails(consts.emptyGuid, '');\r\n this.router?.navigate(['/company-search']);\r\n }\r\n\r\n createCompanyObservation() {\r\n const observationModalHeading = 'New observation of ' + this.loggedInUser?.companyName;\r\n const selectedObservation = new Observation({} as IObservation);\r\n this.observationModalService.createOrEditObservation(selectedObservation, observationModalHeading, true, ObservationType.Company).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n observationResult.observationType = ObservationType.Company;\r\n this.observationsService.createOrUpdateCompanyObservation(observationResult, this.loggedInUser?.companyId).subscribe(companyObservation => {\r\n this.router?.navigate(['/company-observations']);\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n }\r\n });\r\n });\r\n }\r\n\r\n logIssueClick() {\r\n this.bugLoggerModalService.openLogItemEditorModal();\r\n }\r\n\r\n helpAboutThisPageClick() {\r\n this.helpService.openHelpModal(this.currentHelp);\r\n }\r\n\r\n addOperative() {\r\n const newOperative = new OperativeInfo();\r\n newOperative.companyId = this.companyId;\r\n newOperative.currentBusinessUnitId = consts.emptyGuid;\r\n\r\n const defaultEmploymentStatus = this.allEmploymentStatuses.find(s => s.isDefault);\r\n newOperative.currentEmploymentStatusId = defaultEmploymentStatus?.id;\r\n const jobLevels: ExtendedJobLevel[] = [];\r\n this.allJobLevels.forEach(l => {\r\n jobLevels.push(new ExtendedJobLevel(l));\r\n });\r\n\r\n const risks: ExtendedRiskInfo[] = [];\r\n this.allRisks.forEach(r => {\r\n risks.push(new ExtendedRiskInfo(r));\r\n });\r\n \r\n this.operativeModalService.openOperativeEditorModal(newOperative, 'Add a New Operative',\r\n this.jobTitles, this.allCompanyJobTitles, jobLevels, risks, this.allEmploymentStatuses, this.allOperativeTypes, this.allBusinessUnits, true).subscribe(modalRef => {\r\n modalRef.content.saveOperativeRequested.subscribe(operative => {\r\n if (operative) {\r\n this.operativesService.createOrUpdateOperative(operative).subscribe(result => {\r\n if (result) {\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.router.navigate(['operative/' + result.id]));\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n canAddOperative(): boolean {\r\n return this.allRisksLoaded && this.allEmploymentStatusesLoaded && this.allJobLevelsLoaded && this.riskMatrixLoaded && this.allJobTitlesLoaded && this.allOperativeTypesLoaded && this.loggedInUser?.operativeOperations?.canInsert\r\n }\r\n\r\n updateNavBar() {\r\n this.addOperativePermission = this.canAddOperative();\r\n if (this.addOperativePermission) {\r\n this.initNavBar();\r\n }\r\n }\r\n}\r\n","\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationsService } from '../../services/observations.service';\r\nimport { ObservationModalService } from '../../services/observation-modal.service';\r\nimport { CompanyInfo } from '../../../domain-model/company-info.class';\r\nimport { ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { Subscription } from 'rxjs';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { CompanyDocumentService } from '../../../company/services/company-documents.service';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-company-observations',\r\n templateUrl: './company-observations.component.html',\r\n styleUrls: ['./company-observations.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CompanyObservationsComponent implements OnInit, OnDestroy {\r\n\r\n companyObservations: Array = new Array();\r\n company: CompanyInfo = new CompanyInfo(null);\r\n observationsLoading: boolean = true;\r\n loggedInUser: IUserInfo;\r\n private companyId: string = consts.emptyGuid;\r\n subscription: Subscription;\r\n companyDocumentSummaries: IDocumentSummaryInfo[] = [];\r\n\r\n constructor(public observationsService: ObservationsService,\r\n private observationModalService: ObservationModalService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private helpService: HelpModalService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private documentModalService: DocumentModalService,\r\n private alertsService: AlertsService,\r\n private companyDocumentService: CompanyDocumentService,) { }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.subscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.setUserAndReloadData(user);\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n private setUserAndReloadData(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (!this.companyId)\r\n return;\r\n\r\n this.observationsService.getCompanyObservations(this.companyId).subscribe(result => {\r\n result.forEach(x => {\r\n x.observationTypeString = ObservationTypeString[x.observationType];\r\n })\r\n this.companyObservations = result;\r\n this.observationsLoading = false;\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.subscription.unsubscribe();\r\n }\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string) {\r\n this.observationModalService.createOrEditObservation(observation, heading + this.loggedInUser.companyName, isEditing).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n this.observationsLoading = true\r\n let editedObservation = observationResult as IObservation;\r\n editedObservation.observationType = ObservationType.Company;\r\n let companyObservationId = consts.emptyGuid;\r\n this.companyObservations.forEach(data => {\r\n if (data.observationId === editedObservation.id) {\r\n companyObservationId = data.companyObservationId;\r\n }\r\n })\r\n this.observationsService.createOrUpdateCompanyObservation(editedObservation, this.companyId, companyObservationId).subscribe(result => {\r\n this.companyObservations = this.observationsService.updateObservationSummaries(this.companyObservations, result);\r\n this.observationsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n })\r\n observationModalRef.content.saveObservationDocumentRequested.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n this.observationsLoading = true\r\n let editedObservation = observationResult as IObservation;\r\n editedObservation.observationType = ObservationType.Company;\r\n let companyObservationId = consts.emptyGuid;\r\n this.companyObservations.forEach(data => {\r\n if (data.observationId === editedObservation.id) {\r\n companyObservationId = data.companyObservationId;\r\n }\r\n })\r\n this.observationsService.createOrUpdateCompanyObservation(editedObservation, this.companyId, companyObservationId).subscribe(result => {\r\n this.companyObservations = this.observationsService.updateObservationSummaries(this.companyObservations, result);\r\n this.observationsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.documentModalService.openDocumentUploaderModal({ documentCreationDate: observationResult.ObservedOn } as IEntityDocumentSummary\r\n , DocumentEntityType.company, 'Add new Document for Observation')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close()\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.companyDocumentService.createOrUpdateCompanyDocument(documentUploadRequest).subscribe(companyDocumentSummary => {\r\n this.getCompanyDocumentSummaries(this.companyId);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n documentModalRef.content.cancelClicked?.subscribe(() => {\r\n //this.getTrainingRecordsForOperative();\r\n });\r\n });\r\n }\r\n })\r\n });\r\n }\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: this.loggedInUser.companyName.toString() + ' - ' + 'Observations', iconName: 'eye' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n openCompanyObservationsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanyObservationsHelp);\r\n }\r\n\r\n getCompanyDocumentSummaries(companyId: string, includeExpired: boolean = false) {\r\n this.companyDocumentService.getAllDocumentSummariesByEntityType(companyId, DocumentEntityType.company, includeExpired).subscribe(companyDocuments => {\r\n this.companyDocumentSummaries = companyDocuments;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().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 Enterprise Observations \r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\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 { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { Observation } from '../../../domain-model/observation.class';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { HelpConsts } from \"../../../help/models/help-consts\";\r\n\r\n@Component({\r\n selector: 'app-create-or-edit-observation-modal',\r\n templateUrl: './create-or-edit-observation-modal.component.html',\r\n styleUrls: ['./create-or-edit-observation-modal.component.scss']\r\n})\r\n\r\nexport class CreateOrEditObservationModalComponent implements OnInit, AfterViewInit {\r\n @Input() observation: IObservation;\r\n tempObservation: Observation;\r\n @Input() modalHeading: string = 'Observation Editor';\r\n @Input() isEditing: boolean;\r\n @Input() showSaveAndUploadButton: boolean;\r\n @Output() saveObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() saveObservationDocumentRequested: EventEmitter = new EventEmitter();\r\n saveAttempted: boolean = false;\r\n showingHelp: boolean = false;\r\n helpText: string = HelpConsts.ObservationGuidance.sections[0].body + HelpConsts.ObservationEntryHelp.sections[0].body;\r\n yesButtonText: string = 'Save';\r\n yesButtonColour: string = 'success';\r\n\r\n\r\n constructor(public modalRef: DynamicDialogRef, public config: DynamicDialogConfig) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.config.data) {\r\n this.observation = this.config.data.observation;\r\n this.modalHeading = this.config.data.modalHeading;\r\n this.isEditing = this.config.data.isEditing;\r\n this.showSaveAndUploadButton = this.config.data.showSaveAndUploadButton;\r\n if (this.showSaveAndUploadButton) {\r\n this.yesButtonColour = 'warning';\r\n this.yesButtonText = 'Save Without Document';\r\n }\r\n }\r\n this.tempObservation = new Observation(this.observation as IObservation);\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n saveClicked() {\r\n const editedObservation = new Observation({\r\n id: this.tempObservation.id,\r\n summaryInfo: this.tempObservation.summaryInfo,\r\n notesAsHtml: this.tempObservation.notesAsHtml,\r\n observedBy: this.tempObservation.observedBy,\r\n observedOn: this.tempObservation.observedOn,\r\n followUpOn: this.tempObservation.followUpOn,\r\n observationType: this.tempObservation.observationType\r\n } as IObservation);\r\n this.saveAttempted = true;\r\n if (!editedObservation.isValid) {\r\n return;\r\n }\r\n this.saveObservationClicked.emit(editedObservation as IObservation);\r\n this.modalRef.close();\r\n }\r\n\r\n cancelClicked() {\r\n this.saveAttempted = false;\r\n this.isEditing = false;\r\n this.tempObservation = new Observation(this.observation as IObservation);\r\n if (this.tempObservation.id === consts.emptyGuid) {\r\n this.modalRef.close();\r\n }\r\n }\r\n\r\n editClicked() {\r\n this.isEditing = true;\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n\r\n saveAndUploadDocument() {\r\n\r\n const editedObservation = new Observation({\r\n id: this.tempObservation.id,\r\n summaryInfo: this.tempObservation.summaryInfo,\r\n notesAsHtml: this.tempObservation.notesAsHtml,\r\n observedBy: this.tempObservation.observedBy,\r\n observedOn: this.tempObservation.observedOn,\r\n followUpOn: this.tempObservation.followUpOn,\r\n observationType: this.tempObservation.observationType\r\n } as IObservation);\r\n this.saveAttempted = true;\r\n if (!editedObservation.isValid) {\r\n return;\r\n }\r\n this.modalRef.close();\r\n this.saveObservationDocumentRequested.emit(editedObservation as IObservation);\r\n }\r\n}\r\n","\r\n
\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, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { Observation, ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { ObservationDocumentService } from '../../services/observation-document.service';\r\nimport { ObservationsService } from '../../services/observations.service';\r\n\r\n@Component({\r\n selector: 'app-observation-details',\r\n templateUrl: './observation-details.component.html',\r\n styleUrls: ['./observation-details.component.scss']\r\n})\r\n\r\nexport class ObservationDetailsComponent {\r\n\r\n @ViewChild('observationDetailsContainerComponent') observationDetailsContainerComponent: DetailContainerComponent;\r\n private loggedInUser: IUserInfo;\r\n loggedInUserSubscription: Subscription;\r\n\r\n observationSummary: IObservationSummary;\r\n observationTitle: string;\r\n observation: Observation = new Observation({} as IObservation);\r\n tempObservation: Observation = new Observation({} as IObservation);\r\n isObservationLoading: boolean = true;\r\n observationId: string\r\n\r\n observationDocuments: IEntityDocumentSummary[] = [];\r\n\r\n companyId: string = consts.emptyGuid;\r\n isEditing: boolean = false;\r\n saveAttempted: boolean = false;\r\n\r\n constructor(\r\n private userService: OurUserService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private helpService: HelpModalService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private activatedRoute: ActivatedRoute,\r\n private observationsService: ObservationsService,\r\n private router: Router,\r\n private documentService: DocumentService,\r\n private documentModalService: DocumentModalService,\r\n private observationDocumentService: ObservationDocumentService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private alertsService: AlertsService,\r\n ) {\r\n this.observationId = this.activatedRoute.snapshot.params.observationId\r\n };\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n\r\n //Get Observation Summary\r\n this.observationsService.getObservationSummaryById(this.observationId).subscribe(result => {\r\n this.observationSummary = result;\r\n this.observationSummary.observationTypeString = ObservationTypeString[this.observationSummary.observationType];\r\n this.observationTitle = this.observationSummary.observationTypeString\r\n\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n //Get Observation\r\n this.observationsService.getObservationById(this.observationId).subscribe(result => {\r\n this.observation = new Observation(result);\r\n this.tempObservation = new Observation(result);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n //Get Observation Documents\r\n this.observationDocumentService.getAllDocumentSummariesForObservation(this.companyId, this.observationId, false).subscribe(result => {\r\n this.observationDocuments = result;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n error => {\r\n console.log(error);\r\n }\r\n });\r\n });\r\n });\r\n this.isObservationLoading = false;\r\n });\r\n };\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n switch (this.observationSummary.observationType) {\r\n case ObservationType.Operative: \r\n case ObservationType.TrainingRecord: {\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: `${this.observationSummary.operativeName}`, iconName: 'user', routeLink: `/operative/${this.observationSummary.operativeId}` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.observationSummary.observationTypeString + '- Observation', iconName: 'eye' } as IBreadcrumb);\r\n break;\r\n }\r\n case ObservationType.Company: {\r\n \r\n }\r\n case ObservationType.CompanyDocument:\r\n case ObservationType.OperativeDocument:\r\n case ObservationType.TrainingRecordDocument: {\r\n operativeBreadCrumbs.push({ label: this.loggedInUser?.companyName.toString() + ' - ' + 'Enterprise Documents', iconName: 'books', routeLink: `/company-documents/` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.observationSummary.observationTypeString + '- Observation', iconName: 'eye' } as IBreadcrumb);\r\n break;\r\n }\r\n }\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n openObservationDetailsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanyTrainingCoursesHelp);\r\n }\r\n\r\n editDetails() {\r\n if (this.observationDetailsContainerComponent.isCollapsed) {\r\n this.observationDetailsContainerComponent.panelToggle();\r\n }\r\n this.isEditing = true;\r\n }\r\n\r\n saveDetails() {\r\n this.isEditing = false;\r\n if (this.tempObservation.isValid) {\r\n this.isObservationLoading = true;\r\n\r\n switch (this.tempObservation.observationType) {\r\n case ObservationType.Operative: {\r\n this.observationsService.createOrUpdateOperativeObservation(\r\n this.tempObservation,\r\n this.observationSummary.operativeId,\r\n this.observationSummary.companyId,\r\n this.observationSummary.operativeObservationId).subscribe(operativeObservation => {\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.isObservationLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.TrainingRecord: {\r\n this.observationsService.createOrUpdateTrainingRecordObservation(\r\n this.tempObservation,\r\n this.observationSummary.trainingRecordId,\r\n this.observationSummary.companyId,\r\n this.observationSummary.trainingRecordObservationId).subscribe(traingingRecordObservation => {\r\n this.isObservationLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.Company: {\r\n this.observationsService.createOrUpdateCompanyObservation(\r\n this.tempObservation,\r\n this.observationSummary.companyId,\r\n this.observationSummary.companyObservationId).subscribe(companyObservation => {\r\n this.isObservationLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.CompanyDocument:\r\n case ObservationType.OperativeDocument:\r\n case ObservationType.TrainingRecordDocument: {\r\n this.observationsService.createOrUpdateDocumentObservation(\r\n this.tempObservation,\r\n this.observationSummary.documentId,\r\n this.observationSummary.companyId,\r\n this.observationSummary.documentObservationId).subscribe(documentObservation => {\r\n this.isObservationLoading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n cancelEdit() {\r\n this.saveAttempted = false;\r\n this.tempObservation = new Observation(this.observation);\r\n this.isEditing = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n //Observation Documents\r\n addObservationDocument() {\r\n this.documentModalService.openDocumentUploaderModal(null, DocumentEntityType.observation, 'Add Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('ObservationId', this.observationSummary.observationId);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n\r\n this.observationDocumentService\r\n .createOrUpdateObservationDocument(documentUploadRequest).subscribe(observationSummary => {\r\n this.observationDocuments.unshift(observationSummary);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n viewObservationDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.router.navigate(['observation-document', entityDocumentSummary.documentId]);\r\n }\r\n\r\n downloadObservationDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(entityDocumentSummary, true);\r\n }\r\n\r\n openObservationDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(entityDocumentSummary);\r\n }\r\n\r\n deleteObservationDocumentClick(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to remove this document?',\r\n 'Remove ' + entityDocumentSummary.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.deleteObservationDocument(entityDocumentSummary);\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteObservationDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.observationDocumentService.deleteObservationDocument(entityDocumentSummary.documentId, this.companyId).subscribe(\r\n result => {\r\n if (result) {\r\n const documentIndex = this.observationDocuments.findIndex(c => c.documentId !== entityDocumentSummary.documentId);\r\n this.observationDocuments.splice(documentIndex, 1);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n}\r\n","\r\n \r\n

\r\n \r\n Observation For - {{this.observationTitle}}\r\n \r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Observation Details\r\n \r\n\r\n \r\n Observation Details - {{observationSummary.summaryInfo}}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\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, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { BreadcrumbService } from 'xng-breadcrumb';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationType } from '../../../domain-model/observation.class';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { IObservationDocumentSummary } from '../../../message-models/observation-document-summary.interface';\r\nimport { ObservationDocumentService } from '../../services/observation-document.service';\r\nimport { ObservationDocumentSummary } from '../../../message-models/observation-document-summary.class';\r\n\r\n@Component({\r\n selector: 'app-observation-document-details-page',\r\n templateUrl: './observation-document-details-page.component.html',\r\n styleUrls: ['./observation-document-details-page.component.scss']\r\n})\r\n\r\nexport class ObservationDocumentDetailsPageComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('docDetailsContainerComponent') docDetailsContainerComponent: DetailContainerComponent;\r\n\r\n loading: boolean;\r\n\r\n isEditing = false;\r\n documentUploadRequest: FormData;\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n\r\n observationDocumentSummary: IObservationDocumentSummary;\r\n observationDocumentTypes: IDocumentType[];\r\n observationDocumentObservations: Array = new Array();\r\n observationSummary: IObservationSummary;\r\n observationType: string;\r\n documentId: string;\r\n\r\n public loggedInUser: IUserInfo;\r\n companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n submitted: boolean = false;\r\n\r\n constructor(private documentTypeService: DocumentTypeService,\r\n private observationDocumentService: ObservationDocumentService,\r\n private documentService: DocumentService,\r\n private breadcrumbService: BreadcrumbService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private alertsService: AlertsService,\r\n private activatedRoute: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService\r\n ) {\r\n this.documentId = this.activatedRoute.snapshot.params.documentId;\r\n this.breadcrumbService.set('@observationDocument', { label: 'Training Course Document' });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.setUserAndReload(user);\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private setUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (!this.companyId)\r\n return;\r\n\r\n if (this.companyId !== consts.emptyGuid) {\r\n this.documentTypeService.getAllDocumentTypesForEntityType(DocumentEntityType.observation).subscribe(observationDocumentTypes => {\r\n this.observationDocumentTypes = observationDocumentTypes;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.observationDocumentService.getObservationDocumentSummary(this.companyId, this.documentId).subscribe(observationDocumentSummary => {\r\n this.observationDocumentSummary = new ObservationDocumentSummary(observationDocumentSummary);\r\n this.observationsService.getObservationSummaryById(this.observationDocumentSummary.observationId).subscribe(result => {\r\n this.observationSummary = result;\r\n this.observationType = this.observationSummary.operativeId == null ? ' Enterprise' : ' Operative';\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.initObservationDocument();\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n if (this.companyId) {\r\n this.observationsService.getDocumentObservations(this.documentId, this.companyId).subscribe(observationDocumentObservations => {\r\n this.observationDocumentObservations = observationDocumentObservations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n } \r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n initObservationDocument() {\r\n this.isEditing = false;\r\n this.documentUploadRequest = new FormData();\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.observationDocumentSummary);\r\n }\r\n\r\n getSelectedDocumentType(documentTypeId: string): IDocumentType {\r\n return this.observationDocumentTypes.find(t => t.id === documentTypeId);\r\n }\r\n\r\n saveObservationDocumentClicked() {\r\n this.submitted = true;\r\n if (!this.tempDocumentSummary?.documentTypeId || !this.tempDocumentSummary?.documentCreationDate?.dateTime || !this.tempDocumentSummary?.originalFilename ||\r\n (!this.tempDocumentSummary?.extraDescription && this.getSelectedDocumentType(this.tempDocumentSummary?.documentTypeId)?.name === \"Other\")) {\r\n return false;\r\n }\r\n this.submitted = false;\r\n this.appendDocumentUploadRequest();\r\n this.loading = true;\r\n this.observationDocumentService.createOrUpdateObservationDocument(this.documentUploadRequest).subscribe(observationDocumentSummary => {\r\n this.loading = false;\r\n this.observationDocumentSummary = new ObservationDocumentSummary(observationDocumentSummary);\r\n this.isEditing = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n downloadObservationDocument() {\r\n this.documentService.downloadOrOpenDocument(this.observationDocumentSummary, true);\r\n }\r\n\r\n openObservationDocument() {\r\n this.documentService.downloadOrOpenDocument(this.observationDocumentSummary);\r\n }\r\n\r\n //createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType) {\r\n // this.observationModalService.createOrEditObservation(observation, heading + this.observationDocumentSummary.originalFilename, isEditing, observationType).subscribe(observationModalRef => {\r\n // observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n // if (observationResult !== null) {\r\n // if (observationResult.observationType === null) {\r\n // observationResult.observationType = ObservationType.CompanyDocument;\r\n // }\r\n // let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n // this.observationDocumentObservations?.forEach(ttObservationSummary => {\r\n // if (ttObservationSummary.observationId === observationResult.id) {\r\n // entityObservationId = ttObservationSummary.documentObservationId;\r\n // }\r\n // });\r\n // this.observationsService.createOrUpdateDocumentObservation(observationResult as IObservation, this.documentId, this.companyId, entityObservationId).subscribe(observationDocObservation => {\r\n // this.observationDocumentObservations = this.observationsService.updateObservationSummaries(this.observationDocumentObservations, observationDocObservation);\r\n // this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // observationModalRef.dynamicDialogRef.close();\r\n // }\r\n // });\r\n // });\r\n //}\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n\r\n if (this.observationSummary.operativeId == null) {\r\n //Company observation document\r\n operativeBreadCrumbs.push({ label: this.loggedInUser.companyName + ' - Enterprise Documents', iconName: 'books', routeLink: `company-documents` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.observationDocumentSummary.originalFilename, iconName: 'book' } as IBreadcrumb);\r\n }\r\n else {\r\n //operative observation document\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'user', routeLink: `operatives` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: 'Operative Documents', iconName: 'books', routeLink: `operative-documents` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.observationDocumentSummary.originalFilename, iconName: 'book' } as IBreadcrumb);\r\n }\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private appendDocumentUploadRequest() {\r\n this.documentUploadRequest.append('ObservationId', this.observationDocumentSummary.observationId);\r\n this.documentUploadRequest.append('CompanyId', this.companyId);\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', this.tempDocumentSummary.documentTypeId);\r\n this.documentUploadRequest.append('ExtraDescription', this.tempDocumentSummary.extraDescription);\r\n\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n\r\n if (this.tempDocumentSummary.reviewDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentReviewDate', this.tempDocumentSummary.reviewDate.dateTime);\r\n }\r\n if (this.tempDocumentSummary.expiryDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentExpiryDate', this.tempDocumentSummary.expiryDate.dateTime);\r\n }\r\n this.documentUploadRequest.append('DocumentCreationDate', this.tempDocumentSummary.documentCreationDate.dateTime);\r\n }\r\n\r\n editClicked() {\r\n if (this.docDetailsContainerComponent.isCollapsed) {\r\n //this.docDetailsContainerComponent.expandClicked();\r\n this.docDetailsContainerComponent.panelToggle();\r\n }\r\n this.isEditing = true;\r\n }\r\n\r\n cancelClicked() {\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.observationDocumentSummary);\r\n this.isEditing = false;\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n formStatusChange(formIsValid: any) {\r\n this.formIsValid = formIsValid;\r\n }\r\n\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n}\r\n","\r\n \r\n

\r\n {{ observationType}} Observation Document Details\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Document Details\r\n \r\n \r\n Document Details - {{observationDocumentSummary?.originalFilename}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \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, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { ObservationTypeString } from '../../../domain-model/observation.class';\r\n\r\n@Component({\r\n selector: 'app-observation-form',\r\n templateUrl: './observation-form.component.html',\r\n styleUrls: ['./observation-form.component.scss']\r\n})\r\nexport class ObservationFormComponent implements OnInit {\r\n @Input() observation: IObservation;\r\n @Input() isEditing: boolean;\r\n @Input() saveAttempted: boolean = true;\r\n observationType: typeof ObservationTypeString = ObservationTypeString;\r\n selectedObservationType: string;\r\n\r\n @Output() canSave: EventEmitter = new EventEmitter();\r\n\r\n editorOptions = {\r\n toolbar: [['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],]\r\n };\r\n\r\n observedOnMaxDate: Date = new Date(Date.now());\r\n followUpMinDate: Date;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (this.observation && this.observation?.observedOn?.dateTime) {\r\n this.disableDatesPriorSelected(this.observation?.observedOn)\r\n this.selectedObservationType = this.observationType[this.observation.observationType];\r\n }\r\n }\r\n\r\n disableDatesPriorSelected(date: IDateTimeWithZone) {\r\n if (date.dateTime) {\r\n let observedOn = new Date(date.dateTime);\r\n this.followUpMinDate = new Date(observedOn.setDate(observedOn.getDate() + 1));\r\n }\r\n }\r\n\r\n setDateLimits() {\r\n let followupOn = new Date(this.observation?.followUpOn?.dateTime);\r\n let currentDate = new Date(Date.now());\r\n let newMaxDate = new Date(followupOn.setDate(followupOn.getDate() - 1));\r\n this.observedOnMaxDate = currentDate < newMaxDate ? currentDate : newMaxDate;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { Observation, ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { ObservationsService } from '../../services/observations.service';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { IAllowedOperations } from \"../../../users/models/userInfo.interface\";\r\nimport { EcaConfirmProcessService } from \"../../../shared/services/eca-confirm-process.service\";\r\nimport { EcaConfirmDeleteModalOptions } from \"../../../shared/models/confirm-delete-modal-options.class\";\r\nimport { ExportExcelService } from \"../../../common/services/export-excel.service\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ObservationSummary } from '../../../domain-model/observation-summary';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-observations-list',\r\n templateUrl: './observations-list.component.html',\r\n styleUrls: ['./observations-list.component.scss']\r\n})\r\nexport class ObservationsListComponent implements OnInit {\r\n @Input() observations: Array;\r\n @Input() tableTitle: string = 'Observations';\r\n @Input() showCaption: boolean = true;\r\n @Input() showWarningMessage: boolean = true;\r\n @Input() companyId: string = consts.emptyGuid;\r\n @Input() allowedOperations: IAllowedOperations;\r\n @Input() addButtonText = 'Add';\r\n @Input() showAddButton: boolean = true;\r\n\r\n ObservationType: typeof ObservationType = ObservationType;\r\n ObservationTypeString: typeof ObservationTypeString = ObservationTypeString;\r\n @Output() viewObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() createObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() editObservationClicked: EventEmitter = new EventEmitter();\r\n columns: any[];\r\n exportColumns: any[];\r\n observationsLoading: boolean = false;\r\n isOnMobile: boolean = false;\r\n observationRecordSummariesToExport: any[] = [];\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private observationsService: ObservationsService,\r\n private datePipe: DatePipe,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private exportExcelService: ExportExcelService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.columns = [{ field: 'observedBy', header: 'Observer', type: 'text' },\r\n { field: 'observedOn', header: 'Date Observed', type: 'date' },\r\n { field: 'followUpOn', header: 'Followup', type: 'date' },\r\n { field: 'observationTypeString', header: 'Type', type: 'text' },\r\n { field: 'summaryInfo', header: 'Information', type: 'text' },\r\n { field: 'notesAsHtml', header: 'Notes', type: 'html' },\r\n ];\r\n this.exportColumns = [{ field: 'observedBy', header: 'Observer' },\r\n { field: 'observedOn', header: 'Date Observed' },\r\n { field: 'followUpOn', header: 'Followup' },\r\n { field: 'observationType', header: 'Type' },\r\n { field: 'summaryInfo', header: 'Information' },\r\n { field: 'notesAsHtml', header: 'Notes' },\r\n ]\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n visible: this.allowedOperations?.canDelete,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteObservation($event)\r\n }\r\n ]\r\n }\r\n\r\n // viewObservation(observationId: string) {\r\n // this.viewObservationClicked.emit(observationId);\r\n // }\r\n\r\n\r\n createObservation() {\r\n const observation = new Observation({} as IObservation);\r\n this.createObservationClicked.emit(observation as IObservation);\r\n }\r\n\r\n deleteObservation(iObservationSummary?: IObservationSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete the company observation made by ' + iObservationSummary.observedBy + '?',\r\n 'Delete Company Observation?', new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.observationsLoading = true;\r\n this.observationsService.deleteObservation(iObservationSummary?.observationId, iObservationSummary?.observationType, this.companyId).subscribe(result => {\r\n if (result) {\r\n this.observations.forEach(x => {\r\n if (x.observationId === iObservationSummary.observationId) {\r\n this.observations = this.observations.filter(d => d.observationId !== iObservationSummary.observationId);\r\n }\r\n })\r\n this.observationsLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n \r\n viewObservation(iObservationSummary?: IObservationSummary) {\r\n let observationSummary = new ObservationSummary(iObservationSummary);\r\n this.router.navigate([\"/observation-details/\" + observationSummary.observationId])\r\n\r\n }\r\n\r\n //viewObservation(iObservationSummary?: IObservationSummary) {\r\n // const observation = new Observation({\r\n // id: iObservationSummary.observationId,\r\n // summaryInfo: iObservationSummary.summaryInfo,\r\n // notesAsHtml: iObservationSummary.notesAsHtml,\r\n // observedBy: iObservationSummary.observedBy,\r\n // observedOn: iObservationSummary.observedOn,\r\n // followUpOn: iObservationSummary.followUpOn,\r\n // observationType: iObservationSummary.observationType\r\n // } as IObservation);\r\n // this.viewObservationClicked.emit(observation as IObservation);\r\n //}\r\n\r\n editObservation(iObservationSummary?: IObservationSummary) {\r\n const observation = new Observation({\r\n id: iObservationSummary.observationId,\r\n summaryInfo: iObservationSummary.summaryInfo,\r\n notesAsHtml: iObservationSummary.notesAsHtml,\r\n observedBy: iObservationSummary.observedBy,\r\n observedOn: iObservationSummary.observedOn,\r\n followUpOn: iObservationSummary.followUpOn,\r\n observationType: iObservationSummary.observationType\r\n } as IObservation);\r\n this.editObservationClicked.emit(observation as IObservation);\r\n }\r\n exportToExcel() {\r\n this.observationRecordSummariesToExport = [];\r\n this.observations.forEach(element => {\r\n let temporalDivElement = document.createElement(\"div\");\r\n temporalDivElement.innerHTML = element.notesAsHtml;\r\n const tempObject = {\r\n observedBy: element.observedBy,\r\n observedOn: this.datePipe.transform(element.observedOn?.dateTime, 'dd/MM/yyyy'),\r\n followUpOn: this.datePipe.transform(element.followUpOn?.dateTime, 'dd/MM/yyyy'),\r\n observationType: ObservationType[element.observationType],\r\n summaryInfo: element.summaryInfo,\r\n notesAsHtml: temporalDivElement.textContent || temporalDivElement.innerText || \"\"\r\n };\r\n this.observationRecordSummariesToExport.push(tempObject);\r\n });\r\n\r\n this.exportExcelService.exportToExcel(this.observationRecordSummariesToExport, this.exportColumns, this.tableTitle.toString())\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 5\" scrollHeight=\"500px\" dataKey=\"id\" [responsive]=\"true\" [columns]=\"columns\"\r\n [globalFilterFields]=\"['observedOn.dateTime', 'notesAsHtml','summaryInfo','observedBy','followUpOn.dateTime','observationTypeString']\">\r\n \r\n
\r\n
\r\n Please note that if you are adding an observation relating to a particular Training Record, then you should open the training record in first tab and add it there.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ observations.length }}\r\n {{tableTitle}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Observer\r\n \r\n \r\n Date Observed\r\n \r\n \r\n Followup\r\n \r\n \r\n Type\r\n \r\n \r\n\r\n Information\r\n \r\n \r\n\r\n Notes\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {{col.header}}: \r\n \r\n \r\n\r\n \r\n \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, ViewEncapsulation } from '@angular/core';\r\nimport { ObservationsService } from '../../services/observations.service';\r\nimport { Observation, ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { ObservationModalService } from '../../services/observation-modal.service';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { ExportExcelService } from 'src/app/common/services/export-excel.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ObservationSummary } from '../../../domain-model/observation-summary';\r\n\r\n@Component({\r\n selector: 'app-operatives-observations',\r\n templateUrl: './operatives-observations.component.html',\r\n styleUrls: ['./operatives-observations.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OperativesObservationsComponent implements OnInit {\r\n operativeObservations: Array = new Array();\r\n ObservationType: typeof ObservationType = ObservationType;\r\n ObservationTypeString: typeof ObservationTypeString = ObservationTypeString;\r\n selectedObservation: Observation = new Observation({} as IObservation);\r\n companyId = '';\r\n columns: any[];\r\n exportColumns: any[];\r\n observationRecordSummariesToExport: any[] = [];\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private observationsService: ObservationsService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private observationModalService: ObservationModalService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private userService: OurUserService,\r\n private helpService: HelpModalService,\r\n private datePipe: DatePipe, private errorHandlingService: ErrorHandlingService,\r\n private exportExcelService: ExportExcelService) {\r\n }\r\n\r\n selectedOperativeId: string;\r\n selectedDocumentId: string;\r\n selectedTrainingRecordId: string;\r\n observationModalHeading: string;\r\n entityObservationId: string;\r\n operativeObservationLoading: boolean = true;\r\n loggedInUser: IUserInfo;\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.columns = [\r\n { field: 'operativeFirstName', header: 'Operative First Name', type: 'text' },\r\n { field: 'operativeLastName', header: 'Operative Last Name', type: 'text' },\r\n { field: 'observationTypeString', header: 'Type', type: 'text' },\r\n { field: 'observedBy', header: 'Observer', type: 'text' },\r\n { field: 'observedOn', header: 'Date Observed', type: 'date' },\r\n { field: 'followUpOn', header: 'Followup', type: 'date' },\r\n { field: 'summaryInfo', header: 'Information', type: 'text' },\r\n { field: 'notesAsHtml', header: 'Notes', type: 'html' },\r\n ];\r\n this.exportColumns =\r\n [\r\n { field: 'operativeFirstName', header: 'Operative First Name' },\r\n { field: 'operativeLastName', header: 'Operative Last Name' },\r\n { field: 'observationType', header: 'Type' },\r\n { field: 'observedBy', header: 'Observer' },\r\n { field: 'observedOn', header: 'Date Observed' },\r\n { field: 'followUpOn', header: 'Followup' },\r\n { field: 'summaryInfo', header: 'Information' },\r\n { field: 'notesAsHtml', header: 'Notes' },\r\n ];\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n this.observationsService.getAllOperativeObservationsForCompany(this.companyId).subscribe(observationsSummaries => {\r\n observationsSummaries.forEach(x => {\r\n x.observationTypeString = ObservationTypeString[x.observationType];\r\n });\r\n this.operativeObservations = observationsSummaries;\r\n this.operativeObservationLoading = false;\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n // this.companyId = this.route.snapshot.params.companyId;\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteObservation($event)\r\n }\r\n ]\r\n\r\n }\r\n\r\n createObservation() {\r\n\r\n }\r\n\r\n //viewObservation(observationId: string, isEditing: boolean = false) {\r\n // this.operativeObservations.forEach(opObservation => {\r\n // if (opObservation.observationId === observationId) {\r\n // this.observationModalHeading = 'Observation For ' + opObservation?.operativeName;\r\n // this.selectedOperativeId = opObservation.operativeId;\r\n // this.selectedObservation.id = observationId;\r\n // this.selectedObservation.summaryInfo = opObservation.summaryInfo;\r\n // this.selectedObservation.followUpOn = opObservation.followUpOn;\r\n // this.selectedObservation.observationType = opObservation.observationType;\r\n // this.selectedObservation.observedOn = opObservation.observedOn;\r\n // this.selectedObservation.observedBy = opObservation.observedBy;\r\n // this.selectedObservation.notesAsHtml = opObservation.notesAsHtml;\r\n // switch (opObservation.observationType) {\r\n // case ObservationType.Operative: {\r\n // this.entityObservationId = opObservation.operativeObservationId;\r\n // break;\r\n // }\r\n // case ObservationType.OperativeDocument:\r\n // case ObservationType.TrainingRecordDocument: {\r\n // this.entityObservationId = opObservation.documentObservationId;\r\n // this.selectedDocumentId = opObservation.documentId;\r\n // break;\r\n // }\r\n // case ObservationType.TrainingRecord: {\r\n // this.entityObservationId = opObservation.trainingRecordObservationId;\r\n // this.selectedTrainingRecordId = opObservation.trainingRecordId;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // });\r\n\r\n // this.observationModalService.createOrEditObservation(this.selectedObservation, this.observationModalHeading, false).subscribe(observationModalRef => {\r\n // observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n // if (observationResult !== null) {\r\n // switch (observationResult.observationType) {\r\n // case ObservationType.Operative: {\r\n // this.operativeObservationLoading = true;\r\n // this.observationsService.createOrUpdateOperativeObservation(observationResult, this.selectedOperativeId, this.companyId, this.entityObservationId).subscribe(operativeObservation => {\r\n // this.operativeObservations = this.observationsService.updateObservationSummaries(this.operativeObservations, operativeObservation);\r\n // this.operativeObservationLoading = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // case ObservationType.OperativeDocument:\r\n // case ObservationType.TrainingRecordDocument: {\r\n // this.operativeObservationLoading = true;\r\n // this.observationsService.createOrUpdateDocumentObservation(observationResult, this.selectedDocumentId, this.companyId, this.entityObservationId).subscribe(documentObservation => {\r\n // this.operativeObservations = this.observationsService.updateObservationSummaries(this.operativeObservations, documentObservation);\r\n // this.operativeObservationLoading = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // case ObservationType.TrainingRecord: {\r\n // this.operativeObservationLoading = true;\r\n // this.observationsService.createOrUpdateTrainingRecordObservation(observationResult, this.selectedTrainingRecordId, this.companyId, this.entityObservationId).subscribe(trainingRecordObservation => {\r\n // this.operativeObservations = this.observationsService.updateObservationSummaries(this.operativeObservations, trainingRecordObservation);\r\n // this.operativeObservationLoading = false;\r\n // }, () => {\r\n // this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // });\r\n // });\r\n // break;\r\n // }\r\n // }\r\n // observationModalRef.dynamicDialogRef.close();\r\n // }\r\n // });\r\n // });\r\n //}\r\n\r\n viewObservation(iObservationSummary?: IObservationSummary) {\r\n let observationSummary = new ObservationSummary(iObservationSummary);\r\n this.router.navigate([\"/observation-details/\" + observationSummary.observationId])\r\n\r\n }\r\n\r\n deleteObservation(observation: IObservationSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete this observation?',\r\n 'Delete ', new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.operativeObservationLoading = true;\r\n this.observationsService.deleteObservation(observation.observationId, observation.observationType, this.companyId).subscribe(result => {\r\n if (result) {\r\n this.operativeObservations.forEach(x => {\r\n if (x.observationId === observation.observationId) {\r\n this.operativeObservations = this.operativeObservations.filter(d => d.observationId !== observation.observationId);\r\n }\r\n });\r\n this.operativeObservationLoading = false;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n });\r\n // this.observationsService.deleteObservation(observation.observationId,observation.observationType );\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: 'Observations', iconName: 'eye' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n exportToExcel() {\r\n this.observationRecordSummariesToExport = [];\r\n this.operativeObservations.forEach(element => {\r\n let temporalDivElement = document.createElement('div');\r\n temporalDivElement.innerHTML = element.notesAsHtml;\r\n const tempObject = {\r\n operativeFirstName: element.operativeFirstName,\r\n operativeLastName: element.operativeLastName,\r\n observationType: ObservationType[element.observationType],\r\n observedBy: element.observedBy,\r\n observedOn: this.datePipe.transform(element.observedOn?.dateTime, 'dd/MM/yyyy'),\r\n followUpOn: this.datePipe.transform(element.followUpOn?.dateTime, 'dd/MM/yyyy'),\r\n summaryInfo: element.summaryInfo,\r\n notesAsHtml: temporalDivElement.textContent || temporalDivElement.innerText || ''\r\n };\r\n this.observationRecordSummariesToExport.push(tempObject);\r\n });\r\n\r\n this.exportExcelService.exportToExcel(this.observationRecordSummariesToExport, this.exportColumns, 'All Operative Observations');\r\n\r\n }\r\n\r\n openOperativesObservationsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.AllOperativeObservationsHelp);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n

\r\n \r\n All Operative Observations\r\n \r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n 5\" scrollHeight=\"500px\" dataKey=\"observationId\"\r\n [responsive]=\"true\" [columns]=\"columns\"\r\n [globalFilterFields]=\"['operativeName', 'operativeFirstName', 'operativeLastName','observedOn.dateTime', 'notesAsHtml','summaryInfo','observedBy','followUpOn.dateTime','observationTypeString']\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ operativeObservations.length }}\r\n Observations\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Operative First Name\r\n \r\n \r\n \r\n Operative Last Name\r\n \r\n \r\n \r\n Type\r\n \r\n \r\n \r\n Observer\r\n \r\n \r\n \r\n Date Observed\r\n \r\n \r\n \r\n Followup\r\n \r\n \r\n \r\n Information\r\n \r\n \r\n \r\n Notes\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { ObservationTypeString, ObservationType } from 'src/app/domain-model/observation.class';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ObservationSummary } from '../../../domain-model/observation-summary';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-recent-observations-list',\r\n templateUrl: './recent-observations-list.component.html',\r\n styleUrls: ['./recent-observations-list.component.scss']\r\n})\r\n\r\nexport class RecentObservationsListComponent implements OnInit {\r\n @Input() recentObservations: Array;\r\n @Input() allowEdit: boolean = true;\r\n @Input() allowDelete: boolean = true;\r\n\r\n @Output() viewObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() createObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() editObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() deleteObservationClicked: EventEmitter = new EventEmitter();\r\n columns: any[];\r\n ObservationType: typeof ObservationType = ObservationType;\r\n ObservationTypeString: typeof ObservationTypeString = ObservationTypeString;\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private router: Router) { }\r\n\r\n\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.columns = [\r\n { field: 'operativeName', header: 'Owner', type: 'owner' },\r\n { field: 'observationType', header: 'Type', type: 'type' },\r\n { field: 'observedBy', header: 'Observer', type: 'text' },\r\n { field: 'observedOn', header: 'Date Observed', type: 'date' },\r\n { field: 'followUpOn', header: 'Followup', type: 'date' },\r\n\r\n { field: 'summaryInfo', header: 'Information', type: 'text' },\r\n { field: 'notesAsHtml', header: 'Notes', type: 'html' },\r\n ]\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteObservation($event)\r\n }\r\n ]\r\n }\r\n\r\n viewObservation(iObservationSummary?: IObservationSummary) {\r\n let observationSummary = new ObservationSummary(iObservationSummary);\r\n this.router.navigate([\"/observation-details/\" + observationSummary.observationId])\r\n }\r\n\r\n editObservation(observationId: string) {\r\n this.editObservationClicked.emit(observationId);\r\n }\r\n\r\n deleteObservation(observationId: string) {\r\n this.deleteObservationClicked.emit(observationId);\r\n }\r\n}\r\n","
\r\n 5\" scrollHeight=\"500px\" dataKey=\"observationId\" [responsive]=\"true\" [columns]=\"columns\"\r\n [globalFilterFields]=\"['operativeName','companyName', 'observedOn.dateTime', 'notesAsHtml','summaryInfo','observedBy','followUpOn.dateTime','observationType']\">\r\n \r\n \r\n \r\n Owner\r\n \r\n \r\n \r\n Type\r\n \r\n \r\n \r\n Observer\r\n \r\n \r\n \r\n Date Observed\r\n \r\n \r\n \r\n Followup\r\n \r\n \r\n \r\n Information\r\n \r\n \r\n \r\n Notes\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \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 { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ObservationsListComponent } from './components/observations-list/observations-list.component'\r\nimport { CommonsModule } from '../common/commons.module';\r\nimport { DocumentsModule } from \"../documents/documents.module\";\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { ObservationFormComponent } from './components/observation-form/observation-form.component';\r\nimport { CreateOrEditObservationModalComponent } from './components/create-or-edit-observation-modal/create-or-edit-observation-modal.component';\r\nimport { CompanyObservationsComponent } from './components/company-observations/company-observations.component';\r\nimport { OperativesObservationsComponent } from './components/operatives-observations/operatives-observations.component'\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CardModule } from 'primeng/card';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { ButtonModule } from 'primeng/button';;\r\nimport { RecentObservationsListComponent } from './components/recent-observations-list/recent-observations-list.component';\r\nimport { ObservationDetailsComponent } from './components/observation-details/observation-details.component'\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { ObservationDocumentDetailsPageComponent } from './components/observation-document-details-page/observation-document-details-page.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ObservationsListComponent,\r\n ObservationFormComponent,\r\n CreateOrEditObservationModalComponent,\r\n CompanyObservationsComponent,\r\n OperativesObservationsComponent,\r\n RecentObservationsListComponent,\r\n ObservationDetailsComponent,\r\n ObservationDocumentDetailsPageComponent\r\n ],\r\n\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FontAwesomeModule,\r\n TableModule,\r\n InputTextModule,\r\n RouterModule,\r\n DocumentsModule,\r\n CommonsModule,\r\n FormsModule,\r\n SharedModule,\r\n CardModule,\r\n InputTextareaModule,\r\n QuillModule,\r\n ButtonModule,\r\n RippleModule,\r\n TabViewModule\r\n\r\n ],\r\n\r\n exports: [ObservationFormComponent, ObservationsListComponent, RecentObservationsListComponent, ObservationDetailsComponent, ObservationDocumentDetailsPageComponent]\r\n})\r\n\r\nexport class ObservationModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { BaseApiService } from '../../common/base-api.service';\r\nimport { HttpClient, HttpEvent, HttpRequest } from '@angular/common/http';\r\nimport { SettingsProviderService } from '../../common/settings-provider.service';\r\nimport { Observable, of } from 'rxjs';\r\nimport { IObservationDocumentSummary } from '../../message-models/observation-document-summary.interface';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ObservationDocumentService extends BaseApiService {\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'ObservationDocument');\r\n }\r\n\r\n getAllDocumentSummariesForObservation(companyId: string, observationId?: string, includeExpired?: boolean): Observable {\r\n return this.post('GetAllDocumentSummariesForObservation', { observationId: observationId, companyId: companyId, includeExpired});\r\n }\r\n\r\n getObservationDocumentSummary(companyId: string, documentId: string): Observable {\r\n return this.post('GetObservationDocumentSummary', {companyId: companyId, documentId: documentId});\r\n }\r\n\r\n getObservationDocumentForViewOrDownload(documentId: string): Observable> {\r\n return this.http.request(new HttpRequest(\r\n 'POST',\r\n this.baseUrl + 'GetObservationDocumentForViewOrDownload',\r\n {documentId},\r\n {\r\n reportProgress: true,\r\n responseType: 'blob'\r\n }));\r\n }\r\n\r\n createOrUpdateObservationDocument(ObservationDocumentUpload: any): Observable {\r\n return this.post('CreateOrUpdateObservationDocument', ObservationDocumentUpload);\r\n }\r\n\r\n deleteObservationDocument(documentId: string, companyId: string): Observable {\r\n return this.post('DeleteObservationDocument', {documentId, companyId});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IObservation } from '../../message-models/observation.interface';\r\nimport { Observation, ObservationType } from '../../domain-model/observation.class';\r\nimport { CreateOrEditObservationModalComponent } from '../components/create-or-edit-observation-modal/create-or-edit-observation-modal.component';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EcaModalOptions } from '../../shared/models/yesno-modal-options.class';\r\nimport { IModalOptions } from '../../common/modals/modal-options.interface';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ObservationModalService {\r\n observationModalRef: IEcaDialogRef;\r\n\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) { }\r\n\r\n createOrEditObservation(observation?: IObservation,\r\n heading?: string,\r\n isEditing?: boolean,\r\n observationType?: ObservationType,\r\n showSaveAndUploadButton?: boolean,\r\n options?: IModalOptions\r\n ): Observable {\r\n if (this.observationModalRef) {\r\n this.observationModalRef.dynamicDialogRef.close();\r\n }\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += \" modal-eca-success\";\r\n }\r\n if (!observation) {\r\n observation = new Observation({} as IObservation);\r\n observation.observationType = observationType;\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n observation: observation,\r\n modalHeading: heading,\r\n isEditing: isEditing,\r\n showSaveAndUploadButton: showSaveAndUploadButton\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.observationModalRef = this.ecaDynamicModalService.openDialog(CreateOrEditObservationModalComponent, config);\r\n return of(this.observationModalRef);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {Observable, of} from 'rxjs';\r\nimport {IObservation} from '../../message-models/observation.interface';\r\nimport {OperativeObservation} from '../../domain-model/operative-observation.class';\r\nimport {IOperativeObservation} from '../../message-models/operative-observation.interface';\r\nimport {IDocumentObservation} from '../../message-models/document-observation.interface';\r\nimport {ITrainingRecordObservation} from '../../message-models/training-record-observation.interface';\r\nimport {ICompanyObservation} from '../../message-models/company-observation.interface';\r\nimport {ObservationType, ObservationTypeString} from '../../domain-model/observation.class';\r\nimport {DocumentObservation} from '../../domain-model/document-observation.class';\r\nimport {TrainingRecordObservation} from '../../domain-model/training-record-observation.class';\r\nimport {CompanyObservation} from '../../domain-model/company-observation.classs';\r\n\r\nimport {IObservationSummary} from '../../message-models/observation-summary.interface';\r\nimport {switchMap} from 'rxjs/operators';\r\nimport { IObservationDocumentSummary } from '../../message-models/observation-document-summary.interface';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ObservationsService extends BaseApiService {\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Observations');\r\n }\r\n\r\n getAllObservations(): Observable {\r\n return this.http.post(this.settingsProvider.baseApiUrl + '', null);\r\n }\r\n\r\n getObservationById(observationId: string): Observable {\r\n return this.post('GetObservationById', { observationId : observationId });\r\n }\r\n\r\n getObservationSummaryById(observationId: string): Observable {\r\n return this.post('GetObservationSummaryById', { observationId: observationId });\r\n }\r\n\r\n createOrUpdateOperativeObservation(newObservation: IObservation, operativeId: string,companyId: string, operativeObservationId?: string) {\r\n const observation = newObservation as IObservation;\r\n const operativeObservation = new OperativeObservation({\r\n operativeId: operativeId,\r\n observation: observation,\r\n observationId: observation.id,\r\n } as IOperativeObservation);\r\n if(operativeObservationId){\r\n operativeObservation.id = operativeObservationId;\r\n }\r\n operativeObservation.observation.observationType = ObservationType.Operative;\r\n return this.post('CreateOrUpdateOperativeObservation', {companyId: companyId,operativeObservationInfo: operativeObservation as IOperativeObservation});\r\n }\r\n\r\n getOperativeObservations(operativeId: string, companyId: string): Observable {\r\n return this.post('GetOperativeObservations', {operativeId: operativeId, companyId: companyId});\r\n }\r\n\r\n getAllOperativeObservationsForCompany(companyId: string): Observable{\r\n return this.post('GetAllOperativeObservationsForCompany',{companyId: companyId});\r\n }\r\n\r\n deleteObservation(observationId: string, observationType: ObservationType, companyId: string): Observable{\r\n\r\n switch (observationType){\r\n case ObservationType.Operative: {\r\n return this.deleteOperativeObservation(observationId,companyId).pipe(switchMap(result => {\r\n return of(result);\r\n }));\r\n }\r\n case ObservationType.OperativeDocument: case ObservationType.TrainingRecordDocument: case ObservationType.CompanyDocument : {\r\n return this.deleteDocumentObservation(observationId,companyId).pipe(switchMap(result => {\r\n return of(result);\r\n }));\r\n }\r\n case ObservationType.TrainingRecord: {\r\n return this.deleteTrainingRecordObservation(observationId,companyId).pipe(switchMap(result => {\r\n return of(result);\r\n }));\r\n }\r\n case ObservationType.Company: {\r\n return this.deleteCompanyObservation(observationId,companyId).pipe(switchMap(result => {\r\n return of(result);\r\n }));\r\n }\r\n }\r\n }\r\n\r\n deleteCompanyObservation(observationId: string, companyId: string): Observable {\r\n return this.post('DeleteCompanyObservation',{observationId: observationId, companyId: companyId});\r\n }\r\n\r\n deleteOperativeObservation(observationId: string, companyId: string): Observable {\r\n return this.post('DeleteOperativeObservation',{observationId: observationId, companyId: companyId});\r\n }\r\n\r\n deleteTrainingRecordObservation(observationId: string, companyId: string): Observable {\r\n return this.post('DeleteTrainingRecordObservation',{observationId: observationId, companyId: companyId});\r\n }\r\n\r\n deleteDocumentObservation(observationId: string, companyId: string): Observable {\r\n return this.post('DeleteDocumentObservation',{observationId: observationId, companyId: companyId});\r\n }\r\n\r\n createOrUpdateDocumentObservation(newObservation: IObservation, documentId: string, companyId: string, documentObservationId?: string) {\r\n const observation = newObservation as IObservation;\r\n let documentObservation = new DocumentObservation({\r\n documentId: documentId,\r\n observation: observation,\r\n observationId: observation.id,\r\n } as IDocumentObservation);\r\n if(documentObservationId){\r\n documentObservation.id = documentObservationId;\r\n }\r\n return this.post('CreateOrUpdateDocumentObservation',{companyId: companyId,documentObservationInfo: documentObservation as IDocumentObservation } );\r\n }\r\n\r\n getDocumentObservations(documentId: string, companyId: string): Observable {\r\n return this.post('GetDocumentObservations', {documentId: documentId,companyId: companyId});\r\n }\r\n\r\n createOrUpdateTrainingRecordObservation(newObservation: IObservation, trainingRecordId: string,companyId: string, trainingRecordObservationId?: string) {\r\n const observation = newObservation as IObservation;\r\n let trainingRecordObservation = new TrainingRecordObservation({\r\n trainingRecordId: trainingRecordId,\r\n observation: observation,\r\n observationId: observation.id,\r\n } as ITrainingRecordObservation);\r\n if(trainingRecordObservationId){\r\n trainingRecordObservation.id = trainingRecordObservationId;\r\n }\r\n trainingRecordObservation.observation.observationType = ObservationType.TrainingRecord;\r\n return this.post('CreateOrUpdateTrainingRecordObservation',{companyId: companyId,trainingRecordObservationInfo: trainingRecordObservation as ITrainingRecordObservation } );\r\n }\r\n\r\n getTrainingRecordObservations(trainingRecordId: string, companyId: string ): Observable {\r\n return this.post('GetTrainingRecordObservations', {trainingRecordId: trainingRecordId,companyId: companyId});\r\n }\r\n\r\n createOrUpdateCompanyObservation(newObservation: IObservation, companyId: string, companyObservationId?: string) {\r\n const observation = newObservation as IObservation;\r\n observation.observationType = ObservationType.Company;\r\n let companyObservation = new CompanyObservation({\r\n companyId: companyId,\r\n observation: observation,\r\n observationId: observation.id,\r\n\r\n } as ICompanyObservation);\r\n if(companyObservationId){\r\n companyObservation.id = companyObservationId;\r\n }\r\n companyObservation.observation.observationType= ObservationType.Company;\r\n return this.post('CreateOrUpdateCompanyObservation', companyObservation as ICompanyObservation);\r\n }\r\n\r\n getCompanyObservations(companyId: string): Observable {\r\n return this.post('GetCompanyObservations', {companyId: companyId});\r\n }\r\n \r\n getRecentObservationsForCompany(companyId: string): Observable {\r\n return this.post('GetRecentObservationsForCompany', {companyId: companyId});\r\n }\r\n\r\n updateObservationSummaries(operativeObservationsSummary: Array , observationEntity: any, companyName?: string) : Array{\r\n const exists = operativeObservationsSummary.findIndex(x => x.observationId === observationEntity.observationId) > -1;\r\n if(exists){\r\n operativeObservationsSummary.forEach(s=>{\r\n if(s.observationId === observationEntity.observationId){\r\n s.observationId = observationEntity.observationId;\r\n s.summaryInfo = observationEntity.observation.summaryInfo;\r\n s.notesAsHtml = observationEntity.observation.notesAsHtml;\r\n s.observedBy = observationEntity.observation.observedBy;\r\n s.observedOn = observationEntity.observation.observedOn;\r\n s.followUpOn = observationEntity.observation.followUpOn;\r\n s.observationType = observationEntity.observation.observationType;\r\n }\r\n })\r\n } else {\r\n let observationSummary = {\r\n observationId: observationEntity.observationId,\r\n summaryInfo: observationEntity.observation.summaryInfo,\r\n notesAsHtml: observationEntity.observation.notesAsHtml,\r\n observedBy: observationEntity.observation.observedBy,\r\n observedOn: observationEntity.observation.observedOn,\r\n followUpOn: observationEntity.observation.followUpOn,\r\n observationType: observationEntity.observation.observationType,\r\n operativeName: observationEntity.operativeName,\r\n companyName: companyName\r\n } as IObservationSummary;\r\n switch (observationEntity.observation.observationType) {\r\n case ObservationType.Operative:\r\n observationSummary.operativeObservationId = observationEntity.id;\r\n observationSummary.observationTypeString = ObservationTypeString[ObservationType.Operative];\r\n observationSummary.observationType = ObservationType.Operative;\r\n break;\r\n case ObservationType.TrainingRecordDocument:\r\n observationSummary.observationType = ObservationType.TrainingRecordDocument;\r\n observationSummary.observationTypeString = ObservationTypeString[ObservationType.TrainingRecordDocument];\r\n observationSummary.documentObservationId = observationEntity.id;\r\n break;\r\n case ObservationType.CompanyDocument:\r\n observationSummary.observationTypeString = ObservationTypeString[ObservationType.CompanyDocument];\r\n observationSummary.observationType = ObservationType.CompanyDocument;\r\n observationSummary.documentObservationId = observationEntity.id;\r\n break;\r\n case ObservationType.OperativeDocument:\r\n observationSummary.observationTypeString = ObservationTypeString[ObservationType.OperativeDocument];\r\n observationSummary.observationType = ObservationType.OperativeDocument;\r\n observationSummary.documentObservationId = observationEntity.id;\r\n break;\r\n case ObservationType.Company:\r\n observationSummary.observationTypeString = ObservationTypeString[ObservationType.Company];\r\n observationSummary.observationType = ObservationType.Company;\r\n observationSummary.companyObservationId = observationEntity.id;\r\n break;\r\n case ObservationType.TrainingRecord:\r\n observationSummary.observationTypeString = ObservationTypeString[ObservationType.TrainingRecord];\r\n observationSummary.observationType = ObservationType.TrainingRecord;\r\n observationSummary.trainingRecordObservationId = observationEntity.id;\r\n break;\r\n }\r\n operativeObservationsSummary?.push(observationSummary);\r\n }\r\n return operativeObservationsSummary;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ICompanyEngagementHistory } from '../../../message-models/company-engagement-history.interface';\r\nimport { IRiskInfo } from '../../../message-models/risk-info.interface';\r\nimport { IJobLevelInfo } from '../../../message-models/job-level.interface';\r\nimport { IJobTitleInfo } from '../../../message-models/job-title.interface';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { ElectricalWorkType } from '../../../message-models/electrical-work-type';\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { CompanyEngagementHistory } from '../../../message-models/company-engagement-history.class';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\n\r\n@Component({\r\n selector: 'app-engagement-history-editor',\r\n templateUrl: './engagement-history-editor.component.html',\r\n styleUrls: ['./engagement-history-editor.component.scss']\r\n})\r\nexport class EngagementHistoryEditorComponent implements OnInit {\r\n @Input() isEditing: boolean = false;\r\n @Input() engagement: CompanyEngagementHistory;\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n @Input() allBusinessUnits: IBusinessUnitInfo[] = [];\r\n @Input() allJobTitles: IJobTitleInfo[] = [];\r\n @Input() allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allEmploymentStatuses: IEmploymentStatus[] = [];\r\n @Input() saveAttempted: boolean = false;\r\n\r\n //Filtered lists based on current state\r\n filteredJobLevels: IJobLevelInfo[] = [];\r\n filteredJobTitles: IJobTitleInfo[] = [];\r\n filteredRisks: IRiskInfo[] = [];\r\n\r\n //Selected items\r\n selectedBusinessUnitId: string;\r\n selectedOperativeTypeId: string;\r\n selectedJobTitleId: string;\r\n selectedJobLevelId: string;\r\n selectedRiskId: string;\r\n defaultJobJevelId: string;\r\n\r\n //Used to hold changes to engagement\r\n tempEngagement: CompanyEngagementHistory = new CompanyEngagementHistory;\r\n businessUnitHelpText: string;\r\n isNonElectricalJobRole: boolean;\r\n isQsRole: boolean;\r\n operativeMaxDate: Date;\r\n operativeMinDate: Date;\r\n showJobTitleUpdate: boolean;\r\n showJobLevelUpdate: boolean;\r\n showRiskUpdate: boolean;\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.engagement && this.engagement.from) {\r\n this.disableDatesPriorSelected(this.engagement?.from);\r\n }\r\n if (!this.engagement.id || this.engagement.id === consts.emptyGuid) {\r\n const defaultEmployment = this.allEmploymentStatuses.find(c => c.isDefault === true);\r\n if (defaultEmployment) {\r\n this.engagement.employmentStatusId = defaultEmployment.id;\r\n }\r\n }\r\n\r\n this.tempEngagement = this.engagement;\r\n this.selectedBusinessUnitId = this.allBusinessUnits.find(f => f.id === this.engagement?.businessUnitId)?.id;\r\n this.selectedOperativeTypeId = this.allOperativeTypes.find(f => f.id === this.engagement?.operativeTypeId)?.id;\r\n this.selectedJobTitleId = this.allJobTitles.find(f => f.id === this.engagement?.jobTitleId)?.id;\r\n this.selectedJobLevelId = this.allJobLevels.find(f => f.id == this.engagement?.jobLevelId)?.id;\r\n this.selectedRiskId = this.allRisks.find(f => f.id == this.engagement?.riskId)?.id;\r\n\r\n this.updateJobTitles(this.engagement.operativeTypeId, false);\r\n this.businessUnitHelpText = this.allBusinessUnits?.length < 1 ? \"You have no Business Units defined. This field is optional but if you wish to create some business units then please go to the Business Units tab on the settings page.\" : \"Choose the Business Unit that best suits the Operatives current role.\";\r\n }\r\n\r\n disableDatesPriorSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.operativeMinDate = new Date(selectedDate.setDate(selectedDate.getDate() + 1));\r\n }\r\n\r\n disableDatesPostSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.operativeMaxDate = new Date(selectedDate.setDate(selectedDate.getDate() - 1));\r\n }\r\n\r\n updateJobTitles(operativeTypeId: string, showUpdateAlert: boolean) {\r\n this.tempEngagement.operativeTypeId = operativeTypeId;//ensure correct operative typeid\r\n if (this.tempEngagement.operativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n this.filteredJobTitles = this.allCompanyJobTitles;\r\n this.selectedJobTitleId = this.allCompanyJobTitles.find(f => f.id == this.tempEngagement.jobTitleId)?.id;\r\n if (!this.selectedJobTitleId) { //job title not found in list so default to the first in the list\r\n this.selectedJobTitleId = this.allCompanyJobTitles[0].id;\r\n this.tempEngagement.jobTitleId = this.selectedJobTitleId;\r\n }\r\n }\r\n else {\r\n this.filteredJobTitles = this.allJobTitles.filter(f => f.operativeTypeId == this.tempEngagement.operativeTypeId);\r\n this.selectedJobTitleId = this.filteredJobTitles.find(f => f.id === this.tempEngagement.jobTitleId)?.id;\r\n\r\n if (!this.selectedJobTitleId) { //job title not found in list so default to the first in the list\r\n this.selectedJobTitleId = this.filteredJobTitles[0].id;\r\n this.tempEngagement.jobTitleId = this.selectedJobTitleId;\r\n }\r\n }\r\n //Complete other tasks\r\n this.showJobTitleUpdate = showUpdateAlert;\r\n this.updateJobLevel(this.tempEngagement.jobTitleId, showUpdateAlert);\r\n }\r\n\r\n updateJobLevel(jobTitleId: string, showUpdateAlert: boolean) {\r\n this.showJobLevelUpdate = showUpdateAlert;\r\n this.tempEngagement.jobTitleId = jobTitleId;\r\n this.isQsRole = this.filteredJobTitles.find(d => d.id === jobTitleId)?.electricalWorkType == ElectricalWorkType.QualifiedSupervisor;\r\n this.isNonElectricalJobRole = this.filteredJobTitles.find(d => d.id === jobTitleId)?.electricalWorkType == ElectricalWorkType.NonElectrical;\r\n this.defaultJobJevelId = this.filteredJobTitles.find(d => d.id === jobTitleId)?.defaultJobLevelId;\r\n\r\n if (this.isNonElectricalJobRole) {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.index === 0);\r\n }\r\n else if (this.isQsRole) {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.id == this.defaultJobJevelId);\r\n }\r\n else {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.operativeTypeId == this.tempEngagement.operativeTypeId).sort((a, b) => a.index - b.index);\r\n }\r\n this.selectedJobLevelId = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId)?.id;\r\n\r\n //job level not found so set to default value for the selected job title\r\n if (!this.selectedJobLevelId) {\r\n this.selectedJobLevelId = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId)?.id;\r\n }\r\n this.tempEngagement.jobLevelId = this.selectedJobLevelId;\r\n this.updateRisk(this.tempEngagement.jobLevelId, showUpdateAlert);\r\n }\r\n\r\n updateRisk(jobLevelId: string, showUpdateAlert: boolean) {\r\n this.showRiskUpdate = showUpdateAlert;\r\n this.tempEngagement.jobLevelId = jobLevelId;\r\n if (this.isNonElectricalJobRole) {\r\n this.filteredRisks = this.allRisks.filter(f => f.index === 0);\r\n }\r\n else {\r\n this.filteredRisks = this.allRisks.filter(f => f.operativeTypeId == this.tempEngagement.operativeTypeId).sort((a, b) => a.index - b.index);\r\n }\r\n this.selectedRiskId = this.filteredRisks.find(x => x.id === this.tempEngagement.riskId)?.id;\r\n //risk not found so set to first value in filtered list\r\n if (!this.selectedRiskId) {\r\n this.selectedRiskId = this.filteredRisks[0].id;\r\n }\r\n this.tempEngagement.riskId = this.selectedRiskId;\r\n } \r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IOperative } from \"../../../message-models/operative.interface\";\r\nimport { ICompanyEngagementHistory } from \"../../../message-models/company-engagement-history.interface\";\r\nimport { IJobTitleInfo } from \"../../../message-models/job-title.interface\";\r\nimport { IRiskInfo } from \"../../../message-models/risk-info.interface\";\r\nimport { IJobLevelInfo } from \"../../../message-models/job-level.interface\";\r\nimport { CompanyEngagementHistory } from \"../../../message-models/company-engagement-history.class\";\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\n\r\n@Component({\r\n selector: 'app-engagement-history-modal',\r\n templateUrl: './engagement-history-modal.component.html',\r\n styleUrls: ['./engagement-history-modal.component.scss']\r\n})\r\nexport class EngagementHistoryModalComponent implements OnInit {\r\n @Input() heading: string = \"Company Role Editor\";\r\n @Input() editing: boolean = false;\r\n @Input() engagement: ICompanyEngagementHistory;\r\n\r\n @Input() allJobTitles: IJobTitleInfo[] = [];\r\n @Input() allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n @Input() allBusinessUnits: IBusinessUnitInfo[] = [];\r\n @Input() allEmploymentStatuses: IEmploymentStatus[] = [];\r\n\r\n @Input() operative: IOperative;\r\n saveAttempted: boolean = false;\r\n\r\n @Output() saveEngagementClicked: EventEmitter = new EventEmitter();\r\n @Output() cancelEngagementClicked: EventEmitter = new EventEmitter();\r\n showingHelp: boolean = false;\r\n\r\n constructor(public config: DynamicDialogConfig) { }\r\n\r\n ngOnInit(): void {\r\n if (this.config.data) {\r\n this.heading = this.config.data.heading;\r\n this.allJobTitles = this.config.data.allJobTitles;\r\n this.allCompanyJobTitles = this.config.data.allCompanyJobTitles;\r\n this.allJobLevels = this.config.data.allJobLevels;\r\n this.allRisks = this.config.data.allRisks;\r\n this.allOperativeTypes = this.config.data.allOperativeTypes;\r\n this.allBusinessUnits = this.config.data.allBusinessUnits;\r\n this.allEmploymentStatuses = this.config.data.allEmploymentStatuses;\r\n this.editing = this.config.data.editing;\r\n this.engagement = this.config.data.engagement;\r\n };\r\n }\r\n\r\n cancelClicked() {\r\n this.editing = false;\r\n this.cancelEngagementClicked.emit();\r\n }\r\n\r\n editEngagement() {\r\n this.editing = true;\r\n }\r\n\r\n saveEngagement() {\r\n this.saveAttempted = true;\r\n\r\n let engagement = new CompanyEngagementHistory(this.engagement);\r\n if (!engagement.isValid)\r\n return;\r\n\r\n this.saveEngagementClicked.emit(this.engagement);\r\n this.editing = false;\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

An operative may work for you on various projects (electrotechnical work installations) and they may also progress in skills and change Job Roles.

\r\n

On this screen, you can record the operative's current role with the company and enter the date that this new role is effective from in the Start Date input. If the role is continuing you can leave the End Date input empty.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IAllowedOperations } from '../../../users/models/userInfo.interface';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { Router } from '@angular/router';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ExportExcelService } from '../../../common/services/export-excel.service';\r\nimport { DocumentEntityType, DocumentEntityTypeString } from '../../../message-models/document-entity-type.enum';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-operative-details-documents-list',\r\n templateUrl: './operative-details-documents-list.component.html',\r\n styleUrls: ['./operative-details-documents-list.component.scss']\r\n})\r\n\r\nexport class OperativeDetailsDocumentsListComponent implements OnInit {\r\n documentEntityType = DocumentEntityType;\r\n @Input() showTableCaption: boolean;\r\n @Input() showHeaderText = true;\r\n @Input() showCount = false;\r\n @Input() showRowControllerButtons: boolean;\r\n @Input() headerText = 'Operative Documents';\r\n @Input() addDocumentButtonText = 'Add';\r\n @Input() showAddDocumentButton = true;\r\n @Input() showWarningMessage: boolean = false;\r\n isOnMobile = false;\r\n @Input() allowedOperations: IAllowedOperations;\r\n DocumentEntityTypeString: typeof DocumentEntityTypeString = DocumentEntityTypeString;\r\n @Input() operativeDocuments: Array = new Array();\r\n @Output() openDocument: EventEmitter = new EventEmitter();\r\n @Output() editDocument: EventEmitter = new EventEmitter();\r\n @Output() downloadDocument: EventEmitter = new EventEmitter();\r\n @Output() deleteDocument: EventEmitter = new EventEmitter();\r\n @Output() viewDocument: EventEmitter = new EventEmitter();\r\n @Output() addDocument: EventEmitter = new EventEmitter();\r\n @Output() addObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() refreshDocumentsRequested: EventEmitter = new EventEmitter();\r\n\r\n DocumentSummariesToExport: any[] = [];\r\n columns: any[];\r\n exportColumns: any[];\r\n expiredFilter = { includeExpired: false };\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private router: Router, private datePipe: DatePipe, private exportExcelService: ExportExcelService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.columns =\r\n [{ field: 'entityType', header: 'Type', type: 'entityTypeString' },\r\n { field: 'documentType', header: 'Document Type', type: 'text' },\r\n { field: 'originalFilename', header: 'Original Filename', type: 'text' },\r\n { field: 'documentCreationDate', header: 'Created On', type: 'date' },\r\n { field: 'expiryDate', header: 'Expires On', type: 'date' },\r\n { field: 'reviewDate', header: 'Review Due On', type: 'date' },\r\n { field: 'totalObservations', header: 'Observations', type: 'text' },\r\n ];\r\n this.exportColumns = [\r\n { field: 'entityTypeString', header: 'Type', type: 'text' },\r\n { field: 'operativeFullName', header: 'Operative Full Name', type: 'link' },\r\n { field: 'documentType', header: 'Document Type', type: 'text' },\r\n { field: 'originalFilename', header: 'Original Filename', type: 'text' },\r\n { field: 'documentCreationDate', header: 'Created On', type: 'date' },\r\n { field: 'expiryDate', header: 'Expires On', type: 'date' },\r\n { field: 'reviewDate', header: 'Review Due On', type: 'date' },\r\n { field: 'totalObservations', header: 'Observations', type: 'text' },\r\n ];\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Preview',\r\n icon: 'fas fa-search',\r\n state: { 'contextLogic': 'canPreviewDocument' },\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openDocumentClicked($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadDocumentClicked($event)\r\n },\r\n {\r\n label: 'Add Observation',\r\n icon: 'fas fa-eye',\r\n visible: this.showRowControllerButtons,\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.addObservationToADocumentClicked($event)\r\n },\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n visible: this.allowedOperations?.canDelete,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteDocumentClicked($event)\r\n }\r\n ]\r\n }\r\n\r\n openDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.openDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n deleteDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.deleteDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n downloadDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.downloadDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n editDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.editDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n addDocumentClicked() {\r\n this.addDocument.emit();\r\n }\r\n\r\n viewDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n if (operativeDocumentSummary.entityType === DocumentEntityType.employedPerson) {\r\n this.router.navigate(['/operative-document/', operativeDocumentSummary.documentId]);\r\n\r\n } else if (operativeDocumentSummary.entityType === DocumentEntityType.trainingRecord) {\r\n this.router.navigate(['/training-record-document/', operativeDocumentSummary.documentId]);\r\n }\r\n else if (operativeDocumentSummary.entityType === DocumentEntityType.observation) {\r\n this.router.navigate(['/observation-document/', operativeDocumentSummary.documentId]);\r\n }\r\n }\r\n\r\n expiredFilterChanged() {\r\n this.refreshDocumentsRequested.emit(this.expiredFilter.includeExpired);\r\n }\r\n\r\n exportToExcel() {\r\n this.DocumentSummariesToExport = [];\r\n this.operativeDocuments.forEach(element => {\r\n const tempObject = {\r\n entityTypeString: element.entityTypeString,\r\n operativeFullName: element.operativeFullName,\r\n documentType: element.documentType,\r\n originalFilename: element.originalFilename,\r\n documentCreationDate: this.datePipe.transform(element.documentCreationDate?.dateTime, 'dd/MM/yyyy'),\r\n reviewDate: this.datePipe.transform(element.reviewDate?.dateTime, 'dd/MM/yyyy'),\r\n expiryDate: this.datePipe.transform(element.expiryDate?.dateTime, 'dd/MM/yyyy'),\r\n totalObservations: element.totalObservations\r\n };\r\n this.DocumentSummariesToExport.push(tempObject);\r\n });\r\n this.exportExcelService.exportToExcel(this.DocumentSummariesToExport, this.exportColumns, 'AllOperativeDocuments');\r\n }\r\n\r\n addObservationToADocumentClicked(entityDocument: IDocumentSummaryInfo) {\r\n this.addObservationClicked.emit(entityDocument);\r\n }\r\n}\r\n","
\r\n
\r\n 5\" scrollHeight=\"500px\"\r\n [globalFilterFields]=\"['documentType', 'entityTypeString','operativeFullName','originalFilename','documentCreationDate.dateTime','expiryDate.dateTime',\r\n 'reviewDate.dateTime', 'totalObservations']\" [responsive]=\"true\" [columns]=\"columns\">\r\n \r\n \r\n
\r\n
\r\n
\r\n Please note that if you are adding a document relating to a particular Training Record, then you should\r\n open the training record in first tab and add it there.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ operativeDocuments.length }}\r\n {{headerText}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \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 \r\n \r\n Document Type\r\n \r\n \r\n \r\n Original Filename\r\n \r\n \r\n \r\n Created On\r\n \r\n \r\n \r\n Expires On\r\n \r\n \r\n \r\n Review Due On\r\n \r\n \r\n \r\n Observations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \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 { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { OperativeInfo } from 'src/app/domain-model/operative-info.class';\r\nimport { OperativesService } from 'src/app/operatives/services/operatives.service';\r\nimport { ListDataService } from 'src/app/services/list-data.service';\r\nimport { IRiskInfo } from 'src/app/message-models/risk-info.interface';\r\nimport { IJobTitleInfo } from 'src/app/message-models/job-title.interface';\r\nimport { IJobLevelInfo } from 'src/app/message-models/job-level.interface';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { OperativeDocumentService } from '../../services/operative-document.service';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { TrainingRecordModalService } from '../../../training-records/services/training-record-modal.service';\r\nimport { TrainingRecordsService } from '../../../training-records/services/training-records.service';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { Observation, ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { ITrainingRecord } from '../../../message-models/training-record.interface';\r\nimport { TrainingRecord } from '../../../domain-model/training-record.class';\r\nimport { BreadcrumbService } from 'xng-breadcrumb';\r\nimport { ITrainingRecordSummary } from '../../../message-models/training-record-summary.interface';\r\nimport { EngagementModalService } from '../../services/engagement-modal.service';\r\nimport { CompanyEngagementHistory } from '../../../message-models/company-engagement-history.class';\r\nimport { ICompanyEngagementHistory } from '../../../message-models/company-engagement-history.interface';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { RiskHelpModalService } from '../../../services/risk-help-modal.service';\r\nimport { IRiskMatrixEntry } from '../../../message-models/risk-matrix-entry.interface';\r\nimport { ExtendedJobLevel } from '../../../message-models/extended-job-level.class';\r\nimport { JobLevelInfo } from '../../../message-models/job-level.class';\r\nimport { ExtendedRiskInfo } from '../../../message-models/extended-risk-info.class';\r\nimport { RiskInfo } from '../../../message-models/risk-info.class';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OperativeModalService } from '../../services/operative-modal.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IAllowedOperations, IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { IOperative } from '../../../message-models/operative.interface';\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { TrainingRecordDocumentService } from 'src/app/training-records/services/training-record-document.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { TrainingTypeService } from '../../../training-records/services/training-type.service';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { ElectricalWorkType } from '../../../message-models/electrical-work-type';\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { DegreeOfSupervisionString } from '../../../message-models/risk-matrix-level.enum';\r\nimport { JobTitleInfo } from '../../../message-models/job-title.class';\r\nimport { IOperativeTypeInfo } from 'src/app/message-models/operative-type.interface';\r\nimport { OperativeTypeInfo } from '../../../message-models/operative-type.class';\r\nimport { ObservationDocumentService } from '../../../observations/services/observation-document.service';\r\nimport { CompanyJobRoleService } from '../../../setting/job-role/services/company-job-role.service';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { BusinessUnitInfo } from '../../../message-models/business-unit.class';\r\nimport { CompanyJobTitle } from '../../../message-models/company-job-title.class';\r\n\r\n@Component({\r\n selector: 'app-operative-details',\r\n templateUrl: './operative-details.component.html',\r\n styleUrls: ['./operative-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OperativeDetailsComponent implements OnInit, OnDestroy {\r\n @ViewChild('opDetailsContainerComponent') opDetailsContainerComponent: DetailContainerComponent;\r\n @ViewChild('opRiskContainer') opRiskContainer: DetailContainerComponent;\r\n\r\n operativeDocuments: IDocumentSummaryInfo[] = [];\r\n CONSTANTS: typeof consts = consts;\r\n selectedTrainingRecordId: string | '00000000-0000-0000-0000-000000000000';\r\n selectedDocumentId: string | '00000000-0000-0000-0000-000000000000';\r\n savedObservationId: string | '00000000-0000-0000-0000-000000000000';\r\n operative: OperativeInfo = new OperativeInfo(null);\r\n operativeTrainingRecords: ITrainingRecordSummary[] = [];\r\n operativeObservationsSummary: Array;\r\n observationType: typeof ObservationType = ObservationType;\r\n\r\n allBusinessUnits: IBusinessUnitInfo[];\r\n selectedBusinessUnitId: string;\r\n businessUnitsLoaded = false;\r\n businessUnitHelpText: string;\r\n\r\n allOperativeTypes: IOperativeTypeInfo[];\r\n selectedOperativeTypeId: string;\r\n operativeTypesLoaded = false;\r\n\r\n allJobTitles: IJobTitleInfo[] = [];\r\n filteredJobTitles: IJobTitleInfo[];\r\n selectedJobTitleId: string;\r\n jobTitlesLoaded = false;\r\n showJobTitleUpdate: boolean;\r\n\r\n allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n selectedCompanyJobTitleId: string;\r\n companyJobTitlesLoaded = false;\r\n\r\n allJobLevels: ExtendedJobLevel[] = [];\r\n filteredJobLevels: ExtendedJobLevel[] = [];\r\n selectedJobLevelId: string;\r\n jobLevelsLoaded = false;\r\n showJobLevelUpdate: boolean;\r\n\r\n allRisks: ExtendedRiskInfo[] = [];\r\n filteredRisks: ExtendedRiskInfo[] = [];\r\n selectedRiskId: string;\r\n risksLoaded = false;\r\n showRiskUpdate: boolean;\r\n\r\n\r\n allEmploymentStatuses: IEmploymentStatus[] = [];\r\n selectedEmploymentStatusId: string;\r\n employmentStatusesLoaded = false;\r\n\r\n riskMatrix: IRiskMatrixEntry[];\r\n riskMatrixLoaded = false;\r\n\r\n operativeId: string;\r\n operativeMaxDate: Date;\r\n operativeMinDate: Date;\r\n allListsLoaded = false;\r\n\r\n isNewOperative: boolean;\r\n private originalOperative: OperativeInfo;\r\n public editingOperativeDetails: boolean;\r\n public editingCurrentEngagement: boolean;\r\n savingOperativeDetails: boolean = false;\r\n savingEngagementDetails: boolean = false;\r\n addingOperativeDocuments: boolean = false;\r\n addingObservationDocuments: boolean = false;\r\n observationsLoading: boolean = false;\r\n updatingTrainingRecord: boolean = false;\r\n trainingRecordTypes: ITrainingType[] = [];\r\n saveAttempted: boolean = false;\r\n engagements: CompanyEngagementHistory[] = [];\r\n public loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n public operativeUpdateOperations: IAllowedOperations = {} as IAllowedOperations;\r\n email: UntypedFormControl;\r\n loggedInUserSubscription: Subscription;\r\n isQsRole: boolean = false;\r\n isNonElectricalJobRole: boolean;\r\n originalEngagementRole: CompanyEngagementHistory = new CompanyEngagementHistory({} as ICompanyEngagementHistory);\r\n tempEngagementRole: CompanyEngagementHistory = new CompanyEngagementHistory({} as ICompanyEngagementHistory);\r\n showRoleBadge: boolean = true;\r\n\r\n loadCurrentRole = new BehaviorSubject(false);\r\n loadCurrentRoleSubscription: Subscription;\r\n loadingCurrentEngagement: boolean = true;\r\n totalCPDHours: number;\r\n\r\n\r\n\r\n defaultJobJevelId: string;\r\n constructor(private route: ActivatedRoute,\r\n private operativesService: OperativesService,\r\n private listDataService: ListDataService,\r\n private observationsService: ObservationsService,\r\n private operativeDocumentService: OperativeDocumentService,\r\n private observationDocumentService: ObservationDocumentService,\r\n private trainingRecordsService: TrainingRecordsService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private documentService: DocumentService,\r\n private trainingRecordModalService: TrainingRecordModalService,\r\n private documentModalService: DocumentModalService,\r\n private observationModalService: ObservationModalService,\r\n private breadcrumbService: BreadcrumbService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private engagementModalService: EngagementModalService,\r\n private riskHelpModalService: RiskHelpModalService,\r\n private operativeModalService: OperativeModalService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private router: Router,\r\n private cdr: ChangeDetectorRef,\r\n private trainingRecordDocumentService: TrainingRecordDocumentService,\r\n private alertsService: AlertsService,\r\n private trainingTypeService: TrainingTypeService,\r\n private helpService: HelpModalService,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.operativeId = this.route.snapshot.params.operativeId;\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n if (this.loggedInUser?.operativeOperations?.canUpdate) {\r\n this.operativeUpdateOperations = {\r\n canInsert: true,\r\n canUpdate: true,\r\n canRetrieve: true,\r\n canDelete: true\r\n } as IAllowedOperations;\r\n } else {\r\n this.operativeUpdateOperations = {} as IAllowedOperations;\r\n }\r\n\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n\r\n if (this.loggedInUser?.operativeOperations?.canUpdate) {\r\n this.operativeUpdateOperations = {\r\n canInsert: true,\r\n canUpdate: true,\r\n canRetrieve: true,\r\n canDelete: true\r\n } as IAllowedOperations;\r\n } else {\r\n this.operativeUpdateOperations = {} as IAllowedOperations;\r\n }\r\n\r\n if (this.companyId !== consts.emptyGuid && this.companyId !== undefined) {\r\n this.initLists();\r\n }\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n\r\n initLists() {\r\n this.listDataService.getBusinessUnitsForCompany(this.companyId).subscribe(types => {\r\n this.allBusinessUnits = types;\r\n //this.selectedBusinessUnit = this.allBusinessUnits.find(x => x.id === this.operative.currentBusinessUnitId);\r\n this.businessUnitsLoaded = true;\r\n this.businessUnitHelpText = this.allBusinessUnits?.length < 1 ? \"You have no Business Units defined. This field is optional but if you wish to create some business units then please go to the Business Units tab on the settings page.\" : \"Choose the Business Unit that best suits the Operatives current role.\";\r\n //this.initOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.listDataService.getAllOperativeTypes().subscribe(types => {\r\n this.allOperativeTypes = types;\r\n //this.selectedOperativeType = this.allOperativeTypes.find(x => x.id === this.operative.currentOperativeTypeId);\r\n this.operativeTypesLoaded = true;\r\n this.initOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.listDataService.getAllJobTitles().subscribe(titles => {\r\n this.allJobTitles = titles;\r\n //this.filteredJobTitles = this.allJobTitles.filter(f => f.operativeTypeId == this.operative.currentOperativeTypeId);\r\n //this.selectedJobTitle = this.filteredJobTitles.find(x => x.id === this.operative.currentJobTitleId);\r\n this.jobTitlesLoaded = true;\r\n this.initOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.listDataService.getAllJobLevels().subscribe(jobLevelsResult => {\r\n jobLevelsResult.forEach(l => {\r\n this.allJobLevels.push(new ExtendedJobLevel(l));\r\n })\r\n //if (this.isNonElectricalJobRole) {\r\n // this.filteredJobLevels = this.allJobLevels.filter(f => f.index === 0);\r\n //}\r\n //else {\r\n // this.filteredJobLevels = this.allJobLevels.filter(f => f.operativeTypeId == this.operative.currentOperativeTypeId);\r\n //}\r\n\r\n //this.selectedJobLevel = this.filteredJobLevels.find(x => x.id === this.operative.currentJobLevelId);\r\n this.jobLevelsLoaded = true;\r\n this.initOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.listDataService.getAllRisks().subscribe(result => {\r\n result.forEach(r => {\r\n this.allRisks.push(new ExtendedRiskInfo(r));\r\n })\r\n //if (this.isNonElectricalJobRole) {\r\n // this.filteredRisks = this.allRisks.filter(f => f.index === 0);\r\n //}\r\n //else {\r\n // this.filteredRisks = this.allRisks.filter(f => f.operativeTypeId == this.operative.currentOperativeTypeId);\r\n //}\r\n //this.selectedRisk = this.filteredRisks.find(x => x.id === this.operative.currentRiskId);\r\n this.risksLoaded = true;\r\n this.initOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.listDataService.getAllEmploymentStatuses().subscribe(employmentStatuses => {\r\n this.allEmploymentStatuses = employmentStatuses;\r\n this.employmentStatusesLoaded = true;\r\n this.initOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n //if (this.operative.currentOperativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n // this.companyJobRoleService.getCompanyJobTitlesByCompanyId(this.companyId).subscribe(listResut => {\r\n // this.allCompanyJobTitles = listResut;\r\n // this.selectedCompanyJobTitle = this.allCompanyJobTitles.find(x => x.id === this.operative.currentJobTitleId);\r\n // this.initOperative();\r\n // });\r\n //}\r\n this.companyJobRoleService.getCompanyJobTitlesByCompanyId(this.companyId).subscribe(listResut => {\r\n this.allCompanyJobTitles = listResut;\r\n //this.selectedCompanyJobTitle = this.allCompanyJobTitles.find(x => x.id === this.operative.currentJobTitleId);\r\n this.companyJobTitlesLoaded = true;\r\n this.initOperative();\r\n });\r\n }\r\n\r\n validateEmail(email) {\r\n this.email = new UntypedFormControl(email,\r\n [Validators.email, Validators.pattern('^(?=.{1,64}@)[A-Za-z0-9_-]+(\\\\.[A-Za-z0-9_-]+)*@[^-][A-Za-z0-9-]+(\\\\.[A-Za-z0-9-]+)*(\\\\.[A-Za-z]{2,})$')]);\r\n if (this.editingOperativeDetails) {\r\n return this.email.valid;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n disableDatesPriorSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.operativeMinDate = new Date(selectedDate.setDate(selectedDate.getDate() + 1));\r\n }\r\n\r\n disableDatesPostSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.operativeMaxDate = new Date(selectedDate.setDate(selectedDate.getDate() - 1));\r\n }\r\n\r\n initOperative() {\r\n this.allListsLoaded = this.checkLists();\r\n if (this.allListsLoaded) {\r\n this.getTrainingTypesForCompany();\r\n if (this.operativeId !== 'create') {\r\n // this.reloadRoleSettings(true);\r\n //} else {\r\n this.loadOperative();\r\n //this.reloadRoleSettings();\r\n }\r\n }\r\n }\r\n\r\n checkLists(): boolean {\r\n var result = this.operativeTypesLoaded && this.jobTitlesLoaded && this.jobLevelsLoaded && this.risksLoaded && this.employmentStatusesLoaded && this.businessUnitsLoaded && this.companyJobTitlesLoaded\r\n return result;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n this.loadCurrentRoleSubscription.unsubscribe();\r\n }\r\n\r\n private populateBreadcrumbs(isNewOperative: boolean = false, operative?: any) {\r\n if (isNewOperative) {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: `operatives` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({\r\n label: operative.getFullName(),\r\n iconName: 'user',\r\n routeLink: `operative/${this.operative.id}`\r\n } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: `operatives` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({\r\n label: this.operative.getFullName(),\r\n iconName: 'user',\r\n routeLink: `operative/${this.operative.id}`\r\n } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private getOperativeById() {\r\n this.operative = new OperativeInfo({} as IOperative);\r\n this.operativesService.getOperativeById(this.operativeId, true).subscribe(operative => {\r\n this.operative = new OperativeInfo(operative);\r\n this.editingCurrentEngagement = false;\r\n this.savingEngagementDetails = false;\r\n this.setCurrentRoleIfOperativeIsLoaded(true);\r\n this.disableDatesPriorSelected(this.operative?.latestEngagementFrom);\r\n this.operative.populateRiskMatrixLevel(this.riskMatrix);\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n\r\n getCurrentRoleIfOperativeIsLoaded() {\r\n return this.loadCurrentRole.asObservable();\r\n }\r\n\r\n setCurrentRoleIfOperativeIsLoaded(isLoaded: boolean) {\r\n this.loadCurrentRole.next(isLoaded);\r\n }\r\n\r\n private initCurrentEngagementRole(operative: OperativeInfo) {\r\n this.originalEngagementRole = new CompanyEngagementHistory(this.engagements?.find(d => d.id === operative.latestEngagementId) as ICompanyEngagementHistory);\r\n this.tempEngagementRole = new CompanyEngagementHistory(this.originalEngagementRole as ICompanyEngagementHistory);\r\n this.selectedBusinessUnitId = this.originalEngagementRole.businessUnitId;\r\n this.selectedOperativeTypeId = this.originalEngagementRole.operativeTypeId;\r\n this.updateJobTitles(this.originalEngagementRole.operativeTypeId, false); //This will call/update all the other lists down the chain\r\n this.selectedEmploymentStatusId = this.originalEngagementRole.employmentStatusId;\r\n this.showRoleBadge = this.tempEngagementRole?.jobTitle?.electricalWorkType !== ElectricalWorkType.NonElectrical;\r\n this.loadingCurrentEngagement = false;\r\n }\r\n\r\n private getTrainingRecordsForOperative() {\r\n this.trainingRecordsService.getTrainingRecordSummariesForOperative(this.operativeId).subscribe(trainingRecords => {\r\n this.operativeTrainingRecords = trainingRecords;\r\n //trainingRecords.forEach(trainingRecord => {\r\n // this.operativeTrainingRecords.push(trainingRecord as ITrainingRecordSummary);\r\n //})\r\n\r\n this.totalCPDHours = this.operativeTrainingRecords.filter(record => record.cpdHour > 0).reduce((acc, record) => acc + record.cpdHour, 0);\r\n this.totalCPDHours = parseFloat(this.totalCPDHours.toFixed(2));\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n\r\n private getTrainingTypesForCompany() {\r\n this.trainingRecordsService.getTrainingTypesForCompany(this.companyId).subscribe(results => {\r\n this.trainingRecordTypes.length = 0;\r\n results.forEach(t => {\r\n this.trainingRecordTypes.push(t);\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n editOperativeDetails() {\r\n if (this.opDetailsContainerComponent.isCollapsed) {\r\n this.opDetailsContainerComponent.panelToggle();\r\n }\r\n this.originalOperative = this.operative;\r\n this.operative = new OperativeInfo(this.originalOperative);\r\n\r\n this.editingOperativeDetails = true;\r\n }\r\n\r\n cancelEditOperativeDetails() {\r\n this.editingOperativeDetails = false;\r\n this.operative = this.originalOperative;\r\n }\r\n\r\n editCurrentEngagement() {\r\n if (this.opRiskContainer.isCollapsed) {\r\n this.opRiskContainer.panelToggle();\r\n }\r\n this.originalOperative = this.operative;\r\n this.operative = new OperativeInfo(this.originalOperative);\r\n this.editingCurrentEngagement = true;\r\n }\r\n\r\n cancelEditCurrentEngagement() {\r\n this.operative = this.originalOperative;\r\n this.tempEngagementRole = new CompanyEngagementHistory(this.originalEngagementRole as ICompanyEngagementHistory);\r\n this.selectedBusinessUnitId = this.tempEngagementRole.businessUnitId;\r\n this.selectedOperativeTypeId = this.tempEngagementRole.operativeTypeId;\r\n\r\n this.updateJobTitles(this.tempEngagementRole.operativeTypeId, false); //This will call/update all the other lists down the chain\r\n this.editingCurrentEngagement = false;\r\n this.showJobLevelUpdate = false;\r\n this.showJobTitleUpdate = false;\r\n this.showRiskUpdate = false;\r\n\r\n }\r\n\r\n saveNewOperative() {\r\n this.operative.companyId = this.companyId;\r\n this.operativesService.createOrUpdateOperative(this.operative).subscribe(operative => {\r\n this.operative = operative;\r\n if (this.isNewOperative) {\r\n this.router.navigate(['operative/', operative.id]);\r\n }\r\n this.isNewOperative = false;\r\n this.editingOperativeDetails = false;\r\n this.editingCurrentEngagement = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n saveOperativeDetails() {\r\n if (this.email.valid) {\r\n this.savingOperativeDetails = true;\r\n this.operativesService.createOrUpdateOperative(this.operative).subscribe(operative => {\r\n this.operative = new OperativeInfo(operative);\r\n this.operativeId = operative.id;\r\n this.operative.populateRiskMatrixLevel(this.riskMatrix);\r\n this.disableDatesPriorSelected(this.operative?.latestEngagementFrom);\r\n this.editingOperativeDetails = false;\r\n this.savingOperativeDetails = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n\r\n newOperativeImage(imageString: string) {\r\n this.operative.image = imageString;\r\n }\r\n\r\n createDocumentObservation(entityDocument: IDocumentSummaryInfo) {\r\n let observationType: ObservationType;\r\n let observationFor = '';\r\n switch (entityDocument.entityType) {\r\n case DocumentEntityType.company: {\r\n observationType = ObservationType.CompanyDocument;\r\n observationFor = 'enterprise document.';\r\n break;\r\n }\r\n case DocumentEntityType.employedPerson: {\r\n observationType = ObservationType.OperativeDocument;\r\n observationFor = 'operative document.';\r\n break;\r\n }\r\n case DocumentEntityType.trainingRecord: {\r\n observationType = ObservationType.TrainingRecordDocument;\r\n observationFor = 'training record document.';\r\n break;\r\n }\r\n }\r\n this.selectedDocumentId = entityDocument.documentId;\r\n this.createOrEditObservation(null, true, 'Add observation to ', observationType, observationFor, false);\r\n }\r\n\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType, observationFor?: string, showSaveAndUploadButton?: boolean) {\r\n if (observationFor === undefined || observationFor.length === 0) {\r\n if (this.operative.getFullName().length !== 0) {\r\n observationFor = this.operative.getFullName();\r\n }\r\n }\r\n this.observationModalService.createOrEditObservation(observation, heading + observationFor, isEditing, observationType, showSaveAndUploadButton).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n const editedObservation = new Observation({\r\n id: observationResult.id,\r\n summaryInfo: observationResult.summaryInfo,\r\n notesAsHtml: observationResult.notesAsHtml,\r\n observedBy: observationResult.observedBy,\r\n observedOn: observationResult.observedOn,\r\n followUpOn: observationResult.followUpOn,\r\n observationType: observationResult.observationType\r\n } as IObservation);\r\n let entityObservationId = this.getEntityObservationId(editedObservation.id);\r\n switch (editedObservation.observationType) {\r\n case ObservationType.Operative: {\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateOperativeObservation(editedObservation as IObservation, this.operativeId, this.companyId, entityObservationId).subscribe(operativeObservation => {\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, operativeObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.OperativeDocument:\r\n case ObservationType.TrainingRecordDocument: {\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateDocumentObservation(editedObservation, this.selectedDocumentId, this.companyId, entityObservationId).subscribe(documentObservation => {\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, documentObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n this.getOperativeDocuments();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.TrainingRecord: {\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateTrainingRecordObservation(editedObservation, this.selectedTrainingRecordId, this.companyId, entityObservationId).subscribe(trainingRecordObservation => {\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, trainingRecordObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n this.getTrainingRecordsForOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n\r\n observationModalRef.dynamicDialogRef.close();\r\n }\r\n });\r\n observationModalRef.content.saveObservationDocumentRequested.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n const editedObservation = new Observation({\r\n id: observationResult.id,\r\n summaryInfo: observationResult.summaryInfo,\r\n notesAsHtml: observationResult.notesAsHtml,\r\n observedBy: observationResult.observedBy,\r\n observedOn: observationResult.observedOn,\r\n followUpOn: observationResult.followUpOn,\r\n observationType: observationResult.observationType\r\n } as IObservation);\r\n let entityObservationId = this.getEntityObservationId(editedObservation.id);\r\n switch (editedObservation.observationType) {\r\n case ObservationType.Operative: {\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateOperativeObservation(editedObservation as IObservation, this.operativeId, this.companyId, entityObservationId).subscribe(operativeObservation => {\r\n this.savedObservationId = operativeObservation.observationId;\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, operativeObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.OperativeDocument:\r\n case ObservationType.TrainingRecordDocument: {\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateDocumentObservation(editedObservation, this.selectedDocumentId, this.companyId, entityObservationId).subscribe(documentObservation => {\r\n this.savedObservationId = documentObservation.observationId;\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, documentObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n this.getOperativeDocuments();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n break;\r\n }\r\n case ObservationType.TrainingRecord: {\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateTrainingRecordObservation(editedObservation, this.selectedTrainingRecordId, this.companyId, entityObservationId).subscribe(trainingRecordObservation => {\r\n this.savedObservationId = trainingRecordObservation.observationId;\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, trainingRecordObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n this.getTrainingRecordsForOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n\r\n observationModalRef.dynamicDialogRef.close();\r\n this.documentModalService.openDocumentUploaderModal({ documentCreationDate: observationResult.ObservedOn } as IEntityDocumentSummary\r\n , DocumentEntityType.observation, 'Add new Document for Observation')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n this.addingObservationDocuments = true;\r\n documentUploadRequest.append('OperativeId', this.operative.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n documentUploadRequest.append('ObservationId', this.savedObservationId);\r\n\r\n this.observationDocumentService.createOrUpdateObservationDocument(documentUploadRequest).subscribe(observationDocumentSummary => {\r\n this.getOperativeDocuments();\r\n this.addingObservationDocuments = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n });\r\n });\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n getEntityObservationId(observationId: string): string {\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.operativeObservationsSummary.forEach(x => {\r\n if (x.observationId === observationId) {\r\n switch (x.observationType) {\r\n case ObservationType.Operative: {\r\n entityObservationId = x.operativeObservationId;\r\n break;\r\n }\r\n case ObservationType.OperativeDocument:\r\n case ObservationType.TrainingRecordDocument: {\r\n entityObservationId = x.documentObservationId;\r\n break;\r\n }\r\n case ObservationType.TrainingRecord: {\r\n entityObservationId = x.trainingRecordObservationId;\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n return entityObservationId;\r\n }\r\n\r\n saveCurrentEngagement() {\r\n this.savingEngagementDetails = true;\r\n let engagement = new CompanyEngagementHistory({} as ICompanyEngagementHistory);\r\n engagement = new CompanyEngagementHistory(this.tempEngagementRole as ICompanyEngagementHistory);\r\n engagement.jobTitle = new JobTitleInfo(this.allJobTitles?.find(d => d?.id === this.tempEngagementRole?.jobTitleId) as IJobTitleInfo);\r\n engagement.jobLevel = new JobLevelInfo(this.allJobLevels?.find(d => d?.id === this.tempEngagementRole?.jobLevelId) as IJobLevelInfo);\r\n engagement.risk = new RiskInfo(this.allRisks?.find(d => d?.id === this.tempEngagementRole?.riskId) as IRiskInfo);\r\n engagement.operativeType = new OperativeTypeInfo(this.allOperativeTypes?.find(d => d?.id === this.tempEngagementRole?.operativeTypeId) as IOperativeTypeInfo);\r\n engagement.businessUnit = new BusinessUnitInfo(this.allBusinessUnits?.find(d => d?.id === this.tempEngagementRole?.businessUnitId) as IBusinessUnitInfo);\r\n\r\n if (engagement.isValid) {\r\n this.operativesService.createOrUpdateEngagement(engagement as ICompanyEngagementHistory).subscribe(engagement => {\r\n this.engagements = this.engagements.filter(s => s.id !== engagement.id);\r\n this.engagements.push(new CompanyEngagementHistory(engagement));\r\n this.loadOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.showJobLevelUpdate = false;\r\n this.showJobTitleUpdate = false;\r\n this.showRiskUpdate = false;\r\n } else {\r\n this.savingEngagementDetails = false;\r\n }\r\n }\r\n\r\n addNewEngagement() {\r\n const newEngagement = new CompanyEngagementHistory();\r\n //newEngagement.businessUnitId = this.operative.currentBusinessUnitId;\r\n newEngagement.jobTitleId = this.tempEngagementRole?.businessUnitId;\r\n //newEngagement.operativeTypeId = this.operative.currentOperativeTypeId;\r\n newEngagement.operativeTypeId = this.tempEngagementRole.operativeTypeId;\r\n //newEngagement.jobTitleId = this.operative.currentJobTitleId;\r\n newEngagement.jobTitleId = this.tempEngagementRole?.jobTitleId;\r\n //newEngagement.jobLevelId = this.operative.currentJobLevelId;\r\n newEngagement.jobLevelId = this.tempEngagementRole?.jobLevelId;\r\n //newEngagement.riskId = this.operative.currentRiskId;\r\n newEngagement.riskId = this.tempEngagementRole.riskId;\r\n newEngagement.companyId = this.companyId;\r\n newEngagement.operativeId = this.operative.id;\r\n //newEngagement.businessUnit = new BusinessUnitInfo(this.allBusinessUnits?.find(d => d?.id === this.operative.currentBusinessUnitId) as IBusinessUnitInfo);\r\n //newEngagement.operativeType = new OperativeTypeInfo(this.allOperativeTypes?.find(d => d?.id === this.operative.currentOperativeTypeId) as IOperativeTypeInfo);\r\n //newEngagement.jobTitle = new JobTitleInfo(this.allJobTitles?.find(d => d?.id === this.operative.currentJobTitleId) as IJobTitleInfo);\r\n //newEngagement.jobLevel = new JobLevelInfo(this.allJobLevels?.find(d => d?.id === this.operative.currentJobLevelId) as IJobLevelInfo);\r\n //newEngagement.risk = new RiskInfo(this.allRisks?.find(d => d?.id === this.operative.currentRiskId) as IRiskInfo);\r\n newEngagement.businessUnit = new BusinessUnitInfo(this.allBusinessUnits?.find(d => d?.id === this.tempEngagementRole.businessUnitId) as IBusinessUnitInfo);\r\n newEngagement.operativeType = new OperativeTypeInfo(this.allOperativeTypes?.find(d => d?.id === this.tempEngagementRole.operativeTypeId) as IOperativeTypeInfo);\r\n newEngagement.jobTitle = new JobTitleInfo(this.allJobTitles?.find(d => d?.id === this.tempEngagementRole.jobTitleId) as IJobTitleInfo);\r\n newEngagement.jobLevel = new JobLevelInfo(this.allJobLevels?.find(d => d?.id === this.tempEngagementRole.jobLevelId) as IJobLevelInfo);\r\n newEngagement.risk = new RiskInfo(this.allRisks?.find(d => d?.id === this.tempEngagementRole.riskId) as IRiskInfo);\r\n\r\n this.engagementModalService.openEngagementEditorModal(\r\n 'Add New Role for ' + this.operative.getFullName(),\r\n this.allJobTitles,\r\n this.allCompanyJobTitles,\r\n this.allJobLevels,\r\n this.allRisks,\r\n this.allOperativeTypes,\r\n this.allBusinessUnits,\r\n this.allEmploymentStatuses,\r\n true,\r\n newEngagement).subscribe(modalRef => {\r\n modalRef.content.cancelEngagementClicked.subscribe(result => {\r\n this.engagementModalService.engagementModalRef.dynamicDialogRef.close();\r\n });\r\n modalRef.content.saveEngagementClicked.subscribe(engagement => {\r\n this.engagementModalService.engagementModalRef.dynamicDialogRef.close();\r\n this.savingEngagementDetails = true;\r\n this.operativesService.createOrUpdateEngagement(engagement).subscribe(engagementResult => {\r\n this.loadOperative();\r\n this.savingEngagementDetails = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n addNewTrainingRecord() {\r\n this.trainingRecordModalService\r\n .openTrainingRecordEditorModal('Add New Training Record to ' + this.operative.firstName + ' ' + this.operative.lastName,\r\n this.trainingRecordTypes, true, false).subscribe(trainingRecordModalRef => {\r\n trainingRecordModalRef.content.saveTrainingRecordClicked.subscribe(trainingRecordResult => {\r\n if (trainingRecordResult !== null) {\r\n this.updatingTrainingRecord = true;\r\n let editedTrainingRecord = new TrainingRecord(trainingRecordResult as ITrainingRecord);\r\n editedTrainingRecord.operativeId = this.operativeId;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(editedTrainingRecord).subscribe(newTrainingRecord => {\r\n if (newTrainingRecord) {\r\n this.getTrainingRecordsForOperative();\r\n this.trainingRecordModalService.modalRef.dynamicDialogRef.close();\r\n this.updatingTrainingRecord = false;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n });\r\n trainingRecordModalRef.content.saveNewTrainingRecordDocumentRequested.subscribe(trainingRecordResult => {\r\n if (trainingRecordResult !== null) {\r\n this.updatingTrainingRecord = true;\r\n let editedTrainingRecord = new TrainingRecord(trainingRecordResult as ITrainingRecord);\r\n editedTrainingRecord.operativeId = this.operativeId;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(editedTrainingRecord).subscribe(newTrainingRecord => {\r\n if (newTrainingRecord) {\r\n this.trainingRecordModalService.modalRef.dynamicDialogRef.close();\r\n this.updatingTrainingRecord = false;\r\n this.addTrainingRecordDocument(newTrainingRecord);\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n });\r\n\r\n\r\n trainingRecordModalRef.content.saveNewTrainingRecordTypeRequested.subscribe(newTrainingType => {\r\n if (newTrainingType !== null) {\r\n this.updatingTrainingRecord = true;\r\n newTrainingType.companyId = this.companyId;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(newTrainingType).subscribe(trainingType => {\r\n if (trainingType) {\r\n this.getTrainingTypesForCompany();\r\n this.trainingTypeService.setSelectedTrainingTypeId(trainingType.id);\r\n this.trainingTypeService.setSelectedTrainingTypeValidTo(trainingType.validTo);\r\n this.updatingTrainingRecord = false;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n downloadOperativeDocument(operativeDocuments: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(operativeDocuments, true);\r\n }\r\n\r\n openOperativeDocument(operativeDocuments: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(operativeDocuments);\r\n }\r\n\r\n deleteOperativeDocumentClick(operativeDocument: IEntityDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to remove this document?',\r\n 'Remove ' + operativeDocument.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.addingOperativeDocuments = true;\r\n this.deleteOperativeDocument(operativeDocument);\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteOperativeDocument(operativeDocument: IEntityDocumentSummary) {\r\n this.operativeDocumentService.deleteOperativeDocument(this.companyId, operativeDocument.documentId).subscribe(\r\n result => {\r\n if (result) {\r\n const documentIndex = this.operativeDocuments.findIndex(c => c.documentId === operativeDocument.documentId);\r\n this.operativeDocuments.splice(documentIndex, 1);\r\n this.addingOperativeDocuments = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n\r\n editOperativeDocument(operativeDocumentSummary: IEntityDocumentSummary) {\r\n this.documentModalService.openDocumentUploaderModal(operativeDocumentSummary, DocumentEntityType.employedPerson, 'Edit Operative Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close()\r\n documentUploadRequest.append('OperativeId', this.operative.id);\r\n this.operativeDocumentService.createOrUpdateOperativeDocument(documentUploadRequest)\r\n .subscribe(updatedOperativeDocumentsSummary => {\r\n this.getOperativeDocuments();\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n addTrainingRecordDocument(trainingRecord: ITrainingRecord) {\r\n this.documentModalService.openDocumentUploaderModal({ documentCreationDate: trainingRecord?.achievedOn } as IEntityDocumentSummary\r\n , DocumentEntityType.trainingRecord, 'Add new Document to Training Record' + ' ' + trainingRecord?.trainingType?.name)\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close()\r\n documentUploadRequest.append('TrainingRecordId', trainingRecord?.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.trainingRecordDocumentService.createOrUpdateTrainingRecordDocument(documentUploadRequest)\r\n .subscribe(trainingRecordSummary => {\r\n this.getTrainingRecordsForOperative();\r\n this.getOperativeDocuments();\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning()?.subscribe(() => {\r\n });\r\n });\r\n\r\n });\r\n documentModalRef.content.cancelClicked?.subscribe(() => {\r\n this.getTrainingRecordsForOperative();\r\n });\r\n });\r\n }\r\n\r\n addOperativeDocument() {\r\n this.documentModalService.openDocumentUploaderModal(null, DocumentEntityType.employedPerson, 'Add Document for ' + this.operative?.fullName)\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n this.addingOperativeDocuments = true;\r\n documentUploadRequest.append('OperativeId', this.operative.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.operativeDocumentService.createOrUpdateOperativeDocument(documentUploadRequest).subscribe(operativeDocumentSummary => {\r\n this.getOperativeDocuments();\r\n this.addingOperativeDocuments = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n setTrainingRecordId(trainingRecordId: string) {\r\n this.selectedTrainingRecordId = trainingRecordId;\r\n }\r\n\r\n setSelectedDocumentId(documentId: string) {\r\n this.selectedDocumentId = documentId;\r\n }\r\n\r\n viewOperativeDocument(operativeDocument: IEntityDocumentSummary) {\r\n this.router.navigate(['operative-document', operativeDocument.documentId]);\r\n\r\n }\r\n\r\n openRiskHelp() {\r\n const basicLevels: JobLevelInfo[] = [];\r\n this.allJobLevels.forEach(l => {\r\n let jobLevelInfo = new JobLevelInfo(l);\r\n jobLevelInfo.name = l.basicName;\r\n basicLevels.push(jobLevelInfo);\r\n });\r\n const basicRisks: RiskInfo[] = [];\r\n this.allRisks.forEach(r => {\r\n let riskInfo = new RiskInfo(r);\r\n riskInfo.name = r.basicName;\r\n basicRisks.push(riskInfo);\r\n });\r\n\r\n this.riskHelpModalService.openRiskHelpModal('Help', this.riskMatrix, basicRisks, basicLevels, [this.operative], null, '', this.loggedInUser?.companyName, this.isQsRole);\r\n }\r\n\r\n addOperative() {\r\n\r\n const newOperative = new OperativeInfo();\r\n this.populateBreadcrumbs(false);\r\n newOperative.companyId = this.companyId;\r\n this.operativeModalService.openOperativeEditorModal(\r\n newOperative,\r\n 'Add a New Operative',\r\n this.allJobTitles,\r\n this.allCompanyJobTitles,\r\n this.allJobLevels,\r\n this.allRisks,\r\n this.allEmploymentStatuses,\r\n this.allOperativeTypes,\r\n this.allBusinessUnits,\r\n true).subscribe(modalRef => {\r\n modalRef.content.saveOperativeRequested.subscribe(operative => {\r\n if (operative) {\r\n this.populateBreadcrumbs(true, operative);\r\n this.operativesService.createOrUpdateOperative(operative).subscribe(operative => {\r\n if (operative) {\r\n this.router.navigate(['/operative/' + operative.id]);\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n modalRef.content.cancelRequested.subscribe(result => {\r\n this.router.navigate(['/operatives']);\r\n });\r\n });\r\n }\r\n\r\n deleteTrainingRecordClick(trainingRecord: ITrainingRecord) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to remove this training record?',\r\n 'Remove Training Record', new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.trainingRecordsService.deleteTrainingRecord(trainingRecord).subscribe(result => {\r\n if (result) {\r\n this.getTrainingRecordsForOperative();\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n getOperativeDocuments(includeExpired: boolean = false) {\r\n this.operativeDocumentService.getAllDocumentSummariesForOperative(this.companyId, includeExpired, this.operativeId).subscribe(operativeDocumentSummaries => {\r\n this.operativeDocuments = [];\r\n operativeDocumentSummaries?.forEach(doc => this.operativeDocuments.push(doc));\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n\r\n loadOperative() {\r\n this.getOperativeById();\r\n this.getOperativeDocuments();\r\n this.listDataService.getRiskMatrix().subscribe(result => {\r\n this.riskMatrix = result;\r\n this.operative.populateRiskMatrixLevel(this.riskMatrix);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.observationsService.getOperativeObservations(this.operativeId, this.companyId).subscribe(operativeObservations => {\r\n operativeObservations?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.operativeObservationsSummary = operativeObservations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.operativesService.getCompanyEngagementsFor(this.operativeId, this.companyId).subscribe(companyEngagements => {\r\n let engagementsLoaded = false;\r\n if (companyEngagements) {\r\n engagementsLoaded = true;\r\n this.engagements = new Array();\r\n companyEngagements.forEach(item => {\r\n if (item.operativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n var companyJobtitle = this.allCompanyJobTitles.find(x => x.id === item.jobTitleId)?.name;\r\n item.jobTitle = { name: companyJobtitle } as IJobTitleInfo;\r\n }\r\n this.engagements.push(new CompanyEngagementHistory(item as ICompanyEngagementHistory));\r\n })\r\n this.engagements.forEach(eng => { eng.supervisionString = eng.jobTitle?.name === 'Qualified Supervisor' ? 'QS' : DegreeOfSupervisionString[eng.riskMatrixLevel]; })\r\n }\r\n this.loadCurrentRoleSubscription = this.getCurrentRoleIfOperativeIsLoaded().subscribe(value => {\r\n if (value && engagementsLoaded) {\r\n this.initCurrentEngagementRole(this.operative);\r\n }\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n this.getTrainingRecordsForOperative();\r\n // Update alerts counts after updating operative.. not sure on this..\r\n this.alertsService.getSupervisionAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }\r\n\r\n deleteRoleHistoryClick(roleHistory: ICompanyEngagementHistory) {\r\n this.confirmProcessService.openConfirmProcessModal('

Are you SURE you want to remove this role history?

You may need to adjust the remaining role histories if the operative the operative\\'s is still working with the company.

',\r\n 'Remove Role History', new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.operativesService.deleteCompanyEngagement(roleHistory).subscribe(result => {\r\n this.loadOperative();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n openOperativeDetailsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.OperativeDetails);\r\n }\r\n\r\n createTrainingRecordObservation(trainingRecordId: string) {\r\n this.setTrainingRecordId(trainingRecordId);\r\n this.createOrEditObservation(null, true, 'Add Observation to', ObservationType.TrainingRecord, ' the training record', true);\r\n }\r\n\r\n updateBusinessUnit(businessUnitId: string) {\r\n this.tempEngagementRole.businessUnitId = businessUnitId;//ensure correct businessUnitId\r\n }\r\n\r\n updateJobTitles(operativeTypeId: string, showUpdateAlert: boolean) {\r\n this.tempEngagementRole.operativeTypeId = operativeTypeId;//ensure correct operative typeid\r\n\r\n if (this.tempEngagementRole.operativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n\r\n this.selectedJobTitleId = this.allCompanyJobTitles.find(f => f.id == this.tempEngagementRole.jobTitleId)?.id;\r\n if (!this.selectedJobTitleId) { //job title not found in list so default to the first in the list\r\n this.selectedJobTitleId = this.allCompanyJobTitles[0].id;\r\n this.tempEngagementRole.jobTitleId = this.selectedJobTitleId;\r\n }\r\n }\r\n else {\r\n this.filteredJobTitles = this.allJobTitles.filter(f => f.operativeTypeId == this.tempEngagementRole.operativeTypeId);\r\n this.selectedJobTitleId = this.filteredJobTitles.find(f => f.id === this.tempEngagementRole.jobTitleId)?.id;\r\n\r\n if (!this.selectedJobTitleId) { //job title not found in list so default to the first in the list\r\n this.selectedJobTitleId = this.filteredJobTitles[0].id;\r\n this.tempEngagementRole.jobTitleId = this.selectedJobTitleId;\r\n }\r\n }\r\n //Complete other tasks\r\n this.showJobTitleUpdate = showUpdateAlert;\r\n this.updateJobLevel(this.tempEngagementRole.jobTitleId, showUpdateAlert);\r\n }\r\n\r\n updateJobLevel(jobTitleId: string, showUpdateAlert: boolean) {\r\n this.tempEngagementRole.jobTitleId = jobTitleId;\r\n this.showJobLevelUpdate = showUpdateAlert;\r\n if (this.tempEngagementRole.operativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n this.selectedCompanyJobTitleId = this.allCompanyJobTitles.find(x => x.id === this.tempEngagementRole.jobTitleId)?.id;\r\n this.isQsRole = false;\r\n this.isNonElectricalJobRole = true;\r\n this.defaultJobJevelId = this.allCompanyJobTitles.find(x => x.id === this.tempEngagementRole.jobTitleId)?.defaultJobLevelId;\r\n }\r\n else {\r\n this.isQsRole = this.filteredJobTitles.find(d => d.id === jobTitleId)?.electricalWorkType == ElectricalWorkType.QualifiedSupervisor;\r\n this.isNonElectricalJobRole = this.filteredJobTitles.find(d => d.id === jobTitleId)?.electricalWorkType == ElectricalWorkType.NonElectrical;\r\n this.defaultJobJevelId = this.filteredJobTitles.find(d => d.id === jobTitleId)?.defaultJobLevelId;\r\n }\r\n\r\n if (this.isNonElectricalJobRole) {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.index === 0);\r\n }\r\n else if (this.isQsRole) {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.id == this.defaultJobJevelId);\r\n }\r\n else {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.operativeTypeId == this.tempEngagementRole.operativeTypeId).sort((a, b) => a.index - b.index);\r\n }\r\n this.selectedJobLevelId = this.filteredJobLevels.find(x => x.id === this.tempEngagementRole.jobLevelId)?.id;\r\n\r\n //job level not found so set to default value for the selected job title\r\n if (!this.selectedJobLevelId) {\r\n this.selectedJobLevelId = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId)?.id;\r\n this.tempEngagementRole.jobLevelId = this.selectedJobLevelId;\r\n }\r\n \r\n this.updateRisk(this.tempEngagementRole.jobLevelId, showUpdateAlert);\r\n }\r\n\r\n updateRisk(jobLevelId: string, showUpdateAlert: boolean) {\r\n this.tempEngagementRole.jobLevelId = jobLevelId;\r\n this.showRiskUpdate = showUpdateAlert;\r\n if (this.isNonElectricalJobRole) {\r\n this.filteredRisks = this.allRisks.filter(f => f.index === 0);\r\n }\r\n else {\r\n this.filteredRisks = this.allRisks.filter(f => f.operativeTypeId == this.tempEngagementRole.operativeTypeId).sort((a, b) => a.index - b.index);\r\n }\r\n this.selectedRiskId = this.filteredRisks.find(x => x.id === this.tempEngagementRole.riskId)?.id;\r\n //risk not found so set to first value in filtered list\r\n if (!this.selectedRiskId) {\r\n this.selectedRiskId = this.filteredRisks[0].id;\r\n this.tempEngagementRole.riskId = this.selectedRiskId;\r\n }\r\n \r\n }\r\n\r\n\r\n updateRiskItself(changedRiskId: string) {\r\n this.tempEngagementRole.riskId = changedRiskId;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n

\r\n Operative - {{ operative?.firstName }} {{ operative?.lastName}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Operative Details\r\n \r\n \r\n Operative Details - {{operative.getFullName()}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Current Role {{ operative.getSupervisionRequirement() }}\r\n Qualified Supervisor - no additional Assessment required\r\n \r\n \r\n \r\n Current Role {{ operative.getSupervisionRequirement() }}\r\n Qualified Supervisor - no additional Assessment 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\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Please note that you are editing the current operative engagement. This will overwrite the\r\n operatives information for the selected period.\r\n

\r\n

\r\n If the operative is changing to a new role or job, you should cancel your changes and create a New\r\n engagement for the new period of work\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Training Records\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Observations\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Role History\r\n \r\n
\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 { IOperativeDocumentSummary } from '../../../message-models/operative-document-summary.interface';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { OperativeDocumentService } from '../../services/operative-document.service';\r\nimport { OperativeDocumentSummary } from '../../../message-models/operative-document-summary.class';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationType } from '../../../domain-model/observation.class';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-operative-document-details-page',\r\n templateUrl: './operative-document-details-page.component.html',\r\n styleUrls: ['./operative-document-details-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class OperativeDocumentDetailsPageComponent implements OnInit, OnDestroy {\r\n\r\n loading: boolean;\r\n isEditing = false;\r\n documentUploadRequest: FormData;\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n operativeDocumentSummary: IOperativeDocumentSummary;\r\n operativeDocumentTypes: IDocumentType[];\r\n documentId: string;\r\n operativeDocumentObservations: Array = new Array();\r\n ObservationType: typeof ObservationType = ObservationType;\r\n @ViewChild('opDetailsContainerComponent') opDetailsContainerComponent: DetailContainerComponent;\r\n loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n submitted: boolean = false;\r\n\r\n constructor(private documentTypeService: DocumentTypeService,\r\n private operativeDocumentService: OperativeDocumentService,\r\n private documentService: DocumentService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private userService: OurUserService,\r\n private activatedRoute: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private alertsService: AlertsService,\r\n ) {\r\n this.documentId = this.activatedRoute.snapshot.params.documentId;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.setUserAndReload(user);\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private setUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid) {\r\n this.documentTypeService.getAllDocumentTypesForEntityType(DocumentEntityType.employedPerson).subscribe(operativeDocumentTypes => {\r\n this.operativeDocumentTypes = operativeDocumentTypes;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.operativeDocumentService.getOperativeDocumentSummary(this.documentId).subscribe(operativeDocumentSummary => {\r\n this.operativeDocumentSummary = new OperativeDocumentSummary(operativeDocumentSummary);\r\n this.initOperativeDocument();\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n if (this.companyId) {\r\n this.observationsService.getDocumentObservations(this.documentId, this.companyId).subscribe(operativeDocumentObservations => {\r\n this.operativeDocumentObservations = operativeDocumentObservations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n getSelectedDocumentType(documentTypeId: string): IDocumentType {\r\n return this.operativeDocumentTypes.find(t => t.id === documentTypeId);\r\n }\r\n\r\n saveOperativeDocumentClicked() {\r\n this.submitted = true;\r\n if (!this.tempDocumentSummary?.documentTypeId || !this.tempDocumentSummary?.documentCreationDate?.dateTime ||\r\n (!this.tempDocumentSummary?.extraDescription && this.getSelectedDocumentType(this.tempDocumentSummary?.documentTypeId)?.name === 'Other')) {\r\n return false;\r\n }\r\n this.submitted = false;\r\n this.appendDocumentUploadRequest();\r\n this.documentUploadRequest.append('OperativeId', this.operativeDocumentSummary.operativeId);\r\n this.documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.operativeDocumentService.createOrUpdateOperativeDocument(this.documentUploadRequest).subscribe(operativeDocumentSummary => {\r\n this.loading = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.operativeDocumentSummary = new OperativeDocumentSummary(operativeDocumentSummary);\r\n this.isEditing = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n downloadOperativeDocument() {\r\n this.documentService.downloadOrOpenDocument(this.operativeDocumentSummary, true);\r\n }\r\n\r\n openOperativeDocument() {\r\n this.documentService.downloadOrOpenDocument(this.operativeDocumentSummary);\r\n }\r\n\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType) {\r\n this.observationModalService.createOrEditObservation(observation, heading + this.operativeDocumentSummary.originalFilename, isEditing, observationType).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n if (observationResult.observationType === null) {\r\n observationResult.observationType = ObservationType.OperativeDocument;\r\n }\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.operativeDocumentObservations?.forEach(trObservationSummary => {\r\n if (trObservationSummary.observationId === observationResult.id) {\r\n entityObservationId = trObservationSummary.documentObservationId;\r\n }\r\n });\r\n this.observationsService.createOrUpdateDocumentObservation(observationResult as IObservation, this.documentId, this.companyId, entityObservationId).subscribe(operativeDocObservation => {\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.operativeDocumentObservations = this.observationsService.updateObservationSummaries(this.operativeDocumentObservations, operativeDocObservation);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({\r\n label: this.operativeDocumentSummary.operativeFullName,\r\n iconName: 'user',\r\n routeLink: `operative/${this.operativeDocumentSummary.operativeId}`\r\n } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.operativeDocumentSummary.originalFilename, iconName: 'book' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private appendDocumentUploadRequest() {\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', this.tempDocumentSummary.documentTypeId);\r\n this.documentUploadRequest.append('ExtraDescription', this.tempDocumentSummary.extraDescription);\r\n if (this.tempDocumentSummary.documentTypeId === '00000000-0000-0000-0000-000000000000') {\r\n this.documentUploadRequest.append('OtherDocumentType', this.tempDocumentSummary.documentType);\r\n }\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n if (this.tempDocumentSummary.reviewDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentReviewDate', this.tempDocumentSummary.reviewDate.dateTime);\r\n }\r\n if (this.tempDocumentSummary.expiryDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentExpiryDate', this.tempDocumentSummary.expiryDate.dateTime);\r\n }\r\n this.documentUploadRequest.append('DocumentCreationDate', this.tempDocumentSummary.documentCreationDate.dateTime);\r\n }\r\n\r\n editClicked() {\r\n if (this.opDetailsContainerComponent.isCollapsed) {\r\n //this.opDetailsContainerComponent.expandClicked();\r\n this.opDetailsContainerComponent.panelToggle();\r\n }\r\n this.isEditing = true;\r\n }\r\n\r\n cancelClicked() {\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.operativeDocumentSummary);\r\n this.isEditing = false;\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n formStatusChange(formIsValid: any) {\r\n this.formIsValid = formIsValid;\r\n }\r\n\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n initOperativeDocument() {\r\n this.isEditing = false;\r\n this.documentUploadRequest = new FormData();\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.operativeDocumentSummary);\r\n }\r\n}\r\n","\r\n \r\n

\r\n \r\n Document For - {{this.operativeDocumentSummary.operativeFullName}}\r\n \r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Document Details\r\n \r\n\r\n \r\n Document Details - {{operativeDocumentSummary.originalFilename}}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Observations\r\n \r\n
\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, ViewEncapsulation } from '@angular/core';\r\nimport { IOperativeDocumentSummary } from '../../../message-models/operative-document-summary.interface';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { DocumentEntityType, DocumentEntityTypeString } from '../../../message-models/document-entity-type.enum';\r\nimport { OperativeDocumentService } from '../../services/operative-document.service';\r\nimport { Router } from '@angular/router';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { CompanyDocumentService } from '../../../company/services/company-documents.service';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { IAllowedOperations, IUserInfo } from 'src/app/users/models/userInfo.interface';\r\nimport { consts } from 'src/app/common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { OurUserService } from 'src/app/users/services/user.service';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { IHelpInfo } from '../../../help/models/i-help-info.interface';\r\nimport { EcaConfirmDeleteModalOptions } from \"../../../shared/models/confirm-delete-modal-options.class\";\r\n\r\n@Component({\r\n selector: 'app-operative-documents-page',\r\n templateUrl: './operative-documents-page.component.html',\r\n styleUrls: ['./operative-documents-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class OperativeDocumentsPageComponent implements OnInit, OnDestroy {\r\n operativeDocumentSummaries: IDocumentSummaryInfo[];\r\n loading: boolean;\r\n operativeDocumentsLoading: boolean = true;\r\n public loggedInUser: IUserInfo;\r\n private companyId: string = consts.emptyGuid;\r\n public operativeUpdateOperations: IAllowedOperations = {} as IAllowedOperations;\r\n private loggedInUserSubscription: Subscription;\r\n\r\n constructor(private operativeDocumentService: OperativeDocumentService,\r\n private companyDocumentService: CompanyDocumentService,\r\n private documentService: DocumentService,\r\n private documentModalService: DocumentModalService,\r\n private router: Router,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private helpService: HelpModalService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private errorHandlingService: ErrorHandlingService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(() => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.updateUserAndReload(user);\r\n this.populateBreadcrumbs();\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.loggedInUser?.operativeOperations?.canUpdate)\r\n this.operativeUpdateOperations = { canInsert: true, canUpdate: true, canRetrieve: true, canDelete: true } as IAllowedOperations;\r\n else\r\n this.operativeUpdateOperations = {} as IAllowedOperations;\r\n if (this.companyId !== consts.emptyGuid || this.companyId !== undefined) {\r\n this.getOperativeDocumentSummaries();\r\n }\r\n }\r\n\r\n getOperativeDocumentSummaries(includeExpired: boolean = false) {\r\n this.companyDocumentService.getAllDocumentSummariesForOperatives(this.companyId, includeExpired).subscribe(operativeDocumentSummaries => {\r\n operativeDocumentSummaries.forEach(x => {\r\n x.entityTypeString = DocumentEntityTypeString[x.entityType];\r\n })\r\n this.operativeDocumentSummaries = operativeDocumentSummaries;\r\n this.operativeDocumentsLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n downloadOperativeDocument(operativeDocuments: IOperativeDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(operativeDocuments, true);\r\n }\r\n\r\n openOperativeDocument(operativeDocuments: IOperativeDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(operativeDocuments);\r\n }\r\n\r\n deleteOperativeDocumentClick(operativeDocument: IOperativeDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete this document?',\r\n 'Delete ' + operativeDocument.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.operativeDocumentsLoading = true;\r\n this.deleteOperativeDocument(operativeDocument);\r\n }\r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n deleteOperativeDocument(operativeDocument: IOperativeDocumentSummary) {\r\n this.operativeDocumentService.deleteOperativeDocument(this.companyId, operativeDocument.documentId).subscribe(\r\n result => {\r\n if (result) {\r\n // const documentIndex = this.operativeDocuments.findIndex(c => c.documentId !== operativeDocument.documentId);\r\n // this.operativeDocuments.splice(documentIndex, 1);\r\n this.getOperativeDocumentSummaries();\r\n this.operativeDocumentsLoading = false;\r\n\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n editOperativeDocument(operativeDocumentSummary: IOperativeDocumentSummary) {\r\n this.documentModalService.openDocumentUploaderModal(operativeDocumentSummary, DocumentEntityType.employedPerson, 'Edit Operative Document').subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n this.operativeDocumentsLoading = true;\r\n documentUploadRequest.append('OperativeId', operativeDocumentSummary.operativeId);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.operativeDocumentService.createOrUpdateOperativeDocument(documentUploadRequest).subscribe(updatedOperativeDocumentsSummary => {\r\n this.loading = false;\r\n // const documentIndex = this.operativeDocuments.findIndex(d => d.documentId === operativeDocumentSummary.documentId);\r\n // this.operativeDocuments[documentIndex] = updatedOperativeDocumentsSummary;\r\n this.getOperativeDocumentSummaries();\r\n this.operativeDocumentsLoading = false;\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n viewOperativeDocument(operativeDocumentSummary: IOperativeDocumentSummary) {\r\n this.router.navigate(['operative-document', operativeDocumentSummary.documentId]);\r\n\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: 'Operative Documents', iconName: 'books' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n refreshDocuments(includeExpired: boolean) {\r\n this.getOperativeDocumentSummaries(includeExpired);\r\n }\r\n\r\n openOperativesDocumentsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.AllOperativeDocumentsHelp);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n

\r\n All Operative Documents \r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { DocumentEntityType, DocumentEntityTypeString } from '../../../message-models/document-entity-type.enum';\r\nimport { Router } from '@angular/router';\r\nimport { IAllowedOperations } from \"../../../users/models/userInfo.interface\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { ExportExcelService } from '../../../common/services/export-excel.service';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-operative-documents',\r\n templateUrl: './operative-documents.component.html',\r\n styleUrls: ['./operative-documents.component.scss']\r\n})\r\n\r\nexport class OperativeDocumentsComponent implements OnInit {\r\n documentEntityType = DocumentEntityType;\r\n @Input() showTableCaption: boolean;\r\n @Input() showHeaderText = true;\r\n @Input() headerText = 'Operative Documents';\r\n @Input() addDocumentButtonText = 'Add';\r\n @Input() showAddDocumentButton = true;\r\n isOnMobile = false;\r\n @Input() allowedOperations: IAllowedOperations;\r\n DocumentEntityTypeString: typeof DocumentEntityTypeString = DocumentEntityTypeString;\r\n @Input() operativeDocuments: Array = new Array();\r\n @Output() openDocument: EventEmitter = new EventEmitter();\r\n @Output() editDocument: EventEmitter = new EventEmitter();\r\n @Output() downloadDocument: EventEmitter = new EventEmitter();\r\n @Output() deleteDocument: EventEmitter = new EventEmitter();\r\n @Output() viewDocument: EventEmitter = new EventEmitter();\r\n @Output() addDocument: EventEmitter = new EventEmitter();\r\n @Output() refreshDocumentsRequested: EventEmitter = new EventEmitter();\r\n DocumentSummariesToExport: any[] = [];\r\n columns: any[];\r\n exportColumns: any[];\r\n expiredFilter = { includeExpired: false };\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private router: Router, private datePipe: DatePipe, private exportExcelService: ExportExcelService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.columns = [{ field: 'entityTypeString', header: 'Type', type: 'text' },\r\n { field: 'operativeFirstName', header: 'Operative First Name', type: 'text' },\r\n { field: 'operativeLastName', header: 'Operative Last Name', type: 'text' },\r\n { field: 'documentType', header: 'Document Type', type: 'text' },\r\n { field: 'originalFilename', header: 'Original Filename', type: 'text' },\r\n { field: 'documentCreationDate', header: 'Created On', type: 'date' },\r\n { field: 'expiryDate', header: 'Expires On', type: 'date' },\r\n { field: 'reviewDate', header: 'Review Due On', type: 'date' },\r\n { field: 'totalObservations', header: 'Observations', type: 'text' },\r\n ]\r\n this.exportColumns = [\r\n { field: 'entityTypeString', header: 'Type', type: 'text' },\r\n { field: 'operativeFirstName', header: 'Operative First Name', type: 'text' },\r\n { field: 'operativeLastName', header: 'Operative Last Name', type: 'text' },\r\n { field: 'documentType', header: 'Document Type', type: 'text' },\r\n { field: 'originalFilename', header: 'Original Filename', type: 'text' },\r\n { field: 'documentCreationDate', header: 'Created On', type: 'date' },\r\n { field: 'expiryDate', header: 'Expires On', type: 'date' },\r\n { field: 'reviewDate', header: 'Review Due On', type: 'date' },\r\n { field: 'totalObservations', header: 'Observations', type: 'text' },\r\n ]\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Preview',\r\n icon: 'fas fa-search',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openDocumentClicked($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadDocumentClicked($event)\r\n },\r\n {\r\n label: 'Delete',\r\n icon: 'fas fa-trash-alt',\r\n visible: this.allowedOperations?.canDelete,\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteDocumentClicked($event)\r\n }\r\n ]\r\n }\r\n\r\n openDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.openDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n deleteDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.deleteDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n downloadDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.downloadDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n editDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n this.editDocument.emit(operativeDocumentSummary);\r\n }\r\n\r\n addDocumentClicked() {\r\n this.addDocument.emit();\r\n }\r\n\r\n viewDocumentClicked(operativeDocumentSummary: IDocumentSummaryInfo) {\r\n if (operativeDocumentSummary.entityType === DocumentEntityType.employedPerson) {\r\n this.router.navigate(['/operative-document/', operativeDocumentSummary.documentId]);\r\n }\r\n else if (operativeDocumentSummary.entityType === DocumentEntityType.trainingRecord) {\r\n this.router.navigate(['/training-record-document/', operativeDocumentSummary.documentId]);\r\n }\r\n else if (operativeDocumentSummary.entityType === DocumentEntityType.observation) {\r\n this.router.navigate(['/observation-document/', operativeDocumentSummary.documentId]);\r\n }\r\n }\r\n\r\n expiredFilterChanged() {\r\n this.refreshDocumentsRequested.emit(this.expiredFilter.includeExpired);\r\n }\r\n\r\n exportToExcel() {\r\n this.DocumentSummariesToExport = [];\r\n this.operativeDocuments.forEach(element => {\r\n const tempObject = {\r\n entityTypeString: element.entityTypeString,\r\n operativeFirstName: element.operativeFirstName,\r\n operativeLastName: element.operativeLastName,\r\n documentType: element.documentType,\r\n originalFilename: element.originalFilename,\r\n documentCreationDate: this.datePipe.transform(element.documentCreationDate?.dateTime, 'dd/MM/yyyy'),\r\n reviewDate: this.datePipe.transform(element.reviewDate?.dateTime, 'dd/MM/yyyy'),\r\n expiryDate: this.datePipe.transform(element.expiryDate?.dateTime, 'dd/MM/yyyy'),\r\n totalObservations: element.totalObservations\r\n };\r\n this.DocumentSummariesToExport.push(tempObject);\r\n });\r\n this.exportExcelService.exportToExcel(this.DocumentSummariesToExport, this.exportColumns, 'AllOperativeDocuments')\r\n }\r\n}\r\n","
\r\n
\r\n 5\" scrollHeight=\"500px\"\r\n [globalFilterFields]=\"['documentType', 'entityTypeString','operativeFullName','operativeFirstName','operativeLastName','originalFilename','documentCreationDate.dateTime','expiryDate.dateTime',\r\n 'reviewDate.dateTime', 'totalObservations']\" [responsive]=\"true\" [columns]=\"columns\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ operativeDocuments.length }}\r\n {{headerText}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \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 \r\n \r\n Operative First Name\r\n \r\n \r\n \r\n Operative Last Name\r\n \r\n \r\n \r\n Document Type\r\n \r\n \r\n \r\n Original Filename\r\n \r\n \r\n \r\n Created On\r\n \r\n \r\n \r\n Expires On\r\n \r\n \r\n \r\n Review Due On\r\n \r\n \r\n \r\n Observations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n
\r\n \r\n {{operativeDocument[col.field]}}\r\n \r\n \r\n {{operativeDocument[col.field]}}\r\n \r\n \r\n {{operativeDocument[col.field]?.dateTime | date:'dd/MM/yyyy'}}\r\n \r\n \r\n {{DocumentEntityTypeString[ operativeDocument[col.field]]}}\r\n \r\n
\r\n \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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IOperative } from \"../../../message-models/operative.interface\";\r\nimport { OperativeInfo } from \"../../../domain-model/operative-info.class\";\r\nimport { IJobTitleInfo } from \"../../../message-models/job-title.interface\";\r\nimport { IJobLevelInfo } from \"../../../message-models/job-level.interface\";\r\nimport { IRiskInfo } from \"../../../message-models/risk-info.interface\";\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { consts } from \"../../../common/modals/consts\";\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\n\r\n@Component({\r\n selector: 'app-operative-editor-modal',\r\n templateUrl: './operative-editor-modal.component.html',\r\n styleUrls: ['./operative-editor-modal.component.scss']\r\n})\r\nexport class OperativeEditorModalComponent implements OnInit {\r\n @Input() heading: string = \"Add New Operative\";\r\n @Input() editing: boolean = false;\r\n @Input() operative: OperativeInfo = new OperativeInfo();\r\n @Input() isNewOperative: boolean = false;\r\n @Input() allJobTitles: IJobTitleInfo[] = [];\r\n @Input() allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n @Input() allBusinessUnits: IBusinessUnitInfo[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allEmploymentStatuses: IEmploymentStatus[] = [];\r\n @Output() saveOperativeRequested: EventEmitter = new EventEmitter();\r\n @Output() cancelRequested: EventEmitter = new EventEmitter();\r\n showingHelp: boolean = false;\r\n helpMessage: string = 'With this screen you can add new operative to your company';\r\n submitted: boolean;\r\n\r\n constructor(private modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n saveOperative() {\r\n if (!this.operative.isValid || !this.validateEmail(this.operative.emailAddress)) {\r\n this.submitted = true;\r\n return;\r\n }\r\n this.saveOperativeRequested.emit(this.operative)\r\n this.modalRef.close();\r\n }\r\n\r\n editOperative() {\r\n this.editing = false;\r\n }\r\n\r\n cancelClicked() {\r\n this.cancelRequested.emit();\r\n this.modalRef.close();\r\n }\r\n\r\n getHeadingFromOperative() {\r\n if (!this.operative?.id || this.operative.id === consts.emptyGuid)\r\n return \"Add a New Operative\";\r\n\r\n return \"Update existing Operative\";\r\n }\r\n validateEmail(email: string) {\r\n if (email !== '') {\r\n let emailAddress = new UntypedFormControl(email,\r\n [Validators.email, Validators.pattern(\"^(?=.{1,64}@)[A-Za-z0-9_-]+(\\\\.[A-Za-z0-9_-]+)*@[^-][A-Za-z0-9-]+(\\\\.[A-Za-z0-9-]+)*(\\\\.[A-Za-z]{2,})$\")]);\r\n return emailAddress.valid;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{helpMessage}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\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, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { OperativeInfo } from 'src/app/domain-model/operative-info.class';\r\nimport { IJobTitleInfo } from \"../../../message-models/job-title.interface\";\r\nimport { IJobLevelInfo } from \"../../../message-models/job-level.interface\";\r\nimport { IRiskInfo } from \"../../../message-models/risk-info.interface\";\r\nimport { OperativesService } from \"../../services/operatives.service\";\r\nimport { consts } from \"../../../common/modals/consts\";\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { ElectricalWorkType } from '../../../message-models/electrical-work-type';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { CompanyJobRoleService } from '../../../setting/job-role/services/company-job-role.service';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\n\r\n@Component({\r\n selector: 'app-operative-editor',\r\n templateUrl: './operative-editor.component.html',\r\n styleUrls: ['./operative-editor.component.scss']\r\n})\r\nexport class OperativeEditorComponent implements OnInit {\r\n @Input() operative: OperativeInfo;\r\n @Input() isNewOperative: boolean = false;\r\n\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n @Input() allBusinessUnits: IBusinessUnitInfo[] = [];\r\n @Input() allJobTitles: IJobTitleInfo[] = [];\r\n @Input() allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allEmploymentStatuses: IEmploymentStatus[] = [];\r\n\r\n //Filtered lists based on current state\r\n filteredJobTitles: IJobTitleInfo[] = [];\r\n filteredJobLevels: IJobLevelInfo[] = [];\r\n filteredRisks: IRiskInfo[] = [];\r\n\r\n //Selected items\r\n selectedJobTitle: IJobTitleInfo;\r\n selectedJobLevel: IJobLevelInfo;\r\n selectedRisk: IRiskInfo;\r\n\r\n @Input() saveAttempted: boolean = false;\r\n @Output() saveOperativeRequested: EventEmitter = new EventEmitter();\r\n @Output() fileRemove: EventEmitter = new EventEmitter();\r\n @Output() fileUpload: EventEmitter = new EventEmitter();\r\n @Output() formStatusChange: EventEmitter = new EventEmitter();\r\n\r\n isQsRole: boolean;\r\n isNonElectricalJobRole: boolean;\r\n emailAddress: UntypedFormControl;\r\n editingOperativeDetails: boolean = false;\r\n isOnMobile: boolean = false;\r\n editingCurrentEngagement: boolean = false;\r\n matchingOperatives: OperativeInfo[];\r\n selectedLastName: string = \"\";\r\n operativeMaxDate: Date;\r\n operativeMinDate: Date;\r\n filetypeTooltip: string;\r\n maxFileSize: number = 1000000;\r\n acceptedFileTypes = '.png, .jpg, .jpeg,';\r\n operativeImageFile: File[] = [];\r\n showJobTitleUpdate: boolean;\r\n showJobLevelUpdate: boolean;\r\n businessUnitHelpText: string;\r\n\r\n selectedCompanyJobTitle: ICompanyJobTitle;\r\n defaultJobJevelId: string;\r\n loggedInUser: IUserInfo;\r\n selectedJobLevelId: string;\r\n\r\n columns: any[] = [\r\n { field: 'fullName', header: 'Name', type: 'text' },\r\n { field: 'referenceNumbers', header: 'Reference Nos', type: 'text' },\r\n { field: 'startedOn', header: 'Started On', type: 'date' },\r\n { field: 'endedOn', header: 'Ended On', type: 'date' }\r\n ];\r\n showMatchingOperatives = true;\r\n private tempSelectedLastName = '';\r\n\r\n constructor(private operativesService: OperativesService, private companyJobRoleService: CompanyJobRoleService, private userService: OurUserService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.editingOperativeDetails = this.isNewOperative;\r\n this.editingCurrentEngagement = this.isNewOperative;\r\n if (this.operative && this.operative?.latestEngagementFrom?.dateTime) {\r\n this.disableDatesPriorSelected(this.operative?.latestEngagementFrom);\r\n }\r\n if (this.isNewOperative) {\r\n this.operative.setDefaultEmploymentStatus(this.allEmploymentStatuses);\r\n }\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n });\r\n \r\n this.selectedJobTitle = this.allJobTitles.find(d => d.id == this.operative.currentJobTitleId);\r\n this.selectedJobLevel = this.allJobLevels.find(d => d.id == this.operative.currentJobLevelId);\r\n this.selectedRisk = this.allRisks.find(d => d.id == this.operative.currentRiskId);\r\n this.businessUnitHelpText = this.allBusinessUnits?.length < 1 ? \"You have no Business Units defined. This field is optional but if you wish to create some business units then please go to the Business Units tab on the settings page.\" : \"Choose the Business Unit that best suits the Operatives current role.\";\r\n }\r\n\r\n saveOperative() {\r\n this.saveOperativeRequested.emit(this.operative);\r\n }\r\n\r\n cancelEditing() {\r\n }\r\n\r\n lastNameChanged(lastNameStartsWith: string) {\r\n if (lastNameStartsWith === '' || !lastNameStartsWith.includes(this.tempSelectedLastName)) {\r\n this.showMatchingOperatives = true;\r\n }\r\n if (lastNameStartsWith && lastNameStartsWith.length > 2) {\r\n this.operativesService.findOperativesWithLastNameStartingWith(this.operative.companyId, lastNameStartsWith).subscribe(operatives => {\r\n this.matchingOperatives = operatives;\r\n });\r\n }\r\n else {\r\n this.matchingOperatives = [];\r\n }\r\n }\r\n\r\n isNewOperativeSelected() {\r\n if (!this.isNewOperative)\r\n return false;\r\n\r\n return !this.operative?.id || this.operative.id === consts.emptyGuid;\r\n }\r\n\r\n operativeSelected(operative: OperativeInfo) {\r\n if (operative) {\r\n this.matchingOperatives = [];\r\n\r\n this.operative.id = operative.id;\r\n this.operative.firstName = operative.firstName;\r\n this.operative.lastName = operative.lastName;\r\n this.operative.emailAddress = operative.emailAddress;\r\n this.operative.referenceNumbers = operative.referenceNumbers;\r\n this.operative.phoneNumber = operative.phoneNumber;\r\n this.operative.latestEngagementFrom = operative.latestEngagementFrom;\r\n this.operative.latestEngagementTo = operative.latestEngagementTo;\r\n this.operative.currentRiskId = operative.currentRiskId;\r\n this.operative.currentJobLevelId = operative.currentJobLevelId;\r\n this.operative.currentJobTitleId = operative.currentJobTitleId;\r\n this.operative.currentOperativeTypeId = operative.currentOperativeTypeId;\r\n this.operative.currentBusinessUnitId = operative.currentBusinessUnitId;\r\n }\r\n }\r\n\r\n disableDatesPriorSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.operativeMinDate = new Date(selectedDate.setDate(selectedDate.getDate() + 1));\r\n }\r\n\r\n disableDatesPostSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.operativeMaxDate = new Date(selectedDate.setDate(selectedDate.getDate() - 1));\r\n }\r\n\r\n getSelectedJobTitle(): IJobTitleInfo {\r\n return this.filteredJobTitles.find(t => t.id === this.operative.currentJobTitleId);\r\n }\r\n\r\n updateJobTitles(operativeTypeId: string, showUpdateAlert: boolean) {\r\n //this.showJobTitleUpdate = showUpdateAlert;\r\n this.operative.currentOperativeTypeId = operativeTypeId;\r\n\r\n if (operativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n this.filteredJobTitles = this.allCompanyJobTitles;\r\n this.selectedJobTitle = this.filteredJobTitles.find(x => x.id === this.operative.currentJobTitleId); \r\n }\r\n else {\r\n this.filteredJobTitles = this.allJobTitles.filter(f => f.operativeTypeId == this.operative.currentOperativeTypeId);\r\n this.selectedJobTitle = this.filteredJobTitles.find(x => x.id === this.operative.currentJobTitleId);\r\n }\r\n \r\n //job title not found so set to first value in filtered list\r\n if (!this.selectedJobTitle) {\r\n this.selectedJobTitle = this.filteredJobTitles[0];\r\n }\r\n this.operative.currentJobTitleId = this.selectedJobTitle?.id; \r\n this.updateJobLevel(this.operative.currentJobTitleId, showUpdateAlert);\r\n }\r\n\r\n updateJobLevel(jobTitleId: string, showUpdateAlert: boolean) { \r\n this.operative.currentJobTitleId = jobTitleId; \r\n if (this.operative.currentOperativeTypeId == \"4eff2451-6793-4590-82c1-fc189dc47859\") {\r\n this.selectedCompanyJobTitle = this.allCompanyJobTitles.find(x => x.id === this.operative.currentJobTitleId);\r\n this.isQsRole = false;\r\n this.isNonElectricalJobRole = true;\r\n //this.defaultJobJevelId = this.selectedCompanyJobTitle.defaultJobLevelId;\r\n this.defaultJobJevelId = this.allCompanyJobTitles.find(x => x.id === this.operative.currentJobTitleId)?.defaultJobLevelId;\r\n\r\n }\r\n else {\r\n this.isQsRole = this.filteredJobTitles.find(d => d.id === jobTitleId)?.electricalWorkType == ElectricalWorkType.QualifiedSupervisor;\r\n this.isNonElectricalJobRole = this.filteredJobTitles.find(d => d.id === jobTitleId)?.electricalWorkType == ElectricalWorkType.NonElectrical;\r\n this.defaultJobJevelId = this.filteredJobTitles.find(d => d.id === jobTitleId)?.defaultJobLevelId;\r\n }\r\n \r\n if (this.isNonElectricalJobRole) {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.index === 0);\r\n }\r\n else if (this.isQsRole) {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.id == this.defaultJobJevelId);\r\n }\r\n else {\r\n this.filteredJobLevels = this.allJobLevels.filter(f => f.operativeTypeId == this.operative.currentOperativeTypeId).sort((a, b) => a.index - b.index);\r\n }\r\n //this.selectedJobLevel = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId);\r\n this.selectedJobLevelId = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId)?.id;\r\n //job level not found so set to default value for the selected job title\r\n if (!this.selectedJobLevelId) {\r\n //var defaultJobJevel = this.selectedJobTitle.defaultJobLevelId;\r\n //this.selectedJobLevel = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId)?.id;\r\n this.selectedJobLevelId = this.filteredJobLevels.find(x => x.id === this.defaultJobJevelId)?.id;\r\n\r\n }\r\n //this.operative.currentJobLevelId = this.selectedJobLevel?.id;\r\n this.operative.currentJobLevelId = this.selectedJobLevelId;\r\n this.updateRisk(this.operative.currentJobLevelId);\r\n }\r\n\r\n updateRisk(jobLevelId: string) {\r\n this.operative.currentJobLevelId = jobLevelId;\r\n if (this.isNonElectricalJobRole) {\r\n this.filteredRisks = this.allRisks.filter(f => f.index === 0);\r\n }\r\n else {\r\n this.filteredRisks = this.allRisks.filter(f => f.operativeTypeId == this.operative.currentOperativeTypeId).sort((a, b) => a.index - b.index);\r\n }\r\n this.selectedRisk = this.filteredRisks.find(x => x.id === this.operative.currentRiskId);\r\n //risk not found so set to first value in filtered list\r\n if (!this.selectedRisk) {\r\n this.selectedRisk = this.filteredRisks[0];\r\n }\r\n this.operative.currentRiskId = this.selectedRisk?.id;\r\n }\r\n\r\n validateEmail(emailAddress: string) {\r\n this.emailAddress = new UntypedFormControl(emailAddress,\r\n [Validators.email, Validators.pattern(\"^(?=.{1,64}@)[A-Za-z0-9_-]+(\\\\.[A-Za-z0-9_-]+)*@[^-][A-Za-z0-9-]+(\\\\.[A-Za-z0-9-]+)*(\\\\.[A-Za-z]{2,})$\")]);\r\n if (this.editingOperativeDetails) {\r\n return this.emailAddress.valid;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n hideMatchingOperative() {\r\n this.showMatchingOperatives = false;\r\n this.tempSelectedLastName = this.selectedLastName;\r\n }\r\n\r\n addOperativeImage(imageString: string) {\r\n this.operative.image = imageString;\r\n }\r\n}\r\n","
\r\n

Personal Details

\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \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 && showMatchingOperatives\">\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Similar past or present operatives\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n 5\" scrollHeight=\"500px\" [responsive]=\"true\"\r\n [columns]=\"columns\">\r\n \r\n \r\n Name\r\n Reference Nos\r\n Started On\r\n Ended On\r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n {{operative[col.field]}}\r\n \r\n \r\n {{ operative[col.field] }}\r\n \r\n \r\n {{ operative[col.field] | date : 'dd/MM/yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Engagement Details

\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ICompanyEngagementHistory } from \"../../../message-models/company-engagement-history.interface\";\r\nimport { CompanyEngagementHistory } from \"../../../message-models/company-engagement-history.class\";\r\nimport { EngagementModalService } from \"../../services/engagement-modal.service\";\r\nimport { IOperative } from \"../../../message-models/operative.interface\";\r\nimport { OperativeInfo } from \"../../../domain-model/operative-info.class\";\r\nimport { IJobTitleInfo } from \"../../../message-models/job-title.interface\";\r\nimport { IRiskInfo } from \"../../../message-models/risk-info.interface\";\r\nimport { IJobLevelInfo } from \"../../../message-models/job-level.interface\";\r\nimport { OperativesService } from \"../../services/operatives.service\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { ExportExcelService } from 'src/app/common/services/export-excel.service';\r\nimport { IAllowedOperations } from \"../../../users/models/userInfo.interface\";\r\nimport { DegreeOfSupervisionString, RiskMatrixLevel } from \"../../../message-models/risk-matrix-level.enum\";\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\n\r\n@Component({\r\n selector: 'app-operative-history',\r\n templateUrl: './operative-history.component.html',\r\n styleUrls: ['./operative-history.component.scss']\r\n})\r\nexport class OperativeHistoryComponent implements OnInit {\r\n @Input() engagementHistory: CompanyEngagementHistory[] = [];\r\n @Input() operative: OperativeInfo = {} as OperativeInfo;\r\n\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n @Input() allBusinessUnits: IBusinessUnitInfo[] = [];\r\n @Input() allJobTitles: IJobTitleInfo[] = [];\r\n @Input() allCompanyJobTitles: ICompanyJobTitle[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() allRisks: IRiskInfo[] = [];\r\n @Input() allEmploymentStatuses: IEmploymentStatus[] = [];\r\n\r\n @Input() allowOperations: IAllowedOperations = {} as IAllowedOperations;\r\n @Input() addButtonText = 'Add';\r\n\r\n @Output() addRoleHistoryRequested: EventEmitter = new EventEmitter();\r\n @Output() deleteRoleHistoryRequested: EventEmitter = new EventEmitter();\r\n @Output() refreshOperativeSuggested: EventEmitter = new EventEmitter();\r\n\r\n columns: any[];\r\n exportColumns: any[];\r\n engagementHistoriesToExport: any[] = [];\r\n operativeHistoryLoading: boolean = false;\r\n degreeOfSupervisionString: typeof DegreeOfSupervisionString = DegreeOfSupervisionString;\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor(private engagementModalService: EngagementModalService, private operativesService: OperativesService,\r\n private datePipe: DatePipe, private exportExcelService: ExportExcelService) { }\r\n isOnMobile: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n // this.engagementHistory?.forEach(item => {\r\n // item.supervisionString = item.jobTitle?.name === 'Qualified Supervisor' ? 'QS' : this.degreeOfSupervisionString[item.riskMatrixLevel];\r\n // })\r\n this.columns = [{ field: 'from', header: 'From', type: 'date' },\r\n { field: 'to', header: 'To', type: 'date' },\r\n { field: 'businessUnit', header: 'Business Unit', type: 'text' },\r\n { field: 'operativeType', header: 'Operative Type', type: 'text' },\r\n { field: 'jobTitle', header: 'Job Role', type: 'text' },\r\n { field: 'risk', header: 'Work Risk', type: 'text' },\r\n { field: 'jobLevel', header: 'Job Level', type: 'text' },\r\n //{ field: 'employmentStatus', header: 'Employment Status', type: 'text' },\r\n { field: 'riskMatrixLevel', header: 'Supervision', type: 'enum' }\r\n ];\r\n this.exportColumns = [{ field: 'from', header: 'From' },\r\n { field: 'to', header: 'To' },\r\n { field: 'businessUnit', header: 'Business Unit' },\r\n { field: 'operativeType', header: 'Operative Type' },\r\n { field: 'jobTitle', header: 'Job Role' },\r\n { field: 'risk', header: 'Work Risk' },\r\n { field: 'jobLevel', header: 'Job Level' },\r\n //{ field: 'employmentStatus', header: 'Employment Status', type: 'text' },\r\n { field: 'riskMatrixLevel', header: 'Supervision', type: 'enum' }\r\n ];\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteRoleHistoryClicked($event)\r\n }\r\n ]\r\n }\r\n\r\n addHistoryEntry() {\r\n this.addRoleHistoryRequested.emit(true);\r\n }\r\n\r\n viewEngagement(engagement: ICompanyEngagementHistory, openInEdit: boolean = false) {\r\n this.engagementModalService.openEngagementEditorModal(\r\n \"Role for \" + this.operative.getFullName(),\r\n this.allJobTitles,\r\n this.allCompanyJobTitles,\r\n this.allJobLevels,\r\n this.allRisks,\r\n this.allOperativeTypes,\r\n this.allBusinessUnits,\r\n this.allEmploymentStatuses,\r\n openInEdit,\r\n engagement).subscribe(modalRef => {\r\n modalRef.content.cancelEngagementClicked.subscribe(result => {\r\n this.engagementModalService.engagementModalRef.dynamicDialogRef.close();\r\n });\r\n modalRef.content.saveEngagementClicked.subscribe(engagement => {\r\n this.operativeHistoryLoading = true;\r\n this.engagementModalService.engagementModalRef.dynamicDialogRef.close();\r\n this.operativesService.createOrUpdateEngagement(engagement).subscribe(engagement => {\r\n this.operativeHistoryLoading = false;\r\n this.refreshOperativeSuggested.emit(true);\r\n });\r\n })\r\n })\r\n }\r\n\r\n exportToExcel() {\r\n this.engagementHistoriesToExport = [];\r\n this.engagementHistory.forEach(element => {\r\n const tempObject = {\r\n from: this.datePipe.transform(element.from?.dateTime, 'dd/MM/yyyy'),\r\n to: this.datePipe.transform(element.to?.dateTime, 'dd/MM/yyyy'),\r\n businessUnit: element.businessUnit?.name,\r\n operativeType: element.operativeType?.name,\r\n jobTitle: element.jobTitle?.name,\r\n risk: element.risk?.name,\r\n jobLevel: element.jobLevel?.name,\r\n employmentStatus: element.employmentStatus?.name,\r\n riskMatrixLevel: element.supervisionString\r\n // riskMatrixLevel: this.degreeOfSupervisionString[element?.riskMatrixLevel]\r\n };\r\n\r\n this.engagementHistoriesToExport.push(tempObject);\r\n });\r\n this.exportExcelService.exportToExcel(this.engagementHistoriesToExport, this.exportColumns, 'OperativeRoles');\r\n\r\n }\r\n\r\n deleteRoleHistoryClicked(roleHistory: ICompanyEngagementHistory) {\r\n this.deleteRoleHistoryRequested.emit(roleHistory);\r\n }\r\n\r\n getEngagementRiskColour(history: ICompanyEngagementHistory) {\r\n switch (history.riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'darkgreen';\r\n case RiskMatrixLevel.warning:\r\n return 'darkorange';\r\n case RiskMatrixLevel.danger:\r\n return 'red';\r\n }\r\n return 'black';\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 5\" scrollHeight=\"500px\"\r\n [responsive]=\"true\" [columns]=\"columns\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ engagementHistory.length }}\r\n Roles\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n From\r\n \r\n \r\n \r\n To\r\n \r\n \r\n \r\n Business Unit\r\n \r\n \r\n \r\n Operative Type\r\n \r\n \r\n \r\n Job Role\r\n \r\n \r\n \r\n Work Risk\r\n \r\n \r\n \r\n Job Level\r\n \r\n \r\n \r\n \r\n Supervision\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \r\n 1\"\r\n [rowMenuItems]=\"rowMenuItems\"\r\n [contextItem]=\"history\">\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { OperativesService } from 'src/app/operatives/services/operatives.service';\r\nimport { IRiskInfo } from 'src/app/message-models/risk-info.interface';\r\nimport { OperativeInfo } from 'src/app/domain-model/operative-info.class';\r\nimport { IRiskMatrixEntry } from 'src/app/message-models/risk-matrix-entry.interface';\r\nimport { IJobLevelInfo } from 'src/app/message-models/job-level.interface';\r\nimport { Router } from '@angular/router';\r\nimport { TrainingRecordModalService } from '../../../training-records/services/training-record-modal.service';\r\nimport { IJobTitleInfo } from '../../../message-models/job-title.interface';\r\nimport { DegreeOfSupervisionString, RiskMatrixLevel, RiskMatrixLevelString } from '../../../message-models/risk-matrix-level.enum';\r\nimport { Table } from 'primeng/table';\r\nimport { TrainingRecord } from '../../../domain-model/training-record.class';\r\nimport { ITrainingRecord } from '../../../message-models/training-record.interface';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\nimport { TrainingRecordsService } from '../../../training-records/services/training-records.service';\r\nimport { OperativeModalService } from '../../services/operative-modal.service';\r\nimport { DateTimeWithZone } from '../../../common/date-time-with-zone.class';\r\nimport { ExtendedJobLevel } from '../../../message-models/extended-job-level.class';\r\nimport { ExtendedRiskInfo } from '../../../message-models/extended-risk-info.class';\r\nimport { IAllowedOperations, IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { ExportExcelService } from 'src/app/common/services/export-excel.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { TrainingRecordDocumentService } from '../../../training-records/services/training-record-document.service';\r\nimport { IEmploymentStatus } from '../../../message-models/employment-status.interface';\r\nimport { isToday } from \"date-fns\";\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { CompanyJobRoleService } from '../../../setting/job-role/services/company-job-role.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { consts } from '../../../common/modals/consts';\r\n\r\n@Component({\r\n selector: 'app-operative-list',\r\n templateUrl: './operative-list.component.html',\r\n styleUrls: ['./operative-list.component.scss']\r\n})\r\n\r\nexport class OperativeListComponent implements OnInit, AfterViewInit {\r\n @Input() operatives: OperativeInfo[] = [];\r\n @Input() companyId: string;\r\n @Input() showTitleBar: boolean = true;\r\n @Input() showFilters: boolean = true;\r\n @Input() showMultiSelect: boolean = true;\r\n @Input() showOperativeMenus: boolean = true;\r\n @Input() showRowControllerButtons: boolean = true;\r\n @Input() isShowAllButtonVisible: boolean = false;\r\n \r\n searchFilter: string = '';\r\n @Output() searchFilterChange: EventEmitter = new EventEmitter();\r\n @Input() loadedOperativesSubject: BehaviorSubject;\r\n @ViewChild('operativesTable') operativesTable: Table;\r\n @Input() allowedOperations: IAllowedOperations = {} as IAllowedOperations;\r\n @Output() refreshOperativesRequested: EventEmitter = new EventEmitter();\r\n @Output() asOfDate: EventEmitter = new EventEmitter();\r\n @Output() loadAllHistoryOperatives: EventEmitter = new EventEmitter();\r\n @Output() addOperativeTrainingRecordClicked: EventEmitter = new EventEmitter();\r\n loadingOperatives: boolean = false;\r\n showAll: boolean = true;\r\n riskMatrixLevelString: typeof RiskMatrixLevelString = RiskMatrixLevelString;\r\n degreeOfSupervisionString: typeof DegreeOfSupervisionString = DegreeOfSupervisionString;\r\n private _allEmploymentStatuses: IEmploymentStatus[] = [];\r\n allEmploymentStatusesOptions: any[] = [];\r\n matrixColumns: any[];\r\n\r\n\r\n @Input() set allEmploymentStatuses(employmentStatuses: IEmploymentStatus[]) {\r\n this._allEmploymentStatuses = employmentStatuses;\r\n if (!employmentStatuses) {\r\n return;\r\n }\r\n employmentStatuses?.forEach(r => {\r\n this.allEmploymentStatusesOptions.push({ label: r.name, value: r.id });\r\n });\r\n }\r\n\r\n get allEmploymentStatuses(): IEmploymentStatus[] {\r\n return this._allEmploymentStatuses;\r\n }\r\n\r\n private _allRisks: IRiskInfo[] = [];\r\n allRiskOptions: any[] = [];\r\n\r\n private trainingRecordTypes: ITrainingType[] = [];\r\n\r\n @Input() set allRisks(risks: IRiskInfo[]) {\r\n this._allRisks = risks;\r\n if (!risks) {\r\n return;\r\n }\r\n\r\n risks?.forEach(r => {\r\n this.allRiskOptions.push({ label: r.name, value: r.id });\r\n });\r\n }\r\n\r\n get allRisks(): IRiskInfo[] {\r\n return this._allRisks;\r\n }\r\n\r\n private _allJobLevels: IJobLevelInfo[] = [];\r\n allJobLevelOptions: any[] = [];\r\n\r\n @Input() set allJobLevels(jobLevels: IJobLevelInfo[]) {\r\n this._allJobLevels = jobLevels;\r\n if (!jobLevels) {\r\n return;\r\n }\r\n\r\n jobLevels?.forEach(r => {\r\n this.allJobLevelOptions.push({ label: r.name, value: r.id });\r\n });\r\n }\r\n\r\n get allJobLevels(): IJobLevelInfo[] {\r\n return this._allJobLevels;\r\n }\r\n\r\n private _allJobTitles: IJobTitleInfo[] = [];\r\n allJobTitleOptions: any[] = [];\r\n\r\n @Input() set allJobTitles(jobTitles: IJobTitleInfo[]) {\r\n this._allJobTitles = jobTitles;\r\n if (!jobTitles) {\r\n return;\r\n }\r\n\r\n jobTitles?.forEach(r => {\r\n this.allJobTitleOptions.push({ label: r?.name, value: r?.name });\r\n });\r\n }\r\n\r\n get allJobTitles(): IJobTitleInfo[] {\r\n console.log(this._allJobTitles);\r\n return this._allJobTitles;\r\n }\r\n /*company job title*/\r\n @Input() allCompanyJobTitles: ICompanyJobTitle[];\r\n \r\n /*Operative Types*/\r\n get allOperativeTypes(): IOperativeTypeInfo[] {\r\n return this._allOperativeTypes;\r\n }\r\n\r\n private _allOperativeTypes: IOperativeTypeInfo[] = [];\r\n allOperativeTypesOptions: any[] = [];\r\n\r\n @Input() set allOperativeTypes(operativeTypes: IOperativeTypeInfo[]) {\r\n this._allOperativeTypes = operativeTypes;\r\n if (!operativeTypes) {\r\n return;\r\n }\r\n\r\n operativeTypes?.forEach(r => {\r\n this.allOperativeTypesOptions.push({ label: r?.name, value: r?.id });\r\n });\r\n }\r\n \r\n\r\n /*Business Units*/\r\n get allBusinessUnits(): IBusinessUnitInfo[] {\r\n return this._allBusinessUnits;\r\n }\r\n\r\n private _allBusinessUnits: IBusinessUnitInfo[] = [];\r\n allBusinessUnitsOptions: any[] = [];\r\n\r\n @Input() set allBusinessUnits(businessUnits: IBusinessUnitInfo[]) {\r\n this._allBusinessUnits = businessUnits;\r\n if (!businessUnits) {\r\n return;\r\n }\r\n\r\n businessUnits?.forEach(r => {\r\n this.allBusinessUnitsOptions.push({ label: r?.name, value: r?.name });\r\n });\r\n }\r\n\r\n \r\n private _riskMatrix: IRiskMatrixEntry[] = [];\r\n allRiskMatrixOptions: any[] = [];\r\n\r\n @Input() set riskMatrix(riskMatrix: IRiskMatrixEntry[]) {\r\n this._riskMatrix = riskMatrix;\r\n if (!riskMatrix) {\r\n return;\r\n }\r\n\r\n riskMatrix?.forEach(r => {\r\n if (!this.allRiskMatrixOptions.find(o => o.value === r?.riskMatrixLevel)) {\r\n this.allRiskMatrixOptions.push({ label: this.degreeOfSupervisionString[r?.riskMatrixLevel], value: r?.riskMatrixLevel });\r\n }\r\n });\r\n this.allRiskMatrixOptions = this.allRiskMatrixOptions.sort(this.sortMatrixOptions);\r\n }\r\n\r\n get riskMatrix(): IRiskMatrixEntry[] {\r\n return this._riskMatrix;\r\n }\r\n\r\n private sortMatrixOptions(value1: any, value2: any): number {\r\n if (value1.value < value2.value) {\r\n return -1;\r\n }\r\n if (value1.value > value2.value) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n columns: any[];\r\n tableColumns: any[];\r\n exportColumns: any[];\r\n operativeListToExport: any[] = [];\r\n @ViewChild('tt') table: Table;\r\n hoverImg: any = '';\r\n selectedOperatives: OperativeInfo[] = [];\r\n operativesAsOf: DateTimeWithZone = new DateTimeWithZone();\r\n disableAsOfDate: boolean;\r\n rowMenuItems: MenuItem[];\r\n first: number = 1;\r\n loggedInUser: IUserInfo;\r\n \r\n constructor(private trainingRecordModalService: TrainingRecordModalService,\r\n private trainingRecordsService: TrainingRecordsService,\r\n private operativesService: OperativesService,\r\n private operativeModalService: OperativeModalService,\r\n private router: Router,\r\n private datePipe: DatePipe,\r\n private trainingRecordDocumentService: TrainingRecordDocumentService,\r\n private documentModalService: DocumentModalService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n private userService: OurUserService,\r\n private exportExcelService: ExportExcelService) {\r\n }\r\n\r\n isOnMobile: boolean = false;\r\n ngOnInit(): void {\r\n \r\n this.initialiseColumnDataTableColumns();\r\n this.operativesAsOf = new DateTimeWithZone({ dateTime: new Date().toISOString(), timeZone: '' });\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Add Training Record',\r\n icon: 'fas fa-graduation-cap',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.addOperativeTrainingRecord($event)\r\n },\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.removeOperativeClicked($event)\r\n }\r\n ]\r\n\r\n this.matrixColumns = [\r\n { field: 'operativeName', header: 'Operative Name' },\r\n { field: 'businessUnit', header: 'Business Unit' },\r\n { field: 'operativeType', header: 'Operative Type' },\r\n { field: 'jobTitle', header: 'Job Title' },\r\n { field: 'course_1', header: 'Course 1' },\r\n { field: 'course_2', header: 'Course 2' },\r\n { field: 'course_3', header: 'Course 3' },\r\n { field: 'course_4', header: 'Course 4' },\r\n { field: 'course_5', header: 'Course 5' },\r\n { field: 'course_6', header: 'Course 6' },\r\n { field: 'course_7', header: 'Course 7' },\r\n { field: 'course_8', header: 'Course 8' },\r\n { field: 'course_9', header: 'Course 9' },\r\n { field: 'course_10', header: 'Course 10' },\r\n { field: 'course_11', header: 'Course 11' },\r\n { field: 'course_12', header: 'Course 12' },\r\n { field: 'course_13', header: 'Course 13' },\r\n { field: 'course_14', header: 'Course 14' },\r\n { field: 'course_15', header: 'Course 15' },\r\n { field: 'course_16', header: 'Course 16' },\r\n { field: 'course_17', header: 'Course 17' },\r\n { field: 'course_18', header: 'Course 18' },\r\n { field: 'course_19', header: 'Course 19' },\r\n { field: 'course_20', header: 'Course 20' },\r\n { field: 'course_21', header: 'Course 21' },\r\n { field: 'course_22', header: 'Course 22' },\r\n { field: 'course_23', header: 'Course 23' },\r\n { field: 'course_24', header: 'Course 24' },\r\n { field: 'course_25', header: 'Course 25' },\r\n { field: 'course_26', header: 'Course 26' },\r\n { field: 'course_27', header: 'Course 27' },\r\n { field: 'course_28', header: 'Course 28' },\r\n { field: 'course_29', header: 'Course 29' },\r\n { field: 'course_30', header: 'Course 30' },\r\n { field: 'course_31', header: 'Course 31' },\r\n { field: 'course_32', header: 'Course 32' },\r\n { field: 'course_33', header: 'Course 33' },\r\n { field: 'course_34', header: 'Course 34' },\r\n { field: 'course_35', header: 'Course 35' },\r\n { field: 'course_36', header: 'Course 36' },\r\n { field: 'course_37', header: 'Course 37' },\r\n { field: 'course_38', header: 'Course 38' },\r\n { field: 'course_39', header: 'Course 39' },\r\n { field: 'course_40', header: 'Course 40' },\r\n { field: 'course_41', header: 'Course 41' },\r\n { field: 'course_42', header: 'Course 42' },\r\n { field: 'course_43', header: 'Course 43' },\r\n { field: 'course_44', header: 'Course 44' },\r\n { field: 'course_45', header: 'Course 45' },\r\n { field: 'course_46', header: 'Course 46' },\r\n { field: 'course_47', header: 'Course 47' },\r\n { field: 'course_48', header: 'Course 48' },\r\n { field: 'course_49', header: 'Course 49' },\r\n { field: 'course_50', header: 'Course 50' },\r\n { field: 'course_51', header: 'Course 51' },\r\n { field: 'course_52', header: 'Course 52' },\r\n { field: 'course_53', header: 'Course 53' },\r\n { field: 'course_54', header: 'Course 54' },\r\n { field: 'course_55', header: 'Course 55' },\r\n { field: 'course_56', header: 'Course 56' },\r\n { field: 'course_57', header: 'Course 57' },\r\n { field: 'course_58', header: 'Course 58' },\r\n { field: 'course_59', header: 'Course 59' },\r\n { field: 'course_60', header: 'Course 60' },\r\n { field: 'course_61', header: 'Course 61' },\r\n { field: 'course_62', header: 'Course 62' },\r\n { field: 'course_63', header: 'Course 63' },\r\n { field: 'course_64', header: 'Course 64' },\r\n { field: 'course_65', header: 'Course 65' },\r\n { field: 'course_66', header: 'Course 66' },\r\n { field: 'course_67', header: 'Course 67' },\r\n { field: 'course_68', header: 'Course 68' },\r\n { field: 'course_69', header: 'Course 69' },\r\n { field: 'course_70', header: 'Course 70' },\r\n { field: 'course_71', header: 'Course 71' },\r\n { field: 'course_72', header: 'Course 72' },\r\n { field: 'course_73', header: 'Course 73' },\r\n { field: 'course_74', header: 'Course 74' },\r\n { field: 'course_75', header: 'Course 75' },\r\n ];\r\n }\r\n\r\n onFilter(event) {\r\n console.log('Filter event:', event);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.loadedOperativesSubject?.subscribe(loadedOperatives => {\r\n if (loadedOperatives) {\r\n this.operativesTable.filterGlobal(this.searchFilter, 'contains');\r\n }\r\n });\r\n }\r\n\r\n initialiseColumnDataTableColumns() {\r\n this.columns = null;\r\n this.columns = [\r\n { field: 'firstName', header: 'First Name', type: 'text' },\r\n { field: 'lastName', header: 'Last Name', type: 'text' },\r\n //{ field: 'referenceNumbers', header: 'Reference Nos', type: 'text' },\r\n { field: 'businessUnit', header: 'Business Unit', type: 'text' },\r\n { field: 'operativeType', header: 'Operative Type', type: 'text' },\r\n { field: 'jobTitle', header: 'Job Role', type: 'text' },\r\n { field: 'currentWorkRisk', header: 'Work Risk', type: 'object' },\r\n { field: 'jobLevel', header: 'Job Level', type: 'object' },\r\n //{ field: 'currentEmploymentStatus', header: 'Employment', type: 'object' },\r\n { field: 'currentRiskMatrixLevel', header: 'Supervision', type: 'object' },\r\n { field: 'startedOn', header: 'Start Date', type: 'date' },\r\n { field: 'nextObservationFollowUp', header: 'Observation Due', type: 'date' },\r\n { field: 'totalCPDHours', header: 'Total CPD Hours', type: 'text' }\r\n ];\r\n }\r\n\r\n formatDate(date) {\r\n let month = date.getMonth() + 1;\r\n let day = date.getDate();\r\n\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n\r\n if (day < 10) {\r\n day = '0' + day;\r\n }\r\n\r\n return date.getFullYear() + '-' + month + '-' + day;\r\n }\r\n\r\n onDateSelect(value) {\r\n this.table.filter(this.formatDate(value), 'date', 'equals');\r\n }\r\n\r\n viewOperativeClicked(operative: any) {\r\n this.router.navigateByUrl('/operative/' + operative.id);\r\n }\r\n\r\n getSupervisionLevel(riskMatrixLevel: RiskMatrixLevel): string {\r\n switch (riskMatrixLevel) {\r\n case RiskMatrixLevel.low:\r\n return 'Low';\r\n case RiskMatrixLevel.warning:\r\n return 'Medium';\r\n case RiskMatrixLevel.danger:\r\n return 'High';\r\n }\r\n return 'black';\r\n }\r\n\r\n private getTrainingTypesAndOpenModal() {\r\n this.trainingRecordsService.getTrainingTypesForCompany(this.companyId).subscribe(results => {\r\n this.trainingRecordTypes.length = 0;\r\n results.forEach(t => {\r\n this.trainingRecordTypes.push(t);\r\n });\r\n this.openTrainingRecordModal();\r\n });\r\n }\r\n\r\n private getTrainingTypes() {\r\n this.trainingRecordsService.getTrainingTypesForCompany(this.companyId).subscribe(results => {\r\n this.trainingRecordTypes.length = 0;\r\n results?.forEach(t => {\r\n this.trainingRecordTypes.push(t);\r\n });\r\n });\r\n }\r\n\r\n addTrainingToSelectedOperatives() {\r\n if (this.trainingRecordTypes.length == 0) {\r\n this.getTrainingTypesAndOpenModal();\r\n } else {\r\n this.openTrainingRecordModal();\r\n }\r\n }\r\n\r\n private openTrainingRecordModal() {\r\n this.trainingRecordModalService.openTrainingRecordEditorModal('Add New Training Record to ' + this.selectedOperatives.length + ' operatives',\r\n this.trainingRecordTypes, true, this.selectedOperatives.length > 1).subscribe(trainingRecordModalRef => {\r\n trainingRecordModalRef.content.saveTrainingRecordClicked.subscribe(trainingRecordResult => {\r\n if (trainingRecordResult !== null) {\r\n this.selectedOperatives?.forEach(operative => {\r\n let editedTrainingRecord = new TrainingRecord(trainingRecordResult as ITrainingRecord);\r\n editedTrainingRecord.operativeId = operative.id;\r\n this.loadingOperatives = true;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(editedTrainingRecord).subscribe(newTrainingRecord => {\r\n if (newTrainingRecord) {\r\n this.trainingRecordModalService.modalRef.dynamicDialogRef.close();\r\n }\r\n this.loadingOperatives = false;\r\n });\r\n });\r\n this.selectedOperatives = [];\r\n this.refreshOperativesRequested.emit(this.operativesAsOf.dateTime);\r\n }\r\n });\r\n if (this.selectedOperatives.length === 1) {\r\n trainingRecordModalRef.content.saveNewTrainingRecordDocumentRequested.subscribe(trainingRecordResult => {\r\n if (trainingRecordResult !== null) {\r\n\r\n let editedTrainingRecord = new TrainingRecord(trainingRecordResult as ITrainingRecord);\r\n editedTrainingRecord.operativeId = this.selectedOperatives[0].id;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(editedTrainingRecord).subscribe(newTrainingRecord => {\r\n if (newTrainingRecord) {\r\n this.trainingRecordModalService.modalRef.dynamicDialogRef.close();\r\n this.addTrainingRecordDocument(newTrainingRecord);\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n\r\n\r\n }\r\n });\r\n }\r\n\r\n trainingRecordModalRef.content.saveNewTrainingRecordTypeRequested.subscribe(newTrainingType => {\r\n if (newTrainingType !== null) {\r\n newTrainingType.companyId = this.companyId;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(newTrainingType).subscribe(trainingType => {\r\n if (trainingType) {\r\n this.getTrainingTypes();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n } \r\n\r\n public removeSelectedOperatives() {\r\n if (this.selectedOperatives.length === 0) {\r\n return;\r\n }\r\n\r\n let headerText = 'Confirm Removal of ' + this.selectedOperatives.length + ' Operatives';\r\n if (this.selectedOperatives.length === 1) {\r\n headerText = 'Confirm Removal of ' + this.selectedOperatives[0]?.firstName + ' ' + this.selectedOperatives[0]?.lastName;\r\n }\r\n\r\n this.operativeModalService.openConfirmLeaveOperativesModal(headerText)\r\n .subscribe(confirmLeaveModalRef => {\r\n confirmLeaveModalRef.content.removeOperativesRequested.subscribe(asOf => {\r\n if (asOf) {\r\n this.loadingOperatives = true;\r\n this.selectedOperatives?.forEach(operative => {\r\n this.operativesService.removeOperativeFromCompany(operative, asOf).subscribe(result => {\r\n this.selectedOperatives = [];\r\n this.loadingOperatives = false;\r\n this.refreshOperativesRequested.emit();\r\n });\r\n });\r\n } else if (this.selectedOperatives.length === 1) {\r\n this.selectedOperatives = [];\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n public removeOperativeClicked(operative: OperativeInfo) {\r\n this.selectedOperatives = [];\r\n this.selectedOperatives.push(operative);\r\n this.removeSelectedOperatives();\r\n }\r\n\r\n getOperativesAsOf() {\r\n if (this.operativesAsOf?.dateTime) {\r\n this.asOfDate.emit(this.operativesAsOf?.dateTime);\r\n } else {\r\n this.asOfDate.emit('');\r\n }\r\n this.refreshOperativesRequested.emit(this.operativesAsOf.dateTime);\r\n }\r\n\r\n addOperativeTrainingRecord(operative: OperativeInfo) {\r\n this.trainingRecordsService.getTrainingTypesForCompany(this.companyId).subscribe(results => {\r\n this.trainingRecordTypes.length = 0;\r\n results.forEach(t => {\r\n this.trainingRecordTypes.push(t);\r\n });\r\n this.trainingRecordModalService.openTrainingRecordEditorModal('Add New Training Record to ' + operative.fullName,\r\n this.trainingRecordTypes, true, false).subscribe(trainingRecordModalRef => {\r\n trainingRecordModalRef.content.saveTrainingRecordClicked.subscribe(trainingRecordResult => {\r\n if (trainingRecordResult !== null) {\r\n let editedTrainingRecord = new TrainingRecord(trainingRecordResult as ITrainingRecord);\r\n editedTrainingRecord.operativeId = operative.id;\r\n this.loadingOperatives = true;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(editedTrainingRecord).subscribe(newTrainingRecord => {\r\n if (newTrainingRecord) {\r\n this.trainingRecordModalService.modalRef.dynamicDialogRef.close();\r\n }\r\n this.loadingOperatives = false;\r\n });\r\n }\r\n });\r\n trainingRecordModalRef.content.saveNewTrainingRecordTypeRequested.subscribe(newTrainingType => {\r\n if (newTrainingType !== null) {\r\n newTrainingType.companyId = this.companyId;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(newTrainingType).subscribe(trainingType => {\r\n if (trainingType) {\r\n this.getTrainingTypes();\r\n }\r\n });\r\n }\r\n });\r\n trainingRecordModalRef.content.saveNewTrainingRecordDocumentRequested.subscribe(trainingRecordResult => {\r\n if (trainingRecordResult !== null) {\r\n let editedTrainingRecord = new TrainingRecord(trainingRecordResult as ITrainingRecord);\r\n editedTrainingRecord.operativeId = operative.id;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(editedTrainingRecord).subscribe(newTrainingRecord => {\r\n if (newTrainingRecord) {\r\n this.trainingRecordModalService.modalRef.dynamicDialogRef.close();\r\n this.addTrainingRecordDocument(newTrainingRecord);\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n addTrainingRecordDocument(trainingRecord: ITrainingRecord) {\r\n this.documentModalService.openDocumentUploaderModal({ documentCreationDate: trainingRecord?.achievedOn } as IEntityDocumentSummary\r\n , DocumentEntityType.trainingRecord, 'Add new document to ' + ' ' + trainingRecord?.trainingTypeName + ' training record')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('TrainingRecordId', trainingRecord?.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.trainingRecordDocumentService.createOrUpdateTrainingRecordDocument(documentUploadRequest)\r\n .subscribe(trainingRecordSummary => {\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning()?.subscribe(() => {\r\n });\r\n });\r\n this.selectedOperatives = [];\r\n });\r\n documentModalRef.content.cancelClicked?.subscribe(() => {\r\n documentModalRef.dynamicDialogRef.close();\r\n });\r\n });\r\n }\r\n\r\n addOperative() {\r\n const newOperative = new OperativeInfo();\r\n newOperative.companyId = this.companyId;\r\n\r\n newOperative.currentBusinessUnitId = consts.emptyGuid;\r\n const defaultEmploymentStatus = this.allEmploymentStatuses.find(s => s.isDefault);\r\n newOperative.currentEmploymentStatusId = defaultEmploymentStatus?.id;\r\n\r\n const jobLevels: ExtendedJobLevel[] = [];\r\n this.allJobLevels?.forEach(l => {\r\n jobLevels.push(new ExtendedJobLevel(l));\r\n });\r\n\r\n const risks: ExtendedRiskInfo[] = [];\r\n this.allRisks?.forEach(r => {\r\n risks.push(new ExtendedRiskInfo(r));\r\n });\r\n \r\n \r\n this.operativeModalService.openOperativeEditorModal(newOperative, 'Add a New Operative',\r\n this.allJobTitles, this.allCompanyJobTitles, jobLevels, risks, this.allEmploymentStatuses, this.allOperativeTypes, this.allBusinessUnits, true).subscribe(modalRef => {\r\n modalRef.content.saveOperativeRequested.subscribe(operative => {\r\n if (operative) {\r\n this.loadingOperatives = true;\r\n this.operativesService.createOrUpdateOperative(operative).subscribe(result => {\r\n if (result) {\r\n this.loadingOperatives = false;\r\n this.refreshOperativesRequested.emit();\r\n this.operativesAsOf = new DateTimeWithZone(result.latestEngagementFrom as IDateTimeWithZone);\r\n this.getOperativesAsOf();\r\n }\r\n });\r\n }\r\n this.loadingOperatives = false;\r\n });\r\n });\r\n }\r\n\r\n exportToExcel() {\r\n this.operativeListToExport = [];\r\n if (this.operativesAsOf?.dateTime) {\r\n this.exportColumns = null;\r\n this.exportColumns = [\r\n { field: 'firstName', header: 'First Name', type: 'text' },\r\n { field: 'lastName', header: 'Last Name', type: 'text' },\r\n { field: 'referenceNumbers', header: 'Reference Nos' },\r\n { field: 'businessUnit', header: 'Business Unit' },\r\n { field: 'operativeType', header: 'Operative Type' },\r\n { field: 'jobTitle', header: 'Job Role' },\r\n { field: 'currentRisk', header: 'Work Risk' },\r\n { field: 'currentJobLevel', header: 'Job Level' },\r\n { field: 'employmentStatus', header: 'Employment' },\r\n { field: 'riskMatrixLevel', header: 'Supervision' },\r\n { field: 'startedOn', header: 'Start Date' },\r\n { field: 'nextObservationFollowUp', header: 'Observation Due' },\r\n { field: 'endedOn', header: 'Ended On' + ' - (As of: ' + this.datePipe.transform(this.operativesAsOf?.dateTime, 'dd/MM/yyyy') + ')' },\r\n { field: 'totalCPDHours', header: 'Total CPD Hours' }\r\n\r\n ];\r\n } else {\r\n this.exportColumns = null;\r\n this.exportColumns = [\r\n { field: 'firstName', header: 'First Name', type: 'text' },\r\n { field: 'lastName', header: 'Last Name', type: 'text' },\r\n { field: 'referenceNumbers', header: 'Reference Nos' },\r\n { field: 'businessUnit', header: 'Business Unit' },\r\n { field: 'operativeType', header: 'Operative Type' },\r\n { field: 'jobTitle', header: 'Job Role' },\r\n { field: 'currentRisk', header: 'Work Risk' },\r\n { field: 'currentJobLevel', header: 'Job Level' },\r\n { field: 'employmentStatus', header: 'Employment' },\r\n { field: 'riskMatrixLevel', header: 'Supervision' },\r\n { field: 'startedOn', header: 'Start Date' },\r\n { field: 'nextObservationFollowUp', header: 'Observation Due' },\r\n { field: 'totalCPDHours', header: 'Total CPD Hours' }\r\n\r\n ];\r\n }\r\n this.operatives?.forEach(element => {\r\n const tempObject = {\r\n firstName: element?.firstName,\r\n lastName: element?.lastName,\r\n referenceNumbers: element?.referenceNumbers,\r\n businessUnit: element?.businessUnit,\r\n operativeType: element?.operativeType,\r\n jobTitle: element?.jobTitle,\r\n currentRisk: element?.currentRisk,\r\n currentJobLevel: element?.currentJobLevel,\r\n employmentStatus: element?.currentEmploymentStatus.label,\r\n riskMatrixLevel: element?.currentRiskMatrixLevel?.label,\r\n startedOn: this.datePipe.transform(element.latestEngagementFrom?.dateTime, 'dd/MM/yyyy'),\r\n nextObservationFollowUp: this.datePipe.transform(element?.nextObservationFollowUp, 'dd/MM/yyyy'),\r\n endedOn: this.datePipe.transform(element.latestEngagementTo?.dateTime, 'dd/MM/yyyy'),\r\n totalCPDHours: element?.totalCPDHours,\r\n };\r\n this.operativeListToExport.push(tempObject);\r\n\r\n });\r\n this.exportExcelService.exportToExcel(this.operativeListToExport, this.exportColumns, 'Operatives List')\r\n }\r\n\r\n exportTrainingMatrix() {\r\n //get data\r\n this.trainingRecordsService.getTrainingMatrixForCompany(this.companyId).subscribe(trainingMatrix => {\r\n //send for export\r\n this.exportExcelService.exportTrainingMatrix(trainingMatrix, this.matrixColumns, 'Company Operative Training Matrix')\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n\r\n });\r\n })\r\n };\r\n\r\n showAllToggled() {\r\n this.disableAsOfDate = !this.showAll;\r\n if (!this.showAll) {\r\n this.loadAllHistoryOperatives.emit(true);\r\n } else {\r\n this.getOperativesAsOf()\r\n }\r\n }\r\n\r\n showEndDate() {\r\n if (!this.showAll)\r\n return true;\r\n\r\n if (!this.operativesAsOf?.dateTime)\r\n return false;\r\n\r\n const filterDate = new Date(this.operativesAsOf.dateTime);\r\n return !isToday(filterDate);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 5\" scrollHeight=\"500px\" [columns]=\"columns\" [totalRecords]=\"operatives?.length\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ operatives.length }}\r\n Operatives\r\n 0\">({{ selectedOperatives.length }} Selected)\r\n
\r\n
\r\n
\r\n \r\n \r\n 0\"\r\n [btnText]=\"'Add Training Records to ' + selectedOperatives.length + ' Operatives' \"\r\n (btnClicked)=\"addTrainingToSelectedOperatives()\"\r\n btnIcon=\"plus-circle\" btnType=\"primary\">\r\n \r\n 0\"\r\n [btnText]=\"'Remove ' + selectedOperatives.length + ' Operatives'\"\r\n (btnClicked)=\"removeSelectedOperatives()\"\r\n btnIcon=\"trash-alt\" btnType=\"danger\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\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 Last Name\r\n \r\n \r\n \r\n Business Unit\r\n \r\n \r\n \r\n Operative Type\r\n \r\n \r\n \r\n Job Role\r\n \r\n \r\n \r\n Work Risk\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ option.label }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Job Level\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ option.label}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Supervision\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n {{ option.label }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n Observation Due\r\n \r\n \r\n \r\n Total CPD Hours\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 \r\n {{col.header}}: \r\n \r\n \r\n \r\n {{ operative?.endedOn | date:'dd/MM/yyyy' }}\r\n \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, EventEmitter, Input, OnInit, Output, Renderer2} from '@angular/core';\r\nimport {IObservation} from \"../../../message-models/observation.interface\";\r\nimport {ObservationType, ObservationTypeString} from '../../../domain-model/observation.class';\r\nimport {IObservationSummary} from '../../../message-models/observation-summary.interface';\r\nimport {consts} from '../../../common/modals/consts';\r\nimport {IAllowedOperations} from \"../../../users/models/userInfo.interface\";\r\n\r\n\r\n// import { trigger, transition, animate, style } from '@angular/animations'\r\n@Component({\r\n selector: 'app-operative-observations',\r\n templateUrl: './operative-observations.component.html',\r\n styleUrls: ['./operative-observations.component.scss']\r\n})\r\nexport class OperativeObservationsComponent implements OnInit {\r\n @Input() observations: IObservationSummary[] = [];\r\n @Input() companyId: string = consts.emptyGuid;\r\n @Input() allowedOperations: IAllowedOperations;\r\n @Input() addButtonText = 'Add';\r\n @Input() showWarningMessage: boolean = false;\r\n // @ViewChild(\"newObservation\", { read: ElementRef }) newObservation: ElementRef;\r\n @Output() createObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() editObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() viewObservationClicked: EventEmitter = new EventEmitter();\r\n addNewObservation: boolean;\r\n\r\n constructor(public renderer: Renderer2) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n createObservation(observation?: IObservation) {\r\n this.createObservationClicked.emit(observation);\r\n this.addNewObservation = true;\r\n }\r\n\r\n addNewObservationCancel() {\r\n this.addNewObservation = false;\r\n }\r\n\r\n viewObservation(observation?: IObservation) {\r\n this.viewObservationClicked.emit(observation)\r\n }\r\n editObservation(observation?: IObservation) {\r\n this.editObservationClicked.emit(observation);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ITrainingRecord } from \"../../../message-models/training-record.interface\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ITrainingRecordSummary } from '../../../message-models/training-record-summary.interface';\r\nimport { IAllowedOperations } from \"../../../users/models/userInfo.interface\";\r\nimport { ExportExcelService } from \"../../../common/services/export-excel.service\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\n\r\n@Component({\r\n selector: 'app-operative-training-records',\r\n templateUrl: './operative-training-records.component.html',\r\n styleUrls: ['./operative-training-records.component.scss']\r\n})\r\n\r\nexport class OperativeTrainingRecordsComponent implements OnInit {\r\n @Input() trainingRecords: Array = new Array();\r\n @Input() allowedOperations: IAllowedOperations;\r\n @Input() addButtonText = 'Add';\r\n @Input() showRowControllerButtons: boolean;\r\n @Input() totalCPDHours: number;\r\n @Input() trainingTypes: ITrainingType[] = [];\r\n @Output() addNewTrainingClicked: EventEmitter = new EventEmitter();\r\n @Output() deleteTrainingRecordClicked: EventEmitter = new EventEmitter();\r\n @Output() trainingRecordId: EventEmitter = new EventEmitter();\r\n @Output() addObservationClicked: EventEmitter = new EventEmitter();\r\n @Output() addDocumentClicked: EventEmitter = new EventEmitter();\r\n isOnMobile = false;\r\n columns: any[];\r\n exportColumns: any[];\r\n rowMenuItems: MenuItem[];\r\n trainingRecordsSummariesToExport: any[] = [];\r\n\r\n constructor(private router: Router, private datePipe: DatePipe,\r\n private exportExcelService: ExportExcelService) { }\r\n\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.columns = [\r\n { field: 'achievedOn', header: 'Achieved On', type: 'date' },\r\n { field: 'validTo', header: 'Valid To', type: 'date' },\r\n { field: 'trainingTypeName', header: 'Training Course', type: 'text' },\r\n { field: 'trainingExtraDescription', header: 'Description', type: 'html' },\r\n { field: 'categoryName', header: 'Category Name', type: 'text' },\r\n { field: 'totalObservations', header: 'Observations', type: 'text' },\r\n \r\n { field: 'cpdHour', header: 'CPD Hours', type: 'text' }\r\n ];\r\n this.exportColumns = [\r\n\r\n { field: 'trainingTypeName', header: 'Training Course' },\r\n { field: 'achievedOn', header: 'Achieved On' },\r\n { field: 'validTo', header: 'Valid To' },\r\n { field: 'trainingExtraDescription', header: 'Description' },\r\n { field: 'categoryName', header: 'Category Name', type: 'text' },\r\n { field: 'totalObservations', header: 'Observations' },\r\n\r\n { field: 'cpdHour', header: 'CPD Hours' }\r\n ];\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Add Observation',\r\n icon: 'fas fa-eye',\r\n visible: this.showRowControllerButtons,\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.addObservation($event)\r\n },\r\n {\r\n label: 'Add Document',\r\n icon: 'fas fa-books',\r\n visible: this.showRowControllerButtons,\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.addDocument($event)\r\n },\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteTrainingRecordRequested($event)\r\n }\r\n ]\r\n }\r\n\r\n addTrainingRecord() {\r\n this.addNewTrainingClicked.emit();\r\n }\r\n\r\n viewTrainingRecord(trainingRecord: ITrainingRecord) {\r\n if (!trainingRecord?.id)\r\n return;\r\n\r\n this.router.navigate([\"/training-record/\" + trainingRecord.id]);\r\n }\r\n\r\n exportToExcel() {\r\n this.trainingRecordsSummariesToExport = [];\r\n this.trainingRecords.forEach(element => {\r\n\r\n let temporalDivElement = document.createElement(\"div\");\r\n temporalDivElement.innerHTML = element.trainingExtraDescription;\r\n const tempObject = {\r\n achievedOn: this.datePipe.transform(element.achievedOn?.dateTime, 'dd/MM/yyyy'),\r\n validTo: this.datePipe.transform(element.validTo?.dateTime, 'dd/MM/yyyy'),\r\n trainingTypeName: element.trainingTypeName,\r\n trainingExtraDescription: temporalDivElement.textContent || temporalDivElement.innerText || \"\",\r\n categoryName: element.categoryName,\r\n totalObservations: element.totalObservations,\r\n \r\n cpdHour: element.cpdHour\r\n };\r\n this.trainingRecordsSummariesToExport.push(tempObject);\r\n });\r\n\r\n this.exportExcelService.exportToExcel(this.trainingRecordsSummariesToExport, this.exportColumns, 'OperativeTrainingRecords')\r\n }\r\n addObservation(trainingRecord: ITrainingRecord) {\r\n this.addObservationClicked.emit(trainingRecord.id);\r\n }\r\n addDocument(trainingRecord: ITrainingRecord) {\r\n this.addDocumentClicked.emit(trainingRecord);\r\n }\r\n deleteTrainingRecordRequested(trainingRecord: ITrainingRecord) {\r\n this.deleteTrainingRecordClicked.emit(trainingRecord);\r\n }\r\n}\r\n"," 5\" dataKey=\"id\" scrollHeight=\"500px\"\r\n [responsive]=\"true\" [columns]=\"columns\"\r\n [globalFilterFields]=\"['trainingType.description','trainingTypeName', 'trainingExtraDescription' , 'achievedOn.dateTime','validTo.dateTime', 'categoryName']\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ trainingRecords.length }}\r\n Training Records \r\n (Total CPD Hours: {{ totalCPDHours }})\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Achieved On\r\n \r\n \r\n \r\n Valid To\r\n \r\n \r\n \r\n Training Course\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n Category Name\r\n \r\n \r\n \r\n Observations\r\n \r\n \r\n\r\n \r\n CPD Hours\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { FileUpload } from \"primeng/fileupload\";\r\n\r\n@Component({\r\n selector: 'operative-upload-form',\r\n templateUrl: './operative-upload-form.component.html',\r\n styleUrls: ['./operative-upload-form.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OperativeUploadFormComponent implements OnInit {\r\n acceptedFileTypes = '.doc, .docx,.png, .jpg, .jpeg, .txt,.ppt, .pptx,.xls, .xlsx, .xlsm, .pdf';\r\n @ViewChild('documentUploadForm', { static: true }) documentUploadForm: NgForm;\r\n @ViewChild('uploader', { static: true }) uploader: FileUpload;\r\n @Input() isEditing = true;\r\n @Input() isViewOnly = false;\r\n @Input() saveAttempted: boolean = true;\r\n @Input() submitted: boolean = false;\r\n @Input() maxFileSize = 20971520; // TODO Get max file size from settings.. default to 20mb\r\n defaultFileName;\r\n // @Output() documentUploadFormChange: EventEmitter = new EventEmitter();\r\n @Input() documentTypes: IDocumentType[];\r\n @Input() documentSummary: IEntityDocumentSummary;\r\n @Output() formStatusChange: EventEmitter = new EventEmitter();\r\n @Output() canSave: EventEmitter = new EventEmitter();\r\n @Output() fileUpload: EventEmitter = new EventEmitter();\r\n @Output() fileRemove: EventEmitter = new EventEmitter();\r\n\r\n file: File;\r\n //errorMessage: string;\r\n //showErrorMessage = false;\r\n @Output() documentUploadRequest: EventEmitter = new EventEmitter();\r\n otherDocumentType: any;\r\n selectedDocumentTypeId: any;\r\n addingNewDocumentType: boolean;\r\n newDocumentType: any;\r\n saveNewDocumentTypeAttempted: any;\r\n tempFileName: string = '';\r\n creationMaxDate: Date = new Date(Date.now());\r\n selectedMaxDate: Date = new Date(Date.now());\r\n selectedMinDate: Date;\r\n filetypeTooltip: string;\r\n\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.documentSummary?.originalFilename !== '') {\r\n this.defaultFileName = this.documentSummary.originalFilename;\r\n }\r\n\r\n if (this.documentSummary.documentTypeId === '') {\r\n const defaultDocumentType = this.documentTypes.find(c => c.isDefault);\r\n if (defaultDocumentType) {\r\n this.documentSummary.documentTypeId = defaultDocumentType.id;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n onFileRemove(file?: File) {\r\n const index = this.uploader.files.indexOf(file);\r\n if (index > -1) {\r\n this.uploader.remove(null, index);\r\n }\r\n this.defaultFileName = this.tempFileName;\r\n this.documentSummary.originalFilename = this.tempFileName;\r\n this.fileRemove.emit(true);\r\n // this.formStatusChange.emit(false);\r\n }\r\n\r\n onFileAdd(event: any) {\r\n if (event?.files?.length > 0) {\r\n const file = event?.files[0];\r\n this.defaultFileName = file.name;\r\n this.fileUpload.emit(file);\r\n this.formStatusChange.emit(this.documentUploadForm.form.valid);\r\n }\r\n }\r\n}\r\n","\r\n \r\n

Drop Your Files Here

\r\n
\r\n \r\n
{{file.name | ellipsis : 10: false}}
\r\n
{{ file.size / 1000 }} KB
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { FileUpload } from \"primeng/fileupload\";\r\nimport { NgForm } from '@angular/forms';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { HelpConsts } from \"../../../help/models/help-consts\";\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { CompanyDocumentService } from '../../../company/services/company-documents.service';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { IDocumentSummaryInfo } from '../../../message-models/document-summary-info.interface';\r\nimport { SettingsProviderService } from '../../../common/settings-provider.service';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmInfoModalOptions } from '../../../shared/models/confirm-info-modal-options.class';\r\n\r\n\r\n@Component({\r\n selector: 'operative-upload',\r\n templateUrl: './operative-upload.component.html',\r\n styleUrls: ['./operative-upload.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OperativeUploadComponent implements OnInit, OnDestroy {\r\n @Input() uploadButtonText = 'Upload';\r\n @Input() uploadButtonColour = 'success';\r\n @Input() uploadButtonIcon: string = null;\r\n @ViewChild('documentUploadForm', { static: true }) documentUploadForm: NgForm;\r\n @ViewChild('uploader', { static: true }) uploader: FileUpload;\r\n @Input() documentTypes: IDocumentType[];\r\n @Input() entityDocumentSummary: IEntityDocumentSummary;\r\n documentUploadRequest: FormData;\r\n @Output() documentUploadSave: EventEmitter = new EventEmitter();\r\n @Output() cancelClicked: EventEmitter = new EventEmitter();\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n saveAttempted: boolean = false;\r\n showingHelp: boolean = false;\r\n helpText: string = HelpConsts.DocumentsEntryHelp.sections[0].body;\r\n loggedInUser: IUserInfo;\r\n private companyId: string = consts.emptyGuid;\r\n private loggedInUserSubscription: Subscription;\r\n companyDocumentSummaries: IDocumentSummaryInfo[] = [];\r\n loading: boolean = true;\r\n private settingsProviderService: SettingsProviderService;\r\n @Input() templateButtonText = 'Download Template';\r\n\r\n constructor(private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private alertsService: AlertsService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private documentTypeService: DocumentTypeService,\r\n private companyDocumentService: CompanyDocumentService,\r\n private confirmProcessService: EcaConfirmProcessService) { }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n if (user) {\r\n this.updateUserAndReload(user);\r\n this.populateBreadcrumbs();\r\n }\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.initDocumentUploadForm();\r\n }\r\n\r\n initDocumentUploadForm() {\r\n this.documentUploadRequest = new FormData();\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.entityDocumentSummary);\r\n this.loading = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n clicked(answer: boolean) {\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', \"0381A32E-D4A3-4960-86ED-04B72A3CD843\");\r\n this.documentUploadRequest.append('ExtraDescription', \"Operative Upload\");\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n this.uploadOperativeDocument(this.documentUploadRequest);\r\n }\r\n\r\n uploadOperativeDocument(uploadRequest: FormData) {\r\n this.loading = true;\r\n this.documentUploadRequest.append('CompanyId', this.companyId);\r\n this.companyDocumentService.createOrUpdateCompanyDocument(this.documentUploadRequest).subscribe(companyDocumentSummary => {\r\n this.loading = false;\r\n this.getCompanyDocumentSummaries(this.companyId);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.confirmProcessService.openConfirmProcessModal(`Your Operatives have succssfully been uploaded`, 'Operative Upload - Success',\r\n new EcaConfirmInfoModalOptions()).asObservable().subscribe(res2 => {\r\n });\r\n },\r\n error => {\r\n this.errorHandlingService.showErrorWarning(error.error).subscribe(userResponse => {\r\n this.loading = false;\r\n this.formIsValid = false;\r\n });\r\n });\r\n }\r\n\r\n private updateUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({\r\n label: this.loggedInUser?.companyName?.toString() + ' - ' + 'Enterprise Documents',\r\n iconName: 'books',\r\n } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n getCompanyDocumentSummaries(companyId: string, includeExpired: boolean = false) {\r\n this.companyDocumentService.getAllDocumentSummariesByEntityType(companyId, DocumentEntityType.company, includeExpired).subscribe(companyDocuments => {\r\n this.companyDocumentSummaries = companyDocuments;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n this.formIsValid = true;\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n templateButtonUrl() {\r\n this.settingsProviderService = new SettingsProviderService('');\r\n var url = this.settingsProviderService.baseUrl + 'Templates/Operative Details Upload.xlsx';\r\n window.open(url);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n Upload new Operatives \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Please use the provided template. Click the button below to download.\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { DateTimeWithZone } from \"../../../common/date-time-with-zone.class\";\r\n\r\n@Component({\r\n selector: 'app-operatives-leave-confirm',\r\n templateUrl: './operatives-leave-confirm.component.html',\r\n styleUrls: ['./operatives-leave-confirm.component.scss']\r\n})\r\n\r\nexport class OperativesLeaveConfirmComponent implements OnInit {\r\n @Input() heading: string = \"Confirm removal of Operative/s\";\r\n @Input() endDateForOperatives: DateTimeWithZone = new DateTimeWithZone();\r\n @Output() removeOperativesRequested: EventEmitter = new EventEmitter();\r\n\r\n submitted: boolean = false;\r\n\r\n constructor(private modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n cancelClicked() {\r\n this.modalRef.close();\r\n this.removeOperativesRequested.emit(null);\r\n }\r\n\r\n removeOperativesClicked() {\r\n this.submitted = true;\r\n if (!this.endDateForOperatives.dateTime)\r\n return;\r\n this.removeOperativesRequested.emit(this.endDateForOperatives.dateTime);\r\n this.modalRef.close();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n

Are you SURE you want to remove the selected Operatives?

\r\n

To continue, please enter the date that the operatives will no longer be engaged with your company.

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OperativeListComponent } from './components/operative-list/operative-list.component';\r\nimport { OperativeDetailsComponent } from './components/operative-details/operative-details.component';\r\nimport { OperativeEditorComponent } from './components/operative-editor/operative-editor.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { OperativeTrainingRecordsComponent } from './components/operative-training-records/operative-training-records.component';\r\nimport { OperativeDocumentsComponent } from './components/operative-documents/operative-documents.component';\r\nimport { OperativeHistoryComponent } from './components/operative-history/operative-history.component';\r\nimport { OperativeObservationsComponent } from './components/operative-observations/operative-observations.component';\r\nimport { DocumentsModule } from \"../documents/documents.module\";\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { ObservationModule } from '../observations/observation.module';\r\nimport { EngagementHistoryEditorComponent } from './components/engagement-history-editor/engagement-history-editor.component';\r\nimport { CommonsModule } from \"../common/commons.module\";\r\nimport { TrainingRecordsModule } from \"../training-records/training-records.module\";\r\nimport { OperativeDocumentsPageComponent } from './components/operative-documents-page/operative-documents-page.component';\r\nimport { OperativeDocumentDetailsPageComponent } from './components/operative-document-details-page/operative-document-details-page.component';\r\nimport { EngagementHistoryModalComponent } from './components/engagement-history-modal/engagement-history-modal.component';\r\nimport { CardModule } from 'primeng/card';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { TableModule } from 'primeng/table';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OperativeEditorModalComponent } from './components/operative-editor-modal/operative-editor-modal.component';\r\nimport { OperativesLeaveConfirmComponent } from './components/operatives-leave-confirm/operatives-leave-confirm.component';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { Slider, SliderModule } from 'primeng/slider';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { OperativeDetailsDocumentsListComponent } from './components/operative-details-documents-list/operative-details-documents-list.component';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { OperativeUploadComponent } from './components/operative-upload/operative-upload.component';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { OperativeUploadFormComponent } from './components/operative-upload-form/operative-upload-form.component';\r\n\r\n@NgModule({\r\n declarations: [OperativeListComponent,\r\n OperativeDetailsComponent,\r\n OperativeEditorComponent,\r\n OperativeTrainingRecordsComponent,\r\n OperativeDocumentsComponent,\r\n OperativeHistoryComponent,\r\n OperativeObservationsComponent,\r\n EngagementHistoryEditorComponent,\r\n OperativeDocumentsPageComponent,\r\n OperativeDocumentDetailsPageComponent,\r\n EngagementHistoryModalComponent,\r\n OperativeEditorModalComponent,\r\n OperativesLeaveConfirmComponent,\r\n OperativeDetailsDocumentsListComponent,\r\n OperativeUploadComponent,\r\n OperativeUploadFormComponent,\r\n ],\r\n\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n CardModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n ButtonModule,\r\n ToastModule,\r\n SliderModule,\r\n MultiSelectModule,\r\n CalendarModule,\r\n TableModule,\r\n RouterModule,\r\n DocumentsModule,\r\n SharedModule,\r\n ObservationModule,\r\n CommonsModule,\r\n TrainingRecordsModule,\r\n InputSwitchModule,\r\n TabViewModule,\r\n FileUploadModule\r\n ],\r\n\r\n exports: [\r\n OperativeListComponent,\r\n OperativeDetailsComponent,\r\n OperativeObservationsComponent,\r\n ]\r\n})\r\n\r\nexport class OperativesModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { IModalOptions } from \"../../common/modals/modal-options.interface\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { EcaModalOptions } from \"../../shared/models/yesno-modal-options.class\";\r\nimport { ICompanyEngagementHistory } from \"../../message-models/company-engagement-history.interface\";\r\nimport { IJobTitleInfo } from \"../../message-models/job-title.interface\";\r\nimport { IJobLevelInfo } from \"../../message-models/job-level.interface\";\r\nimport { IRiskInfo } from \"../../message-models/risk-info.interface\";\r\nimport { EngagementHistoryModalComponent } from \"../components/engagement-history-modal/engagement-history-modal.component\";\r\nimport { CompanyEngagementHistory } from \"../../message-models/company-engagement-history.class\";\r\nimport { IEmploymentStatus } from '../../message-models/employment-status.interface';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\nimport { IOperativeTypeInfo } from '../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../message-models/company-job-title.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EngagementModalService {\r\n engagementModalRef: IEcaDialogRef;\r\n\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) {\r\n }\r\n\r\n openEngagementEditorModal(heading: string,\r\n allJobTitles: IJobTitleInfo[],\r\n allCompanyJobTitles: ICompanyJobTitle[],\r\n allJobLevels: IJobLevelInfo[],\r\n allRisks: IRiskInfo[],\r\n allOperativeTypes: IOperativeTypeInfo[],\r\n allBusinessUnits: IBusinessUnitInfo[],\r\n allEmploymentStatuses: IEmploymentStatus[],\r\n isEditing: boolean = false,\r\n engagement?: ICompanyEngagementHistory,\r\n options?: IModalOptions): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += \" modal-eca-success\";\r\n }\r\n if (!engagement) {\r\n engagement = new CompanyEngagementHistory();\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading,\r\n allJobTitles,\r\n allCompanyJobTitles,\r\n allJobLevels,\r\n allRisks,\r\n allOperativeTypes,\r\n allBusinessUnits,\r\n allEmploymentStatuses,\r\n editing: isEditing,\r\n engagement: engagement,\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.engagementModalRef = this.ecaDynamicModalService.openDialog(EngagementHistoryModalComponent, config);\r\n return of(this.engagementModalRef);\r\n }\r\n}\r\n\r\n","import {Injectable} from '@angular/core';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {HttpClient, HttpEvent, HttpRequest} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {Observable, of} from 'rxjs';\r\nimport {IOperativeDocumentSummary} from '../../message-models/operative-document-summary.interface';\r\nimport {IDocumentSummaryInfo} from '../../message-models/document-summary-info.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class OperativeDocumentService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'OperativeDocument');\r\n }\r\n\r\n getAllOperativeDocumentSummaries(companyId: string, operativeId?: string): Observable {\r\n return this.post('GetAllOperativeDocumentSummaries', {operativeId: operativeId, companyId: companyId});\r\n }\r\n\r\n getAllDocumentSummariesForOperative(companyId: string, includeExpired?: boolean, operativeId?: string): Observable {\r\n return this.post('getAllDocumentSummariesForOperative', {companyId, includeExpired, operativeId});\r\n }\r\n\r\n getOperativeDocumentSummary(documentId: string): Observable {\r\n return this.post('GetOperativeDocumentSummary', {documentId});\r\n }\r\n\r\n getOperativeDocumentForViewOrDownload(documentId: string): Observable> {\r\n return this.http.request(new HttpRequest(\r\n 'POST',\r\n this.baseUrl + 'GetOperativeDocumentForViewOrDownload',\r\n {documentId},\r\n {\r\n reportProgress: true,\r\n responseType: 'blob'\r\n }));\r\n }\r\n\r\n createOrUpdateOperativeDocument(OperativeDocumentUpload: any): Observable {\r\n return this.post('CreateOrUpdateOperativeDocument', OperativeDocumentUpload);\r\n }\r\n\r\n deleteOperativeDocument(companyId: string, documentId: string): Observable {\r\n return this.post('DeleteOperativeDocument', {companyId, documentId});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IModalOptions } from '../../common/modals/modal-options.interface';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EcaModalOptions } from '../../shared/models/yesno-modal-options.class';\r\nimport { OperativeInfo } from '../../domain-model/operative-info.class';\r\nimport { OperativeEditorModalComponent } from '../components/operative-editor-modal/operative-editor-modal.component';\r\nimport { IJobTitleInfo } from '../../message-models/job-title.interface';\r\nimport { IJobLevelInfo } from '../../message-models/job-level.interface';\r\nimport { IRiskInfo } from '../../message-models/risk-info.interface';\r\nimport { OperativesLeaveConfirmComponent } from '../components/operatives-leave-confirm/operatives-leave-confirm.component';\r\nimport { IEmploymentStatus } from '../../message-models/employment-status.interface';\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\nimport { IOperativeTypeInfo } from '../../message-models/operative-type.interface';\r\nimport { IBusinessUnitInfo } from '../../message-models/business-unit.interface';\r\nimport { ICompanyJobTitle } from '../../message-models/company-job-title.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class OperativeModalService {\r\n operativeEditorModalRef: IEcaDialogRef;\r\n confirmLeaveOperativesModalRef: IEcaDialogRef;\r\n\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) {\r\n }\r\n\r\n openOperativeEditorModal(operative?: OperativeInfo,\r\n headerText?: string,\r\n allJobTitles: IJobTitleInfo[] = [],\r\n allCompanyJobTitles: ICompanyJobTitle[] = [],\r\n allJobLevels: IJobLevelInfo[] = [],\r\n allRisks: IRiskInfo[] = [], allEmploymentStatuses: IEmploymentStatus[] = [],\r\n allOperativeTypes: IOperativeTypeInfo[] = [],\r\n allBusinessUnits: IBusinessUnitInfo[] = [],\r\n\r\n isNewOperative: boolean = false,\r\n options?: IModalOptions): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += ' modal-eca-success';\r\n }\r\n if (!operative) {\r\n operative = new OperativeInfo();\r\n }\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading: headerText,\r\n operative,\r\n allJobTitles,\r\n allCompanyJobTitles,\r\n allJobLevels,\r\n allOperativeTypes,\r\n allRisks,\r\n isNewOperative,\r\n allEmploymentStatuses,\r\n allBusinessUnits\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.operativeEditorModalRef = this.ecaDynamicModalService.openDialog(OperativeEditorModalComponent, config);\r\n return of(this.operativeEditorModalRef);\r\n }\r\n\r\n\r\n openConfirmLeaveOperativesModal(headerText: string,\r\n options?: IModalOptions): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += ' modal-eca-success';\r\n }\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading: headerText\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.confirmLeaveOperativesModalRef = this.ecaDynamicModalService.openDialog(OperativesLeaveConfirmComponent, config);\r\n\r\n return of(this.confirmLeaveOperativesModalRef);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {IOperative} from '../../message-models/operative.interface';\r\nimport {Observable, of} from 'rxjs';\r\nimport {CachedData} from '../../common/cached-data.class';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {IRiskInfo} from '../../message-models/risk-info.interface';\r\nimport {IJobLevelInfo} from '../../message-models/job-level.interface';\r\nimport {OperativeInfo} from '../../domain-model/operative-info.class';\r\nimport {map} from 'rxjs/operators';\r\nimport {IRiskMatrixEntry} from '../../message-models/risk-matrix-entry.interface';\r\nimport {ICompanyEngagementHistory} from \"../../message-models/company-engagement-history.interface\";\r\nimport {IEmploymentStatus} from '../../message-models/employment-status.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OperativesService extends BaseApiService {\r\n\r\n operativeData: OperativeData = new OperativeData(\r\n [], '', 100000\r\n );\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Operatives');\r\n }\r\n\r\n getOperativeByName(operativeFullName: string) {\r\n return this.operativeData.data.find(d => d.getFullName() === operativeFullName);\r\n }\r\n\r\n getOperativeById(operativeId: string, alwaysServer: boolean = false) {\r\n let operative = !alwaysServer ? this.operativeData.data.find(d => d.id === operativeId) : null;\r\n\r\n if (operative)\r\n return of(operative);\r\n\r\n this.invalidateOperativeData();\r\n return this.post('GetOperative', { operativeId: operativeId});\r\n }\r\n\r\n createOrUpdateOperative(operative: OperativeInfo) {\r\n return this.post('CreateOrUpdateOperative', operative);\r\n }\r\n\r\n findOperativesWithLastNameStartingWith(companyId: string, lastNameStartsWith: string) : Observable {\r\n return this.post('FindOperativesWithLastNameStartingWith', { companyId, lastNameStartsWith });\r\n }\r\n\r\n\r\n createOrUpdateEngagement(engagement: ICompanyEngagementHistory) {\r\n return this.post('CreateOrUpdateCompanyEngagement', engagement);\r\n }\r\n\r\n removeOperativeFromCompany(operative: OperativeInfo, asOf: string) {\r\n return this.post('RemoveOperativeFromCompany', { operativeId: operative.id, companyId : operative.companyId, asOf});\r\n }\r\n\r\n getOperativesInCompany(companyId: string, asOf: string, forceServer: boolean = false,allHistory: boolean = false): Observable {\r\n if (!forceServer && this.operativeData && this.operativeData.companyId === companyId && this.operativeData.isDataFresh()) {\r\n return of(this.operativeData.data);\r\n } else {\r\n if (!asOf)\r\n asOf = null;\r\n return this.post('GetOperativesInCompany', {companyId: companyId, allHistory: allHistory, asOf: asOf})\r\n .pipe(\r\n map(operatives => {\r\n this.operativeData.clear();\r\n operatives.forEach(o => {\r\n this.operativeData.addData(new OperativeInfo(o));\r\n })\r\n this.operativeData.companyId = companyId;\r\n return this.operativeData.data;\r\n }));\r\n }\r\n }\r\n\r\n invalidateOperativeData() {\r\n if (!this.operativeData) {\r\n return;\r\n }\r\n\r\n this.operativeData.invalidateData();\r\n }\r\n\r\n setOperativeRiskAndLevels(risks: IRiskInfo[], jobLevels: IJobLevelInfo[], riskMatrix: IRiskMatrixEntry[], employmentStatuses: IEmploymentStatus[]) {\r\n if (!this.operativeData || !this.operativeData.data) {\r\n return;\r\n }\r\n\r\n this.setOperativeRisks(risks);\r\n this.setOperativeJobLevels(jobLevels);\r\n this.setOperativeRiskMatrixLevels(riskMatrix);\r\n this.setOperativeEmploymentStatus(employmentStatuses);\r\n\r\n }\r\n\r\n setOperativeRisks(risks: IRiskInfo[]) {\r\n if (!this.operativeData || !this.operativeData.data || !risks) {\r\n return;\r\n }\r\n\r\n this.operativeData.data.forEach(o => {\r\n o.populateRisk(risks);\r\n });\r\n }\r\n\r\n setOperativeJobLevels(jobLevels: IJobLevelInfo[]) {\r\n if (!this.operativeData || !this.operativeData.data || !jobLevels) {\r\n return;\r\n }\r\n\r\n this.operativeData.data.forEach(o => {\r\n o.populateJobLevel(jobLevels);\r\n });\r\n }\r\n\r\n setOperativeEmploymentStatus(employmentStatuses: IEmploymentStatus[]) {\r\n if (!this.operativeData || !this.operativeData.data || !employmentStatuses) {\r\n return;\r\n }\r\n this.operativeData.data.forEach(o => {\r\n o.populateEmploymentStatus(employmentStatuses);\r\n });\r\n }\r\n setOperativeRiskMatrixLevels(riskMatrix: IRiskMatrixEntry[]) {\r\n if (!this.operativeData || !this.operativeData.data || !riskMatrix) {\r\n return;\r\n }\r\n\r\n this.operativeData.data.forEach(o => {\r\n o.populateRiskMatrixLevel(riskMatrix);\r\n });\r\n }\r\n\r\n getCompanyEngagementsFor(operativeId: string, companyId: string): Observable {\r\n return this.post('GetCompanyEngagementsFor', {operativeId, companyId});\r\n }\r\n\r\n deleteCompanyEngagement(roleHistory: ICompanyEngagementHistory) {\r\n return this.post('DeleteCompanyEngagement', roleHistory);\r\n }\r\n}\r\n\r\nexport class OperativeData extends CachedData {\r\n\r\n companyId: string = '';\r\n\r\n constructor(operatives: OperativeInfo[], companyId, numSecondsToKeep: number = 300) {\r\n super(operatives, numSecondsToKeep);\r\n }\r\n\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot} from '@angular/router';\r\nimport {Observable, of} from 'rxjs';\r\nimport {CompanyOptInModalService} from '../company/services/company-opt-in-modal.service';\r\nimport {CompanyOptInService} from '../company/services/company-opt-in.service';\r\nimport {CompanyService} from '../company/services/company.service';\r\nimport {OurUserService} from '../users/services/user.service';\r\nimport {OptInModalInfo} from '../message-models/optin-modal-info.class';\r\nimport {CompanyOptInAcceptanceSummary} from '../domain-model/company-opt-in-acceptance-summary.class';\r\nimport {switchMap} from 'rxjs/operators';\r\nimport {CompanyInfo} from '../domain-model/company-info.class';\r\nimport {ICompanyInfo} from '../message-models/company-info.interface';\r\nimport {IUserInfo} from '../users/models/userInfo.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyOptInGuard implements CanActivate {\r\n companyOptInAcceptanceSummaries: CompanyOptInAcceptanceSummary[] = [];\r\n\r\n constructor(private companyOptInModalService: CompanyOptInModalService, private companyService: CompanyService, private userService: OurUserService,\r\n private companyOptInService: CompanyOptInService) {\r\n }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean {\r\n\r\n return this.userService.getLoggedInUser().pipe(switchMap(user => {\r\n const loggedInUser = user;\r\n const companyId = loggedInUser?.companyId;\r\n if (!loggedInUser?.isInternalAdminUser) {\r\n return this.companyService.getCompany(companyId).pipe(switchMap(comp => {\r\n if (comp.anyOptInsNotAccepted) {\r\n return this.companyOptInService.getOptInModalDetails().pipe(switchMap(modalData => {\r\n const optInModalInfo = new OptInModalInfo(modalData);\r\n return this.companyOptInService.getPendingCompanyOptInAcceptances(companyId).pipe(switchMap(\r\n result => {\r\n const optInAcceptanceSummaries = result;\r\n this.companyOptInAcceptanceSummaries = new Array();\r\n optInAcceptanceSummaries?.forEach(summary => {\r\n this.companyOptInAcceptanceSummaries?.push(new CompanyOptInAcceptanceSummary(summary));\r\n });\r\n this.companyOptInAcceptanceSummaries.sort((a, b) => this.compareHtmlStrings(a.optInDescription, b.optInDescription));\r\n return this.companyOptInModalService.openCompanyOptInModal(optInModalInfo, this.companyOptInAcceptanceSummaries)\r\n .pipe(switchMap(optInModalRef => {\r\n optInModalRef.content.recordOptInActionsClicked.subscribe(results => {\r\n if (!comp.contractAgreed) {\r\n return this.openContractAgreementModal(comp, loggedInUser);\r\n } else {\r\n return of(true);\r\n }\r\n });\r\n return of(true);\r\n }));\r\n }\r\n ));\r\n }));\r\n } else {\r\n if (!comp.contractAgreed) {\r\n return this.openContractAgreementModal(comp, loggedInUser);\r\n }\r\n\r\n return of(true);\r\n }\r\n }));\r\n } else {\r\n return of(true);\r\n }\r\n }));\r\n }\r\n\r\n private openContractAgreementModal(comp: ICompanyInfo, loggedInUser: IUserInfo): Observable {\r\n const optInModalInfo = new OptInModalInfo();\r\n optInModalInfo.continueButtonText = 'I ' + loggedInUser.displayName + ' Agree to the Terms and Conditions Above';\r\n optInModalInfo.optInModalText = '';\r\n optInModalInfo.optInModalTitle = 'eCOMS Acceptance';\r\n const company = new CompanyInfo(comp);\r\n return this.companyOptInModalService.openCompanyContractModal(optInModalInfo, company).pipe(switchMap(optInModalRef => {\r\n return of(true);\r\n }));\r\n }\r\n\r\n\r\n compareHtmlStrings(str1: string, str2: string) {\r\n const div1 = document.createElement('div');\r\n div1.innerHTML = str1;\r\n const div2 = document.createElement('div');\r\n div2.innerHTML = str2;\r\n if (div1.textContent.toLocaleUpperCase() > div2.textContent.toLocaleUpperCase()) {\r\n return 1;\r\n } else if (div1.textContent.toLocaleUpperCase() < div2.textContent.toLocaleUpperCase()) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BaseApiService } from \"../common/base-api.service\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { SettingsProviderService } from \"../common/settings-provider.service\";\r\nimport { AuditInfo } from '../domain-model/audit-info.class';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuditService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Audit');\r\n }\r\n\r\n getAuditHistory(companyId: string): Observable{\r\n return this.post('GetAuditHistory', { CompanyId: companyId });\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BaseApiService} from '../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../common/settings-provider.service';\r\nimport {Observable, of} from 'rxjs';\r\nimport {IDocumentType} from '../message-models/document-type.interface';\r\nimport {CachedData} from '../common/cached-data.class';\r\nimport {DocumentEntityType} from '../message-models/document-entity-type.enum';\r\nimport {switchMap} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentTypeService extends BaseApiService {\r\n documentTypeData: CachedData = new CachedData([], 100000);\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'DocumentType');\r\n }\r\n\r\n getAllDocumentTypes(): Observable {\r\n if (this.documentTypeData && this.documentTypeData.isDataFresh()) {\r\n return of(this.documentTypeData.data);\r\n } else {\r\n const observedResult = this.post('GetAllDocumentTypes');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.documentTypeData.clear();\r\n results.forEach(r => {\r\n this.documentTypeData.addData(r);\r\n })\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getAllDocumentTypesForEntityType(documentEntityType: DocumentEntityType): Observable {\r\n //TODO Not sure about this. when adding new document type..\r\n return this.post('GetAllDocumentTypesForEntityType', {documentEntityType});\r\n // if (this.documentTypeData && this.documentTypeData.isDataFresh()) {\r\n // return of(this.documentTypeData.data.filter(dt => dt.documentEntityType === documentEntityType));\r\n // } else {\r\n // return this.getAllDocumentTypes().pipe(switchMap(allDocumentTypes => {\r\n // return of(allDocumentTypes.filter(dt => dt.documentEntityType === documentEntityType));\r\n // }));\r\n // }\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {EcaConfirmProcessService} from '../shared/services/eca-confirm-process.service';\r\nimport {Observable} from 'rxjs';\r\nimport {IModalOptions} from '../common/modals/modal-options.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ErrorHandlingService {\r\n private errorMessage: string = `An error occurred during the last operation.

Please try refreshing the page. If the error persists - please contact ECA.

`;\r\n private ecaConfirmInfoModalOptions: IModalOptions = {\r\n modalClasses: 'modal-eca-danger',\r\n noButtonColour: 'transparent',\r\n noButtonIcon: ['far', 'times'],\r\n noButtonText: 'Close',\r\n yesButtonColour: '',\r\n yesButtonIcon: '',\r\n yesButtonText: '',\r\n editButtonIcon: '',\r\n }\r\n\r\n constructor(private confirmProcessService: EcaConfirmProcessService) {\r\n }\r\n\r\n showErrorWarning(message?: string): Observable{\r\n if(!message){\r\n message = this.errorMessage ;\r\n }\r\n\r\n return this.confirmProcessService.openConfirmProcessModal(`

${message}

`, \"Error Warning\", this.ecaConfirmInfoModalOptions).asObservable();\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IDocumentType } from '../message-models/document-type.interface';\r\nimport { IJobTitleInfo } from '../message-models/job-title.interface';\r\nimport { Observable, Subject, of } from 'rxjs';\r\nimport { CachedData } from '../common/cached-data.class';\r\nimport { BaseApiService } from '../common/base-api.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SettingsProviderService } from '../common/settings-provider.service';\r\nimport { IRiskInfo } from '../message-models/risk-info.interface';\r\nimport { IJobLevelInfo } from '../message-models/job-level.interface';\r\nimport { IRiskMatrixEntry } from '../message-models/risk-matrix-entry.interface';\r\nimport { IEmploymentStatus } from '../message-models/employment-status.interface';\r\nimport { IOperativeTypeInfo } from '../message-models/operative-type.interface';\r\nimport { ITrainingTypeCategoryInfo } from '../message-models/trainning-record-category.interface';\r\nimport { IBusinessUnitInfo } from '../message-models/business-unit.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ListDataService extends BaseApiService {\r\n\r\n private documentTypeData: CachedData = new CachedData([], 100000);\r\n private jobTitleData: CachedData = new CachedData([], 100000);\r\n private riskData: CachedData = new CachedData([], 100000);\r\n private employmentStatusData: CachedData = new CachedData([], 100000);\r\n private jobLevelData: CachedData = new CachedData([], 100000);\r\n private riskMatrixData: CachedData = new CachedData([], 100000);\r\n private operativeTypeData: CachedData = new CachedData([], 100000);\r\n private trainTypeCategoryData: CachedData = new CachedData([], 100000);\r\n private businessUnitData: CachedData = new CachedData([], 100000);\r\n\r\n // Create a private Subject that will act as a trigger\r\n private triggerListUpdate = new Subject();\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'ListData');\r\n }\r\n\r\n getAllDocumentTypes(): Observable {\r\n if (this.documentTypeData && this.documentTypeData.isDataFresh()) {\r\n return of(this.documentTypeData.data);\r\n } else {\r\n const observedResult = this.post('GetAllDocumentTypes');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.documentTypeData.clear();\r\n results.forEach(r => {\r\n this.documentTypeData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getAllJobTitles(): Observable {\r\n if (this.jobTitleData && this.jobTitleData.isDataFresh()) {\r\n return of(this.jobTitleData.data);\r\n } else {\r\n const observedResult = this.post('GetAllJobTitles');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.jobTitleData.clear();\r\n results.forEach(r => {\r\n this.jobTitleData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getJobTitlesForOperativeType(operativeTypeId: string): Observable {\r\n if (this.jobTitleData && this.jobTitleData.isDataFresh()) {\r\n return of(this.jobTitleData.data);\r\n } else {\r\n const observedResult = this.post('GetJobTitlesForOperativeType', { id: operativeTypeId });\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.jobTitleData.clear();\r\n results.forEach(r => {\r\n this.jobTitleData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getAllOperativeTypes(): Observable {\r\n if (this.operativeTypeData && this.operativeTypeData.isDataFresh()) {\r\n return of(this.operativeTypeData.data);\r\n } else {\r\n const observedResult = this.post('GetAllOperativeTypes');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.operativeTypeData.clear();\r\n results.forEach(r => {\r\n this.operativeTypeData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getBusinessUnitsForCompany(companyId: string): Observable {\r\n if (this.businessUnitData && this.businessUnitData.isDataFresh()) {\r\n return of(this.businessUnitData.data);\r\n } else {\r\n const observedResult = this.post('GetBusinessUnitsForCompany', { companyId });\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.businessUnitData.clear();\r\n results.forEach(r => {\r\n this.businessUnitData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getIsBusinessUnitInUse(BusinessUnitId: string): Observable {\r\n return this.post('GetIsBusinessUnitInUse', { BusinessUnitId });\r\n }\r\n\r\n getAllEmploymentStatuses(): Observable {\r\n if (this.employmentStatusData && this.employmentStatusData.isDataFresh()) {\r\n return of(this.employmentStatusData.data);\r\n } else {\r\n const observedResult = this.post('GetAllEmploymentStatuses');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.employmentStatusData.data = results;\r\n results.forEach(r => {\r\n this.employmentStatusData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getAllRisks(): Observable {\r\n if (this.riskData && this.riskData.isDataFresh()) {\r\n return of(this.riskData.data);\r\n } else {\r\n const observedResult = this.post('GetAllRisks');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.riskData.data = results;\r\n results.forEach(r => {\r\n this.riskData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getAllJobLevels(): Observable {\r\n if (this.jobLevelData && this.jobLevelData.isDataFresh()) {\r\n return of(this.jobLevelData.data);\r\n } else {\r\n const observedResult = this.post('GetAllJobLevels');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.jobLevelData.clear();\r\n results.forEach(r => {\r\n this.jobLevelData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getRiskMatrix(): Observable {\r\n if (this.riskMatrixData && this.riskMatrixData.isDataFresh()) {\r\n return of(this.riskMatrixData.data);\r\n } else {\r\n const observedResult = this.post('GetRiskMatrix');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.riskMatrixData.clear();\r\n results.forEach(r => {\r\n this.riskMatrixData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n getAllTrainTypeCategory(): Observable {\r\n if (this.trainTypeCategoryData && this.trainTypeCategoryData.isDataFresh()) {\r\n return of(this.trainTypeCategoryData.data);\r\n } else {\r\n const observedResult = this.post('GetAllTrainTypeCategory');\r\n observedResult.subscribe(\r\n {\r\n next: results => {\r\n this.trainTypeCategoryData.clear();\r\n results.forEach(r => {\r\n this.trainTypeCategoryData.addData(r);\r\n });\r\n }\r\n });\r\n return observedResult;\r\n }\r\n }\r\n\r\n createOrUpdateBusinessUnit(businessUnit: IBusinessUnitInfo) {\r\n return this.post('CreateOrUpdateBusinessUnit', businessUnit);\r\n }\r\n\r\n deleteBusinessUnit(businessUnit: IBusinessUnitInfo) {\r\n return this.post('DeleteBusinessUnit', businessUnit);\r\n }\r\n\r\n // Expose the observable (stream) part of the Subject so other components can subscribe to it\r\n updateListRequired = this.triggerListUpdate.asObservable();\r\n\r\n // A method to trigger the event\r\n updateLists() {\r\n // Emit a value to notify all subscribers\r\n this.triggerListUpdate.next();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IModalOptions } from '../common/modals/modal-options.interface';\r\nimport { Observable, of } from 'rxjs';\r\nimport { RiskHelpComponent } from '../admin-lists/components/risk-help/risk-help.component';\r\nimport { IRiskMatrixEntry } from '../message-models/risk-matrix-entry.interface';\r\nimport { IRiskInfo } from '../message-models/risk-info.interface';\r\nimport { IJobLevelInfo } from '../message-models/job-level.interface';\r\nimport { OperativeInfo } from '../domain-model/operative-info.class';\r\nimport { CancelOnlyModalOptions } from '../common/modals/cancel-only-modal-options.class';\r\nimport { EcaDynamicModalService } from \"../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RiskHelpModalService {\r\n riskHelpModalRef: IEcaDialogRef;\r\n\r\n constructor(private modalService: EcaDynamicModalService) {\r\n }\r\n\r\n openRiskHelpModal(\r\n heading: string,\r\n riskMatrixEntries: IRiskMatrixEntry[],\r\n allRisks: IRiskInfo[],\r\n allJobLevels: IJobLevelInfo[],\r\n operatives: OperativeInfo[] = [],\r\n options?: IModalOptions,\r\n asOfDate?: string,\r\n companyName?: string,\r\n isQsRole?: boolean\r\n ): Observable {\r\n if (options === undefined || options === null) {\r\n options = new CancelOnlyModalOptions();\r\n options.modalClasses += ' modal-eca-success';\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading,\r\n riskMatrixEntries,\r\n allRisks,\r\n allJobLevels,\r\n operatives,\r\n asOfDate,\r\n companyName,\r\n isQsRole\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.riskHelpModalRef = this.modalService.openDialog(RiskHelpComponent,config);\r\n return of(this.riskHelpModalRef);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BaseApiService} from '../common/base-api.service';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../common/settings-provider.service';\r\nimport {Observable, of} from 'rxjs';\r\nimport {switchMap} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingsService extends BaseApiService {\r\n privacyStatementLink: string;\r\n environmentSetting: string;\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'Settings');\r\n }\r\n getEnvironment(): Observable {\r\n if (this.environmentSetting) {\r\n return of(this.environmentSetting);\r\n } else {\r\n return this.post('GetEnvironment').pipe(switchMap(res => {\r\n this.environmentSetting = res;\r\n return of(this.environmentSetting);\r\n }));\r\n }\r\n }\r\n getPrivacyStatementUrl(): Observable {\r\n if (this.privacyStatementLink) {\r\n return of(this.privacyStatementLink);\r\n } else {\r\n return this.post('GetPrivacyStatementUrl').pipe(switchMap(res => {\r\n this.privacyStatementLink = res?.privacyStatementLink;\r\n return of(this.privacyStatementLink);\r\n }));\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { BusinessUnitInfo } from '../../../message-models/business-unit.class';\r\nimport { OperativeInfo } from '../../../domain-model/operative-info.class';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { OperativesService } from '../../../operatives/services/operatives.service';\r\nimport { consts } from '../../../common/modals/consts';\r\n\r\n@Component({\r\n selector: 'app-business-unit-assign',\r\n templateUrl: './business-unit-assign.component.html',\r\n styleUrls: ['./business-unit-assign.component.scss']\r\n})\r\nexport class BusinessUnitAssignComponent implements OnInit {\r\n @Input() businessUnit: BusinessUnitInfo = new BusinessUnitInfo();\r\n @Input() allBusinessUnits: BusinessUnitInfo [] = [];\r\n @Input() heading = 'Assign Business Unit';\r\n @Input() helpText = '';\r\n @Output() choiceMade: EventEmitter = new EventEmitter();\r\n submitted = false;\r\n helpMessage: string = \"\";\r\n showingHelp = false;\r\n loadingOperatives: boolean = false;\r\n operatives: OperativeInfo[] = [];\r\n showMultiSelect: boolean = true;\r\n columns: any[];\r\n selectedOperatives: OperativeInfo[] = [];\r\n\r\n constructor(public modalRef: DynamicDialogRef,\r\n private errorHandlingService: ErrorHandlingService,\r\n private operativesService: OperativesService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.helpMessage = this.helpText;\r\n this.initialiseColumnDataTableColumns();\r\n this.loadingOperatives = true;\r\n this.loadOperatives();\r\n }\r\n\r\n cancelClicked() {\r\n this.modalRef.close();\r\n this.choiceMade.emit(null);\r\n }\r\n\r\n saveClicked() {\r\n this.submitted = true;\r\n //No operatives selected\r\n if (this.selectedOperatives.length < 1) {\r\n return;\r\n }\r\n\r\n //set the BU for the selected operatives\r\n //this.selectedOperatives.forEach(operative => {\r\n // operative.currentBusinessUnitId = this.businessUnit.id;\r\n // operative.businessUnit = this.businessUnit.name;\r\n //});\r\n this.modalRef.close();\r\n this.choiceMade.emit(this.selectedOperatives);\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n\r\n initialiseColumnDataTableColumns() {\r\n this.columns = null;\r\n this.columns = [\r\n { field: 'firstName', header: 'First Name', type: 'text' },\r\n { field: 'lastName', header: 'Last Name', type: 'text' },\r\n { field: 'businessUnit', header: 'Current Business Unit', type: 'text' }, \r\n ];\r\n }\r\n\r\n private loadOperatives() {\r\n if (this.businessUnit?.companyId !== consts.emptyGuid) {\r\n this.operativesService.getOperativesInCompany(this.businessUnit.companyId, new Date().toISOString()).subscribe(operatives => {\r\n this.operatives = new Array();\r\n this.operatives = operatives;\r\n\r\n this.operatives.forEach(o => {\r\n o.businessUnit = this.allBusinessUnits.find(f => f.id == o.currentBusinessUnitId)?.name;\r\n })\r\n\r\n this.loadingOperatives = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().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
\r\n 5\" scrollHeight=\"500px\" [responsive]=\"true\" [columns]=\"columns\" [totalRecords]=\"operatives?.length\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n Current Business Unit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { BusinessUnitInfo } from '../../../message-models/business-unit.class';\r\n\r\n@Component({\r\n selector: 'app-business-unit-editor',\r\n templateUrl: './business-unit-editor.component.html',\r\n styleUrls: ['./business-unit-editor.component.scss']\r\n})\r\nexport class BusinessUnitEditorComponent implements OnInit {\r\n @Input() businessUnit: BusinessUnitInfo = new BusinessUnitInfo();\r\n @Input() heading = 'Editing Business Unit';\r\n @Input() helpText = '';\r\n @Output() choiceMade: EventEmitter = new EventEmitter();\r\n submitted = false;\r\n helpMessage: string = \"\";\r\n showingHelp = false;\r\n\r\n constructor(public modalRef: DynamicDialogRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.helpMessage = this.helpText\r\n }\r\n\r\n cancelClicked() {\r\n this.modalRef.close();\r\n this.choiceMade.emit(null);\r\n }\r\n\r\n saveClicked() {\r\n this.submitted = true;\r\n if (!this.businessUnit.isValid) {\r\n return;\r\n }\r\n this.modalRef.close();\r\n this.choiceMade.emit(this.businessUnit);\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\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 { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { EcaDynamicModalService } from '../../../shared/services/eca-dynamic-modal-service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { IEcaDialogRef } from '../../../shared/models/eca-dialog-ref.interface';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../shared/models/confirm-delete-modal-options.class';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { ExportExcelService } from '../../../common/services/export-excel.service';\r\nimport { BusinessUnitInfo } from '../../../message-models/business-unit.class';\r\nimport { ListDataService } from '../../../services/list-data.service';\r\nimport { IBusinessUnitInfo } from '../../../message-models/business-unit.interface';\r\nimport { BusinessUnitEditorComponent } from '../business-unit-editor/business-unit-editor.component';\r\nimport { OperativesService } from '../../../operatives/services/operatives.service';\r\nimport { BusinessUnitAssignComponent } from '../business-unit-assign/business-unit-assign.component';\r\nimport { OperativeInfo } from '../../../domain-model/operative-info.class';\r\nimport { CompanyEngagementHistory } from '../../../message-models/company-engagement-history.class';\r\nimport { ICompanyEngagementHistory } from '../../../message-models/company-engagement-history.interface';\r\n\r\n@Component({\r\n selector: 'app-business-unit-list',\r\n templateUrl: './business-unit-list.component.html',\r\n styleUrls: ['./business-unit-list.component.scss']\r\n})\r\nexport class BusinessUnitListComponent implements OnInit {\r\n\r\n private modalRef: IEcaDialogRef\r\n businessUnits: BusinessUnitInfo[] = [];\r\n selectedBusinessUnit: BusinessUnitInfo;\r\n showLoader: boolean = false;\r\n columns: any[];\r\n canAddItem: boolean = true;\r\n private loggedInUser: IUserInfo;\r\n rowMenuItems: MenuItem[];\r\n companyId: string;\r\n companyOperatives: OperativeInfo[] = [];\r\n\r\n constructor(\r\n private helpService: HelpModalService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private userService: OurUserService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private ecaDynamicModalService: EcaDynamicModalService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private exportExcelService: ExportExcelService,\r\n private listDataService: ListDataService,\r\n private operativesService: OperativesService,\r\n\r\n ) { }\r\n\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = user.companyId;\r\n this.getCompanyBusinessUnits();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n this.columns = [\r\n { field: 'name', header: 'Business Unit Name', type: 'text' },\r\n { field: 'description', header: 'Business Unit Description', type: 'html' },\r\n ];\r\n this.populateBreadcrumbs();\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.confirmDeleteItem($event)\r\n },\r\n {\r\n label: 'Assign',\r\n icon: 'fas fa-user-plus',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.assignItemClick($event)\r\n }\r\n ]\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const settingsBreadCrumbs = new Array();\r\n settingsBreadCrumbs.push({ label: 'Business Units', iconName: 'building' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(settingsBreadCrumbs);\r\n }\r\n\r\n private getCompanyBusinessUnits() {\r\n this.listDataService.getBusinessUnitsForCompany(this.companyId).subscribe(businessUnitResult => {\r\n this.businessUnits = [];\r\n\r\n businessUnitResult.forEach(t => {\r\n if (!t.deleted) //only add the active business units\r\n {\r\n this.businessUnits.push(new BusinessUnitInfo(t));\r\n }\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n addNewItemClick() {\r\n let businessUnit = new BusinessUnitInfo();\r\n businessUnit.companyId = this.companyId;\r\n this.openEditor(businessUnit, 'Add New Business Unit', 'Here you can add new Business Units which you can then assign to your Operatives.');\r\n }\r\n\r\n editItemClick(item: IBusinessUnitInfo) {\r\n let businessUnit = new BusinessUnitInfo(item);\r\n this.openEditor(businessUnit, 'Edit Existing Business Unit - ' + item.name, 'Here you can edit the name or description for your Business Units. NOTE: This will also update all operative records that have this business unit assigned ');\r\n }\r\n\r\n assignItemClick(item: IBusinessUnitInfo) {\r\n this.selectedBusinessUnit = new BusinessUnitInfo(item);\r\n this.selectedBusinessUnit.companyId = this.companyId;\r\n this.openAssign(this.selectedBusinessUnit, 'Assign Business Unit - ' + item.name, 'Here you can assign business units to your Current Operatives. NOTE: This will overwrite the current business unit of an Operative if they already have one assigned');\r\n }\r\n\r\n private openAssign(businessUnit: BusinessUnitInfo, heading: string, helpText: string) {\r\n let config = {\r\n styleClass: 'modal-dialog-scrollable modal-lg',\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading: heading,\r\n businessUnit: businessUnit,\r\n helpText: helpText,\r\n allBusinessUnits: this.businessUnits\r\n }\r\n } as DynamicDialogConfig;\r\n this.modalRef = this.ecaDynamicModalService.openDialog(BusinessUnitAssignComponent, config);\r\n this.modalRef.content.choiceMade.subscribe(result => {\r\n if (result?.length > 0) {\r\n this.companyOperatives = result;\r\n this.companyOperatives.forEach(operative => {\r\n //get all engagements \r\n this.operativesService.getCompanyEngagementsFor(operative.id, this.companyId).subscribe(operativeEngagments => {\r\n let engagement = new CompanyEngagementHistory({} as ICompanyEngagementHistory);\r\n //Get latest engagement\r\n engagement = new CompanyEngagementHistory(operativeEngagments.find(f => f.id == operative.latestEngagementId));\r\n engagement.businessUnit = this.selectedBusinessUnit;\r\n engagement.businessUnitId = this.selectedBusinessUnit.id;\r\n //Update engagement\r\n this.operativesService.createOrUpdateEngagement(engagement as ICompanyEngagementHistory).subscribe(engagement => {\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n private openEditor(businessUnit: BusinessUnitInfo, heading: string, helpText: string) {\r\n let config = {\r\n styleClass: 'modal-dialog-scrollable modal-lg',\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading: heading,\r\n businessUnit: businessUnit,\r\n helpText: helpText\r\n }\r\n } as DynamicDialogConfig;\r\n this.modalRef = this.ecaDynamicModalService.openDialog(BusinessUnitEditorComponent, config);\r\n this.modalRef.content.choiceMade.subscribe(result => {\r\n if (result) {\r\n this.showLoader = true;\r\n this.listDataService.createOrUpdateBusinessUnit(result).subscribe(updatedBusinessUnit => {\r\n if (updatedBusinessUnit) {\r\n this.getCompanyBusinessUnits();\r\n this.showLoader = false;\r\n\r\n //This will trigger any component that is suscribed to this event.\r\n this.listDataService.updateLists();\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n confirmDeleteItem(businessUnit: IBusinessUnitInfo) {\r\n let businessUnitInUse = this.listDataService.getIsBusinessUnitInUse(businessUnit.id).subscribe(businessUnitInUse => {\r\n if (!businessUnitInUse) {\r\n this.confirmProcessService.openConfirmProcessModal(\"

Are you SURE you wish to DELETE this business unit?

\",\r\n \"Confirm Deletion\", new EcaConfirmDeleteModalOptions())\r\n .subscribe(result => {\r\n if (result) {\r\n this.showLoader = true;\r\n this.listDataService.deleteBusinessUnit(businessUnit).subscribe(result => {\r\n this.getCompanyBusinessUnits();\r\n this.showLoader = false;\r\n\r\n //This will trigger any component that is suscribed to this event.\r\n this.listDataService.updateLists();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n this.helpService.openHelpModal(HelpConsts.BusinessUnitInUseHelp);\r\n }\r\n });\r\n }\r\n\r\n openBusinessUnitHelp() {\r\n this.helpService.openHelpModal(HelpConsts.BusinessUnitHelp);\r\n }\r\n\r\n exportToExcel() {\r\n this.exportExcelService.exportToExcel(this.businessUnits, this.columns, 'Business Units')\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n 5\" scrollHeight=\"500px\" dataKey=\"id\"\r\n [responsive]=\"true\" [columns]=\"columns\" [globalFilterFields]=\"['name','description']\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ businessUnits.length }}\r\n Business Units\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Business Unit Name\r\n \r\n \r\n \r\n Business Unit Description\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ICompanyJobTitle } from '../../../../message-models/company-job-title.interface';\r\nimport { IJobTitleInfo } from '../../../../message-models/job-title.interface';\r\nimport { IJobLevelInfo } from '../../../../message-models/job-level.interface';\r\nimport { IOperativeTypeInfo } from '../../../../message-models/operative-type.interface';\r\nimport { IOperative } from '../../../../message-models/operative.interface';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { CompanyJobTitle } from '../../../../message-models/company-job-title.class';\r\n\r\n@Component({\r\n selector: 'app-company-job-role-editor',\r\n templateUrl: './company-job-role-editor.component.html',\r\n styleUrls: ['./company-job-role-editor.component.scss']\r\n})\r\nexport class CompanyJobRoleEditorComponent implements OnInit {\r\n\r\n @Input() heading: string = \"Company Job Role Editor\";\r\n @Input() editing: boolean = false;\r\n @Input() isEditing: boolean = false;\r\n @Input() companyJobTitle: ICompanyJobTitle ;\r\n //@Input() companyJobTitles: CompanyJobTitle[] = [];\r\n @Input() allJobTitles: IJobTitleInfo[] = [];\r\n //@Input() allRisks: IRiskInfo[] = [];\r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n //@Input() allEmploymentStatuses: IEmploymentStatus[] = [];\r\n\r\n @Input() operative: IOperative;\r\n saveAttempted: boolean = false;\r\n\r\n //@Output() saveCompanyJobTitleClicked: EventEmitter = new EventEmitter();\r\n //@Output() cancelCompanyJobTitleClicked: EventEmitter = new EventEmitter();\r\n showingHelp: boolean = false;\r\n\r\n\r\n\r\n\r\n\r\n constructor(public config: DynamicDialogConfig) { }\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","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { ICompanyJobTitle } from '../../../../message-models/company-job-title.interface';\r\nimport { IJobTitleInfo } from '../../../../message-models/job-title.interface';\r\nimport { IJobLevelInfo } from '../../../../message-models/job-level.interface';\r\nimport { IOperativeTypeInfo } from '../../../../message-models/operative-type.interface';\r\nimport { IOperative } from '../../../../message-models/operative.interface';\r\nimport { CompanyJobRoleService } from '../../services/company-job-role.service';\r\nimport { CompanyJobTitle } from '../../../../message-models/company-job-title.class';\r\n\r\n@Component({\r\n selector: 'app-company-job-role-modal',\r\n templateUrl: './company-job-role-modal.component.html',\r\n styleUrls: ['./company-job-role-modal.component.scss']\r\n})\r\nexport class CompanyJobRoleModalComponent implements OnInit {\r\n\r\n\r\n @Input() heading: string = \"Company Job Role Editor\";\r\n @Input() editing: boolean = false;\r\n @Input() companyJobTitle: CompanyJobTitle = new CompanyJobTitle();\r\n \r\n saveAttempted: boolean = false;\r\n\r\n @Output() saveCompanyJobTitleClicked: EventEmitter = new EventEmitter();\r\n @Output() cancelCompanyJobTitleClicked: EventEmitter = new EventEmitter();\r\n showingHelp: boolean = false;\r\n @Output() refreshCompanyJobTitleSuggested: EventEmitter = new EventEmitter();\r\n temp: ICompanyJobTitle;\r\n companyJobTitles: ICompanyJobTitle[] = [];\r\n constructor(public config: DynamicDialogConfig,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n\r\n ) { }\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.config.data) {\r\n this.heading = this.config.data.heading; \r\n this.editing = this.config.data.editing;\r\n this.companyJobTitle = this.config.data.companyJobTitle;\r\n this.temp = this.config.data.companyJobTitle;\r\n \r\n };\r\n\r\n }\r\n\r\n\r\n cancelClicked() {\r\n this.editing = false;\r\n \r\n this.cancelCompanyJobTitleClicked.emit();\r\n this.refreshCompanyJobTitleSuggested.emit(true);\r\n }\r\n\r\n saveCompanyJobTitle() {\r\n this.saveAttempted = true;\r\n \r\n if (!this.companyJobTitle.isValid) {\r\n return;\r\n }\r\n \r\n\r\n this.saveCompanyJobTitleClicked.emit(this.companyJobTitle);\r\n this.editing = false;\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

Company Job Role for Non electrical

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\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, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DetailContainerComponent } from '../../../../common/components/detail-container/detail-container.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { EcaBreadcrumbService } from '../../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { OurUserService } from '../../../../users/services/user.service';\r\nimport { ErrorHandlingService } from '../../../../services/error-handling.service';\r\nimport { CompanyService } from '../../../../company/services/company.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { IUserInfo } from '../../../../users/models/userInfo.interface';\r\nimport { IBreadcrumb } from '../../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { consts } from '../../../../common/modals/consts';\r\nimport { ListDataService } from '../../../../services/list-data.service';\r\nimport { IJobTitleInfo } from '../../../../message-models/job-title.interface';\r\nimport { HelpModalService } from '../../../../help/services/help-modal.service';\r\nimport { HelpConsts } from '../../../../help/models/help-consts';\r\nimport { CompanyJobRoleService } from '../../services/company-job-role.service';\r\nimport { CompanyJobTitle } from '../../../../message-models/company-job-title.class';\r\nimport { ICompanyJobTitle } from '../../../../message-models/company-job-title.interface';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ICompanyEngagementHistory } from '../../../../message-models/company-engagement-history.interface';\r\nimport { CompanyJobRoleModalService } from '../../services/company-job-role-modal.service';\r\nimport { IOperativeTypeInfo } from '../../../../message-models/operative-type.interface';\r\nimport { IJobLevelInfo } from '../../../../message-models/job-level.interface';\r\nimport { OperativeInfo } from '../../../../domain-model/operative-info.class';\r\nimport { OperativesService } from '../../../../operatives/services/operatives.service';\r\nimport { EcaConfirmDeleteModalOptions } from '../../../../shared/models/confirm-delete-modal-options.class';\r\nimport { EcaConfirmProcessService } from '../../../../shared/services/eca-confirm-process.service';\r\nimport { EcaConfirmInfoModalOptions } from '../../../../shared/models/confirm-info-modal-options.class';\r\n\r\n@Component({\r\n selector: 'app-job-role-list',\r\n templateUrl: './job-role-list.component.html',\r\n styleUrls: ['./job-role-list.component.scss']\r\n})\r\nexport class JobRoleListComponent implements OnInit {\r\n \r\n @Input() companyJobTitles: CompanyJobTitle[] = [];\r\n\r\n @Input() operative: OperativeInfo = {} as OperativeInfo;\r\n\r\n @Input() allOperativeTypes: IOperativeTypeInfo[] = [];\r\n @Input() allJobTitles: IJobTitleInfo[] = []; \r\n @Input() allJobLevels: IJobLevelInfo[] = [];\r\n\r\n @Input() addButtonText = 'Add';\r\n\r\n\r\n\r\n @Output() refreshCompanyJobTitleList: EventEmitter = new EventEmitter();\r\n \r\n public loggedInUser: IUserInfo;\r\n loggedInUserSubscription: Subscription;\r\n public companyId: string = consts.emptyGuid;\r\n //allJobTitles: IJobTitleInfo[] = [];\r\n filteredJobTitles: IJobTitleInfo[];\r\n selectedJobTitle: IJobTitleInfo;\r\n\r\n showJobTitleUpdate: boolean;\r\n loadingJobRoles = false;\r\n //companyJobTitles: CompanyJobTitle[] = [];\r\n operatives: OperativeInfo[] = [];\r\n columns: any[];\r\n isOnMobile = false;\r\n rowMenuItems: MenuItem[];\r\n submitted = false;\r\n\r\n isActive = false;\r\n\r\n @Output() addCompanyJobRoleRequested: EventEmitter = new EventEmitter();\r\n @Output() deleteCompanyJobTitleRequested: EventEmitter = new EventEmitter();\r\n @Output() refreshCompanyJobTitleSuggested: EventEmitter = new EventEmitter();\r\n //@Input() addButtonText = 'Add';\r\n constructor(private route: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private operativesService: OperativesService,\r\n private helpService: HelpModalService,\r\n private companyJobRoleService: CompanyJobRoleService,\r\n private companyJobRoleModalService: CompanyJobRoleModalService\r\n\r\n )\r\n { }\r\n\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n \r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n })\r\n\r\n \r\n\r\n\r\n\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.columns = [\r\n { field: 'name', header: 'Job Title Name', type: 'text' },\r\n { field: 'updatedBy', header: 'Added by', type: 'text' }\r\n\r\n ];\r\n\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Remove',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteCompanyJobTitle($event)\r\n }\r\n ]\r\n\r\n this.operativesService.getOperativesInCompany(this.companyId, new Date().toISOString()).subscribe({\r\n next: operatives => {\r\n this.operatives = operatives; \r\n },\r\n error: () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n }\r\n });\r\n\r\n\r\n }\r\n \r\n openJobRoleHelp() {\r\n this.helpService.openHelpModal(HelpConsts.CompanySettingJobRoleHelp);\r\n }\r\n deleteCompanyJobTitle(companyJobTitle: ICompanyJobTitle) {\r\n this.isActive = this.isActiveCompanyJobTitle(companyJobTitle);\r\n console.log(this.isActive);\r\n if (!this.isActive) {\r\n this.deleteCompanyJobTitleRequested.emit(companyJobTitle);\r\n } else {\r\n this.confirmProcessService.openConfirmProcessModal('

Job Roles can only be deleted if they are not in use

', 'Remove Company Job Title'\r\n , new EcaConfirmInfoModalOptions()).subscribe({});\r\n }\r\n \r\n }\r\n\r\n editCompanyJobTitle(companyJobTitle: ICompanyJobTitle, openInEdit: boolean = true) {\r\n let editCompanyJobTitle = new CompanyJobTitle(companyJobTitle);\r\n this.companyJobRoleModalService.openCompanyJobTitleEditorModal(\r\n \"Edit Company Job Role for Non electrical \" ,\r\n //this.allJobTitles,\r\n //this.allJobLevels,\r\n //this.allOperativeTypes,\r\n //this.allEmploymentStatuses,\r\n openInEdit,\r\n editCompanyJobTitle).subscribe(modalRef => {\r\n modalRef.content.cancelCompanyJobTitleClicked.subscribe(result => {\r\n this.companyJobRoleModalService.companyJobTitleEditorModalRef.dynamicDialogRef.close();\r\n this.refreshCompanyJobTitleSuggested.emit(true);\r\n \r\n });\r\n modalRef.content.saveCompanyJobTitleClicked.subscribe(editCompanyJobTitle => {\r\n this.loadingJobRoles = true;\r\n this.companyJobRoleModalService.companyJobTitleEditorModalRef.dynamicDialogRef.close();\r\n this.companyJobRoleService.CreateOrUpdateCompanyJobTitle(editCompanyJobTitle).subscribe(engagement => {\r\n this.loadingJobRoles = false;\r\n this.refreshCompanyJobTitleSuggested.emit(true);\r\n });\r\n })\r\n })\r\n }\r\n addCompanyJobTitleEntry() {\r\n this.addCompanyJobRoleRequested.emit(true);\r\n }\r\n\r\n isActiveCompanyJobTitle(companyJobTitle: ICompanyJobTitle) {\r\n var operativeList = this.operatives.find(o => o.currentJobTitleId == companyJobTitle.id);\r\n if (operativeList != null) {\r\n return true;\r\n }\r\n else 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 \r\n
\r\n
\r\n 5\" \r\n scrollHeight=\"500px\" [responsive]=\"true\" [columns]=\"columns\" dataKey=\"id\"\r\n [globalFilterFields]=\"['name', 'updatedBy']\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Roles\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Job Role\r\n \r\n \r\n \r\n Add By\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{col.header}}: \r\n \r\n {{companyJobTitle[col.field]}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n \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 { Injectable } from '@angular/core';\r\nimport { IEcaDialogRef } from '../../../shared/models/eca-dialog-ref.interface';\r\nimport { EcaDynamicModalService } from '../../../shared/services/eca-dynamic-modal-service';\r\nimport { IJobTitleInfo } from '../../../message-models/job-title.interface';\r\nimport { IJobLevelInfo } from '../../../message-models/job-level.interface';\r\nimport { IRiskInfo } from '../../../message-models/risk-info.interface';\r\nimport { IOperativeTypeInfo } from '../../../message-models/operative-type.interface';\r\nimport { IModalOptions } from '../../../common/modals/modal-options.interface';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EcaModalOptions } from '../../../shared/models/yesno-modal-options.class';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { CompanyJobRoleEditorComponent } from '../components/company-job-role-editor/company-job-role-editor.component';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { CompanyJobRoleModalComponent } from '../components/company-job-role-modal/company-job-role-modal.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyJobRoleModalService {\r\n companyJobTitleEditorModalRef: IEcaDialogRef;\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) { }\r\n\r\n\r\n\r\n openCompanyJobTitleEditorModal(heading: string,\r\n //allJobTitles: IJobTitleInfo[],\r\n //allJobLevels: IJobLevelInfo[],\r\n //allOperativeTypes: IOperativeTypeInfo[], \r\n isEditing: boolean = false,\r\n companyJobTitle?: ICompanyJobTitle,\r\n options?: IModalOptions): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += \" modal-eca-success\";\r\n }\r\n \r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading,\r\n //allJobTitles,\r\n //allJobLevels, \r\n //allOperativeTypes, \r\n editing: isEditing,\r\n companyJobTitle: companyJobTitle,\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.companyJobTitleEditorModalRef = this.ecaDynamicModalService.openDialog(CompanyJobRoleModalComponent, config);\r\n return of(this.companyJobTitleEditorModalRef);\r\n }\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 { Injectable } from '@angular/core';\r\nimport { BaseApiService } from '../../../common/base-api.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SettingsProviderService } from '../../../common/settings-provider.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ICompanyJobTitle } from '../../../message-models/company-job-title.interface';\r\nimport { CompanyJobTitle } from '../../../message-models/company-job-title.class';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyJobRoleService extends BaseApiService {\r\n\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'CompanyJobTitle');\r\n }\r\n\r\n\r\n\r\n getCompanyJobTitlesByCompanyId(companyId: string): Observable{\r\n return this.post('GetAllCompanyJobTitles', {companyId}); \r\n }\r\n\r\n\r\n CreateOrUpdateCompanyJobTitle(companyJobTitle: CompanyJobTitle) {\r\n return this.post('CreateOrUpdateCompanyJobTitle', companyJobTitle);\r\n }\r\n\r\n\r\n RemoveCompanyJobTitle(companyJobTitle: CompanyJobTitle) {\r\n return this.post('RemoveCompanyJobTitle', { companyJobTitleId: companyJobTitle.id, companyId: companyJobTitle.companyId});\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 {SettingsProviderService} from '../../../common/settings-provider.service';\r\n\r\n@Component({\r\n selector: 'app-eca-app-version',\r\n templateUrl: './eca-app-version.component.html',\r\n styleUrls: ['./eca-app-version.component.scss']\r\n})\r\nexport class EcaAppVersionComponent implements OnInit {\r\n appVersion = '0.0.0';\r\n settingsProviderService = new SettingsProviderService('ecaApi');\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.appVersion = this.settingsProviderService?.appVersion;\r\n }\r\n\r\n}\r\n","
\r\n {{appVersion}}\r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-eca-checkbox',\r\n templateUrl: './eca-checkbox.component.html',\r\n styleUrls: ['./eca-checkbox.component.scss']\r\n})\r\n\r\nexport class EcaCheckboxComponent implements OnInit {\r\n @Input() label = '';\r\n @Input() defaultValue = false;\r\n @Input() value = false;\r\n @Input() disable = false;\r\n @Input() popoverText: string;\r\n @Input() inputId : string;\r\n @Output() valueChange: EventEmitter = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n test() {\r\n console.log(this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \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, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\n\r\n@Component({\r\n selector: 'app-eca-confirm-modal',\r\n templateUrl: './eca-confirm-modal.component.html',\r\n styleUrls: ['./eca-confirm-modal.component.scss']\r\n})\r\n\r\nexport class EcaConfirmModalComponent implements OnInit {\r\n @Input() question: string;\r\n @Input() heading: string;\r\n @Input() yesButtonText = 'Yes';\r\n @Input() noButtonText = 'No';\r\n @Input() yesButtonColour = 'success';\r\n @Input() noButtonColour = 'danger';\r\n @Input() yesButtonIcon: any = null;\r\n @Input() noButtonIcon: any = null;\r\n\r\n @Output() answer: EventEmitter = new EventEmitter();\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n clicked(answer: boolean) {\r\n this.answer.emit(answer);\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n \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, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IDateTimeWithZone } from '../../../common/date-time-with-zone.interface';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { format, parse, parseJSON } from 'date-fns';\r\n\r\n@Component({\r\n selector: 'app-eca-date-picker',\r\n templateUrl: './eca-date-picker.component.html',\r\n styleUrls: ['./eca-date-picker.component.scss']\r\n})\r\n\r\nexport class EcaDatePickerComponent implements OnInit {\r\n @Input() dateValue: IDateTimeWithZone; // the bound property must not be null\r\n @Input() isDisabled: boolean;\r\n @Input() popoverText: string;\r\n @Input() isRequired: boolean;\r\n @Input() controlId: string;\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() dateFormat = 'dd/mm/yy';\r\n @Input() placeholder: string = 'Select date';\r\n @Input() showButtonBar: boolean;\r\n @Input() label: string;\r\n @Input() isValid = true;\r\n @Input() validationMessage = '';\r\n @Output() dateValueChange: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('ecaDatePicker') datePicker: CalendarModule;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get selectedDate(): string {\r\n if (!this.dateValue?.dateTime) {\r\n return '';\r\n }\r\n\r\n try {\r\n if (typeof this.dateValue?.dateTime === 'string') {\r\n this.dateValue.dateTime = this.dateValue.dateTime.trim();\r\n // strip timezone to avoid hour changes\r\n if (this.dateValue.dateTime.endsWith('Z')) {\r\n this.dateValue.dateTime = this.dateValue.dateTime.substring(0, this.dateValue.dateTime.length - 1);\r\n }\r\n // treat the date now as an iso string without timezone...\r\n return format(parseJSON(this.dateValue.dateTime), 'dd/MM/yyyy');\r\n }\r\n } catch (ex) {\r\n try {\r\n return format(parse(this.dateValue.dateTime, 'yyyy-MM-dd', new Date()), 'dd/MM/yyyy');\r\n } catch (e) {\r\n return this.dateValue.dateTime;\r\n }\r\n }\r\n }\r\n\r\n set selectedDate(dateValue: string) {\r\n if (!dateValue) {\r\n this.dateValue.dateTime = '';\r\n return;\r\n }\r\n\r\n try {\r\n //const date = parse(dateValue, 'dd/MM/yyyy', new Date());\r\n const date = new Date(dateValue);\r\n this.dateValue.dateTime = format(date, 'yyyy-MM-dd');\r\n } catch (ex) {\r\n this.dateValue.dateTime = dateValue;\r\n }\r\n }\r\n\r\n selectedDateChanged() {\r\n this.dateValueChange.emit(this.dateValue);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
{{validationMessage}}
\r\n
\r\n \r\n \r\n \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, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-eca-ghost-btn',\r\n templateUrl: './eca-ghost-btn.component.html',\r\n styleUrls: ['./eca-ghost-btn.component.scss']\r\n})\r\nexport class EcaGhostBtnComponent implements OnInit {\r\n @Input() btnText: string;\r\n @Input() btnIcon: any;\r\n @Input() btnType: string;\r\n @Input() btnSize: any = '';\r\n @Input() disable: boolean = false;\r\n @Input() removeLabelOnMobile: boolean = true;\r\n @Output() btnClicked: EventEmitter = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getButtonClass(): string {\r\n let btnClass = 'btn-ghost ';\r\n\r\n if (this.btnType === 'success') {\r\n btnClass += ' btn-ghost-our-success';\r\n } else if (this.btnType === 'warning') {\r\n btnClass += ' btn-ghost-our-warning';\r\n } else if (this.btnType === 'danger') {\r\n btnClass += ' btn-ghost-our-danger';\r\n } else {\r\n btnClass += ' btn-ghost-our-primary';\r\n }\r\n\r\n if (this.btnSize === 'lg') {\r\n btnClass += ' btn-ghost-our-lg';\r\n } else if (this.btnSize === 'sm') {\r\n btnClass += ' btn-ghost-our-lg';\r\n } else {\r\n btnClass += ' btn-ghost-our-regular';\r\n }\r\n\r\n if (this.removeLabelOnMobile) {\r\n btnClass += ' btn-size';\r\n }\r\n return btnClass;\r\n }\r\n\r\n clicked() {\r\n this.btnClicked.emit()\r\n }\r\n}\r\n","\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-eca-help-alert',\r\n templateUrl: './eca-help-alert.component.html',\r\n styleUrls: ['./eca-help-alert.component.scss']\r\n})\r\nexport class EcaHelpAlertComponent implements OnInit {\r\n @Input() helpHtmlText: string = \"\";\r\n @Output() helpCloseClicked: EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n helpClicked() {\r\n this.helpCloseClicked.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\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, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-eca-html-editor',\r\n templateUrl: './eca-html-editor.component.html',\r\n styleUrls: ['./eca-html-editor.component.scss']\r\n})\r\nexport class EcaHtmlEditorComponent implements OnInit {\r\n @Input() content: string;\r\n @Input() isReadOnly: boolean = true;\r\n @Input() popoverText: string;\r\n @Input() isRequired: boolean;\r\n @Input() label: string;\r\n @Input() placeHolder: string = \"\";\r\n @Input() isValid: boolean = true;\r\n @Input() validationMessage: string = \"\";\r\n\r\n @Output() contentChange : EventEmitter = new EventEmitter();\r\n\r\n editorOptions= {\r\n toolbar: [['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n [{ 'list': 'ordered'}, { 'list': 'bullet' }],]\r\n };\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onContentChanged() {\r\n this.contentChange.emit(this.content);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
{{validationMessage}}
\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, Type, ViewChild } from '@angular/core';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\n\r\n@Component({\r\n selector: 'app-eca-image-viewer',\r\n templateUrl: './eca-image-viewer.component.html',\r\n styleUrls: ['./eca-image-viewer.component.scss']\r\n})\r\n\r\nexport class EcaImageViewerComponent implements OnInit, OnChanges {\r\n\r\n @Input() label: string;\r\n @Input() imageSrc: string;\r\n @Input() imageAlt: string;\r\n @Input() enablePreview: boolean = true;\r\n @Input() enableEdit: boolean = false;\r\n @Input() maxFileSize: number = 2097152;\r\n @Input() acceptedFileTypes: string = '.png, .jpg, .jpeg,';\r\n\r\n @Input() isSrcEncoded: boolean = true;\r\n @Output() imageOutput: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('imageUpload') imageUpload: FileUpload;\r\n //@ViewChild('imageUpload', { static: false }) imageUpload: FileUpload;\r\n\r\n defaultSrc: string = \"assets/eCOMS_No_Image_Available.jpg\";\r\n defaultAlt: string = \"No Image Available\";\r\n encodedImageStr: string;\r\n decodedImageStr: string = \"assets/eCOMS_No_Image_Available.jpg\";\r\n viewerAlt: string;\r\n chooseIcon: string;\r\n cancelEnabled: boolean = false;\r\n cancelIcon: string = \"fa fa-trash\";\r\n dummyFiles: File;\r\n errorMessage: string = '';\r\n\r\n\r\n constructor(private errorHandlingService: ErrorHandlingService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.imageSrc) {\r\n this.decodedImageStr = this.defaultSrc;\r\n }\r\n if (!this.imageAlt) {\r\n this.viewerAlt = this.defaultAlt;\r\n }\r\n\r\n //Dirty fix - need to create a dummy File for the uploader\r\n let blob = null;\r\n blob = new Blob();\r\n blob.lastModifiedDate = new Date();\r\n blob.name = this.defaultSrc;\r\n this.dummyFiles = blob;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.isSrcEncoded) {\r\n this.isSrcEncoded = changes.isSrcEncoded.currentValue;\r\n }\r\n\r\n if (changes.imageSrc?.currentValue) {\r\n var newImageSrc = changes.imageSrc.currentValue;\r\n if (this.isSrcEncoded) {\r\n this.encodedImageStr = newImageSrc\r\n this.decodedImageStr = atob(this.encodedImageStr);//Decode imageSrc if it is encoded \r\n }\r\n else {\r\n this.encodedImageStr = btoa(newImageSrc);\r\n this.decodedImageStr = newImageSrc;//No decode required\r\n }\r\n }\r\n\r\n if (changes.imageAlt?.currentValue) {\r\n this.viewerAlt = changes.imageAlt.currentValue;\r\n }\r\n\r\n //button labels, icon and visibility manipulation\r\n this.chooseIcon = this.encodedImageStr ? \"fa fa-rotate\" : \"fa fa-plus\";\r\n this.cancelEnabled = this.encodedImageStr ? true : false;\r\n if (this.cancelEnabled && !this.imageUpload.hasFiles()) {\r\n this.imageUpload.files.push(this.dummyFiles);//Dirty fix - pushing a dummy file enables the cancel button\r\n }\r\n }\r\n\r\n onFileRemove() {\r\n this.decodedImageStr = this.defaultSrc;\r\n this.encodedImageStr = \"\";\r\n this.cancelEnabled = false;\r\n this.chooseIcon = \"fa fa-plus\";\r\n this.imageOutput.emit(\"\"); //output the new encoded imageSrc\r\n }\r\n\r\n onFileAdd(event) {\r\n for (let file of event.files) {\r\n var fileCheckPassed = true;\r\n\r\n //file size check (only check if it has passed all previous checks)\r\n if (file.size > this.maxFileSize && fileCheckPassed) {\r\n fileCheckPassed = false;\r\n this.errorMessage = `${file.name} exceeds the maximum upload size permitted (2MB)`;\r\n this.errorHandlingService.showErrorWarning(this.errorMessage).subscribe(userResponse => {\r\n });\r\n }\r\n\r\n //file type check (only check if it has passed all previous checks)\r\n if (!file.type.match('image/') && fileCheckPassed) {\r\n fileCheckPassed = false;\r\n this.errorMessage = `${file.name} is not a permitted image file`;\r\n this.errorHandlingService.showErrorWarning(this.errorMessage).subscribe(userResponse => {\r\n });\r\n }\r\n\r\n //file checks passed so read image\r\n if (fileCheckPassed)\r\n {\r\n this.readImageFile(file);\r\n }\r\n }\r\n }\r\n\r\n readImageFile(file: File) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (e: any) => {\r\n this.decodedImageStr = reader.result.toString();\r\n this.encodedImageStr = btoa(this.decodedImageStr);\r\n if (this.isSrcEncoded) {\r\n this.imageOutput.emit(this.encodedImageStr); //output encoded imageString\r\n }\r\n else {\r\n this.imageOutput.emit(this.decodedImageStr); //output decoded imageString\r\n }\r\n }\r\n }\r\n}\r\n","\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\n\r\n@Component({\r\n selector: 'app-eca-input-guide',\r\n templateUrl: './eca-input-guide.component.html',\r\n styleUrls: ['./eca-input-guide.component.scss']\r\n})\r\nexport class EcaInputGuideComponent implements OnInit {\r\n @Input() popoverText: string;\r\n @Input() isRequired: boolean = false;\r\n @Input() isDisabled: boolean = true;\r\n @Input() icon: string = 'question-circle';\r\n @Input() renderHtml: boolean = false;\r\n @Input() label: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-eca-input',\r\n templateUrl: './eca-input.component.html',\r\n styleUrls: ['./eca-input.component.scss']\r\n})\r\nexport class EcaInputComponent implements OnInit {\r\n @Input() value: any;\r\n @Input() isReadOnly: boolean = true;\r\n @Input() popoverText: string;\r\n @Input() isRequired: boolean;\r\n @Input() inputType: string = \"text\";\r\n @Input() label: string;\r\n @Input() isValid: boolean = true;\r\n @Input() validationMessage: string = \"\";\r\n @Input() pattern: string = \"\";\r\n @Input() controlId: string;\r\n\r\n @Output() valueChange : EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {}\r\n\r\n updateValue(value: any) {\r\n this.value = value;\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
{{validationMessage}}
\r\n
\r\n \r\n\r\n \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\n\r\n@Component({\r\n selector: 'app-eca-marquee',\r\n templateUrl: './eca-marquee.component.html',\r\n styleUrls: ['./eca-marquee.component.scss']\r\n})\r\nexport class EcaMarqueeComponent {\r\n\r\n}\r\n","
\r\n
\r\n This is a test system\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DynamicDialogRef } from \"primeng/dynamicdialog\";\r\n\r\n@Component({\r\n selector: 'app-eca-modal-host',\r\n templateUrl: './eca-modal-host.component.html',\r\n styleUrls: ['./eca-modal-host.component.scss']\r\n})\r\n\r\nexport class EcaModalHostComponent implements OnInit {\r\n @Input() heading: string;\r\n @Input() yesButtonText = 'Save';\r\n @Input() saveAndUploadButtonText = 'Save & Upload Document';\r\n @Input() editButtonText = 'Edit';\r\n @Input() closeButtonText = 'Close';\r\n @Input() noButtonText = 'Cancel';\r\n @Input() yesButtonColour = 'success';\r\n @Input() editButtonColour = 'primary';\r\n @Input() closeButtonColour = 'warning';\r\n @Input() noButtonColour = 'danger';\r\n @Input() yesButtonIcon: any = null;\r\n @Input() noButtonIcon: any = null;\r\n @Input() closeButtonIcon: any = ['far', 'times'];\r\n @Input() isEditing: boolean = false;\r\n @Input() showSaveAndUploadButton: boolean = false;\r\n @Input() isReadOnly: boolean = false;\r\n @Input() buttonsDisabled: boolean = false;\r\n @Input() editButtonIcon: any = null;\r\n @Input() showExportToPDFButton: boolean = false;\r\n @Input() printClicked: boolean = false;\r\n printIcon: any = ['far', 'print'];\r\n showSaveAndUploadButtonIcon: any = ['far', 'file-upload'];\r\n\r\n @Output() saveClicked: EventEmitter = new EventEmitter();\r\n @Output() saveAndUploadClicked: EventEmitter = new EventEmitter();\r\n @Output() cancelClicked: EventEmitter = new EventEmitter();\r\n @Output() closeClicked: EventEmitter = new EventEmitter();\r\n @Output() editClicked: EventEmitter = new EventEmitter();\r\n @Output() helpClicked: EventEmitter = new EventEmitter();\r\n showSaveAndUploadButtonColor = 'success';\r\n\r\n constructor(public modalRef: DynamicDialogRef) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n saveAndUploadBtnClicked() {\r\n this.saveAndUploadClicked.emit();\r\n }\r\n\r\n clicked(answer: boolean) {\r\n this.saveClicked.emit(answer);\r\n }\r\n\r\n editBtnClicked() {\r\n this.editClicked.emit(true);\r\n if (this.yesButtonIcon || this.yesButtonText)\r\n this.isEditing = true;\r\n }\r\n\r\n cancelBtnClicked() {\r\n this.cancelClicked.emit(true);\r\n }\r\n\r\n helpBtnClicked() {\r\n this.helpClicked.emit(true);\r\n }\r\n\r\n closeBtnClicked() {\r\n this.modalRef.close();\r\n this.cancelClicked.emit();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\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\n\r\n@Component({\r\n selector: 'app-eca-question-icon',\r\n templateUrl: './eca-question-icon.component.html',\r\n styleUrls: ['./eca-question-icon.component.scss']\r\n})\r\nexport class EcaQuestionIconComponent implements OnInit {\r\n @Input() size: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n@Component({\r\n selector: 'app-eca-row-menu',\r\n templateUrl: './eca-row-menu.component.html',\r\n styleUrls: ['./eca-row-menu.component.scss']\r\n})\r\nexport class EcaRowMenuComponent implements OnInit {\r\n\r\n @Input() viewBtnSize: any = \"\";\r\n @Input() viewBtnVisible: boolean = true;\r\n @Input() removeLabelOnMobile: boolean = false;\r\n @Input() viewBtnText: string = \"View\";\r\n @Input() menuVisible: boolean = true;\r\n\r\n @Input() rowMenuItems: MenuItem[];\r\n @Input() contextItem: any;\r\n @Input() menuLabel: string = '';\r\n @Input() isDisabled: boolean;\r\n @Input() rowMenuVisible: boolean = true;\r\n\r\n @Output() viewBtnClicked: EventEmitter = new EventEmitter();\r\n menuItems: MenuItem[] = [];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n //check if there are any items in the menu. If there are not then don't show the sub menu\r\n if (this.rowMenuItems === undefined || this.rowMenuItems.length == 0) {\r\n this.rowMenuVisible = false;\r\n }\r\n else {\r\n this.rowMenuItems?.forEach((item, index) => {\r\n let menuItem: MenuItem;\r\n //set up base properties\r\n menuItem = {\r\n label: item.label,\r\n icon: item.icon,\r\n styleClass: item.styleClass,\r\n visible: item.visible,\r\n disabled: item.disabled\r\n };\r\n //check for entity logic in terms of whether the menu item should be displayed\r\n if (item.state?.contextLogic) {\r\n menuItem.visible = this.contextItem[item.state?.contextLogic];\r\n };\r\n //update commands that are specific to entity/context\r\n menuItem.command = () => item.command?.(this.contextItem);\r\n this.menuItems.push(menuItem);\r\n });\r\n }\r\n }\r\n\r\n viewClicked() {\r\n this.viewBtnClicked.emit();\r\n }\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 { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { IHaveDescription } from \"../../../common/have-description.interface\";\r\nimport { IHaveName } from \"../../../common/have-name.interface\";\r\nimport { Dropdown } from 'primeng/dropdown';\r\n\r\n@Component({\r\n selector: 'app-eca-select',\r\n templateUrl: './eca-select.component.html',\r\n styleUrls: ['./eca-select.component.scss']\r\n})\r\nexport class EcaSelectComponent implements OnInit {\r\n @Input() selectedId: IHaveName;\r\n @Input() isReadOnly: boolean;\r\n @Input() options: IHaveName[] = [];\r\n @Input() isRequired: boolean = false;\r\n @Input() popoverText: string = \"\";\r\n @Input() label: string = \"\";\r\n @Input() validationMessage: string = \"\";\r\n @Input() isValid: boolean = true;\r\n @Input() updateMessage: string = \"\";\r\n @Input() showUpdateMessage: boolean = false;\r\n @Input() controlId: string = 'ctrlSelect';\r\n @Input() enableClear: boolean = false;\r\n @Input() placeholderText: string = \"\";\r\n @Output() selectedIdChange: EventEmitter = new EventEmitter();\r\n\r\n allowClear: boolean = false;\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.allowClear = !this.isRequired;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.options?.currentValue) {\r\n this.options = changes.options.currentValue;\r\n this.cdr.detectChanges(); // Trigger change detection manually\r\n }\r\n \r\n if (changes.selectedId?.currentValue) {\r\n this.selectedId = changes.selectedId.currentValue;\r\n this.cdr.detectChanges(); // Trigger change detection manually\r\n }\r\n\r\n if (changes.showUpdateMessage?.currentValue) {\r\n this.showUpdateMessage = changes.showUpdateMessage.currentValue;\r\n this.cdr.detectChanges(); // Trigger change detection manually\r\n }\r\n }\r\n\r\n selectedIdChanged() {\r\n this.selectedIdChange.emit(this.selectedId);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{validationMessage}}
\r\n
\r\n \r\n\r\n \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 {IModalOptions} from \"../../common/modals/modal-options.interface\";\r\n\r\nexport class EcaConfirmDeleteModalOptions implements IModalOptions {\r\n modalClasses = 'modal-eca modal-eca-danger ';\r\n noButtonColour = 'transparent';\r\n noButtonIcon = ['far', 'times'];\r\n noButtonText = 'Cancel';\r\n yesButtonColour = 'danger';\r\n yesButtonIcon = ['far', 'trash-alt'];\r\n yesButtonText = 'Remove';\r\n editButtonIcon = '';\r\n}\r\n","import {IModalOptions} from \"../../common/modals/modal-options.interface\";\r\n\r\nexport class EcaConfirmInfoModalOptions implements IModalOptions {\r\n modalClasses = 'modal-eca modal-xl ';\r\n noButtonColour = 'transparent';\r\n noButtonIcon = '';\r\n noButtonText = 'Close';\r\n yesButtonColour = '';\r\n yesButtonIcon = '';\r\n yesButtonText = '';\r\n editButtonIcon = '';\r\n}\r\n","import {IModalOptions} from \"../../common/modals/modal-options.interface\";\r\n\r\nexport class EcaModalOptions implements IModalOptions {\r\n modalClasses = 'modal-eca';\r\n noButtonColour = 'transparent';\r\n noButtonIcon = ['fas', 'times'];\r\n noButtonText = 'Cancel';\r\n yesButtonColour = 'success';\r\n yesButtonIcon = ['fas', 'check'];\r\n yesButtonText = 'Yes';\r\n editButtonIcon = 'fas fa-edit';\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { IModalOptions } from \"../../common/modals/modal-options.interface\";\r\nimport { YesNoModalOptions } from \"../../common/modals/yesno-modal-options.class\";\r\nimport { EcaConfirmModalComponent } from \"../components/eca-confirm-modal/eca-confirm-modal.component\";\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EcaConfirmProcessService {\r\n modalRef: IEcaDialogRef;\r\n\r\n constructor(private modalService: EcaDynamicModalService) { }\r\n\r\n openConfirmProcessModal(\r\n question: string,\r\n heading: string,\r\n options?: IModalOptions): EventEmitter {\r\n if (options === undefined) {\r\n options = new YesNoModalOptions();\r\n }\r\n\r\n let config = {\r\n styleClass: 'modal-notify' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n question,\r\n heading,\r\n yesButtonText: options.yesButtonText,\r\n noButtonText: options.noButtonText,\r\n yesButtonColour: options.yesButtonColour,\r\n noButtonColour: options.noButtonColour,\r\n yesButtonIcon: options.yesButtonIcon,\r\n noButtonIcon: options.noButtonIcon,\r\n }\r\n } as DynamicDialogConfig;\r\n\r\n this.modalRef = this.modalService.openDialog(EcaConfirmModalComponent, config);\r\n return this.modalRef.content.answer;\r\n }\r\n}\r\n","import { ComponentFactoryResolver, Injectable, Type, } from '@angular/core';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EcaDynamicModalService {\r\n dialogRef: DynamicDialogRef | undefined;\r\n\r\n constructor(private resolver: ComponentFactoryResolver, private dialogService: DialogService) {\r\n }\r\n\r\n openDialog(componentType: Type, config: DynamicDialogConfig): IEcaDialogRef {\r\n const dynamicDialogRef = this.dialogService.open(componentType, config);\r\n const content = this.getDialogComponentInstance(dynamicDialogRef, componentType, config);\r\n return { dynamicDialogRef, content } as IEcaDialogRef;\r\n }\r\n\r\n getDialogComponentInstance(dynamicDialogRef: DynamicDialogRef, componentType: Type, config: DynamicDialogConfig) {\r\n let dialogComponentComponentRef = this.dialogService.dialogComponentRefMap.get(dynamicDialogRef);\r\n dialogComponentComponentRef?.changeDetectorRef.detectChanges();\r\n let instance = dialogComponentComponentRef?.instance.componentRef.instance as any;\r\n\r\n if (config.data) {\r\n let viewContainerRef = dialogComponentComponentRef!.instance.insertionPoint.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n let componentFactory = this.resolver.resolveComponentFactory(componentType);\r\n let componentRef = viewContainerRef.createComponent(componentFactory);\r\n\r\n\r\n for (const key in config.data) {\r\n componentRef.instance[key] = config.data[key];\r\n }\r\n instance = componentRef.instance;\r\n dialogComponentComponentRef?.changeDetectorRef.detectChanges();\r\n }\r\n return instance;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcaQuestionIconComponent } from './components/eca-question-icon/eca-question-icon.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { EcaGhostBtnComponent } from './components/eca-ghost-btn/eca-ghost-btn.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { EcaInputGuideComponent } from './components/eca-input-guide/eca-input-guide.component';\r\nimport { CommonsModule } from '../common/commons.module';\r\nimport { EcaModalHostComponent } from './components/eca-modal-host/eca-modal-host.component';\r\n//import { BreadcrumbModule } from 'xng-breadcrumb';\r\nimport { EcaDatePickerComponent } from './components/eca-date-picker/eca-date-picker.component';\r\nimport { EcaInputComponent } from './components/eca-input/eca-input.component';\r\nimport { EcaHtmlEditorComponent } from './components/eca-html-editor/eca-html-editor.component';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { EcaSelectComponent } from './components/eca-select/eca-select.component';\r\nimport { EcaConfirmModalComponent } from './components/eca-confirm-modal/eca-confirm-modal.component';\r\nimport { NgxPrintModule } from 'ngx-print';\r\nimport { EcaAppVersionComponent } from './components/eca-app-version/eca-app-version.component';\r\nimport { EcaHelpAlertComponent } from './components/eca-help-alert/eca-help-alert.component';\r\nimport { EcaCheckboxComponent } from './components/eca-checkbox/eca-checkbox.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { EcaRowMenuComponent } from './components/eca-row-menu/eca-row-menu.component';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { EcaImageViewerComponent } from './components/eca-image-viewer/eca-image-viewer.component';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { EcaMarqueeComponent } from './components/eca-marquee/eca-marquee.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [EcaQuestionIconComponent,\r\n EcaGhostBtnComponent,\r\n EcaInputGuideComponent,\r\n EcaModalHostComponent,\r\n EcaDatePickerComponent,\r\n EcaInputComponent,\r\n EcaHtmlEditorComponent,\r\n EcaSelectComponent,\r\n EcaConfirmModalComponent,\r\n EcaAppVersionComponent,\r\n EcaHelpAlertComponent,\r\n EcaCheckboxComponent,\r\n EcaRowMenuComponent,\r\n EcaImageViewerComponent,\r\n EcaMarqueeComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n FormsModule,\r\n CommonsModule,\r\n //BreadcrumbModule,\r\n QuillModule,\r\n NgxPrintModule,\r\n TableModule,\r\n CalendarModule,\r\n TooltipModule,\r\n MenuModule,\r\n CheckboxModule,\r\n ImageModule,\r\n FileUploadModule\r\n ],\r\n exports: [\r\n EcaQuestionIconComponent, EcaGhostBtnComponent, EcaInputGuideComponent, EcaModalHostComponent, EcaDatePickerComponent, EcaInputComponent, EcaHtmlEditorComponent, EcaSelectComponent, EcaAppVersionComponent, EcaHelpAlertComponent, EcaCheckboxComponent, EcaRowMenuComponent, EcaImageViewerComponent, EcaMarqueeComponent\r\n ]\r\n})\r\nexport class SharedModule {\r\n}\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { IOperative } from '../../../message-models/operative.interface';\r\nimport { TrainingRecordsService } from '../../services/training-records.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ITrainingRecord } from '../../../message-models/training-record.interface';\r\nimport { TrainingRecord } from '../../../domain-model/training-record.class';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\nimport { OperativesService } from '../../../operatives/services/operatives.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { TrainingRecordDocumentService } from '../../services/training-record-document.service';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { Observation, ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { HelpConsts } from '../../../help/models/help-consts';\r\nimport { HelpModalService } from '../../../help/services/help-modal.service';\r\nimport { EcaConfirmDeleteModalOptions } from \"../../../shared/models/confirm-delete-modal-options.class\";\r\nimport { OperativeDocumentService } from '../../../operatives/services/operative-document.service';\r\n\r\n@Component({\r\n selector: 'app-training-record-details',\r\n templateUrl: './training-record-details.component.html',\r\n styleUrls: ['./training-record-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class TrainingRecordDetailsComponent implements OnInit {\r\n @ViewChild('trDetailsContainerComponent') trDetailsContainerComponent: DetailContainerComponent;\r\n operative: IOperative;\r\n editingDetails: boolean;\r\n trainingRecordObservations: Array = new Array();\r\n ObservationType: typeof ObservationType = ObservationType;\r\n private trainingRecordId: string;\r\n trainingRecordTypes: ITrainingType[] = [];\r\n trainingRecord: TrainingRecord = new TrainingRecord({} as ITrainingRecord);\r\n trainingRecordDocuments: IEntityDocumentSummary[] = [];\r\n public loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n tempTrainingRecord: TrainingRecord = new TrainingRecord({} as ITrainingRecord);\r\n isTrainingRecordLoading: boolean = false;\r\n observationsLoading: boolean = true;\r\n operativeObservationsSummary: Array;\r\n\r\n\r\n // originalTrainingRecord: TrainingRecord = new TrainingRecord({} as ITrainingRecord);\r\n constructor(private route: ActivatedRoute,\r\n private trainingRecordsService: TrainingRecordsService,\r\n private trainingRecordDocumentService: TrainingRecordDocumentService,\r\n private operativesService: OperativesService,\r\n private operativeDocumentService: OperativeDocumentService,\r\n private helpService: HelpModalService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private documentModalService: DocumentModalService,\r\n private documentService: DocumentService,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private alertsService: AlertsService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private userService: OurUserService,\r\n private router: Router,\r\n private errorHandlingService: ErrorHandlingService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n this.trainingRecordId = this.route.snapshot.params.trainingRecordId;\r\n this.isTrainingRecordLoading = true;\r\n this.userService.getLoggedInUser().subscribe(() => {\r\n\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid || this.companyId !== undefined) {\r\n\r\n this.trainingRecordsService.getTrainingRecordById(this.trainingRecordId).subscribe(trainingRecord => {\r\n this.trainingRecord = new TrainingRecord(trainingRecord);\r\n this.tempTrainingRecord = new TrainingRecord(this.trainingRecord as ITrainingRecord);\r\n // this.originalTrainingRecord = new TrainingRecord(trainingRecord);\r\n \r\n this.getTrainingTypesForCompany();\r\n this.operativesService.getOperativeById(this.trainingRecord.operativeId).subscribe(o => {\r\n this.operative = o;\r\n this.populateBreadcrumbs();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.observationsService.getTrainingRecordObservations(this.trainingRecordId, this.companyId).subscribe(observations => {\r\n observations?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.trainingRecordObservations = observations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.getTrainingRecordDocuments();\r\n this.isTrainingRecordLoading = false;\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n private getTrainingTypesForCompany() {\r\n this.isTrainingRecordLoading = true;\r\n this.trainingRecordsService.getTrainingTypesForCompany(this.companyId).subscribe(results => {\r\n this.trainingRecordTypes = results;\r\n this.isTrainingRecordLoading = false;\r\n //results.forEach(t => {\r\n // this.trainingRecordTypes.push(t);\r\n //});\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n editDetails() {\r\n if (this.trDetailsContainerComponent.isCollapsed) {\r\n //this.trDetailsContainerComponent.expandClicked();\r\n this.trDetailsContainerComponent.panelToggle();\r\n }\r\n this.editingDetails = true;\r\n // this.tempTrainingRecord = new TrainingRecord(this.trainingRecord);\r\n }\r\n\r\n saveDetails() {\r\n if (this.tempTrainingRecord.isValid) {\r\n this.isTrainingRecordLoading = true;\r\n this.trainingRecordsService.createOrUpdateTrainingRecord(new TrainingRecord(this.tempTrainingRecord)).subscribe(trainingRecord => {\r\n this.trainingRecord = new TrainingRecord(trainingRecord);\r\n this.tempTrainingRecord = new TrainingRecord(this.trainingRecord as ITrainingRecord);\r\n // this.tempTrainingRecord = new TrainingRecord({} as ITrainingRecord);\r\n this.editingDetails = false;\r\n this.isTrainingRecordLoading = false;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n }\r\n\r\n cancelEdit() {\r\n this.tempTrainingRecord = new TrainingRecord(this.trainingRecord as ITrainingRecord);\r\n this.editingDetails = false;\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({\r\n label: `${this.operative.firstName} ${this.operative.middleInitials} ${this.operative.lastName}`,\r\n iconName: 'user',\r\n routeLink: `/operative/${this.operative.id}`\r\n } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.trainingRecord?.trainingType?.name, iconName: 'book' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n addTrainingRecordDocument() {\r\n this.documentModalService.openDocumentUploaderModal(null, DocumentEntityType.trainingRecord, 'Add Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('TrainingRecordId', this.trainingRecord.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n\r\n this.trainingRecordDocumentService\r\n .createOrUpdateTrainingRecordDocument(documentUploadRequest).subscribe(trainingRecordSummary => {\r\n this.trainingRecordDocuments.unshift(trainingRecordSummary);\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n viewTrainingRecordDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.router.navigate(['training-record-document', entityDocumentSummary.documentId]);\r\n }\r\n\r\n\r\n downloadTrainingRecordDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(entityDocumentSummary, true);\r\n }\r\n\r\n openTrainingRecordDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(entityDocumentSummary);\r\n }\r\n\r\n deleteTrainingRecordDocumentClick(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to remove this document?',\r\n 'Remove ' + entityDocumentSummary.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.deleteOperativeDocument(entityDocumentSummary);\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteOperativeDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.trainingRecordDocumentService.deleteTrainingRecordDocument(entityDocumentSummary.documentId, this.companyId).subscribe(\r\n result => {\r\n if (result) {\r\n const documentIndex = this.trainingRecordDocuments.findIndex(c => c.documentId !== entityDocumentSummary.documentId);\r\n this.trainingRecordDocuments.splice(documentIndex, 1);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n editTrainingRecordDocument(entityDocumentSummary: IEntityDocumentSummary) {\r\n this.documentModalService.openDocumentUploaderModal(entityDocumentSummary, DocumentEntityType.trainingRecord, 'Edit Training Record Document')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('TrainingRecordId', this.trainingRecord.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.trainingRecordDocumentService.createOrUpdateTrainingRecordDocument(documentUploadRequest)\r\n .subscribe(updatedTrainingRecordSummary => {\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n const documentIndex = this.trainingRecordDocuments.findIndex(d => d.documentId === entityDocumentSummary.documentId);\r\n this.trainingRecordDocuments[documentIndex] = updatedTrainingRecordSummary;\r\n },\r\n uploadError => {\r\n\r\n });\r\n });\r\n });\r\n }\r\n\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType, showSaveAndUploadButton?: boolean) {\r\n this.observationModalService.createOrEditObservation(observation, heading, isEditing, observationType, showSaveAndUploadButton).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordObservations?.forEach(trObservationSummary => {\r\n if (trObservationSummary.observationId === observationResult.id) {\r\n entityObservationId = trObservationSummary.trainingRecordObservationId;\r\n }\r\n });\r\n this.observationsService.createOrUpdateTrainingRecordObservation(observationResult as IObservation, this.trainingRecordId, this.companyId, entityObservationId).subscribe(trainingRecordObservation => {\r\n this.trainingRecordObservations = this.observationsService.updateObservationSummaries(this.trainingRecordObservations, trainingRecordObservation);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n this.trainingRecordObservations?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n\r\n }\r\n })\r\n observationModalRef.content.saveObservationDocumentRequested.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n const editedObservation = new Observation({\r\n id: observationResult.id,\r\n summaryInfo: observationResult.summaryInfo,\r\n notesAsHtml: observationResult.notesAsHtml,\r\n observedBy: observationResult.observedBy,\r\n observedOn: observationResult.observedOn,\r\n followUpOn: observationResult.followUpOn,\r\n observationType: observationResult.observationType\r\n } as IObservation);\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordObservations?.forEach(trObservationSummary => {\r\n if (trObservationSummary.observationId === observationResult.id) {\r\n entityObservationId = trObservationSummary.trainingRecordObservationId;\r\n }\r\n });\r\n this.observationsLoading = true;\r\n this.observationsService.createOrUpdateTrainingRecordObservation(editedObservation, this.trainingRecordId, this.companyId, entityObservationId).subscribe(trainingRecordObservation => {\r\n this.operativeObservationsSummary = this.observationsService.updateObservationSummaries(this.operativeObservationsSummary, trainingRecordObservation);\r\n this.operativeObservationsSummary?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.observationsLoading = false;\r\n //this.getTrainingRecordsForOperative(); Possibly to do with reloading changes after an observation has been edited/created\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n this.documentModalService.openDocumentUploaderModal({ documentCreationDate: observationResult.ObservedOn } as IEntityDocumentSummary\r\n , DocumentEntityType.employedPerson, 'Add new Document for Observation')\r\n .subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n //this.addingOperativeDocuments = true;\r\n documentUploadRequest.append('OperativeId', this.operative.id);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.operativeDocumentService.createOrUpdateOperativeDocument(documentUploadRequest).subscribe(operativeDocumentSummary => {\r\n //this.getOperativeDocuments();\r\n //this.addingOperativeDocuments = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n // this.router.navigateByUrl('/dashboard');\r\n });\r\n });\r\n });\r\n });\r\n }\r\n })\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n });\r\n }\r\n\r\n getTrainingRecordDocuments(includeExpired: boolean = false) {\r\n this.trainingRecordDocumentService.getAllTrainingRecordDocumentSummaries(this.companyId, this.trainingRecord.id, includeExpired).subscribe(trainingRecordDocuments => {\r\n this.trainingRecordDocuments = [];\r\n trainingRecordDocuments.forEach(doc => this.trainingRecordDocuments.push(doc));\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n openTrainingRecordDetailsHelp() {\r\n this.helpService.openHelpModal(HelpConsts.TrainingRecordHelp);\r\n }\r\n\r\n saveNewCompanyTrainingType(trainingType: ITrainingType) {\r\n if (trainingType !== null) {\r\n\r\n trainingType.companyId = this.companyId;\r\n this.trainingRecordsService.createOrUpdateCompanyTrainingType(trainingType).subscribe(trainingType => {\r\n if (trainingType) {\r\n this.getTrainingTypesForCompany();\r\n this.tempTrainingRecord.trainingTypeId = trainingType.id;\r\n this.tempTrainingRecord.validTo = trainingType.validTo;\r\n }\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n

\r\n \r\n Training Record for {{ operative?.firstName }} {{ operative?.lastName}}\r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Training Record Details\r\n \r\n\r\n \r\n Training Record Details\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Documents\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Observations\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\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, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationType, ObservationTypeString } from '../../../domain-model/observation.class';\r\nimport { TrainingRecordDocumentService } from '../../services/training-record-document.service';\r\nimport { ITrainingRecordDocumentSummary } from '../../../message-models/training-record-document-summary.interface';\r\nimport { TrainingRecordDocumentSummary } from '../../../message-models/training-record-document-summary.class';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\n\r\n@Component({\r\n selector: 'app-training-record-document-details-page',\r\n templateUrl: './training-record-document-details-page.component.html',\r\n styleUrls: ['./training-record-document-details-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class TrainingRecordDocumentDetailsPageComponent implements OnInit, OnDestroy {\r\n loading: boolean;\r\n isEditing = false;\r\n documentUploadRequest: FormData;\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n @ViewChild('trnDetailsContainerComponent') trnDetailsContainerComponent: DetailContainerComponent;\r\n\r\n trainingRecordDocumentSummary: ITrainingRecordDocumentSummary;\r\n trainingRecordDocumentTypes: IDocumentType[];\r\n trainingRecordDocumentObservations: Array = new Array();\r\n ObservationType: typeof ObservationType = ObservationType;\r\n documentId: string;\r\n public loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n\r\n constructor(private documentTypeService: DocumentTypeService,\r\n private trainingRecordDocumentService: TrainingRecordDocumentService,\r\n private documentService: DocumentService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private userService: OurUserService,\r\n private activatedRoute: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private alertsService: AlertsService,\r\n private errorHandlingService: ErrorHandlingService\r\n ) {\r\n this.documentId = this.activatedRoute.snapshot.params.documentId;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid) {\r\n this.documentTypeService.getAllDocumentTypesForEntityType(DocumentEntityType.trainingRecord).subscribe(trainingRecordDocumentTypes => {\r\n this.trainingRecordDocumentTypes = trainingRecordDocumentTypes;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.trainingRecordDocumentService.getTrainingRecordDocumentSummary(this.documentId).subscribe(trainingRecordDocumentSummary => {\r\n this.trainingRecordDocumentSummary = new TrainingRecordDocumentSummary(trainingRecordDocumentSummary);\r\n this.initTrainingRecordDocument();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n if (this.companyId) {\r\n this.observationsService.getDocumentObservations(this.documentId, this.companyId).subscribe(trainingRecordDocumentObservations => {\r\n this.trainingRecordDocumentObservations = trainingRecordDocumentObservations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n downloadTrainingRecordDocument() {\r\n this.documentService.downloadOrOpenDocument(this.trainingRecordDocumentSummary, true);\r\n }\r\n\r\n openTrainingRecordDocument() {\r\n this.documentService.downloadOrOpenDocument(this.trainingRecordDocumentSummary);\r\n }\r\n\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType) {\r\n this.observationModalService.createOrEditObservation(observation, heading + this.trainingRecordDocumentSummary.originalFilename, isEditing, observationType)\r\n .subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n if (observationResult.observationType === null) {\r\n observationResult.observationType = ObservationType.TrainingRecordDocument;\r\n }\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.trainingRecordDocumentObservations?.forEach(trObservationSummary => {\r\n if (trObservationSummary.observationId === observationResult.id) {\r\n entityObservationId = trObservationSummary.documentObservationId;\r\n }\r\n });\r\n this.observationsService.createOrUpdateDocumentObservation(observationResult as IObservation, this.documentId, this.companyId, entityObservationId)\r\n .subscribe(companyDocObservation => {\r\n this.trainingRecordDocumentObservations = this.observationsService.updateObservationSummaries(this.trainingRecordDocumentObservations, companyDocObservation);\r\n this.trainingRecordDocumentObservations?.forEach(ob => {\r\n ob.observationTypeString = ObservationTypeString[ob.observationType];\r\n });\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n }\r\n });\r\n });\r\n }\r\n\r\n saveTrainingRecordDocumentClicked() {\r\n this.appendDocumentUploadRequest();\r\n this.loading = true;\r\n this.trainingRecordDocumentService\r\n .createOrUpdateTrainingRecordDocument(this.documentUploadRequest).subscribe(trainingRecordDocumentSummary => {\r\n this.loading = false;\r\n this.trainingRecordDocumentSummary = new TrainingRecordDocumentSummary(trainingRecordDocumentSummary);\r\n this.isEditing = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private appendDocumentUploadRequest() {\r\n this.documentUploadRequest.append('TrainingRecordId', this.trainingRecordDocumentSummary.trainingRecordId);\r\n this.documentUploadRequest.append('CompanyId', this.companyId);\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', this.tempDocumentSummary.documentTypeId);\r\n if (this.tempDocumentSummary.documentTypeId === '00000000-0000-0000-0000-000000000000') {\r\n this.documentUploadRequest.append('OtherDocumentType', this.tempDocumentSummary.documentType);\r\n }\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n if (this.tempDocumentSummary.reviewDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentReviewDate', this.tempDocumentSummary.reviewDate.dateTime);\r\n }\r\n if (this.tempDocumentSummary.expiryDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentExpiryDate', this.tempDocumentSummary.expiryDate.dateTime);\r\n }\r\n this.documentUploadRequest.append('ExtraDescription', this.tempDocumentSummary?.extraDescription);\r\n this.documentUploadRequest.append('DocumentCreationDate', this.tempDocumentSummary.documentCreationDate.dateTime);\r\n }\r\n\r\n editClicked() {\r\n if (this.trnDetailsContainerComponent.isCollapsed) {\r\n //this.trnDetailsContainerComponent.expandClicked();\r\n this.trnDetailsContainerComponent.panelToggle();\r\n }\r\n this.isEditing = true;\r\n }\r\n\r\n cancelClicked() {\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.trainingRecordDocumentSummary);\r\n this.isEditing = false;\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n formStatusChange(formIsValid: any) {\r\n this.formIsValid = formIsValid;\r\n }\r\n\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n initTrainingRecordDocument() {\r\n this.isEditing = false;\r\n this.documentUploadRequest = new FormData();\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.trainingRecordDocumentSummary);\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({\r\n label: this.trainingRecordDocumentSummary.operativeFullName,\r\n iconName: 'user',\r\n routeLink: `/operative/${this.trainingRecordDocumentSummary.operativeId}`\r\n } as IBreadcrumb);\r\n operativeBreadCrumbs.push({\r\n label: this.trainingRecordDocumentSummary?.trainingType?.name,\r\n iconName: 'book',\r\n routeLink: `/training-record/${this.trainingRecordDocumentSummary.trainingRecordId}`\r\n } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.trainingRecordDocumentSummary.originalFilename, iconName: 'book' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n}\r\n"," \r\n \r\n

\r\n \r\n Training Record Document For - {{this.trainingRecordDocumentSummary.operativeFullName}}\r\n \r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Document Details\r\n \r\n \r\n Document Details - {{trainingRecordDocumentSummary?.originalFilename}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Observations\r\n \r\n
\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, ViewEncapsulation } from '@angular/core';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { DocumentModalService } from '../../../documents/services/document-modal.service';\r\nimport { Router } from '@angular/router';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { ITrainingRecordDocumentSummary } from '../../../message-models/training-record-document-summary.interface';\r\nimport { TrainingRecordDocumentService } from '../../services/training-record-document.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { EcaConfirmDeleteModalOptions } from \"../../../shared/models/confirm-delete-modal-options.class\";\r\nimport { EcaConfirmProcessService } from '../../../shared/services/eca-confirm-process.service';\r\n\r\n@Component({\r\n selector: 'app-training-record-documents-page',\r\n templateUrl: './training-record-documents-page.component.html',\r\n styleUrls: ['./training-record-documents-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class TrainingRecordDocumentsPageComponent implements OnInit, OnDestroy {\r\n trainingRecordDocuments: ITrainingRecordDocumentSummary[];\r\n loading: boolean;\r\n private loggedInUser: IUserInfo;\r\n public companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n\r\n constructor(private trainingRecordDocumentService: TrainingRecordDocumentService,\r\n private documentService: DocumentService,\r\n private documentModalService: DocumentModalService,\r\n private router: Router,\r\n private confirmProcessService: EcaConfirmProcessService,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private alertsService: AlertsService,\r\n private userService: OurUserService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser.companyId;\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (this.companyId !== consts.emptyGuid) {\r\n this.trainingRecordDocumentService.getAllTrainingRecordDocumentSummaries(this.companyId).subscribe(trainingRecordDocuments => {\r\n this.trainingRecordDocuments = trainingRecordDocuments;\r\n this.populateBreadcrumbs();\r\n });\r\n }\r\n })\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n downloadTrainingRecordDocument(trainingRecordDocuments: ITrainingRecordDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(trainingRecordDocuments, true);\r\n }\r\n\r\n openTrainingRecordDocument(trainingRecordDocuments: ITrainingRecordDocumentSummary) {\r\n this.documentService.downloadOrOpenDocument(trainingRecordDocuments);\r\n }\r\n\r\n deleteTrainingRecordDocumentClick(trainingRecordDocument: ITrainingRecordDocumentSummary) {\r\n this.confirmProcessService.openConfirmProcessModal('Are you sure you want to delete this document?',\r\n 'Delete ' + trainingRecordDocument.originalFilename, new EcaConfirmDeleteModalOptions()).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.deleteTrainingRecordDocument(trainingRecordDocument);\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteTrainingRecordDocument(trainingRecordDocument: ITrainingRecordDocumentSummary) {\r\n this.trainingRecordDocumentService.deleteTrainingRecordDocument(trainingRecordDocument.documentId, this.companyId).subscribe(\r\n result => {\r\n if (result) {\r\n const documentIndex = this.trainingRecordDocuments.findIndex(c => c.documentId !== trainingRecordDocument.documentId);\r\n this.trainingRecordDocuments.splice(documentIndex, 1);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }\r\n }, error => {\r\n });\r\n }\r\n\r\n editTrainingRecordDocument(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.documentModalService.openDocumentUploaderModal(trainingRecordDocumentSummary, DocumentEntityType.trainingRecord, 'Edit Training Record Document').subscribe(documentModalRef => {\r\n documentModalRef.content.documentUploadSave.subscribe((documentUploadRequest: FormData) => {\r\n documentModalRef.dynamicDialogRef.close();\r\n documentUploadRequest.append('TrainingRecordId', trainingRecordDocumentSummary.trainingRecordId);\r\n documentUploadRequest.append('CompanyId', this.companyId);\r\n this.loading = true;\r\n this.trainingRecordDocumentService\r\n .createOrUpdateTrainingRecordDocument(documentUploadRequest).subscribe(updatedTrainingRecordDocumentsSummary => {\r\n this.loading = false;\r\n const documentIndex = this.trainingRecordDocuments.findIndex(d => d.documentId === trainingRecordDocumentSummary.documentId);\r\n this.trainingRecordDocuments[documentIndex] = updatedTrainingRecordDocumentsSummary;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n },\r\n uploadError => {\r\n\r\n });\r\n });\r\n });\r\n }\r\n\r\n viewTrainingRecordDocument(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.router.navigate(['training-record-document', trainingRecordDocumentSummary.documentId]);\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Operatives', iconName: 'users', routeLink: '/operatives' } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: 'Our Training Record Documents', iconName: 'books' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n}\r\n","
\r\n \r\n \r\n

\r\n Training Record Documents \r\n

\r\n
\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ITrainingRecordDocumentSummary } from '../../../message-models/training-record-document-summary.interface';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-training-record-documents',\r\n templateUrl: './training-record-documents.component.html',\r\n styleUrls: ['./training-record-documents.component.scss']\r\n})\r\nexport class TrainingRecordDocumentsComponent implements OnInit {\r\n @Input() showTableCaption: boolean;\r\n @Input() showHeaderText = true;\r\n @Input() headerText = 'Training Record Documents';\r\n @Input() addDocumentButtonText = 'Add';\r\n @Input() showAddDocumentButton = true;\r\n @Input() trainingRecordDocuments: Array = new Array();\r\n\r\n @Output() openDocument: EventEmitter = new EventEmitter();\r\n @Output() editDocument: EventEmitter = new EventEmitter();\r\n @Output() downloadDocument: EventEmitter = new EventEmitter();\r\n @Output() deleteDocument: EventEmitter = new EventEmitter();\r\n @Output() viewDocument: EventEmitter = new EventEmitter();\r\n @Output() addDocument: EventEmitter = new EventEmitter();\r\n\r\n rowMenuItems: MenuItem[];\r\n\r\n constructor() {\r\n }\r\n\r\n isOnMobile = false;\r\n ngOnInit(): void {\r\n this.isOnMobile = window.outerWidth <= 480;\r\n\r\n this.rowMenuItems = [\r\n {\r\n label: 'Open',\r\n icon: 'fas fa-search',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.openDocumentClicked($event)\r\n },\r\n {\r\n label: 'Edit',\r\n icon: 'fas fa-edit',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.editDocumentClicked($event)\r\n },\r\n {\r\n label: 'Download',\r\n icon: 'fas fa-download',\r\n styleClass: 'eca-menu-item-green',\r\n command: ($event) => this.downloadDocumentClicked($event)\r\n },\r\n {\r\n label: 'Delete',\r\n icon: 'fas fa-trash-alt',\r\n styleClass: 'eca-menu-item-red',\r\n command: ($event) => this.deleteDocumentClicked($event)\r\n }\r\n ]\r\n }\r\n\r\n openDocumentClicked(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.openDocument.emit(trainingRecordDocumentSummary);\r\n }\r\n\r\n deleteDocumentClicked(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.deleteDocument.emit(trainingRecordDocumentSummary);\r\n }\r\n\r\n downloadDocumentClicked(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.downloadDocument.emit(trainingRecordDocumentSummary);\r\n }\r\n\r\n editDocumentClicked(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.editDocument.emit(trainingRecordDocumentSummary);\r\n }\r\n\r\n addDocumentClicked() {\r\n this.addDocument.emit();\r\n }\r\n\r\n viewDocumentClicked(trainingRecordDocumentSummary: ITrainingRecordDocumentSummary) {\r\n this.viewDocument.emit(trainingRecordDocumentSummary);\r\n }\r\n}\r\nexport class TableColumn {\r\n header: string;\r\n field: string;\r\n mobileCollapsed: boolean;\r\n}\r\n"," 5\" scrollHeight=\"500px\"\r\n [globalFilterFields]=\"['documentType', 'originalFilename', 'trainingType.description', 'operativeFullName']\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{headerText}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n As of\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\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 \r\n \r\n Training Type\r\n \r\n \r\n \r\n Operative Name\r\n \r\n \r\n \r\n Created On\r\n \r\n \r\n \r\n Review Due\r\n \r\n \r\n \r\n Expires On\r\n \r\n \r\n \r\n Original Filename\r\n \r\n \r\n \r\n Obervations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ trainingRecordDocument?.documentType }}\r\n {{ trainingRecordDocument.trainingType.description }}\r\n {{ trainingRecordDocument?.operativeFullName }} \r\n {{ trainingRecordDocument?.documentCreationDate?.dateTime | date: 'dd/MM/yyyy' }}\r\n {{ trainingRecordDocument?.reviewDate?.dateTime | date: 'dd/MM/yyyy' }}\r\n {{ trainingRecordDocument?.expiryDate?.dateTime | date: 'dd/MM/yyyy' }}\r\n {{ trainingRecordDocument?.originalFilename }}\r\n {{ trainingRecordDocument?.totalObervations }}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ITrainingType } from '../../../message-models/training-record-type.interface';\r\nimport { DynamicDialogRef, DynamicDialogConfig} from \"primeng/dynamicdialog\";\r\nimport { TrainingRecord } from '../../../domain-model/training-record.class';\r\nimport { HelpConsts } from \"../../../help/models/help-consts\";\r\n\r\n@Component({\r\n selector: 'app-training-record-editor-modal',\r\n templateUrl: './training-record-editor-modal.component.html',\r\n styleUrls: ['./training-record-editor-modal.component.scss']\r\n})\r\n\r\nexport class TrainingRecordEditorModalComponent implements OnInit {\r\n @Input() heading = 'Training Record Editor';\r\n @Input() editing = false;\r\n @Input() trainingRecord: TrainingRecord;\r\n @Input() isMultipleOperatives: boolean = false;\r\n @Input() trainingTypes: ITrainingType[] = [];\r\n @Output() saveTrainingRecordClicked: EventEmitter = new EventEmitter();\r\n @Output() saveNewTrainingRecordDocumentRequested: EventEmitter = new EventEmitter();\r\n @Output() cancelTrainingRecordClicked: EventEmitter = new EventEmitter();\r\n @Output() saveNewTrainingRecordTypeRequested: EventEmitter = new EventEmitter();\r\n addingNewTrainingType: boolean = false;\r\n saveAttempted: boolean = false;\r\n showingHelp: boolean = false;\r\n helpAlertText: string = HelpConsts.TrainingRecordHelp.sections[0].body;\r\n\r\n constructor(public modalRef: DynamicDialogRef, public config: DynamicDialogConfig) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.config.data) {\r\n this.heading = this.config.data.heading;\r\n this.trainingRecord = this.config.data.trainingRecord;\r\n this.editing = this.config.data.editing;\r\n }\r\n }\r\n\r\n saveTrainingRecord() {\r\n this.saveAttempted = true;\r\n if (!this.trainingRecord.isValid) {\r\n return;\r\n }\r\n\r\n this.saveAttempted = false;\r\n\r\n this.modalRef.close();\r\n\r\n let newTrainingRecord = new TrainingRecord(this.trainingRecord);\r\n this.saveTrainingRecordClicked.emit(newTrainingRecord);\r\n }\r\n\r\n editTrainingRecord() {\r\n this.editing = true;\r\n }\r\n\r\n cancelClicked() {\r\n this.cancelTrainingRecordClicked.emit(null);\r\n this.modalRef.close();\r\n }\r\n\r\n saveNewTrainingTypeRequested(trainingType: ITrainingType) {\r\n this.saveNewTrainingRecordTypeRequested.emit(trainingType);\r\n }\r\n\r\n addNewTrainingTypeRequested(isAdding: boolean) {\r\n this.addingNewTrainingType = isAdding;\r\n }\r\n\r\n helpClicked() {\r\n this.showingHelp = !this.showingHelp;\r\n }\r\n\r\n saveAndUploadDocument() {\r\n\r\n this.saveAttempted = true;\r\n\r\n if (!this.trainingRecord.isValid) {\r\n return;\r\n }\r\n\r\n this.saveAttempted = false;\r\n\r\n this.modalRef.close();\r\n\r\n let newTrainingRecord = new TrainingRecord(this.trainingRecord);\r\n this.saveNewTrainingRecordDocumentRequested.emit(newTrainingRecord);\r\n }\r\n\r\n hideHelpAlert() {\r\n this.showingHelp = 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","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { ITrainingType } from \"../../../message-models/training-record-type.interface\";\r\nimport { TrainingType } from \"../../../message-models/training-record-type.class\";\r\nimport { TrainingRecord } from '../../../domain-model/training-record.class';\r\nimport { TrainingTypeService } from '../../services/training-type.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { IDateTimeWithZone } from \"../../../common/date-time-with-zone.interface\";\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { DateTimeWithZone } from '../../../common/date-time-with-zone.class';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { TrainingRecordsService } from '../../services/training-records.service';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\n\r\n@Component({\r\n selector: 'app-training-record-editor',\r\n templateUrl: './training-record-editor.component.html',\r\n styleUrls: ['./training-record-editor.component.scss']\r\n})\r\nexport class TrainingRecordEditorComponent implements OnInit, OnDestroy {\r\n @Input() editing: boolean = false;\r\n @Input() trainingRecord: TrainingRecord = new TrainingRecord();\r\n @Input() trainingTypes: ITrainingType[] = [];\r\n @Input() isMultipleOperatives: boolean = false;\r\n @Input() addingNewTrainingType: boolean;\r\n @Input() saveAttempted: boolean = false;\r\n @Output() saveTrainingRecordRequested: EventEmitter = new EventEmitter();\r\n @Output() saveNewTrainingTypeRequested: EventEmitter = new EventEmitter();\r\n @Output() addNewTrainingTypeRequested: EventEmitter = new EventEmitter();\r\n // selectedTrainingTypeId: string = consts.emptyGuid;\r\n newTrainingType: TrainingType = new TrainingType();\r\n saveNewTrainingTypeAttempted: boolean = false;\r\n newTrainingTypeIdSubscription: Subscription;\r\n newTrainingTypeValidToSubscription: Subscription;\r\n selectedMaxDate: Date;\r\n selectedMinDate: Date;\r\n cpdHour: UntypedFormControl;\r\n editingOperativeDetails: boolean = false;\r\n constructor(private trainingTypeService: TrainingTypeService,\r\n\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n\r\n this.newTrainingTypeIdSubscription = this.trainingTypeService.getSelectedTrainingTypeId().subscribe(id => {\r\n \r\n if (id) {\r\n \r\n this.trainingRecord.trainingTypeId = id;\r\n this.selectedTrainingTypeChanged()\r\n }\r\n });\r\n this.newTrainingTypeValidToSubscription = this.trainingTypeService.getSelectedTrainingTypeValidTo().subscribe(date => {\r\n if (date) {\r\n this.trainingRecord.validTo = date;\r\n }\r\n })\r\n this.initDates();\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.trainingTypeService.clearSelectedTrainingTypeId();\r\n this.trainingTypeService.clearSelectedTrainingTypeValidTo();\r\n this.newTrainingTypeIdSubscription.unsubscribe();\r\n this.newTrainingTypeValidToSubscription.unsubscribe();\r\n }\r\n\r\n get selectedTrainingType(): ITrainingType {\r\n if (!this.trainingRecord?.trainingTypeId)\r\n return null;\r\n return this.trainingTypes.find(t => t.id === this.trainingRecord.trainingTypeId);\r\n }\r\n\r\n addNewTrainingType() {\r\n this.addingNewTrainingType = true;\r\n this.saveNewTrainingTypeAttempted = false;\r\n this.newTrainingType = new TrainingType();\r\n this.addNewTrainingTypeRequested.emit(true);\r\n }\r\n\r\n cancelNewTrainingType() {\r\n this.addingNewTrainingType = false;\r\n this.saveNewTrainingTypeAttempted = false;\r\n this.addNewTrainingTypeRequested.emit(false);\r\n }\r\n\r\n saveNewTrainingType() {\r\n this.saveNewTrainingTypeAttempted = true;\r\n if (!this.newTrainingType.isValid) {\r\n return;\r\n }\r\n this.saveNewTrainingTypeRequested.emit(this.newTrainingType);\r\n this.addNewTrainingTypeRequested.emit(false);\r\n this.addingNewTrainingType = false;\r\n }\r\n\r\n trainingTypeChanged() {\r\n if (!this.selectedTrainingType?.heldOn?.dateTime)\r\n return;\r\n this.trainingRecord.achievedOn.dateTime = this.selectedTrainingType.heldOn.dateTime;\r\n }\r\n\r\n selectedTrainingTypeChanged() {\r\n let trainingTypeHeldOn = this.selectedTrainingType.heldOn;\r\n let trainingTypeValidTo = this.selectedTrainingType.validTo;\r\n this.trainingRecord.achievedOn = trainingTypeHeldOn == null ? new DateTimeWithZone() : trainingTypeHeldOn;\r\n this.trainingRecord.validTo = trainingTypeValidTo == null ? new DateTimeWithZone() : trainingTypeValidTo; \r\n }\r\n\r\n disableDatesPriorSelected(date: IDateTimeWithZone) {\r\n let selectedDate = new Date(date.dateTime);\r\n this.selectedMinDate = new Date(selectedDate.setDate(selectedDate.getDate() + 1));\r\n }\r\n\r\n disableDatesPostSelected(date: IDateTimeWithZone) {\r\n let currentDate = new Date();\r\n let selectedDate = new Date(date.dateTime);\r\n this.selectedMaxDate = selectedDate < currentDate ? new Date(selectedDate.setDate(selectedDate.getDate() - 1)) : currentDate;\r\n }\r\n\r\n\r\n // Validators.pattern(\"/^-?\\d*[.,]?\\d{0,2}$/\")\r\n validateCPD(cpdHour: number) {\r\n this.cpdHour = new UntypedFormControl(cpdHour, [Validators.min(0)]);\r\n\r\n return this.cpdHour.valid;\r\n\r\n }\r\n\r\n validate(event: any) {\r\n var t = event.target.value;\r\n var result = t.indexOf('.') >= 0 ? t.substr(0, t.indexOf('.')) + t.substr(t.indexOf('.'), 2) : t;\r\n\r\n if (event.keyCode === \"8\" || event.keyCode === 8) {\r\n return true;\r\n } else {\r\n if (result !== event.target.value) {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n\r\n initDates() {\r\n let today = new Date();\r\n today.setDate(today.getDate() + 1);\r\n\r\n let trainingValidTo = this.trainingRecord?.validTo.dateTime == null ? new DateTimeWithZone({ dateTime: today.toISOString(), timeZone: '' }) : this.trainingRecord?.validTo;\r\n let trainingAchievedOn = this.trainingRecord?.achievedOn;\r\n\r\n let maxDate = new Date(trainingValidTo.dateTime) < today ? trainingValidTo : new DateTimeWithZone({ dateTime: today.toISOString(), timeZone: '' });\r\n let minDate = new Date(trainingAchievedOn.dateTime) < today ? trainingAchievedOn : new DateTimeWithZone({ dateTime: today.toISOString(), timeZone: '' });\r\n\r\n this.disableDatesPostSelected(maxDate);\r\n this.disableDatesPriorSelected(minDate);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Create New Enterprise Training\r\n Type/Course\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \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, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DocumentTypeService } from '../../../services/document-type.service';\r\nimport { DocumentService } from '../../../documents/services/document.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DocumentEntityType } from '../../../message-models/document-entity-type.enum';\r\nimport { IDocumentType } from '../../../message-models/document-type.interface';\r\nimport { BreadcrumbService } from 'xng-breadcrumb';\r\nimport { EntityDocumentSummary } from '../../../message-models/entity-document-summary.class';\r\nimport { IEntityDocumentSummary } from '../../../message-models/entity-document-summary';\r\nimport { IObservation } from '../../../message-models/observation.interface';\r\nimport { ObservationType } from '../../../domain-model/observation.class';\r\nimport { ObservationModalService } from '../../../observations/services/observation-modal.service';\r\nimport { ObservationsService } from '../../../observations/services/observations.service';\r\nimport { IBreadcrumb } from '../../../eca-breadcrumb/models/breadcrumb.interface';\r\nimport { EcaBreadcrumbService } from '../../../eca-breadcrumb/services/eca-breadcrumb.service';\r\nimport { IObservationSummary } from '../../../message-models/observation-summary.interface';\r\nimport { DetailContainerComponent } from '../../../common/components/detail-container/detail-container.component';\r\nimport { OurUserService } from '../../../users/services/user.service';\r\nimport { IUserInfo } from '../../../users/models/userInfo.interface';\r\nimport { consts } from '../../../common/modals/consts';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorHandlingService } from '../../../services/error-handling.service';\r\nimport { AlertsService } from '../../../alerts/services/alerts.service';\r\nimport { ITrainingTypeDocumentSummary } from '../../../message-models/training-type-document-summary.interface';\r\nimport { TrainingTypeDocumentService } from '../../services/training-type-document.service';\r\nimport { TrainingTypeDocumentSummary } from '../../../message-models/training-type-document-summary.class';\r\n\r\n@Component({\r\n selector: 'app-training-type-document-details-page',\r\n templateUrl: './training-type-document-details-page.component.html',\r\n styleUrls: ['./training-type-document-details-page.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TrainingTypeDocumentDetailsPageComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('docDetailsContainerComponent') docDetailsContainerComponent: DetailContainerComponent;\r\n\r\n loading: boolean;\r\n\r\n isEditing = false;\r\n documentUploadRequest: FormData;\r\n tempDocumentSummary: IEntityDocumentSummary;\r\n formIsValid = false;\r\n\r\n trainingTypeDocumentSummary: ITrainingTypeDocumentSummary;\r\n trainingTypeDocumentTypes: IDocumentType[];\r\n trainingTypeDocumentObservations: Array = new Array();\r\n ObservationType: typeof ObservationType = ObservationType;\r\n documentId: string;\r\n\r\n public loggedInUser: IUserInfo;\r\n companyId: string = consts.emptyGuid;\r\n loggedInUserSubscription: Subscription;\r\n submitted: boolean = false;\r\n\r\n constructor(private documentTypeService: DocumentTypeService,\r\n private trainingTypeDocumentService: TrainingTypeDocumentService,\r\n private documentService: DocumentService,\r\n private breadcrumbService: BreadcrumbService,\r\n private observationModalService: ObservationModalService,\r\n private observationsService: ObservationsService,\r\n private alertsService: AlertsService,\r\n private activatedRoute: ActivatedRoute,\r\n private ecaBreadcrumbService: EcaBreadcrumbService,\r\n private userService: OurUserService,\r\n private errorHandlingService: ErrorHandlingService\r\n ) {\r\n this.documentId = this.activatedRoute.snapshot.params.documentId;\r\n this.breadcrumbService.set('@trainingTypeDocument', { label: 'Training Course Document' });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.userService.getLoggedInUser().subscribe(user => {\r\n this.loggedInUserSubscription = this.userService.getLoggedInUserSubject().subscribe(user => {\r\n this.setUserAndReload(user);\r\n })\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n private setUserAndReload(user: IUserInfo) {\r\n this.loggedInUser = user;\r\n this.companyId = this.loggedInUser?.companyId;\r\n if (!this.companyId)\r\n return;\r\n\r\n if (this.companyId !== consts.emptyGuid) {\r\n this.documentTypeService.getAllDocumentTypesForEntityType(DocumentEntityType.trainingCourse).subscribe(trainingTypeDocumentTypes => {\r\n this.trainingTypeDocumentTypes = trainingTypeDocumentTypes;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n this.trainingTypeDocumentService.getTrainingTypeDocumentSummary(this.documentId).subscribe(trainingTypeDocumentSummary => {\r\n this.trainingTypeDocumentSummary = new TrainingTypeDocumentSummary(trainingTypeDocumentSummary);\r\n this.initTrainingTypeDocument();\r\n\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n if (this.companyId) {\r\n this.observationsService.getDocumentObservations(this.documentId, this.companyId).subscribe(trainingTypeDocumentObservations => {\r\n this.trainingTypeDocumentObservations = trainingTypeDocumentObservations;\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loggedInUserSubscription.unsubscribe();\r\n }\r\n\r\n initTrainingTypeDocument() {\r\n this.isEditing = false;\r\n this.documentUploadRequest = new FormData();\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.trainingTypeDocumentSummary);\r\n this.populateBreadcrumbs();\r\n }\r\n\r\n getSelectedDocumentType(documentTypeId: string): IDocumentType {\r\n return this.trainingTypeDocumentTypes.find(t => t.id === documentTypeId);\r\n }\r\n\r\n saveTrainingTypeDocumentClicked() {\r\n this.submitted = true;\r\n if (!this.tempDocumentSummary?.documentTypeId || !this.tempDocumentSummary?.documentCreationDate?.dateTime || !this.tempDocumentSummary?.originalFilename ||\r\n (!this.tempDocumentSummary?.extraDescription && this.getSelectedDocumentType(this.tempDocumentSummary?.documentTypeId)?.name === \"Other\")) {\r\n return false;\r\n }\r\n this.submitted = false;\r\n this.appendDocumentUploadRequest();\r\n this.loading = true;\r\n this.trainingTypeDocumentService.createOrUpdateTrainingTypeDocument(this.documentUploadRequest).subscribe(trainingTypeDocumentSummary => {\r\n this.loading = false;\r\n this.trainingTypeDocumentSummary = new TrainingTypeDocumentSummary(trainingTypeDocumentSummary);\r\n this.isEditing = false;\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n }\r\n\r\n downloadTrainingTypeDocument() {\r\n this.documentService.downloadOrOpenDocument(this.trainingTypeDocumentSummary, true);\r\n }\r\n\r\n openTrainingTypeDocument() {\r\n this.documentService.downloadOrOpenDocument(this.trainingTypeDocumentSummary);\r\n }\r\n\r\n createOrEditObservation(observation?: IObservation, isEditing?: boolean, heading?: string, observationType?: ObservationType) {\r\n this.observationModalService.createOrEditObservation(observation, heading + this.trainingTypeDocumentSummary.originalFilename, isEditing, observationType).subscribe(observationModalRef => {\r\n observationModalRef.content.saveObservationClicked.subscribe(observationResult => {\r\n if (observationResult !== null) {\r\n if (observationResult.observationType === null) {\r\n observationResult.observationType = ObservationType.CompanyDocument;\r\n }\r\n let entityObservationId = '00000000-0000-0000-0000-000000000000';\r\n this.trainingTypeDocumentObservations?.forEach(ttObservationSummary => {\r\n if (ttObservationSummary.observationId === observationResult.id) {\r\n entityObservationId = ttObservationSummary.documentObservationId;\r\n }\r\n });\r\n this.observationsService.createOrUpdateDocumentObservation(observationResult as IObservation, this.documentId, this.companyId, entityObservationId).subscribe(trainingTypeDocObservation => {\r\n this.trainingTypeDocumentObservations = this.observationsService.updateObservationSummaries(this.trainingTypeDocumentObservations, trainingTypeDocObservation);\r\n this.alertsService.getAlertsCountForCompany(this.loggedInUser?.companyId).subscribe();\r\n }, () => {\r\n this.errorHandlingService.showErrorWarning().subscribe(() => {\r\n });\r\n });\r\n observationModalRef.dynamicDialogRef.close();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private populateBreadcrumbs() {\r\n const operativeBreadCrumbs = new Array();\r\n operativeBreadCrumbs.push({ label: 'Documents', iconName: 'books', routeLink: `company-documents` } as IBreadcrumb);\r\n operativeBreadCrumbs.push({ label: this.trainingTypeDocumentSummary.originalFilename, iconName: 'book' } as IBreadcrumb);\r\n this.ecaBreadcrumbService.breadCrumbs.next(operativeBreadCrumbs);\r\n }\r\n\r\n private appendDocumentUploadRequest() {\r\n this.documentUploadRequest.append('TrainingTypeId', this.trainingTypeDocumentSummary.trainingTypeId);\r\n this.documentUploadRequest.append('CompanyId', this.companyId);\r\n this.documentUploadRequest.append('DocumentId', this.tempDocumentSummary.documentId);\r\n this.documentUploadRequest.append('DocumentTypeId', this.tempDocumentSummary.documentTypeId);\r\n this.documentUploadRequest.append('ExtraDescription', this.tempDocumentSummary.extraDescription);\r\n\r\n this.documentUploadRequest.append('OriginalFilename', this.tempDocumentSummary.originalFilename);\r\n\r\n if (this.tempDocumentSummary.reviewDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentReviewDate', this.tempDocumentSummary.reviewDate.dateTime);\r\n }\r\n if (this.tempDocumentSummary.expiryDate.dateTime) {\r\n this.documentUploadRequest.append('DocumentExpiryDate', this.tempDocumentSummary.expiryDate.dateTime);\r\n }\r\n this.documentUploadRequest.append('DocumentCreationDate', this.tempDocumentSummary.documentCreationDate.dateTime);\r\n }\r\n\r\n editClicked() {\r\n if (this.docDetailsContainerComponent.isCollapsed) {\r\n //this.docDetailsContainerComponent.expandClicked();\r\n this.docDetailsContainerComponent.panelToggle();\r\n }\r\n this.isEditing = true;\r\n }\r\n\r\n cancelClicked() {\r\n this.tempDocumentSummary = new EntityDocumentSummary(this.trainingTypeDocumentSummary);\r\n this.isEditing = false;\r\n }\r\n\r\n fileUploaded(file: File) {\r\n if (file) {\r\n this.documentUploadRequest.append('FormFile', file, file.name);\r\n } else {\r\n this.formIsValid = false;\r\n }\r\n }\r\n\r\n formStatusChange(formIsValid: any) {\r\n this.formIsValid = formIsValid;\r\n }\r\n removeFile(remove: boolean) {\r\n if (remove) {\r\n this.documentUploadRequest.delete('FormFile');\r\n this.formIsValid = false;\r\n }\r\n }\r\n}\r\n","\r\n \r\n

\r\n Training Course Document\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Document Details\r\n \r\n \r\n Document Details - {{trainingTypeDocumentSummary?.originalFilename}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Observations\r\n \r\n
\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, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {ITrainingType} from \"../../../message-models/training-record-type.interface\";\r\nimport {TrainingType} from \"../../../message-models/training-record-type.class\";\r\nimport { ListDataService } from '../../../services/list-data.service';\r\nimport { ITrainingTypeCategoryInfo } from '../../../message-models/trainning-record-category.interface';\r\n\r\n@Component({\r\n selector: 'app-training-type-editor',\r\n templateUrl: './training-type-editor.component.html',\r\n styleUrls: ['./training-type-editor.component.scss']\r\n})\r\nexport class TrainingTypeEditorComponent implements OnInit {\r\n @Input() trainingType: ITrainingType = new TrainingType();\r\n @Input() editingType: boolean = false;\r\n @Input() saveAttempted: boolean = false;\r\n allTrainingTypeCategory: ITrainingTypeCategoryInfo[] = [];\r\n constructor(private listDataService: ListDataService) { }\r\n\r\n ngOnInit(): void {\r\n this.listDataService.getAllTrainTypeCategory().subscribe({\r\n next: response => {\r\n this.allTrainingTypeCategory = response;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \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 {ITrainingRecordDocumentSummary} from '../../message-models/training-record-document-summary.interface';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpClient, HttpEvent, HttpRequest} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {Router} from '@angular/router';\r\nimport {DocumentTypeService} from '../../services/document-type.service';\r\nimport {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TrainingRecordDocumentService extends BaseApiService {\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'TrainingRecordDocument');\r\n }\r\n\r\n getAllTrainingRecordDocumentSummaries(companyId: string, trainingRecordId?: string, includeExpired?: boolean): Observable {\r\n return this.post('GetAllTrainingRecordDocumentSummaries', {trainingRecordId: trainingRecordId, companyId: companyId, includeExpired});\r\n }\r\n\r\n getTrainingRecordDocumentSummary(documentId: string): Observable {\r\n return this.post('GetTrainingRecordDocumentSummary', {documentId});\r\n }\r\n\r\n getTrainingRecordDocumentForViewOrDownload(documentId: string): Observable> {\r\n return this.http.request(new HttpRequest(\r\n 'POST',\r\n this.baseUrl + 'GetTrainingRecordDocumentForViewOrDownload',\r\n {documentId},\r\n {\r\n reportProgress: true,\r\n responseType: 'blob'\r\n }));\r\n }\r\n\r\n createOrUpdateTrainingRecordDocument(TrainingRecordDocumentUpload: any): Observable {\r\n return this.post('CreateOrUpdateTrainingRecordDocument', TrainingRecordDocumentUpload);\r\n }\r\n\r\n deleteTrainingRecordDocument(documentId: string, companyId: string): Observable {\r\n return this.post('DeleteTrainingRecordDocument', {documentId, companyId});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IModalOptions } from \"../../common/modals/modal-options.interface\";\r\nimport { TrainingRecordEditorModalComponent } from \"../components/training-record-editor-modal/training-record-editor-modal.component\";\r\nimport { ITrainingRecord } from \"../../message-models/training-record.interface\";\r\nimport { ITrainingType } from \"../../message-models/training-record-type.interface\";\r\nimport { Observable, of } from 'rxjs';\r\nimport { TrainingRecord } from '../../domain-model/training-record.class';\r\nimport { EcaModalOptions } from \"../../shared/models/yesno-modal-options.class\";\r\nimport { EcaDynamicModalService } from \"../../shared/services/eca-dynamic-modal-service\";\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { IEcaDialogRef } from '../../shared/models/eca-dialog-ref.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class TrainingRecordModalService {\r\n modalRef: IEcaDialogRef;\r\n\r\n constructor(private ecaDynamicModalService: EcaDynamicModalService) { }\r\n\r\n openTrainingRecordEditorModal(heading: string,\r\n trainingTypes: ITrainingType[],\r\n isEditing: boolean = false,\r\n isMultipleOperatives: boolean = false,\r\n trainingRecord?: ITrainingRecord,\r\n options?: IModalOptions\r\n ): Observable {\r\n if (options === undefined) {\r\n options = new EcaModalOptions();\r\n options.modalClasses += \" modal-eca-success\";\r\n }\r\n if (!trainingRecord) { trainingRecord = new TrainingRecord({} as ITrainingRecord); }\r\n\r\n let config = {\r\n styleClass: 'modal-xl ' + options.modalClasses,\r\n baseZIndex: 2000,\r\n showHeader: false,\r\n data: {\r\n heading,\r\n trainingTypes,\r\n editing: isEditing,\r\n trainingRecord: trainingRecord,\r\n isMultipleOperatives,\r\n }\r\n } as DynamicDialogConfig;\r\n this.modalRef = this.ecaDynamicModalService.openDialog(TrainingRecordEditorModalComponent, config);\r\n return of(this.modalRef);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BaseApiService} from \"../../common/base-api.service\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {SettingsProviderService} from \"../../common/settings-provider.service\";\r\nimport {Observable} from \"rxjs\";\r\nimport {IObservation} from \"../../message-models/observation.interface\";\r\nimport {ITrainingType} from \"../../message-models/training-record-type.interface\";\r\nimport {ITrainingRecord} from '../../message-models/training-record.interface';\r\nimport {IOperativeObservation} from '../../message-models/operative-observation.interface';\r\nimport {ITrainingRecordSummary} from '../../message-models/training-record-summary.interface';\r\nimport { ITrainingMatrix } from '../../message-models/training-matrix.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TrainingRecordsService extends BaseApiService {\r\n\r\n constructor(http:HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'TrainingRecords');\r\n }\r\n\r\n getTrainingTypesForCompany(companyId: string, includeGlobal: boolean = true): Observable {\r\n return this.post('GetTrainingTypesForCompany', {companyId, includeGlobal});\r\n }\r\n\r\n getTrainingRecordsForOperative(operativeId: string): Observable{\r\n return this.post('GetTrainingRecordsForOperative',{operativeId});\r\n }\r\n\r\n getTrainingRecordById(trainingRecordId: string): Observable{\r\n return this.post('GetTrainingRecord',{trainingRecordId});\r\n }\r\n\r\n getTrainingRecordSummariesForOperative(operativeId: string): Observable{\r\n return this.post('GetTrainingRecordSummariesForOperative',{operativeId});\r\n }\r\n\r\n createOrUpdateTrainingRecord(iTrainingRecord: ITrainingRecord){\r\n return this.post('CreateOrUpdateTrainingRecord',iTrainingRecord);\r\n }\r\n\r\n createOrUpdateCompanyTrainingType(newTrainingType: ITrainingType): Observable{\r\n return this.post('CreateOrUpdateCompanyTrainingType', newTrainingType);\r\n }\r\n\r\n createOrUpdateGeneralTrainingType(newTrainingType: ITrainingType): Observable{\r\n return this.post('CreateOrUpdateGeneralTrainingType', newTrainingType);\r\n }\r\n\r\n deleteTrainingType(trainingType: ITrainingType): Observable{\r\n return this.post('DeleteTrainingType', trainingType);\r\n }\r\n\r\n deleteTrainingRecord(trainingRecord: ITrainingRecord): Observable{\r\n return this.post('DeleteTrainingRecord', trainingRecord);\r\n }\r\n\r\n\r\n getTrainingRecordSummariesForCompany(companyId: string): Observable{\r\n return this.post('GetTrainingRecordSummariesForCompany', { companyId });\r\n }\r\n\r\n getTrainingTypesForId(trainingTypeId: string): Observable {\r\n return this.post('GetTrainingTypesForId', { trainingTypeId });\r\n }\r\n\r\n getTrainingMatrixForCompany(companyId: string): Observable {\r\n return this.post('GetTrainingMatrixForCompany', { companyId });\r\n }\r\n\r\n}\r\n","import {ITrainingRecordDocumentSummary} from '../../message-models/training-record-document-summary.interface';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpClient, HttpEvent, HttpRequest} from '@angular/common/http';\r\nimport {SettingsProviderService} from '../../common/settings-provider.service';\r\nimport {BaseApiService} from '../../common/base-api.service';\r\nimport {Router} from '@angular/router';\r\nimport {DocumentTypeService} from '../../services/document-type.service';\r\nimport {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TrainingTypeDocumentService extends BaseApiService {\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'TrainingRecordDocument');\r\n }\r\n\r\n getAllTrainingTypeDocumentSummaries(companyId: string, trainingTypeId?: string, includeExpired?: boolean): Observable {\r\n return this.post('GetAllTrainingTypeDocumentSummaries', {trainingTypeId: trainingTypeId, companyId: companyId, includeExpired});\r\n }\r\n\r\n getTrainingTypeDocumentSummary(documentId: string): Observable {\r\n return this.post('GetTrainingTypeDocumentSummary', {documentId});\r\n }\r\n\r\n createOrUpdateTrainingTypeDocument(TrainingTypeDocumentUpload: any): Observable {\r\n return this.post('CreateOrUpdateTrainingTypeDocument', TrainingTypeDocumentUpload);\r\n }\r\n\r\n deleteTrainingTypeDocument(documentId: string, companyId: string): Observable {\r\n return this.post('DeleteTrainingTypeDocument', {documentId, companyId});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DateTimeWithZone } from '../../common/date-time-with-zone.class';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class TrainingTypeService {\r\n private trainingTypeSubject = new Subject();\r\n private trainingTypeValidToSubject = new Subject();\r\n setSelectedTrainingTypeId(trainingTypeId: string) {\r\n this.trainingTypeSubject.next(trainingTypeId);\r\n }\r\n getSelectedTrainingTypeId(): Observable {\r\n return this.trainingTypeSubject.asObservable();\r\n }\r\n\r\n clearSelectedTrainingTypeId() {\r\n this.trainingTypeSubject.next(false);\r\n }\r\n\r\n setSelectedTrainingTypeValidTo(validTo: DateTimeWithZone) {\r\n this.trainingTypeValidToSubject.next(validTo);\r\n }\r\n\r\n getSelectedTrainingTypeValidTo(): Observable {\r\n return this.trainingTypeValidToSubject.asObservable();\r\n }\r\n\r\n clearSelectedTrainingTypeValidTo() {\r\n this.trainingTypeValidToSubject.next(false);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TrainingRecordDetailsComponent } from './components/training-record-details/training-record-details.component';\r\nimport { TrainingTypeEditorComponent } from './components/training-type-editor/training-type-editor.component';\r\nimport { TrainingRecordEditorComponent } from './components/training-record-editor/training-record-editor.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TrainingRecordEditorModalComponent } from './components/training-record-editor-modal/training-record-editor-modal.component';\r\nimport { TrainingRecordDocumentsComponent } from './components/training-record-documents/training-record-documents.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TrainingRecordDocumentsPageComponent } from './components/training-record-documents-page/training-record-documents-page.component';\r\nimport { ObservationModule } from '../observations/observation.module';\r\nimport { TrainingRecordDocumentDetailsPageComponent } from './components/training-record-document-details-page/training-record-document-details-page.component';\r\nimport { DocumentsModule } from '../documents/documents.module';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CommonsModule } from '../common/commons.module';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TrainingTypeDocumentDetailsPageComponent } from './components/training-type-document-details-page/training-type-document-details-page.component';\r\n\r\n@NgModule({\r\n declarations: [TrainingRecordDetailsComponent,\r\n TrainingTypeEditorComponent,\r\n TrainingRecordEditorComponent,\r\n TrainingRecordEditorModalComponent,\r\n TrainingRecordDocumentsComponent,\r\n TrainingRecordDocumentsPageComponent,\r\n TrainingRecordDocumentDetailsPageComponent,\r\n TrainingTypeDocumentDetailsPageComponent\r\n ],\r\n\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule,\r\n TableModule,\r\n RouterModule,\r\n ObservationModule,\r\n DocumentsModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n CommonsModule,\r\n TabViewModule\r\n ],\r\n\r\n exports: [\r\n TrainingTypeEditorComponent, TrainingRecordEditorModalComponent\r\n ]\r\n})\r\n\r\nexport class TrainingRecordsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject, Observable, of} from \"rxjs\";\r\nimport {IUserInfo} from \"../models/userInfo.interface\";\r\nimport {BaseApiService} from \"../../common/base-api.service\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {SettingsProviderService} from \"../../common/settings-provider.service\";\r\nimport {CompanyInfo} from '../../domain-model/company-info.class';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OurUserService extends BaseApiService {\r\n private _loggedInUser: IUserInfo\r\n private _loadingUser: boolean = false;\r\n private observedUser: Observable;\r\n private selectedUserSubject = new BehaviorSubject(null);\r\n constructor(http: HttpClient) {\r\n super(http, new SettingsProviderService('ecaApi'), 'User');\r\n }\r\n public getLoggedInUser(): Observable {\r\n if (this._loadingUser) {\r\n return this.observedUser;\r\n }\r\n else if (this._loggedInUser) {\r\n this.notifyLoggedInUserChange();\r\n return of(this._loggedInUser);\r\n }\r\n else {\r\n this._loadingUser = true;\r\n this.observedUser = this.post('GetLoggedInUser');\r\n this.observedUser.subscribe(\r\n {\r\n next: result => {\r\n this._loggedInUser = result;\r\n this._loadingUser = false;\r\n this.notifyLoggedInUserChange();\r\n\r\n }\r\n });\r\n return this.observedUser;\r\n }\r\n }\r\n getLoggedInUserSubject(): Observable {\r\n return this.selectedUserSubject.asObservable();\r\n }\r\n private notifyLoggedInUserChange(){\r\n this.selectedUserSubject.next(this._loggedInUser);\r\n }\r\n updateUserCompanyDetails(companyId: string, companyName: string){\r\n this._loggedInUser.companyId = companyId;\r\n this._loggedInUser.companyName = companyName;\r\n this.notifyLoggedInUserChange();\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\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 .catch(err => console.error(err));\r\n","/* (ignored) */","/* (ignored) */"],"names":["ApplicationName","ReturnUrlType","QueryParameterNames","ReturnUrl","Message","LogoutActions","LogoutCallback","Logout","LoggedOut","LoginActions","Login","LoginCallback","LoginFailed","Profile","Register","applicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","LogOut","LogOutCallback","LoginPathComponents","LoginFailedPathComponents","LoginCallbackPathComponents","RegisterPathComponents","ProfilePathComponents","LogOutPathComponents","LoggedOutPathComponents","LogOutCallbackPathComponents","IdentityRegisterPath","IdentityManagePath","split","ApplicationPaths","CommonModule","LoginMenuComponent","LoginComponent","LogoutComponent","RouterModule","HttpClientModule","ApiAuthorizationModule","forChild","path","component","declarations","imports","exports","tap","AuthorizeGuard","constructor","authorize","router","canActivate","_next","state","isAuthenticated","pipe","handleAuthorization","navigate","queryParams","url","factory","providedIn","mergeMap","AuthorizeInterceptor","intercept","req","next","getAccessToken","token","processRequestWithToken","isSameOriginUrl","clone","setHeaders","Authorization","handle","startsWith","window","location","origin","host","test","UserManager","BehaviorSubject","concat","from","filter","map","take","AuthenticationResultStatus","AuthorizeService","getUser","u","userSubject","getUserFromStorage","asObservable","ensureUserManagerInitialized","userManager","user","access_token","signIn","signinSilent","createArguments","profile","success","silentError","console","log","signinRedirect","redirect","redirectError","error","completeSignIn","signinCallback","signOut","popUpDisabled","Error","signoutPopup","popupSignOutError","signoutRedirect","redirectSignOutError","completeSignOut","response","signoutCallback","useReplaceToNavigate","data","message","status","Fail","Success","Redirect","undefined","fetch","ok","settings","json","automaticSilentRenew","includeIdTokenInSilentRenew","events","addUserSignedOut","removeUser","i0","authorizeService","ngOnInit","userName","name","selectors","decls","vars","consts","template","activatedRoute","action","snapshot","login","getReturnUrl","processLoginCallback","queryParamMap","get","redirectToProfile","redirectToRegister","returnUrl","result","navigateToReturnUrl","href","navigateByUrl","redirectToApiAuthorizationPath","encodeURI","replaceUrl","fromQuery","apiAuthorizationPath","redirectUrl","replace","history","local","logout","processLogoutCallback","isauthenticated","toPromise","AuditInfo","HelpConsts","AuditHistoryComponent","helpService","exportExcelService","ecaBreadcrumbService","auditService","errorHandlingService","userService","auditBreadcrumbs","Array","push","label","iconName","breadCrumbs","getLoggedInUser","subscribe","loggedInUser","companyId","initialiseColumnDataTableColumns","loadAuditHistory","showErrorWarning","columns","field","header","type","getAuditHistory","allAuditData","auditHistory","forEach","auditData","loadingAuditHistory","openAuditHistoryHelp","openHelpModal","AuditHistoryHelp","exportToExcel","inputs","TrainingType","DocumentEntityType","EcaConfirmDeleteModalOptions","TrainingCourseDetailsComponent","route","trainingTypeService","trainingRecordsService","trainingTypeDocumentService","companyService","documentModalService","documentService","confirmProcessService","alertsService","observationModalService","observationsService","emptyGuid","trainingTypeId","params","isTrainingTypeLoading","loggedInUserSubscription","getLoggedInUserSubject","getTrainingTypesForId","trainingType","tempTrainingType","getTrainingTypeDocuments","populateBreadcrumbs","includeExpired","getAllTrainingTypeDocumentSummaries","id","trainingTypeDocuments","doc","editDetails","ttDetailsContainerComponent","isCollapsed","panelToggle","editingDetails","cancelEdit","saveDetails","isValid","createOrUpdateCompanyTrainingType","viewTrainingTypeDocument","entityDocumentSummary","documentId","downloadTrainingTypeDocument","downloadOrOpenDocument","deleteTrainingTypeDocumentClick","openConfirmProcessModal","originalFilename","deleteTrainingTypeDocument","documentIndex","findIndex","c","splice","getAlertsCountForCompany","addTrainingTypeDocument","openDocumentUploaderModal","trainingCourse","documentModalRef","content","documentUploadSave","documentUploadRequest","dynamicDialogRef","close","append","createOrUpdateTrainingTypeDocument","trainingTypeSummary","unshift","operativeBreadCrumbs","routeLink","viewQuery","TrainingCourseEditorComponent","EcaConfirmInfoModalOptions","CompanyTrainingCoursesComponent","datePipe","ecaDynamicModalService","listDataService","isOnMobile","outerWidth","getAllTrainTypeCategory","allTrainingTypeCategory","operativeOperations","canUpdate","operativeUpdateOperations","canInsert","canRetrieve","canDelete","getAllTrainingTypes","getAllTrainingRecordsForComapny","rowMenuItems","icon","visible","styleClass","command","$event","confirmDeleteItem","coursesLoading","getTrainingTypesForCompany","trainingTypesResult","trainingTypes","t","trainingTypeCategoryName","find","x","trainingTypeCategoryId","addNewItemClick","openEditor","editItemClick","item","heading","config","baseZIndex","showHeader","modalRef","openDialog","choiceMade","updatedJobTitle","saveNewTrainingTypeDocumentRequested","updatedTrainingType","newTrainingTypeId","documentCreationDate","HeldOn","trainingTypeDocumentSummary","cancelClicked","isActive","isActiveTrainingType","deleteTrainingType","openCompanyTrainingCoursesHelp","CompanyTrainingCoursesHelp","trainingTypesListToExport","element","html","description","div","document","createElement","innerHTML","text","textContent","innerText","tempObject","heldOn","transform","dateTime","validTo","getTrainingRecordSummariesForCompany","trainingRecords","list","o","RiskHelpComponent","EasGuidance","sections","body","operatives","length","currentOperativeTypeId","isHV","lowVString","lowVBS7671","getHeadingFromOperative","getJobLevelWithIndex","jobIndex","allJobLevels","l","index","getRiskWithIndex","riskIndex","allRisks","r","getOperativeNumbersInRiskRow","rowNum","riskLevel","numOps","currentRiskId","getOperativeNumbersInJobLevelRow","jobLevel","currentJobLevelId","getRiskCellClass","numOpsInRow","getJobLevelCellClass","showHelpClicked","showingHelp","riskMatrixEntries","asOfDate","companyName","isQsRole","ctx","RiskMatrixLevel","RiskMatrixComponent","getRiskMatrixCell","risk","e","riskId","jobLevelId","getMatrixClassFor","matrixEntry","riskMatrixLevel","low","warning","danger","getOperativeNumbersInCell","getIconNameInCell","numOpsInCell","BaseApiService","SettingsProviderService","TermsConditionService","http","getOptInModalDetails","getAllOptInEntries","createOrUpdateOptInEntry","optInEntry","post","UpdateOptInModalSettings","optInModalInfo","deleteOptInEntry","clearAllCompanyOptInEntries","EventEmitter","TrainingCourseEntrysHelp","isCompanyTraining","emit","saveClicked","submitted","helpClicked","saveAndUploadDocument","saveAttempted","newTrainingType","outputs","CompanyAlertsPageComponent","SharedModule","FontAwesomeModule","TableModule","FormsModule","ReactiveFormsModule","MultiSelectModule","EntityAlertTypeStringPipe","AlertNoticeLevelStringPipe","SupervisionAlertsPageComponent","InputTextModule","ButtonModule","RippleModule","PanelModule","AlertsModule","AlertEmailEditorComponent","removeEmailClick","companySettings","removeEmail","editingType","emailAddresses","addRecipientEmail","CompanyAlertSettings","AlertSettingsEditorComponent","addNewInput","elements","companyAlertSettings","AlertNoticeLevels","EntityAlertType","EntityAlertTypes","AlertInfo","includeRisks","showOnlyRisks","alertBreadcrumbs","getAlertsForCompany","alertsFilter","colWidth","getCurrentAlerts","alertInfos","alertInfo","alertsLoading","openAlertsLoadingHelp","ActionAlertsHelp","riskFilterChanged","alertInfosToExport","temporalDivElement","detailsHtml","title","followUpOn","alertLevel","value","alertType","exportColumns","dismissAlert","ecaConfirmDeleteModalOptions","yesButtonText","entityId","res","CompanyAlertsSettingsComponent","companySettingsModalService","updateUserAndReload","isAlertSettingsLoading","getFrequency","getAlertEmails","ngOnDestroy","unsubscribe","companySettingsBreadCrumbs","tempCompanyAlertSetting","getCompanyAlertFrequencySettings","companyAlertSetting","AlertSetting","getCompanyAlertEmailSettings","companyAlertEmailSetting","tempCompanyAlertEmailSetting","createOrUpdateCompanyAlertSettings","addRecipientEmailClick","openCompanySettingsEmailModal","companySettingsModalRef","modalClosed","personName","email","DegreeOfSupervisionString","getSupervisionAlertsForCompany","supervisionAlerts","SupervisionAlertsHelp","operativeFullName","referenceNumbers","currentJobTitle","currentRisk","currentJobLevel","startedOn","viewOperative","iOperativeAlertSummaryInfo","operativeId","AlertNoticeLevel","iAlertInfo","canBeDismissed","directLink","linkText","getRiskColour","Danger","Warning","Information","Upcoming","CompanyDocumentFollowUp","TrainingRecordDocumentFollowUp","OperativeDocumentFollowUp","CompanyFollowUp","TrainingRecordFollowUp","OperativeFollowUp","DocumentReview","DocumentExpired","OperativeRisk","pure","of","switchMap","AlertsService","getSupervisionAlertsCountForCompany","totalSupervisionAlerts","supervisionAlertsCountSubject","totalAlerts","alertsCountSubject","OperativeDetailsComponent","CompanyDashboardComponent","CompanyDocumentsPageComponent","DocumentViewerComponent","OperativeDocumentsPageComponent","CompanyObservationsComponent","OperativesObservationsComponent","CompanyDocumentDetailsPageComponent","OperativeDocumentDetailsPageComponent","TrainingRecordDocumentsPageComponent","TrainingRecordDetailsComponent","TrainingRecordDocumentDetailsPageComponent","CompanyOperativesComponent","MainShellComponent","CompanyOperativeTrainingRecordsPageComponent","HelpPageComponent","CompanyOptInGuard","OrderFormPageComponent","OperativeUploadComponent","TrainingTypeDocumentDetailsPageComponent","ObservationDocumentDetailsPageComponent","ObservationDetailsComponent","CompanySettingsPageComponent","routes","breadcrumb","info","children","help","CompanyDashboardHelp","alias","CompanyOperativesHelp","OperativeDetails","AllOperativeDocumentsHelp","CompanyDocumentsHelp","CompanyObservationsHelp","AllOperativeObservationsHelp","ObservationDetailsHelp","ObservationDocumentDetailsHelp","TrainingRecordHelp","OperativeTrainingRecordsHelp","AppRoutingModule","forRoot","scrollPositionRestoration","AppComponent","event","BrowserModule","HTTP_INTERCEPTORS","NavMenuComponent","HomeComponent","far","fas","fad","ConfirmProcessModalComponent","ConfirmProcessDateModalComponent","ListItemSelectorComponent","ListItemSelectorModalComponent","BrowserAnimationsModule","OperativesModule","CompanyService","CompanyDocumentService","CompanyModule","DocumentTypeService","CommonsModule","DocumentsModule","ObservationsService","DocumentService","DocumentModalService","OperativeDocumentService","TrainingRecordDocumentService","EcaBreadcrumbModule","DatePipe","BugLoggerModule","HelpModule","CompanyOptInService","DropdownModule","CalendarModule","TabViewModule","DialogService","MenubarModule","BreadcrumbModule","QuillModule","NgxPrintModule","CheckboxModule","HttpCancelService","HttpCancelInterceptor","TrainingRecordsModule","ObservationDocumentService","AppModule","library","addIconPacks","bootstrap","provide","useClass","multi","withServerTransition","appId","getWindow","LogItemEditorModalComponent","FileUploadModule","LogItem","LogItemStatusString","deviceService","bugLoggerService","loggedInuser","openLogItemDocumentClicked","downloadLogItemDocumentClicked","getBrowserDetail","deviceInfo","getDeviceInfo","logItem","browserDetail","browser","browser_version","saveLogItem","editLogItem","editing","cancelRequested","onUpload","uploadedFiles","file","files","onRemove","uploader","indexOf","remove","fileIndex","editClicked","appRoute","officeId","foundInVersion","settingsProviderService","appVersion","FormData","v","prop","hasOwnProperty","saveLogItemRequested","selectedPriorityChanged","viewLogItemDocumentClicked","iLogItem","descriptionHtml","logItemNumber","loggedForEmail","memberNumber","loggedByEmail","completedBy","fixedInVersion","loggedOn","completionOn","lastStatusUpdate","assignedTo","itemStatus","LogItemStatus","NotStarted","summaryInfo","documents","canReproduce","section","EcaModalOptions","BugLoggerModalService","openLogItemEditorModal","headerText","isNewLogItem","options","modalClasses","isReadOnly","bugLogEditorModalRef","saveOrCreateLogItem","res2","BugLoggerService","documentTypeService","getLogItemSettings","getLogItem","logItemId","logItemFormData","settingsProvider","controllerName","baseUrl","baseApiUrl","urlPart","add","isAfter","CachedData","numSecondsToKeep","_numSecondsToKeep","invalidateData","lastLoaded","isDataFresh","Date","seconds","clear","addData","dataPoint","ModalHostComponent","EllipsisPipe","DashboardCardComponent","DetailContainerComponent","CardModule","clicked","dateEntered","answer","question","noButtonText","yesButtonColour","noButtonColour","yesButtonIcon","noButtonIcon","DashboardCard","collapsedOnMobile","innerWidth","dashboardCard","cardHeaderAction","collapsedCardHeader","cardHeader","headerIcon","toggleable","transitionOptions","ngContentSelectors","expandClicked","collapseClicked","containerHeaderAction","containerHeader","collapsedContainerHeader","containerClass","isCollapsible","pullRightOnMobile","selectItem","itemSelected","closeWithoutSelect","onItemSelected","guidance","cancelButtonText","cancelButtonColour","cancelButtonIcon","items","currentItem","styles","DateTimeWithZone","iDateTimeWithZone","timeZone","excelStyle","fgColor","alignmentH","fontSz","fontColour","fontBold","excelStyleAlignment","excelStyleFill","excelStyleFont","vertical","horizontal","wrapText","textRotation","excelStyleColor","bgColor","bold","color","italic","sz","rgb","CancelOnlyModalOptions","iDashboardCard","columnSize","headerClass","YesNoModalOptions","val","args","removeOnMobile","substring","takeUntil","httpCancelService","onCancelPendingRequests","saveAs","parse","differenceInDays","XLSXStyle","ExportExcelService","exportToExcelByProp","objectList","columnNames","filename","then","xlsx","newArray","obj","tempObj","column","worksheet","utils","json_to_sheet","autoFitColumns","workbook","Sheets","SheetNames","excelBuffer","write","bookType","saveAsExcelFile","groupByResults","count","cellStyles","exportTrainingMatrix","Object","values","titleRow1","titleRow2","toDateString","titleRow3","aoa_to_sheet","addFilter","setDateStyle","myNoExpirystyle","styleBuilder","fill","styleColors","Green","alignment","setTextStyle","myTitlestyle","SteelBlue","font","White","setRowStyle","mergeCells","mySubTitlestyle","myExpiredStyle","Red","setCellStyle","myWarningStyle","Yellow","myValidStyle","myHeaderstyle","LightGrey","myHVstyle","CornflowerBlue","myLVStyle","LightBlue","myNEStyle","LightsteelBlue","autoHeaders","myColumnArray","i","setColumnWidth","buffer","fileName","FileSaver","EXCEL_TYPE","EXCEL_EXTENSION","Blob","getTime","expiryAge","warningAge","expiredStyle","warningStyle","validStyle","todaysDate","parsedDate","daysDifference","s","style","rowNumber","colNumber","cellAddress","encode_cell","rowNumbers","range","decode_range","array","colNum","setColumnStyle","newWidth","width","jsonKeys","keys","objectMaxLength","j","key","w","colNumbers","mergeCount","lastRow","lastColumn","filterIndex","remainder","String","fromCharCode","Math","floor","filterRange","ref","Subject","cancelPendingRequests","cancelPendingRequests$","CompanyDetailsComponent","CompanyDocumentsComponent","ObservationModule","CompanyDetailsModalComponent","CompaniesDocumentsListComponent","CompanyOperativeTrainingRecordsComponent","CompanyOptInModalComponent","InputSwitchModule","InputTextareaModule","AgreeContractComponent","AgreeContractModalComponent","JobRoleListComponent","CompanyJobRoleModalComponent","CompanyJobRoleEditorComponent","BusinessUnitListComponent","BusinessUnitEditorComponent","CompanySettingsEmailModalComponent","BusinessUnitAssignComponent","OptInModalInfo","companyOptInService","agreeContract","recordContractAgreed","company","contractAgreed","modalDetails","DocumentEntityTypeString","openDocument","allowEdit","editDocument","downloadDocument","allowDelete","deleteCompanyDocument","documentSummaryInfo","openCompanyDocument","deleteCompanyDocumentClick","downloadCompanyDocument","editCompanyDocument","viewCompanyDocumentClicked","entityType","employedPerson","trainingRecord","expiredFilterChanged","refreshDocumentsRequested","expiredFilter","showTableCaption","documentSummaryInfos","OperativeInfo","CompanyInfo","Observation","ObservationType","ObservationTypeString","ExtendedJobLevel","ExtendedRiskInfo","ObservationSummary","operativesService","companyDocumentService","operativeModalService","companyDashboardStateService","riskHelpModalService","companyJobRoleService","setCompanyDashboardCards","companyDetailsCard","operativesListCard","recentObservationsListCard","recentDocumentsCard","setDashboardState","getCompany","trialValidTo","isTrialCompany","initDashboard","initDashboardCards","cardsSet","getRecentDocumentsCard","getCompanyDetailsCard","getOperativesListCard","getRecentObservationsListCard","loadingCompanyDetails","getAllJobTitles","jobTitles","getCompanyJobTitlesByCompanyId","allCompanyJobTitles","getAllOperativeTypes","allOperativeTypes","getBusinessUnitsForCompany","allBusinessUnits","getRecentObservationsForCompany","recentObservationSummaries","recentObservations","loadingObservations","getCompanyDocumentSummaries","loadOperatives","getAllRisks","setOperativeRisks","getAllEmploymentStatuses","allEmploymentStatuses","setOperativeEmploymentStatus","getAllJobLevels","setOperativeJobLevels","getRiskMatrix","riskMatrix","setOperativeRiskMatrixLevels","getOperativesInCompany","toISOString","op","jobTitle","currentJobTitleId","totalCPDHours","record","cpdHour","reduce","acc","operativeType","parseFloat","toFixed","businessUnit","currentBusinessUnitId","setOperativeRiskAndLevels","complete","loadingOperatives","getAllDocumentSummariesByEntityType","companyDocuments","companyDocumentSummaries","documentsLoading","companyDocument","addCompanyDocument","loading","createOrUpdateCompanyDocument","companyDocumentSummary","updatedCompanyDocumentSummary","editCompanyDetails","compDetailCard","originalCompany","editingCompanyDetails","cancelEditCompanyDetails","saveCompanyDetails","updateCompany","viewObservation","iObservationSummary","observationSummary","observationId","deleteObservation","observation","observationType","d","goToCompanyObservations","goToOperativeObservations","gotoOperativesPage","addOperative","newOperative","defaultEmploymentStatus","isDefault","currentEmploymentStatusId","jobLevels","risks","openOperativeEditorModal","saveOperativeRequested","operative","createOrUpdateOperative","openRiskHelp","openRiskHelpModal","openCompanyHelp","CompanyDetailsHelp","openOperativesHelp","DashboardOperativesListHelp","openObservationsHelp","RecentObservationsList","openRecentDocumentsHelp","RecentDocumentsList","DangerAlertModalOptions","WarningAlertModalOptions","ControlContainer","UntypedFormControl","NgForm","Validators","validateEmail","pattern","valid","lookupPostcode","features","useExisting","EntityDocumentSummary","CompanyDocumentSummary","breadcrumbService","set","setUserAndReload","getAllDocumentTypesForEntityType","companyDocumentTypes","getCompanyDocumentSummary","initCompanyDocument","getDocumentObservations","companyDocumentObservations","isEditing","tempDocumentSummary","getSelectedDocumentType","documentTypeId","saveCompanyDocumentClicked","extraDescription","appendDocumentUploadRequest","createOrEditObservation","showSaveAndUploadButton","observationModalRef","saveObservationClicked","observationResult","CompanyDocument","entityObservationId","trObservationSummary","documentObservationId","createOrUpdateDocumentObservation","companyDocObservation","updateObservationSummaries","reviewDate","expiryDate","docDetailsContainerComponent","fileUploaded","formIsValid","formStatusChange","removeFile","delete","navAction","companyDocumentsLoading","getAllDocumentSummariesForEnterprise","viewCompanyDocument","toString","refreshDocuments","openCompanyDocumentsHelp","addDocumentClicked","showCount","addDocumentButtonText","showAddDocumentButton","subscription","loadTrainingRecordSummaries","trainingRecordsLoading","openTrainingRecordsHelp","allowedOperations","confirmDeleteTrainingRecord","matrixColumns","viewTrainingRecord","companyOperativesTraingRecordsToExport","trainingExtraDescription","operativeFirstName","operativeLastName","achievedOn","trainingTypeName","categoryName","totalObservations","getTrainingMatrixForCompany","trainingMatrix","operativeName","deleteTrainingRecord","refreshListRequested","showHeaderText","trainingRecordId","allRisksLoaded","allJobTitles","allJobTitlesLoaded","allOperativeTypesLoaded","allBusinessUnitsLoaded","allJobLevelsLoaded","riskMatrixLoaded","allEmploymentStatusesLoaded","asOf","allHistory","loadedOperativesSubject","err","operativesAsOf","reloadOperatives","asOfSelected","date","CompanyOptInAcceptanceSummary","DOCUMENT","DecisionRequirement","companyOptInAcceptanceSummaries","decision","defaultOptInState","goToLink","companyOptInAcceptanceSummary","recordOptInAction","optInUrl","openOnSamePage","open","recordOptInActions","anyErrors","optIn","showMustVisit","mustVisit","isUrlVisited","showError","decisionRequirement","MandatoryYes","MandatoryNo","optInActions","optInAction","optInEntryId","visited","visitedOn","isFinalAcceptance","recordOptInActionsClicked","compareHtmlStrings","str1","str2","div1","div2","toUpperCase","saveOnly","decisionFinalised","newCompanyAcceptance","sort","a","b","optInDescription","onChangeToggled","setTimeout","CompanyAlertEmailSettings","isEmailModalLoading","getAlertEmailOptionsList","results","emailOptions","selected","selectedOption","companySettingsId","Name","selectedEmailOptions","addAlertEmail","companyEmailSetting","cancelBtnClicked","emaillAddSave","CompanyJobTitle","companyJobRoleModalService","CompanySettingOperations","getAllCompanyJobTitles","listResut","companyJobTitles","jobTitlesLoaded","addNewCompanyJobRole","newCompanyJobTitle","defaultJobLevelId","operativeTypeId","electricalWorkType","createdBy","updatedBy","openCompanyJobTitleEditorModal","cancelCompanyJobTitleClicked","companyJobTitleEditorModalRef","saveCompanyJobTitleClicked","companyJobTitle","CreateOrUpdateCompanyJobTitle","companyJobRole","updateLists","deleteCompanyJobTitle","RemoveCompanyJobTitle","CompanyDashboardStateService","HttpRequest","getAllDocumentSummariesForOperatives","getCompanyDocument","getCompanyDocumentForViewOrDownload","request","reportProgress","responseType","companyDocumentUpload","CompanyOptInModalService","openCompanyOptInModal","optIns","optInModalRef","openCompanyContractModal","getPendingCompanyOptInAcceptances","actions","CompanySettingsModalService","getCompaniesWith","companySearch","emailAddRequest","EcaDocumentType","DocumentTypeEditorComponent","documentType","DocumentUploaderModalComponent","DocumentsEntryHelp","initDocumentUploadForm","defaultFileName","isNewDocument","documentTypes","canSaveDocument","canSave","DocumentUploaderComponent","now","documentSummary","disableDatesPriorSelected","setReviewDateLimit","defaultDocumentType","initTooltip","ngAfterViewInit","documentUploadForm","form","statusChanges","filetypeTooltip","observedOn","selectedMinDate","setDate","getDate","onFileRemove","tempFileName","fileRemove","onFileAdd","size","maxFileSize","fileUpload","removeDefaultFile","expiresOn","currentDate","newExpiryDate","selectedMaxDate","creationMaxDate","docUrl","DocumentsListComponent","openDocumentClicked","downloadDocumentClicked","showRowControllerButtons","addObservationToADocumentClicked","deleteDocumentClicked","entityDocument","deleteDocument","editDocumentClicked","addDocument","viewDocumentClicked","viewDocument","DocumentSummariesToExport","addObservationClicked","documentEntityType","HttpEventType","getDocumentForViewOrDownload","withDownload","fileContentResult","UploadProgress","DownloadProgress","Response","downloadedFile","download","setAttribute","appendChild","URL","createObjectURL","target","canPreviewDocument","click","removeChild","auditInfo","auditId","auditDate","auditAction","operation","auditString","iCompany","addressLine1","addressLine2","addressLine3","addressTown","addressCounty","addressPostcode","contactName","contactPhone","contactEmail","referenceNumber","anyOptInsNotAccepted","contractAgreedBy","contractAgreedOn","inlineAddress","CompanyObservation","iCompanyObservation","iCompanyOptInAcceptanceSummary","decisionOn","decisionBy","decisionIpAddress","visitedBy","visitedIpAddress","userFocused","decisionLabel","errorText","getDecisionRequirementClass","None","OptionalYesNo","getVisitedClass","getIcon","decisionRequired","DocumentObservation","iDocumentObservation","notesAsHtml","observedBy","operativeObservationId","trainingRecordObservationId","companyObservationId","companyDocumentId","createdOn","iObservation","firstName","middleInitials","lastName","latestEngagementFrom","setHours","latestEngagementTo","lastObserved","numTrainingRecords","nextFollowUp","emailAddress","phoneNumber","latestEngagementId","fullName","image","populateRisk","currentWorkRisk","getFullName","populateJobLevel","setDefaultEmploymentStatus","employmentStatuses","defaultEmployment","populateEmploymentStatus","currentEmploymentStatus","populateRiskMatrixLevel","riskEntry","currentRiskMatrixLevel","High","getRiskClass","getRiskName","getDegreeOfRisk","getSupervisionRequirement","getRiskBadgeClass","endedOn","nextObservationFollowUp","OperativeObservation","iOperativeObservation","TrainingRecordObservation","iTrainingRecordObservation","TrainingRecord","iTrainingRecord","trainingTypeSet","cpdHourCheck","NavigationEnd","EcaBreadcrumbComponent","ecaBreadcrumbHome","routerLink","ecaBreadcrumb","ecaBreadcrumbs","newBreadcrumbItem","showDashboardCrumb","EcaBreadcrumbService","HelpInfoModalComponent","DividerModule","helpInfo","HelpModalService","settingsService","getEnvironment","environment","environmentSetting","BusinessUnitInfo","iBusinessUnitInfo","isSelected","iCompanyAlertSettings","alertMinus90Days","alertMinus60Days","alertMinus30Days","alertMinus14Days","alert0Days","alert14Days","iCompanyDocumentSummary","EmploymentStatus","RiskInfo","JobTitleInfo","JobLevelInfo","OperativeTypeInfo","CompanyEngagementHistory","iCompanyEngagementHistory","to","jobTitleId","employmentStatusId","employmentStatus","supervisionString","businessUnitId","iCompanyJobTitle","DecisionRequirementString","iDocumentType","ElectricalWorkType","ElectricalWorkTypeString","iEmploymentStatus","observations","iJobLevelInfo","_name","examples","trim","basicName","iRiskInfo","examplesSummary","nameAndExample","jobLevelIsSet","getDefaultJobLevel","defaultJobLevelName","iJobTitleInfo","ObservationDocumentSummary","iObservationDocumentSummary","OperativeDocumentSummary","iOperativeDocumentSummary","iOperativeTypeInfo","iOptInModalInfo","optInModalText","optInModalTitle","continueButtonText","RiskMatrixLevelString","TrainingRecordDocumentSummary","iTrainingRecordDocumentSummary","iTrainingType","trainingTypeCategory","TrainingTypeDocumentSummary","iTrainingTypeDocumentSummary","bugLoggerModalService","tncService","eCOMsGuidePdfUrl","getPrivacyStatementUrl","privacyStatementLink","companyIdIsSet","openCompanyDocumentUploaderModal","isInternalAdminUser","initLists","optInEntries","updateListRequired","updateNavBar","initNavBar","navItems","separator","addOperativePermission","trainingRecordOperations","documentOperations","observationOperations","currentHelp","showQuickHelp","helpAboutThisPageClick","displayName","logIssueClick","clearCompanySelectiion","updateUserCompanyDetails","createCompanyObservation","observationModalHeading","selectedObservation","Company","createOrUpdateCompanyObservation","companyObservation","skipLocationChange","canAddOperative","setUserAndReloadData","getCompanyObservations","observationTypeString","companyObservations","observationsLoading","editedObservation","saveObservationDocumentRequested","ObservedOn","openCompanyObservationsHelp","CreateOrEditObservationModalComponent","ObservationGuidance","ObservationEntryHelp","modalHeading","tempObservation","observationDocumentService","getObservationSummaryById","observationTitle","getObservationById","getAllDocumentSummariesForObservation","observationDocuments","isObservationLoading","Operative","OperativeDocument","TrainingRecordDocument","openObservationDetailsHelp","observationDetailsContainerComponent","createOrUpdateOperativeObservation","operativeObservation","createOrUpdateTrainingRecordObservation","traingingRecordObservation","documentObservation","addObservationDocument","createOrUpdateObservationDocument","viewObservationDocument","downloadObservationDocument","openObservationDocument","deleteObservationDocumentClick","deleteObservationDocument","observationDocumentTypes","getObservationDocumentSummary","observationDocumentSummary","initObservationDocument","observationDocumentObservations","saveObservationDocumentClicked","ObservationFormComponent","toolbar","selectedObservationType","followUpMinDate","setDateLimits","followupOn","newMaxDate","observedOnMaxDate","ObservationsListComponent","createObservation","createObservationClicked","editObservation","editObservationClicked","observationRecordSummariesToExport","tableTitle","showCaption","showWarningMessage","addButtonText","showAddButton","viewObservationClicked","getAllOperativeObservationsForCompany","observationsSummaries","operativeObservations","operativeObservationLoading","openOperativesObservationsHelp","RecentObservationsListComponent","deleteObservationClicked","getObservationDocumentForViewOrDownload","ObservationDocumentUpload","ObservationModalService","getAllObservations","newObservation","operativeObservationInfo","getOperativeObservations","deleteOperativeObservation","deleteDocumentObservation","deleteTrainingRecordObservation","deleteCompanyObservation","documentObservationInfo","trainingRecordObservation","trainingRecordObservationInfo","getTrainingRecordObservations","operativeObservationsSummary","observationEntity","exists","EngagementHistoryEditorComponent","engagement","tempEngagement","selectedBusinessUnitId","f","selectedOperativeTypeId","selectedJobTitleId","selectedJobLevelId","selectedRiskId","updateJobTitles","businessUnitHelpText","selectedDate","operativeMinDate","disableDatesPostSelected","operativeMaxDate","showUpdateAlert","filteredJobTitles","showJobTitleUpdate","updateJobLevel","showJobLevelUpdate","QualifiedSupervisor","isNonElectricalJobRole","NonElectrical","defaultJobJevelId","filteredJobLevels","updateRisk","showRiskUpdate","filteredRisks","EngagementHistoryModalComponent","cancelEngagementClicked","editEngagement","saveEngagement","saveEngagementClicked","OperativeDetailsDocumentsListComponent","operativeDocumentSummary","operativeDocuments","entityTypeString","operativeDocumentService","trainingRecordModalService","engagementModalService","cdr","trainingRecordDocumentService","types","businessUnitsLoaded","operativeTypesLoaded","initOperative","titles","jobLevelsResult","jobLevelsLoaded","risksLoaded","employmentStatusesLoaded","companyJobTitlesLoaded","editingOperativeDetails","allListsLoaded","checkLists","loadOperative","loadCurrentRoleSubscription","isNewOperative","getOperativeById","editingCurrentEngagement","savingEngagementDetails","setCurrentRoleIfOperativeIsLoaded","getCurrentRoleIfOperativeIsLoaded","loadCurrentRole","isLoaded","initCurrentEngagementRole","originalEngagementRole","engagements","tempEngagementRole","selectedEmploymentStatusId","showRoleBadge","loadingCurrentEngagement","getTrainingRecordsForOperative","getTrainingRecordSummariesForOperative","operativeTrainingRecords","trainingRecordTypes","editOperativeDetails","opDetailsContainerComponent","originalOperative","cancelEditOperativeDetails","editCurrentEngagement","opRiskContainer","cancelEditCurrentEngagement","saveNewOperative","saveOperativeDetails","savingOperativeDetails","newOperativeImage","imageString","createDocumentObservation","observationFor","selectedDocumentId","getEntityObservationId","ob","getOperativeDocuments","selectedTrainingRecordId","savedObservationId","addingObservationDocuments","saveCurrentEngagement","createOrUpdateEngagement","addNewEngagement","newEngagement","openEngagementEditorModal","engagementModalRef","engagementResult","addNewTrainingRecord","openTrainingRecordEditorModal","trainingRecordModalRef","saveTrainingRecordClicked","trainingRecordResult","updatingTrainingRecord","editedTrainingRecord","createOrUpdateTrainingRecord","newTrainingRecord","saveNewTrainingRecordDocumentRequested","addTrainingRecordDocument","saveNewTrainingRecordTypeRequested","setSelectedTrainingTypeId","setSelectedTrainingTypeValidTo","downloadOperativeDocument","openOperativeDocument","deleteOperativeDocumentClick","operativeDocument","addingOperativeDocuments","deleteOperativeDocument","editOperativeDocument","createOrUpdateOperativeDocument","updatedOperativeDocumentsSummary","createOrUpdateTrainingRecordDocument","trainingRecordSummary","addOperativeDocument","setTrainingRecordId","setSelectedDocumentId","viewOperativeDocument","basicLevels","jobLevelInfo","basicRisks","riskInfo","deleteTrainingRecordClick","getAllDocumentSummariesForOperative","operativeDocumentSummaries","getCompanyEngagementsFor","companyEngagements","engagementsLoaded","companyJobtitle","eng","deleteRoleHistoryClick","roleHistory","deleteCompanyEngagement","openOperativeDetailsHelp","createTrainingRecordObservation","updateBusinessUnit","selectedCompanyJobTitleId","updateRiskItself","changedRiskId","operativeDocumentTypes","getOperativeDocumentSummary","initOperativeDocument","operativeDocumentObservations","saveOperativeDocumentClicked","operativeDocObservation","getOperativeDocumentSummaries","operativeDocumentsLoading","openOperativesDocumentsHelp","OperativeDocumentsComponent","OperativeEditorModalComponent","saveOperative","editOperative","OperativeEditorComponent","selectedJobTitle","selectedJobLevel","selectedRisk","cancelEditing","lastNameChanged","lastNameStartsWith","includes","tempSelectedLastName","showMatchingOperatives","findOperativesWithLastNameStartingWith","matchingOperatives","isNewOperativeSelected","operativeSelected","getSelectedJobTitle","selectedCompanyJobTitle","hideMatchingOperative","selectedLastName","addOperativeImage","OperativeHistoryComponent","deleteRoleHistoryClicked","addHistoryEntry","addRoleHistoryRequested","viewEngagement","openInEdit","operativeHistoryLoading","refreshOperativeSuggested","engagementHistoriesToExport","engagementHistory","deleteRoleHistoryRequested","getEngagementRiskColour","allowOperations","isToday","OperativeListComponent","_allEmploymentStatuses","allEmploymentStatusesOptions","_allRisks","allRiskOptions","_allJobLevels","allJobLevelOptions","_allJobTitles","allJobTitleOptions","_allOperativeTypes","operativeTypes","allOperativeTypesOptions","_allBusinessUnits","businessUnits","allBusinessUnitsOptions","_riskMatrix","allRiskMatrixOptions","degreeOfSupervisionString","sortMatrixOptions","value1","value2","addOperativeTrainingRecord","removeOperativeClicked","onFilter","loadedOperatives","operativesTable","filterGlobal","searchFilter","formatDate","month","getMonth","day","getFullYear","onDateSelect","table","viewOperativeClicked","getSupervisionLevel","getTrainingTypesAndOpenModal","openTrainingRecordModal","getTrainingTypes","addTrainingToSelectedOperatives","selectedOperatives","refreshOperativesRequested","removeSelectedOperatives","openConfirmLeaveOperativesModal","confirmLeaveModalRef","removeOperativesRequested","removeOperativeFromCompany","getOperativesAsOf","operativeListToExport","showAllToggled","disableAsOfDate","showAll","loadAllHistoryOperatives","showEndDate","filterDate","OperativeObservationsComponent","renderer","addNewObservation","addNewObservationCancel","OperativeTrainingRecordsComponent","addObservation","deleteTrainingRecordRequested","addTrainingRecord","addNewTrainingClicked","trainingRecordsSummariesToExport","deleteTrainingRecordClicked","OperativeUploadFormComponent","uploadOperativeDocument","uploadRequest","userResponse","templateButtonUrl","OperativesLeaveConfirmComponent","removeOperativesClicked","endDateForOperatives","ToastModule","SliderModule","ContextMenuModule","DialogModule","EngagementModalService","getAllOperativeDocumentSummaries","getOperativeDocumentForViewOrDownload","OperativeDocumentUpload","OperativeModalService","operativeEditorModalRef","confirmLeaveOperativesModalRef","OperativesService","OperativeData","getOperativeByName","operativeData","alwaysServer","invalidateOperativeData","forceServer","companyOptInModalService","comp","modalData","optInAcceptanceSummaries","summary","openContractAgreementModal","toLocaleUpperCase","AuditService","CompanyId","getAllDocumentTypes","documentTypeData","observedResult","ErrorHandlingService","editButtonIcon","errorMessage","ecaConfirmInfoModalOptions","ListDataService","triggerListUpdate","jobTitleData","getJobTitlesForOperativeType","operativeTypeData","businessUnitData","getIsBusinessUnitInUse","BusinessUnitId","employmentStatusData","riskData","jobLevelData","riskMatrixData","trainTypeCategoryData","createOrUpdateBusinessUnit","deleteBusinessUnit","RiskHelpModalService","modalService","riskHelpModalRef","SettingsService","helpMessage","helpText","getCompanyBusinessUnits","assignItemClick","settingsBreadCrumbs","businessUnitResult","deleted","selectedBusinessUnit","openAssign","companyOperatives","operativeEngagments","showLoader","updatedBusinessUnit","businessUnitInUse","BusinessUnitInUseHelp","openBusinessUnitHelp","BusinessUnitHelp","temp","refreshCompanyJobTitleSuggested","saveCompanyJobTitle","openJobRoleHelp","CompanySettingJobRoleHelp","isActiveCompanyJobTitle","deleteCompanyJobTitleRequested","editCompanyJobTitle","loadingJobRoles","addCompanyJobTitleEntry","addCompanyJobRoleRequested","operativeList","refreshCompanyJobTitleList","CompanyJobRoleModalService","CompanyJobRoleService","companyJobTitleId","EcaAppVersionComponent","EcaCheckboxComponent","valueChange","defaultValue","disable","popoverText","inputId","EcaConfirmModalComponent","format","parseJSON","EcaDatePickerComponent","dateValue","endsWith","ex","selectedDateChanged","dateValueChange","EcaGhostBtnComponent","getButtonClass","btnClass","btnType","btnSize","removeLabelOnMobile","btnClicked","btnText","btnIcon","EcaHelpAlertComponent","helpCloseClicked","helpHtmlText","EcaHtmlEditorComponent","onContentChanged","contentChange","isRequired","placeHolder","validationMessage","EcaImageViewerComponent","imageSrc","decodedImageStr","defaultSrc","imageAlt","viewerAlt","defaultAlt","blob","lastModifiedDate","dummyFiles","ngOnChanges","changes","isSrcEncoded","currentValue","newImageSrc","encodedImageStr","atob","btoa","chooseIcon","cancelEnabled","imageUpload","hasFiles","imageOutput","fileCheckPassed","match","readImageFile","reader","FileReader","readAsDataURL","onload","EcaInputGuideComponent","isDisabled","renderHtml","EcaInputComponent","updateValue","inputType","controlId","EcaMarqueeComponent","EcaModalHostComponent","saveAndUploadBtnClicked","saveAndUploadClicked","editBtnClicked","helpBtnClicked","closeBtnClicked","saveAndUploadButtonText","editButtonText","closeButtonText","editButtonColour","closeButtonColour","closeButtonIcon","buttonsDisabled","showExportToPDFButton","printClicked","closeClicked","EcaQuestionIconComponent","EcaRowMenuComponent","rowMenuVisible","menuItem","disabled","contextLogic","contextItem","menuItems","viewClicked","viewBtnClicked","viewBtnSize","viewBtnVisible","viewBtnText","menuVisible","menuLabel","EcaSelectComponent","allowClear","detectChanges","selectedId","showUpdateMessage","selectedIdChanged","selectedIdChange","updateMessage","enableClear","placeholderText","EcaConfirmProcessService","EcaDynamicModalService","resolver","dialogService","componentType","getDialogComponentInstance","dialogComponentComponentRef","dialogComponentRefMap","changeDetectorRef","instance","componentRef","viewContainerRef","insertionPoint","componentFactory","resolveComponentFactory","createComponent","TooltipModule","MenuModule","ImageModule","isTrainingRecordLoading","getTrainingRecordById","tempTrainingRecord","trainingRecordObservations","getTrainingRecordDocuments","trDetailsContainerComponent","trainingRecordDocuments","viewTrainingRecordDocument","downloadTrainingRecordDocument","openTrainingRecordDocument","deleteTrainingRecordDocumentClick","deleteTrainingRecordDocument","editTrainingRecordDocument","updatedTrainingRecordSummary","uploadError","getAllTrainingRecordDocumentSummaries","openTrainingRecordDetailsHelp","saveNewCompanyTrainingType","trainingRecordDocumentTypes","getTrainingRecordDocumentSummary","trainingRecordDocumentSummary","initTrainingRecordDocument","trainingRecordDocumentObservations","saveTrainingRecordDocumentClicked","trnDetailsContainerComponent","trainingRecordDocument","updatedTrainingRecordDocumentsSummary","TrainingRecordDocumentsComponent","TableColumn","TrainingRecordEditorModalComponent","saveTrainingRecord","editTrainingRecord","cancelTrainingRecordClicked","saveNewTrainingTypeRequested","addNewTrainingTypeRequested","isAdding","addingNewTrainingType","hideHelpAlert","isMultipleOperatives","TrainingRecordEditorComponent","newTrainingTypeIdSubscription","getSelectedTrainingTypeId","selectedTrainingTypeChanged","newTrainingTypeValidToSubscription","getSelectedTrainingTypeValidTo","initDates","clearSelectedTrainingTypeId","clearSelectedTrainingTypeValidTo","selectedTrainingType","addNewTrainingType","saveNewTrainingTypeAttempted","cancelNewTrainingType","saveNewTrainingType","trainingTypeChanged","trainingTypeHeldOn","trainingTypeValidTo","validateCPD","min","validate","substr","keyCode","today","trainingValidTo","trainingAchievedOn","maxDate","minDate","saveTrainingRecordRequested","trainingTypeDocumentTypes","getTrainingTypeDocumentSummary","initTrainingTypeDocument","trainingTypeDocumentObservations","saveTrainingTypeDocumentClicked","openTrainingTypeDocument","ttObservationSummary","trainingTypeDocObservation","TrainingTypeEditorComponent","getTrainingRecordDocumentForViewOrDownload","TrainingRecordDocumentUpload","TrainingRecordModalService","TrainingRecordsService","includeGlobal","createOrUpdateGeneralTrainingType","TrainingTypeDocumentService","TrainingTypeDocumentUpload","TrainingTypeService","trainingTypeSubject","trainingTypeValidToSubject","OurUserService","_loadingUser","observedUser","_loggedInUser","notifyLoggedInUserChange","selectedUserSubject","production","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}