{"version":3,"sources":["bootstrap-form-renderer.ts","environment.Local.ts","environment.ts","i18n-plugin-config.ts","main-public.ts","main-secure.ts","au-overrides/app-router.ts","services/page-message-service.ts","models/app-message.ts","services/app-message-container.ts","services/app-message-service.ts","services/busy-service.ts","services/web-api-service.ts","models/carrier-filter.ts","models/division.ts","models/equipment.ts","models/carrier-lane.ts","models/contact-phone.ts","models/contact.ts","models/carrier.ts","controllers/carriers-controller.ts","controllers/dashboard-controller.ts","controllers/login-controller.ts","resources/value-converters/phone.ts","controllers/registration-controller.ts","models/carrier-document-version.ts","models/carrier-document.ts","models/comment-entry.ts","models/division-contact.ts","models/globals.ts","models/insurance.ts","models/state-list.ts","models/lane-list.ts","models/onboarding-requirement.ts","models/org-structure-node.ts","services/security-service.ts","services/signalr-service.ts","models/signalr-broadcast-message.ts","models/task.ts","public/routes.ts","public/app.ts","public/dialogs/safety-sheet-dialog.ts","public/landing.ts","public/test.ts","resources/index.ts","resources/validation-rules.ts","secure/access-denied.ts","data/typegen/enums/task-assignment-groups.ts","secure/alphabet-assignment.ts","secure/routes.ts","resources/attributes/security-role.ts","secure/app.ts","secure/widgets/action-bar/context-menu.ts","data/typegen/dtos/display-value-pair.ts","data/typegen/enums/task-class.ts","data/typegen/dtos/workflow-state.ts","data/typegen/dtos/request-stage-dto.ts","data/typegen/dtos/workflow-context-dto.ts","data/typegen/dtos/cmp-task-base-dto.ts","data/typegen/dtos/request-dto.ts","secure/carrier-status-history.ts","resources/dialogs/prompt-dialog.ts","secure/dialogs/simple-dialog.ts","secure/dialogs/carrier-status-dialog.ts","secure/dialogs/upload-document-dialog.ts","secure/dialogs/update-document-version-dialog.ts","secure/carrier-documents.ts","resources/elements/page-message.ts","secure/dialogs/update-contact-dialog.ts","secure/dialogs/add-remove-carrier-division.ts","secure/carrier-summary.ts","secure/widgets/list-filter/condition.ts","secure/carriers.ts","secure/dashboard.ts","secure/dialogs/update-division-contact-dialog.ts","secure/divisions.ts","secure/email-viewer.ts","secure/emails.ts","secure/executive-dashboard-details.ts","resources/value-converters/short-date.ts","secure/dialogs/executive-dashboard-details-dialog.ts","secure/executive-dashboard.ts","secure/landing.ts","secure/dialogs/mill-search-carrier-refine.ts","secure/mill-search-carriers.ts","resources/renderers/default-validation-renderer.ts","secure/register-user.ts","secure/requests/UiActionButton.ts","secure/requests/TaskActionService.ts","data/typegen/dtos/update-user-model.ts","secure/dialogs/update-user-dialog.ts","data/typegen/dtos/cmp-task-dto.ts","data/enums/taskState.ts","data/typegen/dtos/process-new-user-task-dto.ts","data/dtos/cmp-task-comment-insert-dto.ts","data/typegen/dtos/new-user-request-variables-dto.ts","data/typegen/dtos/do-ui-action-dto.ts","data/typegen/dtos/new-user-request-task-dto.ts","data/dtos/do-ui-action-client-handler-result.ts","secure/form-components/compose-email/compose-email.ts","secure/dialogs/compose-email-dialog/compose-email-dialog.ts","secure/requests/new-user-request/new-user-request-fulfillment.ts","data/typegen/enums/request-type-ids.ts","data/typegen/dtos/activity-stream-item-base.ts","data/typegen/dtos/task-details-screen-data-dto.ts","secure/task-details.ts","secure/tasks-home.ts","resources/value-converters/short-date-time.ts","secure/user-admin.ts","secure/work-carrier-input.ts","secure/dialogs/new-comment-dialog.ts","secure/dialogs/save-changes-dialog.ts","secure/dialogs/carrier-exists-dialog.ts","secure/dialogs/update-insurance-dialog.ts","services/settings-service.ts","secure/dialogs/search-carrier.ts","secure/dialogs/update-dedicated-scac.ts","secure/dialogs/update-transloader-details-dialog.ts","secure/dialogs/tonnage-details-dialog.ts","secure/dialogs/create-carrier-dialog.ts","secure/dialogs/carrier-onboarding-status-summary.ts","secure/dialogs/carrier-requirement-dialog/carrier-requirement-dialog-params.ts","secure/dialogs/carrier-requirement-dialog/carrier-requirement-dialog.ts","secure/widgets/onboarding-requirements/onboarding-requirements.ts","data/enums/apiResultStatus.ts","secure/work-carrier.ts","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/services/push-notification-service.js","data/enums/requestState.ts","public/login/change-password.ts","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/public/login/confirm-account.js","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/public/login/forgot-password.js","public/login/index.ts","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/public/login/login.js","data/typegen/dtos/new-user-request-submit-dto.ts","public/login/no-user-account.ts","public/login/password-changed.ts","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/public/login/reset-password.js","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/public/login/signup.js","public/register/animation-demo.ts","public/register/select-locations-dialog.ts","public/register/carrier-info.ts","public/register/complete.ts","public/register/details.ts","public/register/horizontal-text-input.ts","public/register/index.ts","public/register/obsolete_begin.ts","resources/attributes/auto-focus.ts","resources/attributes/slide-if.ts","resources/attributes/tooltip.ts","resources/decorators/use-cookie.ts","resources/elements/app-message-bar.ts","resources/elements/badge.ts","resources/elements/dropdown-checklist.ts","D:/NUCOR/CarrierManagement/CarrierManagementPortal/aurelia/src/resources/elements/loading-indicator.js","resources/elements/navbar-public.ts","secure/dialogs/report-parameters-dialog.ts","secure/dialogs/report-parameters-mill-contact-dialog.ts","secure/dialogs/report-parameters-dialog-2.ts","secure/dialogs/rpt-contacts-verification-dialog.ts","resources/elements/navbar-secure.ts","resources/elements/page-alert.ts","resources/elements/read-more.ts","resources/elements/recaptcha.ts","resources/elements/step-indicator.ts","resources/elements/toggle-badge.ts","resources/elements/type-ahead.ts","resources/value-converters/boolean-2-string.ts","resources/value-converters/comma-space.ts","resources/value-converters/currency.ts","resources/value-converters/date-time.ts","resources/value-converters/filter-array.ts","resources/value-converters/lower-case.ts","resources/value-converters/number-display.ts","resources/value-converters/number-only.ts","resources/value-converters/upper-case.ts","secure/dialogs/upload-and-link-document-dialog.ts","data/typegen/dtos/cmp-task-comment-dto.ts","data/typegen/enums/request-state-ids.ts","data/typegen/dtos/request-details-screen-data-dto.ts","secure/requests/request-details.ts","secure/requests/requests.ts","secure/widgets/carrier-grid.ts","secure/widgets/carrier-search-division-users-grid.ts","secure/widgets/contact-card.ts","secure/widgets/document-thumbnail.ts","secure/widgets/email-log.ts","secure/widgets/insurance-card.ts","secure/widgets/mill-dropdown.ts","secure/widgets/NOT_USED_workflow-actions.ts","secure/widgets/pdf-document.ts","secure/widgets/request-grid.ts","secure/widgets/task-grid.ts","data/typegen/entities/auditable-entity.ts","data/typegen/entities/cmp-task-base.ts","data/typegen/entities/i-cmp-comment.ts","data/typegen/entities/cmp-task-comment.ts","data/typegen/entities/cmp-task.ts","data/typegen/entities/request.ts","data/typegen/dtos/activity-stream-comment.ts","data/typegen/dtos/activity-stream-email.ts","data/typegen/dtos/new-carrier-request-variables-dto.ts","data/typegen/enums/request-state.ts","data/typegen/enums/task-state-ids.ts","data/typegen/enums/task-state.ts","data/typegen/enums/task-type-ids.ts","public/system/not-found/index.ts","resources/elements/org-chart/org-chart.ts","resources/elements/org-chart/org-node.ts","secure/dialogs/carrier-requirement-exemption-dialog/carrier-requirement-exemption-dialog-params.ts","secure/dialogs/carrier-requirement-exemption-dialog/carrier-requirement-exemption-dialog.ts","secure/external/my-tickets-page/index.ts","secure/form-components/activity-stream/activity-stream.ts","secure/external/ticket-page/ticket-page.ts","secure/requests/insurance-renewal/insurance-renewal-fulfillment.ts","secure/requests/new-carrier-request/new-carrier-request-dto.ts","secure/requests/new-carrier-request/new-carrier-request.ts","secure/widgets/action-bar/action-bar.ts","secure/widgets/list-filter/filter-panel.ts","secure/widgets/list-filter/search-criteria.ts","secure/widgets/onboarding-requirements/link-existing-document-dialog/link-existing-document-dialog.ts","secure/widgets/onboarding-requirements/onboarding-requirement-detail.ts","secure/widgets/value-or-empty-indicator/value-or-empty-indicator.ts","secure/widgets/workflow-stage-progress/workflow-stage-progress.ts","secure/requests/carrier-reevaluation-request/fulfillment/new-onboarding-request-dialog/new-onboarding-request-dialog.ts","secure/requests/carrier-reevaluation-request/fulfillment/carrier-reevaluation-request-fulfillment.ts","secure/requests/new-carrier-request/fulfillment/new-carrier-request-fulfillment.ts"],"names":[],"mappings":"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","file":"app-bundle.js","sourcesContent":["import {\r\n ValidationRenderer,\r\n RenderInstruction,\r\n ValidationError\r\n} from 'aurelia-validation';\r\n\r\nexport class BootstrapFormRenderer {\r\n render(instruction) {\r\n for (let { error, elements } of instruction.unrender) {\r\n for (let element of elements) {\r\n this.remove(element, error);\r\n }\r\n }\r\n\r\n for (let { error, elements } of instruction.render) {\r\n for (let element of elements) {\r\n this.add(element, error);\r\n }\r\n }\r\n }\r\n\r\n add(element, error) {\r\n const formGroup = element.closest('.form-group');\r\n if (!formGroup || formGroup.classList.contains('hide-error')) {\r\n return;\r\n }\r\n\r\n // add the has-error class to the enclosing form-group div\r\n formGroup.classList.add('has-error');\r\n\r\n // add help-block\r\n const message = document.createElement('span');\r\n message.className = 'help-block validation-message';\r\n message.textContent = error.message;\r\n message.id = `validation-message-${error.id}`;\r\n formGroup.appendChild(message);\r\n }\r\n\r\n remove(element, error) {\r\n const formGroup = element.closest('.form-group');\r\n if (!formGroup) {\r\n return;\r\n }\r\n\r\n // remove help-block\r\n const message = formGroup.querySelector(`#validation-message-${error.id}`);\r\n if (message) {\r\n formGroup.removeChild(message);\r\n\r\n // remove the has-error class from the enclosing form-group div\r\n if (formGroup.querySelectorAll('.help-block.validation-message').length === 0) {\r\n formGroup.classList.remove('has-error');\r\n }\r\n }\r\n }\r\n}","export default {\r\n debug: true,\r\n testing: true,\r\n fred: true\r\n};\r\n","export default {\r\n apiRoot: \"/api\",\r\n debug: true,\r\n testing: true\r\n};\r\n","import {TCustomAttribute} from 'aurelia-i18n';\r\nimport * as Backend from 'i18next-xhr-backend';\r\nexport function i18Config(instance){\r\n let aliases = ['t', 'i18n'];\r\n // add aliases for 't' attribute\r\n TCustomAttribute.configureAliases(aliases);\r\n \r\n // register backend plugin\r\n instance.i18next.use(Backend);\r\n\r\n // adapt options to your needs (see http://i18next.com/docs/options/)\r\n // make sure to return the promise of the setup method, in order to guarantee proper loading\r\n return instance.setup({\r\n ns: ['translation', 'labels'],\r\n backend: { // <-- configure backend settings\r\n loadPath: './content/locales/{{lng}}/{{ns}}.json', // <-- XHR settings for where to get the files from\r\n },\r\n attributes: aliases,\r\n lng : 'en',\r\n fallbackLng : 'en',\r\n debug : false\r\n });\r\n}","import { Aurelia, PLATFORM } from 'aurelia-framework'\r\nimport environment from './environment';\r\nimport {i18Config} from './i18n-plugin-config';\r\n\r\n//Configure Bluebird Promises.\r\n//Note: You may want to use environment-specific configuration.\r\n(Promise).config({\r\n warnings: {\r\n wForgottenReturn: false\r\n }\r\n});\r\n\r\nexport function configure(aurelia: Aurelia) {\r\n\r\n //ensure that we have a console.log function\r\n window[\"con\" + \"sole\"] = window.console || { log: function () { } };\r\n\r\n aurelia.use\r\n .standardConfiguration()\r\n .feature('resources')\r\n .plugin('aurelia-validation')\r\n .plugin('aurelia-cookie')\r\n // .plugin('aurelia-i18n', i18Config)\r\n .plugin('aurelia-dialog', config => {\r\n config.useDefaults();\r\n //config.settings.lock = true;\r\n //config.settings.centerHorizontalOnly = false;\r\n config.settings.startingZIndex = 5000;\r\n //config.settings.enableEscClose = true;\r\n })\r\n .plugin('aurelia-animator-css')\r\n\r\n\r\n if (environment.debug) {\r\n aurelia.use.developmentLogging();\r\n }\r\n\r\n if (environment.testing) {\r\n aurelia.use.plugin('aurelia-testing');\r\n }\r\n\r\n aurelia.use.plugin('aurelia-google-analytics', config => {\r\n config.init('G-LDRW9WSX16');\r\n config.attach({\r\n logging: {\r\n // Set to `true` to have some log messages appear in the browser console.\r\n enabled: true\r\n },\r\n pageTracking: {\r\n // Set to `false` to disable in non-production environments.\r\n enabled: true,\r\n // Optional. By default it gets the title from payload.instruction.config.title.\r\n getTitle: (payload) => {\r\n // For example, if you want to retrieve the tile from the document instead override with the following.\r\n return payload.instruction.config.title || document.title;\r\n },\r\n // Optional. By default it gets the URL fragment from payload.instruction.fragment.\r\n //getUrl: (payload) => {\r\n // // For example, if you want to get full URL each time override with the following.\r\n // return window.location.href;\r\n //}\r\n },\r\n clickTracking: {\r\n // Set to `false` to disable in non-production environments.\r\n enabled: true,\r\n // Optional. By default it tracks clicks on anchors and buttons.\r\n //filter: (element) => {\r\n // // For example, if you want to also track clicks on span elements override with the following.\r\n // return element instanceof HTMLElement &&\r\n // (element.nodeName.toLowerCase() === 'a' ||\r\n // element.nodeName.toLowerCase() === 'button' ||\r\n // element.nodeName.toLowerCase() === 'span');\r\n //}\r\n },\r\n exceptionTracking: {\r\n // Set to `false` to disable in non-production environments.\r\n enabled: true\r\n }\r\n });\r\n });\r\n\r\n aurelia.start().then(() => {\r\n aurelia.setRoot(\"public/app\");\r\n });\r\n}\r\n","import { Aurelia, PLATFORM } from 'aurelia-framework'\r\nimport environment from './environment';\r\nimport { i18Config } from './i18n-plugin-config';\r\n\r\n//Configure Bluebird Promises.\r\n//Note: You may want to use environment-specific configuration.\r\n(Promise).config({\r\n warnings: {\r\n wForgottenReturn: false\r\n }\r\n});\r\n\r\nexport function configure(aurelia: Aurelia) {\r\n\r\n //ensure that we have a console.log function\r\n window[\"con\" + \"sole\"] = window.console || { log: function () { }, error: function () { }, warn: function () { } };\r\n\r\n aurelia.use\r\n .standardConfiguration()\r\n .feature('resources')\r\n .plugin('aurelia-validation')\r\n .plugin('aurelia-tinymce-wrapper')\r\n // .plugin('aurelia-i18n', i18Config)\r\n .plugin('aurelia-dialog', config => {\r\n config.useDefaults();\r\n //config.settings.lock = true;\r\n //config.settings.centerHorizontalOnly = false;\r\n config.settings.startingZIndex = 5000;\r\n //config.settings.enableEscClose = true;\r\n })\r\n .plugin('aurelia-cookie')\r\n .plugin('aurelia-animator-css');\r\n\r\n if (environment.debug) {\r\n aurelia.use.developmentLogging();\r\n }\r\n\r\n if (environment.testing) {\r\n aurelia.use.plugin('aurelia-testing');\r\n }\r\n\r\n\r\n aurelia.use.plugin('aurelia-google-analytics', config => {\r\n config.init('G-LDRW9WSX16');\r\n config.attach({\r\n logging: {\r\n // Set to `true` to have some log messages appear in the browser console.\r\n enabled: true\r\n },\r\n pageTracking: {\r\n // Set to `false` to disable in non-production environments.\r\n enabled: true,\r\n // Optional. By default it gets the title from payload.instruction.config.title.\r\n getTitle: (payload) => {\r\n // For example, if you want to retrieve the tile from the document instead override with the following.\r\n return payload.instruction.config.title || document.title;\r\n },\r\n // Optional. By default it gets the URL fragment from payload.instruction.fragment.\r\n //getUrl: (payload) => {\r\n // // For example, if you want to get full URL each time override with the following.\r\n // return window.location.href;\r\n //}\r\n },\r\n clickTracking: {\r\n // Set to `false` to disable in non-production environments.\r\n enabled: true,\r\n // Optional. By default it tracks clicks on anchors and buttons.\r\n //filter: (element) => {\r\n // // For example, if you want to also track clicks on span elements override with the following.\r\n // return element instanceof HTMLElement &&\r\n // (element.nodeName.toLowerCase() === 'a' ||\r\n // element.nodeName.toLowerCase() === 'button' ||\r\n // element.nodeName.toLowerCase() === 'span');\r\n //}\r\n },\r\n exceptionTracking: {\r\n // Set to `false` to disable in non-production environments.\r\n enabled: true\r\n }\r\n });\r\n });\r\n\r\n var kioskRegEx = /kiosk\\/?\\?root=(.*)/gi;\r\n var matches = kioskRegEx.exec(window.location.href || \"\");\r\n\r\n if (matches && matches.length == 2) {\r\n aurelia.start().then(() => aurelia.setRoot(\"secure/\" + matches[1]));\r\n } else {\r\n aurelia.start().then(() => aurelia.setRoot(\"secure/app\"));\r\n }\r\n\r\n}\r\n","import {AppRouter} from 'aurelia-router';\r\n\r\nexport function apply() {\r\n\t/**\r\n\t * Override the original AppRouter.generate function by removing leading \"/\"\r\n\t * See https://github.com/aurelia/templating-router/issues/57\r\n\t */\r\n\t(function fixGeneratedRoutes(generateOrig: Function) {\r\n\t\tAppRouter.prototype.generate = function(name: string, params?: any, options?: any): string {\r\n\t\t\tlet href = generateOrig.call(this, name, params, options);\r\n\t\t\t\r\n\t\t\tif (href.charAt(0) === '/') {\r\n\t\t\t\thref = href.substr(1);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn href;\r\n\t\t}\r\n\t})(AppRouter.prototype.generate);\r\n}","import { autoinject, Aurelia } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\n\r\nconst DEFAULT_VALIDATION_MESSAGE: string = \"Fix errors below.\";\r\n\r\n@autoinject()\r\nexport class PageMessageService {\r\n\r\n errorMessage: string;\r\n infoMessage: string;\r\n\r\n //preserveMessageAfterNavigate allows setting page message in activate() and other lifecycle events that fire before navigation is complete.\r\n preserveMessageAfterNavigate: boolean;\r\n\r\n constructor(private aurelia: Aurelia, private router: Router) {\r\n (this.aurelia).subscribe('router:navigation:complete', msg => this.onNavigationComplete(msg));\r\n }\r\n\r\n public setErrorMessage(message: string) {\r\n setTimeout(() => {\r\n this.errorMessage = message;\r\n this.preserveMessageAfterNavigate = this.router.isNavigating;\r\n\r\n setTimeout(function () {\r\n var $ = window['jQuery'];\r\n $('html, body').animate({\r\n scrollTop: $('#page-message').offset().top - ($(\"nav.navbar\").outerHeight() + 85)\r\n }, 'fast');\r\n });\r\n\r\n });\r\n }\r\n\r\n public setDefaultValidationMessage() {\r\n setTimeout(() => {\r\n this.setErrorMessage(DEFAULT_VALIDATION_MESSAGE);\r\n this.preserveMessageAfterNavigate = this.router.isNavigating;\r\n });\r\n }\r\n\r\n public setInfoMessage(message: string) {\r\n setTimeout(() => {\r\n this.infoMessage = message;\r\n this.preserveMessageAfterNavigate = this.router.isNavigating;\r\n });\r\n }\r\n\r\n public clear() {\r\n this.errorMessage = \"\";\r\n this.infoMessage = \"\";\r\n }\r\n\r\n\r\n onNavigationComplete(msg) {\r\n if (!msg.result.completed) {\r\n return;\r\n }\r\n\r\n //when route changes, clear the page message\r\n if (!this.preserveMessageAfterNavigate) {\r\n this.clear();\r\n }\r\n this.preserveMessageAfterNavigate = false;\r\n }\r\n\r\n}","export enum MessageLifetime {\r\n /// \r\n /// Message is displayed for a set period of time, then automatically closes. \r\n /// User can also manually dismiss.\r\n /// Use for low-importance messages, such as update confirmation messages\r\n /// \r\n timer = 0,\r\n /// \r\n /// Message is displayed unless closed by code or if dismissed by the user.\r\n /// \r\n untilDismissed = 1,\r\n /// \r\n /// Message is displayed permanently, unless closed by code. User cannot dismiss.\r\n /// Normally reserved for critical messages\r\n /// \r\n permanent = 2\r\n}\r\n\r\nexport enum MessageType {\r\n info = 0,\r\n success = 1,\r\n warning = 2,\r\n error = 3,\r\n critical = 4\r\n}\r\n\r\nexport enum MessageScope {\r\n /// \r\n /// Message is displayed only within the current page.\r\n /// \r\n page = 0,\r\n /// \r\n /// Message is displayed throughout entire the application\r\n /// \r\n application = 1\r\n}\r\n\r\nexport class Message {\r\n static _messageIdx: number = 0;\r\n isHtml: boolean;\r\n\r\n constructor() {\r\n this.messageId = Message._messageIdx++;\r\n }\r\n containerId: string = \"root\";\r\n messageId: number;\r\n content: string;\r\n type: MessageType = MessageType.info;\r\n lifetime: MessageLifetime = MessageLifetime.timer;\r\n scope: MessageScope = MessageScope.page;\r\n data: any; //place to store caller data\r\n key: string; //use the key to ensure that the message is only diplayed once\r\n}\r\n","import { autoinject, Aurelia, singleton } from 'aurelia-framework';\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class AppMessageContainer {\r\n\r\n messages = [];\r\n\r\n constructor() {\r\n }\r\n}\r\n","import { autoinject, Aurelia, transient } from 'aurelia-framework';\r\nimport { HttpClient, HttpResponseMessage, HttpRequestMessage } from 'aurelia-http-client';\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport * as AppMessage from '../models/app-message';\r\nimport { AppMessageContainer } from '../services/app-message-container';\r\n\r\n@transient()\r\n@autoinject()\r\nexport class AppMessageService {\r\n\r\n events = {\r\n message_added: \"app-message-added\",\r\n message_deleted: \"app-message-deleted\",\r\n messages_changed: \"app-message-changed\"\r\n };\r\n\r\n constructor(private ea: EventAggregator, private msgContainer: AppMessageContainer) {\r\n ea.subscribe(\"router:navigation:processing\", () => {\r\n this.clearPageScopedMessages();\r\n });\r\n }\r\n\r\n\r\n containerId: string = \"root\";\r\n\r\n addMessage(message: string, type: AppMessage.MessageType): number;\r\n addMessage(message: string, type: AppMessage.MessageType, lifetime: AppMessage.MessageLifetime, key?: string, isHtml?: boolean): number;\r\n addMessage(message: AppMessage.Message): number;\r\n addMessage(param1: any, type: any = null, lifetime: any = null, key: any = null, isHtml = false): number {\r\n let message: AppMessage.Message;\r\n\r\n if (typeof param1 == \"string\") {\r\n message = new AppMessage.Message();\r\n message.isHtml = isHtml;\r\n message.content = param1;\r\n if (type || type === 0) message.type = type;\r\n if (lifetime || lifetime === 0) message.lifetime = lifetime;\r\n\r\n if (key) message.key = key;\r\n\r\n } else {\r\n message = param1;\r\n }\r\n\r\n //ensure there is a key set\r\n message.key = key || message.content;\r\n\r\n ////subsribe to event if provided\r\n //if (message.closeOnEvent) {\r\n // this.ea.subscribe(message.closeOnEvent, () => this.removeMessage(message.messageId));\r\n //}\r\n\r\n //TODO: display messages in a dialog if a dialog was open when message was called.\r\n\r\n // timer notifications are always displayed application-wide (scope is ignored)\r\n\r\n if (message.lifetime == AppMessage.MessageLifetime.timer) {\r\n $[\"notify\"](message.content, { className: \"success\", position: \"top center\" });\r\n return -1;\r\n } else {\r\n\r\n //check to make sure key doesn't already exist\r\n if (!message.key || (message.key && !this.msgContainer.messages.find(m => m.key == message.key))) {\r\n\r\n //not sure this is the best place, but for now, set the message's containerId here.\r\n // this will control where the message appears, according to the containerId \r\n // that is set on the app - message - bar element\r\n message.containerId = this.containerId;\r\n\r\n this.msgContainer.messages.push(message)\r\n this.ea.publish(this.events.message_added, alert);\r\n this.ea.publish(this.events.messages_changed);\r\n return message.messageId;\r\n }\r\n }\r\n }\r\n\r\n addInfoMessage(message: string, key?: string) {\r\n return this.addMessage(message, AppMessage.MessageType.info, AppMessage.MessageLifetime.untilDismissed, key);\r\n }\r\n addWarningMessage(message: string, key?: string) {\r\n return this.addMessage(message, AppMessage.MessageType.warning, AppMessage.MessageLifetime.untilDismissed, key);\r\n }\r\n showInfoMessage(message: string, show: boolean, isHtml?: boolean) {\r\n if (show)\r\n this.addMessage(message, AppMessage.MessageType.info, AppMessage.MessageLifetime.untilDismissed, message, isHtml);\r\n else\r\n this.removeMessageByKey(message);\r\n }\r\n showWarningMessage(message: string, show: boolean) {\r\n if (show)\r\n this.addMessage(message, AppMessage.MessageType.warning, AppMessage.MessageLifetime.untilDismissed, message);\r\n else\r\n this.removeMessageByKey(message);\r\n }\r\n\r\n addSuccessMessage(message: string) {\r\n //future-proof in case need to change how \"success\" messages are displayed.\r\n return this.addMessage(message, AppMessage.MessageType.success, AppMessage.MessageLifetime.timer);\r\n }\r\n addErrorMessage(message: string, lifetime: AppMessage.MessageLifetime, closeOnEvent?: string, key?: any);\r\n addErrorMessage(message: string, key?: any);\r\n addErrorMessage(message: string, param1: any, param2?: any) {\r\n var key, lifetime;\r\n if (arguments.length == 2) {\r\n key = arguments[1];\r\n }\r\n else if (arguments.length == 3) {\r\n lifetime = arguments[1];\r\n key = arguments[2];\r\n }\r\n var msg = new AppMessage.Message();\r\n msg.content = message;\r\n msg.type = AppMessage.MessageType.error;\r\n if (lifetime || lifetime === 0) msg.lifetime = lifetime;\r\n else msg.lifetime = AppMessage.MessageLifetime.untilDismissed;\r\n msg.key = key;\r\n var val = this.addMessage(msg);\r\n //scroll to top of page to ensure error is visible\r\n window.scrollTo(0, 0);\r\n return val;\r\n }\r\n\r\n //clear all messages that are not permanent\r\n clearNonPersistentMessages() {\r\n this.removeMessages(m => m.lifetime == AppMessage.MessageLifetime.untilDismissed);\r\n }\r\n\r\n //clear all messages that are scoped to the page\r\n clearPageScopedMessages() {\r\n this.removeMessages(m => m.scope == AppMessage.MessageScope.page);\r\n }\r\n\r\n removeMessages(callback: (message: AppMessage.Message) => {}) {\r\n var i = this.msgContainer.messages.length\r\n var deletedAny = false;\r\n while (i--) {\r\n let item = this.msgContainer.messages[i]\r\n if (callback(item)) {\r\n this.msgContainer.messages.splice(i, 1);\r\n this.ea.publish(this.events.message_deleted, item);\r\n deletedAny = true;\r\n }\r\n }\r\n if (deletedAny) this.ea.publish(this.events.messages_changed);\r\n }\r\n\r\n removeMessage(messageId) {\r\n let msg = this.msgContainer.messages.find(m => m.messageId == messageId);\r\n if (msg) {\r\n let index = this.msgContainer.messages.indexOf(msg);\r\n if (index > -1) {\r\n this.msgContainer.messages.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n removeMessageByKey(key: string) {\r\n let msg = this.msgContainer.messages.find(m => m.key == key);\r\n if (msg) {\r\n let index = this.msgContainer.messages.indexOf(msg);\r\n if (index > -1) {\r\n this.msgContainer.messages.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n handleHttpResponse(response: HttpResponseMessage) {\r\n if (response.headers.has(\"Set-App-Message\")) {\r\n var messagesJson = response.headers.get(\"Set-App-Message\");\r\n var messages = JSON.parse(messagesJson);\r\n messages.forEach((msg) => this.addMessage(msg));\r\n }\r\n }\r\n}","export class BusyService {\r\n active: number = 0;\r\n on() { this.active++; }\r\n off() { this.active--; if (this.active < 0) this.active = 0; }\r\n}","import { autoinject, Aurelia, observable } from 'aurelia-framework';\r\nimport { HttpClient, HttpResponseMessage, HttpRequestMessage } from 'aurelia-http-client';\r\nimport { Router } from 'aurelia-router';\r\nimport { PageMessageService } from \"../services/page-message-service\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\nimport { BusyService } from \"./busy-service\";\r\nimport environment from '../environment';\r\n\r\n@autoinject()\r\nexport class WebApiService {\r\n\r\n @observable()\r\n containerId: string; //used by message service to display message in the correct component view.\r\n containerIdChanged(newValue) {\r\n this.appMessageService.containerId = newValue;\r\n }\r\n\r\n private baseApiUrl = environment.apiRoot;\r\n\r\n constructor(private aurelia: Aurelia, private router: Router,\r\n private busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n private appMessageService: AppMessageService) {\r\n (this.aurelia).subscribe('router:navigation:complete', msg => this.onNavigationComplete(msg));\r\n }\r\n\r\n private getHttpClient(): HttpClient {\r\n var pageMessageService = this.pageMessageService;\r\n var appMessageService = this.appMessageService;\r\n var router = this.router;\r\n var webApiService = this;\r\n let client = new HttpClient()\r\n .configure(x => {\r\n x.withHeader('Accept', 'application/json');\r\n x.withHeader('X-Ajax-Request', 'true');\r\n x.withHeader('X-Host-Url', window.location.href);\r\n x.withInterceptor({\r\n request(request) {\r\n return request;\r\n },\r\n response(response) {\r\n //check for redirect\r\n if (response.statusCode === 204) {\r\n var location = response.headers.get(\"Location\");\r\n if (location) {\r\n webApiService.redirect(location);\r\n }\r\n }\r\n\r\n //check for app messages\r\n appMessageService.handleHttpResponse(response);\r\n\r\n return response;\r\n },\r\n responseError(responseError): Promise {\r\n //check for 404\r\n if (responseError.statusCode === 404) {\r\n webApiService.redirect(\"not-found\");\r\n return responseError.response;\r\n }\r\n\r\n\r\n var error = normalizeError(responseError);\r\n appMessageService.addErrorMessage(error.errorMessage);\r\n //scroll to top of page to ensure error is visible\r\n window.scrollTo(0, 0);\r\n throw error;\r\n },\r\n requestError(requestError): Promise {\r\n appMessageService.addErrorMessage(requestError.message);\r\n throw requestError.message;\r\n }\r\n });\r\n });\r\n return client;\r\n\r\n\r\n function normalizeError(error: HttpResponseMessage): any {\r\n //TODO: if error is in unexpected form from server, then put into standard shape\r\n try {\r\n return JSON.parse(error.response);\r\n } catch (e) {\r\n return {\r\n errorMessage: \"We are experiencing issues. Please try again later.\"\r\n };\r\n }\r\n }\r\n }\r\n\r\n private getApiPath(controller: string, action: string, parameters?: { [key: string]: any }) {\r\n let fragment = `${this.baseApiUrl}/${controller}/${action}`;\r\n if (parameters) {\r\n fragment += \"?\";\r\n for (let key of Object.keys(parameters)) {\r\n fragment += `${key}=${parameters[key]}&`;\r\n }\r\n }\r\n return fragment;\r\n }\r\n\r\n public get(controller: string, action: string, parameters?: { [key: string]: any }): Promise {\r\n //// from UI element\r\n //if (event instanceof UIEvent) {\r\n // this.appMessageService.clearNonPersistentMessages();\r\n //}\r\n\r\n let client = this.getHttpClient();\r\n return client.get(this.getApiPath(controller, action, parameters));\r\n }\r\n\r\n\r\n\r\n public getUrl(controller: string, action: string, parameters?: { [key: string]: any }) {\r\n return this.getApiPath(controller, action, parameters);\r\n }\r\n\r\n public post(controller: string, action: string, parameters?: { [key: string]: any }): Promise {\r\n ////clear messages if this is trigger from UI element\r\n //if (event instanceof UIEvent) {\r\n // this.appMessageService.clearNonPersistentMessages();\r\n //}\r\n\r\n let client = this.getHttpClient();\r\n return client.post(this.getApiPath(controller, action), parameters);\r\n }\r\n\r\n // submit the request, parse the response and handle error notifications\r\n public submit(controller: string, action: string, parameters?: { [key: string]: any }): Promise {\r\n //clear messages if this is trigger from UI element\r\n this.busyService.on();\r\n\r\n\r\n //if (event instanceof UIEvent) {\r\n // this.appMessageService.clearNonPersistentMessages();\r\n //}\r\n\r\n let client = this.getHttpClient();\r\n return client.post(this.getApiPath(controller, action), parameters)\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n public redirectUrl: string;\r\n\r\n private redirect(url) {\r\n\r\n //for now assume that all redirects are route fragments\r\n if (this.router.isNavigating) {\r\n this.redirectUrl = url;\r\n } else {\r\n if (url.indexOf(\"/\") === 0 || url.indexOf(\"http\")) {\r\n window.location.href = url;\r\n } else {\r\n this.router.navigate(url);\r\n }\r\n }\r\n }\r\n\r\n onNavigationComplete(msg) {\r\n if (!msg.result.completed) {\r\n return;\r\n }\r\n\r\n if (this.redirectUrl) {\r\n this.router.navigate(this.redirectUrl);\r\n }\r\n }\r\n\r\n}","export class CarrierFilter{\r\n carrierStatusId: string;\r\n}","export class Division {\r\n /** obsolete. use code instead */\r\n millId: string;\r\n name: string;\r\n code: string;\r\n address1: string;\r\n state: string;\r\n postalCode: string;\r\n city: string;\r\n id: number;\r\n railServed: boolean;\r\n}","export class Equipment {\r\n id: number;\r\n description: string;\r\n equipmentTypeId: string; //guid\r\n}\r\n\r\nexport class EquipmentType {\r\n equipmentTypeId: string; //guid\r\n type: string;\r\n}","export class CarrierLane {\r\n id: number;\r\n laneCode: string;\r\n}","import { ValidationRules } from \"aurelia-validation\";\r\n\r\nexport class ContactPhone {\r\n static clone(o: ContactPhone): ContactPhone {\r\n var newPhone = Object.assign(new ContactPhone(), o);\r\n return newPhone;\r\n }\r\n contactPhoneId: number;\r\n contactId: number;\r\n number: number;\r\n extension: string;\r\n type: string;\r\n}\r\n\r\n\r\nValidationRules\r\n .ensure((m: ContactPhone) => m.number).required()\r\n .ensure((m: ContactPhone) => m.type).required()\r\n .on(ContactPhone);\r\n","import { ValidationRules } from \"aurelia-validation\";\r\nimport { ContactPhone } from \"./contact-phone\";\r\n\r\nexport class Contact {\r\n\r\n constructor() {\r\n }\r\n\r\n id: number;\r\n carrierId: number;\r\n name: string;\r\n title: string;\r\n verified: boolean;\r\n email: string;\r\n mills: string; //comma-delimited list of mills that this contact is associated with\r\n contactTypeIds: Array = [];\r\n contactType: string;\r\n city: string;\r\n state: string;\r\n receiveAccountingReports: boolean = undefined;\r\n receiveDispatchReports: boolean = undefined;\r\n phones: Array = [];\r\n lastVerified: Date;\r\n lastVerifiedBy: string;\r\n}\r\n\r\nValidationRules.customRule(\r\n 'hasContactTypes',\r\n (value, obj) => !!(obj.contactTypeIds && obj.contactTypeIds.length),\r\n `\\${$displayName} must be specified.`\r\n);\r\n\r\nValidationRules\r\n .ensure((m: Contact) => m.name).required()\r\n .ensure((m: Contact) => m.title).required()\r\n .ensure((m: Contact) => m.email).required().email()\r\n .ensure((m: Contact) => m.contactTypeIds).satisfiesRule(\"hasContactTypes\")\r\n .ensure((m: Contact) => m.phones).required()\r\n .on(Contact);\r\n","import { ValidationRules } from 'aurelia-validation';\r\nimport { Division } from './division';\r\nimport { Equipment } from './equipment';\r\nimport { CarrierLane } from './carrier-lane';\r\nimport { Contact } from './contact';\r\n\r\nexport class Carrier {\r\n dedicatedScacCodes: string;\r\n diversityCertified: boolean;\r\n diversityCategories: Array;\r\n hazmatCertified: boolean;\r\n haulScrap: boolean;\r\n sustainability: boolean;\r\n hasSustainabilityProgram: boolean; // this column is used to drive UI, but is not stored in DB\r\n sustainabilityProgram: string;\r\n mcNumber: string;\r\n alternateName: string;\r\n dedicatedFleet: boolean;\r\n isMasterApprovedEmailSent: boolean;\r\n contacts: Contact[] = [];\r\n ospCarrierProductGroups: string[] = [];\r\n primaryAgentId: string;\r\n primaryAgentIdOverridden: boolean;\r\n carrierPointId: string;\r\n\r\n constructor() {\r\n //these arrays are only used when sending data to the server.\r\n //individual web api calls are made when stored in separate properties when displaying in the UI.\r\n this.equipment = [];\r\n this.diversityCategories = [];\r\n this.existingCarrierDivisions = [];\r\n this.preferredInboundLanes = [];\r\n this.preferredOutboundLanes = [];\r\n this.status = 0; //new\r\n }\r\n\r\n public get isTrucksCarrier(): boolean {\r\n return this.entityType == \"TRUCKS\" || this.entityType == 'TRANSLOADER/TRUCKS';\r\n }\r\n\r\n public get isBargeCarrier(): boolean {\r\n return this.entityType == \"BARGE\";\r\n }\r\n\r\n id: number;\r\n status: number;\r\n statusDate: Date;\r\n legalName: string;\r\n dbaName: string;\r\n contractType: string;\r\n scacCode: string;\r\n dotNumber: string;\r\n\r\n legalAddressStreet: string;\r\n legalAddressCity: string;\r\n legalAddressState: string;\r\n legalAddressZip: string;\r\n legalAddressCountry: string;\r\n safetyRating: string;\r\n taxId: string;\r\n mainPhone: string;\r\n mainPhoneExt: string;\r\n //ownerOfficerName: string;\r\n //ownerOfficerTitle: string;\r\n //ownerOfficerEmail: string;\r\n //ownerOfficerPhone: string;\r\n //ownerOfficerPhoneExt: string;\r\n //administratorName: string;\r\n //administratorEmail: string;\r\n //administratorPhone: string;\r\n //administratorPhoneExt: string;\r\n userHasReviewed: boolean;\r\n typeOfAuthority: string;\r\n isSubmitted: boolean;\r\n numberOfTrucks: number;\r\n hasWaterway: boolean;\r\n hasTrucks: boolean;\r\n existingCarrier: boolean;\r\n existingCarrierDivisions: Array;\r\n preferredInboundLanes: Array;\r\n preferredOutboundLanes: Array;\r\n equipment: Array;\r\n parent: number;\r\n parentName: string;\r\n newComment: string;\r\n communicationType: string;\r\n uniqueId: string;\r\n confinedToState: boolean;\r\n versionCol: string;\r\n deleted: boolean;\r\n priority: boolean;\r\n documentHold: boolean;\r\n entityType: string;\r\n millReferrer: string;\r\n children: any[];\r\n ngtvid: string;\r\n ngtvidLocked: boolean;\r\n overlengthHauler: boolean;\r\n heavyHauler: boolean;\r\n heavyHaulerWeightId: number;\r\n\r\n getCarrierName() {\r\n return this.dbaName || this.legalName;\r\n }\r\n}\r\n\r\nValidationRules.customRule(\r\n 'existingCarrierDivisions',\r\n (value, obj) => !obj.existingCarrier || (obj.existingCarrier && obj.existingCarrierDivisions.length > 0),\r\n `\\${$displayName} must be specified.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'heavyHaulerWeightId',\r\n (value, obj) => !obj.heavyHauler || !!obj.heavyHaulerWeightId,\r\n `\\${$displayName} must be specified.`\r\n);\r\nValidationRules.customRule(\r\n 'hasSustainabilityProgram',\r\n (value, obj) => !obj.sustainability || !!obj.hasSustainabilityProgram,\r\n `\\${$displayName} must be specified.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'numeric',\r\n (value, obj) => !value || !isNaN(parseInt(value.toString())),\r\n `\\${$displayName} must be numeric.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'sustainabilityProgram',\r\n (value, obj) => !obj.hasSustainabilityProgram || !!obj.sustainabilityProgram,\r\n `\\${$displayName} must be specified.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'diversityCategories',\r\n (value, obj) => !obj.diversityCertified || !!obj.diversityCategories.length,\r\n `\\${$displayName} must be specified.`\r\n);\r\n\r\n\r\nValidationRules.customRule(\r\n 'mandatoryContacts',\r\n (value, obj: Carrier) => {\r\n if (obj.contacts) {\r\n let hasAllMandatoryTypes = true;\r\n const mandatoryContactTypeIds = [\r\n 2, // owner\r\n 1, // administrator\r\n 7, // account rep\r\n 12, // rate contact\r\n 3, // dispatch\r\n 42, // new business contact\r\n 46, // 24 hrcontact\r\n 11 // insurance contact\r\n ];\r\n mandatoryContactTypeIds.forEach(ctypeId => {\r\n if (!(obj.hasTrucks || obj.isTrucksCarrier)) {\r\n // for non-trucks, the rate and dispatch contacts are not required.\r\n if (ctypeId == 3 || ctypeId == 12) {\r\n return;\r\n }\r\n }\r\n if (!obj.contacts.find(c => !!c.contactTypeIds.find(ct => ct == ctypeId))) {\r\n hasAllMandatoryTypes = false;\r\n }\r\n });\r\n return hasAllMandatoryTypes;\r\n }\r\n return false;\r\n },\r\n `\\Contact information must be provided for each of the roles listed in the \"Contact Information\" section.`\r\n);\r\n\r\nValidationRules\r\n .ensure((m: Carrier) => m.legalName).required()\r\n .ensure((m: Carrier) => m.taxId).satisfies((val, obj) => obj.isTrucksCarrier || !!val)\r\n .ensure((m: Carrier) => m.dotNumber).satisfies((val, obj) => !obj.isTrucksCarrier || !!val)\r\n .ensure((m: Carrier) => m.typeOfAuthority).required()\r\n .ensure((m: Carrier) => m.hasWaterway).satisfies((val, obj) => !obj.isBargeCarrier || !!val)\r\n\r\n .ensure((m: Carrier) => m.legalAddressStreet).required()\r\n .ensure((m: Carrier) => m.legalAddressCity).required()\r\n .ensure((m: Carrier) => m.legalAddressState).required()\r\n .ensure((m: Carrier) => m.legalAddressZip).required()\r\n .ensure((m: Carrier) => m.legalAddressCountry).required()\r\n\r\n .ensure((m: Carrier) => m.mainPhone).required().satisfiesRule(\"phone\")\r\n\r\n //.ensure((m: Carrier) => m.ownerOfficerName).required()\r\n //.ensure((m: Carrier) => m.ownerOfficerTitle).required()\r\n //.ensure((m: Carrier) => m.ownerOfficerEmail).required().email()\r\n //.ensure((m: Carrier) => m.ownerOfficerPhone).required().satisfiesRule(\"phone\")\r\n\r\n //.ensure((m: Carrier) => m.administratorName).required()\r\n //.ensure((m: Carrier) => m.administratorEmail).required().email()\r\n //.ensure((m: Carrier) => m.administratorPhone).required().satisfiesRule(\"phone\")\r\n\r\n .ensure((m: Carrier) => m.userHasReviewed).satisfiesRule(\"isChecked\")\r\n\r\n .ensure((m: Carrier) => m.haulScrap).required()\r\n \r\n .ensure((m: Carrier) => m.hasTrucks).required()\r\n .ensure((m: Carrier) => m.existingCarrier).required()\r\n .ensure((m: Carrier) => m.hasWaterway).satisfies((val, obj) => obj.isTrucksCarrier || val != undefined)\r\n .ensure((m: Carrier) => m.numberOfTrucks).satisfies((val, obj) => !obj.isTrucksCarrier || !!val)\r\n .ensure((m: Carrier) => m.existingCarrierDivisions).satisfiesRule(\"existingCarrierDivisions\")\r\n .ensure((m: Carrier) => m.equipment).satisfiesRule(\"arrayIsNotEmpty\")\r\n .ensure((m: Carrier) => m.preferredInboundLanes).satisfies((val, obj) => !obj.isTrucksCarrier || !!val.length)\r\n .ensure((m: Carrier) => m.preferredOutboundLanes).satisfies((val, obj) => !obj.isTrucksCarrier || !!val.length)\r\n\r\n .ensure((m: Carrier) => m.overlengthHauler).required()\r\n .ensure((m: Carrier) => m.communicationType).required()\r\n .ensure((m: Carrier) => m.heavyHauler).required()\r\n .ensure((m: Carrier) => m.diversityCertified).required()\r\n .ensure((m: Carrier) => m.diversityCategories).satisfiesRule(\"diversityCategories\")\r\n .ensure((m: Carrier) => m.hazmatCertified).required()\r\n .ensure((m: Carrier) => m.sustainability).required()\r\n .ensure((m: Carrier) => m.hasSustainabilityProgram).satisfiesRule(\"hasSustainabilityProgram\")\r\n .ensure((m: Carrier) => m.sustainabilityProgram).satisfiesRule(\"sustainabilityProgram\")\r\n .ensure((m: Carrier) => m.heavyHaulerWeightId).satisfiesRule(\"heavyHaulerWeightId\")\r\n .ensure((m: Carrier) => m.contacts).satisfiesRule(\"mandatoryContacts\")\r\n\r\n .on(Carrier);","import { WebApiService } from '../services/web-api-service';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { CarrierFilter } from '../models/carrier-filter';\r\nimport { Carrier } from '../models/carrier';\r\n\r\n@autoinject()\r\nexport class CarriersController {\r\n constructor(private api: WebApiService) {\r\n }\r\n\r\n searchCarriers(filter:CarrierFilter): Promise {\r\n filter = filter || new CarrierFilter();\r\n return this.api.get(\"Carriers\", \"SearchCarriers\", filter);\r\n }\r\n\r\n getCarrierById(id: number): Promise {\r\n return this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: id });\r\n }\r\n\r\n printApplication(carrierId: number, carrierName: string): void {\r\n var parameters = {\r\n carrierId: carrierId,\r\n carrierName: carrierName\r\n };\r\n window.open(this.api.getUrl(\"Report\", \"CarrierBasicInfo\", parameters));\r\n }\r\n\r\n\r\n}\r\n","import { WebApiService } from '../services/web-api-service';\r\nimport { autoinject } from 'aurelia-framework';\r\n\r\n@autoinject()\r\nexport class DashboardController {\r\n constructor(private api: WebApiService) {\r\n }\r\n\r\n navigatedFromFailedLogin: boolean;\r\n email:string;\r\n password:string;\r\n\r\n completeItem(item: any): Promise {\r\n return this.api.get(\"WorkQueue\", \"CompleteWorkItem\", { id: item.id });\r\n }\r\n\r\n getWorkItems(): Promise {\r\n return this.api.get(\"WorkQueue\", \"GetWorkQueue\");\r\n }\r\n\r\n //changePassword():Promise{\r\n // return this.api.post(\"Login\", \"ChangePassword\", { email: email, password: password });\r\n //}\r\n\r\n}\r\n","import { PageMessageService } from '../services/page-message-service';\r\nimport { WebApiService } from '../services/web-api-service';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\n\r\n@autoinject()\r\nexport class LoginController {\r\n //public pageTitle: string;\r\n //constructor(\r\n // private api: WebApiService,\r\n // private router: Router,\r\n // private pageMessageService: PageMessageService) {\r\n //}\r\n\r\n //navigatedFromFailedLogin: boolean;\r\n //email: string;\r\n //password: string;\r\n\r\n //login(email: string, password: string): Promise {\r\n // return this.api.post(\"Auth\", \"Login\", { email: email, password: password });\r\n //}\r\n //logout(): Promise {\r\n // return this.api.post(\"Auth\", \"Logout\");\r\n //}\r\n\r\n //requestAccount(reason: string, phone: string): any {\r\n // return this.api.post(\"Auth\", \"RequestAccount\", { email: reason, password: phone });\r\n //}\r\n\r\n //sendResetPasswordEmail(email: string) {\r\n // this.pageMessageService.clear();\r\n // return this.api.get(\"Auth\", \"SendResetPasswordEmail\", { email: email })\r\n // .then(() => {\r\n // this.pageMessageService.setInfoMessage(\"An email has been sent containing a confirmation link to reset your password.\");\r\n // })\r\n //}\r\n\r\n //confirm(email: string, userId: string, confirmationCode: string, password: string): Promise {\r\n // this.pageMessageService.clear();\r\n // return this.api.post(\"Auth\", \"ConfirmAccount\", { userId: userId, confirmationCode: confirmationCode, password: password })\r\n // .then(() => {\r\n // this.email = email;\r\n // this.router.navigate(\"login\");\r\n\r\n // this.pageMessageService.setInfoMessage(\"Your account has been confirmed. You may log in using your new password.\");\r\n // })\r\n // .catch((e) => {\r\n // if (e.errorMessage) {\r\n // this.pageMessageService.setErrorMessage(e.errorMessage);\r\n // } else {\r\n // this.pageMessageService.setErrorMessage(\"There was an issue confirming your account. Please contact Nucor Logistics for assistance.\");\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n //resetPassword(email: string, userId: string, token: string, password: string): Promise {\r\n // this.pageMessageService.clear();\r\n // return this.api.post(\"Auth\", \"ResetPassword\", { userId: userId, token: token, password: password })\r\n // .then(() => {\r\n // this.email = email;\r\n // this.router.navigate(\"login\");\r\n\r\n // this.pageMessageService.setInfoMessage(\"Your password has been reset. You may log in using your new password.\");\r\n // })\r\n // .catch((e) => {\r\n // if (e.errorMessage) {\r\n // this.pageMessageService.setErrorMessage(e.errorMessage);\r\n // } else {\r\n // this.pageMessageService.setErrorMessage(\"There was an issue resetting your password. Please contact Nucor Logistics for assistance.\");\r\n // }\r\n // });\r\n //}\r\n\r\n //changePassword(currentPassword: string, newPassword: string): Promise {\r\n // return this.api.post(\"Auth\", \"ChangePassword\", { currentPassword: currentPassword, newPassword: newPassword })\r\n // .then(() => {\r\n // // this.email = email;\r\n // this.router.navigate(\"login\");\r\n\r\n // this.pageMessageService.setInfoMessage(\"Your password has been changed. You may log in using your new password.\");\r\n // })\r\n // .catch((e) => {\r\n // if (e.errorMessage) {\r\n // this.pageMessageService.setErrorMessage(e.errorMessage);\r\n // } else {\r\n // this.pageMessageService.setErrorMessage(\"There was an issue changing your password. Please contact Nucor Logistics for assistance.\");\r\n // }\r\n // });\r\n //}\r\n}\r\n\r\n\r\n","export class PhoneValueConverter {\r\n toView(tel) {\r\n\r\n return this.format(tel);\r\n }\r\n\r\n\r\n format(tel) {\r\n if (!tel) { return ''; }\r\n\r\n var value = tel.toString().trim().replace(/\\D/g, '');\r\n\r\n // if (value.match(/[^0-9]/)) {\r\n // return tel;\r\n // }\r\n\r\n var country, city, number;\r\n\r\n switch (value.length) {\r\n case 10: // +1PPP####### -> C (PPP) ###-####\r\n if (value[0] == \"1\") {\r\n return tel;\r\n }\r\n country = 1;\r\n city = value.slice(0, 3);\r\n number = value.slice(3);\r\n break;\r\n\r\n // case 11: // +CPPP####### -> CCC (PP) ###-####\r\n // country = value[0];\r\n // city = value.slice(1, 4);\r\n // number = value.slice(4);\r\n // break;\r\n\r\n // case 12: // +CCCPP####### -> CCC (PP) ###-####\r\n // country = value.slice(0, 3);\r\n // city = value.slice(3, 5);\r\n // number = value.slice(5);\r\n // break;\r\n\r\n default:\r\n return tel;\r\n }\r\n\r\n // if (country == 1) {\r\n // country = \"\";\r\n // }\r\n\r\n number = number.slice(0, 3) + '-' + number.slice(3);\r\n\r\n // return (country + \" (\" + city + \") \" + number).trim();\r\n // return (\"+\" + country + \" (\" + city + \") \" + number).trim();\r\n return (\"(\" + city + \") \" + number).trim();\r\n }\r\n}","import { WebApiService } from '../services/web-api-service';\r\nimport { Router } from 'aurelia-router';\r\nimport { singleton, autoinject } from 'aurelia-framework';\r\nimport { Carrier } from \"../models/carrier\";\r\nimport { PhoneValueConverter } from \"../resources/value-converters/phone\";\r\nimport { Contact } from '../models/contact';\r\nimport { ContactPhone } from '../models/contact-phone';\r\n\r\n@autoinject()\r\n@singleton()\r\nexport class RegistrationController {\r\n\r\n\r\n private requestId: string = \"\";\r\n public initialResponse: string;\r\n\r\n async loadCompanyInfo(requestId: any) {\r\n try {\r\n var result = await this.api.get(\"Registration\", \"LoadCompanyInfo\", { requestId: requestId });\r\n var resp = JSON.parse(result.response);\r\n this.initialResponse = resp.status;\r\n this.carrier = Object.assign(new Carrier(), resp.carrier);\r\n // this.carrier.contacts[0].phones = [new ContactPhone()];\r\n this.requestId = requestId;\r\n if( this.carrier.isTrucksCarrier){\r\n this.carrier.hasTrucks = true; // assume \"Trucks\" carrier has access to trucks\r\n }\r\n } catch (e) {\r\n this.carrier = null;\r\n }\r\n }\r\n\r\n constructor(private router: Router,\r\n private api: WebApiService) {\r\n }\r\n\r\n getEquipment() {\r\n return this.api.get(\"Registration\", \"GetEquipment\");\r\n }\r\n\r\n getHeavyHaulerWeights() {\r\n return this.api.get(\"Registration\", \"GetHeavyHaulerWeights\");\r\n }\r\n\r\n\r\n\r\n verifyCompanyInfo() {\r\n //return this.api.get(\"Registration\", \"VerifyCompanyInfo\", { dotNumber: dotNumber, legalName: legalName, recaptchaResponse: recaptchaResponse })\r\n // .then((result) => {\r\n // this.carrier = Object.assign(new Carrier(), JSON.parse(result.response));\r\n // var emptyContact = new Contact();\r\n // emptyContact.phones = [new ContactPhone()];\r\n // this.carrier.contacts = [emptyContact];\r\n // this.router.navigate(\"register/details\");\r\n // });\r\n\r\n if (this.carrier)\r\n this.router.navigate(\"details\");\r\n\r\n }\r\n\r\n submitRegistration(): Promise {\r\n\r\n //format phone #'s\r\n var converter = new PhoneValueConverter();\r\n this.carrier.mainPhone = converter.format(this.carrier.mainPhone);\r\n //this.carrier.ownerOfficerPhone = converter.format(this.carrier.ownerOfficerPhone);\r\n //this.carrier.administratorPhone = converter.format(this.carrier.administratorPhone);\r\n\r\n //submit carrier registration\r\n return this.api.post(\"Registration\", \"Submit?requestId=\" + this.requestId, this.carrier)\r\n .then(() => {\r\n //TODO: capture carrier ID\r\n this.carrier.isSubmitted = true;\r\n });\r\n }\r\n\r\n carrier: Carrier;\r\n}\r\n","export class CarrierDocumentVersion {\r\n documentVersionId: string;\r\n documentId: string;\r\n title: string;\r\n pageCount: number;\r\n archive: boolean;\r\n isLinked: boolean;\r\n}","import { CarrierDocumentVersion } from \"./carrier-document-version\";\r\n\r\nexport class CarrierDocument {\r\n documentId: string;\r\n title: string;\r\n carrierGuid: string;\r\n documentType: string;\r\n documentTypeCode: string;\r\n documentTypeId: number;\r\n versions: Array = [];\r\n isLinked: boolean;\r\n}","export class CommentEntry{\r\n id: number;\r\n carrierId: number;\r\n comment: string;\r\n insertedOn: Date;\r\n insertedOnFormatted: string;\r\n insertedBy: string;\r\n tags: string;\r\n visibilityRole: string;\r\n canEdit = false;\r\n ageMs: number;\r\n}","import { ContactPhone } from \"./contact-phone\";\r\n\r\nexport class DivisionContact {\r\n\r\n constructor() {\r\n }\r\n\r\n id: number;\r\n divisionId: number;\r\n name: string;\r\n title: string;\r\n verified: boolean;\r\n email: string;\r\n contactTypeId: number;\r\n contactType: string;\r\n city: string;\r\n state: string;\r\n phones: Array = [];\r\n}\r\n","export class Globals {\r\n public getEntityTypes() {\r\n return [\r\n { id: 'TRUCKS', description: \"TRUCKS\" },\r\n { id: 'TRANSLOADER', description: \"TRANSLOADER\" },\r\n { id: 'TRANSLOADER/TRUCKS', description: \"TRANSLOADER/TRUCKS\" },\r\n { id: 'BARGE', description: \"BARGE\" },\r\n { id: 'LTL', description: \"LTL\" },\r\n { id: 'RAIL', description: \"RAIL\" },\r\n { id: 'VENDOR', description: \"VENDOR\" },\r\n { id: 'HOLDINGCOMPANY', description: \"HOLDING COMPANY\" }\r\n ];\r\n }\r\n}","export class Insurance {\r\n\r\n constructor() {\r\n }\r\n\r\n authorityTypeId: string;\r\n id: number;\r\n carrierId: number;\r\n insuranceTypeId: number;\r\n name: string;\r\n rating: string;\r\n expiration: Date;\r\n amount: number;\r\n umbrellaAmount: number;\r\n endorsements: Array;\r\n type: string;\r\n tempUpdate: boolean;\r\n riskPool: boolean;\r\n isCanceled: boolean;\r\n}\r\n","\r\nexport default [\r\n { name: \"Alabama\", abbreviation: \"AL\" },\r\n { name: \"Alaska\", abbreviation: \"AK\" },\r\n { name: \"Arizona\", abbreviation: \"AZ\" },\r\n { name: \"Arkansas\", abbreviation: \"AR\" },\r\n { name: \"California\", abbreviation: \"CA\" },\r\n { name: \"Colorado\", abbreviation: \"CO\" },\r\n { name: \"Connecticut\", abbreviation: \"CT\" },\r\n { name: \"Delaware\", abbreviation: \"DE\" },\r\n { name: \"Florida\", abbreviation: \"FL\" },\r\n { name: \"Georgia\", abbreviation: \"GA\" },\r\n { name: \"Hawaii\", abbreviation: \"HI\" },\r\n { name: \"Idaho\", abbreviation: \"ID\" },\r\n { name: \"Illinois\", abbreviation: \"IL\" },\r\n { name: \"Indiana\", abbreviation: \"IN\" },\r\n { name: \"Iowa\", abbreviation: \"IA\" },\r\n { name: \"Kansas\", abbreviation: \"KS\" },\r\n { name: \"Kentucky\", abbreviation: \"KY\" },\r\n { name: \"Louisiana\", abbreviation: \"LA\" },\r\n { name: \"Maine\", abbreviation: \"ME\" },\r\n { name: \"Maryland\", abbreviation: \"MD\" },\r\n { name: \"Massachusetts\", abbreviation: \"MA\" },\r\n { name: \"Michigan\", abbreviation: \"MI\" },\r\n { name: \"Minnesota\", abbreviation: \"MN\" },\r\n { name: \"Mississippi\", abbreviation: \"MS\" },\r\n { name: \"Missouri\", abbreviation: \"MO\" },\r\n { name: \"Montana\", abbreviation: \"MT\" },\r\n { name: \"Nebraska\", abbreviation: \"NE\" },\r\n { name: \"Nevada\", abbreviation: \"NV\" },\r\n { name: \"New Hampshire\", abbreviation: \"NH\" },\r\n { name: \"New Jersey\", abbreviation: \"NJ\" },\r\n { name: \"New Mexico\", abbreviation: \"NM\" },\r\n { name: \"New York\", abbreviation: \"NY\" },\r\n { name: \"North Carolina\", abbreviation: \"NC\" },\r\n { name: \"North Dakota\", abbreviation: \"ND\" },\r\n { name: \"Ohio\", abbreviation: \"OH\" },\r\n { name: \"Oklahoma\", abbreviation: \"OK\" },\r\n { name: \"Oregon\", abbreviation: \"OR\" },\r\n { name: \"Pennsylvania\", abbreviation: \"PA\" },\r\n { name: \"Rhode Island\", abbreviation: \"RI\" },\r\n { name: \"South Carolina\", abbreviation: \"SC\" },\r\n { name: \"South Dakota\", abbreviation: \"SD\" },\r\n { name: \"Tennessee\", abbreviation: \"TN\" },\r\n { name: \"Texas\", abbreviation: \"TX\" },\r\n { name: \"Utah\", abbreviation: \"UT\" },\r\n { name: \"Vermont\", abbreviation: \"VT\" },\r\n { name: \"Virginia\", abbreviation: \"VA\" },\r\n { name: \"Washington\", abbreviation: \"WA\" },\r\n { name: \"West Virginia\", abbreviation: \"WV\" },\r\n { name: \"Wisconsin\", abbreviation: \"WI\" },\r\n { name: \"Wyoming\", abbreviation: \"WY\" }\r\n];\r\n","import states from \"./state-list\";\r\n\r\nlet canada = [\r\n { name: \"Alberta\", abbreviation: \"AB\" },\r\n { name: \"British Columbia\", abbreviation: \"BC\" },\r\n { name: \"Manitoba\", abbreviation: \"MB\" },\r\n { name: \"New Brunswick\", abbreviation: \"NB\" },\r\n { name: \"Newfoundland and Labrador\", abbreviation: \"NL\" },\r\n { name: \"Nova Scotia\", abbreviation: \"NS\" },\r\n { name: \"Ontario\", abbreviation: \"ON\" },\r\n { name: \"Prince Edward Island\", abbreviation: \"PE\" },\r\n { name: \"Quebec\", abbreviation: \"QC\" },\r\n { name: \"Saskatchewan\", abbreviation: \"SK\" },\r\n];\r\n\r\nlet otherCountries = [{ name: \"Mexico\", abbreviation: \"MX\" }];\r\n\r\nexport default [\r\n { country: \"United States\", lanes: states},\r\n { country: \"Canada\", lanes: canada},\r\n { country: \"Other\", lanes: otherCountries }\r\n]","/** Represents an Onboarding Requirement for specific carrier */\r\nexport class OnboardingRequirementDto {\r\n public masterApprovalRequirementId: string = undefined;\r\n public carrierMasterApprovalRequirementId: string = undefined;\r\n public name: string = undefined;\r\n public description: string = undefined;\r\n public isComplete: boolean = undefined;\r\n public isWaived: boolean = undefined;\r\n public comment: string = undefined;\r\n public documentVersionId: string = undefined;\r\n public documentTitle: string = undefined;\r\n public carrierInsuranceId: number = undefined;\r\n public carrierEndorsementXrefId: string = undefined;\r\n public documentTypeIds: string = undefined;\r\n public endorsementTypeId: number = undefined;\r\n public endorsementDate: string = undefined;\r\n public displayOrder: number = undefined;\r\n public isExceptionAllowed: boolean = undefined;\r\n public conditionDescription: string = undefined;\r\n public subRequirements: OnboardingRequirementTypes[] = [];\r\n public hasApplicableDocuments: boolean = undefined;\r\n public isVerified:boolean = undefined;\r\n public verifiedStatus: \"U\" | \"Y\" | \"N\" = undefined;\r\n public verifiedByName: string = undefined;\r\n public verifiedOn: Date = undefined;\r\n public verificationTooltip:string = undefined;\r\n public isCategory: boolean = undefined;\r\n public requirements: OnboardingRequirementDto[] = [];\r\n}\r\n\r\nexport class OnboardingRequirementTypeDto {\r\n public type: OnboardingRequirementTypes = undefined;\r\n public description: string = undefined;\r\n}\r\n\r\nexport enum OnboardingRequirementTypes {\r\n document = 1,\r\n endorsement = 2\r\n}\r\n","export class OrgStructureNode {\r\n id: number;\r\n legalName: string;\r\n ngtvid: string;\r\n statusDescription: string;\r\n isBusy: boolean;\r\n parent: number;\r\n children: OrgStructureNode[];\r\n}","import { computedFrom, autoinject } from 'aurelia-framework';\r\nimport { WebApiService } from '../services/web-api-service';\r\n\r\n@autoinject()\r\nexport class SecurityService {\r\n\r\n constructor(private api: WebApiService) {\r\n }\r\n\r\n private readyPromise: any;\r\n init() {\r\n if (this.readyPromise)\r\n return this.readyPromise;\r\n\r\n return this.readyPromise = this.api.get(\"Login\", \"GetCurrentUser\")\r\n .then((result) => {\r\n var userInfo = JSON.parse(result.response);\r\n this.user = userInfo.user;\r\n this.roles = userInfo.roles;\r\n this.groups = userInfo.groups;\r\n this.isDivisionUser = !!(this.user.millCodes && this.user.millCodes.length);\r\n this.isReady = true;\r\n this.isAuthenticated = !!(this.user && this.user.userName);\r\n });\r\n }\r\n\r\n //TODO: This logic is incorrect and should be more diligent in determining the flag, and considering the usage implications.\r\n // NOTE: Furthermore, a user could start with \"%waad\" and be SSO for another applicaiton, and username-password for CMP\r\n @computedFrom(\"user.userName\")\r\n get isSSOUser(): boolean {\r\n if (this.user && this.user.userName && this.user.userName.toLocaleLowerCase().indexOf(\"@nucor.com\") > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n isReady: boolean = false;\r\n isDivisionUser: boolean;\r\n user: { id: string, userName: string, millCodes: string[], active: boolean, emailAddress: string, fullName: string, firstName: string, lastName:string};\r\n roles: Array = [];\r\n groups: Array = []; // group IDs\r\n roleMap={};\r\n hasRole(role) {\r\n if (this.roleMap[role] == undefined) {\r\n this.roleMap[role] = this._hasRole(role);\r\n }\r\n return this.roleMap[role];\r\n }\r\n _hasRole(role) {\r\n return !!this.roles.find(r => r.toLowerCase() == role.toLowerCase());\r\n }\r\n groupMap={};\r\n hasGroup(groupId) {\r\n if (this.groupMap[groupId] == undefined) {\r\n this.groupMap[groupId] = this._hasGroup(groupId);\r\n }\r\n return this.groupMap[groupId];\r\n }\r\n _hasGroup(groupId) {\r\n return !!this.groups.find(o => o.toLowerCase() == groupId.toLowerCase());\r\n }\r\n\r\n isAuthenticated: boolean = false;\r\n}","import { autoinject } from \"aurelia-framework\";\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { BroadcastMessage } from \"../models/signalr-broadcast-message\";\r\n\r\nexport enum PushMessage {\r\n CarrierUpdated = 0,\r\n InsuranceUpdated = 1,\r\n CarrierStatusChanged = 2,\r\n CarrierDocumentsUpdated = 3\r\n}\r\n\r\n@autoinject()\r\nexport class SignalrService {\r\n\r\n signalR: any = window[\"signalR\"];\r\n connection: any;\r\n constructor(\r\n private ea: EventAggregator,\r\n private security: SecurityService) {\r\n }\r\n\r\n //broadcast message to all connected clients.\r\n broadcast(messageType: PushMessage, data: any) {\r\n this.connection.invoke('Broadcast', messageType, data);\r\n }\r\n\r\n // subscribe to any notification messages that are intended for this client.\r\n listen(messageType: PushMessage, callback: (msg: BroadcastMessage) => void) {\r\n if (this.signalR) {\r\n return this.ea.subscribe(`signal-r.${messageType}`, callback);\r\n }\r\n }\r\n\r\n unlisten(sub: Subscription) {\r\n sub.dispose();\r\n }\r\n\r\n hubConnection: any;\r\n\r\n init() {\r\n if (this.signalR) {\r\n this.createHubConnection();\r\n return this.connect();\r\n }\r\n }\r\n\r\n connect() {\r\n return this.hubConnection.start().then(() => {\r\n console.log('SignalR Connection Successful');\r\n }, (e) => {\r\n console.log('SignalR Connection Failed. Retry pending...');\r\n setTimeout(() => this.reconnect(), 10000);\r\n });\r\n }\r\n\r\n createHubConnection() {\r\n //let transportType = this.signalR.TransportType.LongPolling;\r\n //this.hubConnection = new this.signalR.HubConnection(\"/cmpHub\", { transport: transportType });\r\n\r\n this.hubConnection = new this.signalR.HubConnectionBuilder()\r\n .withUrl(\"/cmpHub\", {\r\n // \"Foo: Bar\" will not be sent with WebSockets or Server-Sent Events requests\r\n //headers: { \"Foo\": \"Bar\" },\r\n transport: this.signalR.HttpTransportType.LongPolling\r\n })\r\n .build();\r\n\r\n\r\n this.hubConnection.on('broadcast', (msg) => {\r\n\r\n msg.isThisUser = this.security.user.userName == msg.userName;\r\n //if (!msg.isThisUser) debugger;\r\n this.ea.publish(`signal-r.${msg.message}`, msg);\r\n });\r\n\r\n this.hubConnection.onclose(e => {\r\n if (e) {\r\n console.log('Connection closed with error: ' + e + \". Will try to reconnect...\");\r\n }\r\n else {\r\n console.log('Connection disconnected. Reconnect pending...');\r\n }\r\n setTimeout(() => this.reconnect(), 10000);\r\n });\r\n }\r\n\r\n reconnect() {\r\n delete this.hubConnection.closedCallbacks;\r\n delete this.hubConnection;\r\n this.init();\r\n }\r\n\r\n}","import { PushMessage } from '../services/signalr-service';\r\n\r\nexport class BroadcastMessage {\r\n\r\n messageType: PushMessage;\r\n data: any;\r\n userName: string;\r\n isThisUser: boolean;\r\n\r\n}","export class Task {\r\n //public AssignedTo\r\n}\r\n","export var routes = [\r\n { route: '', redirect: 'landing' },\r\n { name: 'landing', title: 'Home', route: 'landing', nav: true, moduleId: 'public/landing' },\r\n { name: 'register_legacy', route: 'register', redirect: 'landing' },\r\n\r\n { name: 'registration', route: 'registration', moduleId: 'public/register/index' },\r\n { name: 'login', route: 'login', moduleId: 'public/login/index' },\r\n { name: 'password-changed', route: 'password-changed', moduleId: 'public/login/password-changed' },\r\n { name: 'signup', route: 'signup', moduleId: 'public/login/no-user-account' },\r\n { name: 'no-access', route: 'no-access', moduleId: 'public/login/no-user-account' },\r\n { name: 'not-found', route: 'not-found', moduleId: 'public/system/not-found/index' },\r\n];","import { autoinject, Aurelia } from 'aurelia-framework';\r\nimport { activationStrategy } from 'aurelia-router';\r\nimport { PageMessageService } from \"../services/page-message-service\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { Router } from 'aurelia-router';\r\nimport { routes } from './routes';\r\nimport \"resources/validation-rules\";\r\n\r\n@autoinject\r\nexport class App {\r\n environment: string;\r\n\r\n constructor(\r\n private aurelia: Aurelia,\r\n public busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n public router: Router) {\r\n (this.aurelia).subscribe('router:navigation:complete', msg => this.onNavigationComplete(msg));\r\n\r\n this.environment = (aurelia.host.attributes).environment.value.toLowerCase();\r\n }\r\n\r\n configureRouter(config, router) {\r\n config.title = 'Carrier Management Portal';\r\n config.options.pushState = true;\r\n let root = '/'\r\n if (this.environment == 'development') {\r\n root = '/auth0/';\r\n } \r\n config.options.root = root;\r\n config.map(routes);\r\n }\r\n\r\n\r\n onNavigationComplete(msg) {\r\n if (!msg.result.completed) {\r\n return;\r\n }\r\n\r\n //when route changes, scroll to top of page\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n}\r\n","import { DialogController } from \"aurelia-dialog\";\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\n@autoinject()\r\nexport class SafetySheetDialog {\r\n\r\n constructor(protected controller: DialogController) {\r\n }\r\n\r\n}","import { DialogService } from \"aurelia-dialog\";\r\nimport { SafetySheetDialog } from \"./dialogs/safety-sheet-dialog\";\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\n@autoinject()\r\nexport class Landing {\r\n\r\n constructor(private dialogService: DialogService) {\r\n }\r\n\r\n showSafetySheet() {\r\n this.dialogService.open(\r\n {\r\n viewModel: SafetySheetDialog\r\n });\r\n }\r\n}","import {declarePropertyDependencies} from 'aurelia-framework';\r\n\r\nexport class Test {\r\n\r\n constructor() {\r\n setInterval(() => this.ticks++, 100);\r\n }\r\n public name: string = \"Hello\";\r\n\r\n private ticks: number = 0;\r\n\r\n public getName(firstName) {\r\n return firstName + this.name2;\r\n }\r\n\r\n public get name2() {\r\n return this.ticks;\r\n }\r\n}\r\n\r\ndeclarePropertyDependencies(Test, 'name2', ['ticks']);","import {FrameworkConfiguration} from 'aurelia-framework';\r\n\r\nexport function configure(config: FrameworkConfiguration) {\r\n config.globalResources([\r\n \"./elements/dropdown-checklist\",\r\n \"./elements/page-message\",\r\n \"./elements/page-alert\",\r\n \"./elements/recaptcha\",\r\n \"./elements/toggle-badge\",\r\n \"./elements/type-ahead\",\r\n \"./elements/read-more\",\r\n \"./elements/badge\",\r\n \"./elements/org-chart/org-chart\",\r\n \"./elements/org-chart/org-node\",\r\n \"./elements/app-message-bar\",\r\n \"./value-converters/phone\",\r\n \"./value-converters/currency\",\r\n \"./value-converters/number-display\",\r\n \"./value-converters/short-date\",\r\n \"./value-converters/short-date-time\",\r\n \"./value-converters/date-time\",\r\n \"./value-converters/upper-case\",\r\n \"./value-converters/lower-case\",\r\n \"./value-converters/number-only\",\r\n \"./value-converters/comma-space\",\r\n \"./value-converters/boolean-2-string\",\r\n \"./attributes/auto-focus\",\r\n \"./attributes/tooltip\",\r\n \"./attributes/slide-if\",\r\n \"./attributes/security-role\",\r\n \"ag-grid-aurelia\"\r\n ]);\r\n}","import * as moment from 'moment';\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\n\r\nValidationRules.customRule(\r\n 'numeric',\r\n (value, obj) => value === null || value === undefined || !isNaN(parseFloat(value)) && isFinite(value),\r\n `\\${$displayName} must be numeric.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'date',\r\n (value, obj) => value === null || value === undefined || moment(value).isValid(),\r\n `\\${$displayName} must be a valid date.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'phone',\r\n (value, obj) => {\r\n let digits = (value || \"\").toString().trim().replace(/\\D/g, '');\r\n\r\n if (digits ) {\r\n return digits.length == 10; //only support 10-digit phones \r\n }\r\n return true;\r\n },\r\n `\\${$displayName} must be a valid phone #, including area code.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'isChecked',\r\n (value, obj) => value,\r\n `\\${$displayName} must be checked.`\r\n);\r\n\r\nValidationRules.customRule(\r\n 'arrayIsNotEmpty',\r\n (value, obj) => value.length > 0,\r\n `\\${$displayName} must be specified.`\r\n);\r\n\r\n\r\nValidationRules.customRule(\r\n 'matchesProperty',\r\n (value, obj, otherPropertyName) =>\r\n (value === null || value === undefined || value === '')\r\n || obj[otherPropertyName] === null\r\n || obj[otherPropertyName] === undefined\r\n || obj[otherPropertyName] === ''\r\n || value === obj[otherPropertyName],\r\n '${$displayName} must match ${$getDisplayName($config.otherPropertyName)}',\r\n otherPropertyName => ({ otherPropertyName })\r\n);\r\n\r\n","import { computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class AccessDenied {\r\n\r\n constructor() {\r\n }\r\n\r\n activate() {\r\n }\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class TaskAssignmentGroups {\r\n static readonly userSupport: string = \"0b351afc-d868-4a83-a002-26e1b3474459\";\r\n static readonly carrierServices: string = \"caef3b00-34f2-4b62-85d1-7031e6aead4b\";\r\n static readonly transloaderServices: string = \"edc3ba9b-fa95-491f-a379-780050cace46\";\r\n static readonly contractsAndInsurance: string = \"a86a7675-52ab-401e-b8a2-aaca50c7ffdc\";\r\n static readonly compliance: string = \"f3f32c76-e6cc-45f7-ac36-bfa499e93926\";\r\n}\r\n","import { singleton, autoinject } from \"aurelia-framework\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { TaskAssignmentGroups } from \"../data/typegen/enums/task-assignment-groups\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class AlphabetAssignment {\r\n users: any;\r\n transloaderUsers: any;\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private api: WebApiService) {\r\n }\r\n\r\n\r\n async activate(params) {\r\n await this.refresh();\r\n }\r\n\r\n public segments: any[] = [];\r\n\r\n async loadSegments() {\r\n\r\n this.busyService.on();\r\n return this.api.get(\"Auth\", \"GetAlphabetAssignments\")\r\n .then((result) => {\r\n const u = JSON.parse(result.response);\r\n this.segments = u;\r\n })\r\n .finally(() => this.busyService.off());\r\n\r\n }\r\n\r\n async loadUsers() {\r\n this.busyService.on();\r\n // TODO: Use taskController.GetGroupMembers instead\r\n var p1 = this.api.get(\"Auth\", \"GetAssignmentGroupUsers\", { assignmentGroupId: TaskAssignmentGroups.carrierServices })\r\n .then((result) => {\r\n const u = JSON.parse(result.response);\r\n this.users = u.map(o => {\r\n return { displayValue: o.firstName + ' ' + o.lastName, value: o.id };\r\n })\r\n })\r\n .finally(() => this.busyService.off());\r\n\r\n this.busyService.on();\r\n // TODO: Use taskController.GetGroupMembers instead\r\n var p2 = this.api.get(\"Auth\", \"GetAssignmentGroupUsers\", { assignmentGroupId: TaskAssignmentGroups.transloaderServices })\r\n .then((result) => {\r\n const u = JSON.parse(result.response);\r\n this.transloaderUsers = u.map(o => {\r\n return { displayValue: o.firstName + ' ' + o.lastName, value: o.id };\r\n })\r\n })\r\n .finally(() => this.busyService.off());\r\n\r\n await Promise.all([p1, p2]);\r\n\r\n }\r\n\r\n save() {\r\n\r\n // check all for blanks\r\n if (this.segments.find(o => !o.assignmentUserId)) {\r\n alert(\"Ensure that all selections have a valid user selected\");\r\n return;\r\n }\r\n\r\n this.busyService.on();\r\n return this.api.post(\"Auth\", \"UpdateAlphabetAssignments\", this.segments)\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n async refresh() {\r\n await this.loadUsers();\r\n await this.loadSegments();\r\n }\r\n\r\n\r\n\r\n}\r\n","export var routes = [\r\n { name: \"home\", route: '', redirect: 'landing' },\r\n {\r\n name: \"request-details\", title: 'Request Details', route: 'requests/:id', moduleId: 'secure/requests/request-details',\r\n //condition: 'this.securityService.hasRole(\"cmp.role.edit\")'\r\n role: 'Edit'\r\n },\r\n {\r\n name: \"requests\", title: 'Requests', route: 'requests', nav: true, moduleId: 'secure/requests/requests',\r\n //condition: 'this.securityService.hasRole(\"cmp.role.edit\")'\r\n role: 'Edit'\r\n },\r\n {\r\n name: \"tasks\", title: 'Tasks', route: 'tasks', nav: true, moduleId: 'secure/tasks-home',\r\n //condition: 'this.securityService.hasRole(\"cmp.role.edit\")'\r\n role: 'Edit'\r\n },\r\n // {\r\n // name: \"test\", title: 'TEST', route: 'test', nav: true, moduleId: 'secure/form-components/compose-email/compose-email',\r\n // condition: 'this.securityService.user.userName == \"joseph.gabriel@nucor.com\"'\r\n // },\r\n {\r\n name: \"task-details\", title: 'Task Details', route: 'tasks/:id', nav: false, moduleId: 'secure/task-details',\r\n //condition: 'this.securityService.hasRole(\"cmp.role.edit\")'\r\n role: 'Edit'\r\n },\r\n {\r\n name: \"ticket\", title: 'Ticket Details', route: 'ticket/:id', nav: false, moduleId: 'secure/external/ticket-page/ticket-page',\r\n role: 'View'\r\n },\r\n {\r\n name: \"my-tickets\", title: 'My Tickets', route: 'my-tickets', nav: true, moduleId: 'secure/external/my-tickets-page/index',\r\n condition: '!this.securityService.hasRole(\"Edit\")',\r\n role: 'View'\r\n },\r\n { name: \"landing\", route: 'landing', nav: false, moduleId: 'secure/landing' },\r\n { name: \"dashboard\", title: 'Dashboard', route: 'dashboard', nav: true, moduleId: 'secure/dashboard' },\r\n {\r\n name: \"executive-dashboard\", title: 'Executive Dashboard', route: 'executive-dashboard', nav: true,\r\n moduleId: 'secure/executive-dashboard', role: 'executive'\r\n },\r\n {\r\n name: \"executive-dashboard-details\", title: 'Executive Dashboard Details', route: 'executive-dashboard-details', nav: false,\r\n moduleId: 'secure/executive-dashboard-details', role: 'executive'\r\n },\r\n {\r\n name: \"divisions\", title: 'Divisions', route: 'divisions', nav: true, moduleId: 'secure/divisions'\r\n },\r\n {\r\n name: \"divisions-edit\", title: 'Divisions', route: 'divisions/:id', nav: false, moduleId: 'secure/divisions'\r\n },\r\n {\r\n name: \"carriers\", title: 'Search Carriers', route: 'carriers', nav: true, moduleId: 'secure/carriers',\r\n role: 'cmp.search.advanced'\r\n },\r\n {\r\n name: \"mill-search-carriers\", title: 'Match Maker Search', route: 'mill-search-carriers', nav: true, moduleId: 'secure/mill-search-carriers',\r\n condition: 'true'\r\n //condition: '!this.securityService.hasRole(\"cmp.search.advanced\")'\r\n },\r\n { name: 'register', title: 'Registration', route: 'register', nav: false, moduleId: 'public/register/index' },\r\n { name: \"carrier-status-history\", route: 'carrier/:carrierId/status-history', moduleId: 'secure/carrier-status-history' },\r\n { name: \"carrier-documents\", route: 'carrier-documents/:carrierId', moduleId: 'secure/carrier-documents', role: 'view' },\r\n { name: 'access-denied', route: 'access-denied', title: \"Access Denied\", nav: false, moduleId: 'secure/access-denied' },\r\n { name: 'not-found', route: 'not-found', moduleId: 'public/system/not-found/index' },\r\n {\r\n name: 'register-user', route: 'register-user', nav: false, moduleId: 'secure/register-user', role: 'admin'\r\n },\r\n\r\n { name: 'user-admin', route: 'user-admin', nav: false, moduleId: 'secure/user-admin', role: 'user_admin' },\r\n { name: 'alphabet-assignment', route: 'alphabet-assignment', nav: false, moduleId: 'secure/alphabet-assignment', role: 'user_admin' },\r\n { name: 'new-user-queue', route: 'new-user-queue', nav: false, moduleId: 'secure/new-user-queue', role: 'admin' },\r\n { name: \"work-carrier\", route: 'work-carrier/:carrierId', moduleId: 'secure/work-carrier' },\r\n { name: 'carrier-summary', route: 'carrier-summary/:carrierId', nav: false, moduleId: 'secure/carrier-summary' },\r\n { name: 'kiosk', route: 'kiosk', nav: false, moduleId: 'secure/kiosk' },\r\n { name: 'status-scoreboard', route: 'status-scoreboard', nav: false, moduleId: 'secure/status-scoreboard' },\r\n { name: 'emails', route: 'emails', nav: false, moduleId: 'secure/emails' },\r\n { name: 'email-viewer', route: 'emails/:emailId', nav: false, moduleId: 'secure/email-viewer' },\r\n { name: 'change-password', route: 'change-password', nav: false, moduleId: 'public/login/change-password' },\r\n { name: 'new-carrier-request', role: \"request_roster_change\", route: 'requests/new-carrier', nav: false, moduleId: 'secure/requests/new-carrier-request/new-carrier-request' },\r\n\r\n];","import { autoinject, customAttribute, TaskQueue } from 'aurelia-framework'\r\nimport { SecurityService } from \"../../services/security-service\";\r\n\r\n@customAttribute('security-role')\r\n@autoinject()\r\nexport class SecurityRole {\r\n constructor(private element: Element, private taskQueue: TaskQueue,\r\n private securityService: SecurityService) {\r\n }\r\n\r\n attached() {\r\n this.taskQueue.queueTask(() => {\r\n let role = this[\"value\"];\r\n if (!this.securityService.hasRole(role)) {\r\n if (!(this.element).style) {\r\n debugger;\r\n }\r\n (this.element).style.display = \"none\";\r\n }\r\n });\r\n }\r\n\r\n}","import { autoinject, Aurelia } from 'aurelia-framework';\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport { activationStrategy, Redirect } from 'aurelia-router';\r\nimport { RouterConfiguration } from \"aurelia-router\";\r\nimport { PageMessageService } from \"../services/page-message-service\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { Router } from 'aurelia-router';\r\nimport { routes } from './routes';\r\nimport { SignalrService } from '../services/signalr-service';\r\nimport { SecurityService } from '../services/security-service';\r\nimport \"../resources/validation-rules\";\r\nimport * as AppRouterOverride from '../au-overrides/app-router';\r\nimport { SecurityRole } from '../resources/attributes/security-role';\r\n\r\n@autoinject\r\nexport class App {\r\n environment: any;\r\n\r\n constructor(\r\n private aurelia: Aurelia,\r\n private route: Router,\r\n public busyService: BusyService,\r\n public securityService: SecurityService,\r\n private pageMessageService: PageMessageService,\r\n private ea: EventAggregator,\r\n private signalr: SignalrService) {\r\n (this.aurelia).subscribe('router:navigation:complete', msg => this.onNavigationComplete(msg));\r\n\r\n this.environment = (aurelia.host.attributes).environment.value.toLowerCase();\r\n\r\n signalr.init();\r\n }\r\n\r\n configureRouter(config, router) {\r\n config.title = 'Carrier Management Portal';\r\n config.options.pushState = true;\r\n\r\n let root = '/'\r\n if (this.environment == 'development') {\r\n root = '/auth0/';\r\n }\r\n config.options.root = root + 'secure';\r\n config.addPipelineStep('authorize', AuthorizeStep);\r\n config.map(routes);\r\n this.supportMiddleClickInLinks(config);\r\n\r\n /**\r\n * Override the original AppRouter.generate function by removing leading \"/\"\r\n * See https://github.com/aurelia/templating-router/issues/57\r\n */\r\n AppRouterOverride.apply();\r\n\r\n }\r\n\r\n\r\n\r\n // temporary fix for https://github.com/aurelia/router/issues/457\r\n supportMiddleClickInLinks(config: RouterConfiguration) {\r\n let $ = window[\"$\"];\r\n const addBaseUrlIfMiddleClick = (event: JQueryEventObject) => {\r\n if (event.ctrlKey || event.which == 2) {\r\n const link = $(event.currentTarget);\r\n const originalHref = link.attr('href');\r\n link.attr('href', config.options.root + '/' + originalHref);\r\n setTimeout(() => link.attr('href', originalHref));\r\n }\r\n };\r\n $(document).arrive(\"a[route-href]\", function (newLink) {\r\n $(newLink).mouseup(addBaseUrlIfMiddleClick);\r\n });\r\n }\r\n\r\n\r\n\r\n onNavigationComplete(msg) {\r\n if (!msg.result.completed) {\r\n return;\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n}\r\n\r\nclass AuthorizeStep {\r\n static inject() { return [SecurityService]; }\r\n\r\n securityService: SecurityService;\r\n constructor(securityService) {\r\n this.securityService = securityService;\r\n }\r\n\r\n run(routingContext, next) {\r\n return this.securityService.init()\r\n .then(() => {\r\n //if no role defined on the route, then allow it, otherwise check to ensure current user has the specified role.\r\n if (!routingContext.config.role || this.securityService.hasRole(routingContext.config.role)) {\r\n\r\n // if targeting the \"landing\" route, then redirect according to user role\r\n if (routingContext.config.name == \"landing\") {\r\n // if user has \"edit\" role, then go to tasks\r\n if (this.securityService.hasRole(\"Edit\")) {\r\n return next.cancel(new Redirect('tasks'));\r\n } else {\r\n // otherwise go to dashboard\r\n return next.cancel(new Redirect('dashboard'));\r\n }\r\n } else {\r\n return next();\r\n }\r\n } else {\r\n return next.cancel(new Redirect('access-denied'));\r\n }\r\n });\r\n }\r\n}","export class ContextMenu{\r\n\r\n items: Array = [];\r\n addItem(item: ContextMenuItem) {\r\n this.items.push(item);\r\n }\r\n\r\n}\r\n\r\nexport class ContextMenuItem {\r\n\r\n caption: string\r\n onClick?: () => void;\r\n securityRole: string;\r\n\r\n}\r\n\r\n\r\nexport class ContextMenuDivider extends ContextMenuItem {\r\n constructor() {\r\n super();\r\n this.caption = \"-\";\r\n }\r\n \r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class DisplayValuePair {\r\n value: TValue;\r\n displayValue: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum TaskClass {\r\n Task = 0,\r\n Request = 1,\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum WorkflowState {\r\n New = 10,\r\n InProgress = 20,\r\n Canceled = 90,\r\n Completed = 100,\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class RequestStageDto {\r\n complete: boolean = undefined;\r\n active: boolean = undefined;\r\n name: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { WorkflowState } from \"./workflow-state\";\r\nimport { RequestStageDto } from \"./request-stage-dto\";\r\n\r\nexport class WorkflowContextDto {\r\n workflowContextId: string = undefined;\r\n state: WorkflowState;\r\n data: any;\r\n nextAction: string = undefined;\r\n waitUntil: Date = undefined;\r\n stage: string = undefined;\r\n step: string = undefined;\r\n active: boolean = undefined;\r\n stages: RequestStageDto[];\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { DisplayValuePair } from \"./display-value-pair\";\r\nimport { TaskClass } from \"../enums/task-class\";\r\nimport { WorkflowContextDto } from \"./workflow-context-dto\";\r\n\r\nexport class CmpTaskBaseDto {\r\n taskVariablesId: string = undefined;\r\n variables: any;\r\n number: string = undefined;\r\n shortDescription: string = undefined;\r\n description: string = undefined;\r\n parent: DisplayValuePair;\r\n assignedTo: DisplayValuePair;\r\n assignmentGroup: DisplayValuePair;\r\n state: DisplayValuePair;\r\n type: DisplayValuePair;\r\n dueDate: Date = undefined;\r\n openedOn: Date = undefined;\r\n openedBy: DisplayValuePair;\r\n closedOn: Date = undefined;\r\n closedBy: DisplayValuePair;\r\n active: boolean = undefined;\r\n additionalComments: string = undefined;\r\n additionalWorkNotes: string = undefined;\r\n taskClass: TaskClass;\r\n taskId: string = undefined;\r\n taskKey: any;\r\n workflowContext: WorkflowContextDto;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { CmpTaskBaseDto } from \"./cmp-task-base-dto\";\r\nimport { DisplayValuePair } from \"./display-value-pair\";\r\n\r\nexport class RequestDto extends CmpTaskBaseDto {\r\n requestId: string = undefined;\r\n requestedFor: DisplayValuePair;\r\n taskId: string = undefined;\r\n assignmentGroup = undefined;\r\n assignedTo = undefined;\r\n}\r\n","import { autoinject } from \"aurelia-framework\";\r\nimport { ContextMenu, ContextMenuDivider } from \"./widgets/action-bar/context-menu\";\r\nimport { Carrier } from \"../models/carrier\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { Router } from \"aurelia-router\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport * as moment from 'moment';\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { CarrierStatusDialog } from \"./dialogs/carrier-status-dialog\";\r\n\r\n@autoinject()\r\nexport class CarrierStatus {\r\n carrierId: any;\r\n\r\n constructor(private api: WebApiService, private router: Router,\r\n private busyService: BusyService,\r\n private dialogService: DialogService,\r\n private securityService: SecurityService) {\r\n this._buildContextMenu();\r\n }\r\n\r\n activate(parameters) {\r\n this.parameters = parameters;\r\n this._loadCarrier(parameters.carrierId);\r\n this._loadCarrierStatusHistory(parameters.carrierId);\r\n }\r\n\r\n parameters: any;\r\n\r\n gridData = [];\r\n\r\n columnDefs: Array = [\r\n { field: \"CarrierId\", hide: true },\r\n { field: \"Id\", hide: true },\r\n {\r\n headerName: \"Status\", field: \"Description\",\r\n cellRenderer: (params) => this.carrierStatusItemDetailsLinkRenderer(params)\r\n },\r\n {\r\n headerName: \"Date/Time\", field: \"BeginOn\",\r\n cellRenderer: (params) => {\r\n return moment(params.value).format(\"MM/DD/YYYY h:mm a\");\r\n },\r\n sort: 'desc'\r\n },\r\n { headerName: \"User\", field: \"InsertedBy\" },\r\n { headerName: \"Comments\", field: \"Comment\" }\r\n ];\r\n\r\n\r\n\r\n carrierStatusItemDetailsLinkRenderer(params: any) {\r\n if (params.value != null) {\r\n if (this.securityService.hasRole(\"edit\")) {\r\n var link = $(`${params.value}`)[0];\r\n link.addEventListener(\"click\", () => {\r\n this.editStatus(params.api.getValue(\"Id\", params.node));\r\n });\r\n return link;\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n return params.value;\r\n }\r\n\r\n\r\n gridOptions = {\r\n enableSorting: false,\r\n columnDefs: this.columnDefs,\r\n pagination: false\r\n };\r\n\r\n newEntry() {\r\n this.editStatus(0);\r\n }\r\n\r\n editStatus(id) {\r\n this.dialogService.open(\r\n {\r\n viewModel: CarrierStatusDialog,\r\n model: { id: id, carrier: this.carrier }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload carrier comments\r\n this._loadCarrierStatusHistory(this.carrier.id);\r\n this._loadCarrier(this.carrier.id);\r\n }\r\n });\r\n }\r\n\r\n carrier: Carrier;\r\n private _loadCarrier(id) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: id })\r\n .then((result) => {\r\n this.carrier = Object.assign(new Carrier(), JSON.parse(result.response));\r\n\r\n //set the page title\r\n this.router.currentInstruction.config.navModel.setTitle(this.carrier.legalName + \" - Status History\");\r\n this.router.updateTitle();\r\n }).finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n _loadCarrierStatusHistory(id: any): any {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierStatusHistory\", { carrierId: id })\r\n .then((result) => {\r\n this.gridData = JSON.parse(result.response);\r\n }).finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n private _buildContextMenu() {\r\n this.actionBarMenu = new ContextMenu();\r\n\r\n this.actionBarMenu.items.push({\r\n caption: \"Refresh\", securityRole: 'view',\r\n onClick: () => {\r\n this._loadCarrierStatusHistory(this.carrier.id);\r\n }\r\n });\r\n\r\n this.actionBarMenu.items.push({\r\n caption: \"Add new status entry\", securityRole: 'admin',\r\n onClick: () => {\r\n this.newEntry();\r\n }\r\n });\r\n\r\n //this.actionBarMenu.items.push(new ContextMenuDivider());\r\n }\r\n actionBarMenu: ContextMenu;\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\n\r\n@autoinject\r\nexport class PromptDialog {\r\n constructor(protected controller: DialogController) {\r\n }\r\n\r\n question: string;\r\n answer: string;\r\n\r\n activate(question: string | object) {\r\n if (typeof question == \"object\") {\r\n const obj: any = question;\r\n this.question = obj.question;\r\n this.answer = obj.defaultValue;\r\n } else {\r\n this.question = question;\r\n }\r\n }\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport 'jquery';\r\nimport 'notify';\r\n\r\n@autoinject\r\nexport class SimpleDialog {\r\n constructor(protected controller: DialogController) {\r\n }\r\n\r\n params: object;\r\n\r\n activate(params) {\r\n //convert \\n to
\r\n\r\n //params.message = params.message.replace(\"\\n\", \"
\");\r\n this.params = params;\r\n }\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController, DialogService } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { SecurityService } from '../../services/security-service';\r\nimport 'jquery';\r\nimport 'notify';\r\nimport * as moment from 'moment';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { RequestDto } from '../../data/typegen/dtos/request-dto';\r\nimport { CarrierStatus } from '../carrier-status-history';\r\nimport { PromptDialog } from '../../resources/dialogs/prompt-dialog';\r\nimport { SimpleDialog } from './simple-dialog';\r\n\r\n@autoinject\r\nexport class CarrierStatusDialog {\r\n public requestNumber: string;\r\n requestId: string;\r\n constructor(\r\n protected controller: DialogController,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private api: WebApiService,\r\n private dialog: DialogService\r\n ) { }\r\n\r\n carrierStatuses: any;\r\n id: number;\r\n carrierId: number;\r\n carrierName: string;\r\n originalCarrierStatus: number;\r\n carrierStatusEntry: any;\r\n\r\n activate(params) {\r\n this.id = params.id;\r\n this.carrierId = params.carrier.id;\r\n this.carrierStatuses = params.carrierStatuses;\r\n this.carrierName = params.carrier.legalName;\r\n this.originalCarrierStatus = params.carrier.status;\r\n\r\n\r\n this._loadCarrierStatusEntry(this.id);\r\n this._loadCarrierStatuses();\r\n }\r\n\r\n _loadCarrierStatusEntry(id) {\r\n if (id) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierStatusEntry\", { statusHistoryId: id })\r\n .then((result) => {\r\n this.carrierStatusEntry = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n } else {\r\n this.carrierStatusEntry = {\r\n id: 0,\r\n carrierId: this.carrierId,\r\n statusId: this.originalCarrierStatus,\r\n beginOn: moment(new Date()).format(\"MM/DD/YYYY h:mm a\")\r\n };\r\n }\r\n }\r\n\r\n async _loadCarrierStatuses() {\r\n this.busyService.on();\r\n\r\n const result = await this.api.get(\"Carriers\", \"GetCarrierRequest\", { carrierId: this.carrierId, includeClosed: false });\r\n const request: RequestDto = JSON.parse(result.response || null);\r\n\r\n if (request) {\r\n this.requestNumber = request.number;\r\n this.requestId = request.requestId;\r\n }\r\n\r\n var contractsAndInsuranceLeadsGroupId = \"a86a7675-52ab-401e-b8a2-aaca50c7ffdc\";\r\n const isContractsAndInsuranceLeadsMember = this.securityService.hasGroup(contractsAndInsuranceLeadsGroupId);\r\n\r\n return this.api.get(\"Carriers\", \"GetCarrierStatuses\")\r\n .then((result) => {\r\n\r\n const statuses = JSON.parse(result.response);\r\n const filteredStatuses = statuses.filter(status => {\r\n // 12/29/2022 Restrict carrier status changes, even for admin. \r\n // if (this.securityService.hasRole(\"admin\")) {\r\n // return true;\r\n // }\r\n\r\n // 01-19-2023 Alisa needs to be able to change carrier Status - but do not allow for carrers that have a request associated\r\n if (isContractsAndInsuranceLeadsMember && !this.requestNumber) {\r\n return true;\r\n }\r\n\r\n if (this.securityService.hasRole(\"carrier manager\")) {\r\n if (status.id == 10 /* Inactive */ || status.id == 11 /* Master Approved - Dormant */ || status.id == 13 /* Suspended */ || status.id == 14 /* Abandoned */) {\r\n return true;\r\n }\r\n }\r\n\r\n // User Story 12373: C&I Leads should be able to set carrier status to master approved\r\n if (status.id == 8) {\r\n if (isContractsAndInsuranceLeadsMember) {\r\n if (this.requestNumber) {\r\n if (!request.active) {\r\n // can't manually set to master approved for a carrier with an active request\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n\r\n filteredStatuses.unshift({});\r\n this.carrierStatuses = filteredStatuses;\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n delete() {\r\n this.api.post(\"Carriers\", \"DeleteCarrierStatus\", this.carrierStatusEntry)\r\n .then(() => {\r\n //close dialog\r\n this.controller.ok();\r\n }, () => {\r\n $[\"notify\"](\"Error saving status\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n async save() {\r\n\r\n if (!this.carrierStatusEntry.statusId) {\r\n alert(\"Status is required\");\r\n return;\r\n }\r\n\r\n //if no reason specified, then show error\r\n if (!(this.carrierStatusEntry.comment && this.carrierStatusEntry.comment.trim())) {\r\n alert(\"Reason is required\");\r\n return;\r\n }\r\n\r\n //if inserting a new status record for same status, then show error\r\n if (!this.id && (this.carrierStatusEntry.statusId == this.originalCarrierStatus)) {\r\n alert(\"Carrier is already in this status.\");\r\n return;\r\n }\r\n\r\n // show alert in diaog when suspended or dormant is selected.\r\n if (!this.id && (this.carrierStatusEntry.statusId == 13 /* suspended */\r\n || this.carrierStatusEntry.statusId == 11 /* Master Approved - Dormant */\r\n )) {\r\n var confirmStatusEmail = await new Promise((resolve, reject) => {\r\n this.dialog.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Confirm status change for \" + this.carrierName,\r\n message: \"Choosing this status will trigger an email alert that is sent to all Carrier notification subscribers. Do you want to continue?\",\r\n buttons: [\"yes\", \"no\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n resolve(result.output == \"yes\");\r\n });\r\n });\r\n if (!confirmStatusEmail) {\r\n return;\r\n }\r\n }\r\n\r\n this.api.post(\"Carriers\", \"ChangeCarrierStatus\", this.carrierStatusEntry)\r\n .then(() => {\r\n //close dialog\r\n this.controller.ok({\r\n status: this.carrierStatusEntry.statusId\r\n });\r\n }, () => {\r\n $[\"notify\"](\"Error saving status\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n\r\n}","import { autoinject, observable } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport * as moment from 'moment';\r\nimport { CarrierDocument } from '../../models/carrier-document';\r\nimport { BusyService } from '../../services/busy-service';\r\n\r\n@autoinject\r\nexport class UploadDocumentDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService) {\r\n this.api.containerId = \"upload-document-dialog\";\r\n }\r\n\r\n carrierGuid: string;\r\n carrierId: number;\r\n carrierName: string;\r\n filesElement: any;\r\n selectedFiles = [];\r\n document: CarrierDocument;\r\n form: any;\r\n @observable\r\n documentTypes = [];\r\n documentTypesChanged() {\r\n this.buildDocumentDefaultTitle();\r\n }\r\n\r\n documentVersionId: string;\r\n @observable\r\n documentType: string = \"\";\r\n documentArchive: boolean;\r\n @observable\r\n documentTypeId: number = 0;\r\n documentTypeIdChanged() {\r\n this.buildDocumentDefaultTitle();\r\n }\r\n\r\n buildDocumentDefaultTitle() {\r\n var docType = this.documentTypes.find(item => item.id == this.documentTypeId);\r\n var title = \"\";\r\n if (docType) {\r\n title = docType.description.trim();\r\n } else {\r\n title = \"\";\r\n }\r\n this.documentDefaultTitle = title || this.documentTitle || \"\";\r\n\r\n //if adding new version, then add counter to end of document\r\n if (this.mode == \"new_version\") {\r\n this.documentDefaultTitle = this.documentDefaultTitle + \" #\" + (this.versionCount + 1);\r\n }\r\n }\r\n\r\n mode: string;\r\n documentId: string;\r\n documentTitle: string;\r\n documentTypeIds: string[];\r\n documentDefaultTitle: string;\r\n carrierDocuments: Array = [];\r\n versionCount: number;\r\n\r\n async activate(params) {\r\n\r\n this.document = params.document;\r\n this.carrierGuid = params.carrierGuid;\r\n this.carrierId = params.carrierId;\r\n this.carrierName = params.carrierName;\r\n this.documentTypeIds = params.documentTypeIds || [];\r\n this.documentArchive = !!params.documentArchive;\r\n\r\n this.buildDocumentDefaultTitle();\r\n\r\n if (this.document) {\r\n this.mode = \"new_version\";\r\n this.versionCount = params.versionCount;\r\n this.documentId = this.document.documentId;\r\n this.documentTypeId = this.document.documentTypeId;\r\n this.documentTitle = this.document.documentType.trim() + \" #\" + (params.versionCount + 1);\r\n } else {\r\n\r\n this.mode = \"initial\";\r\n\r\n //this is so that we can limit the available doc types based on the documents that have been added so far.\r\n //only needed when adding a new document\r\n await this.loadCarrierDocuments(this.carrierGuid);\r\n await this.loadDocumentTypes();\r\n\r\n if (this.documentTypes.length == 1) {\r\n this.documentTypeId = this.documentTypes[0].id;\r\n }\r\n }\r\n }\r\n \r\n\r\n async loadDocumentTypes() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetDocumentTypes\")\r\n .then((result) => {\r\n let allDocumentTypes = JSON.parse(result.response);\r\n this.documentTypes = allDocumentTypes.filter(docType => {\r\n // only allow specified types, if specified\r\n if (this.documentTypeIds.length > 0) {\r\n if (this.documentTypeIds.indexOf(docType.documentTypeId) == -1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //only allow upload of type \"Other\" or types that haven't already been uploaded\r\n if (docType.code == \"O\") {\r\n return true;\r\n } else {\r\n return !this.carrierDocuments.find(cdt => cdt.documentTypeId == docType.id);\r\n }\r\n });\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n async loadCarrierDocuments(carrierGuid: string) {\r\n return this.api.get(\"Carriers\", \"GetCarrierDocuments\", { carrierGuid: carrierGuid })\r\n .then((result) => {\r\n this.carrierDocuments = JSON.parse(result.response);\r\n });\r\n }\r\n\r\n\r\n doUpload() {\r\n return this.upload('api/upload', this.selectedFiles)\r\n .then((result) => {\r\n let resultObj = JSON.parse(result.response);\r\n this.controller.ok(resultObj);\r\n });\r\n }\r\n\r\n clearFiles() {\r\n this.filesElement.value = \"\";\r\n }\r\n\r\n upload(url, files) {\r\n\r\n if (!this.documentTypeId) {\r\n alert(\"Please select document type\");\r\n return Promise.resolve();\r\n }\r\n if (this.documentTypeId == 11 && !this.documentTitle) {\r\n alert(\"When Other is selected, the document title must be specified.\");\r\n return Promise.resolve();\r\n }\r\n\r\n // //if the document record already exists, then a subsequent update is to upload a file.\r\n // //if not, then the initial insert can optionally include the file to upload.\r\n // if (this.documentId && files.length == 0) {\r\n // alert(\"Please choose a file to upload.\");\r\n // return Promise.resolve();\r\n // }\r\n\r\n // since introduction of onboarding requirements matrix, documents cannot be created without a file uploaded\r\n if (files.length == 0) {\r\n alert(\"Please choose a file to upload.\");\r\n return Promise.resolve();\r\n }\r\n\r\n let formData = new FormData();\r\n for (let i = 0; i < files.length; i++) {\r\n formData.append(`files[${i}]`, files[i]);\r\n }\r\n //formData.append('DocumentId', this.carrierDocumentTypeXrefId.toString());\r\n formData.append('CarrierGuid', this.carrierGuid);\r\n formData.append('DocumentId', this.documentId);\r\n formData.append('DocumentTypeId', this.documentTypeId.toString());\r\n formData.append('DocumentArchive', this.documentArchive.toString());\r\n formData.append('Title', this.documentTitle || this.documentDefaultTitle);\r\n\r\n this.busyService.on();\r\n return this.api.post(\"document\", \"upload\", formData)\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n submit() {\r\n this.form.submit();\r\n }\r\n\r\n\r\n}","import { autoinject, observable } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport * as moment from 'moment';\r\nimport { CarrierDocument } from '../../models/carrier-document';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { CarrierDocumentVersion } from '../../models/carrier-document-version';\r\n\r\n@autoinject\r\nexport class UpdateDocumentVersionDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService) {\r\n this.api.containerId = \"update-document-version-dialog\";\r\n }\r\n\r\n documentVersion: CarrierDocumentVersion;\r\n isLinked: boolean;\r\n carrierGuid: string;\r\n\r\n activate(params) {\r\n\r\n this.documentVersion = JSON.parse(JSON.stringify(params.documentVersion));\r\n this.carrierGuid = params.carrierGuid;\r\n this.isLinked = this.documentVersion && this.documentVersion.isLinked;\r\n }\r\n\r\n save() {\r\n\r\n this.busyService.on();\r\n let param = this.documentVersion as any;\r\n param.carrierGuid = this.carrierGuid;\r\n return this.api.post(\"document\", \"updateDocumentVersion\", param)\r\n .then(o => {\r\n this.controller.ok(this.documentVersion);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n}","import { computedFrom, observable, autoinject, TaskQueue, targetContext } from \"aurelia-framework\";\r\nimport { ContextMenu, ContextMenuDivider } from \"./widgets/action-bar/context-menu\";\r\nimport { Carrier } from \"../models/carrier\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { Router } from \"aurelia-router\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport * as moment from 'moment';\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { CarrierStatusDialog } from \"./dialogs/carrier-status-dialog\";\r\nimport { CarrierDocument } from \"../models/carrier-document\";\r\nimport { UploadDocumentDialog } from \"./dialogs/upload-document-dialog\";\r\nimport { SimpleDialog } from \"./dialogs/simple-dialog\";\r\nimport { CarrierDocumentVersion } from \"../models/carrier-document-version\";\r\nimport { UpdateDocumentVersionDialog } from \"./dialogs/update-document-version-dialog\";\r\nimport 'jquery';\r\n\r\n@autoinject()\r\nexport class CarrierDocuments {\r\n\r\n constructor(private api: WebApiService, private router: Router,\r\n private busyService: BusyService,\r\n private dialogService: DialogService,\r\n public securityService: SecurityService,\r\n private taskQueue: TaskQueue) {\r\n this._buildContextMenu();\r\n }\r\n\r\n activate(parameters) {\r\n this.parameters = parameters;\r\n\r\n this._loadCarrier(parameters.carrierId)\r\n .then(() => {\r\n this.loadDocuments(this.carrier.uniqueId);\r\n });\r\n }\r\n\r\n attached() {\r\n let $: any = window[\"$\"];\r\n $(window).on(\"resize\", () => this.resizeDocumentViewerHeight());\r\n\r\n this.resizeDocumentViewerHeight();\r\n\r\n }\r\n\r\n detached() {\r\n let $: any = window[\"$\"];\r\n $(window).off(\"resize\");\r\n }\r\n\r\n @observable()\r\n showArchivedVersions: boolean = true;\r\n // showArchivedVersionsChanged(newValue) {\r\n // //re-select document to apply new archive flag\r\n // this.selectDocument(this.selectedDocument);\r\n // }\r\n\r\n parameters: any;\r\n selectedDocument: CarrierDocument = undefined;\r\n selectedDocumentVersionsFiltered: Array = [];\r\n @observable()\r\n selectedDocumentVersion: CarrierDocumentVersion = undefined;\r\n selectedDocumentVersionChanged(newValue: any, oldValue: any) {\r\n if (newValue == 'add_new_version') {\r\n this.addDocumentVersion(this.selectedDocument, oldValue && oldValue.title)\r\n .then(result => {\r\n if (!result) {\r\n setTimeout(() => {\r\n this.selectedDocumentVersion = oldValue;\r\n }, 0);\r\n }\r\n });\r\n }\r\n };\r\n viewerPage = 1;\r\n viewerScale = 1.0;\r\n //viewerHeight: string = document.querySelector(\"body\").offsetHeight - 159 + \"px\";\r\n\r\n scaleUp() {\r\n this.viewerScale += 0.25;\r\n }\r\n scaleDown() {\r\n this.viewerScale -= 0.25;\r\n }\r\n prevPage() {\r\n if (this.viewerPage > 1)\r\n this.viewerPage--;\r\n }\r\n nextPage() {\r\n if (this.viewerPage < this.selectedDocumentVersion.pageCount)\r\n this.viewerPage++;\r\n }\r\n\r\n @computedFrom(\"selectedDocument\")\r\n get isDocumentSelected() {\r\n return !!this.selectedDocument && !!this.selectedDocument.documentId;\r\n }\r\n\r\n selectDocument(doc: CarrierDocument) {\r\n if (doc) {\r\n this.selectedDocument = doc;\r\n // this.filterVersions();\r\n }\r\n }\r\n\r\n newVersionButton() {\r\n this.addDocumentVersion(this.selectedDocument, this.selectedDocumentVersion.title);\r\n }\r\n\r\n // filterVersions(versionToSelect?: CarrierDocumentVersion) {\r\n // if (!this.selectedDocument) return;\r\n // this.selectedDocumentVersionsFiltered = this.selectedDocument.versions.filter(o => {\r\n // return this.showArchivedVersions || !o.archive;\r\n // });\r\n // //this.selectedDocumentVersionsFiltered = doc.versions;\r\n // this.selectedDocumentVersion = this.selectedDocumentVersionsFiltered[0];\r\n // }\r\n\r\n copyFolderPathToClipboard() {\r\n var val = \"\\\\\\\\rz.nucorsteel.local\\\\root\\\\Carrier_Management_Portal_Data\\\\\" + this.carrier.uniqueId;\r\n var dummy = document.createElement(\"input\");\r\n document.body.appendChild(dummy);\r\n //$(dummy).css('display', 'none');\r\n dummy.setAttribute(\"id\", \"dummy_id\");\r\n (document.getElementById(\"dummy_id\")).value = val;\r\n dummy.select();\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(dummy);\r\n }\r\n\r\n handleDocumentThumbnailAction(document: CarrierDocument) {\r\n switch ((event).detail.value) {\r\n case \"upload\":\r\n this.addDocumentVersion(document);\r\n break;\r\n case \"delete\":\r\n this.deleteDocument(document);\r\n break;\r\n }\r\n }\r\n\r\n addDocumentVersion(doc, title?) {\r\n //let doc = (event).detail.value;\r\n return new Promise((resolve, reject) => {\r\n this.dialogService.open({\r\n viewModel: UploadDocumentDialog,\r\n model: {\r\n document: doc,\r\n documentType: this.selectedDocument.documentType,\r\n versionCount: this.selectedDocument.versions.length,\r\n carrierName: this.carrier.getCarrierName(),\r\n carrierId: this.carrier.id,\r\n carrierGuid: this.carrier.uniqueId\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n var uploadResult = result.output;\r\n if (uploadResult && uploadResult.documentVersion) {\r\n doc.versions.unshift(uploadResult.documentVersion);\r\n this.selectedDocumentVersion = uploadResult.documentVersion;\r\n // this.filterVersions(uploadResult.documentVersion);\r\n resolve(true);\r\n } else {\r\n resolve();\r\n }\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n carrier: Carrier;\r\n private _loadCarrier(id) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: id })\r\n .then((result) => {\r\n this.carrier = Object.assign(new Carrier(), JSON.parse(result.response));\r\n\r\n //set the page title\r\n this.router.currentInstruction.config.navModel.setTitle(this.carrier.legalName + \" - Documents\");\r\n this.router.updateTitle();\r\n }).finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n documents: Array;\r\n\r\n private loadDocuments(carrierGuid) {\r\n return this.api.get(\"Carriers\", \"GetCarrierDocuments\", { carrierGuid: carrierGuid })\r\n .then((result) => {\r\n let docsInfo = JSON.parse(result.response);\r\n let documents = [];\r\n //use actual model instance\r\n docsInfo.forEach(docInfo => {\r\n let doc = Object.assign(new CarrierDocument(), docInfo);\r\n documents.push(doc);\r\n });\r\n this.documents = documents;\r\n //don't auto-select because it's causing too long delays when user doesn't need to see the first document.\r\n //if (this.documents.length) {\r\n // this.selectDocument(this.documents[0]);\r\n // //this.selectedDocument = this.documents[0];\r\n // //this.selectedDocumentVersionsFiltered = this.selectedDocument.versions;\r\n // //this.selectedDocumentVersion = this.selectedDocument.versions[0];\r\n //}\r\n });\r\n }\r\n\r\n addDocument() {\r\n this.dialogService.open({\r\n viewModel: UploadDocumentDialog,\r\n model: { document: null, carrierName: this.carrier.getCarrierName(), carrierId: this.carrier.id, carrierGuid: this.carrier.uniqueId }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n var uploadResult = result.output;\r\n this.documents.push(uploadResult.document);\r\n setTimeout(() => {\r\n this.selectDocument(uploadResult.document);\r\n //this.selectedDocument = uploadResult.document;\r\n //this.selectedDocumentVersionsFiltered = this.selectedDocument.versions;\r\n //this.selectedDocumentVersion = uploadResult.documentVersion;\r\n setTimeout(() => {\r\n var el = (this.selectedDocument).element;\r\n if (el) {\r\n el.scrollIntoView();\r\n }\r\n }, 50);\r\n }, 50);\r\n }\r\n });\r\n }\r\n\r\n thumbnailContainer: any;\r\n documentContainer: any;\r\n private VIEWER_MIN_HEIGHT: number = 200;\r\n\r\n resizeDocumentViewerHeight() {\r\n let $: any = window[\"$\"];\r\n let $thumbnailContainer = $(this.thumbnailContainer);\r\n let $documentContainer = $(this.documentContainer);\r\n\r\n var footerHeight = $(\"footer\").outerHeight(true);\r\n var targetHeight = $(window).height() - $thumbnailContainer.offset().top - footerHeight;\r\n if (targetHeight < this.VIEWER_MIN_HEIGHT) {\r\n targetHeight = this.VIEWER_MIN_HEIGHT;\r\n }\r\n\r\n if ($thumbnailContainer.height() !== targetHeight) {\r\n\r\n // Use this information for debugging resize issues\r\n //$log.trace(\"RESIZING GRID\");\r\n //$log.trace(\"==============================\");\r\n //$log.trace(`FOOTER HEIGHT: ${footerHeight}`);\r\n //$log.trace(`WINDOW HEIGHT: ${$(window).height()}`);\r\n //$log.trace(`DOCUMENT HEIGHT: ${$(document).height()}`);\r\n //$log.trace(`GRID CONTAINER offset().top: ${$gridContainer.offset().top}`);\r\n //$log.trace(`NEW GRID HEIGHT: ${targetHeight}`);\r\n\r\n\r\n //resize the containers\r\n $thumbnailContainer.stop().animate(\r\n { height: targetHeight },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n $documentContainer.stop().animate(\r\n { height: targetHeight - 33 },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n }\r\n }\r\n\r\n updateDocumentVersion(version: CarrierDocument) {\r\n\r\n this.dialogService.open({\r\n viewModel: UpdateDocumentVersionDialog,\r\n model: { carrierGuid: this.carrier.uniqueId, documentVersion: this.selectedDocumentVersion }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n Object.assign(this.selectedDocumentVersion, result.output);\r\n // this.filterVersions(this.selectedDocumentVersion);\r\n }\r\n });\r\n }\r\n\r\n deleteDocumentVersion(version: CarrierDocument) {\r\n let title = \"Delete document version\";\r\n let message = \"Do you want to permanently delete the selected document version?\\n\\nThis cannot be undone.\";\r\n if (version.isLinked) {\r\n title = \"Delete linked document version\";\r\n message = \"WARNING: This document is linked to one or more requirements. Do you want to permanently delete the selected document version and any associated links?\\n\\nThis cannot be undone.\";\r\n }\r\n\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: title,\r\n icon: \"fa-exclamation-triangle\",\r\n message: message,\r\n buttons: [\"Yes\", \"No\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"Yes\") {\r\n this.busyService.on();\r\n let indexToRemove = this.selectedDocument.versions.indexOf(this.selectedDocumentVersion);\r\n let param = this.selectedDocumentVersion as any;\r\n param.carrierGuid = this.carrier.uniqueId;\r\n this.api.post(\"document\", \"DeleteDocumentVersion\",\r\n param\r\n )\r\n .then(result => {\r\n this.selectedDocument.versions.splice(indexToRemove, 1);\r\n // this.filterVersions();\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteDocument(selectedDocument: CarrierDocument) {\r\n let title = \"Delete document\";\r\n let message = `Do you want to permanently delete the selected document${+ this.selectedDocument.versions.length ? \" and all versions\" : \"\"}?\\n\\nThis cannot be undone.`;\r\n if (selectedDocument.isLinked) {\r\n title = \"Delete linked document\";\r\n message = \"WARNING: This document is linked to one or more requirements.\\n\" + message;\r\n }\r\n title += \" \" + (this.selectedDocument.versions.length ? \" and all versions\" : \"\");\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: title,\r\n icon: \"fa-exclamation-triangle\",\r\n message: message,\r\n buttons: [\"Yes\", \"No\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"Yes\") {\r\n\r\n //strip out properties that cause circular references\r\n let doc = {\r\n carrierGuid: this.carrier.uniqueId,\r\n documentId: this.selectedDocument.documentId,\r\n versions: this.selectedDocument.versions.map(o => {\r\n return {\r\n documentId: o.documentId,\r\n documentVersionId: o.documentVersionId\r\n };\r\n })\r\n };\r\n\r\n this.busyService.on();\r\n this.api.post(\"document\", \"DeleteDocument\", doc)\r\n .then(result => {\r\n //reload documents\r\n this.loadDocuments(this.carrier.uniqueId);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n private _buildContextMenu() {\r\n this.actionBarMenu = new ContextMenu();\r\n\r\n this.actionBarMenu.items.push({\r\n caption: \"Refresh\", securityRole: 'view',\r\n onClick: () => {\r\n }\r\n });\r\n\r\n //this.actionBarMenu.items.push(new ContextMenuDivider());\r\n }\r\n actionBarMenu: ContextMenu;\r\n\r\n}","import {autoinject} from \"aurelia-framework\";\r\nimport {PageMessageService} from \"../../services/page-message-service\";\r\n\r\n@autoinject\r\nexport class PageMessage{\r\n\r\n constructor(public pageMessageService: PageMessageService) {\r\n }\r\n\r\n}","import { computedFrom, autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { SecurityService } from \"../../services/security-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { Contact } from \"../../models/contact\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { ContactPhone } from '../../models/contact-phone';\r\nimport { PageMessage } from '../../resources/elements/page-message';\r\n\r\n@autoinject\r\nexport class UpdateContactDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private appMessageService: AppMessageService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService\r\n ) {\r\n this.appMessageService.containerId = \"update-contact-dialog\";\r\n }\r\n\r\n contact: Contact = new Contact();\r\n contactPhones: Array = [];\r\n deletedPhones: Array = [];\r\n allMills: Array = [];\r\n showMills: Boolean = true;\r\n allSelected: Boolean = false;\r\n allContactTypesSelected: Boolean = false;\r\n nameElement: HTMLElement;\r\n contactTypes: Array = [];\r\n\r\n @computedFrom(\"contactTypes.length\")\r\n get filteredContactTypes(): Array {\r\n return this.contactTypes.filter(o => {\r\n if (o.carrier == true) {\r\n if (this.securityService.hasRole(\"edit\")) {\r\n return true;\r\n } else {\r\n return o.id != 1 && o.id != 2;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private savedLastVerified: Date;\r\n\r\n @computedFrom(\"contact.lastVerified\", \"contact.lastVerifiedBy\")\r\n get lastVerifiedBy(): string {\r\n\r\n if (!this.contact || !this.contact.lastVerified) {\r\n return \"\";\r\n }\r\n\r\n if (JSON.stringify(this.contact.lastVerified) != JSON.stringify(this.savedLastVerified)) {\r\n return this.securityService.user.userName;\r\n }\r\n return this.contact.lastVerifiedBy;\r\n }\r\n\r\n //an aray of mill codes (populated when the contact loads and bound to the mill list selection box)\r\n contactMills: Array = [];\r\n\r\n async activate(model) {\r\n\r\n this.allMills = model.mills;\r\n this.deletedPhones = [];\r\n\r\n if (model.showMills != undefined) {\r\n this.showMills = model.showMills;\r\n }\r\n\r\n //defaults for a new contact\r\n if (!model.contact) {\r\n this.contact = new Contact();\r\n this.contact.carrierId = model.carrierId;\r\n\r\n if (this.allMills) {\r\n //default selection to all mills\r\n this.contact.mills = this.getAllMillsString();\r\n this.contactMills = this.getAllMillCodes();\r\n }\r\n } else {\r\n //if millIds == null, then that means they're all selected.\r\n //populate with all mills so that the control displays them as all selected.\r\n\r\n // get a new copy so that the original is not modified\r\n this.contact = await this.getCarrierContact(model.contact.id);\r\n\r\n if (this.allMills) {\r\n if (!this.contact.mills) {\r\n this.contact.mills = this.getAllMillsString();\r\n this.contactMills = this.getAllMillCodes();\r\n } else {\r\n this.contactMills = this.contact.mills.split(',');\r\n }\r\n }\r\n }\r\n\r\n await this.loadContactTypes();\r\n }\r\n\r\n getAllMillCodes() {\r\n if (this.allMills) {\r\n return this.allMills.map((item) => item.millId);\r\n }\r\n return [];\r\n }\r\n\r\n getAllMillsString() {\r\n return this.getAllMillCodes().join(',');\r\n }\r\n\r\n attached() {\r\n var stuff = ($(\".info-tooltip\"));\r\n stuff.popover();\r\n \r\n this.nameElement.focus();\r\n }\r\n\r\n async loadContactTypes() {\r\n const result = await this.api.get(\"Carriers\", \"GetContactTypes\")\r\n const contactTypes = JSON.parse(result.response);\r\n this.contactTypes = contactTypes.filter(o => o.carrier == true);\r\n }\r\n\r\n verifyToday() {\r\n this.contact.lastVerified = new Date();\r\n }\r\n\r\n async getCarrierContact(contactId: number) {\r\n try {\r\n let result = await this.api.get(\"Carriers\", \"GetCarrierContact\", { contactId: contactId });\r\n let contact = JSON.parse(result.response) as Contact;\r\n if (contact.lastVerified) {\r\n this.savedLastVerified = contact.lastVerified = new Date(contact.lastVerified + \"Z\");\r\n }\r\n return contact;\r\n } catch (e) {\r\n alert(\"Error loading contact: \" + e);\r\n }\r\n }\r\n removePhone(phone: ContactPhone) {\r\n if (phone.contactPhoneId) {\r\n this.deletedPhones.push(phone);\r\n }\r\n let indexToRemove = this.contact.phones.findIndex(o => o == phone);\r\n if (indexToRemove > -1) {\r\n this.contact.phones.splice(indexToRemove, 1);\r\n }\r\n }\r\n addPhone() {\r\n if (!this.contact.phones.find(o => !o.contactPhoneId)) {\r\n this.contact.phones.push(new ContactPhone());\r\n }\r\n }\r\n\r\n delete() {\r\n var params = this.buildContactModel();\r\n\r\n this.pageMessageService.clear();\r\n this.api.post(\"Carriers\", \"DeleteCarrierContact\", params)\r\n .then(() => {\r\n $[\"notify\"](\"Contact deleted\", { className: \"success\", position: \"top center\" });\r\n this.controller.ok();\r\n }, () => {\r\n $[\"notify\"](\"Error saving contact\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n save(asCopy) {\r\n\r\n //save contacts immediately\r\n //requires a valid carrierId\r\n if (this.contact.carrierId == 0) {\r\n throw new Error(\"Cannot save contacts until the carrier has been saved.\");\r\n }\r\n\r\n //ensure that contact type is selected\r\n if (!this.contact.contactTypeIds.length) {\r\n alert(\"Please select at least one Contact Type\");\r\n return;\r\n }\r\n\r\n //ensure that last verified is a date and is not a future date\r\n if (this.contact.lastVerified)\r\n if (new Date(this.contact.lastVerified).toString() == \"Invalid Date\") {\r\n alert(\"Last Verified must be a valid date.\");\r\n return;\r\n } else {\r\n var today = new Date(new Date().toDateString());\r\n var verifiedDate = new Date(new Date(this.contact.lastVerified).toDateString());\r\n if (today < verifiedDate) {\r\n alert(\"Last Verified cannot be a future date.\");\r\n return;\r\n }\r\n }\r\n\r\n //ensure that contact name is specified\r\n if (!this.contact.name) {\r\n alert(\"Please enter Name for the contact.\");\r\n return;\r\n }\r\n\r\n\r\n var params = {\r\n contact: this.buildContactModel(asCopy),\r\n deletedPhones: this.deletedPhones\r\n };\r\n this.pageMessageService.clear();\r\n this.api.post(\"Carriers\", \"UpdateCarrierContact\", params)\r\n .then(() => {\r\n if (!this.contact.id) {\r\n this.appMessageService.addSuccessMessage(\"Contact created\");\r\n } else {\r\n this.appMessageService.addSuccessMessage(\"Contact updated\");\r\n }\r\n this.controller.ok();\r\n }, () => {\r\n this.appMessageService.addErrorMessage(\"Error saving contact\");\r\n });\r\n }\r\n\r\n buildContactModel(asCopy = false) {\r\n var contactId = asCopy ? 0 : this.contact.id;\r\n var phones = this.contact.phones;\r\n if (asCopy) {\r\n phones = this.contact.phones.map(o => {\r\n var ph = ContactPhone.clone(o);\r\n ph.contactPhoneId = 0;\r\n return ph;\r\n });\r\n }\r\n\r\n return {\r\n id: contactId,\r\n carrierId: this.contact.carrierId,\r\n name: this.contact.name,\r\n title: this.contact.title,\r\n lastVerified: this.contact.lastVerified,\r\n lastVerifiedBy: this.lastVerifiedBy,\r\n email: this.contact.email,\r\n phones: phones,\r\n mills: this.allSelected ? null : this.contactMills.join(','),\r\n allMills: this.getAllMillsString(),\r\n contactTypeIds: this.contact.contactTypeIds,\r\n city: this.contact.city,\r\n state: this.contact.state,\r\n receiveAccountingReports: this.contact.receiveAccountingReports,\r\n receiveDispatchReports: this.contact.receiveDispatchReports\r\n };\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { SecurityService } from '../../services/security-service';\r\n\r\n@autoinject\r\nexport class AddRemoveCarrierDivisionDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private api: WebApiService) {\r\n }\r\n\r\n\r\n title: string;\r\n model: any;\r\n mills: Array = [];\r\n public divisionId: number = undefined;\r\n public divisionLabel: string = \"\";\r\n\r\n public save() {\r\n if (!this.divisionId) {\r\n alert(\"Please select a division\");\r\n return;\r\n }\r\n this.controller.ok(this.divisionId);\r\n }\r\n\r\n async activate(model) {\r\n this.model = model;\r\n\r\n this.title = (model.add ? \"Add\" : \"Remove\") + \" this carrier for your division roster?\";\r\n //this.message = \"Select the division and click Save to \" + (add ? \"add\" : \"remove\") + \" this carrier to the division roster\",\r\n\r\n const verb = this.model.add ? \"add\" : \"remov\";\r\n this.divisionLabel = \"Select the division for which the carrier should be \" + verb + \"ed:\";\r\n\r\n await this.loadMills();\r\n }\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n let mills = JSON.parse(result.response);\r\n const userDivisions = this.securityService.user.millCodes;\r\n const carrierDivisions = this.model.carrierDivisions;\r\n\r\n if (userDivisions.length > 0) {\r\n mills = mills.filter(o => userDivisions.indexOf(o.millId) > -1);\r\n }\r\n\r\n // if removing, the only show mills that the carrier is already assigned to.\r\n if (!this.model.add) {\r\n mills = mills.filter(o => carrierDivisions.indexOf(o.id) > -1);\r\n }\r\n // if adding, then only show mills that the carrier is not assigned to\r\n if (this.model.add) {\r\n mills = mills.filter(o => carrierDivisions.indexOf(o.id) == -1);\r\n }\r\n\r\n this.mills = mills;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n}\r\n","import { computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { Router, Redirect, activationStrategy } from 'aurelia-router';\r\nimport { singleton } from 'aurelia-framework';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { SimpleDialog } from \"./dialogs/simple-dialog\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { UpdateContactDialog } from \"./dialogs/update-contact-dialog\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { Carrier } from \"../models/carrier\";\r\nimport 'jquery';\r\nimport * as moment from 'moment';\r\nimport { Contact } from \"../models/contact\";\r\nimport { ContextMenu, ContextMenuItem, ContextMenuDivider } from \"./widgets/action-bar/context-menu\";\r\nimport { CarrierDocument } from \"../models/carrier-document\";\r\nimport { AddRemoveCarrierDivisionDialog } from \"./dialogs/add-remove-carrier-division\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class CarrierSummary {\r\n hasRosterChangeRole: boolean = false;\r\n\r\n constructor(\r\n private appMessageService: AppMessageService,\r\n private securityService: SecurityService,\r\n private dialogService: DialogService,\r\n private router: Router,\r\n private busyService: BusyService,\r\n private api: WebApiService) {\r\n\r\n }\r\n\r\n carrierId: number;\r\n carrier: Carrier = new Carrier();\r\n carrierMillCodes: Array;\r\n carrierMillIds: Array;\r\n carrierMillsString: string;\r\n isCarrierEnabledForMyMill: boolean;\r\n carrierInsurance: Array = [];\r\n contacts: Array = [];\r\n divisions: Array = [];\r\n documents: Array = [];\r\n\r\n async activate(params: any) {\r\n\r\n await this.securityService.init();\r\n\r\n this.hasRosterChangeRole = this.securityService.hasRole(\"request_roster_change\");\r\n\r\n\r\n this.carrierId = +params.carrierId;\r\n\r\n if (this.carrierId) {\r\n return this.loadCarrierProfile(this.carrierId);\r\n }\r\n }\r\n\r\n attached() {\r\n //set the page title\r\n this.router.currentInstruction.config.navModel.setTitle(this.carrier.legalName);\r\n this.router.updateTitle();\r\n }\r\n\r\n refresh() {\r\n return this.loadCarrierProfile(this.carrierId);\r\n }\r\n\r\n loadCarrierProfile(carrierId: number) {\r\n\r\n this.appMessageService.clearPageScopedMessages();\r\n\r\n this.carrierId = carrierId;\r\n\r\n this.busyService.on();\r\n\r\n return Promise.all([\r\n this.loadCarrierDetails(carrierId),\r\n this.loadCarrierInsurance(carrierId),\r\n this.loadCarrierMills(carrierId),\r\n this.loadDivisions()\r\n ])\r\n .then(() => {\r\n this.loadCarrierContacts(carrierId);\r\n this.loadDocuments(this.carrier.uniqueId);\r\n\r\n //messages\r\n if (this.securityService.user.millCodes.length && !this.isCarrierEnabledForMyMill) {\r\n if (this.securityService.hasRole(\"request_roster_change\")) {\r\n this.appMessageService.addInfoMessage(\"This carrier is not currently assigned to one of your divisions (\" + this.securityService.user.millCodes\r\n + \"). Use the action link below to assign the carrier to your division.\");\r\n } else {\r\n this.appMessageService.addInfoMessage(\"This carrier is not currently assigned to one of your divisions (\" + this.securityService.user.millCodes\r\n + \").\");\r\n }\r\n }\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n public isTrucksCarrier(){\r\n return this.carrier && (this.carrier.entityType == 'TRUCKS' || this.carrier.entityType == 'TRANSLOADER/TRUCKS');\r\n }\r\n\r\n getCarrierTypeForDisplay(carrier) {\r\n if (carrier.entityType == 'TRANSLOADER') {\r\n return \"TRANSLOADER\";\r\n } else {\r\n if (carrier.entityType != 'TRANSLOADER/TRUCKS' && carrier.typeOfAuthority == 'BOTH') {\r\n return 'PERMIT/BROKER';\r\n }\r\n return carrier.typeOfAuthority;\r\n }\r\n }\r\n\r\n private loadDocuments(carrierGuid) {\r\n return this.api.get(\"Carriers\", \"GetCarrierDocuments\", { carrierGuid: carrierGuid })\r\n .then((result) => {\r\n this.documents = JSON.parse(result.response);\r\n });\r\n }\r\n\r\n loadCarrierDetails(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrier = Object.assign(new Carrier(), JSON.parse(result.response));\r\n\r\n //this.carrierPointUrl = this.settingsService.settings[\"carrierPointUrl\"].replace(\"${carrierPointId}\", this.carrier.id);\r\n });\r\n }\r\n\r\n\r\n loadCarrierInsurance(carrierId: number) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierInsurance\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrierInsurance = JSON.parse(result.response);\r\n\r\n //set the \"expired\" property\r\n this.carrierInsurance.forEach(m => m.expired = moment(new Date()).isAfter(m.expiration, 'day'));\r\n\r\n //run business rules\r\n this.appMessageService.showWarningMessage(\"One or more insurance policies for this carrier have expired.\",\r\n this.carrier.status == 8 && this.carrierInsurance.find(m => m.expired));\r\n\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadCarrierMills(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierMills\", { carrierId: carrierId })\r\n .then((result) => {\r\n let response = JSON.parse(result.response);\r\n this.carrierMillCodes = response.map((item) => {\r\n return item.code;\r\n });\r\n this.carrierMillIds = response.map((item) => {\r\n return item.id;\r\n });\r\n this.carrierMillsString = this.carrierMillCodes.join(\",\") || \"[none]\";\r\n this.isCarrierEnabledForMyMill = false;\r\n this.securityService.user.millCodes.forEach(myMillCode => {\r\n if (this.carrierMillCodes.indexOf(myMillCode) > -1) this.isCarrierEnabledForMyMill = true;\r\n });\r\n });\r\n }\r\n\r\n\r\n loadDivisions() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n this.divisions = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n loadCarrierContacts(carrierId: number) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierContacts\", { carrierId: carrierId })\r\n .then((result) => {\r\n var contacts = JSON.parse(result.response);\r\n this.contacts = contacts.filter(o => {\r\n if (!o.mills) {\r\n return true;\r\n }\r\n let answer = false;\r\n o.mills.split(',').forEach(millCode => {\r\n if (this.securityService.user.millCodes.indexOf(millCode) > -1) answer = true;\r\n });\r\n return answer;\r\n });;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n //isContactForThisMill(contact: Contact) {\r\n\r\n // if (contact.contactTypeId == 1 || contact.contactTypeId == 2) {\r\n // return true;\r\n // }\r\n // return false;\r\n\r\n // //var myMillId = (this.divisions.find(item => item.code == this.securityService.user.millCode) || {}).id;\r\n\r\n // //if (contact.millIds.indexOf(myMillId) > -1) {\r\n // // return false;\r\n // //}\r\n // //return true;\r\n //}\r\n\r\n // ACTIONS\r\n\r\n requestContactChanges() {\r\n\r\n //const millCodeText = this.securityService.user.millCodes.join(\",\");\r\n var model = {\r\n title: \"Request contact changes for this carrier on my division roster.\",\r\n message: \"Please describe the contact information changes you are requesting for this carrier:\",\r\n showComment: true,\r\n comment: \"\",\r\n buttons: [\"Send Request\", \"Cancel\"]\r\n };\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Send Request\") {\r\n this.busyService.on();\r\n return this.api.post(\"Carriers\", \"RequestCarrierContactChanges\",\r\n {\r\n carrierId: this.carrierId,\r\n carrierName: this.carrier.dbaName || this.carrier.legalName,\r\n comment: model.comment\r\n })\r\n .then((result) => {\r\n this.appMessageService.addSuccessMessage(\"Request sent.\");\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n requestCarrierAdd(add) {\r\n\r\n var model = {\r\n add: add,\r\n carrierDivisions: this.carrierMillIds,\r\n };\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: AddRemoveCarrierDivisionDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output) {\r\n this.busyService.on();\r\n const divisionId = result.output;\r\n return this.api.post(\"Carriers\", \"AddRemoveCarrierDivision\",\r\n {\r\n add: add,\r\n carrierId: this.carrierId,\r\n divisionId: divisionId\r\n })\r\n .then((result) => {\r\n const verb = add ? \"add\" : \"remov\";\r\n this.appMessageService.addSuccessMessage(\"This carrier has been \" + verb + \"ed for your roster. Please refresh the page.\");\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n @computedFrom(\"hasRosterChangeRole\",\r\n \"isCarrierEnabledForMyMill\"\r\n )\r\n get canAddCarrier(): boolean {\r\n return this.hasRosterChangeRole;\r\n }\r\n @computedFrom(\"hasRosterChangeRole\",\r\n \"isCarrierEnabledForMyMill\"\r\n )\r\n get canRemoveCarrier(): boolean {\r\n return this.hasRosterChangeRole && this.isCarrierEnabledForMyMill;\r\n }\r\n\r\n openContactDialog(contact: Contact) {\r\n this.dialogService.open({\r\n viewModel: UpdateContactDialog,\r\n model: {\r\n showMills: false,\r\n mills: this.divisions.filter((item) => this.carrierMillIds.indexOf(item.id) > -1),\r\n contact: contact, //create a copy so that the original isn't modified\r\n carrierId: this.carrier.id\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload contacts\r\n this.loadCarrierContacts(this.carrier.id);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n}\r\n","export class Condition {\r\n\r\n constructor(chainOperator) {\r\n this.chainOperator = chainOperator;\r\n }\r\n\r\n\r\n field: ConditionField;\r\n chainOperator: string;\r\n operation: ConditionOperation;\r\n value: any = \"\";\r\n\r\n}\r\n\r\nexport function getDefaultCondition(){\r\n return new Condition('and');\r\n}\r\n\r\nexport class ConditionField {\r\n name: string;\r\n label: string;\r\n type: ConditionFieldType;\r\n list: Array;\r\n}\r\n\r\nexport enum ConditionFieldType {\r\n string = 0,\r\n number = 1,\r\n date = 2,\r\n bool = 3,\r\n list = 4\r\n}\r\n\r\nexport class ConditionOperation {\r\n operator: string;\r\n supportedTypes: Array;\r\n input: boolean; // whether the operation requires an input control\r\n}","import { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { Carrier } from \"../models/carrier\"\r\nimport { CarrierFilter } from \"../models/carrier-filter\"\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport * as condition from './widgets/list-filter/condition';\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { Globals } from \"../models/globals\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class Carriers {\r\n\r\n constructor(\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private carriersController: CarriersController,\r\n private api: WebApiService) {\r\n }\r\n\r\n activate() {\r\n\r\n if (!this.conditions) {\r\n this.conditions = [condition.getDefaultCondition()];\r\n }\r\n\r\n if (!this.carriers) {\r\n this.search();\r\n }\r\n\r\n this.loadCarrierStatuses();\r\n this.loadMills();\r\n this.loadEquipment();\r\n\r\n }\r\n\r\n fields: Array;\r\n isAllMillsSelected: boolean;\r\n\r\n @observable()\r\n savedSearch: string;\r\n savedSearchChanged() {\r\n //if (this.savedSearch == \"master-approved\") {\r\n // this.conditions = [{ \"value\": { \"id\": \"Master Approved\", \"description\": \"Master Approved\" }, \"chainOperator\": \"and\", \"field\": { \"label\": \"Status\", \"name\": \"StatusDescription\", \"type\": 4, \"list\": [{ \"id\": \"New\", \"description\": \"New\" }, { \"id\": \"Potential\", \"description\": \"Potential\" }, { \"id\": \"Packet Sent\", \"description\": \"Packet Sent\" }, { \"id\": \"In Process\", \"description\": \"In Process\" }, { \"id\": \"Minimum Requirements\", \"description\": \"Minimum Requirements\" }, { \"id\": \"Insurance Complete\", \"description\": \"Insurance Complete\" }, { \"id\": \"NLC Approved\", \"description\": \"NLC Approved\" }, { \"id\": \"Master Approved\", \"description\": \"Master Approved\" }, { \"id\": \"Not Qualified\", \"description\": \"Not Qualified\" }, { \"id\": \"Inactive\", \"description\": \"Inactive\" }] }, \"operation\": { \"operator\": \"equals\", \"input\": true } }];\r\n // console.log(JSON.stringify(this.conditions));\r\n // this.search(this.conditions);\r\n //}\r\n }\r\n\r\n loadFields() {\r\n if (!this.fields) {\r\n this.fields = [];\r\n //this.fields.push({ name: \"legalName\", label: \"Legal Name\", type: condition.ConditionFieldType.string });\r\n //this.fields.push({ name: \"dotNumber\", label: \"DOT Number\", type: condition.ConditionFieldType.string });\r\n //this.fields.push({ name: \"mcNumber\", label: \"MC Number\", type: condition.ConditionFieldType.string });\r\n //this.fields.push({\r\n // name: \"statusId\",\r\n // label: \"Status\",\r\n // type: condition.ConditionFieldType.list,\r\n // defaultOperator: \"equals\",\r\n // list: [\r\n // { id: 0, description: \"New\" },\r\n // { id: 2, description: \"Potential\" },\r\n // { id: 3, description: \"Packet Sent\" },\r\n // { id: 4, description: \"In Process\" },\r\n // { id: 5, description: \"Minimum Requirements\" },\r\n // { id: 6, description: \"Insurance Complete\" },\r\n // { id: 7, description: \"NLC Approved\" },\r\n // { id: 8, description: \"Master Approved\" },\r\n // { id: 9, description: \"Not Qualified\" },\r\n // { id: 10, description: \"Inactive\" }\r\n // ]\r\n //});\r\n\r\n var columnApi = this.gridApi.getModel().columnApi\r\n var columns = columnApi.getAllColumns();\r\n columns.forEach(c => {\r\n var conditionField = new condition.ConditionField();\r\n conditionField.label = c.colDef.headerName || c.colDef.field;\r\n conditionField.name = c.colDef.field;\r\n conditionField.type = c.colDef.searchType;\r\n if (c.colDef.searchList) {\r\n conditionField.list = c.colDef.searchList;\r\n } else if (c.colDef.searchListQuery) {\r\n this.executeQuery(c.colDef.searchListQuery)\r\n .then(result => {\r\n conditionField.list = result\r\n });\r\n }\r\n this.fields.push(conditionField);\r\n });\r\n\r\n this.fields.sort((a, b) => {\r\n if (a.label < b.label)\r\n return -1;\r\n else if (a.label > b.label)\r\n return 1;\r\n else return 0;\r\n });\r\n }\r\n }\r\n\r\n loadCarrierStatuses() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierStatuses\")\r\n .then((result) => {\r\n this.carrierStatuses = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n let mills = JSON.parse(result.response);\r\n const userDivisions = this.securityService.user.millCodes;\r\n if (userDivisions.length > 0) {\r\n mills = mills.filter(o => userDivisions.indexOf(o.millId) > -1);\r\n }\r\n this.mills = mills;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n loadEquipment() {\r\n this.busyService.on();\r\n this.api.get(\"Registration\", \"GetEquipment\")\r\n .then((result) => {\r\n this.equipment = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n gridContainer: any;\r\n carrierStatuses: any;\r\n @observable\r\n gridApi: any;\r\n gridApiChanged(gridApi) {\r\n this.applyFilters();\r\n this.applyGridLayout();\r\n this.loadFields(); //load fields collection for filter panel\r\n }\r\n\r\n applyFilters() {\r\n this.quickFilterChanged();\r\n }\r\n\r\n applyGridLayout() {\r\n //apply user's personalized grid layout\r\n\r\n\r\n }\r\n personalizeColumns() {\r\n if (this.gridApi) {\r\n var columnApi = this.gridApi.getModel().columnApi\r\n var columns = columnApi.getAllColumns();\r\n columnApi.setColumnVisible(\"Id\", true);\r\n }\r\n }\r\n saveGridLayout() {\r\n }\r\n\r\n @computedFrom(\"carriers.length\",\r\n \"selectedMills.length\",\r\n \"selectedEquipment.length\",\r\n \"selectedStatuses.length\",\r\n \"selectedCarrierActiveStatuses.length\",\r\n \"selectedInsuranceStatuses.length\",\r\n \"selectedContractTypes.length\",\r\n \"selectedCarrierTypes.length\",\r\n \"selectedAuthorityTypes.length\"\r\n )\r\n get filteredCarriers(): Array {\r\n var carriers = this.carriers;\r\n\r\n //save search criteria\r\n //AureliaCookie.set('search.selectedMills', JSON.stringify(this.selectedMills), null);\r\n\r\n //carrier mill\r\n\r\n if (!carriers) return [];\r\n\r\n carriers = carriers.filter((item: any) => {\r\n\r\n // Per Rebecca Kelly, the general carrier search screen should not limit results based on user's assigned mills.\r\n //// if user has divisions assigned, then only show carriers that are assigned to that mill\r\n //let userDivisions = this.securityService.user.millCodes;\r\n //if (userDivisions.length > 0) {\r\n // return item.Mills && item.Mills.length\r\n // && userDivisions.find(o => item.Mills.indexOf(o) > -1)\r\n // && (this.isAllMillsSelected || this.selectedMills.find(m => {\r\n // return item.Mills.indexOf(m) > -1;\r\n // }));\r\n //} else {\r\n // return (this.isAllMillsSelected || this.selectedMills.find(m => {\r\n // return item.Mills && item.Mills.length && item.Mills.indexOf(m) > -1;\r\n // }));\r\n //}\r\n return (this.isAllMillsSelected || this.selectedMills.find(m => {\r\n return item.Mills && item.Mills.length && item.Mills.indexOf(m) > -1;\r\n }));\r\n\r\n });\r\n\r\n\r\n //carrier status\r\n if (this.selectedStatuses.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return this.selectedStatuses.indexOf(item.StatusDescription) > -1;\r\n });\r\n }\r\n\r\n //active/inactive\r\n if (this.selectedCarrierActiveStatuses.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return this.selectedCarrierActiveStatuses.indexOf(item.Active) > -1;\r\n });\r\n }\r\n\r\n //insurance status\r\n if (this.selectedInsuranceStatuses.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return this.selectedInsuranceStatuses.indexOf(item.InsuranceStatus) > -1;\r\n });\r\n }\r\n\r\n //equipment\r\n if (this.selectedEquipment.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return item.Equipment && item.Equipment.length > 0 && !!this.selectedEquipment.find(m => {\r\n return item.Equipment.indexOf(m) > -1;\r\n });\r\n });\r\n }\r\n\r\n\r\n //selectedCarrierTypes\r\n if (this.selectedCarrierTypes.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return this.selectedCarrierTypes.indexOf(item.EntityType) > -1;\r\n });\r\n }\r\n\r\n //selectedContractTypes\r\n if (this.selectedContractTypes.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return this.selectedContractTypes.indexOf(item.ContractType) > -1;\r\n });\r\n }\r\n\r\n //selectedAuthorityTypes\r\n if (this.selectedAuthorityTypes.length > 0) {\r\n carriers = carriers.filter((item: any) => {\r\n return this.selectedAuthorityTypes.indexOf(item.TypeOfAuthority) > -1;\r\n });\r\n }\r\n\r\n return carriers;\r\n }\r\n\r\n\r\n //search(reload: boolean = false) {\r\n // if (reload || !this.carriers) {\r\n\r\n // this.busyService.on();\r\n // this.carriersController.searchCarriers(this.filter)\r\n // .then((result) => {\r\n // this.carriers = JSON.parse(result.response);\r\n // })\r\n // .finally(() => this.busyService.off());\r\n\r\n // }\r\n\r\n // //setTimeout(() => {\r\n // // this.carriers[0].legalName = \"TOM\";\r\n // //}, 3000);\r\n //}\r\n\r\n @observable\r\n quickFilter: string;\r\n quickFilterChanged() {\r\n this.gridApi && this.gridApi.setQuickFilter(this.quickFilter);\r\n }\r\n\r\n carriers: Array\r\n @observable\r\n filter: CarrierFilter = new CarrierFilter();\r\n\r\n\r\n statuses: Array = [\r\n { id: 1, description: \"New\" },\r\n { id: 3, description: \"Complete\" }\r\n ];\r\n selectedStatuses: Array = [];\r\n\r\n\r\n contractTypes: Array = [\r\n { id: \"Small\", description: \"Small\" },\r\n { id: \"Master\", description: \"Master\" },\r\n { id: \"Modified\", description: \"Modified\" },\r\n { id: \"Single Facility\", description: \"Single Facility\" },\r\n { id: \"Addendum\", description: \"Addendum\" },\r\n { id: \"Transloader\", description: \"Transloader\" },\r\n { id: \"TransloaderVehicles\", description: \"TransloaderVehicles\" }\r\n ];\r\n selectedContractTypes: Array = [];\r\n\r\n carrierTypes = new Globals().getEntityTypes();\r\n selectedCarrierTypes: Array = [];\r\n\r\n\r\n authorityTypes: Array = [\r\n { id: \"BROKERAGE\", description: \"Brokerage\" },\r\n { id: \"PERMIT\", description: \"Asset Carrier\" },\r\n { id: \"BOTH\", description: \"Carrier W/ Brokerage Authority\" }\r\n ];\r\n selectedAuthorityTypes: Array = [];\r\n\r\n\r\n mills: Array = [];\r\n selectedMills: Array = [];//this.getObjectFromCookie(\"search.selectedMills\", []);\r\n\r\n equipment: Array = [];\r\n selectedEquipment: Array = [];\r\n\r\n selectedInsuranceStatuses: Array = [];\r\n insuranceStatuses: Array = [\r\n { id: 'None', description: \"No Insurance\" },\r\n { id: 'Active', description: \"Insurance Active\" },\r\n { id: 'Expired', description: \"Insurance Expired\" }\r\n ];\r\n\r\n selectedCarrierActiveStatuses: Array = [];\r\n carrierActiveStatuses: Array = [\r\n { id: true, description: \"Active\" },\r\n { id: false, description: \"Inactive\" }\r\n ];\r\n\r\n exportGrid() {\r\n this.gridApi.exportDataAsCsv();\r\n }\r\n\r\n //getObjectFromCookie(name, defaultValue) {\r\n // var val = AureliaCookie.get(name);\r\n // if (val) {\r\n // return JSON.parse(defaultValue);\r\n // } else {\r\n // return defaultValue;\r\n // }\r\n //}\r\n\r\n conditions: Array;\r\n search(force: boolean = false) {\r\n\r\n //clear post-search filters\r\n this.quickFilter = \"\";\r\n this.selectedMills = [];\r\n this.selectedEquipment = [];\r\n this.selectedStatuses = [];\r\n this.selectedCarrierActiveStatuses = [];\r\n this.selectedInsuranceStatuses = [];\r\n\r\n //build a set of conditions\r\n var apiConditions = this.buildConditionsForApi();\r\n\r\n console.log(JSON.stringify(apiConditions));\r\n\r\n //pass in conditions to force reload;\r\n if (force || !this.carriers) {\r\n //clean the conditions in case ones are stored with empty fields (like the default condition)\r\n var params = {\r\n searchConditions: apiConditions,\r\n table: \"CarriersFlattened\"\r\n };\r\n return this.api.submit(\"Carriers\", \"ExecuteSearchQuery\", params)\r\n .then((result) => {\r\n this.carriers = JSON.parse(result.response);\r\n })\r\n }\r\n }\r\n\r\n\r\n executeQuery(query) {\r\n return this.api.submit(\"Carriers\", \"ExecuteSearchQuery\", query)\r\n .then((result) => {\r\n return JSON.parse(result.response);\r\n })\r\n }\r\n\r\n\r\n buildConditionsForApi() {\r\n var conditions = this.conditions.filter(o => typeof o.field == \"object\").map(c => {\r\n return {\r\n chainOperator: c.chainOperator,\r\n fieldName: c.field.name,\r\n fieldType: c.field.type,\r\n searchOp: c.operation.operator,\r\n value: typeof c.value == \"string\" ? c.value : c.value.id\r\n };\r\n });\r\n return conditions\r\n }\r\n\r\n\r\n\r\n}\r\n","\r\nimport { DashboardController } from \"../controllers/dashboard-controller\";\r\nimport { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { computedFrom, autoinject, observable } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport * as moment from 'moment';\r\nimport { PushMessage, SignalrService } from \"../services/signalr-service\";\r\nimport { Subscription } from \"aurelia-event-aggregator\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class Dashboard {\r\n\r\n private isReloadNeeded = false;\r\n initialized: boolean = false;\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private api: WebApiService,\r\n private signalr: SignalrService) {\r\n }\r\n\r\n tabCountData = {};\r\n carrierRows = [];\r\n\r\n activate() {\r\n //this needs to be called first\r\n this.currentMillCode = \"All\";\r\n\r\n\r\n\r\n if (this.signalr) {\r\n //don't need to worry about unsubscribing because the dashboard is never unloaded.\r\n this.signalr.listen(PushMessage.CarrierStatusChanged, (message) => {\r\n // when carrier data changes, we need to reload the dashboard whenever it is re-activated.\r\n this.isReloadNeeded = true;\r\n });\r\n }\r\n }\r\n\r\n attached() {\r\n if (this.isReloadNeeded) {\r\n this.reload();\r\n this.isReloadNeeded = false;\r\n } else {\r\n // set active tab on load\r\n if (this.securityService.user.millCodes.length > 0 || this.securityService.hasRole('Executive')) {\r\n this.selectTab(\"divisionRosterMA\");\r\n } else {\r\n this.selectTab(\"newCarriers\");\r\n }\r\n }\r\n }\r\n\r\n activeTab: string = \"\";\r\n\r\n\r\n async loadTabData() {\r\n\r\n this.busyService.on();\r\n try {\r\n const params = {\r\n dashboardId: this.activeTab\r\n };\r\n if (this.currentMillCode && this.currentMillCode != \"All\")\r\n params[\"millId\"] = this.currentMillCode;\r\n\r\n var result = await this.api.get(\"Carriers\", \"GetDashboardScreenData\", params);\r\n var data = JSON.parse(result.response);\r\n this.carrierRows = data.tabData;\r\n this.tabCountData = data.tabCountData;\r\n\r\n this.initialized = true;\r\n } finally {\r\n this.busyService.off();\r\n }\r\n\r\n\r\n }\r\n\r\n reload() {\r\n this.carrierPromise = null;\r\n this.loadTabData();\r\n }\r\n\r\n @observable()\r\n currentMillCode: string;\r\n currentMillCodeChanged() {\r\n if (this.initialized)\r\n this.reload();\r\n }\r\n carriers: Array;\r\n carrierPromise: any;\r\n\r\n\r\n selectTab(activeTab: string) {\r\n this.activeTab = activeTab;\r\n this.loadTabData();\r\n }\r\n\r\n}","import { computedFrom, autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { SecurityService } from \"../../services/security-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { DivisionContact } from \"../../models/division-contact\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { ContactPhone } from '../../models/contact-phone';\r\n\r\n@autoinject\r\nexport class UpdateDivisionContactDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private appMessageService: AppMessageService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n this.appMessageService.containerId = \"update-contact-dialog\";\r\n }\r\n\r\n contact: DivisionContact;\r\n contactPhones: Array = [];\r\n deletedPhones: Array = [];\r\n allSelected: Boolean = false;\r\n nameElement: HTMLElement;\r\n contactTypes: Array = [];\r\n\r\n //an aray of mill codes (populated when the contact loads and bound to the mill list selection box)\r\n contactMills: Array = [];\r\n\r\n async activate(model) {\r\n\r\n this.deletedPhones = [];\r\n\r\n //defaults for a new contact\r\n if (!model.contact) {\r\n this.contact = new DivisionContact();\r\n this.contact.divisionId = model.divisionId;\r\n } else {\r\n // get a new copy so that the original is not modified\r\n this.contact = await this.getDivisionContact(model.contact.id);\r\n }\r\n\r\n await this.loadContactTypes();\r\n }\r\n\r\n attached() {\r\n this.nameElement && this.nameElement.focus();\r\n }\r\n\r\n async loadContactTypes() {\r\n const result = await this.api.get(\"Carriers\", \"GetContactTypes\")\r\n const contactTypes = JSON.parse(result.response);\r\n this.contactTypes = contactTypes.filter(o => o.division == true);\r\n }\r\n\r\n async getDivisionContact(contactId: number) {\r\n try {\r\n let result = await this.api.get(\"Divisions\", \"GetDivisionContact\", { contactId: contactId });\r\n let contact = JSON.parse(result.response);\r\n return contact;\r\n } catch (e) {\r\n alert(\"Error loading contact: \" + e);\r\n }\r\n }\r\n removePhone(phone: ContactPhone) {\r\n if (phone.contactPhoneId) {\r\n this.deletedPhones.push(phone);\r\n }\r\n let indexToRemove = this.contact.phones.findIndex(o => o == phone);\r\n if (indexToRemove > -1) {\r\n this.contact.phones.splice(indexToRemove, 1);\r\n }\r\n }\r\n addPhone() {\r\n const lastPhone = this.contact.phones[this.contact.phones.length - 1];\r\n if (!lastPhone || (lastPhone.type && lastPhone.number)) {\r\n this.contact.phones.push(new ContactPhone());\r\n }\r\n }\r\n\r\n delete() {\r\n var params = {\r\n id: this.contact.id\r\n };\r\n\r\n this.pageMessageService.clear();\r\n this.api.post(\"Divisions\", \"DeleteDivisionContact\", params)\r\n .then(() => {\r\n $[\"notify\"](\"Contact deleted\", { className: \"success\", position: \"top center\" });\r\n this.controller.ok();\r\n }, () => {\r\n this.appMessageService.addErrorMessage(\"Error deleting contact\");\r\n });\r\n }\r\n\r\n save() {\r\n\r\n this.pageMessageService.clear();\r\n\r\n\r\n //save contacts immediately\r\n //requires a valid carrierId\r\n if (this.contact.divisionId == 0) {\r\n throw new Error(\"Cannot save contacts until the division has been saved.\");\r\n }\r\n\r\n //ensure that contact type is selected\r\n if (!this.contact.contactTypeId) {\r\n alert(\"Please select a Contact Type\");\r\n return;\r\n }\r\n\r\n //ensure that contact name is specified\r\n if (this.contact.contactTypeId != -100 && !this.contact.name) {\r\n alert(\"Please enter Name for the contact.\");\r\n return;\r\n }\r\n\r\n var params = {\r\n contact: this.buildContactModel(),\r\n deletedPhones: this.deletedPhones\r\n };\r\n this.api.post(\"Divisions\", \"UpdateDivisionContact\", params)\r\n .then(() => {\r\n if (!this.contact.id) {\r\n this.appMessageService.addSuccessMessage(\"Contact created\");\r\n } else {\r\n this.appMessageService.addSuccessMessage(\"Contact updated\");\r\n }\r\n this.controller.ok();\r\n }, () => {\r\n this.appMessageService.addErrorMessage(\"Error saving contact\");\r\n });\r\n }\r\n\r\n buildContactModel() {\r\n return {\r\n id: this.contact.id,\r\n divisionId: this.contact.divisionId,\r\n name: this.contact.name,\r\n title: this.contact.title,\r\n verified: this.contact.verified,\r\n email: this.contact.email,\r\n phones: this.contact.phones,\r\n contactTypeId: this.contact.contactTypeId,\r\n city: this.contact.city,\r\n state: this.contact.state\r\n };\r\n }\r\n\r\n\r\n}","import { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { Carrier } from \"../models/carrier\"\r\nimport { CarrierFilter } from \"../models/carrier-filter\"\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport * as condition from './widgets/list-filter/condition';\r\nimport { Division } from \"../models/division\";\r\nimport { Contact } from \"../models/contact\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateDivisionContactDialog } from \"./dialogs/update-division-contact-dialog\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class Divisions {\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private dialogService: DialogService,\r\n private carriersController: CarriersController,\r\n private appMessageService: AppMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n async activate(params) {\r\n await this.initializePage(params.id);\r\n }\r\n\r\n async refresh() {\r\n const selectedDivisionId = (this.selectedDivision || { id: -1 }).id;\r\n this.initializePage(selectedDivisionId, true);\r\n }\r\n\r\n async initializePage(selectedDivisionId: number, forceReload: boolean = false) {\r\n if (forceReload || this.divisions.length == 0) {\r\n await this.loadDivisions();\r\n }\r\n if (selectedDivisionId) {\r\n this.selectedDivision = this.divisions.find((o: Division) => o.id == selectedDivisionId);\r\n if (this.selectedDivision) {\r\n await this.loadSelectedDivisionContacts(this.selectedDivision.id);\r\n }\r\n }\r\n }\r\n\r\n async loadSelectedDivisionContacts(divisionId: number) {\r\n this.busyService.on();\r\n try {\r\n var result = await this.api.get(\"Divisions\", \"GetDivisionContacts\", { divisionId: divisionId });\r\n this.selectedDivisionContacts = JSON.parse(result.response);\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n onReady() {\r\n this.autosizeColumns();\r\n }\r\n\r\n autosizeColumns() {\r\n this.gridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n\r\n openContactDialog(contact: Contact) {\r\n this.dialogService.open({\r\n viewModel: UpdateDivisionContactDialog,\r\n model: {\r\n contact: contact, //create a copy so that the original isn't modified\r\n divisionId: this.selectedDivision.id\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload contacts\r\n this.loadSelectedDivisionContacts(this.selectedDivision.id);\r\n }\r\n });\r\n }\r\n\r\n columnDefs: Array = [\r\n { field: \"id\", hide: true },\r\n {\r\n field: \"name\", headerName: \"Name\", filter: 'text',\r\n cellRenderer: (params) => this.linkCellRenderer(params)\r\n },\r\n {\r\n field: \"code\", headerName: \"Mill Code\", filter: 'text',\r\n cellRenderer: (params) => this.linkCellRenderer(params)\r\n },\r\n { field: \"state\", headerName: \"State\", filter: 'text' },\r\n { field: \"city\", headerName: \"City\", filter: 'text' }\r\n ];\r\n\r\n gridOptions = {\r\n api: null, // this is set by the grid once initialized.\r\n columnDefs: this.columnDefs,\r\n pagination: false\r\n };\r\n\r\n selectedDivision: Division;\r\n selectedDivisionContacts: Array = [];\r\n divisions: Array = [];\r\n\r\n loadDivisions() {\r\n this.busyService.on();\r\n return this.api.get(\"Divisions\", \"GetDivisions\")\r\n .then((result) => {\r\n this.divisions = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n private linkCellRenderer(params: any) {\r\n if (params.value != null) {\r\n //Note: include the route-href parameter so that the addBaseUrlIfMiddleClick (in app.ts) \r\n // is processed(even though the href attribute is set directly)\r\n return `${params.value}`;\r\n }\r\n return params.value;\r\n }\r\n\r\n saveDivision() {\r\n this.busyService.on();\r\n try {\r\n this.api.post(\"Divisions\", \"UpdateDivision\", this.selectedDivision);\r\n this.appMessageService.addSuccessMessage(\"Division updated\");\r\n } catch (e) {\r\n alert(\"Error saving division: \" + e);\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { AppMessageService } from '../services/app-message-service';\r\nimport { Carrier } from '../models/carrier';\r\nimport { BusyService } from '../services/busy-service';\r\nimport * as moment from 'moment';\r\n\r\n@autoinject\r\nexport class EmailViewer {\r\n notFound: boolean;\r\n constructor(\r\n protected controller: DialogController,\r\n private busy: BusyService,\r\n private api: WebApiService,\r\n private msg: AppMessageService) {\r\n this.msg.containerId = \"email-viewer-dialog\";\r\n }\r\n\r\n email: any;\r\n emailAttachments: any[];\r\n\r\n activate(params) {\r\n const emailId = params.emailId;\r\n this.msg.clearNonPersistentMessages();\r\n this.loadEmail(emailId);\r\n this.loadEmailAttachmentsSummary(emailId);\r\n }\r\n\r\n resend() {\r\n this.busy.on();\r\n var params = {\r\n emailId: this.email.emailId\r\n };\r\n this.api.post(\"Email\", \"ResendEmail\", params)\r\n .then(result => {\r\n this.busy.off();\r\n this.msg.addSuccessMessage(\"Email resent\");\r\n }, e => {\r\n this.busy.off();\r\n this.msg.addErrorMessage(e || \"Error occurred.\");\r\n });\r\n }\r\n\r\n refresh() {\r\n this.loadEmail(this.email.emailId);\r\n }\r\n\r\n private loadEmail(emailId) {\r\n this.busy.on();\r\n var params = {\r\n emailId: emailId\r\n };\r\n this.notFound = false;\r\n this.msg.clearNonPersistentMessages();\r\n this.api.get(\"Carriers\", \"GetEmail\", params)\r\n .then(result => {\r\n if (result.response) {\r\n this.email = JSON.parse(result.response);\r\n this.email.insertedOnFormatted = moment(this.email.insertedOn).format(\"MM/DD/YYYY h:mm a\");\r\n\r\n if (this.email.emailDate)\r\n this.email.emailDateFormatted = moment(this.email.emailDate).format(\"MM/DD/YYYY h:mm a\");\r\n } else {\r\n this.notFound = true;\r\n this.msg.addErrorMessage(\"Email not found\");\r\n }\r\n this.busy.off();\r\n\r\n }, e => {\r\n this.busy.off();\r\n this.msg.addErrorMessage(e || \"Error occurred.\");\r\n });\r\n }\r\n private loadEmailAttachmentsSummary(emailId) {\r\n this.busy.on();\r\n var params = {\r\n emailId: emailId\r\n };\r\n this.api.get(\"Carriers\", \"GetEmailAttachmentsSummary\", params)\r\n .then(result => {\r\n this.emailAttachments = JSON.parse(result.response);\r\n this.busy.off();\r\n\r\n }, e => {\r\n this.busy.off();\r\n this.msg.addErrorMessage(e || \"Error occurred.\");\r\n });\r\n }\r\n}","import { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { Carrier } from \"../models/carrier\"\r\nimport { CarrierFilter } from \"../models/carrier-filter\"\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport * as condition from './widgets/list-filter/condition';\r\nimport { Division } from \"../models/division\";\r\nimport { Contact } from \"../models/contact\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateDivisionContactDialog } from \"./dialogs/update-division-contact-dialog\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class Emails {\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private dialogService: DialogService,\r\n private appMessageService: AppMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n public emailLogComponent: any;\r\n\r\n async activate(params) {\r\n }\r\n\r\n public async refresh() {\r\n this.emailLogComponent.refresh();\r\n }\r\n\r\n\r\n\r\n}","import { computedFrom, autoinject, observable } from \"aurelia-framework\";\r\n\r\n@autoinject()\r\nexport class ExecutiveDashboardDetails {\r\n}","import * as moment from 'moment';\r\n\r\nexport class ShortDateValueConverter {\r\n toView(value) {\r\n if (value) {\r\n const m = moment(value);\r\n if (m.isValid()) {\r\n return m.format('M/D/YYYY');\r\n }\r\n return \"\";\r\n }\r\n }\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { ShortDateValueConverter } from '../../resources/value-converters/short-date';\r\n\r\n@autoinject\r\nexport class ExecutiveDashboardDetailsDialog {\r\n constructor(\r\n private shortDateConverter: ShortDateValueConverter,\r\n protected controller: DialogController,\r\n private api: WebApiService) {\r\n }\r\n\r\n period: string;\r\n millCode: string;\r\n entityType: string;\r\n details: any[] = [];\r\n\r\n activate(params) {\r\n this.period = params.period;\r\n this.millCode = params.millCode;\r\n this.entityType = params.entityType;\r\n return this.loadDetails();\r\n }\r\n\r\n loadDetails(): any {\r\n return this.api.get(\"Reports\", \"GetExecutiveDashboardProcessDuration\", { period: this.period, millCode: this.millCode, entityType: this.entityType, rawData: true })\r\n .then(result => {\r\n this.details = JSON.parse(result.response);\r\n });\r\n }\r\n\r\n columnDefs: Array = [\r\n {\r\n headerName: \"Carrier\", field: \"legalname\", filter: 'text',\r\n cellRenderer: (params) => {\r\n if (params.value != null) {\r\n return `${params.data.legalname + \" (\" + params.data.scaccode + \")\"}`;\r\n }\r\n return params.value;\r\n },\r\n pinned: 'left'\r\n },\r\n {\r\n headerName: \"Request\", width: 120, field: \"requestNumber\", filter: 'text',\r\n cellRenderer: (params) => {\r\n if (params.value != null) {\r\n return `${params.data.requestNumber}`;\r\n }\r\n return params.value;\r\n }\r\n },\r\n\r\n {\r\n headerName: \"Req Opened\", width: 160, field: \"DivisionRequestDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n {\r\n headerName: \"Req Closed\", width: 160, field: \"RequestClosedDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n // Division Requested Duration\r\n {\r\n headerName: \"Division Requested On\", width: 160, field: \"DivisionRequestDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"DivisionRequestDuration\", filter: 'number' },\r\n // Link Sent Duration\r\n {\r\n headerName: \"Link Sent On\", width: 160, field: \"LinkSentDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"LinkSentDuration\", filter: 'number' },\r\n // Carrier Registered Duration\r\n {\r\n headerName: \"Carrier Registered On\", width: 160, field: \"CarrierRegisteredDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"CarrierRegisteredDuration\", filter: 'number' },\r\n // Packet Sent Duration\r\n {\r\n headerName: \"Packet Sent On\", width: 160, field: \"PacketSentDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"PacketSentDuration\", filter: 'number' },\r\n // In Process Duration\r\n {\r\n headerName: \"In Process On\", width: 160, field: \"InProcessDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"InProcessDuration\", filter: 'number' },\r\n // Insurance Review Duration\r\n {\r\n headerName: \"Insurance Review On\", width: 160, field: \"InsuranceReviewDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"InsuranceReviewDuration\", filter: 'number' },\r\n // Insurance Complete Duration\r\n {\r\n headerName: \"Insurance Complete On\", width: 160, field: \"InsuranceCompleteDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"# Days\", width: 100, field: \"InsuranceCompleteDuration\", filter: 'number' },\r\n {\r\n headerName: \"Master Approved On\", width: 160, field: \"MasterApprovedDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.shortDateConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"Days to Completion\", width: 160, field: \"DaysToCompletion\", filter: 'number' }\r\n\r\n ];\r\n\r\n gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n // onRowClicked: (e) => this.onRowClicked(e),\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n\r\n gridApi: any;\r\n\r\n exportGrid() {\r\n this.gridApi.exportDataAsCsv({\r\n fileName: \"executive_dashboard_details.csv\"\r\n });\r\n }\r\n\r\n onReady(event) {\r\n this.gridApi = this.gridOptions.api;\r\n }\r\n}","import { computedFrom, autoinject, observable } from \"aurelia-framework\";\r\nimport { Router, Redirect, activationStrategy } from 'aurelia-router';\r\n\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { Globals } from \"../models/globals\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { ExecutiveDashboardDetailsDialog } from \"./dialogs/executive-dashboard-details-dialog\";\r\n\r\n@autoinject()\r\nexport class ExecutiveDashboard {\r\n\r\n entityTypes: { id: string; description: string; }[];\r\n\r\n\r\n @observable()\r\n selectedEntityType = \"\";\r\n isAttached: boolean;\r\n selectedEntityTypeChanged() {\r\n this.loadDashboardCarriersStatus();\r\n this.loadDashboardProcessDuration();\r\n }\r\n\r\n millCodes: Array = [];\r\n\r\n @observable()\r\n isAllEntityTypesSelected: boolean;\r\n\r\n constructor(\r\n private securityService: SecurityService,\r\n private dialogService: DialogService,\r\n private busyService: BusyService,\r\n private api: WebApiService) {\r\n\r\n this.entityTypes = new Globals().getEntityTypes();\r\n }\r\n\r\n activate() {\r\n this.currentMillCode = this.securityService.user.millCodes[0];\r\n this.loadMills();\r\n }\r\n\r\n attached() {\r\n var stuff = ($(\".status-info-button\"));\r\n stuff.popover();\r\n this.isAttached = true;\r\n\r\n this.loadDashboardCarriersStatus();\r\n this.loadDashboardProcessDuration();\r\n\r\n }\r\n\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n let response = JSON.parse(result.response);\r\n this.millCodes = response.map((item) => {\r\n return item.code;\r\n }).filter(millCode => {\r\n if (this.securityService.user.millCodes.length == 0)\r\n return true;\r\n else\r\n return this.securityService.user.millCodes.find(o => o == millCode);\r\n });\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n @observable()\r\n currentMillCode: string;\r\n currentMillCodeChanged() {\r\n this.loadDashboardCarriersStatus();\r\n this.loadDashboardProcessDuration();\r\n }\r\n\r\n\r\n carrierStatusInfo: any;\r\n processDurationInfo: any;\r\n\r\n @observable()\r\n selectedProcessDurationPeriod: string = \"WeekToDate\";\r\n\r\n selectedProcessDurationPeriodChanged() {\r\n this.loadDashboardProcessDuration();\r\n }\r\n\r\n calculatePercentOfTotal(part, total) {\r\n if (total > 0) {\r\n return Math.round((part / total) * 100);\r\n }\r\n }\r\n\r\n loadDashboardCarriersStatus() {\r\n if (!this.isAttached) return;\r\n\r\n this.busyService.on();\r\n let millCode = this.currentMillCode;\r\n return this.api.get(\"Reports\", \"GetExecutiveDashboardCarriersStatus\", { millCode: millCode, entityType: this.selectedEntityType })\r\n .then((result) => {\r\n var data = JSON.parse(result.response);\r\n this.carrierStatusInfo = data;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n loadDashboardProcessDuration() {\r\n if (!this.isAttached) return;\r\n\r\n this.busyService.on();\r\n return this.api.get(\"Reports\", \"GetExecutiveDashboardProcessDuration\", { period: this.selectedProcessDurationPeriod, millCode: this.currentMillCode, entityType: this.selectedEntityType })\r\n .then((result) => {\r\n var data = JSON.parse(result.response);\r\n this.processDurationInfo = data;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n viewDetails() {\r\n\r\n this.dialogService.open(\r\n {\r\n viewModel: ExecutiveDashboardDetailsDialog,\r\n model: { period: this.selectedProcessDurationPeriod, millCode: this.currentMillCode, entityType: this.selectedEntityType }\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { Carrier } from \"../models/carrier\"\r\nimport { CarrierFilter } from \"../models/carrier-filter\"\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport * as condition from './widgets/list-filter/condition';\r\nimport { Division } from \"../models/division\";\r\nimport { Contact } from \"../models/contact\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateDivisionContactDialog } from \"./dialogs/update-division-contact-dialog\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class Landing {\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private dialogService: DialogService,\r\n private appMessageService: AppMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n public emailLogComponent: any;\r\n\r\n async activate(params) {\r\n }\r\n\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { AppMessageService } from '../../services/app-message-service';\r\nimport { Carrier } from '../../models/carrier';\r\nimport { Equipment } from '../../models/equipment';\r\nimport { BusyService } from '../../services/busy-service';\r\n\r\n@autoinject\r\nexport class RefineMillSearchDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService,\r\n private msg: AppMessageService) {\r\n this.msg.containerId = \"refine-search-carrier-dialog\";\r\n }\r\n\r\n public criteria: CarrierSearchForDivisionUsersCriteria;\r\n public equipment: Equipment[] = [];\r\n\r\n async activate(params) {\r\n\r\n await this.loadEquipment();\r\n\r\n this.criteria = params.criteria;\r\n }\r\n\r\n ok() {\r\n this.controller.ok(this.criteria);\r\n }\r\n\r\n loadEquipment() {\r\n this.busyService.on();\r\n this.api.get(\"Registration\", \"GetEquipment\")\r\n .then((result) => {\r\n this.equipment = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n}\r\n\r\nexport class CarrierSearchForDivisionUsersCriteria {\r\n public carrierTypes: string[] = ['TRUCKS'];\r\n public typeOfAuthority: string = \"\";\r\n public requiredInsuranceCargo: \"\" = undefined;\r\n public equipmentTypeIds: string[] = [];\r\n public specialtyEquipmentIds: number[] = [];\r\n public equipmentIds: number[] = []; // used to send data to server, but is calculated value on the client-side\r\n public heavyHaul = false;\r\n public haulScrap = false;\r\n public hazmat = false;\r\n public diversity = false;\r\n public excludeNonMasterApproved = true;\r\n public activeInsurance = false;\r\n public hasVolume = true;\r\n public destinationStates: string[] = [];\r\n public originStates: string[] = [];\r\n public otherDivisions = true;\r\n public divisionCode = \"\";\r\n public ospCarrierProductGroups = [];\r\n public showAllPreferredLanes = false;\r\n public showAllActualLanes = false;\r\n public showAllEquipmentTypes = false;\r\n\r\n}\r\n","import { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { Carrier } from \"../models/carrier\"\r\nimport { CarrierFilter } from \"../models/carrier-filter\"\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport states from \"../models/state-list\";\r\nimport lanes from \"../models/lane-list\";\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { activationStrategy, Router } from 'aurelia-router';\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport * as condition from './widgets/list-filter/condition';\r\nimport { Globals } from \"../models/globals\";\r\nimport { CarrierSearchForDivisionUsersCriteria, RefineMillSearchDialog } from \"./dialogs/mill-search-carrier-refine\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { Equipment, EquipmentType } from \"../models/equipment\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class MillSearchCarriers {\r\n lanes: { country: string; lanes: { name: string; abbreviation: string; }[]; }[];\r\n productGroups: any;\r\n\r\n determineActivationStrategy() {\r\n //activationStrategy.replace to replace the viewmodel with a new instance\r\n // or activationStrategy.invokeLifecycle to invoke router lifecycle methods on the existing VM\r\n // or activationStrategy.noChange to explicitly use the default behavior\r\n return activationStrategy.invokeLifecycle;\r\n }\r\n\r\n requiredInsuranceCargo: \"\";\r\n // heavyHaul: boolean;\r\n // diversity: boolean;\r\n // hazmat: boolean;\r\n entityTypes: any;\r\n // selectedEntityTypes: Array = ['TRUCKS'];\r\n searchCriteria: CarrierSearchForDivisionUsersCriteria;\r\n currentQuery: string;\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private carriersController: CarriersController,\r\n private router: Router,\r\n private api: WebApiService) {\r\n\r\n this.lanes = lanes;\r\n this.states = states;\r\n }\r\n\r\n async activate(params) {\r\n\r\n if (!this.equipment || !this.equipment.length) {\r\n await Promise.all([\r\n this.loadEquipment(),\r\n this.loadEquipmentTypes(),\r\n this.loadProductGroups()\r\n ]);\r\n }\r\n\r\n this.searchCriteria = new CarrierSearchForDivisionUsersCriteria();\r\n\r\n\r\n if (!this.entityTypes || !this.entityTypes.length)\r\n this.entityTypes = await new Globals().getEntityTypes();\r\n\r\n if (params.query && params.query != this.currentQuery) {\r\n this.searchCriteria = JSON.parse(params.query);\r\n this.applyGridLayout();\r\n await this.executeSearch();\r\n } else if (!params.query || !this.searchResults) {\r\n this.applyGridLayout();\r\n this.filterApplied = false;\r\n }\r\n this.currentQuery = params.query;\r\n\r\n }\r\n\r\n @computedFrom(\"searchCriteria.equipmentTypeIds\", \"searchCriteria.equipmentTypeIds.length\")\r\n get filteredEquipment(): any[] {\r\n // return list of ids, grouped by type\r\n const filteredEquipment: Array<{ typeName: string, equipment: Equipment[] }> = [];\r\n this.searchCriteria.equipmentTypeIds.forEach(equipmentTypeId => {\r\n const equipment = this.equipment.filter(o => equipmentTypeId == o.equipmentTypeId);\r\n if (equipment.length > 1) {\r\n const equipmentType = this.equipmentTypes.filter(o => o.equipmentTypeId == equipmentTypeId)[0];\r\n filteredEquipment.push({ typeName: equipmentType.type, equipment: equipment });\r\n }\r\n });\r\n return filteredEquipment;\r\n }\r\n loadEquipmentTypes() {\r\n this.busyService.on();\r\n this.api.get(\"Registration\", \"GetEquipmentTypes\")\r\n .then((result) => {\r\n this.equipmentTypes = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadProductGroups() {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetProductGroups\")\r\n .then((result) => {\r\n this.productGroups = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n states: Array;\r\n selectedOriginStates: Array = [];\r\n selectedDestinationStates: Array = [];\r\n\r\n fields: Array;\r\n includeAllMills = true;\r\n\r\n refineSearch() {\r\n this.filterApplied = false;\r\n // // show popup with additional filter options\r\n // this.dialogService.open(\r\n // {\r\n // viewModel: RefineMillsearchDialog,\r\n // model: { criteria: this.searchCriteria }\r\n // })\r\n // .whenClosed((result) => {\r\n // if (!result.wasCancelled) {\r\n // //apply any refinedCriteria changes\r\n // var searchCriteria = result.output;\r\n // this.search(searchCriteria);\r\n // }\r\n // });\r\n }\r\n configureGridOptions() {\r\n // show popup with additional options\r\n this.dialogService.open(\r\n {\r\n viewModel: RefineMillSearchDialog,\r\n model: { criteria: this.searchCriteria }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //apply any refinedCriteria changes\r\n var searchCriteria = result.output;\r\n this.searchCriteria = searchCriteria;\r\n this.personalizeColumns();\r\n }\r\n });\r\n }\r\n\r\n loadEquipment() {\r\n this.busyService.on();\r\n this.api.get(\"Registration\", \"GetEquipment\")\r\n .then((result) => {\r\n this.equipment = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n filterApplied = false;\r\n gridContainer: any;\r\n\r\n searchResults = [];\r\n\r\n @observable\r\n gridApi: any;\r\n gridApiChanged(gridApi) {\r\n this.applyFilters();\r\n this.applyGridLayout();\r\n }\r\n\r\n applyFilters() {\r\n this.quickFilterChanged();\r\n }\r\n @observable\r\n quickFilter: string;\r\n quickFilterChanged() {\r\n this.gridApi && this.gridApi.setQuickFilter(this.quickFilter);\r\n }\r\n applyGridLayout() {\r\n //apply user's personalized grid layout\r\n this.personalizeColumns();\r\n }\r\n\r\n personalizeColumns() {\r\n if (this.gridApi) {\r\n var columnApi = this.gridApi.getModel().columnApi\r\n var columns = columnApi.getAllColumns();\r\n\r\n columnApi.setColumnVisible(\"preferredOrigins\", this.searchCriteria.showAllPreferredLanes);\r\n columnApi.setColumnVisible(\"preferredDestinations\", this.searchCriteria.showAllPreferredLanes);\r\n columnApi.setColumnVisible(\"actualOrigins\", this.searchCriteria.showAllActualLanes);\r\n columnApi.setColumnVisible(\"actualDestinations\", this.searchCriteria.showAllActualLanes);\r\n columnApi.setColumnVisible(\"equipment\", this.searchCriteria.showAllEquipmentTypes);\r\n }\r\n }\r\n\r\n saveGridLayout() {\r\n }\r\n\r\n statusIsMasterApproved(statusId) {\r\n return statusId == 8 || statusId == 11;\r\n }\r\n\r\n private reset() {\r\n // this.selectedEquipment = [];\r\n // this.selectedOriginStates = [];\r\n // this.selectedDestinationStates = [];\r\n this.searchCriteria = new CarrierSearchForDivisionUsersCriteria();\r\n this.filterApplied = false;\r\n this.currentQuery = \"\";\r\n }\r\n\r\n equipment: Array = [];\r\n equipmentTypes: Array = [];\r\n selectedEquipment: Array = [];\r\n selectedEquipmentTypes: EquipmentType[] = [];\r\n\r\n exportGrid() {\r\n this.gridApi.exportDataAsCsv();\r\n }\r\n\r\n\r\n newSearch() {\r\n this.reset();\r\n this.router.navigateToRoute(\"mill-search-carriers\");\r\n }\r\n\r\n // search(criteria) {\r\n search() {\r\n\r\n //build search criteria if not already built. Otherwise, it will be modified by the refine criteria dialog.\r\n const searchCriteria = this.searchCriteria; // criteria || this.buildCriteria();\r\n const queryJson = JSON.stringify(searchCriteria);\r\n if (queryJson != this.currentQuery) {\r\n this.router.navigateToRoute(\"mill-search-carriers\", { query: queryJson });\r\n } else {\r\n this.executeSearch();\r\n }\r\n\r\n }\r\n\r\n executeSearch() {\r\n // custom field mapping for equipment type groups to individual equipment IDs\r\n // this.searchCriteria.specialtyEquipmentIds =\r\n //this.equipment.filter(o => this.selectedEquipmentTypes.find(t => t.equipmentTypeId == o.equipmentTypeId)).map(o => o.id);\r\n\r\n\r\n //equipmentIds\r\n\r\n //this.searchCriteria.specialtyEquipmentIds = this.selectedEquipment;\r\n // debugger;\r\n\r\n return this.api.submit(\"Carriers\", \"CarrierSearchForDivisionUsers\", this.searchCriteria)\r\n .then((result) => {\r\n this.searchResults = JSON.parse(result.response);\r\n this.filterApplied = true;\r\n });\r\n }\r\n\r\n\r\n // buildCriteria(): CarrierSearchForDivisionUsersCriteria {\r\n // var criteria = new CarrierSearchForDivisionUsersCriteria();\r\n\r\n // criteria.equipmentIds =\r\n // this.equipment.filter(o => this.selectedEquipmentTypes.find(t => t.equipmentTypeId == o.equipmentTypeId)).map(o => o.id);\r\n // criteria.carrierTypes = this.selectedEntityTypes;\r\n // criteria.requiredInsuranceCargo = this.requiredInsuranceCargo;\r\n // criteria.originStates = this.selectedOriginStates;\r\n // criteria.destinationStates = this.selectedDestinationStates;\r\n\r\n // return criteria;\r\n // }\r\n\r\n\r\n\r\n}","export class DefaultValidationRenderer {\r\n render(instruction) {\r\n\r\n for (let { error, elements } of instruction.unrender) {\r\n for (let element of elements) {\r\n this.remove(element, error);\r\n }\r\n }\r\n\r\n for (let { error, elements } of instruction.render) {\r\n for (let element of elements) {\r\n this.add(element, error);\r\n }\r\n }\r\n }\r\n\r\n add(element, error) {\r\n\r\n\r\n var ddcl = element.closest(\"dropdown-checklist\");\r\n if (ddcl) {\r\n ddcl.querySelector(\".dropdown\").classList.add('has-error');\r\n }\r\n\r\n\r\n const formGroup = element.querySelector('.control-group') || element.closest(\".control-group\") || element.querySelector('.form-group') || element.closest(\".form-group\");\r\n if (!formGroup) {\r\n return;\r\n }\r\n // add the has-error class to the enclosing form-group div\r\n formGroup.classList.add('has-error');\r\n\r\n // for control-groups, add error to preceding label, if any\r\n if (formGroup.previousElementSibling && formGroup.previousElementSibling.tagName == \"LABEL\") {\r\n formGroup.previousElementSibling.classList.add('has-error');\r\n }\r\n // add help-block\r\n // const message = document.createElement('span');\r\n // message.className = 'help-block validation-message';\r\n // message.textContent = error.message;\r\n // message.id = `validation-message-${error.id}`;\r\n // formGroup.appendChild(message);\r\n\r\n var errorPart = formGroup.querySelector(\".error-part\");\r\n if (errorPart) {\r\n errorPart.style.display = \"block\";\r\n\r\n var errorLabel = errorPart.querySelector(\".error-label\");\r\n if (errorPart) {\r\n errorLabel.innerText = error.message;\r\n }\r\n }\r\n }\r\n\r\n remove(element, error) {\r\n\r\n\r\n var ddcl = element.closest(\"dropdown-checklist\");\r\n if (ddcl) {\r\n ddcl.querySelector(\".dropdown\").classList.remove('has-error');\r\n\r\n }\r\n const formGroup = element.querySelector('.control-group') || element.closest(\".control-group\") || element.querySelector('.form-group') || element.closest(\".form-group\");\r\n if (!formGroup) {\r\n return;\r\n }\r\n\r\n // for control-groups, remove error from preceding label, if any\r\n if (formGroup.previousElementSibling && formGroup.previousElementSibling.tagName == \"LABEL\") {\r\n formGroup.previousElementSibling.classList.remove('has-error');\r\n }\r\n\r\n // // remove help-block\r\n // const message = formGroup.querySelector(`#validation-message-${error.id}`);\r\n // if (message) {\r\n // formGroup.removeChild(message);\r\n\r\n // remove the has-error class from the enclosing form-group div\r\n if (formGroup.querySelectorAll('.help-block.validation-message').length === 0) {\r\n formGroup.classList.remove('has-error');\r\n }\r\n\r\n\r\n var errorPart = formGroup.querySelector(\".error-part\");\r\n if (errorPart) {\r\n errorPart.style.display = \"none\";\r\n\r\n var errorLabel = errorPart.querySelector(\".error-label\");\r\n if (errorPart) {\r\n errorLabel.innerText = \"\";\r\n }\r\n }\r\n\r\n }\r\n}","import { PageMessageService } from '../services/page-message-service';\r\nimport { WebApiService } from '../services/web-api-service';\r\nimport { DefaultValidationRenderer } from \"../resources/renderers/default-validation-renderer\";\r\nimport { activationStrategy, Router } from 'aurelia-router';\r\n\r\nimport { newInstance, autoinject } from 'aurelia-framework';\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { SimpleDialog } from './dialogs/simple-dialog';\r\n\r\n\r\n@autoinject()\r\nexport class RegisterUser {\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private router: Router,\r\n private pageMessageService: PageMessageService,\r\n @newInstance() private controller: ValidationController,\r\n private api: WebApiService) {\r\n\r\n this.controller.validateTrigger = validateTrigger.change;\r\n controller.addRenderer(new DefaultValidationRenderer());\r\n\r\n }\r\n\r\n email: string;\r\n\r\n register() {\r\n this.pageMessageService.clear();\r\n if (this.email && this.email.toLocaleLowerCase().indexOf(\"@nucor.com\") > -1) {\r\n this.pageMessageService.setErrorMessage(\"Users with a `nucor.com` email address should use the SSO option to log in a request a user account.\");\r\n return;\r\n }\r\n return this.api.post(\"Auth\", \"Register\", { email: this.email })\r\n .then(result => {\r\n var user = JSON.parse(result.response);\r\n\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Registration Successful\",\r\n icon: \"fa-exclamation-triangle\",\r\n message: \"A welcome email with login instructions has been sent to \" + this.email + \".\\n\\nClick OK to configure roles for this user.\",\r\n buttons: [\"Ok\"]\r\n }\r\n })\r\n\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"Ok\") {\r\n this.router.navigateToRoute(\"user-admin\", { user_id: user.id });\r\n }\r\n }\r\n });\r\n },\r\n e => this.pageMessageService.setErrorMessage(\"Registration failed: \" + e.errorMessage)\r\n )\r\n }\r\n}\r\n\r\n\r\nValidationRules\r\n .ensure((m: RegisterUser) => m.email).required()\r\n .on(RegisterUser);\r\n","export class UiActionButton {\r\n constructor(options: UiActionButton) {\r\n Object.assign(this, options);\r\n }\r\n public name: string;\r\n public key: string;\r\n public fn?: Function = () => { };\r\n public visible?: boolean = false;\r\n public order?: number = 100;\r\n public triggersSubmit?: boolean = true;\r\n public redirectAfterSubmit?: boolean = true;\r\n public children?: UiActionButton[] = [];\r\n public performValidation?: boolean = true;\r\n}","import { autoinject, observable, computedFrom } from 'aurelia-framework';\r\nimport { UiActionButton } from \"./UiActionButton\";\r\n\r\n@autoinject()\r\nexport class TaskActionService {\r\n\r\n public actionButtons: UiActionButton[] = [];\r\n\r\n public get visibleActionButtons() {\r\n return this.actionButtons.filter(o => o.visible);\r\n }\r\n\r\n public addUiActionFromTemplate(template: UiActionButton, additionalOptions?: any): UiActionButton {\r\n return this.addUiAction(Object.assign({}, template, additionalOptions || {}));\r\n }\r\n\r\n public addUiAction(options: UiActionButton): UiActionButton {\r\n var uiAction = new UiActionButton(options);\r\n var index = this.actionButtons.findIndex(o => o.key == uiAction.key);\r\n if (index > -1) {\r\n this.actionButtons.splice(index, 1, uiAction);\r\n } else {\r\n this.actionButtons.push(uiAction);\r\n }\r\n\r\n // add child (dropdown) actions, if any\r\n uiAction.children = [];\r\n options.children = options.children || [];\r\n options.children.forEach(o => {\r\n uiAction.children.push(new UiActionButton(o));\r\n });\r\n\r\n return this.actionButtons.find(o => o.key == uiAction.key) as UiActionButton;\r\n }\r\n\r\n\r\n public removeUiAction(key: string) {\r\n var index = this.actionButtons.findIndex(o => o.key == key);\r\n if (index > -1) {\r\n this.actionButtons.splice(index, 1);\r\n }\r\n }\r\n\r\n public static saveActionTemplate: UiActionButton = {\r\n key: \"sysverb_save\",\r\n name: \"Save\",\r\n visible: true,\r\n redirectAfterSubmit: true,\r\n children: [\r\n {\r\n key: \"sysverb_save\",\r\n name: \"Save and Stay\",\r\n visible: true,\r\n redirectAfterSubmit: false\r\n }\r\n ]\r\n };\r\n\r\n public static closeActionTemplate: UiActionButton = {\r\n key: \"sysverb_close\",\r\n name: \"Complete Task\",\r\n performValidation: false,\r\n visible: true,\r\n redirectAfterSubmit: true\r\n };\r\n\r\n public static startWorkActionTemplate: UiActionButton = {\r\n key: \"sysverb_start_work\",\r\n name: \"Start Work\",\r\n performValidation: false,\r\n visible: true,\r\n redirectAfterSubmit: false\r\n };\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class UpdateUserModel {\r\n id: string = undefined;\r\n email: string = undefined;\r\n groupIds: string[] = [];\r\n roles: string[] = [];\r\n combineReports: boolean = undefined;\r\n receiveAutomatedCarrierStatusReport: boolean = undefined;\r\n millCodes: string[] = [];\r\n userName: string = undefined;\r\n firstName: string = undefined;\r\n lastName: string = undefined;\r\n auth0UserId: string = undefined;\r\n}\r\n","import { autoinject, computedFrom, observable } from 'aurelia-framework';\r\nimport { DialogController, DialogService } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { SecurityService } from \"../../services/security-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { Guid } from 'guid-typescript';\r\nimport { SimpleDialog } from './simple-dialog';\r\nimport { UpdateUserModel } from '../../data/typegen/dtos/update-user-model';\r\nimport { DisplayValuePair } from '../../data/typegen/dtos/display-value-pair';\r\nimport { PromptDialog } from '../../resources/dialogs/prompt-dialog';\r\n\r\n\r\n@autoinject\r\nexport class UpdateUserDialog {\r\n skipDbUpdate: boolean;\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private dialogService: DialogService,\r\n private msg: PageMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n isUserNameLocked = false;\r\n user: UpdateUserModel;\r\n roles: Array = [];\r\n userRoles: Array = [];\r\n selectedGroupIds: Array = [];\r\n roleMatcher = (a, b) => a.roleId === b.id;\r\n canEditEmail = false;\r\n mills: Array = [];\r\n groups: Array> = [];\r\n selectedMills: Array = [];\r\n\r\n async activate(model: { user: UpdateUserModel, skipDbUpdate: boolean, ensureViewRole: boolean }) {\r\n if (model.user.id) {\r\n this.busyService.on();\r\n try {\r\n const result = await this.api.get(\"Auth\", \"GetUser\", { aspNetUserId: model.user.id });\r\n const userInfo = JSON.parse(result.response);\r\n const unTypedUser = userInfo.user;\r\n this.selectedGroupIds = userInfo.groupIds;\r\n unTypedUser.millCodes = unTypedUser.millCodes ? unTypedUser.millCodes.split(',') : [];\r\n unTypedUser.roles = unTypedUser.roles ? unTypedUser.roles.split(',') : [];\r\n this.user = unTypedUser;\r\n } finally {\r\n this.busyService.off();\r\n }\r\n } else {\r\n this.user = Object.assign(new UpdateUserModel(), model.user);\r\n }\r\n\r\n\r\n // can only edit email for local auth0 accounts. \r\n // non-nucor.com emails may need to be edited if the user entered the wrong one during signup, for example.\r\n if (!this.isSSOUser && (!this.user.auth0UserId || (this.user.auth0UserId.indexOf(\"auth0|\") > -1))) {\r\n this.canEditEmail = true;\r\n }\r\n\r\n this.skipDbUpdate = model.skipDbUpdate;\r\n this.selectedMills = [];\r\n if (this.user.millCodes.length > 0) {\r\n this.selectedMills.push(...this.user.millCodes);\r\n }\r\n\r\n if (this.user.userName) {\r\n this.isUserNameLocked = true;\r\n }\r\n\r\n await this.loadRoles();\r\n this.loadUserRoles(model.ensureViewRole);\r\n this.loadMills();\r\n this.loadGroups();\r\n }\r\n\r\n public async generateChangePasswordLink() {\r\n this.busyService.on();\r\n let url = \"[url could not be generated]\";\r\n try {\r\n debugger;\r\n var params = { EmailAddress: this.user.email };\r\n var result = await this.api.post(\"Auth\", \"GetChangePasswordLink\", params);\r\n url = JSON.parse(result.response)\r\n }\r\n finally {\r\n this.busyService.off();\r\n }\r\n await this.dialogService.open(\r\n {\r\n viewModel: PromptDialog,\r\n model: {\r\n question: \"Below is a link that can be used to change the password for \" + this.user.firstName + \" \" + this.user.lastName,\r\n defaultValue: url\r\n }\r\n });\r\n }\r\n\r\n createUserInAuth0() {\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Enable User For Login\",\r\n icon: \"fa-exclamation-triangle\",\r\n message: \"This will configure a user in SSO for the user: \" + this.user.email + \". Do you want to continue?\\n\\nThis cannot be undone.\",\r\n buttons: [\"Yes\", \"No\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"Yes\") {\r\n this.busyService.on();\r\n this.api.post(\"Auth\", \"ConfigureUserForSSO\", { id: this.user.id, email: this.user.email, firstName: this.user.firstName, lastName: this.user.lastName, userName: this.user.email, roles: this.userRoles, millCodes: this.user.millCodes }).then((result) => {\r\n const answer = JSON.parse(result.response);\r\n if (answer) {\r\n alert(\"FIX THIS\");\r\n //this.user.auth0UserId = answer;\r\n }\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n this.mills = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n loadGroups() {\r\n this.busyService.on();\r\n return this.api.get(\"Auth\", \"GetGroups\")\r\n .then((result) => {\r\n this.groups = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n loadRoles() {\r\n this.busyService.on();\r\n return this.api.get(\"Auth\", \"GetRoles\")\r\n .then((result) => {\r\n this.roles = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n loadUserRoles(ensureViewRole: boolean) {\r\n this.busyService.on();\r\n return this.api.get(\"Auth\", \"GetUserRoles\", { userId: this.user.id })\r\n .then((result) => {\r\n this.userRoles = JSON.parse(result.response).map(o => o.roleId);\r\n if (ensureViewRole) {\r\n var viewRole = this.roles.find(o => o.id == \"cmp.role.view\");\r\n if (this.userRoles.indexOf(viewRole.id) == -1) {\r\n this.userRoles.push(viewRole.id);\r\n }\r\n }\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n //TODO: This logic is incorrect and should be more diligent in determining the flag, and considering the usage implications.\r\n // NOTE: Furthermore, a user could start with \"%waad\" and be SSO for another applicaiton, and username-password for CMP\r\n @computedFrom(\"user.userName\")\r\n get isSSOUser(): boolean {\r\n if (this.user.userName && this.user.userName.toLocaleLowerCase().indexOf(\"@nucor.com\") > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computedFrom(\"user.userName\")\r\n get isEmailValid(): boolean {\r\n var regExp = /[\\w-+]+([.][\\w]+)?@[\\w-+]+([.][a-z]{2,})+/;\r\n if (regExp.test(this.user.userName)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n async deactivateUser() {\r\n await this.setUserActiveStatus(false);\r\n }\r\n async activateUser() {\r\n await this.setUserActiveStatus(true);\r\n }\r\n private async setUserActiveStatus(isActive: boolean) {\r\n var params = {\r\n id: this.user.id,\r\n active: isActive\r\n };\r\n\r\n try {\r\n var responseMessage = await this.api.post(\"auth\", \"SetUserActiveStatus\", params);\r\n this.busyService.off();\r\n this.controller.ok();\r\n }\r\n catch (e) {\r\n this.busyService.off();\r\n alert(\"Error occurred while changing user active status: \" + (e.errorMessage || e.message || JSON.stringify(e)));\r\n }\r\n }\r\n\r\n async save(insertNew: boolean = false) {\r\n\r\n if (insertNew) {\r\n this.user.id = undefined;\r\n }\r\n\r\n if (!this.user.id) {\r\n this.user.id = Guid.create().toString();\r\n }\r\n\r\n // per Rebecca, users should be able to have more than one mill assigned.\r\n //if (this.selectedMills.length > 1) {\r\n // alert(\"Cannot select more than one mill.\");\r\n // return;\r\n //}\r\n\r\n //ensure that username is in common email address format\r\n if (!this.isEmailValid) {\r\n alert(\"Username should be in the format of an email\");\r\n return;\r\n }\r\n\r\n //ensure that first name and last name is specified\r\n if (!this.isSSOUser && (!this.user.firstName || !this.user.lastName)) {\r\n alert(\"First name and last name must be specified.\");\r\n return;\r\n }\r\n\r\n //if (this.user.userName && this.user.userName.toLocaleLowerCase().indexOf(\"@nucor.com\") > -1) {\r\n // this.pageMessageService.setErrorMessage(\"Users with a `nucor.com` email address should use the SSO option to log in a request a user account.\");\r\n // return;\r\n //}\r\n\r\n this.busyService.on();\r\n\r\n const millCodes = this.selectedMills;\r\n\r\n var params: UpdateUserModel = {\r\n auth0UserId: this.user.auth0UserId,\r\n id: this.user.id,\r\n email: this.user.email,\r\n firstName: this.user.firstName,\r\n lastName: this.user.lastName,\r\n userName: this.user.email,\r\n combineReports: this.user.combineReports,\r\n receiveAutomatedCarrierStatusReport: this.user.receiveAutomatedCarrierStatusReport,\r\n groupIds: this.selectedGroupIds,\r\n roles: this.userRoles,\r\n millCodes: this.selectedMills\r\n };\r\n\r\n if (this.skipDbUpdate) {\r\n this.busyService.off();\r\n this.controller.ok(params);\r\n } else {\r\n\r\n try {\r\n await this.api.post(\"auth\", \"UpdateUser\", params);\r\n this.busyService.off();\r\n this.controller.ok();\r\n }\r\n catch (e) {\r\n this.busyService.off();\r\n this.msg.setErrorMessage(\"Error occurred while updating user account: \" + (e.message || e.errorMessage || JSON.stringify(e)));\r\n }\r\n\r\n\r\n }\r\n }\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { CmpTaskBaseDto } from \"./cmp-task-base-dto\";\r\n\r\nexport class CmpTaskDto extends CmpTaskBaseDto {\r\n cmpTaskId: string = undefined;\r\n taskId: string = undefined;\r\n}\r\n","export enum TaskState {\r\n New = \"822c9874-750d-4142-857d-c5fed808b5f5\",\r\n InProgress = \"d5d54e33-2c2c-41ca-9d7c-86dd2742c1ee\",\r\n AwaitingResponse = \"744c6fad-c04c-458e-a0eb-243a2a6c97e7\",\r\n ClosedIncomplete = \"54eab322-f36e-4a62-9f01-623eefa94da6\",\r\n ClosedComplete = \"9c562024-739f-480a-893c-4b61cb7002f8\"\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { CmpTaskDto } from \"./cmp-task-dto\";\r\nimport { UpdateUserModel } from \"./update-user-model\";\r\n\r\nexport class ProcessNewUserTaskDto {\r\n newUserRequestTaskDto: CmpTaskDto;\r\n updateUserModel: UpdateUserModel;\r\n}\r\n","export class CmpTaskCommentInsertDto {\r\n cmpTaskCommentId: string;\r\n taskId: string;\r\n isCustomerVisible: boolean;\r\n comment: string;\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class NewUserRequestVariablesDto {\r\n emailAddress: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { CmpTaskBaseDto } from \"./cmp-task-base-dto\";\r\n\r\nexport class DoUiActionDto {\r\n uiActionVerb: string = undefined;\r\n actionReason: string = undefined;\r\n taskDto: CmpTaskBaseDto;\r\n payload: any;\r\n\r\n //\r\n \r\n //\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class NewUserRequestTaskDto {\r\n firstName: string = undefined;\r\n lastName: string = undefined;\r\n emailAddress: string = undefined;\r\n phone: string = undefined;\r\n division: string = undefined;\r\n additionalDivisions: string = undefined;\r\n taskId: string = undefined;\r\n auth0UserId: string = undefined;\r\n fullName: string = undefined;\r\n denyReason: string = undefined;\r\n}\r\n","export class DoUiActionClientHandlerResult {\r\n public submit?: boolean;\r\n public reload?: boolean;\r\n public static default: DoUiActionClientHandlerResult = { submit: true, reload: true, performValidation: true };\r\n public static stop: DoUiActionClientHandlerResult = { submit: false, reload: false, performValidation: false};\r\n public performValidation: boolean = true;\r\n}","import { BusyService } from \"../../../services/busy-service\";\r\nimport { WebApiService } from \"../../../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport 'tinymce/themes/modern/theme';\r\n\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { observable, computedFrom, autoinject, bindable } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { PageMessageService } from \"../../../services/page-message-service\";\r\nimport { SecurityService } from \"../../../services/security-service\";\r\n\r\nimport 'tinymce/plugins/link/plugin';\r\nimport 'tinymce/plugins/paste/plugin';\r\nimport 'tinymce/plugins/hr/plugin';\r\nimport 'tinymce/plugins/image/plugin';\r\nimport 'tinymce/plugins/media/plugin';\r\nimport 'tinymce/plugins/code/plugin';\r\nimport 'tinymce/plugins/lists/plugin';\r\nimport 'tinymce/themes/modern/theme';\r\nimport { Guid } from \"guid-typescript\";\r\n\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class ComposeEmail {\r\n\r\n public tinyMceOptions: any;\r\n\r\n public fileInput: HTMLInputElement;\r\n public fileCount: number;\r\n public totalSize: number;\r\n public selectedFiles: any[] = [];\r\n\r\n @observable()\r\n public context: any;\r\n public contextChanged() {\r\n this.email.recipients = this.context.recipients\r\n }\r\n\r\n @observable()\r\n public selectedTemplateId: string;\r\n public selectedTemplateIdChanged() {\r\n const template = this.emailTemplates.find(o => o.id == this.selectedTemplateId);\r\n if (template) {\r\n this.email.recipients = this.context.recipients || template.recipients;\r\n this.email.subject = template.subject;\r\n this.email.body = template.body;\r\n }\r\n }\r\n public emailTemplates: any[] = [];\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private dialogService: DialogService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n\r\n this.tinyMceOptions = {\r\n toolbar: \"formatselect bold italic | bullist numlist | link unlink | image media | code\",\r\n menubar: false,\r\n height: \"300px\",\r\n plugins: ['link', 'paste', 'code', 'media', 'image', 'lists'],\r\n branding: false,\r\n hidden_input: true,\r\n browser_spellcheck: true\r\n };\r\n\r\n this.getTemplates();\r\n }\r\n\r\n\r\n attached() {\r\n ($(\".info-button\")).popover();\r\n \r\n // bind to change event on the file input\r\n this.fileInput.addEventListener(\"change\", () => this.fileSelectionChanged());\r\n }\r\n\r\n public fileSelectionChanged(): void {\r\n this.populateUI(this.fileInput);\r\n }\r\n\r\n public attachFile() {\r\n this.fileInput.click();\r\n }\r\n\r\n private getTemplates() {\r\n\r\n this.busyService.on();\r\n return this.api.get(\"Email\", \"GetNotificationTemplates\")\r\n .then((result) => {\r\n const templates: any[] = JSON.parse(result.response);\r\n templates.unshift({ subject: \"\", body: \"\", recipients: \"\" });\r\n this.emailTemplates = templates.filter(o=>!o.name || o.name.indexOf(\"sys_\") == -1);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n public bodyEditor: any;\r\n\r\n public async send(): Promise {\r\n // put the selected files in FormData\r\n const formData = new FormData();\r\n for (let i = 0; i < this.fileInput.files.length; i++) {\r\n const element = this.fileInput.files[i];\r\n formData.append(\"file\", element);\r\n }\r\n\r\n formData.append('from', this.email.from);\r\n formData.append('recipients', this.email.recipients);\r\n formData.append('additionalRecipients', this.email.additionalRecipients);\r\n\r\n formData.append('subject', this.email.subject);\r\n formData.append('body', this.email.body);\r\n\r\n var textContent = this.bodyEditor.editorInstance.getContent({ format: \"text\" });\r\n formData.append('bodyText', textContent);\r\n\r\n formData.append('targetRowId', this.context.targetRowId);\r\n formData.append('targetTable', this.context.targetTable);\r\n\r\n this.busyService.on();\r\n try {\r\n await this.api.post(\"email\", \"sendEmail2\", formData);\r\n }\r\n finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n\r\n public returnFileSize(number: number): string {\r\n // shamelessly borrowed from MDN \"💖\"\"🙇‍♂️\"\r\n if (number < 1024) {\r\n return number + \"bytes\";\r\n } else if (number >= 1024 && number < 1048576) {\r\n return (number / 1024).toFixed(1) + \"KB\";\r\n } else if (number >= 1048576) {\r\n return (number / 1048576).toFixed(1) + \"MB\";\r\n }\r\n }\r\n\r\n private populateUI(fileInput: HTMLInputElement): void {\r\n for (let i = 0; i < fileInput.files.length; i++) {\r\n this.fileCount += 1;\r\n this.totalSize += fileInput.files[i].size;\r\n\r\n this.selectedFiles.push({\r\n file: fileInput.files[i],\r\n name: fileInput.files[i].name,\r\n size: this.returnFileSize(fileInput.files[i].size),\r\n url: URL.createObjectURL(fileInput.files[i]),\r\n });\r\n }\r\n }\r\n\r\n public clearAttachment(file) {\r\n var index = this.selectedFiles.findIndex(o => o.file == file.file);\r\n if (index > -1) {\r\n this.selectedFiles.splice(index, 1);\r\n }\r\n }\r\n\r\n public clearSelection(): void {\r\n this.fileInput.value = \"\";\r\n // clear any previously selected files\r\n this.fileCount = 0;\r\n this.totalSize = 0;\r\n this.selectedFiles = [];\r\n }\r\n\r\n @bindable()\r\n public email = {\r\n from: \"Nucor\",\r\n recipients: \"\",\r\n additionalRecipients: \"\",\r\n subject: \"\",\r\n body: \"\",\r\n }\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { ComposeEmail } from '../../form-components/compose-email/compose-email';\r\n\r\n@autoinject\r\nexport class ComposeEmailDialog {\r\n insertedBy: string;\r\n canEdit: boolean = true;\r\n noteNotFound: boolean;\r\n context: any;\r\n constructor(protected controller: DialogController) {\r\n }\r\n\r\n public emailComponent: ComposeEmail;\r\n\r\n async activate(params) {\r\n this.context = params;\r\n }\r\n attached() {\r\n this.emailComponent.context = this.context;\r\n }\r\n public async save() {\r\n try {\r\n await this.emailComponent.send();\r\n $[\"notify\"](\"Email sent\", { className: \"success\", position: \"top center\" });\r\n this.controller.ok();\r\n } catch (e) {\r\n alert(\"Error sending email: \" + e);\r\n }\r\n\r\n }\r\n}","import { newInstance, autoinject, singleton, bindable, bindingMode, observable } from 'aurelia-framework';\r\nimport { TaskActionService } from '../TaskActionService';\r\nimport { UiActionButton } from '../UiActionButton';\r\nimport { PageMessageService } from '../../../services/page-message-service';\r\nimport { BusyService } from '../../../services/busy-service';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { WebApiService } from '../../../services/web-api-service';\r\nimport { SimpleDialog } from '../../dialogs/simple-dialog';\r\nimport { UpdateUserDialog } from '../../dialogs/update-user-dialog';\r\nimport { Guid } from 'guid-typescript';\r\nimport { SecurityService } from '../../../services/security-service';\r\nimport { CmpTaskDto } from '../../../data/typegen/dtos/cmp-task-dto';\r\nimport { TaskState } from '../../../data/enums/taskState';\r\nimport { UpdateUserModel } from '../../../data/typegen/dtos/update-user-model';\r\nimport { ProcessNewUserTaskDto } from '../../../data/typegen/dtos/process-new-user-task-dto';\r\nimport { CmpTaskCommentInsertDto } from '../../../data/dtos/cmp-task-comment-insert-dto';\r\nimport { ValidationController } from 'aurelia-validation';\r\nimport { NewUserRequestVariablesDto } from '../../../data/typegen/dtos/new-user-request-variables-dto';\r\nimport { DoUiActionDto } from '../../../data/typegen/dtos/do-ui-action-dto';\r\nimport { CmpTaskBaseDto } from '../../../data/typegen/dtos/cmp-task-base-dto';\r\nimport { NewUserRequestTaskDto } from '../../../data/typegen/dtos/new-user-request-task-dto';\r\nimport { DoUiActionClientHandlerResult } from '../../../data/dtos/do-ui-action-client-handler-result';\r\nimport { RequestDto } from '../../../data/typegen/dtos/request-dto';\r\nimport { ComposeEmailDialog } from '../../dialogs/compose-email-dialog/compose-email-dialog';\r\n\r\n\r\nexport interface IFulfillmentWidget {\r\n initUi();\r\n validate(controller: ValidationController, obj: any): Promise;\r\n doAction(action: DoUiActionDto): Promise;\r\n afterActionSubmit(uiActionKey: string, error?: any): Promise;\r\n showCloseAction: boolean;\r\n additionalData?: any;\r\n}\r\n\r\nexport class FulfillmentWidget{\r\n constructor(protected element:Element){\r\n\r\n }\r\n\r\n \r\n fireOnreadyEvent() {\r\n let evt;\r\n if (window[\"CustomEvent\"]) {\r\n evt = new CustomEvent('onready', {\r\n detail: {\r\n //value: (event.target).value\r\n value: undefined\r\n },\r\n bubbles: true\r\n });\r\n } else {\r\n evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent('onready', true, true, {\r\n detail: {\r\n //value: (event.target).value\r\n value: undefined\r\n }\r\n });\r\n }\r\n (this.element).dispatchEvent(evt);\r\n }\r\n}\r\n\r\n@autoinject()\r\nexport class NewUserRequestFulfillment extends FulfillmentWidget implements IFulfillmentWidget {\r\n\r\n public showCloseAction: boolean = false;\r\n public isSsoUser: boolean = undefined;\r\n\r\n\r\n async validate(controller: ValidationController, obj: any) {\r\n return true;\r\n }\r\n\r\n private rejectAction: UiActionButton\r\n private approveAction: UiActionButton\r\n\r\n public isComponentReadOnly = false;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readonly: boolean;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) task: CmpTaskDto;\r\n taskChanged() {\r\n this.initUi();\r\n }\r\n\r\n // NOTE: A user could start with \"%waad\" and be SSO for another applicaiton, and username-password for CMP\r\n private isSsoUserId(auth0UserId: string): boolean {\r\n var answer = !!auth0UserId && (auth0UserId.toLowerCase().indexOf(\"waad|\") > -1);\r\n return answer;\r\n }\r\n\r\n\r\n constructor(\r\n private taskActionService: TaskActionService,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService, \r\n element:Element\r\n ) {\r\n super(element);\r\n this.rejectAction = this.taskActionService.addUiAction({\r\n key: \"reject\",\r\n name: \"Reject\"\r\n });\r\n this.approveAction = this.taskActionService.addUiAction({\r\n key: \"approve\",\r\n name: \"Approve\"\r\n });\r\n }\r\n\r\n\r\n async afterActionSubmit(uiAction: string, error?: any): Promise {\r\n // return true to reload the data\r\n return true;\r\n }\r\n\r\n public async showUserDialog(userId) {\r\n await this.dialogService.open(\r\n {\r\n viewModel: UpdateUserDialog,\r\n model: {\r\n user: { id: userId },\r\n skipDbUpdate: false\r\n }\r\n });\r\n }\r\n\r\n public async showEmailDialog(email: string) {\r\n var result = await this.dialogService.open(\r\n {\r\n viewModel: ComposeEmailDialog,\r\n model: {\r\n recipients: email,\r\n targetRowId: this.task.taskId,\r\n targetTable: this.task.taskClass.toString().toLowerCase()\r\n }\r\n });\r\n\r\n }\r\n public async initUi() {\r\n\r\n var isEditor = this.securityService.hasRole(\"Edit\");\r\n this.isComponentReadOnly = this.readonly || !this.task.active || !isEditor;\r\n\r\n this.isSsoUser = this.isSsoUserId(this.task.variables.Auth0UserId);\r\n //only show UI actions when task is assigned and active\r\n this.approveAction.visible = this.task.active == true && this.task.assignedTo.value == this.securityService.user.id;\r\n this.rejectAction.visible = this.task.active == true && this.task.assignedTo.value == this.securityService.user.id;\r\n }\r\n\r\n\r\n public async doAction(action: DoUiActionDto): Promise {\r\n\r\n if (action.uiActionVerb == this.rejectAction.key) {\r\n if (!this.task.variables.DenyReason) {\r\n this.msg.setErrorMessage(\"Deny Reason is required\");\r\n return DoUiActionClientHandlerResult.stop;\r\n ; // return null if you want nothing else to happen\r\n }\r\n }\r\n if (action.uiActionVerb == this.approveAction.key) {\r\n var updateUserModel = await this.getUserUpdateModelAsync();\r\n if (updateUserModel) {\r\n if (updateUserModel) {\r\n var dto = new ProcessNewUserTaskDto();\r\n dto.updateUserModel = updateUserModel;\r\n dto.newUserRequestTaskDto = this.task;\r\n await this.processNewUserTask(dto);\r\n return { reload: true , performValidation: true};\r\n }\r\n }\r\n }\r\n return DoUiActionClientHandlerResult.default;\r\n }\r\n\r\n private async getUserUpdateModelAsync(): Promise {\r\n\r\n this.msg.clear();\r\n var userModel = new UpdateUserModel();\r\n //var userTaskVariables = this.task.variables as NewUserRequestVariablesDto;\r\n userModel.email = this.task.variables.EmailAddress;\r\n userModel.firstName = this.task.variables.FirstName;\r\n userModel.lastName = this.task.variables.LastName;\r\n userModel.userName = this.task.variables.EmailAddress;\r\n userModel.auth0UserId = this.task.variables.Auth0UserId;\r\n\r\n const userUpdate: UpdateUserModel = await this.finalizeUserInfo(userModel);\r\n return userUpdate;\r\n }\r\n\r\n private async processNewUserTask(dto: ProcessNewUserTaskDto) {\r\n try {\r\n var responseMessage = await this.api.post(\"auth\", \"ProcessNewUserTask\", dto);\r\n var requestDto: RequestDto = JSON.parse(responseMessage.response || \"null\") as RequestDto;\r\n }\r\n catch (e) {\r\n this.msg.setErrorMessage(\"Error occurred while creating new user account: \" + (e.message || e.errorMessage || JSON.stringify(e)));\r\n return null;\r\n }\r\n }\r\n\r\n async finalizeUserInfo(user: UpdateUserModel): Promise {\r\n // if existing local CMP account exists (legacy account prior auth0 implmentation)\r\n // then we want to use that one, instead of creating a new one\r\n if (!user.id) {\r\n\r\n // try to get CMP ID for this email, if it exists.\r\n this.busyService.on();\r\n try {\r\n var responseMessage = await this.api.get(\"Auth\", \"GetCmpUserByEmail\", { emailAddress: user.email });\r\n this.busyService.off();\r\n var existingUser = JSON.parse(responseMessage.response || \"null\");\r\n if (existingUser) {\r\n user.id = existingUser.id;\r\n await this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"This user already has an existing CMP user account.\",\r\n icon: \"fa-info-circle\",\r\n message: `Please review the user's settings for accuracy.`,\r\n buttons: [\"Ok\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n return true;\r\n });\r\n }\r\n\r\n } catch (e) {\r\n this.busyService.off();\r\n alert(\"Error check for existing user: \" + e);\r\n }\r\n }\r\n return new Promise((resolve) => {\r\n this.dialogService.open(\r\n {\r\n viewModel: UpdateUserDialog,\r\n model: {\r\n user: user,\r\n skipDbUpdate: true,\r\n ensureViewRole: true\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n resolve(result.output);\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n async attached() {\r\n await this.initUi();\r\n await this.fireOnreadyEvent();\r\n }\r\n\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class RequestTypeIds {\r\n static readonly newUserRequest: string = \"498ec9be-9c4f-427f-84d7-8800a1095cab\";\r\n static readonly newCarrierRequest: string = \"2c837aa3-48a5-4a66-8a9f-a70d04d0a8b8\";\r\n static readonly carrierReevaluation: string = \"919d26db-ef18-4b81-bcbf-ee55ef4d564c\";\r\n static readonly insuranceRenewal: string = \"c905cd38-ff01-4e0c-84cc-87bd9b9e52d2\";\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class ActivityStreamItemBase {\r\n type: string = undefined;\r\n sysId: string = undefined;\r\n isAutoGenerated: boolean = undefined;\r\n targetRecordId: string = undefined;\r\n insertedOn: Date = undefined;\r\n insertedBy: string = undefined;\r\n visibilityRole: string = undefined;\r\n ageMs: number = undefined;\r\n isCustomerVisible: boolean = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { DisplayValuePair } from \"./display-value-pair\";\r\nimport { RequestDto } from \"./request-dto\";\r\nimport { CmpTaskDto } from \"./cmp-task-dto\";\r\nimport { ActivityStreamItemBase } from \"./activity-stream-item-base\";\r\n\r\nexport class TaskDetailsScreenDataDto {\r\n assignedToUsers: DisplayValuePair[] = [];\r\n request: RequestDto;\r\n task: CmpTaskDto;\r\n activityStream: ActivityStreamItemBase[] = [];\r\n}\r\n","import { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { PageMessageService } from \"../services/page-message-service\";\r\nimport { SecurityService } from \"../services/security-service\"; 6\r\nimport { TaskActionService } from \"./requests/TaskActionService\";\r\nimport { UiActionButton } from \"./requests/UiActionButton\";\r\nimport { IFulfillmentWidget } from \"./requests/new-user-request/new-user-request-fulfillment\";\r\nimport { CmpTaskDto } from \"../data/typegen/dtos/cmp-task-dto\";\r\nimport { DisplayValuePair } from \"../data/typegen/dtos/display-value-pair\";\r\nimport { TaskState } from \"../data/enums/taskState\";\r\nimport { RequestDto } from \"../data/typegen/dtos/request-dto\";\r\nimport { DoUiActionDto } from \"../data/typegen/dtos/do-ui-action-dto\";\r\nimport { CmpTaskBaseDto } from \"../data/typegen/dtos/cmp-task-base-dto\";\r\nimport { RequestTypeIds } from \"../data/typegen/enums/request-type-ids\";\r\nimport { validateTrigger, ValidationController, ValidationControllerFactory } from \"aurelia-validation\";\r\nimport { DefaultValidationRenderer } from \"../resources/renderers/default-validation-renderer\";\r\nimport { Router } from 'aurelia-router';\r\nimport { ActivityStreamItemBase } from \"../data/typegen/dtos/activity-stream-item-base\";\r\nimport { TaskDetailsScreenDataDto } from \"../data/typegen/dtos/task-details-screen-data-dto\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class TaskDetails {\r\n\r\n public task: CmpTaskDto;\r\n public request: RequestDto;\r\n public activityStream: Array = [];\r\n public assignedToUsers: Array> = [];\r\n public taskDetailsComponent: IFulfillmentWidget;\r\n public taskState = TaskState;\r\n private originalTask: CmpTaskDto;\r\n\r\n private saveUiAction: UiActionButton;\r\n private closeUiAction: UiActionButton;\r\n private startWorkAction: UiActionButton;\r\n public requestTypeIds = RequestTypeIds;\r\n controller: ValidationController = null;\r\n\r\n constructor(\r\n private controllerFactory: ValidationControllerFactory,\r\n private taskActionService: TaskActionService,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private appMsg: AppMessageService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private router: Router,\r\n private api: WebApiService) {\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.controller.validateTrigger = validateTrigger.change;\r\n this.controller.addRenderer(new DefaultValidationRenderer());\r\n }\r\n\r\n public canModifyState: boolean;\r\n\r\n async activate(params) {\r\n var contractsAndInsuranceLeadsGroupId = \"a86a7675-52ab-401e-b8a2-aaca50c7ffdc\";\r\n const isContractsAndInsuranceLeadsMember = this.securityService.hasGroup(contractsAndInsuranceLeadsGroupId);\r\n this.canModifyState = this.securityService.hasRole(\"admin\") || isContractsAndInsuranceLeadsMember;\r\n this.taskActionService.actionButtons.length = 0;\r\n await this.loadDataAsync(params.id);\r\n }\r\n\r\n\r\n public attached() {\r\n\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 100);\r\n this.updateUiActions();\r\n }\r\n\r\n fixVerticalTabindex(selector) {\r\n var tabindex = 1;\r\n jQuery(selector).each(function (i, tbl) {\r\n jQuery(tbl).find('.row>div[class*=\"col\"]:last-child').each(function (j, col) {\r\n jQuery(col).find('input,select,textarea').each(function (j, obj) {\r\n jQuery(obj).attr('tabindex', tabindex++);\r\n });\r\n });\r\n });\r\n }\r\n\r\n async refresh() {\r\n await this.loadDataAsync(this.task.taskId);\r\n await this.taskDetailsComponent.initUi();\r\n this.updateUiActions();\r\n }\r\n\r\n\r\n public async doAction(uiAction: UiActionButton, validate = true) {\r\n this.msg.clear();\r\n this.appMsg.clearPageScopedMessages();\r\n var action = new DoUiActionDto();\r\n action.taskDto = this.task;\r\n action.uiActionVerb = uiAction.key;\r\n let performValidation = uiAction.performValidation;\r\n if (this.startWorkAction && action.uiActionVerb == this.startWorkAction.key) {\r\n this.task.state.value = TaskState.InProgress;\r\n this.task.assignedTo.value = this.securityService.user.id;\r\n }\r\n else if (action.uiActionVerb == this.closeUiAction.key) {\r\n this.task.state.value = TaskState.ClosedComplete;\r\n }\r\n else {\r\n const result = await this.taskDetailsComponent.doAction(action);\r\n if (result.submit != true) {\r\n if (result.reload == true) {\r\n await this.loadDataAsync(this.task.taskId);\r\n }\r\n return;\r\n }else{\r\n if( result.performValidation === false){\r\n performValidation = false;\r\n }\r\n }\r\n }\r\n\r\n if (uiAction.triggersSubmit) {\r\n // Master Approve Carrier\r\n if (action.uiActionVerb == \"set_master_approved\") {\r\n if (!confirm(\"Are you sure you want to Master Approve this carrier? This will send an approval email to all users who are configured to receive Carrier Reports.\")) {\r\n return;\r\n }\r\n }\r\n \r\n // Deny Carrier\r\n if (action.uiActionVerb == \"final_deny\") {\r\n if (!confirm(\"Are you sure you want to Deny this carrier? The request will be cancelled and the carrier status will be set to Closed-Incomplete\")) {\r\n return;\r\n }\r\n }\r\n\r\n var isValid = !performValidation || !validate || !uiAction.performValidation || await this.runValidationRules();\r\n if (isValid) {\r\n await this.submitUiAction(action, uiAction.redirectAfterSubmit);\r\n }else{\r\n this.appMsg.addErrorMessage(\"Please correct the errors below and try again.\");\r\n }\r\n }\r\n }\r\n\r\n private async runValidationRules() {\r\n // run standard rules before save\r\n // these rules should not require validation\r\n if (!await this.taskDetailsComponent.validate(this.controller, this)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n\r\n }\r\n\r\n public async post() {\r\n await this.doAction(this.saveUiAction.children[0], false);\r\n // await this.loadDataAsync(this.task.taskId);\r\n }\r\n\r\n async submitUiAction(action: DoUiActionDto, redirectAfterSubmit: boolean = true) {\r\n\r\n //TODO move this to fulfillment module\r\n //if (action.uiActionVerb == \"send_registration_link\") {\r\n // var result = await this.controller.validate();\r\n // if (result.length > 0) {\r\n // return;\r\n // }\r\n //}\r\n this.busyService.on();\r\n try {\r\n const result = await this.api.post(\"Tasks\", \"DoTaskUiAction\", action);\r\n // this.clearCommentFields();\r\n this.busyService.off();\r\n if (await this.taskDetailsComponent.afterActionSubmit(action.uiActionVerb)) {\r\n //const uiActionButton = this.taskActionService.actionButtons.find(o => o.key == action.uiActionVerb);\r\n if (redirectAfterSubmit) {\r\n var redirectRoute = AureliaCookie.get('nav_stack');\r\n if (redirectRoute) {\r\n this.router.navigateToRoute(redirectRoute);\r\n AureliaCookie.delete('nav_stack');\r\n return;\r\n }\r\n }\r\n await this.loadDataAsync(this.task.taskId);\r\n await this.taskDetailsComponent.initUi();\r\n this.updateUiActions();\r\n }\r\n } catch (e) {\r\n this.busyService.off();\r\n this.taskDetailsComponent.afterActionSubmit(action.uiActionVerb, e);\r\n }\r\n }\r\n\r\n\r\n async loadDataAsync(taskId) {\r\n this.busyService.on();\r\n return this.api.get(\"Tasks\", \"GetTaskDetailsScreenDataDto\", { taskId: taskId })\r\n .then(async (result) => {\r\n const screenData = JSON.parse(result.response) as TaskDetailsScreenDataDto;\r\n this.request = screenData.request;\r\n this.task = screenData.task;\r\n this.originalTask = JSON.parse(JSON.stringify(this.task));\r\n this.activityStream = screenData.activityStream;\r\n this.assignedToUsers = screenData.assignedToUsers;\r\n\r\n\r\n this.saveUiAction = this.taskActionService.addUiActionFromTemplate(TaskActionService.saveActionTemplate);\r\n this.closeUiAction = this.taskActionService.addUiActionFromTemplate(TaskActionService.closeActionTemplate);\r\n this.startWorkAction = this.taskActionService.addUiActionFromTemplate(TaskActionService.startWorkActionTemplate);\r\n\r\n this.updateUiActions();\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n private updateUiActions() {\r\n this.startWorkAction.visible = this.task.active && this.task.state.value == TaskState.New;\r\n this.closeUiAction.visible = (this.taskDetailsComponent && this.taskDetailsComponent.showCloseAction)\r\n && (this.task.active && this.task.state.value != TaskState.New)\r\n && this.task.assignedTo.value == this.securityService.user.id;\r\n\r\n //console.log(\"SETTING this.closeUiAction.visible=\" + this.closeUiAction.visible);\r\n\r\n }\r\n\r\n public onFulfillmentWidgetReady(){\r\n this.updateUiActions();\r\n }\r\n}","import { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { Carrier } from \"../models/carrier\"\r\nimport { CarrierFilter } from \"../models/carrier-filter\"\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateUserDialog } from \"./dialogs/update-user-dialog\";\r\nimport { PageMessageService } from \"../services/page-message-service\";\r\nimport { SimpleDialog } from \"./dialogs/simple-dialog\";\r\nimport { SecurityService } from \"../services/security-service\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class TasksHome {\r\n\r\n public filter: \"assigned_to_me\" | \"available_for_me\" | \"unassigned\" | \"all\" = \"assigned_to_me\";\r\n public includeInactive: false;\r\n\r\n public async setFilter(filter) {\r\n this.filter = filter;\r\n await this.loadTasks();\r\n this.filteredTasks = this.getFilteredTasks(this.filter);\r\n }\r\n\r\n assignedToMeCount = 0;\r\n availableForMeCount = 0;\r\n unassignedCount = 0;\r\n tasks = [];\r\n filteredTasks: Array = [];\r\n\r\n private getFilteredTasks(filter: \"assigned_to_me\" | \"available_for_me\" | \"unassigned\" | \"all\") {\r\n var filtered = this.tasks;\r\n\r\n //save search criteria\r\n //AureliaCookie.set('search.selectedMills', JSON.stringify(this.selectedMills), null);\r\n\r\n //carrier mill\r\n\r\n if (!filtered) return [];\r\n\r\n if (filter != \"all\") {\r\n filtered = filtered.filter((item: any) => {\r\n if (filter == \"assigned_to_me\")\r\n return item.assignedTo.value == this.securityService.user.id;\r\n if (filter == \"unassigned\"){\r\n return !item.assignedTo.value;\r\n }\r\n if (filter == \"available_for_me\")\r\n return true;\r\n });\r\n }\r\n return filtered;\r\n }\r\n\r\n public canSeeAllTasks: boolean;\r\n\r\n constructor(\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService) {\r\n }\r\n \r\n\r\n async activate(params) {\r\n var contractsAndInsuranceLeadsGroupId = \"a86a7675-52ab-401e-b8a2-aaca50c7ffdc\";\r\n const isContractsAndInsuranceLeadsMember = this.securityService.hasGroup(contractsAndInsuranceLeadsGroupId);\r\n this.canSeeAllTasks = isContractsAndInsuranceLeadsMember || this.securityService.hasRole(\"Admin\");\r\n AureliaCookie.set('nav_stack', 'tasks', {});\r\n await this.initializePage();\r\n }\r\n\r\n async refresh() {\r\n this.initializePage();\r\n }\r\n\r\n async initializePage() {\r\n await this.loadTasks();\r\n this.setFilter(this.filter);\r\n //await this.loadUserRequests();\r\n }\r\n\r\n async loadTasks() {\r\n this.busyService.on();\r\n try {\r\n var result;\r\n if (this.filter == \"all\") {\r\n result = await this.api.get(\"Tasks\", \"GetAllTasks\", { includeInactive: this.includeInactive });\r\n } else {\r\n result = await this.api.get(\"Tasks\", \"GetTasksHomeScreenData\", { includeInactive: this.includeInactive });\r\n }\r\n this.tasks = JSON.parse(result.response);\r\n this.assignedToMeCount = this.getFilteredTasks(\"assigned_to_me\").length;\r\n this.unassignedCount = this.getFilteredTasks(\"assigned_to_me\").length;\r\n this.availableForMeCount = this.getFilteredTasks(\"available_for_me\").length;\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n //saveDivision() {\r\n // this.busyService.on();\r\n // try {\r\n // this.api.post(\"Divisions\", \"UpdateDivision\", this.selectedDivision);\r\n // this.appMessageService.addSuccessMessage(\"Division updated\");\r\n // } catch (e) {\r\n // alert(\"Error saving division: \" + e);\r\n // } finally {\r\n // this.busyService.off();\r\n // }\r\n //}\r\n\r\n}","import * as moment from 'moment';\r\n\r\nexport class ShortDateTimeValueConverter {\r\n toView(value) {\r\n if (value) {\r\n const m = moment(value);\r\n if (m.isValid()) {\r\n return m.format('M/D/YYYY h:mm a');\r\n }\r\n return \"\";\r\n }\r\n }\r\n}","import { singleton, observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { UpdateUserDialog } from \"./dialogs/update-user-dialog\";\r\nimport { activationStrategy, Router } from 'aurelia-router';\r\nimport 'jquery';\r\nimport { UpdateUserModel } from \"../data/typegen/dtos/update-user-model\";\r\nimport { ShortDateValueConverter } from \"../resources/value-converters/short-date\";\r\nimport { ShortDateTimeValueConverter } from \"../resources/value-converters/short-date-time\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class UserAdmin {\r\n\r\n constructor(\r\n private shortDateConverter: ShortDateTimeValueConverter,\r\n private dialogService: DialogService,\r\n private router: Router,\r\n private busyService: BusyService,\r\n private api: WebApiService) {\r\n }\r\n\r\n async activate(params) {\r\n await this.loadUsers();\r\n\r\n if (params.user_id) {\r\n this.handleUserIdQueryParam(params.user_id);\r\n }\r\n }\r\n\r\n async handleUserIdQueryParam(userId) {\r\n\r\n var user = this.gridData.find(o => o.id == userId);\r\n if (user) {\r\n await this.editUser(user);\r\n this.router.navigateToRoute(\"user-admin\");\r\n }\r\n }\r\n\r\n @observable()\r\n filterActive: string = \"active\";\r\n filterActiveChanged() {\r\n this.filterList();\r\n }\r\n\r\n @observable\r\n quickFilter: string;\r\n quickFilterChanged() {\r\n this.gridOptions.api && this.gridOptions.api.setQuickFilter(this.quickFilter);\r\n }\r\n\r\n filterList() {\r\n if (this.gridData) {\r\n this.filteredGridData = this.gridData.filter(o => {\r\n let thouShaltNotPass = false;\r\n if (this.filterActive) {\r\n if (this.filterActive == \"inactive\") {\r\n if (o.active) {\r\n thouShaltNotPass = true;\r\n }\r\n } else if (this.filterActive == \"active\") {\r\n if (!o.active) {\r\n thouShaltNotPass = true;\r\n }\r\n }\r\n }\r\n return !thouShaltNotPass;\r\n });\r\n }\r\n }\r\n\r\n loadUsers() {\r\n this.busyService.on();\r\n return this.api.get(\"Auth\", \"GetUsers\")\r\n .then((result) => {\r\n const users = JSON.parse(result.response);\r\n users.forEach(user => {\r\n user.millCodes = user.millCodes ? user.millCodes.split(',') : [];\r\n user.roles = user.roles ? user.roles.split(',') : [];\r\n });\r\n this.gridData = users;\r\n this.filterList();\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n columnDefs: Array = [\r\n {\r\n headerName: \"\", field: \"auth0UserId\",\r\n width: 30,\r\n cellRenderer: (params) => {\r\n if (params.value != null) {\r\n return ``;\r\n }\r\n return `    `;\r\n }\r\n },\r\n {\r\n headerName: \"\", field: \"active\", filter: 'bool',\r\n width: 30,\r\n cellRenderer: (params) => {\r\n if (params.value) {\r\n return ``;\r\n } else {\r\n return ``;\r\n }\r\n return \"\";\r\n }\r\n },\r\n {\r\n headerName: \"User Name\", field: \"userName\", filter: 'text',\r\n cellRenderer: (params) => {\r\n if (params.value != null) {\r\n return `${params.value}`;\r\n }\r\n return params.value;\r\n }\r\n },\r\n \r\n { headerName: \"Roles\", field: \"roles\", filter: 'text' },\r\n { headerName: \"Divisions\", field: \"millCodes\", filter: 'text' },\r\n {\r\n headerName: \"Last Login\", field: \"lastLoginOn\", filter: 'bool',\r\n cellRenderer: (params) => {\r\n let lastLogin = this.shortDateConverter.toView(params.value);\r\n if(lastLogin){\r\n lastLogin += \" (CST)\";\r\n }\r\n return lastLogin;\r\n },\r\n },\r\n {\r\n headerName: \"Receive Carrier Report\", field: \"receiveAutomatedCarrierStatusReport\",\r\n cellRenderer: (params) => {\r\n if (params.value) {\r\n return \"Yes\";\r\n } else {\r\n return \"No\";\r\n }\r\n }\r\n },\r\n {\r\n headerName: \"Combine Reports\", field: \"combineReports\",\r\n cellRenderer: (params) => {\r\n if (params.value) {\r\n return \"Yes\";\r\n } else {\r\n return \"No\";\r\n }\r\n }\r\n },\r\n { field: \"id\", visible: false }\r\n ];\r\n\r\n gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n onRowClicked: (e) => this.onRowClicked(e),\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n\r\n createNewUser() {\r\n this.dialogService.open(\r\n {\r\n viewModel: UpdateUserDialog,\r\n model: {\r\n user: {}\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload users\r\n this.loadUsers();\r\n }\r\n });\r\n }\r\n gridApi: any;\r\n\r\n exportGrid() {\r\n this.gridApi.exportDataAsCsv({\r\n fileName: \"cmp_users.csv\"\r\n });\r\n }\r\n\r\n refresh() {\r\n this.loadUsers();\r\n }\r\n\r\n\r\n onReady(event) {\r\n this.gridApi = this.gridOptions.api;\r\n }\r\n\r\n onRowClicked(e) {\r\n if (e.event.target !== undefined) {\r\n let data = e.data;\r\n let actionType = e.event.target.getAttribute(\"user-link\");\r\n if (actionType == \"true\") {\r\n this.editUser(data);\r\n }\r\n }\r\n }\r\n\r\n async editUser(data) {\r\n // create user object for editing\r\n const updateUserModel: UpdateUserModel = Object.assign(new UpdateUserModel(), data);\r\n await this.dialogService.open(\r\n {\r\n viewModel: UpdateUserDialog,\r\n model: {\r\n user: updateUserModel,\r\n createOnSave: false\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload users\r\n return this.loadUsers();\r\n }\r\n });\r\n }\r\n\r\n gridData = [];\r\n filteredGridData = [];\r\n\r\n}\r\n","import { autoinject, bindable, DOM, bindingMode, Parent } from 'aurelia-framework';\r\nimport { ValidationController, ValidationRules, validateTrigger, Validator } from 'aurelia-validation';\r\n\r\n@autoinject()\r\nexport class WorkCarrierInput {\r\n\r\n constructor() {\r\n }\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) field: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) approvals: Array;\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) dotValues: Array;\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) class: string;\r\n\r\n bind() {\r\n }\r\n\r\n //triggerEvent = (type:string) => this.element.dispatchEvent(DOM.createCustomEvent(type, {}));\r\n\r\n}\r\n","import { autoinject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { CommentEntry } from '../../models/comment-entry';\r\nimport { SecurityService } from '../../services/security-service';\r\n\r\n@autoinject\r\nexport class NewCommentDialog {\r\n insertedBy: string;\r\n canEdit: boolean = true;\r\n noteNotFound: boolean;\r\n constructor(\r\n private busyService: BusyService,\r\n protected controller: DialogController, private api: WebApiService) {\r\n }\r\n\r\n noteId: number;\r\n carrierId: number;\r\n carrierName: string;\r\n comment: string;\r\n visibilityRole: string = \"View\"; //default to view role\r\n allTags: string[] = [\"Insurance\", \"Contract\", \"General\", \"Documents\", \"Special\"];\r\n commentTags: string[] = [];\r\n\r\n async activate(params) {\r\n this.carrierId = params[0];\r\n this.carrierName = params[1];\r\n const noteId = params[2];\r\n if (noteId) {\r\n await this.loadComment(noteId);\r\n }\r\n }\r\n\r\n async loadComment(noteId: number) {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetCarrierComment\", { noteId: noteId })\r\n .then((result) => {\r\n const commentEntry: CommentEntry = JSON.parse(result.response);\r\n if (commentEntry) {\r\n this.noteId = commentEntry.id;\r\n this.comment = commentEntry.comment;\r\n if (commentEntry.tags) this.commentTags = commentEntry.tags.split(',');\r\n this.insertedBy = commentEntry.insertedBy;\r\n this.visibilityRole = commentEntry.visibilityRole;\r\n } else {\r\n this.noteNotFound = true;\r\n this.canEdit = false;\r\n }\r\n\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n save() {\r\n //save comments immediately; low impact because they are append-only\r\n var params = {\r\n id: this.noteId,\r\n carrierId: this.carrierId,\r\n comment: this.comment,\r\n tags: this.commentTags,\r\n visibilityRole: this.visibilityRole\r\n };\r\n\r\n this.api.post(\"Carriers\", \"UpdateCarrierComment\", params)\r\n .then(() => {\r\n $[\"notify\"](\"Comment saved\", { className: \"success\", position: \"top center\" });\r\n this.controller.ok();\r\n }, (err) => {\r\n let msg = \"Error saving comment\";\r\n if (typeof err == \"string\") {\r\n msg = err;\r\n }\r\n $[\"notify\"](msg, { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\n\r\n@autoinject\r\nexport class SaveChangesDialog {\r\n constructor(protected controller: DialogController, private api: WebApiService) {\r\n }\r\n\r\n activate() {\r\n }\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\n\r\n@autoinject\r\nexport class CarrierExistsDialog {\r\n constructor(protected controller: DialogController, private api: WebApiService) {\r\n }\r\n\r\n activate() {\r\n }\r\n\r\n}","import { autoinject, computedFrom, observable } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { Insurance } from \"../../models/insurance\";\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { Carrier } from '../../models/carrier';\r\nimport { start } from 'repl';\r\nimport { SimpleDialog } from './simple-dialog';\r\nimport * as moment from 'moment';\r\n\r\n@autoinject\r\nexport class UpdateInsuranceDialog {\r\n savedAuthorityType: any;\r\n private model: any;\r\n private isCancelConfirmed: boolean;\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private ea: EventAggregator,\r\n private appMessageService: AppMessageService,\r\n private pageMessageService: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService) {\r\n this.appMessageService.containerId = \"update-insurance-dialog\";\r\n }\r\n\r\n item: Insurance;\r\n carrier: Carrier;\r\n nameElement: HTMLElement;\r\n insuranceTypes: any;\r\n //endorsements: Array = [];\r\n existingInsuranceTypeIds: Array;\r\n authorityTypeLabel: string;\r\n\r\n insuranceTypeChanged() {\r\n if (!this.item.id) {\r\n this.loadEndorsements(this.item.insuranceTypeId);\r\n //this.setEndorsements(this.item);\r\n }\r\n }\r\n\r\n canSave: boolean = true;\r\n\r\n activate(model) {\r\n\r\n this.appMessageService.clearPageScopedMessages();\r\n\r\n this.existingInsuranceTypeIds = model.existingInsuranceTypeIds;\r\n\r\n this.carrier = model.carrier;\r\n\r\n this.model = model;\r\n this.isCancelConfirmed = false;\r\n\r\n //defaults for a new contact\r\n if (!model.item) {\r\n this.item = new Insurance();\r\n this.item.authorityTypeId = model.authorityTypeId;\r\n this.item.carrierId = model.carrierId;\r\n } else {\r\n //create a copy so that the original is not modified until changes are applied\r\n this.item = JSON.parse(JSON.stringify(model.item));\r\n this.savedAuthorityType = this.item.authorityTypeId;\r\n }\r\n\r\n if (this.item.authorityTypeId == \"30d0f5ca-81a4-4540-b8a5-cf605bd523e8\") {\r\n this.authorityTypeLabel = \"ASSET CARRIER\";\r\n } else if (this.item.authorityTypeId == \"ec8d37e1-a1ed-4187-9455-f41b8900088b\") {\r\n this.authorityTypeLabel = \"BROKERAGE\";\r\n } else {\r\n this.appMessageService.addErrorMessage(\"Please select a valid Authority Type\");\r\n }\r\n\r\n if (!this.carrier.entityType) {\r\n this.appMessageService.addWarningMessage(\"The carrier's EntityType must be selected before trying to add an insurance record.\", \"entity_type\");\r\n this.canSave = false;\r\n } else {\r\n this.appMessageService.removeMessageByKey(\"entity_type\");\r\n }\r\n\r\n this.busyService.on();\r\n return Promise.all([\r\n this.loadInsuranceTypes()\r\n ]).then(() => this.busyService.off());\r\n\r\n }\r\n\r\n attached() {\r\n this.nameElement.focus();\r\n }\r\n\r\n loadInsuranceTypes() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetInsuranceTypes\")\r\n .then((result) => {\r\n if (this.item.id) {\r\n //existing item (can't change type)\r\n this.insuranceTypes = JSON.parse(result.response).filter(o => o.id == this.item.insuranceTypeId);\r\n } else {\r\n //new item (can only choose type that isn't already added)\r\n //filter based on entity type\r\n this.insuranceTypes = JSON.parse(result.response).filter(o => {\r\n return o.entityTypes.indexOf(this.carrier.entityType) > -1\r\n && this.existingInsuranceTypeIds.indexOf(o.id) == -1\r\n });\r\n }\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n loadEndorsements(insuranceTypeId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierInsuranceEndorsementsByType\", { insuranceTypeId: insuranceTypeId })\r\n .then((result) => {\r\n this.item.endorsements = JSON.parse(result.response);\r\n //this.setEndorsements(this.item);\r\n });\r\n }\r\n\r\n //setEndorsements(item: Insurance) {\r\n //item.endorsements = this.endorsements.filter(o => o.insuranceTypeId == item.insuranceTypeId);\r\n //}\r\n\r\n delete() {\r\n\r\n if (!confirm(\"Are you sure you want to delete this insurance record? This cannot be undone.\"))\r\n return;\r\n\r\n var params = {\r\n carrierId: this.item.carrierId,\r\n id: this.item.id\r\n };\r\n\r\n this.pageMessageService.clear();\r\n this.api.post(\"Carriers\", \"DeleteCarrierInsurance\", params)\r\n .then(() => {\r\n $[\"notify\"](\"Insurance deleted\", { className: \"success\", position: \"top center\" });\r\n this.controller.ok();\r\n }, () => {\r\n $[\"notify\"](\"Error saving insurance\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n setEndorsementDate(endorsement) {\r\n endorsement.endorsementDate = new Date();\r\n }\r\n\r\n setEndorsementNA(endorsement) {\r\n endorsement.endorsementChecked = false;\r\n }\r\n\r\n async save() {\r\n\r\n //var params = {\r\n // id: this.item.id,\r\n // insuranceTypeId: this.item.insuranceTypeId,\r\n // carrierId: this.item.carrierId,\r\n // name: this.item.name,\r\n // expiration: this.item.expiration,\r\n // rating: this.item.rating,\r\n // amount: this.item.amount,\r\n // umbrellaAmount: this.item.umbrellaAmount,\r\n // endorsements: this.item.endorsements\r\n //};\r\n var msg = \"\";\r\n\r\n if (this.item.isCanceled) {\r\n\r\n\r\n // when the value changes to \"canceled\", confirm that it is intended\r\n if (!this.model.item.isCanceled && !this.isCancelConfirmed) {\r\n // only show notice if status isn't already Master Approved Dormant\r\n if (this.carrier.status != 11) {\r\n var model = {\r\n title: \"Cancel Insurance Cancellation\",\r\n message: \"Cancelling the insurance will set the carrier status to Master Approved - Dormant and will send an email to ALL subscribed CMP users.\\n\\nDo you want to continue?\",\r\n showComment: false,\r\n buttons: [\"Yes\", \"No\"]\r\n };\r\n\r\n var result = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Yes\") {\r\n this.isCancelConfirmed = true;\r\n return true;\r\n } else {\r\n this.isCancelConfirmed = false;\r\n this.item.isCanceled = false;\r\n return false;\r\n }\r\n });\r\n\r\n if (!result) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (this.item.expiration) {\r\n var today = new Date();\r\n var endDate = new Date(this.item.expiration);\r\n var maxExpiration = new Date();\r\n maxExpiration.setDate(maxExpiration.getDate() + 30);\r\n if ((endDate as any) == \"Invalid Date\") {\r\n alert(\"Invalid Expiration Date: Please enter a valid expiration date, and try again.\");\r\n return\r\n }\r\n if (maxExpiration < endDate) {\r\n alert(\"Insurance expiration cannot be more than 30 days in the future when insurance is marked as canceled.\");\r\n return;\r\n }\r\n } else {\r\n alert(\"Insurance expiration must be set when insurance is marked as Canceled\");\r\n return;\r\n }\r\n }\r\n\r\n else if (this.item.expiration) {\r\n var startDate = new Date();\r\n var endDate = new Date(this.item.expiration);\r\n if ((endDate as any) == \"Invalid Date\") {\r\n alert(\"Invalid Expiration Date: Please enter a valid expiration date, and try again.\");\r\n return\r\n }\r\n\r\n\r\n var monthsDifference = moment(endDate).diff(moment(startDate), 'months', true);\r\n if (monthsDifference > 14) {\r\n msg = \"Insurance expiration is more than 14 months in the future. Click OK to confirm this is correct\";\r\n } else if (startDate > endDate) {\r\n msg = \"Insurance expiration is in the past. Click OK to confirm this is correct\";\r\n }\r\n\r\n\r\n if (msg) {\r\n var model = {\r\n title: \"Confirm Insurance Expiration\",\r\n message: msg,\r\n showComment: false,\r\n buttons: [\"OK\", \"Cancel\"]\r\n };\r\n\r\n var result = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"OK\") {\r\n return true;\r\n }\r\n });\r\n\r\n if (!result) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n this.pageMessageService.clear();\r\n this.item.type = (this.insuranceTypes.find(o => o.id == this.item.insuranceTypeId) || {}).description;\r\n\r\n this.api.post(\"Carriers\", \"UpdateCarrierInsurance\", this.item)\r\n .then(() => {\r\n if (!this.item.id) {\r\n $[\"notify\"](\"Insurance created\", { className: \"success\", position: \"top center\" });\r\n } else {\r\n $[\"notify\"](\"Insurance updated\", { className: \"success\", position: \"top center\" });\r\n }\r\n this.ea.publish(\"carrier.insurance.updated\", this.item.carrierId);\r\n if (this.isCancelConfirmed) {\r\n this.controller.ok(\"status_changed\");\r\n } else {\r\n this.controller.ok();\r\n }\r\n }, () => {\r\n $[\"notify\"](\"Error saving insurance\", { className: \"error\", position: \"top center\" });\r\n });\r\n\r\n }\r\n\r\n private monthDiff(d1, d2) {\r\n let months;\r\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\r\n months -= d1.getMonth();\r\n months += d2.getMonth();\r\n return months <= 0 ? 0 : months;\r\n }\r\n\r\n private getMonthDifference(startDate, endDate) {\r\n return (\r\n endDate.getMonth() -\r\n startDate.getMonth() +\r\n 12 * (endDate.getFullYear() - startDate.getFullYear())\r\n );\r\n }\r\n\r\n\r\n}","import { autoinject, Aurelia } from 'aurelia-framework';\r\nimport {WebApiService} from \"./web-api-service\";\r\n\r\n@autoinject()\r\nexport class SettingsService {\r\n\r\n constructor(private api: WebApiService) {\r\n api.get(\"Carriers\", \"GetSettings\")\r\n .then((result) => {\r\n this.settings = JSON.parse(result.response);\r\n });\r\n }\r\n\r\n settings: {}\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { AppMessageService } from '../../services/app-message-service';\r\nimport { Carrier } from '../../models/carrier';\r\n\r\n@autoinject\r\nexport class SearchCarrierDialog {\r\n constructor(protected controller: DialogController, private api: WebApiService,\r\n private msg: AppMessageService) {\r\n this.msg.containerId = \"search-carrier-dialog\";\r\n }\r\n\r\n keyword: string;\r\n selectedCarrier: Carrier;\r\n carriers: Carrier[] = [];\r\n\r\n activate(params) {\r\n }\r\n\r\n search() {\r\n //save comments immediately; low impact because they are append-only\r\n this.msg.clearNonPersistentMessages();\r\n var params = {\r\n keyword: this.keyword\r\n };\r\n this.api.post(\"Carriers\", \"GlobalSearch?keyword=\" + this.keyword)\r\n .then(result => {\r\n let carriers = JSON.parse(result.response);\r\n\r\n\r\n ////filter out those records that don't match SCAC or carrier id\r\n //const keyword = this.keyword.toLowerCase();\r\n //carriers = carriers.filter((o: Carrier) => {\r\n // return keyword == o.id.toString().toLowerCase() || keyword == (o.scacCode || \"\").toLowerCase() || ((o.dedicatedScacCodes || \"\").toLowerCase().indexOf(keyword) > -1);\r\n //});\r\n\r\n this.carriers = carriers;\r\n\r\n //if (carriers) {\r\n // if (carriers.length == 1) {\r\n // const carrier = carriers[0];\r\n // this.controller.ok(carrier);\r\n // } else if (carriers.length == 0) {\r\n // this.msg.addErrorMessage(`No matching carriers found.`);\r\n // } else {\r\n // this.msg.addErrorMessage(`${carriers.length} matching carriers found. Please narrow your search`);\r\n // }\r\n //}\r\n }, e => {\r\n this.msg.addErrorMessage(e || \"Error occurred.\");\r\n });\r\n }\r\n\r\n\r\n selectCarrier() {\r\n this.controller.ok(this.selectedCarrier);\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController, DialogService } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { SimpleDialog } from './simple-dialog';\r\n\r\n@autoinject\r\nexport class DedicatedScacDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private dialogService: DialogService) {\r\n }\r\n\r\n carrierId: number;\r\n carrierName: string;\r\n codes: string[] = [];\r\n primaryScacCode: string = \"\";\r\n scacCodeReadonly: boolean;\r\n\r\n activate(params) {\r\n this.carrierId = params[0];\r\n this.carrierName = params[1];\r\n this.codes = (params[2] || \"\").split(',');\r\n if (this.codes.length == 0) {\r\n this.codes.push(\"\");\r\n }\r\n this.primaryScacCode = params[3];\r\n this.scacCodeReadonly = params[4];\r\n }\r\n\r\n addCode() {\r\n console.log(this.codes);\r\n let last = this.codes[this.codes.length - 1];\r\n if (last) {\r\n this.codes.push(\"\");\r\n }\r\n }\r\n\r\n deleteCode(index) {\r\n if (this.codes.length == 1) {\r\n this.codes = [\"\"];\r\n }\r\n else {\r\n this.codes.splice(index, 1);\r\n }\r\n }\r\n\r\n private changedScacs = [];\r\n public onScacChanged(i: number) {\r\n setTimeout(() => {\r\n const val = i == 0 ? this.primaryScacCode : this.codes[i - 1];\r\n if (val) {\r\n this.changedScacs[i] = val.toUpperCase();\r\n } else {\r\n this.changedScacs[i] = undefined;\r\n }\r\n }, 0);\r\n }\r\n\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n\r\n async save(close = true) {\r\n\r\n if (close) {\r\n if (this.changedScacs.find(o => o != undefined)) {\r\n var shouldContinue = await new Promise((resolve => {\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"SCAC Not Published\",\r\n icon: \"fa-exclamation-triangle\",\r\n message: \"The follow SCAC Codes have been changed, but have not been sent to SkyBlue.\\n\\nUnsent Changes: \" + this.changedScacs.filter(o => !!o).join(\", \"),\r\n buttons: [\"Save without sending to SkyBlue\", \"Cancel\"]\r\n }\r\n }).whenClosed(result => {\r\n if (!result.wasCancelled) {\r\n var answer = result.output;\r\n if (answer == \"Save without sending to SkyBlue\") {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n }\r\n })\r\n\r\n }));\r\n if (!shouldContinue) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n let last = this.codes[this.codes.length - 1];\r\n if (!last) {\r\n this.deleteCode(this.codes.length - 1);\r\n }\r\n\r\n //save comments immediately; low impact because they are append-only\r\n for (let i = 0; i < this.codes.length; i++) {\r\n this.codes[i] = (this.codes[i] || \"\").trim() || undefined;\r\n }\r\n this.primaryScacCode = (this.primaryScacCode || \"\").trim() || undefined;\r\n\r\n var params = {\r\n carrierId: this.carrierId,\r\n primaryScacCode: this.primaryScacCode,\r\n codes: this.codes\r\n };\r\n\r\n await this.api.post(\"Carriers\", \"UpdateCarrierDedicatedScacCodes\", params)\r\n .then(async () => {\r\n $[\"notify\"](\"Additional SCAC Codes saved\", { className: \"success\", position: \"top center\" });\r\n if (close) await this.controller.ok();\r\n }, () => {\r\n $[\"notify\"](\"Error saving additional SCAC Codes\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n async sendScacCodeToSkyBlue(i, scacCode) {\r\n\r\n await this.save(false);\r\n\r\n //save comments immediately; low impact because they are append-only\r\n var params = {\r\n carrierId: this.carrierId,\r\n scacCode: scacCode\r\n };\r\n\r\n await this.api.post(\"Carriers\", \"SendScacToSkyBlue\", params)\r\n .then(async () => {\r\n this.changedScacs[i] = undefined;\r\n $[\"notify\"](\"SCAC Code sent to SkyBlue\", { className: \"success\", position: \"top center\" });\r\n }, () => {\r\n $[\"notify\"](\"Error saving sending code to SkyBlue\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n}","import { autoinject, computedFrom, observable } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { Insurance } from \"../../models/insurance\";\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { Carrier } from '../../models/carrier';\r\n\r\n@autoinject\r\nexport class UpdateTransloaderLocationDialog {\r\n savedAuthorityType: any;\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private ea: EventAggregator,\r\n private appMessageService: AppMessageService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n this.appMessageService.containerId = \"update-transloader-location-dialog\";\r\n }\r\n\r\n\r\n\r\n location: any = {};\r\n carrier: Carrier;\r\n nameElement: HTMLElement;\r\n insuranceTypes: any;\r\n //endorsements: Array = [];\r\n existingInsuranceTypeIds: Array;\r\n authorityTypeLabel: string;\r\n carrierDivisions = [];\r\n\r\n public railCarTypes = [];\r\n public transloaderRailCarTypes = [];\r\n\r\n validateFields() {\r\n // TODO: ensure that multiple transloader records can't be created for same division.\r\n\r\n if (!(this.location.locationName)) {\r\n alert(\"Location is required\");\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n loadTransloaderLocationById(detailsId: number): any {\r\n return this.api.get(\"Carriers\", \"GetTransloaderLocationById\", { detailsId: detailsId})\r\n .then((result) => {\r\n let location = JSON.parse(result.response);\r\n this.transloaderRailCarTypes = location.railCarTypes ? location.railCarTypes.split(\",\") : [];\r\n return location;\r\n });\r\n }\r\n\r\n async activate(model) {\r\n\r\n this.appMessageService.clearPageScopedMessages();\r\n\r\n this.carrierDivisions = model.divisions.filter(o => model.carrierDivisions.indexOf(o.id)>-1);\r\n this.busyService.on();\r\n\r\n this.loadRailCarTypes();\r\n\r\n //defaults for a new contact\r\n if (!model.detailsId) {\r\n this.location = {};\r\n this.location.entityId = model.carrierId;\r\n this.location.address = {};\r\n } else {\r\n //create a copy so that the original is not modified until changes are applied\r\n this.location = await this.loadTransloaderLocationById(model.detailsId);\r\n }\r\n this.busyService.off();\r\n }\r\n\r\n loadRailCarTypes() {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetRailCarTypes\")\r\n .then((result) => {\r\n this.railCarTypes = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n attached() {\r\n //this.nameElement.focus();\r\n }\r\n\r\n //setEndorsements(item: Insurance) {\r\n //item.endorsements = this.endorsements.filter(o => o.insuranceTypeId == item.insuranceTypeId);\r\n //}\r\n\r\n delete() {\r\n\r\n if (!confirm(\"Are you sure you want to delete this transloader location record? This cannot be undone.\"))\r\n return;\r\n\r\n var params = {\r\n id: this.location.id\r\n };\r\n\r\n this.pageMessageService.clear();\r\n this.api.post(\"Carriers\", \"DeleteTransloaderLocation\", params)\r\n .then(() => {\r\n $[\"notify\"](\"Transloader location deleted\", { className: \"success\", position: \"top center\" });\r\n this.controller.ok();\r\n }, () => {\r\n $[\"notify\"](\"Error deleting transloader location \", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n save() {\r\n this.pageMessageService.clear();\r\n\r\n if (this.validateFields()) {\r\n\r\n this.location.railCarTypes = this.transloaderRailCarTypes.join(\",\");\r\n\r\n this.api.post(\"Carriers\", \"UpdateTransloaderLocation\", this.location)\r\n .then(() => {\r\n if (!this.location.id) {\r\n $[\"notify\"](\"Transloader location created\", { className: \"success\", position: \"top center\" });\r\n } else {\r\n $[\"notify\"](\"Transloader location updated\", { className: \"success\", position: \"top center\" });\r\n }\r\n this.ea.publish(\"carrier.transloader_location.updated\", this.location.carrierId);\r\n this.controller.ok();\r\n }, () => {\r\n $[\"notify\"](\"Error saving transloader location\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { AppMessageService } from '../../services/app-message-service';\r\nimport { Carrier } from '../../models/carrier';\r\n\r\n@autoinject\r\nexport class TonnageDetailsDialog {\r\n constructor(\r\n protected controller: DialogController, \r\n private api: WebApiService) {\r\n }\r\n\r\n carrierId: number;\r\n carrierName: number;\r\n tonnageDetails: any[] = [];\r\n\r\n activate(params) {\r\n this.carrierId = params.carrierId;\r\n this.carrierName = params.carrierName;\r\n return this.loadTonnageDetails(params.carrierId);\r\n }\r\n\r\n\r\n loadTonnageDetails(carrierId: any): any {\r\n return this.api.get(\"Carriers\", \"GetCarrierShipHistoryByDivision\", { carrierId: this.carrierId })\r\n .then(result => {\r\n this.tonnageDetails = JSON.parse(result.response);\r\n }, e => {\r\n alert(e.message || \"Error occurred.\");\r\n });\r\n }\r\n\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { Globals } from '../../models/globals';\r\n\r\n\r\n@autoinject\r\nexport class CreateCarrierDialog {\r\n entityTypes: { id: string; description: string; }[];\r\n selectedEntityType: string;\r\n constructor(\r\n protected controller: DialogController\r\n ) {\r\n\r\n this.entityTypes = new Globals().getEntityTypes();\r\n\r\n }\r\n\r\n\r\n activate(params) {\r\n }\r\n\r\n ok() {\r\n this.controller.ok(this.selectedEntityType);\r\n }\r\n\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController, DialogService } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { SecurityService } from '../../services/security-service';\r\nimport 'jquery';\r\nimport 'notify';\r\nimport * as moment from 'moment';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { RequestDto } from '../../data/typegen/dtos/request-dto';\r\nimport { CarrierStatus } from '../carrier-status-history';\r\nimport { PromptDialog } from '../../resources/dialogs/prompt-dialog';\r\nimport { SimpleDialog } from './simple-dialog';\r\n\r\n@autoinject\r\nexport class CarrierOnboardingStatusSummaryDialog {\r\n public requestNumber: string;\r\n requestId: string;\r\n constructor(\r\n protected controller: DialogController,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private api: WebApiService,\r\n private dialog: DialogService\r\n ) { }\r\n\r\n missingDocuments = [];\r\n carrierId: number;\r\n\r\n activate(params) {\r\n this.carrierId = params.carrierId;\r\n this.loadCarrierRequirements();\r\n }\r\n\r\n private loadCarrierRequirements() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierCurrentRequirements\", { carrierId: this.carrierId })\r\n .then((result) => {\r\n var reqs = JSON.parse(result.response);\r\n this.missingDocuments = reqs.filter(o=>o.requirementType==1)\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n\r\n}","import { OnboardingRequirementDto } from \"../../../models/onboarding-requirement\";\r\n\r\nexport class CarrierRequirementDialogParams{\r\n public carrierMasterApprovalRequirementId?: string;\r\n public carrierName: string;\r\n public carrierId: string;\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from '../../../services/web-api-service';\r\nimport { CarrierRequirementDialogParams } from './carrier-requirement-dialog-params';\r\nimport { BusyService } from '../../../services/busy-service';\r\n\r\n@autoinject\r\nexport class CarrierRequirementDialog {\r\n public context: CarrierRequirementDialogParams;\r\n public dialogTitle: string;\r\n public documentTypes = [];\r\n public selectedDocumentTypeIds = [];\r\n public requirementName: string;\r\n public description: string;\r\n\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService) {\r\n }\r\n\r\n async activate(params) {\r\n this.context = params as CarrierRequirementDialogParams;\r\n if (this.context.carrierMasterApprovalRequirementId) {\r\n this.dialogTitle = \"Edit onboarding requirement\";\r\n } else {\r\n this.dialogTitle = \"Add new onboarding requirement\";\r\n }\r\n\r\n await this.loadDocumentTypes();\r\n }\r\n\r\n async loadDocumentTypes() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetDocumentTypes\")\r\n .then((result) => {\r\n let allDocumentTypes = JSON.parse(result.response);\r\n\r\n this.documentTypes = allDocumentTypes;\r\n this.selectedDocumentTypeIds = (this.documentTypes.map(o=>o.documentTypeId));\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n public async save() {\r\n var model = {\r\n carrierMasterApprovalRequirementId: this.context.carrierMasterApprovalRequirementId,\r\n carrierId: this.context.carrierId,\r\n documentTypeIds: this.selectedDocumentTypeIds.toString(),\r\n name: this.requirementName,\r\n description: this.description\r\n };\r\n await this.api.post(\"Carriers\", \"AddCarrierMasterApprovalRequirement\", model);\r\n this.controller.ok(true);\r\n }\r\n}","import { bindable, autoinject } from 'aurelia-framework';\r\nimport { WebApiService } from '../../../services/web-api-service';\r\nimport { BusyService } from '../../../services/busy-service';\r\nimport { OnboardingRequirementDto, OnboardingRequirementTypes } from '../../../models/onboarding-requirement';\r\nimport 'jquery';\r\nimport { SecurityService } from '../../../services/security-service';\r\nimport { CarrierRequirementDialog } from '../../dialogs/carrier-requirement-dialog/carrier-requirement-dialog';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { bind } from 'bluebird';\r\n\r\n\r\n@autoinject()\r\nexport class OnboardingRequirements {\r\n\r\n @bindable()\r\n public showHeader = false;\r\n\r\n public onboardingRequirementTypes = OnboardingRequirementTypes;\r\n\r\n @bindable()\r\n public showOptionalRequirements = false;\r\n\r\n @bindable openInsurance: Function;\r\n @bindable refreshInsurance: Function;\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private api: WebApiService,\r\n private busyService: BusyService,\r\n private securityService: SecurityService\r\n ) {\r\n }\r\n\r\n public userView: \"CarrierService\" | \"Contracts & Insurance\" | \"ReadOnly\" = undefined;\r\n\r\n @bindable()\r\n public readonly: boolean = true;\r\n\r\n /** gets/sets whether a carrier services agent can clear rejection\r\n * Should only be true when displayed when the request is in the onboarding stage */\r\n @bindable()\r\n public carrierServicesCanClearRejection: boolean = false;\r\n\r\n @bindable()\r\n public carrierId: string = \"none\";\r\n\r\n @bindable()\r\n public carrierIntId: number = -1;\r\n\r\n @bindable()\r\n public carrierName: string = undefined;\r\n\r\n public requirementCompletionPercentage = 0;\r\n public requirementVerifiedPercentage = 0;\r\n\r\n /* for processors, this is success when all documentation is uploaded\r\n for C&I/Legal, this is success when all documentation is verified\r\n for viewers, this is warning when uploaded, but not verified, success once fully verified\r\n */\r\n public completionIndicatorClass: \"incomplete\" | \"partial\" | \"complete\" = \"incomplete\";\r\n\r\n public onboardingRequirements: OnboardingRequirementDto[] = [];\r\n\r\n @bindable()\r\n public options = { statusIcon: \"fa-question\" };\r\n\r\n async attached() {\r\n await this.loadDataAsync();\r\n }\r\n\r\n public async refresh() {\r\n await this.loadDataAsync();\r\n this.refreshInsurance();\r\n }\r\n\r\n // update/merge the onboardingRequirements array so that it matches the reqs array.\r\n private updateOnboardingRequirements(reqs: OnboardingRequirementDto[]): void {\r\n\r\n // remove any that don't exist from server\r\n for (let i = this.onboardingRequirements.length - 1; i >= 0; i--) {\r\n if (!reqs.some(r => r.name === this.onboardingRequirements[i].name)) {\r\n this.onboardingRequirements.splice(i, 1);\r\n }\r\n }\r\n\r\n\r\n // add/insert new ones\r\n reqs.forEach(req => {\r\n const existingReq = this.onboardingRequirements.find(r => {\r\n return r.name === req.name;\r\n\r\n // if( r.isCategory){\r\n // //match on category name\r\n // return r.name === req.name;\r\n // }else{\r\n // //match on carrier requirement id\r\n // return r.carrierMasterApprovalRequirementId === req.carrierMasterApprovalRequirementId;\r\n // }\r\n });\r\n\r\n if (existingReq) {\r\n // Update existing item in place\r\n Object.keys(req).forEach(key => {\r\n existingReq[key] = req[key];\r\n });\r\n } else {\r\n // Add new item\r\n this.onboardingRequirements.push(req);\r\n }\r\n });\r\n }\r\n\r\n private getTotalCount() {\r\n let count = 0;\r\n this.onboardingRequirements.forEach(o => {\r\n if (o.isCategory) {\r\n count += o.requirements.length;\r\n } else {\r\n count++;\r\n }\r\n })\r\n\r\n return count;\r\n }\r\n\r\n private getCompletedCount() {\r\n let count = 0;\r\n this.onboardingRequirements.forEach(o => {\r\n if (o.isCategory) {\r\n count += o.requirements.filter(o => o.isComplete).length;\r\n } else {\r\n if (o.isComplete) {\r\n count++;\r\n }\r\n }\r\n })\r\n\r\n return count;\r\n }\r\n\r\n private getVerifiedCount() {\r\n let count = 0;\r\n this.onboardingRequirements.forEach(o => {\r\n if (o.isCategory) {\r\n count += o.requirements.filter(o => (o.verifiedStatus == 'Y' || o.verifiedStatus == 'N')).length;\r\n } else {\r\n if ((o.verifiedStatus == 'Y' || o.verifiedStatus == 'N')) {\r\n count++;\r\n }\r\n }\r\n })\r\n\r\n return count;\r\n }\r\n\r\n async loadDataAsync() {\r\n try {\r\n this.busyService.on();\r\n var params = { carrierId: this.carrierId };\r\n const result = await this.api.get(\"Carriers\", \"GetOnboardingRequirements\", params);\r\n const reqs: OnboardingRequirementDto[] = JSON.parse(result.response) || [];\r\n\r\n // update/merge the onboardingRequirements array so that it matches the reqs array.\r\n this.updateOnboardingRequirements(reqs);\r\n\r\n // calculation completion percentage\r\n const numberOfReqs = this.getTotalCount();\r\n const numberOfCompletedReqs = this.getCompletedCount();\r\n this.requirementCompletionPercentage = Math.round(numberOfCompletedReqs / numberOfReqs * 100);\r\n\r\n const numberOfVerifiedReqs = this.getVerifiedCount();\r\n this.requirementVerifiedPercentage = Math.round(numberOfVerifiedReqs / numberOfReqs * 100);\r\n\r\n //show competion indicator color based on persona\r\n if (this.securityService.hasRole(\"Legal\")) {\r\n this.userView = \"Contracts & Insurance\";\r\n this.completionIndicatorClass = this.requirementVerifiedPercentage == 100 ? 'complete' : 'incomplete';\r\n } else if (this.securityService.hasRole(\"Edit\")) {\r\n this.userView = \"CarrierService\";\r\n this.completionIndicatorClass = this.requirementCompletionPercentage == 100 ? 'complete' : 'incomplete';\r\n } else {\r\n this.userView = \"ReadOnly\";\r\n if (this.requirementVerifiedPercentage == 100) {\r\n this.completionIndicatorClass = \"complete\";\r\n } else if (this.requirementCompletionPercentage == 100) {\r\n this.completionIndicatorClass = \"partial\";\r\n } else {\r\n this.completionIndicatorClass = \"incomplete\";\r\n }\r\n }\r\n\r\n // sanity check, once in a while, the data load was happening before the bindings updated\r\n if (params.carrierId !== this.carrierId) {\r\n const msg = \"Data mismatch detected. Please report this message to Joseph Gabriel for CMP support\";\r\n alert(msg);\r\n throw new Error(msg);\r\n }\r\n\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n\r\n public addNewRequirement() {\r\n this.dialogService.open(\r\n {\r\n viewModel: CarrierRequirementDialog,\r\n model: {\r\n carrierIntId: this.carrierIntId,\r\n carrierId: this.carrierId,\r\n carrierName: this.carrierName\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n this.refresh();\r\n }\r\n });\r\n }\r\n\r\n detached() {\r\n }\r\n\r\n}","/// \r\n/// Represents the status of an FMCSA API operation result.\r\n/// \r\nexport enum ApiResultStatus {\r\n /// \r\n /// The operation completed successfully.\r\n /// \r\n success,\r\n\r\n /// \r\n /// The operation failed.\r\n /// \r\n failed,\r\n\r\n /// \r\n /// The operation was skipped due to being disabled in the configuration\r\n /// \r\n disabled\r\n}","import { newInstance, autoinject, computedFrom, observable } from 'aurelia-framework';\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport { Router, Redirect, activationStrategy } from 'aurelia-router';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { CarriersController } from \"../controllers/carriers-controller\";\r\nimport { BusyService } from \"../services/busy-service\";\r\nimport { Carrier } from \"../models/carrier\";\r\nimport { PromptDialog } from \"../resources/dialogs/prompt-dialog\";\r\nimport { NewCommentDialog } from \"./dialogs/new-comment-dialog\";\r\nimport { SaveChangesDialog } from \"./dialogs/save-changes-dialog\";\r\nimport { SimpleDialog } from \"./dialogs/simple-dialog\";\r\nimport { CarrierStatusDialog } from \"./dialogs/carrier-status-dialog\";\r\nimport { CarrierExistsDialog } from \"./dialogs/carrier-exists-dialog\";\r\nimport { UpdateContactDialog } from \"./dialogs/update-contact-dialog\";\r\nimport { UpdateInsuranceDialog } from \"./dialogs/update-insurance-dialog\";\r\nimport { WebApiService } from \"../services/web-api-service\";\r\nimport { PageMessageService } from \"../services/page-message-service\";\r\nimport { SecurityService } from \"../services/security-service\";\r\nimport { AppMessageService } from \"../services/app-message-service\";\r\nimport lanes from \"../models/lane-list\";\r\nimport { CommentEntry } from \"../models/comment-entry\";\r\nimport { Contact } from \"../models/contact\";\r\nimport { PhoneValueConverter } from \"../resources/value-converters/phone\";\r\nimport { PushMessage, SignalrService } from '../services/signalr-service';\r\nimport { SettingsService } from '../services/settings-service';\r\nimport * as AppMessage from '../models/app-message';\r\nimport 'jquery';\r\nimport 'notify';\r\nimport * as moment from 'moment';\r\nimport { SearchCarrierDialog } from './dialogs/search-carrier';\r\nimport { DedicatedScacDialog } from './dialogs/update-dedicated-scac';\r\nimport { UpdateTransloaderLocationDialog } from './dialogs/update-transloader-details-dialog';\r\nimport { TonnageDetailsDialog } from './dialogs/tonnage-details-dialog';\r\nimport { OrgStructureNode } from '../models/org-structure-node';\r\nimport { Globals } from '../models/globals';\r\nimport { CreateCarrierDialog } from './dialogs/create-carrier-dialog';\r\nimport { AddRemoveCarrierDivisionDialog } from './dialogs/add-remove-carrier-division';\r\n// import { WorkflowActions } from './widgets/NOT_USED_workflow-actions';\r\nimport { RequestDto } from '../data/typegen/dtos/request-dto';\r\nimport { TaskAssignmentGroups } from '../data/typegen/enums/task-assignment-groups';\r\nimport { CarrierOnboardingStatusSummaryDialog } from './dialogs/carrier-onboarding-status-summary';\r\nimport { OnboardingRequirements } from './widgets/onboarding-requirements/onboarding-requirements';\r\nimport { ApiResultStatus } from '../data/enums/apiResultStatus';\r\n\r\n@autoinject()\r\nexport class WorkCarrier {\r\n hasInsuranceThatNeedsReview: boolean;\r\n hasBrokerInsurance: boolean;\r\n hasCarrierInsurance: boolean;\r\n insuranceForReview: any[];\r\n brokerageInsurance: any[];\r\n assetCarrierInsurance: any[];\r\n transloaderLocationsGridOptions: any;\r\n heavyHaulerWeights: Array = [];\r\n isDjjCarrier: boolean;\r\n selectedTab: any = \"onboarding-requirements\";\r\n familyTree: any;\r\n entityTypes: { id: string; description: string; }[];\r\n isCarrierEnabledForMyMill: boolean;\r\n carrierCommentTagCount: {};\r\n\r\n public readonly REQUEST_TYPE_ID_CARRIER_ONBOARDING = '2c837aa3-48a5-4a66-8a9f-a70d04d0a8b8';\r\n\r\n public currentCarrierRequest: RequestDto;\r\n /** Indicate whether the carrier is in a current onboarding, reevaluation, insurance renewal, etc request */\r\n public carrierIsOnboarding = false;\r\n public onboardingRequirementsOptions = { statusIcon: \"\", class: \"\" };\r\n public onboardingRequirementsComponent: OnboardingRequirements;\r\n\r\n public tmsFlag: boolean;\r\n primaryAgentOptGroups: any = [];\r\n\r\n\r\n determineActivationStrategy() {\r\n return activationStrategy.replace;\r\n }\r\n\r\n public showOnboardingRequirements = false;\r\n\r\n constructor(\r\n private ea: EventAggregator,\r\n private carriersController: CarriersController,\r\n private busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n private dialogService: DialogService,\r\n private router: Router,\r\n private api: WebApiService,\r\n private signalr: SignalrService,\r\n private appMessageService: AppMessageService,\r\n public settingsService: SettingsService,\r\n private securityService: SecurityService) {\r\n\r\n this.lanes = lanes;\r\n\r\n this.entityTypes = new Globals().getEntityTypes();\r\n };\r\n\r\n\r\n public transloaderLocations: Array = [];\r\n\r\n carrierPointUrl: \"\";\r\n states: Array;\r\n carrier: Carrier = new Carrier();\r\n carrierEquipment: Array = [];\r\n originalCarrierEquipment: Array = [];\r\n carrierDivisions: Array = [];\r\n originalCarrierDivisions: Array = [];\r\n //carrierEndorsements: Array = [];\r\n carrierDocuments: Array = [];\r\n @computedFrom(\"carrierDocuments.length\", \"carrier.entityType\")\r\n get filteredCarrierDocuments(): Array {\r\n return this.carrierDocuments.filter(o => this.canShowDocument(o));\r\n }\r\n carrierInboundLanes: Array = [];\r\n carrierOutboundLanes: Array = [];\r\n carrierInsurance: Array = [];\r\n carrierActivityStream: Array = [];\r\n contacts: Array = [];\r\n equipmentTypes: Array = [];\r\n countries = [];\r\n carrierCountriesOfOperation = [];\r\n productGroups: Array = [];\r\n railCarTypes: Array = [];\r\n lanes: Array;\r\n carrierId: number;\r\n originalCarrierStatus: any;\r\n carrierStatuses: any;\r\n carrierShipHistory = {};\r\n //insuranceTypes: any;\r\n //@observable\r\n //carrierInsurance: any = [];\r\n editMode: string;\r\n fieldApprovals: any = {};\r\n dotValues: any = {};\r\n dotMatches: any = {};\r\n // isCarrierFullyApproved: boolean = null;\r\n divisions: Array = [];\r\n isSaveDisabled: boolean;\r\n gridRows: Array = [];\r\n @observable()\r\n currentRecordIndex: number = -1;\r\n originalCarrierJson: any;\r\n commentTagFilter: string = \"All\";\r\n\r\n\r\n dotNumberReadonly: boolean;\r\n scacCodeReadonly: boolean;\r\n taxIdReadonly: boolean;\r\n\r\n\r\n\r\n public diversityCategories = [\r\n { name: \"Minority Owned\", value: \"87eb5c19-cf2d-4b0f-a2a4-8d246251e95e\" },\r\n { name: \"Woman Owned\", value: \"99d55403-4eef-4e80-ba5d-f8c6831d92a6\" },\r\n { name: \"Veteran Owned\", value: \"83624890-38e7-44d1-b1d8-be6446324cc9\" }\r\n ]\r\n\r\n\r\n tabClicked(tab) {\r\n this.selectedTab = tab;\r\n }\r\n\r\n events = {\r\n carrierLoading: \"carrierLoading\"\r\n }\r\n\r\n public insuranceSyncNeeded: boolean = false;\r\n\r\n primaryAgentOverridden(overridden: boolean) {\r\n if (this.carrier.primaryAgentId) {\r\n this.carrier.primaryAgentIdOverridden = overridden;\r\n } else {\r\n this.carrier.primaryAgentIdOverridden = false;\r\n }\r\n }\r\n\r\n currentRecordIndexChanged() {\r\n window[\"$\"](this.tooltipSelector)[\"tooltip\"](\"hide\");\r\n }\r\n\r\n @computedFrom(\"carrierActivityStream.length\", \"commentTagFilter\")\r\n get filteredCarrierComments(): Array {\r\n const comments = this.carrierActivityStream.filter(c => (c.tags || \"\").indexOf(\"ChangeLog\") == -1);\r\n if (this.commentTagFilter == \"All\") {\r\n return comments;\r\n }\r\n\r\n return comments.filter((c) => {\r\n return c.type == \"comment\" && c.tags && c.tags.toLowerCase().indexOf(this.commentTagFilter.toLowerCase()) > -1;\r\n });\r\n }\r\n\r\n @computedFrom(\"carrierActivityStream.length\")\r\n get changeLogComments(): Array {\r\n const changeComments = this.carrierActivityStream.filter(c => (c.tags || \"\").indexOf(\"ChangeLog\") > -1);\r\n return changeComments;\r\n }\r\n\r\n\r\n\r\n\r\n private subscriptions: Array = [];\r\n subscribeEvents() {\r\n\r\n this.subscriptions.push(this.signalr.listen(PushMessage.CarrierUpdated, (message) => {\r\n if (this.carrier.id == message.data.id) {\r\n if (message.isThisUser) {\r\n if (message.data.isFullReload) {\r\n this.loadCarrierProfile(this.carrier.id);\r\n } else {\r\n Object.assign(this.carrier, message.data.carrierFields);\r\n var originalObj = JSON.parse(this.originalCarrierJson);\r\n Object.assign(originalObj.carrier, message.data.carrierFields);\r\n this.setOriginalCarrierJson(originalObj);\r\n }\r\n this.loadCarrierActivityStream(this.carrier.uniqueId);\r\n }\r\n else if (this.carrier.versionCol != message.data.versionCol) {\r\n this.appMessageService.addMessage(`This record has been updated by ${message.userName}. Click Refresh to get the latest version.`, AppMessage.MessageType.critical, AppMessage.MessageLifetime.permanent, \"concurrency_alert\");\r\n this.isSaveDisabled = true;\r\n }\r\n }\r\n }));\r\n\r\n this.subscriptions.push(this.signalr.listen(PushMessage.InsuranceUpdated, (message) => {\r\n if (this.carrier.id == message.data.carrierId) {\r\n this.loadCarrierInsurance(this.carrier.id);\r\n // only require to sync insurance if carrier is not in active onboarding\r\n if (!this.carrierIsOnboarding) {\r\n this.insuranceSyncNeeded = true;\r\n }\r\n this.onboardingRequirementsComponent.refresh();\r\n }\r\n }));\r\n\r\n this.subscriptions.push(this.signalr.listen(PushMessage.CarrierDocumentsUpdated, (message) => {\r\n if (this.carrier.uniqueId == message.data.carrierGuid) {\r\n this.loadCarrierDocuments(this.carrier.uniqueId);\r\n this.onboardingRequirementsComponent.refresh();\r\n }\r\n }));\r\n\r\n }\r\n unsubscribeEvents() {\r\n this.subscriptions.forEach((sub) => sub.dispose());\r\n this.subscriptions = [];\r\n }\r\n\r\n activate(params: any) {\r\n\r\n this.subscribeEvents();\r\n\r\n\r\n this.carrierId = +params.carrierId;\r\n\r\n var json = localStorage.getItem(\"gridRows\");\r\n if (json) {\r\n this.gridRows = JSON.parse(json);\r\n var row = this.gridRows.find((o, i) => {\r\n if (o.id == this.carrierId) {\r\n this.currentRecordIndex = i;\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n this.loadEquipmentTypes();\r\n this.loadProductGroups();\r\n this.loadCountries();\r\n this.loadHeavyHaulerWeights();\r\n this.loadCarrierStatuses();\r\n //var insurancePromise = this.loadInsuranceTypes();\r\n this.loadDivisions();\r\n\r\n this.preInitTransloaderLocationsGrid();\r\n\r\n if (this.carrierId) {\r\n this.loadCarrierProfile(this.carrierId);\r\n } else {\r\n this.editMode = \"New\";\r\n }\r\n }\r\n\r\n nextRecord() {\r\n this.currentRecordIndex++;\r\n if (this.currentRecordIndex < this.gridRows.length) {\r\n var carrierId = this.gridRows[this.currentRecordIndex].Id;\r\n this.router.navigate(`work-carrier/${carrierId}`);\r\n }\r\n }\r\n\r\n prevRecord() {\r\n this.currentRecordIndex--;\r\n if (this.currentRecordIndex >= 0) {\r\n var carrierId = this.gridRows[this.currentRecordIndex].Id;\r\n this.router.navigate(`work-carrier/${carrierId}`);\r\n }\r\n }\r\n\r\n deactivate() {\r\n this.unsubscribeEvents();\r\n }\r\n\r\n tooltipSelector = 'a[data-toggle=\"tooltip\"],button[data-toggle=\"tooltip\"]';\r\n tooltipOptions = {\r\n delay: 200,\r\n trigger: 'hover'\r\n }\r\n\r\n attached() {\r\n\r\n //this.wfActionsRef.workCarrierComponent = this;\r\n\r\n //TODO: This should be a custom attribute\r\n //activate tooltips\r\n window[\"$\"](this.tooltipSelector)[\"tooltip\"](this.tooltipOptions);\r\n\r\n //TODO: This needs to be binding-driven\r\n //($('.approved-Y>[data-toggle=\"tooltip\"], .approved-N>[data-toggle=\"tooltip\"]')).tooltip();\r\n\r\n }\r\n\r\n form_click(e) {\r\n let node: Element = e.target as Element;\r\n if (node && node.classList && node.getAttribute(\"field-approval\") == \"true\") {\r\n var field = node.getAttribute(\"field\");\r\n var approveAction = node.getAttribute(\"approve-action\");\r\n this.approveField(field, approveAction);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n approveField(fieldName, approveAction) {\r\n\r\n //re-fetch approvals\r\n this.loadCarrierFieldApprovals(this.carrier.id);\r\n\r\n\r\n //write the new approval to the server.\r\n this.pageMessageService.clear();\r\n this.api.post(\"Carriers\", \"WriteFieldApproval\",\r\n {\r\n rowId: this.carrier.id,\r\n fieldName: fieldName,\r\n approval: approveAction\r\n })\r\n .then(() => {\r\n //re-fetch approvals\r\n this.loadCarrierFieldApprovals(this.carrier.id);\r\n //re-calc fully approved state\r\n // this.loadIsCarrierFullyApproved(this.carrier.id);\r\n });\r\n\r\n\r\n }\r\n\r\n //this is for create a new carrier (coming to this page with no carrierId specified)\r\n canActivate(params: any): any {\r\n var self = this;\r\n\r\n if (!+params.carrierId) {\r\n return new Promise((resolve, reject) => {\r\n this.dialogService.open(\r\n {\r\n viewModel: CreateCarrierDialog\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n return this.newCarrier(result.output)\r\n .then(() => resolve(true), (redirect) => {\r\n if (redirect) {\r\n reject(redirect);\r\n } else {\r\n nope();\r\n }\r\n });\r\n }\r\n else {\r\n nope();\r\n }\r\n }, () => nope());\r\n\r\n function nope() {\r\n //cannot activate\r\n var history: any = self.router.history;\r\n if (history.previousLocation) {\r\n reject(false);\r\n } else {\r\n reject(new Redirect(\"\"));\r\n }\r\n }\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n canShowDocument(document) {\r\n if (document.documentTypeCode == 'O') return false;\r\n\r\n if (this.isTransloaderCarrier) {\r\n return (document.documentTypeCode == 'FS'\r\n || document.documentTypeCode == 'IC'\r\n || document.documentTypeCode == 'W9'\r\n || document.documentTypeCode == 'HZ'\r\n || document.documentTypeCode == 'EF'\r\n || document.documentTypeCode == 'CT');\r\n }\r\n return (document.documentTypeCode != 'FS'\r\n && document.documentTypeCode != 'HZ');\r\n }\r\n\r\n\r\n newComment(id?: number) {\r\n this.dialogService.open(\r\n {\r\n viewModel: NewCommentDialog,\r\n model: [this.carrier.id, this.carrier.legalName, id]\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload carrier comments\r\n this.loadCarrierActivityStream(this.carrier.uniqueId);\r\n }\r\n });\r\n }\r\n\r\n // public wfActionsRef: WorkflowActions;\r\n\r\n\r\n editNote(id: number) {\r\n this.newComment(id);\r\n }\r\n\r\n writeComment(comment, tags?) {\r\n var params = {\r\n carrierId: this.carrierId,\r\n comment: comment,\r\n tags: tags || []\r\n };\r\n\r\n return this.api.post(\"Carriers\", \"UpdateCarrierComment\", params)\r\n .then(() => {\r\n }, () => {\r\n $[\"notify\"](\"Error writing comment\", { className: \"error\", position: \"top center\" });\r\n });\r\n }\r\n\r\n requestContactChanges() {\r\n\r\n //const millCodeText = this.securityService.user.millCodes.join(\",\");\r\n var model = {\r\n title: \"Request contact changes for this carrier on my division roster.\",\r\n message: \"Please describe the contact information changes you are requesting for this carrier:\",\r\n showComment: true,\r\n comment: \"\",\r\n buttons: [\"Send Request\", \"Cancel\"]\r\n };\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Send Request\") {\r\n this.busyService.on();\r\n return this.api.post(\"Carriers\", \"RequestCarrierContactChanges\",\r\n {\r\n carrierId: this.carrierId,\r\n carrierName: this.carrier.dbaName || this.carrier.legalName,\r\n comment: model.comment\r\n })\r\n .then((result) => {\r\n this.appMessageService.addSuccessMessage(\"Request sent.\");\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n requestCarrierAdd(add) {\r\n\r\n //const millCodeText = this.securityService.user.millCodes.join(\",\");\r\n var model = {\r\n add: add,\r\n carrierDivisions: this.carrierDivisions\r\n };\r\n return this.dialogService.open(\r\n {\r\n viewModel: AddRemoveCarrierDivisionDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output) {\r\n const divisionId = result.output;\r\n this.busyService.on();\r\n return this.api.post(\"Carriers\", \"AddRemoveCarrierDivision\",\r\n {\r\n add: add,\r\n carrierId: this.carrierId,\r\n divisionId: divisionId\r\n })\r\n .then((result) => {\r\n const verb = add ? \"add\" : \"remov\";\r\n this.appMessageService.addSuccessMessage(\"This carrier has been \" + verb + \"ed for your roster. Please refresh the page.\");\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n openContactDialog(contact: Contact) {\r\n this.dialogService.open({\r\n viewModel: UpdateContactDialog,\r\n model: {\r\n mills: this.divisions.filter((item) => this.carrierDivisions.indexOf(item.id) > -1),\r\n contact: contact, //create a copy so that the original isn't modified\r\n carrierId: this.carrier.id\r\n }\r\n }).whenClosed(async (result) => {\r\n if (!result.wasCancelled) {\r\n //reload contacts\r\n await this.loadCarrierContacts(this.carrier.id);\r\n\r\n // reload carrier to get updated version col (this is updated because the last carrier activity date is updated when contacts are updated)\r\n await this.loadCarrierDetails(this.carrier.id);\r\n }\r\n });\r\n }\r\n\r\n public showTonsByDivision(range: \"12months\" | \"90days\") {\r\n this.dialogService.open(\r\n {\r\n viewModel: TonnageDetailsDialog,\r\n model: {\r\n carrierId: this.carrier.uniqueId,\r\n range: range,\r\n carrierName: this.carrier.legalName || this.carrier.dbaName\r\n }\r\n });\r\n }\r\n\r\n\r\n openNewInsuranceDialog(authorityTypeId: string) {\r\n\r\n if (this.insuranceForReview.length > 0) {\r\n return alert(\"Complete all insurance review before adding new insurance\");\r\n }\r\n\r\n var arr = [];\r\n\r\n if (authorityTypeId == \"30d0f5ca-81a4-4540-b8a5-cf605bd523e8\") {\r\n arr = this.assetCarrierInsurance;\r\n } else if (authorityTypeId == \"ec8d37e1-a1ed-4187-9455-f41b8900088b\") {\r\n arr = this.brokerageInsurance;\r\n } else {\r\n arr = this.insuranceForReview;\r\n }\r\n\r\n this.dialogService.open({\r\n viewModel: UpdateInsuranceDialog,\r\n model: {\r\n existingInsuranceTypeIds: arr.map(o => o.insuranceTypeId),\r\n carrierId: this.carrierId,\r\n carrier: this.carrier,\r\n authorityTypeId: authorityTypeId\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n this.loadCarrierActivityStream(this.carrier.uniqueId);\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n async syncAllInsuranceToCarrierPoint() {\r\n if (this.carrier.id) {\r\n this.busyService.on();\r\n try {\r\n var result = await this.api.post(\"Carriers\", \"SyncAllInsuranceToCarrierPoint\", { id: this.carrier.id });\r\n this.appMessageService.addSuccessMessage(`Insurance info sent to Carrier Point`);\r\n //this.ea.publish(\"carrier.save\", this.carrier);\r\n this.insuranceSyncNeeded = false;\r\n this.loadCarrierActivityStream(this.carrier.uniqueId);\r\n }\r\n catch (ex) {\r\n this.appMessageService.addErrorMessage(`Error sending insurance info to Carrier Point`);\r\n //scroll to top of page to ensure error is visible\r\n window.scrollTo(0, 0);\r\n }\r\n finally {\r\n this.busyService.off();\r\n }\r\n }\r\n }\r\n\r\n openInsuranceDialogByEndorsementType(endorsementTypeId) {\r\n var item = this.carrierInsurance.find(o => o.endorsements.find(e => e.endorsementTypeId == endorsementTypeId));\r\n if (item) {\r\n this.openInsuranceDialog(item);\r\n } else {\r\n alert(\"Insurance card not found for the requirement endorsement\");\r\n }\r\n }\r\n\r\n openInsuranceDialog(item) {\r\n this.dialogService.open({\r\n viewModel: UpdateInsuranceDialog,\r\n model: {\r\n item: item,\r\n existingInsuranceTypeIds: this.carrierInsurance.map(o => o.insuranceTypeId),\r\n carrierId: this.carrierId,\r\n carrier: this.carrier\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n this.loadCarrierActivityStream(this.carrier.uniqueId);\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n onTransloaderLocationsGridReady() {\r\n this.autosizeColumns();\r\n }\r\n\r\n autosizeColumns() {\r\n this.transloaderLocationsGridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n\r\n\r\n newCarrier(entityType: string) {\r\n this.carrier = new Carrier();\r\n this.carrier.status = 0;\r\n this.carrier.id = 0;\r\n this.carrier.entityType = entityType;\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n //this is for creating a new carrier record.\r\n //loadCarrierByDotNumber(dotNumber: string) {\r\n // this.busyService.on();\r\n // return this.api.get(\"Fmcsa\", \"GetCarrierFromFmcsaApi\", { dotNumber: dotNumber })\r\n // .then((result) => {\r\n // this.carrier = Object.assign(new Carrier(), JSON.parse(result.response));\r\n // this.carrier.status = 0; //new \r\n\r\n // if (this.carrier.id) {\r\n // //this.pageMessageService.setErrorMessage(`DOT # ${dotNumber} already exists in the CMP database. Click here to edit this carrier.`);\r\n // ////clear the carrier id, so that on save, it will fail to insert. This will at least prevent the record\r\n // //// from being overwritten.\r\n // this.busyService.off();\r\n // return this.dialogService.open(\r\n // {\r\n // viewModel: CarrierExistsDialog\r\n // })\r\n // .whenClosed((result) => {\r\n // if (result.wasCancelled) {\r\n // //don't leave this view if user cancelled the dialog\r\n // return Promise.reject(false);\r\n // }\r\n // else {\r\n // if (result.output) {\r\n // //save changes if user confirmed the dialog\r\n // this.busyService.on();\r\n // return Promise.reject(new Redirect(`work-carrier/${this.carrier.id}`));\r\n // } else {\r\n // //discard changes\r\n // return Promise.reject(false);\r\n // }\r\n // }\r\n // });\r\n // } else {\r\n\r\n // //if legal name not populated, then not found on fmcsa site.\r\n // if (!this.carrier.legalName) {\r\n // this.pageMessageService.setErrorMessage(`Automatic FMCSA lookup failed.`);\r\n // //$[\"notify\"](`Carrier not found for specified DOT #: ${dotNumber}`, \"error\");\r\n // }\r\n // }\r\n // })\r\n // .finally(() => this.busyService.off());\r\n //}\r\n\r\n loadTransloaderLocations(entityId: number): any {\r\n return this.api.get(\"Carriers\", \"GetTransloaderLocations\", { entityId: entityId })\r\n .then((result) => {\r\n //this.transloaderLocations.insideStorage = \"\r\n let locations = JSON.parse(result.response);\r\n locations.forEach(o => {\r\n o.accessToWater = o.accessToWater ? 'Yes' : 'No';\r\n o.otrTrucks = o.otrTrucks ? 'Yes' : 'No';\r\n o.railServed = o.railServed ? 'Yes' : 'No';\r\n });\r\n this.transloaderLocations = locations;\r\n });\r\n }\r\n\r\n loadCarrierProfile(carrierId: number) {\r\n this.appMessageService.clearPageScopedMessages();\r\n\r\n this.carrierId = carrierId;\r\n this.editMode = \"Edit\";\r\n this.busyService.on();\r\n return Promise.all([\r\n this.loadCarrierDetails(carrierId)\r\n .then(() => {\r\n // these run asynchronously\r\n this.loadTransloaderLocations(this.carrier.id);\r\n this.loadCarrierDocuments(this.carrier.uniqueId);\r\n this.loadCarrierActivityStream(this.carrier.uniqueId);\r\n this.loadCarrierShipHistory(this.carrier.uniqueId);\r\n this.loadCarrierCountriesOfOperation(this.carrier.uniqueId)\r\n }),\r\n this.loadCarrierRequest(carrierId),\r\n this.loadCarrierDotValues(carrierId),\r\n this.loadCarrierFieldApprovals(carrierId),\r\n this.loadCarrierEquipment(carrierId),\r\n this.loadPrimaryAgentUsers(),\r\n this.loadCarrierMills(carrierId),\r\n //this.loadCarrierEndorsements(carrierId),\r\n //this.loadCarrierDocuments(carrierId),\r\n this.loadCarrierInsurance(carrierId),\r\n this.loadCarrierInboundLanes(carrierId),\r\n this.loadCarrierOutboundLanes(carrierId),\r\n // this.loadIsCarrierFullyApproved(carrierId),\r\n this.loadCarrierContacts(carrierId),\r\n this.getFamilyTree(carrierId)\r\n ])\r\n .then((result) => {\r\n this.setOriginalCarrierJson();\r\n this.isSaveDisabled = false;\r\n this.pageMessageService.clear();\r\n this.clearCarrierSpecificMessages();\r\n this.runCarrierBusinessRules();\r\n\r\n if (this.carrier != null && this.currentCarrierRequest && this.currentCarrierRequest.type.value == this.REQUEST_TYPE_ID_CARRIER_ONBOARDING) {\r\n this.showOnboardingRequirements = true;\r\n } else {\r\n this.showOnboardingRequirements = false;\r\n }\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n clearCarrierSpecificMessages() {\r\n //clear carrier-specific messages\r\n this.appMessageService.removeMessages((m) => m.data && m.data.carrierId == this.carrier.id);\r\n }\r\n\r\n\r\n @computedFrom(\"carrier\", \"carrier.entityType\")\r\n public get isTrucksCarrier(): boolean {\r\n return this.carrier && (this.carrier.entityType == 'TRUCKS' || this.carrier.entityType == 'TRANSLOADER/TRUCKS');\r\n }\r\n @computedFrom(\"carrier\", \"carrier.entityType\")\r\n public get isTransloaderCarrier(): boolean {\r\n return this.carrier && (this.carrier.entityType == 'TRANSLOADER' || this.carrier.entityType == 'TRANSLOADER/TRUCKS')\r\n }\r\n\r\n runCarrierBusinessRules() {\r\n\r\n // \"business rules\" that apply to carrier\r\n if (this.carrier.contractType == \"Single Facility\") {\r\n if (this.carrierDivisions.length > 1) {\r\n this.appMessageService.addErrorMessage(\"Single Facility carriers can only have one mill assigned.\");\r\n }\r\n else {\r\n this.appMessageService.addInfoMessage(\"This carrier only allowed to move freight for the selected mill.\");\r\n }\r\n }\r\n // if (this.currentCarrierRequest) {\r\n // this.appMessageService.showInfoMessage(\"This carrier belongs to active request \" + this.currentCarrierRequest.number + \"\",\r\n // !!this.currentCarrierRequest, true);\r\n // }\r\n\r\n this.appMessageService.showInfoMessage(\"This carrier is restricted to its state of domicile.\",\r\n this.carrier.confinedToState);\r\n\r\n this.appMessageService.showInfoMessage(\"Vendor has modified Agreement. See contract or notes for details.\",\r\n (this.carrier.contractType || \"\").toLowerCase().indexOf(\"modified\") > -1);\r\n\r\n this.appMessageService.showWarningMessage(\"Documents needed for Carriers/Brokers Profile.\",\r\n this.carrier.documentHold);\r\n\r\n this.appMessageService.showWarningMessage(\"One or more insurance policies are canceled.\",\r\n !!this.carrierInsurance.find(o => o.isCanceled));\r\n\r\n this.appMessageService.showInfoMessage(\"Carrier not permitted to broker loads.\",\r\n this.carrier.typeOfAuthority == \"PERMIT\");\r\n\r\n //this.appMessageService.showInfoMessage(\"This carrier belongs to the parent company, \" + this.carrier.parentName,\r\n // !!this.carrier.parentName);\r\n\r\n this.appMessageService.showInfoMessage(\"This is a parent company. See below for list of children.\",\r\n !!this.carrier.children.length);\r\n\r\n\r\n // lock the NGTVID-related fields, if NGTVID is locked\r\n if (this.carrier.ngtvidLocked) {\r\n this.scacCodeReadonly = true;\r\n if (this.isTrucksCarrier) {\r\n this.dotNumberReadonly = true;\r\n } else {\r\n this.taxIdReadonly = true;\r\n }\r\n }\r\n\r\n // set DJJ flag\r\n if (this.carrierDivisions.find(o => [115, 1093, 1094].indexOf(o) > -1)) {\r\n this.isDjjCarrier = true;\r\n }\r\n }\r\n\r\n async setNlcApprovedForExemptCarrier() {\r\n await this.saveChanges(true, async () => {\r\n await this.api.post(\"Carriers\", \"SetNlcApprovedForExemptCarrier\", { carrierId: this.carrier.id });\r\n });\r\n }\r\n\r\n setOriginalCarrierJson(originalObj?: any) {\r\n if (!originalObj) {\r\n originalObj = this.getCarrierUpdateObject();\r\n }\r\n this.originalCarrierJson = JSON.stringify(originalObj);\r\n }\r\n\r\n loadEquipmentTypes() {\r\n this.busyService.on();\r\n this.api.get(\"Registration\", \"GetEquipment\")\r\n .then((result) => {\r\n this.equipmentTypes = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadCountries() {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetCountries\")\r\n .then((result) => {\r\n this.countries = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n loadCarrierCountriesOfOperation(carrierId: string) {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetCarrierCountriesOfOperation\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrierCountriesOfOperation = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n loadProductGroups() {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetProductGroups\")\r\n .then((result) => {\r\n this.productGroups = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadPrimaryAgentUsers() {\r\n this.busyService.on();\r\n let assignableUsersCarrier: any;\r\n let assignableUsersTransloader: any;\r\n return Promise.all([\r\n this.api.get(\"Tasks\", \"GetGroupMembers\", { groupId: TaskAssignmentGroups.carrierServices })\r\n .then((result) => {\r\n console.log(\"Done1a\");\r\n assignableUsersCarrier = JSON.parse(result.response);\r\n }),\r\n this.api.get(\"Tasks\", \"GetGroupMembers\", { groupId: TaskAssignmentGroups.transloaderServices })\r\n .then((result) => {\r\n console.log(\"Done1b\");\r\n assignableUsersTransloader = JSON.parse(result.response);\r\n })\r\n ]).finally(() => {\r\n this.primaryAgentOptGroups = [\r\n {\r\n label: \"Carrier Services\",\r\n opts: assignableUsersCarrier\r\n },\r\n {\r\n label: \"Transloader Services\",\r\n opts: assignableUsersTransloader\r\n }\r\n ];\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n async loadCarrierDetails(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrier = Object.assign(new Carrier(), JSON.parse(result.response));\r\n this.originalCarrierStatus = this.carrier.status;\r\n\r\n //set the page title\r\n this.router.currentInstruction.config.navModel.setTitle(this.carrier.legalName);\r\n this.router.updateTitle();\r\n\r\n //this.carrierPointUrl = this.settingsService.settings[\"carrierPointUrl\"].replace(\"${carrierPointId}\", this.carrier.id);\r\n });\r\n }\r\n\r\n scrollToRequirements() {\r\n\r\n // this.dialogService.open(\r\n // {\r\n // viewModel: CarrierOnboardingStatusSummaryDialog,\r\n // model: { carrierId: this.carrier.id }\r\n // })\r\n // .whenClosed((result) => {\r\n // });\r\n\r\n\r\n window.setTimeout(() => {\r\n window.document.getElementById(\"tabsSection\").scrollIntoView({ behavior: 'smooth' });\r\n }, 0);\r\n }\r\n\r\n\r\n refresh() {\r\n this.loadCarrierProfile(this.carrier.id);\r\n }\r\n\r\n // loadIsCarrierFullyApproved(carrierId: number) {\r\n // return this.api.get(\"Carriers\", \"IsCarrierFullyApproved\", { carrierId: carrierId })\r\n // .then((result) => {\r\n // this.isCarrierFullyApproved = JSON.parse(result.response);\r\n // });\r\n // }\r\n\r\n\r\n //loadCarrierComments(carrierId: number) {\r\n // return this.api.get(\"Carriers\", \"GetCarrierComments\", { carrierId: carrierId })\r\n // .then((result) => {\r\n // const comments: CommentEntry[] = JSON.parse(result.response);\r\n // this.carrierComments = comments;\r\n\r\n // this.carrierCommentTagCount = {};\r\n // this.carrierComments.forEach((c) => {\r\n // if (c.tags) {\r\n // c.tags.toLowerCase().split(',').forEach(tag => {\r\n // this.carrierCommentTagCount[tag] = this.carrierCommentTagCount[tag] || 0;\r\n // this.carrierCommentTagCount[tag]++;\r\n // });\r\n // }\r\n // });\r\n // });\r\n //}\r\n\r\n loadCarrierActivityStream(carrierId: string) {\r\n return this.api.get(\"Carriers\", \"GetCarrierActivityStream\", { carrierId: carrierId })\r\n .then((result) => {\r\n\r\n const entries: any[] = JSON.parse(result.response);\r\n\r\n this.carrierCommentTagCount = {};\r\n entries.forEach((c) => {\r\n if (c.type == \"comment\" && c.tags) {\r\n c.tags.toLowerCase().split(',').forEach(tag => {\r\n this.carrierCommentTagCount[tag] = this.carrierCommentTagCount[tag] || 0;\r\n this.carrierCommentTagCount[tag]++;\r\n });\r\n }\r\n\r\n c.insertedOnFormatted = moment(c.insertedOn).format('YYYY-MM-DD hh:mm a');\r\n });\r\n\r\n this.carrierActivityStream = entries;\r\n\r\n });\r\n }\r\n\r\n // public usDotStatusValueMap = {\r\n // 'A': 'ACTIVE',\r\n // 'I': 'INACTIVE'\r\n // }\r\n\r\n // public showUsDotStatusInstructionAlert() {\r\n // alert(\"This status cannot be updated directly.\");\r\n // }\r\n\r\n async loadCarrierContacts(carrierId: number) {\r\n let result = await this.api.get(\"Carriers\", \"GetCarrierContacts\", { carrierId: carrierId });\r\n var contacts = JSON.parse(result.response);\r\n this.contacts = contacts;\r\n ////populate the millCodes array\r\n //contacts.forEach(contact => {\r\n // if (contact.mills.length == 0) {\r\n // contact.mills = this.carrierDivisions.map(carrierMillId => {\r\n // return this.divisions.find(item => item.id == carrierMillId) || {};\r\n // });\r\n // contact.millCodeList = \"All Mills\";\r\n // } else {\r\n // contact.mills = contact.millIds.map(carrierMillId => {\r\n // return this.divisions.find(item => item.id == carrierMillId) || {};\r\n // });\r\n // contact.millCodeList = contact.millIds.map(carrierMillId => {\r\n // return (this.divisions.find(item => item.id == carrierMillId) || {}).millId;\r\n // }).join(\",\")\r\n // }\r\n //});\r\n }\r\n\r\n loadCarrierFieldApprovals(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierFieldApprovals\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.fieldApprovals = JSON.parse(result.response);\r\n });\r\n }\r\n loadCarrierDotValues(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierDotValues\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.dotValues = JSON.parse(result.response) || {};\r\n });\r\n }\r\n\r\n loadCarrierEquipment(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierEquipment\", { carrierId: carrierId })\r\n .then((result) => {\r\n let carrierEquipment = JSON.parse(result.response);\r\n this.carrierEquipment = carrierEquipment.map((item) => {\r\n return item.id;\r\n });\r\n this.originalCarrierEquipment = carrierEquipment.map((item) => {\r\n return item.id;\r\n });\r\n });\r\n }\r\n\r\n loadCarrierMills(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierMills\", { carrierId: carrierId })\r\n .then((result) => {\r\n\r\n let carrierMills = JSON.parse(result.response);\r\n\r\n this.tmsFlag = !carrierMills.find(o => o.tms != true);\r\n\r\n this.originalCarrierDivisions = carrierMills.map((item) => {\r\n return item.id;\r\n });\r\n this.carrierDivisions = carrierMills.map((item) => {\r\n return item.id;\r\n });\r\n\r\n\r\n var carrierMillCodes = carrierMills.map((item) => {\r\n return item.code;\r\n });\r\n this.isCarrierEnabledForMyMill = false;\r\n this.securityService.user.millCodes.forEach(myMillCode => {\r\n if (carrierMillCodes.indexOf(myMillCode) > -1) this.isCarrierEnabledForMyMill = true;\r\n });\r\n\r\n });\r\n }\r\n\r\n //loadCarrierEndorsements(carrierId: number) {\r\n // return this.api.get(\"Carriers\", \"GetCarrierEndorsements\", { carrierId: carrierId })\r\n // .then((result) => {\r\n // this.carrierEndorsements = JSON.parse(result.response);\r\n // });\r\n //}\r\n\r\n loadCarrierDocuments(carrierGuid: string) {\r\n return this.api.get(\"Carriers\", \"GetCarrierDocuments\", { carrierGuid: carrierGuid })\r\n .then((result) => {\r\n this.carrierDocuments = JSON.parse(result.response);\r\n });\r\n }\r\n\r\n loadCarrierInboundLanes(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierInboundLanes\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrierInboundLanes =\r\n JSON.parse(result.response).map(item => item.laneCode);\r\n });\r\n }\r\n\r\n loadCarrierOutboundLanes(carrierId: number) {\r\n return this.api.get(\"Carriers\", \"GetCarrierOutboundLanes\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrierOutboundLanes = JSON.parse(result.response).map(item => item.laneCode);\r\n });\r\n }\r\n\r\n loadCarrierStatuses() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierStatuses\")\r\n .then((result) => {\r\n this.carrierStatuses = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n loadCarrierShipHistory(carrierId: string) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierShipHistory\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrierShipHistory = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n async loadCarrierRequest(carrierId: number) {\r\n this.carrierIsOnboarding = false;\r\n const result = await this.api.get(\"Carriers\", \"GetCarrierRequest\", { carrierId: this.carrierId, includeClosed: false });\r\n if (result.response) {\r\n this.currentCarrierRequest = JSON.parse(result.response) as RequestDto;\r\n this.carrierIsOnboarding = this.currentCarrierRequest && !this.currentCarrierRequest.variables.IsReevaluationRequest && !this.currentCarrierRequest.variables.IsDormancyReviewRequest && !this.currentCarrierRequest.variables.IsInsuranceRenewalRequest;\r\n }\r\n\r\n if (this.carrierIsOnboarding) {\r\n this.selectedTab = \"onboarding-requirements\";\r\n } else {\r\n this.selectedTab = \"comments\";\r\n }\r\n }\r\n\r\n //loadInsuranceTypes() {\r\n // this.busyService.on();\r\n // return this.api.get(\"Carriers\", \"GetInsuranceTypes\")\r\n // .then((result) => {\r\n // this.insuranceTypes = JSON.parse(result.response);\r\n // })\r\n // .finally(() => this.busyService.off());\r\n //}\r\n\r\n refreshInsurance() {\r\n this.loadCarrierInsurance(this.carrier.id);\r\n this.setOriginalCarrierJson();\r\n }\r\n\r\n loadCarrierInsurance(carrierId: number) {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierInsurance\", { carrierId: carrierId })\r\n .then((result) => {\r\n this.carrierInsurance = JSON.parse(result.response);\r\n //insuranceForReview = legacy insurance records that have not been properly categorized.\r\n this.insuranceForReview = this.carrierInsurance.filter(o => o.authorityTypeId == \"035f19f2-bfeb-47cf-b355-4c63eddbbf0c\");\r\n this.brokerageInsurance = this.carrierInsurance.filter(o => o.authorityTypeId == \"ec8d37e1-a1ed-4187-9455-f41b8900088b\");\r\n this.assetCarrierInsurance = this.carrierInsurance.filter(o => o.authorityTypeId == \"30d0f5ca-81a4-4540-b8a5-cf605bd523e8\");\r\n\r\n //set the \"expired\" property\r\n this.carrierInsurance.forEach(m => m.expired = moment(new Date()).isAfter(m.expiration, 'day'));\r\n\r\n // set flags for UI\r\n this.hasInsuranceThatNeedsReview = this.insuranceForReview.length > 0;\r\n this.hasBrokerInsurance = this.brokerageInsurance.length > 0;\r\n this.hasCarrierInsurance = this.assetCarrierInsurance.length > 0;\r\n\r\n //run business rules\r\n this.appMessageService.showWarningMessage(\"One or more insurance policies for this carrier have expired.\",\r\n this.carrier.status == 8 && this.carrierInsurance.find(m => m.expired));\r\n\r\n this.appMessageService.showWarningMessage(\"INSURANCE NEEDS REVIEW\", this.hasInsuranceThatNeedsReview);\r\n\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n loadDivisions() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n this.divisions = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n printApplication() {\r\n this.carriersController.printApplication(this.carrier.id, this.carrier.legalName);\r\n }\r\n approveCarrier() {\r\n this.carrier.status = 2; //move status from \"new\" to \"potential\"\r\n this.saveChanges();\r\n }\r\n\r\n printComments(): void {\r\n var parameters = {\r\n filename: `Carrier Activity - ${this.carrier.legalName || this.carrier.dbaName}`,\r\n reportFragment: encodeURIComponent(`CarrierActivity&id=${this.carrier.id}&commentTagFilter=${this.commentTagFilter}`),\r\n format: \"PDF\"\r\n };\r\n const url = \"/Report/Download\" + this.getQueryString(parameters);\r\n window.open(url);\r\n\r\n //var reportFragment = encodeURIComponent(\"MillCarrierStatus&millId=\" + this.millId);\r\n //window.open(\"/Report/Download?fileName=\" + encodeURIComponent(this.fileName) + \"&reportFragment=\" + reportFragment + \"&format=\" + this.format);\r\n }\r\n\r\n private getQueryString(parameters, asAdditionalParameters = false) {\r\n let s = asAdditionalParameters ? \"&\" : \"?\";\r\n for (let key of Object.keys(parameters)) {\r\n s += `${key}=${parameters[key]}&`;\r\n }\r\n return s;\r\n }\r\n\r\n //setEndorsementDate(endorsement) {\r\n // endorsement.endorsementDate = new Date();\r\n //}\r\n setDocumentReceivedDate(document) {\r\n document.documentReceivedDate = new Date();\r\n }\r\n getStatusDescription(statusId) {\r\n if (this.carrierStatuses) {\r\n var item = this.carrierStatuses.find(o => o.id == statusId);\r\n return item && item.description;\r\n }\r\n return \"\";\r\n }\r\n\r\n async changeStatus() {\r\n this.changeStatusNoDirtyCheck();\r\n\r\n // if (this.formIsDirty()) {\r\n // this.dialogService.open({\r\n // viewModel: SimpleDialog,\r\n // model: {\r\n // title: \"Unsaved Changes\",\r\n // icon: \"fa-exclamation-triangle\",\r\n // message: \"Please save changes before changing status.\",\r\n // buttons: [\"Ok\"]\r\n // }\r\n // });\r\n // } else {\r\n // this.changeStatusNoDirtyCheck();\r\n // }\r\n }\r\n\r\n changeStatusNoDirtyCheck() {\r\n\r\n this.dialogService.open(\r\n {\r\n viewModel: CarrierStatusDialog,\r\n model: { carrier: this.carrier }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n\r\n //notify that state changed\r\n $[\"notify\"](`State changed to ${this.getStatusDescription(result.output.status)}`, { className: \"success\", position: \"top center\" });\r\n }\r\n });\r\n }\r\n\r\n editDedicatedScacCodes() {\r\n\r\n this.dialogService.open({\r\n viewModel: DedicatedScacDialog,\r\n model: [\r\n this.carrier.id,\r\n this.carrier.dbaName || this.carrier.legalName,\r\n this.carrier.dedicatedScacCodes,\r\n this.carrier.scacCode,\r\n this.scacCodeReadonly\r\n ]\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload carrier\r\n this.loadCarrierDetails(this.carrier.id);\r\n }\r\n });\r\n }\r\n\r\n private formIsDirty(): Boolean {\r\n var currentCarrierUpdateObj = this.getCarrierUpdateObject();\r\n var currentCarrierJson = JSON.stringify(currentCarrierUpdateObj);\r\n const isDirty = this.originalCarrierJson != currentCarrierJson;\r\n return isDirty;\r\n }\r\n\r\n canDeactivate() {\r\n\r\n //return new Promise((a, b) => { });\r\n\r\n if (!this.securityService.hasRole(\"edit\")) {\r\n return true;\r\n }\r\n\r\n // check for insurance sync needed\r\n if (this.insuranceSyncNeeded) {\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Insurance Sync Required\",\r\n message: \"Insurance information has been changed - sync is required.\",\r\n buttons: [\"Ok\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n return false;\r\n });\r\n }\r\n\r\n //prompt to save changes, if anything changed.\r\n if (this.formIsDirty()) {\r\n return this.dialogService.open(\r\n {\r\n viewModel: SaveChangesDialog\r\n })\r\n .whenClosed((result) => {\r\n if (result.wasCancelled) {\r\n //don't leave this view if user cancelled the dialog\r\n return Promise.reject(false);\r\n }\r\n else {\r\n if (result.output) {\r\n //save changes if user confirmed the dialog\r\n return this.saveChanges();\r\n } else {\r\n //discard changes\r\n return Promise.resolve();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n deleteCarrier(deleted) {\r\n if (this.carrier.id) {\r\n this.busyService.on();\r\n return this.api.post(\"Carriers\", \"DeleteCarrier\", { id: this.carrier.id, deleted: deleted })\r\n .then((result) => {\r\n this.appMessageService.addErrorMessage(`Carrier ${deleted ? '' : 'un-'}deleted.`);\r\n\r\n //reload page\r\n this.loadCarrierProfile(this.carrier.id);\r\n\r\n })\r\n .finally(() => {\r\n this.ea.publish(\"carrier.save\", this.carrier);\r\n this.busyService.off();\r\n });\r\n }\r\n }\r\n\r\n async refreshFromFMCSA() {\r\n // Add some pre-validation to make experience smoother for users\r\n if (!this.carrier.dotNumber) {\r\n this.appMessageService.addErrorMessage(\"DOT # is required for FMCSA refresh\");\r\n }\r\n else if (this.carrier.dotNumber.length > 10) {\r\n this.appMessageService.addErrorMessage(\"DOT # must be 10 digits or less.\");\r\n }\r\n\r\n if (this.carrier.id) {\r\n this.busyService.on();\r\n return this.api.post(\"Carriers\", \"UpdateCarrierFromFmcsaApi\", { id: this.carrier.id })\r\n .then(async (result) => {\r\n const fmcsaApiCarrierResult = JSON.parse(result.response);\r\n if (fmcsaApiCarrierResult.status == ApiResultStatus.success) {\r\n if (fmcsaApiCarrierResult.value) {\r\n await this.loadCarrierDetails(this.carrier.id);\r\n this.appMessageService.addSuccessMessage(\"Carrier information has been updated from FMCSA\");\r\n } else {\r\n this.appMessageService.addErrorMessage(\"Carrier could not be found in FMCSA\");\r\n }\r\n } else if (fmcsaApiCarrierResult.status == ApiResultStatus.failed) {\r\n this.appMessageService.addWarningMessage(\"Error updating carrier from FMCSA. Contact support for details.\");\r\n } else if (fmcsaApiCarrierResult.status == ApiResultStatus.disabled) {\r\n this.appMessageService.addWarningMessage(\"FMCSA Api is not current enabled. Contact support for details.\");\r\n }\r\n })\r\n .finally(() => {\r\n this.ea.publish(\"carrier.save\", this.carrier);\r\n this.busyService.off();\r\n });\r\n }\r\n }\r\n\r\n togglePriority() {\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Priority status for \" + this.carrier.getCarrierName(),\r\n message: this.carrier.priority ? \"Priority status is currently enabled for \" + this.carrier.getCarrierName() + \".\\n\\nDo you want to clear priority status?\"\r\n : \"Do you want to enable priority status for \" + this.carrier.getCarrierName() + \"?\",\r\n buttons: [\"yes\", \"no\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"yes\") {\r\n //save changes if user confirmed the dialog\r\n this.carrier.priority = !this.carrier.priority;\r\n this.saveChanges();\r\n }\r\n }\r\n });\r\n }\r\n\r\n toggleDocumentHold() {\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Document Hold for \" + this.carrier.getCarrierName(),\r\n message: this.carrier.priority ? \"Document Hold is currently enabled for \" + this.carrier.getCarrierName() + \".\\n\\nDo you want to clear the Document Hold flag?\"\r\n : \"Do you want to enable Document Hold flag for \" + this.carrier.getCarrierName() + \"?\",\r\n buttons: [\"yes\", \"no\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"yes\") {\r\n //save changes if user confirmed the dialog\r\n this.carrier.documentHold = !this.carrier.documentHold;\r\n this.saveChanges();\r\n }\r\n }\r\n });\r\n }\r\n\r\n async saveChanges(showConfirmation: boolean = true, thenFn?: any) {\r\n this.pageMessageService.clear();\r\n\r\n if (!this.carrier.entityType) {\r\n this.appMessageService.addErrorMessage(\"Entity Type must be selected.\");\r\n return;\r\n }\r\n\r\n if (this.carrier.carrierPointId) {\r\n this.carrier.carrierPointId = (this.carrier.carrierPointId || \"\").replace(/ /g, '').replace(/,/g, ', ');\r\n var ids = this.carrier.carrierPointId.split(',');\r\n var invalidCarrierPointId = ids.find(o => !!o.trim().match(/[^0-9]/g));\r\n if (invalidCarrierPointId) {\r\n this.appMessageService.addErrorMessage(\"Carrier Point IDs must be numeric only values. Multiple IDs should be separated by a comma.\");\r\n return;\r\n }\r\n }\r\n var params = this.getCarrierUpdateObject();\r\n\r\n if (!this.carrier.id) {\r\n\r\n this.busyService.on();\r\n\r\n //insert new carrier record\r\n return this.api.submit(\"Carriers\", \"UpdateCarrier\", params)\r\n .then((result) => {\r\n var responseObj = JSON.parse(result.response);\r\n var carrierId = responseObj.id;\r\n this.appMessageService.addSuccessMessage(\"New carrier application created.\");\r\n\r\n //reset originalJson object to prevent any save prompts during navigation.\r\n // this is necessary because we don't reload the carrier profile after an insert;\r\n // instead, we redirect to the entity's url.\r\n this.setOriginalCarrierJson();\r\n this.router.navigate(`work-carrier/${carrierId}`, { replace: true });\r\n }, (error) => {\r\n //scroll to top of page to ensure error is visible\r\n window.scrollTo(0, 0);\r\n })\r\n .finally(() => {\r\n this.ea.publish(\"carrier.save\", this.carrier);\r\n this.busyService.off();\r\n });\r\n } else {\r\n\r\n // UPDATES\r\n\r\n // Check to see if any basic info fields changed since last load, and require comment before saving\r\n const canContinue = await this.collectCommentBeforeSave(params);\r\n if (!canContinue) return;\r\n\r\n this.busyService.on();\r\n\r\n return this.api.submit(\"Carriers\", \"UpdateCarrier\", params)\r\n .then(async (result) => {\r\n var responseObj = JSON.parse(result.response);\r\n\r\n //update the version string so that consecutive saves are possible\r\n this.carrier.versionCol = responseObj.versionCol;\r\n if (showConfirmation) this.appMessageService.addSuccessMessage(\"Carrier updated.\");\r\n\r\n\r\n //// update the JSON that is used when navigating away to determine whether changes made been made.\r\n //this.setOriginalCarrierJson();\r\n\r\n // optional function to execute after save, but before refreshing the screen data\r\n if (thenFn) {\r\n this.busyService.off();\r\n await thenFn.apply(this);\r\n }\r\n\r\n //reload page\r\n await this.loadCarrierProfile(this.carrier.id);\r\n\r\n ////reload endorsements\r\n //this.loadCarrierEndorsements(this.carrier.id);\r\n ////reoad insurance records\r\n //this.loadCarrierInsurance(this.carrier.id);\r\n }, (error) => {\r\n //scroll to top of page to ensure error is visible\r\n window.scrollTo(0, 0);\r\n })\r\n .finally(() => {\r\n this.ea.publish(\"carrier.save\", this.carrier);\r\n this.busyService.off();\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n private async collectCommentBeforeSave(params: UpdateCarrierModel): Promise {\r\n const nu: UpdateCarrierModel = params;\r\n const old: UpdateCarrierModel = JSON.parse(this.originalCarrierJson);\r\n\r\n const fieldsToCheck = [\r\n \"entityType\",\r\n \"legalName\",\r\n \"alternateName\",\r\n \"dotNumber\",\r\n \"dbaName\",\r\n \"typeOfAuthority\",\r\n \"scacCode\",\r\n \"dedicatedScacCodes\",\r\n \"taxId\",\r\n \"mcNumber\",\r\n \"confinedToState\",\r\n \"dedicatedFleet\",\r\n \"legalAddressStreet\",\r\n \"legalAddressCity\",\r\n \"legalAddressZip\",\r\n \"legalAddressState\",\r\n \"legalAddressCountry\",\r\n \"mainPhone\",\r\n \"mainPhoneExt\",\r\n \"preferredInboundLanes\",\r\n \"preferredOutboundLanes\",\r\n \"numberOfTrucks\",\r\n \"equipment\",\r\n \"communicationType\",\r\n \"safetyRating\",\r\n \"heavyHauler\",\r\n \"heavyHaulerWeightId\",\r\n \"overlengthHauler\",\r\n \"diversityCertified\",\r\n \"hazmatCertified\",\r\n \"hasSustainabilityProgram\",\r\n \"sustainability\",\r\n \"sustainabilityProgram\",\r\n \"divisions\",\r\n ]\r\n\r\n const changedFields = [];\r\n\r\n fieldsToCheck.forEach(field => {\r\n this.checkFieldForChanges(nu, old, field, changedFields);\r\n });\r\n\r\n if (changedFields.length) {\r\n\r\n var fieldChangeSummary = \"The following fields were modified:\";\r\n\r\n changedFields.forEach(field => {\r\n var oldValue = this.getDisplayValueForField(old, field);\r\n var newValue = this.getDisplayValueForField(nu, field);\r\n\r\n fieldChangeSummary += \"\\n - \" + field + \" changed from \\\"\" + oldValue + \"\\\" to \\\"\" + newValue + \"\\\"\";\r\n });\r\n\r\n var model = {\r\n title: \"Comment Required\",\r\n message: \"Please provide a comment to describe the reason for these changes:\",\r\n showComment: true,\r\n comment: \"\",\r\n buttons: [\"Save\", \"Cancel\"]\r\n };\r\n\r\n return await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Save\") {\r\n if (model.comment.trim().length > 10) {\r\n\r\n params.comment = \"Basic Info updated. Comment: \" + model.comment + \"\\n\\n\" + fieldChangeSummary;\r\n\r\n return true;\r\n } else {\r\n alert(\"Valid Comment is Required.\");\r\n }\r\n }\r\n });\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n checkFieldForChanges(nu: UpdateCarrierModel, old: UpdateCarrierModel, field: string, changedFields: any[]) {\r\n var oldValue = this.getDisplayValueForField(old, field);\r\n var newValue = this.getDisplayValueForField(nu, field);\r\n\r\n // flag field as changed\r\n if (oldValue != newValue) {\r\n changedFields.push(field);\r\n }\r\n }\r\n\r\n getDisplayValueForField(carrierUpdateModel: UpdateCarrierModel, field: string) {\r\n var value = carrierUpdateModel.carrier[field];\r\n let displayValue = value;\r\n\r\n if (Array.isArray(carrierUpdateModel.carrier[field])) {\r\n var nuArr = carrierUpdateModel.carrier[field] || [];\r\n displayValue = nuArr.sort().join(\",\");\r\n }\r\n\r\n if (field == \"equipment\") {\r\n const values = carrierUpdateModel.equipment;\r\n const items = this.equipmentTypes.filter(o => values.indexOf(o.id) > -1);\r\n displayValue = items.map(o => o.description).sort().join(\", \");\r\n }\r\n\r\n if (field == \"divisions\") {\r\n const values = carrierUpdateModel.divisions;\r\n const items = this.divisions.filter(o => values.indexOf(o.id) > -1);\r\n displayValue = items.map(o => o.millId).sort().join(\", \");\r\n }\r\n\r\n if (field == \"preferredInboundLanes\") {\r\n const values = carrierUpdateModel.inboundLanes;\r\n displayValue = values.sort().join(\", \");\r\n }\r\n\r\n if (field == \"preferredOutboundLanes\") {\r\n const values = carrierUpdateModel.outboundLanes;\r\n displayValue = values.sort().join(\", \");\r\n }\r\n\r\n\r\n return displayValue || \"\";\r\n\r\n }\r\n\r\n\r\n loadHeavyHaulerWeights() {\r\n this.busyService.on();\r\n this.api.get(\"Carriers\", \"GetHeavyHaulerWeights\")\r\n .then((result) => {\r\n this.heavyHaulerWeights = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n getCarrierUpdateObject(): UpdateCarrierModel {\r\n\r\n //handle number fields\r\n if (isNaN(parseInt(this.carrier.numberOfTrucks + \"\"))) {\r\n this.carrier.numberOfTrucks = undefined;\r\n } else {\r\n this.carrier.numberOfTrucks = parseInt(this.carrier.numberOfTrucks + \"\");\r\n }\r\n\r\n // don't include hasSustainabilityProgram property when comparing, since it's not a server-side field\r\n delete this.carrier.hasSustainabilityProgram;\r\n\r\n // don't include ospCarrierProductGroups_String property when comparing, since it shouldnt be populated directly\r\n delete this.carrier[\"ospCarrierProductGroups\"];\r\n\r\n\r\n var updateObj = {\r\n comment: \"\",\r\n carrier: this.carrier,\r\n equipment: this.carrierEquipment,\r\n divisions: this.carrierDivisions,\r\n inboundLanes: this.carrierInboundLanes,\r\n outboundLanes: this.carrierOutboundLanes,\r\n countriesOfOperation: this.carrierCountriesOfOperation\r\n };\r\n return updateObj;\r\n }\r\n\r\n isDotMatch(carrierField, dotMatch, compareType) {\r\n\r\n if (!dotMatch) return true;\r\n carrierField = carrierField || \"\";\r\n var dotMatchValue = dotMatch.dotValue || \"\";\r\n\r\n if (compareType == \"phone\") {\r\n var converter = new PhoneValueConverter();\r\n dotMatchValue = converter.format(dotMatchValue);\r\n }\r\n\r\n return carrierField.toString().trim().toLowerCase() == dotMatchValue.toString().trim().toLowerCase();\r\n }\r\n\r\n changeParent() {\r\n return this.dialogService.open(\r\n {\r\n viewModel: SearchCarrierDialog\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n var parentId = result.output;\r\n if (parentId) {\r\n this.carrier.parent = parentId;\r\n this.saveChanges();\r\n }\r\n }\r\n });\r\n }\r\n\r\n //removeParent() {\r\n // return this.dialogService.open(\r\n // {\r\n // viewModel: SimpleDialog,\r\n // model: {\r\n // title: \"Remove parent for \" + this.carrier.getCarrierName(),\r\n // message: \"Do you want to clear the parent link for this carrier?\",\r\n // buttons: [\"yes\", \"no\"]\r\n // }\r\n // })\r\n // .whenClosed((result) => {\r\n // if (!result.wasCancelled) {\r\n // if (result.output == \"yes\") {\r\n // this.carrier.parent = null;\r\n // this.saveChanges();\r\n // }\r\n // }\r\n // });\r\n //}\r\n\r\n getApprovalClass(fieldName) {\r\n var className = this.fieldApprovals[fieldName] ? 'has-approval' : '';\r\n return className;\r\n }\r\n\r\n applyDotValue(fieldName, formatterType) {\r\n if (this.securityService.hasRole(\"edit\")) {\r\n\r\n var dotValue = this.dotValues[fieldName].dotValue;\r\n if (formatterType == \"phone\") {\r\n var converter = new PhoneValueConverter();\r\n dotValue = converter.format(dotValue);\r\n }\r\n this.carrier[fieldName] = dotValue;\r\n }\r\n }\r\n\r\n //@computedFrom(\"carrierInsurance.length\")\r\n //get carrierInsuranceHasItems(): boolean {\r\n // return !!this.carrierInsurance.filter((ins) => ins.name != 'DELETED').length;\r\n //}\r\n @computedFrom(\"carrier\", \"carrier.status\", \"carrierStatuses.length\")\r\n get carrierStatusDescription(): string {\r\n if (this.carrier) {\r\n return this.getStatusDescription(this.carrier.status);\r\n }\r\n return \"\";\r\n }\r\n\r\n @computedFrom(\"carrier\", \"carrier.status\", \"carrierStatuses.length\")\r\n get carrierStatusClass(): string {\r\n let clss = \"\";\r\n if (this.carrier) {\r\n const statusDescription = this.getStatusDescription(this.carrier.status);\r\n const isDoNotUseStatus = statusDescription.toLowerCase().indexOf(\"do not use\") > -1;\r\n if (isDoNotUseStatus) {\r\n clss = \"status-donotuse\";\r\n } else if (this.carrier.status == 8) {\r\n clss = \"status-approved\";\r\n }\r\n }\r\n return clss;\r\n }\r\n\r\n\r\n preInitTransloaderLocationsGrid() {\r\n //set up grid options\r\n this.transloaderLocationsGridOptions = {\r\n api: undefined,\r\n columnDefs: this.transloaderLocationsGridColumnDefs,\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n }\r\n\r\n\r\n private transloaderLocationsGridColumnDefs: Array = [\r\n { field: \"id\", hide: true },\r\n {\r\n headerName: \"Location Code\", field: \"locationName\", filter: 'text',\r\n cellRenderer: (params) => this.transloaderLocationsLinkCellRenderer(params)\r\n },\r\n { headerName: \"Phone Number\", field: \"phoneNumber\", filter: 'text' },\r\n { headerName: \"Address\", field: \"address1\", filter: 'text' },\r\n { headerName: \"City\", field: \"city\", filter: 'text' },\r\n { headerName: \"State\", field: \"state\", filter: 'text' },\r\n { headerName: \"Inside Sq Ft\", field: \"insideStorage\", filter: 'text' },\r\n { headerName: \"Outside Acres\", field: \"outsideStorage\", filter: 'text' },\r\n { headerName: \"Rail Served\", field: \"railServed\", filter: 'text' },\r\n { headerName: \"Railroads\", field: \"railroads\", filter: 'text' },\r\n { headerName: \"Rail Car Types\", field: \"railCarTypes\", filter: 'text' },\r\n { headerName: \"Access to Water\", field: \"accessToWater\", filter: 'text' },\r\n { headerName: \"OTR Trucks\", field: \"otrTrucks\", filter: 'text' },\r\n ];\r\n\r\n public transloaderLocationsRowClick($event: MouseEvent) {\r\n var id = ($event.srcElement).getAttribute(\"data-id\");\r\n if (id) {\r\n this.updateTransloaderLocations(id);\r\n }\r\n }\r\n updateTransloaderLocations(id: string): any {\r\n this.dialogService.open(\r\n {\r\n viewModel: UpdateTransloaderLocationDialog,\r\n model: {\r\n divisions: this.divisions,\r\n carrierDivisions: this.carrierDivisions,\r\n carrierId: this.carrier.id,\r\n detailsId: id\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n //reload carrier comments\r\n this.loadTransloaderLocations(this.carrier.id);\r\n }\r\n });\r\n }\r\n\r\n transloaderLocationsLinkCellRenderer(params: any) {\r\n if (params.value != null) {\r\n return `${params.value}`;\r\n }\r\n return params.value;\r\n }\r\n\r\n\r\n async getFamilyTree(carrierId) {\r\n var result = await this.api.get(\"carriers\", \"GetFamilyTree\", { carrierId: carrierId });\r\n var flatTree = JSON.parse(result.response);\r\n this.familyTree = unflatten(flatTree);\r\n\r\n\r\n function unflatten(items) {\r\n return items.reduce(insert, {\r\n res: [],\r\n map: {}\r\n }).res;\r\n }\r\n\r\n function insert(obj, item) {\r\n var parent = item.parent;\r\n var map = obj.map;\r\n map[item.id] = item;\r\n\r\n if (parent === null) obj.res.push(item);\r\n else {\r\n var parentItem = map[parent];\r\n\r\n if (parentItem.hasOwnProperty(\"children\"))\r\n parentItem.children.push(item);\r\n else parentItem.children = [item];\r\n }\r\n\r\n return obj;\r\n }\r\n }\r\n\r\n removeNodeFn = async (item: OrgStructureNode, which: \"self\" | \"children\") => {\r\n\r\n let msg: string = \"\";\r\n let title: string = \"\";\r\n switch (which) {\r\n case \"self\":\r\n msg = \"Do you want to disconnect \" + item.legalName + \" from its parent?\";\r\n title = \"Remove Parent\";\r\n break;\r\n case \"children\":\r\n msg = \"Do you want to disconnect all children from \" + item.legalName + \"?\";\r\n title = \"Remove Children\";\r\n }\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: title,\r\n message: msg,\r\n buttons: [\"yes\", \"no\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"yes\") {\r\n if (which == \"self\") {\r\n this.api.post(\"Carriers\", \"RemoveCarrierParent\", { childId: item.id })\r\n .then(() => {\r\n this.getFamilyTree(this.carrier.id);\r\n });\r\n } else {\r\n this.api.post(\"Carriers\", \"RemoveCarrierChildren\", { parentId: item.id })\r\n .then(() => {\r\n this.getFamilyTree(this.carrier.id);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n\r\n //alert(\"Functionality coming soon...\");\r\n return;\r\n if (item.children.length) {\r\n alert(\"This node cannot be removed from the hierarchy until all children have been removed.\");\r\n } else {\r\n if (confirm(\"Do you want to remove \" + item.legalName)) {\r\n await this.api.post(\"Carriers\", \"RemoveCarrierParent\");\r\n }\r\n }\r\n }\r\n\r\n addNodeFn = async (item: OrgStructureNode, which: \"parent\" | \"child\") => {\r\n\r\n let title: string = \"\";\r\n let msg: string = \"\";\r\n switch (which) {\r\n case \"parent\":\r\n title = \"Add Parent\";\r\n msg = \"Do you want to add a parent to \" + item.legalName + \"?\";\r\n break;\r\n case \"child\":\r\n title = \"Add Child\";\r\n msg = \"Do you want to add a child to \" + item.legalName + \"?\";\r\n }\r\n\r\n\r\n\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: title,\r\n message: msg,\r\n buttons: [\"yes\", \"no\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"yes\") {\r\n // let user search for carrier\r\n return this.dialogService.open(\r\n {\r\n viewModel: SearchCarrierDialog\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n var parent = result.output;\r\n if (parent) {\r\n\r\n let childId: number;\r\n let parentId: number;\r\n if (which == \"parent\") {\r\n childId = item.id;\r\n parentId = parent.id;\r\n } else {\r\n childId = parent.id;\r\n parentId = item.id;\r\n }\r\n\r\n this.api.post(\"Carriers\", \"SetCarrierParent\", { childId: childId, parentId: parentId })\r\n .then(() => {\r\n this.getFamilyTree(this.carrier.id);\r\n });\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n\r\n // alert(\"Functionality coming soon...\");\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\nexport class UpdateCarrierModel {\r\n\r\n public comment: string;\r\n\r\n public carrier: Carrier;\r\n\r\n public equipment: Array;\r\n\r\n public divisions: Array;\r\n\r\n public inboundLanes: Array;\r\n\r\n public outboundLanes: Array;\r\n}",null,"export enum RequestState {\r\n New = \"d0cd6886-f766-4eb0-ae03-0c85ce7a959d\",\r\n InProgress = \"13a2456e-7478-44e8-9d2f-37ef73762505\",\r\n ClosedIncomplete = \"84e6246b-40a4-4390-ba11-b65d452fc693\",\r\n ClosedComplete = \"7416f9aa-3a26-41d7-b4b0-4499c8806058\"\r\n}","import { computedFrom, autoinject } from 'aurelia-framework';\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { SecurityService } from '../../services/security-service';\r\nimport { BusyService } from '../../services/busy-service';\r\n\r\n@autoinject\r\nexport class ChangePassword {\r\n emailSent: boolean;\r\n\r\n constructor(\r\n private api: WebApiService,\r\n private auth: SecurityService,\r\n private busy: BusyService,\r\n private pageMessageService: PageMessageService) {\r\n }\r\n\r\n activate(parameters) {\r\n this.emailSent = false;\r\n this.emailAddress = this.auth.user.emailAddress;\r\n }\r\n\r\n\r\n //TODO: This logic is incorrect and should be more diligent in determining the flag, and considering the usage implications.\r\n // NOTE: Furthermore, a user could start with \"%waad\" and be SSO for another applicaiton, and username-password for CMP\r\n @computedFrom(\"auth.user.userName\")\r\n get isSSOUser(): boolean {\r\n if (this.auth.user && this.auth.user.userName && this.auth.user.userName.toLocaleLowerCase().indexOf(\"@nucor.com\") > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n async sendPwEmail() {\r\n this.busy.on();\r\n try {\r\n this.emailSent = true;\r\n await this.api.post(\"Auth\", \"SendChangePasswordLink\");\r\n } catch {\r\n this.emailSent = false;\r\n }\r\n finally {\r\n this.busy.off();\r\n }\r\n }\r\n\r\n emailAddress: string;\r\n\r\n}\r\n\r\n",null,null,"import { Router } from 'aurelia-router';\r\nimport { LoginController } from '../../controllers/login-controller';\r\nimport { newInstance, autoinject } from 'aurelia-framework';\r\n\r\n@autoinject\r\n\r\nexport class Index {\r\n\r\n constructor(public loginController: LoginController) {\r\n }\r\n\r\n\r\n configureRouter(config, router) {\r\n config.map([\r\n { name: 'forgot-password', route: 'forgot-password', moduleId: '/forgot-password' },\r\n ]);\r\n\r\n this.router = router;\r\n }\r\n header: string;\r\n router: Router;\r\n}",null,"/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class NewUserRequestSubmitDto {\r\n firstName: string = undefined;\r\n lastName: string = undefined;\r\n emailAddress: string = undefined;\r\n phone: string = undefined;\r\n division: string = undefined;\r\n additionalDivisions: string = undefined;\r\n auth0UserId: string = undefined;\r\n fullName: string = \"\";\r\n recaptchaResponse: string = undefined;\r\n}\r\n","import { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { LoginController } from '../../controllers/login-controller'\r\nimport { Router } from 'aurelia-router';\r\nimport { computedFrom, newInstance, autoinject } from 'aurelia-framework';\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\nimport { DefaultValidationRenderer } from \"../../resources/renderers/default-validation-renderer\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { SecurityService } from '../../services/security-service';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport * as moment from 'moment';\r\nimport { NewUserRequestSubmitDto } from '../../data/typegen/dtos/new-user-request-submit-dto';\r\nimport { RequestDto } from '../../data/typegen/dtos/request-dto';\r\n\r\n@autoinject\r\nexport class NoUserAccount {\r\n requestSent: boolean;\r\n accountRequestedDate: any;\r\n emailAddress: string;\r\n subscription: any;\r\n isLocalUserSignup: boolean;\r\n firstName: any;\r\n lastName: any;\r\n pageTitle: string;\r\n recaptchaResponse: string;\r\n emailAlreadyExists: boolean;\r\n accountRequestedSuccessful: boolean;\r\n\r\n constructor(private router: Router,\r\n private busyService: BusyService,\r\n private eventAggregator: EventAggregator,\r\n //public loginController: LoginController,\r\n private api: WebApiService,\r\n private security: SecurityService,\r\n @newInstance() private controller: ValidationController,\r\n private pageMessageService: PageMessageService) {\r\n\r\n this.controller.validateTrigger = validateTrigger.change;\r\n controller.addRenderer(new DefaultValidationRenderer());\r\n\r\n this.eventAggregator.subscribe(\"router:navigation:success\", this.navigationSuccess.bind(this))\r\n\r\n }\r\n\r\n\r\n @computedFrom(\"emailAddress\")\r\n get shouldSignIntoAuth0(): boolean {\r\n //TODO: Get this list dynamically from the connections: https://nucor.auth0.com/api/v2/connections?strategy=waad\r\n // This should be the same list as: https://manage.auth0.com/dashboard/us/nucor/connections/enterprise/waad/con_lCRmc5cQI6t2H03K/setup\r\n var ssoEmailDomains = [\r\n \"nucor.onmicrosoft.com\",\r\n \"nucor.com\",\r\n \"fibonaccisolutions.com\",\r\n \"skylinesteel.com\",\r\n \"nucor-yamato.com\",\r\n \"stlcd.com\",\r\n \"vulcraft-al.com\",\r\n \"vulcraft-in.com\",\r\n \"vulcraft-ne.com\",\r\n \"vulcraft-ny.com\",\r\n \"vulcraft-sc.com\",\r\n \"vulcraft-ut.com\",\r\n \"vulcraft-tx.com\",\r\n \"americanbuildings.com\",\r\n \"nbssc.com\",\r\n \"nbstx.com\",\r\n \"nbsut.com\",\r\n \"vercodeck.com\",\r\n \"nucorskyline.com\",\r\n \"barometer.nucor.com\"\r\n ];\r\n\r\n // the purpose of this logic is that users who are using SSO-enabled emails - they should log into CMP first using Auth0 and THEN complete the signup process.\r\n // this eliminates a lot of data risk during the signup process.\r\n\r\n const email = (this.emailAddress || \"\").toLowerCase();\r\n const parts = email.split(\"@\");\r\n const emailDomain = parts[1];\r\n if (this.isLocalUserSignup == true && ssoEmailDomains.indexOf(emailDomain) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n logout() {\r\n (window.location) = \"logout\";\r\n }\r\n login() {\r\n (window.location) = \"login\";\r\n }\r\n\r\n public signupType = \"\";\r\n\r\n async navigationSuccess(event) {\r\n let instruction = event.instruction;\r\n if (instruction.config.name == \"signup\") {\r\n // this path is for users who click the \"Signup\" link on the main landing page\r\n this.pageTitle = \"New User Sign-up\";\r\n this.recaptchaResponse = \"\";\r\n this.isLocalUserSignup = true;\r\n } else {\r\n // this path is for new users who login, but do not have a CMP account.\r\n this.isLocalUserSignup = false;\r\n await this.security.init();\r\n this.firstName = this.security.user.firstName;\r\n this.lastName = this.security.user.lastName;\r\n this.emailAddress = this.security.user.emailAddress;\r\n this.isUserInactive = !this.security.user.active;\r\n this.accountRequestedDate = await this.getAccountRequestedDate();\r\n this.requestSent = !!this.accountRequestedDate;\r\n this.pageTitle = this.isUserInactive ? \"Account Inactive\" : \"Request an Account\";\r\n this.recaptchaResponse = \"NOT_NEEDED\"; // we don't use the recaptcha for authenticated users, so add fake value to pass local validation\r\n }\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n\r\n async activate(parameters) {\r\n }\r\n\r\n private getAccountRequestedDate(): any {\r\n this.busyService.on();\r\n return this.api.get(\"Auth\", \"GetAccountRequestedDate\")\r\n .then((result) => {\r\n var request = JSON.parse(result.response) as RequestDto;\r\n return !!request ? moment(request.openedOn).format(\"LLLL\") : \"\";\r\n }).finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n public isUserInactive: boolean = false;\r\n public division: string;\r\n public additionalDivisions: string;\r\n public phone: string;\r\n\r\n async submit() {\r\n this.accountRequestedSuccessful = false;\r\n this.controller.validate().then(async v => {\r\n if (v.length === 0) {\r\n this.pageMessageService.clear();\r\n const dto: NewUserRequestSubmitDto = {\r\n division: this.division,\r\n additionalDivisions: this.additionalDivisions,\r\n phone: this.phone,\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n emailAddress: this.emailAddress,\r\n recaptchaResponse: this.recaptchaResponse,\r\n auth0UserId: \"\",\r\n fullName: \"\"\r\n };\r\n\r\n let action = \"InsertUserAccountRequestWithRecaptcha\";\r\n if (this.security.hasRole(\"cmp.noaccess\")) {\r\n action = \"InsertUserAccountRequest\";\r\n }\r\n try {\r\n const responseMessage = await this.api.post(\"Auth\", action, dto);\r\n const requestDto:RequestDto = JSON.parse(responseMessage.response) as RequestDto;\r\n this.accountRequestedSuccessful = true;\r\n this.pageMessageService.setInfoMessage(\"Your account has been requested. Please save this request number for reference: \" + requestDto.number);\r\n this.requestSent = true;\r\n\r\n // if (result.status == \"success\") {\r\n // this.accountRequestedSuccessful = true;\r\n // this.pageMessageService.setInfoMessage(\"Account request successful!\");\r\n // } else if (result.status == \"pending_request\") {\r\n // this.accountRequestedDate = result.accountRequestedDate;\r\n // this.pageMessageService.setErrorMessage(\"Account already requested\");\r\n // } else if (result.status == \"already_exists\") {\r\n // this.emailAlreadyExists = true;\r\n // this.pageMessageService.setErrorMessage(\"User already exists\");\r\n // }\r\n // else {\r\n // this.pageMessageService.setErrorMessage(\"Account request not completed!\");\r\n // }\r\n } catch (e) {\r\n this.pageMessageService.setErrorMessage(e.message || e.errorMessage || JSON.stringify(e));\r\n //this.pageMessageService.setErrorMessage(\"Error: \" + e.errorMessage);\r\n }finally{\r\n this.recaptchaResponse = \"\";\r\n window[\"grecaptcha\"].reset();\r\n }\r\n }\r\n else {\r\n this.pageMessageService.setDefaultValidationMessage();\r\n }\r\n });\r\n }\r\n\r\n recaptcha(response) {\r\n //alert(response);\r\n this.recaptchaResponse = response;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nValidationRules\r\n .ensure((m: NoUserAccount) => m.firstName).required().maxLength(255)\r\n .ensure((m: NoUserAccount) => m.lastName).required().maxLength(255)\r\n .ensure((m: NoUserAccount) => m.emailAddress).email().required().maxLength(255)\r\n .ensure((m: NoUserAccount) => m.division).required().maxLength(255)\r\n .ensure((m: NoUserAccount) => m.additionalDivisions).maxLength(255)\r\n .ensure((m: NoUserAccount) => m.phone).required().maxLength(20)\r\n .ensure((m: NoUserAccount) => m.recaptchaResponse).required().withMessage('Please verify that you are not a robot.')\r\n .on(NoUserAccount);\r\n\r\n","import { computedFrom, autoinject } from 'aurelia-framework';\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { SecurityService } from '../../services/security-service';\r\nimport { BusyService } from '../../services/busy-service';\r\n\r\n@autoinject\r\nexport class ChangePassword {\r\n emailSent: boolean;\r\n\r\n constructor(\r\n private pageMessageService: PageMessageService) {\r\n }\r\n\r\n activate(parameters) {\r\n }\r\n\r\n login() {\r\n (window.location) = \"login\";\r\n }\r\n}\r\n\r\n",null,null,"// only import this if you are using the ag-Grid-Enterprise\r\nimport {observable} from \"aurelia-framework\";\r\n//import 'ag-grid-enterprise/main';\r\n\r\nexport class AnimationDemo {\r\n columnDefs = [\r\n { headerName: \"Make\", field: \"make\", filter: 'text' },\r\n { headerName: \"Model\", field: \"model\" },\r\n { headerName: \"Price\", field: \"price\", filter: 'number' }\r\n ];\r\n\r\n rowData = [\r\n { make: \"Toyota\", model: \"Celica\", price: 35000 },\r\n { make: \"Ford\", model: \"Mondeo\", price: 32000 },\r\n { make: \"Porsche\", model: \"Boxter\", price: 72000 }\r\n ];\r\n\r\n load() {\r\n this.rowData = [\r\n { make: \"Toyota\", model: \"Celica\", price: 35000 },\r\n { make: \"Ford\", model: \"Mondeo\", price: 32000 },\r\n { make: \"Porsche\", model: \"Boxter\", price: 72000 }\r\n ];\r\n }\r\n\r\n @observable\r\n filter: string;\r\n\r\n @observable\r\n brandFilter: string;\r\n\r\n brandFilterChanged() {\r\n var nameFilter = this.gridOptions.api.getFilterInstance('make');\r\n nameFilter.setType('equals');\r\n nameFilter.setFilter(this.brandFilter);\r\n this.gridOptions.api.onFilterChanged();\r\n}\r\n\r\n filterChanged() {\r\n this.gridOptions.api.setQuickFilter(this.filter);\r\n }\r\n\r\n\r\n export() {\r\n this.gridOptions.api.exportDataAsCsv({\r\n fileName: \"test.xls\"\r\n });\r\n }\r\n\r\n gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n rowData: this.rowData\r\n };\r\n\r\n onModelUpdated() {\r\n console.log('onModelUpdated');\r\n //this.calculateRowCount();\r\n };\r\n onReady() {\r\n console.log('onReady');\r\n //this.calculateRowCount();\r\n };\r\n onCellClicked($event) {\r\n console.log('onCellClicked: ' + $event.rowIndex + ' ' + $event.colDef.field);\r\n };\r\n onCellValueChanged($event) {\r\n console.log('onCellValueChanged: ' + $event.oldValue + ' to ' + $event.newValue);\r\n };\r\n onCellDoubleClicked($event) {\r\n console.log('onCellDoubleClicked: ' + $event.rowIndex + ' ' + $event.colDef.field);\r\n };\r\n onCellContextMenu($event) {\r\n console.log('onCellContextMenu: ' + $event.rowIndex + ' ' + $event.colDef.field);\r\n };\r\n onCellFocused($event) {\r\n console.log('onCellFocused: (' + $event.rowIndex + ',' + $event.column ? $event.column.colId : '' + ')');\r\n };\r\n onRowSelected($event) {\r\n };\r\n onSelectionChanged() {\r\n console.log('selectionChanged');\r\n };\r\n onBeforeFilterChanged() {\r\n console.log('beforeFilterChanged');\r\n };\r\n onAfterFilterChanged() {\r\n console.log('afterFilterChanged');\r\n };\r\n onFilterModified() {\r\n console.log('onFilterModified');\r\n };\r\n onBeforeSortChanged() {\r\n console.log('onBeforeSortChanged');\r\n };\r\n onAfterSortChanged() {\r\n console.log('onAfterSortChanged');\r\n };\r\n onVirtualRowRemoved($event) {\r\n };\r\n onRowClicked($event) {\r\n console.log('onRowClicked: ' + $event.node.data.name);\r\n };\r\n onQuickFilterChanged($event) {\r\n console.log('onQuickFilterChanged: ' + $event.target.value);\r\n //this.gridOptions.api.setQuickFilter($event.target.value);\r\n };\r\n onColumnEvent($event) {\r\n console.log('onColumnEvent: ' + $event);\r\n };\r\n onIdClicked(row) {\r\n console.log('id clicked ' + row.id);\r\n };\r\n\r\n}","import { computedFrom, autoinject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport states from \"../../models/state-list\";\r\nimport { WebApiService } from '../../services/web-api-service';\r\nimport { BusyService } from \"../../services/busy-service\";\r\n\r\n@autoinject\r\nexport class SelectLocationsDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService\r\n ) {\r\n this.states = states;\r\n this.api = api;\r\n }\r\n\r\n states: Array;\r\n products: Array = [];\r\n\r\n //array of state codes to filter the divisions list\r\n nameFilter: string;\r\n selectedStates: Array = [];\r\n selectedProducts: Array = [];\r\n allDivisions: Array = [];\r\n divisionProductXref: Array = [];\r\n\r\n loadDivisions() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n this.allDivisions = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n loadProducts() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetProducts\")\r\n .then((result) => {\r\n this.products = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n loadDivisionProductXref() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisionProductXref\")\r\n .then((result) => {\r\n this.divisionProductXref = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n @computedFrom(\"allDivisions.length\", \"selectedStates.length\", \"selectedProducts.length\", \"nameFilter\")\r\n get filteredDivisions(): Array {\r\n let nameFilterLower = (this.nameFilter || \"\").toLowerCase();\r\n return this.allDivisions.filter((item) => {\r\n return (!nameFilterLower || item.name.toLowerCase().indexOf(nameFilterLower) > -1) && \r\n (this.selectedStates.length == 0 || this.selectedStates.indexOf(item.state) > -1) &&\r\n (this.selectedProducts.length == 0 || this.divisionProductXref.find((xref) => {\r\n return xref.divisionId == item.id && this.selectedProducts.indexOf(xref.productId) > -1;\r\n }));\r\n })\r\n }\r\n\r\n selectedDivisions: any = [];\r\n\r\n activate(divisionIds: Array) {\r\n //because this dialog is recreated each time it is activated, \r\n // we have to load the main divisions list on each activation.\r\n // As a result, we need to populate the selectedDivisions array\r\n // by correlating the divisions passed in with the objects in the \r\n // this.allDivisions array, so that the correct object reference is used.\r\n\r\n this.loadDivisions()\r\n .then(() => {\r\n for (var division of divisionIds) {\r\n this.selectedDivisions.push(this.allDivisions.find((e) => e.id == division.id));\r\n }\r\n });\r\n\r\n this.loadDivisionProductXref();\r\n this.loadProducts();\r\n\r\n }\r\n\r\n cancel() {\r\n this.controller.cancel();\r\n }\r\n\r\n ok() {\r\n this.controller.ok(this.selectedDivisions.sort((a, b) => a.name > b.name));\r\n }\r\n}","import { Redirect, Router } from 'aurelia-router';\r\nimport { computedFrom, autoinject, Aurelia } from 'aurelia-framework';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\nimport { RegistrationController } from '../../controllers/registration-controller'\r\nimport { DefaultValidationRenderer } from \"../../resources/renderers/default-validation-renderer\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { Carrier } from \"../../models/carrier\";\r\nimport { SelectLocationsDialog } from \"../../public/register/select-locations-dialog\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\n\r\n@autoinject\r\nexport class CarrierInfo {\r\n\r\n constructor(private router: Router,\r\n public reg: RegistrationController,\r\n private controllerFactory: ValidationControllerFactory,\r\n private pageMessageService: PageMessageService,\r\n private appMessageService: AppMessageService,\r\n private dialogService: DialogService,\r\n private busyService: BusyService,\r\n private aurelia: Aurelia\r\n ) {\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.controller.validateTrigger = validateTrigger.change;\r\n this.controller.addRenderer(new DefaultValidationRenderer());\r\n }\r\n controller: ValidationController = null;\r\n equipmentTypes: Array = [];\r\n equipmentGroups: Array = [];\r\n heavyHaulerWeights: Array = [];\r\n\r\n\r\n canActivate(params): any {\r\n ////enable this page as entry point for debugging (only for local environment)\r\n if ((this.aurelia.host.attributes).environment.value.toLowerCase() == \"local\") {\r\n if (!this.reg.carrier) {\r\n this.reg.carrier = new Carrier();\r\n this.reg.carrier.legalName = \"DYNAMITE DOCUMENT DESTRUCTION\";\r\n this.reg.carrier.dotNumber = \"1232032\";\r\n }\r\n }\r\n\r\n if (!this.reg.carrier) {\r\n return new Redirect(\"register/details/\" + params.requestId);\r\n } else {\r\n return !this.reg.carrier.isSubmitted;\r\n }\r\n }\r\n\r\n activate() {\r\n\r\n this.loadEquipmentTypes();\r\n this.loadHeavyHaulerWeights();\r\n\r\n }\r\n\r\n loadHeavyHaulerWeights() {\r\n this.busyService.on();\r\n this.reg.getHeavyHaulerWeights()\r\n .then((result) => {\r\n this.heavyHaulerWeights = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n attached() {\r\n ($(\".diversity-info-button,.hazmat-info-button\")).popover();\r\n }\r\n\r\n\r\n @computedFrom(\"reg.carrier.hasTrucks\", \"this.equipmentTypes.length\")\r\n get filteredEquipmentTypes() {\r\n const eqtypes = this.equipmentTypes.filter(o => {\r\n // for non-trucks, only show transloader equipment.\r\n if (!this.reg.carrier.hasTrucks) {\r\n if (o.equipmentTypeId != 'e3e2990e-c080-4997-9c4e-bfc656095c2f') {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n\r\n this.calculateEquipmentGroups(eqtypes);\r\n\r\n return eqtypes;\r\n }\r\n\r\n \r\n public diversityCategories = [\r\n {name: \"Minority Owned\", value: \"87eb5c19-cf2d-4b0f-a2a4-8d246251e95e\"},\r\n {name: \"Woman Owned\", value: \"99d55403-4eef-4e80-ba5d-f8c6831d92a6\"},\r\n {name: \"Veteran Owned\", value: \"83624890-38e7-44d1-b1d8-be6446324cc9\"}\r\n ]\r\n\r\n private calculateEquipmentGroups(equipmentTypes: any[]) {\r\n const newEquipmentGroups = [];\r\n equipmentTypes.forEach(o => {\r\n if (newEquipmentGroups.indexOf(o.type) == -1) {\r\n newEquipmentGroups.push(o.type);\r\n }\r\n });\r\n if (JSON.stringify(this.equipmentGroups) != JSON.stringify(newEquipmentGroups)) {\r\n this.equipmentGroups = newEquipmentGroups;\r\n }\r\n }\r\n\r\n loadEquipmentTypes() {\r\n this.busyService.on();\r\n this.reg.getEquipment()\r\n .then((result) => {\r\n this.equipmentTypes = JSON.parse(result.response);\r\n this.calculateEquipmentGroups(this.filteredEquipmentTypes);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n //animate height using css3\r\n // http://stackoverflow.com/a/9763697/91189\r\n removeLocation(division, event) {\r\n var index = this.reg.carrier.existingCarrierDivisions.indexOf(division);\r\n if (index > -1) {\r\n this.reg.carrier.existingCarrierDivisions.splice(index, 1);\r\n }\r\n }\r\n\r\n selectLocations() {\r\n this.dialogService.open(\r\n {\r\n viewModel: SelectLocationsDialog,\r\n model: this.reg.carrier.existingCarrierDivisions\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n this.reg.carrier.existingCarrierDivisions = result.output;\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n\r\n submit() {\r\n this.appMessageService.clearPageScopedMessages();\r\n this.pageMessageService.clear();\r\n this.controller.validate().then(v => {\r\n if (v.length === 0) {\r\n this.busyService.on();\r\n this.reg.submitRegistration()\r\n .then(() => {\r\n this.router.navigate(\"complete\");\r\n })\r\n .catch((error) => {\r\n //alert(JSON.stringify(error));\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n else {\r\n this.pageMessageService.setDefaultValidationMessage();\r\n }\r\n });\r\n }\r\n}\r\n","import { RegistrationController } from '../../controllers/registration-controller'\r\nimport { inject } from 'aurelia-framework';\r\nimport { Redirect, Router } from 'aurelia-router';\r\n\r\n@inject(Router, RegistrationController)\r\nexport class Details {\r\n\r\n constructor(private router: Router, public reg: RegistrationController) {\r\n }\r\n\r\n canActivate(params): any {\r\n if (!this.reg.carrier) {\r\n return new Redirect(\"register/details/\" + params.requestId);\r\n }\r\n return Promise.resolve(true);\r\n }\r\n}","import { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\nimport { RegistrationController } from '../../controllers/registration-controller'\r\nimport { newInstance, autoinject } from 'aurelia-framework';\r\nimport { Redirect, Router } from 'aurelia-router';\r\nimport { DefaultValidationRenderer } from \"../../resources/renderers/default-validation-renderer\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { Carrier } from \"../../models/carrier\";\r\nimport { WebApiService } from '../../services/web-api-service';\r\nimport { Contact } from '../../models/contact';\r\nimport { ContactPhone } from '../../models/contact-phone';\r\n\r\n@autoinject()\r\nexport class Details {\r\n constructor(private router: Router, public reg: RegistrationController,\r\n private controllerFactory: ValidationControllerFactory,\r\n private pageMessageService: PageMessageService,\r\n private busyService: BusyService,\r\n private api: WebApiService\r\n ) {\r\n\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.controller.validateTrigger = validateTrigger.blur;\r\n this.controller.addRenderer(new DefaultValidationRenderer());\r\n\r\n }\r\n\r\n attached() {\r\n ($(\".info-button\")).popover();\r\n }\r\n\r\n public addContact() {\r\n var emptyContact = new Contact();\r\n emptyContact.phones = [new ContactPhone()];\r\n this.reg.carrier.contacts.push(emptyContact);\r\n this.contactTypesChanged();\r\n }\r\n\r\n public removeContact(contact) {\r\n this.reg.carrier.contacts.splice(this.reg.carrier.contacts.indexOf(contact), 1);\r\n this.contactTypesChanged();\r\n }\r\n\r\n public contactIsOwner = false;\r\n public contactIsAdministrator = false;\r\n public contactIsAccountingRep = false;\r\n public contactIsRateContact = false;\r\n public contactIsDispatch = false;\r\n public contactIsNewBusinessContact = false;\r\n public contactIsInsuranceContact = false;\r\n public contactIsEftContact = false;\r\n public contactIs24HrContact = false;\r\n\r\n public contactTypesChanged() {\r\n this.contactIsOwner = false;\r\n this.contactIsAdministrator = false;\r\n this.contactIsAccountingRep = false;\r\n this.contactIsRateContact = false;\r\n this.contactIsDispatch = false;\r\n this.contactIsNewBusinessContact = false;\r\n this.contactIsInsuranceContact = false;\r\n this.contactIsEftContact = false;\r\n this.contactIs24HrContact = false;\r\n\r\n this.reg.carrier.contacts.forEach(o => {\r\n if (o.contactTypeIds.indexOf(2) > -1)\r\n this.contactIsOwner = true;\r\n if (o.contactTypeIds.indexOf(1) > -1)\r\n this.contactIsAdministrator = true;\r\n if (o.contactTypeIds.indexOf(7) > -1)\r\n this.contactIsAccountingRep = true;\r\n if (o.contactTypeIds.indexOf(12) > -1)\r\n this.contactIsRateContact = true;\r\n if (o.contactTypeIds.indexOf(3) > -1)\r\n this.contactIsDispatch = true;\r\n if (o.contactTypeIds.indexOf(42) > -1)\r\n this.contactIsNewBusinessContact = true;\r\n if (o.contactTypeIds.indexOf(45) > -1)\r\n this.contactIsEftContact = true;\r\n if (o.contactTypeIds.indexOf(46) > -1)\r\n this.contactIs24HrContact = true;\r\n if (o.contactTypeIds.indexOf(11) > -1)\r\n this.contactIsInsuranceContact = true;\r\n });\r\n }\r\n\r\n contactTypes: Array = [];\r\n\r\n controller: ValidationController = null;\r\n\r\n canActivate(params): any {\r\n if (!this.reg.carrier) {\r\n //load it from the param\r\n } else {\r\n return !this.reg.carrier.isSubmitted;\r\n }\r\n }\r\n\r\n async activate() {\r\n\r\n await this.loadContactTypes();\r\n\r\n //this.reg.carrier = new Carrier();\r\n //this.reg.carrier.legalName = \"DYNAMITE DOCUMENT DESTRUCTION\";\r\n //this.reg.carrier.dotNumber = \"1232032\";\r\n }\r\n\r\n\r\n async loadContactTypes() {\r\n const result = await this.api.get(\"Registration\", \"GetContactTypes\")\r\n const contactTypes = JSON.parse(result.response);\r\n this.contactTypes = contactTypes.filter(o => {\r\n if (o.carrier == true) {\r\n if (this.reg.carrier.isTrucksCarrier) {\r\n return true;\r\n } else {\r\n // for non-trucks, do not require rate or dispatch contact \r\n if (o.id == 3\t/* Dispatcher */\r\n || o.id == 12\t/* Rate */) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public allContactTypesSelected = false;\r\n\r\n submit() {\r\n\r\n this.pageMessageService.clear();\r\n this.controller\r\n .validate()\r\n .then(v => {\r\n if (v.length === 0) {\r\n this.router.navigate(\"carrier-info\");\r\n }\r\n else {\r\n this.pageMessageService.setErrorMessage(\"Fix errors below\");\r\n }\r\n });\r\n }\r\n}\r\n","import { autoinject, inject, bindable, DOM, bindingMode } from 'aurelia-framework';\r\nimport { ValidationController, ValidationRules, validateTrigger, Validator } from 'aurelia-validation';\r\n\r\n@autoinject()\r\nexport class HorizontalTextInput {\r\n\r\n constructor(private element: Element) {\r\n }\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readonly: boolean = false;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) value: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) name: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) label: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) placeholder: string;\r\n\r\n bind() {\r\n this.name = this.name || HorizontalTextInput.getGuid();\r\n }\r\n\r\n static getGuid(): string {\r\n // see: http://stackoverflow.com/a/2117523/91189\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n //triggerEvent = (type:string) => this.element.dispatchEvent(DOM.createCustomEvent(type, {}));\r\n\r\n}","import { Router } from 'aurelia-router';\r\n\r\nexport class Register {\r\n\r\n configureRouter(config, router) {\r\n config.map([\r\n { route: '', redirect: 'begin' },\r\n { name: 'register-begin', title: 'Registration', route: 'begin', moduleId: './obsolete_begin', nav: true, settings:{step: 'Verify Company'} },\r\n { name: 'register-details', route: 'details', moduleId: './details', nav: true, settings:{step: 'Company Details'} },\r\n { name: 'register-carrier-info', route: 'carrier-info', moduleId: './carrier-info', nav: true, settings:{step: 'Carrier Information'} },\r\n { route: 'animation-demo', moduleId: './animation-demo', nav: false },\r\n { name: 'register-complete', route: 'complete', moduleId: './complete', nav: true, settings:{step: 'Complete'} }\r\n ]);\r\n\r\n this.router = router;\r\n }\r\n\r\n router: Router;\r\n}","import { RegistrationController } from '../../controllers/registration-controller'\r\nimport { newInstance, autoinject } from 'aurelia-framework';\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\nimport { DefaultValidationRenderer } from \"../../resources/renderers/default-validation-renderer\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { Carrier } from \"../../models/carrier\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\n\r\n@autoinject\r\nexport class Begin {\r\n showConfirmation: boolean;\r\n\r\n constructor(public reg: RegistrationController,\r\n private controllerFactory: ValidationControllerFactory,\r\n private appMessageService: AppMessageService,\r\n private pageMessageService: PageMessageService,\r\n private busyService: BusyService\r\n ) {\r\n\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.controller.validateTrigger = validateTrigger.change;\r\n this.controller.addRenderer(new DefaultValidationRenderer());\r\n\r\n }\r\n\r\n async activate(params) {\r\n await this.reg.loadCompanyInfo(params.id);\r\n if (!this.reg.carrier) {\r\n this.legalName = \"\";\r\n this.dotNumber = \"\";\r\n } else {\r\n this.entityType = this.reg.carrier.entityType;\r\n this.legalName = this.reg.carrier.legalName;\r\n this.dotNumber = this.reg.carrier.dotNumber;\r\n this.typeOfAuthority = this.reg.carrier.typeOfAuthority;\r\n this.showConfirmation = true;\r\n }\r\n }\r\n\r\n controller: ValidationController = null;\r\n entityType: string = \"\";\r\n legalName: string = \"\";\r\n dotNumber: string = \"\";\r\n typeOfAuthority: string = \"\";\r\n\r\n recaptchaResponse: string = \"\";\r\n // legalName: string = \"Scenic Scapes\";\r\n // dotNumber: string = \"1358366\";\r\n\r\n recaptcha(response) {\r\n //alert(response);\r\n this.recaptchaResponse = response;\r\n }\r\n\r\n submit() {\r\n this.appMessageService.clearPageScopedMessages();\r\n this.controller.validate().then(v => {\r\n if (v.length === 0) {\r\n this.pageMessageService.clear();\r\n this.reg.verifyCompanyInfo();\r\n\r\n //this.busyService.on();\r\n //this.reg.verifyCompanyInfo(this.dotNumber, this.legalName, this.recaptchaResponse);\r\n // .finally(() => {\r\n // this.busyService.off();\r\n // //recpatcha reset needs to be performed after the busyService has been turned off.\r\n // this.recaptchaResponse = \"\";\r\n // window[\"grecaptcha\"].reset();\r\n // });\r\n }\r\n else {\r\n this.pageMessageService.setDefaultValidationMessage();\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\nValidationRules\r\n .ensure((m: Begin) => m.legalName).required()\r\n .ensure((m: Begin) => m.dotNumber).required()\r\n .ensure((m: Begin) => m.recaptchaResponse).required().withMessage('Please verify that you are not a robot.')\r\n .on(Begin);\r\n","import {inject, customAttribute, TaskQueue} from 'aurelia-framework'\r\n\r\n@customAttribute('auto-focus')\r\n@inject(Element, TaskQueue)\r\n\r\nexport class AutoFocus {\r\n constructor(private element: Element, private taskQueue: TaskQueue) {\r\n\r\n }\r\n\r\n attached() {\r\n this.taskQueue.queueTask(() => {\r\n var inputs = this.element.tagName == \"INPUT\" ? [this.element] : this.element.getElementsByTagName('input');\r\n if (inputs.length > 0) {\r\n let input: HTMLInputElement = inputs[0] as HTMLInputElement;\r\n input.focus();\r\n }\r\n else {\r\n console.warn('No input element found for auto-focus');\r\n }\r\n });\r\n\r\n }\r\n}","import {autoinject, customAttribute} from 'aurelia-framework';\r\nimport {CssAnimator} from 'aurelia-animator-css';\r\n\r\n@customAttribute('slide-if')\r\n@autoinject()\r\nexport class SlideIfAttribute {\r\n\r\n constructor(private element: Element, animator: CssAnimator) {\r\n }\r\n\r\n bind() {\r\n var $ = window[\"jQuery\"];\r\n if (this[\"value\"]) {\r\n $(this.element).show();\r\n } else {\r\n $(this.element).hide();\r\n }\r\n }\r\n\r\n valueChanged(newValue) {\r\n var $ = window[\"jQuery\"];\r\n if (newValue) {\r\n $(this.element).slideDown('fast');\r\n } else {\r\n $(this.element).slideUp('fast');\r\n }\r\n }\r\n\r\n}","import { customAttribute, inject, bindable } from 'aurelia-framework';\r\nimport 'jquery';\r\n\r\n@customAttribute('tooltip')\r\n@inject(Element)\r\nexport class Tooltip {\r\n element: HTMLElement;\r\n @bindable title: any;\r\n @bindable placement: any = \"bottom\";\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n attached() {\r\n let $: any = window[\"jQuery\"];\r\n\r\n $(this.element).tooltip({\r\n title: this.title || this[\"value\"],\r\n placement: this.placement\r\n });\r\n }\r\n\r\n valueChanged(newValue) {\r\n let $: any = window[\"jQuery\"];\r\n $(this.element).tooltip({\r\n title: newValue,\r\n placement: this.placement\r\n });\r\n }\r\n titleChanged(newValue) {\r\n let $: any = window[\"jQuery\"];\r\n $(this.element).tooltip({\r\n title: newValue,\r\n placement: this.placement\r\n });\r\n }\r\n}","import {inject} from 'aurelia-framework';\r\n\r\nexport function useCookie(target: any, key: string) {\r\n\r\n // property value\r\n //var _val = target[key];\r\n\r\n //restore from cookie\r\n var val = \"FRED\";\r\n\r\n var descriptor = Object.getOwnPropertyDescriptor(target, key);\r\n alert(descriptor.get);\r\n\r\n //// property getter\r\n //var getter = function () {\r\n // return val;\r\n //};\r\n\r\n //// property setter\r\n //var setter = function (newVal) {\r\n // val = newVal;\r\n //};\r\n\r\n //// Delete property.\r\n //if (delete target[key]) {\r\n // // Create new property with getter and setter\r\n // Object.defineProperty(target, key, {\r\n // get: getter,\r\n // set: setter\r\n // });\r\n //}\r\n}\r\n","import { autoinject, bindable, bindingMode, computedFrom } from \"aurelia-framework\";\r\nimport { AppMessageContainer } from \"../../services/app-message-container\";\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport * as AppMessage from '../../models/app-message';\r\n\r\n@autoinject()\r\nexport class AppMessageBar {\r\n\r\n //TODO: Can this be eliminated?\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) message: string;\r\n\r\n constructor(\r\n private appMessageContainer: AppMessageContainer,\r\n private ea: EventAggregator) {\r\n }\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) containerId: string = \"root\";\r\n AppMessage = AppMessage;\r\n\r\n\r\n @computedFrom(\"appMessageContainer.messages.length\")\r\n get messages(): Array {\r\n return this.appMessageContainer.messages.filter(o => o.containerId == this.containerId);\r\n }\r\n\r\n subscriptions: Array = [];\r\n\r\n attached() {\r\n //this.subscriptions.push(this.ea.subscribe(this.appMessageService.events.messages_changed, alert => {\r\n // this.adjustBannerPosition();\r\n //}));\r\n //this.subscriptions.push(this.ea.subscribe(\"router:navigation:complete\", alert => {\r\n // this.adjustBannerPosition();\r\n //}));\r\n ////this.appMessageService.alerts = this.appMessageService.alerts;\r\n //this.adjustBannerPosition();\r\n }\r\n detached() {\r\n while (this.subscriptions.length > 0) {\r\n this.subscriptions.pop().dispose();\r\n }\r\n }\r\n\r\n getAlertClass(type: AppMessage.MessageType) {\r\n switch (type) {\r\n case AppMessage.MessageType.info:\r\n return \"info\";\r\n case AppMessage.MessageType.warning:\r\n return \"warning\";\r\n case AppMessage.MessageType.error:\r\n return \"danger\";\r\n }\r\n }\r\n\r\n adjustBannerPosition() {\r\n var totalAlertHeight = this.messages.length * ((27 + 5) + 5); //height of alert, including margins\r\n var pageMarginTop = 50 + totalAlertHeight;\r\n var bannerPaddingTop = 60 + totalAlertHeight;\r\n //jQuery(\"app-message-bar .app-alert\").each((i, e) => {\r\n // var alertHeight = jQuery(e).outerHeight();\r\n // pageMarginTop += alertHeight;\r\n // bannerMarginTop += alertHeight;\r\n //});\r\n\r\n let el: any = document.querySelector(\".page.secure\");\r\n el.style.marginTop = pageMarginTop + \"px\";\r\n\r\n el = document.querySelector(\".page.secure .banner\")\r\n el.style.paddingTop = bannerPaddingTop + \"px\";\r\n\r\n }\r\n\r\n removeMessage(message) {\r\n var messageIndex = this.appMessageContainer.messages.indexOf(message);\r\n if (messageIndex > -1) {\r\n this.appMessageContainer.messages.splice(messageIndex, 1);\r\n }\r\n //this.adjustBannerPosition();\r\n }\r\n\r\n}","import { bindable, bindingMode, containerless } from 'aurelia-framework';\r\n\r\n@containerless()\r\nexport class Badge {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) type: String;\r\n\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\n\r\n@autoinject\r\nexport class DropdownChecklist {\r\n\r\n constructor(public bindingEngine: BindingEngine, private element: Element) {\r\n this.selectedItems = [];\r\n\r\n this.selectedItemsPropertySubscription = this.bindingEngine\r\n .propertyObserver(this, 'selectedItems')\r\n .subscribe((n, o) => this.selectedItemsPropertyChanged(n, o));\r\n\r\n }\r\n\r\n attached() {\r\n if (!this.selectedItemsPropertySubscription) {\r\n this.selectedItemsPropertySubscription = this.bindingEngine\r\n .propertyObserver(this, 'selectedItems')\r\n .subscribe((n, o) => this.selectedItemsPropertyChanged(n, o));\r\n\r\n if (this.selectedItems) {\r\n this.selectedItemsPropertyChanged(this.selectedItems, null);\r\n }\r\n }\r\n }\r\n\r\n detached() {\r\n if (this.selectedItemsCollectionSubscription) {\r\n this.selectedItemsCollectionSubscription.dispose();\r\n delete this.selectedItemsCollectionSubscription;\r\n }\r\n if (this.selectedItemsPropertySubscription) {\r\n this.selectedItemsPropertySubscription.dispose();\r\n delete this.selectedItemsPropertySubscription;\r\n }\r\n }\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readonly: boolean;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) tabIndex: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) placeholder: string; // the placeholder string to use when contorl is used as input.\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) caption: string; //the caption string to use when control is used as filter. e.g. States: All\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) captionMember: string; //the property, if any, to use when building out selected items summary for caption. If not specified, it will use the displayMember\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) selectedItems: Array;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) all: boolean;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) @observable items: Array;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) filterCaption: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) valueMember: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) displayMember: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) groupValueMember: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) groupDisplayMember: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) filterDisplay: string = 'normal'; //set to 'none' to disable filter\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) mode: string = 'filter'; //set to 'input' to cause this control to behave as a normal form input, instead of a filter control.\r\n\r\n filter: string;\r\n showPlaceHolder: boolean;\r\n buttonCaption: string;\r\n filterInput: HTMLInputElement;\r\n selectedItemsCollectionSubscription;\r\n selectedItemsPropertySubscription;\r\n\r\n itemsChanged() {\r\n this.updateCaption();\r\n }\r\n\r\n\r\n @computedFrom(\"selectedItems.length\", \"items.length\", \"filter\")\r\n get filteredItems(): Array {\r\n\r\n let filterString = (this.filter || \"\").toLowerCase();\r\n\r\n if (!filterString || this.filterDisplay == 'none') {\r\n return this.items;\r\n }\r\n\r\n\r\n //no groups\r\n if (!this.groupDisplayMember) {\r\n return this.items.filter((item) => this.filterItem(item, filterString));\r\n }\r\n else { //group filtering logic\r\n\r\n var groups = this.items;\r\n\r\n return groups.map((group) => {\r\n // if group name matches, then include all items from that group.\r\n var groupName = group[this.groupDisplayMember];\r\n var groupItems: Array;\r\n\r\n if (groupName.toLowerCase().indexOf(filterString) > -1) {\r\n groupItems = group[this.groupValueMember]; //include all items, since the group name itself matches\r\n }\r\n else {\r\n groupItems = group[this.groupValueMember].filter((item) => this.filterItem(item, filterString));\r\n }\r\n\r\n var filteredGroup = {};\r\n filteredGroup[this.groupDisplayMember] = groupName;\r\n filteredGroup[this.groupValueMember] = groupItems;\r\n\r\n return filteredGroup;\r\n });\r\n }\r\n }\r\n\r\n clearSelectedItems() {\r\n this.selectedItems = [];\r\n\r\n setTimeout(() => {\r\n //event when selection changed\r\n let changeEvent = new CustomEvent('change', {\r\n detail: {\r\n value: this.selectedItems\r\n },\r\n bubbles: true\r\n });\r\n this.element.dispatchEvent(changeEvent);\r\n }, 0);\r\n }\r\n\r\n selectAll() {\r\n if (!this.groupDisplayMember) {\r\n //no groups\r\n this.selectedItems = this.filteredItems.map((item) => {\r\n if (this.valueMember) {\r\n return item[this.valueMember];\r\n } else {\r\n return item;\r\n }\r\n });\r\n } else {\r\n //handle groups\r\n this.selectedItems = [];\r\n var groups = this.filteredItems;\r\n groups.forEach((group) => {\r\n group[this.groupValueMember].forEach((item) => {\r\n if (this.valueMember) {\r\n this.selectedItems.push(item[this.valueMember]);\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n });\r\n });\r\n }\r\n\r\n //event when selection changed\r\n setTimeout(() => {\r\n let changeEvent = new CustomEvent('change', {\r\n detail: {\r\n value: this.selectedItems\r\n },\r\n bubbles: true\r\n });\r\n this.element.dispatchEvent(changeEvent);\r\n }, 0);\r\n }\r\n\r\n private filterItem(item, filterString) {\r\n let valueToCheck = ((this.displayMember ? item[this.displayMember] : item) || \"\").toLowerCase();\r\n return valueToCheck.indexOf(filterString) > -1\r\n }\r\n\r\n selectionChanged() {\r\n this.updateCaption();\r\n\r\n\r\n\r\n //event when selection changed\r\n let changeEvent = new CustomEvent('change', {\r\n detail: {\r\n value: this.selectedItems\r\n },\r\n bubbles: true\r\n });\r\n this.element.dispatchEvent(changeEvent);\r\n\r\n }\r\n\r\n updateCaption() {\r\n if (!(this.selectedItems && this.selectedItems.indexOf)) {\r\n this.selectedItems = [];\r\n }\r\n\r\n //control is invalid state if these are not an array.\r\n if (!this.items || !this.selectedItems) return;\r\n\r\n //by default, this formats the button text to work like a filter (showing caption: All when nothing selected)\r\n //If mode=input then this will always display the actual selected items summary text\r\n\r\n if ((this.mode !== 'input' && this.selectedItems.length == 0) || this.isAllItemsSelected()) {\r\n this.showPlaceHolder = false;\r\n if (this.caption) {\r\n this.buttonCaption = this.caption + \": All\";\r\n } else {\r\n this.buttonCaption = \"ALL\";\r\n }\r\n this.all = true;\r\n }\r\n else {\r\n\r\n var allSelectedItems = this.selectedItems;\r\n\r\n ////if groups enabled, then have to build selected items manually\r\n //if (this.groupDisplayMember) {\r\n // allSelectedItems = [];\r\n // this.items.forEach((group) => {\r\n // allSelectedItems = allSelectedItems.concat(group[this.groupValueMember].filter((item) => {\r\n // return \r\n // }));\r\n // });\r\n //}\r\n\r\n if (this.selectedItems.length) {\r\n\r\n //items are selected\r\n\r\n this.showPlaceHolder = false;\r\n\r\n\r\n //build list of display values\r\n this.buttonCaption = this.selectedItems.map((selectedItem) => {\r\n var foundItem;\r\n\r\n //for groups, look in the items for each group\r\n if (this.groupDisplayMember) {\r\n\r\n this.items.find((group) => {\r\n var groupItems = group[this.groupValueMember];\r\n return foundItem = groupItems.find((e) =>\r\n (this.valueMember ? e[this.valueMember] : e) == selectedItem\r\n );\r\n });\r\n\r\n } else {\r\n //otherwise, look in base items list\r\n foundItem = (this.items).find((e) =>\r\n (this.valueMember ? e[this.valueMember] : e) == selectedItem\r\n );\r\n }\r\n\r\n if (!foundItem) {\r\n return \"\";\r\n }\r\n return this.captionMember || this.displayMember ? foundItem[this.captionMember || this.displayMember] : foundItem;\r\n }).sort().join(\", \");\r\n\r\n } else {\r\n //nothing selected\r\n\r\n //show or hide placeholder\r\n if (this.mode == \"input\") {\r\n this.showPlaceHolder = true;\r\n }\r\n }\r\n\r\n\r\n this.all = false;\r\n }\r\n }\r\n\r\n isAllItemsSelected(): boolean {\r\n var selectedItemCount;\r\n if (!this.groupDisplayMember) {\r\n //no groups\r\n selectedItemCount = this.items.length;\r\n } else {\r\n //handle groups\r\n //(have to count the items)\r\n selectedItemCount = 0;\r\n var groups = this.items;\r\n groups.forEach((group) => {\r\n group[this.groupValueMember].forEach((item) => {\r\n selectedItemCount++;\r\n });\r\n });\r\n }\r\n\r\n return selectedItemCount == this.selectedItems.length;\r\n }\r\n\r\n selectedItemsPropertyChanged(newValue, oldValue) {\r\n //console.log(\"property changed\");\r\n\r\n //if (!(this.selectedItems && this.selectedItems.length)){\r\n // console.log(\"property to array\");\r\n // this.selectedItems = [];\r\n // return;\r\n //}\r\n\r\n this.selectedItemsCollectionSubscription && this.selectedItemsCollectionSubscription.dispose();\r\n\r\n if (this.selectedItems) {\r\n this.selectedItemsCollectionSubscription = this.bindingEngine.collectionObserver(this.selectedItems).subscribe(\r\n (splices) => this.selectionChanged());\r\n }\r\n\r\n this.selectionChanged();\r\n }\r\n\r\n toggle(e) {\r\n ($(e.srcElement)).parents('.dropdown').find('button.dropdown-toggle').dropdown('toggle');\r\n }\r\n\r\n dropdownToggled() {\r\n //clear and focus the filter input whenever dropdown is expanded\r\n setTimeout(() => {\r\n if (this.filterInput) {\r\n this.filterInput.value = \"\";\r\n this.filter = \"\";\r\n this.filterInput.focus();\r\n }\r\n }, 0);\r\n }\r\n}",null,"import { autoinject, bindable, noView, Aurelia } from 'aurelia-framework';\r\nimport { LoginController } from '../../controllers/login-controller'\r\nimport { Router } from 'aurelia-router';\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { WebApiService } from '../../services/web-api-service';\r\nimport { SecurityService } from '../../services/security-service';\r\n\r\n\r\n@autoinject()\r\nexport class NavbarPublic {\r\n\r\n constructor(private loginController: LoginController, private router: Router,\r\n private busyService: BusyService,\r\n private api: WebApiService,\r\n private auth: SecurityService,\r\n public aurelia: Aurelia) {\r\n this.environment = (aurelia.host.attributes).environment.value;\r\n }\r\n\r\n\r\n environment: string;\r\n\r\n async login() {\r\n (window.location) = \"login\";\r\n }\r\n\r\n\r\n async logout() {\r\n (window.location) = \"logout\";\r\n }\r\n\r\n async signup() {\r\n this.router.navigateToRoute(\"signup\");\r\n }\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { Contact } from \"../../models/contact\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { SecurityService } from '../../services/security-service';\r\n\r\n@autoinject\r\nexport class ReportParametersDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n\r\n reportName: string;\r\n fileName: string;\r\n mills: Array = [];\r\n millId: string;\r\n format: string = \"PDF\";\r\n isAllMillsSelected: boolean;\r\n\r\n\r\n activate(settings) {\r\n this.reportName = settings.reportName;\r\n this.format = settings.format || this.format;\r\n this.fileName = settings.fileName || this.reportName;\r\n\r\n this.loadMills();\r\n }\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n let mills = JSON.parse(result.response);\r\n const userDivisions = this.securityService.user.millCodes;\r\n if (userDivisions.length > 0) {\r\n mills = mills.filter(o => userDivisions.indexOf(o.millId) > -1);\r\n }\r\n this.mills = mills;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n runReport(report) {\r\n \r\n var reportFragment = encodeURIComponent(this.reportName + \"&millId=\" + this.millId);\r\n window.open(\"/Report/Download?fileName=\" + encodeURIComponent(this.fileName) + \"&reportFragment=\" + reportFragment + \"&format=\" + this.format);\r\n\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { Contact } from \"../../models/contact\";\r\nimport lanes from \"../../models/lane-list\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { SecurityService } from '../../services/security-service';\r\n\r\n@autoinject\r\nexport class ReportParametersMillContactDialog {\r\n constructor(\r\n private securityService: SecurityService,\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n\r\n this.lanes = lanes;\r\n\r\n }\r\n\r\n\r\n parameters: Array = [];\r\n lanes: Array;\r\n\r\n reportName: string;\r\n fileName: string;\r\n mills: Array = [];\r\n contactTypes: Array = [];\r\n carrierStatuses: Array = [];\r\n isAllContactTypesSelected: boolean;\r\n isAllMillsSelected: boolean;\r\n isAllStatusesSelected: boolean;\r\n isAllOutboundLanesSelected: boolean;\r\n isAllInboundLanesSelected: boolean;\r\n isAllEquipmentSelected: boolean;\r\n\r\n equipment: Array = [];\r\n\r\n\r\n // report parameters\r\n selectedCarrierStatuses: Array = [];\r\n selectedContactTypeIds: Array = [];\r\n selectedMillCodes: Array = [];\r\n selectedInboundLanes: Array = [];\r\n selectedOutboundLanes: Array = [];\r\n selectedEquipment: Array = [];\r\n includeUnassignedCarriers: boolean = true;\r\n format: string = \"PDF\";\r\n\r\n\r\n activate(settings) {\r\n this.parameters = settings.parameters;\r\n this.reportName = settings.reportName;\r\n this.format = settings.format || this.format;\r\n this.fileName = settings.fileName || this.reportName;\r\n\r\n this.loadCarrierStatuses();\r\n this.loadMills();\r\n this.loadContactTypes();\r\n this.loadEquipment();\r\n\r\n }\r\n\r\n loadEquipment() {\r\n this.busyService.on();\r\n this.api.get(\"Registration\", \"GetEquipment\")\r\n .then((result) => {\r\n this.equipment = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadCarrierStatuses() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetCarrierStatuses\")\r\n .then((result) => {\r\n this.carrierStatuses = JSON.parse(result.response);\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n var mills = JSON.parse(result.response);\r\n mills.forEach(o => {\r\n o.nameAndCode = o.code + \": \" + o.name;\r\n });\r\n const userDivisions = this.securityService.user.millCodes;\r\n if (userDivisions.length > 0) {\r\n mills = mills.filter(o => userDivisions.indexOf(o.code) > -1);\r\n }\r\n this.mills = mills;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n loadContactTypes() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetContactTypes\")\r\n .then((result) => {\r\n const contactTypes = JSON.parse(result.response);\r\n const carrierContactTypes = contactTypes.filter(o => o.carrier == true).map(o => ({\r\n id: o.id,\r\n description: o.description,\r\n category: 'Carrier'\r\n }));\r\n const divisionContactTypes = contactTypes.filter(o => o.division == true).map(o => ({\r\n id: o.id,\r\n description: o.description,\r\n category: 'Mill/Division'\r\n }));\r\n\r\n this.contactTypes = [\r\n {\r\n category: 'Carrier',\r\n types: [...carrierContactTypes]\r\n },\r\n {\r\n category: 'Division',\r\n types: [...divisionContactTypes]\r\n }\r\n ];\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n runReport(report) {\r\n\r\n var selectedMillCodes = this.selectedMillCodes;\r\n if (this.isAllMillsSelected) {\r\n if (this.securityService.user.millCodes.length > 0) {\r\n selectedMillCodes = this.securityService.user.millCodes;\r\n } else {\r\n selectedMillCodes = [];\r\n }\r\n }\r\n\r\n var url = this.reportName;\r\n if (this.parameters.indexOf(\"status\") > -1) {\r\n url += \"&statuses=\" + (this.isAllStatusesSelected ? '' : this.selectedCarrierStatuses.toString());\r\n }\r\n if (this.parameters.indexOf(\"mill\") > -1) {\r\n url += \"&millCodes=\" + (selectedMillCodes.toString());\r\n }\r\n if (this.parameters.indexOf(\"contactType\") > -1) {\r\n url += \"&contactTypeIds=\" + (this.isAllContactTypesSelected ? '' : this.selectedContactTypeIds.toString());\r\n }\r\n if (this.parameters.indexOf(\"inboundLanes\") > -1) {\r\n url += \"&inboundLanes=\" + (this.isAllInboundLanesSelected ? '' : this.selectedInboundLanes.toString());\r\n }\r\n if (this.parameters.indexOf(\"outboundLanes\") > -1) {\r\n url += \"&outboundLanes=\" + (this.isAllOutboundLanesSelected ? '' : this.selectedOutboundLanes.toString());\r\n }\r\n if (this.parameters.indexOf(\"equipment\") > -1) {\r\n url += \"&equipment=\" + (this.isAllEquipmentSelected ? '' : this.selectedEquipment.toString());\r\n }\r\n if (this.parameters.indexOf(\"unassignedCarriers\") > -1) {\r\n url += \"&includeUnassignedCarriers=\" + this.isAllMillsSelected;\r\n }\r\n var reportFragment = encodeURIComponent(url);\r\n window.open(\"/Report/Download?fileName=\" + encodeURIComponent(this.fileName) + \"&reportFragment=\" + reportFragment + \"&format=\" + this.format);\r\n\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport {DialogController} from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { Contact } from \"../../models/contact\";\r\nimport 'jquery';\r\nimport 'notify';\r\n\r\n@autoinject\r\nexport class ReportParametersDialog2 {\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n startDate: string;\r\n endDate: string;\r\n reportName: string;\r\n fileName: string = \"Master Approved Carriers\";\r\n format: string=\"PDF\";\r\n\r\n activate(reportName) {\r\n this.reportName = reportName;\r\n }\r\n\r\n runReport(report) {\r\n var reportFragment = encodeURIComponent(\"Master Approved Carriers&startDate=\" + this.startDate + \"&endDate=\" + this.endDate);\r\n window.open(\"/Report/Download?fileName=\" + encodeURIComponent(this.fileName) + \"&reportFragment=\" + reportFragment + \"&format=\" + this.format);\r\n }\r\n\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { Contact } from \"../../models/contact\";\r\nimport 'jquery';\r\nimport 'notify';\r\n\r\n@autoinject\r\nexport class RptContactsVerificationDialog {\r\n constructor(\r\n protected controller: DialogController,\r\n private busyService: BusyService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n }\r\n\r\n startDate: string;\r\n endDate: string;\r\n reportName: string;\r\n reportDisplayName: string = \"Carrier Contact Verification\";\r\n fileName: string = \"Carrier Contact Verification\";\r\n format: string = \"CSV\";\r\n\r\n activate(reportName) {\r\n this.reportName = reportName;\r\n }\r\n\r\n runReport(report) {\r\n var verifiedDateFrom = \"VerifiedDateFrom\" + (this.startDate ? \"=\" + this.startDate : \":IsNull=True\");\r\n var verifiedDateTo = \"VerifiedDateTo\" + (this.endDate ? \"=\" + this.endDate : \":IsNull=True\");\r\n var reportFragment = encodeURIComponent(\"RptContactsVerification&\" + verifiedDateFrom + \"&\" + verifiedDateTo);\r\n window.open(\"/Report/Download?fileName=\" + encodeURIComponent(this.fileName) + \"&reportFragment=\" + reportFragment + \"&format=\" + this.format);\r\n }\r\n\r\n\r\n}","import { LoginController } from '../../controllers/login-controller'\r\nimport { PageMessageService } from '../../services/page-message-service';\r\nimport { autoinject, Aurelia } from 'aurelia-framework';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { Router } from 'aurelia-router';\r\nimport { SecurityService } from '../../services/security-service';\r\nimport { ReportParametersDialog } from \"../../secure/dialogs/report-parameters-dialog\";\r\nimport { ReportParametersMillContactDialog } from \"../../secure/dialogs/report-parameters-mill-contact-dialog\";\r\nimport { ReportParametersDialog2 } from \"../../secure/dialogs/report-parameters-dialog-2\";\r\nimport 'jquery';\r\nimport 'Bloodhound';\r\nimport 'typeahead';\r\nimport { RptContactsVerificationDialog } from '../../secure/dialogs/rpt-contacts-verification-dialog';\r\nimport { WebApiService } from '../../services/web-api-service';\r\nimport { SettingsService } from '../../services/settings-service';\r\n\r\n@autoinject()\r\nexport class NavbarSecure {\r\n appVersion: any;\r\n unreadNotificationCount: number;\r\n constructor(\r\n private dialogService: DialogService,\r\n private loginController: LoginController,\r\n public securityService: SecurityService,\r\n public aurelia: Aurelia,\r\n public settingsService: SettingsService,\r\n public router: Router,\r\n private api: WebApiService) {\r\n this.environment = (aurelia.host.attributes).environment.value;\r\n this.securityService.init().then(() => this.isReady = true);\r\n this.developmentRequestEmail = (aurelia.host.attributes).developmentRequestEmail.value;\r\n this.appVersion = (aurelia.host.attributes).version.value;\r\n }\r\n\r\n \r\n public developmentRequestEmail: string = \"\";\r\n public notifications = [\r\n // {\r\n // type: 'comment',\r\n // priority: 3,\r\n // author: \"Alisa Carlise\",\r\n // createdDate: '08/12/2023 3:12pm',\r\n // content: 'Division is asking for status update on this.',\r\n // read: true,\r\n // iconClass: \"fa-comment-o\",\r\n // navLink: '/requests/fc5e4902-c815-4706-bbf6-08609d31ac46'\r\n // },\r\n // {\r\n // type: 'comment',\r\n // priority: 3,\r\n // author: \"Emily Padgett\",\r\n // createdDate: '08/06/2023 11:42am',\r\n // content: 'I talked to Bob and he is changing insurance carrier',\r\n // read: false,\r\n // iconClass: \"fa-comment-o\",\r\n // navLink: '/tasks/89e3a3c4-aec0-498e-9756-2ff773ace5ec'\r\n // },\r\n // {\r\n // type: 'info',\r\n // priority: 3,\r\n // author: \"System\",\r\n // createdDate: '08/09/2023 9:23am',\r\n // content: 'New tasks have been assigned to you',\r\n // read: false,\r\n // iconClass: \"fa-info-circle\",\r\n // navLink: '/tasks'\r\n // },\r\n // {\r\n // type: 'info',\r\n // priority: 1,\r\n // author: \"System\",\r\n // createdDate: '08/25/2023 5:23am',\r\n // content: 'Email subsystem is down',\r\n // read: false,\r\n // iconClass: \"fa-exclamation-circle\",\r\n // navLink: ''\r\n // }\r\n ];\r\n\r\n async navigateNotification(item) {\r\n if (item.navLink) {\r\n this.router.navigate(item.navLink);\r\n }\r\n item.isRead = true;\r\n await this.api.post(\"notification\", \"UpdateNotification\", item);\r\n this.calculateUnreadNotificationCount();\r\n }\r\n\r\n calculateUnreadNotificationCount() {\r\n this.unreadNotificationCount = this.notifications.filter(o => !o.isRead).length;\r\n }\r\n\r\n\r\n async toggleIsRead(item, e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n item.isRead = !item.isRead;\r\n await this.api.post(\"notification\", \"UpdateNotification\", item);\r\n this.calculateUnreadNotificationCount();\r\n }\r\n\r\n async removeNotification(item) {\r\n item.active = false;\r\n await this.api.post(\"notification\", \"UpdateNotification\", item);\r\n this.notifications.splice(this.notifications.indexOf(item), 1);\r\n this.calculateUnreadNotificationCount();\r\n }\r\n\r\n canShowNavItem(item) {\r\n var itemConfig = item.config;\r\n var canShow = true;\r\n\r\n if (itemConfig.role) {\r\n canShow = canShow && this.securityService.hasRole(itemConfig.role);\r\n }\r\n if (itemConfig.condition) {\r\n canShow = canShow && eval(itemConfig.condition);\r\n }\r\n return canShow;\r\n }\r\n\r\n searchValue: string;\r\n isReady: boolean = false;\r\n\r\n prepareQueryFn(query, settings: JQueryAjaxSettings) {\r\n settings.url = \"/api/carriers/globalsearch?keyword=\" + encodeURIComponent(query);\r\n settings.headers = {\r\n 'Accept': 'application/json',\r\n //'Authorization': this.getAuthToken()\r\n };\r\n return settings;\r\n }\r\n\r\n //user clicked on the search result\r\n processResult(suggestedCarrier) {\r\n this.router.navigate('/work-carrier/' + suggestedCarrier.id);\r\n }\r\n\r\n environment: string;\r\n\r\n async attached() {\r\n this.checkNotifications();\r\n setInterval(() => { this.checkNotifications() }, 30000);\r\n }\r\n\r\n public async readAll() {\r\n await this.api.post(\"notification\", \"readAll\");\r\n this.checkNotifications();\r\n }\r\n\r\n public async clearAll() {\r\n await this.api.post(\"notification\", \"clearAll\");\r\n this.checkNotifications();\r\n }\r\n\r\n private async checkNotifications() {\r\n const result = await this.api.get(\"notification\", \"getMyNotifications\");\r\n const notifications: any[] = JSON.parse(result.response);\r\n notifications.forEach(o => {\r\n if (!this.securityService.hasRole(\"Edit\")) {\r\n o.displayRecordNumber = o.ticketRecord.displayValue;\r\n o.navLink = `/ticket/${o.ticketRecord.value}`;\r\n } else {\r\n o.displayRecordNumber = o.targetRecord.displayValue;\r\n switch ((o.targetTable || \"\").toLowerCase()) {\r\n case \"request\":\r\n o.navLink = `/requests/${o.targetRecord.value}`;\r\n break;\r\n case \"task\":\r\n o.navLink = `/tasks/${o.targetRecord.value}`;\r\n break;\r\n default:\r\n o.navLink = undefined;\r\n }\r\n }\r\n });\r\n this.notifications = notifications;\r\n this.calculateUnreadNotificationCount();\r\n }\r\n\r\n\r\n logout() {\r\n (window.location) = \"/logout\";\r\n }\r\n\r\n launchReport(report, defaultFileName, format) {\r\n if (report == \"Master Approved Carriers\") {\r\n this.dialogService.open(\r\n {\r\n viewModel: ReportParametersDialog2,\r\n model: report\r\n });\r\n } else if (report == \"RptContactsVerification\") {\r\n this.dialogService.open(\r\n {\r\n viewModel: RptContactsVerificationDialog,\r\n model: report\r\n });\r\n } else if (report == \"RptCarrierContactsByMill\") {\r\n this.dialogService.open(\r\n {\r\n\r\n viewModel: ReportParametersMillContactDialog,\r\n model: {\r\n parameters: ['mill', 'contactType', 'status', 'inboundLanes', 'outboundLanes', 'equipment', 'unassignedCarriers'],\r\n reportName: report,\r\n format: format,\r\n fileName: defaultFileName\r\n }\r\n });\r\n } else if (report == \"MillCarrierStatus\") {\r\n this.dialogService.open(\r\n {\r\n viewModel: ReportParametersMillContactDialog,\r\n model: {\r\n parameters: ['mill'],\r\n reportName: report,\r\n format: format,\r\n fileName: defaultFileName\r\n }\r\n });\r\n } else {\r\n // all reports with no parameters\r\n var reportFragment = encodeURIComponent(report); //this should also include any parameters (e.g. ?param1=xyz)\r\n window.open(\"/Report/Download?fileName=\" + encodeURIComponent(defaultFileName) + \"&reportFragment=\" + reportFragment + \"&format=\" + format);\r\n }\r\n\r\n\r\n // window.open(\"http://rzcltdevsql01.rz.nucorsteel.local/ReportServer/Pages/ReportViewer.aspx?/CarrierManagementPortal/Mill+Carrier+Status\");\r\n }\r\n\r\n\r\n goToPublicLanding() {\r\n window.location.href = \"/landing\";\r\n }\r\n goToRegistration() {\r\n window.location.href = \"/register\";\r\n }\r\n changePassword() {\r\n this.router.navigateToRoute(\"change-password\");\r\n }\r\n}\r\n","import {bindable, bindingMode} from \"aurelia-framework\";\r\n\r\nexport class PageAlert{\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) message: string;\r\n\r\n constructor() {\r\n }\r\n\r\n}","import { bindable, bindingMode } from 'aurelia-framework';\r\nimport 'jquery';\r\n\r\nconst $ = jQuery;\r\n\r\nexport class ReadMore {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) text: String;\r\n\r\n constructor() {\r\n }\r\n\r\n paragraphElement: HTMLElement;\r\n\r\n toggle(e) {\r\n $(this.paragraphElement).toggleClass('read-less');\r\n if ($(e).text() == 'Show Less') $(e).text('Show More');\r\n else $(e).text('Show Less');\r\n }\r\n}","import {autoinject, noView, bindable} from 'aurelia-framework';\r\n\r\nconst recaptchaCallbackName = 'setRecaptchaReady';\r\nconst ready = new Promise(resolve => window[recaptchaCallbackName] = resolve);\r\n\r\n// https://developers.google.com/recaptcha/docs/display#explicit_render\r\nlet script = document.createElement('script');\r\nscript.src = `https://www.google.com/recaptcha/api.js?onload=${recaptchaCallbackName}&render=explicit`;\r\nscript.async = true;\r\nscript.defer = true;\r\ndocument.head.appendChild(script);\r\n\r\nconst sitekey = '6LeSNhAUAAAAAIbcq2uAePOZTJMLi5H3BqDbea-f';\r\n\r\n@noView()\r\n@autoinject()\r\nexport class Recaptcha {\r\n @bindable verified;\r\n @bindable theme = 'light';\r\n \r\n constructor(private element:Element) {\r\n }\r\n\r\n attached() {\r\n ready.then(() => window[\"grecaptcha\"].render(this.element, { \r\n sitekey: sitekey, \r\n theme: this.theme,\r\n callback: this.verified\r\n }));\r\n }\r\n}","import { autoinject, Aurelia } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\n\r\n@autoinject\r\nexport class StepIndicator {\r\n\r\n constructor(private aurelia: Aurelia, public router: Router) {\r\n }\r\n\r\n\r\n steps: Array;\r\n activeStep: string;\r\n navigationCompleteSub: any;\r\n\r\n bind() {\r\n this.navigationCompleteSub = (this.aurelia).subscribe('router:navigation:complete', msg => this.onNavigationComplete(msg));\r\n }\r\n\r\n unbind() {\r\n this.navigationCompleteSub.dispose();\r\n }\r\n\r\n onNavigationComplete(msg) {\r\n if (!msg.result.completed) {\r\n return;\r\n }\r\n }\r\n\r\n}","import { bindable, bindingMode } from 'aurelia-framework';\r\n\r\nexport class ToggleBadge {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) checked: Boolean;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) value: String;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) text: String;\r\n\r\n checkbox: any;\r\n isSelected: Boolean;\r\n toggle() {\r\n this.isSelected = this.checkbox.checked = !this.checkbox.checked;\r\n\r\n //this method doesn't work in IE11\r\n //this.checkbox.dispatchEvent(new Event(\"change\"));\r\n\r\n //alternate solution that works in IE11 and evergreen browsers.\r\n var event = document.createEvent(\"HTMLEvents\");\r\n event.initEvent(\"change\", true, false);\r\n\r\n this.checkbox.dispatchEvent(event);\r\n }\r\n\r\n}","import { customElement, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport 'jquery';\r\nimport 'Bloodhound';\r\nimport 'typeahead';\r\n\r\nlet nextId = 1;\r\n\r\n@autoinject\r\nexport class TypeAhead {\r\n @bindable prepareQuery: Function;\r\n @bindable onSelect: Function;\r\n @bindable hinttext: string;\r\n @bindable labeltext: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) initialValue: any;\r\n private inputId = \"ta-\" + nextId++;\r\n private suggestionEngine: Bloodhound;\r\n private typeahead: JQuery;\r\n\r\n constructor(private element: Element) {\r\n this.suggestionEngine = new Bloodhound({\r\n //datumTokenizer: function (datum) {\r\n // return Bloodhound.tokenizers.whitespace(datum.legalName);\r\n //},\r\n datumTokenizer: Bloodhound.tokenizers.whitespace,\r\n queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n //local: [{ \"value\": \"dog\" }, { \"value\": \"cat\" }, { \"value\": \"toad\" }, { \"value\": \"fish\" }]\r\n //local: [\"dog\", \"cat\", \"bird\", \"fish\"]\r\n remote: {\r\n url: 'http://set-by-interceptor',\r\n prepare: (query, settings) => this.prepareQuery(query, settings),\r\n rateLimitWait: 500\r\n }\r\n });\r\n this.suggestionEngine.initialize();\r\n }\r\n\r\n provideSuggestion(data) {\r\n // `data` : `suggest` property of object passed at `Bloodhound`\r\n var html = \"\"\r\n html += \"\";\r\n\r\n html += ``;\r\n if (data.dbaName) {\r\n html += ``;\r\n }\r\n if (data.alternateName) {\r\n html += ``;\r\n }\r\n html += ``;\r\n if (data.scacCode) {\r\n html += ``;\r\n }\r\n if (data.dedicatedScacCodes) {\r\n html += ``;\r\n }\r\n if (data.carrierPointId) {\r\n html += ``;\r\n }\r\n html += \"
${data.legalName}
DBA: ${data.dbaName}
Alternate: ${data.alternateName}
NGTVID: ${data.ngtvid}   DOT #: ${data.dotNumber}
SCAC: ${data.scacCode}
Additional SCAC: ${data.dedicatedScacCodes}
Carrier Point ID: ${data.carrierPointId}
\";\r\n return html;\r\n }\r\n\r\n attached() {\r\n let options: Twitter.Typeahead.Options = { minLength: 2, highlight: true };\r\n let dataset: Twitter.Typeahead.Dataset = {\r\n source: this.suggestionEngine,\r\n async: true,\r\n limit: 10, // needs to be same as whatever is fetched by api\r\n display: \"legalName\",\r\n templates: {\r\n notFound: [\r\n \"
no results
\"\r\n ].join(\"\\n\"),\r\n suggestion: this.provideSuggestion\r\n }\r\n };\r\n\r\n let ele = jQuery(this.element).find(\"input\");\r\n this.typeahead = ele.typeahead(options, [dataset]);\r\n //this.typeahead = ele.typeahead(null, >{\r\n // //display: 'value',\r\n // async: true,\r\n // source: this.suggestionEngine.ttAdapter(),\r\n //});\r\n\r\n if (this.initialValue)\r\n this.setValue(this.initialValue);\r\n\r\n this.typeahead.on('typeahead:select', (ev, suggestion) => {\r\n this.onSelect({ suggestion: suggestion });\r\n this.setValue(\"\");\r\n });\r\n }\r\n\r\n initialValueChanged() {\r\n this.setValue(this.initialValue)\r\n }\r\n\r\n private setValue(valueObj) {\r\n if (!this.typeahead) return;\r\n\r\n let value = valueObj && valueObj.name ? valueObj.name : \"\";\r\n\r\n var typeaheadInput = this.typeahead.data('ttTypeahead').input;\r\n // Typeahead doesn't seem to fully sync objects (https://github.com/valor-software/ng2-bootstrap/issues/749)\r\n // so we just set the display correctly. This relies on the assumption that the underlying value for this field\r\n // is being stored in the class using typeahead, and updated via the onSelect below. In effect, if the user doesn't\r\n // change anything the UI will appear to be right and the backing field will be unchanged, and if they do change\r\n // something then the normal process for onSelect() will apply and return a full object.\r\n typeaheadInput.setQuery(value);\r\n typeaheadInput.resetInputValue();\r\n }\r\n}","export class Boolean2StringValueConverter {\r\n toView(value: boolean) {\r\n if (value === true || value === false) {\r\n return value.toString();\r\n }\r\n return \"\";\r\n }\r\n fromView(value: string): boolean {\r\n if (value) {\r\n if (value.toLowerCase() == 'true') {\r\n return true;\r\n\r\n }\r\n if (value.toLowerCase() == 'false') {\r\n return false;\r\n }\r\n }\r\n return null;\r\n }\r\n}","export class CommaSpaceValueConverter {\r\n fromView(value:string) {\r\n //\r\n }\r\n toView(value:string) {\r\n return value.replace(\",\", \", \");\r\n }\r\n}","import * as numeral from 'numeral';\r\n\r\nexport class CurrencyValueConverter {\r\n toView(value) {\r\n if (value === null || value === undefined || value === \"\") {\r\n return value;\r\n }\r\n return numeral(value).format('($0,0)');\r\n }\r\n fromView(value) {\r\n if (value === null || value === undefined || value === \"\") {\r\n return undefined;\r\n }\r\n return numeral(value).value(); \r\n }\r\n}","import * as moment from 'moment';\r\n\r\nexport class DateTimeValueConverter {\r\n toView(value) {\r\n if (value) {\r\n return moment(value).format('M/D/YYYY h:mm a');\r\n }\r\n }\r\n}","import * as moment from 'moment';\r\n\r\n\r\n//NOT USED\r\n\r\nexport class FilterArrayValueConverter {\r\n toView(array, filterFunc) {\r\n return filterFunc(array);\r\n }\r\n}","export class LowerCaseValueConverter {\r\n fromView(value:string) {\r\n return (value || \"\").toLowerCase();\r\n }\r\n toView(value:string) {\r\n return (value || \"\").toLowerCase();\r\n }\r\n}","import * as numeral from 'numeral';\r\nexport class NumberDisplayValueConverter {\r\n toView(value) {\r\n if (value === null || value === undefined || value === \"\") {\r\n return value;\r\n }\r\n\r\n if (typeof value == \"number\") {\r\n return value.toLocaleString();\r\n } else {\r\n return value;\r\n }\r\n }\r\n fromView(value) {\r\n if (value === null || value === undefined || value === \"\") {\r\n return undefined;\r\n }\r\n return numeral(value).value(); \r\n }\r\n}","export class NumberOnlyValueConverter {\r\n toView(value: string) {\r\n if (typeof value === \"number\") {\r\n return value;\r\n }\r\n\r\n const cleanedValue = (value || \"\").toString().replace(/\\D/g, '') || undefined;\r\n return cleanedValue;\r\n }\r\n\r\n fromView(value) {\r\n if (value === null || value === undefined || value === \"\") {\r\n return undefined;\r\n }\r\n\r\n if (typeof value === \"number\") {\r\n return value;\r\n }\r\n\r\n const cleanedValue = (value || \"\").toString().replace(/\\D/g, '');\r\n return cleanedValue;\r\n }\r\n}\r\n","export class UpperCaseValueConverter {\r\n fromView(value:string) {\r\n return (value || \"\").toUpperCase();\r\n }\r\n toView(value:string) {\r\n return (value || \"\").toUpperCase();\r\n }\r\n}","import { autoinject, observable } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport * as moment from 'moment';\r\nimport { CarrierDocument } from '../../models/carrier-document';\r\nimport { BusyService } from '../../services/busy-service';\r\n\r\n@autoinject\r\nexport class UploadAndLinkDocumentDialog {\r\n req: any;\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService) {\r\n this.api.containerId = \"upload-and-link-document-dialog\";\r\n }\r\n \r\n carrierGuid: string;\r\n carrierId: number;\r\n carrierName: string;\r\n filesElement: any;\r\n selectedFiles = [];\r\n document: CarrierDocument;\r\n form: any;\r\n @observable\r\n documentTypes = [];\r\n documentTypesChanged() {\r\n this.buildDocumentDefaultTitle();\r\n }\r\n \r\n documentVersionId: string;\r\n @observable\r\n documentType: string = \"\";\r\n documentArchive: boolean;\r\n @observable\r\n documentTypeId: number = 0;\r\n documentTypeIdChanged() {\r\n this.buildDocumentDefaultTitle();\r\n }\r\n \r\n buildDocumentDefaultTitle() {\r\n var docType = this.documentTypes.find(item => item.id == this.documentTypeId);\r\n var title = \"\";\r\n if (docType) {\r\n title = docType.description.trim();\r\n } else {\r\n title = \"\";\r\n }\r\n this.documentDefaultTitle = title || this.documentTitle || \"\";\r\n\r\n //if adding new version, then add counter to end of document\r\n if (this.mode == \"new_version\") {\r\n this.documentDefaultTitle = this.documentDefaultTitle + \" #\" + (this.versionCount + 1);\r\n }\r\n }\r\n\r\n mode: string;\r\n documentId: string;\r\n documentTitle: string;\r\n documentTypeIds: string[];\r\n documentDefaultTitle: string;\r\n carrierDocuments: Array = [];\r\n versionCount: number;\r\n public relatedRequirements = [];\r\n public selectedRelatedRequirements: any[] = [];\r\n\r\n async activate(params) {\r\n this.document = params.document;\r\n this.carrierGuid = params.carrierGuid;\r\n this.carrierId = params.carrierId;\r\n this.carrierName = params.carrierName;\r\n this.documentTypeIds = params.documentTypeIds || [];\r\n this.documentArchive = !!params.documentArchive;\r\n this.req = params.req;\r\n this.relatedRequirements = params.relatedRequirements || [];\r\n this.selectedRelatedRequirements = params.selectedRelatedRequirements || [];\r\n this.buildDocumentDefaultTitle();\r\n\r\n if (this.document) {\r\n this.mode = \"new_version\";\r\n this.versionCount = params.versionCount;\r\n this.documentId = this.document.documentId;\r\n this.documentTypeId = this.document.documentTypeId;\r\n this.documentTitle = this.document.documentType.trim() + \" #\" + (params.versionCount + 1);\r\n } else {\r\n\r\n this.mode = \"initial\";\r\n\r\n //this is so that we can limit the available doc types based on the documents that have been added so far.\r\n //only needed when adding a new document\r\n await this.loadCarrierDocuments(this.carrierGuid);\r\n await this.loadDocumentTypes();\r\n\r\n if (this.documentTypes.length == 1) {\r\n this.documentTypeId = this.documentTypes[0].id;\r\n }\r\n }\r\n }\r\n \r\n async loadDocumentTypes() {\r\n this.busyService.on();\r\n return this.api.get(\"Carriers\", \"GetDocumentTypes\")\r\n .then((result) => {\r\n let allDocumentTypes = JSON.parse(result.response);\r\n this.documentTypes = allDocumentTypes.filter(docType => {\r\n // only allow specified types, if specified\r\n if (this.documentTypeIds.length > 0) {\r\n if (this.documentTypeIds.indexOf(docType.documentTypeId) == -1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //only allow upload of type \"Other\" or types that haven't already been uploaded\r\n if (docType.code == \"O\") {\r\n return true;\r\n } else {\r\n return !this.carrierDocuments.find(cdt => cdt.documentTypeId == docType.id);\r\n }\r\n });\r\n })\r\n .finally(() => this.busyService.off());\r\n }\r\n\r\n async loadCarrierDocuments(carrierGuid: string) {\r\n return this.api.get(\"Carriers\", \"GetCarrierDocuments\", { carrierGuid: carrierGuid })\r\n .then((result) => {\r\n this.carrierDocuments = JSON.parse(result.response);\r\n });\r\n }\r\n\r\n public selectAllReqs(){\r\n this.selectedRelatedRequirements = [...this.relatedRequirements];\r\n }\r\n \r\n public clearAllReqs(){\r\n this.selectedRelatedRequirements = [];\r\n }\r\n\r\n doUpload() {\r\n return this.uploadAndLink(this.selectedFiles)\r\n .then((result) => {\r\n let resultObj = JSON.parse(result.response);\r\n this.controller.ok(resultObj);\r\n });\r\n }\r\n\r\n clearFiles() {\r\n this.filesElement.value = \"\";\r\n }\r\n\r\n private uploadAndLink(files) {\r\n\r\n if (!this.documentTypeId) {\r\n alert(\"Please select document type\");\r\n return Promise.resolve();\r\n }\r\n if (this.documentTypeId == 11 && !this.documentTitle) {\r\n alert(\"When Other is selected, the document title must be specified.\");\r\n return Promise.resolve();\r\n }\r\n\r\n // //if the document record already exists, then a subsequent update is to upload a file.\r\n // //if not, then the initial insert can optionally include the file to upload.\r\n // if (this.documentId && files.length == 0) {\r\n // alert(\"Please choose a file to upload.\");\r\n // return Promise.resolve();\r\n // }\r\n\r\n // since introduction of onboarding requirements matrix, documents cannot be created without a file uploaded\r\n if (files.length == 0) {\r\n alert(\"Please choose a file to upload.\");\r\n return Promise.resolve();\r\n }\r\n\r\n let formData = new FormData();\r\n for (let i = 0; i < files.length; i++) {\r\n formData.append(`files[${i}]`, files[i]);\r\n }\r\n const requirementIdsToLink = this.selectedRelatedRequirements.map(o=>o.carrierMasterApprovalRequirementId);\r\n //also add the primary requirement\r\n requirementIdsToLink.push(this.req.carrierMasterApprovalRequirementId);\r\n\r\n //formData.append('DocumentId', this.carrierDocumentTypeXrefId.toString());\r\n formData.append('CarrierGuid', this.carrierGuid);\r\n formData.append('LinkCarrierRequirementIds', requirementIdsToLink.toString());\r\n formData.append('DocumentId', this.documentId);\r\n formData.append('DocumentTypeId', this.documentTypeId.toString());\r\n formData.append('DocumentArchive', this.documentArchive.toString());\r\n formData.append('Title', this.documentTitle || this.documentDefaultTitle);\r\n\r\n this.busyService.on();\r\n return this.api.post(\"document\", \"uploadAndLink\", formData)\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n submit() {\r\n this.form.submit();\r\n }\r\n\r\n\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { DisplayValuePair } from \"./display-value-pair\";\r\n\r\nexport class CmpTaskCommentDto {\r\n cmpTaskCommentId: string = undefined;\r\n taskId: string = undefined;\r\n isCustomerVisible: boolean = undefined;\r\n createdBy: DisplayValuePair;\r\n updatedBy: DisplayValuePair;\r\n comment: string = undefined;\r\n insertedOn: Date = undefined;\r\n updatedOn: Date = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class RequestStateIds {\r\n static readonly new: string = \"d0cd6886-f766-4eb0-ae03-0c85ce7a959d\";\r\n static readonly inProgress: string = \"13a2456e-7478-44e8-9d2f-37ef73762505\";\r\n static readonly closedIncomplete: string = \"84e6246b-40a4-4390-ba11-b65d452fc693\";\r\n static readonly closedComplete: string = \"7416f9aa-3a26-41d7-b4b0-4499c8806058\";\r\n static inProgressStates: string[] = [\"13a2456e-7478-44e8-9d2f-37ef73762505\"];\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { RequestDto } from \"./request-dto\";\r\nimport { CmpTaskDto } from \"./cmp-task-dto\";\r\nimport { ActivityStreamItemBase } from \"./activity-stream-item-base\";\r\nimport { DisplayValuePair } from \"./display-value-pair\";\r\n\r\nexport class RequestDetailsScreenDataDto {\r\n request: RequestDto;\r\n tasks: CmpTaskDto[];\r\n activityStream: ActivityStreamItemBase[] = [];\r\n requestedForUsers: DisplayValuePair[];\r\n}\r\n","import { CarriersController } from \"../../controllers/carriers-controller\";\r\nimport { Carrier } from \"../../models/carrier\"\r\nimport { CarrierFilter } from \"../../models/carrier-filter\"\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { SimpleDialog } from \"./../dialogs/simple-dialog\";\r\nimport { SecurityService } from \"../../services/security-service\"; 6\r\nimport { TaskActionService } from \"./../requests/TaskActionService\";\r\nimport { UiActionButton } from \"./../requests/UiActionButton\";\r\nimport { CmpTaskDto } from \"../../data/typegen/dtos/cmp-task-dto\";\r\nimport { CmpTaskCommentDto } from \"../../data/typegen/dtos/cmp-task-comment-dto\";\r\nimport { DisplayValuePair } from \"../../data/typegen/dtos/display-value-pair\";\r\nimport { TaskState } from \"../../data/enums/taskState\";\r\nimport { RequestDto } from \"../../data/typegen/dtos/request-dto\";\r\nimport { DoUiActionDto } from \"../../data/typegen/dtos/do-ui-action-dto\";\r\nimport { CmpTaskBaseDto } from \"../../data/typegen/dtos/cmp-task-base-dto\";\r\nimport { RequestTypeIds } from \"../../data/typegen/enums/request-type-ids\";\r\nimport { RequestStateIds } from \"../../data/typegen/enums/request-state-ids\";\r\nimport { RequestDetailsScreenDataDto } from \"../../data/typegen/dtos/request-details-screen-data-dto\";\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { Router } from 'aurelia-router';\r\nimport { ActivityStreamItemBase } from \"../../data/typegen/dtos/activity-stream-item-base\";\r\nimport { IFulfillmentWidget } from \"./new-user-request/new-user-request-fulfillment\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class RequestDetails {\r\n\r\n public requestedForUsers: Array> = [];\r\n public task: CmpTaskDto;\r\n public request: RequestDto;\r\n public tasks: Array = [];\r\n public activityStream: Array = [];\r\n public taskState = TaskState;\r\n public requestTypeIds = RequestTypeIds;\r\n public requestStateIds = RequestStateIds;\r\n public taskDetailsComponent: IFulfillmentWidget;\r\n\r\n private cancelUiAction: UiActionButton;\r\n private originalRequest: RequestDto;\r\n private saveUiAction: UiActionButton;\r\n public carrier: Carrier;\r\n\r\n constructor(\r\n private taskActionService: TaskActionService,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private appMsg: AppMessageService,\r\n private msg: PageMessageService,\r\n private router: Router,\r\n private dialogService: DialogService,\r\n private api: WebApiService) {\r\n }\r\n\r\n public canModifyState: boolean;\r\n\r\n async activate(params) {\r\n var contractsAndInsuranceLeadsGroupId = \"a86a7675-52ab-401e-b8a2-aaca50c7ffdc\";\r\n const isContractsAndInsuranceLeadsMember = this.securityService.hasGroup(contractsAndInsuranceLeadsGroupId);\r\n this.canModifyState = this.securityService.hasRole(\"admin\") || isContractsAndInsuranceLeadsMember;\r\n this.taskActionService.actionButtons.length = 0;\r\n this.carrier = null;\r\n await this.loadDataAsync(params.id);\r\n }\r\n\r\n\r\n public attached() {\r\n\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 100);\r\n\r\n }\r\n\r\n fixVerticalTabindex(selector) {\r\n var tabindex = 1;\r\n jQuery(selector).each(function (i, tbl) {\r\n jQuery(tbl).find('.row>div[class*=\"col\"]:last-child').each(function (j, col) {\r\n jQuery(col).find('input,select,textarea').each(function (j, obj) {\r\n jQuery(obj).attr('tabindex',tabindex++);\r\n });\r\n });\r\n });\r\n }\r\n\r\n async refresh() {\r\n await this.loadDataAsync(this.request.requestId);\r\n }\r\n\r\n public async doAction(uiAction: UiActionButton, validate = true) {\r\n this.msg.clear();\r\n this.appMsg.clearPageScopedMessages();\r\n\r\n if (uiAction.triggersSubmit) {\r\n await this.runValidationRules();\r\n\r\n var action = new DoUiActionDto();\r\n action.taskDto = this.request;\r\n action.uiActionVerb = uiAction.key;\r\n\r\n // cancel request\r\n if (action.uiActionVerb == this.cancelUiAction.key) {\r\n action.actionReason = prompt(\"Enter a reason for the cancellation:\");\r\n if (!action.actionReason) {\r\n return\r\n }\r\n }\r\n\r\n if (uiAction.triggersSubmit) {\r\n var isValid = !validate || !uiAction.performValidation || await this.runValidationRules();\r\n if (isValid) {\r\n await this.submitUiAction(action, uiAction.redirectAfterSubmit);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async runValidationRules() {\r\n // run standard rules before save\r\n // these rules should not require validation\r\n return true;\r\n }\r\n\r\n submitUiAction(action: DoUiActionDto, redirectAfterSubmit: boolean = true) {\r\n //this.controller.validate();\r\n this.busyService.on();\r\n return this.api.post(\"Tasks\", \"DoRequestUiAction\", action)\r\n .then(async (result) => {\r\n\r\n if (redirectAfterSubmit) {\r\n var redirectRoute = AureliaCookie.get('nav_stack');\r\n if (redirectRoute) {\r\n this.router.navigateToRoute(redirectRoute);\r\n AureliaCookie.delete('nav_stack');\r\n return;\r\n }\r\n }\r\n\r\n await this.loadDataAsync(this.request.requestId);\r\n this.updateUiActions();\r\n this.taskDetailsComponent.initUi();\r\n\r\n //var updatedTask = JSON.parse(result.response);\r\n //this.request = updatedTask;\r\n //this.originalTask = JSON.parse(JSON.stringify(this.request));\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n public async post() {\r\n await this.doAction(this.saveUiAction.children[0], false);\r\n await this.loadDataAsync(this.request.requestId);\r\n }\r\n\r\n async loadDataAsync(requestId) {\r\n this.busyService.on();\r\n return this.api.get(\"Tasks\", \"GetRequestDetailsScreenDataDto\", { requestId: requestId })\r\n .then(async (result) => {\r\n const screenData = JSON.parse(result.response) as RequestDetailsScreenDataDto;\r\n this.request = screenData.request;\r\n this.tasks = screenData.tasks;\r\n this.originalRequest = JSON.parse(JSON.stringify(this.request)) as RequestDto;\r\n this.activityStream = screenData.activityStream;\r\n this.requestedForUsers = screenData.requestedForUsers;\r\n\r\n // carrier is needed for the requirements grid\r\n if( this.request.variables.CarrierId){\r\n var carrierResult = await this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: this.request.variables.CarrierId });\r\n this.carrier = result && JSON.parse(carrierResult.response);\r\n }\r\n\r\n this.saveUiAction = this.taskActionService.addUiActionFromTemplate(TaskActionService.saveActionTemplate);\r\n this.cancelUiAction = this.taskActionService.addUiAction({\r\n key: \"sysverb_cancel\",\r\n name: \"Cancel Request\",\r\n visible: this.request.active,\r\n redirectAfterSubmit: true\r\n });\r\n\r\n setTimeout(() => {\r\n this.updateUiActions();\r\n }, 100);\r\n\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n private updateUiActions() {\r\n this.cancelUiAction.visible = this.request.active;\r\n }\r\n}\r\n","import { CarriersController } from \"../../controllers/carriers-controller\";\r\nimport { Carrier } from \"../../models/carrier\"\r\nimport { CarrierFilter } from \"../../models/carrier-filter\"\r\nimport { BusyService } from \"../../services/busy-service\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateUserDialog } from \"../dialogs/update-user-dialog\";\r\nimport { PageMessageService } from \"../../services/page-message-service\";\r\nimport { SimpleDialog } from \"../dialogs/simple-dialog\";\r\nimport { SecurityService } from \"../../services/security-service\";\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class Requests {\r\n\r\n private readonly SYSTEM_USER_ID = \"49605f7b-253e-46bf-978a-ee0a1c06faa1\";\r\n\r\n public filter: \"all\" = \"all\";\r\n public includeInactive: false;\r\n\r\n public async setFilter(filter) {\r\n this.filter = filter;\r\n await this.loadDivisions();\r\n await this.loadRequests();\r\n this.filteredRequests = this.getFilteredRequests(this.filter);\r\n }\r\n\r\n assignedToMeCount = 0;\r\n availableForMeCount = 0;\r\n requests = [];\r\n filteredRequests: Array = [];\r\n private allDivisions: Array = [];\r\n\r\n private getFilteredRequests(filter: \"all\") {\r\n var filtered = this.requests;\r\n return filtered;\r\n }\r\n\r\n constructor(\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService) {\r\n }\r\n\r\n async activate(params) {\r\n AureliaCookie.set('nav_stack', 'requests', {});\r\n await this.initializePage();\r\n }\r\n\r\n async refresh() {\r\n this.initializePage();\r\n }\r\n\r\n async initializePage() {\r\n await this.setFilter(this.filter);\r\n }\r\n\r\n loadDivisions() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n this.allDivisions = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n async loadRequests() {\r\n this.busyService.on();\r\n try {\r\n var result;\r\n result = await this.api.get(\"Tasks\", \"GetAllRequests\", { includeInactive: this.includeInactive });\r\n const requests = JSON.parse(result.response);\r\n requests.forEach(o => {\r\n /// per Rob R. - Display the name of the requesting division - This should not really be part of the RequestDto\r\n if (o.openedBy.value != this.SYSTEM_USER_ID) {\r\n if (o.variables_Divisions) {\r\n const divisionCodes: any[] = [];\r\n const divisionIds = JSON.parse(o.variables_Divisions);\r\n divisionIds.forEach(divisionId => {\r\n const divisionObj = this.allDivisions.find(ad => ad.id == divisionId);\r\n if (divisionObj) {\r\n divisionCodes.push(divisionObj.code);\r\n }\r\n });\r\n o.divisionCodes = divisionCodes.toString();\r\n }\r\n }\r\n });\r\n this.requests = requests;\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n}","import * as condition from './list-filter/condition';\r\nimport { ShortDateValueConverter } from '../../resources/value-converters/short-date';\r\nimport { SecurityService } from '../../services/security-service';\r\nimport states from \"../../models/state-list\";\r\n\r\nimport { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport 'jquery';\r\nimport { PhoneValueConverter } from '../../resources/value-converters/phone';\r\nimport { bind } from 'bluebird';\r\n\r\n@autoinject()\r\nexport class CarrierGrid {\r\n constructor(\r\n private shortDateConverter: ShortDateValueConverter,\r\n private phoneValueConverter:PhoneValueConverter,\r\n private securityService: SecurityService, private element: Element) {\r\n CarrierGrid.instanceCount++;\r\n this.eventName = \"resize.carrier-grid-\" + CarrierGrid.instanceCount;\r\n\r\n\r\n\r\n //set up grid options\r\n this.gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n //rowSelection: 'single' //this.allowRowSelection ? \"single\": \"\"\r\n };\r\n\r\n\r\n //unless users have cmp.view.advanced role, then only show limited fields.\r\n if (!this.securityService.hasRole(\"cmp.view.advanced\")) {\r\n //only show minimum # of fields for mill users (Fields provided by Sherrie Per Susie 6/19/2018)\r\n const defs = [];\r\n\r\n [\r\n \"Id\", //ID required, even though it's hidden\r\n \"NGTVID\",\r\n \"LegalName\",\r\n \"StatusDescription\",\r\n \"TypeOfAuthority\",\r\n \"EarliestInsuranceExpiration\",\r\n \"DispatcherContact\",\r\n \"MainPhone\",\r\n \"Tons12Months\",\r\n \"Tons90Days\",\r\n \"InboundLanes\",\r\n \"OutboundLanes\",\r\n \"Equipment\",\r\n \"HeavyHauler\",\r\n \"DiversityCertified\",\r\n \"HazmatCertified\",\r\n \"SafetyRatingDescription\",\r\n \"ContractType\"\r\n\r\n ].forEach(o => {\r\n const def = this.columnDefs.find(def => def.field == o);\r\n def && defs.push(def);\r\n });\r\n\r\n this.gridOptions.columnDefs = defs;\r\n // this.columnDefs.filter(o => {\r\n // //console.log(o.field);\r\n // return [\r\n // \"Id\", //ID required, even though it's hidden\r\n // \"NGTVID\",\r\n // \"LegalName\",\r\n // \"StatusDescription\",\r\n // \"TypeOfAuthority\",\r\n // \"EarliestInsuranceExpiration\",\r\n // \"ContactName\",\r\n // \"MainPhone\",\r\n // \"InboundLanes\",\r\n // \"OutboundLanes\",\r\n // \"Equipment\",\r\n // \"HeavyHauler\",\r\n // \"DiversityCertified\",\r\n // \"HazmatCertified\"\r\n // ].indexOf(o.field) > -1;\r\n // });\r\n }\r\n\r\n\r\n }\r\n\r\n static instanceCount: number = 0;\r\n eventName: string;\r\n ctrlCEvent: any; //should hold reference to event handler\r\n\r\n attached() {\r\n\r\n this.gridOptions.rowSelection = this.allowRowSelection ? \"single\": \"\"\r\n\r\n let $: any = window[\"$\"];\r\n $(window).on(this.eventName, () => this.resizeGridHeight());\r\n\r\n }\r\n\r\n detached() {\r\n //if (!this.isSingleton) {\r\n let $: any = window[\"$\"];\r\n $(window).off(this.eventName);\r\n this.gridApi && this.gridApi.removeEventListener(\"modelUpdated\");\r\n this.gridApi && this.gridApi.gridPanel.eRoot.removeEventListener(\"keydown\", this.ctrlCEvent);\r\n this.gridApi && this.gridApi.destroy();\r\n //}\r\n }\r\n\r\n GRID_MIN_HEIGHT: number = 100;\r\n\r\n @bindable isSingleton: boolean = false;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) selectedRowId;\r\n @bindable rowSelected: Function;\r\n @bindable rowDoubleClick: Function;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) allowRowSelection = false;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) gridData = [];\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) gridApi;\r\n\r\n columnDefs: Array = [\r\n { field: \"Id\", hide: true, searchType: condition.ConditionFieldType.number },\r\n {\r\n headerName: \"NGTVID\", field: \"NGTVID\", filter: 'text', searchType: condition.ConditionFieldType.string,\r\n cellRenderer: (params) => this.carrierDetailsLinkCellRenderer(params, false)\r\n },\r\n //{\r\n // headerName: \"Legal Name\", field: \"LegalName\", filter: 'text', searchType: condition.ConditionFieldType.string,\r\n // cellRenderer: (params) => this.carrierDetailsLinkCellRenderer(params)\r\n //},\r\n {\r\n headerName: \"Carrier Name\", field: \"LegalName\", filter: 'text', searchType: condition.ConditionFieldType.string,\r\n cellRenderer: (params) => this.carrierDetailsLinkCellRenderer(params, true)\r\n },\r\n {\r\n headerName: \"Carrier Type\", field: \"EntityType\", filter: 'text', searchType: condition.ConditionFieldType.string\r\n },\r\n {\r\n headerName: \"Status\", field: \"StatusDescription\", filter: 'text',\r\n cellRenderer: (params) => {\r\n if (params.value == \"Master Approved\") {\r\n return `Master Approved`;\r\n }\r\n return params.value;\r\n },\r\n sort: 'asc',\r\n searchType: condition.ConditionFieldType.list,\r\n searchListQuery: {\r\n \"table\": \"CarrierStatus\",\r\n \"selectRaw\": \"id=description, description\",\r\n \"orderByRaw\": \"displayOrder\"\r\n }\r\n },\r\n { headerName: \"Insurance Status\", field: \"InsuranceStatus\", searchType: condition.ConditionFieldType.string },\r\n {\r\n headerName: \"Ins. Expiration\", field: \"EarliestInsuranceExpiration\", filter: 'date', searchType: condition.ConditionFieldType.date,\r\n cellRenderer: (params) => {\r\n const dateString = this.shortDateConverter.toView(params.value);\r\n const date = new Date(dateString);\r\n if (date < new Date()) {\r\n return '' + dateString + ` {\r\n return this.shortDateConverter.toView(params.value);\r\n },\r\n filterParams: CarrierGrid.dateFilterParams\r\n },\r\n { headerName: \"Contract Type\", field: \"ContractType\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Authority\", field: \"TypeOfAuthority\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"DOT #\", field: \"DotNumber\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"SCAC\", field: \"ScacCode\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"MC #\", field: \"McNumber\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n {\r\n headerName: \"Address\", field: \"LegalAddressCombined\", filter: 'text',\r\n searchType: condition.ConditionFieldType.string\r\n },\r\n {\r\n headerName: \"State\", field: \"LegalAddressState\", filter: 'text',\r\n searchType: condition.ConditionFieldType.list,\r\n searchList: states.map(m => { return { id: m.abbreviation, description: m.name }; })\r\n },\r\n { headerName: \"Zip Code\", field: \"LegalAddressZip\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Country\", field: \"LegalAddressCountry\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Main Phone\", field: \"MainPhone\", filter: 'text', searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.phoneCellRenderer(params) },\r\n\r\n {\r\n headerName: \"Safety Rating\", field: \"SafetyRatingDescription\", filter: 'text',\r\n searchType: condition.ConditionFieldType.list,\r\n searchList: [\r\n \"Satisfactory\",\r\n \"Unsatisfactory\",\r\n \"Conditional\",\r\n \"None\"\r\n ]\r\n },\r\n {\r\n headerName: \"Last Activity\", field: \"LastActivity\", filter: 'date', searchType: condition.ConditionFieldType.date,\r\n cellRenderer: (params) => {\r\n var inactiveClass = \"\";\r\n if (params.value != null) {\r\n inactiveClass = params.data.isActive ? \"\" : \"text-danger\";\r\n }\r\n return `${this.shortDateConverter.toView(params.value)}`;\r\n },\r\n filterParams: CarrierGrid.dateFilterParams\r\n },\r\n { headerName: \"# of Trucks\", field: \"NumberOfTrucks\", filter: 'number', searchType: condition.ConditionFieldType.number },\r\n { headerName: \"Origin\", field: \"InboundLanes\", filter: 'text', width: 150, maxWidth: 250, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Destination\", field: \"OutboundLanes\", filter: 'text', width: 150, maxWidth: 250, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Mills\", field: \"Mills\", filter: 'text', width: 150, maxWidth: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Equipment\", field: \"Equipment\", filter: 'text', width: 150, maxWidth: 250, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Insurance Providers\", field: \"InsuranceProviders\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Active\", field: \"Active\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Hauls Scrap?\", field: \"HaulScrap\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Heavy Hauler?\", field: \"HeavyHauler\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Max Weight\", field: \"HeavyHaulerWeight\", searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Tons (12 months)\", field: \"Tons12Months\", searchType: condition.ConditionFieldType.number },\r\n { headerName: \"Tons (90 days)\", field: \"Tons90Days\", searchType: condition.ConditionFieldType.number },\r\n { headerName: \"Priority\", field: \"Priority\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Report Name\", field: \"ReportName\", searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Parent\", field: \"Parent\", searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Diversity Certified\", field: \"DiversityCertified\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Hazmat Certified\", field: \"HazmatCertified\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Sustainability\", field: \"Sustainability\", searchType: condition.ConditionFieldType.bool, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Tax ID\", field: \"TaxId\", searchType: condition.ConditionFieldType.string },\r\n { headerName: \"EFT\", field: \"EFT\", searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Dispatcher Contact\", field: \"DispatcherContact\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n\r\n ];\r\n\r\n rowData = [];\r\n isGridReady = false;\r\n gridContainer: any;\r\n\r\n gridOptions: any;\r\n\r\n phoneCellRenderer(params: any) {\r\n return this.phoneValueConverter.toView(params.value);\r\n }\r\n\r\n boolCellRenderer(params: any) {\r\n if (params.value === true) {\r\n return \"Yes\";\r\n } else if (params.value === false) {\r\n return \"No\";\r\n }\r\n }\r\n\r\n onRowDoubleClick(args) {\r\n this.rowDoubleClick && this.rowDoubleClick(args);\r\n }\r\n\r\n onRowSelected(args) {\r\n //if (args.node.selected) {\r\n // this.selectedRowId = args.node.id;\r\n //}\r\n this.rowSelected && this.rowSelected(args);\r\n }\r\n\r\n\r\n //return HTML for Anchor element pointing to role-specific carrier details page\r\n carrierDetailsLinkCellRenderer(params: any, isCarrierName: boolean) {\r\n //include the route-href parameter so that the addBaseUrlIfMiddleClick (in app.ts) is processed (even though the href attribute is set directly)\r\n let displayValue = params.value;\r\n if (isCarrierName) {\r\n const legalName = params.data.LegalName;\r\n const dbaName = params.data.DbaName;\r\n displayValue = dbaName || legalName;\r\n }\r\n if (displayValue) {\r\n if (this.allowRowSelection) {\r\n return displayValue; // don't show links when rowSelection is enabled.\r\n } else {\r\n //users without cmp.view.advanced role view this record in the summary view\r\n if (this.securityService.hasRole(\"cmp.view.advanced\")) {\r\n return `${displayValue}`;\r\n } else {\r\n return `${displayValue}`;\r\n }\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Copies a string to the clipboard. Must be called from within an \r\n // event handler such as click. May return false if it failed, but\r\n // this is not always possible. Browser support for Chrome 43+, \r\n // Firefox 42+, Safari 10+, Edge and IE 10+.\r\n // IE: The clipboard feature may be disabled by an administrator. By\r\n // default a prompt is shown the first time the clipboard is \r\n // used (per session).\r\n copyToClipboard(text) {\r\n if (window[\"clipboardData\"] && window[\"clipboardData\"].setData) {\r\n // IE specific code path to prevent textarea being shown while dialog is visible.\r\n return window[\"clipboardData\"].setData(\"Text\", text);\r\n\r\n } else if (document.queryCommandSupported && document.queryCommandSupported(\"copy\")) {\r\n var textarea = document.createElement(\"textarea\");\r\n textarea.textContent = text;\r\n textarea.style.position = \"fixed\"; // Prevent scrolling to bottom of page in MS Edge.\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n try {\r\n return document.execCommand(\"copy\"); // Security exception may be thrown by some browsers.\r\n } catch (ex) {\r\n console.warn(\"Copy to clipboard failed.\", ex);\r\n return false;\r\n } finally {\r\n document.body.removeChild(textarea);\r\n }\r\n }\r\n }\r\n\r\n onReady() {\r\n this.isGridReady = true;\r\n this.gridApi = this.gridOptions.api;\r\n this.autosizeColumns();\r\n this.resizeGridHeight();\r\n\r\n this.gridApi.gridPanel.eRoot.addEventListener(\"keydown\", this.createCtrlCEventHandler(), false);\r\n\r\n this.gridApi.addEventListener(\"modelUpdated\", (e) => {\r\n this.modelUpdated();\r\n });\r\n this.modelUpdated();\r\n\r\n if (this.allowRowSelection) {\r\n if (!this.selectedRowId) {\r\n if (this.gridData && this.gridData.length > 0) {\r\n const api = this.gridOptions.api;\r\n const rowId = api.rowModel.rowsToDisplay[0].id;\r\n this.gridOptions.api && this.gridOptions.api.getRowNode(rowId).setSelected(true);\r\n }\r\n } else {\r\n this.gridOptions.api.getRowNode(this.selectedRowId).setSelected(true);\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n createCtrlCEventHandler() {\r\n var self = this;\r\n return this.ctrlCEvent = (e) => {\r\n e = e || window.event;\r\n var key = e.which || e.keyCode; // keyCode detection\r\n var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection\r\n\r\n if (key == 67 && ctrl) {\r\n self.copyToClipboard(e.target.textContent);\r\n $[\"notify\"](\"Content Copied to clipboard\", { className: \"success\", position: \"top center\" });\r\n }\r\n }\r\n }\r\n\r\n modelUpdated() {\r\n this.autosizeColumns();\r\n // this.storeModel(this.gridApi.getModel());\r\n }\r\n\r\n // storeModel(model) {\r\n // //store current model in local storage so that other pages can use prev/next navigation\r\n // var rows = model.rowsToDisplay.map((m) => m.data);\r\n // var json = JSON.stringify(rows);\r\n // localStorage.setItem(\"gridRows\", json);\r\n // }\r\n\r\n autosizeColumns() {\r\n if (this.gridOptions && this.gridOptions.api) {\r\n this.gridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n }\r\n\r\n static lastKnownWindowHeight: number;\r\n\r\n resizeGridHeight() {\r\n let $: any = window[\"$\"];\r\n let $gridContainer = $(this.gridContainer);\r\n if (this.gridOptions.api) {\r\n\r\n //when resizing the window, shrink entire container to smallest possible size \r\n // so that subsequent calculations are correct .\r\n // This is necessary when window is sized to a smaller size.\r\n\r\n //if (windowResized) {\r\n // $gridContainer.height(50);\r\n //}\r\n\r\n var footerHeight = $(\"footer\").outerHeight(true);\r\n var targetHeight = $(window).height() - $gridContainer.offset().top - footerHeight - 20;\r\n if (targetHeight < this.GRID_MIN_HEIGHT) {\r\n targetHeight = this.GRID_MIN_HEIGHT;\r\n }\r\n\r\n if ($gridContainer.height() !== targetHeight) {\r\n\r\n // Use this information for debugging resize issues\r\n //$log.trace(\"RESIZING GRID\");\r\n //$log.trace(\"==============================\");\r\n //$log.trace(`FOOTER HEIGHT: ${footerHeight}`);\r\n //$log.trace(`WINDOW HEIGHT: ${$(window).height()}`);\r\n //$log.trace(`DOCUMENT HEIGHT: ${$(document).height()}`);\r\n //$log.trace(`GRID CONTAINER offset().top: ${$gridContainer.offset().top}`);\r\n //$log.trace(`NEW GRID HEIGHT: ${targetHeight}`);\r\n\r\n\r\n //resize the kendogrid according to its container\r\n $gridContainer.stop().animate(\r\n { height: targetHeight },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n }\r\n }\r\n }\r\n\r\n static dateFilterParams = {\r\n\r\n // provide comparator function (used when sorting)\r\n comparator: function (filterLocalDateAtMidnight, cellValue) {\r\n\r\n // In the example application, dates are stored as dd/mm/yyyy\r\n // We create a Date object for comparison against the filter date\r\n var cellDate = new Date(cellValue);\r\n\r\n // Now that both parameters are Date objects, we can compare\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}","import * as condition from './list-filter/condition';\r\nimport { ShortDateValueConverter } from '../../resources/value-converters/short-date';\r\nimport { SecurityService } from '../../services/security-service';\r\nimport states from \"../../models/state-list\";\r\n\r\nimport { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport 'jquery';\r\nimport { PhoneValueConverter } from '../../resources/value-converters/phone';\r\nimport { CurrencyValueConverter } from '../../resources/value-converters/currency';\r\n\r\n@autoinject()\r\nexport class CarrierSearchDivisionUsersGrid {\r\n constructor(\r\n private shortDateConverter: ShortDateValueConverter,\r\n private currencyConverter: CurrencyValueConverter,\r\n private phoneValueConverter: PhoneValueConverter,\r\n private securityService: SecurityService) {\r\n CarrierSearchDivisionUsersGrid.instanceCount++;\r\n this.eventName = \"resize.carrier-grid-\" + CarrierSearchDivisionUsersGrid.instanceCount;\r\n\r\n\r\n //set up grid options\r\n this.gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n\r\n\r\n //unless users have cmp.view.advanced role, then only show limited fields.\r\n if (!this.securityService.hasRole(\"cmp.view.advanced\")) {\r\n //only show minimum # of fields for mill users (Fields provided by Sherrie Per Susie 6/19/2018)\r\n const defs = [];\r\n\r\n [\r\n \"id\", //ID required, even though it's hidden\r\n \"ngtvid\",\r\n \"carrierName\",\r\n \"statusDescription\",\r\n \"typeOfAuthority\",\r\n \"earliestInsuranceExpiration\",\r\n \"city\",\r\n \"state\",\r\n \"contactName\",\r\n \"contactPhone\",\r\n \"tons12Months\",\r\n \"loads12Months\",\r\n \"tons90Days\",\r\n \"loads90Days\",\r\n \"preferredOrigins\",\r\n \"preferredDestinations\",\r\n \"actualOrigins\",\r\n \"actualDestinations\",\r\n \"equipment\",\r\n \"heavyHauler\",\r\n \"diversityCertified\",\r\n \"hazmatCertified\",\r\n \"safetyRatingDescription\",\r\n\r\n ].forEach(o => {\r\n const def = this.columnDefs.find(def => def.field == o);\r\n def && defs.push(def);\r\n });\r\n\r\n this.gridOptions.columnDefs = defs;\r\n // this.columnDefs.filter(o => {\r\n // //console.log(o.field);\r\n // return [\r\n // \"Id\", //ID required, even though it's hidden\r\n // \"NGTVID\",\r\n // \"LegalName\",\r\n // \"StatusDescription\",\r\n // \"TypeOfAuthority\",\r\n // \"EarliestInsuranceExpiration\",\r\n // \"ContactName\",\r\n // \"MainPhone\",\r\n // \"InboundLanes\",\r\n // \"OutboundLanes\",\r\n // \"Equipment\",\r\n // \"HeavyHauler\",\r\n // \"DiversityCertified\",\r\n // \"HazmatCertified\"\r\n // ].indexOf(o.field) > -1;\r\n // });\r\n }\r\n\r\n\r\n }\r\n\r\n static instanceCount: number = 0;\r\n eventName: string;\r\n ctrlCEvent: any; //should hold reference to event handler\r\n\r\n attached() {\r\n let $: any = window[\"$\"];\r\n $(window).on(this.eventName, () => this.resizeGridHeight());\r\n }\r\n\r\n detached() {\r\n let $: any = window[\"$\"];\r\n $(window).off(this.eventName);\r\n this.gridApi && this.gridApi.removeEventListener(\"modelUpdated\");\r\n this.gridApi && this.gridApi.gridPanel.eRoot.removeEventListener(\"keydown\", this.ctrlCEvent);\r\n this.gridApi && this.gridApi.destroy();\r\n }\r\n\r\n GRID_MIN_HEIGHT: number = 100;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) gridData = [];\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) gridApi;\r\n\r\n columnDefs: Array = [\r\n { field: \"id\", hide: true, searchType: condition.ConditionFieldType.number },\r\n {\r\n headerName: \"NGTVID\", field: \"ngtvid\", filter: 'text', searchType: condition.ConditionFieldType.string,\r\n cellRenderer: (params) => this.carrierDetailsLinkCellRenderer(params, false)\r\n },\r\n {\r\n headerName: \"Carrier Name\", field: \"carrierName\", filter: 'text', searchType: condition.ConditionFieldType.string,\r\n cellRenderer: (params) => this.carrierDetailsLinkCellRenderer(params, true)\r\n },\r\n {\r\n headerName: \"Status\", field: \"statusDescription\", filter: 'text',\r\n cellRenderer: (params) => {\r\n if (params.value == \"Master Approved\") {\r\n return `Master Approved`;\r\n }\r\n return params.value;\r\n },\r\n sort: 'asc',\r\n searchType: condition.ConditionFieldType.list,\r\n searchListQuery: {\r\n \"table\": \"CarrierStatus\",\r\n \"selectRaw\": \"id=description, description\",\r\n \"orderByRaw\": \"displayOrder\"\r\n }\r\n },\r\n { headerName: \"Authority\", field: \"typeOfAuthority\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Contact\", field: \"contactName\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Email\", field: \"contactEmail\", filter: 'text', searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.emailRenderer(params) },\r\n { headerName: \"Phone\", field: \"contactPhone\", filter: 'text', searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.phoneCellRenderer(params) },\r\n { headerName: \"City\", field: \"city\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"State\", field: \"state\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Preferred Origins\", field: \"preferredOrigins\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Preferred Destinations\", field: \"preferredDestinations\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Actual Origins\", field: \"actualOrigins\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Actual Destinations\", field: \"actualDestinations\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Equipment\", field: \"equipment\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"OSP Carrier\", field: \"ospProductCarrierProductGroupNames\", filter: 'text', width: 150, searchType: condition.ConditionFieldType.string },\r\n { headerName: \"Heavy Hauler?\", field: \"heavyHauler\", searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Hauls Scrap?\", field: \"haulScrap\", searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Hazmat Certified\", field: \"hazmatCertified\", searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Diversity Certified\", field: \"diversityCertified\", searchType: condition.ConditionFieldType.string, cellRenderer: (params) => this.boolCellRenderer(params) },\r\n { headerName: \"Loads (12 months)\", field: \"loads12Months\", searchType: condition.ConditionFieldType.number, cellRenderer: (params) => this.numberRenderer(params) },\r\n { headerName: \"Loads (90 days)\", field: \"loads90Days\", searchType: condition.ConditionFieldType.number, cellRenderer: (params) => this.numberRenderer(params) },\r\n {\r\n headerName: \"Ins. Expiration\", field: \"earliestInsuranceExpiration\", filter: 'date', searchType: condition.ConditionFieldType.date,\r\n cellRenderer: (params) => {\r\n const dateString = this.shortDateConverter.toView(params.value);\r\n const date = new Date(dateString);\r\n if (date < new Date()) {\r\n return `${dateString}`;\r\n }\r\n return dateString;\r\n },\r\n filterParams: CarrierSearchDivisionUsersGrid.dateFilterParams\r\n },\r\n {\r\n headerName: \"Cargo Insurance\", field: \"insuranceAmountCargo\", filter: 'number', searchType: condition.ConditionFieldType.number,\r\n cellRenderer: (params) => {\r\n const amountString = this.currencyConverter.toView(params.value);\r\n return amountString;\r\n },\r\n filterParams: CarrierSearchDivisionUsersGrid.dateFilterParams\r\n }\r\n ];\r\n \r\n\r\n rowData = [];\r\n isGridReady = false;\r\n gridContainer: any;\r\n\r\n gridOptions: any;\r\n\r\n emailRenderer(params: any) {\r\n if (params.value) {\r\n return `${params.value}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n numberRenderer(params: any) {\r\n if (typeof params.value == \"number\") {\r\n return params.value.toLocaleString();\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n\r\n phoneCellRenderer(params: any) {\r\n const formattedPhone = this.phoneValueConverter.toView(params.value);\r\n if (formattedPhone) {\r\n return `${formattedPhone}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n boolCellRenderer(params: any) {\r\n if (params.value === true) {\r\n return \"Yes\";\r\n } else if (params.value === false) {\r\n return \"No\";\r\n }\r\n }\r\n\r\n\r\n //return HTML for Anchor element pointing to role-specific carrier details page\r\n carrierDetailsLinkCellRenderer(params: any, isCarrierName: boolean) {\r\n //include the route-href parameter so that the addBaseUrlIfMiddleClick (in app.ts) is processed (even though the href attribute is set directly)\r\n let displayValue = params.value;\r\n if (displayValue) {\r\n //users without cmp.view.advanced role view this record in the summary view\r\n if (this.securityService.hasRole(\"cmp.view.advanced\")) {\r\n return `${displayValue}`;\r\n } else {\r\n return `${displayValue}`;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Copies a string to the clipboard. Must be called from within an \r\n // event handler such as click. May return false if it failed, but\r\n // this is not always possible. Browser support for Chrome 43+, \r\n // Firefox 42+, Safari 10+, Edge and IE 10+.\r\n // IE: The clipboard feature may be disabled by an administrator. By\r\n // default a prompt is shown the first time the clipboard is \r\n // used (per session).\r\n copyToClipboard(text) {\r\n if (window[\"clipboardData\"] && window[\"clipboardData\"].setData) {\r\n // IE specific code path to prevent textarea being shown while dialog is visible.\r\n return window[\"clipboardData\"].setData(\"Text\", text);\r\n\r\n } else if (document.queryCommandSupported && document.queryCommandSupported(\"copy\")) {\r\n var textarea = document.createElement(\"textarea\");\r\n textarea.textContent = text;\r\n textarea.style.position = \"fixed\"; // Prevent scrolling to bottom of page in MS Edge.\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n try {\r\n return document.execCommand(\"copy\"); // Security exception may be thrown by some browsers.\r\n } catch (ex) {\r\n console.warn(\"Copy to clipboard failed.\", ex);\r\n return false;\r\n } finally {\r\n document.body.removeChild(textarea);\r\n }\r\n }\r\n }\r\n\r\n onReady() {\r\n this.isGridReady = true;\r\n this.gridApi = this.gridOptions.api;\r\n this.autosizeColumns();\r\n this.resizeGridHeight();\r\n\r\n this.gridApi.gridPanel.eRoot.addEventListener(\"keydown\", this.createCtrlCEventHandler(), false);\r\n\r\n this.gridApi.addEventListener(\"modelUpdated\", (e) => {\r\n this.modelUpdated();\r\n });\r\n this.modelUpdated();\r\n\r\n\r\n }\r\n\r\n createCtrlCEventHandler() {\r\n var self = this;\r\n return this.ctrlCEvent = (e) => {\r\n e = e || window.event;\r\n var key = e.which || e.keyCode; // keyCode detection\r\n var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection\r\n\r\n if (key == 67 && ctrl) {\r\n self.copyToClipboard(e.target.textContent);\r\n $[\"notify\"](\"Content Copied to clipboard\", { className: \"success\", position: \"top center\" });\r\n }\r\n }\r\n }\r\n\r\n modelUpdated() {\r\n this.autosizeColumns();\r\n // this.storeModel(this.gridApi.getModel());\r\n }\r\n\r\n // storeModel(model) {\r\n // //store current model in local storage so that other pages can use prev/next navigation\r\n // var rows = model.rowsToDisplay.map((m) => m.data);\r\n // var json = JSON.stringify(rows);\r\n // localStorage.setItem(\"gridRows\", json);\r\n // }\r\n\r\n autosizeColumns() {\r\n if (this.gridOptions && this.gridOptions.api) {\r\n this.gridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n }\r\n\r\n static lastKnownWindowHeight: number;\r\n\r\n resizeGridHeight() {\r\n let $: any = window[\"$\"];\r\n let $gridContainer = $(this.gridContainer);\r\n if (this.gridOptions.api) {\r\n\r\n //when resizing the window, shrink entire container to smallest possible size \r\n // so that subsequent calculations are correct .\r\n // This is necessary when window is sized to a smaller size.\r\n\r\n //if (windowResized) {\r\n // $gridContainer.height(50);\r\n //}\r\n\r\n var footerHeight = $(\"footer\").outerHeight(true);\r\n var targetHeight = $(window).height() - $gridContainer.offset().top - footerHeight - 20;\r\n if (targetHeight < this.GRID_MIN_HEIGHT) {\r\n targetHeight = this.GRID_MIN_HEIGHT;\r\n }\r\n\r\n if ($gridContainer.height() !== targetHeight) {\r\n\r\n // Use this information for debugging resize issues\r\n //$log.trace(\"RESIZING GRID\");\r\n //$log.trace(\"==============================\");\r\n //$log.trace(`FOOTER HEIGHT: ${footerHeight}`);\r\n //$log.trace(`WINDOW HEIGHT: ${$(window).height()}`);\r\n //$log.trace(`DOCUMENT HEIGHT: ${$(document).height()}`);\r\n //$log.trace(`GRID CONTAINER offset().top: ${$gridContainer.offset().top}`);\r\n //$log.trace(`NEW GRID HEIGHT: ${targetHeight}`);\r\n\r\n\r\n //resize the kendogrid according to its container\r\n $gridContainer.stop().animate(\r\n { height: targetHeight },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n }\r\n }\r\n }\r\n\r\n static dateFilterParams = {\r\n\r\n // provide comparator function (used when sorting)\r\n comparator: function (filterLocalDateAtMidnight, cellValue) {\r\n\r\n // In the example application, dates are stored as dd/mm/yyyy\r\n // We create a Date object for comparison against the filter date\r\n var cellDate = new Date(cellValue);\r\n\r\n // Now that both parameters are Date objects, we can compare\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport { Contact } from '../../models/contact';\r\nimport { ContactPhone } from '../../models/contact-phone';\r\n@autoinject()\r\nexport class ContactCard {\r\n\r\n static instanceCount: number=0;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) index = \"\";\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) contact: Contact;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readOnly:boolean;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) showMills: boolean = true;\r\n @bindable editFunction;\r\n\r\n constructor() {\r\n this.id = \"ContactCard\" + ContactCard.instanceCount++;\r\n }\r\n\r\n id: String;\r\n\r\n\r\n editContact(e) {\r\n this.editFunction && this.editFunction();\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n formatTel(phone: ContactPhone) {\r\n let tel = phone.number + \"\";\r\n if (phone.extension) {\r\n tel += \",,,,,\" + phone.extension\r\n }\r\n return tel;\r\n }\r\n} ","import { customElement, bindable, autoinject, bindingMode } from 'aurelia-framework';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { WebApiService } from '../../services/web-api-service';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { UploadDocumentDialog } from '../dialogs/upload-document-dialog';\r\nimport { CarrierDocument } from '../../models/carrier-document';\r\n\r\n@autoinject()\r\nexport class DocumentThumbnail {\r\n\r\n constructor(private dialogService: DialogService, private element:Element) {\r\n }\r\n\r\n @bindable() document: CarrierDocument;\r\n @bindable() selected: boolean;\r\n\r\n\r\n attached() {\r\n }\r\n\r\n detached() {\r\n }\r\n\r\n upload() {\r\n this.fireDocumentRefreshEvent(\"upload\");\r\n }\r\n\r\n deleteDocument() {\r\n this.fireDocumentRefreshEvent(\"delete\");\r\n }\r\n\r\n fireDocumentRefreshEvent(event: string) {\r\n let evt;\r\n\r\n if (window[\"CustomEvent\"]) {\r\n evt = new CustomEvent('action', {\r\n detail: {\r\n //value: (event.target).value\r\n value: event\r\n },\r\n bubbles: true\r\n });\r\n } else {\r\n evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent('action', true, true, {\r\n detail: {\r\n //value: (event.target).value\r\n value: event\r\n }\r\n });\r\n }\r\n (this.element).dispatchEvent(evt);\r\n }\r\n\r\n}","import * as condition from './list-filter/condition';\r\nimport { ShortDateValueConverter } from '../../resources/value-converters/short-date';\r\nimport { SecurityService } from '../../services/security-service';\r\nimport states from \"../../models/state-list\";\r\nimport * as moment from 'moment';\r\n\r\nimport { singleton, observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport 'jquery';\r\nimport { PhoneValueConverter } from '../../resources/value-converters/phone';\r\nimport { WebApiService } from '../../services/web-api-service';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { DialogService } from 'aurelia-dialog';\r\n\r\n\r\n\r\n@autoinject()\r\nexport class EmailLog {\r\n constructor(\r\n private shortDateConverter: ShortDateValueConverter,\r\n private phoneValueConverter: PhoneValueConverter,\r\n private dialogService: DialogService,\r\n private securityService: SecurityService,\r\n private api: WebApiService,\r\n private busyService: BusyService\r\n ) {\r\n EmailLog.instanceCount++;\r\n this.eventName = \"resize.email-log-grid-\" + EmailLog.instanceCount;\r\n\r\n //set up grid options\r\n this.gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n\r\n }\r\n\r\n static instanceCount: number = 0;\r\n eventName: string;\r\n ctrlCEvent: any; //should hold reference to event handler\r\n\r\n async attached() {\r\n this.columnDefs.find(o => o.field == \"carrierName\").hide = !!this.target;\r\n await this.refresh();\r\n }\r\n\r\n public async refresh() {\r\n await this.loadEmails();\r\n }\r\n\r\n async loadEmails() {\r\n this.busyService.on();\r\n const params = !!this.target ? { targetRowId: this.target } : undefined;\r\n const apiAction = !!this.target ? \"GetEmailLogsForTarget\" : \"GetEmailLogs\";\r\n return this.api.get(\"Carriers\", apiAction, params)\r\n .then((result) => {\r\n let response = JSON.parse(result.response);\r\n this.gridData = response;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n detached() {\r\n let $: any = window[\"$\"];\r\n $(window).off(this.eventName);\r\n this.gridApi && this.gridApi.removeEventListener(\"modelUpdated\");\r\n this.gridApi && this.gridApi.gridPanel.eRoot.removeEventListener(\"keydown\", this.ctrlCEvent);\r\n this.gridApi && this.gridApi.destroy();\r\n }\r\n\r\n GRID_MIN_HEIGHT: number = 100;\r\n\r\n public gridData = [];\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) gridApi;\r\n\r\n columnDefs: Array = [\r\n { field: \"emailId\", hide: true, searchType: condition.ConditionFieldType.number },\r\n {\r\n field: \"\", filter: 'text',\r\n headerRenderer: (params) => ``,\r\n cellRenderer: (params) => params.data.attachmentCount > 0 ? `` : '',\r\n searchType: condition.ConditionFieldType.string\r\n }, {\r\n headerName: \"Created\", sort: 'desc', field: \"insertedOn\", filter: 'date',\r\n cellRenderer: (params) => this.primaryDrillDownRenderer(params, \"preview\", \"date\"),\r\n searchType: condition.ConditionFieldType.date\r\n },\r\n {\r\n headerName: \"Recipients\",\r\n field: \"recipients\",\r\n filter: 'text',\r\n searchType: condition.ConditionFieldType.string,\r\n maxWidth: 500\r\n },\r\n {\r\n headerName: \"Subject\", field: \"subject\", filter: 'text',\r\n searchType: condition.ConditionFieldType.string\r\n },\r\n //{ headerName: \"Preview\", field: \"preview\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n {\r\n headerName: \"Status\", field: \"status\", filter: 'text',\r\n cellRenderer: (params) => ` ${params.value}`,\r\n searchType: condition.ConditionFieldType.string\r\n },\r\n {\r\n headerName: \"Sent\", field: \"emailDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return params.value ? moment(params.value).format(\"MM/DD/YYYY h:mm a\") : '';\r\n },\r\n searchType: condition.ConditionFieldType.date\r\n },\r\n {\r\n headerName: \"Re-Sent\", field: \"resentEmailId\", filter: 'date',\r\n cellRenderer: (params) => {\r\n if (params.data.resentEmailId) {\r\n return moment(params.data.resentEmailOn).format(\"MM/DD/YYYY h:mm a\");\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n searchType: condition.ConditionFieldType.date\r\n },\r\n { headerName: \"Sent By\", field: \"insertedBy\", filter: 'text', searchType: condition.ConditionFieldType.string },\r\n {\r\n headerName: \"Carrier\", field: \"carrierName\", filter: 'text',\r\n cellRenderer: (params) => this.carrierRenderer(params),\r\n searchType: condition.ConditionFieldType.string\r\n }\r\n ];\r\n\r\n rowData = [];\r\n isGridReady = false;\r\n gridContainer: any;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) target;\r\n\r\n gridOptions: any;\r\n\r\n carrierRenderer(params: any) {\r\n return params.value ? `${params.value}` : '';\r\n }\r\n\r\n primaryDrillDownRenderer(params: any, tooltipField: string, dataType: string) {\r\n let text = params.value;\r\n\r\n if (dataType == \"date\") {\r\n text = moment(params.value).format(\"MM/DD/YYYY h:mm a\");\r\n }\r\n\r\n let tooltip = \"\";\r\n if (tooltipField) {\r\n let preview = (params.data[tooltipField] || \"\").replace(/\"/gi, \"'\");\r\n tooltip = `title = \"${preview}\"`;\r\n }\r\n\r\n const html = `${text}`;\r\n return html;\r\n //var $a = jQuery(html);\r\n //$a.click(() => {\r\n // this.openEmailDialog(params.data.emailId);\r\n //});\r\n //return $a[0];\r\n }\r\n\r\n\r\n emailRenderer(params: any) {\r\n if (params.value) {\r\n return `${params.value}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n numberRenderer(params: any) {\r\n if (typeof params.value == \"number\") {\r\n return params.value.toLocaleString();\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n\r\n phoneCellRenderer(params: any) {\r\n const formattedPhone = this.phoneValueConverter.toView(params.value);\r\n if (formattedPhone) {\r\n return `${formattedPhone}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n boolCellRenderer(params: any) {\r\n if (params.value === true) {\r\n return \"Yes\";\r\n } else if (params.value === false) {\r\n return \"No\";\r\n }\r\n }\r\n\r\n //return HTML for Anchor element pointing to role-specific carrier details page\r\n carrierDetailsLinkCellRenderer(params: any, isCarrierName: boolean) {\r\n //include the route-href parameter so that the addBaseUrlIfMiddleClick (in app.ts) is processed (even though the href attribute is set directly)\r\n let displayValue = params.value;\r\n if (displayValue) {\r\n //users without cmp.view.advanced role view this record in the summary view\r\n if (this.securityService.hasRole(\"cmp.view.advanced\")) {\r\n return `${displayValue}`;\r\n } else {\r\n return `${displayValue}`;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Copies a string to the clipboard. Must be called from within an \r\n // event handler such as click. May return false if it failed, but\r\n // this is not always possible. Browser support for Chrome 43+, \r\n // Firefox 42+, Safari 10+, Edge and IE 10+.\r\n // IE: The clipboard feature may be disabled by an administrator. By\r\n // default a prompt is shown the first time the clipboard is \r\n // used (per session).\r\n copyToClipboard(text) {\r\n if (window[\"clipboardData\"] && window[\"clipboardData\"].setData) {\r\n // IE specific code path to prevent textarea being shown while dialog is visible.\r\n return window[\"clipboardData\"].setData(\"Text\", text);\r\n\r\n } else if (document.queryCommandSupported && document.queryCommandSupported(\"copy\")) {\r\n var textarea = document.createElement(\"textarea\");\r\n textarea.textContent = text;\r\n textarea.style.position = \"fixed\"; // Prevent scrolling to bottom of page in MS Edge.\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n try {\r\n return document.execCommand(\"copy\"); // Security exception may be thrown by some browsers.\r\n } catch (ex) {\r\n console.warn(\"Copy to clipboard failed.\", ex);\r\n return false;\r\n } finally {\r\n document.body.removeChild(textarea);\r\n }\r\n }\r\n }\r\n\r\n onReady() {\r\n this.isGridReady = true;\r\n this.gridApi = this.gridOptions.api;\r\n this.autosizeColumns();\r\n this.resizeGridHeight();\r\n\r\n this.gridApi.gridPanel.eRoot.addEventListener(\"keydown\", this.createCtrlCEventHandler(), false);\r\n\r\n this.gridApi.addEventListener(\"modelUpdated\", (e) => {\r\n this.modelUpdated();\r\n });\r\n this.modelUpdated();\r\n\r\n }\r\n\r\n createCtrlCEventHandler() {\r\n var self = this;\r\n return this.ctrlCEvent = (e) => {\r\n e = e || window.event;\r\n var key = e.which || e.keyCode; // keyCode detection\r\n var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection\r\n\r\n if (key == 67 && ctrl) {\r\n self.copyToClipboard(e.target.textContent);\r\n $[\"notify\"](\"Content Copied to clipboard\", { className: \"success\", position: \"top center\" });\r\n }\r\n }\r\n }\r\n\r\n modelUpdated() {\r\n this.autosizeColumns();\r\n //this.storeModel(this.gridApi.getModel());\r\n }\r\n\r\n // storeModel(model) {\r\n // //store current model in local storage so that other pages can use prev/next navigation\r\n // var rows = model.rowsToDisplay.map((m) => m.data);\r\n // var json = JSON.stringify(rows);\r\n // localStorage.setItem(\"gridRows\", json);\r\n // }\r\n\r\n autosizeColumns() {\r\n this.gridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n\r\n static lastKnownWindowHeight: number;\r\n\r\n resizeGridHeight() {\r\n let $: any = window[\"$\"];\r\n let $gridContainer = $(this.gridContainer);\r\n if (this.gridOptions.api) {\r\n\r\n //when resizing the window, shrink entire container to smallest possible size \r\n // so that subsequent calculations are correct .\r\n // This is necessary when window is sized to a smaller size.\r\n\r\n //if (windowResized) {\r\n // $gridContainer.height(50);\r\n //}\r\n\r\n var footerHeight = $(\"footer\").outerHeight(true);\r\n var targetHeight = $(window).height() - $gridContainer.offset().top - footerHeight - 20;\r\n if (targetHeight < this.GRID_MIN_HEIGHT) {\r\n targetHeight = this.GRID_MIN_HEIGHT;\r\n }\r\n\r\n if ($gridContainer.height() !== targetHeight) {\r\n\r\n // Use this information for debugging resize issues\r\n //$log.trace(\"RESIZING GRID\");\r\n //$log.trace(\"==============================\");\r\n //$log.trace(`FOOTER HEIGHT: ${footerHeight}`);\r\n //$log.trace(`WINDOW HEIGHT: ${$(window).height()}`);\r\n //$log.trace(`DOCUMENT HEIGHT: ${$(document).height()}`);\r\n //$log.trace(`GRID CONTAINER offset().top: ${$gridContainer.offset().top}`);\r\n //$log.trace(`NEW GRID HEIGHT: ${targetHeight}`);\r\n\r\n\r\n //resize the kendogrid according to its container\r\n $gridContainer.stop().animate(\r\n { height: targetHeight },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n }\r\n }\r\n }\r\n\r\n static dateFilterParams = {\r\n\r\n // provide comparator function (used when sorting)\r\n comparator: function (filterLocalDateAtMidnight, cellValue) {\r\n\r\n // In the example application, dates are stored as dd/mm/yyyy\r\n // We create a Date object for comparison against the filter date\r\n var cellDate = new Date(cellValue);\r\n\r\n // Now that both parameters are Date objects, we can compare\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { UpdateInsuranceDialog } from \"../dialogs/update-insurance-dialog\";\r\nimport { SecurityService } from '../../services/security-service';\r\n\r\n\r\n@autoinject()\r\nexport class InsuranceCard {\r\n\r\n static instanceCount: number=0;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) item;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) carrierId;\r\n @bindable open: Function;\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private securityService: SecurityService\r\n ) {\r\n this.id = \"InsuranceCard\" + InsuranceCard.instanceCount++;\r\n }\r\n\r\n id: String;\r\n\r\n}","import { BusyService } from \"../../services/busy-service\";\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { bindable, bindingMode, autoinject } from \"aurelia-framework\";\r\nimport { SecurityService } from \"../../services/security-service\";\r\n\r\n@autoinject()\r\nexport class MillDropdown {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) selectedMillCode: string = \"All\";\r\n millCodes: Array = [];\r\n\r\n constructor(\r\n private api: WebApiService,\r\n private securityService: SecurityService,\r\n private busyService: BusyService\r\n ) { }\r\n\r\n attached() {\r\n if (!this.millCodes.length) {\r\n this.loadMills();\r\n }\r\n }\r\n\r\n loadMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Registration\", \"GetDivisions\")\r\n .then((result) => {\r\n let response = JSON.parse(result.response);\r\n this.millCodes = response.map((item) => {\r\n return item.code;\r\n }).filter(millCode => {\r\n if (this.securityService.user.millCodes.length == 0)\r\n return true;\r\n else\r\n return this.securityService.user.millCodes.find(o => o == millCode);\r\n });\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n}\r\n\r\n","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject, containerless } from 'aurelia-framework';\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport { WebApiService } from \"../../services/web-api-service\";\r\nimport { Carrier } from '../../models/carrier';\r\nimport { AppMessageService } from \"../../services/app-message-service\";\r\nimport { SecurityService } from '../../services/security-service';\r\nimport { SimpleDialog } from '../dialogs/simple-dialog';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { BusyService } from '../../services/busy-service';\r\nimport { WorkCarrier } from '../work-carrier';\r\n@autoinject()\r\n@containerless()\r\nexport class WorkflowActions {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) carrier: Carrier;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) carrierDocuments: any;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) saveCarrierFn: () => Promise;\r\n\r\n subscription: Subscription;\r\n\r\n carrierChanged(newValue, oldValue) {\r\n if (newValue) {\r\n this.renderActions(newValue);\r\n }\r\n }\r\n\r\n carrierDocumentsChanged(newValue, oldValue) {\r\n if (newValue) {\r\n this.renderActions(this.carrier);\r\n }\r\n }\r\n\r\n attached() {\r\n this.subscription = this.ea.subscribe(\"carrier.save\", c => {\r\n if (c == this.carrier) this.renderActions(this.carrier);\r\n });\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n\r\n constructor(\r\n private ea: EventAggregator,\r\n private dialogService: DialogService,\r\n private busy: BusyService,\r\n private api: WebApiService,\r\n private securityService: SecurityService,\r\n private appMessageService: AppMessageService\r\n ) { }\r\n\r\n actions: Array = [];\r\n\r\n renderActions(carrier: Carrier) {\r\n if (carrier) {\r\n this.actions = this.workflowMap.filter(m => m.displayWhen());\r\n } else {\r\n this.actions = [];\r\n }\r\n }\r\n\r\n\r\n statusChangeReason: String = \"Workflow\";\r\n hasDocument(documentTypeCode) {\r\n return !!(this.carrierDocuments && this.carrierDocuments.find(d => d.documentTypeCode == documentTypeCode));\r\n }\r\n changeStatus(carrierId, statusId, comment, message) {\r\n\r\n return this.saveCarrierFn().then(() => {\r\n var params = {\r\n carrierId: carrierId,\r\n statusId: statusId,\r\n comment: comment\r\n };\r\n return this.api.submit(\"Carriers\", \"ChangeCarrierStatus\", params)\r\n .then(() => this.appMessageService.addSuccessMessage(message));\r\n });\r\n }\r\n \r\n async sendMasterApprovedEmail(carrierId) {\r\n //const millCodeText = this.securityService.user.millCodes.join(\",\");\r\n var model = {\r\n title: \"Send master approved email?\",\r\n message: \"This action will send an email to all internal CMP users. Click OK to proceed.\",\r\n showComment: false,\r\n comment: \"\",\r\n buttons: [\"Ok\", \"Cancel\"]\r\n };\r\n\r\n const dialogResult = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n }).whenClosed();\r\n\r\n if (dialogResult.output == \"Ok\") {\r\n this.busy.on();\r\n //await this.workCarrierComponent.saveChanges(false);\r\n try {\r\n const message = \"Master Approval Email has been sent\";\r\n var params = {\r\n id: carrierId\r\n };\r\n await this.api.submit(\"Carriers\", \"SendMasterApprovedEmail\", params);\r\n this.carrier.isMasterApprovedEmailSent = true;\r\n this.renderActions(this.carrier);\r\n this.appMessageService.addSuccessMessage(message);\r\n\r\n } finally {\r\n this.busy.off();\r\n }\r\n }\r\n }\r\n\r\n workflowMap: any = [\r\n {\r\n text: \"POTENTIAL\",\r\n displayWhen: () => this.carrier.status == 0 && !!this.carrier.legalName && !!this.carrier.dotNumber,\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 2, this.statusChangeReason, \"Carrier Moved to Potential\");\r\n }\r\n },\r\n {\r\n text: \"PACKET SENT\",\r\n displayWhen: () => this.carrier.status == 2 && (this.carrier.entityType != \"TRUCKS\" || !!this.carrier.contractType),\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 3, this.statusChangeReason, \"Carrier Moved to In Process\");\r\n }\r\n },\r\n {\r\n text: \"IN PROCESS\",\r\n displayWhen: () => {\r\n if (this.carrier.entityType != 'TRUCKS') {\r\n return this.carrier.status == 3 && this.hasDocument(\"CT\") && this.hasDocument(\"FS\");\r\n } else {\r\n return this.carrier.status == 3 && this.hasDocument(\"CT\") && !!this.carrier.scacCode;\r\n }\r\n },\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 4, this.statusChangeReason, \"Carrier Moved to In Process\");\r\n }\r\n },\r\n {\r\n text: \"INSURANCE REVIEW\",\r\n displayWhen: () => {\r\n if (this.carrier.entityType != 'TRUCKS') {\r\n return this.carrier.status == 4 && this.hasDocument(\"CT\");\r\n } else {\r\n return this.carrier.status == 4 && this.hasDocument(\"CT\") && !!this.carrier.scacCode;\r\n }\r\n },\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 5, this.statusChangeReason, \"Carrier Moved to Insurance Review\");\r\n }\r\n },\r\n {\r\n text: \"INSURANCE COMPLETE\",\r\n displayWhen: () => this.carrier.status == 5,\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 6, this.statusChangeReason, \"Carrier Moved to Insurance Complete\");\r\n }\r\n },\r\n {\r\n text: \"NLC APPROVED\",\r\n displayWhen: () => {\r\n if (this.securityService.hasRole(\"Legal\")) {\r\n if (this.carrier.status == 6) {\r\n if (this.carrier.entityType == 'TRUCKS') {\r\n return !!this.carrier.dotNumber && !!this.carrier.scacCode;\r\n } else {\r\n return !!this.carrier.taxId && !!this.carrier.scacCode;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 7, this.statusChangeReason, \"Carrier Moved to NLC Approved\");\r\n }\r\n },\r\n {\r\n text: \"MASTER APPROVED\",\r\n displayWhen: () => this.securityService.hasRole(\"Legal\") && this.carrier.status == 7,\r\n click: () => {\r\n var oldStatus = this.carrier.status;\r\n this.changeStatus(this.carrier.id, 8, this.statusChangeReason, \"Carrier Moved to Master Approved\");\r\n }\r\n },\r\n {\r\n text: \"SEND MASTER APPROVED EMAIL NOTICE\",\r\n displayWhen: () => this.securityService.hasRole(\"Legal\") && this.carrier.status == 8 && !this.carrier.isMasterApprovedEmailSent,\r\n click: async () => {\r\n await this.sendMasterApprovedEmail(this.carrier.id);\r\n }\r\n }\r\n ];\r\n\r\n\r\n}","import { customElement, bindable, inject, bindingMode, TaskQueue, Loader } from 'aurelia-framework';\r\n\r\n/* Due to a current limitation in Aurelia's templating, it's not possible to declare multiple\r\nmethods in an event handler with separate binding behaviors. We work around this by duplicating\r\nthe event name by adding these lines to our ViewModel. */\r\nimport { SyntaxInterpreter } from 'aurelia-templating-binding';\r\nimport { CarrierDocument } from '../../models/carrier-document';\r\nimport { BusyService } from '../../services/busy-service';\r\n(SyntaxInterpreter.prototype).trigger2 = SyntaxInterpreter.prototype.trigger;\r\n\r\n@customElement('pdf-document')\r\n@inject(TaskQueue, Loader, BusyService)\r\nexport class PdfDocument {\r\n\r\n @bindable() documentId: string;\r\n @bindable({ defaultValue: 1, defaultBindingMode: bindingMode.twoWay }) page: number;\r\n @bindable({ defaultValue: 1, defaultBindingMode: bindingMode.twoWay }) lastPage: number;\r\n @bindable({ defaultValue: 1, defaultBindingMode: bindingMode.twoWay }) scale: number;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) viewerHeight: string;\r\n\r\n container: any;\r\n pdfjsLib: any;\r\n documentPending: any;\r\n resolveDocumentPending: any;\r\n currentPage: any;\r\n pages: any[];\r\n fingerprint: string;\r\n worker: any;\r\n taskQueue: any;\r\n constructor(taskQueue, loader, private busyService) {\r\n\r\n this.pdfjsLib = window[\"pdfjsLib\"];\r\n this.pdfjsLib.workerSrc = '//scripts/pdfjs/pdf.worker.js';\r\n\r\n this.taskQueue = taskQueue;\r\n this.worker = new this.pdfjsLib.PDFWorker();\r\n\r\n this.fingerprint = generateUniqueDomId();\r\n this.pages = [];\r\n\r\n this.currentPage = null;\r\n this.resolveDocumentPending;\r\n }\r\n\r\n attached() {\r\n }\r\n\r\n detached() {\r\n if (this.documentPending) {\r\n return this.documentPending\r\n .then((pdf) => {\r\n if (pdf) {\r\n pdf.destroy();\r\n }\r\n this.worker.destroy();\r\n })\r\n .catch(() => {\r\n debugger;\r\n this.worker.destroy();\r\n });\r\n }\r\n }\r\n\r\n getUrl(id) {\r\n if (id) {\r\n return \"/api/Document/DownloadDocument?id=\" + id;\r\n }\r\n }\r\n\r\n\r\n documentIdChanged(newValue: string, oldValue: string) {\r\n if (!newValue)\r\n return;\r\n\r\n var promise = this.documentPending || Promise.resolve();\r\n this.documentPending = new Promise((resolve, reject) => {\r\n this.resolveDocumentPending = resolve.bind(this);\r\n });\r\n return promise\r\n .then((pdf) => {\r\n if (pdf) {\r\n pdf.destroy();\r\n }\r\n let url = this.getUrl(newValue);\r\n var alwaysSuccessfulPromise = new Promise(resolve => {\r\n if (url) {\r\n this.busyService.on();\r\n var task = this.pdfjsLib.getDocument({ url: url, worker: this.worker });\r\n\r\n task.promise\r\n .then(result => {\r\n resolve(result);\r\n }, error => {\r\n resolve();\r\n console.error(\"Error downloading document version: \" + url);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n return alwaysSuccessfulPromise;\r\n })\r\n .then((pdf) => {\r\n if (pdf) {\r\n\r\n this.lastPage = pdf.numPages;\r\n\r\n pdf.cleanupAfterRender = true;\r\n for (var i = 0; i < pdf.numPages; i++) {\r\n this.pages[i] = pdf.getPage(Number(i + 1))\r\n .then((page) => {\r\n let viewport = page.getViewport(this.scale);\r\n let element: any = document.getElementById(`${this.fingerprint}-page${page.pageNumber}`);\r\n\r\n this.taskQueue.queueMicroTask(() => {\r\n element.height = viewport.height;\r\n element.width = viewport.width;\r\n });\r\n\r\n return {\r\n element: element,\r\n page: page,\r\n rendered: false,\r\n clean: false\r\n };\r\n })\r\n }\r\n\r\n this.pages.forEach((page) => {\r\n page.then((renderObject) => {\r\n if (checkIfElementVisible(this.container, renderObject.element)) {\r\n if (renderObject.rendered) return;\r\n render(page, this.scale);\r\n }\r\n });\r\n });\r\n\r\n }\r\n this.resolveDocumentPending(pdf);\r\n });\r\n }\r\n\r\n pageChanged(newValue, oldValue) {\r\n\r\n if (newValue != 0 && !newValue)\r\n return;\r\n\r\n if (newValue === oldValue || isNaN(Number(newValue)) || Number(newValue) > this.lastPage || Number(newValue) < 0) {\r\n this.page = oldValue;\r\n return;\r\n }\r\n\r\n if (Math.abs(newValue - oldValue) <= 0) return;\r\n\r\n this.pages[newValue - 1]\r\n .then((renderObject) => {\r\n this.container.scrollTop = renderObject.element.offsetTop;\r\n render(this.pages[newValue - 1], this.scale);\r\n });\r\n }\r\n\r\n scaleChanged(newValue, oldValue) {\r\n if (newValue === oldValue || isNaN(Number(newValue))) return;\r\n\r\n Promise.all(this.pages)\r\n .then((values) => {\r\n values.forEach((renderObject) => {\r\n if (!renderObject) return;\r\n\r\n var viewport = renderObject.page.getViewport(newValue);\r\n\r\n renderObject.rendered = false;\r\n\r\n this.taskQueue.queueMicroTask(() => {\r\n renderObject.element.height = viewport.height;\r\n renderObject.element.width = viewport.width;\r\n\r\n if (renderObject.page.pageNumber === this.page) {\r\n this.container.scrollTop = renderObject.element.offsetTop;\r\n }\r\n });\r\n });\r\n\r\n return values;\r\n })\r\n .then((values) => {\r\n this.pages.forEach((page) => {\r\n page.then((renderObject) => {\r\n this.taskQueue.queueMicroTask(() => {\r\n if (checkIfElementVisible(this.container, renderObject.element)) {\r\n render(page, this.scale);\r\n }\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n pageHandler() {\r\n this.pages.forEach((page) => {\r\n page.then((renderObject) => {\r\n if ((this.container.scrollTop + this.container.clientHeight) >= renderObject.element.offsetTop\r\n && (this.container.scrollTop <= renderObject.element.offsetTop)) {\r\n this.page = renderObject.page.pageNumber;\r\n }\r\n });\r\n });\r\n }\r\n\r\n renderHandler() {\r\n Promise.all(this.pages)\r\n .then((values) => {\r\n values.forEach((renderObject) => {\r\n if (!renderObject) return;\r\n\r\n if (!checkIfElementVisible(this.container, renderObject.element)) {\r\n if (renderObject.rendered && renderObject.clean) {\r\n renderObject.page.cleanup();\r\n renderObject.clean = true;\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.taskQueue.queueMicroTask(() => {\r\n if (renderObject.rendered) return;\r\n render(renderObject, this.scale);\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nvar generateUniqueDomId = function () {\r\n var S4 = function () {\r\n return (((1 + Math.random()) * 0x10000) | 0)\r\n .toString(16)\r\n .substring(1);\r\n };\r\n\r\n return `_${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;\r\n}\r\n\r\nvar checkIfElementVisible = function (container, element) {\r\n var containerBounds = {\r\n top: container.scrollTop,\r\n bottom: container.scrollTop + container.clientHeight\r\n };\r\n\r\n var elementBounds = {\r\n top: element.offsetTop,\r\n bottom: element.offsetTop + element.clientHeight\r\n };\r\n\r\n return (!((elementBounds.bottom < containerBounds.top && elementBounds.top < containerBounds.top)\r\n || (elementBounds.top > containerBounds.bottom && elementBounds.bottom > containerBounds.bottom)));\r\n}\r\n\r\nvar render = function (renderPromise, scale) {\r\n return Promise.resolve(renderPromise)\r\n .then((renderObject) => {\r\n if (renderObject.rendered) return Promise.resolve(renderObject);\r\n renderObject.rendered = true;\r\n\r\n var viewport = renderObject.page.getViewport(scale);\r\n var context = renderObject.element.getContext('2d');\r\n\r\n return renderObject.page.render({\r\n canvasContext: context,\r\n viewport: viewport\r\n })\r\n .promise.then(() => {\r\n return renderObject;\r\n });\r\n });\r\n};","import * as condition from './list-filter/condition';\r\nimport { ShortDateValueConverter } from '../../resources/value-converters/short-date';\r\nimport { SecurityService } from '../../services/security-service';\r\nimport states from \"../../models/state-list\";\r\n\r\nimport { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport 'jquery';\r\nimport { PhoneValueConverter } from '../../resources/value-converters/phone';\r\nimport { DateTimeValueConverter } from '../../resources/value-converters/date-time';\r\n\r\n@autoinject()\r\nexport class RequestGrid {\r\n constructor(\r\n private shortDateConverter: ShortDateValueConverter,\r\n private dateTimeConverter: DateTimeValueConverter,\r\n private phoneValueConverter: PhoneValueConverter,\r\n private securityService: SecurityService) {\r\n RequestGrid.instanceCount++;\r\n this.eventName = \"resize.requests-grid-\" + RequestGrid.instanceCount;\r\n\r\n //set up grid options\r\n this.gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n }\r\n\r\n static instanceCount: number = 0;\r\n eventName: string;\r\n ctrlCEvent: any; //should hold reference to event handler\r\n\r\n attached() {\r\n let $: any = window[\"$\"];\r\n $(window).on(this.eventName, () => this.resizeGridHeight());\r\n }\r\n\r\n detached() {\r\n let $: any = window[\"$\"];\r\n $(window).off(this.eventName);\r\n this.gridApi && this.gridApi.removeEventListener(\"modelUpdated\");\r\n this.gridApi && this.gridApi.gridPanel.eRoot.removeEventListener(\"keydown\", this.ctrlCEvent);\r\n this.gridApi && this.gridApi.destroy();\r\n }\r\n\r\n GRID_MIN_HEIGHT: number = 100;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) gridData = [];\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) gridApi;\r\n\r\n\r\n @observable\r\n quickFilter: string;\r\n quickFilterChanged() {\r\n this.gridApi && this.gridApi.setQuickFilter(this.quickFilter);\r\n }\r\n\r\n columnDefs: Array = [\r\n { field: \"id\", hide: true, searchType: condition.ConditionFieldType.number },\r\n {\r\n headerName: \"Number\", field: \"number\", filter: 'text', sort: 'desc',\r\n cellRenderer: (params) => this.detailsLinkCellRenderer(params, false)\r\n },\r\n {\r\n headerName: \"Active\", field: \"active\", filter: 'boolean',\r\n cellRenderer: this.boolCellRenderer\r\n },\r\n { headerName: \"Status\", field: \"state.displayValue\", filter: 'text' },\r\n { headerName: \"Summary\", field: \"shortDescription\", filter: 'text', width: '350px' },\r\n {\r\n headerName: \"Opened\", field: \"openedOn\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.dateTimeConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"Requested By\", field: \"openedBy.displayValue\", filter: 'text' },\r\n { headerName: \"Requested For\", field: \"requestedFor.displayValue\", filter: 'text' },\r\n {\r\n headerName: \"Closed\", field: \"closedOn\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.dateTimeConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"Closed By\", field: \"closedBy.displayValue\", filter: 'text' },\r\n { headerName: \"Workflow Stage\", field: \"workflowContext.stageName\", filter: 'text' },\r\n { headerName: \"Divisions\", field: \"divisionCodes\", filter: 'text', width: '50px' },\r\n ];\r\n\r\n\r\n rowData = [];\r\n isGridReady = false;\r\n gridContainer: any;\r\n\r\n gridOptions: any;\r\n\r\n emailRenderer(params: any) {\r\n if (params.value) {\r\n return `${params.value}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n numberRenderer(params: any) {\r\n if (typeof params.value == \"number\") {\r\n return params.value.toLocaleString();\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n\r\n phoneCellRenderer(params: any) {\r\n const formattedPhone = this.phoneValueConverter.toView(params.value);\r\n if (formattedPhone) {\r\n return `${formattedPhone}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n boolCellRenderer(params: any) {\r\n if (params.value === true) {\r\n return \"Yes\";\r\n } else if (params.value === false) {\r\n return \"No\";\r\n }\r\n }\r\n\r\n\r\n //return HTML for Anchor element pointing to role-specific carrier details page\r\n detailsLinkCellRenderer(params: any, isCarrierName: boolean) {\r\n //include the route-href parameter so that the addBaseUrlIfMiddleClick (in app.ts) is processed (even though the href attribute is set directly)\r\n let displayValue = params.value;\r\n if (displayValue) {\r\n return `${displayValue}`;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Copies a string to the clipboard. Must be called from within an \r\n // event handler such as click. May return false if it failed, but\r\n // this is not always possible. Browser support for Chrome 43+, \r\n // Firefox 42+, Safari 10+, Edge and IE 10+.\r\n // IE: The clipboard feature may be disabled by an administrator. By\r\n // default a prompt is shown the first time the clipboard is \r\n // used (per session).\r\n copyToClipboard(text) {\r\n if (window[\"clipboardData\"] && window[\"clipboardData\"].setData) {\r\n // IE specific code path to prevent textarea being shown while dialog is visible.\r\n return window[\"clipboardData\"].setData(\"Text\", text);\r\n\r\n } else if (document.queryCommandSupported && document.queryCommandSupported(\"copy\")) {\r\n var textarea = document.createElement(\"textarea\");\r\n textarea.textContent = text;\r\n textarea.style.position = \"fixed\"; // Prevent scrolling to bottom of page in MS Edge.\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n try {\r\n return document.execCommand(\"copy\"); // Security exception may be thrown by some browsers.\r\n } catch (ex) {\r\n console.warn(\"Copy to clipboard failed.\", ex);\r\n return false;\r\n } finally {\r\n document.body.removeChild(textarea);\r\n }\r\n }\r\n }\r\n\r\n onReady() {\r\n this.isGridReady = true;\r\n this.gridApi = this.gridOptions.api;\r\n this.autosizeColumns();\r\n this.resizeGridHeight();\r\n\r\n this.gridApi.gridPanel.eRoot.addEventListener(\"keydown\", this.createCtrlCEventHandler(), false);\r\n\r\n this.gridApi.addEventListener(\"modelUpdated\", (e) => {\r\n this.modelUpdated();\r\n });\r\n this.modelUpdated();\r\n\r\n\r\n }\r\n\r\n createCtrlCEventHandler() {\r\n var self = this;\r\n return this.ctrlCEvent = (e) => {\r\n e = e || window.event;\r\n var key = e.which || e.keyCode; // keyCode detection\r\n var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection\r\n\r\n if (key == 67 && ctrl) {\r\n self.copyToClipboard(e.target.textContent);\r\n $[\"notify\"](\"Content Copied to clipboard\", { className: \"success\", position: \"top center\" });\r\n }\r\n }\r\n }\r\n\r\n modelUpdated() {\r\n this.autosizeColumns();\r\n // this.storeModel(this.gridApi.getModel());\r\n }\r\n\r\n // storeModel(model) {\r\n // //store current model in local storage so that other pages can use prev/next navigation\r\n // var rows = model.rowsToDisplay.map((m) => m.data);\r\n // var json = JSON.stringify(rows);\r\n // localStorage.setItem(\"gridRows\", json);\r\n // }\r\n\r\n autosizeColumns() {\r\n this.gridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n\r\n static lastKnownWindowHeight: number;\r\n\r\n resizeGridHeight() {\r\n let $: any = window[\"$\"];\r\n let $gridContainer = $(this.gridContainer);\r\n if (this.gridOptions.api) {\r\n\r\n //when resizing the window, shrink entire container to smallest possible size \r\n // so that subsequent calculations are correct .\r\n // This is necessary when window is sized to a smaller size.\r\n\r\n //if (windowResized) {\r\n // $gridContainer.height(50);\r\n //}\r\n\r\n var footerHeight = $(\"footer\").outerHeight(true);\r\n var targetHeight = $(window).height() - $gridContainer.offset().top - footerHeight - 20;\r\n if (targetHeight < this.GRID_MIN_HEIGHT) {\r\n targetHeight = this.GRID_MIN_HEIGHT;\r\n }\r\n\r\n if ($gridContainer.height() !== targetHeight) {\r\n\r\n // Use this information for debugging resize issues\r\n //$log.trace(\"RESIZING GRID\");\r\n //$log.trace(\"==============================\");\r\n //$log.trace(`FOOTER HEIGHT: ${footerHeight}`);\r\n //$log.trace(`WINDOW HEIGHT: ${$(window).height()}`);\r\n //$log.trace(`DOCUMENT HEIGHT: ${$(document).height()}`);\r\n //$log.trace(`GRID CONTAINER offset().top: ${$gridContainer.offset().top}`);\r\n //$log.trace(`NEW GRID HEIGHT: ${targetHeight}`);\r\n\r\n\r\n //resize the kendogrid according to its container\r\n $gridContainer.stop().animate(\r\n { height: targetHeight },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n }\r\n }\r\n }\r\n\r\n static dateFilterParams = {\r\n\r\n // provide comparator function (used when sorting)\r\n comparator: function (filterLocalDateAtMidnight, cellValue) {\r\n\r\n // In the example application, dates are stored as dd/mm/yyyy\r\n // We create a Date object for comparison against the filter date\r\n var cellDate = new Date(cellValue);\r\n\r\n // Now that both parameters are Date objects, we can compare\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}","import * as condition from './list-filter/condition';\r\nimport { ShortDateValueConverter } from '../../resources/value-converters/short-date';\r\nimport { SecurityService } from '../../services/security-service';\r\nimport states from \"../../models/state-list\";\r\n\r\nimport { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport 'jquery';\r\nimport { PhoneValueConverter } from '../../resources/value-converters/phone';\r\nimport { DateTimeValueConverter } from '../../resources/value-converters/date-time';\r\n\r\n@autoinject()\r\nexport class TaskGrid {\r\n constructor(\r\n private shortDateConverter: ShortDateValueConverter,\r\n private dateTimeConverter: DateTimeValueConverter,\r\n private phoneValueConverter: PhoneValueConverter,\r\n private securityService: SecurityService) {\r\n TaskGrid.instanceCount++;\r\n this.eventName = \"resize.carrier-grid-\" + TaskGrid.instanceCount;\r\n\r\n //set up grid options\r\n this.gridOptions = {\r\n api: undefined,\r\n columnDefs: this.columnDefs,\r\n //pagination controls require v9 or greater.\r\n pagination: true,\r\n paginationPageSize: 100,\r\n //paginationAutoPageSize : true\r\n };\r\n }\r\n\r\n static instanceCount: number = 0;\r\n eventName: string;\r\n ctrlCEvent: any; //should hold reference to event handler\r\n\r\n attached() {\r\n let $: any = window[\"$\"];\r\n $(window).on(this.eventName, () => this.resizeGridHeight());\r\n }\r\n\r\n detached() {\r\n let $: any = window[\"$\"];\r\n $(window).off(this.eventName);\r\n this.gridApi && this.gridApi.removeEventListener(\"modelUpdated\");\r\n this.gridApi && this.gridApi.gridPanel.eRoot.removeEventListener(\"keydown\", this.ctrlCEvent);\r\n this.gridApi && this.gridApi.destroy();\r\n }\r\n\r\n @observable\r\n quickFilter: string;\r\n quickFilterChanged() {\r\n this.gridApi && this.gridApi.setQuickFilter(this.quickFilter);\r\n }\r\n\r\n GRID_MIN_HEIGHT: number = 100;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) gridData = [];\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) gridApi;\r\n\r\n columnDefs: Array = [\r\n { field: \"id\", hide: true, searchType: condition.ConditionFieldType.number },\r\n {\r\n headerName: \"Number\", field: \"number\", filter: 'text',\r\n cellRenderer: (params) => this.detailsLinkCellRenderer(params, false)\r\n },\r\n {\r\n headerName: \"Active\", field: \"active\", filter: 'boolean',\r\n cellRenderer: this.boolCellRenderer\r\n },\r\n { headerName: \"Status\", field: \"state.displayValue\", filter: 'text' },\r\n { headerName: \"Summary\", field: \"shortDescription\", filter: 'text', width: '350px' },\r\n { headerName: \"Assigned To\", field: \"assignedTo.displayValue\", filter: 'text' },\r\n { headerName: \"Assignment Group\", field: \"assignmentGroup.displayValue\", filter: 'text' },\r\n {\r\n headerName: \"Due Date\", sort: 'desc', field: \"dueDate\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.dateTimeConverter.toView(params.value);\r\n }\r\n },\r\n {\r\n headerName: \"Opened\", field: \"openedOn\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.dateTimeConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"Opened By\", field: \"openedBy.displayValue\", filter: 'text' },\r\n {\r\n headerName: \"Closed\", field: \"closedOn\", filter: 'date',\r\n cellRenderer: (params) => {\r\n return this.dateTimeConverter.toView(params.value);\r\n }\r\n },\r\n { headerName: \"Closed By\", field: \"closedBy.displayValue\", filter: 'text' },\r\n\r\n ];\r\n\r\n rowData = [];\r\n isGridReady = false;\r\n gridContainer: any;\r\n\r\n gridOptions: any;\r\n\r\n emailRenderer(params: any) {\r\n if (params.value) {\r\n return `${params.value}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n numberRenderer(params: any) {\r\n if (typeof params.value == \"number\") {\r\n return params.value.toLocaleString();\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n\r\n phoneCellRenderer(params: any) {\r\n const formattedPhone = this.phoneValueConverter.toView(params.value);\r\n if (formattedPhone) {\r\n return `${formattedPhone}`;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n boolCellRenderer(params: any) {\r\n if (params.value === true) {\r\n return \"Yes\";\r\n } else if (params.value === false) {\r\n return \"No\";\r\n }\r\n }\r\n\r\n\r\n //return HTML for Anchor element pointing to role-specific carrier details page\r\n detailsLinkCellRenderer(params: any, isCarrierName: boolean) {\r\n //include the route-href parameter so that the addBaseUrlIfMiddleClick (in app.ts) is processed (even though the href attribute is set directly)\r\n let displayValue = params.value;\r\n if (displayValue) {\r\n return `${displayValue}`;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // Copies a string to the clipboard. Must be called from within an \r\n // event handler such as click. May return false if it failed, but\r\n // this is not always possible. Browser support for Chrome 43+, \r\n // Firefox 42+, Safari 10+, Edge and IE 10+.\r\n // IE: The clipboard feature may be disabled by an administrator. By\r\n // default a prompt is shown the first time the clipboard is \r\n // used (per session).\r\n copyToClipboard(text) {\r\n if (window[\"clipboardData\"] && window[\"clipboardData\"].setData) {\r\n // IE specific code path to prevent textarea being shown while dialog is visible.\r\n return window[\"clipboardData\"].setData(\"Text\", text);\r\n\r\n } else if (document.queryCommandSupported && document.queryCommandSupported(\"copy\")) {\r\n var textarea = document.createElement(\"textarea\");\r\n textarea.textContent = text;\r\n textarea.style.position = \"fixed\"; // Prevent scrolling to bottom of page in MS Edge.\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n try {\r\n return document.execCommand(\"copy\"); // Security exception may be thrown by some browsers.\r\n } catch (ex) {\r\n console.warn(\"Copy to clipboard failed.\", ex);\r\n return false;\r\n } finally {\r\n document.body.removeChild(textarea);\r\n }\r\n }\r\n }\r\n\r\n onReady() {\r\n this.isGridReady = true;\r\n this.gridApi = this.gridOptions.api;\r\n this.autosizeColumns();\r\n this.resizeGridHeight();\r\n\r\n this.gridApi.gridPanel.eRoot.addEventListener(\"keydown\", this.createCtrlCEventHandler(), false);\r\n\r\n this.gridApi.addEventListener(\"modelUpdated\", (e) => {\r\n this.modelUpdated();\r\n });\r\n this.modelUpdated();\r\n\r\n\r\n }\r\n\r\n createCtrlCEventHandler() {\r\n var self = this;\r\n return this.ctrlCEvent = (e) => {\r\n e = e || window.event;\r\n var key = e.which || e.keyCode; // keyCode detection\r\n var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection\r\n\r\n if (key == 67 && ctrl) {\r\n self.copyToClipboard(e.target.textContent);\r\n $[\"notify\"](\"Content Copied to clipboard\", { className: \"success\", position: \"top center\" });\r\n }\r\n }\r\n }\r\n\r\n modelUpdated() {\r\n this.autosizeColumns();\r\n // this.storeModel(this.gridApi.getModel());\r\n }\r\n\r\n // storeModel(model) {\r\n // //store current model in local storage so that other pages can use prev/next navigation\r\n // var rows = model.rowsToDisplay.map((m) => m.data);\r\n // var json = JSON.stringify(rows);\r\n // localStorage.setItem(\"gridRows\", json);\r\n // }\r\n\r\n autosizeColumns() {\r\n this.gridOptions.api.columnController.autoSizeAllColumns();\r\n }\r\n\r\n static lastKnownWindowHeight: number;\r\n\r\n resizeGridHeight() {\r\n let $: any = window[\"$\"];\r\n let $gridContainer = $(this.gridContainer);\r\n if (this.gridOptions.api) {\r\n\r\n //when resizing the window, shrink entire container to smallest possible size \r\n // so that subsequent calculations are correct .\r\n // This is necessary when window is sized to a smaller size.\r\n\r\n //if (windowResized) {\r\n // $gridContainer.height(50);\r\n //}\r\n\r\n var footerHeight = $(\"footer\").outerHeight(true);\r\n var targetHeight = $(window).height() - $gridContainer.offset().top - footerHeight - 20;\r\n if (targetHeight < this.GRID_MIN_HEIGHT) {\r\n targetHeight = this.GRID_MIN_HEIGHT;\r\n }\r\n\r\n if ($gridContainer.height() !== targetHeight) {\r\n\r\n // Use this information for debugging resize issues\r\n //$log.trace(\"RESIZING GRID\");\r\n //$log.trace(\"==============================\");\r\n //$log.trace(`FOOTER HEIGHT: ${footerHeight}`);\r\n //$log.trace(`WINDOW HEIGHT: ${$(window).height()}`);\r\n //$log.trace(`DOCUMENT HEIGHT: ${$(document).height()}`);\r\n //$log.trace(`GRID CONTAINER offset().top: ${$gridContainer.offset().top}`);\r\n //$log.trace(`NEW GRID HEIGHT: ${targetHeight}`);\r\n\r\n\r\n //resize the kendogrid according to its container\r\n $gridContainer.stop().animate(\r\n { height: targetHeight },\r\n {\r\n progress: function () {\r\n //widget.resize();\r\n }, duration: 'fast'\r\n });\r\n }\r\n }\r\n }\r\n\r\n static dateFilterParams = {\r\n\r\n // provide comparator function (used when sorting)\r\n comparator: function (filterLocalDateAtMidnight, cellValue) {\r\n\r\n // In the example application, dates are stored as dd/mm/yyyy\r\n // We create a Date object for comparison against the filter date\r\n var cellDate = new Date(cellValue);\r\n\r\n // Now that both parameters are Date objects, we can compare\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class AuditableEntity {\r\n insertedBy: string = undefined;\r\n insertedOn: Date = undefined;\r\n updatedBy: string = undefined;\r\n updatedOn: Date = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { AuditableEntity } from \"./auditable-entity\";\r\n\r\nexport class CmpTaskBase extends AuditableEntity {\r\n number: string = undefined;\r\n shortDescription: string = undefined;\r\n description: string = undefined;\r\n taskVariablesId: string = undefined;\r\n assignedToId: string = undefined;\r\n assignmentGroupId: string = undefined;\r\n openedOn: Date = undefined;\r\n dueDate: Date = undefined;\r\n openedById: string = undefined;\r\n closedOn: Date = undefined;\r\n closedById: string = undefined;\r\n active: boolean = undefined;\r\n taskStateId: string = undefined;\r\n taskTypeId: string = undefined;\r\n parentId: string = undefined;\r\n taskKey: string = undefined;\r\n taskId: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class ICmpComment {\r\n comment: string = undefined;\r\n insertedBy: string = undefined;\r\n insertedOn: Date = undefined;\r\n updatedBy: string = undefined;\r\n updatedOn: Date = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { ICmpComment } from \"./i-cmp-comment\";\r\n\r\nexport class CmpTaskComment extends ICmpComment {\r\n cmpTaskCommentId: string = undefined;\r\n taskId: string = undefined;\r\n isCustomerVisible: boolean = undefined;\r\n createdById: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { CmpTaskBase } from \"./cmp-task-base\";\r\n\r\nexport class CmpTask extends CmpTaskBase {\r\n cmpTaskId: string = undefined;\r\n taskId: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { CmpTaskBase } from \"./cmp-task-base\";\r\n\r\nexport class Request extends CmpTaskBase {\r\n requestId: string = undefined;\r\n requestedForId: string = undefined;\r\n taskId: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { ActivityStreamItemBase } from \"./activity-stream-item-base\";\r\n\r\nexport class ActivityStreamComment extends ActivityStreamItemBase {\r\n canEdit: boolean = undefined;\r\n comment: string = undefined;\r\n updatedBy: string = undefined;\r\n updatedOn: Date = undefined;\r\n tags: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { ActivityStreamItemBase } from \"./activity-stream-item-base\";\r\n\r\nexport class ActivityStreamEmail extends ActivityStreamItemBase {\r\n to: string = undefined;\r\n subject: string = undefined;\r\n preview: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class NewCarrierRequestVariablesDto {\r\n legalName: string = undefined;\r\n dbaName: string = undefined;\r\n scacCode: string = undefined;\r\n dotNumber: string = undefined;\r\n carrierId: string = undefined;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum RequestState {\r\n New = 0,\r\n InProgress = 1,\r\n ClosedIncomplete = 2,\r\n ClosedComplete = 3,\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class TaskStateIds {\r\n static readonly new: string = \"822c9874-750d-4142-857d-c5fed808b5f5\";\r\n static readonly inProgress: string = \"d5d54e33-2c2c-41ca-9d7c-86dd2742c1ee\";\r\n static readonly awaitingResponse: string = \"744c6fad-c04c-458e-a0eb-243a2a6c97e7\";\r\n static readonly closedIncomplete: string = \"54eab322-f36e-4a62-9f01-623eefa94da6\";\r\n static readonly closedComplete: string = \"9c562024-739f-480a-893c-4b61cb7002f8\";\r\n static inProgressStates: string[] = [\"d5d54e33-2c2c-41ca-9d7c-86dd2742c1ee\",\"744c6fad-c04c-458e-a0eb-243a2a6c97e7\"];\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum TaskState {\r\n New = 0,\r\n InProgress = 1,\r\n AwaitingResponse = 2,\r\n ClosedIncomplete = 3,\r\n ClosedComplete = 4,\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class TaskTypeIds {\r\n static readonly simpleTask: string = \"b3702d91-b979-41ce-9a58-3a0e774c14bc\";\r\n}\r\n","import { autoinject } from 'aurelia-framework';\r\n\r\n@autoinject\r\nexport class Index {\r\n\r\n constructor() {\r\n }\r\n\r\n}","import { bindable, bindingMode, containerless } from 'aurelia-framework';\r\n\r\n@containerless()\r\nexport class OrgChart {\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) items: any[];\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) currentItemId: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) removeNodeFn: (item) => Promise;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) addNodeFn: (item) => Promise;\r\n}","import { bindable, bindingMode, containerless } from 'aurelia-framework';\r\nimport { OrgStructureNode } from '../../../models/org-structure-node';\r\n\r\n@containerless()\r\nexport class OrgNode {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) sourceComponent: any;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) item: any;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) currentItemId: number;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) removeNodeFn: (item: OrgStructureNode, which: \"self\" | \"children\") => Promise;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) addNodeFn: (item: OrgStructureNode, which: \"parent\" | \"child\") => Promise;\r\n\r\n addNode(item: OrgStructureNode, which: \"parent\" | \"child\") {\r\n this.addNodeFn(item, which);\r\n }\r\n\r\n removeNode(item: OrgStructureNode, which: \"self\" | \"children\") {\r\n this.removeNodeFn(item, which);\r\n }\r\n}\r\n\r\n","\r\nexport class CarrierRequirementExemptionDialogParams{\r\n public carrierMasterApprovalRequirementId?: string;\r\n public carrierName: string;\r\n public carrierId: string;\r\n\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport { WebApiService } from '../../../services/web-api-service';\r\nimport { BusyService } from '../../../services/busy-service';\r\nimport { CarrierRequirementExemptionDialogParams } from './carrier-requirement-exemption-dialog-params';\r\n\r\n@autoinject\r\nexport class CarrierRequirementExemptionDialog {\r\n public context: CarrierRequirementExemptionDialogParams;\r\n public dialogTitle: string;\r\n\r\n constructor(\r\n protected controller: DialogController,\r\n private api: WebApiService,\r\n private busyService: BusyService) {\r\n }\r\n\r\n public submitted = false;\r\n public exemptionComment = \"\";\r\n\r\n async activate(params) {\r\n this.context = params as CarrierRequirementExemptionDialogParams;\r\n if (this.context.carrierMasterApprovalRequirementId) {\r\n this.dialogTitle = \"Edit exemption\";\r\n } else {\r\n this.dialogTitle = \"Add new exemption\";\r\n }\r\n }\r\n\r\n public async save(){\r\n this.submitted = true;\r\n if( this.exemptionComment){\r\n var exemption = {\r\n carrierMasterApprovalRequirementId: this.context.carrierMasterApprovalRequirementId,\r\n exemptionComment: this.exemptionComment\r\n };\r\n await this.api.post(\"Carriers\", \"AddNewRequirementExcemption\", exemption);\r\n this.controller.ok(true);\r\n }\r\n }\r\n}","import { CarriersController } from \"../../../controllers/carriers-controller\";\r\nimport { Carrier } from \"../../../models/carrier\"\r\nimport { CarrierFilter } from \"../../../models/carrier-filter\"\r\nimport { BusyService } from \"../../../services/busy-service\";\r\nimport { WebApiService } from \"../../../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { AppMessageService } from \"../../../services/app-message-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateUserDialog } from \"../../dialogs/update-user-dialog\";\r\nimport { PageMessageService } from \"../../../services/page-message-service\";\r\nimport { SimpleDialog } from \"../../dialogs/simple-dialog\";\r\nimport { SecurityService } from \"../../../services/security-service\"; 6\r\nimport { CmpTaskDto } from \"../../../data/typegen/dtos/cmp-task-dto\";\r\nimport { CmpTaskCommentDto } from \"../../../data/typegen/dtos/cmp-task-comment-dto\";\r\nimport { DisplayValuePair } from \"../../../data/typegen/dtos/display-value-pair\";\r\nimport { TaskState } from \"../../../data/enums/taskState\";\r\nimport { NewUserRequestTaskDto } from \"../../../data/typegen/dtos/new-user-request-task-dto\";\r\nimport { RequestDto } from \"../../../data/typegen/dtos/request-dto\";\r\nimport { DoUiActionDto } from \"../../../data/typegen/dtos/do-ui-action-dto\";\r\nimport { CmpTaskBaseDto } from \"../../../data/typegen/dtos/cmp-task-base-dto\";\r\nimport { RequestTypeIds } from \"../../../data/typegen/enums/request-type-ids\";\r\nimport { Router } from 'aurelia-router';\r\nimport { ActivityStreamItemBase } from \"../../../data/typegen/dtos/activity-stream-item-base\";\r\nimport { RequestStateIds } from \"../../../data/typegen/enums/request-state-ids\";\r\nimport { RequestDetailsScreenDataDto } from \"../../../data/typegen/dtos/request-details-screen-data-dto\";\r\n\r\n\r\n@autoinject()\r\nexport class MyTicketsPage {\r\n\r\n\r\n constructor(\r\n public securityService: SecurityService,\r\n private busyService: BusyService,\r\n private appMsg: AppMessageService,\r\n private msg: PageMessageService,\r\n private router: Router,\r\n private dialogService: DialogService,\r\n private api: WebApiService) {\r\n }\r\n\r\n\r\n public filter: \"all\" = \"all\";\r\n public includeInactive: false;\r\n\r\n public async setFilter(filter) {\r\n this.filter = filter;\r\n await this.loadRequests();\r\n this.filteredRequests = this.getFilteredRequests(this.filter);\r\n }\r\n\r\n requests = [];\r\n filteredRequests: Array = [];\r\n\r\n private getFilteredRequests(filter: \"all\") {\r\n var filtered = this.requests;\r\n return filtered;\r\n }\r\n\r\n\r\n \r\n async activate(params) {\r\n AureliaCookie.set('nav_stack', 'requests', {});\r\n await this.initializePage();\r\n }\r\n\r\n async refresh() {\r\n this.initializePage();\r\n }\r\n\r\n async initializePage() {\r\n await this.loadRequests();\r\n this.setFilter(this.filter);\r\n }\r\n\r\n\r\n async loadRequests() {\r\n this.busyService.on();\r\n try {\r\n var result;\r\n result = await this.api.get(\"Tasks\", \"GetMyTickets\", { includeInactive: this.includeInactive });\r\n this.requests = JSON.parse(result.response);\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n}","import { BusyService } from \"../../../services/busy-service\";\r\nimport { WebApiService } from \"../../../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\n//import 'ag-grid-enterprise/main';\r\nimport { observable, computedFrom, autoinject, bindable } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { PageMessageService } from \"../../../services/page-message-service\";\r\nimport { SecurityService } from \"../../../services/security-service\";\r\nimport { ActivityStreamItemBase } from \"../../../data/typegen/dtos/activity-stream-item-base\";\r\n\r\n\r\n@autoinject()\r\nexport class ActivityStream {\r\n\r\n public tinyMceOptions: any;\r\n\r\n public fileInput: HTMLInputElement;\r\n public fileCount: number;\r\n public totalSize: number;\r\n public selectedFiles: any[] = [];\r\n\r\n public filter = {showAll: false};\r\n\r\n @bindable() public isExternalView: boolean = false; // show activity from related tasks\r\n @bindable() public target: \"task\" | \"request\";\r\n\r\n @bindable()\r\n // @observable()\r\n public taskId: any;\r\n // public taskIdChanged() {\r\n // if (this.taskId) {\r\n // this.getActivityStream(this.taskId);\r\n // }\r\n // }\r\n\r\n @bindable()\r\n public activityStream: ActivityStreamItemBase[] = [];\r\n\r\n constructor(\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private dialogService: DialogService,\r\n private pageMessageService: PageMessageService,\r\n private api: WebApiService) {\r\n\r\n }\r\n\r\n public attached(): void {\r\n }\r\n\r\n private async getActivityStream(taskId: string) {\r\n\r\n this.busyService.on();\r\n try {\r\n var result = await this.api.get(\"Task\", \"getActivityStream\", { taskId: taskId });\r\n const activityStream = JSON.parse(result.response);\r\n this.activityStream = activityStream;\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n}","import { CarriersController } from \"../../../controllers/carriers-controller\";\r\nimport { Carrier } from \"../../../models/carrier\"\r\nimport { CarrierFilter } from \"../../../models/carrier-filter\"\r\nimport { BusyService } from \"../../../services/busy-service\";\r\nimport { WebApiService } from \"../../../services/web-api-service\";\r\nimport { AureliaCookie } from 'aurelia-cookie';\r\n\r\nimport { observable, computedFrom, autoinject } from \"aurelia-framework\";\r\nimport { singleton } from 'aurelia-framework';\r\nimport { AppMessageService } from \"../../../services/app-message-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { UpdateUserDialog } from \"../../dialogs/update-user-dialog\";\r\nimport { PageMessageService } from \"../../../services/page-message-service\";\r\nimport { SimpleDialog } from \"../../dialogs/simple-dialog\";\r\nimport { SecurityService } from \"../../../services/security-service\"; 6\r\nimport { TaskActionService } from \"../../requests/TaskActionService\";\r\nimport { UiActionButton } from \"../../requests/UiActionButton\";\r\nimport { IFulfillmentWidget, NewUserRequestFulfillment } from \"../../requests/new-user-request/new-user-request-fulfillment\";\r\nimport { CmpTaskDto } from \"../../../data/typegen/dtos/cmp-task-dto\";\r\nimport { CmpTaskCommentDto } from \"../../../data/typegen/dtos/cmp-task-comment-dto\";\r\nimport { DisplayValuePair } from \"../../../data/typegen/dtos/display-value-pair\";\r\nimport { TaskState } from \"../../../data/enums/taskState\";\r\nimport { NewUserRequestTaskDto } from \"../../../data/typegen/dtos/new-user-request-task-dto\";\r\nimport { RequestDto } from \"../../../data/typegen/dtos/request-dto\";\r\nimport { DoUiActionDto } from \"../../../data/typegen/dtos/do-ui-action-dto\";\r\nimport { CmpTaskBaseDto } from \"../../../data/typegen/dtos/cmp-task-base-dto\";\r\nimport { RequestTypeIds } from \"../../../data/typegen/enums/request-type-ids\";\r\nimport { Router } from 'aurelia-router';\r\nimport { ActivityStreamItemBase } from \"../../../data/typegen/dtos/activity-stream-item-base\";\r\nimport { RequestStateIds } from \"../../../data/typegen/enums/request-state-ids\";\r\nimport { RequestDetailsScreenDataDto } from \"../../../data/typegen/dtos/request-details-screen-data-dto\";\r\n\r\n\r\n@autoinject()\r\nexport class TicketPage {\r\n\r\n public task: CmpTaskDto;\r\n public request: RequestDto;\r\n public tasks: Array = [];\r\n public activityStream: Array = [];\r\n public assignedToUsers: Array> = [];\r\n public taskState = TaskState;\r\n public requestTypeIds = RequestTypeIds;\r\n public requestStateIds = RequestStateIds;\r\n public taskDetailsComponent: IFulfillmentWidget;\r\n\r\n private originalRequest: RequestDto;\r\n private saveUiAction: UiActionButton;\r\n\r\n public canAddComment = true;\r\n public carrier: Carrier;\r\n\r\n constructor(\r\n private taskActionService: TaskActionService,\r\n private securityService: SecurityService,\r\n private busyService: BusyService,\r\n private appMsg: AppMessageService,\r\n private msg: PageMessageService,\r\n private router: Router,\r\n private dialogService: DialogService,\r\n private api: WebApiService) {\r\n }\r\n\r\n\r\n async activate(params) {\r\n this.taskActionService.actionButtons.length = 0;\r\n await this.loadDataAsync(params.id);\r\n }\r\n\r\n\r\n\r\n async refresh() {\r\n await this.loadDataAsync(this.request.requestId);\r\n }\r\n\r\n async openInPlatform() {\r\n this.router.navigateToRoute(\"request-details\", { id: this.request.taskId });\r\n }\r\n\r\n async scrollToAddComment() {\r\n const el = window.document.querySelector(\"#addCommentSection\");\r\n if (el) {\r\n el.scrollIntoView({ inline: \"start\" });\r\n (window.document.querySelector(\"#addComment\") as any).focus();\r\n }\r\n }\r\n\r\n public async doAction(uiAction: UiActionButton, validate = true) {\r\n this.msg.clear();\r\n this.appMsg.clearPageScopedMessages();\r\n\r\n if (uiAction.triggersSubmit) {\r\n await this.runValidationRules();\r\n\r\n var action = new DoUiActionDto();\r\n action.taskDto = this.request;\r\n action.uiActionVerb = uiAction.key;\r\n\r\n // // cancel request\r\n // if (action.uiActionVerb == this.cancelUiAction.key) {\r\n // action.actionReason = prompt(\"Enter a reason for the cancellation:\");\r\n // if (!action.actionReason) {\r\n // return\r\n // }\r\n // }\r\n\r\n if (uiAction.triggersSubmit) {\r\n var isValid = !validate || !uiAction.performValidation || await this.runValidationRules();\r\n if (isValid) {\r\n await this.submitUiAction(action, uiAction.redirectAfterSubmit);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async runValidationRules() {\r\n // run standard rules before save\r\n // these rules should not require validation\r\n }\r\n\r\n submitUiAction(action: DoUiActionDto, redirectAfterSubmit: boolean = true) {\r\n //this.controller.validate();\r\n this.busyService.on();\r\n return this.api.post(\"Tasks\", \"DoRequestUiAction\", action)\r\n .then(async (result) => {\r\n\r\n\r\n if (redirectAfterSubmit) {\r\n var redirectRoute = AureliaCookie.get('nav_stack');\r\n if (redirectRoute) {\r\n this.router.navigateToRoute(redirectRoute);\r\n AureliaCookie.delete('nav_stack');\r\n return;\r\n }\r\n }\r\n\r\n this.updateUiActions();\r\n this.taskDetailsComponent.initUi();\r\n\r\n\r\n //await this.loadDataAsync(this.request.requestId);\r\n\r\n //var updatedTask = JSON.parse(result.response);\r\n //this.request = updatedTask;\r\n //this.originalTask = JSON.parse(JSON.stringify(this.request));\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n public async post() {\r\n this.busyService.on();\r\n try {\r\n await this.api.post(\"Tasks\", \"PostComment\", this.request);\r\n await this.loadDataAsync(this.request.requestId);\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n\r\n async loadDataAsync(requestId) {\r\n this.busyService.on();\r\n return this.api.get(\"Tasks\", \"GetRequestDetailsScreenDataDto\", { requestId: requestId, isExternalView: true })\r\n .then(async (result) => {\r\n if (result.response) {\r\n const screenData = JSON.parse(result.response) as RequestDetailsScreenDataDto;\r\n this.request = screenData.request;\r\n this.tasks = screenData.tasks;\r\n this.originalRequest = JSON.parse(JSON.stringify(this.request)) as RequestDto;\r\n this.activityStream = screenData.activityStream.filter(o => o.isCustomerVisible);\r\n\r\n this.saveUiAction = this.taskActionService.addUiActionFromTemplate(TaskActionService.saveActionTemplate);\r\n this.saveUiAction.visible = false;\r\n\r\n // carrier is needed for the requirements grid\r\n if (this.request.variables.CarrierId) {\r\n var carrierResult = await this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: this.request.variables.CarrierId });\r\n this.carrier = result && JSON.parse(carrierResult.response);\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n this.updateUiActions();\r\n }, 100);\r\n }\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n\r\n private updateUiActions() {\r\n }\r\n}","\r\nimport { newInstance, autoinject, singleton, bindable, bindingMode, observable } from 'aurelia-framework';\r\nimport { TaskActionService } from '../TaskActionService';\r\nimport { UiActionButton } from '../UiActionButton';\r\nimport { PageMessageService } from '../../../services/page-message-service';\r\nimport { BusyService } from '../../../services/busy-service';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { WebApiService } from '../../../services/web-api-service';\r\nimport { SimpleDialog } from '../../dialogs/simple-dialog';\r\nimport { UpdateUserDialog } from '../../dialogs/update-user-dialog';\r\nimport { Guid } from 'guid-typescript';\r\nimport { SecurityService } from '../../../services/security-service';\r\nimport { CmpTaskDto } from '../../../data/typegen/dtos/cmp-task-dto';\r\nimport { TaskState } from '../../../data/enums/taskState';\r\nimport { UpdateUserModel } from '../../../data/typegen/dtos/update-user-model';\r\nimport { ProcessNewUserTaskDto } from '../../../data/typegen/dtos/process-new-user-task-dto';\r\nimport { CmpTaskCommentInsertDto } from '../../../data/dtos/cmp-task-comment-insert-dto';\r\nimport { ValidationController } from 'aurelia-validation';\r\nimport { NewUserRequestVariablesDto } from '../../../data/typegen/dtos/new-user-request-variables-dto';\r\nimport { DoUiActionDto } from '../../../data/typegen/dtos/do-ui-action-dto';\r\nimport { CmpTaskBaseDto } from '../../../data/typegen/dtos/cmp-task-base-dto';\r\nimport { NewUserRequestTaskDto } from '../../../data/typegen/dtos/new-user-request-task-dto';\r\nimport { DoUiActionClientHandlerResult } from '../../../data/dtos/do-ui-action-client-handler-result';\r\nimport { RequestDto } from '../../../data/typegen/dtos/request-dto';\r\nimport { ComposeEmailDialog } from '../../dialogs/compose-email-dialog/compose-email-dialog';\r\nimport { FulfillmentWidget, IFulfillmentWidget } from '../new-user-request/new-user-request-fulfillment';\r\nimport { Globals } from '../../../models/globals';\r\n\r\n\r\n@autoinject()\r\nexport class InsuranceRenewalFulfillment extends FulfillmentWidget implements IFulfillmentWidget {\r\n\r\n public showCloseAction: boolean = true;\r\n public entityTypes: { id: string; description: string; }[] = new Globals().getEntityTypes();\r\n public showAdditionalRequestorFields: boolean = false;\r\n\r\n\r\n async validate(controller: ValidationController, obj: any) {\r\n return true;\r\n }\r\n\r\n private rejectAction: UiActionButton\r\n private approveAction: UiActionButton\r\n\r\n public get isTrucksCarrier(): boolean {\r\n return this.task && (this.task.variables.EntityType == \"TRUCKS\" || this.task.variables.EntityType == 'TRANSLOADER/TRUCKS');\r\n }\r\n\r\n public isComponentReadOnly = false;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readonly: boolean;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) task: CmpTaskDto;\r\n taskChanged() {\r\n this.initUi();\r\n }\r\n\r\n constructor(\r\n private taskActionService: TaskActionService,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService,\r\n element: Element\r\n ) {\r\n super(element);\r\n\r\n }\r\n\r\n\r\n public myDivisions = [];\r\n\r\n loadCarrierMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Divisions\", \"GetDivisions\")\r\n .then((result) => {\r\n this.myDivisions = JSON.parse(result.response);\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n async afterActionSubmit(uiAction: string, error?: any): Promise {\r\n // return true to reload the data\r\n return true;\r\n }\r\n\r\n public async initUi() {\r\n\r\n var isEditor = this.securityService.hasRole(\"Edit\");\r\n this.isComponentReadOnly = this.readonly || !this.task.active || !isEditor;\r\n this.showAdditionalRequestorFields = !!this.task.variables.DateNeeded;\r\n\r\n }\r\n\r\n\r\n public async doAction(action: DoUiActionDto): Promise {\r\n\r\n return DoUiActionClientHandlerResult.default;\r\n }\r\n\r\n async attached() {\r\n await this.initUi();\r\n await this.loadCarrierMills();\r\n await this.fireOnreadyEvent();\r\n }\r\n\r\n}","import { ValidationRules } from \"aurelia-validation\";\r\n\r\nexport class NewCarrierRequestSearchFormDto {\r\n entityType: string = \"\";\r\n legalName: string = undefined;\r\n dbaName: string = undefined;\r\n scacCode: string = undefined;\r\n dotNumber: string = undefined;\r\n mcNumber: string = undefined;\r\n}\r\n\r\nValidationRules\r\n .ensure((m: NewCarrierRequestSearchFormDto) => m.entityType).required()\r\n .ensure((m: NewCarrierRequestSearchFormDto) => m.legalName).required()\r\n .ensure((m: NewCarrierRequestSearchFormDto) => m.mcNumber).satisfies((val, obj) => {\r\n if (obj.entityType == \"TRUCKS\" || obj.entityType == 'TRANSLOADER/TRUCKS') {\r\n if (obj.scacCode || obj.dotNumber || obj.mcNumber) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n })\r\n .ensure((m: NewCarrierRequestSearchFormDto) => m.scacCode).satisfies((val, obj) => {\r\n if (obj.entityType == \"TRUCKS\" || obj.entityType == 'TRANSLOADER/TRUCKS') {\r\n if (obj.scacCode || obj.dotNumber || obj.mcNumber) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n })\r\n .ensure((m: NewCarrierRequestSearchFormDto) => m.dotNumber).satisfies((val, obj) => {\r\n if (obj.entityType == \"TRUCKS\" || obj.entityType == 'TRANSLOADER/TRUCKS') {\r\n if (obj.scacCode || obj.dotNumber || obj.mcNumber) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n })\r\n .on(NewCarrierRequestSearchFormDto);\r\n\r\n\r\n\r\n\r\n\r\n//export class NewCarrierRequestDto {\r\n// legalName: string = undefined;\r\n// dbaName: string = undefined;\r\n// scacCode: string = undefined;\r\n// dotNumber: string = undefined;\r\n// mcNumber: string = undefined;\r\n//}\r\n\r\n//ValidationRules\r\n// .ensure((m: NewCarrierRequestDto) => m.legalName).required()\r\n// .on(NewCarrierRequestDto);\r\n\r\n\r\n\r\n\r\n\r\nexport class NewCarrierRequestSubmitDto extends NewCarrierRequestSearchFormDto {\r\n // fields to submit request\r\n requestedForId: string = undefined;\r\n typeOfAuthority: string = undefined;\r\n contactName: string = undefined;\r\n contactEmail: string = undefined;\r\n contactPhone: string = undefined;\r\n // NOT used - be careful if adding these back, it will cause phantom FMCSA discrepancies errors on the details screen\r\n // legalAddressStreet: string = undefined;\r\n // legalAddressCity: string = undefined;\r\n // legalAddressState: string = undefined;\r\n // legalAddressZip: string = undefined;\r\n mainPhone: string = undefined;\r\n divisions = [];\r\n requiredInsurance: string = undefined;\r\n describeNeeds: string = undefined;\r\n dateNeeded: Date = undefined;\r\n isReevaluationRequest: Boolean = false;\r\n reevaluationRequestCarrierId: number = undefined;\r\n isInsuranceRenewalRequest: boolean = false;\r\n insuranceRenewalRequestCarrierId: number = undefined;\r\n isOnboardingRequest: Boolean = false;\r\n overrideFmcsaNotFound: boolean = false;\r\n\r\n constructor(defaultRequestedForId: string) {\r\n super();\r\n this.requestedForId = defaultRequestedForId;\r\n }\r\n}\r\n\r\nconst isInFuture = (date) => new Date(date) >= new Date();\r\n\r\nValidationRules\r\n /// 10/27 #148902: Enhance Required fields when submitting new onboarding request\r\n // .ensure((m: NewCarrierRequestSubmitDto) => m.mainPhone).satisfies((val, obj) => (!obj.isReevaluationRequest) || !!val)\r\n // .ensure((m: NewCarrierRequestSubmitDto) => m.contactName).satisfies((val, obj) => (!obj.isReevaluationRequest) || !!val)\r\n // .ensure((m: NewCarrierRequestSubmitDto) => m.contactEmail).satisfies((val, obj) => (!obj.isReevaluationRequest) || !!val)\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.dotNumber).satisfies((val, obj) => !obj.isOnboardingRequest || !!val)\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.contactPhone).satisfies((val, obj) => !!val)\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.contactName).satisfies((val, obj) => !!val)\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.contactEmail).satisfies((val, obj) => !!val)\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.divisions).satisfiesRule(\"arrayIsNotEmpty\")\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.requiredInsurance).required()\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.describeNeeds).required()\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.typeOfAuthority).required()\r\n .ensure((m: NewCarrierRequestSubmitDto) => m.dateNeeded).required().satisfiesRule(\"date\").satisfies((val, obj) => isInFuture(val))\r\n .on(NewCarrierRequestSubmitDto);","import { PageMessageService } from '../../../services/page-message-service';\r\nimport { WebApiService } from '../../../services/web-api-service';\r\nimport { DefaultValidationRenderer } from \"../../../resources/renderers/default-validation-renderer\";\r\nimport { activationStrategy, Router } from 'aurelia-router';\r\n\r\nimport { newInstance, autoinject, singleton } from 'aurelia-framework';\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, Validator } from 'aurelia-validation';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { SimpleDialog } from '../../dialogs/simple-dialog';\r\nimport { NewCarrierRequestSearchFormDto, NewCarrierRequestSubmitDto } from './new-carrier-request-dto';\r\nimport { SecurityService } from '../../../services/security-service';\r\nimport { BusyService } from '../../../services/busy-service';\r\nimport { ComposeEmailDialog } from '../../dialogs/compose-email-dialog/compose-email-dialog';\r\nimport { RequestDto } from '../../../data/typegen/dtos/request-dto';\r\nimport { Globals } from '../../../models/globals';\r\nimport { Carrier } from '../../../models/carrier';\r\nimport { DisplayValuePair } from '../../../data/typegen/dtos/display-value-pair';\r\nimport { SettingsService } from '../../../services/settings-service';\r\n\r\n@singleton()\r\n@autoinject()\r\nexport class NewCarrierRequest {\r\n public requestSubmitted: boolean;\r\n public taskNumber: string;\r\n public searchDto = new NewCarrierRequestSearchFormDto();\r\n public entityTypes: { id: string; description: string; }[] = new Globals().getEntityTypes();\r\n\r\n taskId: string;\r\n private queryParam: string; //json url param specify the search parameters\r\n public canRequestReevaluation: boolean;\r\n public canRequestRenewal: boolean;\r\n public selectedCarrierActiveOnboardingRequest: string;\r\n public selectedCarrier: any;\r\n public pageTitle: string;\r\n selectedCarrierActiveRenewalRequestId: string;\r\n public requestedForUsers: Array> = [];\r\n\r\n\r\n determineActivationStrategy() {\r\n //activationStrategy.replace to replace the viewmodel with a new instance\r\n // or activationStrategy.invokeLifecycle to invoke router lifecycle methods on the existing VM\r\n // or activationStrategy.noChange to explicitly use the default behavior\r\n return activationStrategy.invokeLifecycle;\r\n }\r\n\r\n public get isTrucksCarrier(): boolean {\r\n return this.searchDto && (this.searchDto.entityType == \"TRUCKS\" || this.searchDto.entityType == 'TRANSLOADER/TRUCKS');\r\n }\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private router: Router,\r\n private busyService: BusyService,\r\n private settingsService: SettingsService,\r\n private pageMessageService: PageMessageService,\r\n private controller: ValidationController,\r\n private api: WebApiService,\r\n private securityService: SecurityService) {\r\n\r\n this.controller.validateTrigger = validateTrigger.change;\r\n controller.addRenderer(new DefaultValidationRenderer());\r\n this.pageTitle = \"Request New Carrier\";\r\n }\r\n\r\n async activate(params) {\r\n await this.securityService.init();\r\n this.currentUserIsDivisionUser = this.securityService.user.millCodes.length > 0;\r\n this.loadCarrierMills();\r\n this.loadRequestedForUsers();\r\n\r\n this.queryParam = params.query;\r\n\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 500);\r\n }\r\n\r\n private reset() {\r\n // let user keep old search criteria\r\n //this.searchDto = new NewCarrierRequestSearchFormDto();\r\n this.pageMessageService.clear();\r\n this.dateNeededWarning = \"\";\r\n this.pageTitle = \"Request New Carrier\";\r\n this.submitDto = new NewCarrierRequestSubmitDto(this.securityService.user.id);\r\n this.searchResults = [];\r\n this.requestSubmitted = false;\r\n this.taskNumber = undefined;\r\n this.panel1Open = true;\r\n this.panel2Open = false;\r\n this.selectedRowId = undefined;\r\n this.hasSearchCompleted = false;\r\n this.hasSelectedCarrier = false;\r\n this.selectedCarrierIsOnMyRoster = false;\r\n this.selectedCarrier = undefined;\r\n this.selectedCarrierId = undefined;\r\n this.canRequestReevaluation = false;\r\n }\r\n\r\n public currentUserIsDivisionUser = false;\r\n public searchResults: any = [];\r\n public panel1Open = true;\r\n public panel2Open = false;\r\n public submitDto: NewCarrierRequestSubmitDto = undefined;\r\n public myDivisions = [];\r\n public allDivisionsSelected: boolean = false;\r\n\r\n\r\n public selectedCarrierId: number;\r\n public selectedRowId: string;\r\n public hasSearchCompleted: boolean = false;\r\n public hasSelectedCarrier: boolean = false;\r\n public selectedCarrierIsOnMyRoster: boolean = false;\r\n\r\n\r\n public attached() {\r\n\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 500);\r\n\r\n if (this.queryParam && !this.hasSearchCompleted) {\r\n Object.assign(this.searchDto, JSON.parse(decodeURIComponent(this.queryParam)));\r\n this.doSearch();\r\n }\r\n }\r\n\r\n fixVerticalTabindex(selector) {\r\n let tabindex = 1;\r\n const tables = document.querySelectorAll(selector);\r\n\r\n tables.forEach(tbl => {\r\n const lastColumns = tbl.querySelectorAll('.row > div[class*=\"col\"]:last-child');\r\n\r\n lastColumns.forEach(col => {\r\n const formElements = col.querySelectorAll('input, select, textarea');\r\n\r\n formElements.forEach(obj => {\r\n obj.setAttribute('tabindex', tabindex++);\r\n });\r\n });\r\n });\r\n }\r\n\r\n public async doSearch() {\r\n this.searchResults = [];\r\n this.hasSearchCompleted = false;\r\n const v = await this.controller.validate();\r\n if (v.length == 0) {\r\n this.busyService.on();\r\n try {\r\n var result = await this.api.post(\"SubmitRequest\", \"NewCarrierRequest_Search\", this.searchDto);\r\n this.busyService.off();\r\n this.searchResults = JSON.parse(result.response);\r\n this.hasSearchCompleted = true;\r\n this.selectedRowId = undefined;\r\n } finally {\r\n this.busyService.off();\r\n this.updateUrlSearchParams();\r\n }\r\n } else {\r\n //this.router.navigateToRoute(\"new-carrier-request\");\r\n }\r\n }\r\n\r\n public async newSearch() {\r\n this.reset();\r\n }\r\n\r\n public async updateUrlSearchParams() {\r\n const json = JSON.stringify(this.searchDto);\r\n const encodedParam = encodeURIComponent(json);\r\n this.router.navigateToRoute(\"new-carrier-request\", { query: encodedParam, replace: true });\r\n }\r\n\r\n public async showSearchStep() {\r\n this.reset();\r\n }\r\n\r\n \r\n public async showRequestEvaluationStep() {\r\n this.pageTitle = \"Request Carrier Re-evaluation\";\r\n this.pageMessageService.clear();\r\n this.submitDto = new NewCarrierRequestSubmitDto(this.securityService.user.id);\r\n Object.assign(this.submitDto, this.searchDto);\r\n\r\n \r\n // for re-evaluation request, overwrite the fields with ones from the actual selected carrier record\r\n // (character case isn't consistent, so find matching properties using case-insentivive compare)\r\n for (const prop in this.submitDto) {\r\n var lowerProp = prop.toLowerCase();\r\n for (const sourceProp in this.selectedCarrier) {\r\n if (sourceProp.toLowerCase() == lowerProp) {\r\n this.submitDto[prop] = this.selectedCarrier[sourceProp];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.submitDto.isReevaluationRequest = true;\r\n this.submitDto.reevaluationRequestCarrierId = this.selectedCarrierId;\r\n this.requestSubmitted = false;\r\n this.panel1Open = false;\r\n this.panel2Open = true;\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 100);\r\n }\r\n\r\n public async showRequestInsuranceRenewalStep() {\r\n this.pageTitle = \"Request Expedited Insurance Renewal\";\r\n this.pageMessageService.clear();\r\n this.submitDto = new NewCarrierRequestSubmitDto(this.securityService.user.id);\r\n Object.assign(this.submitDto, this.searchDto);\r\n\r\n // for re-evaluation request, overwrite the fields with ones from the actual selected carrier record\r\n // (character case isn't consistent, so find matching properties using case-insentivive compare)\r\n for (const prop in this.submitDto) {\r\n var lowerProp = prop.toLowerCase();\r\n for (const sourceProp in this.selectedCarrier) {\r\n if (sourceProp.toLowerCase() == lowerProp) {\r\n this.submitDto[prop] = this.selectedCarrier[sourceProp];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.submitDto.isInsuranceRenewalRequest = true;\r\n this.submitDto.insuranceRenewalRequestCarrierId = this.selectedCarrierId;\r\n this.requestSubmitted = false;\r\n this.panel1Open = false;\r\n this.panel2Open = true;\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 100);\r\n }\r\n\r\n\r\n\r\n public async showRequestStep() {\r\n this.pageMessageService.clear();\r\n const v = await this.controller.validate();\r\n if (v.length == 0) {\r\n //ensure that the DOT # doesn't already exist\r\n if (this.searchDto.dotNumber && this.searchResults.find(o => o.StatusId != 14 /*Abandoned*/ && !o.Deleted && o.DotNumber == this.searchDto.dotNumber)) {\r\n this.pageMessageService.setErrorMessage(\"An active carrier profile already exists for the specified DOT #\");\r\n }\r\n else {\r\n this.submitDto = new NewCarrierRequestSubmitDto(this.securityService.user.id);\r\n this.submitDto.isOnboardingRequest = true;\r\n Object.assign(this.submitDto, this.searchDto);\r\n this.requestSubmitted = false;\r\n this.panel1Open = false;\r\n this.panel2Open = true;\r\n setTimeout(() => { this.fixVerticalTabindex('.page-content'); }, 100);\r\n }\r\n }\r\n }\r\n\r\n public dateNeededWarning: string = \"\";\r\n public dateNeededChanged() {\r\n setTimeout(() => {\r\n const is60DaysOrLessInFuture = (date) => new Date(date) < new Date(Date.now() + 60 * 24 * 60 * 60 * 1000);\r\n if (this.submitDto.dateNeeded && is60DaysOrLessInFuture(this.submitDto.dateNeeded)) {\r\n this.dateNeededWarning = \"The average time to set up a new carrier is 60 days.\";\r\n } else {\r\n this.dateNeededWarning = \"\";\r\n }\r\n });\r\n }\r\n\r\n\r\n public async submitRequest(overrideFmcsaNotFound = false) {\r\n this.pageMessageService.clear();\r\n const v = await this.controller.validate();\r\n if (v.length == 0) {\r\n this.busyService.on();\r\n try {\r\n let action = \"\";\r\n if (this.submitDto.isReevaluationRequest) {\r\n action = \"CarrierReevaluationRequest_Submit\";\r\n } else if (this.submitDto.isInsuranceRenewalRequest) {\r\n action = \"InsuranceRenewalRequest_Submit\";\r\n } else {\r\n action = \"NewCarrierRequest_Submit\";\r\n }\r\n\r\n this.submitDto.overrideFmcsaNotFound = overrideFmcsaNotFound;\r\n var result = await this.api.post(\"SubmitRequest\", action, this.submitDto);\r\n\r\n // check for possibility that DOT # doesn't exist in FMCSA API search\r\n var responseCode = result.headers.get(\"x-cmp-response-code\");\r\n if (responseCode == \"FMCSA-NOT-FOUND\") {\r\n debugger;\r\n if (this.settingsService.settings[\"allowOverrideFmcsaNotFound\"] == true) {\r\n // if system allows, allow user opportunity to create the request, even if not found in FMCSA api search\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"FMCSA Validation Failed\",\r\n icon: \"fa-exclamation-triangle\",\r\n message: \"DOT # not found in FMCSA database. Do you still want to create a request for this carrier?\",\r\n buttons: [\"Yes\", \"No\"]\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"Yes\") {\r\n this.submitRequest(true);\r\n }\r\n }\r\n });\r\n } else {\r\n // otherwise, prohibit the user from submitting the request.\r\n this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"FMCSA Validation Failed\",\r\n icon: \"fa-exclamation-triangle\",\r\n message: \"DOT # not found in FMCSA database. Please update the information and try again.\",\r\n buttons: [\"Ok\"]\r\n }\r\n });\r\n }\r\n } else {\r\n var req = JSON.parse(result.response) as RequestDto;\r\n this.taskNumber = req.number;\r\n this.taskId = req.taskId;\r\n this.requestSubmitted = true;\r\n }\r\n } finally {\r\n this.busyService.off();\r\n }\r\n }\r\n }\r\n\r\n public onRowDoubleClick(args) {\r\n var carrierId = args.data.Id;\r\n this.viewCarrierDetails(carrierId);\r\n }\r\n\r\n public viewCarrierDetails(carrierId) {\r\n this.pageMessageService.clear();\r\n if (this.currentUserIsDivisionUser) {\r\n this.router.navigate(`carrier-summary/${carrierId}`);\r\n } else {\r\n this.router.navigate(`work-carrier/${carrierId}`);\r\n }\r\n }\r\n\r\n public async onRowSelected(args) {\r\n if (this.securityService.user) {\r\n if (args.node.selected) {\r\n this.hasSelectedCarrier = true;\r\n this.selectedRowId = args.node.id;\r\n this.selectedCarrier = args.data;\r\n this.selectedCarrierId = this.selectedCarrier.Id;\r\n const carrierMills = (this.selectedCarrier.Mills || \"\");\r\n const myMills = this.securityService.user.millCodes;\r\n let selectedCarrierIsOnMyRoster = false;\r\n myMills.forEach(o => {\r\n if (carrierMills.indexOf(o) > -1) {\r\n selectedCarrierIsOnMyRoster = true;\r\n }\r\n });\r\n this.selectedCarrierIsOnMyRoster = selectedCarrierIsOnMyRoster;\r\n\r\n\r\n this.selectedCarrierActiveOnboardingRequest = undefined;\r\n this.selectedCarrierActiveRenewalRequestId = undefined;\r\n let request: RequestDto;\r\n this.busyService.on();\r\n try {\r\n const result = await this.api.get(\"Carriers\", \"GetCarrierRequest\", { carrierId: this.selectedCarrierId, includeClosed: false });\r\n request = JSON.parse(result.response || null);\r\n if (request && request.active) {\r\n if (request.type.value == \"2c837aa3-48a5-4a66-8a9f-a70d04d0a8b8\") {\r\n this.selectedCarrierActiveOnboardingRequest = request.number;\r\n } else if (request.type.value == \"c905cd38-ff01-4e0c-84cc-87bd9b9e52d2\") {\r\n this.selectedCarrierActiveRenewalRequestId = request.requestId;\r\n }\r\n }\r\n } finally {\r\n this.busyService.off();\r\n }\r\n\r\n\r\n\r\n this.canRequestReevaluation = false;\r\n this.canRequestRenewal = false;\r\n // if there's no active request, then we can allow a re-evaluation\r\n if (!this.selectedCarrierActiveOnboardingRequest) {\r\n\r\n // determine canRequestReevaluation flag\r\n const allowedReevaluationStatusIds = [\r\n 9, //\tNot Qualified\r\n 10, //\tInactive\r\n 11, //\tMaster Approved - Dormant\r\n 13, //\tSuspended\r\n 12, //\tClosed - Incomplete\r\n ];\r\n if (allowedReevaluationStatusIds.indexOf(this.selectedCarrier.StatusId) > -1) {\r\n this.canRequestReevaluation = true;\r\n }\r\n\r\n // allow renewal if master approved\r\n this.canRequestRenewal = this.selectedCarrier.StatusId == 8;\r\n }\r\n\r\n } else {\r\n // can't unselect current row, but this fired when the previous row is unselected\r\n }\r\n }\r\n }\r\n\r\n\r\n loadCarrierMills() {\r\n if (this.myDivisions.length == 0) {\r\n this.busyService.on();\r\n return this.api.get(\"Divisions\", \"GetDivisions\")\r\n .then((result) => {\r\n let carrierMills = JSON.parse(result.response);\r\n this.myDivisions = carrierMills.filter((item) =>\r\n this.securityService.user.millCodes.length == 0\r\n || this.securityService.user.millCodes.find(myMillCode => myMillCode == item.code)\r\n );\r\n this.busyService.off();\r\n });\r\n }\r\n }\r\n\r\n private loadRequestedForUsers() {\r\n this.busyService.on();\r\n return this.api.get(\"Tasks\", \"GetRequestedForUsers\")\r\n .then((result) => {\r\n this.requestedForUsers = JSON.parse(result.response);\r\n this.busyService.off();\r\n });\r\n\r\n }\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport { ContextMenu } from './context-menu';\r\n@autoinject()\r\nexport class ActionBar {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) message: string;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) contextMenu: ContextMenu;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) showListNavigator: boolean = false;\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) showBackButton: boolean = true;\r\n\r\n constructor() {\r\n }\r\n\r\n goBack() {\r\n window.history.back();\r\n }\r\n attached() {\r\n }\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject, containerless } from 'aurelia-framework';\r\nimport * as condition from './condition';\r\n\r\nconst FILTER_ALL: any = { filterText: \"All\" };\r\n\r\n@autoinject()\r\nexport class FilterPanel {\r\n\r\n constructor() {\r\n this.isExpanded = false;\r\n }\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) //setting this property from outside does nothing. It's meant to be set by this control so that host can react\r\n hasFilter: boolean;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay })\r\n isExpanded: boolean;\r\n isExpandedChanged() {\r\n if (this.isExpanded) {\r\n setTimeout(() => this.expander.style.visibility = \"visible\", 0);\r\n }\r\n if (!this.isExpanded) {\r\n setTimeout(() => this.expander.style.visibility = \"hidden\", 300);\r\n }\r\n }\r\n\r\n expander: any;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) conditions: Array = [this.getInitialCondition()];\r\n conditionsChanged() {\r\n this.buildFilterCaption();\r\n }\r\n\r\n @bindable() apply;\r\n\r\n //static _fields: Array;\r\n @bindable()\r\n fields: Array;\r\n\r\n getInitialCondition() {\r\n return condition.getDefaultCondition();\r\n }\r\n\r\n togglePanel() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n addCondition(currentCondition: condition.Condition, chainOperator: string) {\r\n let newCondition = new condition.Condition(chainOperator);\r\n if (chainOperator == \"or\") {\r\n let index = this.conditions.indexOf(currentCondition);\r\n newCondition.field = currentCondition.field;\r\n newCondition.operation = currentCondition.operation;\r\n this.conditions.splice(index + 1, 0, newCondition)\r\n } else {\r\n this.conditions.push(newCondition);\r\n }\r\n }\r\n\r\n removeCondition(condition) {\r\n var index = this.conditions.indexOf(condition);\r\n if (index > -1) {\r\n this.conditions.splice(index, 1);\r\n }\r\n if (this.conditions.length == 0) {\r\n this.conditions.push(this.getInitialCondition());\r\n }\r\n }\r\n\r\n breadcrumbs: Array = [FILTER_ALL];\r\n buildFilterCaption() {\r\n\r\n\r\n let crumbs = [];\r\n this.conditions.filter(o => typeof o.field == \"object\").forEach(c => {\r\n var crumb = { filterText: \"\", chainOperator: c.chainOperator, condition: c };\r\n //crumb.filterText = c.chainOperator == \"or\" ? ' or ' : '';\r\n crumb.filterText = c.field.label + \" \" + c.operation.operator;\r\n if (c.operation.input) {\r\n crumb.filterText += \" \" + (typeof c.value == \"object\" ? c.value.description : c.value);\r\n }\r\n crumbs.push(crumb);\r\n });\r\n\r\n //group breadcrumbs by 'and'\r\n this.breadcrumbs = [FILTER_ALL];\r\n crumbs.forEach((c, i) => {\r\n if (c.chainOperator == \"and\") {\r\n //new 'and' group\r\n c.orCrumbs = [];\r\n this.breadcrumbs.push(c);\r\n } else {\r\n this.breadcrumbs[i].orCrumbs.push(c);\r\n }\r\n });\r\n this.hasFilter = !(this.breadcrumbs.length == 1 && this.breadcrumbs[0] == FILTER_ALL);\r\n }\r\n\r\n _apply() {\r\n this.buildFilterCaption();\r\n this.isExpanded = false;\r\n this.apply();\r\n }\r\n\r\n clear() {\r\n this.conditions = [this.getInitialCondition()];\r\n setTimeout(() => this._apply(), 0);\r\n }\r\n\r\n jumpToCondition(condition) {\r\n var index = this.conditions.indexOf(condition);\r\n if (index > -1) {\r\n this.conditions.splice((index + 1));\r\n } else {\r\n this.conditions = [this.getInitialCondition()];\r\n }\r\n setTimeout(() => this._apply(), 0);\r\n }\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject, containerless } from 'aurelia-framework';\r\nimport * as condition from './condition';\r\nexport class SearchCriteria {\r\n\r\n constructor() {\r\n SearchCriteria.loadOperations();\r\n this.operations = SearchCriteria._operations;\r\n }\r\n\r\n @bindable() fields: any;\r\n @bindable() add;\r\n @bindable() remove;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) condition: any;\r\n\r\n _remove() {\r\n this.remove(this.condition);\r\n }\r\n\r\n fieldType = condition.ConditionFieldType;\r\n\r\n static _operations: Array;\r\n operations: Array;\r\n static loadOperations() {\r\n if (!SearchCriteria._operations) {\r\n SearchCriteria._operations = [];\r\n SearchCriteria._operations.push({\r\n operator: \"contains\",\r\n input: true,\r\n supportedTypes: [condition.ConditionFieldType.string]\r\n });\r\n SearchCriteria._operations.push({ operator: \"starts with\", input: true, supportedTypes: [condition.ConditionFieldType.string] });\r\n SearchCriteria._operations.push({ operator: \"equals\", input: true });\r\n //this.operations.push({ operator: \"is one of\", input: true });\r\n SearchCriteria._operations.push({ operator: \"is true\", supportedTypes: [condition.ConditionFieldType.bool], input: false });\r\n SearchCriteria._operations.push({ operator: \"is false\", supportedTypes: [condition.ConditionFieldType.bool], input: false });\r\n SearchCriteria._operations.push({ operator: \"greater than\", supportedTypes: [condition.ConditionFieldType.number, condition.ConditionFieldType.date], input: true});\r\n SearchCriteria._operations.push({ operator: \"less than\", supportedTypes: [condition.ConditionFieldType.number, condition.ConditionFieldType.date], input: true});\r\n SearchCriteria._operations.push({ operator: \"is empty\", input: false });\r\n SearchCriteria._operations.push({ operator: \"is not empty\", input: false });\r\n }\r\n }\r\n\r\n @computedFrom(\"operations.length\", \"condition.field\")\r\n get filteredOperations(): Array {\r\n\r\n if (!this.condition.field) {\r\n return [];\r\n }\r\n\r\n return this.operations.filter((operation) => {\r\n return !operation.supportedTypes || operation.supportedTypes.indexOf(this.condition.field.type) > -1;\r\n });\r\n }\r\n\r\n\r\n}","import { autoinject, bindable } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\nimport 'jquery';\r\nimport 'notify';\r\nimport { WebApiService } from '../../../../services/web-api-service';\r\nimport { BusyService } from '../../../../services/busy-service';\r\nimport { OnboardingRequirementDto } from '../../../../models/onboarding-requirement';\r\n\r\n@autoinject\r\nexport class LinkExistingDocumentDialog {\r\n constructor(protected controller: DialogController,\r\n private busyService: BusyService,\r\n private api: WebApiService) {\r\n }\r\n\r\n\r\n public upload() {\r\n this.controller.ok(\"UPLOAD\");\r\n }\r\n\r\n\r\n public selectAllReqs() {\r\n this.selectedRelatedRequirements = this.relatedRequirements;\r\n }\r\n\r\n public clearAllReqs() {\r\n this.selectedRelatedRequirements = [];\r\n }\r\n\r\n activate(params) {\r\n this.params = params;\r\n this.relatedRequirements = params.relatedRequirements;\r\n this.selectedRelatedRequirements = params.selectedRelatedRequirements;\r\n this.loadDataAsync();\r\n }\r\n\r\n public docs = [];\r\n public relatedRequirements = [];\r\n public selectedRelatedRequirements: any[] = [];\r\n\r\n public params: { carrierIntId: number, carrierId: string, req: OnboardingRequirementDto };\r\n\r\n private async loadDataAsync() {\r\n this.loadApplicableDocuments();\r\n }\r\n\r\n loadApplicableDocuments() {\r\n this.busyService.on();\r\n var params = { carrierId: this.params.carrierId, documentTypeIds: this.params.req.documentTypeIds, carrierRequirementId: this.params.req.carrierMasterApprovalRequirementId };\r\n return this.api.get(\"Carriers\", \"GetApplicableOnboardingRequirementDocuments\", params)\r\n .then((result) => {\r\n this.docs = JSON.parse(result.response);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n public link(doc) {\r\n this.busyService.on();\r\n\r\n const requirementIdsToLink = this.selectedRelatedRequirements.map(o => o.carrierMasterApprovalRequirementId);\r\n //also add the primary requirement\r\n requirementIdsToLink.push(this.params.req.carrierMasterApprovalRequirementId);\r\n\r\n var params = {\r\n DocumentVersionId: doc.documentVersionId,\r\n CarrierMasterApprovalRequirementIds: requirementIdsToLink\r\n };\r\n return this.api.post(\"Carriers\", \"LinkOnboardingRequirementDocumentMultiple\", params)\r\n .then((result) => {\r\n this.controller.ok(true);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n public unlink(doc) {\r\n this.busyService.on();\r\n\r\n const requirementIdsToUnlink = this.selectedRelatedRequirements.map(o => o.carrierMasterApprovalRequirementId);\r\n //also add the primary requirement\r\n requirementIdsToUnlink.push(this.params.req.carrierMasterApprovalRequirementId);\r\n\r\n var params = {\r\n DocumentVersionId: doc.documentVersionId,\r\n CarrierMasterApprovalRequirementIds: requirementIdsToUnlink\r\n }\r\n return this.api.post(\"Carriers\", \"UnlinkOnboardingRequirementDocument\", params)\r\n .then((result) => {\r\n this.controller.ok(true);\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n}","import { OnboardingRequirementDto, OnboardingRequirementTypes } from \"../../../models/onboarding-requirement\";\r\nimport { bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport { SecurityService } from \"../../../services/security-service\";\r\nimport { DialogService } from \"aurelia-dialog\";\r\nimport { BusyService } from \"../../../services/busy-service\";\r\nimport { WebApiService } from \"../../../services/web-api-service\";\r\nimport { CarrierRequirementDialog } from \"../../dialogs/carrier-requirement-dialog/carrier-requirement-dialog\";\r\nimport { CarrierRequirementExemptionDialog } from \"../../dialogs/carrier-requirement-exemption-dialog/carrier-requirement-exemption-dialog\";\r\nimport { CarrierRequirementExemptionDialogParams } from \"../../dialogs/carrier-requirement-exemption-dialog/carrier-requirement-exemption-dialog-params\";\r\nimport { UploadDocumentDialog } from \"../../dialogs/upload-document-dialog\";\r\nimport { LinkExistingDocumentDialog } from \"./link-existing-document-dialog/link-existing-document-dialog\";\r\nimport 'jquery';\r\nimport { SimpleDialog } from \"../../dialogs/simple-dialog\";\r\nimport { AppMessageService } from \"../../../services/app-message-service\";\r\nimport { UploadAndLinkDocumentDialog } from \"../../dialogs/upload-and-link-document-dialog\";\r\n\r\n@autoinject()\r\nexport class OnboardingRequirementDetail {\r\n\r\n\r\n private static index = 0;\r\n public id: string = \"\";\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private securityService: SecurityService,\r\n private api: WebApiService,\r\n private busyService: BusyService,\r\n private appMessageService: AppMessageService\r\n ) {\r\n }\r\n\r\n public attached() {\r\n if (this.req[\"isCategory\"]) {\r\n this.id = \"ID\" + (this.req.name);\r\n } else {\r\n this.id = \"ID\" + OnboardingRequirementDetail.index++;\r\n }\r\n if (!this.loadCollapsed) {\r\n this.req.carrierMasterApprovalRequirementId\r\n setTimeout(() => {\r\n jQuery(\"#\" + this.id).collapse(\"false\");\r\n })\r\n }\r\n }\r\n\r\n @bindable()\r\n public userView: \"CarrierService\" | \"Contracts & Insurance\" | \"ReadOnly\" = undefined;\r\n @bindable()\r\n public readonly: boolean = true;\r\n @bindable()\r\n public loadCollapsed: boolean = true;\r\n @bindable()\r\n public req: OnboardingRequirementDto;\r\n @bindable()\r\n public carrierId: string = \"none\";\r\n @bindable()\r\n public carrierIntId: number = -1;\r\n @bindable()\r\n public carrierName: string = undefined;\r\n\r\n /** gets/sets whether a carrier services agent can clear rejection\r\n * Should only be true when displayed when the request is in the onboarding stage */\r\n @bindable()\r\n public carrierServicesCanClearRejection: boolean = false;\r\n\r\n\r\n @bindable openInsurance: Function;\r\n @bindable refresh: Function;\r\n\r\n @bindable\r\n public showOptionalRequirements = false;\r\n\r\n public onboardingRequirementTypes = OnboardingRequirementTypes;\r\n\r\n public approve(req: OnboardingRequirementDto) {\r\n this.setVerification(req, \"Y\");\r\n }\r\n public reject(req: OnboardingRequirementDto) {\r\n this.setVerification(req, \"N\");\r\n }\r\n\r\n public async markAsWaived(req: OnboardingRequirementDto) {\r\n var model = {\r\n title: \"Waive Reason Required\",\r\n message: \"Please provide a comment to describe the reason for waiving this requirement:\",\r\n showComment: true,\r\n comment: \"\",\r\n buttons: [\"Save\", \"Cancel\"]\r\n };\r\n\r\n const commentResult = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Save\") {\r\n if (model.comment.trim().length >= 2) {\r\n req.comment = model.comment;\r\n return true;\r\n } else {\r\n alert(\"Valid Comment is Required\");\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n if (!commentResult) {\r\n return;\r\n }\r\n\r\n //mark as waived\r\n const params = {\r\n carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId,\r\n comment: req.comment,\r\n isWaived: true\r\n }\r\n await this.api.post(\"Carriers\", \"UpdateMasterOnboardingRequirementWaived\", params);\r\n this.refresh();\r\n this.appMessageService.addSuccessMessage(\"Requirement updated\");\r\n }\r\n\r\n\r\n\r\n private async setVerification(req: OnboardingRequirementDto, status: \"Y\" | \"N\") {\r\n if (req.verifiedStatus == status) {\r\n this.clearVerification(req);\r\n } else {\r\n // comment required when attempting to verify an incomplete requirement\r\n if (!req.isComplete && status == \"Y\") {\r\n var model = {\r\n title: \"Override Reason Required\",\r\n message: \"Please provide a comment to describe the reason for approving this incomplete requirement:\",\r\n showComment: true,\r\n comment: \"\",\r\n buttons: [\"Save\", \"Cancel\"]\r\n };\r\n\r\n const commentResult = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Save\") {\r\n if (model.comment.trim().length > 10) {\r\n req.comment = model.comment;\r\n return true;\r\n } else {\r\n alert(\"Valid Comment is Required\");\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n if (!commentResult) {\r\n return;\r\n }\r\n }\r\n req.verifiedByName = this.securityService.user.fullName;\r\n req.verifiedOn = new Date();\r\n req.verifiedStatus = status;\r\n const params = {\r\n carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId,\r\n endorsementTypeId: req.endorsementTypeId,\r\n verifiedStatus: req.verifiedStatus,\r\n comment: req.comment\r\n }\r\n await this.api.post(\"Carriers\", \"UpdateMasterOnboardingRequirementVerificationStatus\", params);\r\n this.appMessageService.addSuccessMessage(\"Verification updated\");\r\n }\r\n }\r\n private async clearVerification(req: OnboardingRequirementDto) {\r\n var model = {\r\n title: \"Remove Verification?\",\r\n message: \"Click OK to remove the verification from this requirement\",\r\n showComment: false,\r\n comment: \"\",\r\n buttons: [\"Ok\", \"Cancel\"]\r\n };\r\n\r\n const answer = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed(async (result) => {\r\n if (result.output == \"Ok\") {\r\n return true;\r\n }\r\n });\r\n\r\n if (!answer) {\r\n return;\r\n }\r\n\r\n req.verifiedByName = undefined;\r\n req.verifiedOn = undefined;\r\n if (req.isComplete) {\r\n req.verifiedStatus = \"U\";\r\n } else {\r\n req.verifiedStatus = undefined;\r\n }\r\n\r\n const params = {\r\n carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId,\r\n clearStatus: true\r\n }\r\n await this.api.post(\"Carriers\", \"ClearMasterOnboardingRequirementVerificationStatus\", params);\r\n this.appMessageService.addSuccessMessage(\"Verification removed\");\r\n\r\n }\r\n\r\n public async addComment(req: OnboardingRequirementDto) {\r\n var model = {\r\n title: \"Requirement Note\",\r\n message: \"Edit the note for this requirement:\",\r\n showComment: true,\r\n comment: req.comment,\r\n buttons: [\"Save\", \"Cancel\"]\r\n };\r\n\r\n const answer = await this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: model\r\n })\r\n .whenClosed((result) => {\r\n if (result.output == \"Save\") {\r\n req.comment = model.comment;\r\n return true;\r\n }\r\n });\r\n\r\n if (answer) {\r\n const params = {\r\n carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId,\r\n comment: req.comment\r\n }\r\n await this.api.post(\"Carriers\", \"UpdateMasterOnboardingRequirementComment\", params);\r\n this.appMessageService.addSuccessMessage(\"Comment saved\");\r\n }\r\n }\r\n\r\n\r\n public async showLinkExistingDocumentDialog(req) {\r\n let relatedRequirements = [];\r\n if (req.name.indexOf(\"Certificate\") > -1) {\r\n relatedRequirements = await this.getRelatedRequirements(req);\r\n }\r\n const selectedRelatedRequirements = relatedRequirements.filter(o => o.carrierMasterApprovalRequirementId == req.carrierMasterApprovalRequirementId);\r\n this.dialogService.open(\r\n {\r\n viewModel: LinkExistingDocumentDialog,\r\n model: {\r\n carrierIntId: this.carrierIntId,\r\n carrierId: this.carrierId,\r\n req: req,\r\n relatedRequirements: relatedRequirements,\r\n selectedRelatedRequirements: selectedRelatedRequirements\r\n }\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"UPLOAD\") {\r\n var reqs = result.output.reqs;\r\n this.showUploadDocumentDialog(req);\r\n } else {\r\n this.refresh();\r\n }\r\n }\r\n });\r\n }\r\n\r\n private async getRelatedRequirements(req) {\r\n const reqs: any[] = await this.getRelatedInsuranceRequirements(req.carrierMasterApprovalRequirementId);\r\n // if (reqs.length == 0) {\r\n // reqs.push({\r\n // name: req.name,\r\n // carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId\r\n // }); \r\n // }\r\n const filtered = reqs.filter(o => o.carrierMasterApprovalRequirementId != req.carrierMasterApprovalRequirementId);\r\n return filtered;\r\n }\r\n\r\n getRelatedInsuranceRequirements(carrierMasterApprovalRequirementId) {\r\n this.busyService.on();\r\n var params = { carrierRequirementId: carrierMasterApprovalRequirementId };\r\n return this.api.get(\"Carriers\", \"GetRelatedCarrierInsuranceRequirements\", params)\r\n .then((result) => {\r\n const relatedRequirements: any[] = JSON.parse(result.response);\r\n return relatedRequirements;\r\n })\r\n .finally(() => {\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n public async removeCustomRequirement(req: OnboardingRequirementDto) {\r\n return this.dialogService.open(\r\n {\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Remove requirement?\",\r\n message: \"Click Ok remove this requirement.\",\r\n buttons: [\"Ok\", \"Cancel\"]\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n if (result.output == \"Ok\") {\r\n this.busyService.on();\r\n var params = { carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId };\r\n return this.api.post(\"Carriers\", \"RemoveCarrierMasterApprovalRequirement\", params)\r\n .finally(() => {\r\n this.busyService.off();\r\n this.refresh();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n public async showUploadDocumentDialog(req) {\r\n let relatedRequirements = [];\r\n if (req.name.indexOf(\"Certificate\") > -1) {\r\n relatedRequirements = await this.getRelatedRequirements(req);\r\n }\r\n const selectedRelatedRequirements = relatedRequirements.filter(o => o.carrierMasterApprovalRequirementId == req.carrierMasterApprovalRequirementId);\r\n this.dialogService.open({\r\n viewModel: UploadAndLinkDocumentDialog,\r\n model: {\r\n document: null,\r\n carrierName: this.carrierName,\r\n carrierId: this.carrierIntId,\r\n carrierGuid: this.carrierId,\r\n documentTypeIds: req.documentTypeIds.split(\",\"),\r\n req: req,\r\n relatedRequirements: relatedRequirements,\r\n selectedRelatedRequirements: selectedRelatedRequirements\r\n }\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n var uploadResult = result.output;\r\n const doc = uploadResult.document;\r\n // Sort the versions array in descending order by version number\r\n doc.versions.sort((a, b) => b.version - a.version);\r\n \r\n //const docVersion = doc.versions[0];\r\n\r\n this.refresh();\r\n\r\n // this.busyService.on();\r\n // var params = { DocumentVersionId: docVersion.documentVersionId, CarrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId }\r\n // return this.api.post(\"Carriers\", \"LinkOnboardingRequirementDocument\", params)\r\n // .then((result) => {\r\n // this.refresh();\r\n // })\r\n // .finally(() => {\r\n // this.busyService.off();\r\n // });\r\n }\r\n });\r\n }\r\n\r\n // public unlink(req) {\r\n // this.busyService.on();\r\n\r\n // const reqIds = relatedRequirements.filter(o => o.carrierMasterApprovalRequirementId == req.carrierMasterApprovalRequirementId);\r\n\r\n // var params = {\r\n // DocumentVersionId: req.documentVersionId,\r\n // CarrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId\r\n // }\r\n // return this.api.post(\"Carriers\", \"UnlinkOnboardingRequirementDocument\", params)\r\n // .finally(() => {\r\n // this.refresh();\r\n // this.busyService.off();\r\n // });\r\n // }\r\n\r\n\r\n public addExemption(req: OnboardingRequirementDto) {\r\n this.dialogService.open(\r\n {\r\n viewModel: CarrierRequirementExemptionDialog,\r\n model: {\r\n carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId,\r\n carrierId: this.carrierId,\r\n carrierName: this.carrierName\r\n } as CarrierRequirementExemptionDialogParams\r\n }).whenClosed((result) => {\r\n if (!result.wasCancelled) {\r\n this.refresh();\r\n }\r\n });\r\n }\r\n public async removeExemption(req: OnboardingRequirementDto) {\r\n //if (confirm(\"Do you want to remove this exemption?\"))\r\n await this.api.post(\"Carriers\", \"RemoveRequirementExcemption\", { carrierMasterApprovalRequirementId: req.carrierMasterApprovalRequirementId });\r\n this.refresh();\r\n }\r\n\r\n}\r\n","import { bindable, bindingMode, containerless } from 'aurelia-framework';\r\n\r\n@containerless()\r\nexport class ValueOrEmptyIndicator {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) value: any;\r\n\r\n}","import { observable, computedFrom, BindingEngine, bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport { RequestDto } from '../../../data/typegen/dtos/request-dto';\r\n@autoinject()\r\nexport class WorkflowStageProgress {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) request: RequestDto;\r\n\r\n constructor() {\r\n }\r\n\r\n attached() {\r\n }\r\n}","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from \"aurelia-dialog\";\r\n\r\n@autoinject\r\nexport class NewOnboardingRequestDialog {\r\n context: any;\r\n constructor(protected controller: DialogController) {\r\n }\r\n\r\n async activate(params) {\r\n this.context = params;\r\n }\r\n}","import { autoinject, bindable, bindingMode } from 'aurelia-framework';\r\nimport { TaskActionService } from '../../TaskActionService';\r\nimport { UiActionButton } from '../../UiActionButton';\r\nimport { PageMessageService } from '../../../../services/page-message-service';\r\nimport { BusyService } from '../../../../services/busy-service';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { WebApiService } from '../../../../services/web-api-service';\r\nimport { SecurityService } from '../../../../services/security-service';\r\nimport { CmpTaskDto } from '../../../../data/typegen/dtos/cmp-task-dto';\r\nimport { TaskState } from '../../../../data/enums/taskState';\r\nimport { validateTrigger, ValidationController, ValidationControllerFactory } from 'aurelia-validation';\r\nimport { DefaultValidationRenderer } from '../../../../resources/renderers/default-validation-renderer';\r\nimport { FulfillmentWidget, IFulfillmentWidget } from '../../new-user-request/new-user-request-fulfillment';\r\nimport { AppMessageService } from '../../../../services/app-message-service';\r\nimport { DoUiActionDto } from '../../../../data/typegen/dtos/do-ui-action-dto';\r\nimport { CmpTaskBaseDto } from '../../../../data/typegen/dtos/cmp-task-base-dto';\r\nimport { DoUiActionClientHandlerResult } from '../../../../data/dtos/do-ui-action-client-handler-result';\r\nimport { PromptDialog } from '../../../../resources/dialogs/prompt-dialog';\r\nimport { ComposeEmailDialog } from '../../../dialogs/compose-email-dialog/compose-email-dialog';\r\nimport { Globals } from '../../../../models/globals';\r\nimport { NewOnboardingRequestDialog } from './new-onboarding-request-dialog/new-onboarding-request-dialog';\r\n\r\n@autoinject()\r\nexport class CarrierReevaluationRequestFulfillment extends FulfillmentWidget implements IFulfillmentWidget {\r\n\r\n public entityTypes: { id: string; description: string; }[] = new Globals().getEntityTypes();\r\n\r\n public invalidFields: any = {\r\n };\r\n\r\n\r\n public get isTrucksCarrier(): boolean {\r\n return this.task && (this.task.variables.EntityType == \"TRUCKS\" || this.task.variables.EntityType == 'TRANSLOADER/TRUCKS');\r\n }\r\n\r\n async validate(controller: ValidationController, obj) {\r\n let isFormValid = true;\r\n\r\n if (!this.isComponentReadonly) {\r\n for (var field in this.task.variables) {\r\n if (this.task.variables.hasOwnProperty(field)) {\r\n var isFieldValid = this.isFieldValid(field);\r\n\r\n if (!isFieldValid) {\r\n this.invalidFields[field] = \"has-error\";\r\n isFormValid = false;\r\n } else {\r\n this.invalidFields[field] = \"\";\r\n }\r\n }\r\n }\r\n }\r\n return isFormValid;\r\n //controller.addError(\"that's a no no\", this, \"task.variables.DotNumber\");\r\n }\r\n\r\n private isFieldValid(field: string) {\r\n switch (field) {\r\n case \"CarrierNumber\":\r\n case \"DateNeeded\":\r\n case \"Divisions\":\r\n case \"DescribeNeeds\":\r\n return this.isNotEmpty(field);\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n private isEmail(field: string) {\r\n const vars = this.task.variables;\r\n const val = vars[field];\r\n return val && val.toString().match(/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10}$/);\r\n }\r\n\r\n private isNotEmpty(field) {\r\n const vars = this.task.variables;\r\n return !!(vars[field]);\r\n }\r\n\r\n public isComponentReadonly = false;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readonly: boolean;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) task: CmpTaskDto;\r\n taskChanged() {\r\n this.initUi();\r\n }\r\n\r\n public myDivisions = [];\r\n\r\n loadCarrierMills() {\r\n this.busyService.on();\r\n return this.api.get(\"Divisions\", \"GetDivisions\")\r\n .then((result) => {\r\n this.myDivisions = JSON.parse(result.response);\r\n this.busyService.off();\r\n });\r\n }\r\n controller: ValidationController = null;\r\n\r\n private sendToInsuranceReview: UiActionButton;\r\n private makeDormant: UiActionButton;\r\n private createNewOnboardingRequest: UiActionButton\r\n private denyNewOnboardingRequest: UiActionButton\r\n\r\n constructor(\r\n private controllerFactory: ValidationControllerFactory,\r\n private taskActionService: TaskActionService,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private appMsg: AppMessageService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService,\r\n element: Element\r\n ) {\r\n super(element);\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.controller.validateTrigger = validateTrigger.change;\r\n this.controller.addRenderer(new DefaultValidationRenderer());\r\n\r\n // add UI actions based on the task key\r\n this.createNewOnboardingRequest = this.taskActionService.addUiAction({\r\n key: \"create_new_onboarding_request\",\r\n name: \"Create New Onboarding Request\",\r\n performValidation: true\r\n });\r\n\r\n // add UI actions based on the task key\r\n this.denyNewOnboardingRequest = this.taskActionService.addUiAction({\r\n key: \"deny_new_onboarding_request\",\r\n name: \"Deny New Onboarding Request\",\r\n performValidation: true\r\n });\r\n this.sendToInsuranceReview = this.taskActionService.addUiAction({\r\n key: \"send_to_insurance_review\",\r\n name: \"Send to Insurance Review\",\r\n performValidation: false\r\n });\r\n\r\n // add UI actions based on the task key\r\n this.makeDormant = this.taskActionService.addUiAction({\r\n key: \"make_dormant\",\r\n name: \"Make Dormant\",\r\n performValidation: false\r\n });\r\n\r\n }\r\n\r\n showCloseAction: boolean = false;\r\n\r\n public async showEmailDialog(email: string) {\r\n var result = await this.dialogService.open(\r\n {\r\n viewModel: ComposeEmailDialog,\r\n model: {\r\n recipients: email,\r\n targetRowId: this.task.taskId,\r\n targetTable: this.task.taskClass.toString().toLowerCase()\r\n }\r\n });\r\n\r\n }\r\n\r\n public async initUi() {\r\n\r\n var carrierId = this.task.variables.CarrierId;\r\n var result = carrierId && await this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: carrierId });\r\n const carrier = result && JSON.parse(result.response);\r\n\r\n\r\n var isEditor = this.securityService.hasRole(\"Edit\");\r\n this.isComponentReadonly = this.readonly || !this.task.active || !isEditor\r\n\r\n const activeAssignedToMeInProgress = this.task.active == true\r\n && this.task.assignedTo.value == this.securityService.user.id\r\n && this.task.state.value == TaskState.InProgress;\r\n\r\n this.showCloseAction = false;\r\n \r\n //only show UI actions when task is assigned and active\r\n if (this.task.variables.IsReevaluationRequest) {\r\n this.createNewOnboardingRequest.visible = activeAssignedToMeInProgress && !this.isComponentReadonly;\r\n this.denyNewOnboardingRequest.visible = activeAssignedToMeInProgress && !this.isComponentReadonly;\r\n } else if (this.task.variables.IsDormancyReviewRequest) {\r\n this.sendToInsuranceReview.visible = activeAssignedToMeInProgress && !this.isComponentReadonly;\r\n this.makeDormant.visible = activeAssignedToMeInProgress && !this.isComponentReadonly;\r\n }\r\n }\r\n\r\n public async doAction(action: DoUiActionDto): Promise {\r\n debugger;\r\n const onboardingRequestParams = {\r\n carrierName: this.task.variables.DbaName || this.task.variables.LegalName,\r\n startStep: undefined,\r\n sendLink: false\r\n };\r\n\r\n if (action.uiActionVerb.indexOf(\"sysverb\") == 0) {\r\n var result = { submit: true, reload: true, performValidation: false };\r\n return result;\r\n }\r\n else if (action.uiActionVerb == this.createNewOnboardingRequest.key) {\r\n return await this.dialogService.open(\r\n {\r\n viewModel: NewOnboardingRequestDialog,\r\n model: onboardingRequestParams\r\n })\r\n .whenClosed((result) => {\r\n if (!result.wasCancelled && result.output) {\r\n action.payload = result.output;\r\n return DoUiActionClientHandlerResult.default;\r\n } else {\r\n return DoUiActionClientHandlerResult.stop;\r\n }\r\n });\r\n } else if (action.uiActionVerb == this.denyNewOnboardingRequest.key) {\r\n const question = \"Please provide the reason why this re-evaluation request did NOT result in a new onboarding request.\";\r\n return await this.dialogService.open(\r\n {\r\n viewModel: PromptDialog,\r\n model: question\r\n })\r\n .whenClosed((result) => {\r\n if (result.output) {\r\n action.payload = result.output;\r\n return DoUiActionClientHandlerResult.default;\r\n } else {\r\n return DoUiActionClientHandlerResult.stop;\r\n }\r\n });\r\n } else if (action.uiActionVerb == this.sendToInsuranceReview.key) {\r\n onboardingRequestParams.startStep = \"initial_insurance_review\";\r\n\r\n action.payload = onboardingRequestParams;\r\n return DoUiActionClientHandlerResult.default;\r\n } else {\r\n return Promise.resolve(DoUiActionClientHandlerResult.default);\r\n };\r\n }\r\n\r\n public async afterActionSubmit(uiAction: string, error?: any): Promise {\r\n if (uiAction == this.createNewOnboardingRequest.key && !error) {\r\n this.appMsg.addSuccessMessage(\"New onboarding request has been created.\");\r\n }\r\n // return true to reload the data\r\n return true;\r\n }\r\n\r\n async attached() {\r\n await this.securityService.init();\r\n await this.loadCarrierMills();\r\n await this.initUi();\r\n await this.fireOnreadyEvent();\r\n }\r\n}","import { autoinject, bindable, bindingMode } from 'aurelia-framework';\r\nimport { TaskActionService } from '../../TaskActionService';\r\nimport { UiActionButton } from '../../UiActionButton';\r\nimport { PageMessageService } from '../../../../services/page-message-service';\r\nimport { BusyService } from '../../../../services/busy-service';\r\nimport { DialogService } from 'aurelia-dialog';\r\nimport { WebApiService } from '../../../../services/web-api-service';\r\nimport { SecurityService } from '../../../../services/security-service';\r\nimport { CmpTaskDto } from '../../../../data/typegen/dtos/cmp-task-dto';\r\nimport { TaskState } from '../../../../data/enums/taskState';\r\nimport { validateTrigger, ValidationController, ValidationControllerFactory } from 'aurelia-validation';\r\nimport { DefaultValidationRenderer } from '../../../../resources/renderers/default-validation-renderer';\r\nimport { FulfillmentWidget, IFulfillmentWidget } from '../../new-user-request/new-user-request-fulfillment';\r\nimport { AppMessageService } from '../../../../services/app-message-service';\r\nimport { DoUiActionDto } from '../../../../data/typegen/dtos/do-ui-action-dto';\r\nimport { CmpTaskBaseDto } from '../../../../data/typegen/dtos/cmp-task-base-dto';\r\nimport { DoUiActionClientHandlerResult } from '../../../../data/dtos/do-ui-action-client-handler-result';\r\nimport { PromptDialog } from '../../../../resources/dialogs/prompt-dialog';\r\nimport { ComposeEmailDialog } from '../../../dialogs/compose-email-dialog/compose-email-dialog';\r\nimport { Globals } from '../../../../models/globals';\r\nimport { DisplayValuePair } from '../../../../data/typegen/dtos/display-value-pair';\r\nimport { TaskAssignmentGroups } from '../../../../data/typegen/enums/task-assignment-groups';\r\nimport { SimpleDialog } from '../../../dialogs/simple-dialog';\r\nimport { CurrencyValueConverter } from '../../../../resources/value-converters/currency';\r\nimport { RequestDetailsScreenDataDto } from '../../../../data/typegen/dtos/request-details-screen-data-dto';\r\nimport { RequestDto } from '../../../../data/typegen/dtos/request-dto';\r\nimport { TaskClass } from '../../../../data/typegen/enums/task-class';\r\n\r\n@autoinject()\r\nexport class NewCarrierRequestFulfillment extends FulfillmentWidget implements IFulfillmentWidget {\r\n requestCorrection: UiActionButton;\r\n finalApprove: UiActionButton;\r\n finalDeny: UiActionButton;\r\n verifyInsuranceCoverageBtn: UiActionButton;\r\n setMasterApproved: UiActionButton;\r\n\r\n public entityTypes: { id: string; description: string; }[] = new Globals().getEntityTypes();\r\n //private assignableUsers: Array> = [];\r\n private assignableUsersCarrier: Array> = [];\r\n private assignableUsersTransloader: Array> = [];\r\n public primaryAgentOptGroups: Array = [];\r\n\r\n public invalidFields: any = {\r\n };\r\n\r\n public fmcsaFieldValues: { [key: string]: any };\r\n public fmcsaDiscrepancies: {\r\n _hasValues: boolean\r\n };\r\n\r\n\r\n public get isTrucksCarrier(): boolean {\r\n return this.task && (this.task.variables.EntityType == \"TRUCKS\" || this.task.variables.EntityType == 'TRANSLOADER/TRUCKS');\r\n }\r\n\r\n async validate(controller: ValidationController, obj) {\r\n // Initialize the form validation status to true\r\n let isFormValid = true;\r\n\r\n // Proceed with validation only if the component is not in readonly mode\r\n if (!this.isComponentReadonly) {\r\n for (var field in this.task.variables) {\r\n // Ensure the property belongs to the task variables object itself\r\n if (this.task.variables.hasOwnProperty(field)) {\r\n // If the current field is valid, update the field's error \r\n // state and set form validation status accordingly\r\n var isFieldValid = this.isFieldValid(field);\r\n if (!isFieldValid) {\r\n this.invalidFields[field] = \"has-error\";\r\n isFormValid = false;\r\n } else {\r\n this.invalidFields[field] = \"\";\r\n }\r\n }\r\n }\r\n }\r\n return isFormValid;\r\n\r\n // Note: The following line is commented out. It could be used to add a specific error to the controller.\r\n // controller.addError(\"that's a no no\", this, \"task.variables.DotNumber\");\r\n }\r\n\r\n private isFieldValid(field: string) {\r\n switch (field) {\r\n case \"ContactEmail\":\r\n return this.isEmail(field);\r\n case \"TypeOfAuthority\":\r\n // Type of Authority required for trucks\r\n return !this.isTrucksCarrier || this.isNotEmpty(field);;\r\n case \"TaxId\":\r\n // tax id is optional for internal Requestors, although required for carrier registration\r\n return true;\r\n case \"LegalName\":\r\n case \"RequiredInsurance\":\r\n case \"Divisions\":\r\n return this.isNotEmpty(field);\r\n case \"DotNumber\":\r\n if (this.isTrucksCarrier) {\r\n return this.isNotEmpty(field);\r\n }\r\n return true;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n private isEmail(field: string) {\r\n const vars = this.task.variables;\r\n const val = vars[field];\r\n return val && val.toString().match(/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10}$/);\r\n }\r\n\r\n private isNotEmpty(field) {\r\n const vars = this.task.variables;\r\n return !!(vars[field]);\r\n }\r\n\r\n public isComponentReadonly = false;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) audience: \"requestor\" | \"fulfiller\" | \"any\" = \"any\"; // indicates the type of audience this is targeted to\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) readonly: boolean;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.oneWay }) task: CmpTaskBaseDto;\r\n taskChanged() {\r\n this.initUi();\r\n }\r\n\r\n public myDivisions = [];\r\n\r\n\r\n loadFmcsaFieldDiscrepancies() {\r\n this.busyService.on();\r\n\r\n // Make an API call to retrieve FMCSA data using the provided DOT number\r\n return this.api.get(\"Fmcsa\", \"GetSearchCarrier\", { dotNumber: this.task.variables.DotNumber })\r\n .then((result) => {\r\n // Parse the response from the API to get FMCSA field values\r\n if (result.response) {\r\n this.fmcsaFieldValues = JSON.parse(result.response);\r\n } else {\r\n this.fmcsaFieldValues = {};\r\n }\r\n\r\n // Initialize an empty object to store discrepancies between FMCSA data and task variables\r\n this.fmcsaDiscrepancies = {\r\n _hasValues: false\r\n };\r\n\r\n // Iterate over all properties of the FMCSA field values object\r\n for (const key in this.fmcsaFieldValues) {\r\n // Convert the key to lowercase for comparison\r\n const lowerCaseKey = key.toLowerCase();\r\n\r\n // Ensure that the property exists in both FMCSA field values and task variables\r\n // Note: Properties are not same case, so use a case-insensitive comparison approach.\r\n if (this.fmcsaFieldValues.hasOwnProperty(key)) {\r\n for (const taskKey in this.task.variables) {\r\n if (lowerCaseKey == taskKey.toLowerCase()) {\r\n // Retrieve the value from both FMCSA field values and task variables\r\n const fmcsaValue = this.fmcsaFieldValues[key];\r\n const taskValue = this.task.variables[taskKey];\r\n\r\n // If the values are different, store the FMCSA value in the discrepancies object\r\n if (fmcsaValue != taskValue) {\r\n this.fmcsaDiscrepancies[key] = { value: fmcsaValue };\r\n this.fmcsaDiscrepancies._hasValues = true;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.busyService.off();\r\n });\r\n\r\n }\r\n\r\n\r\n private loadCarrierDivisions() {\r\n this.busyService.on();\r\n return this.api.get(\"Divisions\", \"GetDivisions\")\r\n .then((result) => {\r\n this.myDivisions = JSON.parse(result.response);\r\n this.busyService.off();\r\n });\r\n }\r\n\r\n /**\r\n * Loads users that can be assigned to carrier and transloader tasks\r\n * by fetching members from their respective groups\r\n */\r\n async loadAssignableUsers() {\r\n // Show loading indicator while fetching data\r\n this.busyService.on();\r\n\r\n try {\r\n // Fetch both carrier and transloader group members in parallel\r\n await Promise.all([\r\n // Get users from carrier services group\r\n this.api.get(\"Tasks\", \"GetGroupMembers\", { groupId: TaskAssignmentGroups.carrierServices })\r\n .then((result) => {\r\n console.log(\"Done1a\");\r\n this.assignableUsersCarrier = JSON.parse(result.response);\r\n }),\r\n // Get users from transloader services group \r\n this.api.get(\"Tasks\", \"GetGroupMembers\", { groupId: TaskAssignmentGroups.transloaderServices })\r\n .then((result) => {\r\n console.log(\"Done1b\");\r\n this.assignableUsersTransloader = JSON.parse(result.response);\r\n })\r\n ]);\r\n \r\n // Create option groups for the primary agent selection dropdown\r\n // Combining both carrier and transloader users into a structured format\r\n this.primaryAgentOptGroups = [\r\n {\r\n label: \"Carrier Services\",\r\n opts: this.assignableUsersCarrier\r\n },\r\n {\r\n label: \"Transloader Services\",\r\n opts: this.assignableUsersTransloader\r\n }\r\n ];\r\n } finally {\r\n // Hide loading indicator after data is loaded or if an error occurs\r\n this.busyService.off();\r\n }\r\n }\r\n controller: ValidationController = null;\r\n\r\n private sendRegistrationLink: UiActionButton\r\n private sendCarrierRegistrationFollowUp: UiActionButton;\r\n constructor(\r\n private controllerFactory: ValidationControllerFactory,\r\n private taskActionService: TaskActionService,\r\n private busyService: BusyService,\r\n private securityService: SecurityService,\r\n private appMsg: AppMessageService,\r\n private msg: PageMessageService,\r\n private dialogService: DialogService,\r\n private api: WebApiService,\r\n private currentConverter: CurrencyValueConverter,\r\n element: Element\r\n ) {\r\n super(element);\r\n\r\n this.controller = controllerFactory.createForCurrentScope();\r\n this.controller.validateTrigger = validateTrigger.change;\r\n this.controller.addRenderer(new DefaultValidationRenderer());\r\n\r\n // add UI actions based on the task key\r\n this.sendRegistrationLink = this.taskActionService.addUiAction({\r\n key: \"send_registration_link\",\r\n name: \"Send Registration Invite\"\r\n });\r\n this.sendCarrierRegistrationFollowUp = this.taskActionService.addUiAction({\r\n key: \"send_carrier_follow_up\",\r\n name: \"Send Carrier Follow-Up\"\r\n });\r\n\r\n\r\n }\r\n\r\n showCloseAction: boolean = false;\r\n\r\n public async showEmailDialog(email: string) {\r\n var result = await this.dialogService.open(\r\n {\r\n viewModel: ComposeEmailDialog,\r\n model: {\r\n recipients: email,\r\n targetRowId: this.task.taskId,\r\n targetTable: this.task.taskClass.toString().toLowerCase()\r\n }\r\n });\r\n\r\n }\r\n\r\n public async initUi() {\r\n\r\n if (!this.isReady) return;\r\n\r\n let request: RequestDto;\r\n\r\n // if not a request, then get the request\r\n if (this.task.taskClass == TaskClass.Request) {\r\n request = this.task as RequestDto;\r\n } else if (this.task.taskClass == TaskClass.Task) {\r\n const result = await this.api.get(\"Tasks\", \"GetRequestDetailsScreenDataDto\", { requestId: this.task.parent.value })\r\n const screenData = JSON.parse(result.response) as RequestDetailsScreenDataDto;\r\n request = screenData.request;\r\n }\r\n\r\n\r\n const workflowStage = request.workflowContext && request.workflowContext.stage;\r\n const isPreOnboarding = workflowStage == \"PreApproval\" || workflowStage == \"CarrierRegistration\";\r\n\r\n // load FMCSA values and mark any discrepancies\r\n // Note: Don't show once carrier has completed registration\r\n if (isPreOnboarding) {\r\n this.loadFmcsaFieldDiscrepancies();\r\n }\r\n\r\n // hide all UI actions by default\r\n for (const prop in this) {\r\n if (this[prop] instanceof UiActionButton) {\r\n (this[prop] as UiActionButton).visible = false;\r\n }\r\n }\r\n\r\n var carrierId = this.task.variables.CarrierId;\r\n var result = carrierId && await this.api.get(\"Carriers\", \"GetCarrierById\", { carrierId: carrierId });\r\n const carrier = result && JSON.parse(result.response);\r\n\r\n\r\n if (this.task.variables.HasTrucks && !(carrier.entityType == \"TRUCKS\" || carrier.entityType == \"TRANSLOADER/TRUCKS\")) {\r\n this.msg.setInfoMessage(\"This carrier specified they have trucks, but the entity type on the Carrier record is set to \" + carrier.entityType);\r\n }\r\n\r\n\r\n var isEditor = this.securityService.hasRole(\"Edit\");\r\n this.isComponentReadonly = this.readonly || !this.task.active || !isEditor; // per Alisa, need to be able to edit fields for these request types. || this.task.variables.IsReevaluationRequest || this.task.variables.IsDormancyReviewRequest;\r\n\r\n\r\n // TODO: this needs further refinement before any work is done.\r\n // // make readonly if task is past the registration stage \r\n // if (!this.isComponentReadonly && !isPreOnboarding) {\r\n // this.isComponentReadonly = true;\r\n // }\r\n\r\n //only show UI actions when task is assigned and active\r\n const activeAssignedToMeInProgress = this.task.active == true\r\n && this.task.assignedTo.value == this.securityService.user.id\r\n && this.task.state.value == TaskState.InProgress;\r\n\r\n this.showCloseAction = true;\r\n\r\n if (this.task.taskKey == \"send_registration_link\") {\r\n this.showCloseAction = false;\r\n this.sendRegistrationLink.visible = activeAssignedToMeInProgress;\r\n }\r\n\r\n if (this.task.taskKey == \"send_carrier_follow_up\") {\r\n this.sendRegistrationLink.name = \"Resend Registration Link\";\r\n this.sendRegistrationLink.visible = activeAssignedToMeInProgress;\r\n }\r\n\r\n if (this.task.taskKey == \"review_approve_documents\") {\r\n this.showCloseAction = false;\r\n this.requestCorrection = this.taskActionService.addUiAction({\r\n key: \"final_request_correction\",\r\n name: \"Request Correction\",\r\n visible: activeAssignedToMeInProgress\r\n });\r\n this.finalApprove = this.taskActionService.addUiAction({\r\n key: \"final_approve\",\r\n name: \"Approve\",\r\n visible: activeAssignedToMeInProgress\r\n });\r\n this.finalDeny = this.taskActionService.addUiAction({\r\n key: \"final_deny\",\r\n name: \"Deny Carrier\",\r\n visible: activeAssignedToMeInProgress\r\n });\r\n }\r\n\r\n if (this.task.taskKey == \"initial_insurance_review\") {\r\n this.showCloseAction = true;\r\n if (this.task.variables.RequiredInsurance > 100000) {\r\n if (!this.task.variables.verify_insurance_coverage) {\r\n this.showCloseAction = false;\r\n this.verifyInsuranceCoverageBtn = this.taskActionService.addUiAction({\r\n key: \"verify_insurance_coverage\",\r\n name: \"Verify Insurance Coverage\",\r\n visible: activeAssignedToMeInProgress,\r\n redirectAfterSubmit: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (this.task.taskKey == \"master_approve\") {\r\n this.showCloseAction = true; // show button\r\n if (!carrier) {\r\n this.msg.setErrorMessage(\"Carrier Not Found\");\r\n }\r\n const isMasterApproved = carrier && carrier.status == 8;\r\n this.setMasterApproved = this.taskActionService.addUiAction({\r\n key: \"set_master_approved\",\r\n name: \"Master Approve\",\r\n redirectAfterSubmit: false,\r\n visible: activeAssignedToMeInProgress && !isMasterApproved\r\n });\r\n }\r\n }\r\n public async doAction(action: DoUiActionDto): Promise {\r\n\r\n // don't allow closure of tasks until FMCSA discrepancies are corrected.\r\n if (action.taskDto.state.value == TaskState.ClosedComplete\r\n || action.uiActionVerb == this.sendRegistrationLink.key\r\n ) {\r\n\r\n if (this.fmcsaFieldValues.usDotStatus == 'I') {\r\n this.appMsg.addErrorMessage(\"Cannot send registration link while FMCSA Status is INACTIVE. If the DOT # is incorrect, update it and save the record before completing the task.\");\r\n return DoUiActionClientHandlerResult.stop;\r\n }\r\n else if (this.fmcsaDiscrepancies && this.fmcsaFieldValues) {\r\n if (this.fmcsaDiscrepancies._hasValues) {\r\n this.appMsg.addErrorMessage(\"Please correct the errors below and try again.\");\r\n return DoUiActionClientHandlerResult.stop;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n if (this.verifyInsuranceCoverageBtn && action.uiActionVerb == this.verifyInsuranceCoverageBtn.key) {\r\n const cargoAmount = this.currentConverter.toView(this.task.variables.RequiredInsurance);\r\n const yesText = \"Yes, I Confirm\";\r\n const handlerResult = await this.dialogService.open({\r\n viewModel: SimpleDialog,\r\n model: {\r\n title: \"Verify Increased Insurance Coverage\",\r\n icon: \"fa-exclamation-triangle\",\r\n message: `This request requires increased insurance coverage.\\n\\nDo you confirm this carrier has Cargo Insurance coverage of ${cargoAmount} or greater?`,\r\n buttons: [yesText, \"Cancel\"]\r\n }\r\n }).whenClosed((result) => {\r\n if (result.output != yesText) {\r\n return DoUiActionClientHandlerResult.stop;\r\n } else {\r\n return DoUiActionClientHandlerResult.default;\r\n }\r\n });\r\n return handlerResult;\r\n }\r\n else if (this.requestCorrection && action.uiActionVerb == this.requestCorrection.key) {\r\n const question = \"Describe the corrections or additional information that is needed\";\r\n await this.dialogService.open(\r\n {\r\n viewModel: PromptDialog,\r\n model: question\r\n })\r\n .whenClosed((result) => {\r\n if (result.output) {\r\n action.payload = result.output;\r\n }\r\n });\r\n }\r\n\r\n return DoUiActionClientHandlerResult.default;\r\n ;\r\n }\r\n\r\n public async afterActionSubmit(uiAction: string, error?: any): Promise {\r\n if (uiAction == this.sendRegistrationLink.key && !error) {\r\n this.appMsg.addSuccessMessage(\"Registration link has been sent.\");\r\n }\r\n // return true to reload the data\r\n return true;\r\n }\r\n\r\n private isReady = false;\r\n async attached() {\r\n // Initialize security service to ensure user permissions are loaded\r\n await this.securityService.init();\r\n\r\n // Load carrier divisions and assignable users in parallel for better performance\r\n await Promise.all([\r\n this.loadCarrierDivisions(),\r\n this.loadAssignableUsers()\r\n ]);\r\n\r\n // Mark component as ready for UI initialization\r\n this.isReady = true;\r\n\r\n // Initialize UI components and fire ready event\r\n await this.initUi();\r\n await this.fireOnreadyEvent();\r\n }\r\n}"],"sourceRoot":"../src"}