{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app.constant.ts","webpack:///./src/app.settings.ts","webpack:///./src/app/apollo-proxy.extensions.ts","webpack:///./src/app/apollo.application.module.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.helpers.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/components/common/footer/footer.component.ts","webpack:///./src/app/components/common/footer/footer.template.html","webpack:///./src/app/components/common/layouts/basicLayout.component.ts","webpack:///./src/app/components/common/layouts/basicLayout.template.html","webpack:///./src/app/components/common/layouts/blankLayout.component.ts","webpack:///./src/app/components/common/layouts/blankLayout.template.html","webpack:///./src/app/components/common/layouts/layouts.module.ts","webpack:///./src/app/components/common/layouts/topNavigationLayout.component.ts","webpack:///./src/app/components/common/layouts/topNavigationLayout.template.html","webpack:///./src/app/components/common/navigation/navigation.component.ts","webpack:///./src/app/components/common/navigation/navigation.template.html","webpack:///./src/app/components/common/topnavbar/topnavbar.component.ts","webpack:///./src/app/components/common/topnavbar/topnavbar.template.html","webpack:///./src/app/components/common/topnavbar/topnavigationnavbar.component.ts","webpack:///./src/app/components/common/topnavbar/topnavigationnavbar.template.html","webpack:///./src/app/crm-routing.module.ts","webpack:///./src/app/graphql/account-profile/account-profiles.graphql.ts","webpack:///./src/app/graphql/land-purchase-opportunity/deal-type-opportunities.graphq.ts","webpack:///./src/app/graphql/land-purchase-opportunity/land-purchase-opportunity-by-opp-id.graphql.ts","webpack:///./src/app/graphql/land-purchase-opportunity/land-purchase-opportunity-delete.mutation.ts","webpack:///./src/app/graphql/land-purchase-opportunity/land-purchase-opportunity-update.mutation.graphql.ts","webpack:///./src/app/graphql/land-purchase-opportunity/land-purchase-opporunity-create.mutation.graphql.ts","webpack:///./src/app/graphql/opportunity-category-type/opportunity-category-types.graphql.ts","webpack:///./src/app/shared/api.service.ts","webpack:///./src/app/shared/authentication/auth.component.html","webpack:///./src/app/shared/authentication/auth.component.scss","webpack:///./src/app/shared/authentication/auth.component.ts","webpack:///./src/app/shared/authentication/index.ts","webpack:///./src/app/shared/authentication/silent/silent.component.html","webpack:///./src/app/shared/authentication/silent/silent.component.scss","webpack:///./src/app/shared/authentication/silent/silent.component.ts","webpack:///./src/app/shared/authentication/unauthorized/index.ts","webpack:///./src/app/shared/authentication/unauthorized/unauthorized.component.html","webpack:///./src/app/shared/authentication/unauthorized/unauthorized.component.scss","webpack:///./src/app/shared/authentication/unauthorized/unauthorized.component.ts","webpack:///./src/app/shared/form-utility.service.ts","webpack:///./src/app/shared/interceptors/auth-interceptor.ts","webpack:///./src/app/shared/interceptors/interceptors.module.ts","webpack:///./src/app/shared/profile/_models/profile.model.ts","webpack:///./src/app/shared/profile/profile.service.ts","webpack:///./src/app/views/accounts/account-list/account-list.component.html","webpack:///./src/app/views/accounts/account-list/account-list.component.scss","webpack:///./src/app/views/accounts/account-list/account-list.component.ts","webpack:///./src/app/views/accounts/account-manage/account-manage.component.html","webpack:///./src/app/views/accounts/account-manage/account-manage.component.scss","webpack:///./src/app/views/accounts/account-manage/account-manage.component.ts","webpack:///./src/app/views/accounts/accounts-routing.module.ts","webpack:///./src/app/views/accounts/accounts.component.html","webpack:///./src/app/views/accounts/accounts.component.scss","webpack:///./src/app/views/accounts/accounts.component.ts","webpack:///./src/app/views/accounts/accounts.module.ts","webpack:///./src/app/views/auth/auth-guard.service.ts","webpack:///./src/app/views/auth/auth-routing.module.ts","webpack:///./src/app/views/auth/auth.module.ts","webpack:///./src/app/views/auth/auth.service.ts","webpack:///./src/app/views/auth/forgot-password/forgot-password.component.html","webpack:///./src/app/views/auth/forgot-password/forgot-password.component.scss","webpack:///./src/app/views/auth/forgot-password/forgot-password.component.ts","webpack:///./src/app/views/auth/reset-password/reset-password.component.html","webpack:///./src/app/views/auth/reset-password/reset-password.component.scss","webpack:///./src/app/views/auth/reset-password/reset-password.component.ts","webpack:///./src/app/views/auth/role-guard.service.ts","webpack:///./src/app/views/auth/signin/signin.component.html","webpack:///./src/app/views/auth/signin/signin.component.scss","webpack:///./src/app/views/auth/signin/signin.component.ts","webpack:///./src/app/views/auth/super-admin-guard.service.ts","webpack:///./src/app/views/base/base.component.ts","webpack:///./src/app/views/base/system.component.ts","webpack:///./src/app/views/company-details/company-details-manage/company-details-manage.component.html","webpack:///./src/app/views/company-details/company-details-manage/company-details-manage.component.scss","webpack:///./src/app/views/company-details/company-details-manage/company-details-manage.component.ts","webpack:///./src/app/views/company-details/company-details-routing.module.ts","webpack:///./src/app/views/company-details/company-details.component.html","webpack:///./src/app/views/company-details/company-details.component.scss","webpack:///./src/app/views/company-details/company-details.component.ts","webpack:///./src/app/views/company-details/company-details.module.ts","webpack:///./src/app/views/complaints/complaint-list/complaint-list.component.html","webpack:///./src/app/views/complaints/complaint-list/complaint-list.component.scss","webpack:///./src/app/views/complaints/complaint-list/complaint-list.component.ts","webpack:///./src/app/views/complaints/complaint-manage/complaint-manage.component.html","webpack:///./src/app/views/complaints/complaint-manage/complaint-manage.component.scss","webpack:///./src/app/views/complaints/complaint-manage/complaint-manage.component.ts","webpack:///./src/app/views/complaints/complaint-timeline/complaint-timeline.component.html","webpack:///./src/app/views/complaints/complaint-timeline/complaint-timeline.component.scss","webpack:///./src/app/views/complaints/complaint-timeline/complaint-timeline.component.ts","webpack:///./src/app/views/complaints/complaint-types/complaint-type-list/complaint-type-list.component.html","webpack:///./src/app/views/complaints/complaint-types/complaint-type-list/complaint-type-list.component.scss","webpack:///./src/app/views/complaints/complaint-types/complaint-type-list/complaint-type-list.component.ts","webpack:///./src/app/views/complaints/complaint-types/complaint-type-manage/complaint-type-manage.component.html","webpack:///./src/app/views/complaints/complaint-types/complaint-type-manage/complaint-type-manage.component.scss","webpack:///./src/app/views/complaints/complaint-types/complaint-type-manage/complaint-type-manage.component.ts","webpack:///./src/app/views/complaints/complaint-types/complaint-types-routing.module.ts","webpack:///./src/app/views/complaints/complaint-types/complaint-types.component.html","webpack:///./src/app/views/complaints/complaint-types/complaint-types.component.scss","webpack:///./src/app/views/complaints/complaint-types/complaint-types.component.ts","webpack:///./src/app/views/complaints/complaint-types/complaint-types.module.ts","webpack:///./src/app/views/complaints/complaints-routing.module.ts","webpack:///./src/app/views/complaints/complaints.component.html","webpack:///./src/app/views/complaints/complaints.component.scss","webpack:///./src/app/views/complaints/complaints.component.ts","webpack:///./src/app/views/complaints/complaints.module.ts","webpack:///./src/app/views/contacts/communication-history/communication-history-detail/communication-history-detail.component.html","webpack:///./src/app/views/contacts/communication-history/communication-history-detail/communication-history-detail.component.scss","webpack:///./src/app/views/contacts/communication-history/communication-history-detail/communication-history-detail.component.ts","webpack:///./src/app/views/contacts/communication-history/communication-history-header/communication-history-header.component.html","webpack:///./src/app/views/contacts/communication-history/communication-history-header/communication-history-header.component.scss","webpack:///./src/app/views/contacts/communication-history/communication-history-header/communication-history-header.component.ts","webpack:///./src/app/views/contacts/communication-history/communication-history-list/communication-history-list.component.html","webpack:///./src/app/views/contacts/communication-history/communication-history-list/communication-history-list.component.scss","webpack:///./src/app/views/contacts/communication-history/communication-history-list/communication-history-list.component.ts","webpack:///./src/app/views/contacts/communication-history/communication-history-manage/communication-history-manage.component.html","webpack:///./src/app/views/contacts/communication-history/communication-history-manage/communication-history-manage.component.scss","webpack:///./src/app/views/contacts/communication-history/communication-history-manage/communication-history-manage.component.ts","webpack:///./src/app/views/contacts/communication-history/communication-history-routing.module.ts","webpack:///./src/app/views/contacts/communication-history/communication-history.component.html","webpack:///./src/app/views/contacts/communication-history/communication-history.component.scss","webpack:///./src/app/views/contacts/communication-history/communication-history.component.ts","webpack:///./src/app/views/contacts/communication-history/communication-history.module.ts","webpack:///./src/app/views/contacts/contact-files/contact-file-list/contact-file-list.component.html","webpack:///./src/app/views/contacts/contact-files/contact-file-list/contact-file-list.component.scss","webpack:///./src/app/views/contacts/contact-files/contact-file-list/contact-file-list.component.ts","webpack:///./src/app/views/contacts/contact-files/contact-file-manage/contact-file-manage.component.html","webpack:///./src/app/views/contacts/contact-files/contact-file-manage/contact-file-manage.component.scss","webpack:///./src/app/views/contacts/contact-files/contact-file-manage/contact-file-manage.component.ts","webpack:///./src/app/views/contacts/contact-files/contact-files-routing.module.ts","webpack:///./src/app/views/contacts/contact-files/contact-files.component.html","webpack:///./src/app/views/contacts/contact-files/contact-files.component.scss","webpack:///./src/app/views/contacts/contact-files/contact-files.component.ts","webpack:///./src/app/views/contacts/contact-files/contact-files.module.ts","webpack:///./src/app/views/contacts/contact-groups/contact-group-list/contact-group-list.component.html","webpack:///./src/app/views/contacts/contact-groups/contact-group-list/contact-group-list.component.scss","webpack:///./src/app/views/contacts/contact-groups/contact-group-list/contact-group-list.component.ts","webpack:///./src/app/views/contacts/contact-groups/contact-group-manage/contact-group-manage.component.html","webpack:///./src/app/views/contacts/contact-groups/contact-group-manage/contact-group-manage.component.scss","webpack:///./src/app/views/contacts/contact-groups/contact-group-manage/contact-group-manage.component.ts","webpack:///./src/app/views/contacts/contact-groups/contact-groups-routing.module.ts","webpack:///./src/app/views/contacts/contact-groups/contact-groups.component.html","webpack:///./src/app/views/contacts/contact-groups/contact-groups.component.scss","webpack:///./src/app/views/contacts/contact-groups/contact-groups.component.ts","webpack:///./src/app/views/contacts/contact-groups/contact-groups.module.ts","webpack:///./src/app/views/contacts/contact-import/contact-import.component.html","webpack:///./src/app/views/contacts/contact-import/contact-import.component.scss","webpack:///./src/app/views/contacts/contact-import/contact-import.component.ts","webpack:///./src/app/views/contacts/contact-list/contact-list.component.html","webpack:///./src/app/views/contacts/contact-list/contact-list.component.scss","webpack:///./src/app/views/contacts/contact-list/contact-list.component.ts","webpack:///./src/app/views/contacts/contact-manage/contact-manage.component.html","webpack:///./src/app/views/contacts/contact-manage/contact-manage.component.scss","webpack:///./src/app/views/contacts/contact-manage/contact-manage.component.ts","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-search-list/contact-saved-search-list.component.html","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-search-list/contact-saved-search-list.component.scss","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-search-list/contact-saved-search-list.component.ts","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-search-manage/contact-saved-search-manage.component.html","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-search-manage/contact-saved-search-manage.component.scss","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-search-manage/contact-saved-search-manage.component.ts","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-searches-routing.module.ts","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-searches.component.html","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-searches.component.scss","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-searches.component.ts","webpack:///./src/app/views/contacts/contact-saved-searches/contact-saved-searches.module.ts","webpack:///./src/app/views/contacts/contact-sources/contact-source-list/contact-source-list.component.html","webpack:///./src/app/views/contacts/contact-sources/contact-source-list/contact-source-list.component.scss","webpack:///./src/app/views/contacts/contact-sources/contact-source-list/contact-source-list.component.ts","webpack:///./src/app/views/contacts/contact-sources/contact-source-manage/contact-source-manage.component.html","webpack:///./src/app/views/contacts/contact-sources/contact-source-manage/contact-source-manage.component.scss","webpack:///./src/app/views/contacts/contact-sources/contact-source-manage/contact-source-manage.component.ts","webpack:///./src/app/views/contacts/contact-sources/contact-sources-routing.module.ts","webpack:///./src/app/views/contacts/contact-sources/contact-sources.component.html","webpack:///./src/app/views/contacts/contact-sources/contact-sources.component.scss","webpack:///./src/app/views/contacts/contact-sources/contact-sources.component.ts","webpack:///./src/app/views/contacts/contact-sources/contact-sources.module.ts","webpack:///./src/app/views/contacts/contact-types/contact-type-list/contact-type-list.component.html","webpack:///./src/app/views/contacts/contact-types/contact-type-list/contact-type-list.component.scss","webpack:///./src/app/views/contacts/contact-types/contact-type-list/contact-type-list.component.ts","webpack:///./src/app/views/contacts/contact-types/contact-type-manage/contact-type-manage.component.html","webpack:///./src/app/views/contacts/contact-types/contact-type-manage/contact-type-manage.component.scss","webpack:///./src/app/views/contacts/contact-types/contact-type-manage/contact-type-manage.component.ts","webpack:///./src/app/views/contacts/contact-types/contact-types-routing.module.ts","webpack:///./src/app/views/contacts/contact-types/contact-types.component.html","webpack:///./src/app/views/contacts/contact-types/contact-types.component.scss","webpack:///./src/app/views/contacts/contact-types/contact-types.component.ts","webpack:///./src/app/views/contacts/contact-types/contact-types.module.ts","webpack:///./src/app/views/contacts/contacts-routing.module.ts","webpack:///./src/app/views/contacts/contacts.component.html","webpack:///./src/app/views/contacts/contacts.component.scss","webpack:///./src/app/views/contacts/contacts.component.ts","webpack:///./src/app/views/contacts/contacts.module.ts","webpack:///./src/app/views/core/core.module.ts","webpack:///./src/app/views/dashboard/dashboard-routing.module.ts","webpack:///./src/app/views/dashboard/dashboard.component.html","webpack:///./src/app/views/dashboard/dashboard.component.scss","webpack:///./src/app/views/dashboard/dashboard.component.ts","webpack:///./src/app/views/dashboard/dashboard.module.ts","webpack:///./src/app/views/errors/errors-routing.module.ts","webpack:///./src/app/views/errors/errors.module.ts","webpack:///./src/app/views/errors/forbidden/forbidden.component.html","webpack:///./src/app/views/errors/forbidden/forbidden.component.scss","webpack:///./src/app/views/errors/forbidden/forbidden.component.ts","webpack:///./src/app/views/errors/not-found/not-found.component.html","webpack:///./src/app/views/errors/not-found/not-found.component.scss","webpack:///./src/app/views/errors/not-found/not-found.component.ts","webpack:///./src/app/views/events/_graphql/retrieve-contacts.query.ts","webpack:///./src/app/views/events/events-routing.module.ts","webpack:///./src/app/views/events/events.component.html","webpack:///./src/app/views/events/events.component.scss","webpack:///./src/app/views/events/events.component.ts","webpack:///./src/app/views/events/events.module.ts","webpack:///./src/app/views/events/list/events-list.component.html","webpack:///./src/app/views/events/list/events-list.component.scss","webpack:///./src/app/views/events/list/events-list.component.ts","webpack:///./src/app/views/events/list/events-list.module.ts","webpack:///./src/app/views/events/manage/events-manage.component.html","webpack:///./src/app/views/events/manage/events-manage.component.scss","webpack:///./src/app/views/events/manage/events-manage.component.ts","webpack:///./src/app/views/events/manage/events-manage.module.ts","webpack:///./src/app/views/home/home.component.html","webpack:///./src/app/views/home/home.component.scss","webpack:///./src/app/views/home/home.component.ts","webpack:///./src/app/views/home/home.module.ts","webpack:///./src/app/views/issues/issue-list/issue-list.component.html","webpack:///./src/app/views/issues/issue-list/issue-list.component.scss","webpack:///./src/app/views/issues/issue-list/issue-list.component.ts","webpack:///./src/app/views/issues/issue-manage/issue-manage.component.html","webpack:///./src/app/views/issues/issue-manage/issue-manage.component.scss","webpack:///./src/app/views/issues/issue-manage/issue-manage.component.ts","webpack:///./src/app/views/issues/issues-routing.module.ts","webpack:///./src/app/views/issues/issues.component.html","webpack:///./src/app/views/issues/issues.component.scss","webpack:///./src/app/views/issues/issues.component.ts","webpack:///./src/app/views/issues/issues.module.ts","webpack:///./src/app/views/lead-desk/lead-desk-list/lead-desk-config/lead-desk-config.component.html","webpack:///./src/app/views/lead-desk/lead-desk-list/lead-desk-config/lead-desk-config.component.scss","webpack:///./src/app/views/lead-desk/lead-desk-list/lead-desk-config/lead-desk-config.component.ts","webpack:///./src/app/views/lead-desk/lead-desk-list/lead-desk-list.component.html","webpack:///./src/app/views/lead-desk/lead-desk-list/lead-desk-list.component.scss","webpack:///./src/app/views/lead-desk/lead-desk-list/lead-desk-list.component.ts","webpack:///./src/app/views/lead-desk/lead-desk-routing.module.ts","webpack:///./src/app/views/lead-desk/lead-desk.component.html","webpack:///./src/app/views/lead-desk/lead-desk.component.scss","webpack:///./src/app/views/lead-desk/lead-desk.component.ts","webpack:///./src/app/views/lead-desk/lead-desk.module.ts","webpack:///./src/app/views/mailchimp/mailchimp-list/mailchimp-config/mailchimp-config.component.html","webpack:///./src/app/views/mailchimp/mailchimp-list/mailchimp-config/mailchimp-config.component.scss","webpack:///./src/app/views/mailchimp/mailchimp-list/mailchimp-config/mailchimp-config.component.ts","webpack:///./src/app/views/mailchimp/mailchimp-list/mailchimp-list.component.html","webpack:///./src/app/views/mailchimp/mailchimp-list/mailchimp-list.component.scss","webpack:///./src/app/views/mailchimp/mailchimp-list/mailchimp-list.component.ts","webpack:///./src/app/views/mailchimp/mailchimp-routing.module.ts","webpack:///./src/app/views/mailchimp/mailchimp.component.html","webpack:///./src/app/views/mailchimp/mailchimp.component.scss","webpack:///./src/app/views/mailchimp/mailchimp.component.ts","webpack:///./src/app/views/mailchimp/mailchimp.module.ts","webpack:///./src/app/views/message-centre/message-centre-config-email/message-centre-config-email-manage/message-centre-config-email-manage.component.html","webpack:///./src/app/views/message-centre/message-centre-config-email/message-centre-config-email-manage/message-centre-config-email-manage.component.scss","webpack:///./src/app/views/message-centre/message-centre-config-email/message-centre-config-email-manage/message-centre-config-email-manage.component.ts","webpack:///./src/app/views/message-centre/message-centre-config-email/message-centre-config-email.component.html","webpack:///./src/app/views/message-centre/message-centre-config-email/message-centre-config-email.component.scss","webpack:///./src/app/views/message-centre/message-centre-config-email/message-centre-config-email.component.ts","webpack:///./src/app/views/message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors-manage/message-centre-config-smswarriors-manage.component.html","webpack:///./src/app/views/message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors-manage/message-centre-config-smswarriors-manage.component.scss","webpack:///./src/app/views/message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors-manage/message-centre-config-smswarriors-manage.component.ts","webpack:///./src/app/views/message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors.component.html","webpack:///./src/app/views/message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors.component.scss","webpack:///./src/app/views/message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors.component.ts","webpack:///./src/app/views/message-centre/message-centre-emails/message-centre-emails.component.html","webpack:///./src/app/views/message-centre/message-centre-emails/message-centre-emails.component.scss","webpack:///./src/app/views/message-centre/message-centre-emails/message-centre-emails.component.ts","webpack:///./src/app/views/message-centre/message-centre-routing.module.ts","webpack:///./src/app/views/message-centre/message-centre-signatures/message-centre-signatures-manage/message-centre-signatures-manage.component.html","webpack:///./src/app/views/message-centre/message-centre-signatures/message-centre-signatures-manage/message-centre-signatures-manage.component.scss","webpack:///./src/app/views/message-centre/message-centre-signatures/message-centre-signatures-manage/message-centre-signatures-manage.component.ts","webpack:///./src/app/views/message-centre/message-centre-signatures/message-centre-signatures.component.html","webpack:///./src/app/views/message-centre/message-centre-signatures/message-centre-signatures.component.scss","webpack:///./src/app/views/message-centre/message-centre-signatures/message-centre-signatures.component.ts","webpack:///./src/app/views/message-centre/message-centre-sms/message-centre-sms.component.html","webpack:///./src/app/views/message-centre/message-centre-sms/message-centre-sms.component.scss","webpack:///./src/app/views/message-centre/message-centre-sms/message-centre-sms.component.ts","webpack:///./src/app/views/message-centre/message-centre-templates/message-centre-templates-manage/message-centre-templates-manage.component.html","webpack:///./src/app/views/message-centre/message-centre-templates/message-centre-templates-manage/message-centre-templates-manage.component.scss","webpack:///./src/app/views/message-centre/message-centre-templates/message-centre-templates-manage/message-centre-templates-manage.component.ts","webpack:///./src/app/views/message-centre/message-centre-templates/message-centre-templates.component.html","webpack:///./src/app/views/message-centre/message-centre-templates/message-centre-templates.component.scss","webpack:///./src/app/views/message-centre/message-centre-templates/message-centre-templates.component.ts","webpack:///./src/app/views/message-centre/message-centre.component.html","webpack:///./src/app/views/message-centre/message-centre.component.scss","webpack:///./src/app/views/message-centre/message-centre.component.ts","webpack:///./src/app/views/message-centre/message-centre.module.ts","webpack:///./src/app/views/opportunities/opportunities-routing.module.ts","webpack:///./src/app/views/opportunities/opportunities.component.html","webpack:///./src/app/views/opportunities/opportunities.component.scss","webpack:///./src/app/views/opportunities/opportunities.component.ts","webpack:///./src/app/views/opportunities/opportunities.module.ts","webpack:///./src/app/views/opportunities/opportunity-acquisition/opportunity-manage-acquisition-item.validation.ts","webpack:///./src/app/views/opportunities/opportunity-acquisition/opportunity-manage-acquisition.component.html","webpack:///./src/app/views/opportunities/opportunity-acquisition/opportunity-manage-acquisition.component.scss","webpack:///./src/app/views/opportunities/opportunity-acquisition/opportunity-manage-acquisition.component.ts","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-file-list/opportunity-file-list.component.html","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-file-list/opportunity-file-list.component.scss","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-file-list/opportunity-file-list.component.ts","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-file-manage/opportunity-file-manage.component.html","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-file-manage/opportunity-file-manage.component.scss","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-file-manage/opportunity-file-manage.component.ts","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-files-routing.module.ts","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-files.component.html","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-files.component.scss","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-files.component.ts","webpack:///./src/app/views/opportunities/opportunity-files/opportunity-files.module.ts","webpack:///./src/app/views/opportunities/opportunity-list/opportunity-list.component.html","webpack:///./src/app/views/opportunities/opportunity-list/opportunity-list.component.scss","webpack:///./src/app/views/opportunities/opportunity-list/opportunity-list.component.ts","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-type-list/opportunity-lost-type-list.component.html","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-type-list/opportunity-lost-type-list.component.scss","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-type-list/opportunity-lost-type-list.component.ts","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-type-manage/opportunity-lost-type-manage.component.html","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-type-manage/opportunity-lost-type-manage.component.scss","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-type-manage/opportunity-lost-type-manage.component.ts","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-types-routing.module.ts","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-types.component.html","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-types.component.scss","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-types.component.ts","webpack:///./src/app/views/opportunities/opportunity-lost-types/opportunity-lost-types.module.ts","webpack:///./src/app/views/opportunities/opportunity-manage/opportunity-manage-item.validation.ts","webpack:///./src/app/views/opportunities/opportunity-manage/opportunity-manage.component.html","webpack:///./src/app/views/opportunities/opportunity-manage/opportunity-manage.component.scss","webpack:///./src/app/views/opportunities/opportunity-manage/opportunity-manage.component.ts","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-manage/opportunity-quote-manage.component.html","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-manage/opportunity-quote-manage.component.scss","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-manage/opportunity-quote-manage.component.ts","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-manage/quote-item-form-control.ts","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-send-email/opportunity-quote-send-email.component.html","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-send-email/opportunity-quote-send-email.component.scss","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quote-send-email/opportunity-quote-send-email.component.ts","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quotes-routing.module.ts","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quotes.component.html","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quotes.component.scss","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quotes.component.ts","webpack:///./src/app/views/opportunities/opportunity-quotes/opportunity-quotes.module.ts","webpack:///./src/app/views/opportunities/opportunity-sales/opportunity-manage-sales-item.validation.ts","webpack:///./src/app/views/opportunities/opportunity-sales/opportunity-manage-sales.component.html","webpack:///./src/app/views/opportunities/opportunity-sales/opportunity-manage-sales.component.scss","webpack:///./src/app/views/opportunities/opportunity-sales/opportunity-manage-sales.component.ts","webpack:///./src/app/views/organizations/organization-list/organization-list.component.html","webpack:///./src/app/views/organizations/organization-list/organization-list.component.scss","webpack:///./src/app/views/organizations/organization-list/organization-list.component.ts","webpack:///./src/app/views/organizations/organization-manage/organization-manage.component.html","webpack:///./src/app/views/organizations/organization-manage/organization-manage.component.scss","webpack:///./src/app/views/organizations/organization-manage/organization-manage.component.ts","webpack:///./src/app/views/organizations/organizations-routing.module.ts","webpack:///./src/app/views/organizations/organizations.component.html","webpack:///./src/app/views/organizations/organizations.component.scss","webpack:///./src/app/views/organizations/organizations.component.ts","webpack:///./src/app/views/organizations/organizations.module.ts","webpack:///./src/app/views/reports/complaints/complaints.component.html","webpack:///./src/app/views/reports/complaints/complaints.component.scss","webpack:///./src/app/views/reports/complaints/complaints.component.ts","webpack:///./src/app/views/reports/contacts/contacts.component.html","webpack:///./src/app/views/reports/contacts/contacts.component.scss","webpack:///./src/app/views/reports/contacts/contacts.component.ts","webpack:///./src/app/views/reports/conversions/conversions.component.html","webpack:///./src/app/views/reports/conversions/conversions.component.scss","webpack:///./src/app/views/reports/conversions/conversions.component.ts","webpack:///./src/app/views/reports/opportunities/opportunities.component.html","webpack:///./src/app/views/reports/opportunities/opportunities.component.scss","webpack:///./src/app/views/reports/opportunities/opportunities.component.ts","webpack:///./src/app/views/reports/reports-routing.module.ts","webpack:///./src/app/views/reports/reports.component.html","webpack:///./src/app/views/reports/reports.component.scss","webpack:///./src/app/views/reports/reports.component.ts","webpack:///./src/app/views/reports/reports.module.ts","webpack:///./src/app/views/reports/tasks/tasks.component.html","webpack:///./src/app/views/reports/tasks/tasks.component.scss","webpack:///./src/app/views/reports/tasks/tasks.component.ts","webpack:///./src/app/views/shared/classes/CustomFormBuilder.ts","webpack:///./src/app/views/shared/developer.mode.service.ts","webpack:///./src/app/views/shared/directives/external-redirect-directive.ts","webpack:///./src/app/views/shared/lifetime-management.ts","webpack:///./src/app/views/shared/models/address.model.ts","webpack:///./src/app/views/shared/models/communication-log-type.model.ts","webpack:///./src/app/views/shared/models/communication-log.model.ts","webpack:///./src/app/views/shared/models/company-details.model.ts","webpack:///./src/app/views/shared/models/complaint-status.model.ts","webpack:///./src/app/views/shared/models/complaint-type.model.ts","webpack:///./src/app/views/shared/models/complaint.model.ts","webpack:///./src/app/views/shared/models/contact-file.model.ts","webpack:///./src/app/views/shared/models/contact-source.model.ts","webpack:///./src/app/views/shared/models/contact-type.model.ts","webpack:///./src/app/views/shared/models/contact.model.ts","webpack:///./src/app/views/shared/models/contacts-segment.model.ts","webpack:///./src/app/views/shared/models/email-profile.model.ts","webpack:///./src/app/views/shared/models/email.model.ts","webpack:///./src/app/views/shared/models/forgot-password.model.ts","webpack:///./src/app/views/shared/models/group.model.ts","webpack:///./src/app/views/shared/models/lead-desk/lead-desk-config.model.ts","webpack:///./src/app/views/shared/models/log-model.model.ts","webpack:///./src/app/views/shared/models/login.model.ts","webpack:///./src/app/views/shared/models/mailchimp/campaign.model.ts","webpack:///./src/app/views/shared/models/message-signature.model.ts","webpack:///./src/app/views/shared/models/message-template.model.ts","webpack:///./src/app/views/shared/models/opportunities-segment.model.ts","webpack:///./src/app/views/shared/models/opportunity-category-type/opportunity-category-type.model.ts","webpack:///./src/app/views/shared/models/opportunity-file.model.ts","webpack:///./src/app/views/shared/models/opportunity-lost-type.model.ts","webpack:///./src/app/views/shared/models/opportunity-properties-not-interested.model.ts","webpack:///./src/app/views/shared/models/opportunity-selection.model.ts","webpack:///./src/app/views/shared/models/opportunity-type.model.ts","webpack:///./src/app/views/shared/models/opportunity.model.ts","webpack:///./src/app/views/shared/models/organization.model.ts","webpack:///./src/app/views/shared/models/payment-term.model.ts","webpack:///./src/app/views/shared/models/property-details.model.ts","webpack:///./src/app/views/shared/models/property-id-codes.model.ts","webpack:///./src/app/views/shared/models/property.model.ts","webpack:///./src/app/views/shared/models/quote-item.model.ts","webpack:///./src/app/views/shared/models/quote.model.ts","webpack:///./src/app/views/shared/models/reset-password.model.ts","webpack:///./src/app/views/shared/models/saved-contact-search.model.ts","webpack:///./src/app/views/shared/models/sms-warriors-profile.model.ts","webpack:///./src/app/views/shared/models/task-type.model.ts","webpack:///./src/app/views/shared/models/task.model.ts","webpack:///./src/app/views/shared/models/user.model.ts","webpack:///./src/app/views/shared/pipes/assigned-contacts.pipe.ts","webpack:///./src/app/views/shared/pipes/assigned-users.pipe.ts","webpack:///./src/app/views/shared/pipes/label-empty-field.pipe.ts","webpack:///./src/app/views/shared/pipes/task-status.pipe.ts","webpack:///./src/app/views/shared/services/communication-history-type.service.ts","webpack:///./src/app/views/shared/services/communication-history.service.ts","webpack:///./src/app/views/shared/services/complaint-log.service.ts","webpack:///./src/app/views/shared/services/complaint-type.service.ts","webpack:///./src/app/views/shared/services/complaint.service.ts","webpack:///./src/app/views/shared/services/contact-file.service.ts","webpack:///./src/app/views/shared/services/contact-source.service.ts","webpack:///./src/app/views/shared/services/contact-type.service.ts","webpack:///./src/app/views/shared/services/contact.service.ts","webpack:///./src/app/views/shared/services/email-profile.service.ts","webpack:///./src/app/views/shared/services/email.service.ts","webpack:///./src/app/views/shared/services/group.service.ts","webpack:///./src/app/views/shared/services/lead-desk.service.ts","webpack:///./src/app/views/shared/services/loading-spinner.service.ts","webpack:///./src/app/views/shared/services/mailchimp.service.ts","webpack:///./src/app/views/shared/services/message-signature.service.ts","webpack:///./src/app/views/shared/services/message-template.service.ts","webpack:///./src/app/views/shared/services/opportunity-file.service.ts","webpack:///./src/app/views/shared/services/opportunity-lost-type.service.ts","webpack:///./src/app/views/shared/services/opportunity-type.service.ts","webpack:///./src/app/views/shared/services/opportunity.service.ts","webpack:///./src/app/views/shared/services/organization.service.ts","webpack:///./src/app/views/shared/services/payment-term.service.ts","webpack:///./src/app/views/shared/services/product.service.ts","webpack:///./src/app/views/shared/services/property.service.ts","webpack:///./src/app/views/shared/services/quote.service.ts","webpack:///./src/app/views/shared/services/saved-contact-search.service.ts","webpack:///./src/app/views/shared/services/sms-warriors-profile.service.ts","webpack:///./src/app/views/shared/services/sms-warriors.service.ts","webpack:///./src/app/views/shared/services/table-utility.service.ts","webpack:///./src/app/views/shared/services/tag.service.ts","webpack:///./src/app/views/shared/services/task-type.service.ts","webpack:///./src/app/views/shared/services/task.service.ts","webpack:///./src/app/views/shared/services/toast.service.ts","webpack:///./src/app/views/shared/services/user.service.ts","webpack:///./src/app/views/shared/services/utility.service.ts","webpack:///./src/app/views/shared/shared.module.ts","webpack:///./src/app/views/shared/system-config.service.ts","webpack:///./src/app/views/shared/system.ts","webpack:///./src/app/views/shared/validators/value-exists.validator.ts","webpack:///./src/app/views/tasks/task-list/task-list.component.html","webpack:///./src/app/views/tasks/task-list/task-list.component.scss","webpack:///./src/app/views/tasks/task-list/task-list.component.ts","webpack:///./src/app/views/tasks/task-manage/task-manage.component.html","webpack:///./src/app/views/tasks/task-manage/task-manage.component.scss","webpack:///./src/app/views/tasks/task-manage/task-manage.component.ts","webpack:///./src/app/views/tasks/task-types/task-type-list/task-type-list.component.html","webpack:///./src/app/views/tasks/task-types/task-type-list/task-type-list.component.scss","webpack:///./src/app/views/tasks/task-types/task-type-list/task-type-list.component.ts","webpack:///./src/app/views/tasks/task-types/task-type-manage/task-type-manage.component.html","webpack:///./src/app/views/tasks/task-types/task-type-manage/task-type-manage.component.scss","webpack:///./src/app/views/tasks/task-types/task-type-manage/task-type-manage.component.ts","webpack:///./src/app/views/tasks/task-types/task-types-routing.module.ts","webpack:///./src/app/views/tasks/task-types/task-types.component.html","webpack:///./src/app/views/tasks/task-types/task-types.component.scss","webpack:///./src/app/views/tasks/task-types/task-types.component.ts","webpack:///./src/app/views/tasks/task-types/task-types.module.ts","webpack:///./src/app/views/tasks/tasks-routing.module.ts","webpack:///./src/app/views/tasks/tasks.component.html","webpack:///./src/app/views/tasks/tasks.component.scss","webpack:///./src/app/views/tasks/tasks.component.ts","webpack:///./src/app/views/tasks/tasks.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["var map = {\n\t\"./shared/profile/profile.module\": [\n\t\t\"./src/app/shared/profile/profile.module.ts\",\n\t\t\"shared-profile-profile-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","import { CountryCode } from \"./app/views/shared/models/country-code.model\";\r\nimport { AppSettings } from 'app.settings';\r\n\r\nexport class ApiEndPoints {\r\n public static readonly CrmApiEndPoint = AppSettings.API_ENDPOINT;\r\n //public static readonly CrmApiEndPoint = \"http://lbmcrmapi.isb-software.co.uk/\";\r\n}\r\n\r\nexport class CustomConfigurations {\r\n public static readonly SharedContacts = true; // - If contacts should be visible to everyone or just their set referrer\r\n public static readonly SharedCommLogs = true; // - Same as above but for communication logs\r\n public static readonly SharedOpportunities = true; // - Same as above but for opportunities\r\n}\r\n\r\nexport class ComponentStyling {\r\n public static readonly PrimaryColor = \"#005e85\"; // - Primary color ($navy in scss) used for the Line chart in Dashboard\r\n}\r\n\r\nexport class PrepopulatedContactTypes {\r\n public static readonly Customer = \"Client\";\r\n public static readonly Lead = \"Lead\";\r\n}\r\n\r\nexport class PrepopulatedTypesContact {\r\n public static readonly Client = \"Client\";\r\n public static readonly Vendor = \"Vendor\";\r\n public static readonly Brokers = \"Brokers\";\r\n public static readonly Notaries = \"Notaries\";\r\n public static readonly Architects = \"Architects\";\r\n public static readonly Other_Agents = \"Other Agents\";\r\n public static readonly Developers = \"Developers\";\r\n public static readonly Prospectors = \"Prospectors\";\r\n}\r\n\r\nexport class PrepopulatedContactSources {\r\n public static readonly Website = \"Website\";\r\n public static readonly Referred = \"Referred\";\r\n}\r\n\r\nexport class PrepopulatedTaskTypes {\r\n public static readonly Meeting = \"Meeting\";\r\n public static readonly CommunicationLog = \"Communication Log Assignment\";\r\n public static readonly Viewing = \"Viewing\";\r\n}\r\n\r\nexport class PrepopulatedOpportunityTypes {\r\n public static readonly Open = \"Open\";\r\n public static readonly ClosedPurchase = \"Closed Purchase\";\r\n public static readonly ClosedSale = \"Closed Sale\";\r\n public static readonly Lost = \"Lost\";\r\n}\r\n\r\nexport class PrepopulatedEntities {\r\n public static readonly PrepopulatedContactTypeNames: string[] = [\r\n PrepopulatedContactTypes.Customer,\r\n PrepopulatedContactTypes.Lead\r\n ];\r\n\r\n public static readonly SystemContactTypeCreatedById: number = -1;\r\n\r\n public static readonly PrepopulatedContactSourceNames: string[] = [\r\n PrepopulatedContactSources.Website,\r\n PrepopulatedContactSources.Referred\r\n ];\r\n\r\n public static readonly SystemContactSourceCreatedById: number = -1;\r\n\r\n public static readonly PrepopulatedTaskTypeNames: string[] = [\r\n PrepopulatedTaskTypes.Meeting\r\n ];\r\n\r\n public static readonly SystemTaskTypeCreatedById: number = -1;\r\n}\r\n\r\nexport class CommunicationLogTypeNames {\r\n public static readonly Website = \"Website\";\r\n public static readonly Phone = \"Phone\";\r\n public static readonly Email = \"Email\";\r\n public static readonly Meeting = \"Meeting\";\r\n public static readonly Skype = \"Skype\";\r\n public static readonly SMS = \"SMS\";\r\n public static readonly Facebook = \"Facebook\";\r\n public static readonly HelpDesk = \"Help Desk\";\r\n public static readonly LinkedIn = \"LinkedIn\";\r\n public static readonly MailChimp = \"MailChimp\";\r\n public static readonly LeadDeskPostCallEvent = \"LeadDesk - Post Call Event\";\r\n\r\n // - Log Types that are created manually through migrations\r\n // - These are stored to be able to differentiate between these manually created log types and the log types\r\n // which are created from websites integrated with the CRM\r\n public static readonly LogTypesNotFromWebsite: string[] = [\r\n CommunicationLogTypeNames.Phone,\r\n CommunicationLogTypeNames.Email,\r\n CommunicationLogTypeNames.Meeting,\r\n CommunicationLogTypeNames.Skype,\r\n CommunicationLogTypeNames.SMS,\r\n CommunicationLogTypeNames.Facebook,\r\n CommunicationLogTypeNames.HelpDesk,\r\n CommunicationLogTypeNames.LinkedIn,\r\n CommunicationLogTypeNames.MailChimp,\r\n CommunicationLogTypeNames.LeadDeskPostCallEvent\r\n ];\r\n}\r\n\r\nexport class CommunicationDirection {\r\n public static readonly Incoming = \"I\";\r\n public static readonly Outgoing = \"O\";\r\n}\r\n\r\nexport class AuditManager {\r\n public static readonly StatusActive = \"A\";\r\n public static readonly StatusDelete = \"X\";\r\n public static readonly StatusHidden = \"H\";\r\n}\r\n\r\nexport class SmsWarriors {\r\n public static readonly CountryCodes: CountryCode[] = [\r\n { country: \"Malta\", code: \"356\" },\r\n // { country: \"Test\", code: \"123\" }\r\n ];\r\n}\r\n\r\nexport class GoogleMaps {\r\n public static readonly DefaultLocation = \"Triq P Gagliardi, Ħal Tarxien, Malta\";\r\n public static readonly DefaultLocationLat = 35.86864;\r\n public static readonly DefaultLocationLng = 14.513333;\r\n public static readonly DefaultLocationZoom = 18;\r\n}\r\n","import { environment } from \"environments/environment\";\r\n\r\nexport class AppSettings {\r\n public static readonly API_ENDPOINT = environment.API_ENDPOINT;\r\n public static readonly API_GRAPHQL = environment.API_GRAPHQL;\r\n\r\n // public static readonly NOTIFICATIONS_API_ENDPOINT = environment.NOTIFICATIONS_API_ENDPOINT;\r\n\r\n public static readonly AUTHORITY_ENDPOINT = environment.AUTHORITY_ENDPOINT;\r\n public static readonly REDIRECT_URI = environment.REDIRECT_URI;\r\n\r\n public static readonly SILENT_REDIRECT_URI = environment.SILENT_REDIRECT_URI;\r\n public static readonly POST_LOGOUT_REDIRECT_URI = environment.POST_LOGOUT_REDIRECT_URI;\r\n\r\n public static readonly PORTAL_URI = environment.PORTAL_URI;\r\n public static readonly CLIENT_ID = environment.CLIENT_ID;\r\n public static readonly SCOPE = environment.SCOPE;\r\n\r\n public static readonly CENTRAL = environment.CENTRAL;\r\n //static SCOPE: any;\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport { DataProxy } from 'apollo-cache';\r\nimport { DocumentNode } from 'apollo-link';\r\n\r\ninterface Query {\r\n query: DocumentNode;\r\n variables?: TVariables;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataProxyExtensions {\r\n\r\n public readQuery(proxy: DataProxy, options: DataProxy.Query): QueryType | undefined {\r\n try {\r\n const data = proxy.readQuery({ query: options.query, variables: options.variables });\r\n return data;\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n}","import { InMemoryCache } from 'apollo-cache-inmemory';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HttpLinkModule, HttpLink } from 'apollo-angular-link-http';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { Apollo, ApolloModule } from 'apollo-angular';\r\nimport { DataProxyExtensions } from './apollo-proxy.extensions';\r\nimport { AppSettings } from 'app.settings';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n ApolloModule,\r\n HttpLinkModule,\r\n HttpClientModule\r\n ],\r\n exports: [ApolloModule],\r\n providers: [ ],\r\n entryComponents: [ ]\r\n})\r\nexport class ApolloApplicationModule {\r\n\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: ApolloApplicationModule,\r\n providers: [HttpLink, DataProxyExtensions]\r\n };\r\n }\r\n\r\n constructor(\r\n apollo: Apollo,\r\n httpLink: HttpLink,\r\n ) {\r\n\r\n apollo.create({\r\n cache: new InMemoryCache({ }),\r\n defaultOptions: {\r\n\r\n // watchQuery: {\r\n // fetchPolicy: 'cache-and-network',\r\n // errorPolicy: 'all',\r\n // },\r\n query: {\r\n fetchPolicy: 'no-cache',\r\n errorPolicy: 'all',\r\n },\r\n // watchQuery: {\r\n // fetchPolicy: 'network-only',\r\n // errorPolicy: 'all',\r\n // },\r\n // query: {\r\n // fetchPolicy: 'network-only',\r\n // errorPolicy: 'all',\r\n // },\r\n // mutation: {\r\n // errorPolicy: 'all',\r\n // }\r\n },\r\n link: httpLink.create({\r\n uri: AppSettings.API_GRAPHQL,\r\n method: \"POST\",\r\n includeQuery: true,\r\n })\r\n });\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\n\r\nimport { BasicLayoutComponent } from \"./components/common/layouts/basicLayout.component\";\r\nimport { NotFoundComponent } from \"./views/errors/not-found/not-found.component\";\r\nimport { HomeComponent } from \"./views/home/home.component\";\r\n\r\nimport { AuthGuard } from \"./views/auth/auth-guard.service\";\r\nimport { ContactListComponent } from \"./views/contacts/contact-list/contact-list.component\";\r\nimport { ContactsComponent } from \"./views/contacts/contacts.component\";\r\nimport { CommunicationHistoryComponent } from \"./views/contacts/communication-history/communication-history.component\";\r\n\r\nexport const appRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\r\n { path: 'home', component: HomeComponent },\r\n { path: 'contacts/:contactId/communication-history', component: CommunicationHistoryComponent }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(appRoutes)\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class AppRoutingModule { }","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { SystemConfiguration, SystemConfigurationService } from './views/shared/system-config.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n\r\n public configKey: string;\r\n\r\n public constructor(\r\n private titleService: Title,\r\n private config: SystemConfigurationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n debugger;\r\n this.config.getConfiguration().subscribe((_: SystemConfiguration) => {\r\n this.configKey = _.keyConfiguration\r\n if (this.configKey == \"SALES\") {\r\n this.setTitle(\"CRM - SCENIC - by ISB Technologies\")\r\n } else if (this.configKey == \"ACQUISITION\") {\r\n this.setTitle(\"Site Acquisition - SCENIC - by ISB Technologies\")\r\n }\r\n });\r\n }\r\n\r\n public setTitle(newTitle: string) {\r\n this.titleService.setTitle(newTitle);\r\n }\r\n}\r\n","/*\r\n * Inspinia js helpers:\r\n *\r\n * correctHeight() - fix the height of main wrapper\r\n * detectBody() - detect windows size\r\n * smoothlyMenu() - add smooth fade in/out on navigation show/ide\r\n *\r\n */\r\n\r\ndeclare var jQuery:any;\r\n\r\nexport function correctHeight() {\r\n\r\n var pageWrapper = jQuery('#page-wrapper');\r\n var navbarHeight = jQuery('nav.navbar-default').height();\r\n var wrapperHeight = pageWrapper.height();\r\n\r\n if (navbarHeight > wrapperHeight) {\r\n pageWrapper.css(\"min-height\", navbarHeight + \"px\");\r\n }\r\n\r\n if (navbarHeight <= wrapperHeight) {\r\n if (navbarHeight < jQuery(window).height()) {\r\n pageWrapper.css(\"min-height\", jQuery(window).height() + \"px\");\r\n } else {\r\n pageWrapper.css(\"min-height\", navbarHeight + \"px\");\r\n }\r\n }\r\n\r\n if (jQuery('body').hasClass('fixed-nav')) {\r\n if (navbarHeight > wrapperHeight) {\r\n pageWrapper.css(\"min-height\", navbarHeight + \"px\");\r\n } else {\r\n pageWrapper.css(\"min-height\", jQuery(window).height() - 60 + \"px\");\r\n }\r\n }\r\n}\r\n\r\nexport function detectBody() {\r\n if (jQuery(document).width() < 769) {\r\n jQuery('body').addClass('body-small')\r\n } else {\r\n jQuery('body').removeClass('body-small')\r\n }\r\n}\r\n\r\nexport function smoothlyMenu() {\r\n if (!jQuery('body').hasClass('mini-navbar') || jQuery('body').hasClass('body-small')) {\r\n // Hide menu in order to smoothly turn on when maximize menu\r\n jQuery('#side-menu').hide();\r\n // For smoothly turn on menu\r\n setTimeout(\r\n function () {\r\n jQuery('#side-menu').fadeIn(400);\r\n }, 200);\r\n } else if (jQuery('body').hasClass('fixed-sidebar')) {\r\n jQuery('#side-menu').hide();\r\n setTimeout(\r\n function () {\r\n jQuery('#side-menu').fadeIn(400);\r\n }, 100);\r\n } else {\r\n // Remove all inline style from jquery fadeIn function to reset menu state\r\n jQuery('#side-menu').removeAttr('style');\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, LOCALE_ID, APP_INITIALIZER } from '@angular/core';\r\n\r\nimport { CoreModule } from \"./views/core/core.module\";\r\nimport { AccountsModule } from \"./views/accounts/accounts.module\";\r\nimport { SharedModule } from \"./views/shared/shared.module\";\r\nimport { LayoutsModule } from \"./components/common/layouts/layouts.module\";\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\nimport { AuthModule } from \"./views/auth/auth.module\";\r\nimport { ErrorsModule } from \"./views/errors/errors.module\";\r\nimport { HomeModule } from \"./views/home/home.module\";\r\nimport { ContactsModule } from \"./views/contacts/contacts.module\";\r\nimport { TasksModule } from \"./views/tasks/tasks.module\";\r\nimport { DashboardModule } from \"./views/dashboard/dashboard.module\";\r\nimport { ReportsModule } from \"./views/reports/reports.module\";\r\nimport { OpportunitiesModule } from \"./views/opportunities/opportunities.module\";\r\nimport { MessageCentreModule } from './views/message-centre/message-centre.module';\r\nimport { MailchimpModule } from './views/mailchimp/mailchimp.module';\r\nimport { LeadDeskModule } from './views/lead-desk/lead-desk.module';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { CookieModule } from 'ngx-cookie';\r\nimport { OrganizationsModule } from './views/organizations/organizations.module';\r\nimport { IssuesModule } from \"./views/issues/issues.module\";\r\nimport { ComplaintsModule } from \"./views/complaints/complaints.module\";\r\nimport { SilentComponent } from './shared/authentication/silent/silent.component';\r\nimport { UnauthorizedComponent } from './shared/authentication/unauthorized';\r\nimport { AuthComponent } from './shared/authentication';\r\nimport { AuthService } from './views/auth/auth.service';\r\nimport { CrmRoutingModule } from './crm-routing.module';\r\nimport { InterceptorsModule } from './shared/interceptors/interceptors.module';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ProfileService } from './shared/profile/profile.service';\r\nimport { ApiService } from './shared/api.service';\r\n\r\nimport { NgxPermissionsModule, NgxPermissionsService } from 'ngx-permissions';\r\nimport { DeveloperModeHelper, DeveloperModeService, DeveloperConstants } from './views/shared/developer.mode.service';\r\nimport { fromEvent } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { ExternalUrlDirective } from './views/shared/directives/external-redirect-directive';\r\nimport { CompanyDetailsModule } from './views/company-details/company-details.module';\r\n\r\nimport { ApolloModule } from 'apollo-angular';\r\nimport { ApolloApplicationModule } from './apollo.application.module';\r\nimport { HttpLinkModule } from 'apollo-angular-link-http';\r\nimport { EventsModule } from './views/events/events.module';\r\nimport { SystemConfigurationService, SystemModeHelper, SystemConfiguration } from './views/shared/system-config.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n ExternalUrlDirective,\r\n AuthComponent,\r\n UnauthorizedComponent,\r\n SilentComponent,\r\n AppComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n CookieModule.forRoot(),\r\n HttpClientModule,\r\n NgxPermissionsModule.forRoot(),\r\n LayoutsModule,\r\n SharedModule,\r\n CoreModule,\r\n InterceptorsModule,\r\n AuthModule,\r\n NgxPermissionsModule.forRoot(),\r\n\r\n ApolloModule,\r\n ApolloApplicationModule.forRoot(),\r\n HomeModule,\r\n ContactsModule,\r\n TasksModule,\r\n AccountsModule,\r\n DashboardModule,\r\n ReportsModule,\r\n OpportunitiesModule,\r\n MessageCentreModule,\r\n MailchimpModule,\r\n LeadDeskModule,\r\n OrganizationsModule,\r\n IssuesModule,\r\n ComplaintsModule,\r\n CrmRoutingModule,\r\n CompanyDetailsModule,\r\n EventsModule,\r\n ErrorsModule // - Always import last as it handles unknown routes\r\n ],\r\n providers: [\r\n { provide: LOCALE_ID, useValue: \"en\" },\r\n ExternalUrlDirective,\r\n AuthService,\r\n ProfileService,\r\n ApiService,\r\n NgxPermissionsService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: ( ps: NgxPermissionsService, dev: DeveloperModeHelper ) => function() {\r\n var permissions = JSON.parse(localStorage.getItem('permissions'));\r\n if(!permissions) {\r\n permissions = [];\r\n }\r\n\r\n if(permissions.find(_=>_ === 'Developer')) {\r\n dev.isDeveloper.next(true);\r\n var isDeveloperMode = JSON.parse(localStorage.getItem(DeveloperConstants.IS_DEVELOPER_MODE));\r\n if(isDeveloperMode) {\r\n\r\n dev.next(isDeveloperMode);\r\n } else {\r\n dev.next(false);\r\n }\r\n } else {\r\n localStorage.removeItem(DeveloperConstants.IS_DEVELOPER_MODE);\r\n }\r\n\r\n let storageEvent$ = fromEvent(window, 'storage').pipe(\r\n filter(evt=>evt.key === DeveloperConstants.IS_DEVELOPER_MODE),\r\n map(evt => evt)\r\n ).subscribe((evt) => {\r\n dev.next(JSON.parse(evt.newValue));\r\n console.log(evt);\r\n })\r\n\r\n return ps.loadPermissions(permissions);\r\n },\r\n deps: [NgxPermissionsService, DeveloperModeHelper],\r\n multi: true\r\n },\r\n\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: ( sysConfigService: SystemConfigurationService, systemModeHelper: SystemModeHelper ) => function() {\r\n let sub$ = sysConfigService.getConfiguration() \r\n .subscribe((configuration: SystemConfiguration) =>{\r\n \r\n \r\n // let storageEvent$ = fromEvent(window, 'storage').pipe(\r\n // filter(evt=>evt.key === 'system-configuration'),\r\n // map(evt => evt)\r\n // ).subscribe((evt) => {\r\n \r\n // debugger;\r\n // systemModeHelper.next(evt.newValue);\r\n // console.log(evt);\r\n \r\n // })\r\n \r\n \r\n localStorage.setItem(\"system-configuration\", configuration.keyConfiguration);\r\n systemModeHelper.next(configuration.keyConfiguration);\r\n });\r\n \r\n },\r\n deps: [SystemConfigurationService, SystemModeHelper],\r\n multi: true\r\n },\r\n DeveloperModeHelper,\r\n DeveloperModeService,\r\n SystemConfigurationService,\r\n SystemModeHelper,\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'footer',\r\n templateUrl: 'footer.template.html'\r\n})\r\nexport class FooterComponent {\r\n copyYear = (new Date()).getFullYear();\r\n }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Copyright CRM Module for SCENIC by \\r\\n ISB Technologies\\r\\n © {{copyYear}}\\r\\n
\\r\\n
\\r\\n\"","import { Component } from '@angular/core';\r\nimport { detectBody } from '../../../app.helpers';\r\nimport { ToastService } from \"../../../views/shared/services/toast.service\";\r\nimport { LoadingSpinnerService } from \"../../../views/shared/services/loading-spinner.service\";\r\nimport { Message } from \"primeng/primeng\";\r\n\r\ndeclare var jQuery:any;\r\n\r\n@Component({\r\n selector: 'basic',\r\n templateUrl: 'basicLayout.template.html',\r\n host: {\r\n '(window:resize)': 'onResize()'\r\n }\r\n})\r\nexport class BasicLayoutComponent {\r\n constructor(\r\n private toastService: ToastService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n public ngOnInit():any {\r\n detectBody();\r\n }\r\n\r\n public onResize(){\r\n detectBody();\r\n }\r\n\r\n public getToastMsgs(): Message[] {\r\n return this.toastService.getMessages();\r\n }\r\n\r\n public isLoading() {\r\n return this.loadingService.isLoading > 0;\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
Loading...
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","import { Component } from '@angular/core';\r\nimport { LoadingSpinnerService } from \"../../../views/shared/services/loading-spinner.service\";\r\nimport { ToastService } from \"../../../views/shared/services/toast.service\";\r\nimport { Message } from \"primeng/primeng\";\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'blank',\r\n templateUrl: 'blankLayout.template.html'\r\n})\r\nexport class BlankLayoutComponent {\r\n\r\n constructor(\r\n private loadingService: LoadingSpinnerService,\r\n private toastService: ToastService\r\n )\r\n { }\r\n\r\n ngAfterViewInit() {\r\n jQuery('body').addClass('gray-bg');\r\n }\r\n\r\n ngOnDestroy() {\r\n jQuery('body').removeClass('gray-bg');\r\n }\r\n\r\n public getToastMsgs(): Message[] {\r\n return this.toastService.getMessages();\r\n }\r\n\r\n public isLoading() {\r\n return this.loadingService.isLoading > 0;\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n
Loading...
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","import { NgModule } from '@angular/core';\r\nimport { FooterComponent } from '../footer/footer.component';\r\nimport { BasicLayoutComponent } from './basicLayout.component';\r\nimport { BlankLayoutComponent } from './blankLayout.component';\r\nimport { NavigationComponent } from '../navigation/navigation.component';\r\nimport { TopNavigationLayoutComponent } from './topNavigationLayout.component';\r\nimport { TopNavbarComponent } from '../topnavbar/topnavbar.component';\r\nimport { TopNavigationNavbarComponent } from '../topnavbar/topnavigationnavbar.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { BsDropdownModule } from 'ngx-bootstrap';\r\nimport { SharedModule } from 'app/views/shared/shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n FooterComponent,\r\n BasicLayoutComponent,\r\n BlankLayoutComponent,\r\n NavigationComponent,\r\n TopNavigationLayoutComponent,\r\n TopNavbarComponent,\r\n TopNavigationNavbarComponent\r\n ],\r\n imports: [\r\n RouterModule,\r\n BsDropdownModule.forRoot(),\r\n SharedModule\r\n ],\r\n exports: [\r\n FooterComponent,\r\n BasicLayoutComponent,\r\n BlankLayoutComponent,\r\n NavigationComponent,\r\n TopNavigationLayoutComponent,\r\n TopNavbarComponent,\r\n TopNavigationNavbarComponent\r\n ],\r\n})\r\n\r\nexport class LayoutsModule { }\r\n","import { Component } from '@angular/core';\r\nimport { detectBody } from 'app/app.helpers';\r\n\r\n@Component({\r\n selector: 'topnavigationlayout',\r\n templateUrl: 'topNavigationLayout.template.html',\r\n host: {\r\n '(window:resize)': 'onResize()'\r\n }\r\n})\r\nexport class TopNavigationLayoutComponent {\r\n\r\n public ngOnInit():any {\r\n detectBody();\r\n }\r\n\r\n public onResize(){\r\n detectBody();\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","import { Component, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Response } from \"@angular/http\";\r\nimport 'jquery-slimscroll';\r\n\r\nimport { AuthService } from \"../../../views/auth/auth.service\";\r\nimport { TaskService } from \"../../../views/shared/services/task.service\";\r\nimport { ToastService } from \"../../../views/shared/services/toast.service\";\r\n\r\nimport { CrmUser } from \"../../../views/shared/models/user.model\";\r\nimport { Task } from \"../../../views/shared/models/task.model\";\r\nimport { PrepopulatedContactTypes } from \"app.constant\";\r\nimport { DeveloperModeHelper } from 'app/views/shared/developer.mode.service';\r\nimport { environment } from 'environments/environment';\r\nimport { System } from 'app/views/shared/system';\r\nimport { SystemModeHelper, SYSTEM_KEYS } from 'app/views/shared/system-config.service';\r\nimport { AppSettings } from 'app.settings';\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'navigation',\r\n templateUrl: 'navigation.template.html'\r\n})\r\n\r\nexport class NavigationComponent extends System implements OnDestroy {\r\n\r\n public AppSettings : AppSettings = AppSettings;\r\n public SYSTEM_KEYS : SYSTEM_KEYS = SYSTEM_KEYS;\r\n user: any;\r\n incompleteTasksCount = 0; // - Number of incomplete tasks (exlcuding today's and late tasks) (Blue)\r\n todaysTasksCount = 0; // - Today's incomplete tasks (Yellow)\r\n lateTasksCount = 0; // - Tasks that passed their scheduled date and still incomplete (Red)\r\n\r\n leadTypeName = PrepopulatedContactTypes.Lead;\r\n\r\n showDeveloperLabel = false;\r\n showDeveloperModeLabel = false;\r\n isDeveloper$ = null;\r\n developerMode$ = null;\r\n reapUri = 'localhost';\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public taskService: TaskService,\r\n private toastService: ToastService,\r\n private developer: DeveloperModeHelper,\r\n private router: Router,\r\n private systemModeHelper : SystemModeHelper\r\n ) {\r\n super(systemModeHelper)\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit()\r\n this.isDeveloper$ = this.developer.isDeveloper.subscribe((isDeveloper) => {\r\n this.showDeveloperLabel = isDeveloper;\r\n this.reapUri = environment.REAP_URI;\r\n\r\n console.log(\"SYSTEM-KEYYYYY -> \" + this.systemKey);\r\n});\r\n\r\nthis.developerMode$ = this.developer.isDeveloperModeEnabled.subscribe((isDeveloperModeEnabled) => {\r\n this.showDeveloperModeLabel = isDeveloperModeEnabled;\r\n});\r\n\r\nvar authenticateUser = this.authService.currUser();//currentUser;\r\n this.user = authenticateUser.profile;\r\n\r\n //this.user = this.authService.applicationProfileUser() as CrmUser;\r\n this.onGetIncompleteTasksCount();\r\n\r\n // Listen to changes made to tasks\r\n this.taskService.taskCounterChanged.subscribe(\r\n () => {\r\n this.onGetIncompleteTasksCount();\r\n }\r\n );\r\n }\r\n ngOnDestroy() : void {\r\nif(this.isDeveloper$) {\r\n this.isDeveloper$.unsubscribe();\r\n}\r\n }\r\n\r\n onGetIncompleteTasksCount() {\r\n if (this.authService.isAdmin()) {\r\n this.taskService.getIncompleteTasks().subscribe(\r\n (incompleteTasks: Task[]) => {\r\n this.setCountValues(incompleteTasks);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n else {\r\n this.taskService.getIncompleteTasksByUserId(this.authService.applicationProfileUser().id).subscribe(\r\n (incompleteTasks: Task[]) => {\r\n this.setCountValues(incompleteTasks);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n setCountValues(incompleteTasks: Task[]) {\r\n this.incompleteTasksCount = incompleteTasks.length;\r\n this.lateTasksCount = incompleteTasks.filter(t => this.taskService.isTaskLate(t)).length;\r\n this.todaysTasksCount = incompleteTasks.filter(t => this.taskService.isTaskForToday(t)).length;\r\n this.incompleteTasksCount -= (this.lateTasksCount + this.todaysTasksCount);\r\n }\r\n\r\n onLogOut() {\r\n this.authService.logOut();\r\n }\r\n\r\n ngAfterViewInit() {\r\n jQuery('#side-menu').metisMenu();\r\n\r\n if (jQuery(\"body\").hasClass('fixed-sidebar')) {\r\n jQuery('.sidebar-collapse').slimscroll({\r\n height: '100%'\r\n })\r\n }\r\n }\r\n\r\n activeRoute(routename: string): boolean {\r\n return this.router.url.indexOf(routename) > -1;\r\n }\r\n}\r\n","module.exports = \"\\r\\n\"","import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { smoothlyMenu } from '../../../app.helpers';\r\n\r\nimport { AuthService } from \"../../../views/auth/auth.service\";\r\nimport { ContactService } from '../../../views/shared/services/contact.service';\r\n\r\nimport { CookieService } from \"ngx-cookie\";\r\n\r\nimport { Contact } from '../../../views/shared/models/contact.model';\r\nimport { DeveloperModeService, DeveloperModeHelper } from 'app/views/shared/developer.mode.service';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'topnavbar',\r\n templateUrl: 'topnavbar.template.html'\r\n})\r\nexport class TopNavbarComponent implements AfterViewInit {\r\n contactsOptions: ContactSearchItem[] = [];\r\n selectedContactOption: Contact;\r\n\r\n developerMode$ = null;\r\n isDevModeEnabled = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private authService: AuthService,\r\n private contactService: ContactService,\r\n private devMode: DeveloperModeService,\r\n private devModeHelper: DeveloperModeHelper\r\n ) { }\r\n\r\n ngAfterViewInit(): void {\r\n let isExpanded = this.cookieService.getObject(\"crm_isSideNavExpanded\") as boolean;\r\n if (isExpanded !== false) // - Wide navigation if no cookie is found (undefined) or if value is 'true'\r\n this.toggleWideNavigation();\r\n else\r\n this.toggleMiniNavigation();\r\n\r\n this.developerMode$ = this.devModeHelper.isDeveloperModeEnabled.subscribe((isDeveloper) => {\r\n this.isDevModeEnabled = isDeveloper;\r\n });\r\n }\r\n\r\n searchAutoCompleteForContacts(event) {\r\n if (event.query) {\r\n this.onGetContactsSearch(event.query);\r\n }\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm, false).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n this.contactsOptions = contacts;\r\n }\r\n );\r\n }\r\n\r\n onContactSelect(event) {\r\n this.router.navigate(['/contacts/' + this.selectedContactOption.id + '/edit']);\r\n this.selectedContactOption = null; // - Clear search field after search complete\r\n }\r\n\r\n onLogOut() {\r\n this.authService.logOut();\r\n }\r\n\r\n toggleNavigation(): void {\r\n jQuery(\"body\").toggleClass(\"mini-navbar\");\r\n smoothlyMenu();\r\n\r\n this.cookieService.putObject(\"crm_isSideNavExpanded\", this.isSideNavExpanded());\r\n }\r\n\r\n isSideNavExpanded(): boolean {\r\n if (jQuery(\"body\").hasClass(\"mini-navbar\"))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n toggleWideNavigation(): void {\r\n jQuery(\"body\").removeClass(\"mini-navbar\");\r\n }\r\n\r\n toggleMiniNavigation(): void {\r\n jQuery(\"body\").addClass(\"mini-navbar\");\r\n }\r\n\r\n onToggleDeveloperMode() {\r\n if(!this.isDevModeEnabled) {\r\n this.onEnableDeveloperMode();\r\n } else {\r\n this.onDisableDeveloperMode();\r\n }\r\n }\r\n\r\n @ViewChild('chk') chk: ElementRef;\r\n\r\n\r\n onEnableDeveloperMode() {\r\n // this.chk.nativeElement.disable();\r\n this.devMode.enableDeveloperMode().subscribe(()=>{\r\n this.devModeHelper.next(true);\r\n // this.chk.nativeElement.enable();\r\n }, () => {\r\n this.devModeHelper.next(false);\r\n });\r\n }\r\n\r\n onDisableDeveloperMode() {\r\n // this.chk.nativeElement.disable();\r\n\r\n this.devMode.disableDeveloperMode().subscribe(()=>{\r\n this.devModeHelper.next(false);\r\n // this.chk.nativeElement.enable();\r\n }, ()=> {\r\n this.devModeHelper.next(true);\r\n });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","import { Component } from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport { smoothlyMenu } from '../../../app.helpers';\r\ndeclare var jQuery:any;\r\n\r\n@Component({\r\n selector: 'topnavigationnavbar',\r\n templateUrl: 'topnavigationnavbar.template.html'\r\n})\r\nexport class TopNavigationNavbarComponent {\r\n\r\n toggleNavigation(): void {\r\n jQuery(\"body\").toggleClass(\"mini-navbar\");\r\n smoothlyMenu();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthComponent } from './shared/authentication';\r\nimport { SilentComponent } from './shared/authentication/silent/silent.component';\r\nimport { UnauthorizedComponent } from './shared/authentication/unauthorized';\r\n\r\nconst routes: Routes = [\r\n //Profile\r\n {\r\n \"path\": \"profile\",\r\n \"loadChildren\": \".\\/shared\\/profile\\/profile.module#ProfileModule\"\r\n },\r\n { path: 'auth', component: AuthComponent },\r\n { path: 'silent', component: SilentComponent },\r\n { path: 'unauthorized', component: UnauthorizedComponent },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class CrmRoutingModule { }","import {Injectable} from '@angular/core';\r\nimport {Query} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class AllAccountPRofilesQueryGQL extends Query {\r\n document = ALL_ACCOUNT_PROFILES_QUERY;\r\n}\r\n\r\nconst ALL_ACCOUNT_PROFILES_QUERY =\r\n// gql`\r\n// query {\r\n// accountProfiles {\r\n// data {\r\n// id\r\n// firstName\r\n// lastName\r\n// subjectId\r\n// email\r\n// }\r\n// }\r\n// }\r\n// `;\r\n\r\n\r\ngql`\r\n query {\r\n systemAccountProfiles {\r\n data {\r\n id\r\n firstName\r\n lastName\r\n subjectId\r\n email\r\n }\r\n }\r\n }\r\n`;\r\n","import {Injectable} from '@angular/core';\r\nimport {Query} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class DealTypeOpportunitiesQueryGQL extends Query {\r\n document = DEAL_TYPE_OPPORTUNITIES;\r\n}\r\n\r\nconst DEAL_TYPE_OPPORTUNITIES =\r\ngql`\r\n query ($filters: DealTypeOpportunityListFilterInput) {\r\n dealTypeOpportunities (filters: $filters) {\r\n data {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n","import {Injectable} from '@angular/core';\r\nimport {Query} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class LandPurchaseOpportunityByIdOppIdQueryGQL extends Query {\r\n document = LAND_PURCHASE_OPP_BY_OPP_ID_QUERY;\r\n}\r\n\r\nconst LAND_PURCHASE_OPP_BY_OPP_ID_QUERY =\r\ngql`\r\nquery ($id: Int!) {\r\n landPurchaseOpportunityByOppId (id: $id) {\r\n data {\r\n id\r\n code\r\n details\r\n plotDescription\r\n sellingPrice\r\n address {\r\n id\r\n addressLine1\r\n addressLine2\r\n addressLine3\r\n addressLine4\r\n postCode\r\n country\r\n locationLat\r\n locationLng\r\n }\r\n seller {\r\n id\r\n fullName\r\n\r\n organization {\r\n id\r\n name\r\n email\r\n }\r\n }\r\n\r\n opportunity {\r\n id\r\n value\r\n probability\r\n name\r\n lostTypeDescription\r\n\r\n opportunityLostType {\r\n id\r\n name\r\n }\r\n opportunityCategoryType {\r\n id\r\n name\r\n }\r\n opportunityType {\r\n id\r\n name\r\n }\r\n\r\n assignedUserAccount {\r\n id\r\n fullName\r\n }\r\n }\r\n\r\n project {\r\n id\r\n code\r\n name\r\n startDate\r\n dueDate\r\n\r\n projectManager {\r\n id\r\n subjectId\r\n firstName\r\n lastName\r\n }\r\n\r\n }\r\n\r\n dealTypeValue {\r\n id\r\n barterValue\r\n cashValue\r\n partCashValue\r\n partBarterValue\r\n\r\n dealTypeOpportunity {\r\n id\r\n name\r\n }\r\n }\r\n\r\n }\r\n }\r\n}\r\n`;\r\n","import {Injectable} from '@angular/core';\r\nimport {Mutation} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DeleteLandPurchaseOpportunityMutation extends Mutation {\r\n document = DELETE_LAND_PURCHASE_MUTATION;\r\n}\r\n\r\nexport const DELETE_LAND_PURCHASE_MUTATION =\r\ngql`\r\n mutation ($id: Int!) {\r\n deleteLandPurchaseOpportunity (id: $id) {\r\n data {\r\n id\r\n code\r\n }\r\n }\r\n }\r\n`;\r\n","import {Injectable} from '@angular/core';\r\nimport {Mutation} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UpdateLandPurchaseOpportunityMutation extends Mutation {\r\n document = UPDATE_LAND_PURCHASE_MUTATION;\r\n}\r\n\r\nexport const UPDATE_LAND_PURCHASE_MUTATION =\r\ngql`\r\n mutation ($item: LandPurchaseOpportunityInput!) {\r\n updateLandPurchaseOpportunity (item: $item) {\r\n data {\r\n id\r\n code\r\n details\r\n plotDescription\r\n sellingPrice\r\n\r\n address {\r\n id\r\n addressLine1\r\n addressLine2\r\n addressLine3\r\n addressLine4\r\n postCode\r\n country\r\n locationLat\r\n locationLng\r\n }\r\n seller {\r\n id\r\n fullName\r\n\r\n organization {\r\n id\r\n name\r\n email\r\n }\r\n }\r\n\r\n opportunity {\r\n id\r\n value\r\n probability\r\n name\r\n lostTypeDescription\r\n\r\n opportunityLostType {\r\n id\r\n name\r\n }\r\n\r\n opportunityCategoryType {\r\n id\r\n name\r\n }\r\n\r\n opportunityType {\r\n id\r\n name\r\n }\r\n\r\n assignedUserAccount {\r\n id\r\n fullName\r\n }\r\n }\r\n\r\n dealTypeValue {\r\n id\r\n barterValue\r\n cashValue\r\n partCashValue\r\n partBarterValue\r\n\r\n dealTypeOpportunity {\r\n id\r\n name\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n`;\r\n","import {Injectable} from '@angular/core';\r\nimport {Mutation} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CreateLandPurchaseOpportunityMutation extends Mutation {\r\n document = CREATE_LAND_PURCHASE_MUTATION;\r\n}\r\n\r\nexport const CREATE_LAND_PURCHASE_MUTATION =\r\ngql`\r\n mutation ($item: LandPurchaseOpportunityInput!) {\r\n createLandPurchaseOpportunity (item: $item) {\r\n data {\r\n id\r\n code\r\n details\r\n plotDescription\r\n sellingPrice\r\n\r\n address {\r\n id\r\n addressLine1\r\n addressLine2\r\n addressLine3\r\n addressLine4\r\n postCode\r\n country\r\n locationLat\r\n locationLng\r\n }\r\n seller {\r\n id\r\n fullName\r\n\r\n organization {\r\n id\r\n name\r\n email\r\n }\r\n }\r\n\r\n opportunity {\r\n id\r\n value\r\n probability\r\n name\r\n\r\n opportunityCategoryType {\r\n id\r\n name\r\n }\r\n\r\n opportunityType {\r\n id\r\n name\r\n }\r\n\r\n assignedUserAccount {\r\n id\r\n fullName\r\n }\r\n }\r\n\r\n dealTypeValue {\r\n id\r\n barterValue\r\n cashValue\r\n partCashValue\r\n partBarterValue\r\n\r\n dealTypeOpportunity {\r\n id\r\n name\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n`;\r\n","import {Injectable} from '@angular/core';\r\nimport {Query} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class AllOpportunityCategoryTypesQueryGQL extends Query {\r\n document = OPP_CATEGORY_TYPES_QUERY;\r\n}\r\n\r\nconst OPP_CATEGORY_TYPES_QUERY =\r\ngql`\r\n query {\r\n opportunityCategoryTypes {\r\n data {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AppSettings } from 'app.settings';\r\n\r\n\r\n@Injectable()\r\nexport class ApiService {\r\n private endPoint: string = `${AppSettings.API_ENDPOINT}`;\r\n\r\n constructor(\r\n private _http: HttpClient\r\n ) { }\r\n\r\n public get(url: string): Observable {\r\n return this._http.get(`${this.endPoint}${url}`).map(\r\n (results: T) => {\r\n return results;\r\n }\r\n );\r\n }\r\n\r\n public postWithoutRequestMessage(url: string, object: T): Observable {\r\n return this._http.post(`${this.endPoint}${url}`, object);\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n\\r\\n
\\r\\n
Loading...
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"a {\\n text-decoration: underline;\\n color: blue;\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2F1dGhlbnRpY2F0aW9uL0M6XFxKZW5raW5zXFwuamVua2luc1xcd29ya3NwYWNlXFxDUk0tQUNRLVBPUlRBTC1QUk9EXFxJU0IuQ1JNLldlYnNpdGUvc3JjXFxhcHBcXHNoYXJlZFxcYXV0aGVudGljYXRpb25cXGF1dGguY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSwwQkFBMEI7RUFDMUIsV0FBVztFQUNYLGVBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9hdXRoLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYXtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgY29sb3I6IGJsdWU7XHJcbiAgICBjdXJzb3I6cG9pbnRlcjtcclxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { UserManager, Log, MetadataService, User } from 'oidc-client';\r\nimport { map } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie';\r\nimport { AuthService } from 'app/views/auth/auth.service';\r\nimport { Profile } from 'selenium-webdriver/firefox';\r\nimport { ProfileService } from '../profile/profile.service';\r\nimport { NgxPermissionsService } from 'ngx-permissions';\r\nimport { DeveloperConstants, DeveloperModeHelper } from 'app/views/shared/developer.mode.service';\r\n//import { RouterStateSnapshot, ActivatedRouteSnapshot } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'app-auth',\r\n providers: [CookieService],\r\n templateUrl: 'auth.component.html',\r\n styleUrls: ['auth.component.scss']\r\n})\r\nexport class AuthComponent implements OnInit {\r\n //, private location:Location\r\n cookies: Object;\r\n\r\n constructor(private location: Location,\r\n private service: AuthService,\r\n private cookieService: CookieService, private router: Router,\r\n private _profileService: ProfileService,\r\n private _permissions: NgxPermissionsService,\r\n private _dev: DeveloperModeHelper,\r\n // route: ActivatedRouteSnapshot, state: RouterStateSnapshot\r\n ) {}\r\n\r\n ngOnInit() {\r\n Log.logger = console;\r\n var locObject = this.location;\r\n var self = this;\r\n\r\n // var cookServ = this.cookieService;\r\n self.service.mgr.signinRedirectCallback().then(function (user: User) {\r\n if (user == null) {\r\n document.getElementById(\"waiting\").style.display = \"none\";\r\n document.getElementById(\"error\").innerText = \"No sign-in request pending.\";\r\n }\r\n else {\r\n // var appCookies = cookServ.getAll();\r\n // var redirectUrl = appCookies['postSuccessfulLoginRedirectUrl']\r\n // self.router.navigate([redirectUrl]);\r\n self.service.currentUser = user;\r\n self.service.userLoadededEvent.emit(user);\r\n let redirectUrl = sessionStorage.getItem('postSuccessfulLoginRedirectUrl')\r\n\r\n\r\n // Compute check if Profile exists for the first time here.\r\n var authenticatedUser = user;\r\n var userProfile = authenticatedUser.profile;\r\n var subjectId = userProfile.sub;\r\n\r\n\r\n if (subjectId) {\r\n // self.router.navigate(['/profile', `${subjectId}`,'authorise']);\r\n self.onProfileCheck(subjectId, redirectUrl);\r\n\r\n} else {\r\n self.router.navigateByUrl(redirectUrl);\r\n}\r\n\r\n }\r\n })\r\n .catch(function (er) {\r\n console.log(er);\r\n console.log(er.message);\r\n\r\n // application not working page - error page - check metronic.\r\n self.router.navigate(['/auth-error']);\r\n\r\n // document.getElementById(\"waiting\").style.display = \"none\";\r\n // document.getElementById(\"error\").innerText = er.message;\r\n });\r\n }\r\n\r\n onProfileCheck(subjectId: string, redirectUrl: string) {\r\n // this._loadingService.showLoading('Please wait...');\r\n\r\n let vars = {\r\n subjectId: subjectId\r\n };\r\n\r\n this._profileService.getProfileBySubjectIdQuery(subjectId)\r\n .pipe(map(result => {\r\n\r\n var item = (result);\r\n return (item) as Profile;\r\n })\r\n ).subscribe((item: any) => {\r\n //this.item = item as Profile;\r\n // \r\n if (item.id) {\r\n // this.service.appProf = item;\r\n this.service.setApplicationProfileUser(item);\r\n\r\n var userRole = item.appUserRoles;\r\n var permissions = [];\r\n if(userRole)\r\n if(userRole[0]) {\r\n if(userRole[0].appRole)\r\n if(userRole[0].appRole.appRolePermissions) {\r\n userRole[0].appRole.appRolePermissions.map((elem, i) => {\r\n permissions.push(elem.appPermission.claimValue);\r\n })\r\n }\r\n }\r\n\r\n let identityRole = '';\r\n if(identityRole = this.service.currentUser.profile.role) {\r\n this._dev.isDeveloper.next(true);\r\n //localStorage.setItem(DeveloperConstants.IS_DEVELOPER_MODE, JSON.stringify(false));\r\n permissions.push(identityRole);\r\n } else {\r\n this._dev.isDeveloper.next(false);\r\n localStorage.removeItem(DeveloperConstants.IS_DEVELOPER_MODE);\r\n // localStorage.setItem(DeveloperConstants.IS_DEVELOPER_MODE, JSON.stringify(false));\r\n }\r\n\r\n \r\n\r\n localStorage.setItem(\"permissions\", JSON.stringify(permissions));\r\n this._permissions.loadPermissions(permissions);\r\n\r\n this.router.navigateByUrl(redirectUrl);\r\n } else {\r\n this.router.navigate(['/profile', `${subjectId}`, 'authorise']);\r\n // this._loadingService.hideLoading();\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n// const settings: any = {\r\n// authority: 'http://clients.isb.com.mt/SimplyIntelligent/Auth',\r\n// client_id: 'js',\r\n// redirect_uri: 'http://clients.isb.com.mt/SimplyIntelligent/iQmePortal/auth',\r\n// post_logout_redirect_uri: 'http://clients.isb.com.mt/SimplyIntelligent/iQmePortal/',\r\n// response_type: 'id_token token',\r\n// scope: \"openid profile iqme.write\",\r\n\r\n// silent_redirect_uri: 'http://localhost:4200',\r\n// automaticSilentRenew: true,\r\n// //silentRequestTimeout:10000,\r\n\r\n// filterProtocolClaims: true,\r\n// loadUserInfo: true\r\n// };\r\n","export * from './auth.component';\r\n","module.exports = \"\\r\\n

Renewing...

\\r\\n
\\r\\n\\r\\n \\r\\n\"","module.exports = \"a {\\n text-decoration: underline;\\n color: blue;\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2F1dGhlbnRpY2F0aW9uL3NpbGVudC9DOlxcSmVua2luc1xcLmplbmtpbnNcXHdvcmtzcGFjZVxcQ1JNLUFDUS1QT1JUQUwtUFJPRFxcSVNCLkNSTS5XZWJzaXRlL3NyY1xcYXBwXFxzaGFyZWRcXGF1dGhlbnRpY2F0aW9uXFxzaWxlbnRcXHNpbGVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDBCQUEwQjtFQUMxQixXQUFXO0VBQ1gsZUFBYyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2F1dGhlbnRpY2F0aW9uL3NpbGVudC9zaWxlbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJhe1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICBjb2xvcjogYmx1ZTtcclxuICAgIGN1cnNvcjpwb2ludGVyO1xyXG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { Log } from 'oidc-client';\r\nimport { AuthService } from 'app/views/auth/auth.service';\r\nimport { CookieService } from 'ngx-cookie';\r\nimport { map } from 'rxjs/operators';\r\nimport { Profile } from 'app/shared/profile/_models/profile.model';\r\nimport { ProfileService } from 'app/shared/profile/profile.service';\r\n\r\n@Component({\r\n selector: 'app-silent',\r\n providers: [CookieService],\r\n templateUrl: 'silent.component.html',\r\n styleUrls: ['silent.component.scss']\r\n})\r\nexport class SilentComponent implements OnInit {\r\n cookies: Object;\r\n\r\n constructor(private location: Location,\r\n private service: AuthService,\r\n private _profileService: ProfileService\r\n ) {}\r\n\r\n ngOnInit() {\r\n Log.logger = console;\r\n var self = this;\r\n\r\n self.service.mgr.signinSilentCallback().then(function (user) {\r\n if (user == null) {\r\n document.getElementById(\"waiting\").style.display = \"none\";\r\n document.getElementById(\"error\").innerText = \"No sign-in request pending.\";\r\n }\r\n else {\r\n // Compute check if Profile exists for the first time here.\r\n var authenticatedUser = user;\r\n var userProfile = authenticatedUser.profile;\r\n var subjectId = userProfile.sub;\r\n if (subjectId) {\r\n self.onProfileCheck(subjectId);\r\n }\r\n }\r\n }).catch(function (er) {\r\n console.log(er);\r\n console.log(er.message);\r\n });\r\n }\r\n\r\n onProfileCheck(subjectId: string) {\r\n this._profileService.getProfileBySubjectIdQuery(subjectId)\r\n .pipe(map(result => {\r\n var item = (result);\r\n return (item) as Profile;\r\n })\r\n ).subscribe((item: any) => {\r\n // \r\n if (item.id) {\r\n this.service.setApplicationProfileUser(item);\r\n }\r\n });\r\n }\r\n}\r\n","export * from './unauthorized.component';\r\n","module.exports = \"
\\r\\n

You are being redirected to the login page. If you are not redirected in 5 seconds, please click here to login.

\\r\\n
\"","module.exports = \"a {\\n text-decoration: underline;\\n color: blue;\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2F1dGhlbnRpY2F0aW9uL3VuYXV0aG9yaXplZC9DOlxcSmVua2luc1xcLmplbmtpbnNcXHdvcmtzcGFjZVxcQ1JNLUFDUS1QT1JUQUwtUFJPRFxcSVNCLkNSTS5XZWJzaXRlL3NyY1xcYXBwXFxzaGFyZWRcXGF1dGhlbnRpY2F0aW9uXFx1bmF1dGhvcml6ZWRcXHVuYXV0aG9yaXplZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDBCQUEwQjtFQUMxQixXQUFXO0VBQ1gsZUFBYyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2F1dGhlbnRpY2F0aW9uL3VuYXV0aG9yaXplZC91bmF1dGhvcml6ZWQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJhe1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICBjb2xvcjogYmx1ZTtcclxuICAgIGN1cnNvcjpwb2ludGVyO1xyXG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RoutesRecognized } from \"@angular/router\";\r\nimport 'rxjs/add/operator/pairwise';\r\nimport 'rxjs/add/operator/filter';\r\nimport { AuthService } from 'app/views/auth/auth.service';\r\nimport { CookieService } from 'ngx-cookie';\r\n\r\n\r\n@Component({\r\n selector: 'app-unauthorized',\r\n providers: [ CookieService ],\r\n templateUrl: 'unauthorized.component.html',\r\n styleUrls: ['unauthorized.component.scss']\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n //, private location:Location\r\n constructor(private location:Location, private service: AuthService, public router: Router, private cookieService : CookieService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.login();\r\n }\r\n\r\n login() {\r\n // var previousUrl;// : [Event, Event];\r\n this.service.startSigninMainWindow();\r\n }\r\n\r\n goback() {\r\n // this.location.back();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms/src/model';\r\n\r\n@Injectable()\r\nexport class FormUtilityService {\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Iterates through each control of the passed form and marks them as touched\r\n * to trigger form validation.\r\n */\r\n markFormControlsAsTouched(form: FormGroup) {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsTouched({ onlySelf: true });\r\n });\r\n }\r\n\r\n markFormControlAsTouched(control: FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n return control;\r\n }\r\n\r\n /**\r\n * Iterates through each control of the passed form and marks them as untouched.\r\n */\r\n markFormControlsAsUntouched(form: FormGroup) {\r\n Object.keys(form.controls).forEach(field => {\r\n const control = form.get(field);\r\n control.markAsUntouched({ onlySelf: true });\r\n control.markAsPristine({ onlySelf: true });\r\n });\r\n }\r\n\r\n markFormControlAsUntouched(control: FormControl) {\r\n // Object.keys(form.controls).forEach(field => {\r\n //const control = form.get(field);\r\n control.markAsUntouched({ onlySelf: true });\r\n control.markAsPristine({ onlySelf: true });\r\n return control;\r\n // });\r\n }\r\n\r\n /**\r\n * Trims string values and catches empty string values and converts them to null.\r\n */\r\n sanitizeFormValues(form: FormGroup): FormGroup {\r\n for (var property in form.value) {\r\n if (typeof form.value[property] === \"string\") {\r\n form.value[property] = form.value[property].trim(); // - Always trim string values\r\n\r\n if (form.value[property] === \"\")\r\n form.value[property] = null; // - Set value to null if value is empty after trimming\r\n }\r\n }\r\n return form;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from 'app/views/auth/auth.service';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n constructor(\r\n // private _authService: AuthenticationService,\r\n private authService: AuthService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n // Get the access token from the service.\r\n // const authHeader = this._authService.getAccessToken(); // - Example of how we could get access token from authService which could obtain it from localStorage\r\n\r\n const token = this.authService.currUser() ? this.authService.currUser().access_token : null;\r\n // const token=\"\";\r\n if(!token) {\r\n console.log(\"No Token is available!\");\r\n }\r\n\r\n\r\n\r\n const authHeader = `Bearer ${token}`;\r\n\r\n // Clone the request to add the new header.\r\n const authReq = req.clone({ headers: req.headers.set('Authorization', authHeader) });\r\n\r\n // Pass on the cloned request instead of the original request.\r\n return next.handle(authReq);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AuthInterceptor } from './auth-interceptor';\r\n\r\n@NgModule({\r\n providers: [\r\n // {\r\n // provide: HTTP_INTERCEPTORS,\r\n // useClass: MasterInterceptor,\r\n // multi: true\r\n // },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n // {\r\n // provide: HTTP_INTERCEPTORS,\r\n // useClass: SignalRInterceptor,\r\n // multi: true\r\n // },\r\n // {\r\n // provide: HTTP_INTERCEPTORS,\r\n // useClass: TimingInterceptor,\r\n // multi: true\r\n // },\r\n // {\r\n // provide: HTTP_INTERCEPTORS,\r\n // useClass: ErrorHandlerInterceptor,\r\n // multi: true\r\n // },\r\n // {\r\n // provide: HTTP_INTERCEPTORS,\r\n // useClass: LoadingInterceptor,\r\n // multi: true\r\n // }\r\n ]\r\n})\r\nexport class InterceptorsModule { }\r\n\r\n/*\r\n\r\nCreate a CoreModule with providers for the singleton services you load when the application starts.\r\n\r\nImport CoreModule in the root AppModule only. Never import CoreModule in any other module.\r\n\r\nConsider making CoreModule a pure services module with no declarations.\r\n\r\n*/\r\n","export class Profile {\r\n\tconstructor(\r\n\t\tpublic subjectId: string = null,\r\n\t\tpublic id: number = null,\r\n\t\tpublic code: string = null,\r\n\t\tpublic firstName: string = null,\r\n public lastName: string = null,\r\n\t\tpublic email: string = null,\r\n\t\tpublic role: string = null,\r\n\t\tpublic profileExists : boolean = false,\r\n public jobTitle: string = null,\r\n\r\n public appUserRoles: AppUserRole[] = []\r\n\t\t) { }\r\n}\r\n\r\nexport class AppUserRole {\r\n constructor(public id: string = null,\r\n public appRole: AppRole = null) { }\r\n}\r\n\r\n// AppRole Permissions is out of scope for the CRM at the moment as it's based on roles and not permissions for roles, but we'll leave the structure here as it's supported already by the backend.\r\nexport class AppRole {\r\n constructor(public id: string = null,\r\n public name: string = null) {\r\n //public appRolePermissions: AppRolePermission[] = []) {\r\n }\r\n}\r\n\r\nexport class AppRolePermission {\r\n constructor(public id: string = null,\r\n public appPermission: AppPermission = null) {}\r\n}\r\n\r\nexport class AppPermission {\r\n constructor(public id: string = null,\r\n public claimType: string = null,\r\n public claimValue: string = null) {}\r\n}\r\n\r\n// public class AppUserRoleDto\r\n// {\r\n// public AppUserRoleDto()\r\n// {\r\n// // this.AppRolePermissions = new AppRolePermissionsDto[0];\r\n// }\r\n\r\n// public string Id { get; set; }\r\n\r\n// public Guid AppRoleId { get; set; }\r\n// public AppRoleDto AppRole { get; set; }\r\n\r\n// // public string Name { get; set; }\r\n// // public AppRolePermissionsDto[] AppRolePermissions { get; set; }\r\n// }\r\n\r\n// public class AppRolePermissionsDto\r\n// {\r\n// public string Id { get;set; }\r\n\r\n// public string AppRoleId { get; set; }\r\n// public AppRoleDto AppRole { get; set; }\r\n\r\n// public string AppPermissionId { get; set; }\r\n// public AppPermissionDto AppPermission { get; set; }\r\n// }\r\n\r\n// public class AppRoleDto\r\n// {\r\n// public string Id { get; set; }\r\n// public string Name { get; set; }\r\n\r\n// public AppRolePermissionsDto[] AppRolePermissions { get; set; }\r\n// }\r\n\r\n// public class AppPermissionDto\r\n// {\r\n// public string Id { get; set; }\r\n// public string ClaimType { get; set; }\r\n// public string ClaimValue { get; set; }\r\n// }\r\n","import { Observable } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ApiService } from '../api.service';\r\nimport { Profile } from './_models/profile.model';\r\n\r\n@Injectable()\r\nexport class ProfileService {\r\n\r\n constructor(\r\n private _apiService: ApiService\r\n ) { }\r\n\r\n public getProfileByIdQuery(identifier: string,): Observable {\r\n return this._apiService.get(`api/profile/id/${identifier}`);\r\n }\r\n\r\n public getProfileBySubjectIdQuery(identifier: string): Observable {\r\n return this._apiService.get(`api/profile/subjectId/${identifier}`);\r\n }\r\n\r\n public createProfile(object: T): Observable {\r\n\r\n return this._apiService.postWithoutRequestMessage('api/profile/create', object);\r\n }\r\n\r\n public updateProfile(object: T): Observable {\r\n return this._apiService.postWithoutRequestMessage('api/profile/update', object);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Users
\\r\\n
\\r\\n \\r\\n \\r\\n Invite User\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Accounts\\r\\n There are currently {{users.length}} accounts\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ user.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n user.createdByUserAccountId > 0 ?\\r\\n user.createdByUserAccount?.fullName :\\r\\n 'System'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{user?.firstName}} {{user?.lastName}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ user.email | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ user.appUserRoles?.length > 0 ? 'Admin' : \\\"User\\\" }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FjY291bnRzL2FjY291bnQtbGlzdC9hY2NvdW50LWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { UpdateModel } from \"app/views/shared/models/update.model\";\r\nimport { AppSettings } from 'app.settings';\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\n@Component({\r\n selector: 'app-account-list',\r\n templateUrl: './account-list.component.html',\r\n styleUrls: ['./account-list.component.scss']\r\n})\r\nexport class AccountListComponent implements OnInit {\r\n\r\n users: CrmUser[] = [];\r\n\r\n inviteUserUrl : string = `${AppSettings.AUTHORITY_ENDPOINT}/account/invite?returnUrl=${AppSettings.PORTAL_URI}`\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private userService: UserService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetUsers();\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsersAvailable().subscribe(\r\n (users: CrmUser[]) => {\r\n\r\n this.users = users;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving users\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteUser(user: UpdateModel) {\r\n\r\n let fullName = user.firstName + \" \" + user.lastName;\r\n\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the user ' + fullName + '?',\r\n accept: () => {\r\n\r\n user.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.userService.deleteUser(user).subscribe(\r\n (response: Response) => {\r\n this.onGetUsers();\r\n this.toastService.createSuccessMessage(\"Success\", \"The user \" + fullName + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting user\", error);\r\n }\r\n );\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for user \" + fullName + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update User
\\r\\n
New User
\\r\\n
\\r\\n
\\r\\n
\\r\\n Invite User\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The First Name field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Last Name field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Email field is required.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n There is already a user registered with that email address.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Password field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Password field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FjY291bnRzL2FjY291bnQtbWFuYWdlL2FjY291bnQtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { RegisterModel } from \"../../shared/models/register.model\";\r\n\r\nimport { valueExistsValidator } from \"../../shared/validators/value-exists.validator\";\r\nimport { CustomValidators } from 'ng2-validation';\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { UpdateModel } from \"app/views/shared/models/update.model\";\r\nimport { routerNgProbeToken } from '@angular/router/src/router_module';\r\nimport { AppSettings } from 'app.settings';\r\n\r\n@Component({\r\n selector: 'app-account-manage',\r\n templateUrl: './account-manage.component.html',\r\n styleUrls: ['./account-manage.component.scss']\r\n})\r\nexport class AccountManageComponent implements OnInit {\r\n userForm: FormGroup; // - Stores the user form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a user if true and add a new user if false\r\n\r\n users: CrmUser[] = []; // - Stores all users retrieved from db to validate unique values\r\n user: CrmUser = new CrmUser(); // - Stores User to populate form with a new / existing user's values\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n this.users = users; // - Store all users retrieved from db\r\n\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const userId = params['id'];\r\n this.isEdit = userId != null; // - Returns true if an id was present within the url\r\n\r\n\r\n if (this.isEdit) {\r\n // this.user = this.users.find(c => c.id === +userId); // - Store the selected user\r\n this.user = this.users.find(c => c.id === userId); // - Store the selected user\r\n\r\n // Redirect to 404 page if the selected user could not be found\r\n if (!this.user) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving users\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all emails to know if a user with that email already exists\r\n const userEmails = this.users.map(c => c.email);\r\n\r\n // Remove the user to edit's email if being edited so the email can remain unchanged\r\n if (this.isEdit)\r\n userEmails.splice(userEmails.indexOf(this.user.email), 1);\r\n\r\n this.userForm = this.formBuilder.group({\r\n firstName: this.formBuilder.control(this.user.firstName, [Validators.required]),\r\n lastName: this.formBuilder.control(this.user.lastName, [Validators.required]),\r\n email: this.formBuilder.control(this.user.email, [valueExistsValidator(userEmails)]),\r\n password: this.formBuilder.control(null),\r\n confirmPassword: this.formBuilder.control(null),\r\n adminRole: this.formBuilder.control(this.user.appUserRoles.length > 0 ? this.authService.isProfileAdmin() : false)\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onRegisterUser(newUser: RegisterModel) {\r\n let fullName = newUser.firstName + \" \" + newUser.lastName;\r\n this.userService.registerUser(newUser).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The user \" + fullName + \" has been created.\");\r\n this.router.navigate(['/accounts/']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding user\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateUser(newUser: UpdateModel) {\r\n let fullName = newUser.firstName + \" \" + newUser.lastName;\r\n this.userService.updateUser(newUser).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The user \" + fullName + \" has been updated.\");\r\n this.router.navigate(['/accounts/']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating user\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newRegisterModel = this.formBuilder.sanitizeFormValues(this.userForm).value;\r\n\r\n if (this.isEdit) {\r\n newRegisterModel.roles = this.user.roles;\r\n }\r\n else\r\n newRegisterModel.roles = []; // - Initialise roles array or it wont be posted\r\n\r\n // If Admin checkbox was ticked add Admin Role (unless that role was already assigned)\r\n if (newRegisterModel.adminRole && !newRegisterModel.roles.includes(\"Admin\")) {\r\n newRegisterModel.roles.push(\"Admin\");\r\n }\r\n\r\n // If Admin checkbox was unticked then remove Admin Role if that role was previously assigned\r\n if (!newRegisterModel.adminRole && newRegisterModel.roles.includes(\"Admin\")) {\r\n newRegisterModel.roles = newRegisterModel.roles.filter(r => r !== \"Admin\"); // - Filter out admin role\r\n }\r\n\r\n if (this.isEdit) {\r\n let updateModel: UpdateModel = newRegisterModel;\r\n updateModel.applicationUserId = this.user.applicationUserId;\r\n updateModel.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateUser(updateModel);\r\n }\r\n else {\r\n newRegisterModel.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onRegisterUser(newRegisterModel);\r\n }\r\n }\r\n\r\n inviteUserUrl : string = `${AppSettings.AUTHORITY_ENDPOINT}/account/invite?returnUrl=${AppSettings.PORTAL_URI}`\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { AccountsComponent } from \"../accounts/accounts.component\";\r\nimport { AccountListComponent } from \"../accounts/account-list/account-list.component\";\r\nimport { AccountManageComponent } from \"../accounts/account-manage/account-manage.component\";\r\n\r\nconst accountsRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard, RoleGuard],\r\n children: [\r\n {\r\n path: 'accounts', component: AccountsComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: AccountListComponent },\r\n { path: ':id/edit', component: AccountManageComponent },\r\n { path: 'new', component: AccountManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(accountsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AccountsRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2FjY291bnRzL2FjY291bnRzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-accounts',\r\n templateUrl: './accounts.component.html',\r\n styleUrls: ['./accounts.component.scss']\r\n})\r\nexport class AccountsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { AccountsRoutingModule } from \"../accounts/accounts-routing.module\";\r\n\r\nimport { ModalModule } from \"ngx-bootstrap\";\r\n\r\nimport { AccountsComponent } from './accounts.component';\r\nimport { AccountListComponent } from './account-list/account-list.component';\r\nimport { AccountManageComponent } from './account-manage/account-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AccountsComponent,\r\n AccountListComponent,\r\n AccountManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n AccountsRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class AccountsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute } from \"@angular/router\";\r\nimport { AuthService } from \"./auth.service\";\r\nimport { UserService } from \"../shared/services/user.service\";\r\nimport { CrmUser } from \"../shared/models/user.model\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable {\r\n let loggedIn = false;\r\n const claims = route.data;\r\n\r\n\r\n\r\n // Hot or Cold Observables - Make it hot!\r\n loggedIn = this.authService.loggedIn;\r\n\r\n const self = this;\r\n\r\n sessionStorage.setItem(\"postSuccessfulLoginRedirectUrl\", state.url);\r\n return this.authService.isUserLoggedIn().map(res => {\r\n\r\n return res;\r\n });\r\n // if (this.authService.isTokenValid()) {\r\n // // Check if the user is currently stored and if not retrieve all users\r\n // if (!this.authService.getUser()) {\r\n // return this.userService.getUsers().map(\r\n // (users: User[]) => {\r\n // if (users)\r\n // return true;\r\n // // Deny access if no users could be retrieved\r\n // return false;\r\n // }\r\n // );\r\n // }\r\n // else\r\n // return true;\r\n // }\r\n // else {\r\n // this.authService.logOut(state.url);\r\n // return false;\r\n // }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { SigninComponent } from \"./signin/signin.component\";\r\nimport { ForgotPasswordComponent } from \"./forgot-password/forgot-password.component\";\r\nimport { ResetPasswordComponent } from './reset-password/reset-password.component';\r\nimport { BlankLayoutComponent } from \"../../components/common/layouts/blankLayout.component\";\r\nimport { AuthGuard } from \"./auth-guard.service\";\r\n\r\nconst authRoutes: Routes = [\r\n {\r\n path: '', component: BlankLayoutComponent,\r\n children: [\r\n { path: 'login', component: SigninComponent },\r\n { path: 'forgotPassword', component: ForgotPasswordComponent },\r\n { path: 'resetPassword', component: ResetPasswordComponent }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(authRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AuthRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { AuthRoutingModule } from \"./auth-routing.module\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { SigninComponent } from \"./signin/signin.component\";\r\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\r\n\r\n\r\nimport { Http, RequestOptions } from '@angular/http';\r\nimport { AuthHttp, AuthConfig, JwtHelper } from 'angular2-jwt';\r\n\r\nimport { CrmUser } from \"../shared/models/user.model\";\r\nimport { AuthService } from \"../auth/auth.service\";\r\nimport { ResetPasswordComponent } from './reset-password/reset-password.component';\r\n// export function authHttpServiceFactory(http: Http, options: RequestOptions) {\r\n// return new AuthHttp(new AuthConfig({\r\n// tokenName: 'accessToken',\r\n// tokenGetter: (() => localStorage.getItem('accessToken')),\r\n// globalHeaders: [{ 'Content-Type': 'application/json' }]\r\n// }), http, options);\r\n// }\r\n\r\n@NgModule({\r\n declarations: [\r\n SigninComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n AuthRoutingModule,\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n // {\r\n // provide: AuthHttp,\r\n // useFactory: authHttpServiceFactory,\r\n // deps: [Http, RequestOptions]\r\n // }\r\n ]\r\n})\r\nexport class AuthModule { }\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Http, Response } from \"@angular/http\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { UserService } from \"../shared/services/user.service\";\r\nimport { LoadingSpinnerService } from \"../shared/services/loading-spinner.service\";\r\n\r\nimport { tokenNotExpired, AuthHttp, JwtHelper } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { Observable } from \"rxjs/Rx\";\r\n\r\nimport { LoginModel } from \"../shared/models/login.model\";\r\nimport { RegisterModel } from \"../shared/models/register.model\";\r\nimport { ResetPasswordModel } from '../shared/models/reset-password.model';\r\nimport { ForgotPasswordModel } from '../shared/models/forgot-password.model';\r\n\r\nimport { UserManager, User } from 'oidc-client';\r\nimport { CrmUser } from '../shared/models/user.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Profile } from 'app/shared/profile/_models/profile.model';\r\nimport { DeveloperConstants } from '../shared/developer.mode.service';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private loginUrl: string = AppSettings.API_ENDPOINT + 'login';\r\n private accountUrl: string = AppSettings.API_ENDPOINT + 'api/account';\r\n\r\n private user: User;\r\n\r\n // constructor(\r\n // // private authHttp: AuthHttp, // Keep here to retrieve token from cookie before auth-guard checks if token is expired\r\n // private http: HttpClient,\r\n // private router: Router,\r\n // private userService: UserService,\r\n // private loadingService: LoadingSpinnerService\r\n // ) { }\r\n\r\n mgr: UserManager = new UserManager(settings);\r\n userLoadededEvent: EventEmitter = new EventEmitter();\r\n currentUser: User;\r\n appProf: Profile;\r\n loggedIn = false;\r\n\r\n // authHeaders: Headers;\r\n\r\n private loginRequest: Observable;\r\n\r\n constructor(private http: HttpClient,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private loadingService: LoadingSpinnerService,\r\n // private _cookieService: CookieService\r\n ) {\r\n\r\n this.mgr.events.addUserUnloaded((e) => {\r\n console.log('user unloaded');\r\n this.loggedIn = false;\r\n });\r\n\r\n this.mgr.events.addAccessTokenExpiring(function () {\r\n console.log(\"Access token expiring...\");\r\n });\r\n this.mgr.events.addSilentRenewError(function (err) {\r\n console.log(\"Silent renew error: \" + err.message);\r\n });\r\n }\r\n\r\n public currUser() {\r\n if(this.currentUser && this.currentUser.expired) {\r\n\r\n this.router.navigate(['unauthorized']);\r\n\r\n //this.router.navigate(['unauthorized']);\r\n return null;\r\n }\r\n return this.currentUser;\r\n\r\n }\r\n\r\n public applicationProfileUser() {\r\n if(this.appProf && this.appProf.id !== 0) {\r\n return this.appProf;\r\n } else {\r\n this.appProf = JSON.parse(localStorage.getItem('currentUser')) as Profile;\r\n if(this.appProf && this.appProf.id !== 0) {\r\n return this.appProf;\r\n }\r\n }\r\n return new Profile();\r\n }\r\n\r\n\r\n public setApplicationProfileUser(profile:Profile) {\r\n\r\n if(profile && profile.id !== 0) {\r\n this.appProf = profile;\r\n\r\n localStorage.setItem('currentUser', JSON.stringify(profile));\r\n }\r\n }\r\n\r\n // TODO: Needs to be looked at\r\n isUserLoggedIn(): Observable {\r\n const self = this;\r\n\r\n // if (this.loginRequest) {\r\n // return this.loginRequest;\r\n // }\r\n\r\n this.loginRequest = new Observable(function (observer) {\r\n // const cookServ = self._cookieService;\r\n\r\n self.mgr.getUser()\r\n .then((user) => {\r\n\r\n if(user && user.expired) {\r\n\r\n self.router.navigate(['unauthorized']);\r\n observer.next(false);\r\n observer.complete();\r\n }\r\n if (user) {\r\n self.loggedIn = true;\r\n\r\n self.currentUser = user;\r\n self.userLoadededEvent.emit(user);\r\n\r\n observer.next(true);\r\n observer.complete();\r\n } else {\r\n self.loggedIn = false;\r\n\r\n self.router.navigate(['unauthorized']);\r\n observer.next(false);\r\n observer.complete();\r\n }\r\n })\r\n .catch((err) => {\r\n self.loggedIn = false;\r\n observer.error(false);\r\n observer.complete();\r\n });\r\n }).publishLast()\r\n .refCount();\r\n\r\n return this.loginRequest;\r\n }\r\n clearState() {\r\n this.mgr.clearStaleState().then(function () {\r\n console.log('clearStateState success');\r\n }).catch(function (e) {\r\n console.log('clearStateState error', e.message);\r\n });\r\n }\r\n\r\n getUser() {\r\n return this.currUser();\r\n //return new CrmUser();\r\n // this.mgr.getUser().then((user) => {\r\n // console.log('got user', user);\r\n // this.userLoadededEvent.emit(user);\r\n // }).catch(function (err) {\r\n // console.log(err);\r\n // });\r\n }\r\n\r\n removeUser() {\r\n this.mgr.removeUser().then(() => {\r\n this.userLoadededEvent.emit(null);\r\n console.log('user removed');\r\n }).catch(function (err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n startSigninMainWindow() {\r\n\r\n this.mgr.signinRedirect({ data: 'some data' }).then(function () {\r\n console.log('signinRedirect done');\r\n }).catch(function (err) {\r\n console.log(err);\r\n });\r\n }\r\n endSigninMainWindow() {\r\n this.mgr.signinRedirectCallback().then(function (user) {\r\n console.log('signed in', user);\r\n }).catch(function (err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n startSignoutMainWindow() {\r\n this.mgr.signoutRedirect({logoutId: this.currUser().id_token}).then(function (resp) {\r\n console.log('signed out', resp);\r\n setTimeout(() => {\r\n console.log('testing to see if fired...');\r\n\r\n }, 5000);\r\n }).catch(function (err) {\r\n console.log(err);\r\n });\r\n };\r\n\r\n endSignoutMainWindow() {\r\n this.mgr.signoutRedirectCallback().then(function (resp) {\r\n console.log('signed out', resp);\r\n }).catch(function (err) {\r\n console.log(err);\r\n });\r\n };\r\n\r\n // getUser() {\r\n // if (!this.user) {\r\n // const jwtHelper: JwtHelper = new JwtHelper();\r\n // let accessToken = localStorage.getItem('accessToken');\r\n // let decodedToken = jwtHelper.decodeToken(accessToken);\r\n // let userId = decodedToken[\"sub\"];\r\n // this.user = this.userService.getUserByApplicationUserId(userId);\r\n // }\r\n // return this.user;\r\n // }\r\n\r\n isAdmin() {\r\n var foundRole = (this.applicationProfileUser().appUserRoles.find(e => {\r\n if(e.appRole) {\r\n return (e.appRole.name === (\"Admin\") || e.appRole.name === (\"Super Admin\"));\r\n }\r\n }));\r\n if(foundRole) {return true};\r\n\r\n }\r\n\r\n isProfileAdmin() {\r\n var foundRole = (this.applicationProfileUser().appUserRoles.find(e => {\r\n if(e.appRole) {\r\n return (e.appRole.name === (\"Admin\") || e.appRole.name === (\"Super Admin\"));\r\n }\r\n }));\r\n if(foundRole) {return true};\r\n\r\n }\r\n\r\n isSuperAdmin() {\r\n var foundRole = (this.applicationProfileUser().appUserRoles.find(e => {\r\n if(e.appRole) {\r\n return e.appRole.name === (\"Super Admin\");\r\n }\r\n }));\r\n\r\n if(foundRole) {return true};\r\n\r\n }\r\n\r\n logOut(returnUrl: string = null) {\r\n //this.user = null; // - Important to clear user as auth guard will check if the user is still stored\r\n //localStorage.removeItem('accessToken');\r\n // this.router.navigate([\"/login\"], { queryParams: { returnUrl: returnUrl }});\r\n\r\n var args = {id_token_hint: this.currUser().id_token};\r\n // {post_logout_redirect_uri: \"http://192.168.10.117:4200\"}\r\n this.mgr.signoutRedirect().then(onfullfilled => {\r\n var onf = onfullfilled;\r\n localStorage.remoteItem(DeveloperConstants.IS_DEVELOPER_MODE);\r\n localStorage.remoteItem(\"permissions\");\r\n\r\n });\r\n\r\n // this.mgr.signoutPopup({post_logout_redirect_uri: \"http://192.168.10.117:4200\"}).then(onfullfilled => {\r\n // var onf = onfullfilled;\r\n\r\n // });\r\n\r\n // this.mgr.signoutRedirectCallback(\"http://192.168.10.117:4200\")\r\n // .then(onfullfilled => {\r\n // var onf = onfullfilled;\r\n\r\n // });\r\n\r\n\r\n\r\n }\r\n\r\n isTokenValid() {\r\n try {\r\n return tokenNotExpired('accessToken');\r\n }\r\n catch (error) {\r\n // Error is thrown if token is empty or not a correctly formatted token\r\n return false;\r\n }\r\n }\r\n\r\n onLogin(loginModel: LoginModel): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(this.accountUrl, loginModel).map(\r\n (response: Response) => {\r\n let tokenResponse = (response);\r\n\r\n if (tokenResponse) {\r\n localStorage.setItem('accessToken', tokenResponse.accessToken);\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // reauthenticateIfTokenExpired() {\r\n // if (!this.isTokenValid())\r\n // this.logOut();\r\n // }\r\n\r\n registerUser(registerModel: RegisterModel) {\r\n return this.http.post(\r\n this.accountUrl + \"/register\",\r\n registerModel\r\n );\r\n }\r\n\r\n forgotPassword(forgotPasswordModel: ForgotPasswordModel) {\r\n return this.http.post(\r\n this.accountUrl + \"/ForgotPassword\",\r\n forgotPasswordModel\r\n );\r\n }\r\n\r\n\r\n resetPassword(code: string) {\r\n return this.http.get(this.accountUrl + '/resetPassword?code=' + code).map(\r\n (response: Response) => {\r\n let resetModel: ResetPasswordModel = (response);\r\n return resetModel;\r\n }\r\n );\r\n }\r\n\r\n resetPasswordConfirm(resetPasswordModel: ResetPasswordModel) {\r\n return this.http.post(\r\n this.accountUrl + \"/ResetPasswordConfirm\",\r\n resetPasswordModel\r\n );\r\n }\r\n}\r\n\r\n\r\nconst settings: any = {\r\n authority: AppSettings.AUTHORITY_ENDPOINT,\r\n // client_id: 'crmweb',\r\n client_id: AppSettings.CLIENT_ID,\r\n redirect_uri: AppSettings.REDIRECT_URI,\r\n post_logout_redirect_uri: AppSettings.POST_LOGOUT_REDIRECT_URI,\r\n response_type: 'id_token token',\r\n scope: AppSettings.SCOPE,\r\n // scope: \"openid profile crmapi.web role orchestrate.web\",\r\n\r\n // silent renew will get a new access_token via an iframe\r\n // just prior to the old access_token expiring (60 seconds prior)\r\n silent_redirect_uri: AppSettings.SILENT_REDIRECT_URI,\r\n automaticSilentRenew: true,\r\n // silent_redirect_uri: AppSettings.REDIRECT_URI,\r\n // silent_redirect_uri: 'http://localhost:4200',\r\n\r\n // silentRequestTimeout:10000,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true\r\n};\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"crm-logo-vertical\\\" \\r\\n
\\r\\n

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

\\r\\n Enter your email and click reset, we will send you an email with further details.\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n The Email field is required.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n

CRM by ISB Software © Copyright 2018

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

\\r\\n \\\"Quality is remembered long\\r\\n
\\r\\n after the price is forgotten.\\\"\\r\\n
\\r\\n Aldo Gucci\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \".loginscreen.middle-box {\\n width: 400px;\\n padding: 20px;\\n background-color: #fff;\\n border: 1px solid #e7eaec;\\n border-radius: 2px; }\\n\\n.loginscreen {\\n margin-top: 125px; }\\n\\n.motivational-section h3,\\n.motivational-section small {\\n color: #FFF; }\\n\\n.motivational-section h3 {\\n font-size: 20px; }\\n\\n.motivational-section {\\n float: right;\\n margin-right: 80px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXV0aC9mb3Jnb3QtcGFzc3dvcmQvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGF1dGhcXGZvcmdvdC1wYXNzd29yZFxcZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGlCQUFpQixFQUFBOztBQUduQjs7RUFFRSxXQUFXLEVBQUE7O0FBR2I7RUFDSSxlQUFlLEVBQUE7O0FBR25CO0VBQ0UsWUFBWTtFQUNaLGtCQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXV0aC9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxvZ2luc2NyZWVuLm1pZGRsZS1ib3gge1xyXG4gIHdpZHRoOiA0MDBweDtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2U3ZWFlYztcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuXHJcbi5sb2dpbnNjcmVlbiB7XHJcbiAgbWFyZ2luLXRvcDogMTI1cHg7XHJcbn1cclxuXHJcbi5tb3RpdmF0aW9uYWwtc2VjdGlvbiBoMyxcclxuLm1vdGl2YXRpb25hbC1zZWN0aW9uIHNtYWxsIHtcclxuICBjb2xvcjogI0ZGRjtcclxufVxyXG5cclxuLm1vdGl2YXRpb25hbC1zZWN0aW9uIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxufVxyXG5cclxuLm1vdGl2YXRpb25hbC1zZWN0aW9uIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiA4MHB4O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { AuthService } from \"../auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { ForgotPasswordModel } from '../../shared/models/forgot-password.model';\r\n\r\n@Component({\r\n selector: 'app-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n forgotPasswordForm: FormGroup;\r\n isFormInit: boolean = false;\r\n\r\n forgotPasswordModel: ForgotPasswordModel = new ForgotPasswordModel();\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n\r\n initForm() {\r\n this.forgotPasswordForm = this.formBuilder.group({\r\n email: this.formBuilder.control(this.forgotPasswordModel.email, [Validators.required, Validators.email])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onSubmit() {\r\n this.forgotPasswordModel.email = this.forgotPasswordForm.value.email;\r\n \r\n this.authService.forgotPassword(this.forgotPasswordModel).subscribe(\r\n (response: Response) => {\r\n if (response) {\r\n this.toastService.createSuccessMessage(\"Reset Password\", \"Please check your email to reset your password.\"); \r\n this.router.navigate([\"/login\"]); \r\n }\r\n else\r\n console.log(\"The access token could not be generated.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Forgot Password Failed\", error);\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"crm-logo-vertical\\\" \\r\\n
\\r\\n

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

\\r\\n Enter your new credentials to reset your password\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n The Email field is required.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n

CRM by ISB Software © Copyright 2018

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

\\r\\n \\\"Quality is remembered long\\r\\n
\\r\\n after the price is resetten.\\\"\\r\\n
\\r\\n Aldo Gucci\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \".loginscreen.middle-box {\\n width: 400px;\\n padding: 20px;\\n background-color: #fff;\\n border: 1px solid #e7eaec;\\n border-radius: 2px; }\\n\\n.loginscreen {\\n margin-top: 125px; }\\n\\n.motivational-section h3,\\n.motivational-section small {\\n color: #FFF; }\\n\\n.motivational-section h3 {\\n font-size: 20px; }\\n\\n.motivational-section {\\n float: right;\\n margin-right: 80px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXV0aC9yZXNldC1wYXNzd29yZC9DOlxcSmVua2luc1xcLmplbmtpbnNcXHdvcmtzcGFjZVxcQ1JNLUFDUS1QT1JUQUwtUFJPRFxcSVNCLkNSTS5XZWJzaXRlL3NyY1xcYXBwXFx2aWV3c1xcYXV0aFxccmVzZXQtcGFzc3dvcmRcXHJlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGlCQUFpQixFQUFBOztBQUduQjs7RUFFRSxXQUFXLEVBQUE7O0FBR2I7RUFDSSxlQUFlLEVBQUE7O0FBR25CO0VBQ0UsWUFBWTtFQUNaLGtCQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXV0aC9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sb2dpbnNjcmVlbi5taWRkbGUtYm94IHtcclxuICB3aWR0aDogNDAwcHg7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlN2VhZWM7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG59XHJcblxyXG4ubG9naW5zY3JlZW4ge1xyXG4gIG1hcmdpbi10b3A6IDEyNXB4O1xyXG59XHJcblxyXG4ubW90aXZhdGlvbmFsLXNlY3Rpb24gaDMsXHJcbi5tb3RpdmF0aW9uYWwtc2VjdGlvbiBzbWFsbCB7XHJcbiAgY29sb3I6ICNGRkY7XHJcbn1cclxuXHJcbi5tb3RpdmF0aW9uYWwtc2VjdGlvbiBoMyB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbn1cclxuXHJcbi5tb3RpdmF0aW9uYWwtc2VjdGlvbiB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIG1hcmdpbi1yaWdodDogODBweDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\n\r\nimport { AuthService } from \"../auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { ResetPasswordModel } from '../../shared/models/reset-password.model';\r\n\r\n@Component({\r\n selector: 'app-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n styleUrls: ['./reset-password.component.scss']\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n resetPasswordForm: FormGroup;\r\n isFormInit: boolean = false;\r\n\r\n resetPasswordModel: ResetPasswordModel = new ResetPasswordModel();\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n\r\n initForm() {\r\n this.route.queryParams.subscribe(\r\n (params: Params) => {\r\n let code = params['code'];\r\n\r\n this.resetPasswordForm = this.formBuilder.group({\r\n email: this.formBuilder.control(this.resetPasswordModel.email, [Validators.required, Validators.email]), \r\n password: this.formBuilder.control(this.resetPasswordModel.password, [Validators.required]), \r\n confirmPassword: this.formBuilder.control(this.resetPasswordModel.confirmPassword, [Validators.required]),\r\n code: this.formBuilder.control(code),\r\n });\r\n \r\n this.isFormInit = true;\r\n \r\n }\r\n );\r\n\r\n \r\n }\r\n\r\n onSubmit() { \r\n \r\n this.resetPasswordModel.email = this.resetPasswordForm.value.email;\r\n this.resetPasswordModel.password = this.resetPasswordForm.value.password;\r\n this.resetPasswordModel.confirmPassword = this.resetPasswordForm.value.confirmPassword; \r\n this.resetPasswordModel.code = this.resetPasswordForm.value.code;\r\n \r\n this.authService.resetPasswordConfirm(this.resetPasswordModel).subscribe(\r\n (response: Response) => {\r\n if (response) {\r\n this.router.navigate([\"/login\"]); \r\n }\r\n else\r\n console.log(\"The access token could not be generated.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Reset Password Failed\", error);\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\r\nimport { AuthService } from \"./auth.service\";\r\n\r\n@Injectable()\r\nexport class RoleGuard implements CanActivate {\r\n\r\n constructor(private authService: AuthService,\r\n private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { \r\n if (!this.authService.isAdmin()) {\r\n this.router.navigate(['/error/403']);\r\n return false;\r\n }\r\n \r\n return true;\r\n }\r\n}","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"crm-logo-vertical\\\" \\r\\n
\\r\\n

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

\\r\\n Manage: Contacts | Communications | Tasks\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n The Email field is required.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n The Password field is required.\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Forgot password?\\r\\n\\r\\n \\r\\n
\\r\\n

CRM by ISB Software © Copyright 2018

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

\\r\\n \\\"Quality is remembered long\\r\\n
\\r\\n after the price is forgotten.\\\"\\r\\n
\\r\\n Aldo Gucci\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \".loginscreen.middle-box {\\n width: 400px;\\n padding: 20px;\\n background-color: #fff;\\n border: 1px solid #e7eaec;\\n border-radius: 2px; }\\n\\n.loginscreen {\\n margin-top: 125px; }\\n\\n.motivational-section h3,\\n.motivational-section small {\\n color: #FFF; }\\n\\n.motivational-section h3 {\\n font-size: 20px; }\\n\\n.motivational-section {\\n float: right;\\n margin-right: 80px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvYXV0aC9zaWduaW4vQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGF1dGhcXHNpZ25pblxcc2lnbmluLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGlCQUFpQixFQUFBOztBQUduQjs7RUFFRSxXQUFXLEVBQUE7O0FBR2I7RUFDSSxlQUFlLEVBQUE7O0FBR25CO0VBQ0UsWUFBWTtFQUNaLGtCQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvYXV0aC9zaWduaW4vc2lnbmluLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxvZ2luc2NyZWVuLm1pZGRsZS1ib3gge1xyXG4gIHdpZHRoOiA0MDBweDtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2U3ZWFlYztcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuXHJcbi5sb2dpbnNjcmVlbiB7XHJcbiAgbWFyZ2luLXRvcDogMTI1cHg7XHJcbn1cclxuXHJcbi5tb3RpdmF0aW9uYWwtc2VjdGlvbiBoMyxcclxuLm1vdGl2YXRpb25hbC1zZWN0aW9uIHNtYWxsIHtcclxuICBjb2xvcjogI0ZGRjtcclxufVxyXG5cclxuLm1vdGl2YXRpb25hbC1zZWN0aW9uIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxufVxyXG5cclxuLm1vdGl2YXRpb25hbC1zZWN0aW9uIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiA4MHB4O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { AuthService } from \"../auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { LoginModel } from \"../../shared/models/login.model\";\r\n\r\n@Component({\r\n selector: 'app-signin',\r\n templateUrl: './signin.component.html',\r\n styleUrls: ['./signin.component.scss']\r\n})\r\nexport class SigninComponent implements OnInit {\r\n signinForm: FormGroup;\r\n isFormInit: boolean = false;\r\n\r\n loginModel: LoginModel = new LoginModel();\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n\r\n initForm() {\r\n this.signinForm = this.formBuilder.group({\r\n email: this.formBuilder.control(this.loginModel.Email, [Validators.required, Validators.email]),\r\n password: this.formBuilder.control(this.loginModel.Password, [Validators.required])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onSubmit() {\r\n this.loginModel.Email = this.signinForm.value.email;\r\n this.loginModel.Password = this.signinForm.value.password;\r\n \r\n this.authService.onLogin(this.loginModel).subscribe(\r\n (loginSuccess: boolean) => {\r\n if (loginSuccess) {\r\n const redirectToUrl = this.route.snapshot.queryParams['returnUrl'];\r\n \r\n if (redirectToUrl)\r\n this.router.navigate([redirectToUrl]);\r\n else\r\n this.router.navigate([\"/dashboard\"]); \r\n }\r\n else\r\n console.log(\"The access token could not be generated.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Login Failed\", error);\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\r\nimport { AuthService } from \"./auth.service\";\r\n\r\n@Injectable()\r\nexport class SuperAdminGuard implements CanActivate {\r\n\r\n constructor(private authService: AuthService,\r\n private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { \r\n if (!this.authService.isSuperAdmin()) {\r\n this.router.navigate(['/error/403']);\r\n return false;\r\n }\r\n \r\n return true;\r\n }\r\n}","//import { SharedTitleService } from \"@app/shared/services/shared-title.service\";\r\nimport { IBaseComponent } from \"./base.interface.component\";\r\nimport { Subscription } from 'rxjs';\r\nimport { System } from '../shared/system';\r\nimport { SystemModeHelper } from '../shared/system-config.service';\r\n//import { DeveloperModeHelper } from '@app/shared/developer/developer-mode.helper';\r\n\r\n// declare let mApp: any;\r\n\r\nexport abstract class BaseComponent implements IBaseComponent {\r\n ngOnDestroy(): void {\r\n this.subscriptions$.map(elem => {\r\n if(elem) {\r\n elem.unsubscribe();\r\n }\r\n })\r\n }\r\n\r\n public showDeveloperLabel = false;\r\n public showDeveloperModeLabel = false;\r\n\r\n get isDeveloperModeEnabled() {\r\n return this.showDeveloperLabel && this.showDeveloperModeLabel;\r\n }\r\n\r\n isDeveloper$ = null;\r\n developerMode$ = null;\r\n\r\n subscriptions$ : Subscription[] = [];\r\n\r\n /* ngOnInit() {\r\n this.isDeveloper$ = this.developer.isDeveloper.subscribe((isDeveloper) => {\r\n\r\n this.showDeveloperLabel = isDeveloper;\r\n });\r\n\r\n this.subscriptions$.push(this.isDeveloper$);\r\n\r\n this.developerMode$ = this.developer.isDeveloperModeEnabled.subscribe((isDeveloperModeEnabled) => {\r\n\r\n this.showDeveloperModeLabel = isDeveloperModeEnabled;\r\n });\r\n\r\n this.subscriptions$.push(this.developerMode$);\r\n\r\n }*/\r\n\r\n ngAfterViewInit(): void {\r\n //this.setTitle();\r\n }\r\n\r\n //abstract setTitle(): void;\r\n\r\n constructor(\r\n // protected _sharedTitleService: SharedTitleService,\r\n // protected developer: DeveloperModeHelper,\r\n // protected systemModeHelper : SystemModeHelper\r\n ) {\r\n // super(systemModeHelper);\r\n }\r\n\r\n // blockModal(selector: string = null) {\r\n // if(selector) {\r\n // this.block(selector);\r\n // } else {\r\n // this.block(\".modal-content\");\r\n // }\r\n // }\r\n\r\n // unblockModal(selector: string = null) {\r\n // if(selector) {\r\n // this.unblock(selector);\r\n // } else {\r\n // this.unblock(\".modal-content\");\r\n // }\r\n // }\r\n\r\n // // private block(selector: string) {\r\n // // mApp.block(selector, {\r\n // // overlayColor: \"#000000\",\r\n // // type: \"loader\",\r\n // // state: \"success\",\r\n // // size: \"lg\"\r\n // // });\r\n // // }\r\n\r\n // // private unblock(selector: string) {\r\n // // mApp.unblock(selector);\r\n // // }\r\n}\r\n","//import { SharedTitleService } from \"@app/shared/services/shared-title.service\";\r\nimport { IBaseComponent } from \"./base.interface.component\";\r\nimport { Subscription } from 'rxjs';\r\nimport { System } from '../shared/system';\r\nimport { SystemModeHelper } from '../shared/system-config.service';\r\n//import { DeveloperModeHelper } from '@app/shared/developer/developer-mode.helper';\r\n\r\n// declare let mApp: any;\r\n\r\nexport abstract class SystemComponent extends System implements IBaseComponent {\r\n ngOnDestroy(): void {\r\n this.subscriptions$.map(elem => {\r\n if(elem) {\r\n elem.unsubscribe();\r\n }\r\n })\r\n }\r\n\r\n public showDeveloperLabel = false;\r\n public showDeveloperModeLabel = false;\r\n\r\n get isDeveloperModeEnabled() {\r\n return this.showDeveloperLabel && this.showDeveloperModeLabel;\r\n }\r\n\r\n isDeveloper$ = null;\r\n developerMode$ = null;\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n /* ngOnInit() {\r\n this.isDeveloper$ = this.developer.isDeveloper.subscribe((isDeveloper) => {\r\n\r\n this.showDeveloperLabel = isDeveloper;\r\n });\r\n\r\n this.subscriptions$.push(this.isDeveloper$);\r\n\r\n this.developerMode$ = this.developer.isDeveloperModeEnabled.subscribe((isDeveloperModeEnabled) => {\r\n\r\n this.showDeveloperModeLabel = isDeveloperModeEnabled;\r\n });\r\n\r\n this.subscriptions$.push(this.developerMode$);\r\n\r\n }*/\r\n\r\n ngAfterViewInit(): void {\r\n //this.setTitle();\r\n }\r\n\r\n //abstract setTitle(): void;\r\n\r\n constructor(\r\n // protected _sharedTitleService: SharedTitleService,\r\n // protected developer: DeveloperModeHelper,\r\n protected systemModeHelper : SystemModeHelper\r\n ) {\r\n super(systemModeHelper);\r\n }\r\n\r\n // blockModal(selector: string = null) {\r\n // if(selector) {\r\n // this.block(selector);\r\n // } else {\r\n // this.block(\".modal-content\");\r\n // }\r\n // }\r\n\r\n // unblockModal(selector: string = null) {\r\n // if(selector) {\r\n // this.unblock(selector);\r\n // } else {\r\n // this.unblock(\".modal-content\");\r\n // }\r\n // }\r\n\r\n // // private block(selector: string) {\r\n // // mApp.block(selector, {\r\n // // overlayColor: \"#000000\",\r\n // // type: \"loader\",\r\n // // state: \"success\",\r\n // // size: \"lg\"\r\n // // });\r\n // // }\r\n\r\n // // private unblock(selector: string) {\r\n // // mApp.unblock(selector);\r\n // // }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Company Details
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Primary Details

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Company details must have either an Email or a Mobile or Office value.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Organizations must have either an Email or a Mobile or Office value.\\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Organizations must have either an Email or a Mobile or Office value.\\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Address Details\\r\\n \\r\\n

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

\\r\\n Location Details\\r\\n \\r\\n

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

\\r\\n Extra Details\\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBhbnktZGV0YWlscy9jb21wYW55LWRldGFpbHMtbWFuYWdlL2NvbXBhbnktZGV0YWlscy1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { Response } from '@angular/http';\r\nimport { ActivatedRoute, Router, Params } from \"@angular/router\";\r\nimport { CompanyDetails } from 'app/views/shared/models/company-details.model';\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\nimport { OrganizationService } from '../../shared/services/organization.service';\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\n\r\n@Component({\r\n selector: 'app-company-details-manage',\r\n templateUrl: './company-details-manage.component.html',\r\n styleUrls: ['./company-details-manage.component.scss']\r\n})\r\nexport class CompanyDetailsManageComponent implements OnInit {\r\n\r\n companyDetailsForm: FormGroup; // - Stores the organization form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a organization if true and add a new organization if false\r\n\r\n companyDetails: CompanyDetails = new CompanyDetails();\r\n\r\n isAdditionalCollapsed: boolean = false;\r\n isLocationCollapsed: boolean = false;\r\n isExtraDetailsCollapsed: boolean = false;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toastService: ToastService,\r\n private organizationService: OrganizationService,\r\n private confirmationService: ConfirmationService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n\r\n this.organizationService.getCompanyDetails().subscribe(\r\n (companyDetails: CompanyDetails) => {\r\n this.companyDetails = companyDetails;\r\n\r\n this.isEdit = this.companyDetails != null;\r\n this.ngOnInitForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving company details\", error);\r\n }\r\n );\r\n }\r\n\r\n\r\n ngOnInitForm() {\r\n this.companyDetailsForm = this.formBuilder.group({\r\n // id: this.formBuilder.control(this.companyDetails ? this.companyDetails.id : null),\r\n name: this.formBuilder.control(this.companyDetails ? this.companyDetails.name : null),\r\n email: this.formBuilder.control(this.companyDetails ? this.companyDetails.email : null, [Validators.required]),\r\n website: this.formBuilder.control(this.companyDetails ? this.companyDetails.website : null),\r\n mobilePhoneNumber: this.formBuilder.control(this.companyDetails ? this.companyDetails.mobilePhoneNumber : null, [Validators.required]),\r\n officePhoneNumber: this.formBuilder.control(this.companyDetails ? this.companyDetails.officePhoneNumber : null),\r\n vatNumber: this.formBuilder.control(this.companyDetails ? this.companyDetails.vatNumber : null),\r\n addressLine1: this.formBuilder.control(this.companyDetails ? this.companyDetails.addressLine1 : null),\r\n addressLine2: this.formBuilder.control(this.companyDetails ? this.companyDetails.addressLine2 : null),\r\n addressLine3: this.formBuilder.control(this.companyDetails ? this.companyDetails.addressLine3 : null),\r\n addressLine4: this.formBuilder.control(this.companyDetails ? this.companyDetails.addressLine4 : null),\r\n postCode: this.formBuilder.control(this.companyDetails ? this.companyDetails.postCode : null),\r\n country: this.formBuilder.control(this.companyDetails ? this.companyDetails.country : null),\r\n locationLat: this.formBuilder.control(this.companyDetails ? this.companyDetails.locationLat : null),\r\n locationLng: this.formBuilder.control(this.companyDetails ? this.companyDetails.locationLng : null),\r\n notes: this.formBuilder.control(this.companyDetails ? this.companyDetails.notes : null),\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onSubmit() {\r\n let newCompanyDetails = this.formBuilder.sanitizeFormValues(this.companyDetailsForm).value;\r\n\r\n if (this.isEdit) {\r\n // newCompanyDetails.id = this.companyDetails.id; // - Set id of edited organization to its original id, same with externalId and createdById\r\n this.onUpdateCompanyDetails(newCompanyDetails);\r\n }\r\n else {\r\n this.onCreateComanyDetails(newCompanyDetails);\r\n }\r\n }\r\n\r\n onUpdateCompanyDetails(companyDetails: CompanyDetails) {\r\n companyDetails.id = this.companyDetails.id;\r\n this.organizationService.updateCompanyDetails(companyDetails).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The company details have been updated.\");\r\n this.router.navigate(['/settings/company-details']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating company details\", error);\r\n }\r\n );\r\n }\r\n\r\n onCreateComanyDetails(companyDetails: CompanyDetails) {\r\n this.organizationService.createCompanyDetails(companyDetails).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The company details have been created.\");\r\n this.router.navigate(['/settings/company-details']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error creating company details\", error);\r\n }\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { CompanyDetailsComponent } from \"../company-details/company-details.component\";\r\nimport { CompanyDetailsManageComponent } from \"../company-details/company-details-manage/company-details-manage.component\";\r\n\r\nconst companyDetailsRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'settings', component: CompanyDetailsComponent,\r\n children: [\r\n { path: '', redirectTo: 'company-details', pathMatch: 'full' },\r\n { path: 'company-details', component: CompanyDetailsManageComponent},\r\n // { path: ':id/edit', component: CompanyDetailsManageComponent },\r\n // { path: 'new', component: CompanyDetailsManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(companyDetailsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class CompanyDetailsRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBhbnktZGV0YWlscy9jb21wYW55LWRldGFpbHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-company-details',\r\n templateUrl: './company-details.component.html',\r\n styleUrls: ['./company-details.component.scss']\r\n})\r\nexport class CompanyDetailsComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\n\r\nimport { CompanyDetailsComponent } from './company-details.component';\r\nimport { CompanyDetailsManageComponent } from './company-details-manage/company-details-manage.component';\r\nimport { CompanyDetailsRoutingModule } from './company-details-routing.module';\r\nimport { DropdownModule } from 'primeng/primeng';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CompanyDetailsComponent,\r\n CompanyDetailsManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n CompanyDetailsRoutingModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n CollapseModule,\r\n ]\r\n})\r\nexport class CompanyDetailsModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Snag List
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Snag\\r\\n There are currently {{complaints.length}} Snag\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n complaint.assignedContactId ?\\r\\n complaint.assignedContact ?\\r\\n complaint.assignedContact?.fullName :\\r\\n '-'\\r\\n :'-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ complaint.description && complaint.description.length > 25 ? complaint.description.substring(0, 25) + '...' : complaint.description }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ complaint.reportedDate | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ complaint.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ complaint.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50LWxpc3QvY29tcGxhaW50LWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ComplaintService } from \"../../shared/services/complaint.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { ConfirmationService, SelectItem } from \"primeng/primeng\";\r\nimport { TableUtilityService } from '../../shared/services/table-utility.service';\r\nimport { CookieService } from 'ngx-cookie';\r\n\r\nimport { Complaint } from \"../../shared/models/complaint.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-complaint-list',\r\n templateUrl: './complaint-list.component.html',\r\n styleUrls: ['./complaint-list.component.scss']\r\n})\r\nexport class ComplaintListComponent implements OnInit {\r\n complaints: Complaint[] = [];\r\n isAnim: boolean = true;\r\n\r\n /** Column Toggling */\r\n columnOptions: SelectItem[];\r\n selectedCols: any[]; // - Contains the table columns that should be visible\r\n allSelectableCols: any[] = []; // - Contains all table columns that may be toggled on or off\r\n \r\n selectedColsDefault: any[] = []; // - Contains the columns that are shown by default if no cookie is stored\r\n \r\n constructor(\r\n public authService: AuthService,\r\n private complaintService: ComplaintService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService,\r\n private cookieService: CookieService, \r\n private tableUtilService: TableUtilityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetComplaints(); \r\n \r\n // Listen to changes made to complaints\r\n this.complaintService.typesChanged.subscribe(\r\n () => {\r\n this.onGetComplaints();\r\n }\r\n );\r\n } \r\n \r\n isColVisible(colName: string) {\r\n if (this.selectedCols.find(sC => sC.value === colName))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n onGetComplaints() {\r\n this.complaintService.getComplaints().subscribe(\r\n (complaints: Complaint[]) => {\r\n this.complaints = complaints;\r\n console.log(this.complaints);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving complaints\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteComplaint(complaint: Complaint) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the complaint ' + complaint.code + '?',\r\n accept: () => {\r\n complaint.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.complaintService.deleteComplaint(complaint).subscribe(\r\n (response: Response) => {\r\n this.onGetComplaints();\r\n this.toastService.createSuccessMessage(\"Success\", \"The complaint \" + complaint.code + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting complaint\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for complaint \" + complaint.code + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n}\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update Snag
\\r\\n
New Snag
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n The Reported Date field is required.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Assigned Contact:\\r\\n {{ complaintForm.get('assignedContactId').value.label }}.\\r\\n

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

\\r\\n No contact is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50LW1hbmFnZS9jb21wbGFpbnQtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { ComplaintService } from '../../shared/services/complaint.service';\r\nimport { ComplaintTypeService } from '../../shared/services/complaint-type.service';\r\n\r\nimport { Complaint } from '../../shared/models/complaint.model';\r\nimport { ComplaintType } from '../../shared/models/complaint-type.model';\r\n\r\nimport { CustomValidators } from 'ng2-validation';\r\nimport { SelectItem, ConfirmationService, AutoComplete } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { UserService } from \"../../shared/services/user.service\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Contact } from '../../shared/models/contact.model';\r\nimport { ComplaintStatus } from '../../shared/models/complaint-status.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-complaint-manage',\r\n templateUrl: './complaint-manage.component.html',\r\n styleUrls: ['./complaint-manage.component.scss']\r\n})\r\nexport class ComplaintManageComponent implements OnInit {\r\n\r\n complaintForm: FormGroup; // - Stores the complaint form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a complaint if true and add a new complaint if false\r\n\r\n complaints: Complaint[] = []; // - Stores all complaints retrieved from db to validate unique values\r\n complaint: Complaint = new Complaint(); // - Stores Complaint to populate form with a new / existing complaint's values\r\n \r\n assignedUserOptions: SelectItem[] = []; // - Stores Users to select the Assigned User of this complaint\r\n assignedContactOptions: SelectItem[] = []; // - Stores Contacts to select the Assigned Contact of this complaint\r\n complaintStatusOptions:SelectItem[] = []; // - Stores Complaint Status \r\n complaintTypesOptions:SelectItem[] = []; // - Stores Complaint Types \r\n\r\n //** DatePicker */\r\n maxDate: Date = new Date(); // - Can't select a date before the current day\r\n dateRange: string = this.maxDate.getFullYear() + ':' + (this.maxDate.getFullYear() + 10); // - 10 Year Range\r\n\r\n //** Spinner (Calendar event duration) */\r\n defaultCalendarDuration: number = 30; // - Default Duration\r\n minCalendarDuration: number = 5; // - Duration in Minutes\r\n maxCalendarDuration: number = 600;\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n constructor(\r\n public authService: AuthService,\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toastService: ToastService,\r\n private complaintService: ComplaintService,\r\n private complaintTypeService: ComplaintTypeService,\r\n private confirmationService: ConfirmationService,\r\n private contactService: ContactService,\r\n private userService: UserService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm(); \r\n }\r\n\r\n\r\n\r\n initForm() {\r\n this.complaintForm = this.formBuilder.group({\r\n code: this.formBuilder.control(this.complaint.code),\r\n reportedDate: this.formBuilder.control(\r\n this.complaint.reportedDate ? new Date(this.complaint.reportedDate) : this.formatMinutesInDateToNearestFiveMinutes(new Date()),\r\n [Validators.required]),\r\n description: this.formBuilder.control(this.complaint.description, [Validators.required]),\r\n status: this.formBuilder.control(this.complaint.status === AuditManager.StatusActive || !this.complaint.status ? true : false),\r\n assignedContactId :this.formBuilder.control(this.complaint.assignedContactId),\r\n assignedUserAccountId :this.formBuilder.control(this.complaint.assignedUserAccountId),\r\n complaintTypeId :this.formBuilder.control(this.complaint.complaintTypeId),\r\n complaintStatusId :this.formBuilder.control(this.complaint.complaintStatusId),\r\n });\r\n\r\n this.onGetUsers(); // - Retrieve all users to populate the Assigned User dropdown\r\n this.onGetComplaintTypes();\r\n this.onGetComplaintStatus();\r\n\r\n if (this.isEdit && this.complaint.assignedContact) {\r\n let c = this.complaint.assignedContact;\r\n let labelText = c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let defaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.complaint.assignedContactId\r\n };\r\n\r\n let defaultValue = this.complaint.assignedContactId ? defaultSelectItem : null;\r\n\r\n this.complaintForm.patchValue({\r\n assignedContactId: defaultValue\r\n });\r\n }\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let contactId = queryParam['contact'];\r\n if (contactId != null) {\r\n\r\n this.contactService.getContact(+contactId).subscribe(\r\n (contact: Contact) => {\r\n let defaultValue: SelectItem = {\r\n label: contact.fullName,\r\n value: +contactId\r\n };\r\n\r\n this.complaintForm.patchValue({\r\n defaultContactId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n \r\n this.isFormInit = true;\r\n }\r\n\r\n \r\n\r\n\r\n setupForm() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const complaintId = params['id'];\r\n this.isEdit = complaintId != null; // - Returns true if an id was present within the url\r\n\r\n if (this.isEdit) {\r\n this.complaintService.getComplaint(+complaintId).subscribe(\r\n (complaint: Complaint) => {\r\n this.complaint = complaint;\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving complaint\", error);\r\n }\r\n );\r\n\r\n // Redirect to 404 page if the selected complaint could not be found\r\n if (!this.complaint) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n else\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newComplaint = this.formBuilder.sanitizeFormValues(this.complaintForm).value;\r\n\r\n // Status is a checkbox value so only true or false can be returned\r\n // True - Active Complaint, False - Hidden Complaint\r\n if (newComplaint.status)\r\n newComplaint.status = AuditManager.StatusActive;\r\n else\r\n newComplaint.status = AuditManager.StatusHidden;\r\n\r\n if (newComplaint.assignedContactId && newComplaint.assignedContactId.value)\r\n newComplaint.assignedContactId = newComplaint.assignedContactId.value;\r\n else\r\n newComplaint.assignedContactId = null;\r\n\r\n if (this.isEdit) {\r\n newComplaint.id = this.complaint.id; // - Set id of edited complaint to its original id, same with externalId and createdById\r\n newComplaint.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateComplaint(newComplaint);\r\n }\r\n else {\r\n newComplaint.code = \"tempCode\" // this will change to COM000+ID of the complaint inserted\r\n newComplaint.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddComplaint(newComplaint);\r\n }\r\n }\r\n\r\n onAddComplaint(newComplaint: Complaint) {\r\n \r\n this.complaintService.addComplaint(newComplaint).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The complaint \" + newComplaint.code + \" has been created.\");\r\n\r\n let complaint: Complaint = (response) as Complaint; // - Can't use NewComplaint as we need the complaint's ID retrieved from db after creation\r\n\r\n this.router.navigate(['/snaglist/']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding complaint\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateComplaint(newComplaint: Complaint) {\r\n this.complaintService.updateComplaint(newComplaint).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The complaint \" + newComplaint.code + \" has been updated.\");\r\n\r\n this.router.navigate(['/snaglist/']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating complaint\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n cT.companyName ? labelText += \" / Company: \" + cT.companyName : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.assignedContactOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Store retrieved users in the usersOptions select list\r\n users.map(u => this.assignedUserOptions.push({ label: u.fullName, value: u.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.authService.applicationProfileUser().id;\r\n else\r\n defaultValue = this.complaint.assignedUserAccountId ? this.complaint.assignedUserAccountId : this.authService.applicationProfileUser().id;\r\n\r\n this.complaintForm.patchValue({\r\n assignedUserAccountId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetComplaintTypes() {\r\n this.complaintTypeService.getComplaintTypes().subscribe(\r\n (complaintTypes: ComplaintType[]) => {\r\n // Store retrieved complaint types in the complaintTypesOptions select list\r\n complaintTypes.map(cT => this.complaintTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n let defaultValue = null;\r\n\r\n if (this.isEdit)\r\n defaultValue = this.complaint.complaintType ? this.complaint.complaintTypeId : null;\r\n\r\n this.complaintForm.patchValue({\r\n complaintTypeId: defaultValue\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lost complaint types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetComplaintStatus() {\r\n this.complaintService.getComplaintStatuses().subscribe(\r\n (complaintStatus: ComplaintStatus[]) => {\r\n // Store retrieved complaint status in the complaintStatusOptions select list\r\n complaintStatus.map(cT => this.complaintStatusOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n let defaultValue = null;\r\n\r\n if (this.isEdit)\r\n defaultValue = this.complaint.complaintStatus ? this.complaint.complaintStatusId : null;\r\n\r\n this.complaintForm.patchValue({\r\n complaintStatusId: defaultValue\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lost complaint status\", error);\r\n }\r\n );\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n }\r\n\r\n formatMinutesInDateToNearestFiveMinutes(date: Date) {\r\n // Obtained from: https://stackoverflow.com/a/10789415\r\n let coeff = 1000 * 60 * 5;\r\n let rounded = new Date(Math.round(date.getTime() / coeff) * coeff)\r\n\r\n return rounded;\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{complaint.code}} / {{complaint.complaintStatus.name}}

\\r\\n

{{complaint.complaintType.name}}

\\r\\n {{complaint.description}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

Created

\\r\\n

Updated

\\r\\n

Communication Log Created

\\r\\n

Communication Log Updated

\\r\\n

\\r\\n \\r\\n {{ complaintLog.createdOn | date:'EEE dd/MM/yyyy' }}\\r\\n
\\r\\n \\r\\n {{ complaintLog.createdOn | date:'HH:mm' }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".vertical-timeline-content h2 {\\n font-size: 16px;\\n margin-top: 5px;\\n font-weight: bold;\\n border-bottom: 1px solid #dddddd;\\n padding-bottom: 5px; }\\n\\n.mt18 {\\n margin-top: 18px; }\\n\\n.page-heading h2 {\\n font-size: 24px !important;\\n padding-top: 10px !important; }\\n\\n.page-heading {\\n margin: 10px !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29tcGxhaW50cy9jb21wbGFpbnQtdGltZWxpbmUvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGNvbXBsYWludHNcXGNvbXBsYWludC10aW1lbGluZVxcY29tcGxhaW50LXRpbWVsaW5lLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBZTtFQUNmLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0NBQTJDO0VBQzNDLG1CQUFtQixFQUFBOztBQUd2QjtFQUNJLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLDBCQUEwQjtFQUMxQiw0QkFBNEIsRUFBQTs7QUFHaEM7RUFDSSx1QkFBdUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50LXRpbWVsaW5lL2NvbXBsYWludC10aW1lbGluZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi52ZXJ0aWNhbC10aW1lbGluZS1jb250ZW50IGgye1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDIyMSwgMjIxLCAyMjEpO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxufVxyXG5cclxuLm10MTh7XHJcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xyXG59XHJcblxyXG4ucGFnZS1oZWFkaW5nIGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZ2UtaGVhZGluZyAge1xyXG4gICAgbWFyZ2luOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\n\r\nimport { ComplaintLogService } from '../../shared/services/complaint-log.service';\r\nimport { ComplaintLog } from \"../../shared/models/complaint-log.model\";\r\n\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { ComplaintService } from '../../shared/services/complaint.service';\r\nimport { Complaint } from '../../shared/models/complaint.model';\r\n\r\n@Component({\r\n selector: 'app-complaint-timeline',\r\n templateUrl: './complaint-timeline.component.html',\r\n styleUrls: ['./complaint-timeline.component.scss']\r\n})\r\nexport class ComplaintTimelineComponent implements OnInit {\r\n\r\n complaintLogs: ComplaintLog[] = [];\r\n orientation: boolean = false;\r\n complaint: Complaint;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private complaintLogService: ComplaintLogService,\r\n private complaintService:ComplaintService,\r\n private toastService: ToastService,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n const complaintId = this.route.snapshot.params['id'];\r\n this.onGetComplaint(complaintId); \r\n this.onGetComplaintLogs(complaintId); \r\n }\r\n\r\n\r\n onGetComplaintLogs(id : number) {\r\n this.complaintLogService.getComplaintLogByComplaintId(id).subscribe(\r\n (complaintLogs: ComplaintLog[]) => {\r\n this.complaintLogs = complaintLogs;\r\n console.log(this.complaintLogs);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving complaint logs\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetComplaint(id:number){\r\n this.complaintService.getComplaint(id).subscribe(\r\n (complaint: Complaint) => {\r\n this.complaint = complaint;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving complaint\", error);\r\n }\r\n );\r\n }\r\n\r\n\r\n changeOrientation(){ \r\n this.orientation = !this.orientation; \r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Snag Types
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Snag Types\\r\\n There are currently {{complaintTypes.length}} snag types\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ complaintType.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ complaintType.createdByUserAccountId > 0 ? complaintType.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50LXR5cGVzL2NvbXBsYWludC10eXBlLWxpc3QvY29tcGxhaW50LXR5cGUtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { ComplaintTypeService } from \"../../../shared/services/complaint-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { ComplaintType } from \"../../../shared/models/complaint-type.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-complaint-type-list',\r\n templateUrl: './complaint-type-list.component.html',\r\n styleUrls: ['./complaint-type-list.component.scss']\r\n})\r\nexport class ComplaintTypeListComponent implements OnInit {\r\n complaintTypes: ComplaintType[] = [];\r\n isAnim: boolean = true;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private complaintTypeService: ComplaintTypeService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetComplaintTypes();\r\n\r\n // Listen to changes made to complaintTypes\r\n this.complaintTypeService.typesChanged.subscribe(\r\n () => {\r\n this.onGetComplaintTypes();\r\n }\r\n );\r\n }\r\n\r\n onGetComplaintTypes() {\r\n this.complaintTypeService.getComplaintTypes().subscribe(\r\n (complaintTypes: ComplaintType[]) => {\r\n this.complaintTypes = complaintTypes;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving complaint types\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteComplaintType(complaintType: ComplaintType) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the complaint type ' + complaintType.name + '?',\r\n accept: () => {\r\n complaintType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.complaintTypeService.deleteComplaintType(complaintType).subscribe(\r\n (response: Response) => {\r\n this.onGetComplaintTypes();\r\n this.toastService.createSuccessMessage(\"Success\", \"The complaint type \" + complaintType.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting complaint type\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for complaint type \" + complaintType.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Snag Type

\\r\\n

New Snag Type

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Snag Type field is required.\\r\\n \\r\\n \\r\\n There is already a lost snag type with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50LXR5cGVzL2NvbXBsYWludC10eXBlLW1hbmFnZS9jb21wbGFpbnQtdHlwZS1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { ComplaintTypeService } from \"../../../shared/services/complaint-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { ComplaintType } from \"../../../shared/models/complaint-type.model\";\r\n\r\nimport { valueExistsValidator } from \"../../../shared/validators/value-exists.validator\";\r\n\r\n@Component({\r\n selector: 'app-complaint-type-manage',\r\n templateUrl: './complaint-type-manage.component.html',\r\n styleUrls: ['./complaint-type-manage.component.scss']\r\n})\r\nexport class ComplaintTypeManageComponent implements OnInit {\r\n complaintTypeForm: FormGroup; // - Stores the complaintType form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a complaintType if true and add a new complaintType if false\r\n\r\n complaintTypes: ComplaintType[] = []; // - Stores all complaintTypes retrieved from db\r\n complaintType: ComplaintType = new ComplaintType(); // - Stores ComplaintType to populate form with a new / existing ComplaintType's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private complaintTypeService: ComplaintTypeService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.complaintTypeService.getComplaintTypes().subscribe(\r\n (complaintTypes: ComplaintType[]) => {\r\n this.complaintTypes = complaintTypes; // - Store all complaint types retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const complaintTypeId = params['id'];\r\n this.isEdit = complaintTypeId != null;\r\n\r\n if (this.isEdit) {\r\n this.complaintType = this.complaintTypes.find(cType => cType.id === +complaintTypeId); // - Store the selected complaintType\r\n\r\n // Redirect to 404 page if the selected complaintType could not be found\r\n if (!this.complaintType) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving complaint types\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all complaintType names to know if it already exists\r\n const complaintTypeNames = this.complaintTypes.map(cType => cType.name);\r\n\r\n this.complaintTypeForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.complaintType.name, [Validators.required, valueExistsValidator(complaintTypeNames)])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddComplaintType(newComplaintType: ComplaintType) {\r\n this.complaintTypeService.addComplaintType(newComplaintType).subscribe(\r\n (response: Response) => {\r\n this.complaintTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The complaint type \" + newComplaintType.name + \" has been created.\");\r\n this.router.navigate(['/snaglist/types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding complaint type\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateComplaintType(newComplaintType: ComplaintType) {\r\n this.complaintTypeService.updateComplaintType(newComplaintType).subscribe(\r\n (response: Response) => {\r\n this.complaintTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The complaint type \" + newComplaintType.name + \" has been updated.\");\r\n this.router.navigate(['/snaglist/types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating complaint type\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newComplaintType = this.formBuilder.sanitizeFormValues(this.complaintTypeForm).value;\r\n\r\n if (this.isEdit) {\r\n newComplaintType.id = this.complaintType.id; // - Set id of edited complaintType to its original id\r\n newComplaintType.createdByUserAccountId = this.complaintType.createdByUserAccountId; // - Need createdById of original complaint type to check if it is a prepopulated type\r\n newComplaintType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateComplaintType(newComplaintType);\r\n }\r\n else {\r\n newComplaintType.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddComplaintType(newComplaintType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { ComplaintTypesComponent } from \"../complaint-types/complaint-types.component\";\r\nimport { ComplaintTypeListComponent } from \"../complaint-types/complaint-type-list/complaint-type-list.component\";\r\nimport { ComplaintTypeManageComponent } from \"../complaint-types/complaint-type-manage/complaint-type-manage.component\";\r\n\r\nconst typesRoutes: Routes = [\r\n {\r\n path: 'snaglist',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'types', component: ComplaintTypesComponent,\r\n children: [\r\n {\r\n path: '', component: ComplaintTypeListComponent,\r\n children: [\r\n { path: ':id/edit', component: ComplaintTypeManageComponent, canActivate: [RoleGuard] },\r\n { path: 'new', component: ComplaintTypeManageComponent, canActivate: [RoleGuard] }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(typesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ComplaintTypesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50LXR5cGVzL2NvbXBsYWludC10eXBlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-complaint-types',\r\n templateUrl: './complaint-types.component.html',\r\n styleUrls: ['./complaint-types.component.scss']\r\n})\r\nexport class ComplaintTypesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ComplaintTypesRoutingModule } from \"./complaint-types-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { ComplaintTypesComponent } from './complaint-types.component';\r\nimport { ComplaintTypeListComponent } from './complaint-type-list/complaint-type-list.component';\r\nimport { ComplaintTypeManageComponent } from './complaint-type-manage/complaint-type-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ComplaintTypesComponent,\r\n ComplaintTypeListComponent,\r\n ComplaintTypeManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ComplaintTypesRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class ComplaintTypesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { ComplaintsComponent } from \"../complaints/complaints.component\";\r\nimport { ComplaintListComponent } from \"../complaints/complaint-list/complaint-list.component\";\r\nimport { ComplaintManageComponent } from \"../complaints/complaint-manage/complaint-manage.component\";\r\nimport { ComplaintTimelineComponent } from './complaint-timeline/complaint-timeline.component';\r\n\r\nconst complaintsRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'snaglist', component: ComplaintsComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: ComplaintListComponent },\r\n { path: ':id/edit', component: ComplaintManageComponent },\r\n { path: ':id/timeline', component: ComplaintTimelineComponent },\r\n { path: 'new', component: ComplaintManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(complaintsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ComplaintsRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbXBsYWludHMvY29tcGxhaW50cy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-complaints',\r\n templateUrl: './complaints.component.html',\r\n styleUrls: ['./complaints.component.scss']\r\n})\r\nexport class ComplaintsComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ComplaintsRoutingModule } from \"./complaints-routing.module\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { CalendarModule, DropdownModule, SliderModule } from \"primeng/primeng\";\r\n\r\nimport { ComplaintsComponent } from './complaints.component';\r\nimport { ComplaintListComponent } from './complaint-list/complaint-list.component';\r\nimport { ComplaintManageComponent } from './complaint-manage/complaint-manage.component';\r\nimport { ComplaintTypesComponent } from './complaint-types/complaint-types.component';\r\nimport { ComplaintTypesModule } from './complaint-types/complaint-types.module';\r\nimport { ComplaintTimelineComponent } from './complaint-timeline/complaint-timeline.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ComplaintsComponent,\r\n ComplaintListComponent,\r\n ComplaintManageComponent,\r\n ComplaintTimelineComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ComplaintsRoutingModule,\r\n ComplaintTypesModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n SliderModule,\r\n CalendarModule\r\n ]\r\n})\r\nexport class ComplaintsModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
Contact Details
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

{{ contact?.fullName }}

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

{{ contact.companyName }}

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Type:\\r\\n
\\r\\n
\\r\\n {{ contact.contactTypes }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Source:\\r\\n
\\r\\n
\\r\\n {{ contact.contactSource.name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Notes:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ contact.notes }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

Communication Details

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Tel:\\r\\n
\\r\\n
\\r\\n {{ contact.homePhoneNumber }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Mob:\\r\\n
\\r\\n
\\r\\n {{ contact.mobilePhoneNumber }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Office:\\r\\n
\\r\\n
\\r\\n {{ contact.officePhoneNumber }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Alt:\\r\\n
\\r\\n
\\r\\n {{ contact.alternatePhoneNumber }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Email:\\r\\n
\\r\\n
\\r\\n {{ contact.email }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

Additional Details

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n ID Card:\\r\\n
\\r\\n
\\r\\n {{ contact.idCardNumber }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n VAT:\\r\\n
\\r\\n
\\r\\n {{ contact.vatNumber }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Date of birth:\\r\\n
\\r\\n
\\r\\n {{ contact.birthdate | date:'dd/MM/yyyy' }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".detail-container {\\n padding: 2px; }\\n\\n.ibox {\\n margin-bottom: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29udGFjdHMvY29tbXVuaWNhdGlvbi1oaXN0b3J5L2NvbW11bmljYXRpb24taGlzdG9yeS1kZXRhaWwvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGNvbnRhY3RzXFxjb21tdW5pY2F0aW9uLWhpc3RvcnlcXGNvbW11bmljYXRpb24taGlzdG9yeS1kZXRhaWxcXGNvbW11bmljYXRpb24taGlzdG9yeS1kZXRhaWwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxZQUFZLEVBQUE7O0FBR2hCO0VBQ0UsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9jb250YWN0cy9jb21tdW5pY2F0aW9uLWhpc3RvcnkvY29tbXVuaWNhdGlvbi1oaXN0b3J5LWRldGFpbC9jb21tdW5pY2F0aW9uLWhpc3RvcnktZGV0YWlsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRldGFpbC1jb250YWluZXIge1xyXG4gICAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4uaWJveCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { CommunicationHistoryService } from \"../../../shared/services/communication-history.service\";\r\nimport { ContactService } from \"../../../shared/services/contact.service\";\r\n\r\nimport { Contact } from \"../../../shared/models/contact.model\";\r\n\r\n@Component({\r\n selector: 'app-communication-history-detail',\r\n templateUrl: './communication-history-detail.component.html',\r\n styleUrls: ['./communication-history-detail.component.scss']\r\n})\r\nexport class CommunicationHistoryDetailComponent implements OnInit {\r\n contact: Contact = null;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private contactService: ContactService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const contactId = params['contactId'];\r\n\r\n if (contactId != 'all') {\r\n this.contactService.getContact(contactId).subscribe(\r\n (contact: Contact) => {\r\n this.contact = contact;\r\n },\r\n (error: Response) => {\r\n this.router.navigate(['/error/404']);\r\n }\r\n );\r\n }\r\n else\r\n this.contact = null;\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Communication History
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Opportunity \\r\\n Snag\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".ibox {\\n margin-bottom: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29udGFjdHMvY29tbXVuaWNhdGlvbi1oaXN0b3J5L2NvbW11bmljYXRpb24taGlzdG9yeS1oZWFkZXIvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGNvbnRhY3RzXFxjb21tdW5pY2F0aW9uLWhpc3RvcnlcXGNvbW11bmljYXRpb24taGlzdG9yeS1oZWFkZXJcXGNvbW11bmljYXRpb24taGlzdG9yeS1oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbW11bmljYXRpb24taGlzdG9yeS9jb21tdW5pY2F0aW9uLWhpc3RvcnktaGVhZGVyL2NvbW11bmljYXRpb24taGlzdG9yeS1oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaWJveCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufSJdfQ== */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Response } from \"@angular/http\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\n\r\nimport { ContactService } from \"../../../shared/services/contact.service\";\r\nimport { OpportunityService } from \"../../../shared/services/opportunity.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\n\r\nimport { ContactSearchItem } from \"app/views/shared/models/contact-search-item.model\";\r\nimport { Opportunity } from \"app/views/shared/models/opportunity.model\";\r\nimport { AutoComplete, SelectItem } from \"primeng/primeng\";\r\n\r\n@Component({\r\n selector: \"app-communication-history-header\",\r\n templateUrl: \"./communication-history-header.component.html\",\r\n styleUrls: [\"./communication-history-header.component.scss\"],\r\n})\r\nexport class CommunicationHistoryHeaderComponent implements OnInit {\r\n contactsOptions: SelectItem[] = []; // - Stores Contact Dropdown Options\r\n selectedContactOption: any = {}; // - Stores the selected dropdown option for contacts which can be 'all' or the id of a contact\r\n @ViewChild(\"contactsAutoComplete\") private contactsAutoComplete: AutoComplete;\r\n\r\n opportunitiesOptions: SelectItem[] = []; // - Stores Opportunity Dropdown Options\r\n // complaintsOptions: SelectItem[] = []; // - Stores Issue Dropdown Options\r\n selectedOpportunityOption: any; // - Stores the selected dropdown option for opportunities which can be 'all' or the id of an opportunity\r\n selectedComplaintOption: any; // - Stores the selected dropdown option for complaint which can be 'all' or the id of an opportunity\r\n\r\n /**\r\n * 0 - Opportunity\r\n * 1 - Issue\r\n */\r\n selectedLogType: number = 0;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private contactService: ContactService,\r\n private opportunityService: OpportunityService,\r\n // private complaintService: ComplaintService,\r\n private toastService: ToastService\r\n ) {}\r\n\r\n searchAutoComplete(event) {\r\n if (event.query) this.onGetContactsSearch(event.query);\r\n }\r\n\r\n onContactChange() {\r\n this.router.navigate([\r\n \"/contacts/\" +\r\n this.selectedContactOption.value +\r\n \"/communication-history\",\r\n ]);\r\n this.onInitOpportunitiesOptions();\r\n }\r\n\r\n onOpportunityChange() {\r\n this.router.navigate([\r\n \"/contacts/\" +\r\n this.selectedContactOption.value +\r\n \"/opportunity/\" +\r\n this.selectedOpportunityOption +\r\n \"/communication-history/\",\r\n ]);\r\n }\r\n\r\n onComplaintChange() {\r\n this.router.navigate([\r\n \"/contacts/\" +\r\n this.selectedContactOption.value +\r\n \"/complaint/\" +\r\n this.selectedComplaintOption +\r\n \"/communication-history/\",\r\n ]);\r\n }\r\n\r\n onInitOpportunitiesOptions() {\r\n this.opportunitiesOptions = []; // - Reset opportunity options list\r\n this.opportunitiesOptions.push({ label: \"General\", value: \"general\" }); // - Default value that shows all comm. logs of a contact that dont have an opportunityId\r\n this.onGetContactOpportunities(this.selectedContactOption.value);\r\n }\r\n\r\n // onInitComplaintsOptions() {\r\n // this.complaintsOptions = []; // - Reset opportunity options list\r\n // this.complaintsOptions.push({ label: 'Select Complaint', value: 'general' }); // - Default value that shows all comm. logs of a contact that dont have an opportunityId\r\n // this.onGetContactComplaints(this.selectedContactOption.value);\r\n // }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.contactsOptions = [\r\n ...this.contactsOptions,\r\n { label: \"All\", value: \"all\" },\r\n ]; // - Default value that shows all comm. logs\r\n\r\n this.route.params.subscribe((params: Params) => {\r\n const contactId = params[\"contactId\"];\r\n\r\n if (contactId != \"all\") {\r\n this.selectedContactOption.value = contactId;\r\n } else {\r\n this.selectedContactOption.label = \"All\";\r\n this.selectedContactOption.value = \"all\";\r\n }\r\n });\r\n\r\n // this.route.params.subscribe(\r\n // (params: Params) => {\r\n // const complaintId = params['complaintId'];\r\n // this.onInitComplaintsOptions();\r\n // if (complaintId && complaintId != 'general'){\r\n // this.selectedLogType = 1;\r\n // }\r\n // }\r\n // );\r\n\r\n this.route.params.subscribe((params: Params) => {\r\n const opportunityId = params[\"opportunityId\"];\r\n this.onInitOpportunitiesOptions();\r\n if (opportunityId && opportunityId != \"general\") {\r\n this.selectedLogType = 0;\r\n }\r\n });\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map((cT) => {\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText =\r\n cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization\r\n ? organization.name\r\n ? (labelText += \" / Company: \" + organization.name)\r\n : \"\"\r\n : \"\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n cT.telephone ? (labelText += \" / Tel: \" + cT.telephone) : \"\";\r\n cT.mobile ? (labelText += \" / Mob: \" + cT.mobile) : \"\";\r\n cT.contactEmail ? (labelText += \" / Email: \" + cT.contactEmail) : \"\";\r\n\r\n retrievedContactsOptions.push({\r\n label: labelText,\r\n value: cT.id,\r\n });\r\n });\r\n\r\n this.contactsOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\r\n \"Error retrieving contacts\",\r\n error\r\n );\r\n }\r\n );\r\n }\r\n\r\n onGetContactOpportunities(contactId: number) {\r\n this.opportunityService\r\n .getOpportunitiesByAssignedContactId(contactId)\r\n .subscribe(\r\n (opportunities: Opportunity[]) => {\r\n // Store retrieved opportunities in the opportunitiesOptions select list\r\n opportunities.map((o) => {\r\n let labelText = o.name;\r\n labelText += \" / Type: \" + o.opportunityType.name;\r\n\r\n this.opportunitiesOptions.push({\r\n label: labelText,\r\n value: o.id,\r\n });\r\n });\r\n\r\n this.route.params.subscribe((params: Params) => {\r\n const opportunityId = params[\"opportunityId\"];\r\n\r\n if (opportunityId != \"general\") {\r\n this.selectedOpportunityOption = opportunityId;\r\n } else this.selectedOpportunityOption = \"general\";\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\r\n \"Error retrieving opportunities\",\r\n error\r\n );\r\n }\r\n );\r\n }\r\n\r\n // onGetContactComplaints(contactId: number) {\r\n // this.complaintService.getComplaintsByAssignedContactId(contactId).subscribe(\r\n // (complaints: Complaint[]) => {\r\n // // Store retrieved complaints in the complaintsOptions select list\r\n // complaints.map(c => {\r\n // let labelText = c.code;\r\n // //let labelDate = this.transformDate(c.reportedDate);\r\n // labelText += \" / \" + c.complaintStatus.name+ \" / \" + c.complaintType.name ;//+ \" / \" + labelDate;\r\n\r\n // this.complaintsOptions.push(\r\n // {\r\n // label: labelText,\r\n // value: c.id\r\n // }\r\n // )\r\n // });\r\n\r\n // this.route.params.subscribe(\r\n // (params: Params) => {\r\n // const complaintId = params['complaintId'];\r\n\r\n // if (complaintId != 'general')\r\n // {\r\n // this.selectedComplaintOption = complaintId;\r\n // }\r\n // else\r\n // this.selectedComplaintOption = 'general';\r\n // }\r\n // );\r\n // },\r\n // (error: Response) => {\r\n // this.toastService.createErrorMessage(\"Error retrieving complaints\", error);\r\n // }\r\n // );\r\n // }\r\n\r\n // transformDate(date){\r\n // return (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();\r\n // }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
Communication Logs
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Communication Logs\\r\\n There are currently {{communicationLogs.length}} communication logs\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.occurredOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.createdByUserAccount ? communicationLog.createdByUserAccount?.fullName : 'Website' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.communicationLogType.name }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.assignedUserAccount ? communicationLog.assignedUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.contact?.fullName }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.contact.organization?.name | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.contact.mobilePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ communicationLog.contact.email | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".list-container {\\n padding: 2px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29udGFjdHMvY29tbXVuaWNhdGlvbi1oaXN0b3J5L2NvbW11bmljYXRpb24taGlzdG9yeS1saXN0L0M6XFxKZW5raW5zXFwuamVua2luc1xcd29ya3NwYWNlXFxDUk0tQUNRLVBPUlRBTC1QUk9EXFxJU0IuQ1JNLldlYnNpdGUvc3JjXFxhcHBcXHZpZXdzXFxjb250YWN0c1xcY29tbXVuaWNhdGlvbi1oaXN0b3J5XFxjb21tdW5pY2F0aW9uLWhpc3RvcnktbGlzdFxcY29tbXVuaWNhdGlvbi1oaXN0b3J5LWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9jb250YWN0cy9jb21tdW5pY2F0aW9uLWhpc3RvcnkvY29tbXVuaWNhdGlvbi1oaXN0b3J5LWxpc3QvY29tbXVuaWNhdGlvbi1oaXN0b3J5LWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubGlzdC1jb250YWluZXIge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { CommunicationHistoryService } from \"../../../shared/services/communication-history.service\";\r\nimport { ContactService } from \"../../../shared/services/contact.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { Contact } from \"../../../shared/models/contact.model\";\r\nimport { CommunicationLog } from \"../../../shared/models/communication-log.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\n@Component({\r\n selector: 'app-communication-history-list',\r\n templateUrl: './communication-history-list.component.html',\r\n styleUrls: ['./communication-history-list.component.scss']\r\n})\r\nexport class CommunicationHistoryListComponent implements OnInit {\r\n contactId: number = 0;\r\n opportunityId: number = 0;\r\n complaintId: number = 0;\r\n communicationLogs: CommunicationLog[] = [];\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private communicationHistoryService: CommunicationHistoryService,\r\n private contactService: ContactService,\r\n public authService: AuthService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const contactId = params['contactId'];\r\n const opportunityId = params['opportunityId'];\r\n const complaintId = params['complaintId'];\r\n this.setupCommunicationLogs(contactId, opportunityId,complaintId);\r\n }\r\n );\r\n\r\n // Listen to changes made to communicationLogs\r\n this.communicationHistoryService.logsChanged.subscribe(\r\n () => {\r\n this.setupCommunicationLogs(this.contactId, this.opportunityId,this.complaintId);\r\n }\r\n );\r\n }\r\n\r\n setupCommunicationLogs(contactId: any, opportunityId: any, complaintId:any) {\r\n if (contactId !== 'all' && contactId !== 0) {\r\n this.contactId = +contactId;\r\n\r\n if (opportunityId && opportunityId !== 'general') {\r\n this.opportunityId = + opportunityId;\r\n this.complaintId = 0;\r\n this.onGetCommunicationLogsByOpportunityId(this.opportunityId);\r\n }\r\n else if(complaintId && complaintId !== 'select'){\r\n this.complaintId = + complaintId;\r\n this.opportunityId = 0;\r\n this.onGetCommunicationLogsByComplaintId(this.complaintId);\r\n }\r\n else {\r\n this.complaintId = 0;\r\n this.opportunityId = 0;\r\n this.onGetCommunicationLogsByContactId(this.contactId);\r\n }\r\n }\r\n else {\r\n this.contactId = 0;\r\n this.opportunityId = 0;\r\n this.complaintId = 0;\r\n this.onGetCommunicationLogs();\r\n }\r\n }\r\n\r\n onGetCommunicationLogsByContactId(contactId: number) {\r\n this.communicationHistoryService.getCommunicationLogsByContactId(contactId, false).subscribe(\r\n (communicationLogs: CommunicationLog[]) => {\r\n this.communicationLogs = communicationLogs;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving communication logs\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetCommunicationLogsByOpportunityId(opportunityId: number) {\r\n this.communicationHistoryService.getCommunicationLogsByOpportunityId(opportunityId).subscribe(\r\n (communicationLogs: CommunicationLog[]) => {\r\n this.communicationLogs = communicationLogs;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving communication logs\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetCommunicationLogsByComplaintId(complaintId: number) {\r\n this.communicationHistoryService.getCommunicationLogsByComplaintId(complaintId).subscribe(\r\n (communicationLogs: CommunicationLog[]) => {\r\n this.communicationLogs = communicationLogs;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving communication logs\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetCommunicationLogs() {\r\n this.communicationHistoryService.getCommunicationLogs().subscribe(\r\n (communicationLogs: CommunicationLog[]) => {\r\n this.communicationLogs = communicationLogs;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving communication logs\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteCommunicationLog(communicationLog: CommunicationLog) {\r\n let name = communicationLog.opportunity ? communicationLog.opportunity.name : communicationLog.contact.fullName;\r\n\r\n this.confirmationService.confirm({\r\n key: 'deleteLog',\r\n message: 'Are you sure you want to delete this communication log assigned to ' + name + '?',\r\n accept: () => {\r\n communicationLog.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.communicationHistoryService.deleteCommunicationLog(communicationLog).subscribe(\r\n (response: Response) => {\r\n this.communicationHistoryService.logsChanged.next();\r\n this.toastService.createSuccessMessage(\r\n \"Success\",\r\n \"The communication log that was assigned to \" + name + \" has been deleted.\"\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting communication log\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\r\n \"Aborted\",\r\n \"The delete for the communication log assigned to \" + name + \" has been aborted.\"\r\n );\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Manage
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Incoming \\r\\n Outgoing\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".manage-container {\\n padding: 2px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29udGFjdHMvY29tbXVuaWNhdGlvbi1oaXN0b3J5L2NvbW11bmljYXRpb24taGlzdG9yeS1tYW5hZ2UvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGNvbnRhY3RzXFxjb21tdW5pY2F0aW9uLWhpc3RvcnlcXGNvbW11bmljYXRpb24taGlzdG9yeS1tYW5hZ2VcXGNvbW11bmljYXRpb24taGlzdG9yeS1tYW5hZ2UuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9jb250YWN0cy9jb21tdW5pY2F0aW9uLWhpc3RvcnkvY29tbXVuaWNhdGlvbi1oaXN0b3J5LW1hbmFnZS9jb21tdW5pY2F0aW9uLWhpc3RvcnktbWFuYWdlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hbmFnZS1jb250YWluZXIge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { CommunicationHistoryService } from \"../../../shared/services/communication-history.service\";\r\nimport { CommunicationHistoryTypeService } from \"../../../shared/services/communication-history-type.service\";\r\nimport { UserService } from \"../../../shared/services/user.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { ContactService } from \"../../../shared/services/contact.service\";\r\nimport { TaskService } from \"../../../shared/services/task.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\n\r\nimport { CommunicationLog } from \"../../../shared/models/communication-log.model\";\r\nimport { CommunicationLogType } from \"../../../shared/models/communication-log-type.model\";\r\nimport { CrmUser } from \"../../../shared/models/user.model\";\r\nimport { Contact } from \"../../../shared/models/contact.model\";\r\nimport { Task } from \"../../../shared/models/task.model\";\r\nimport { UserTask } from \"../../../shared/models/user-task.model\";\r\n\r\nimport { SelectItem, ConfirmationService } from \"primeng/primeng\";\r\nimport { ContactTask } from \"../../../shared/models/contact-task.model\";\r\nimport { CommunicationDirection, CommunicationLogTypeNames, PrepopulatedTaskTypes } from 'app.constant';\r\n\r\n@Component({\r\n selector: 'app-communication-history-manage',\r\n templateUrl: './communication-history-manage.component.html',\r\n styleUrls: ['./communication-history-manage.component.scss']\r\n})\r\nexport class CommunicationHistoryManageComponent implements OnInit {\r\n communicationLogForm: FormGroup; // - Stores the communication log form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a communication log if true and add a new communication log if false\r\n\r\n communicationLog: CommunicationLog = new CommunicationLog(); // - Stores CommunicationLog to populate form with a new / existing contact's values\r\n assignedContact: Contact = new Contact(); // - The contact assigned to this task\r\n opportunityId: number = 0; // - The id of a contact's opportunity (creates log for that opportunity, separate from contacts-general)\r\n complaintId: number = 0; // - The id of a contact's complaint (creates log for that complaint, separate from contacts-general)\r\n\r\n usersOptions: SelectItem[] = []; // - Stores User Dropdown Options\r\n communicationLogTypesOptions: SelectItem[] = []; // - Stores CommunicationLogType Dropdown Options\r\n\r\n isAssignAgentDisabled: boolean = true; // - Only enabled when edit and if admin and comm-type is 'Website'\r\n logTypesNotFromWebsite: string[] = CommunicationLogTypeNames.LogTypesNotFromWebsite;\r\n\r\n // - Words in description that trigger a dialog box to create a follow up task\r\n followUpTriggerKeyWords: string[] = [\r\n \"follow-up\", \"follow up\", \"followup\",\r\n \"folow-up\", \"folow up\", \"folowup\",\r\n \"call\", \"send\", \"task\", \"chase\",\r\n \"meet\", \"meeting\",\r\n \"set up\", \"set-up\", \"setup\"\r\n ];\r\n\r\n //** DatePicker */\r\n maxDate: Date = new Date(); // - Can't select a date after the current day\r\n yearRange: string = this.maxDate.getFullYear() - 10 + ':' + this.maxDate.getFullYear(); // - 10 Year Range\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private communicationHistoryService: CommunicationHistoryService,\r\n private communicationHistoryTypeService: CommunicationHistoryTypeService,\r\n private contactService: ContactService,\r\n private userService: UserService,\r\n private taskService: TaskService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private confirmationService: ConfirmationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.route.parent.params.subscribe(\r\n (parentParams: Params) => {\r\n let assignedContactId = parentParams['contactId'];\r\n\r\n if (assignedContactId != 'all') {\r\n this.contactService.getContact(assignedContactId).subscribe(\r\n (contact: Contact) => {\r\n this.assignedContact = contact;\r\n\r\n let opportunityId = parentParams['opportunityId'];\r\n if (opportunityId)\r\n this.opportunityId = +opportunityId;\r\n else\r\n this.opportunityId = 0;\r\n\r\n let complaintId = parentParams['complaintId'];\r\n if (complaintId)\r\n this.complaintId = +complaintId;\r\n else\r\n this.complaintId = 0;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact\", error);\r\n this.router.navigate(['/error/404']);\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const communicationLogId = params['communicationLogId'];\r\n this.isEdit = communicationLogId != null; // - Returns true if an id for a communication log was present within the url\r\n\r\n if (this.isEdit)\r\n this.onGetCommunicationLog(communicationLogId);\r\n else\r\n this.initForm();\r\n }\r\n );\r\n\r\n }\r\n\r\n initForm() {\r\n this.communicationLogForm = this.formBuilder.group({\r\n occurredOn: this.formBuilder.control(\r\n this.communicationLog.occurredOn ? new Date(this.communicationLog.occurredOn) : new Date(),\r\n [Validators.required]\r\n ),\r\n\r\n assignedUserAccountId: this.formBuilder.control(\r\n this.communicationLog.assignedUserAccount ?\r\n this.communicationLog.assignedUserAccount.id !== 0 ?\r\n this.communicationLog.assignedUserAccount.id\r\n : this.authService.applicationProfileUser().id\r\n : null\r\n ),\r\n\r\n communicationLogTypeId: this.formBuilder.control(this.communicationLog.communicationLogType.id, [Validators.required]),\r\n direction: this.formBuilder.control(\r\n this.communicationLog.direction ?\r\n this.communicationLog.direction :\r\n CommunicationDirection.Outgoing, [Validators.required]\r\n ),\r\n description: this.formBuilder.control(this.communicationLog.description, [Validators.required])\r\n });\r\n\r\n this.onGetCommunicationLogTypes();\r\n this.onGetUsers();\r\n\r\n if (this.isEdit) {\r\n if (this.authService.isAdmin()) {\r\n // Assign agent field is editable by admins if the comm log type is from Websites\r\n if (this.logTypesNotFromWebsite.includes(this.communicationLog.communicationLogType.name))\r\n this.isAssignAgentDisabled = true;\r\n else\r\n this.isAssignAgentDisabled = false;\r\n }\r\n else\r\n this.communicationLogForm.disable(); // Non-admins may not edit\r\n\r\n //// Trying to let non-admins edit their own comm. logs (use createdById instead maybe?)\r\n //// Error: Form does not change from disable to enable (or vice verse)...\r\n // if (this.authService.getRole() === 'user') {\r\n // if (this.authService.getUser().id !== this.communicationLog.assignedUser.id) {\r\n // this.communicationLogForm.disable();\r\n // } else {\r\n // this.communicationLogForm.enable();\r\n // }\r\n // }\r\n\r\n }\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onGetCommunicationLog(id: number) {\r\n this.communicationHistoryService.getCommunicationLog(id).subscribe(\r\n (communicationLog: CommunicationLog) => {\r\n this.communicationLog = communicationLog;\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving communication log\", error);\r\n this.router.navigate(['/error/404']);\r\n }\r\n );\r\n }\r\n\r\n onGetCommunicationLogTypes() {\r\n this.communicationHistoryTypeService.getCommunicationLogTypes().subscribe(\r\n (communicationLogTypes: CommunicationLogType[]) => {\r\n this.communicationLogTypesOptions = [];\r\n\r\n // Store retrieved communicationLogTypes in the communicationLogTypesOptions select list\r\n communicationLogTypes.map(lT => this.communicationLogTypesOptions.push({ label: lT.name, value: lT.id }));\r\n\r\n if (!this.isEdit) {\r\n // Only have 'Comm Logs created from Website' as an option if the current log is of that kind\r\n this.communicationLogTypesOptions = this.communicationLogTypesOptions\r\n .filter(cT => this.logTypesNotFromWebsite.includes(cT.label));\r\n\r\n this.communicationLogForm.patchValue({\r\n communicationLogTypeId: this.communicationLogTypesOptions[0].value // - Set first option as default in Communication Log Type dropdown\r\n });\r\n } else {\r\n // Only have 'Comm Logs created from Website' as an option if the current log is of that kind\r\n if (this.logTypesNotFromWebsite.includes(this.communicationLog.communicationLogType.name))\r\n this.communicationLogTypesOptions = this.communicationLogTypesOptions\r\n .filter(cT => this.logTypesNotFromWebsite.includes(cT.label));\r\n\r\n this.communicationLogForm.patchValue({\r\n communicationLogTypeId: this.communicationLog.communicationLogType.id\r\n });\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving communication log types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n this.usersOptions = [];\r\n // Store retrieved users in the usersOptions select list\r\n users.map(u => this.usersOptions.push({ label: u.fullName, value: u.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.authService.applicationProfileUser().id;\r\n else\r\n defaultValue = this.communicationLog.assignedUserAccountId;\r\n\r\n this.communicationLogForm.patchValue({\r\n assignedUserAccountId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n\r\n onAddCommunicationLog(communicationLog: CommunicationLog) {\r\n this.communicationHistoryService.addCommunicationLog(communicationLog).subscribe(\r\n (response: Response) => {\r\n this.communicationHistoryService.logsChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"A new communication log has been created for \" + this.assignedContact.fullName + \".\");\r\n\r\n let showDialog = false;\r\n let descriptionLowerCase = communicationLog.description.toLowerCase();\r\n\r\n for (let keyword of this.followUpTriggerKeyWords) {\r\n if (descriptionLowerCase.includes(keyword)) {\r\n showDialog = true;\r\n break;\r\n }\r\n }\r\n\r\n if (showDialog)\r\n this.onAskForNewTask();\r\n else\r\n if (this.opportunityId > 0)\r\n this.router.navigate(['contacts', this.assignedContact.id, 'opportunity', this.opportunityId, 'communication-history']);\r\n else if(this.complaintId > 0)\r\n this.router.navigate(['contacts', this.assignedContact.id, 'complaint', this.complaintId, 'communication-history']);\r\n else\r\n this.router.navigate(['contacts', this.assignedContact.id, 'communication-history']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding communication log\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateCommunicationLog(communicationLog: CommunicationLog, displayNotification: boolean = true) {\r\n this.communicationHistoryService.updateCommunicationLog(communicationLog).subscribe(\r\n (response: Response) => {\r\n this.communicationHistoryService.logsChanged.next(); // Let list component know of changes\r\n\r\n if (displayNotification)\r\n this.toastService.createSuccessMessage(\"Success\", \"The communication log for \" + this.assignedContact.fullName + \" has been updated.\");\r\n\r\n if (this.opportunityId > 0)\r\n this.router.navigate(['contacts', this.assignedContact.id, 'opportunity', this.opportunityId, 'communication-history']);\r\n else if(this.complaintId > 0)\r\n this.router.navigate(['contacts', this.assignedContact.id, 'complaint', this.complaintId, 'communication-history']);\r\n else\r\n this.router.navigate(['contacts', this.assignedContact.id, 'communication-history']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating communication log\", error);\r\n }\r\n );\r\n }\r\n\r\n onAskForNewTask() {\r\n let contact = this.assignedContact;\r\n\r\n this.confirmationService.confirm({\r\n key: 'newTask',\r\n header: 'Follow-up Task',\r\n message: 'The communication log has been created. Would you now like to create a new task with ' + contact.fullName + '?',\r\n accept: () => {\r\n this.router.navigate(['/tasks/new'], { queryParams: { contact: contact.id } });\r\n },\r\n reject: () => {\r\n this.router.navigate(['contacts', contact.id, 'communication-history']);\r\n }\r\n });\r\n }\r\n\r\n onAssignWebsiteEnquiry(communicationLog: CommunicationLog) {\r\n // Create new task object to post\r\n let newTask: any = {\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n taskDescription: communicationLog.description,\r\n reminderDate: communicationLog.occurredOn,\r\n contactTasks: [{\r\n contactId: communicationLog.contactId,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id\r\n }],\r\n userTasks: [{\r\n userId: communicationLog.assignedUserAccountId,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id\r\n }],\r\n taskTypeName: PrepopulatedTaskTypes.CommunicationLog\r\n };\r\n\r\n let userName = this.usersOptions.find(u => u.value === communicationLog.assignedUserAccountId).label;\r\n\r\n // Create new task if no task was already assigned to someone\r\n if (!this.communicationLog.task) {\r\n this.taskService.addTask(newTask, true, false).subscribe(\r\n (response: Response) => {\r\n communicationLog.taskId = (response).id; // - Set task id for communication log\r\n this.onUpdateCommunicationLog(communicationLog, false);\r\n this.toastService.createSuccessMessage(\"Success\", \"A new task has been assigned to \" + userName + \".\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding task\", error);\r\n }\r\n );\r\n }\r\n // Update task with newly assigned user to replace previously assigned user\r\n else {\r\n newTask.id = this.communicationLog.task.id; // - Set id of edited task to its original id\r\n newTask.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.taskService.updateTask(newTask, true, false).subscribe(\r\n (response: Response) => {\r\n communicationLog.taskId = (response).id; // - Set task id for communication log\r\n this.onUpdateCommunicationLog(communicationLog, false);\r\n this.toastService.createSuccessMessage(\"Success\", \"This task has now been assigned to \" + userName + \".\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating task\", error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSubmit() {\r\n\r\n\r\n let newCommunicationLog = this.formBuilder.sanitizeFormValues(this.communicationLogForm).value;\r\n newCommunicationLog.contactId = this.assignedContact.id;\r\n\r\n if (this.isEdit) {\r\n newCommunicationLog.id = this.communicationLog.id; // - Set id of edited communication log to its original id\r\n newCommunicationLog.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n // If comm-log-type is website then also create a task and assign it to a user\r\n if (!this.logTypesNotFromWebsite.includes(this.communicationLog.communicationLogType.name)) {\r\n this.onAssignWebsiteEnquiry(newCommunicationLog);\r\n }\r\n // Otherwise, just update the communication log\r\n else {\r\n this.onUpdateCommunicationLog(newCommunicationLog);\r\n }\r\n }\r\n else {\r\n newCommunicationLog.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n if (this.opportunityId > 0)\r\n {\r\n newCommunicationLog.opportunityId = this.opportunityId; // - Only add opportunity id for Create, cant change which opportunity a log belongs too\r\n newCommunicationLog.complaintId = null; // null value just in case\r\n }\r\n if (this.complaintId > 0)\r\n {\r\n newCommunicationLog.complaintId = this.complaintId; // - Only add opportunity id for Create, cant change which opportunity a log belongs too\r\n newCommunicationLog.opportunityId = null; // null value just in case\r\n }\r\n console.log(newCommunicationLog);\r\n this.onAddCommunicationLog(newCommunicationLog);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { CommunicationHistoryComponent } from \"./communication-history.component\";\r\nimport { CommunicationHistoryManageComponent } from './communication-history-manage/communication-history-manage.component';\r\n\r\nconst communicationHistoryRoutes: Routes = [\r\n {\r\n path: 'contacts',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: ':contactId/communication-history', component: CommunicationHistoryComponent,\r\n children: [\r\n { path: 'new', component: CommunicationHistoryManageComponent },\r\n { path: ':communicationLogId/details', component: CommunicationHistoryManageComponent }\r\n ]\r\n },\r\n {\r\n path: ':contactId/opportunity/:opportunityId/communication-history', component: CommunicationHistoryComponent,\r\n children: [\r\n { path: 'new', component: CommunicationHistoryManageComponent },\r\n { path: ':communicationLogId/details', component: CommunicationHistoryManageComponent }\r\n ]\r\n },\r\n {\r\n path: ':contactId/complaint/:complaintId/communication-history', component: CommunicationHistoryComponent,\r\n children: [\r\n { path: 'new', component: CommunicationHistoryManageComponent },\r\n { path: ':communicationLogId/details', component: CommunicationHistoryManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(communicationHistoryRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class CommunicationHistoryRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".header-container {\\n padding: 2px; }\\n\\n.wrapper-content {\\n padding-top: 0px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29udGFjdHMvY29tbXVuaWNhdGlvbi1oaXN0b3J5L0M6XFxKZW5raW5zXFwuamVua2luc1xcd29ya3NwYWNlXFxDUk0tQUNRLVBPUlRBTC1QUk9EXFxJU0IuQ1JNLldlYnNpdGUvc3JjXFxhcHBcXHZpZXdzXFxjb250YWN0c1xcY29tbXVuaWNhdGlvbi1oaXN0b3J5XFxjb21tdW5pY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZLEVBQUE7O0FBR2Q7RUFDRSxnQkFBZ0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbW11bmljYXRpb24taGlzdG9yeS9jb21tdW5pY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGVhZGVyLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4ud3JhcHBlci1jb250ZW50IHtcclxuICBwYWRkaW5nLXRvcDogMHB4O1xyXG59Il19 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-communication-history',\r\n templateUrl: './communication-history.component.html',\r\n styleUrls: ['./communication-history.component.scss']\r\n})\r\nexport class CommunicationHistoryComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { CommunicationHistoryRoutingModule } from \"./communication-history-routing.module\";\r\n\r\nimport { CalendarModule, DropdownModule, EditorModule } from 'primeng/primeng';\r\n\r\nimport { CommunicationHistoryComponent } from './communication-history.component';\r\nimport { CommunicationHistoryHeaderComponent } from './communication-history-header/communication-history-header.component';\r\nimport { CommunicationHistoryListComponent } from './communication-history-list/communication-history-list.component';\r\nimport { CommunicationHistoryManageComponent } from './communication-history-manage/communication-history-manage.component';\r\nimport { CommunicationHistoryDetailComponent } from './communication-history-detail/communication-history-detail.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CommunicationHistoryComponent,\r\n CommunicationHistoryHeaderComponent,\r\n CommunicationHistoryListComponent,\r\n CommunicationHistoryManageComponent,\r\n CommunicationHistoryDetailComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n CommunicationHistoryRoutingModule,\r\n DropdownModule,\r\n ReactiveFormsModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n EditorModule \r\n ]\r\n})\r\nexport class CommunicationHistoryModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
{{ headingText }}
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n There are currently {{contactFiles.length}} contact files.\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactFile.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactFile.displayFileName }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactFile.fileType }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactFile.description | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtZmlsZXMvY29udGFjdC1maWxlLWxpc3QvY29udGFjdC1maWxlLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { ContactService } from \"../../../shared/services/contact.service\";\r\nimport { ContactFileService } from \"../../../shared/services/contact-file.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\n\r\nimport { Contact } from \"../../../shared/models/contact.model\";\r\nimport { ContactFile } from \"../../../shared/models/contact-file.model\";\r\n\r\nimport { DropzoneConfigInterface } from \"ngx-dropzone-wrapper/dist\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\n@Component({\r\n selector: 'app-contact-file-list',\r\n templateUrl: './contact-file-list.component.html',\r\n styleUrls: ['./contact-file-list.component.scss']\r\n})\r\nexport class ContactFileListComponent implements OnInit {\r\n contactFiles: ContactFile[] = [];\r\n contact: Contact = new Contact();\r\n\r\n headingText: string = \"File Uploads for \";\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n //** Dropzone */\r\n DROPZONE_CONFIG: DropzoneConfigInterface = {\r\n url: this.crmApiEndPoint + 'api/contactfiles/',\r\n headers: {\r\n 'Authorization': 'Bearer ' + this.authService.getUser().access_token\r\n },\r\n paramName: \"file\",\r\n parallelUploads: 1,\r\n errorReset: 3,\r\n acceptedFiles: \"image/*, application/pdf, application/vnd.ms-excel, application/msword\",\r\n maxFilesize: 50 // - 50MB\r\n // autoReset: 1,\r\n };\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private contactService: ContactService,\r\n private contactFileService: ContactFileService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private confirmationService: ConfirmationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.route.parent.params.subscribe(\r\n (parentParams: Params) => {\r\n const contactId = +parentParams['id'];\r\n\r\n if (!contactId) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n\r\n this.contactService.getContact(contactId).subscribe(\r\n (contact: Contact) => {\r\n this.contact = contact;\r\n\r\n let headingTextSuffix =\r\n this.contact.fullName.trim().length > 0 ?\r\n this.contact.fullName :\r\n this.contact.email ? this.contact.email :\r\n this.contact.mobilePhoneNumber;\r\n\r\n this.headingText += headingTextSuffix;\r\n\r\n this.onGetContactFiles(); // - Get contact files after contact is retrieved\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact\", error);\r\n }\r\n );\r\n\r\n // - Listen to changes made to contact files to update table\r\n this.contactFileService.contactFilesChanged.subscribe(\r\n () => {\r\n this.onGetContactFiles();\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n onGetContactFiles() {\r\n this.contactFileService.getContactFilesByContactId(this.contact.id).subscribe(\r\n (contactFiles: ContactFile[]) => {\r\n this.contactFiles = contactFiles;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact files\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteContactFile(contactFile: ContactFile) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the contact file ' + contactFile.displayFileName + '?',\r\n accept: () => {\r\n contactFile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactFileService.deleteContactFile(contactFile).subscribe(\r\n (response: Response) => {\r\n this.contactFileService.contactFilesChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact file \" + contactFile.displayFileName + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting contact file\", error);\r\n }\r\n );\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for contact file \" + contactFile.displayFileName + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n onUploadError($event) {\r\n this.toastService.createErrorMessage(\"Error uploading files\", $event[2] ? $event[2].response : $event[1]);\r\n }\r\n\r\n onUploadSuccess($event) {\r\n this.toastService.createSuccessMessage(\"Success\", \"The file has been uploaded.\");\r\n }\r\n\r\n onQueueComplete($event) {\r\n this.contactFileService.contactFilesChanged.next();\r\n }\r\n\r\n onSending($event) {\r\n let file = $event[0];\r\n let xmlHttpRequest = $event[1];\r\n let formData = $event[2];\r\n\r\n formData.append(\"contactId\", this.contact.id);\r\n formData.append(\"createdByUserAccountId\", this.authService.applicationProfileUser().id);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update File Details

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The File Name field is required.\\r\\n \\r\\n \\r\\n There is already a contact file with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtZmlsZXMvY29udGFjdC1maWxlLW1hbmFnZS9jb250YWN0LWZpbGUtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { ContactFileService } from \"../../../shared/services/contact-file.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { ContactFile } from \"../../../shared/models/contact-file.model\";\r\n\r\n@Component({\r\n selector: 'app-contact-file-manage',\r\n templateUrl: './contact-file-manage.component.html',\r\n styleUrls: ['./contact-file-manage.component.scss']\r\n})\r\nexport class ContactFileManageComponent implements OnInit {\r\n contactFileForm: FormGroup; // - Stores the contactFile form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n\r\n contactFiles: ContactFile[] = []; // - Stores all contactFiles retrieved from db\r\n contactFile: ContactFile = new ContactFile(); // - Stores ContactFile to populate form with an existing ContactFile's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private contactFileService: ContactFileService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.contactFileService.getContactFiles().subscribe(\r\n (contactFiles: ContactFile[]) => {\r\n this.contactFiles = contactFiles; // - Store all contact files retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const contactFileId = params['id'];\r\n\r\n if (!contactFileId) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n\r\n this.contactFile = this.contactFiles.find(cF => cF.id === +contactFileId); // - Store the selected contactFile\r\n\r\n // Redirect to 404 page if the selected contactFile could not be found\r\n if (!this.contactFile) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact files\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.contactFileForm = this.formBuilder.group({\r\n displayFileName: this.formBuilder.control(this.contactFile.displayFileName, [Validators.required]),\r\n description: this.formBuilder.control(this.contactFile.description)\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onUpdateContactFile(newContactFile: ContactFile) {\r\n this.contactFileService.updateContactFile(newContactFile).subscribe(\r\n (response: Response) => {\r\n this.contactFileService.contactFilesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact file \" + newContactFile.displayFileName + \" has been updated.\");\r\n this.router.navigate(['/contacts', this.contactFile.contactId, 'files']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating contact file\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newContactFile = this.formBuilder.sanitizeFormValues(this.contactFileForm).value;\r\n\r\n newContactFile.id = this.contactFile.id; // - Set id of edited contactFile to its original id\r\n newContactFile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateContactFile(newContactFile);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\n\r\nimport { ContactFilesComponent } from './contact-files.component';\r\nimport { ContactFileListComponent } from './contact-file-list/contact-file-list.component';\r\nimport { ContactFileManageComponent } from './contact-file-manage/contact-file-manage.component';\r\n\r\nconst contactFilesRoutes: Routes = [\r\n {\r\n path: 'contacts',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: ':id/files', component: ContactFilesComponent,\r\n children: [\r\n {\r\n path: '', component: ContactFileListComponent,\r\n children: [\r\n { path: ':id/edit', component: ContactFileManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(contactFilesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContactFilesRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtZmlsZXMvY29udGFjdC1maWxlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-files',\r\n templateUrl: './contact-files.component.html',\r\n styleUrls: ['./contact-files.component.scss']\r\n})\r\nexport class ContactFilesComponent {\r\n \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ContactFilesComponent } from './contact-files.component';\r\nimport { ContactFileListComponent } from './contact-file-list/contact-file-list.component';\r\nimport { ContactFileManageComponent } from './contact-file-manage/contact-file-manage.component';\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\nimport { ContactFilesRoutingModule } from \"./contact-files-routing.module\";\r\n\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { ModalModule } from \"ngx-bootstrap\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactFilesComponent,\r\n ContactFileListComponent,\r\n ContactFileManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ModalModule.forRoot(),\r\n ContactFilesRoutingModule,\r\n ReactiveFormsModule,\r\n DropzoneModule\r\n ]\r\n})\r\nexport class ContactFilesModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Contact Groups
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Contact Groups\\r\\n There are currently {{contactGroups.length}} contact groups\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactGroup.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactGroup.createdByUserAccountId > 0 ? contactGroup.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactGroup.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactGroup.updatedByUserAccount ? contactGroup.updatedByUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtZ3JvdXBzL2NvbnRhY3QtZ3JvdXAtbGlzdC9jb250YWN0LWdyb3VwLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { GroupService } from \"../../../shared/services/group.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { Group } from \"../../../shared/models/group.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-contact-group-list',\r\n templateUrl: './contact-group-list.component.html',\r\n styleUrls: ['./contact-group-list.component.scss']\r\n})\r\nexport class ContactGroupListComponent implements OnInit {\r\n contactGroups: Group[] = [];\r\n isAnim: boolean = true;\r\n\r\n //** Tabs */\r\n contactListTabIndex: number = 0;\r\n contactGroupsTabIndex: number = 1;\r\n savedContactSearchTabIndex: number = 2;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private contactGroupService: GroupService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetGroups();\r\n\r\n // Listen to changes made to contactGroups\r\n this.contactGroupService.groupsChanged.subscribe(\r\n () => {\r\n this.onGetGroups();\r\n }\r\n );\r\n }\r\n\r\n onGetGroups() {\r\n this.contactGroupService.getGroups().subscribe(\r\n (contactGroups: Group[]) => {\r\n this.contactGroups = contactGroups;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact groups\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteContactGroup(contactGroup: Group) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the contact group ' + contactGroup.name + '?',\r\n accept: () => {\r\n contactGroup.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactGroupService.deleteGroup(contactGroup).subscribe(\r\n (response: Response) => {\r\n this.onGetGroups();\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact group \" + contactGroup.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting contact group\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for contact group \" + contactGroup.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n onChangeTabView($event) {\r\n let tabIndex = $event.index;\r\n switch ($event.index) {\r\n case this.contactListTabIndex:\r\n this.router.navigate([\"/contacts/list\"]);\r\n break;\r\n case this.contactGroupsTabIndex:\r\n this.router.navigate([\"/contacts/groups\"]);\r\n break;\r\n case this.savedContactSearchTabIndex:\r\n this.router.navigate([\"/contacts/saved-searches\"]);\r\n break;\r\n }\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Group

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Group Name field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtZ3JvdXBzL2NvbnRhY3QtZ3JvdXAtbWFuYWdlL2NvbnRhY3QtZ3JvdXAtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { GroupService } from \"../../../shared/services/group.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { Group } from \"../../../shared/models/group.model\";\r\n\r\n@Component({\r\n selector: 'app-contact-group-manage',\r\n templateUrl: './contact-group-manage.component.html',\r\n styleUrls: ['./contact-group-manage.component.scss']\r\n})\r\nexport class ContactGroupManageComponent implements OnInit {\r\n groupForm: FormGroup; // - Stores the group form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n\r\n group: Group = new Group(); // - Stores Group to populate form with a new / existing Group's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private groupService: GroupService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const groupId = params['id'];\r\n\r\n this.groupService.getGroup(+groupId).subscribe(\r\n (group: Group) => {\r\n this.group = group;\r\n\r\n // Redirect to 404 page if the selected group could not be found\r\n if (!this.group) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving group\", error);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.groupForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.group.name, [Validators.required])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onUpdateGroup(newGroup: Group) {\r\n this.groupService.updateGroup(newGroup).subscribe(\r\n (response: Response) => {\r\n this.groupService.groupsChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The group \" + newGroup.name + \" has been updated.\");\r\n this.router.navigate(['/contacts/groups']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating group\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newGroup = this.formBuilder.sanitizeFormValues(this.groupForm).value;\r\n\r\n newGroup.id = this.group.id; // - Set id of edited group to its original id\r\n newGroup.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateGroup(newGroup);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { ContactGroupsComponent } from \"../contact-groups/contact-groups.component\";\r\nimport { ContactGroupListComponent } from \"../contact-groups/contact-group-list/contact-group-list.component\";\r\nimport { ContactGroupManageComponent } from \"../contact-groups/contact-group-manage/contact-group-manage.component\";\r\n\r\nconst groupsRoutes: Routes = [\r\n {\r\n path: 'contacts',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'groups', component: ContactGroupsComponent,\r\n children: [\r\n {\r\n path: '', component: ContactGroupListComponent,\r\n children: [\r\n { path: ':id/edit', component: ContactGroupManageComponent },\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(groupsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContactGroupsRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtZ3JvdXBzL2NvbnRhY3QtZ3JvdXBzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-groups',\r\n templateUrl: './contact-groups.component.html',\r\n styleUrls: ['./contact-groups.component.scss']\r\n})\r\nexport class ContactGroupsComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ContactGroupsRoutingModule } from \"./contact-groups-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { ContactGroupsComponent } from './contact-groups.component';\r\nimport { ContactGroupListComponent } from './contact-group-list/contact-group-list.component';\r\nimport { ContactGroupManageComponent } from './contact-group-manage/contact-group-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactGroupsComponent,\r\n ContactGroupListComponent,\r\n ContactGroupManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ContactGroupsRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class ContactGroupsModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Contacts Import
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Read the following instructions before uploading the CSV file

\\r\\n
    \\r\\n
  • The CSV files must always contain the header title as first row.
  • \\r\\n
  • Contact Types and Contact Sources which are not in the system will be created
  • \\r\\n
  • Contacts with no Contact Type and Contact Source will not be created
  • \\r\\n
  • Rows with existing or duplicate email address will not be imported
  • \\r\\n
  • Column order can be changed
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
#Section NameDescriptionRow
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.sectionName}}{{item.message}}{{item.index}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"table {\\n margin-top: 15px;\\n border-collapse: collapse;\\n width: 100%; }\\n\\nth,\\ntd {\\n padding: 8px;\\n text-align: left;\\n border-bottom: 1px solid #DDD; }\\n\\ntr:hover {\\n background-color: #cbd5d9; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvY29udGFjdHMvY29udGFjdC1pbXBvcnQvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXGNvbnRhY3RzXFxjb250YWN0LWltcG9ydFxcY29udGFjdC1pbXBvcnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLFdBQVcsRUFBQTs7QUFHYjs7RUFFRSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLDZCQUE2QixFQUFBOztBQUcvQjtFQUNFLHlCQUF5QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvY29udGFjdHMvY29udGFjdC1pbXBvcnQvY29udGFjdC1pbXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJ0YWJsZSB7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG50aCxcclxudGQge1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREO1xyXG59XHJcblxyXG50cjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiZDVkOTtcclxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response, RequestOptions } from '@angular/http';\r\n\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { CustomFormBuilder } from './../../shared/classes/CustomFormBuilder';\r\nimport { SelectItem } from 'primeng/components/common/api';\r\n\r\nimport { ToastService } from '../../shared/services/toast.service';\r\nimport { ContactSourceService } from '../../shared/services/contact-source.service';\r\nimport { ContactTypeService } from '../../shared/services/contact-type.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\n\r\nimport { ContactType } from '../../shared/models/contact-type.model';\r\nimport { ContactSource } from '../../shared/models/contact-source.model';\r\nimport { ApiEndPoints, PrepopulatedContactTypes } from '../../../../app.constant';\r\n\r\nimport { DropzoneConfigInterface } from 'ngx-dropzone-wrapper';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { AppSettings } from 'app.settings';\r\nimport { LogItemView, LogModel } from 'app/views/shared/models/log-model.model';\r\n\r\n@Component({\r\n selector: 'app-contact-import',\r\n templateUrl: './contact-import.component.html',\r\n styleUrls: ['./contact-import.component.scss']\r\n})\r\nexport class ContactImportComponent implements OnInit {\r\n\r\n contactImportForm: FormGroup; // - Stores the contact import form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n\r\n contactTypesOptions: SelectItem[] = []; // - Stores Contact Type Dropdown Options\r\n contactSourcesOptions: SelectItem[] = []; // - Stores Contact Source Dropdown Options\r\n\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n accessToken = localStorage.getItem('accessToken');\r\n\r\n logs: LogModel = new LogModel()\r\n logItems: LogItemView[] = []\r\n\r\n //** Dropzone */\r\n DROPZONE_CONFIG: DropzoneConfigInterface = {\r\n url: AppSettings.API_ENDPOINT + 'api/ImportExcel/ImportDataFromWorkbook/',\r\n headers: {\r\n 'Authorization': 'Bearer ' + this.authService.getUser().access_token\r\n },\r\n paramName: \"uploadFile\",\r\n parallelUploads: 1,\r\n errorReset: 3,\r\n acceptedFiles: \".csv,.xlsx,.xls\",\r\n timeout: 600000, // - 10 Mins max\r\n maxFilesize: 50 // - 50MB\r\n };\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private authService: AuthService,\r\n private contactService: ContactService,\r\n private contactTypeService: ContactTypeService,\r\n private contactSourceService: ContactSourceService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetContactTypes(); // - Retrieve all contact types to populate the Contact Type dropdown\r\n this.onGetContactSources(); // - Retrieve all contact sources to populate the Contact Source dropdown\r\n\r\n this.initForm();\r\n }\r\n\r\n initForm() {\r\n this.contactImportForm = this.formBuilder.group({\r\n contactTypeId: this.formBuilder.control(null, [Validators.required]),\r\n contactSourceId: this.formBuilder.control(null, [Validators.required]),\r\n csvData: this.formBuilder.control(null)\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onUploadError($event) {\r\n this.toastService.createErrorMessage(\"Error uploading files\", $event[2] ? $event[2].response : $event[1]);\r\n }\r\n\r\n onUploadSuccess($event) {\r\n console.log(\"UPLOAD SUCCESS EVENT: \", $event);\r\n this.populatedLogItems($event[1] || new LogModel())\r\n // this.toastService.createSuccessMessage(\"Success\", $event[1]);\r\n }\r\n\r\n onSending($event) {\r\n // let file = $event[0];\r\n // let xmlHttpRequest = $event[1];\r\n // let formData: FormData = $event[2];\r\n\r\n // let contactTypeId = this.contactImportForm.controls['contactTypeId'].value;\r\n // let contactTypeName = this.contactTypesOptions.find(o => o.value == contactTypeId).label;\r\n // let contactSourceId = this.contactImportForm.controls['contactSourceId'].value;\r\n\r\n // if (contactTypeName === PrepopulatedContactTypes.Customer || contactTypeName == PrepopulatedContactTypes.Lead) {\r\n // formData.append(\"contactTypeId\", contactTypeId);\r\n // formData.append(\"contactTypeName\", contactTypeName);\r\n // formData.append(\"contactSourceId\", contactSourceId);\r\n // formData.append(\"createdByUserAccountId\", this.authService.applicationProfileUser().id);\r\n // }\r\n }\r\n\r\n onGetContactTypes() {\r\n this.contactTypeService.getContactTypes().subscribe(\r\n (contactTypes: ContactType[]) => {\r\n // Store retrieved contact types in the contactTypesOptions select list\r\n contactTypes.map(cT => this.contactTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n // There must be at least one Contact Type created to create or edit a contact\r\n if (this.contactTypesOptions.length === 0) {\r\n this.isFormInit = false;\r\n return;\r\n }\r\n\r\n let defaultValue = this.contactTypesOptions[0].value;\r\n this.contactImportForm.patchValue({\r\n contactTypeId: defaultValue\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetContactSources() {\r\n this.contactSourceService.getContactSources().subscribe(\r\n (contactSources: ContactSource[]) => {\r\n // Store retrieved contact sources in the contactSourcesOptions select list\r\n contactSources.map(cS => this.contactSourcesOptions.push({ label: cS.name, value: cS.id }));\r\n\r\n let defaultValue = this.contactSourcesOptions[0].value;\r\n this.contactImportForm.patchValue({\r\n contactSourceId: defaultValue\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact sources\", error);\r\n }\r\n );\r\n }\r\n\r\n populatedLogItems(model: LogModel) {\r\n try {\r\n const result: LogItemView[] = []\r\n model.sections.forEach(section => \r\n section.items.forEach(item => {\r\n result.push({\r\n index: item.index,\r\n message: item.message,\r\n sectionName: section.name,\r\n success: item.isInserted\r\n })\r\n })\r\n )\r\n this.logItems = result\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Contacts
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n Advanced Search\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
1 || contactGroupsOptions.length > 0\\\">\\r\\n\\r\\n \\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
1 || contactGroupsOptions.length > 0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n Contact Groups\\r\\n \\r\\n

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

\\r\\n Dynamic Search\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n There are currently {{totalRecords}} contacts\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n contact.createdByUserAccountId ?\\r\\n contact.createdByUserAccountId > 0 ?\\r\\n contact.createdByUserAccount?.fullName :\\r\\n 'System'\\r\\n : 'System'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n contact.updatedByUserAccountId ?\\r\\n contact.updatedByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n contact.assignedUserAccountId ?\\r\\n contact.assignedUserAccount ?\\r\\n contact.assignedUserAccount?.fullName :\\r\\n '-'\\r\\n :'-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact?.fullName.trim() | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.referredByContact ? contact.referredByContact?.fullName.trim() : '-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.convertedDate | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.email | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.mobilePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.homePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.officePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.alternatePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.birthdate | date:'dd/MM/yyyy' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.idCardNumber | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.vatNumber | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.notes | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtbGlzdC9jb250YWN0LWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Response, URLSearchParams } from \"@angular/http\";\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { TableUtilityService } from \"../../shared/services/table-utility.service\";\r\nimport { ContactTypeService } from '../../shared/services/contact-type.service';\r\nimport { ContactSourceService } from '../../shared/services/contact-source.service';\r\nimport { OrganizationService } from \"../../shared/services/organization.service\";\r\n\r\nimport { ConfirmationService, SelectItem, LazyLoadEvent, DataTable } from \"primeng/primeng\";\r\n// import { CookieService } from \"ngx-cookie\";\r\nimport { CookieService } from \"ngx-cookie\";\r\nimport { UserService } from '../../shared/services/user.service';\r\nimport { TagService } from '../../shared/services/tag.service';\r\nimport { GroupService } from '../../shared/services/group.service';\r\nimport { SavedContactSearchService } from '../../shared/services/saved-contact-search.service';\r\n\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { ContactType } from '../../shared/models/contact-type.model';\r\nimport { ContactsSegment } from '../../shared/models/contacts-segment.model';\r\nimport { Group } from '../../shared/models/group.model';\r\nimport { SavedContactSearch } from '../../shared/models/saved-contact-search.model';\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { System } from 'app/views/shared/system';\r\nimport { SystemModeHelper, SYSTEM_KEYS } from 'app/views/shared/system-config.service';\r\nimport { AppSettings } from 'app.settings';\r\n\r\n@Component({\r\n selector: 'app-contact-list',\r\n templateUrl: './contact-list.component.html',\r\n styleUrls: ['./contact-list.component.scss']\r\n})\r\nexport class ContactListComponent extends System implements OnInit, OnDestroy {\r\n\r\n public AppSettings : AppSettings = AppSettings;\r\n public SYSTEM_KEYS : SYSTEM_KEYS = SYSTEM_KEYS;\r\n \r\n contacts: Contact[] = [];\r\n\r\n /** Column Toggling */\r\n columnOptions: SelectItem[];\r\n selectedCols: any[]; // - Contains the table columns that should be visible\r\n allSelectableCols: any[] = []; // - Contains all table columns that may be toggled on or off\r\n\r\n selectedColsDefault: any[] = []; // - Contains the columns that are shown by default if no cookie is stored\r\n\r\n //#region AdvancedSearch\r\n saveSearchResults: boolean = false; // - If results should be saved as a contact group after search is performed\r\n savedGroupName: string = \"\"; // - The name of the new contact group\r\n\r\n saveContactSearch: boolean = false; // - If results should be saved as a dynamic search operation after search is performed\r\n savedContactSearchName: string = \"\";// - The name of the new contact search operation\r\n savedContactSearches: SavedContactSearch[] = []; // - The Saved Contact Searches list to hold saved search values\r\n\r\n savedContactSearchesOptions: SelectItem[] = [];\r\n selectedContactSearchOption: any;\r\n\r\n contactTypesOptions: SelectItem[] = [];\r\n selectedContactTypeOption: any;\r\n\r\n contactSourcesOptions: SelectItem[] = [];\r\n selectedContactSourceOption: any;\r\n\r\n contactOrganizationOptions: SelectItem[] = [];\r\n selectedContactOrganizationOption: any;\r\n\r\n contactTagsOptions: SelectItem[] = [];\r\n selectedContactTagOptions: any;\r\n\r\n contactGroupsOptions: SelectItem[] = [];\r\n selectedContactGroupOptions: any;\r\n\r\n userOptions: SelectItem[] = [];\r\n selectedAssignedToOption: any;\r\n selectedCreatedByOption: any;\r\n\r\n selectedContactName: any;\r\n selectedCompanyName: any;\r\n selectedEmail: any;\r\n\r\n selectedPhone: any;\r\n\r\n selectedIdCardNumber: any;\r\n selectedVatNumber: any;\r\n\r\n selectedCreatedOnSince: any;\r\n selectedCreatedOnBefore: any;\r\n\r\n //#endregion\r\n\r\n //** Tabs */\r\n contactListTabIndex: number = 0;\r\n contactGroupsTabIndex: number = 1;\r\n savedContactSearchTabIndex: number = 2;\r\n\r\n //** DatePicker */\r\n todayDate: Date = new Date();\r\n yearRange: string = this.todayDate.getFullYear() - 10 + ':' + (this.todayDate.getFullYear() + 10); // - 20 Year Range\r\n\r\n /** Lazy Loading */\r\n totalRecords: number = 0;\r\n latestLazyLoadEvent: LazyLoadEvent;\r\n\r\n isAdvancedSearchCollapsed: boolean = false;\r\n isContactGroupsCollapsed: boolean = false;\r\n isSavedContactSearchesCollapsed: boolean = false;\r\n confimHeaderTitle: string = \"\";\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private contactService: ContactService,\r\n private contactTypeService: ContactTypeService,\r\n private contactSourceService: ContactSourceService,\r\n private organizationService: OrganizationService,\r\n private tagService: TagService,\r\n private groupService: GroupService,\r\n private savedContactSearchService: SavedContactSearchService,\r\n private userService: UserService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService,\r\n private cookieService: CookieService,\r\n private tableUtilService: TableUtilityService,\r\n protected systemModelHelper: SystemModeHelper\r\n ) {\r\n super(systemModelHelper)\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.populateSearchOptions();\r\n this.onGetContactsCount();\r\n this.initColumnOptions();\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n\r\n initColumnOptions() {\r\n this.allSelectableCols = this.tableUtilService.getAllSelectableContactCols();\r\n this.selectedColsDefault = this.tableUtilService.getSelectedContactColsDefault();\r\n this.columnOptions = this.tableUtilService.getColumnOptions(this.columnOptions, this.allSelectableCols);\r\n\r\n let selectedColsCookie = this.cookieService.getObject(\"crm_selectedContactCols\") as any[];\r\n if (selectedColsCookie)\r\n this.selectedCols = selectedColsCookie;\r\n else\r\n this.selectedCols = this.selectedColsDefault;\r\n }\r\n\r\n // - Saves options in a cookie whenever they are changed\r\n onColumnOptionsChange() {\r\n this.cookieService.putObject(\"crm_selectedContactCols\", this.selectedCols);\r\n }\r\n\r\n onSearchOptionChange(dt: DataTable, $event, field: string, matchMode: string) {\r\n dt.filter($event ? $event.value : null, field, matchMode);\r\n }\r\n\r\n onSelectSavedSearch(dt: DataTable) {\r\n if (this.selectedContactSearchOption) {\r\n let selectedContactSearch = this.savedContactSearches.find(cS => cS.id === this.selectedContactSearchOption);\r\n\r\n this.selectedContactTypeOption = selectedContactSearch.contactTypeId;\r\n this.selectedContactSourceOption = selectedContactSearch.contactSourceId;\r\n\r\n this.selectedContactTagOptions =\r\n selectedContactSearch.contactTagIds ?\r\n selectedContactSearch.contactTagIds.split(',').map(Number) :\r\n null;\r\n this.selectedContactGroupOptions =\r\n selectedContactSearch.contactGroupIds ?\r\n selectedContactSearch.contactGroupIds.split(',').map(Number) :\r\n null;\r\n\r\n this.selectedAssignedToOption = selectedContactSearch.assignedToId;\r\n this.selectedCreatedByOption = selectedContactSearch.createdById;\r\n\r\n this.selectedContactName = selectedContactSearch.fullName;\r\n this.selectedCompanyName = selectedContactSearch.companyName;\r\n this.selectedEmail = selectedContactSearch.email;\r\n\r\n this.selectedPhone = selectedContactSearch.phoneNumber;\r\n\r\n this.selectedIdCardNumber = selectedContactSearch.idCard;\r\n this.selectedVatNumber = selectedContactSearch.vat;\r\n\r\n this.selectedCreatedOnSince = selectedContactSearch.createdOnSince ? new Date(selectedContactSearch.createdOnSince) : null;\r\n this.selectedCreatedOnBefore = selectedContactSearch.createdOnBefore ? new Date(selectedContactSearch.createdOnBefore) : null;\r\n\r\n this.onSearchOptionChange(dt, null, null, null);\r\n }\r\n else {\r\n this.onResetSearch(dt);\r\n }\r\n }\r\n\r\n onSearchAndSaveContactGroup(dt: DataTable) {\r\n this.saveSearchResults = true;\r\n this.onSearchOptionChange(dt, null, null, null);\r\n }\r\n\r\n onSearchAndSaveContactSearch(dt: DataTable) {\r\n this.saveContactSearch = true;\r\n this.onSearchOptionChange(dt, null, null, null);\r\n }\r\n\r\n onResetSearch(dt: DataTable) {\r\n this.selectedContactTypeOption = null;\r\n this.selectedContactSourceOption = null;\r\n this.selectedContactTagOptions = null;\r\n this.selectedContactGroupOptions = null;\r\n this.selectedAssignedToOption = null;\r\n this.selectedCreatedByOption = null;\r\n this.selectedContactOrganizationOption = null;\r\n this.selectedContactName = null;\r\n this.selectedCompanyName = null;\r\n this.selectedEmail = null;\r\n\r\n this.selectedPhone = null;\r\n\r\n this.selectedIdCardNumber = null;\r\n this.selectedVatNumber = null;\r\n\r\n this.selectedCreatedOnSince = null;\r\n this.selectedCreatedOnBefore = null;\r\n\r\n dt.filters = {};\r\n\r\n dt.filter(null, null, null);\r\n }\r\n\r\n loadData(event: LazyLoadEvent) {\r\n this.latestLazyLoadEvent = event;\r\n\r\n\r\n let contactTypeId = this.selectedContactTypeOption;\r\n let contactSourceId = this.selectedContactSourceOption;\r\n let assignedToId = this.selectedAssignedToOption;\r\n let createdById = this.selectedCreatedByOption;\r\n let organizationId = this.selectedContactOrganizationOption;\r\n\r\n let params = new HttpParams();\r\n params = params.set(\"from\", event.first.toString());\r\n params = params.set(\"to\", event.rows.toString());\r\n params = params.set(\"sortBy\", event.sortField);\r\n params = params.set(\"order\", event.sortOrder.toString());\r\n params = params.set(\"searchTerm\", event.globalFilter);\r\n\r\n if(contactTypeId)\r\n params = params.set(\"contactTypeId\", contactTypeId);\r\n if(contactSourceId)\r\n params = params.set(\"contactSourceId\", contactSourceId);\r\n if(this.selectedContactTagOptions)\r\n params = params.set(\"contactTagIds\", this.selectedContactTagOptions);\r\n if(this.selectedContactGroupOptions)\r\n params = params.set(\"contactGroupIds\", this.selectedContactGroupOptions);\r\n if(this.selectedContactOrganizationOption)\r\n params = params.set(\"organizationId\", this.selectedContactOrganizationOption);\r\n\r\n if(assignedToId)\r\n params = params.set(\"assignedToId\", assignedToId);\r\n if(createdById)\r\n params = params.set(\"createdById\", createdById);\r\n\r\n if(this.selectedContactName)\r\n params = params.set(\"fullName\", this.selectedContactName ? this.selectedContactName.trim() : this.selectedContactName);\r\n if(this.selectedCompanyName)\r\n params = params.set(\"companyName\", this.selectedCompanyName ? this.selectedCompanyName.trim() : this.selectedCompanyName);\r\n if(this.selectedEmail)\r\n params = params.set(\"email\", this.selectedEmail ? this.selectedEmail.trim() : this.selectedEmail);\r\n\r\n if(this.selectedPhone)\r\n params = params.set(\"phoneNumber\", this.selectedPhone ? this.selectedPhone.trim() : this.selectedPhone);\r\n\r\n if(this.selectedIdCardNumber)\r\n params = params.set(\"idCard\", this.selectedIdCardNumber ? this.selectedIdCardNumber.trim() : this.selectedIdCardNumber);\r\n if(this.selectedVatNumber)\r\n params = params.set(\"vat\", this.selectedVatNumber ? this.selectedVatNumber.trim() : this.selectedVatNumber);\r\n\r\n if(this.selectedCreatedOnSince)\r\n params = params.set(\"createdOnSince\", this.selectedCreatedOnSince);\r\n\r\n if(this.selectedCreatedOnBefore)\r\n params = params.set(\"createdOnBefore\", this.selectedCreatedOnBefore);\r\n\r\n if (this.saveSearchResults) {\r\n params = params.set(\"saveSearchResults\", 'true');\r\n if(this.savedGroupName)\r\n params = params.set(\"savedGroupName\", this.savedGroupName);\r\n params = params.set(\"savedGroupCreatedById\", this.authService.applicationProfileUser().id.toString());\r\n }\r\n\r\n if (this.saveContactSearch) {\r\n params = params.set(\"saveContactSearch\", 'true');\r\n if(this.savedContactSearchName)\r\n params = params.set(\"savedContactSearchName\", this.savedContactSearchName);\r\n params = params.set(\"savedContactSearchCreatedById\", this.authService.applicationProfileUser().id.toString());\r\n }\r\n\r\n this.onGetContacts(params);\r\n }\r\n\r\n isColVisible(colName: string) {\r\n if (this.selectedCols.find(sC => sC.value === colName))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n onChangeTabView($event) {\r\n let tabIndex = $event.index;\r\n switch ($event.index) {\r\n case this.contactListTabIndex:\r\n this.router.navigate([\"/contacts/list\"]);\r\n break;\r\n case this.contactGroupsTabIndex:\r\n this.router.navigate([\"/contacts/groups\"]);\r\n break;\r\n case this.savedContactSearchTabIndex:\r\n this.router.navigate([\"/contacts/saved-searches\"]);\r\n break;\r\n }\r\n }\r\n\r\n onGetContacts(params: HttpParams) {\r\n this.contactService.getContactsSegment(params, false).subscribe(\r\n (contactsSegment: ContactsSegment) => {\r\n this.contacts = contactsSegment.contacts;\r\n this.totalRecords = contactsSegment.totalContactsCount;\r\n\r\n if (this.saveSearchResults) {\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact group \" + this.savedGroupName + \" has been created.\");\r\n this.populateContactGroupSearchOptions();\r\n this.saveSearchResults = false;\r\n this.savedGroupName = \"\";\r\n }\r\n\r\n if (this.saveContactSearch) {\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact search operation \" + this.savedContactSearchName + \" has been created.\");\r\n this.populateContactSavedSearchSearchOptions();\r\n this.saveContactSearch = false;\r\n this.savedContactSearchName = \"\";\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n //** Used to not have to re-init all SearchOptions and only just contact groups options */\r\n populateContactGroupSearchOptions() {\r\n this.groupService.getGroups().subscribe(\r\n (groups: Group[]) => {\r\n this.contactGroupsOptions = [];\r\n groups.map(g => {\r\n this.contactGroupsOptions.push({ label: g.name, value: g.id });\r\n });\r\n }\r\n );\r\n }\r\n\r\n populateContactSavedSearchSearchOptions() {\r\n this.savedContactSearchService.getSavedContactSearches().subscribe(\r\n (savedContactSearches: SavedContactSearch[]) => {\r\n this.savedContactSearches = savedContactSearches;\r\n this.savedContactSearchesOptions = [];\r\n this.savedContactSearchesOptions.push({ label: \"Select a saved search\", value: null });\r\n savedContactSearches.map(cS => {\r\n this.savedContactSearchesOptions.push({ label: cS.name, value: cS.id });\r\n });\r\n }\r\n );\r\n }\r\n\r\n populateSearchOptions() {\r\n let contactTypes = this.contactTypeService.getTypeContacts();\r\n let contactSources = this.contactSourceService.getContactSources();\r\n let contactOrganizations = this.organizationService.getOrganizations();\r\n let users = this.userService.getUsers();\r\n let tags = this.tagService.getTags();\r\n let groups = this.groupService.getGroups();\r\n let savedContactSearches = this.savedContactSearchService.getSavedContactSearches();\r\n\r\n forkJoin(contactTypes, contactSources,contactOrganizations, users, tags, groups, savedContactSearches).subscribe(\r\n ([contactTypes, contactSources, contactOrganizations, users, tags, groups, savedContactSearches]) => {\r\n this.contactTypesOptions.push({ label: \"All Types\", value: null });\r\n contactTypes.map(cT => {\r\n this.contactTypesOptions.push({ label: cT.name, value: cT.id });\r\n });\r\n this.selectedContactTypeOption = null;\r\n\r\n this.contactSourcesOptions.push({ label: \"All Sources\", value: null });\r\n contactSources.map(cS => {\r\n this.contactSourcesOptions.push({ label: cS.name, value: cS.id });\r\n });\r\n this.selectedContactSourceOption = null;\r\n\r\n tags.map(t => {\r\n this.contactTagsOptions.push({ label: t.name, value: t.id });\r\n });\r\n this.selectedContactTagOptions = null;\r\n\r\n groups.map(g => {\r\n this.contactGroupsOptions.push({ label: g.name, value: g.id });\r\n });\r\n this.selectedContactGroupOptions = null;\r\n\r\n this.savedContactSearchesOptions.push({ label: \"Select a saved search\", value: null });\r\n savedContactSearches.map(cS => {\r\n this.savedContactSearchesOptions.push({ label: cS.name, value: cS.id });\r\n });\r\n this.selectedContactSearchOption = null;\r\n this.savedContactSearches = savedContactSearches;\r\n\r\n this.userOptions.push({ label: \"All Agents\", value: null }); // todo: Unassigned option?\r\n users.map(u => {\r\n this.userOptions.push({ label: u.fullName, value: u.id });\r\n });\r\n\r\n this.contactOrganizationOptions.push({ label: \"All Organizations\", value: null });\r\n contactOrganizations.map(cS => {\r\n this.contactOrganizationOptions.push({ label: cS.name, value: cS.id });\r\n });\r\n this.selectedContactOrganizationOption = null;\r\n\r\n\r\n this.selectedAssignedToOption = null;\r\n this.selectedCreatedByOption = null;\r\n }\r\n );\r\n\r\n }\r\n\r\n onGetContactsCount() {\r\n this.contactService.getContactsCount().subscribe(\r\n (contactsCount: number) => {\r\n this.totalRecords = contactsCount;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts length\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteContact(contact: Contact) {\r\n this.confimHeaderTitle = \"Delete\";\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the contact ' + contact.fullName + '? Please note that all tasks, opportunities and communication logs related to this contact will also be deleted.',\r\n accept: () => {\r\n contact.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactService.deleteContact(contact).subscribe(\r\n (response: Response) => {\r\n this.loadData(this.latestLazyLoadEvent);\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact \" + contact.fullName + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting contact\", error);\r\n }\r\n );\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for contact \" + contact.fullName + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n onErasureContact(contact: Contact) {\r\n this.confimHeaderTitle = \"Erasure\";\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to erase this contact ' + contact.fullName + '? Please note that all tasks, opportunities and communication logs related to this contact will also be masked and deleted.',\r\n accept: () => {\r\n contact.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactService.erasureContact(contact).subscribe(\r\n (response: Response) => {\r\n this.loadData(this.latestLazyLoadEvent);\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact \" + contact.fullName + \" has been erasured.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error while erasing contact\", error);\r\n }\r\n );\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The erasure for contact \" + contact.fullName + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
LeadDesk - Latest Call Info
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Call Details\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Started at:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.talk_start | date:'dd/MM/yyyy - HH:mm' }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Ended at:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.talk_end | date:'dd/MM/yyyy - HH:mm' }}\\r\\n
\\r\\n
\\r\\n CALL IS ONGOING\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Duration:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.talk_time }} seconds\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Direction:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.direction | titlecase }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Call Ending Reason:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.call_ending_reason_name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Agent Details

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Username:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.agent_username }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Group:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.agent_group_name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Campaign:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.campaign_name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Comments:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.comment }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Update Contact
\\r\\n
New Contact
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Primary Details

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select a Contact Type.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select a Contact Source.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Referred by:\\r\\n {{ contactForm?.get('referredByContactId')?.value?.label }}.\\r\\n

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

\\r\\n No contact is currently set as referrer.\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Contacts must have either an Email or a Mobile value.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n There is already a contact registered with that email address.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Contacts must have either an Email or a Mobile value.\\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n {{contact?.firstName}}'s Properties\\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{prop.defaultPrice}}\\r\\n \\r\\n {{prop.propertyPreCode}}\\r\\n {{prop.propertyCategory}} - {{prop.propertyLocality}}\\r\\n \\r\\n
\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Additional Phone Numbers\\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Additional Details\\r\\n \\r\\n

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

\\r\\n Address Details\\r\\n \\r\\n

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

\\r\\n Add Note\\r\\n \\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtbWFuYWdlL2NvbnRhY3QtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild,ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities, PrepopulatedContactTypes, PrepopulatedContactSources, GoogleMaps, PrepopulatedTypesContact } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\nimport { ContactTypeService } from \"../../shared/services/contact-type.service\";\r\nimport { ContactSourceService } from \"../../shared/services/contact-source.service\";\r\nimport { OrganizationService } from \"../../shared/services/organization.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { TagService } from '../../shared/services/tag.service';\r\nimport { LeadDeskService } from '../../shared/services/lead-desk.service';\r\n\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { ContactType } from \"../../shared/models/contact-type.model\";\r\nimport { ContactSource } from \"../../shared/models/contact-source.model\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Tag } from '../../shared/models/tag.model';\r\n\r\n// import { valueExistsValidator } from \"../../shared/validators/value-exists.validator\";\r\nimport { CustomValidators } from 'ng2-validation';\r\nimport { SelectItem, ConfirmationService, AutoComplete, DropdownModule } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { ContactTag } from 'app/views/shared/models/contact-tag.model';\r\nimport { CallInfo } from 'app/views/shared/models/lead-desk/call-info.model';\r\nimport { LeadDeskConfig } from 'app/views/shared/models/lead-desk/lead-desk-config.model';\r\nimport { Organization } from '../../shared/models/organization.model';\r\nimport { ContactProperty } from 'app/views/shared/models/contact-property.model';\r\nimport { Property } from 'app/views/shared/models/property.model';\r\nimport { combineLatest } from 'rxjs';\r\nimport { tap, switchMap, map } from 'rxjs/operators';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { System } from 'app/views/shared/system';\r\nimport { SystemModeHelper, SYSTEM_KEYS } from 'app/views/shared/system-config.service';\r\nimport { AppSettings } from 'app.settings';\r\n\r\n\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-contact-manage',\r\n templateUrl: './contact-manage.component.html',\r\n styleUrls: ['./contact-manage.component.scss']\r\n})\r\nexport class ContactManageComponent extends System implements OnInit, OnDestroy {\r\n public AppSettings : AppSettings = AppSettings;\r\n public SYSTEM_KEYS : SYSTEM_KEYS = SYSTEM_KEYS;\r\n \r\n contactForm: FormGroup; // - Stores the contact form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a contact if true and add a new contact if false\r\n organizationIdFromClientCreate:number = 0; // - Organization Id from Add Organization (needed to pre select dropdown)\r\n\r\n contacts: Contact[] = []; // - Stores all contacts retrieved from db to validate unique values\r\n contact: Contact = new Contact(); // - Stores Contact to populate form with a new / existing contact's values\r\n\r\n contactTypesOptions: SelectItem[] = []; // - Stores Contact Type Dropdown Options\r\n contactSourcesOptions: SelectItem[] = []; // - Stores Contact Source Dropdown Options\r\n contactOrganizationsOptions: SelectItem[] = []; // - Stores Contact Organization Dropdown Options\r\n referredByContactsOptions: SelectItem[] = []; // - Stores Contacts Options to select who was the Referrer if Contact Source is set as Referrer\r\n assignedUserOptions: SelectItem[] = []; // - Stores Users to select the Assigned User of this contact\r\n Properties: Property[] = [];\r\n allowSave: boolean = false; \r\n \r\n private fragment: string;\r\n\r\n @ViewChild('contactReferrersAutoComplete') private contactReferrersAutoComplete: AutoComplete;\r\n allTags: Tag[] = []; // - Stores all pre-existing Contact Tags\r\n filteredTags: Tag[] = []; // - Stores all tags filtered by a search term\r\n contactTags: Tag[] = []; // - Stores current contact's saved Contact Tags\r\n newTagName: string;\r\n\r\n @ViewChild('contactTagsAutoComplete') private contactTagsAutoComplete: AutoComplete;\r\n\r\n //** Used by DatePicker component */\r\n maxDate: Date = new Date();\r\n dateRange: string = (new Date().getFullYear() - 150) + ':' + new Date().getFullYear(); // - Range: 150 Years Ago until Today\r\n\r\n leadDeskCallInfo: CallInfo;\r\n\r\n //** Google Maps */\r\n options: any;\r\n overlays: any[];\r\n marker: any;\r\n isGoogleMapsSearchInit = false;\r\n @ViewChild(\"gMapsSearch\") public gMapsSearchElementRef: ElementRef;\r\n @ViewChild(\"gmap\") public gmap;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private contactTypeService: ContactTypeService,\r\n private contactSourceService: ContactSourceService,\r\n private organizationService: OrganizationService,\r\n private leadDeskService: LeadDeskService,\r\n private tagService: TagService,\r\n private toastService: ToastService,\r\n private confirmationService: ConfirmationService,\r\n private ref: ChangeDetectorRef,\r\n protected systemModeHelper: SystemModeHelper\r\n ) { \r\n super(systemModeHelper)\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n debugger;\r\n this.route.fragment.subscribe(fragment => { this.fragment = fragment; });\r\n this.setupForm();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n try {\r\n \r\n document.querySelector('#' + this.fragment).scrollIntoView();\r\n } catch (e) { }\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n getImageUrl(prop){\r\n //url(' + prop.propertyUrl + prop.propertyImageUrl + ')\r\n let imagUrl = prop.propertyUrl + prop.propertyImageUrl;\r\n\r\n let link = 'url(' + imagUrl + ')';\r\n\r\n return link;\r\n }\r\n\r\n searchAutoCompleteForContacts(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.filteredTags = this.allTags.filter(t => t.name.toLowerCase().includes(event.query.toLowerCase()));\r\n\r\n // - Store new tag name if it does not exist so user may hit enter and create a new tag\r\n if (!this.allTags.find(t => t.name.toLowerCase() === event.query.toLowerCase()))\r\n this.newTagName = event.query;\r\n }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactReferrersAutoComplete.panelVisible) {\r\n this.contactReferrersAutoComplete.hide();\r\n } else {\r\n this.contactReferrersAutoComplete.show();\r\n }\r\n }\r\n\r\n onAutoCompleteEnterKey(event) {\r\n if (this.newTagName)\r\n this.onAddTag(this.newTagName);\r\n }\r\n\r\n onSelectTag(event: Tag) {\r\n let tag = event as any;\r\n let newContactTag = {\r\n contactId: this.contact.id,\r\n tagId: 0,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n tag.contactTags.push(newContactTag);\r\n\r\n this.tagService.updateTag(tag).subscribe(\r\n (response: Response) => {\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating contact tag\", error);\r\n }\r\n );\r\n }\r\n\r\n onUnselectTag(tag: Tag) {\r\n tag.contactTags = tag.contactTags.filter(cT => cT.contactId !== this.contact.id);\r\n\r\n this.tagService.updateTag(tag).subscribe(\r\n (response: Response) => {\r\n let unselectedTag = (response) as Tag;\r\n // - Filter out unselected tag if it was marked as deleted (Is marked as deleted if no ContactTags relationships)\r\n if (unselectedTag.contactTags.length === 0)\r\n this.allTags = this.allTags.filter(t => t.id !== unselectedTag.id);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting contact tag\", error);\r\n }\r\n );\r\n }\r\n\r\n setupForm() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n debugger;\r\n const contactId = params['id'];\r\n const organizationId = params['organizationId'];\r\n this.isEdit = contactId != null; // - Returns true if an id was present within the url\r\n\r\n if(organizationId !=null){\r\n this.organizationIdFromClientCreate = organizationId;\r\n }\r\n\r\n if (this.isEdit) {\r\n this.contactService.getContactProperty(+contactId).subscribe(\r\n (contactProp: ContactProperty) => {\r\n this.contact = contactProp.contact;\r\n this.Properties = contactProp.properties;\r\n this.allowSave = contactProp.allowSave;\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact\", error);\r\n }\r\n );\r\n\r\n // Redirect to 404 page if the selected contact could not be found\r\n if (!this.contact) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n this.onGetTags(); // - Retrieve all tags to populate the Tags autocomplete suggestions list\r\n\r\n // contactsOptions.splice(contactsOptions.indexOf(this.contact), 1); // - Don't want current contact to be selectable as a Refferer\r\n }\r\n else\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n isCallOngoingInLeadDesk() {\r\n // - If the contact has a mobile phone number then check if a call is ongoing in lead desk (first check if leaddesk api key is stored)\r\n if (this.contact.mobilePhoneNumber) {\r\n\r\n this.leadDeskService.getLeadDeskConfig().subscribe(\r\n (leadDeskConfig: LeadDeskConfig) => {\r\n if (leadDeskConfig) {\r\n // - Check if a call is ongoing in lead desk if API key was found\r\n this.leadDeskService.getCallInfoByPhoneNumber(this.contact.mobilePhoneNumber).subscribe(\r\n (callInfo: CallInfo) => {\r\n this.leadDeskCallInfo = callInfo;\r\n },\r\n (error) => {\r\n // Could be Phone Number Not Found, wrong api key..\r\n }\r\n );\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving LeadDesk config\", error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n initForm() {\r\n this.contactForm = this.formBuilder.group({\r\n firstName: this.formBuilder.control(this.contact.firstName),\r\n lastName: this.formBuilder.control(this.contact.lastName),\r\n assignedUserAccountId: this.formBuilder.control(this.contact.assignedUserAccountId),\r\n email: this.formBuilder.control(this.contact.email, [Validators.required]),\r\n // contactTypeId: this.formBuilder.control(this.contact.contactType.id, [Validators.required]),\r\n contactTypeIds: this.formBuilder.control(this.contact.contactTypeIds ? this.contact.contactTypeIds : null, [Validators.required]),\r\n contactSourceId: this.formBuilder.control(this.contact.contactSource.id, [Validators.required]),\r\n organizationId: this.formBuilder.control(this.contact.organizationId),\r\n referredByContactId: this.formBuilder.control(this.contact.referredByContactId),\r\n status: this.formBuilder.control(this.contact.status === AuditManager.StatusActive || !this.contact.status ? true : false),\r\n birthdate: this.formBuilder.control(this.contact.birthdate ? new Date(this.contact.birthdate) : this.contact.birthdate),\r\n idCardNumber: this.formBuilder.control(this.contact.idCardNumber),\r\n companyName: this.formBuilder.control(this.contact.companyName),\r\n mobilePhoneNumber: this.formBuilder.control(this.contact.mobilePhoneNumber, [Validators.required]),\r\n homePhoneNumber: this.formBuilder.control(this.contact.homePhoneNumber),\r\n officePhoneNumber: this.formBuilder.control(this.contact.officePhoneNumber),\r\n alternatePhoneNumber: this.formBuilder.control(this.contact.alternatePhoneNumber),\r\n vatNumber: this.formBuilder.control(this.contact.vatNumber),\r\n notes: this.formBuilder.control(this.contact.notes),\r\n addressLine1: this.formBuilder.control(this.contact.addressLine1),\r\n addressLine2: this.formBuilder.control(this.contact.addressLine2),\r\n addressLine3: this.formBuilder.control(this.contact.addressLine3),\r\n addressLine4: this.formBuilder.control(this.contact.addressLine4),\r\n locationLat: this.formBuilder.control(this.contact.locationLat),\r\n locationLng: this.formBuilder.control(this.contact.locationLng),\r\n postCode: this.formBuilder.control(this.contact.postCode),\r\n country: this.formBuilder.control(this.contact.country),\r\n });\r\n\r\n this.onGetContactTypes(); // - Retrieve all contact types to populate the Contact Type dropdown\r\n this.onGetContactSources(); // - Retrieve all contact sources to populate the Contact Source dropdown\r\n this.onGetContactOrganizations(); // - Retrieve all contact sources to populate the Contact Source dropdown\r\n this.onGetUsers(); // - Retrieve all users to populate the Assigned User dropdown\r\n\r\n if (this.isEdit && this.authService.isAdmin())\r\n this.isCallOngoingInLeadDesk(); // - If viewing a contact's details as an admin check if a call is ongoing in LeadDesk\r\n\r\n this.onFormValueChanges();\r\n\r\n // Mobile and Email are Required on start and change Required state when their value changes\r\n // For edit check which one should be set to Required on start\r\n if (this.isEdit) {\r\n let c = this.contact.referredByContact;\r\n\r\n if (c) {\r\n let labelText = c.fullName && c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let defaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.contact.referredByContactId\r\n };\r\n\r\n let defaultValue = this.contact.referredByContactId ? defaultSelectItem : null;\r\n\r\n this.contactForm.patchValue({\r\n referredByContactId: defaultValue\r\n });\r\n }\r\n\r\n if (!this.contact.email && !this.contact.mobilePhoneNumber)\r\n return;\r\n\r\n // If email has no value then remove Required validator\r\n if (!this.contact.email) {\r\n // this.contactForm.controls['email'].setValidators([\r\n // valueExistsValidator(contactEmails)\r\n // ]);\r\n this.contactForm.controls['email'].clearValidators();\r\n this.contactForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n // If mobilePhoneNumber has no value then remove Required validator\r\n else if (!this.contact.mobilePhoneNumber) {\r\n this.contactForm.controls['mobilePhoneNumber'].clearValidators();\r\n this.contactForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n }\r\n\r\n // this.route.queryParams.subscribe(\r\n // (queryParam: Params) => {\r\n // \r\n // let orgId = +queryParam['organization'];\r\n \r\n // console.log(orgId);\r\n \r\n // setTimeout(()=> this.contactForm.get('organizationId').setValue(7), 200);\r\n // //this.contactForm.get('organizationId').setValue(7);\r\n\r\n // // if (orgId != null) {\r\n // // // - Add the opportunity with the specified ID as one of the assigned opportunitys\r\n // // if (!this.isEdit) {\r\n // // this.organizationService.getOrganization(+orgId).subscribe(\r\n // // (organization: Organization) => {\r\n // // let defaultValue: SelectItem = {\r\n // // label: organization.name,\r\n // // value: organization.id\r\n // // };\r\n\r\n // // this.contactForm.get('organizationId').setValue(7);\r\n \r\n // // }\r\n // // )\r\n // // }\r\n // // }\r\n // }\r\n // );\r\n\r\n this.isFormInit = true;\r\n this.initGoogleMap();\r\n }\r\n\r\n \r\n\r\n onFormValueChanges() {\r\n this.onEmailChange();\r\n this.onMobilePhoneNumberChange();\r\n }\r\n\r\n onEmailChange() {\r\n this.contactForm.controls[\"email\"].valueChanges.subscribe(\r\n (email: string) => {\r\n // If email field is empty then Mobile field is set to required\r\n if (email.trim() === \"\" && this.contactForm.controls[\"mobilePhoneNumber\"].value !== \"\") {\r\n this.contactForm.controls['mobilePhoneNumber'].setValidators([\r\n Validators.required\r\n ]);\r\n this.contactForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n this.contactForm.controls['email'].clearValidators();\r\n this.contactForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n else if (email.trim() === \"\") {\r\n this.contactForm.controls['mobilePhoneNumber'].setValidators([\r\n Validators.required\r\n ]);\r\n this.contactForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n // If email was provided then Mobile field is no longer required\r\n else {\r\n this.contactForm.controls['mobilePhoneNumber'].clearValidators();\r\n this.contactForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onMobilePhoneNumberChange() {\r\n this.contactForm.controls[\"mobilePhoneNumber\"].valueChanges.subscribe(\r\n (mobilePhoneNumber: string) => {\r\n // const contactEmails = this.contacts.map(c => c.email);\r\n // if (this.isEdit)\r\n // contactEmails.splice(contactEmails.indexOf(this.contact.email), 1);\r\n\r\n // If MobilePhoneNumber field is empty then Email field is set to required\r\n if (mobilePhoneNumber.trim() === \"\" && this.contactForm.controls[\"email\"].value !== \"\") {\r\n // this.contactForm.controls['email'].setValidators([\r\n // Validators.required,\r\n // valueExistsValidator(contactEmails)\r\n // ]);\r\n this.contactForm.controls['email'].setValidators([\r\n Validators.required\r\n ]);\r\n this.contactForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n this.contactForm.controls['mobilePhoneNumber'].clearValidators();\r\n this.contactForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n else if (mobilePhoneNumber.trim() === \"\") {\r\n // this.contactForm.controls['email'].setValidators([\r\n // Validators.required,\r\n // valueExistsValidator(contactEmails)\r\n // ]);\r\n this.contactForm.controls['email'].setValidators([\r\n Validators.required\r\n ]);\r\n this.contactForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n // If MobilePhoneNumber was provided then Email field is no longer required\r\n else {\r\n // this.contactForm.controls['email'].setValidators([\r\n // valueExistsValidator(contactEmails)\r\n // ]);\r\n this.contactForm.controls['email'].clearValidators();\r\n this.contactForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n cT.companyName ? labelText += \" / Company: \" + cT.companyName : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.referredByContactsOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetContactTypes() {\r\n this.contactTypeService.getTypeContacts().subscribe(\r\n (contactTypes: ContactType[]) => {\r\n // Store retrieved contact types in the contactTypesOptions select list\r\n contactTypes.map(cT => this.contactTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n // There must be at least one Contact Type created to create or edit a contact\r\n if (this.contactTypesOptions.length === 0) {\r\n this.isFormInit = false;\r\n return;\r\n }\r\n\r\n let defaultValue = [];\r\n\r\n // if (!this.isEdit)\r\n //defaultValue.push(contactTypes.find(cT => cT.name === PrepopulatedTypesContact.Client).id);\r\n if (this.isEdit)\r\n defaultValue = this.contact.contactTypeIds;\r\n\r\n // this.contactForm.patchValue({\r\n // contactTypeIds: defaultValue\r\n // });\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let typeContact = queryParam['type'];\r\n if (typeContact === PrepopulatedTypesContact.Client) {\r\n let typeId = contactTypes.find(cT => cT.name === PrepopulatedTypesContact.Client).id;\r\n if (!defaultValue.includes(typeId))\r\n {\r\n defaultValue.push(typeId);\r\n }\r\n }\r\n else if (typeContact === PrepopulatedTypesContact.Vendor) {\r\n let typeId = contactTypes.find(cT => cT.name === PrepopulatedTypesContact.Vendor).id;\r\n if (!defaultValue.includes(typeId))\r\n {\r\n defaultValue.push(typeId);\r\n }\r\n }\r\n }\r\n );\r\n\r\n this.contactForm.patchValue({\r\n contactTypeIds: defaultValue\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetContactSources() {\r\n this.contactSourceService.getContactSources().subscribe(\r\n (contactSources: ContactSource[]) => {\r\n // Store retrieved contact sources in the contactSourcesOptions select list\r\n contactSources.map(cS => this.contactSourcesOptions.push({ label: cS.name, value: cS.id }));\r\n\r\n // There must be at least one Contact Source created to create or edit a contact\r\n if (this.contactSourcesOptions.length === 0) {\r\n this.isFormInit = false;\r\n return;\r\n }\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.contactSourcesOptions[0].value;\r\n else\r\n defaultValue = this.contact.contactSource.id;\r\n\r\n this.contactForm.patchValue({\r\n contactSourceId: defaultValue\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact sources\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetContactOrganizations() {\r\n let combined$ = combineLatest(\r\n this.organizationService.getOrganizations(),\r\n this.route.queryParams,\r\n (orgs, queryParam)=> ({orgs, queryParam}));\r\n\r\n combined$.pipe(\r\n tap((result) => {\r\n this.contactOrganizationsOptions.push({label: \" - Select Organization -\", value: null});\r\n\r\n // Store retrieved contact organization in the contactOrganizationOptions select list\r\n result.orgs.map(cT => this.contactOrganizationsOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n let defaultValue = this.organizationIdFromClientCreate;\r\n\r\n if (!this.isEdit){\r\n if(defaultValue == 0)\r\n defaultValue = this.contactOrganizationsOptions[0].value;\r\n }\r\n else\r\n defaultValue = this.contact.organizationId;\r\n\r\n this.contactForm.patchValue({\r\n organizationId: defaultValue\r\n });\r\n }),\r\n map(result => {\r\n let queryParam = result.queryParam;\r\n let orgId = +queryParam['organization'];\r\n if (!isNaN(orgId))\r\n {\r\n this.contactForm.get('organizationId').setValue(orgId);\r\n }\r\n })\r\n ).subscribe(\r\n // Success\r\n ()=>{},\r\n // Error\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact organization\", error);\r\n });\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Store retrieved users in the usersOptions select list\r\n users.map(u => this.assignedUserOptions.push({ label: u.fullName, value: u.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.authService.applicationProfileUser().id;\r\n else\r\n defaultValue = this.contact.assignedUserAccountId ? this.contact.assignedUserAccountId : this.authService.applicationProfileUser().id;\r\n\r\n this.contactForm.patchValue({\r\n assignedUserAccountId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetTags() {\r\n this.tagService.getTags().subscribe(\r\n (tags: Tag[]) => {\r\n this.allTags = tags;\r\n this.contactTags = tags.filter(t => t.contactTags.find(cT => cT.contactId === this.contact.id));\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact tags\", error);\r\n }\r\n );\r\n }\r\n\r\n onAddTag(tagName: string) {\r\n let newTag: any = {\r\n name: tagName,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n contactTags: []\r\n };\r\n\r\n let contactTag = {\r\n contactId: this.contact.id,\r\n tagId: 0,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n newTag.contactTags.push(contactTag);\r\n\r\n this.tagService.addTag(newTag).subscribe(\r\n (response: Response) => {\r\n let newlyCreatedTag = (response) as Tag;\r\n this.allTags.push(newlyCreatedTag); // - Push new tag so its searchable\r\n\r\n // - Obtained from: https://github.com/primefaces/primeng/issues/3211 by user 'dixitk13'\r\n if (this.newTagName && this.contactTagsAutoComplete && this.contactTagsAutoComplete.value) {\r\n this.contactTagsAutoComplete.value = [...this.contactTagsAutoComplete.value, newlyCreatedTag];\r\n this.newTagName = null;\r\n this.contactTagsAutoComplete.multiInputEL.nativeElement.value = '';\r\n } else if (this.newTagName) {\r\n this.contactTagsAutoComplete.value = [newlyCreatedTag];\r\n this.newTagName = null;\r\n this.contactTagsAutoComplete.multiInputEL.nativeElement.value = '';\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding contact tag\", error);\r\n }\r\n );\r\n }\r\n\r\n onAddContact(newContact: Contact) {\r\n let fullName = newContact.firstName + \" \" + newContact.lastName;\r\n this.contactService.addContact(newContact).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact \" + fullName + \" has been created.\");\r\n\r\n let clientTypeId = null;\r\n\r\n let contact: Contact = (response) as Contact; // - Can't use NewContact as we need the contact's ID retrieved from db after creation\r\n // Only ask for opportunity creation if type is set to client\r\n\r\n if (this.contactTypesOptions != null && this.contactTypesOptions.length > 0) {\r\n let contactType = this.contactTypesOptions.find(o => o.label === PrepopulatedContactTypes.Customer);\r\n\r\n if (contactType != null) {\r\n clientTypeId = this.contactTypesOptions.find(o => o.label === PrepopulatedContactTypes.Customer).value;\r\n }\r\n }\r\n if (newContact.contactTypeIds.includes(clientTypeId))\r\n this.onAskForOpportunity(contact);\r\n else\r\n this.router.navigate(['contacts', contact.id, 'edit']);\r\n },\r\n (error) => {\r\n this.toastService.createErrorMessage(\"Error adding contact\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateContact(newContact: Contact) {\r\n let fullName = newContact.firstName + \" \" + newContact.lastName;\r\n this.contactService.updateContact(newContact).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact \" + fullName + \" has been updated.\");\r\n\r\n // Only ask for opportunity creation if type is set to client\r\n let clientTypeId = this.contactTypesOptions.find(o => o.label === PrepopulatedContactTypes.Customer).value;\r\n if (newContact.contactTypeIds.includes(clientTypeId))\r\n this.onAskForOpportunity(newContact);\r\n else\r\n this.router.navigate(['/contacts/']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating contact\", error);\r\n }\r\n );\r\n }\r\n\r\n onAskForOpportunity(contact: Contact) {\r\n this.confirmationService.confirm({\r\n header: 'New Opportunity',\r\n message: 'Would you like to create a new opportunity for this client?',\r\n accept: () => {\r\n debugger;\r\n if(this.systemKey === SYSTEM_KEYS.SALES) { \r\n debugger;\r\n this.router.navigate(['/opportunities/sales-opp/new'], { queryParams: { contact: contact.id } });\r\n } else if(this.systemKey === SYSTEM_KEYS.ACQUISITION) { \r\n this.router.navigate(['/opportunities/acquisition-opp/new'], { queryParams: { contact: contact.id } });\r\n }\r\n },\r\n reject: () => {\r\n this.router.navigate(['/contacts/']);\r\n }\r\n });\r\n }\r\n\r\n onSubmit() {\r\n let newContact = this.formBuilder.sanitizeFormValues(this.contactForm).value;\r\n\r\n // This is to pass correct value (contact id) from the autocomplete selection and to sanitize it\r\n // (Eg: writing random string in search and submit form would return an api error response)\r\n if (newContact.referredByContactId && newContact.referredByContactId.value)\r\n newContact.referredByContactId = newContact.referredByContactId.value;\r\n else\r\n newContact.referredByContactId = null;\r\n\r\n\r\n // Status is a checkbox value so only true or false can be returned\r\n // True - Active Contact, False - Hidden Contact\r\n if (newContact.status)\r\n newContact.status = AuditManager.StatusActive;\r\n else\r\n newContact.status = AuditManager.StatusHidden;\r\n\r\n if (this.isEdit) {\r\n newContact.id = this.contact.id; // - Set id of edited contact to its original id, same with externalId and createdById\r\n newContact.externalId = 0; // - External ID not used for stand-alone version\r\n newContact.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateContact(newContact);\r\n }\r\n else {\r\n newContact.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddContact(newContact);\r\n }\r\n }\r\n\r\n isContactSourceRefferer(contactSourceId: number) {\r\n let referredOption = this.contactSourcesOptions.find(o => o.label === PrepopulatedContactSources.Referred);\r\n\r\n if (referredOption)\r\n if (contactSourceId === referredOption.value)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n initGoogleMap() {\r\n let lat = this.isEdit ?\r\n this.contact.locationLat :\r\n GoogleMaps.DefaultLocationLat;\r\n\r\n let lng = this.isEdit ?\r\n this.contact.locationLng :\r\n GoogleMaps.DefaultLocationLng;\r\n\r\n let location = this.isEdit ?\r\n this.contact.location :\r\n GoogleMaps.DefaultLocation;\r\n\r\n if (lat && lng) {\r\n this.options = {\r\n center: { lat: lat, lng: lng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n position: { lat: lat, lng: lng },\r\n title: location,\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n\r\n this.contactForm.patchValue({\r\n location: location,\r\n locationLat: lat,\r\n locationLng: lng\r\n });\r\n } else {\r\n this.options = {\r\n center: { lat: GoogleMaps.DefaultLocationLat, lng: GoogleMaps.DefaultLocationLng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n\r\n\r\n }\r\n }\r\n\r\n initGoogleMapSearch() {\r\n if (!this.isGoogleMapsSearchInit) {\r\n let input = this.gMapsSearchElementRef.nativeElement;\r\n\r\n let options = {\r\n componentRestrictions: { country: \"mt\" },\r\n RankBy: 'PROMINENCE'\r\n };\r\n\r\n let autocomplete = new google.maps.places.Autocomplete(input, options);\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n let place = autocomplete.getPlace();\r\n this.onMapPlaceChanged(place);\r\n });\r\n\r\n this.isGoogleMapsSearchInit = true;\r\n }\r\n }\r\n\r\n onMapPlaceChanged(place) {\r\n\r\n if(place.address_components)\r\n {\r\n\r\n let streetnumberItem = place.address_components.find(x => x.types[0] === 'street_number');\r\n let streetItem = place.address_components.find(x => x.types[0] === 'route');\r\n let localityItem = place.address_components.find(x => x.types[0] === 'locality');\r\n let countryItem = place.address_components.find(x => x.types[0] === 'country');\r\n\r\n this.contactForm.patchValue({\r\n addressLine1: streetnumberItem ? streetnumberItem.long_name : \"\",\r\n addressLine3: streetItem ? streetItem.long_name : \"\",\r\n addressLine4: localityItem ? localityItem.long_name : \"\",\r\n country: countryItem ? countryItem.long_name : \"\",\r\n });\r\n\r\n }\r\n\r\n if (place.geometry) {\r\n let lat = place.geometry.location.lat();\r\n let lng = place.geometry.location.lng();\r\n // let locationName = place.formatted_address;\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n //title: locationName,\r\n position: { lat: lat, lng: lng },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n this.gmap.map.panTo({ lat: lat, lng: lng });\r\n this.contactForm.patchValue({\r\n //location: locationName,\r\n locationLat: lat,\r\n locationLng: lng\r\n });\r\n }\r\n else {\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n this.contactForm.patchValue({\r\n locationLat: null,\r\n locationLng: null\r\n });\r\n }\r\n\r\n this.ref.detectChanges();\r\n }\r\n\r\n handleMapClick(event){\r\n\r\n var location = event.latLng;\r\n\r\n if (this.marker) {\r\n this.marker.setPosition(location);\r\n } else {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.gmap.map\r\n });\r\n }\r\n\r\n this.gmap.map.panTo(location);\r\n\r\n this.contactForm.patchValue({\r\n location: location,\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n });\r\n\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Saved Contact Searches
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Saved Contact Searches\\r\\n There are currently {{contactSavedContactSearches.length}} saved contact searches\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSavedContactSearch.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSavedContactSearch.createdByUserAccountId > 0 ? contactSavedContactSearch.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSavedContactSearch.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSavedContactSearch.updatedByUserAccount ? contactSavedContactSearch.updatedByUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3Qtc2F2ZWQtc2VhcmNoZXMvY29udGFjdC1zYXZlZC1zZWFyY2gtbGlzdC9jb250YWN0LXNhdmVkLXNlYXJjaC1saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { SavedContactSearchService } from \"../../../shared/services/saved-contact-search.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { SavedContactSearch } from \"../../../shared/models/saved-contact-search.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-contact-saved-search-list',\r\n templateUrl: './contact-saved-search-list.component.html',\r\n styleUrls: ['./contact-saved-search-list.component.scss']\r\n})\r\nexport class ContactSavedSearchListComponent implements OnInit {\r\n contactSavedContactSearches: SavedContactSearch[] = [];\r\n isAnim: boolean = true;\r\n\r\n //** Tabs */\r\n contactListTabIndex: number = 0;\r\n contactGroupsTabIndex: number = 1;\r\n savedContactSearchTabIndex: number = 2;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private contactSavedContactSearchService: SavedContactSearchService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetSavedContactSearches();\r\n\r\n // Listen to changes made to contactSavedContactSearches\r\n this.contactSavedContactSearchService.savedContactSearchesChanged.subscribe(\r\n () => {\r\n this.onGetSavedContactSearches();\r\n }\r\n );\r\n }\r\n\r\n onGetSavedContactSearches() {\r\n this.contactSavedContactSearchService.getSavedContactSearches().subscribe(\r\n (contactSavedContactSearches: SavedContactSearch[]) => {\r\n this.contactSavedContactSearches = contactSavedContactSearches;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact searches\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteContactSavedContactSearch(contactSavedContactSearch: SavedContactSearch) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the saved contact search ' + contactSavedContactSearch.name + '?',\r\n accept: () => {\r\n contactSavedContactSearch.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactSavedContactSearchService.deleteSavedContactSearch(contactSavedContactSearch).subscribe(\r\n (response: Response) => {\r\n this.onGetSavedContactSearches();\r\n this.toastService.createSuccessMessage(\"Success\", \"The saved contact search \" + contactSavedContactSearch.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting the saved contact search\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for the contact search \" + contactSavedContactSearch.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n onChangeTabView($event) {\r\n let tabIndex = $event.index;\r\n switch ($event.index) {\r\n case this.contactListTabIndex:\r\n this.router.navigate([\"/contacts/list\"]);\r\n break;\r\n case this.contactGroupsTabIndex:\r\n this.router.navigate([\"/contacts/groups\"]);\r\n break;\r\n case this.savedContactSearchTabIndex:\r\n this.router.navigate([\"/contacts/saved-searches\"]);\r\n break;\r\n }\r\n }\r\n \r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update SavedContactSearch

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Contact Search Name field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3Qtc2F2ZWQtc2VhcmNoZXMvY29udGFjdC1zYXZlZC1zZWFyY2gtbWFuYWdlL2NvbnRhY3Qtc2F2ZWQtc2VhcmNoLW1hbmFnZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { SavedContactSearchService } from \"../../../shared/services/saved-contact-search.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { SavedContactSearch } from \"../../../shared/models/saved-contact-search.model\";\r\n\r\n@Component({\r\n selector: 'app-contact-saved-search-manage',\r\n templateUrl: './contact-saved-search-manage.component.html',\r\n styleUrls: ['./contact-saved-search-manage.component.scss']\r\n})\r\nexport class ContactSavedSearchManageComponent implements OnInit {\r\n savedContactSearchForm: FormGroup; // - Stores the savedContactSearch form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n\r\n savedContactSearch: SavedContactSearch = new SavedContactSearch(); // - Stores SavedContactSearch to populate form with a new / existing SavedContactSearch's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private savedContactSearchService: SavedContactSearchService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const savedContactSearchId = params['id'];\r\n\r\n this.savedContactSearchService.getSavedContactSearch(+savedContactSearchId).subscribe(\r\n (savedContactSearch: SavedContactSearch) => {\r\n this.savedContactSearch = savedContactSearch;\r\n\r\n // Redirect to 404 page if the selected savedContactSearch could not be found\r\n if (!this.savedContactSearch) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving saved contact search\", error);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.savedContactSearchForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.savedContactSearch.name, [Validators.required])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onUpdateSavedContactSearch(newSavedContactSearch: SavedContactSearch) {\r\n this.savedContactSearchService.updateSavedContactSearch(newSavedContactSearch).subscribe(\r\n (response: Response) => {\r\n this.savedContactSearchService.savedContactSearchesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The saved contact search \" + newSavedContactSearch.name + \" has been updated.\");\r\n this.router.navigate(['/contacts/saved-searches']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating saved contact search\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newSavedContactSearch = this.formBuilder.sanitizeFormValues(this.savedContactSearchForm).value;\r\n\r\n newSavedContactSearch.id = this.savedContactSearch.id; // - Set id of edited savedContactSearch to its original id\r\n newSavedContactSearch.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateSavedContactSearch(newSavedContactSearch);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { ContactSavedSearchesComponent } from \"../contact-saved-searches/contact-saved-searches.component\";\r\nimport { ContactSavedSearchListComponent } from \"../contact-saved-searches/contact-saved-search-list/contact-saved-search-list.component\";\r\nimport { ContactSavedSearchManageComponent } from \"../contact-saved-searches/contact-saved-search-manage/contact-saved-search-manage.component\";\r\n\r\nconst savedSearchesRoutes: Routes = [\r\n {\r\n path: 'contacts',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'saved-searches', component: ContactSavedSearchesComponent,\r\n children: [\r\n {\r\n path: '', component: ContactSavedSearchListComponent,\r\n children: [\r\n { path: ':id/edit', component: ContactSavedSearchManageComponent },\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(savedSearchesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContactSavedSearchesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3Qtc2F2ZWQtc2VhcmNoZXMvY29udGFjdC1zYXZlZC1zZWFyY2hlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-saved-searches',\r\n templateUrl: './contact-saved-searches.component.html',\r\n styleUrls: ['./contact-saved-searches.component.scss']\r\n})\r\nexport class ContactSavedSearchesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ContactSavedSearchesRoutingModule } from \"./contact-saved-searches-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { ContactSavedSearchesComponent } from './contact-saved-searches.component';\r\nimport { ContactSavedSearchListComponent } from './contact-saved-search-list/contact-saved-search-list.component';\r\nimport { ContactSavedSearchManageComponent } from './contact-saved-search-manage/contact-saved-search-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactSavedSearchesComponent,\r\n ContactSavedSearchListComponent,\r\n ContactSavedSearchManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ContactSavedSearchesRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class ContactSavedSearchesModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Contact Sources
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Contact Sources\\r\\n There are currently {{contactSources.length}} contact sources\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSource.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSource.createdByUserAccountId > 0 ? contactSource.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSource.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactSource.updatedByUserAccount ? contactSource.updatedByUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3Qtc291cmNlcy9jb250YWN0LXNvdXJjZS1saXN0L2NvbnRhY3Qtc291cmNlLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { ContactSourceService } from \"../../../shared/services/contact-source.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { ContactSource } from \"../../../shared/models/contact-source.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-contact-source-list',\r\n templateUrl: './contact-source-list.component.html',\r\n styleUrls: ['./contact-source-list.component.scss']\r\n})\r\nexport class ContactSourceListComponent implements OnInit {\r\n contactSources: ContactSource[] = [];\r\n isAnim: boolean = true;\r\n\r\n systemCreatedById = PrepopulatedEntities.SystemContactSourceCreatedById; // - Id of System used to check if contact source was prepopulated (Added by system)\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private contactSourceService: ContactSourceService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetContactSources();\r\n\r\n // Listen to changes made to contactSources\r\n this.contactSourceService.sourcesChanged.subscribe(\r\n () => {\r\n this.onGetContactSources();\r\n }\r\n );\r\n }\r\n\r\n onGetContactSources() {\r\n this.contactSourceService.getContactSources().subscribe(\r\n (contactSources: ContactSource[]) => {\r\n this.contactSources = contactSources;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact sources\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteContactSource(contactSource: ContactSource) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the contact source ' + contactSource.name + '?',\r\n accept: () => {\r\n contactSource.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactSourceService.deleteContactSource(contactSource).subscribe(\r\n (response: Response) => {\r\n this.onGetContactSources();\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact source \" + contactSource.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting contact source\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for contact source \" + contactSource.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Contact Source

\\r\\n

New Contact Source

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Contact Source field is required.\\r\\n \\r\\n \\r\\n There is already a contact source with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3Qtc291cmNlcy9jb250YWN0LXNvdXJjZS1tYW5hZ2UvY29udGFjdC1zb3VyY2UtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { ContactSourceService } from \"../../../shared/services/contact-source.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { ContactSource } from \"../../../shared/models/contact-source.model\";\r\n\r\nimport { valueExistsValidator } from \"../../../shared/validators/value-exists.validator\";\r\n\r\n@Component({\r\n selector: 'app-contact-source-manage',\r\n templateUrl: './contact-source-manage.component.html',\r\n styleUrls: ['./contact-source-manage.component.scss']\r\n})\r\nexport class ContactSourceManageComponent implements OnInit {\r\n contactSourceForm: FormGroup; // - Stores the contactSource form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a contactSource if true and add a new contactSource if false\r\n\r\n contactSources: ContactSource[] = []; // - Stores all contactSources retrieved from db\r\n contactSource: ContactSource = new ContactSource(); // - Stores ContactSource to populate form with a new / existing ContactSource's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private contactSourceService: ContactSourceService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.contactSourceService.getContactSources().subscribe(\r\n (contactSources: ContactSource[]) => {\r\n this.contactSources = contactSources; // - Store all contact sources retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const contactSourceId = params['id'];\r\n this.isEdit = contactSourceId != null;\r\n\r\n if (this.isEdit) {\r\n this.contactSource = this.contactSources.find(cSource => cSource.id === +contactSourceId); // - Store the selected contactSource\r\n\r\n // Redirect to 404 page if the selected contactSource could not be found\r\n if (!this.contactSource) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact sources\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all contactSource names to know if it already exists\r\n const contactSourceNames = this.contactSources.map(cSource => cSource.name);\r\n\r\n this.contactSourceForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.contactSource.name, [Validators.required, valueExistsValidator(contactSourceNames)])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddContactSource(newContactSource: ContactSource) {\r\n this.contactSourceService.addContactSource(newContactSource).subscribe(\r\n (response: Response) => {\r\n this.contactSourceService.sourcesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact source \" + newContactSource.name + \" has been created.\");\r\n this.router.navigate(['/contacts/sources']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding contact source\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateContactSource(newContactSource: ContactSource) {\r\n this.contactSourceService.updateContactSource(newContactSource).subscribe(\r\n (response: Response) => {\r\n this.contactSourceService.sourcesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact source \" + newContactSource.name + \" has been updated.\");\r\n this.router.navigate(['/contacts/sources']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating contact source\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newContactSource = this.formBuilder.sanitizeFormValues(this.contactSourceForm).value;\r\n\r\n if (this.isEdit) {\r\n newContactSource.id = this.contactSource.id; // - Set id of edited contactSource to its original id\r\n newContactSource.createdByUserAccountId = this.contactSource.createdByUserAccountId; // - Need createdById of original contact source to check if it is a prepopulated source\r\n newContactSource.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateContactSource(newContactSource);\r\n }\r\n else {\r\n newContactSource.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddContactSource(newContactSource);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { ContactSourcesComponent } from \"../contact-sources/contact-sources.component\";\r\nimport { ContactSourceListComponent } from \"../contact-sources/contact-source-list/contact-source-list.component\";\r\nimport { ContactSourceManageComponent } from \"../contact-sources/contact-source-manage/contact-source-manage.component\";\r\n\r\nconst sourcesRoutes: Routes = [\r\n {\r\n path: 'contacts',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n // {\r\n // path: 'sources', component: ContactSourcesComponent,\r\n // children: [\r\n // { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n // { path: 'list', component: ContactSourceListComponent },\r\n // { path: ':id/edit', component: ContactSourceManageComponent, canActivate: [RoleGuard] },\r\n // { path: 'new', component: ContactSourceManageComponent, canActivate: [RoleGuard] }\r\n // ]\r\n // }\r\n {\r\n path: 'sources', component: ContactSourcesComponent,\r\n children: [\r\n {\r\n path: '', component: ContactSourceListComponent,\r\n children: [\r\n { path: ':id/edit', component: ContactSourceManageComponent, canActivate: [RoleGuard] },\r\n { path: 'new', component: ContactSourceManageComponent, canActivate: [RoleGuard] }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(sourcesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContactSourcesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3Qtc291cmNlcy9jb250YWN0LXNvdXJjZXMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-sources',\r\n templateUrl: './contact-sources.component.html',\r\n styleUrls: ['./contact-sources.component.scss']\r\n})\r\nexport class ContactSourcesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ContactSourcesRoutingModule } from \"./contact-sources-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { ContactSourcesComponent } from './contact-sources.component';\r\nimport { ContactSourceListComponent } from './contact-source-list/contact-source-list.component';\r\nimport { ContactSourceManageComponent } from './contact-source-manage/contact-source-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactSourcesComponent,\r\n ContactSourceListComponent,\r\n ContactSourceManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ContactSourcesRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class ContactSourcesModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Contact Types
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Contact Types\\r\\n There are currently {{contactTypes.length}} contact types\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactType.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactType.createdByUserAccountId > 0 ? contactType.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactType.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contactType.updatedByUserAccount ? contactType.updatedByUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtdHlwZXMvY29udGFjdC10eXBlLWxpc3QvY29udGFjdC10eXBlLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { ContactTypeService } from \"../../../shared/services/contact-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { ContactType } from \"../../../shared/models/contact-type.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-contact-type-list',\r\n templateUrl: './contact-type-list.component.html',\r\n styleUrls: ['./contact-type-list.component.scss']\r\n})\r\nexport class ContactTypeListComponent implements OnInit {\r\n contactTypes: ContactType[] = [];\r\n isAnim: boolean = true;\r\n\r\n systemCreatedById = PrepopulatedEntities.SystemContactTypeCreatedById; // - Id of System used to check if contact type was prepopulated (Added by system)\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private contactTypeService: ContactTypeService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetContactTypes();\r\n\r\n // Listen to changes made to contactTypes\r\n this.contactTypeService.typesChanged.subscribe(\r\n () => {\r\n this.onGetContactTypes();\r\n }\r\n );\r\n }\r\n\r\n onGetContactTypes() {\r\n this.contactTypeService.getTypeContacts().subscribe(\r\n (contactTypes: ContactType[]) => {\r\n this.contactTypes = contactTypes;\r\n console.log(this.contactTypes);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact types\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteContactType(contactType: ContactType) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the contact type ' + contactType.name + '?',\r\n accept: () => {\r\n contactType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.contactTypeService.deleteTypeContact(contactType).subscribe(\r\n (response: Response) => {\r\n this.onGetContactTypes();\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact type \" + contactType.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting contact type\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for contact type \" + contactType.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Contact Type

\\r\\n

New Contact Type

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Contact Type field is required.\\r\\n \\r\\n \\r\\n There is already a contact type with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtdHlwZXMvY29udGFjdC10eXBlLW1hbmFnZS9jb250YWN0LXR5cGUtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { ContactTypeService } from \"../../../shared/services/contact-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { ContactType } from \"../../../shared/models/contact-type.model\";\r\n\r\nimport { valueExistsValidator } from \"../../../shared/validators/value-exists.validator\";\r\n\r\n@Component({\r\n selector: 'app-contact-type-manage',\r\n templateUrl: './contact-type-manage.component.html',\r\n styleUrls: ['./contact-type-manage.component.scss']\r\n})\r\nexport class ContactTypeManageComponent implements OnInit {\r\n contactTypeForm: FormGroup; // - Stores the contactType form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a contactType if true and add a new contactType if false\r\n\r\n contactTypes: ContactType[] = []; // - Stores all contactTypes retrieved from db\r\n contactType: ContactType = new ContactType(); // - Stores ContactType to populate form with a new / existing ContactType's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private contactTypeService: ContactTypeService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.contactTypeService.getTypeContacts().subscribe(\r\n (contactTypes: ContactType[]) => {\r\n this.contactTypes = contactTypes; // - Store all contact types retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const contactTypeId = params['id'];\r\n this.isEdit = contactTypeId != null;\r\n\r\n if (this.isEdit) {\r\n this.contactType = this.contactTypes.find(cType => cType.id === +contactTypeId); // - Store the selected contactType\r\n\r\n // Redirect to 404 page if the selected contactType could not be found\r\n if (!this.contactType) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact types\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all contactType names to know if it already exists\r\n const contactTypeNames = this.contactTypes.map(cType => cType.name);\r\n\r\n this.contactTypeForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.contactType.name, [Validators.required, valueExistsValidator(contactTypeNames)])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddContactType(newContactType: ContactType) {\r\n this.contactTypeService.addTypeContact(newContactType).subscribe(\r\n (response: Response) => {\r\n this.contactTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact type \" + newContactType.name + \" has been created.\");\r\n this.router.navigate(['/contacts/types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding contact type\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateContactType(newContactType: ContactType) {\r\n this.contactTypeService.updateTypeContact(newContactType).subscribe(\r\n (response: Response) => {\r\n this.contactTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The contact type \" + newContactType.name + \" has been updated.\");\r\n this.router.navigate(['/contacts/types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating contact type\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newContactType = this.formBuilder.sanitizeFormValues(this.contactTypeForm).value;\r\n\r\n if (this.isEdit) {\r\n newContactType.id = this.contactType.id; // - Set id of edited contactType to its original id\r\n newContactType.createdByUserAccountId = this.contactType.createdByUserAccountId; // - Need createdById of original contact type to check if it is a prepopulated type\r\n newContactType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateContactType(newContactType);\r\n }\r\n else {\r\n newContactType.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddContactType(newContactType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { ContactTypesComponent } from \"../contact-types/contact-types.component\";\r\nimport { ContactTypeListComponent } from \"../contact-types/contact-type-list/contact-type-list.component\";\r\nimport { ContactTypeManageComponent } from \"../contact-types/contact-type-manage/contact-type-manage.component\";\r\n\r\nconst typesRoutes: Routes = [\r\n {\r\n path: 'contacts',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'types', component: ContactTypesComponent,\r\n children: [\r\n {\r\n path: '', component: ContactTypeListComponent,\r\n children: [\r\n { path: ':id/edit', component: ContactTypeManageComponent, canActivate: [RoleGuard] },\r\n { path: 'new', component: ContactTypeManageComponent, canActivate: [RoleGuard] }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(typesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContactTypesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3QtdHlwZXMvY29udGFjdC10eXBlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-types',\r\n templateUrl: './contact-types.component.html',\r\n styleUrls: ['./contact-types.component.scss']\r\n})\r\nexport class ContactTypesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ContactTypesRoutingModule } from \"./contact-types-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { ContactTypesComponent } from './contact-types.component';\r\nimport { ContactTypeListComponent } from './contact-type-list/contact-type-list.component';\r\nimport { ContactTypeManageComponent } from './contact-type-manage/contact-type-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactTypesComponent,\r\n ContactTypeListComponent,\r\n ContactTypeManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ContactTypesRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class ContactTypesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\n\r\nimport { ContactsComponent } from \"../contacts/contacts.component\";\r\nimport { ContactListComponent } from \"../contacts/contact-list/contact-list.component\";\r\nimport { ContactManageComponent } from \"../contacts/contact-manage/contact-manage.component\";\r\n\r\nimport { ContactFilesComponent } from \"../contacts/contact-files/contact-files.component\";\r\nimport { ContactFileListComponent } from \"../contacts/contact-files/contact-file-list/contact-file-list.component\";\r\nimport { ContactFileManageComponent } from \"../contacts/contact-files/contact-file-manage/contact-file-manage.component\";\r\nimport { ContactImportComponent } from '../contacts/contact-import/contact-import.component';\r\n\r\nconst contactsRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'contacts', component: ContactsComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: ContactListComponent },\r\n { path: ':id/edit', component: ContactManageComponent },\r\n { path: 'new', component: ContactManageComponent },\r\n { path: 'new/:organizationId', component: ContactManageComponent },\r\n { path: 'import', component: ContactImportComponent, canActivate:[] },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(contactsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ContactsRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2NvbnRhY3RzL2NvbnRhY3RzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.scss']\r\n})\r\nexport class ContactsComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { ContactsRoutingModule } from \"./contacts-routing.module\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { ContactTypesModule } from \"./contact-types/contact-types.module\";\r\nimport { ContactSourcesModule } from \"./contact-sources/contact-sources.module\";\r\nimport { CommunicationHistoryModule } from \"./communication-history/communication-history.module\";\r\nimport { ContactFilesModule } from \"./contact-files/contact-files.module\";\r\nimport { ContactGroupsModule } from './contact-groups/contact-groups.module';\r\nimport { ContactSavedSearchesModule } from './contact-saved-searches/contact-saved-searches.module';\r\n\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\nimport { CalendarModule, DropdownModule, GMapModule, MultiSelectModule } from 'primeng/primeng';\r\n\r\nimport { ContactsComponent } from \"./contacts.component\";\r\nimport { ContactListComponent } from './contact-list/contact-list.component';\r\nimport { ContactManageComponent } from './contact-manage/contact-manage.component';\r\nimport { ContactImportComponent } from './contact-import/contact-import.component';\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactsComponent,\r\n ContactListComponent,\r\n ContactManageComponent,\r\n ContactImportComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ContactsRoutingModule,\r\n ContactTypesModule,\r\n ContactSourcesModule,\r\n ContactFilesModule,\r\n ContactGroupsModule,\r\n ContactSavedSearchesModule,\r\n CommunicationHistoryModule,\r\n ReactiveFormsModule,\r\n CollapseModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n DropzoneModule,\r\n GMapModule \r\n ]\r\n})\r\nexport class ContactsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { AppRoutingModule } from \"../../app-routing.module\";\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../auth/role-guard.service\";\r\nimport { SuperAdminGuard } from '../auth/super-admin-guard.service';\r\n\r\nimport { AuthService } from \"../auth/auth.service\";\r\nimport { UserService } from \"../shared/services/user.service\";\r\nimport { ContactService } from \"../shared/services/contact.service\";\r\nimport { ContactTypeService } from \"../shared/services/contact-type.service\";\r\nimport { ContactSourceService } from \"../shared/services/contact-source.service\";\r\nimport { CommunicationHistoryService } from \"../shared/services/communication-history.service\";\r\nimport { CommunicationHistoryTypeService } from \"../shared/services/communication-history-type.service\";\r\nimport { TaskService } from \"../shared/services/task.service\";\r\nimport { ToastService } from \"../shared/services/toast.service\";\r\nimport { LoadingSpinnerService } from \"../shared/services/loading-spinner.service\";\r\nimport { ConfirmationService } from \"primeng/components/common/api\";\r\nimport { EmailService } from \"../shared/services/email.service\";\r\nimport { OpportunityService } from \"../shared/services/opportunity.service\";\r\nimport { OpportunityTypeService } from \"../shared/services/opportunity-type.service\";\r\nimport { ContactFileService } from \"../shared/services/contact-file.service\";\r\nimport { OpportunityFileService } from \"../shared/services/opportunity-file.service\";\r\nimport { TagService } from '../shared/services/tag.service';\r\nimport { UtilityService } from \"../shared/services/utility.service\";\r\nimport { TableUtilityService } from \"../shared/services/table-utility.service\";\r\nimport { SmsWarriorsService } from '../shared/services/sms-warriors.service';\r\nimport { MessageTemplateService } from '../shared/services/message-template.service';\r\nimport { SmsWarriorsProfileService } from '../shared/services/sms-warriors-profile.service';\r\nimport { EmailProfileService } from '../shared/services/email-profile.service';\r\nimport { OpportunityLostTypeService } from '../shared/services/opportunity-lost-type.service';\r\nimport { MailchimpService } from '../shared/services/mailchimp.service';\r\nimport { TaskTypeService } from '../shared/services/task-type.service';\r\nimport { ProductService } from '../shared/services/product.service';\r\nimport { GroupService } from '../shared/services/group.service';\r\nimport { SavedContactSearchService } from '../shared/services/saved-contact-search.service';\r\nimport { LeadDeskService } from '../shared/services/lead-desk.service';\r\nimport { OrganizationService } from '../shared/services/organization.service';\r\nimport { MessageSignatureService } from '../shared/services/message-signature.service';\r\nimport { ComplaintService } from '../shared/services/complaint.service';\r\nimport { ComplaintTypeService } from '../shared/services/complaint-type.service';\r\nimport { ComplaintLogService } from '../shared/services/complaint-log.service';\r\n\r\nimport { CustomFormBuilder } from \"../shared/classes/CustomFormBuilder\";\r\nimport { FormUtilityService } from 'app/shared/form-utility.service';\r\nimport { QuoteService } from '../shared/services/quote.service';\r\nimport { PropertyService } from '../shared/services/property.service';\r\nimport { PaymentTermService } from '../shared/services/payment-term.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n\r\n ],\r\n imports: [\r\n SharedModule,\r\n AppRoutingModule\r\n ],\r\n exports: [\r\n AppRoutingModule\r\n ],\r\n providers: [\r\n // { provide: LocationStrategy, useClass: HashLocationStrategy },\r\n AuthGuard,\r\n RoleGuard,\r\n SuperAdminGuard,\r\n FormUtilityService,\r\n // AuthService,\r\n UserService,\r\n ContactService,\r\n ContactTypeService,\r\n ContactSourceService,\r\n CommunicationHistoryService,\r\n CommunicationHistoryTypeService,\r\n TaskService,\r\n ConfirmationService,\r\n ToastService,\r\n LoadingSpinnerService,\r\n EmailService,\r\n OpportunityService,\r\n OpportunityTypeService,\r\n ContactFileService,\r\n OpportunityFileService,\r\n TagService,\r\n SmsWarriorsService,\r\n MailchimpService,\r\n MessageTemplateService,\r\n SmsWarriorsProfileService,\r\n EmailProfileService,\r\n OpportunityLostTypeService,\r\n TaskTypeService,\r\n ProductService,\r\n GroupService,\r\n SavedContactSearchService,\r\n LeadDeskService,\r\n\r\n UtilityService,\r\n TableUtilityService,\r\n OrganizationService,\r\n MessageSignatureService,\r\n ComplaintService,\r\n ComplaintTypeService,\r\n PaymentTermService,\r\n ComplaintLogService,\r\n CustomFormBuilder,\r\n QuoteService,\r\n PropertyService\r\n ]\r\n})\r\nexport class CoreModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\n\r\nimport { DashboardComponent } from \"./dashboard.component\";\r\n\r\nconst dashboardRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'dashboard', component: DashboardComponent\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(dashboardRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class DashboardRoutingModule { }","module.exports = \"
\\r\\n \\r\\n
\\r\\n

Welcome {{ loggedUserName }} Developer Mode is enabled!

\\r\\n You have {{ todayTasks.length }} upcoming tasks for today and {{ lateTasks.length }} late tasks.\\r\\n
    0 || todayTasksDone.length > 0\\\">\\r\\n \\r\\n
  • \\r\\n \\r\\n {{ task.reminderDate | date:'HH:mm a' }}\\r\\n \\r\\n {{ i + 1 }} {{ task.taskDescrip\\r\\n
  • \\r\\n \\r\\n
  • \\r\\n \\r\\n {{ task.reminderDate | date:'HH:mm a' }}\\r\\n \\r\\n \\r\\n \\r\\n {{ task.taskDescription }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
No tasks pending for today.
\\r\\n Add Task.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Sales Opportunities Overview\\r\\n

\\r\\n

\\r\\n Acquisition Opportunities Overview\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n A\\r\\n M\\r\\n D\\r\\n
Sale Opportunities
\\r\\n
Acquisition Opportunities
\\r\\n
\\r\\n
\\r\\n

{{ openOpportunitiesCountToDisplay }}

\\r\\n Open Sale Opportunities ({{ openOpportunitiesCountToDisplayText }})\\r\\n Open Acquisition Opportunities ({{ openOpportunitiesCountToDisplayText }})\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n A\\r\\n M\\r\\n D\\r\\n
Closed Sale Opportunities
\\r\\n
Closed Acquisition Opportunities
\\r\\n
\\r\\n
\\r\\n

{{ closedOpportunitiesCountToDisplay }}

\\r\\n Closed Sale Opportunities ({{ closedOpportunitiesCountToDisplayText }})\\r\\n Closed Acquisition Opportunities ({{ closedOpportunitiesCountToDisplayText }})\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".report-link {\\n color: #1c84c6;\\n font-weight: 500; }\\n\\n.widget {\\n height: 140px;\\n min-height: 140px;\\n max-height: 140px; }\\n\\n.mouse-pointer {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3MvZGFzaGJvYXJkL0M6XFxKZW5raW5zXFwuamVua2luc1xcd29ya3NwYWNlXFxDUk0tQUNRLVBPUlRBTC1QUk9EXFxJU0IuQ1JNLldlYnNpdGUvc3JjXFxhcHBcXHZpZXdzXFxkYXNoYm9hcmRcXGRhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGNBQWM7RUFDZCxnQkFBZ0IsRUFBQTs7QUFHcEI7RUFDSSxhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNFLGVBQWUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucmVwb3J0LWxpbmsge1xyXG4gICAgY29sb3I6ICMxYzg0YzY7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG4ud2lkZ2V0IHtcclxuICAgIGhlaWdodDogMTQwcHg7XHJcbiAgICBtaW4taGVpZ2h0OiAxNDBweDtcclxuICAgIG1heC1oZWlnaHQ6IDE0MHB4O1xyXG59XHJcblxyXG4ubW91c2UtcG9pbnRlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../auth/auth.service\";\r\nimport { ContactService } from \"../shared/services/contact.service\";\r\nimport { OpportunityService } from \"../shared/services/opportunity.service\";\r\nimport { UtilityService } from \"../shared/services/utility.service\";\r\nimport { TaskService } from 'app/views/shared/services/task.service';\r\nimport { CookieService } from 'ngx-cookie';\r\n\r\nimport { Contact } from \"../shared/models/contact.model\";\r\nimport { OpportunityProgress } from \"../shared/models/opportunity-progress.model\";\r\nimport { Opportunity } from \"app/views/shared/models/opportunity.model\";\r\nimport { PrepopulatedContactTypes, ApiEndPoints, ComponentStyling, PrepopulatedOpportunityTypes } from \"app.constant\";\r\nimport { Task } from \"../shared/models/task.model\";\r\n\r\nimport { SelectItem } from \"primeng/primeng\";\r\nimport { ToastService } from 'app/views/shared/services/toast.service';\r\nimport { CallInfo } from 'app/views/shared/models/lead-desk/call-info.model';\r\nimport { AppSettings } from 'app.settings';\r\nimport { DeveloperModeHelper } from '../shared/developer.mode.service';\r\nimport { SYSTEM_KEYS, SystemModeHelper } from '../shared/system-config.service';\r\nimport { System } from '../shared/system';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent extends System implements OnInit {\r\n\r\n public SYSTEM_KEYS : SYSTEM_KEYS = SYSTEM_KEYS;\r\n \r\n // totalLeadsCount: number = 0;\r\n // totalLeadsCountText: string = \"Daily\";\r\n\r\n // conversionsThisMonthCount: number = 0; // - The number of contacts converted from 'Lead' to 'Contact'\r\n // conversionsThisMonthCountText: string = \"Daily\";\r\n\r\n totalOpenOpportunitiesCount: number = 0;\r\n monthlyOpenOpportunitiesCount: number = 0;\r\n dailyOpenOpportunitiesCount: number = 0;\r\n openOpportunitiesCountToDisplay: number = 0;\r\n openOpportunitiesCountToDisplayText: string = \"Daily\";\r\n\r\n totalClosedOppCount: number=0;\r\n totalClosedOpportunitiesCount: number = 0; // - The number of opportunities with type 'Closed'\r\n closedOpportunitiesThisMonthCount: number = 0;\r\n dailyClosedOpportunitiesCount: number = 0;\r\n closedOpportunitiesCountToDisplay: number = 0;\r\n closedOpportunitiesCountToDisplayText: string = \"Daily\";\r\n\r\n totalLostOpportunitiesCount: number = 0; // - The number of opportunities with type 'Lost'\r\n\r\n tasks: Task[] = []; // - List of all tasks\r\n todayTasks: Task[] = []; // - List of all tasks for today\r\n todayTasksDone: Task[] = []; // - List of all done tasks for today\r\n lateTasks: Task[] = []; // - List of all late tasks\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n loggedUserName: String = '';\r\n\r\n //** Line Chart */\r\n opportunities: Opportunity[] = []; // - Stores all Opportunities\r\n opportunitiesWithProgress: Opportunity[] = []; // - Stores all Opportunities with a progress history\r\n opportunitiesOptions: SelectItem[] = []; // - Stores Opportunity Dropdown Options for the LineChart\r\n selectedOpportunityOption: any; // - Stores the selected dropdown option for opportunity\r\n chartData: any; // - The data to be displayed in the chart\r\n oppChartData: any; // - The data to be displayed in the opportunity chart\r\n\r\n weekDays: string[] = [ // - The days of the week, you can change values but do not change the order!\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ];\r\n oppChartLabels: string[] = [\r\n PrepopulatedOpportunityTypes.Open, \"Closed\", PrepopulatedOpportunityTypes.Lost\r\n ]\r\n chartOptions: any = {\r\n series: {\r\n lines: {\r\n show: false,\r\n fill: true\r\n },\r\n splines: {\r\n show: true,\r\n tension: 0.4,\r\n lineWidth: 1,\r\n fill: 0.4\r\n },\r\n points: {\r\n radius: 0,\r\n show: true\r\n },\r\n shadowSize: 2\r\n },\r\n grid: {\r\n hoverable: true,\r\n clickable: true,\r\n tickColor: \"#d5d5d5\",\r\n borderWidth: 1,\r\n color: '#d5d5d5'\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.4 // - Disables line curves in line chart\r\n }\r\n },\r\n scales: {\r\n yAxes: [{\r\n stacked: true,\r\n }]\r\n },\r\n legend: {\r\n display: false\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false\r\n };\r\n\r\n oppChartOptions: any = {\r\n legend: {\r\n display: false\r\n }\r\n };\r\n\r\n accessToken = localStorage.getItem('accessToken');\r\n isDev: boolean;\r\n developerMode$: any;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private contactService: ContactService,\r\n private opportunityService: OpportunityService,\r\n private utilService: UtilityService,\r\n private taskService: TaskService,\r\n private cookieService: CookieService,\r\n private toastService: ToastService,\r\n private devMode: DeveloperModeHelper,\r\n private systemModeHelper : SystemModeHelper\r\n ) {\r\n super(systemModeHelper)\r\n }\r\n\r\n ngOnInit() {\r\n\r\n super.ngOnInit();\r\n \r\n this.onGetContactsCount();\r\n this.onGetOpportunitiesForDashboard();\r\n this.onGetTasks();\r\n\r\n this.loggedUserName = this.authService.getUser().profile['given_name'];\r\n\r\n this.developerMode$ = this.devMode.isDeveloperModeEnabled.subscribe((isDev)=> {\r\n this.isDev = isDev;\r\n })\r\n }\r\n\r\n onGetContactsCount() {\r\n let leadWidgetType = this.cookieService.getObject(\"crm_widgetLeadsType\") as number;\r\n leadWidgetType = leadWidgetType ? leadWidgetType : 1;\r\n\r\n let convertedLeadWidgetType = this.cookieService.getObject(\"crm_widgetConvertedLeadsType\") as number;\r\n convertedLeadWidgetType = convertedLeadWidgetType ? convertedLeadWidgetType : 1;\r\n\r\n // this.onChangeLeadsCount(leadWidgetType);\r\n // this.onChangeConvertedLeadsCount(convertedLeadWidgetType);\r\n }\r\n\r\n // onChangeLeadsCount(type: number) {\r\n // this.contactService.getLeadsCount(type).subscribe(\r\n // (leadsCount: number) => {\r\n // this.totalLeadsCount = leadsCount;\r\n\r\n // this.cookieService.putObject(\"crm_widgetLeadsType\", type);\r\n\r\n // switch (type) {\r\n // case 1:\r\n // this.totalLeadsCountText = \"Daily\"\r\n // break;\r\n // case 2:\r\n // this.totalLeadsCountText = \"Monthly\"\r\n // break;\r\n // case 3:\r\n // this.totalLeadsCountText = \"All-Time\"\r\n // break;\r\n // default:\r\n // this.totalLeadsCountText = \"Daily\"\r\n // break;\r\n // }\r\n // }\r\n // );\r\n // }\r\n\r\n // onChangeConvertedLeadsCount(type: number) {\r\n // this.contactService.getLeadsConvertedThisMonthCount(type).subscribe(\r\n // (leadsCount: number) => {\r\n // this.conversionsThisMonthCount = leadsCount;\r\n\r\n // this.cookieService.putObject(\"crm_widgetConvertedLeadsType\", type);\r\n\r\n // switch (type) {\r\n // case 1:\r\n // this.conversionsThisMonthCountText = \"Daily\"\r\n // break;\r\n // case 2:\r\n // this.conversionsThisMonthCountText = \"Monthly\"\r\n // break;\r\n // case 3:\r\n // this.conversionsThisMonthCountText = \"All-Time\"\r\n // break;\r\n // default:\r\n // this.conversionsThisMonthCountText = \"Daily\"\r\n // break;\r\n // }\r\n // }\r\n // );\r\n // }\r\n\r\n onChangeOpenOpportunitiesCount(type: number) {\r\n this.cookieService.putObject(\"crm_widgetOpenOpportunitiesType\", type);\r\n\r\n switch (type) {\r\n case 1:\r\n this.openOpportunitiesCountToDisplayText = \"Daily\"\r\n this.openOpportunitiesCountToDisplay = this.dailyOpenOpportunitiesCount;\r\n break;\r\n case 2:\r\n this.openOpportunitiesCountToDisplayText = \"Monthly\"\r\n this.openOpportunitiesCountToDisplay = this.monthlyOpenOpportunitiesCount;\r\n break;\r\n case 3:\r\n this.openOpportunitiesCountToDisplayText = \"All-Time\"\r\n this.openOpportunitiesCountToDisplay = this.totalOpenOpportunitiesCount;\r\n break;\r\n default:\r\n this.openOpportunitiesCountToDisplayText = \"Daily\"\r\n this.openOpportunitiesCountToDisplay = this.dailyOpenOpportunitiesCount;\r\n break;\r\n }\r\n }\r\n\r\n onChangeClosedOpportunitiesCount(type: number) {\r\n this.cookieService.putObject(\"crm_widgetClosedOpportunitiesType\", type);\r\n\r\n switch (type) {\r\n case 1:\r\n this.closedOpportunitiesCountToDisplayText = \"Daily\"\r\n this.closedOpportunitiesCountToDisplay = this.dailyClosedOpportunitiesCount;\r\n break;\r\n case 2:\r\n this.closedOpportunitiesCountToDisplayText = \"Monthly\"\r\n this.closedOpportunitiesCountToDisplay = this.closedOpportunitiesThisMonthCount;\r\n break;\r\n case 3:\r\n this.closedOpportunitiesCountToDisplayText = \"All-Time\"\r\n this.closedOpportunitiesCountToDisplay = this.totalClosedOppCount;//this.totalClosedOpportunitiesCount;\r\n break;\r\n default:\r\n this.closedOpportunitiesCountToDisplayText = \"Daily\"\r\n this.closedOpportunitiesCountToDisplay = this.dailyClosedOpportunitiesCount;\r\n break;\r\n }\r\n }\r\n\r\n onGetOpportunitiesForDashboard() {\r\n this.opportunityService.getOpportunitiesForDashboard().subscribe(\r\n (opportunities: Opportunity[]) => {\r\n this.opportunities = opportunities;\r\n\r\n // - Get the number of Opportunities of type 'Open'\r\n this.totalOpenOpportunitiesCount =\r\n this.opportunities.filter(o => o.opportunityType.name === PrepopulatedOpportunityTypes.Open).length;\r\n\r\n this.monthlyOpenOpportunitiesCount =\r\n this.opportunities.filter(o =>\r\n o.opportunityType.name === PrepopulatedOpportunityTypes.Open &&\r\n this.utilService.isDateInCurrentMonth(new Date(o.createdOn))\r\n ).length;\r\n\r\n this.dailyOpenOpportunitiesCount =\r\n this.opportunities.filter(o =>\r\n o.opportunityType.name === PrepopulatedOpportunityTypes.Open &&\r\n new Date(o.createdOn).setHours(0,0,0,0) === new Date().setHours(0,0,0,0)\r\n ).length;\r\n\r\n let openOppWidgetType = this.cookieService.getObject(\"crm_widgetOpenOpportunitiesType\") as number;\r\n openOppWidgetType = openOppWidgetType ? openOppWidgetType : 1;\r\n\r\n this.onChangeOpenOpportunitiesCount(openOppWidgetType);\r\n\r\n // - Get the number of Opportunities of type 'Closed'\r\n this.totalClosedOpportunitiesCount =\r\n this.opportunities.filter(o => o.opportunityType.name === \"Closed\").length;\r\n // - Get the number of Opportunities of type 'Lost'\r\n this.totalLostOpportunitiesCount =\r\n this.opportunities.filter(o => o.opportunityType.name === PrepopulatedOpportunityTypes.Lost).length;\r\n\r\n let closedOpps = opportunities.filter(o => o.closedDate);\r\n this.totalClosedOppCount = closedOpps.length;\r\n let closedOppsThisMonth = closedOpps.filter(o => this.utilService.isDateInCurrentMonth(new Date(o.closedDate)));\r\n this.closedOpportunitiesThisMonthCount = closedOppsThisMonth.length;\r\n\r\n this.dailyClosedOpportunitiesCount =\r\n closedOpps.filter(o =>\r\n new Date(o.closedDate).setHours(0,0,0,0) === new Date().setHours(0,0,0,0)\r\n ).length;\r\n\r\n let closedOppWidgetType = this.cookieService.getObject(\"crm_widgetClosedOpportunitiesType\") as number;\r\n closedOppWidgetType = closedOppWidgetType ? closedOppWidgetType : 1;\r\n\r\n this.onChangeClosedOpportunitiesCount(closedOppWidgetType);\r\n\r\n this.oppChartData = {\r\n labels: this.oppChartLabels,\r\n datasets: [\r\n {\r\n data: [this.totalOpenOpportunitiesCount, this.totalClosedOpportunitiesCount, this.totalLostOpportunitiesCount],\r\n backgroundColor: ['#a3e1d4', '#dedede', '#9CC3DA']\r\n }\r\n ]\r\n }\r\n\r\n this.setupChart();\r\n }\r\n );\r\n }\r\n\r\n /** Opportunity Progression LineChart - Start */\r\n setupChart() {\r\n // - Sort stored list of retrieved opportunities by the most recently created opportunities\r\n this.opportunities = this.utilService.sortListByValueName(this.opportunities, \"createdOn\", false);\r\n\r\n // - Get only the opportunities that have at least 1 Opportunity Progress record\r\n this.opportunitiesWithProgress = this.opportunities.filter(o => o.opportunityProgress.length > 0 && o.opportunityType.name !== PrepopulatedOpportunityTypes.Lost);\r\n\r\n this.opportunitiesOptions = [];\r\n this.opportunitiesOptions.push({ label: \"General Progress\", value: null });\r\n\r\n // - Store the filtered opportunities in the opportunitiesOptions select list\r\n this.opportunitiesWithProgress.map(o => {\r\n let labelText = o.name;\r\n labelText += \" / Type: \" + o.opportunityType.name;\r\n\r\n this.opportunitiesOptions.push(\r\n {\r\n label: labelText,\r\n value: o\r\n }\r\n );\r\n });\r\n\r\n this.onGetChartData(this.opportunitiesWithProgress); // - Init chart with all Opportunities' Progress records\r\n }\r\n\r\n // selectData(event) {\r\n // console.log(\"SELECTED DATA, EVENT VALUE IS: \", event);\r\n // }\r\n\r\n onOpportunityOptionChange() {\r\n if (this.selectedOpportunityOption)\r\n this.onGetChartData([this.selectedOpportunityOption]);\r\n else\r\n this.onGetChartData(this.opportunitiesWithProgress);\r\n }\r\n\r\n onGetChartData(opportunities: Opportunity[]) {\r\n this.chartData = {\r\n labels: this.weekDays,\r\n datasets: []\r\n };\r\n\r\n let datasetList = [];\r\n\r\n // - Iterate through each Opportunity\r\n for (let i = 0; i < opportunities.length; i++) {\r\n\r\n // - Create a dataset for the current opportunity\r\n let dataset = {\r\n label: opportunities.length > 1 ? opportunities[i].name : \"Progress Points for \" + opportunities[i].name,\r\n data: [],\r\n fill: opportunities.length > 1 ? false : true,\r\n borderColor: this.utilService.getRandomColor()\r\n };\r\n\r\n let currAllOpportunityProgress = opportunities[i].opportunityProgress;\r\n // - First sort by most recently created\r\n currAllOpportunityProgress = currAllOpportunityProgress.sort(\r\n (obj1, obj2) => {\r\n const obj1CreatedOnDate = new Date(obj1.createdOn);\r\n const obj2CreatedOnDate = new Date(obj2.createdOn);\r\n\r\n if (obj1CreatedOnDate > obj2CreatedOnDate)\r\n return -1;\r\n if (obj1CreatedOnDate < obj2CreatedOnDate)\r\n return 1;\r\n\r\n return 0;\r\n }\r\n );\r\n\r\n // - Get the Opportunity Progress records that took place in the current week\r\n let weekOpportunityProgress = currAllOpportunityProgress.filter(oP => this.utilService.isDateInCurrentWeek(new Date(oP.createdOn)));\r\n\r\n // - If any then plot those progressions\r\n if (weekOpportunityProgress.length > 0) {\r\n // - Iterate through each day of the week and get the progress value for each day\r\n for (let day = 0; day <= 6; day++)\r\n dataset = this.getOppProgressByDay(day, currAllOpportunityProgress, weekOpportunityProgress, dataset);\r\n }\r\n // - Otherwise we find the most recent opp progress and plot that value to \"continue\" the data from the past\r\n else {\r\n if (currAllOpportunityProgress.length > 0) {\r\n let mostRecentOppProgress = currAllOpportunityProgress[0];\r\n let todayWeekDay = new Date().getDay();\r\n\r\n for (let day = 0; day <= todayWeekDay; day++) {\r\n dataset.data.push(this.getPercentOfOpportunityValue(mostRecentOppProgress));\r\n }\r\n }\r\n }\r\n\r\n datasetList.push(dataset);\r\n }\r\n\r\n if (datasetList.length == 1)\r\n this.chartData.datasets.push(datasetList[0]);\r\n else {\r\n // - Create a new dataset from the datasetList's data\r\n let newDataset = {\r\n label: \"General Progress\",\r\n data: [],\r\n fill: true,\r\n borderColor: this.utilService.getRandomColor()\r\n };\r\n\r\n let mergedData = [];\r\n\r\n let todayWeekDay = new Date().getDay();\r\n\r\n for (let day = 0; day <= todayWeekDay; day++) {\r\n let totalDayProgress = 0;\r\n\r\n for (let dataset of datasetList) {\r\n totalDayProgress += dataset.data[day];\r\n }\r\n mergedData.push(totalDayProgress);\r\n }\r\n newDataset.data = mergedData;\r\n this.chartData.datasets.push(newDataset);\r\n }\r\n }\r\n\r\n getPercentOfOpportunityValue(oppProgress: OpportunityProgress) {\r\n return this.utilService.getPercentOfValue(oppProgress.probability, oppProgress.value);\r\n }\r\n\r\n getMostRecentOppProgress(opportunityProgress: OpportunityProgress[]) {\r\n // - Sort by most recently created\r\n opportunityProgress = opportunityProgress.sort(\r\n (obj1, obj2) => {\r\n const obj1CreatedOnDate = new Date(obj1.createdOn);\r\n const obj2CreatedOnDate = new Date(obj2.createdOn);\r\n\r\n if (obj1CreatedOnDate > obj2CreatedOnDate)\r\n return -1;\r\n if (obj1CreatedOnDate < obj2CreatedOnDate)\r\n return 1;\r\n\r\n return 0;\r\n }\r\n );\r\n\r\n // - Return first one since most recently created is on top\r\n return opportunityProgress[0];\r\n }\r\n\r\n getOppProgressByDay(day: number, allOpportunityProgress: OpportunityProgress[], weekOpportunityProgress: OpportunityProgress[], dataset: any) {\r\n // - First retrieve the opportunity progress of the provided day (0 is Sunday, 6 is Saturday)\r\n let currentDayOpportunityProgress = weekOpportunityProgress.filter(oP => new Date(oP.createdOn).getDay() === day);\r\n\r\n // - Get all of the probability values that occurred on the provided day\r\n // let data = currentDayOpportunityProgress.map(oP => oP.probability);\r\n let data = this.getMostRecentOppProgress(currentDayOpportunityProgress);\r\n\r\n // - If data was present then push the most recent probability changes that happened on the provided day\r\n if (data)\r\n dataset.data.push(this.getPercentOfOpportunityValue(data));\r\n else {\r\n // - If no data was present then push the most recent data if the day has not passed yet\r\n //// - This allows for the chart to plot the most recent value if no changes in progress took place\r\n let todayWeekDay = new Date().getDay();\r\n\r\n if (day <= todayWeekDay) {\r\n let previousData = dataset.data[dataset.data.length - 1];\r\n\r\n if (previousData)\r\n dataset.data.push(previousData);\r\n else {\r\n let previousOpportunityProgress = allOpportunityProgress.filter(oP => !this.utilService.isDateInCurrentWeek(new Date(oP.createdOn)));\r\n\r\n if (previousOpportunityProgress.length > 0)\r\n dataset.data.push(this.getPercentOfOpportunityValue(previousOpportunityProgress[0]));\r\n else\r\n dataset.data.push(null);\r\n }\r\n }\r\n }\r\n\r\n return dataset;\r\n }\r\n /** Opportunity Progression LineChart - End */\r\n\r\n /**\r\n * @TODO REFRACTOR\r\n */\r\n onGetTasks() {\r\n // Admins can see everyone's tasks\r\n if (this.authService.isSuperAdmin()) {\r\n this.taskService.getTasks().subscribe(\r\n (tasks: Task[]) => {\r\n this.storeTasks(tasks);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n // Users may only see their own tasks\r\n else {\r\n this.taskService.getTasksByUserId(this.authService.applicationProfileUser().id).subscribe(\r\n (tasks: Task[]) => {\r\n this.storeTasks(tasks);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * @TODO REFRACTOR\r\n */\r\n storeTasks(tasks: Task[]) {\r\n // - Dashboard shows task records that are for today (and also late tasks)\r\n this.tasks = tasks;\r\n this.lateTasks = tasks.filter(t => this.taskService.isTaskLate(t));\r\n this.todayTasks = tasks.filter(t => this.taskService.isTaskForToday(t, true));\r\n this.todayTasksDone = tasks.filter(t => this.taskService.isTaskForToday(t, false));\r\n this.todayTasksDone = this.todayTasksDone.filter(t => t.isTaskComplete);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardComponent } from './dashboard.component';\r\n\r\nimport { DashboardRoutingModule } from \"./dashboard-routing.module\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\n\r\nimport { ChartModule, DropdownModule } from 'primeng/primeng';\r\n\r\n@NgModule({\r\n declarations: [\r\n DashboardComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ChartModule,\r\n DropdownModule,\r\n DashboardRoutingModule,\r\n ]\r\n})\r\nexport class DashboardModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { BlankLayoutComponent } from \"../../components/common/layouts/blankLayout.component\";\r\nimport { NotFoundComponent } from \"../errors/not-found/not-found.component\";\r\nimport { ForbiddenComponent } from \"../errors/forbidden/forbidden.component\";\r\n\r\nconst errorRoutes: Routes = [\r\n // Error pages\r\n // {\r\n // path: 'error', component: BlankLayoutComponent,\r\n // children: [\r\n // { path: '', redirectTo: '404', pathMatch: 'full' },\r\n // { path: '403', component: ForbiddenComponent },\r\n // { path: '404', component: NotFoundComponent }\r\n // ]\r\n // },\r\n // { path: '**', redirectTo: 'error' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(errorRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ErrorRoutingModule { }","import { NgModule } from '@angular/core';\r\n\r\nimport { ErrorRoutingModule } from \"./errors-routing.module\";\r\n\r\nimport { NotFoundComponent } from \"./not-found/not-found.component\";\r\nimport { ForbiddenComponent } from './forbidden/forbidden.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n NotFoundComponent,\r\n ForbiddenComponent\r\n ],\r\n imports: [\r\n ErrorRoutingModule\r\n ]\r\n})\r\nexport class ErrorsModule { }\r\n","module.exports = \"
\\r\\n

403

\\r\\n

Forbidden Request

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

Sorry, but you are not allowed to perform this action.

\\r\\n

\\r\\n Click here to leave.\\r\\n

\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2Vycm9ycy9mb3JiaWRkZW4vZm9yYmlkZGVuLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-forbidden',\r\n templateUrl: './forbidden.component.html',\r\n styleUrls: ['./forbidden.component.scss']\r\n})\r\nexport class ForbiddenComponent {\r\n}\r\n","module.exports = \"
\\r\\n

404

\\r\\n

Page Not Found

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

Sorry, but the page you are looking for could not be found!

\\r\\n

\\r\\n Click here to leave.\\r\\n

\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2Vycm9ycy9ub3QtZm91bmQvbm90LWZvdW5kLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss']\r\n})\r\nexport class NotFoundComponent {\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Query} from 'apollo-angular';\r\nimport gql from 'graphql-tag';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RetrieveContactQuery extends Query {\r\n document = RETRIEVE_CONTACTS_QUERY;\r\n}\r\n\r\nexport const RETRIEVE_CONTACTS_QUERY = gql`\r\nquery ($input: ContactFilterInput!) {\r\n contacts(input: $input) {\r\n data {\r\n id\r\n firstName\r\n lastName\r\n }\r\n }\r\n}\r\n`\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { EventsComponent } from './events.component';\r\nimport { EventsListComponent } from './list/events-list.component';\r\nimport { EventsManageComponent } from './manage/events-manage.component';\r\n\r\nconst contactsRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'events', component: EventsComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: EventsListComponent },\r\n { path: ':id/edit', component: EventsManageComponent },\r\n { path: 'new', component: EventsManageComponent },\r\n // { path: 'new/:organizationId', component: ContactManageComponent },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(contactsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class EventsRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2V2ZW50cy9ldmVudHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-events',\r\n templateUrl: './events.component.html',\r\n styleUrls: ['./events.component.scss']\r\n})\r\nexport class EventsComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { SharedModule } from 'app/views/shared/shared.module';\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\nimport { CalendarModule, DropdownModule, GMapModule, PanelModule, TooltipModule } from 'primeng/primeng';\r\n\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { EventsListModule } from './list/events-list.module';\r\nimport { EventsManageModule } from './manage/events-manage.module';\r\nimport { EventsRoutingModule } from './events-routing.module';\r\nimport { EventsComponent } from './events.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n ReactiveFormsModule,\r\n CollapseModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n DropzoneModule,\r\n GMapModule,\r\n EventsListModule,\r\n EventsManageModule,\r\n EventsRoutingModule,\r\n PanelModule,\r\n TooltipModule\r\n ],\r\n declarations: [\r\n EventsComponent,\r\n // ContactListComponent,\r\n // ContactManageComponent,\r\n // ContactImportComponent\r\n ]\r\n})\r\nexport class EventsModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Contacts
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n Advanced Search\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
1 || contactGroupsOptions.length > 0\\\">\\r\\n\\r\\n \\r\\n
1\\\">\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
1 || contactGroupsOptions.length > 0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n Contact Groups\\r\\n \\r\\n

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

\\r\\n Dynamic Search\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n There are currently {{totalRecords}} contacts\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n contact.createdByUserAccountId ?\\r\\n contact.createdByUserAccountId > 0 ?\\r\\n contact.createdByUserAccount?.fullName :\\r\\n 'System'\\r\\n : 'System'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n contact.updatedByUserAccountId ?\\r\\n contact.updatedByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n contact.assignedUserAccountId ?\\r\\n contact.assignedUserAccount ?\\r\\n contact.assignedUserAccount?.fullName :\\r\\n '-'\\r\\n :'-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact?.fullName.trim() | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.referredByContact ? contact.referredByContact?.fullName.trim() : '-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.convertedDate | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.email | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.mobilePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.homePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.officePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.alternatePhoneNumber | lowercase | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.birthdate | date:'dd/MM/yyyy' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.idCardNumber | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.vatNumber | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ contact.notes | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2V2ZW50cy9saXN0L2V2ZW50cy1saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { RetrieveContactQuery } from '../_graphql/retrieve-contacts.query';\r\nimport { map } from 'rxjs/operators';\r\nimport { Contact } from 'app/views/shared/models/contact.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-events-list',\r\n templateUrl: './events-list.component.html',\r\n styleUrls: ['./events-list.component.scss']\r\n})\r\nexport class EventsListComponent implements OnInit, OnDestroy {\r\n ngOnDestroy(): void {\r\n // super.ngOnDestroy();\r\n }\r\n\r\n public _contacts : Contact[] = [];\r\n\r\n public _contacts$ : BehaviorSubject = new BehaviorSubject([]);\r\n\r\n constructor(public _retrieveContactsComponent: RetrieveContactQuery) {\r\n\r\n }\r\n\r\n /**\r\n * Angular Lifecylce Method\r\n */\r\n ngOnInit() {\r\n\r\n this._contacts$.subscribe((_contacts) => {\r\n /**\r\n * Initialise my Form, if it is a manage screen;\r\n */\r\n\r\n // Initiliase Reactive Form.\r\n\r\n // this.form = new FormGroup() { }\r\n });\r\n\r\n this.appOnInit();\r\n\r\n\r\n }\r\n\r\n /**\r\n * Our App Logic initialization\r\n */\r\n appOnInit() {\r\n /* ContactFilterInput(ObjectGraphType) */\r\n var VARS = {\r\n identifiers: []\r\n };\r\n\r\n var app$ = this._retrieveContactsComponent\r\n .fetch({\r\n input: VARS\r\n }).pipe(map((result) => {\r\n debugger;\r\n const item = (result.data);\r\n let _contacts = item ? (item).contacts.data as Contact[] : [];\r\n\r\n return _contacts;\r\n }));\r\n\r\n var appSubscription = app$.subscribe((_contacts) => {\r\n this._contacts = _contacts;\r\n\r\n this._contacts$.next(_contacts);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\nimport { CalendarModule, DropdownModule, GMapModule, PanelModule, TooltipModule } from 'primeng/primeng';\r\nimport { ContactsRoutingModule } from 'app/views/contacts/contacts-routing.module';\r\nimport { ContactTypesModule } from 'app/views/contacts/contact-types/contact-types.module';\r\nimport { ContactSourcesModule } from 'app/views/contacts/contact-sources/contact-sources.module';\r\nimport { ContactFilesModule } from 'app/views/contacts/contact-files/contact-files.module';\r\nimport { ContactGroupsModule } from 'app/views/contacts/contact-groups/contact-groups.module';\r\nimport { ContactSavedSearchesModule } from 'app/views/contacts/contact-saved-searches/contact-saved-searches.module';\r\nimport { CommunicationHistoryModule } from 'app/views/contacts/communication-history/communication-history.module';\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { EventsListComponent } from './events-list.component';\r\nimport { SharedModule } from 'app/views/shared/shared.module';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n ContactsRoutingModule,\r\n ContactTypesModule,\r\n ContactSourcesModule,\r\n ContactFilesModule,\r\n ContactGroupsModule,\r\n ContactSavedSearchesModule,\r\n CommunicationHistoryModule,\r\n ReactiveFormsModule,\r\n CollapseModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n DropzoneModule,\r\n GMapModule,\r\n PanelModule,\r\n TooltipModule\r\n\r\n ],\r\n declarations: [\r\n EventsListComponent,\r\n ]\r\n})\r\nexport class EventsListModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
LeadDesk - Latest Call Info
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Call Details\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Started at:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.talk_start | date:'dd/MM/yyyy - HH:mm' }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Ended at:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.talk_end | date:'dd/MM/yyyy - HH:mm' }}\\r\\n
\\r\\n
\\r\\n CALL IS ONGOING\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Duration:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.talk_time }} seconds\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Direction:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.direction | titlecase }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Call Ending Reason:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.call_ending_reason_name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Agent Details

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Username:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.agent_username }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Group:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.agent_group_name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Campaign:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.campaign_name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Comments:\\r\\n
\\r\\n
\\r\\n {{ leadDeskCallInfo.comment }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Update Contact
\\r\\n
New Contact
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Primary Details

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select a Contact Type.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select a Contact Source.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Referred by:\\r\\n {{ contactForm.get('referredByContactId').value.label }}.\\r\\n

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

\\r\\n No contact is currently set as referrer.\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Contacts must have either an Email or a Mobile value.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n There is already a contact registered with that email address.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Contacts must have either an Email or a Mobile value.\\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Additional Phone Numbers\\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Additional Details\\r\\n \\r\\n

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

\\r\\n Address Details\\r\\n \\r\\n

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

\\r\\n Add Note\\r\\n \\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2V2ZW50cy9tYW5hZ2UvZXZlbnRzLW1hbmFnZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-events-manage',\r\n templateUrl: './events-manage.component.html',\r\n styleUrls: ['./events-manage.component.scss']\r\n})\r\nexport class EventsManageComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\nimport { CalendarModule, DropdownModule, GMapModule, TooltipModule, AutoCompleteModule } from 'primeng/primeng';\r\n\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { ContactFilesModule } from 'app/views/contacts/contact-files/contact-files.module';\r\nimport { ContactSourcesModule } from 'app/views/contacts/contact-sources/contact-sources.module';\r\nimport { ContactsRoutingModule } from 'app/views/contacts/contacts-routing.module';\r\nimport { ContactTypesModule } from 'app/views/contacts/contact-types/contact-types.module';\r\nimport { ContactGroupsModule } from 'app/views/contacts/contact-groups/contact-groups.module';\r\nimport { ContactSavedSearchesModule } from 'app/views/contacts/contact-saved-searches/contact-saved-searches.module';\r\nimport { CommunicationHistoryModule } from 'app/views/contacts/communication-history/communication-history.module';\r\nimport { EventsManageComponent } from './events-manage.component';\r\nimport { SharedModule } from 'app/views/shared/shared.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n ContactsRoutingModule,\r\n ContactTypesModule,\r\n ContactSourcesModule,\r\n ContactFilesModule,\r\n ContactGroupsModule,\r\n ContactSavedSearchesModule,\r\n CommunicationHistoryModule,\r\n ReactiveFormsModule,\r\n CollapseModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n DropzoneModule,\r\n GMapModule,\r\n TooltipModule,\r\n AutoCompleteModule\r\n\r\n ],\r\n declarations: [\r\n EventsManageComponent,\r\n ],\r\n exports: [\r\n EventsManageComponent\r\n ]\r\n})\r\nexport class EventsManageModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Welcome {{ user.firstName }} {{ user.lastName }}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from \"../auth/auth.service\";\r\n\r\nimport { CrmUser } from \"../shared/models/user.model\";\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n user: CrmUser;\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.user = this.authService.applicationProfileUser() as CrmUser;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\n\r\nimport { HomeComponent } from \"./home.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n HomeComponent\r\n ],\r\n imports: [\r\n BrowserModule\r\n ]\r\n})\r\nexport class HomeModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Issues List
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Issues\\r\\n There are currently 0 Issues\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.createdByUserAccountId > 0 ? taskType.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2lzc3Vlcy9pc3N1ZS1saXN0L2lzc3VlLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-issue-list',\r\n templateUrl: './issue-list.component.html',\r\n styleUrls: ['./issue-list.component.scss']\r\n})\r\nexport class IssueListComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
New Issue
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2lzc3Vlcy9pc3N1ZS1tYW5hZ2UvaXNzdWUtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities, PrepopulatedContactTypes, PrepopulatedContactSources, PrepopulatedOpportunityTypes } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\n\r\nimport { SelectItem, ConfirmationService, AutoComplete } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\n\r\n\r\n@Component({\r\n selector: 'app-issue-manage',\r\n templateUrl: './issue-manage.component.html',\r\n styleUrls: ['./issue-manage.component.scss']\r\n})\r\nexport class IssueManageComponent implements OnInit {\r\n issueForm: FormGroup; // - Stores the opportunity form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update an opportunity if true and add a new opportunity if false\r\n\r\n assignedUserOptions: SelectItem[] = []; // - Stores Users to select the Assigned User of this opportunity\r\n assignedContactOptions: SelectItem[] = []; // - Stores Contacts to select the Assigned Contact of this opportunity\r\n statusOptions:SelectItem[] = [];\r\n\r\n //** DatePicker */\r\n minDate: Date = new Date(); // - Can't select a date before the current day\r\n dateRange: string = this.minDate.getFullYear() + ':' + (this.minDate.getFullYear() + 10); // - 10 Year Range\r\n \r\n //** Spinner (Calendar event duration) */\r\n defaultCalendarDuration: number = 30; // - Default Duration\r\n minCalendarDuration: number = 5; // - Duration in Minutes\r\n maxCalendarDuration: number = 600;\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n constructor( \r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private confirmationService: ConfirmationService,\r\n private authService: AuthService,\r\n private toastService: ToastService) { }\r\n\r\n ngOnInit() { \r\n this.issueForm = this.formBuilder.group({});\r\n this.onGetStatuses();\r\n this.onGetClients();\r\n this.onGetAgents();\r\n }\r\n\r\n onGetStatuses(){\r\n \r\n this.statusOptions.push({ label: \"New\", value: \"New\" });\r\n this.statusOptions.push({ label: \"In Progress\", value: \"In Progress\" });\r\n this.statusOptions.push({ label: \"Resolved\", value: \"Resolved\" });\r\n this.statusOptions.push({ label: \"Closed\", value: \"Closed\" });\r\n }\r\n\r\n \r\n onGetClients(){\r\n this.assignedContactOptions.push({ label: \"Joe Borg\", value: \"New\" });\r\n this.assignedContactOptions.push({ label: \"Peter Abela\", value: \"In Progress\" });\r\n this.assignedContactOptions.push({ label: \"Fred Smith\", value: \"Resolved\" });\r\n this.assignedContactOptions.push({ label: \"Paul Walker\", value: \"Closed\" });\r\n\r\n }\r\n\r\n \r\n onGetAgents(){\r\n this.assignedUserOptions.push({ label: \"Alan Darmanin\", value: \"New\" });\r\n this.assignedUserOptions.push({ label: \"Gilbert Faenza\", value: \"In Progress\" });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { IssuesComponent } from \"./issues.component\";\r\nimport { IssueListComponent } from \"./issue-list/issue-list.component\";\r\nimport { IssueManageComponent } from \"./issue-manage/issue-manage.component\";\r\n\r\nconst issuesRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'issues', component: IssuesComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: IssueListComponent },\r\n { path: ':id/edit', component: IssueManageComponent },\r\n { path: 'new', component: IssueManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(issuesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class IssuesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2lzc3Vlcy9pc3N1ZXMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-issues',\r\n templateUrl: './issues.component.html',\r\n styleUrls: ['./issues.component.scss']\r\n})\r\nexport class IssuesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { IssuesRoutingModule } from \"./issues-routing.module\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { CalendarModule, DropdownModule, SliderModule } from \"primeng/primeng\";\r\n\r\n import { IssuesComponent } from './issues.component';\r\n import { IssueListComponent } from './issue-list/issue-list.component';\r\n import { IssueManageComponent } from './issue-manage/issue-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n IssuesComponent,\r\n IssueListComponent,\r\n IssueManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n IssuesRoutingModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n SliderModule,\r\n CalendarModule\r\n ]\r\n})\r\nexport class IssuesModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update LeadDesk API Key

\\r\\n

LeadDesk Setup

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The API key field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2xlYWQtZGVzay9sZWFkLWRlc2stbGlzdC9sZWFkLWRlc2stY29uZmlnL2xlYWQtZGVzay1jb25maWcuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { LeadDeskService } from '../../../shared/services/lead-desk.service';\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { ToastService } from '../../../shared/services/toast.service';\r\n\r\nimport { LeadDeskConfig } from '../../../shared/models/lead-desk/lead-desk-config.model';\r\n\r\n@Component({\r\n selector: 'app-lead-desk-config',\r\n templateUrl: './lead-desk-config.component.html',\r\n styleUrls: ['./lead-desk-config.component.scss']\r\n})\r\nexport class LeadDeskConfigComponent implements OnInit {\r\n leadDeskConfigForm: FormGroup;\r\n isFormInit: boolean = false;\r\n isEdit: boolean = false;\r\n\r\n leadDeskConfig: LeadDeskConfig = new LeadDeskConfig();\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private leadDeskService: LeadDeskService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.leadDeskService.getLeadDeskConfig().subscribe(\r\n (leadDeskConfig: LeadDeskConfig) => {\r\n // - If API key was already submitted, update that API key\r\n if (leadDeskConfig) {\r\n this.isEdit = true;\r\n this.leadDeskConfig = leadDeskConfig;\r\n }\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lead desk config\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.leadDeskConfigForm = this.formBuilder.group({\r\n apiKey: this.formBuilder.control(null, [Validators.required])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddLeadDeskConfig(newLeadDeskConfig: LeadDeskConfig) {\r\n this.leadDeskService.addLeadDeskConfig(newLeadDeskConfig).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"Your LeadDesk API Key has been saved.\");\r\n this.leadDeskService.configChanged.next(); // Let list component know of changes so it know when to re-init\r\n \r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding API key\", error);\r\n this.leadDeskService.configChanged.next(); // Let list component know of changes so it know when to re-init \r\n }\r\n );\r\n }\r\n\r\n onUpdateLeadDeskConfig(newLeadDeskConfig: LeadDeskConfig) {\r\n this.leadDeskService.updateLeadDeskConfig(newLeadDeskConfig).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The LeadDesk API Key has been updated.\");\r\n this.leadDeskService.configChanged.next(); // Let list component know of changes so it know when to re-init\r\n \r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating API key\", error);\r\n this.leadDeskService.configChanged.next(); // Let list component know of changes so it know when to re-init \r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newLeadDeskConfig = this.formBuilder.sanitizeFormValues(this.leadDeskConfigForm).value;\r\n\r\n if (this.isEdit) {\r\n newLeadDeskConfig.id = this.leadDeskConfig.id; // - Set id of edited leadDeskConfig to its original id\r\n newLeadDeskConfig.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateLeadDeskConfig(newLeadDeskConfig);\r\n }\r\n else {\r\n newLeadDeskConfig.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddLeadDeskConfig(newLeadDeskConfig);\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Calling Lists
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n There are currently {{lists.length}} calling lists\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ list.created_at | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2xlYWQtZGVzay9sZWFkLWRlc2stbGlzdC9sZWFkLWRlc2stbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { LeadDeskService } from '../../shared/services/lead-desk.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\n\r\nimport { CallingList, LeadDeskConfig } from '../../shared/models/lead-desk/lead-desk-config.model';\r\n\r\n@Component({\r\n selector: 'app-lead-desk-list',\r\n templateUrl: './lead-desk-list.component.html',\r\n styleUrls: ['./lead-desk-list.component.scss']\r\n})\r\nexport class LeadDeskListComponent implements OnInit {\r\n lists: CallingList[] = [];\r\n\r\n constructor(\r\n public router: Router,\r\n public authService: AuthService,\r\n public toastService: ToastService,\r\n private leadDeskService: LeadDeskService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetConfig();\r\n\r\n this.leadDeskService.configChanged.subscribe(\r\n () => {\r\n this.onGetConfig();\r\n }\r\n );\r\n }\r\n\r\n onGetConfig() {\r\n this.leadDeskService.getLeadDeskConfig().subscribe(\r\n (leadDeskConfig: LeadDeskConfig) => {\r\n if (!leadDeskConfig) {\r\n this.router.navigate([\"/lead-desk\", \"config\"]);\r\n } else {\r\n // - Retrieve calling lists if API key was found\r\n this.onGetCallingLists();\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving LeadDesk config\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetCallingLists() {\r\n this.leadDeskService.getCallingLists().subscribe(\r\n (lists: CallingList[]) => {\r\n this.lists = lists;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lists\", error);\r\n }\r\n );\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from '../auth/role-guard.service';\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { LeadDeskComponent } from './lead-desk.component';\r\nimport { LeadDeskListComponent } from './lead-desk-list/lead-desk-list.component';\r\nimport { LeadDeskConfigComponent } from './lead-desk-list/lead-desk-config/lead-desk-config.component';\r\n\r\nconst leadDeskRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard, RoleGuard],\r\n children: [\r\n {\r\n path: 'lead-desk', component: LeadDeskComponent,\r\n children: [\r\n {\r\n path: '', component: LeadDeskListComponent, children: [\r\n { path: 'config', component: LeadDeskConfigComponent }\r\n ]\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(leadDeskRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class LeadDeskRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL2xlYWQtZGVzay9sZWFkLWRlc2suY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-lead-desk',\r\n templateUrl: './lead-desk.component.html',\r\n styleUrls: ['./lead-desk.component.scss']\r\n})\r\nexport class LeadDeskComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\n\r\nimport { LeadDeskComponent } from './lead-desk.component';\r\nimport { LeadDeskListComponent } from './lead-desk-list/lead-desk-list.component';\r\n\r\nimport { LeadDeskRoutingModule } from './lead-desk-routing.module';\r\nimport { LeadDeskConfigComponent } from './lead-desk-list/lead-desk-config/lead-desk-config.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { ModalModule } from 'ngx-bootstrap';\r\n\r\n@NgModule({\r\n declarations: [\r\n LeadDeskComponent,\r\n LeadDeskListComponent,\r\n LeadDeskConfigComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n LeadDeskRoutingModule,\r\n ModalModule.forRoot(),\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class LeadDeskModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update MailChimp API Key

\\r\\n

MailChimp Setup

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The API key field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21haWxjaGltcC9tYWlsY2hpbXAtbGlzdC9tYWlsY2hpbXAtY29uZmlnL21haWxjaGltcC1jb25maWcuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { MailchimpService } from '../../../shared/services/mailchimp.service';\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { ToastService } from '../../../shared/services/toast.service';\r\n\r\nimport { MailChimpConfig } from '../../../shared/models/mailchimp/campaign.model';\r\n\r\n@Component({\r\n selector: 'app-mailchimp-config',\r\n templateUrl: './mailchimp-config.component.html',\r\n styleUrls: ['./mailchimp-config.component.scss']\r\n})\r\nexport class MailchimpConfigComponent implements OnInit {\r\n mailchimpConfigForm: FormGroup;\r\n isFormInit: boolean = false;\r\n isEdit: boolean = false;\r\n\r\n mailChimpConfig: MailChimpConfig = new MailChimpConfig();\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private mailchimpService: MailchimpService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.mailchimpService.getMailChimpConfig().subscribe(\r\n (mailChimpConfig: MailChimpConfig) => {\r\n // - If API key was already submitted, update that API key\r\n if (mailChimpConfig) {\r\n this.isEdit = true;\r\n this.mailChimpConfig = mailChimpConfig;\r\n }\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving mailchimp config\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.mailchimpConfigForm = this.formBuilder.group({\r\n apiKey: this.formBuilder.control(null, [Validators.required])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddMailChimpConfig(newMailChimpConfig: MailChimpConfig) {\r\n this.mailchimpService.addMailChimpConfig(newMailChimpConfig).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The MailChimp API Key has been accepted.\");\r\n this.mailchimpService.configChanged.next(); // Let list component know of changes so it know when to re-init\r\n \r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding API key\", error);\r\n this.mailchimpService.configChanged.next(); // Let list component know of changes so it know when to re-init \r\n }\r\n );\r\n }\r\n\r\n onUpdateMailChimpConfig(newMailChimpConfig: MailChimpConfig) {\r\n this.mailchimpService.updateMailChimpConfig(newMailChimpConfig).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The MailChimp API Key has been updated.\");\r\n this.mailchimpService.configChanged.next(); // Let list component know of changes so it know when to re-init\r\n \r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating API key\", error);\r\n this.mailchimpService.configChanged.next(); // Let list component know of changes so it know when to re-init \r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newMailChimpConfig = this.formBuilder.sanitizeFormValues(this.mailchimpConfigForm).value;\r\n\r\n if (this.isEdit) {\r\n newMailChimpConfig.id = this.mailChimpConfig.id; // - Set id of edited mailchimpConfig to its original id\r\n newMailChimpConfig.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateMailChimpConfig(newMailChimpConfig);\r\n }\r\n else {\r\n newMailChimpConfig.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddMailChimpConfig(newMailChimpConfig);\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Lists
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n There are currently {{lists.length}} lists\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ list.date_created | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ list.stats.campaign_last_sent | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21haWxjaGltcC9tYWlsY2hpbXAtbGlzdC9tYWlsY2hpbXAtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { MailchimpService } from '../../shared/services/mailchimp.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\n\r\nimport { List, MailChimpConfig } from '../../shared/models/mailchimp/campaign.model';\r\n\r\n@Component({\r\n selector: 'app-mailchimp-list',\r\n templateUrl: './mailchimp-list.component.html',\r\n styleUrls: ['./mailchimp-list.component.scss']\r\n})\r\nexport class MailchimpListComponent implements OnInit {\r\n lists: List[] = [];\r\n\r\n constructor(\r\n public router: Router,\r\n public authService: AuthService,\r\n public toastService: ToastService,\r\n private mailchimpService: MailchimpService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetConfig();\r\n\r\n this.mailchimpService.configChanged.subscribe(\r\n () => {\r\n this.onGetConfig();\r\n }\r\n );\r\n }\r\n\r\n onGetConfig() {\r\n this.mailchimpService.getMailChimpConfig().subscribe(\r\n (mailChimpConfig: MailChimpConfig) => {\r\n if (!mailChimpConfig) {\r\n this.router.navigate([\"/mailchimp\", \"config\"]);\r\n } else {\r\n // - Retrieve lists if API key was found\r\n this.onGetLists();\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving mailchimp config\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetLists() {\r\n this.mailchimpService.getLists().subscribe(\r\n (lists: List[]) => {\r\n this.lists = lists;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lists\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateCommunicationLogs(listId: string) {\r\n this.mailchimpService.updateCommunicationLogsFromList(listId).subscribe(\r\n (newCommLogsCount) => {\r\n if (newCommLogsCount > 0)\r\n this.toastService.createSuccessMessage(\"Success\", newCommLogsCount + \" new communication logs have been created.\");\r\n else\r\n this.toastService.createInfoMessage(\"Info\", \"No new communication logs were found.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating communication logs\", error);\r\n }\r\n );\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from '../auth/role-guard.service';\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { MailchimpComponent } from './mailchimp.component';\r\nimport { MailchimpListComponent } from './mailchimp-list/mailchimp-list.component';\r\nimport { MailchimpConfigComponent } from './mailchimp-list/mailchimp-config/mailchimp-config.component';\r\n\r\nconst mailchimpRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard, RoleGuard],\r\n // children: [\r\n // {\r\n // path: 'mailchimp', component: MailchimpComponent,\r\n // children: [\r\n // { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n // { path: 'list', component: MailchimpListComponent },\r\n // { path: 'config', component: MailchimpConfigComponent },\r\n // ]\r\n // }\r\n // ]\r\n children: [\r\n {\r\n path: 'mailchimp', component: MailchimpComponent,\r\n children: [\r\n {\r\n path: '', component: MailchimpListComponent, children: [\r\n { path: 'config', component: MailchimpConfigComponent }\r\n ]\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(mailchimpRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class MailchimpRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21haWxjaGltcC9tYWlsY2hpbXAuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-mailchimp',\r\n templateUrl: './mailchimp.component.html',\r\n styleUrls: ['./mailchimp.component.scss']\r\n})\r\nexport class MailchimpComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\n\r\nimport { MailchimpComponent } from './mailchimp.component';\r\nimport { MailchimpListComponent } from './mailchimp-list/mailchimp-list.component';\r\n\r\nimport { MailchimpRoutingModule } from './mailchimp-routing.module';\r\nimport { MailchimpConfigComponent } from './mailchimp-list/mailchimp-config/mailchimp-config.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { ModalModule } from 'ngx-bootstrap';\r\n\r\n@NgModule({\r\n declarations: [\r\n MailchimpComponent,\r\n MailchimpListComponent,\r\n MailchimpConfigComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n MailchimpRoutingModule,\r\n ModalModule.forRoot(),\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class MailchimpModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Email Profile

\\r\\n

New Email Profile

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Name field is required.\\r\\n \\r\\n \\r\\n There is already an Email profile with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Outgoing Host Name field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Outgoing Port field is required.\\r\\n \\r\\n \\r\\n The Outgoing Port field may only contain numerical values.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Username field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Password field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The From Name field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The From Email field is required.\\r\\n \\r\\n \\r\\n The From Email field is not a valid email address.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLWNvbmZpZy1lbWFpbC9tZXNzYWdlLWNlbnRyZS1jb25maWctZW1haWwtbWFuYWdlL21lc3NhZ2UtY2VudHJlLWNvbmZpZy1lbWFpbC1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { EmailProfileService } from \"../../../shared/services/email-profile.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { EmailProfile } from '../../../shared/models/email-profile.model';\r\nimport { valueExistsValidator } from 'app/views/shared/validators/value-exists.validator';\r\n\r\n@Component({\r\n selector: 'app-message-centre-config-email-manage',\r\n templateUrl: './message-centre-config-email-manage.component.html',\r\n styleUrls: ['./message-centre-config-email-manage.component.scss']\r\n})\r\nexport class MessageCentreConfigEmailManageComponent implements OnInit {\r\n profileForm: FormGroup; // - Stores the profile form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a message profile if true and add a new message profile if false\r\n\r\n emailProfiles: EmailProfile[] = []; // - Stores all EmailProfiles retrieved from db\r\n profile: EmailProfile = new EmailProfile(); // - Stores EmailProfile to populate form with an existing EmailProfile's values\r\n\r\n messageMaxLength: number = 720;\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private emailProfileService: EmailProfileService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.emailProfileService.getEmailProfiles().subscribe(\r\n (emailProfiles: EmailProfile[]) => {\r\n this.emailProfiles = emailProfiles; // - Store all profiles retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const emailProfileId = params['id'];\r\n this.isEdit = emailProfileId != null;\r\n\r\n if (this.isEdit) {\r\n this.profile = this.emailProfiles.find(mT => mT.id === +emailProfileId); // - Store the selected profile\r\n\r\n // Redirect to 404 page if the selected profile could not be found\r\n if (!this.profile) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving profiles\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all profile names to know if it already exists\r\n const profileNames = this.emailProfiles.map(mT => mT.name);\r\n\r\n // Remove the current profile name if being edited so the name can remain unchanged\r\n if (this.isEdit)\r\n profileNames.splice(profileNames.indexOf(this.profile.name), 1);\r\n\r\n this.profileForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.profile.name, [Validators.required, valueExistsValidator(profileNames)]),\r\n outgoingHostName: this.formBuilder.control(this.profile.outgoingHostName, [Validators.required]),\r\n outgoingPort: this.formBuilder.control(this.profile.outgoingPort, [Validators.required, Validators.pattern(/^[0-9]*$/)]),\r\n outgoingUseSsl: this.formBuilder.control(this.profile.outgoingUseSsl ? this.profile.outgoingUseSsl : false, [Validators.required]),\r\n username: this.formBuilder.control(this.profile.username, [Validators.required]),\r\n password: this.formBuilder.control(null, this.isEdit ? null : [Validators.required]),\r\n fromName: this.formBuilder.control(this.profile.fromName, [Validators.required]),\r\n fromEmail: this.formBuilder.control(this.profile.fromEmail, [Validators.required, Validators.email]),\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddEmailProfile(newEmailProfile: EmailProfile) {\r\n this.emailProfileService.addEmailProfile(newEmailProfile).subscribe(\r\n (response: Response) => {\r\n this.emailProfileService.emailProfilesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The profile \" + newEmailProfile.name + \" has been created.\");\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding profile\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateEmailProfile(newEmailProfile: EmailProfile) {\r\n this.emailProfileService.updateEmailProfile(newEmailProfile).subscribe(\r\n (response: Response) => {\r\n this.emailProfileService.emailProfilesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The profile \" + newEmailProfile.name + \" has been updated.\");\r\n this.router.navigate(['../../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating profile\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newEmailProfile = this.formBuilder.sanitizeFormValues(this.profileForm).value;\r\n\r\n newEmailProfile.userPartyId = this.authService.applicationProfileUser().id;\r\n \r\n if (this.isEdit) {\r\n newEmailProfile.id = this.profile.id; // - Set id of edited emailProfile to its original id\r\n newEmailProfile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateEmailProfile(newEmailProfile);\r\n }\r\n else {\r\n newEmailProfile.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddEmailProfile(newEmailProfile);\r\n }\r\n }\r\n}\r\n\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n List of Email Profiles\\r\\n \\r\\n There are currently {{ profiles.length}} profiles\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ template.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n template.createdByUserAccountId ?\\r\\n template.createdByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLWNvbmZpZy1lbWFpbC9tZXNzYWdlLWNlbnRyZS1jb25maWctZW1haWwuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { EmailProfileService } from '../../shared/services/email-profile.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\n\r\nimport { ConfirmationService } from 'primeng/primeng';\r\n\r\nimport { EmailProfile } from '../../shared/models/email-profile.model';\r\n\r\n@Component({\r\n selector: 'app-message-centre-config-email',\r\n templateUrl: './message-centre-config-email.component.html',\r\n styleUrls: ['./message-centre-config-email.component.scss']\r\n})\r\nexport class MessageCentreConfigEmailComponent implements OnInit {\r\n profiles: EmailProfile[] = [];\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private emailProfileService: EmailProfileService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetEmailProfiles();\r\n\r\n // Listen to changes made to profiles\r\n this.emailProfileService.emailProfilesChanged.subscribe(\r\n () => {\r\n this.onGetEmailProfiles();\r\n }\r\n );\r\n }\r\n\r\n onGetEmailProfiles() {\r\n this.emailProfileService.getEmailProfiles().subscribe(\r\n (profiles: EmailProfile[]) => {\r\n this.profiles = profiles;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving profiles\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteEmailProfile(emailProfile: EmailProfile) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Profile',\r\n message: 'Are you sure you want to delete the profile ' + emailProfile.name + '?',\r\n accept: () => {\r\n emailProfile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.emailProfileService.deleteEmailProfile(emailProfile).subscribe(\r\n (response: Response) => {\r\n this.onGetEmailProfiles();\r\n this.toastService.createSuccessMessage(\"Success\", \"The profile \" + emailProfile.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting profile\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for profile \" + emailProfile.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n}","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update SMS Profile

\\r\\n

New SMS Profile

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Name field is required.\\r\\n \\r\\n \\r\\n There is already an SMS warriors profile with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Company Name field is required.\\r\\n \\r\\n \\r\\n The Company Name can not exceed 11 characters.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The API Key field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLWNvbmZpZy1zbXN3YXJyaW9ycy9tZXNzYWdlLWNlbnRyZS1jb25maWctc21zd2FycmlvcnMtbWFuYWdlL21lc3NhZ2UtY2VudHJlLWNvbmZpZy1zbXN3YXJyaW9ycy1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { SmsWarriorsProfileService } from \"../../../shared/services/sms-warriors-profile.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { SmsWarriorsProfile } from '../../../shared/models/sms-warriors-profile.model';\r\nimport { valueExistsValidator } from 'app/views/shared/validators/value-exists.validator';\r\n\r\n@Component({\r\n selector: 'app-message-centre-config-smswarriors-manage',\r\n templateUrl: './message-centre-config-smswarriors-manage.component.html',\r\n styleUrls: ['./message-centre-config-smswarriors-manage.component.scss']\r\n})\r\nexport class MessageCentreConfigSmswarriorsManageComponent implements OnInit {\r\n profileForm: FormGroup; // - Stores the profile form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a message profile if true and add a new message profile if false\r\n\r\n smsWarriorsProfiles: SmsWarriorsProfile[] = []; // - Stores all smsWarriorsProfiles retrieved from db\r\n profile: SmsWarriorsProfile = new SmsWarriorsProfile(); // - Stores SmsWarriorsProfile to populate form with an existing SmsWarriorsProfile's values\r\n\r\n messageMaxLength: number = 720;\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private smsWarriorsProfileService: SmsWarriorsProfileService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.smsWarriorsProfileService.getSmsWarriorProfiles().subscribe(\r\n (smsWarriorsProfiles: SmsWarriorsProfile[]) => {\r\n this.smsWarriorsProfiles = smsWarriorsProfiles; // - Store all profiles retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const smsWarriorsProfileId = params['id'];\r\n this.isEdit = smsWarriorsProfileId != null;\r\n\r\n if (this.isEdit) {\r\n this.profile = this.smsWarriorsProfiles.find(mT => mT.id === +smsWarriorsProfileId); // - Store the selected profile\r\n\r\n // Redirect to 404 page if the selected profile could not be found\r\n if (!this.profile) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving profiles\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all profile names to know if it already exists\r\n const profileNames = this.smsWarriorsProfiles.map(mT => mT.name);\r\n\r\n // Remove the current profile name if being edited so the name can remain unchanged\r\n if (this.isEdit)\r\n profileNames.splice(profileNames.indexOf(this.profile.name), 1);\r\n\r\n this.profileForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.profile.name, [Validators.required, valueExistsValidator(profileNames)]),\r\n companyName: this.formBuilder.control(this.profile.companyName, [Validators.required, Validators.maxLength(11)]),\r\n apiKey: this.formBuilder.control(null, this.isEdit ? null : [Validators.required])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddSmsWarriorsProfile(newSmsWarriorsProfile: SmsWarriorsProfile) {\r\n this.smsWarriorsProfileService.addSmsWarriorProfile(newSmsWarriorsProfile).subscribe(\r\n (response: Response) => {\r\n this.smsWarriorsProfileService.smsWarriorsProfilesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The profile \" + newSmsWarriorsProfile.name + \" has been created.\");\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding profile\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateSmsWarriorsProfile(newSmsWarriorsProfile: SmsWarriorsProfile) {\r\n this.smsWarriorsProfileService.updateSmsWarriorProfile(newSmsWarriorsProfile).subscribe(\r\n (response: Response) => {\r\n this.smsWarriorsProfileService.smsWarriorsProfilesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The profile \" + newSmsWarriorsProfile.name + \" has been updated.\");\r\n this.router.navigate(['../../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating profile\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newSmsWarriorsProfile = this.formBuilder.sanitizeFormValues(this.profileForm).value;\r\n \r\n if (this.isEdit) {\r\n newSmsWarriorsProfile.id = this.profile.id; // - Set id of edited smsWarriorsProfile to its original id\r\n newSmsWarriorsProfile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateSmsWarriorsProfile(newSmsWarriorsProfile);\r\n }\r\n else {\r\n newSmsWarriorsProfile.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddSmsWarriorsProfile(newSmsWarriorsProfile);\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n List of SMS Warriors Profiles\\r\\n \\r\\n There are currently {{ profiles.length}} profiles\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ template.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n template.createdByUserAccountId ?\\r\\n template.createdByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLWNvbmZpZy1zbXN3YXJyaW9ycy9tZXNzYWdlLWNlbnRyZS1jb25maWctc21zd2FycmlvcnMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { SmsWarriorsService } from '../../shared/services/sms-warriors.service';\r\nimport { SmsWarriorsProfileService } from '../../shared/services/sms-warriors-profile.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\n\r\nimport { ConfirmationService } from 'primeng/primeng';\r\n\r\nimport { SmsWarriorsProfile } from '../../shared/models/sms-warriors-profile.model';\r\n\r\n@Component({\r\n selector: 'app-message-centre-config-smswarriors',\r\n templateUrl: './message-centre-config-smswarriors.component.html',\r\n styleUrls: ['./message-centre-config-smswarriors.component.scss']\r\n})\r\nexport class MessageCentreConfigSmswarriorsComponent implements OnInit {\r\n profiles: SmsWarriorsProfile[] = [];\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private smsWarriorsProfileService: SmsWarriorsProfileService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetSmsWarriorsProfiles();\r\n\r\n // Listen to changes made to profiles\r\n this.smsWarriorsProfileService.smsWarriorsProfilesChanged.subscribe(\r\n () => {\r\n this.onGetSmsWarriorsProfiles();\r\n }\r\n );\r\n }\r\n\r\n onGetSmsWarriorsProfiles() {\r\n this.smsWarriorsProfileService.getSmsWarriorProfiles().subscribe(\r\n (profiles: SmsWarriorsProfile[]) => {\r\n this.profiles = profiles;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving profiles\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteSmsWarriorsProfile(smsWarriorsProfile: SmsWarriorsProfile) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Profile',\r\n message: 'Are you sure you want to delete the profile ' + smsWarriorsProfile.name + '?',\r\n accept: () => {\r\n smsWarriorsProfile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.smsWarriorsProfileService.deleteSmsWarriorProfile(smsWarriorsProfile).subscribe(\r\n (response: Response) => {\r\n this.onGetSmsWarriorsProfiles();\r\n this.toastService.createSuccessMessage(\"Success\", \"The profile \" + smsWarriorsProfile.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting profile\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for profile \" + smsWarriorsProfile.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n}","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select an Email profile.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Subject field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The message field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLWVtYWlscy9tZXNzYWdlLWNlbnRyZS1lbWFpbHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { EmailService } from '../../shared/services/email.service';\r\nimport { MessageTemplateService } from '../../shared/services/message-template.service';\r\nimport { MessageSignatureService } from '../../shared/services/message-signature.service';\r\nimport { EmailProfileService } from '../../shared/services/email-profile.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\nimport { CommunicationHistoryService } from '../../shared/services/communication-history.service';\r\nimport { GroupService } from '../../shared/services/group.service';\r\n\r\nimport { SelectItem, ConfirmationService, AutoComplete } from 'primeng/primeng';\r\n\r\nimport { Contact } from '../../shared/models/contact.model';\r\nimport { Email } from '../../shared/models/email.model';\r\nimport { CommunicationLog } from '../../shared/models/communication-log.model';\r\nimport { MessageTemplate } from '../../shared/models/message-template.model';\r\nimport { EmailProfile } from '../../shared/models/email-profile.model';\r\nimport { Group } from '../../shared/models/group.model';\r\nimport { CustomFormBuilder } from '../../shared/classes/CustomFormBuilder';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { CommunicationDirection, CommunicationLogTypeNames } from 'app.constant';\r\nimport { MessageSignature } from '../../shared/models/message-signature.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\n\r\n@Component({\r\n selector: 'app-message-centre-emails',\r\n templateUrl: './message-centre-emails.component.html',\r\n styleUrls: ['./message-centre-emails.component.scss']\r\n})\r\nexport class MessageCentreEmailsComponent implements OnInit {\r\n emailForm: FormGroup;\r\n isFormInit: boolean = false;\r\n\r\n contactGroupsOptions: SelectItem[] = [];\r\n fromOptions: SelectItem[] = [];\r\n toOptions: SelectItem[] = [];\r\n\r\n templateOptions: SelectItem[] = [];\r\n selectedTemplateOption: string;\r\n\r\n signatureOptions: SelectItem[] = [];\r\n selectedSignatureOption: string;\r\n\r\n messageMaxLength: number = 720;\r\n signatureMarker: string = '

_

';\r\n\r\n\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private emailService: EmailService,\r\n private authService: AuthService,\r\n private contactService: ContactService,\r\n private groupService: GroupService,\r\n private messageTemplateService: MessageTemplateService,\r\n private messageSignatureService: MessageSignatureService,\r\n private emailProfileService: EmailProfileService,\r\n private communicationHistoryService: CommunicationHistoryService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n cT.companyName ? labelText += \" / Company: \" + cT.companyName : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT\r\n }\r\n );\r\n });\r\n\r\n this.toOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.emailForm = this.formBuilder.group({\r\n from: this.formBuilder.control(null, [Validators.required]),\r\n to: this.formBuilder.control(null),\r\n toGroups: this.formBuilder.control(null),\r\n subject: this.formBuilder.control(null, [Validators.required]),\r\n message: this.formBuilder.control(null, [Validators.required])\r\n });\r\n\r\n this.onGetContactGroups();\r\n this.onGetFromOptions();\r\n this.onGetMessageTemplates();\r\n this.onGetMessageSignatures();\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onGetContactGroups() {\r\n this.groupService.getGroups().subscribe(\r\n (groups: Group[]) => {\r\n groups.map(g => {\r\n this.contactGroupsOptions.push({ label: g.name, value: g });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact groups\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetFromOptions() {\r\n this.emailProfileService.getEmailProfiles().subscribe(\r\n (profiles: EmailProfile[]) => {\r\n profiles.map(p => {\r\n this.fromOptions.push({ label: p.name, value: p });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving email profiles\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetMessageTemplates() {\r\n this.messageTemplateService.getMessageTemplates().subscribe(\r\n (messageTemplates: MessageTemplate[]) => {\r\n this.templateOptions = [];\r\n\r\n messageTemplates.map(mT => {\r\n this.templateOptions.push({ label: mT.name, value: mT });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving templates\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetMessageSignatures() {\r\n this.messageSignatureService.getMessageSignatures().subscribe(\r\n (messageSignature: MessageSignature[]) => {\r\n this.signatureOptions = [];\r\n\r\n messageSignature.map(mT => {\r\n this.signatureOptions.push({ label: mT.name, value: mT });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving signatures\", error);\r\n }\r\n );\r\n }\r\n\r\n onTemplateChange($event) {\r\n let selectedValueMessage = $event.value.message;\r\n let selectedValueSubject = $event.value.name;\r\n\r\n let messageValue = this.emailForm.controls['message'].value;\r\n let subjectValue = this.emailForm.controls['subject'].value;\r\n\r\n if ((messageValue && messageValue.trim().length > 0) || (subjectValue && subjectValue.trim().length > 0)) {\r\n this.confirmationService.confirm({\r\n header: 'Confirm',\r\n message: 'The template will overwrite your message. Would you like to continue?',\r\n accept: () => {\r\n this.emailForm.patchValue({\r\n message: selectedValueMessage,\r\n subject: selectedValueSubject\r\n });\r\n },\r\n reject: () => {\r\n this.selectedTemplateOption = null;\r\n }\r\n });\r\n }\r\n else {\r\n this.emailForm.patchValue({\r\n message: selectedValueMessage,\r\n subject: selectedValueSubject\r\n });\r\n }\r\n }\r\n\r\n onSignatureChange($event) {\r\n let selectedValueMessage = $event.value.signiture;\r\n\r\n let messageValue = this.emailForm.controls['message'].value;\r\n\r\n if(messageValue.includes(this.signatureMarker)) // Another signature is already entered\r\n {\r\n\r\n let messageWithoutSignature = messageValue.substring(0, messageValue.indexOf(this.signatureMarker));\r\n let messageWithSignatre = messageWithoutSignature + this.signatureMarker + selectedValueMessage;\r\n\r\n this.confirmationService.confirm({\r\n header: 'Confirm',\r\n message: 'Are you sure you want to replace the current signature?',\r\n accept: () => {\r\n this.emailForm.patchValue({\r\n message: messageWithSignatre,\r\n });\r\n },\r\n reject: () => {\r\n this.selectedSignatureOption = null;\r\n }\r\n });\r\n }\r\n else {\r\n let messageWithSignatre = messageValue + this.signatureMarker + selectedValueMessage;\r\n this.emailForm.patchValue({\r\n message: messageWithSignatre\r\n });\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.confirmationService.confirm({\r\n header: 'Confirm',\r\n message: 'Are you sure you want to send this message to the selected contacts?',\r\n accept: () => {\r\n let emailMessage = this.formBuilder.sanitizeFormValues(this.emailForm).value;\r\n\r\n let emailProfile = emailMessage.from as EmailProfile;\r\n\r\n let allContactIds = []; // - Ids of contacts that will receive this email\r\n\r\n let toIndividualContactIds = [];\r\n if (emailMessage.to) {\r\n // - Get ContactIds from the To Individual field\r\n toIndividualContactIds = emailMessage.to.map(c => c.value.id) as Array;\r\n }\r\n\r\n let toGroupContactIds = [];\r\n if (emailMessage.toGroups) {\r\n // - Get ContactIds from the To Contact Group field\r\n toGroupContactIds = emailMessage.toGroups.map(\r\n c => c.contactGroups.map(cG => cG.contactId) as Array) as Array>;\r\n\r\n // - Get ContactIds from ContactGroup objects for each Group\r\n toGroupContactIds.map(\r\n (contactIds) => {\r\n contactIds.map(cId => allContactIds.push(cId))\r\n }\r\n );\r\n }\r\n\r\n allContactIds = allContactIds.concat(toIndividualContactIds);\r\n\r\n if (allContactIds.length > 0) {\r\n let emailModel: any = {\r\n contactIds: allContactIds,\r\n sentByUserId: this.authService.applicationProfileUser().id,\r\n body: emailMessage.message,\r\n subject: emailMessage.subject\r\n }\r\n\r\n this.onSendEmail(emailModel, emailProfile.id);\r\n }\r\n else {\r\n this.toastService.createWarningMessage(\"No recipients\", \"Please select at least one email recipient.\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n onSendAndSave() {\r\n this.onSubmit();\r\n\r\n let emailMessage = this.formBuilder.sanitizeFormValues(this.emailForm).value;\r\n\r\n emailMessage.message = emailMessage.message.replace(this.signatureMarker,'');\r\n\r\n let generatedName = emailMessage.subject as string;\r\n\r\n let messageTemplate: any = {\r\n message: emailMessage.message,\r\n name: generatedName,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n\r\n this.messageTemplateService.addMessageTemplate(messageTemplate).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The template has been created.\");\r\n\r\n this.onGetMessageTemplates(); // - Get template options again\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding template\", error);\r\n }\r\n );\r\n }\r\n\r\n onSendEmail(mail: Email, profileId: number) {\r\n this.emailService.sendEmailWithProfile(mail, profileId).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Mailing results:\", response[\"_body\"]);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Mailing results:\", error);\r\n }\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from '../auth/role-guard.service';\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\n\r\nimport { MessageCentreComponent } from '../message-centre/message-centre.component';\r\nimport { MessageCentreSmsComponent } from '../message-centre/message-centre-sms/message-centre-sms.component';\r\nimport { MessageCentreEmailsComponent } from '../message-centre/message-centre-emails/message-centre-emails.component';\r\nimport { MessageCentreTemplatesComponent } from '../message-centre/message-centre-templates/message-centre-templates.component';\r\nimport { MessageCentreTemplatesManageComponent } from '../message-centre/message-centre-templates/message-centre-templates-manage/message-centre-templates-manage.component';\r\nimport { MessageCentreConfigSmswarriorsComponent } from '../message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors.component';\r\nimport { MessageCentreConfigSmswarriorsManageComponent } from '../message-centre/message-centre-config-smswarriors/message-centre-config-smswarriors-manage/message-centre-config-smswarriors-manage.component';\r\nimport { MessageCentreConfigEmailComponent } from 'app/views/message-centre/message-centre-config-email/message-centre-config-email.component';\r\nimport { MessageCentreConfigEmailManageComponent } from 'app/views/message-centre/message-centre-config-email/message-centre-config-email-manage/message-centre-config-email-manage.component';\r\nimport { MessageCentreSignaturesComponent } from '../message-centre/message-centre-signatures/message-centre-signatures.component';\r\nimport { MessageCentreSignaturesManageComponent } from '../message-centre/message-centre-signatures/message-centre-signatures-manage/message-centre-signatures-manage.component';\r\n\r\n\r\nconst messageCentreRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'messaging-centre', component: MessageCentreComponent,\r\n children: [\r\n { path: '', redirectTo: 'sms', pathMatch: 'full' },\r\n { path: 'sms', component: MessageCentreSmsComponent },\r\n { path: 'email', component: MessageCentreEmailsComponent },\r\n {\r\n path: 'config/sms',\r\n component: MessageCentreConfigSmswarriorsComponent,\r\n canActivate: [RoleGuard],\r\n children: [\r\n { path: 'new', component: MessageCentreConfigSmswarriorsManageComponent },\r\n { path: ':id/edit', component: MessageCentreConfigSmswarriorsManageComponent }\r\n ]\r\n },\r\n {\r\n path: 'config/email',\r\n component: MessageCentreConfigEmailComponent,\r\n children: [\r\n { path: 'new', component: MessageCentreConfigEmailManageComponent },\r\n { path: ':id/edit', component: MessageCentreConfigEmailManageComponent }\r\n ]\r\n },\r\n {\r\n path: 'templates',\r\n component: MessageCentreTemplatesComponent,\r\n children: [\r\n { path: 'new', component: MessageCentreTemplatesManageComponent },\r\n { path: ':id/edit', component: MessageCentreTemplatesManageComponent }\r\n ]\r\n },\r\n {\r\n path: 'signatures',\r\n canActivate: [RoleGuard],\r\n component: MessageCentreSignaturesComponent,\r\n children: [\r\n { path: 'new', component: MessageCentreSignaturesManageComponent },\r\n { path: ':id/edit', component: MessageCentreSignaturesManageComponent }\r\n ]\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(messageCentreRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class MessageCentreRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Message Signature

\\r\\n

New Message Signature

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Name field is required.\\r\\n \\r\\n \\r\\n There is already a signature with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The signature field is required.\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLXNpZ25hdHVyZXMvbWVzc2FnZS1jZW50cmUtc2lnbmF0dXJlcy1tYW5hZ2UvbWVzc2FnZS1jZW50cmUtc2lnbmF0dXJlcy1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { MessageSignatureService } from \"../../../shared/services/message-signature.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { MessageSignature } from \"../../../shared/models/message-signature.model\";\r\nimport { valueExistsValidator } from 'app/views/shared/validators/value-exists.validator';\r\n\r\n@Component({\r\n selector: 'app-message-centre-signatures-manage',\r\n templateUrl: './message-centre-signatures-manage.component.html',\r\n styleUrls: ['./message-centre-signatures-manage.component.scss']\r\n})\r\nexport class MessageCentreSignaturesManageComponent implements OnInit {\r\n signatureForm: FormGroup; // - Stores the signature form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a message signature if true and add a new message signature if false\r\n\r\n messageSignatures: MessageSignature[] = []; // - Stores all messageSignatures retrieved from db\r\n signature: MessageSignature = new MessageSignature(); // - Stores MessageSignature to populate form with an existing MessageSignature's values\r\n\r\n // messageMaxLength: number = 720;\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private messageSignatureService: MessageSignatureService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.messageSignatureService.getMessageSignatures().subscribe(\r\n (messageSignatures: MessageSignature[]) => {\r\n this.messageSignatures = messageSignatures; // - Store all signatures retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const messageSignatureId = params['id'];\r\n this.isEdit = messageSignatureId != null;\r\n\r\n if (this.isEdit) {\r\n this.signature = this.messageSignatures.find(mT => mT.id === +messageSignatureId); // - Store the selected signature\r\n\r\n // Redirect to 404 page if the selected signature could not be found\r\n if (!this.signature) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving signatures\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all signature names to know if it already exists\r\n const signatureNames = this.messageSignatures.map(mT => mT.name);\r\n\r\n // Remove the current signature name if being edited so the name can remain unchanged\r\n if (this.isEdit)\r\n signatureNames.splice(signatureNames.indexOf(this.signature.name), 1);\r\n\r\n this.signatureForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.signature.name, [Validators.required, valueExistsValidator(signatureNames)]),\r\n signiture: this.formBuilder.control(this.signature.signiture, [Validators.required])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddMessageSignature(newMessageSignature: MessageSignature) {\r\n this.messageSignatureService.addMessageSignature(newMessageSignature).subscribe(\r\n (response: Response) => {\r\n this.messageSignatureService.messageSignaturesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The signature \" + newMessageSignature.name + \" has been created.\");\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding signature\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateMessageSignature(newMessageSignature: MessageSignature) {\r\n this.messageSignatureService.updateMessageSignature(newMessageSignature).subscribe(\r\n (response: Response) => {\r\n this.messageSignatureService.messageSignaturesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The signature \" + newMessageSignature.name + \" has been updated.\");\r\n this.router.navigate(['../../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating signature\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newMessageSignature = this.formBuilder.sanitizeFormValues(this.signatureForm).value;\r\n \r\n if (this.isEdit) {\r\n newMessageSignature.id = this.signature.id; // - Set id of edited messageSignature to its original id\r\n newMessageSignature.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateMessageSignature(newMessageSignature);\r\n }\r\n else {\r\n newMessageSignature.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddMessageSignature(newMessageSignature);\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n List of Message Signatures\\r\\n \\r\\n There are currently {{ signatures.length}} signatures\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ signature.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n signature.createdByUserAccountId ?\\r\\n signature.createdByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLXNpZ25hdHVyZXMvbWVzc2FnZS1jZW50cmUtc2lnbmF0dXJlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { SmsWarriorsService } from '../../shared/services/sms-warriors.service';\r\nimport { MessageSignatureService } from '../../shared/services/message-signature.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\n\r\nimport { ConfirmationService } from 'primeng/primeng';\r\n\r\nimport { MessageSignature } from 'app/views/shared/models/message-signature.model';\r\n\r\n@Component({\r\n selector: 'app-message-centre-signatures',\r\n templateUrl: './message-centre-signatures.component.html',\r\n styleUrls: ['./message-centre-signatures.component.scss']\r\n})\r\nexport class MessageCentreSignaturesComponent implements OnInit {\r\n signatures: MessageSignature[] = [];\r\n \r\n constructor(\r\n public authService: AuthService,\r\n private messageSignatureService: MessageSignatureService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetMessageSignatures();\r\n\r\n // Listen to changes made to signatures\r\n this.messageSignatureService.messageSignaturesChanged.subscribe(\r\n () => {\r\n this.onGetMessageSignatures();\r\n }\r\n );\r\n }\r\n\r\n onGetMessageSignatures() {\r\n this.messageSignatureService.getMessageSignatures().subscribe(\r\n (signatures: MessageSignature[]) => {\r\n this.signatures = signatures;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving signatures\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteMessageSignature(messageSignature: MessageSignature) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Signature',\r\n message: 'Are you sure you want to delete the signature ' + messageSignature.name + '?',\r\n accept: () => {\r\n messageSignature.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.messageSignatureService.deleteMessageSignature(messageSignature).subscribe(\r\n (response: Response) => {\r\n this.onGetMessageSignatures();\r\n this.toastService.createSuccessMessage(\"Success\", \"The signature \" + messageSignature.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting signature\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for signature \" + messageSignature.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select an SMS profile.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select a country code.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The message field is required.\\r\\n \\r\\n \\r\\n You can not send a message that exceeds {{messageMaxLength}} characters.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLXNtcy9tZXNzYWdlLWNlbnRyZS1zbXMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { SmsWarriorsService } from '../../shared/services/sms-warriors.service';\r\nimport { MessageTemplateService } from '../../shared/services/message-template.service';\r\nimport { SmsWarriorsProfileService } from '../../shared/services/sms-warriors-profile.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\nimport { GroupService } from '../../shared/services/group.service';\r\nimport { CommunicationHistoryService } from '../../shared/services/communication-history.service';\r\n\r\nimport { SmsWarriorsResponse } from '../../shared/models/sms-warriors-response.model';\r\nimport { Contact } from '../../shared/models/contact.model';\r\n\r\nimport { SelectItem, ConfirmationService, AutoComplete } from 'primeng/primeng';\r\n\r\nimport { CustomFormBuilder } from '../../shared/classes/CustomFormBuilder';\r\nimport { SmsWarriors, CommunicationDirection, CommunicationLogTypeNames } from 'app.constant';\r\nimport { MessageTemplate } from '../../shared/models/message-template.model';\r\nimport { Group } from '../../shared/models/group.model';\r\nimport { SmsWarriorsProfile } from '../../shared/models/sms-warriors-profile.model';\r\nimport { CommunicationLog } from '../../shared/models/communication-log.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\n\r\n@Component({\r\n selector: 'app-message-centre-sms',\r\n templateUrl: './message-centre-sms.component.html',\r\n styleUrls: ['./message-centre-sms.component.scss']\r\n})\r\nexport class MessageCentreSmsComponent implements OnInit {\r\n smsForm: FormGroup;\r\n isFormInit: boolean = false;\r\n\r\n fromOptions: SelectItem[] = [];\r\n toOptions: SelectItem[] = [];\r\n contactGroupsOptions: SelectItem[] = [];\r\n countryCodeOptions: SelectItem[] = [];\r\n\r\n templateOptions: SelectItem[] = [];\r\n selectedTemplateOption: string;\r\n\r\n messageMaxLength: number = 720;\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private smsWarriorsService: SmsWarriorsService,\r\n private authService: AuthService,\r\n private contactService: ContactService,\r\n private groupService: GroupService,\r\n private messageTemplateService: MessageTemplateService,\r\n private smsWarriorsProfileService: SmsWarriorsProfileService,\r\n private communicationHistoryService: CommunicationHistoryService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n cT.companyName ? labelText += \" / Company: \" + cT.companyName : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT\r\n }\r\n );\r\n });\r\n\r\n this.toOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.smsForm = this.formBuilder.group({\r\n from: this.formBuilder.control(null, [Validators.required]),\r\n to: this.formBuilder.control(null),\r\n toGroups: this.formBuilder.control(null),\r\n countryCode: this.formBuilder.control(null, [Validators.required]),\r\n message: this.formBuilder.control(null, [Validators.required, Validators.maxLength(this.messageMaxLength)])\r\n });\r\n\r\n this.onGetContactGroups();\r\n this.onGetFromOptions();\r\n this.onGetCountryCodes();\r\n this.onGetMessageTemplates();\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onGetContactGroups() {\r\n this.groupService.getGroups().subscribe(\r\n (groups: Group[]) => {\r\n groups.map(g => {\r\n this.contactGroupsOptions.push({ label: g.name, value: g });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contact groups\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetFromOptions() {\r\n this.smsWarriorsProfileService.getSmsWarriorProfiles().subscribe(\r\n (profiles: SmsWarriorsProfile[]) => {\r\n profiles.map(p => {\r\n this.fromOptions.push({ label: p.companyName, value: p });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving sms profiles\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetMessageTemplates() {\r\n this.messageTemplateService.getMessageTemplates().subscribe(\r\n (messageTemplates: MessageTemplate[]) => {\r\n this.templateOptions = [];\r\n\r\n messageTemplates.map(mT => {\r\n this.templateOptions.push({ label: mT.name, value: mT.message });\r\n });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving templates\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetCountryCodes() {\r\n let countryCodes = SmsWarriors.CountryCodes;\r\n\r\n countryCodes.map(c => {\r\n this.countryCodeOptions.push({ label: `${c.country} (${c.code})`, value: c.code });\r\n });\r\n }\r\n\r\n onTemplateChange($event) {\r\n let selectedValue = $event.value;\r\n let messageValue = this.smsForm.controls['message'].value;\r\n\r\n if (messageValue && messageValue.trim().length > 0) {\r\n this.confirmationService.confirm({\r\n header: 'Confirm',\r\n message: 'The template will overwrite your message. Would you like to continue?',\r\n accept: () => {\r\n this.smsForm.patchValue({\r\n message: selectedValue\r\n });\r\n },\r\n reject: () => {\r\n this.selectedTemplateOption = null;\r\n }\r\n });\r\n }\r\n else {\r\n this.smsForm.patchValue({\r\n message: selectedValue\r\n });\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.confirmationService.confirm({\r\n header: 'Confirm',\r\n message: 'Are you sure you want to send this message to the selected contacts?',\r\n accept: () => {\r\n let smsMessage = this.formBuilder.sanitizeFormValues(this.smsForm).value;\r\n\r\n let allContactIds = []; // - Ids of contacts that will receive this SMS\r\n\r\n let toIndividualContactIds = [];\r\n if (smsMessage.to) {\r\n // - Get ContactIds from the To Individual field\r\n toIndividualContactIds = smsMessage.to.map(c => c.value.id) as Array;\r\n }\r\n\r\n let toGroupContactIds = [];\r\n if (smsMessage.toGroups) {\r\n // - Get ContactIds from the To Contact Group field\r\n toGroupContactIds = smsMessage.toGroups.map(\r\n c => c.contactGroups.map(cG => cG.contactId) as Array) as Array>;\r\n\r\n // - Get ContactIds from ContactGroup objects for each Group\r\n toGroupContactIds.map(\r\n (contactIds) => {\r\n contactIds.map(cId => allContactIds.push(cId))\r\n }\r\n );\r\n }\r\n\r\n allContactIds = allContactIds.concat(toIndividualContactIds);\r\n\r\n if (allContactIds.length > 0) {\r\n let smsProfile = smsMessage.from as SmsWarriorsProfile;\r\n let countryCode = smsMessage.countryCode;\r\n // let contactsArr = smsMessage.to.map(t => t.value) as Array;\r\n\r\n this.onSendSms(smsProfile.apiKey, countryCode, allContactIds, smsProfile.companyName, smsMessage.message, 0);\r\n }\r\n else {\r\n this.toastService.createWarningMessage(\"No recipients\", \"Please select at least one SMS recipient.\"); \r\n }\r\n }\r\n });\r\n }\r\n\r\n onSendAndSave() {\r\n this.onSubmit();\r\n\r\n let smsMessage = this.formBuilder.sanitizeFormValues(this.smsForm).value;\r\n\r\n let generatedName = smsMessage.message as string;\r\n generatedName = generatedName.substring(0, 50);\r\n if (generatedName.length > 50)\r\n generatedName += \"...\";\r\n\r\n let messageTemplate: any = {\r\n message: smsMessage.message,\r\n name: generatedName,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n\r\n this.messageTemplateService.addMessageTemplate(messageTemplate).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The template has been created.\");\r\n\r\n this.onGetMessageTemplates(); // - Get template options again\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding template\", error);\r\n }\r\n );\r\n }\r\n\r\n onSendSms(apiKey: string, countryCode: string, contactIds: number[], senderId: string, msgBody: string, notification: number) {\r\n this.smsWarriorsService.requestSMS(apiKey, countryCode, contactIds, this.authService.applicationProfileUser().id, senderId, msgBody, notification).subscribe(\r\n (response: SmsWarriorsResponse) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The SMS messages have been queued\");\r\n console.log(\"Response from sms:\", response);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error sending SMS\", error);\r\n console.log(\"Err send sms:\", error);\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Message Template

\\r\\n

New Message Template

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Name field is required.\\r\\n \\r\\n \\r\\n There is already a template with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The message field is required.\\r\\n \\r\\n \\r\\n You can not send a message that exceeds {{messageMaxLength}} characters.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLXRlbXBsYXRlcy9tZXNzYWdlLWNlbnRyZS10ZW1wbGF0ZXMtbWFuYWdlL21lc3NhZ2UtY2VudHJlLXRlbXBsYXRlcy1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { MessageTemplateService } from \"../../../shared/services/message-template.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { MessageTemplate } from \"../../../shared/models/message-template.model\";\r\nimport { valueExistsValidator } from 'app/views/shared/validators/value-exists.validator';\r\n\r\n@Component({\r\n selector: 'app-message-centre-templates-manage',\r\n templateUrl: './message-centre-templates-manage.component.html',\r\n styleUrls: ['./message-centre-templates-manage.component.scss']\r\n})\r\nexport class MessageCentreTemplatesManageComponent implements OnInit {\r\n templateForm: FormGroup; // - Stores the template form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a message template if true and add a new message template if false\r\n\r\n messageTemplates: MessageTemplate[] = []; // - Stores all messageTemplates retrieved from db\r\n template: MessageTemplate = new MessageTemplate(); // - Stores MessageTemplate to populate form with an existing MessageTemplate's values\r\n\r\n messageMaxLength: number = 720;\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private messageTemplateService: MessageTemplateService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.messageTemplateService.getMessageTemplates().subscribe(\r\n (messageTemplates: MessageTemplate[]) => {\r\n this.messageTemplates = messageTemplates; // - Store all templates retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const messageTemplateId = params['id'];\r\n this.isEdit = messageTemplateId != null;\r\n\r\n if (this.isEdit) {\r\n this.template = this.messageTemplates.find(mT => mT.id === +messageTemplateId); // - Store the selected template\r\n\r\n // Redirect to 404 page if the selected template could not be found\r\n if (!this.template) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving templates\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all template names to know if it already exists\r\n const templateNames = this.messageTemplates.map(mT => mT.name);\r\n\r\n // Remove the current template name if being edited so the name can remain unchanged\r\n if (this.isEdit)\r\n templateNames.splice(templateNames.indexOf(this.template.name), 1);\r\n\r\n this.templateForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.template.name, [Validators.required, valueExistsValidator(templateNames)]),\r\n message: this.formBuilder.control(this.template.message, [Validators.required, Validators.maxLength(this.messageMaxLength)])\r\n });\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddMessageTemplate(newMessageTemplate: MessageTemplate) {\r\n this.messageTemplateService.addMessageTemplate(newMessageTemplate).subscribe(\r\n (response: Response) => {\r\n this.messageTemplateService.messageTemplatesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The template \" + newMessageTemplate.name + \" has been created.\");\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding template\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateMessageTemplate(newMessageTemplate: MessageTemplate) {\r\n this.messageTemplateService.updateMessageTemplate(newMessageTemplate).subscribe(\r\n (response: Response) => {\r\n this.messageTemplateService.messageTemplatesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The template \" + newMessageTemplate.name + \" has been updated.\");\r\n this.router.navigate(['../../'], { relativeTo: this.route });\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating template\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newMessageTemplate = this.formBuilder.sanitizeFormValues(this.templateForm).value;\r\n \r\n if (this.isEdit) {\r\n newMessageTemplate.id = this.template.id; // - Set id of edited messageTemplate to its original id\r\n newMessageTemplate.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateMessageTemplate(newMessageTemplate);\r\n }\r\n else {\r\n newMessageTemplate.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddMessageTemplate(newMessageTemplate);\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n List of Message Templates\\r\\n \\r\\n There are currently {{ templates.length}} templates\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ template.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n template.createdByUserAccountId ?\\r\\n template.createdByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLXRlbXBsYXRlcy9tZXNzYWdlLWNlbnRyZS10ZW1wbGF0ZXMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { SmsWarriorsService } from '../../shared/services/sms-warriors.service';\r\nimport { MessageTemplateService } from '../../shared/services/message-template.service';\r\nimport { ToastService } from '../../shared/services/toast.service';\r\n\r\nimport { ConfirmationService } from 'primeng/primeng';\r\n\r\nimport { MessageTemplate } from 'app/views/shared/models/message-template.model';\r\n\r\n@Component({\r\n selector: 'app-message-centre-templates',\r\n templateUrl: './message-centre-templates.component.html',\r\n styleUrls: ['./message-centre-templates.component.scss']\r\n})\r\nexport class MessageCentreTemplatesComponent implements OnInit {\r\n templates: MessageTemplate[] = [];\r\n \r\n constructor(\r\n public authService: AuthService,\r\n private messageTemplateService: MessageTemplateService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetMessageTemplates();\r\n\r\n // Listen to changes made to templates\r\n this.messageTemplateService.messageTemplatesChanged.subscribe(\r\n () => {\r\n this.onGetMessageTemplates();\r\n }\r\n );\r\n }\r\n\r\n onGetMessageTemplates() {\r\n this.messageTemplateService.getMessageTemplates().subscribe(\r\n (templates: MessageTemplate[]) => {\r\n this.templates = templates;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving templates\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteMessageTemplate(messageTemplate: MessageTemplate) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Template',\r\n message: 'Are you sure you want to delete the template ' + messageTemplate.name + '?',\r\n accept: () => {\r\n messageTemplate.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.messageTemplateService.deleteMessageTemplate(messageTemplate).subscribe(\r\n (response: Response) => {\r\n this.onGetMessageTemplates();\r\n this.toastService.createSuccessMessage(\"Success\", \"The template \" + messageTemplate.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting template\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for template \" + messageTemplate.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Potenza Messaging Centre
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL21lc3NhZ2UtY2VudHJlL21lc3NhZ2UtY2VudHJlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\n\r\nimport { AuthService } from '../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-message-centre',\r\n templateUrl: './message-centre.component.html',\r\n styleUrls: ['./message-centre.component.scss']\r\n})\r\nexport class MessageCentreComponent implements OnInit {\r\n currentRoute: string = \"\";\r\n tabActiveIndex: number = 0;\r\n\r\n emailTabIndex: number = 0;\r\n smsTabIndex: number = 1;\r\n templatesTabIndex: number = 2;\r\n emailConfigTabIndex: number = 3;\r\n smsConfigTabIndex: number = 4;\r\n signaturesTabIndex: number = 5;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.currentRoute = this.router.url.replace(\"/messaging-centre/\", \"\");\r\n this.switchActiveTab();\r\n\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.currentRoute = event.url.replace(\"/messaging-centre/\", \"\");\r\n this.switchActiveTab();\r\n }\r\n });\r\n }\r\n\r\n switchActiveTab() {\r\n switch (this.currentRoute) {\r\n case \"sms\":\r\n this.tabActiveIndex = this.smsTabIndex;\r\n break;\r\n case \"email\":\r\n this.tabActiveIndex = this.emailTabIndex;\r\n break;\r\n case \"templates\":\r\n this.tabActiveIndex = this.templatesTabIndex;\r\n break;\r\n case \"config/sms\":\r\n this.tabActiveIndex = this.smsConfigTabIndex;\r\n break;\r\n case \"config/email\":\r\n this.tabActiveIndex = this.emailConfigTabIndex;\r\n break;\r\n case \"signatures\":\r\n this.tabActiveIndex = this.signaturesTabIndex;\r\n break;\r\n default:\r\n this.tabActiveIndex = null;\r\n }\r\n }\r\n\r\n onTabChange($event) {\r\n switch ($event.index) {\r\n case this.smsTabIndex:\r\n this.router.navigate(['sms'], { relativeTo: this.route })\r\n break;\r\n case this.emailTabIndex:\r\n this.router.navigate(['email'], { relativeTo: this.route })\r\n break;\r\n case this.templatesTabIndex:\r\n this.router.navigate(['templates'], { relativeTo: this.route })\r\n break;\r\n case this.smsConfigTabIndex:\r\n this.router.navigate(['config/sms'], { relativeTo: this.route })\r\n break;\r\n case this.emailConfigTabIndex:\r\n this.router.navigate(['config/email'], { relativeTo: this.route })\r\n break;\r\n case this.signaturesTabIndex:\r\n this.router.navigate(['signatures'], { relativeTo: this.route })\r\n break;\r\n default:\r\n this.tabActiveIndex = null;\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule, FormsModule } from \"@angular/forms\";\r\n\r\nimport { MessageCentreRoutingModule } from \"./message-centre-routing.module\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap';\r\nimport { DropdownModule, EditorModule } from 'primeng/primeng';\r\n\r\nimport { MessageCentreComponent } from './message-centre.component';\r\nimport { MessageCentreSmsComponent } from './message-centre-sms/message-centre-sms.component';\r\nimport { MessageCentreEmailsComponent } from './message-centre-emails/message-centre-emails.component';\r\nimport { MessageCentreTemplatesComponent } from './message-centre-templates/message-centre-templates.component';\r\nimport { MessageCentreTemplatesManageComponent } from './message-centre-templates/message-centre-templates-manage/message-centre-templates-manage.component';\r\nimport { MessageCentreConfigSmswarriorsComponent } from './message-centre-config-smswarriors/message-centre-config-smswarriors.component';\r\nimport { MessageCentreConfigSmswarriorsManageComponent } from './message-centre-config-smswarriors/message-centre-config-smswarriors-manage/message-centre-config-smswarriors-manage.component';\r\nimport { MessageCentreConfigEmailComponent } from './message-centre-config-email/message-centre-config-email.component';\r\nimport { MessageCentreConfigEmailManageComponent } from './message-centre-config-email/message-centre-config-email-manage/message-centre-config-email-manage.component';\r\nimport { MessageCentreSignaturesComponent } from './message-centre-signatures/message-centre-signatures.component';\r\nimport { MessageCentreSignaturesManageComponent } from './message-centre-signatures/message-centre-signatures-manage/message-centre-signatures-manage.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n MessageCentreRoutingModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n DropdownModule,\r\n ModalModule.forRoot(),\r\n EditorModule\r\n ],\r\n declarations: [\r\n MessageCentreComponent, \r\n MessageCentreSmsComponent, \r\n MessageCentreEmailsComponent, \r\n MessageCentreTemplatesComponent, \r\n MessageCentreTemplatesManageComponent,\r\n MessageCentreConfigSmswarriorsComponent,\r\n MessageCentreConfigSmswarriorsManageComponent,\r\n MessageCentreConfigEmailComponent,\r\n MessageCentreConfigEmailManageComponent,\r\n MessageCentreSignaturesComponent,\r\n MessageCentreSignaturesManageComponent\r\n ]\r\n})\r\nexport class MessageCentreModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { OpportunitiesComponent } from \"./opportunities.component\";\r\nimport { OpportunityListComponent } from \"./opportunity-list/opportunity-list.component\";\r\nimport { OpportunityManageComponent } from \"./opportunity-manage/opportunity-manage.component\";\r\nimport { OpportunityQuoteManageComponent } from './opportunity-quotes/opportunity-quote-manage/opportunity-quote-manage.component';\r\nimport { SalesOpportunityManageComponent } from './opportunity-sales/opportunity-manage-sales.component';\r\nimport { AcquisitionOpportunityManageComponent } from './opportunity-acquisition/opportunity-manage-acquisition.component';\r\n\r\nconst opportunitiesRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'opportunities', component: OpportunitiesComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: OpportunityListComponent },\r\n { path: 'sales-opp/new', component: SalesOpportunityManageComponent },\r\n { path: 'acquisition-opp/new', component: AcquisitionOpportunityManageComponent },\r\n \r\n // { path: ':id/edit', component: OpportunityManageComponent },\r\n { path: 'sales-opp/:id/edit', component: SalesOpportunityManageComponent },\r\n { path: 'acquisition-opp/:id/edit', component: AcquisitionOpportunityManageComponent },\r\n { path: ':categoryType/:id/edit', component: OpportunityManageComponent },\r\n // { path: 'new', component: OpportunityManageComponent },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(opportunitiesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OpportunitiesRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdGllcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-opportunities',\r\n templateUrl: './opportunities.component.html',\r\n styleUrls: ['./opportunities.component.scss']\r\n})\r\nexport class OpportunitiesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { OpportunitiesRoutingModule } from \"./opportunities-routing.module\";\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { CalendarModule, DropdownModule, SliderModule, GMapModule } from \"primeng/primeng\";\r\nimport { OpportunityFilesModule } from \"./opportunity-files/opportunity-files.module\";\r\n\r\nimport { OpportunityLostTypesModule } from './opportunity-lost-types/opportunity-lost-types.module';\r\n\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\nimport { OpportunitiesComponent } from './opportunities.component';\r\nimport { OpportunityListComponent } from './opportunity-list/opportunity-list.component';\r\nimport { OpportunityManageComponent } from './opportunity-manage/opportunity-manage.component';\r\nimport { OpportunityQuotesModule } from './opportunity-quotes/opportunity-quotes.module';\r\nimport { SalesOpportunityManageComponent } from './opportunity-sales/opportunity-manage-sales.component';\r\nimport { AcquisitionOpportunityManageComponent } from './opportunity-acquisition/opportunity-manage-acquisition.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n OpportunitiesComponent,\r\n OpportunityListComponent,\r\n OpportunityManageComponent,\r\n SalesOpportunityManageComponent,\r\n AcquisitionOpportunityManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n OpportunitiesRoutingModule,\r\n OpportunityFilesModule,\r\n OpportunityLostTypesModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n SliderModule,\r\n CollapseModule,\r\n CalendarModule,\r\n OpportunityQuotesModule,\r\n GMapModule\r\n ]\r\n})\r\nexport class OpportunitiesModule { }\r\n","import { AcquisitionOpportunityManageComponent } from './opportunity-manage-acquisition.component';\r\n\r\nexport class AcquisitionOpportunityValidation {\r\n constructor(private _opportunityManageItem: AcquisitionOpportunityManageComponent) { }\r\n\r\n //the client input fields\r\n input = {\r\n NAME: \"name\",\r\n CODE: \"code\",\r\n OPP_PROBABILITY: \"probability\",\r\n OPP_TYPE: \"opportunityTypeId\",\r\n OPP_CATEGORY_TYPE: \"opportunityCategoryTypeId\",\r\n\r\n OPP_SELLER: \"sellerId\",\r\n PLOT_DESC: \"plotDescription\",\r\n\r\n PROJECT_MANAGER: \"projectManagerId\",\r\n START_DATE: \"startDate\",\r\n DUE_DATE: \"dueDate\"\r\n }\r\n\r\n //opportunity category type validation\r\n get opportunityCategoryType() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_CATEGORY_TYPE); }\r\n get isOpportunityCategoryTypeInvalid() { return (this.opportunityCategoryType.invalid && (this.opportunityCategoryType.dirty || this.opportunityCategoryType.touched)); }\r\n\r\n //opportunity type validation\r\n get opportunityType() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_TYPE); }\r\n get isOpportunityTypeInvalid() { return (this.opportunityType.invalid && (this.opportunityType.dirty || this.opportunityType.touched)); }\r\n\r\n //probabillity validation\r\n get probability() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_PROBABILITY); }\r\n get isProbabilityInvalid() { return (this.probability.invalid && (this.probability.dirty || this.probability.touched)); }\r\n\r\n //name validation\r\n get name() { return this._opportunityManageItem.opportunityForm.get(this.input.NAME); }\r\n get isNameInvalid() { return (this.name.invalid && (this.name.dirty || this.name.touched)); }\r\n\r\n //seller validation\r\n get seller() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_SELLER); }\r\n get isSellerInvalid() { return (this.seller.invalid && (this.seller.dirty || this.seller.touched)); }\r\n\r\n //plot description validation\r\n get plotDescription() { return this._opportunityManageItem.opportunityForm.get(this.input.PLOT_DESC); }\r\n get isPlotDescriptionInvalid() { return (this.plotDescription.invalid && (this.plotDescription.dirty || this.plotDescription.touched)); }\r\n\r\n //project manager validation\r\n get projectManager() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.PROJECT_MANAGER); }\r\n get isProjectManagerInvalid() { return (this.projectManager.invalid && (this.projectManager.dirty || this.projectManager.touched)); }\r\n\r\n //project name validation\r\n get projectName() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.NAME); }\r\n get isProjectNameInvalid() { return (this.projectName.invalid && (this.projectName.dirty || this.projectName.touched)); }\r\n\r\n //project name validation\r\n get projectCode() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.CODE); }\r\n get isProjectCodeInvalid() { return (this.projectCode.invalid && (this.projectCode.dirty || this.projectCode.touched)); }\r\n \r\n //project start date validation\r\n get projectStartDate() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.START_DATE); }\r\n get isProjectStartDateInvalid() { return (this.projectStartDate.invalid && (this.projectStartDate.dirty || this.projectStartDate.touched)); }\r\n\r\n //project due date validation\r\n get projectDueDate() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.DUE_DATE); }\r\n get isProjectDueDateInvalid() { return (this.projectDueDate.invalid && (this.projectDueDate.dirty || this.projectDueDate.touched)); }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update Opportunity
\\r\\n
New Opportunity
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Assigned Contact:\\r\\n {{ opportunityForm.get('assignedContactId').value.label }}.\\r\\n

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

\\r\\n No contact is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Assigned Contact field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The minimum allowed value is 0.\\r\\n \\r\\n \\r\\n The maximum allowed value is 100%.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

Property Details

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

\\r\\n Assigned Seller/Vendor:\\r\\n {{ opportunityForm?.get('sellerId')?.value?.label }}.\\r\\n

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

\\r\\n No seller/vendor is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Seller/Vendor field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n 5\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter probability.\\r\\n \\r\\n \\r\\n The minimum allowed value is 0.\\r\\n \\r\\n \\r\\n The maximum allowed value is 100%.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
This data is required to create a project in Project Management Module
\\r\\n
This opportunity is linked with the following project in Project Management Module
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter project name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n The new project requires a code.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select a project manager.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select start date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select due date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please enter plot description.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Address Details\\r\\n \\r\\n

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

Potential Property Results

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Viewed
\\r\\n
Not Interested
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{prop.defaultPrice}}\\r\\n \\r\\n {{prop.propertyPreCode}}\\r\\n {{prop.propertyCategory}} - {{prop.propertyLocality}}\\r\\n\\r\\n \\r\\n
\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n
\\r\\n
\\r\\n Set Viewing \\r\\n Undo 'Client Not Interested' \\r\\n \\r\\n Client Not Interested \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
Tasks
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task | taskStatus }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.reminderDate | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdByUserAccountId ? task.createdByUserAccount?.fullName : '-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 20 ? false : true\\\"\\r\\n tooltipPosition=\\\"left\\\" tooltipStyleClass=\\\"tooltip-primary\\\">\\r\\n {{ task.taskDescription }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.userTasks | assignedUsers | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.contactTasks | assignedContacts | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.isTaskComplete | taskStatus }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".header--collapse {\\n padding-left: 15px; }\\n\\nspan.ui-calendar {\\n display: flex !important;\\n align-items: center;\\n justify-content: flex-end; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3Mvb3Bwb3J0dW5pdGllcy9vcHBvcnR1bml0eS1hY3F1aXNpdGlvbi9DOlxcSmVua2luc1xcLmplbmtpbnNcXHdvcmtzcGFjZVxcQ1JNLUFDUS1QT1JUQUwtUFJPRFxcSVNCLkNSTS5XZWJzaXRlL3NyY1xcYXBwXFx2aWV3c1xcb3Bwb3J0dW5pdGllc1xcb3Bwb3J0dW5pdHktYWNxdWlzaXRpb25cXG9wcG9ydHVuaXR5LW1hbmFnZS1hY3F1aXNpdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTtFQUNFLGtCQUFrQixFQUFBOztBQUlqQjtFQUVHLHdCQUF3QjtFQUN4QixtQkFBbUI7RUFDbkIseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9vcHBvcnR1bml0aWVzL29wcG9ydHVuaXR5LWFjcXVpc2l0aW9uL29wcG9ydHVuaXR5LW1hbmFnZS1hY3F1aXNpdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC5oYXMtZGFuZ2VyIC5pbnB1dC1ncm91cC10ZXh0LCAuaGFzLWRhbmdlciAuZm9ybS1jb250cm9sLCAuaGFzLWRhbmdlciAucC1kcm9wZG93biA+IGRpdiB7XHJcbi8vICAgYm9yZGVyLWNvbG9yOiByZWQ7XHJcbi8vIH1cclxuXHJcblxyXG4uaGVhZGVyLS1jb2xsYXBzZSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG59XHJcblxyXG4vLyBwLWNhbGVuZGFyIHtcclxuICAgc3BhbiB7XHJcbiAgICAgICYudWktY2FsZW5kYXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcbiAgfVxyXG4vLyB9XHJcbiJdfQ== */\"","import { Component, OnInit, ViewChild, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities, PrepopulatedContactTypes, PrepopulatedContactSources, PrepopulatedOpportunityTypes, PrepopulatedTaskTypes, GoogleMaps } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { OpportunityService } from \"../../shared/services/opportunity.service\";\r\nimport { OpportunityTypeService } from \"../../shared/services/opportunity-type.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\nimport { OpportunityLostTypeService } from '../../shared/services/opportunity-lost-type.service';\r\nimport { ProductService } from '../../shared/services/product.service';\r\nimport { QuoteService } from '../../shared/services/quote.service';\r\nimport { Opportunity, OpportunityExtended, SalesOpportunityFormControl, LandPurchaseOpportunityFormControl, LandPurchaseOpportunity } from \"../../shared/models/opportunity.model\";\r\nimport { OpportunityType } from \"../../shared/models/opportunity-type.model\";\r\n\r\nimport { SelectItem, ConfirmationService, AutoComplete } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { OpportunityLostType } from '../../shared/models/opportunity-lost-type.model';\r\nimport { Product } from '../../shared/models/product.model';\r\nimport { PropertyService } from 'app/views/shared/services/property.service';\r\nimport { PropertyCategory } from 'app/views/shared/models/property-category.model';\r\nimport { PropertyLocality } from 'app/views/shared/models/property-locality.model';\r\nimport { PropertyRegion } from 'app/views/shared/models/property-region.model';\r\nimport { PropertyDealType } from 'app/views/shared/models/property-dealtype';\r\nimport { PropertyAttribute } from 'app/views/shared/models/property-attribute';\r\nimport { PropertyDetails } from 'app/views/shared/models/property-details.model';\r\nimport { pipeFromArray } from 'rxjs/internal/util/pipe';\r\nimport { OpportunitySelection } from 'app/views/shared/models/opportunity-selection.model';\r\nimport { PropertyOppSelection } from 'app/views/shared/models/property-opportunity-selection.model';\r\nimport { Property } from 'app/views/shared/models/property.model';\r\nimport { OpportunityPropertiesNotInterested } from 'app/views/shared/models/opportunity-properties-not-interested.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { Quote } from 'app/views/shared/models/quote.model';\r\nimport { Task } from 'app/views/shared/models/task.model';\r\nimport { TaskService } from 'app/views/shared/services/task.service';\r\nimport { Organization } from 'app/views/shared/models/organization.model';\r\nimport { BaseComponent } from 'app/views/base/base.component';\r\nimport { OpportunityInitQueryGQL } from 'app/graphql/opportunity/opportunity-init.query.graphql';\r\nimport { OpportunityCategoryType } from 'app/views/shared/models/opportunity-category-type/opportunity-category-type.model';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { AcquisitionOpportunityValidation } from './opportunity-manage-acquisition-item.validation';\r\nimport { AllOpportunityCategoryTypesQueryGQL } from 'app/graphql/opportunity-category-type/opportunity-category-types.graphql';\r\nimport { forkJoin, combineLatest, of } from 'rxjs';\r\nimport { FormUtilityService } from 'app/shared/form-utility.service';\r\nimport { LandPurchaseOpportunityByIdOppIdQueryGQL } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-by-opp-id.graphql';\r\nimport { UpdateLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-update.mutation.graphql';\r\nimport { CreateLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opporunity-create.mutation.graphql';\r\nimport { AllAccountPRofilesQueryGQL } from 'app/graphql/account-profile/account-profiles.graphql';\r\nimport { Profile } from 'app/shared/profile/_models/profile.model';\r\nimport { DealTypeOpportunitiesQueryGQL } from 'app/graphql/land-purchase-opportunity/deal-type-opportunities.graphq';\r\nimport { IDealTypeOpportunity } from 'app/views/shared/models/deal-type-opportunity.model';\r\n\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-acquisition-opportunity-manage',\r\n templateUrl: './opportunity-manage-acquisition.component.html',\r\n styleUrls: ['./opportunity-manage-acquisition.component.scss']\r\n})\r\nexport class AcquisitionOpportunityManageComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n opportunityForm: FormGroup = null; // - Stores the opportunity form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update an opportunity if true and add a new opportunity if false\r\n isQuoteClosed: boolean = false; // - If Quote was selected and now cannot add more quotes\r\n\r\n opportunity: OpportunityExtended = new OpportunityExtended(); // - Stores Opportunity to populate form with a new / existing opportunity's values\r\n\r\n productsOptions: SelectItem[] = []; // - Stores Products Dropdown Options\r\n //propertyCategoryOptions: SelectItem[] = []; // - Stores Property Category Dropdown Options\r\n opportunityTypesOptions: SelectItem[] = []; // - Stores Opportunity Type Dropdown Options\r\n opportunityLostTypesOptions: SelectItem[] = []; // - Stores Opportunity Lost Type Dropdown Options\r\n assignedUserOptions: SelectItem[] = []; // - Stores Users to select the Assigned User of this opportunity\r\n assignedContactOptions: SelectItem[] = []; // - Stores Contacts to select the Assigned Contact of this opportunity\r\n opportunityCategoryTypeOptions: SelectItem[] = [];\r\n accountProfileOptions: SelectItem[] = [];\r\n tasks: Task[] = []; // - List of tasks displayed in table\r\n dealTypeOpportunityOptions: SelectItem[] = [];\r\n\r\n isProjectCreated: boolean = false;\r\n\r\n validation: AcquisitionOpportunityValidation = null;\r\n\r\n selectedCategoryType: number = null;\r\n\r\n MainCatOptions: SelectItem[] = [];\r\n SubCatOptions: SelectItem[] = [];\r\n PropertyRegionsOptions: SelectItem[] = [];\r\n PropertyLocalitiesOptions: SelectItem[] = [];\r\n PropertyDealTypesOptions: SelectItem[] = [];\r\n PropertyRoomsOptions: SelectItem[] = [];\r\n PropertyFeaturesOptions: SelectItem[] = [];\r\n Properties: Property[] = [];\r\n ParamValues: string = null;\r\n Viewings: number[] = [];\r\n PropNotInterested: number[] = [];\r\n opportunityPropertyNotInterested: OpportunityPropertiesNotInterested = new OpportunityPropertiesNotInterested();\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n\r\n CategoryTypeEnums: { \"Sales Opportunity\": number; \"Land Purchases Opportunity\": number; };\r\n selectedCategoryTypeOptionId: any;\r\n landPurchaseOpp: LandPurchaseOpportunity;\r\n\r\n //** Google Maps */\r\n options: any;\r\n overlays: any[];\r\n marker: any;\r\n isGoogleMapsSearchInit = false;\r\n @ViewChild(\"gMapsSearch\") public gMapsSearchElementRef: ElementRef;\r\n @ViewChild(\"gmap\") public gmap;\r\n minDueDate: Date;\r\n allAccountProfiles: Profile[];\r\n categoryTypes: OpportunityCategoryType[] = [];\r\n dealTypeLabel: string;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private _formUtil: FormUtilityService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private propertyService: PropertyService,\r\n private productService: ProductService,\r\n private taskService: TaskService,\r\n private opportunityService: OpportunityService,\r\n private quoteService: QuoteService,\r\n private opportunityTypeService: OpportunityTypeService,\r\n private opportunityLostTypeService: OpportunityLostTypeService,\r\n private confirmationService: ConfirmationService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private _allOppCategoryTypes: AllOpportunityCategoryTypesQueryGQL,\r\n\r\n private _landPurchaseOpportunityByIdQuery: LandPurchaseOpportunityByIdOppIdQueryGQL,\r\n private _updateLandPurchaseOpportunityMutation: UpdateLandPurchaseOpportunityMutation,\r\n private _createLandPurchaseOpportunityMutation: CreateLandPurchaseOpportunityMutation,\r\n\r\n private _getAllDealTypeOpportunties: DealTypeOpportunitiesQueryGQL,\r\n\r\n private _allAccountProfiles: AllAccountPRofilesQueryGQL,\r\n\r\n private ref: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n // this.populateCategoryTypeMappings();\r\n // this.ngOnInitHandleDropdowns();\r\n // this.setupForm();\r\n\r\n\r\n\r\n //TODO: if more items are to be retrieved upon loading the land purchase opp, create a separate gql query to retrieve all\r\n // the items from one file .. like an init query.\r\n // this.getAllDealTypes();\r\n // this.getAllCategoryTypes();\r\n\r\n\r\n this.populateCategoryTypeMappings();\r\n let oppTypes$ = this.ngOnInitHandleDropdowns() \r\n .pipe(\r\n tap(_=> {\r\n this.populateOppTypeOptions(_); \r\n }),\r\n tap(_=> {\r\n this.getAllDealTypes();\r\n \r\n }),\r\n tap( _=> {\r\n this.getAllCategoryTypes();\r\n }),\r\n switchMap(() => { return this.setupForm() })\r\n ).subscribe(_ => {\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n this.opportunity = _.opp as OpportunityExtended;\r\n this.onGetPropertyDetails(_.oppId);\r\n break;\r\n\r\n case 2:\r\n this.landPurchaseOpp = _.opp as LandPurchaseOpportunity;\r\n break;\r\n }\r\n\r\n\r\n this.initForm();\r\n });\r\n }\r\n\r\n getImageUrl(prop){\r\n //url(' + prop.propertyUrl + prop.propertyImageUrl + ')\r\n let imagUrl = prop.propertyUrl + prop.propertyImageUrl;\r\n\r\n let link = 'url(' + imagUrl + ')';\r\n\r\n return link;\r\n }\r\n\r\n isPropertyViewedOrNotInterested(propId) {\r\n propId = parseInt(propId);\r\n\r\n if (this.PropNotInterested.includes(propId)) {\r\n return 'NotInterested';\r\n }\r\n else if (this.Viewings.includes(propId)) {\r\n return 'Viewed';\r\n }\r\n }\r\n\r\n NotInterested(prop) {\r\n this.confirmationService.confirm({\r\n header: prop.propertyPreCode + ' (Not Interested)',\r\n message: 'Would you like to mark this property as Not Interested?',\r\n accept: () => {\r\n this.opportunityPropertyNotInterested.OpportunityId = this.opportunity.id;\r\n this.opportunityPropertyNotInterested.PropertyId = prop.propertyId;\r\n this.opportunityService.addPropertyNotInterested(this.opportunityPropertyNotInterested).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property has been listed as not interested.\");\r\n //this.router.navigate(['/opportunities/' + this.opportunity.id + '/edit']);\r\n\r\n this.PropNotInterested.push(prop.propertyId);\r\n this.isPropertyViewedOrNotInterested(prop.propertyId);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating properties not interested\", error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n UndoNotInterested(prop) {\r\n this.confirmationService.confirm({\r\n header: prop.propertyPreCode + ' (Undo Not Interested)',\r\n message: 'Would you like to undo Not Interested for this property ?',\r\n accept: () => {\r\n this.opportunityPropertyNotInterested.OpportunityId = this.opportunity.id;\r\n this.opportunityPropertyNotInterested.PropertyId = prop.propertyId;\r\n this.opportunityService.undoPropertyNotInterested(this.opportunityPropertyNotInterested).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"Property not interested has been removed.\");\r\n //this.router.navigate(['/opportunities/' + this.opportunity.id + '/edit']);\r\n\r\n let index = this.PropNotInterested.indexOf(prop.propertyId);\r\n this.PropNotInterested.splice(index);\r\n this.isPropertyViewedOrNotInterested(prop.propertyId);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error undo properties not interested\", error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n private populateCategoryTypeMappings() {\r\n this.CategoryTypeEnums = {\r\n \"Sales Opportunity\": 1,\r\n \"Land Purchases Opportunity\": 2\r\n };\r\n }\r\n\r\n ngOnDestroy() : void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n getAllCategoryTypes(): void {\r\n this.subscriptions$.push(\r\n this.allOppCategoryTypes$().subscribe(res => {\r\n this.categoryTypes = res;\r\n }));\r\n }\r\n\r\n private allOppCategoryTypes$(): Observable {\r\n return this._allOppCategoryTypes\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).opportunityCategoryTypes.data as OpportunityCategoryType[] : [];\r\n })\r\n );\r\n }\r\n\r\n ngOnInitHandleDropdowns(): Observable {\r\n let oppTypes$ = this.opportunityTypeService.getOpportunityTypes();\r\n\r\n return oppTypes$;\r\n // .subscribe(items => {\r\n // this.populateOppTypeOptions(items);\r\n // });\r\n // this.subscriptions$.push(oppTypes$);\r\n }\r\n\r\n private populateOppCategoryTypeOptions(categoryTypes: OpportunityCategoryType[]): void {\r\n this.opportunityCategoryTypeOptions = [];\r\n if (categoryTypes != null && categoryTypes.length > 0) {\r\n categoryTypes.map(c => {\r\n this.opportunityCategoryTypeOptions.push({ label: c.name, value: c.id });\r\n });\r\n }\r\n }\r\n\r\n private populateOppTypeOptions(opportunityTypes: OpportunityType[]): void {\r\n this.opportunityTypesOptions = [];\r\n if (opportunityTypes != null && opportunityTypes.length > 0) {\r\n opportunityTypes.map(t => {\r\n this.opportunityTypesOptions.push({ label: t.name, value: t.id });\r\n });\r\n }\r\n }\r\n\r\n private getAccountProfiles$() : Observable {\r\n return this._allAccountProfiles\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).systemAccountProfiles.data as Profile[] : [];\r\n // return item ? (item).accountProfiles.data as Profile[] : [];\r\n })\r\n );\r\n }\r\n\r\n public onOpportunityTypeChange(event: any) : void {\r\n let oppTypeIsClosed = this.isOpportunityTypeClosed();\r\n\r\n //show the dropdowns for creating a project only when the opportunity is selected as\r\n //closed\r\n if (oppTypeIsClosed) {\r\n this.landPurchaseClosedOppDropdownsInit();\r\n this.enableProjectFormDetails();\r\n } else {\r\n this.disableProjectFormDetails();\r\n }\r\n }\r\n\r\n private disableProjectFormDetails(): void {\r\n this.opportunityForm.get('project').disable();\r\n }\r\n\r\n private enableProjectFormDetails(): void {\r\n this.opportunityForm.get('project').enable();\r\n }\r\n\r\n private landPurchaseClosedOppDropdownsInit(): void {\r\n this.subscriptions$.push(\r\n this.getAccountProfiles$()\r\n .pipe(\r\n map(items => {\r\n return {\r\n accountProfiles: items\r\n };\r\n })\r\n )\r\n .subscribe(result => {\r\n this.populateAccountProfileOptions(result.accountProfiles);\r\n })\r\n );\r\n }\r\n\r\n private populateAccountProfileOptions(accountProfiles: Profile[]): void {\r\n this.allAccountProfiles = accountProfiles;\r\n this.accountProfileOptions = [];\r\n if (accountProfiles != null && accountProfiles.length > 0) {\r\n accountProfiles.map(acc => {\r\n this.accountProfileOptions.push({ label: `${acc.firstName} ${acc.lastName}`, value: acc.subjectId });\r\n });\r\n }\r\n }\r\n\r\n public onOpportunityCategoryTypeChange(event: any): void {\r\n let selectionCategoryTypeOption = this.opportunityCategoryTypeOptions.find(c => c.value == event.value).label;\r\n\r\n this.selectedCategoryType = this.CategoryTypeEnums[selectionCategoryTypeOption];\r\n\r\n switch (selectionCategoryTypeOption) {\r\n case \"Land Purchases Opportunity\":\r\n this.selectedCategoryType = 2;\r\n break;\r\n case \"Sales Opportunity\":\r\n this.selectedCategoryType = 1;\r\n break;\r\n }\r\n\r\n this.initForm();\r\n\r\n //the opportunity category type should always be visible to the user when creating a new opp\r\n // this.opportunityForm.get('opportunityCategoryTypeId').setValue(event.value);\r\n }\r\n\r\n private showLandPurchaseOpportunityFields(opp: LandPurchaseOpportunity): void {\r\n\r\n this.isProjectCreated = opp && opp.project ? opp.project.name != null : false;\r\n\r\n console.log(\"opp --> \", opp)\r\n\r\n this.opportunityForm = null;\r\n\r\n var control = new LandPurchaseOpportunityFormControl();\r\n\r\n control.id.setValue(opp ? opp.id : null);\r\n control.code.setValue(opp ? opp.code : null);\r\n control.details.setValue(opp ? opp.details : null);\r\n control.plotDescription.setValue(opp ? opp.plotDescription : null);\r\n control.sellingPrice.setValue(opp ? opp.sellingPrice : null);\r\n control.sellerId.setValue(opp && opp.seller ? opp.seller.id : null);\r\n\r\n control.address.controls.id.setValue(opp && opp.address ? opp.address.id : null);\r\n control.address.controls.addressLine1.setValue(opp && opp.address ? opp.address.addressLine1 : null);\r\n control.address.controls.addressLine2.setValue(opp && opp.address ? opp.address.addressLine2 : null);\r\n control.address.controls.addressLine3.setValue(opp && opp.address ? opp.address.addressLine3 : null);\r\n control.address.controls.addressLine4.setValue(opp && opp.address ? opp.address.addressLine4 : null);\r\n control.address.controls.postCode.setValue(opp && opp.address ? opp.address.postCode : null);\r\n control.address.controls.country.setValue(opp && opp.address ? opp.address.country : null);\r\n control.address.controls.locationLat.setValue(opp && opp.address ? opp.address.locationLat : null);\r\n control.address.controls.locationLng.setValue(opp && opp.address ? opp.address.locationLng : null);\r\n\r\n control.assignedUserAccountId.setValue(opp && opp.opportunity.assignedUserAccount ? opp.opportunity.assignedUserAccount.id : null);\r\n control.probability.setValue(opp && opp.opportunity ? opp.opportunity.probability : null);\r\n control.value.setValue(opp && opp.opportunity ? opp.opportunity.value : null);\r\n control.name.setValue(opp && opp.opportunity ? opp.opportunity.name : null);\r\n\r\n control.opportunityLostTypeId.setValue(opp && opp.opportunity.opportunityLostType ? opp.opportunity.opportunityLostType.id : null);\r\n control.lostTypeDescription.setValue(opp && opp.opportunity ? opp.opportunity.lostTypeDescription : null);\r\n\r\n control.project.controls.name.setValue(opp && opp.project ? opp.project.name : null);\r\n control.project.controls.code.setValue(opp && opp.project ? opp.project.code : null);\r\n control.project.controls.startDate.setValue(opp && opp.project.startDate ? new Date(opp.project.startDate) : null);\r\n control.project.controls.dueDate.setValue(opp && opp.project.dueDate ? new Date(opp.project.dueDate) : null);\r\n control.project.controls.projectManagerId.setValue(opp && opp.project.projectManager ? opp.project.projectManager.subjectId : null);\r\n\r\n control.dealTypeValues.controls.id.setValue(opp && opp.dealTypeValue ? opp.dealTypeValue.id : null);\r\n control.dealTypeValues.controls.barterValue.setValue(opp && opp.dealTypeValue ? opp.dealTypeValue.barterValue: null);\r\n control.dealTypeValues.controls.cashValue.setValue(opp && opp.dealTypeValue ? opp.dealTypeValue.cashValue : null);\r\n control.dealTypeValues.controls.partBarterValue.setValue(opp && opp.dealTypeValue ? opp.dealTypeValue.partBarterValue : null);\r\n control.dealTypeValues.controls.partCashValue.setValue(opp && opp.dealTypeValue ? opp.dealTypeValue.partCashValue : null);\r\n control.dealTypeValues.controls.dealTypeOpportunityId\r\n .setValue(opp && opp.dealTypeValue && opp.dealTypeValue.dealTypeOpportunity ? opp.dealTypeValue.dealTypeOpportunity.id : null);\r\n\r\n\r\n\r\n if(this.isEdit) {\r\n control.opportunityTypeId.setValue(opp && opp.opportunity.opportunityType ? opp.opportunity.opportunityType.id : null);\r\n control.opportunityTypeId.enable();\r\n\r\n if (opp.opportunity.opportunityType.id == 2) {\r\n this.landPurchaseClosedOppDropdownsInit();\r\n }\r\n\r\n debugger;\r\n if(opp.dealTypeValue && opp.dealTypeValue.dealTypeOpportunity) {\r\n this.dealTypeLabel = this.dealTypeOpportunityOptions.find(_=>_.value === opp.dealTypeValue.dealTypeOpportunity.id).label;\r\n }\r\n }\r\n else {\r\n control.opportunityTypeId.setValue(this.opportunityTypesOptions[0] ? this.opportunityTypesOptions[0].value : null);\r\n }\r\n\r\n this.opportunityForm = this.formBuilder.group(control);\r\n\r\n //keep watch on the locationLat to update the map accordingly\r\n this.opportunityForm.get('address').get('locationLat').valueChanges.subscribe(locationLat => {\r\n var location = { lat: locationLat , lng: this.marker.getPosition().lng() };\r\n if (this.gmap != null && this.gmap.map != null)\r\n this.gmap.map.panTo(location);\r\n });\r\n\r\n //keep watch on the locationLng to update the map accordingly\r\n this.opportunityForm.get('address').get('locationLng').valueChanges.subscribe(locationLng => {\r\n var location = { lat: this.marker.getPosition().lat() , lng: locationLng };\r\n if (this.gmap != null && this.gmap.map != null)\r\n this.gmap.map.panTo(location);\r\n });\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n this.enableProjectFormDetails();\r\n\r\n if (this.isEdit) {\r\n this.disableLandingPurchaseOppFormIfClosed();\r\n }\r\n } else {\r\n this.disableProjectFormDetails();\r\n }\r\n }\r\n\r\n //if the opportunityType is set as closed, then a project for this opportunity\r\n //has been created in ORCHESTRATE\r\n //the data pertaining the created project would need to be retrieved from ORCH?\r\n private disableLandingPurchaseOppFormIfClosed() {\r\n this.opportunityForm.get('opportunityTypeId').disable();\r\n this.opportunityForm.get('project').disable();\r\n\r\n this.isProjectCreated = true;\r\n }\r\n\r\n private showSalesOpportunityFields(): void {\r\n var control = new SalesOpportunityFormControl();\r\n\r\n control.name.setValue(this.opportunity ? this.opportunity.name : null);\r\n control.description.setValue(this.opportunity ? this.opportunity.description : null);\r\n control.productIds.setValue(this.opportunity.opportunityProducts ? this.opportunity.opportunityProducts.map(oP => oP.productId) : null);\r\n control.probability.setValue(this.opportunity ? this.opportunity.probability : null);\r\n control.value.setValue(this.opportunity ? this.opportunity.value : null);\r\n control.assignedContactId.setValue(this.opportunity ? this.opportunity.assignedContactId : null);\r\n control.assignedUserAccountId.setValue(this.opportunity ? this.opportunity.assignedContactId : null);\r\n control.opportunityLostTypeId.setValue(this.opportunity ? this.opportunity.opportunityLostTypeId : null);\r\n control.lostTypeDescription.setValue(this.opportunity ? this.opportunity.lostTypeDescription : null);\r\n\r\n control.opportunitySelectionModel.controls.mainCatIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.mainCatIds : null);\r\n control.opportunitySelectionModel.controls.subCatIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.subCatIds : null);\r\n control.opportunitySelectionModel.controls.regionIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.regionIds : null);\r\n control.opportunitySelectionModel.controls.localityIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.localityIds : null);\r\n control.opportunitySelectionModel.controls.dealTypeIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.dealTypeIds : null);\r\n control.opportunitySelectionModel.controls.startingBudget.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.startingBudget : null);\r\n control.opportunitySelectionModel.controls.maximumBudget.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.maximumBudget : null);\r\n control.opportunitySelectionModel.controls.minimumBedrooms.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumBedrooms : null);\r\n control.opportunitySelectionModel.controls.minimumGarages.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumGarages : null);\r\n control.opportunitySelectionModel.controls.minimumBathrooms.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumBathrooms : null);\r\n control.opportunitySelectionModel.controls.roomsIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.roomsIds : null);\r\n control.opportunitySelectionModel.controls.featureIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.featureIds : null);\r\n control.opportunitySelectionModel.controls.description.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.description : null);\r\n\r\n if(this.isEdit) {\r\n control.opportunityTypeId.enable();\r\n control.opportunityTypeId.setValue(this.opportunity ? this.opportunity.opportunityType.id : null);\r\n }\r\n else {\r\n control.opportunityTypeId.setValue(this.opportunityTypesOptions.length > 0 ? this.opportunityTypesOptions[0].value : null);\r\n }\r\n\r\n this.opportunityForm = this.formBuilder.group(control);\r\n\r\n this.validation = new AcquisitionOpportunityValidation(this);\r\n }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n setupForm() : Observable {\r\n let initSetup$ = this.allOppCategoryTypes$()\r\n .pipe(\r\n map(result => {\r\n this.populateOppCategoryTypeOptions(result);\r\n return this.route.params;\r\n })\r\n ,switchMap((params: Params) => {\r\n const routeParams = params.value;\r\n\r\n const categoryType: string = routeParams['categoryType'];\r\n const opportunityId: string = routeParams['id'];\r\n\r\n let selectedCategoryType: number = 0;\r\n\r\n this.isEdit = opportunityId != null; // - Returns true if an id was present within the url\r\n\r\n // switch(categoryType) {\r\n // case \"sales-opp\":\r\n // selectedCategoryType = this.CategoryTypeEnums[\"Sales Opportunity\"];\r\n // // this.onGetOpportunity(opportunityId);\r\n // break;\r\n\r\n // case \"land-purchase-opp\":\r\n selectedCategoryType = this.CategoryTypeEnums[\"Land Purchases Opportunity\"];\r\n // break;\r\n // }\r\n\r\n return of({ opportunityId, selectedCategoryType });\r\n })\r\n ,switchMap(result => {\r\n if (result.selectedCategoryType && result.opportunityId) {\r\n this.selectedCategoryType = result.selectedCategoryType;\r\n\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n return this.onGetOpportunity$(parseInt(result.opportunityId))\r\n .pipe(\r\n map(o=>{\r\n return { opp: o, oppId: result.opportunityId }\r\n })\r\n );\r\n break;\r\n case 2:\r\n return this.getLandPurchaseByOppId$(parseInt(result.opportunityId))\r\n .pipe(\r\n map(o=>{\r\n return { opp: o, oppId: result.opportunityId }\r\n })\r\n );\r\n break;\r\n\r\n default:\r\n return of({ opp: null, oppId: null});\r\n break;\r\n }\r\n }\r\n\r\n return of({ opp: null, oppId: null});\r\n })\r\n );\r\n\r\n return initSetup$;\r\n // .subscribe(result => {\r\n // switch(this.selectedCategoryType) {\r\n // case 1:\r\n // this.opportunity = result.opp as OpportunityExtended;\r\n // this.onGetPropertyDetails(result.oppId);\r\n // break;\r\n\r\n // case 2:\r\n // this.landPurchaseOpp = result.opp as LandPurchaseOpportunity;\r\n // break;\r\n // }\r\n\r\n\r\n // this.initForm();\r\n // });\r\n\r\n // this.subscriptions$.push(initSetup$);\r\n }\r\n\r\n private getLandPurchaseByOppId$(id: number): Observable {\r\n return this._landPurchaseOpportunityByIdQuery\r\n .watch({id: id})\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).landPurchaseOpportunityByOppId.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n );\r\n }\r\n\r\n private getAllDealTypes(MUT_VARS?: {}): void {\r\n let dealTypes$ =\r\n this.getAllDealTypes$(MUT_VARS)\r\n .subscribe(result => {\r\n this.dealTypeOpportunityOptions = this.populateDealTypeOpportunityOptions(result);\r\n });\r\n\r\n this.subscriptions$.push(dealTypes$);\r\n }\r\n\r\n private getAllDealTypes$(MUT_VARS?: {}): Observable {\r\n return this._getAllDealTypeOpportunties\r\n .watch(MUT_VARS)\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const ITEM = (result).data;\r\n return ITEM ? (ITEM).dealTypeOpportunities.data as IDealTypeOpportunity[] : {} as IDealTypeOpportunity[];\r\n })\r\n );\r\n }\r\n\r\n private populateDealTypeOpportunityOptions(dealTypes: IDealTypeOpportunity[]): SelectItem[] {\r\n let options: SelectItem[] = [];\r\n\r\n if (dealTypes != null && dealTypes.length) {\r\n dealTypes.map(_ => {\r\n options.push({ label: _.name, value: _.id });\r\n });\r\n }\r\n\r\n return options;\r\n }\r\n\r\n initForm() {\r\n this.onGetUsers();\r\n this.onGetOpportunityLostTypes();\r\n\r\n this.selectedCategoryType = 2;\r\n\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n this.onGetMainCategories();\r\n this.onGetSubCategoriesOnLoad(this.opportunity.opportunitySelectionModel.mainCatIds,this.opportunity.opportunitySelectionModel.subCatIds);\r\n this.onGetPropertyLocalitiesOnLoad(this.opportunity.opportunitySelectionModel.regionIds,this.opportunity.opportunitySelectionModel.localityIds);\r\n this.onGetPropertyRegions();\r\n this.onGetPropertyDealType();\r\n this.onGetPropertyRooms();\r\n this.onGetPropertyFeatures();\r\n\r\n this.showSalesOpportunityFields();\r\n break;\r\n\r\n case 2:\r\n this.showLandPurchaseOpportunityFields(this.landPurchaseOpp);\r\n this.initGoogleMap();\r\n break;\r\n\r\n default:\r\n this.showSalesOpportunityFields();\r\n break;\r\n }\r\n\r\n\r\n //the category type can only be selected when creating a new opportunity\r\n // if (!this.isEdit) {\r\n // this.opportunityForm.get('opportunityCategoryTypeId').enable();\r\n // }\r\n\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"]) {\r\n this.onGetProducts();\r\n\r\n if (this.isEdit && this.opportunity != null && this.opportunity.assignedContact) {\r\n\r\n let defaultValue = this.populateSelectedContactDetails(this.opportunity.assignedContact, this.selectedCategoryType);\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n assignedContactId: defaultValue\r\n });\r\n }\r\n\r\n this.onGetQuotes(this.opportunity.id);\r\n this.onGetTasks(this.opportunity.id);\r\n }\r\n }\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"]) {\r\n if (this.isEdit && this.landPurchaseOpp != null && this.landPurchaseOpp.seller) {\r\n\r\n let defaultValue = this.populateSelectedContactDetails(this.landPurchaseOpp.seller, this.selectedCategoryType);\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n sellerId: defaultValue\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let contactId = queryParam['contact'];\r\n if (contactId != null) {\r\n\r\n this.contactService.getContact(+contactId).subscribe(\r\n (contact: Contact) => {\r\n // let defaultValue: SelectItem = {\r\n // label: contact.fullName,\r\n // value: +contactId\r\n // };\r\n\r\n // this.opportunityForm.patchValue({\r\n // assignedContactId: defaultValue\r\n // });\r\n\r\n let labelText = contact.fullName.trim().length > 0 ? contact.fullName : \"NO-NAME\";\r\n let defaultValue: SelectItem = null;\r\n let landOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: contact.id\r\n };\r\n\r\n defaultValue = landOppDefaultSelectItem;\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n sellerId: defaultValue\r\n });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n this.onGetNotInterested(this.opportunity.id);\r\n this.isFormInit = true;\r\n this.validation = new AcquisitionOpportunityValidation(this);\r\n }\r\n\r\n private populateSelectedContactDetails(c: Contact, type: number): SelectItem {\r\n let labelText = c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n let defaultValue: SelectItem = null;\r\n\r\n switch(type) {\r\n case 1:\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let salesOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.opportunity.assignedContact.id\r\n };\r\n\r\n defaultValue = this.opportunity.assignedContact.id ? salesOppDefaultSelectItem : null;\r\n break;\r\n\r\n case 2:\r\n // c.organization ? labelText += \" / Company: \" + c.organization.name : \"\";\r\n // c.organization ? labelText += \" / Mob: \" + c.organization.mobilePhoneNumber : \"\";\r\n // c.organization ? labelText += \" / Email: \" + c.organization.email : \"\";\r\n\r\n let landOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.landPurchaseOpp.seller.id\r\n };\r\n\r\n defaultValue = this.landPurchaseOpp.seller.id ? landOppDefaultSelectItem : null;\r\n break;\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n isOpportunityTypeLost() {\r\n const oppTypeIdValue = this.opportunityForm.get('opportunityTypeId').value;\r\n const oppType = this.opportunityTypesOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.Lost)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isOpportunityTypeClosed() {\r\n const oppTypeIdValue = this.opportunityForm.get('opportunityTypeId').value;\r\n const oppType = this.opportunityTypesOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.ClosedPurchase)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n onGetMainCategories() {\r\n this.propertyService.getMainCategoryTypes().subscribe(\r\n (mainCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n mainCategories.map(p => {\r\n this.MainCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetSubCategories(SelectedMainCat: number[]) {\r\n this.propertyService.getSubCategoryTypes(SelectedMainCat).subscribe(\r\n (subCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.SubCatOptions = [];\r\n subCategories.map(p => {\r\n this.SubCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n\r\n this.cleanSubCategoryValues(subCategories);\r\n }\r\n );\r\n }\r\n\r\n onGetSubCategoriesOnLoad(SelectedMainCat: number[], selectedSubCats: number[]) {\r\n this.propertyService.getSubCategoryTypes(SelectedMainCat).subscribe(\r\n (subCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.SubCatOptions = [];\r\n subCategories.map(p => {\r\n this.SubCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n\r\n\r\n\r\n this.cleanSubCategoryValuesOnLoad(selectedSubCats);\r\n }\r\n );\r\n }\r\n\r\n cleanSubCategoryValuesOnLoad(subCategories: number[]) {\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').setValue(subCategories);\r\n }\r\n\r\n cleanSubCategoryValues(subCategories: PropertyCategory[]) {\r\n // Get the current selected sub-categories\r\n var subCatValues = this.opportunityForm.get('opportunitySelectionModel.subCatIds').value;\r\n // Get the sub-categoriy ids retrieved from the database\r\n var subCatIds = subCategories.map(x => x.categoryId);\r\n\r\n var subCatToSelect = subCatIds;//subCatValues.filter(x => subCatIds.includes(x));\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').setValue(subCatToSelect);\r\n }\r\n\r\n onGetPropertyLocalities(SelectedRegions: number[]) {\r\n this.propertyService.getPropertyLocalities(SelectedRegions).subscribe(\r\n (propertyLocalities: PropertyLocality[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.PropertyLocalitiesOptions = [];\r\n propertyLocalities.map(p => {\r\n this.PropertyLocalitiesOptions.push({ label: p.localityName, value: p.localityId });\r\n });\r\n\r\n this.cleanLocalityValues(propertyLocalities);\r\n }\r\n );\r\n }\r\n\r\n cleanLocalityValues(propertyLocalities: PropertyLocality[]) {\r\n // Get the current selected localities from the form\r\n var locValues = this.opportunityForm.get('opportunitySelectionModel.localityIds').value;\r\n // Get the locality ids retrieved from the database\r\n var locIds = propertyLocalities.map(x => x.localityId);\r\n\r\n var locToSelect = locIds;//locValues.filter(x => locIds.includes(x));\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').setValue(locToSelect);\r\n }\r\n\r\n onGetPropertyLocalitiesOnLoad(SelectedRegions: number[],propertyLocaltyIds: number[]) {\r\n this.propertyService.getPropertyLocalities(SelectedRegions).subscribe(\r\n (propertyLocalities: PropertyLocality[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.PropertyLocalitiesOptions = [];\r\n propertyLocalities.map(p => {\r\n this.PropertyLocalitiesOptions.push({ label: p.localityName, value: p.localityId });\r\n });\r\n\r\n this.cleanLocalityValuesOnLoad(propertyLocaltyIds);\r\n }\r\n );\r\n }\r\n\r\n cleanLocalityValuesOnLoad(propertyLocalities: number[]) {\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').setValue(propertyLocalities);\r\n }\r\n\r\n onGetPropertyRegions() {\r\n this.propertyService.getPropertyRegions().subscribe(\r\n (propertyRegions: PropertyRegion[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyRegions.map(p => {\r\n this.PropertyRegionsOptions.push({ label: p.regionName, value: p.regionId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyDealType() {\r\n this.propertyService.getPropertyDealTypes().subscribe(\r\n (propertyDealTypes: PropertyDealType[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyDealTypes.map(p => {\r\n this.PropertyDealTypesOptions.push({ label: p.dealTypeName, value: p.dealTypeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyRooms() {\r\n this.propertyService.getPropertyRooms().subscribe(\r\n (propertyRooms: PropertyAttribute[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyRooms.map(p => {\r\n this.PropertyRoomsOptions.push({ label: p.attributeName, value: p.attributeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyFeatures() {\r\n this.propertyService.getPropertyFeatures().subscribe(\r\n (propertyFeatures: PropertyAttribute[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyFeatures.map(p => {\r\n this.PropertyFeaturesOptions.push({ label: p.attributeName, value: p.attributeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onPostPropertyDetails(oppSelection: OpportunitySelection) {\r\n this.propertyService.postPropertyDetails(oppSelection).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property details has been created.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding property details\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdatePropertyDetails(oppSelection: OpportunitySelection) {\r\n this.propertyService.updatePropertyDetails(oppSelection.opportunityId, oppSelection).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property details has been updated.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating property details\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyDetails(id: number) {\r\n this.propertyService.getPropertyDetails(id).subscribe(\r\n (propertyOppSelection: PropertyOppSelection) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.opportunity.opportunitySelectionModel = propertyOppSelection.oppSelections.oppSelectionModel;\r\n this.Properties = propertyOppSelection.properties;\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n onGetProducts() {\r\n this.productService.getProducts().subscribe(\r\n (products: Product[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n products.map(p => {\r\n this.productsOptions.push({ label: p.name, value: p.id });\r\n });\r\n\r\n if (this.isEdit && this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n productIds: this.opportunity.opportunityProducts.map(oP => oP.productId)\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n onGetQuotes(opportunityId: number){\r\n this.quoteService.getQuotesByOpportunityId(opportunityId).subscribe(\r\n (quotes: Quote[]) => {\r\n this.opportunity.quotes = quotes;\r\n quotes.forEach(element => {\r\n if(element.isSelectedInvoice){\r\n this.isQuoteClosed = true;\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n //-------- TASKS --------\r\n onGetTasks(opportunityId: number) {\r\n // Admins can see everyone's tasks\r\n // if (this.authService.isAdmin()) {\r\n this.taskService.getTasksByOpportunityId(opportunityId).subscribe(\r\n (tasks: Task[]) => {\r\n this.opportunity.tasks = tasks;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n // }\r\n }\r\n\r\n onCompleteTask(task: Task) {\r\n let completedTask = this.opportunity.tasks.find(t => t.id === task.id);\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id; // Actual task\r\n\r\n this.taskService.toggleTaskCompletion(task).subscribe(\r\n (response: Response) => {\r\n // NOTE: The update is made in the API!!!\r\n // Here I am setting the task to complete because the update was successful, so we want the change to be shown to the user\r\n completedTask.isTaskComplete = !completedTask.isTaskComplete;\r\n this.taskService.taskCounterChanged.next();\r\n this.taskService.tasksChanged.next();\r\n\r\n // Only ask for new comm. log if task is complete and is assigned to at least one contact\r\n if (task.contactTasks.length > 0 && completedTask.isTaskComplete)\r\n this.onAskForCommunicationLog(completedTask);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error completing task\", error);\r\n }\r\n );\r\n }\r\n\r\n onAskForCommunicationLog(task: Task) {\r\n let firstContact = task.contactTasks[0].contact;\r\n\r\n this.confirmationService.confirm({\r\n header: 'Communication Log',\r\n message: 'The task has been marked as complete. Would you now like to create a new communication log for ' + firstContact.fullName + '?',\r\n accept: () => {\r\n this.router.navigate(['/contacts', firstContact.id, 'communication-history', 'new']);\r\n }\r\n });\r\n }\r\n\r\n rowStyle(task: Task, rowIndex: number) {\r\n if (task.isTaskComplete)\r\n return \"bg-success\";\r\n\r\n // Is Task Late?\r\n let reminderDate1 = new Date(task.reminderDate);\r\n let now = new Date();\r\n\r\n // If the task is not completed and the reminder date has already passed\r\n if (!task.isTaskComplete && now > reminderDate1)\r\n return \"bg-danger\";\r\n\r\n // Is Task For Today?\r\n let reminderDate = new Date(task.reminderDate).setHours(0, 0, 0, 0);\r\n let todayDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n let reminderDateTime = new Date(task.reminderDate);\r\n let todayDateTime = new Date();\r\n\r\n // If the task is not completed and the reminder date is set for today (but time has not yet passed)\r\n if (!task.isTaskComplete && (todayDate === reminderDate && todayDateTime <= reminderDateTime))\r\n return \"bg-warning\";\r\n\r\n return \"\";\r\n }\r\n\r\n onDeleteTask(task: Task) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Task',\r\n message: 'Are you sure you want to delete this task?',\r\n accept: () => {\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.taskService.deleteTask(task).subscribe(\r\n (response: Response) => {\r\n this.onGetTasks(this.opportunity.id);\r\n // this.taskService.tasksChanged.next();\r\n this.taskService.taskCounterChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting task\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for the task has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n\r\n //-------- END TASKS --------\r\n\r\n onGetOpportunity$(id: number): Observable {\r\n return this.opportunityService.getOpportunity(id)\r\n .pipe(\r\n map((result: OpportunityExtended) => {\r\n return result;\r\n })\r\n );\r\n }\r\n\r\n\r\n onGetOpportunityLostTypes() {\r\n this.opportunityLostTypeService.getOpportunityLostTypes().subscribe(\r\n (opportunityLostTypes: OpportunityLostType[]) => {\r\n // Store retrieved opportunity types in the opportunityLostTypesOptions select list\r\n opportunityLostTypes.map(cT => this.opportunityLostTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n let defaultValue = null;\r\n\r\n if (this.isEdit) {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"])\r\n defaultValue = this.opportunity.opportunityLostType ? this.opportunity.opportunityLostTypeId : null;\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"])\r\n defaultValue = this.landPurchaseOpp.opportunity.opportunityLostType ? this.landPurchaseOpp.opportunity.opportunityLostType.id : null;\r\n }\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n opportunityLostTypeId: defaultValue\r\n });\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lost opportunity types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Store retrieved users in the usersOptions select list\r\n users.map(u => this.assignedUserOptions.push({ label: u.fullName, value: u.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.authService.applicationProfileUser().id;\r\n else {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"])\r\n defaultValue = this.opportunity.assignedUserAccountId ? this.opportunity.assignedUserAccountId : this.authService.applicationProfileUser().id;\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"])\r\n defaultValue = this.landPurchaseOpp.opportunity.assignedUserAccount ? this.landPurchaseOpp.opportunity.assignedUserAccount.id : this.authService.applicationProfileUser().id;\r\n }\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n assignedUserAccountId: defaultValue\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n let labelText =\r\n cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.assignedContactOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetViewings(contactId: number) {\r\n this.opportunityService.getViewingsByContactId(contactId).subscribe(\r\n (viewed: number[]) => {\r\n this.Viewings = viewed;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving viewed properties\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetNotInterested(oppId: number) {\r\n this.opportunityService.getPropertiesNotInterested(oppId).subscribe(\r\n (notInterested: number[]) => {\r\n this.PropNotInterested = notInterested;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving not interested properties\", error);\r\n }\r\n );\r\n }\r\n\r\n onAddOpportunity(newOpportunity: Opportunity, event) {\r\n this.opportunityService.addOpportunity(newOpportunity).subscribe(\r\n (response: Response) => {\r\n let oppSelection = new OpportunitySelection();\r\n oppSelection.opportunityId = (response).id;\r\n oppSelection.oppSelectionModel = newOpportunity.opportunitySelectionModel;\r\n this.onPostPropertyDetails(oppSelection);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + newOpportunity.name + \" has been created.\");\r\n\r\n this.router.navigate(['opportunities', 'acquisition-opp', oppSelection.opportunityId, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n private quoteModal(response: any, event: any, oppSelection: OpportunitySelection): void {\r\n this.confirmationService.confirm({\r\n header: 'New Quote',\r\n message: 'Would you like to create a quote for this opportunity?',\r\n accept: () => {\r\n this.router.navigate(['/opportunities','quote',(response).id, 'new']);\r\n },\r\n reject: () => {\r\n if (event == \"ToList\"){\r\n this.router.navigate(['/opportunities/']);\r\n }\r\n else if (event == \"Refresh\") {\r\n this.router.navigate(['opportunities', 'acquisition-opp', oppSelection.opportunityId, 'edit']);\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeMainCatogory() {\r\n var selectedMainCat = this.opportunityForm.get('opportunitySelectionModel.mainCatIds').value;\r\n if (selectedMainCat != null && selectedMainCat.length > 0) {\r\n this.onGetSubCategories(selectedMainCat);\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').enable();\r\n }\r\n else {\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').disable();\r\n }\r\n }\r\n\r\n onChangeRegion() {\r\n var selectedReg = this.opportunityForm.get('opportunitySelectionModel.regionIds').value;\r\n if (selectedReg != null && selectedReg.length > 0) {\r\n this.onGetPropertyLocalities(selectedReg);\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').enable();\r\n }\r\n else {\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').disable();\r\n }\r\n\r\n }\r\n\r\n onUpdateOpportunity(newOpportunity: Opportunity, event) {\r\n\r\n this.opportunityService.updateOpportunity(newOpportunity).subscribe(\r\n (response: Response) => {\r\n let oppSelection = new OpportunitySelection();\r\n oppSelection.opportunityId = newOpportunity.id;\r\n oppSelection.oppSelectionModel = newOpportunity.opportunitySelectionModel;\r\n this.onUpdatePropertyDetails(oppSelection);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + newOpportunity.name + \" has been updated.\");\r\n\r\n if (event == \"ToList\"){\r\n this.router.navigate(['/opportunities/']);\r\n }\r\n else if (event == \"Refresh\") {\r\n window.location.reload();\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit(event) {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"]) {\r\n this.submitSalesOpportunity();\r\n }\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"]) {\r\n this.opportunityForm = this.formBuilder.sanitizeFormValues(this.opportunityForm);\r\n\r\n this.submitLandPurchaseOpportunity();\r\n }\r\n }\r\n\r\n private populateProjectData(): void {\r\n let project = this.opportunityForm.get('project') as FormGroup;\r\n\r\n let plotDescription = this.opportunityForm.get('plotDescription');\r\n let details = this.opportunityForm.get('details');\r\n let address = this.opportunityForm.get('address') as FormGroup;\r\n let sellingPrice = this.opportunityForm.get('sellingPrice');\r\n\r\n address.removeControl(\"id\");\r\n\r\n project.get('proposalDescription').setValue(`${plotDescription.value} ${details.value}`);\r\n\r\n project.get('address').setValue(address.getRawValue());\r\n project.get('sellingPrice').setValue(sellingPrice.value);\r\n }\r\n\r\n private submitSalesOpportunity(): void {\r\n let newOpportunity = this.formBuilder.sanitizeFormValues(this.opportunityForm).getRawValue();\r\n\r\n // This is to pass correct value (contact id) from the autocomplete selection and to sanitize it\r\n // (Eg: writing random string in search and submit form would return an api error response)\r\n if (newOpportunity.assignedContactId && newOpportunity.assignedContactId.value)\r\n newOpportunity.assignedContactId = newOpportunity.assignedContactId.value;\r\n else\r\n newOpportunity.assignedContactId = null;\r\n\r\n newOpportunity.opportunityProducts = this.populateOpportunityProducts(newOpportunity.productIds);\r\n\r\n if (this.isEdit) {\r\n newOpportunity.id = this.opportunity.id; // - Set id of edited opportunity to its original id, same with externalId and createdById\r\n newOpportunity.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateOpportunity(newOpportunity, event);\r\n }\r\n else {\r\n newOpportunity.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddOpportunity(newOpportunity, event);\r\n }\r\n }\r\n\r\n\r\n\r\n private submitLandPurchaseOpportunity(): void {\r\n if (this.opportunityForm.valid) {\r\n this.opportunityForm = this.formBuilder.sanitizeFormValues(this.opportunityForm);\r\n\r\n const MUT_VARS = {\r\n item: this.opportunityForm.getRawValue()\r\n };\r\n\r\n\r\n //the dropdown used is storing it as {label, value} object\r\n MUT_VARS.item.sellerId = MUT_VARS.item.sellerId.value;\r\n\r\n //if we are create a new land purchase opportunity, we don't have to send data for the project\r\n MUT_VARS.item.project = null;\r\n\r\n MUT_VARS.item.opportunityCategoryTypeId = this.categoryTypes[0].id;\r\n\r\n let dealTypeValueInput: {} = {\r\n cashValue: MUT_VARS.item.dealTypeValues.cashValue,\r\n barterValue: MUT_VARS.item.dealTypeValues.barterValue,\r\n partCashValue: MUT_VARS.item.dealTypeValues.partCashValue,\r\n partBarterValue: MUT_VARS.item.dealTypeValues.partBarterValue,\r\n landPurchaseOpportunityId: MUT_VARS.item.id,\r\n dealTypeOpportunityId: MUT_VARS.item.dealTypeValues.dealTypeOpportunityId\r\n };\r\n\r\n\r\n //the dealTypeValue input will hold the cash values, landOppId and the dealTypeOppId as well.\r\n MUT_VARS.item.dealTypeValueInput = dealTypeValueInput;\r\n delete MUT_VARS.item.dealTypeValues;\r\n\r\n debugger;\r\n\r\n if (!this.isEdit)\r\n {\r\n\r\n let mutation$ = this._createLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).createLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((createdLandPurchaseOpportunity: LandPurchaseOpportunity) => {\r\n this.toastService.createSuccessMessage(\"Success\", `Land Purchase Opportunity ${createdLandPurchaseOpportunity.code} has been successfully created!`);\r\n this.router.navigate([\"/opportunities\", \"list\"]);\r\n })\r\n );\r\n }\r\n\r\n else {\r\n\r\n const MUT_VARS = {\r\n item: this.opportunityForm.getRawValue()\r\n };\r\n\r\n MUT_VARS.item.sellerId = MUT_VARS.item.sellerId.value;\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n\r\n if (this.isProjectCreated === false) {\r\n this.populateProjectData();\r\n\r\n let selectedProjectManager = this.opportunityForm.get('project').get('projectManagerId');\r\n\r\n let projectManagerData = this.allAccountProfiles.find(a => a.subjectId === selectedProjectManager.value);\r\n\r\n let projectManager = {\r\n subjectId: projectManagerData.subjectId,\r\n firstName: projectManagerData.firstName,\r\n lastName: projectManagerData.lastName\r\n };\r\n\r\n\r\n MUT_VARS.item.project = this.opportunityForm.get('project').value\r\n\r\n delete MUT_VARS.item.project.projectManagerId;\r\n\r\n MUT_VARS.item.project.projectManager = projectManager;\r\n\r\n console.log(\"CLOSED --> \", MUT_VARS);\r\n }\r\n\r\n else {\r\n MUT_VARS.item.project = null;\r\n }\r\n\r\n }\r\n else {\r\n MUT_VARS.item.project = null;\r\n console.log(\"NOT CLOSED --> \", MUT_VARS);\r\n }\r\n\r\n\r\n\r\n let dealTypeValueInput: {} = {\r\n id: MUT_VARS.item.dealTypeValues.id,\r\n cashValue: MUT_VARS.item.dealTypeValues.cashValue,\r\n barterValue: MUT_VARS.item.dealTypeValues.barterValue,\r\n partCashValue: MUT_VARS.item.dealTypeValues.partCashValue,\r\n partBarterValue: MUT_VARS.item.dealTypeValues.partBarterValue,\r\n landPurchaseOpportunityId: MUT_VARS.item.id,\r\n dealTypeOpportunityId: MUT_VARS.item.dealTypeValues.dealTypeOpportunityId\r\n };\r\n\r\n\r\n //the dealTypeValue input will hold the cash values, landOppId and the dealTypeOppId as well.\r\n MUT_VARS.item.dealTypeValueInput = dealTypeValueInput;\r\n delete MUT_VARS.item.dealTypeValues;\r\n\r\n let mutation$ = this._updateLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).updateLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((updatedLandPurchaseOpportunity: LandPurchaseOpportunity) => {\r\n this.landPurchaseOpp = updatedLandPurchaseOpportunity;\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n this.disableLandingPurchaseOppFormIfClosed();\r\n }\r\n\r\n this.toastService.createSuccessMessage(\"Success\", `Land Purchase Opportunity ${updatedLandPurchaseOpportunity.code} successfully updated!`);\r\n this.router.navigate([\"/opportunities\", \"list\"]);\r\n })\r\n );\r\n }\r\n }\r\n else {\r\n this._formUtil.markFormControlsAsTouched(this.opportunityForm);\r\n }\r\n }\r\n\r\n populateOpportunityProducts(assignedProductIds: number[]) {\r\n let opportunityProducts: {}[] = [];\r\n\r\n if (assignedProductIds != null && assignedProductIds.length > 0) {\r\n for (let id of assignedProductIds) {\r\n let opportunityProduct = {\r\n productId: id,\r\n opportunityId: this.opportunity.id,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n opportunityProducts.push(opportunityProduct);\r\n }\r\n }\r\n\r\n return opportunityProducts;\r\n }\r\n\r\n\r\n onRowRender(rowData){\r\n let rowFormGroup = rowData as Quote;\r\n if(rowFormGroup.isSelectedInvoice == true) return 'isSelectedInvoice';\r\n else return '';\r\n }\r\n\r\n onProjectStartDateChange(event: any): void {\r\n let projectStartDate = this.opportunityForm.get('project').get('startDate');\r\n let projectDueDate = this.opportunityForm.get('project').get('dueDate');\r\n\r\n if (event != null) {\r\n projectDueDate.enable();\r\n\r\n this.minDueDate = new Date(event);\r\n\r\n //if start date is gt the due date, reset it so that a waning message is showm\r\n if (projectDueDate.value != null) {\r\n if (new Date(projectStartDate.value).getTime() > new Date(projectDueDate.value).getTime()) {\r\n projectDueDate.setValue(null);\r\n projectDueDate.markAsTouched();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onDealTypeOpportunityChange(event: any): void {\r\n this.dealTypeLabel = this.dealTypeOpportunityOptions.find(_=>_.value === event.value).label;\r\n }\r\n\r\n\r\n //google maps\r\n initGoogleMap() {\r\n let lat = this.isEdit ?\r\n this.landPurchaseOpp.address.locationLat :\r\n GoogleMaps.DefaultLocationLat;\r\n\r\n let lng = this.isEdit ?\r\n this.landPurchaseOpp.address.locationLng :\r\n GoogleMaps.DefaultLocationLng;\r\n\r\n let location = this.isEdit ?\r\n this.landPurchaseOpp.address.addressLine1 :\r\n GoogleMaps.DefaultLocation;\r\n\r\n if (lat && lng) {\r\n this.options = {\r\n center: { lat: lat, lng: lng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n position: { lat: lat, lng: lng },\r\n title: location,\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine1: location,\r\n locationLat: lat,\r\n locationLng: lng\r\n }\r\n });\r\n } else {\r\n this.options = {\r\n center: { lat: GoogleMaps.DefaultLocationLat, lng: GoogleMaps.DefaultLocationLng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n\r\n\r\n }\r\n }\r\n\r\n initGoogleMapSearch() {\r\n if (!this.isGoogleMapsSearchInit) {\r\n let input = this.gMapsSearchElementRef.nativeElement;\r\n\r\n let options = {\r\n componentRestrictions: { country: \"mt\" },\r\n RankBy: 'PROMINENCE'\r\n };\r\n\r\n let autocomplete = new google.maps.places.Autocomplete(input, options);\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n let place = autocomplete.getPlace();\r\n this.onMapPlaceChanged(place);\r\n });\r\n\r\n this.isGoogleMapsSearchInit = true;\r\n }\r\n }\r\n\r\n onMapPlaceChanged(place) {\r\n if(place.address_components) {\r\n let streetnumberItem = place.address_components.find(x => x.types[0] === 'street_number');\r\n let streetItem = place.address_components.find(x => x.types[0] === 'route');\r\n let localityItem = place.address_components.find(x => x.types[0] === 'locality');\r\n let countryItem = place.address_components.find(x => x.types[0] === 'country');\r\n\r\n this.opportunityForm.patchValue({\r\n addressLine1: streetnumberItem ? streetnumberItem.long_name : \"\",\r\n addressLine3: streetItem ? streetItem.long_name : \"\",\r\n addressLine4: localityItem ? localityItem.long_name : \"\",\r\n country: countryItem ? countryItem.long_name : \"\",\r\n });\r\n\r\n }\r\n\r\n if (place.geometry) {\r\n let lat = place.geometry.location.lat();\r\n let lng = place.geometry.location.lng();\r\n let locationName = place.formatted_address;\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n title: locationName,\r\n position: { lat: lat, lng: lng },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n this.gmap.map.panTo({ lat: lat, lng: lng });\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine3: locationName,\r\n locationLat: lat,\r\n locationLng: lng\r\n }\r\n });\r\n }\r\n else {\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n this.opportunityForm.patchValue({\r\n address: {\r\n locationLat: null,\r\n locationLng: null\r\n }\r\n });\r\n }\r\n\r\n this.ref.detectChanges();\r\n }\r\n\r\n handleMapClick(event){\r\n var location = event.latLng;\r\n\r\n if (this.marker) {\r\n this.marker.setPosition(location);\r\n } else {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.gmap.map\r\n });\r\n }\r\n\r\n this.gmap.map.panTo(location);\r\n\r\n\r\n let address$ = this.geocodeLatLng(location)\r\n .subscribe(result => {\r\n if (result.length === 3) {\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine2: result[0].long_name, //street name\r\n addressLine3: result[1].long_name , //locality,\r\n country: result[2].long_name , //country,\r\n\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n }\r\n });\r\n }\r\n else if (result.length === 4) {\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine2: result[0].long_name + \", \" + result[1].long_name, //street name\r\n addressLine3: result[2].long_name, //locality,\r\n country: result[3].long_name , //country,\r\n\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.subscriptions$.push(address$);\r\n }\r\n\r\n geocodeLatLng(location: any) : Observable {\r\n\r\n return new Observable((observer) => {\r\n const geocoder = new google.maps.Geocoder;\r\n\r\n const latlng = {lat: location.lat(), lng: location.lng()};\r\n geocoder.geocode({'location': latlng}, function(results, status) {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n const address = results[0].address_components\r\n observer.next(address);\r\n observer.complete();\r\n } else {\r\n observer.error(\"No result found\");\r\n observer.complete();\r\n }\r\n } else {\r\n observer.error(\"Geocoder failed due to: \" + status);\r\n observer.complete();\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
{{ headingText }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Accepts the following formats: .doc, .dot, .docx, .dotx, .docm, .dotm, .xls, .xlt, .xla, .xlsx, .xltx, .xlsm, .xltm, .xlam, .xlsb, .ppt, .pot, .pps, .ppa, .pptx, .potx, .ppsx, .ppam, .pptm, .potm, .ppsm\\r\\n \\r\\n There are currently {{opportunityFiles.length}} opportunity files.\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunityFile.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunityFile.displayFileName }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunityFile.fileType }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunityFile.description | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktZmlsZXMvb3Bwb3J0dW5pdHktZmlsZS1saXN0L29wcG9ydHVuaXR5LWZpbGUtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { OpportunityService } from \"../../../shared/services/opportunity.service\";\r\nimport { OpportunityFileService } from \"../../../shared/services/opportunity-file.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\n\r\nimport { Opportunity } from \"../../../shared/models/opportunity.model\";\r\nimport { OpportunityFile } from \"../../../shared/models/opportunity-file.model\";\r\n\r\nimport { DropzoneConfigInterface } from \"ngx-dropzone-wrapper/dist\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\n@Component({\r\n selector: 'app-opportunity-file-list',\r\n templateUrl: './opportunity-file-list.component.html',\r\n styleUrls: ['./opportunity-file-list.component.scss']\r\n})\r\nexport class OpportunityFileListComponent implements OnInit {\r\n opportunityFiles: OpportunityFile[] = [];\r\n opportunity: Opportunity = new Opportunity();\r\n\r\n headingText: string = \"File Uploads for \";\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n //** Dropzone */\r\n DROPZONE_CONFIG: DropzoneConfigInterface = {\r\n url: this.crmApiEndPoint + 'api/opportunityfiles/',\r\n headers: {\r\n 'Authorization': 'Bearer ' + this.authService.getUser().access_token\r\n },\r\n paramName: \"file\",\r\n parallelUploads: 1,\r\n errorReset: 3,\r\n acceptedFiles: \"image/*, application/pdf, application/msword, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.wordprocessingml.template, application/vnd.ms-word.document.macroEnabled.12, application/vnd.ms-word.template.macroEnabled.12, application/vnd.ms-excel, application/vnd.ms-excel, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.openxmlformats-officedocument.spreadsheetml.template, application/vnd.ms-excel.sheet.macroEnabled.12, application/vnd.ms-excel.template.macroEnabled.12, application/vnd.ms-excel.addin.macroEnabled.12, application/vnd.ms-excel.sheet.binary.macroEnabled.12, application/vnd.ms-powerpoint, application/vnd.ms-powerpoint, application/vnd.ms-powerpoint, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.presentationml.template, application/vnd.openxmlformats-officedocument.presentationml.slideshow, application/vnd.ms-powerpoint.addin.macroEnabled.12, application/vnd.ms-powerpoint.presentation.macroEnabled.12, application/vnd.ms-powerpoint.template.macroEnabled.12, application/vnd.ms-powerpoint.slideshow.macroEnabled.12\",\r\n maxFilesize: 50 // - 50MB\r\n // autoReset: 1,\r\n };\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private opportunityService: OpportunityService,\r\n private opportunityFileService: OpportunityFileService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private confirmationService: ConfirmationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.route.parent.params.subscribe(\r\n (parentParams: Params) => {\r\n const opportunityId = +parentParams['id'];\r\n\r\n if (!opportunityId) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n\r\n this.opportunityService.getOpportunity(opportunityId).subscribe(\r\n (opportunity: Opportunity) => {\r\n this.opportunity = opportunity;\r\n\r\n let headingTextSuffix = this.opportunity.name;\r\n\r\n this.headingText += headingTextSuffix;\r\n\r\n this.onGetOpportunityFiles(); // - Get opportunity files after opportunity is retrieved\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving opportunity\", error);\r\n }\r\n );\r\n\r\n // - Listen to changes made to opportunity files to update table\r\n this.opportunityFileService.opportunityFilesChanged.subscribe(\r\n () => {\r\n this.onGetOpportunityFiles();\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n onGetOpportunityFiles() {\r\n this.opportunityFileService.getOpportunityFilesByOpportunityId(this.opportunity.id).subscribe(\r\n (opportunityFiles: OpportunityFile[]) => {\r\n this.opportunityFiles = opportunityFiles;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving opportunity files\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteOpportunityFile(opportunityFile: OpportunityFile) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the opportunity file ' + opportunityFile.displayFileName + '?',\r\n accept: () => {\r\n opportunityFile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.opportunityFileService.deleteOpportunityFile(opportunityFile).subscribe(\r\n (response: Response) => {\r\n this.opportunityFileService.opportunityFilesChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity file \" + opportunityFile.displayFileName + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting opportunity file\", error);\r\n }\r\n );\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for opportunity file \" + opportunityFile.displayFileName + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n onUploadError($event) {\r\n this.toastService.createErrorMessage(\"Error uploading files\", $event[2] ? $event[2].response : $event[1]);\r\n }\r\n\r\n onUploadSuccess($event) {\r\n this.toastService.createSuccessMessage(\"Success\", \"The file has been uploaded.\");\r\n }\r\n\r\n onQueueComplete($event) {\r\n this.opportunityFileService.opportunityFilesChanged.next();\r\n }\r\n\r\n onSending($event) {\r\n let file = $event[0];\r\n let xmlHttpRequest = $event[1];\r\n let formData = $event[2];\r\n\r\n formData.append(\"opportunityId\", this.opportunity.id);\r\n formData.append(\"createdByUserAccountId\", this.authService.applicationProfileUser().id);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update File Details

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The File Name field is required.\\r\\n \\r\\n \\r\\n There is already a opportunity file with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktZmlsZXMvb3Bwb3J0dW5pdHktZmlsZS1tYW5hZ2Uvb3Bwb3J0dW5pdHktZmlsZS1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { OpportunityFileService } from \"../../../shared/services/opportunity-file.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { OpportunityFile } from \"../../../shared/models/opportunity-file.model\";\r\n\r\n@Component({\r\n selector: 'app-opportunity-file-manage',\r\n templateUrl: './opportunity-file-manage.component.html',\r\n styleUrls: ['./opportunity-file-manage.component.scss']\r\n})\r\nexport class OpportunityFileManageComponent implements OnInit {\r\n opportunityFileForm: FormGroup; // - Stores the opportunityFile form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n\r\n opportunityFiles: OpportunityFile[] = []; // - Stores all opportunityFiles retrieved from db\r\n opportunityFile: OpportunityFile = new OpportunityFile(); // - Stores OpportunityFile to populate form with an existing OpportunityFile's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private opportunityFileService: OpportunityFileService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.opportunityFileService.getOpportunityFiles().subscribe(\r\n (opportunityFiles: OpportunityFile[]) => {\r\n this.opportunityFiles = opportunityFiles; // - Store all opportunity files retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const opportunityFileId = params['id'];\r\n\r\n if (!opportunityFileId) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n\r\n this.opportunityFile = this.opportunityFiles.find(cF => cF.id === +opportunityFileId); // - Store the selected opportunityFile\r\n\r\n // Redirect to 404 page if the selected opportunityFile could not be found\r\n if (!this.opportunityFile) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving opportunity files\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.opportunityFileForm = this.formBuilder.group({\r\n displayFileName: this.formBuilder.control(this.opportunityFile.displayFileName, [Validators.required]),\r\n description: this.formBuilder.control(this.opportunityFile.description)\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onUpdateOpportunityFile(newOpportunityFile: OpportunityFile) {\r\n this.opportunityFileService.updateOpportunityFile(newOpportunityFile).subscribe(\r\n (response: Response) => {\r\n this.opportunityFileService.opportunityFilesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity file \" + newOpportunityFile.displayFileName + \" has been updated.\");\r\n this.router.navigate(['/opportunities', this.opportunityFile.opportunityId, 'files']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating opportunity file\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newOpportunityFile = this.formBuilder.sanitizeFormValues(this.opportunityFileForm).value;\r\n\r\n newOpportunityFile.id = this.opportunityFile.id; // - Set id of edited opportunityFile to its original id\r\n newOpportunityFile.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateOpportunityFile(newOpportunityFile);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\n\r\nimport { OpportunityFilesComponent } from './opportunity-files.component';\r\nimport { OpportunityFileListComponent } from './opportunity-file-list/opportunity-file-list.component';\r\nimport { OpportunityFileManageComponent } from './opportunity-file-manage/opportunity-file-manage.component';\r\n\r\nconst opportunityFilesRoutes: Routes = [\r\n {\r\n path: 'opportunities',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: ':id/files', component: OpportunityFilesComponent,\r\n children: [\r\n {\r\n path: '', component: OpportunityFileListComponent,\r\n children: [\r\n { path: ':id/edit', component: OpportunityFileManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(opportunityFilesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OpportunityFilesRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktZmlsZXMvb3Bwb3J0dW5pdHktZmlsZXMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-opportunity-files',\r\n templateUrl: './opportunity-files.component.html',\r\n styleUrls: ['./opportunity-files.component.scss']\r\n})\r\nexport class OpportunityFilesComponent {\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OpportunityFilesComponent } from './opportunity-files.component';\r\nimport { OpportunityFileListComponent } from './opportunity-file-list/opportunity-file-list.component';\r\nimport { OpportunityFileManageComponent } from './opportunity-file-manage/opportunity-file-manage.component';\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\nimport { OpportunityFilesRoutingModule } from \"./opportunity-files-routing.module\";\r\n\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { ModalModule } from \"ngx-bootstrap\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n@NgModule({\r\n declarations: [\r\n OpportunityFilesComponent,\r\n OpportunityFileListComponent,\r\n OpportunityFileManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ModalModule.forRoot(),\r\n OpportunityFilesRoutingModule,\r\n ReactiveFormsModule,\r\n DropzoneModule\r\n ]\r\n})\r\nexport class OpportunityFilesModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Opportunities
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Export Opportunities\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n Advanced Search\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n -\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n There are currently {{totalRecords}} opportunities\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunity?.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n opportunity?.createdByUserAccount?.id ?\\r\\n opportunity?.createdByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunity?.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n opportunity?.updatedByUserAccount?.id ?\\r\\n opportunity?.updatedByUserAccount?.fullName :\\r\\n '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunity?.uniqueId | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\r\\n opportunity?.assignedUserAccount?.id ?\\r\\n opportunity?.assignedUserAccount ?\\r\\n opportunity?.assignedUserAccount?.fullName :\\r\\n '-'\\r\\n :'-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 0 ? true : false\\\"\\r\\n *ngIf=\\\"isColVisible('assignedContact')\\\">\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{\\r\\n opportunity?.assignedContact?.id ?\\r\\n opportunity?.assignedContact ?\\r\\n opportunity?.assignedContact?.fullName :\\r\\n '-'\\r\\n :'-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunity.probability ? opportunity.probability + '%' : '-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ opportunity.value | currency:'EUR':'symbol':'1.0-0' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".probability-separator {\\n display: inline-flex;\\n align-items: center;\\n left: 15px;\\n position: relative; }\\n\\n.probability-min-container {\\n display: inline-flex; }\\n\\n.advanced-search-clickable {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3Mvb3Bwb3J0dW5pdGllcy9vcHBvcnR1bml0eS1saXN0L0M6XFxKZW5raW5zXFwuamVua2luc1xcd29ya3NwYWNlXFxDUk0tQUNRLVBPUlRBTC1QUk9EXFxJU0IuQ1JNLldlYnNpdGUvc3JjXFxhcHBcXHZpZXdzXFxvcHBvcnR1bml0aWVzXFxvcHBvcnR1bml0eS1saXN0XFxvcHBvcnR1bml0eS1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1Ysa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0Usb0JBQW9CLEVBQUE7O0FBR3RCO0VBQ0UsZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdmlld3Mvb3Bwb3J0dW5pdGllcy9vcHBvcnR1bml0eS1saXN0L29wcG9ydHVuaXR5LWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucHJvYmFiaWxpdHktc2VwYXJhdG9yIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGxlZnQ6IDE1cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ucHJvYmFiaWxpdHktbWluLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbn1cclxuXHJcbi5hZHZhbmNlZC1zZWFyY2gtY2xpY2thYmxlIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuIl19 */\"","import { TableUtilityService } from './../../shared/services/table-utility.service';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Response, URLSearchParams } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { OpportunityService } from \"../../shared/services/opportunity.service\";\r\nimport { ConfirmationService } from \"primeng/components/common/confirmationservice\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { UserService } from '../../shared/services/user.service';\r\n\r\nimport { CookieService } from 'ngx-cookie';\r\nimport { Opportunity, LandPurchaseOpportunity } from \"../../shared/models/opportunity.model\";\r\nimport { SelectItem, LazyLoadEvent, DataTable } from \"primeng/primeng\";\r\n\r\n\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { OpportunitiesSegment } from '../../shared/models/opportunities-segment.model';\r\nimport { OpportunityTypeService } from '../../shared/services/opportunity-type.service';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { ContactService } from 'app/views/shared/services/contact.service';\r\nimport { Contact } from 'app/views/shared/models/contact.model';\r\nimport { AllOpportunityCategoryTypesQueryGQL } from 'app/graphql/opportunity-category-type/opportunity-category-types.graphql';\r\nimport { map } from 'rxjs/operators';\r\nimport { OpportunityCategoryType } from 'app/views/shared/models/opportunity-category-type/opportunity-category-type.model';\r\nimport { combineLatest, of } from 'rxjs';\r\nimport { BaseComponent } from 'app/views/base/base.component';\r\nimport { DeleteLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-delete.mutation';\r\nimport { SystemComponent } from 'app/views/base/system.component';\r\nimport { SystemModeHelper, SYSTEM_KEYS } from 'app/views/shared/system-config.service';\r\n\r\n@Component({\r\n selector: 'app-opportunity-list',\r\n templateUrl: './opportunity-list.component.html',\r\n styleUrls: ['./opportunity-list.component.scss']\r\n})\r\nexport class OpportunityListComponent extends SystemComponent implements OnInit, OnDestroy {\r\n public SYSTEM_KEYS : SYSTEM_KEYS = SYSTEM_KEYS;\r\n\r\n opportunities: Opportunity[] = [];\r\n\r\n contactsOptions: SelectItem[] = []; // - Stores Contact Dropdown Options\r\n selectedContactOption: any;\r\n\r\n opportunityTypesOptions: SelectItem[] = []; // - Stores Opp. Type Dropdown Options\r\n selectedOpportunityTypeOption: any;\r\n\r\n opportunityCategoryTypeOptions: SelectItem[] = []; // - Stores Opp. Category Type Dropdown Options\r\n selectedOpportunityCategoryTypeOption: any;\r\n\r\n probabilityFilter: number;\r\n\r\n exportFileName: string = \"PotenzaCRM-Opportunities-Export-\" + new Date().toLocaleDateString(\"en-GB\");\r\n\r\n //** DatePicker */\r\n todayDate: Date = new Date();\r\n yearRange: string = this.todayDate.getFullYear() - 10 + ':' + (this.todayDate.getFullYear() + 10); // - 20 Year Range\r\n\r\n /** Lazy Loading */\r\n totalRecords: number = 0;\r\n latestLazyLoadEvent: LazyLoadEvent;\r\n\r\n /** Column Toggling */\r\n columnOptions: SelectItem[];\r\n selectedCols: any[]; // - Contains the table columns that should be visible\r\n allSelectableCols: any[] = []; // - Contains all table columns that may be toggled on or off\r\n\r\n selectedColsDefault: any[] = []; // - Contains the columns that are shown by default if no cookie is stored\r\n\r\n /** Advanced Options **/\r\n\r\n userOptions: SelectItem[] = [];\r\n selectedAssignedToOption: any;\r\n selectedCreatedByOption: any;\r\n\r\n selectedContactName: any;\r\n selectedCreatedOnSince: any;\r\n selectedCreatedOnBefore: any;\r\n selectedName:any;\r\n selectedDescription:any;\r\n selectedProbability:any;\r\n selectedProbabilityMin: any;\r\n selectedProbabilityMax: any;\r\n selectedValue:any;\r\n\r\n isAdvancedSearchCollapsed: boolean = false;\r\n allOppContacts: any;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private opportunityService: OpportunityService,\r\n private opportunityTypeService: OpportunityTypeService,\r\n private contactsService: ContactService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService,\r\n private cookieService: CookieService,\r\n private tableUtilService: TableUtilityService,\r\n private userService: UserService,\r\n\r\n private _allOppCategoryTypes: AllOpportunityCategoryTypesQueryGQL,\r\n private _deleteLandPurchaseOpportunityMutation: DeleteLandPurchaseOpportunityMutation,\r\n protected systemModeHelper : SystemModeHelper\r\n )\r\n {\r\n super(systemModeHelper);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.populateSearchOptions();\r\n //this.onGetOpportunities();\r\n this.initColumnOptions();\r\n this.ngOnInitDropDown();\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n\r\n ngOnInitDropDown(): void {\r\n let oppCategoryTypes$ =\r\n this._allOppCategoryTypes\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).opportunityCategoryTypes.data as OpportunityCategoryType[] : [];\r\n })\r\n );\r\n\r\n let oppContacts$ = this.contactsService.getOpportunityContacts();\r\n\r\n this.subscriptions$.push(\r\n combineLatest(oppCategoryTypes$, oppContacts$)\r\n .pipe(\r\n map((items: any[]) => {\r\n debugger;\r\n\r\n return {\r\n categoryTypes: items[0] as OpportunityCategoryType[],\r\n contacts: items[1] as Contact[]\r\n }\r\n })\r\n )\r\n .subscribe(result => {\r\n //populate category types\r\n this.populateCategoryTypeDropdowns(result.categoryTypes);\r\n\r\n //populate contacts\r\n this.populeContactDropdowns(result.contacts);\r\n })\r\n );\r\n\r\n // this.contactsService.getOpportunityContacts().subscribe(\r\n // (contacts: Contact[]) => {\r\n // this.contactsOptions = [];\r\n\r\n // this.allOppContacts = JSON.parse(JSON.stringify(contacts));\r\n\r\n // this.contactsOptions.push({ label: \"All Contacts\", value: null });\r\n // contacts.map(c => {\r\n // this.contactsOptions.push({ label: c.fullName, value: c.fullName });\r\n // });\r\n // }\r\n // );\r\n }\r\n\r\n private populateCategoryTypeDropdowns(categoryTypes: OpportunityCategoryType[]): void {\r\n //populate category types\r\n this.opportunityCategoryTypeOptions = [];\r\n this.opportunityCategoryTypeOptions.push({ label: \"All Category Types\", value: null });\r\n\r\n categoryTypes.map(c => {\r\n this.opportunityCategoryTypeOptions.push({ label: c.name, value: c.id });\r\n });\r\n\r\n this.selectedOpportunityCategoryTypeOption = null;\r\n }\r\n\r\n private populeContactDropdowns(contacts: Contact[]): void {\r\n this.contactsOptions = [];\r\n this.allOppContacts = JSON.parse(JSON.stringify(contacts));\r\n\r\n this.contactsOptions.push({ label: \"All Contacts\", value: null });\r\n contacts.map(c => {\r\n this.contactsOptions.push({ label: c.fullName, value: c.fullName });\r\n });\r\n\r\n this.selectedContactOption = null;\r\n }\r\n\r\n initColumnOptions() {\r\n this.allSelectableCols = this.tableUtilService.getAllSelectableOpportunityCols();\r\n this.selectedColsDefault = this.tableUtilService.getSelectedOpportunityColsDefault();\r\n this.columnOptions = this.tableUtilService.getColumnOptions(this.columnOptions, this.allSelectableCols);\r\n\r\n let selectedColsCookie = this.cookieService.getObject(\"crm_selectedOpportunityCols\") as any[];\r\n if (selectedColsCookie)\r\n this.selectedCols = selectedColsCookie;\r\n else\r\n this.selectedCols = this.selectedColsDefault;\r\n }\r\n\r\n // - Saves options in a cookie whenever they are changed\r\n onColumnOptionsChange() {\r\n this.cookieService.putObject(\"crm_selectedOpportunityCols\", this.selectedCols);\r\n }\r\n\r\n onSearchOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n dt.filter($event ? $event.value : null, field, matchMode);\r\n }\r\n // onContactOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n // this.selectedContactName = $event.value;\r\n // this.onSearchOptionChange(dt, $event, field, matchMode);\r\n // }\r\n // onProbabilityMinOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n // this.selectedProbabilityMin = $event.target.value;\r\n // this.onSearchOptionChange(dt, $event, field, matchMode);\r\n // }\r\n // onProbabilityMaxOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n // this.selectedProbabilityMax = $event.target.value;\r\n // this.onSearchOptionChange(dt, $event, field, matchMode);\r\n // }\r\n\r\n onContactOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n this.selectedContactName = $event.value;\r\n this.onSearchOptionChange(dt, $event, field, matchMode);\r\n }\r\n\r\n onProbabilityMinOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n this.selectedProbabilityMin = $event.target.value;\r\n this.onSearchOptionChange(dt, $event, field, matchMode);\r\n }\r\n\r\n onProbabilityMaxOptionChange(dt: DataTable, $event: any, field: string, matchMode: string) {\r\n this.selectedProbabilityMax = $event.target.value;\r\n this.onSearchOptionChange(dt, $event, field, matchMode);\r\n }\r\n\r\n onResetSearch(dt: DataTable) {\r\n this.selectedAssignedToOption = null;\r\n this.selectedCreatedByOption = null;\r\n this.selectedContactName = null;\r\n this.selectedCreatedOnSince = null;\r\n this.selectedCreatedOnBefore = null;\r\n\r\n this.selectedName=null;\r\n this.selectedDescription=null;\r\n // this.selectedProbability=null;\r\n this.selectedValue=null;\r\n\r\n this.selectedProbabilityMin = null;\r\n this.selectedProbabilityMax = null;\r\n\r\n dt.filters = {};\r\n\r\n dt.filter(null, null, null);\r\n }\r\n\r\n loadData(event: LazyLoadEvent) {\r\n debugger;\r\n this.latestLazyLoadEvent = event;\r\n\r\n let opportunityTypeId = this.selectedOpportunityTypeOption;\r\n let opportunityCategoryTypeId = this.selectedOpportunityCategoryTypeOption;\r\n let assignedToId = this.selectedAssignedToOption;\r\n let createdById = this.selectedCreatedByOption;\r\n\r\n\r\n let params = new HttpParams();\r\n params = params.set(\"from\", event.first.toString());\r\n params = params.set(\"to\", event.rows.toString());\r\n params = params.set(\"sortBy\", event.sortField);\r\n if(event.sortOrder)\r\n params = params.set(\"order\", event.sortOrder.toString());\r\n if(event.globalFilter)\r\n params = params.set(\"searchTerm\", event.globalFilter);\r\n\r\n if(assignedToId)\r\n params = params.set(\"assignedToId\", assignedToId);\r\n\r\n if(createdById)\r\n params = params.set(\"createdById\", createdById);\r\n\r\n if(opportunityTypeId) {\r\n params = params.set(\"opportunityTypeId\", opportunityTypeId);\r\n }\r\n if(opportunityCategoryTypeId) {\r\n params = params.set(\"opportunityCategoryTypeId\", opportunityCategoryTypeId);\r\n }\r\n if(this.selectedContactName) {\r\n params = params.set(\"fullName\", this.selectedContactName ? this.selectedContactName.trim() : null);\r\n }\r\n // params.set(\"lastName\", this.selectedContactFirstName ? this.selectedContactFirstName.trim() : this.selectedContactFirstName);\r\n\r\n // params.set(\"fullName\", this.selectedContactLastName ? this.selectedContactLastName.trim() : this.selectedContactLastName);\r\n\r\n\r\n if(this.selectedName) {\r\n params = params.set(\"name\", this.selectedName ? this.selectedName.trim() : null);\r\n }\r\n if(this.selectedDescription) {\r\n params = params.set(\"description\", this.selectedDescription ? this.selectedDescription.trim() : null);\r\n }\r\n\r\n if(this.selectedProbability) {\r\n params = params.set(\"probability\", this.selectedProbability ? this.selectedProbability.trim() : null);\r\n }\r\n\r\n if (this.selectedProbabilityMin) {\r\n params = params.set(\"probabilityMin\", this.selectedProbabilityMin ? this.selectedProbabilityMin.trim() : null);\r\n }\r\n if (this.selectedProbabilityMax) {\r\n params = params.set(\"probabilityMax\", this.selectedProbabilityMax ? this.selectedProbabilityMax.trim() : null);\r\n }\r\n\r\n if(this.selectedValue) {\r\n params = params.set(\"value\", this.selectedValue ? this.selectedValue.trim() : null);\r\n }\r\n\r\n if(this.selectedCreatedOnSince) {\r\n params = params.set(\"createdOnSince\", this.selectedCreatedOnSince ? this.selectedCreatedOnSince : null);\r\n }\r\n if(this.selectedCreatedOnBefore) {\r\n params = params.set(\"createdOnBefore\", this.selectedCreatedOnBefore ? this.selectedCreatedOnBefore : null);\r\n }\r\n\r\n this.onGetOpportunities(params);\r\n }\r\n\r\n populateSearchOptions() {\r\n let opportunityTypes = this.opportunityTypeService.getOpportunityTypes();\r\n let users = this.userService.getUsers();\r\n\r\n forkJoin( opportunityTypes, users).subscribe(\r\n ([opportunityTypes, users ]) => {\r\n\r\n this.opportunityTypesOptions.push({ label: \"All Types\", value: null });\r\n opportunityTypes.map(cT => {\r\n this.opportunityTypesOptions.push({ label: cT.name, value: cT.id });\r\n });\r\n\r\n this.userOptions.push({ label: \"All Agents\", value: null }); // todo: Unassigned option?\r\n users.map(u => {\r\n this.userOptions.push({ label: u.fullName, value: u.id });\r\n });\r\n\r\n this.selectedOpportunityTypeOption = null;\r\n this.selectedOpportunityCategoryTypeOption = null;\r\n this.selectedAssignedToOption = null;\r\n this.selectedCreatedByOption = null;\r\n }\r\n );\r\n\r\n }\r\n\r\n isColVisible(colName: string) {\r\n if (this.selectedCols.find(sC => sC.value === colName))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n onGetOpportunities(params: HttpParams) {\r\n\r\n this.opportunityService.getOpportunitiesSegment(params, false).subscribe(\r\n (opportunitiesSegment: OpportunitiesSegment) => {\r\n\r\n console.log(\"opportunitiesSegment ---> \", opportunitiesSegment);\r\n\r\n this.opportunities = opportunitiesSegment.opportunities;\r\n\r\n console.log(\"this.opportunities ====> \", this.opportunities);\r\n this.totalRecords = opportunitiesSegment.totalOpportunityCount;\r\n\r\n this.populateContactsOptions(opportunitiesSegment.opportunities);\r\n //this.populateOpportunityTypesOptions(opportunitiesSegment.opportunities);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving opportunities\", error);\r\n }\r\n );\r\n }\r\n\r\n populateContactsOptions(opportunities: Opportunity[]) {\r\n // this.contactsOptions = [];\r\n\r\n // this.contactsOptions.push({ label: \"All Contacts\", value: null });\r\n // opportunities.map(o => {\r\n // // If Opp. has an Assigned Contact and Contact has not already been added\r\n // if (o.assignedContact && !this.contactsOptions.find(c => c.value === o.assignedContact.fullName))\r\n // this.contactsOptions.push({ label: o.assignedContact.fullName, value: o.assignedContact.fullName });\r\n // });\r\n\r\n // this.contactsOptions.push({ label: \"All Contacts\", value: null });\r\n // opportunities.map(o => {\r\n // // If Opp. has an Assigned Contact and Contact has not already been added\r\n // if (o.assignedContact && !this.contactsOptions.find(c => c.value === o.assignedContact.fullName))\r\n // this.contactsOptions.push({ label: o.assignedContact.fullName, value: o.assignedContact.fullName });\r\n // });\r\n\r\n // this.selectedContactOption = null;\r\n // this.selectedContactOption = null;\r\n }\r\n\r\n populateOpportunityTypesOptions(opportunities: Opportunity[]) {\r\n this.opportunityTypesOptions.push({ label: \"All Types\", value: null });\r\n opportunities.map(o => {\r\n if (!this.opportunityTypesOptions.find(oT => oT.value === o.opportunityType.name))\r\n this.opportunityTypesOptions.push({ label: o.opportunityType.name, value: o.opportunityType.name });\r\n });\r\n this.selectedOpportunityTypeOption = null;\r\n }\r\n\r\n onDeleteOpportunity(opportunity: Opportunity, oppTypeName: string) {\r\n debugger;\r\n\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the opportunity ' + opportunity.name + '?',\r\n accept: () => {\r\n opportunity.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n switch(oppTypeName) {\r\n case \"Sales Opportunity\":\r\n this.deleteOpportunity(opportunity);\r\n break;\r\n\r\n case \"Land Purchases Opportunity\":\r\n this.deleteLandPurchaseOpportunity(opportunity.id);\r\n break;\r\n };\r\n\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for opportunity \" + opportunity.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n private deleteOpportunity(opportunity: Opportunity): void {\r\n this.opportunityService.deleteOpportunity(opportunity).subscribe(\r\n (response: Response) => {\r\n //this.onGetOpportunities();\r\n this.loadData(this.latestLazyLoadEvent);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + opportunity.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n private deleteLandPurchaseOpportunity(id: number): void {\r\n const MUT_VARS = {\r\n id: id\r\n };\r\n\r\n let mutation$ = this._deleteLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).deleteLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((deletedPurchaseOpp: LandPurchaseOpportunity) => {\r\n this.loadData(this.latestLazyLoadEvent);\r\n\r\n this.toastService.createSuccessMessage(\"Success\", `The land purchase opportunity ${deletedPurchaseOpp.code} has been deleted.`);\r\n })\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Lost Opportunity Types
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Lost Opportunity Types\\r\\n There are currently {{opportunityLostTypes.length}} lost opportunity types\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunityLostType.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ opportunityLostType.createdByUserAccountId > 0 ? opportunityLostType.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktbG9zdC10eXBlcy9vcHBvcnR1bml0eS1sb3N0LXR5cGUtbGlzdC9vcHBvcnR1bml0eS1sb3N0LXR5cGUtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { OpportunityLostTypeService } from \"../../../shared/services/opportunity-lost-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { OpportunityLostType } from \"../../../shared/models/opportunity-lost-type.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-opportunity-lost-type-list',\r\n templateUrl: './opportunity-lost-type-list.component.html',\r\n styleUrls: ['./opportunity-lost-type-list.component.scss']\r\n})\r\nexport class OpportunityLostTypeListComponent implements OnInit {\r\n opportunityLostTypes: OpportunityLostType[] = [];\r\n isAnim: boolean = true;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private opportunityLostTypeService: OpportunityLostTypeService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetOpportunityLostTypes();\r\n\r\n // Listen to changes made to opportunityLostTypes\r\n this.opportunityLostTypeService.typesChanged.subscribe(\r\n () => {\r\n this.onGetOpportunityLostTypes();\r\n }\r\n );\r\n }\r\n\r\n onGetOpportunityLostTypes() {\r\n this.opportunityLostTypeService.getOpportunityLostTypes().subscribe(\r\n (opportunityLostTypes: OpportunityLostType[]) => {\r\n this.opportunityLostTypes = opportunityLostTypes;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lost opportunity types\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteOpportunityLostType(opportunityLostType: OpportunityLostType) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the lost opportunity type ' + opportunityLostType.name + '?',\r\n accept: () => {\r\n opportunityLostType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.opportunityLostTypeService.deleteOpportunityLostType(opportunityLostType).subscribe(\r\n (response: Response) => {\r\n this.onGetOpportunityLostTypes();\r\n this.toastService.createSuccessMessage(\"Success\", \"The lost opportunity type \" + opportunityLostType.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting lost opportunity type\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for lost opportunity type \" + opportunityLostType.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Lost Opportunity Type

\\r\\n

New Lost Opportunity Type

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Lost Opportunity Type field is required.\\r\\n \\r\\n \\r\\n There is already a lost opportunity type with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktbG9zdC10eXBlcy9vcHBvcnR1bml0eS1sb3N0LXR5cGUtbWFuYWdlL29wcG9ydHVuaXR5LWxvc3QtdHlwZS1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { OpportunityLostTypeService } from \"../../../shared/services/opportunity-lost-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { OpportunityLostType } from \"../../../shared/models/opportunity-lost-type.model\";\r\n\r\nimport { valueExistsValidator } from \"../../../shared/validators/value-exists.validator\";\r\n\r\n@Component({\r\n selector: 'app-opportunity-lost-type-manage',\r\n templateUrl: './opportunity-lost-type-manage.component.html',\r\n styleUrls: ['./opportunity-lost-type-manage.component.scss']\r\n})\r\nexport class OpportunityLostTypeManageComponent implements OnInit {\r\n opportunityLostTypeForm: FormGroup; // - Stores the opportunityLostType form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a opportunityLostType if true and add a new opportunityLostType if false\r\n\r\n opportunityLostTypes: OpportunityLostType[] = []; // - Stores all opportunityLostTypes retrieved from db\r\n opportunityLostType: OpportunityLostType = new OpportunityLostType(); // - Stores OpportunityLostType to populate form with a new / existing OpportunityLostType's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private opportunityLostTypeService: OpportunityLostTypeService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.opportunityLostTypeService.getOpportunityLostTypes().subscribe(\r\n (opportunityLostTypes: OpportunityLostType[]) => {\r\n this.opportunityLostTypes = opportunityLostTypes; // - Store all opportunity lost types retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const opportunityLostTypeId = params['id'];\r\n this.isEdit = opportunityLostTypeId != null;\r\n\r\n if (this.isEdit) {\r\n this.opportunityLostType = this.opportunityLostTypes.find(cType => cType.id === +opportunityLostTypeId); // - Store the selected opportunityLostType\r\n\r\n // Redirect to 404 page if the selected opportunityLostType could not be found\r\n if (!this.opportunityLostType) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving opportunity lost types\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all opportunityLostType names to know if it already exists\r\n const opportunityLostTypeNames = this.opportunityLostTypes.map(cType => cType.name);\r\n\r\n this.opportunityLostTypeForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.opportunityLostType.name, [Validators.required, valueExistsValidator(opportunityLostTypeNames)])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddOpportunityLostType(newOpportunityLostType: OpportunityLostType) {\r\n this.opportunityLostTypeService.addOpportunityLostType(newOpportunityLostType).subscribe(\r\n (response: Response) => {\r\n this.opportunityLostTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity lost type \" + newOpportunityLostType.name + \" has been created.\");\r\n this.router.navigate(['/opportunities/lost-types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding opportunity lost type\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateOpportunityLostType(newOpportunityLostType: OpportunityLostType) {\r\n this.opportunityLostTypeService.updateOpportunityLostType(newOpportunityLostType).subscribe(\r\n (response: Response) => {\r\n this.opportunityLostTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity lost type \" + newOpportunityLostType.name + \" has been updated.\");\r\n this.router.navigate(['/opportunities/lost-types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating opportunity lost type\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newOpportunityLostType = this.formBuilder.sanitizeFormValues(this.opportunityLostTypeForm).value;\r\n\r\n if (this.isEdit) {\r\n newOpportunityLostType.id = this.opportunityLostType.id; // - Set id of edited opportunityLostType to its original id\r\n newOpportunityLostType.createdByUserAccountId = this.opportunityLostType.createdByUserAccountId; // - Need createdById of original opportunity lost type to check if it is a prepopulated type\r\n newOpportunityLostType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateOpportunityLostType(newOpportunityLostType);\r\n }\r\n else {\r\n newOpportunityLostType.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddOpportunityLostType(newOpportunityLostType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { OpportunityLostTypesComponent } from \"../opportunity-lost-types/opportunity-lost-types.component\";\r\nimport { OpportunityLostTypeListComponent } from \"../opportunity-lost-types/opportunity-lost-type-list/opportunity-lost-type-list.component\";\r\nimport { OpportunityLostTypeManageComponent } from \"../opportunity-lost-types/opportunity-lost-type-manage/opportunity-lost-type-manage.component\";\r\n\r\nconst typesRoutes: Routes = [\r\n {\r\n path: 'opportunities',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'lost-types', component: OpportunityLostTypesComponent,\r\n children: [\r\n {\r\n path: '', component: OpportunityLostTypeListComponent,\r\n children: [\r\n { path: ':id/edit', component: OpportunityLostTypeManageComponent, canActivate: [RoleGuard] },\r\n { path: 'new', component: OpportunityLostTypeManageComponent, canActivate: [RoleGuard] }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(typesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OpportunityLostTypesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktbG9zdC10eXBlcy9vcHBvcnR1bml0eS1sb3N0LXR5cGVzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-opportunity-lost-types',\r\n templateUrl: './opportunity-lost-types.component.html',\r\n styleUrls: ['./opportunity-lost-types.component.scss']\r\n})\r\nexport class OpportunityLostTypesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { OpportunityLostTypesRoutingModule } from \"./opportunity-lost-types-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { OpportunityLostTypesComponent } from './opportunity-lost-types.component';\r\nimport { OpportunityLostTypeListComponent } from './opportunity-lost-type-list/opportunity-lost-type-list.component';\r\nimport { OpportunityLostTypeManageComponent } from './opportunity-lost-type-manage/opportunity-lost-type-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n OpportunityLostTypesComponent,\r\n OpportunityLostTypeListComponent,\r\n OpportunityLostTypeManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n OpportunityLostTypesRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class OpportunityLostTypesModule { }\r\n","import { OpportunityManageComponent } from './opportunity-manage.component';\r\n\r\nexport class OpportunityValidation {\r\n constructor(private _opportunityManageItem: OpportunityManageComponent) { }\r\n\r\n //the client input fields\r\n input = {\r\n NAME: \"name\",\r\n OPP_PROBABILITY: \"probability\",\r\n OPP_TYPE: \"opportunityTypeId\",\r\n OPP_CATEGORY_TYPE: \"opportunityCategoryTypeId\",\r\n\r\n OPP_SELLER: \"sellerId\",\r\n PLOT_DESC: \"plotDescription\",\r\n\r\n PROJECT_MANAGER: \"projectManagerId\",\r\n START_DATE: \"startDate\",\r\n DUE_DATE: \"dueDate\"\r\n }\r\n\r\n //opportunity category type validation\r\n get opportunityCategoryType() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_CATEGORY_TYPE); }\r\n get isOpportunityCategoryTypeInvalid() { return (this.opportunityCategoryType.invalid && (this.opportunityCategoryType.dirty || this.opportunityCategoryType.touched)); }\r\n\r\n //opportunity type validation\r\n get opportunityType() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_TYPE); }\r\n get isOpportunityTypeInvalid() { return (this.opportunityType.invalid && (this.opportunityType.dirty || this.opportunityType.touched)); }\r\n\r\n //probabillity validation\r\n get probability() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_PROBABILITY); }\r\n get isProbabilityInvalid() { return (this.probability.invalid && (this.probability.dirty || this.probability.touched)); }\r\n\r\n //name validation\r\n get name() { return this._opportunityManageItem.opportunityForm.get(this.input.NAME); }\r\n get isNameInvalid() { return (this.name.invalid && (this.name.dirty || this.name.touched)); }\r\n\r\n //seller validation\r\n get seller() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_SELLER); }\r\n get isSellerInvalid() { return (this.seller.invalid && (this.seller.dirty || this.seller.touched)); }\r\n\r\n //plot description validation\r\n get plotDescription() { return this._opportunityManageItem.opportunityForm.get(this.input.PLOT_DESC); }\r\n get isPlotDescriptionInvalid() { return (this.plotDescription.invalid && (this.plotDescription.dirty || this.plotDescription.touched)); }\r\n\r\n //project manager validation\r\n get projectManager() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.PROJECT_MANAGER); }\r\n get isProjectManagerInvalid() { return (this.projectManager.invalid && (this.projectManager.dirty || this.projectManager.touched)); }\r\n\r\n //project name validation\r\n get projectName() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.NAME); }\r\n get isProjectNameInvalid() { return (this.projectName.invalid && (this.projectName.dirty || this.projectName.touched)); }\r\n\r\n //project start date validation\r\n get projectStartDate() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.START_DATE); }\r\n get isProjectStartDateInvalid() { return (this.projectStartDate.invalid && (this.projectStartDate.dirty || this.projectStartDate.touched)); }\r\n\r\n //project due date validation\r\n get projectDueDate() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.DUE_DATE); }\r\n get isProjectDueDateInvalid() { return (this.projectDueDate.invalid && (this.projectDueDate.dirty || this.projectDueDate.touched)); }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update Opportunity
\\r\\n
New Opportunity
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Category Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Assigned Contact:\\r\\n {{ opportunityForm.get('assignedContactId').value.label }}.\\r\\n

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

\\r\\n No contact is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Assigned Contact field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The minimum allowed value is 0.\\r\\n \\r\\n \\r\\n The maximum allowed value is 100%.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

Property Details

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Assigned Seller/Vendor:\\r\\n {{ opportunityForm?.get('sellerId')?.value?.label }}.\\r\\n

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

\\r\\n No seller/vendor is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Assigned Contact field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter probability.\\r\\n \\r\\n \\r\\n The minimum allowed value is 0.\\r\\n \\r\\n \\r\\n The maximum allowed value is 100%.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
This data is required to create a project in ORCHESTRATE\\r\\n
\\r\\n
This opportunity is linked with the following project in\\r\\n ORCHESTRATE
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter project name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select start date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select due date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select a project manager.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter plot description.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Address Details\\r\\n \\r\\n

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

Potential Property Results

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Viewed
\\r\\n
Not Interested
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{prop.defaultPrice}}\\r\\n \\r\\n {{prop.propertyPreCode}}\\r\\n {{prop.propertyCategory}} - {{prop.propertyLocality}}\\r\\n\\r\\n \\r\\n
\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Quotes
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ quote.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ quote.validUntil | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
Tasks
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task | taskStatus }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.reminderDate | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdByUserAccountId ? task.createdByUserAccount?.fullName : '-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 20 ? false : true\\\" tooltipPosition=\\\"left\\\"\\r\\n tooltipStyleClass=\\\"tooltip-primary\\\">\\r\\n {{ task.taskDescription }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.userTasks | assignedUsers | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.contactTasks | assignedContacts | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.isTaskComplete | taskStatus }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".header--collapse {\\n padding-left: 15px; }\\n\\nspan.ui-calendar {\\n display: flex !important;\\n align-items: center;\\n justify-content: flex-end; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3Mvb3Bwb3J0dW5pdGllcy9vcHBvcnR1bml0eS1tYW5hZ2UvQzpcXEplbmtpbnNcXC5qZW5raW5zXFx3b3Jrc3BhY2VcXENSTS1BQ1EtUE9SVEFMLVBST0RcXElTQi5DUk0uV2Vic2l0ZS9zcmNcXGFwcFxcdmlld3NcXG9wcG9ydHVuaXRpZXNcXG9wcG9ydHVuaXR5LW1hbmFnZVxcb3Bwb3J0dW5pdHktbWFuYWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0VBQ0Usa0JBQWtCLEVBQUE7O0FBSWpCO0VBRUcsd0JBQXdCO0VBQ3hCLG1CQUFtQjtFQUNuQix5QkFBeUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktbWFuYWdlL29wcG9ydHVuaXR5LW1hbmFnZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC5oYXMtZGFuZ2VyIC5pbnB1dC1ncm91cC10ZXh0LCAuaGFzLWRhbmdlciAuZm9ybS1jb250cm9sLCAuaGFzLWRhbmdlciAucC1kcm9wZG93biA+IGRpdiB7XHJcbi8vICAgYm9yZGVyLWNvbG9yOiByZWQ7XHJcbi8vIH1cclxuXHJcblxyXG4uaGVhZGVyLS1jb2xsYXBzZSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG59XHJcblxyXG4vLyBwLWNhbGVuZGFyIHtcclxuICAgc3BhbiB7XHJcbiAgICAgICYudWktY2FsZW5kYXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcbiAgfVxyXG4vLyB9XHJcbiJdfQ== */\"","import { Component, OnInit, ViewChild, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities, PrepopulatedContactTypes, PrepopulatedContactSources, PrepopulatedOpportunityTypes, PrepopulatedTaskTypes, GoogleMaps } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { OpportunityService } from \"../../shared/services/opportunity.service\";\r\nimport { OpportunityTypeService } from \"../../shared/services/opportunity-type.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\nimport { OpportunityLostTypeService } from '../../shared/services/opportunity-lost-type.service';\r\nimport { ProductService } from '../../shared/services/product.service';\r\nimport { QuoteService } from '../../shared/services/quote.service';\r\nimport { Opportunity, OpportunityExtended, SalesOpportunityFormControl, LandPurchaseOpportunityFormControl, LandPurchaseOpportunity } from \"../../shared/models/opportunity.model\";\r\nimport { OpportunityType } from \"../../shared/models/opportunity-type.model\";\r\n\r\nimport { SelectItem, ConfirmationService, AutoComplete } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { OpportunityLostType } from '../../shared/models/opportunity-lost-type.model';\r\nimport { Product } from '../../shared/models/product.model';\r\nimport { PropertyService } from 'app/views/shared/services/property.service';\r\nimport { PropertyCategory } from 'app/views/shared/models/property-category.model';\r\nimport { PropertyLocality } from 'app/views/shared/models/property-locality.model';\r\nimport { PropertyRegion } from 'app/views/shared/models/property-region.model';\r\nimport { PropertyDealType } from 'app/views/shared/models/property-dealtype';\r\nimport { PropertyAttribute } from 'app/views/shared/models/property-attribute';\r\nimport { PropertyDetails } from 'app/views/shared/models/property-details.model';\r\nimport { pipeFromArray } from 'rxjs/internal/util/pipe';\r\nimport { OpportunitySelection } from 'app/views/shared/models/opportunity-selection.model';\r\nimport { PropertyOppSelection } from 'app/views/shared/models/property-opportunity-selection.model';\r\nimport { Property } from 'app/views/shared/models/property.model';\r\nimport { OpportunityPropertiesNotInterested } from 'app/views/shared/models/opportunity-properties-not-interested.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { Quote } from 'app/views/shared/models/quote.model';\r\nimport { Task } from 'app/views/shared/models/task.model';\r\nimport { TaskService } from 'app/views/shared/services/task.service';\r\nimport { Organization } from 'app/views/shared/models/organization.model';\r\nimport { BaseComponent } from 'app/views/base/base.component';\r\nimport { OpportunityInitQueryGQL } from 'app/graphql/opportunity/opportunity-init.query.graphql';\r\nimport { OpportunityCategoryType } from 'app/views/shared/models/opportunity-category-type/opportunity-category-type.model';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { OpportunityValidation } from './opportunity-manage-item.validation';\r\nimport { AllOpportunityCategoryTypesQueryGQL } from 'app/graphql/opportunity-category-type/opportunity-category-types.graphql';\r\nimport { forkJoin, combineLatest, of } from 'rxjs';\r\nimport { FormUtilityService } from 'app/shared/form-utility.service';\r\nimport { LandPurchaseOpportunityByIdOppIdQueryGQL } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-by-opp-id.graphql';\r\nimport { UpdateLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-update.mutation.graphql';\r\nimport { CreateLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opporunity-create.mutation.graphql';\r\nimport { AllAccountPRofilesQueryGQL } from 'app/graphql/account-profile/account-profiles.graphql';\r\nimport { Profile } from 'app/shared/profile/_models/profile.model';\r\n\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-opportunity-manage',\r\n templateUrl: './opportunity-manage.component.html',\r\n styleUrls: ['./opportunity-manage.component.scss']\r\n})\r\nexport class OpportunityManageComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n opportunityForm: FormGroup = null; // - Stores the opportunity form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update an opportunity if true and add a new opportunity if false\r\n isQuoteClosed: boolean = false; // - If Quote was selected and now cannot add more quotes\r\n\r\n opportunity: OpportunityExtended = new OpportunityExtended(); // - Stores Opportunity to populate form with a new / existing opportunity's values\r\n\r\n productsOptions: SelectItem[] = []; // - Stores Products Dropdown Options \r\n //propertyCategoryOptions: SelectItem[] = []; // - Stores Property Category Dropdown Options\r\n opportunityTypesOptions: SelectItem[] = []; // - Stores Opportunity Type Dropdown Options\r\n opportunityLostTypesOptions: SelectItem[] = []; // - Stores Opportunity Lost Type Dropdown Options\r\n assignedUserOptions: SelectItem[] = []; // - Stores Users to select the Assigned User of this opportunity\r\n assignedContactOptions: SelectItem[] = []; // - Stores Contacts to select the Assigned Contact of this opportunity\r\n opportunityCategoryTypeOptions: SelectItem[] = [];\r\n accountProfileOptions: SelectItem[] = [];\r\n tasks: Task[] = []; // - List of tasks displayed in table\r\n\r\n isProjectCreated: boolean = false;\r\n\r\n validation: OpportunityValidation = null;\r\n\r\n selectedCategoryType: number = null;\r\n\r\n MainCatOptions: SelectItem[] = [];\r\n SubCatOptions: SelectItem[] = [];\r\n PropertyRegionsOptions: SelectItem[] = [];\r\n PropertyLocalitiesOptions: SelectItem[] = [];\r\n PropertyDealTypesOptions: SelectItem[] = [];\r\n PropertyRoomsOptions: SelectItem[] = [];\r\n PropertyFeaturesOptions: SelectItem[] = [];\r\n Properties: Property[] = [];\r\n ParamValues: string = null;\r\n Viewings: number[] = [];\r\n PropNotInterested: number[] = [];\r\n opportunityPropertyNotInterested: OpportunityPropertiesNotInterested = new OpportunityPropertiesNotInterested();\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n\r\n CategoryTypeEnums: { \"Sales Opportunity\": number; \"Land Purchases Opportunity\": number; };\r\n selectedCategoryTypeOptionId: any;\r\n landPurchaseOpp: LandPurchaseOpportunity;\r\n\r\n //** Google Maps */\r\n options: any;\r\n overlays: any[];\r\n marker: any;\r\n isGoogleMapsSearchInit = false;\r\n @ViewChild(\"gMapsSearch\") public gMapsSearchElementRef: ElementRef;\r\n @ViewChild(\"gmap\") public gmap;\r\n minDueDate: Date;\r\n allAccountProfiles: Profile[];\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private _formUtil: FormUtilityService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private propertyService: PropertyService,\r\n private productService: ProductService,\r\n private taskService: TaskService,\r\n private opportunityService: OpportunityService,\r\n private quoteService: QuoteService,\r\n private opportunityTypeService: OpportunityTypeService,\r\n private opportunityLostTypeService: OpportunityLostTypeService,\r\n private confirmationService: ConfirmationService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private _allOppCategoryTypes: AllOpportunityCategoryTypesQueryGQL,\r\n\r\n private _landPurchaseOpportunityByIdQuery: LandPurchaseOpportunityByIdOppIdQueryGQL,\r\n private _updateLandPurchaseOpportunityMutation: UpdateLandPurchaseOpportunityMutation,\r\n private _createLandPurchaseOpportunityMutation: CreateLandPurchaseOpportunityMutation,\r\n\r\n private _allAccountProfiles: AllAccountPRofilesQueryGQL,\r\n\r\n private ref: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.populateCategoryTypeMappings();\r\n this.ngOnInitHandleDropdowns();\r\n this.setupForm();\r\n }\r\n\r\n getImageUrl(prop){\r\n //url(' + prop.propertyUrl + prop.propertyImageUrl + ')\r\n let imagUrl = prop.propertyUrl + prop.propertyImageUrl;\r\n\r\n let link = 'url(' + imagUrl + ')';\r\n\r\n return link;\r\n }\r\n\r\n isPropertyViewedOrNotInterested(propId) {\r\n propId = parseInt(propId);\r\n\r\n if (this.PropNotInterested.includes(propId)) {\r\n return 'NotInterested';\r\n }\r\n else if (this.Viewings.includes(propId)) {\r\n return 'Viewed';\r\n }\r\n }\r\n\r\n NotInterested(prop) {\r\n this.confirmationService.confirm({\r\n header: prop.propertyPreCode + ' (Not Interested)',\r\n message: 'Would you like to mark this property as Not Interested?',\r\n accept: () => {\r\n this.opportunityPropertyNotInterested.OpportunityId = this.opportunity.id;\r\n this.opportunityPropertyNotInterested.PropertyId = prop.propertyId;\r\n this.opportunityService.addPropertyNotInterested(this.opportunityPropertyNotInterested).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property has been listed as not interested.\");\r\n //this.router.navigate(['/opportunities/' + this.opportunity.id + '/edit']);\r\n\r\n this.PropNotInterested.push(prop.propertyId);\r\n this.isPropertyViewedOrNotInterested(prop.propertyId);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating properties not interested\", error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n UndoNotInterested(prop) {\r\n this.confirmationService.confirm({\r\n header: prop.propertyPreCode + ' (Undo Not Interested)',\r\n message: 'Would you like to undo Not Interested for this property ?',\r\n accept: () => {\r\n this.opportunityPropertyNotInterested.OpportunityId = this.opportunity.id;\r\n this.opportunityPropertyNotInterested.PropertyId = prop.propertyId;\r\n this.opportunityService.undoPropertyNotInterested(this.opportunityPropertyNotInterested).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"Property not interested has been removed.\");\r\n //this.router.navigate(['/opportunities/' + this.opportunity.id + '/edit']);\r\n\r\n let index = this.PropNotInterested.indexOf(prop.propertyId);\r\n this.PropNotInterested.splice(index);\r\n this.isPropertyViewedOrNotInterested(prop.propertyId);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error undo properties not interested\", error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n private populateCategoryTypeMappings() {\r\n this.CategoryTypeEnums = {\r\n \"Sales Opportunity\": 1,\r\n \"Land Purchases Opportunity\": 2\r\n };\r\n }\r\n\r\n ngOnDestroy() : void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n private allOppCategoryTypes$(): Observable {\r\n return this._allOppCategoryTypes\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).opportunityCategoryTypes.data as OpportunityCategoryType[] : [];\r\n })\r\n );\r\n }\r\n\r\n ngOnInitHandleDropdowns(): void {\r\n let oppTypes$ = this.opportunityTypeService.getOpportunityTypes()\r\n .subscribe(items => {\r\n this.populateOppTypeOptions(items);\r\n });\r\n this.subscriptions$.push(oppTypes$);\r\n }\r\n\r\n private populateOppCategoryTypeOptions(categoryTypes: OpportunityCategoryType[]): void {\r\n this.opportunityCategoryTypeOptions = [];\r\n if (categoryTypes != null && categoryTypes.length > 0) {\r\n categoryTypes.map(c => {\r\n this.opportunityCategoryTypeOptions.push({ label: c.name, value: c.id });\r\n });\r\n }\r\n }\r\n\r\n private populateOppTypeOptions(opportunityTypes: OpportunityType[]): void {\r\n this.opportunityTypesOptions = [];\r\n if (opportunityTypes != null && opportunityTypes.length > 0) {\r\n opportunityTypes.map(t => {\r\n this.opportunityTypesOptions.push({ label: t.name, value: t.id });\r\n });\r\n }\r\n }\r\n\r\n private getAccountProfiles$() : Observable {\r\n return this._allAccountProfiles\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).systemAccountProfiles.data as Profile[] : [];\r\n // return item ? (item).accountProfiles.data as Profile[] : [];\r\n })\r\n );\r\n }\r\n\r\n public onOpportunityTypeChange(event: any) : void {\r\n let oppTypeIsClosed = this.isOpportunityTypeClosed();\r\n\r\n //show the dropdowns for creating a project only when the opportunity is selected as\r\n //closed\r\n if (oppTypeIsClosed) {\r\n this.landPurchaseClosedOppDropdownsInit();\r\n this.enableProjectFormDetails();\r\n } else {\r\n this.disableProjectFormDetails();\r\n }\r\n }\r\n\r\n private disableProjectFormDetails(): void {\r\n this.opportunityForm.get('project').disable();\r\n }\r\n\r\n private enableProjectFormDetails(): void {\r\n this.opportunityForm.get('project').enable();\r\n }\r\n\r\n private landPurchaseClosedOppDropdownsInit(): void {\r\n this.subscriptions$.push(\r\n this.getAccountProfiles$()\r\n .pipe(\r\n map(items => {\r\n return {\r\n accountProfiles: items\r\n };\r\n })\r\n )\r\n .subscribe(result => {\r\n this.populateAccountProfileOptions(result.accountProfiles);\r\n })\r\n );\r\n }\r\n\r\n private populateAccountProfileOptions(accountProfiles: Profile[]): void {\r\n this.allAccountProfiles = accountProfiles;\r\n this.accountProfileOptions = [];\r\n if (accountProfiles != null && accountProfiles.length > 0) {\r\n accountProfiles.map(acc => {\r\n this.accountProfileOptions.push({ label: `${acc.firstName} ${acc.lastName}`, value: acc.subjectId });\r\n });\r\n }\r\n }\r\n\r\n public onOpportunityCategoryTypeChange(event: any): void {\r\n let selectionCategoryTypeOption = this.opportunityCategoryTypeOptions.find(c => c.value == event.value).label;\r\n\r\n this.selectedCategoryType = this.CategoryTypeEnums[selectionCategoryTypeOption];\r\n\r\n switch (selectionCategoryTypeOption) {\r\n case \"Land Purchases Opportunity\":\r\n this.selectedCategoryType = 2;\r\n break;\r\n case \"Sales Opportunity\":\r\n this.selectedCategoryType = 1;\r\n break;\r\n }\r\n\r\n this.initForm();\r\n\r\n //the opportunity category type should always be visible to the user when creating a new opp\r\n this.opportunityForm.get('opportunityCategoryTypeId').setValue(event.value);\r\n }\r\n\r\n private showLandPurchaseOpportunityFields(opp: LandPurchaseOpportunity): void {\r\n\r\n this.isProjectCreated = opp && opp.project ? opp.project.name != null : false;\r\n\r\n console.log(\"opp --> \", opp)\r\n\r\n this.opportunityForm = null;\r\n\r\n var control = new LandPurchaseOpportunityFormControl();\r\n\r\n control.id.setValue(opp ? opp.id : null);\r\n control.code.setValue(opp ? opp.code : null);\r\n control.details.setValue(opp ? opp.details : null);\r\n control.plotDescription.setValue(opp ? opp.plotDescription : null);\r\n control.sellingPrice.setValue(opp ? opp.sellingPrice : null);\r\n control.sellerId.setValue(opp && opp.seller ? opp.seller.id : null);\r\n\r\n control.address.controls.id.setValue(opp && opp.address ? opp.address.id : null);\r\n control.address.controls.addressLine1.setValue(opp && opp.address ? opp.address.addressLine1 : null);\r\n control.address.controls.addressLine2.setValue(opp && opp.address ? opp.address.addressLine2 : null);\r\n control.address.controls.addressLine3.setValue(opp && opp.address ? opp.address.addressLine3 : null);\r\n control.address.controls.addressLine4.setValue(opp && opp.address ? opp.address.addressLine4 : null);\r\n control.address.controls.postCode.setValue(opp && opp.address ? opp.address.postCode : null);\r\n control.address.controls.country.setValue(opp && opp.address ? opp.address.country : null);\r\n control.address.controls.locationLat.setValue(opp && opp.address ? opp.address.locationLat : null);\r\n control.address.controls.locationLng.setValue(opp && opp.address ? opp.address.locationLng : null);\r\n\r\n control.assignedUserAccountId.setValue(opp && opp.opportunity.assignedUserAccount ? opp.opportunity.assignedUserAccount.id : null);\r\n control.probability.setValue(opp && opp.opportunity ? opp.opportunity.probability : null);\r\n control.value.setValue(opp && opp.opportunity ? opp.opportunity.value : null);\r\n control.name.setValue(opp && opp.opportunity ? opp.opportunity.name : null);\r\n\r\n control.opportunityLostTypeId.setValue(opp && opp.opportunity.opportunityLostType ? opp.opportunity.opportunityLostType.id : null);\r\n control.lostTypeDescription.setValue(opp && opp.opportunity ? opp.opportunity.lostTypeDescription : null);\r\n\r\n control.project.controls.name.setValue(opp && opp.project ? opp.project.name : null);\r\n control.project.controls.startDate.setValue(opp && opp.project.startDate ? new Date(opp.project.startDate) : null);\r\n control.project.controls.dueDate.setValue(opp && opp.project.dueDate ? new Date(opp.project.dueDate) : null);\r\n control.project.controls.projectManagerId.setValue(opp && opp.project.projectManager ? opp.project.projectManager.subjectId : null);\r\n\r\n if(this.isEdit) {\r\n control.opportunityTypeId.setValue(opp && opp.opportunity.opportunityType ? opp.opportunity.opportunityType.id : null);\r\n control.opportunityTypeId.enable();\r\n\r\n if (opp.opportunity.opportunityType.id == 2) {\r\n this.landPurchaseClosedOppDropdownsInit();\r\n }\r\n }\r\n else {\r\n control.opportunityTypeId.setValue(this.opportunityTypesOptions[0] ? this.opportunityTypesOptions[0].value : null);\r\n }\r\n\r\n this.opportunityForm = this.formBuilder.group(control);\r\n\r\n //keep watch on the locationLat to update the map accordingly\r\n this.opportunityForm.get('address').get('locationLat').valueChanges.subscribe(locationLat => {\r\n var location = { lat: locationLat , lng: this.marker.getPosition().lng() };\r\n if (this.gmap != null && this.gmap.map != null)\r\n this.gmap.map.panTo(location);\r\n });\r\n\r\n //keep watch on the locationLng to update the map accordingly\r\n this.opportunityForm.get('address').get('locationLng').valueChanges.subscribe(locationLng => {\r\n var location = { lat: this.marker.getPosition().lat() , lng: locationLng };\r\n if (this.gmap != null && this.gmap.map != null)\r\n this.gmap.map.panTo(location);\r\n });\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n this.enableProjectFormDetails();\r\n\r\n if (this.isEdit) {\r\n this.disableLandingPurchaseOppFormIfClosed();\r\n }\r\n } else {\r\n this.disableProjectFormDetails();\r\n }\r\n }\r\n\r\n //if the opportunityType is set as closed, then a project for this opportunity\r\n //has been created in ORCHESTRATE\r\n //the data pertaining the created project would need to be retrieved from ORCH?\r\n private disableLandingPurchaseOppFormIfClosed() {\r\n this.opportunityForm.get('opportunityTypeId').disable();\r\n this.opportunityForm.get('project').disable();\r\n\r\n this.isProjectCreated = true;\r\n }\r\n\r\n private showSalesOpportunityFields(): void {\r\n var control = new SalesOpportunityFormControl();\r\n\r\n control.name.setValue(this.opportunity ? this.opportunity.name : null);\r\n control.description.setValue(this.opportunity ? this.opportunity.description : null);\r\n control.productIds.setValue(this.opportunity.opportunityProducts ? this.opportunity.opportunityProducts.map(oP => oP.productId) : null);\r\n control.probability.setValue(this.opportunity ? this.opportunity.probability : null);\r\n control.value.setValue(this.opportunity ? this.opportunity.value : null);\r\n control.assignedContactId.setValue(this.opportunity ? this.opportunity.assignedContactId : null);\r\n control.assignedUserAccountId.setValue(this.opportunity ? this.opportunity.assignedContactId : null);\r\n control.opportunityLostTypeId.setValue(this.opportunity ? this.opportunity.opportunityLostTypeId : null);\r\n control.lostTypeDescription.setValue(this.opportunity ? this.opportunity.lostTypeDescription : null);\r\n\r\n control.opportunitySelectionModel.controls.mainCatIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.mainCatIds : null);\r\n control.opportunitySelectionModel.controls.subCatIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.subCatIds : null);\r\n control.opportunitySelectionModel.controls.regionIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.regionIds : null);\r\n control.opportunitySelectionModel.controls.localityIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.localityIds : null);\r\n control.opportunitySelectionModel.controls.dealTypeIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.dealTypeIds : null);\r\n control.opportunitySelectionModel.controls.startingBudget.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.startingBudget : null);\r\n control.opportunitySelectionModel.controls.maximumBudget.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.maximumBudget : null);\r\n control.opportunitySelectionModel.controls.minimumBedrooms.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumBedrooms : null);\r\n control.opportunitySelectionModel.controls.minimumGarages.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumGarages : null);\r\n control.opportunitySelectionModel.controls.minimumBathrooms.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumBathrooms : null);\r\n control.opportunitySelectionModel.controls.roomsIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.roomsIds : null);\r\n control.opportunitySelectionModel.controls.featureIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.featureIds : null);\r\n control.opportunitySelectionModel.controls.description.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.description : null);\r\n\r\n if(this.isEdit) {\r\n control.opportunityTypeId.enable();\r\n control.opportunityTypeId.setValue(this.opportunity ? this.opportunity.opportunityType.id : null);\r\n }\r\n else {\r\n control.opportunityTypeId.setValue(this.opportunityTypesOptions.length > 0 ? this.opportunityTypesOptions[0].value : null);\r\n }\r\n\r\n this.opportunityForm = this.formBuilder.group(control);\r\n\r\n this.validation = new OpportunityValidation(this);\r\n }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n setupForm() {\r\n let initSetup$ = this.allOppCategoryTypes$()\r\n .pipe(\r\n map(result => {\r\n this.populateOppCategoryTypeOptions(result);\r\n return this.route.params;\r\n })\r\n ,switchMap((params: Params) => {\r\n const routeParams = params.value;\r\n\r\n const categoryType: string = routeParams['categoryType'];\r\n const opportunityId: string = routeParams['id'];\r\n\r\n let selectedCategoryType: number = 0;\r\n\r\n this.isEdit = opportunityId != null; // - Returns true if an id was present within the url\r\n\r\n switch(categoryType) {\r\n case \"sales-opp\":\r\n selectedCategoryType = this.CategoryTypeEnums[\"Sales Opportunity\"];\r\n // this.onGetOpportunity(opportunityId);\r\n break;\r\n\r\n case \"land-purchase-opp\":\r\n selectedCategoryType = this.CategoryTypeEnums[\"Land Purchases Opportunity\"];\r\n break;\r\n }\r\n\r\n return of({ opportunityId, selectedCategoryType });\r\n })\r\n ,switchMap(result => {\r\n if (result.selectedCategoryType && result.opportunityId) {\r\n this.selectedCategoryType = result.selectedCategoryType;\r\n\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n return this.onGetOpportunity$(parseInt(result.opportunityId))\r\n .pipe(\r\n map(o=>{\r\n return { opp: o, oppId: result.opportunityId }\r\n })\r\n );\r\n break;\r\n case 2:\r\n return this.getLandPurchaseByOppId$(parseInt(result.opportunityId))\r\n .pipe(\r\n map(o=>{\r\n return { opp: o, oppId: result.opportunityId }\r\n })\r\n );\r\n break;\r\n\r\n default:\r\n return of({ opp: null, oppId: null});\r\n break;\r\n }\r\n }\r\n\r\n return of({ opp: null, oppId: null});\r\n })\r\n )\r\n .subscribe(result => {\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n this.opportunity = result.opp as OpportunityExtended;\r\n this.onGetPropertyDetails(result.oppId);\r\n break;\r\n\r\n case 2:\r\n this.landPurchaseOpp = result.opp as LandPurchaseOpportunity;\r\n break;\r\n }\r\n\r\n\r\n this.initForm();\r\n });\r\n\r\n this.subscriptions$.push(initSetup$);\r\n }\r\n\r\n private getLandPurchaseByOppId$(id: number): Observable {\r\n return this._landPurchaseOpportunityByIdQuery\r\n .watch({id: id})\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).landPurchaseOpportunityByOppId.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n );\r\n }\r\n\r\n initForm() {\r\n this.onGetUsers();\r\n this.onGetOpportunityLostTypes();\r\n\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n this.onGetMainCategories();\r\n this.onGetSubCategoriesOnLoad(this.opportunity.opportunitySelectionModel.mainCatIds,this.opportunity.opportunitySelectionModel.subCatIds);\r\n this.onGetPropertyLocalitiesOnLoad(this.opportunity.opportunitySelectionModel.regionIds,this.opportunity.opportunitySelectionModel.localityIds);\r\n this.onGetPropertyRegions();\r\n this.onGetPropertyDealType();\r\n this.onGetPropertyRooms();\r\n this.onGetPropertyFeatures();\r\n\r\n this.showSalesOpportunityFields();\r\n break;\r\n\r\n case 2:\r\n this.showLandPurchaseOpportunityFields(this.landPurchaseOpp);\r\n this.initGoogleMap();\r\n break;\r\n\r\n default:\r\n this.showSalesOpportunityFields();\r\n break;\r\n }\r\n\r\n\r\n //the category type can only be selected when creating a new opportunity\r\n if (!this.isEdit) {\r\n this.opportunityForm.get('opportunityCategoryTypeId').enable();\r\n }\r\n\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"]) {\r\n this.onGetProducts();\r\n\r\n if (this.isEdit && this.opportunity != null && this.opportunity.assignedContact) {\r\n\r\n let defaultValue = this.populateSelectedContactDetails(this.opportunity.assignedContact, this.selectedCategoryType);\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n assignedContactId: defaultValue\r\n });\r\n }\r\n\r\n this.onGetQuotes(this.opportunity.id);\r\n this.onGetTasks(this.opportunity.id);\r\n }\r\n }\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"]) {\r\n if (this.isEdit && this.landPurchaseOpp != null && this.landPurchaseOpp.seller) {\r\n\r\n let defaultValue = this.populateSelectedContactDetails(this.landPurchaseOpp.seller, this.selectedCategoryType);\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n sellerId: defaultValue\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let contactId = queryParam['contact'];\r\n if (contactId != null) {\r\n\r\n this.contactService.getContact(+contactId).subscribe(\r\n (contact: Contact) => {\r\n let defaultValue: SelectItem = {\r\n label: contact.fullName,\r\n value: +contactId\r\n };\r\n\r\n this.opportunityForm.patchValue({\r\n assignedContactId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n this.onGetNotInterested(this.opportunity.id);\r\n this.isFormInit = true;\r\n this.validation = new OpportunityValidation(this);\r\n }\r\n\r\n private populateSelectedContactDetails(c: Contact, type: number): SelectItem {\r\n let labelText = c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n let defaultValue: SelectItem = null;\r\n\r\n switch(type) {\r\n case 1:\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let salesOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.opportunity.assignedContact.id\r\n };\r\n\r\n defaultValue = this.opportunity.assignedContact.id ? salesOppDefaultSelectItem : null;\r\n break;\r\n\r\n case 2:\r\n // c.organization ? labelText += \" / Company: \" + c.organization.name : \"\";\r\n // c.organization ? labelText += \" / Mob: \" + c.organization.mobilePhoneNumber : \"\";\r\n // c.organization ? labelText += \" / Email: \" + c.organization.email : \"\";\r\n\r\n let landOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.landPurchaseOpp.seller.id\r\n };\r\n\r\n defaultValue = this.landPurchaseOpp.seller.id ? landOppDefaultSelectItem : null;\r\n break;\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n isOpportunityTypeLost() {\r\n const oppTypeIdValue = this.opportunityForm.get('opportunityTypeId').value;\r\n const oppType = this.opportunityTypesOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.Lost)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isOpportunityTypeClosed() {\r\n const oppTypeIdValue = this.opportunityForm.get('opportunityTypeId').value;\r\n const oppType = this.opportunityTypesOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.ClosedSale)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n onGetMainCategories() {\r\n this.propertyService.getMainCategoryTypes().subscribe(\r\n (mainCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n mainCategories.map(p => {\r\n this.MainCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetSubCategories(SelectedMainCat: number[]) {\r\n this.propertyService.getSubCategoryTypes(SelectedMainCat).subscribe(\r\n (subCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.SubCatOptions = [];\r\n subCategories.map(p => {\r\n this.SubCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n\r\n this.cleanSubCategoryValues(subCategories);\r\n }\r\n );\r\n }\r\n\r\n onGetSubCategoriesOnLoad(SelectedMainCat: number[], selectedSubCats: number[]) {\r\n this.propertyService.getSubCategoryTypes(SelectedMainCat).subscribe(\r\n (subCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.SubCatOptions = [];\r\n subCategories.map(p => {\r\n this.SubCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n\r\n\r\n\r\n this.cleanSubCategoryValuesOnLoad(selectedSubCats);\r\n }\r\n );\r\n }\r\n\r\n cleanSubCategoryValuesOnLoad(subCategories: number[]) {\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').setValue(subCategories);\r\n }\r\n\r\n cleanSubCategoryValues(subCategories: PropertyCategory[]) {\r\n // Get the current selected sub-categories\r\n var subCatValues = this.opportunityForm.get('opportunitySelectionModel.subCatIds').value;\r\n // Get the sub-categoriy ids retrieved from the database\r\n var subCatIds = subCategories.map(x => x.categoryId);\r\n\r\n var subCatToSelect = subCatIds;//subCatValues.filter(x => subCatIds.includes(x));\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').setValue(subCatToSelect);\r\n }\r\n\r\n onGetPropertyLocalities(SelectedRegions: number[]) {\r\n this.propertyService.getPropertyLocalities(SelectedRegions).subscribe(\r\n (propertyLocalities: PropertyLocality[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.PropertyLocalitiesOptions = [];\r\n propertyLocalities.map(p => {\r\n this.PropertyLocalitiesOptions.push({ label: p.localityName, value: p.localityId });\r\n });\r\n\r\n this.cleanLocalityValues(propertyLocalities);\r\n }\r\n );\r\n }\r\n\r\n cleanLocalityValues(propertyLocalities: PropertyLocality[]) {\r\n // Get the current selected localities from the form\r\n var locValues = this.opportunityForm.get('opportunitySelectionModel.localityIds').value;\r\n // Get the locality ids retrieved from the database\r\n var locIds = propertyLocalities.map(x => x.localityId);\r\n\r\n var locToSelect = locIds;//locValues.filter(x => locIds.includes(x));\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').setValue(locToSelect);\r\n }\r\n\r\n onGetPropertyLocalitiesOnLoad(SelectedRegions: number[],propertyLocaltyIds: number[]) {\r\n this.propertyService.getPropertyLocalities(SelectedRegions).subscribe(\r\n (propertyLocalities: PropertyLocality[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.PropertyLocalitiesOptions = [];\r\n propertyLocalities.map(p => {\r\n this.PropertyLocalitiesOptions.push({ label: p.localityName, value: p.localityId });\r\n });\r\n\r\n this.cleanLocalityValuesOnLoad(propertyLocaltyIds);\r\n }\r\n );\r\n }\r\n\r\n cleanLocalityValuesOnLoad(propertyLocalities: number[]) {\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').setValue(propertyLocalities);\r\n }\r\n\r\n onGetPropertyRegions() {\r\n this.propertyService.getPropertyRegions().subscribe(\r\n (propertyRegions: PropertyRegion[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyRegions.map(p => {\r\n this.PropertyRegionsOptions.push({ label: p.regionName, value: p.regionId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyDealType() {\r\n this.propertyService.getPropertyDealTypes().subscribe(\r\n (propertyDealTypes: PropertyDealType[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyDealTypes.map(p => {\r\n this.PropertyDealTypesOptions.push({ label: p.dealTypeName, value: p.dealTypeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyRooms() {\r\n this.propertyService.getPropertyRooms().subscribe(\r\n (propertyRooms: PropertyAttribute[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyRooms.map(p => {\r\n this.PropertyRoomsOptions.push({ label: p.attributeName, value: p.attributeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyFeatures() {\r\n this.propertyService.getPropertyFeatures().subscribe(\r\n (propertyFeatures: PropertyAttribute[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyFeatures.map(p => {\r\n this.PropertyFeaturesOptions.push({ label: p.attributeName, value: p.attributeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onPostPropertyDetails(oppSelection: OpportunitySelection) {\r\n this.propertyService.postPropertyDetails(oppSelection).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property details has been created.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding property details\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdatePropertyDetails(oppSelection: OpportunitySelection) {\r\n this.propertyService.updatePropertyDetails(oppSelection.opportunityId, oppSelection).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property details has been updated.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating property details\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyDetails(id: number) {\r\n this.propertyService.getPropertyDetails(id).subscribe(\r\n (propertyOppSelection: PropertyOppSelection) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.opportunity.opportunitySelectionModel = propertyOppSelection.oppSelections.oppSelectionModel;\r\n this.Properties = propertyOppSelection.properties;\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n onGetProducts() {\r\n this.productService.getProducts().subscribe(\r\n (products: Product[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n products.map(p => {\r\n this.productsOptions.push({ label: p.name, value: p.id });\r\n });\r\n\r\n if (this.isEdit && this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n productIds: this.opportunity.opportunityProducts.map(oP => oP.productId)\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n onGetQuotes(opportunityId: number){\r\n this.quoteService.getQuotesByOpportunityId(opportunityId).subscribe(\r\n (quotes: Quote[]) => {\r\n this.opportunity.quotes = quotes;\r\n quotes.forEach(element => {\r\n if(element.isSelectedInvoice){\r\n this.isQuoteClosed = true;\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n //-------- TASKS --------\r\n onGetTasks(opportunityId: number) {\r\n // Admins can see everyone's tasks\r\n // if (this.authService.isAdmin()) {\r\n this.taskService.getTasksByOpportunityId(opportunityId).subscribe(\r\n (tasks: Task[]) => {\r\n this.opportunity.tasks = tasks;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n // }\r\n }\r\n\r\n onCompleteTask(task: Task) {\r\n let completedTask = this.opportunity.tasks.find(t => t.id === task.id);\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id; // Actual task\r\n\r\n this.taskService.toggleTaskCompletion(task).subscribe(\r\n (response: Response) => {\r\n // NOTE: The update is made in the API!!!\r\n // Here I am setting the task to complete because the update was successful, so we want the change to be shown to the user\r\n completedTask.isTaskComplete = !completedTask.isTaskComplete;\r\n this.taskService.taskCounterChanged.next();\r\n this.taskService.tasksChanged.next();\r\n\r\n // Only ask for new comm. log if task is complete and is assigned to at least one contact\r\n if (task.contactTasks.length > 0 && completedTask.isTaskComplete)\r\n this.onAskForCommunicationLog(completedTask);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error completing task\", error);\r\n }\r\n );\r\n }\r\n\r\n onAskForCommunicationLog(task: Task) {\r\n let firstContact = task.contactTasks[0].contact;\r\n\r\n this.confirmationService.confirm({\r\n header: 'Communication Log',\r\n message: 'The task has been marked as complete. Would you now like to create a new communication log for ' + firstContact.fullName + '?',\r\n accept: () => {\r\n this.router.navigate(['/contacts', firstContact.id, 'communication-history', 'new']);\r\n }\r\n });\r\n }\r\n\r\n rowStyle(task: Task, rowIndex: number) {\r\n if (task.isTaskComplete)\r\n return \"bg-success\";\r\n\r\n // Is Task Late?\r\n let reminderDate1 = new Date(task.reminderDate);\r\n let now = new Date();\r\n\r\n // If the task is not completed and the reminder date has already passed\r\n if (!task.isTaskComplete && now > reminderDate1)\r\n return \"bg-danger\";\r\n\r\n // Is Task For Today?\r\n let reminderDate = new Date(task.reminderDate).setHours(0, 0, 0, 0);\r\n let todayDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n let reminderDateTime = new Date(task.reminderDate);\r\n let todayDateTime = new Date();\r\n\r\n // If the task is not completed and the reminder date is set for today (but time has not yet passed)\r\n if (!task.isTaskComplete && (todayDate === reminderDate && todayDateTime <= reminderDateTime))\r\n return \"bg-warning\";\r\n\r\n return \"\";\r\n }\r\n\r\n onDeleteTask(task: Task) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Task',\r\n message: 'Are you sure you want to delete this task?',\r\n accept: () => {\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.taskService.deleteTask(task).subscribe(\r\n (response: Response) => {\r\n this.onGetTasks(this.opportunity.id);\r\n // this.taskService.tasksChanged.next();\r\n this.taskService.taskCounterChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting task\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for the task has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n\r\n //-------- END TASKS --------\r\n\r\n onGetOpportunity$(id: number): Observable {\r\n return this.opportunityService.getOpportunity(id)\r\n .pipe(\r\n map((result: OpportunityExtended) => {\r\n return result;\r\n })\r\n );\r\n }\r\n\r\n\r\n onGetOpportunityLostTypes() {\r\n this.opportunityLostTypeService.getOpportunityLostTypes().subscribe(\r\n (opportunityLostTypes: OpportunityLostType[]) => {\r\n // Store retrieved opportunity types in the opportunityLostTypesOptions select list\r\n opportunityLostTypes.map(cT => this.opportunityLostTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n let defaultValue = null;\r\n\r\n if (this.isEdit) {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"])\r\n defaultValue = this.opportunity.opportunityLostType ? this.opportunity.opportunityLostTypeId : null;\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"])\r\n defaultValue = this.landPurchaseOpp.opportunity.opportunityLostType ? this.landPurchaseOpp.opportunity.opportunityLostType.id : null;\r\n }\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n opportunityLostTypeId: defaultValue\r\n });\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lost opportunity types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Store retrieved users in the usersOptions select list\r\n users.map(u => this.assignedUserOptions.push({ label: u.fullName, value: u.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.authService.applicationProfileUser().id;\r\n else {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"])\r\n defaultValue = this.opportunity.assignedUserAccountId ? this.opportunity.assignedUserAccountId : this.authService.applicationProfileUser().id;\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"])\r\n defaultValue = this.landPurchaseOpp.opportunity.assignedUserAccount ? this.landPurchaseOpp.opportunity.assignedUserAccount.id : this.authService.applicationProfileUser().id;\r\n }\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n assignedUserAccountId: defaultValue\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n let labelText =\r\n cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.assignedContactOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetViewings(contactId: number) {\r\n this.opportunityService.getViewingsByContactId(contactId).subscribe(\r\n (viewed: number[]) => {\r\n this.Viewings = viewed;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving viewed properties\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetNotInterested(oppId: number) {\r\n this.opportunityService.getPropertiesNotInterested(oppId).subscribe(\r\n (notInterested: number[]) => {\r\n this.PropNotInterested = notInterested;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving not interested properties\", error);\r\n }\r\n );\r\n }\r\n\r\n onAddOpportunity(newOpportunity: Opportunity, event) {\r\n this.opportunityService.addOpportunity(newOpportunity).subscribe(\r\n (response: Response) => {\r\n let oppSelection = new OpportunitySelection();\r\n oppSelection.opportunityId = (response).id;\r\n oppSelection.oppSelectionModel = newOpportunity.opportunitySelectionModel;\r\n this.onPostPropertyDetails(oppSelection);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + newOpportunity.name + \" has been created.\");\r\n\r\n // this.quoteModal(response, event, oppSelection);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n private quoteModal(response: any, event: any, oppSelection: OpportunitySelection): void {\r\n this.confirmationService.confirm({\r\n header: 'New Quote',\r\n message: 'Would you like to create a quote for this opportunity?',\r\n accept: () => {\r\n this.router.navigate(['/opportunities','quote',(response).id, 'new']);\r\n },\r\n reject: () => {\r\n if (event == \"ToList\"){\r\n this.router.navigate(['/opportunities/']);\r\n }\r\n else if (event == \"Refresh\") {\r\n let uri = \"/opportunities/\" + oppSelection.opportunityId + \"/edit\";\r\n this.router.navigate([uri]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeMainCatogory() {\r\n var selectedMainCat = this.opportunityForm.get('opportunitySelectionModel.mainCatIds').value;\r\n if (selectedMainCat != null && selectedMainCat.length > 0) {\r\n this.onGetSubCategories(selectedMainCat);\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').enable();\r\n }\r\n else {\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').disable();\r\n }\r\n }\r\n\r\n onChangeRegion() {\r\n var selectedReg = this.opportunityForm.get('opportunitySelectionModel.regionIds').value;\r\n if (selectedReg != null && selectedReg.length > 0) {\r\n this.onGetPropertyLocalities(selectedReg);\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').enable();\r\n }\r\n else {\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').disable();\r\n }\r\n\r\n }\r\n\r\n onUpdateOpportunity(newOpportunity: Opportunity, event) {\r\n\r\n this.opportunityService.updateOpportunity(newOpportunity).subscribe(\r\n (response: Response) => {\r\n let oppSelection = new OpportunitySelection();\r\n oppSelection.opportunityId = newOpportunity.id;\r\n oppSelection.oppSelectionModel = newOpportunity.opportunitySelectionModel;\r\n this.onUpdatePropertyDetails(oppSelection);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + newOpportunity.name + \" has been updated.\");\r\n\r\n if (event == \"ToList\"){\r\n this.router.navigate(['/opportunities/']);\r\n }\r\n else if (event == \"Refresh\") {\r\n window.location.reload();\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit(event) {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"]) {\r\n this.submitSalesOpportunity();\r\n }\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"]) {\r\n // this.populateProjectData();\r\n this.opportunityForm = this.formBuilder.sanitizeFormValues(this.opportunityForm);\r\n\r\n\r\n this.submitLandPurchaseOpportunity();\r\n }\r\n }\r\n\r\n private populateProjectData(): void {\r\n let project = this.opportunityForm.get('project') as FormGroup;\r\n\r\n let plotDescription = this.opportunityForm.get('plotDescription');\r\n let details = this.opportunityForm.get('details');\r\n let address = this.opportunityForm.get('address') as FormGroup;\r\n let sellingPrice = this.opportunityForm.get('sellingPrice');\r\n\r\n address.removeControl(\"id\");\r\n\r\n project.get('proposalDescription').setValue(`${plotDescription.value} ${details.value}`);\r\n\r\n project.get('address').setValue(address.getRawValue());\r\n project.get('sellingPrice').setValue(sellingPrice.value);\r\n }\r\n\r\n private submitSalesOpportunity(): void {\r\n let newOpportunity = this.formBuilder.sanitizeFormValues(this.opportunityForm).getRawValue();\r\n\r\n // This is to pass correct value (contact id) from the autocomplete selection and to sanitize it\r\n // (Eg: writing random string in search and submit form would return an api error response)\r\n if (newOpportunity.assignedContactId && newOpportunity.assignedContactId.value)\r\n newOpportunity.assignedContactId = newOpportunity.assignedContactId.value;\r\n else\r\n newOpportunity.assignedContactId = null;\r\n\r\n newOpportunity.opportunityProducts = this.populateOpportunityProducts(newOpportunity.productIds);\r\n\r\n if (this.isEdit) {\r\n newOpportunity.id = this.opportunity.id; // - Set id of edited opportunity to its original id, same with externalId and createdById\r\n newOpportunity.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateOpportunity(newOpportunity, event);\r\n }\r\n else {\r\n newOpportunity.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddOpportunity(newOpportunity, event);\r\n }\r\n }\r\n\r\n private submitLandPurchaseOpportunity(): void {\r\n if (this.opportunityForm.valid) {\r\n this.opportunityForm = this.formBuilder.sanitizeFormValues(this.opportunityForm);\r\n\r\n const MUT_VARS = {\r\n item: this.opportunityForm.getRawValue()\r\n };\r\n\r\n //the dropdown used is storing it as {label, value} object\r\n MUT_VARS.item.sellerId = MUT_VARS.item.sellerId.value;\r\n\r\n //if we are create a new land purchase opportunity, we don't have to send data for the project\r\n MUT_VARS.item.project = null;\r\n\r\n if (!this.isEdit) {\r\n let mutation$ = this._createLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).createLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((createdLandPurchaseOpportunity: LandPurchaseOpportunity) => {\r\n this.toastService.createSuccessMessage(\"Success\", `Land Purchase Opportunity ${createdLandPurchaseOpportunity.code} has been successfully created!`);\r\n this.router.navigate([\"/opportunities\", \"list\"]);\r\n })\r\n );\r\n }\r\n\r\n else {\r\n\r\n const MUT_VARS = {\r\n item: this.opportunityForm.getRawValue()\r\n };\r\n\r\n MUT_VARS.item.sellerId = MUT_VARS.item.sellerId.value;\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n\r\n if (this.isProjectCreated === false) {\r\n this.populateProjectData();\r\n\r\n let selectedProjectManager = this.opportunityForm.get('project').get('projectManagerId');\r\n\r\n let projectManagerData = this.allAccountProfiles.find(a => a.subjectId === selectedProjectManager.value);\r\n\r\n let projectManager = {\r\n subjectId: projectManagerData.subjectId,\r\n firstName: projectManagerData.firstName,\r\n lastName: projectManagerData.lastName\r\n };\r\n\r\n\r\n MUT_VARS.item.project = this.opportunityForm.get('project').value\r\n\r\n delete MUT_VARS.item.project.projectManagerId;\r\n\r\n MUT_VARS.item.project.projectManager = projectManager;\r\n\r\n console.log(\"CLOSED --> \", MUT_VARS);\r\n }\r\n\r\n else {\r\n MUT_VARS.item.project = null;\r\n }\r\n\r\n }\r\n else {\r\n MUT_VARS.item.project = null;\r\n console.log(\"NOT CLOSED --> \", MUT_VARS);\r\n }\r\n\r\n\r\n\r\n let mutation$ = this._updateLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).updateLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((updatedLandPurchaseOpportunity: LandPurchaseOpportunity) => {\r\n this.landPurchaseOpp = updatedLandPurchaseOpportunity;\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n this.disableLandingPurchaseOppFormIfClosed();\r\n }\r\n\r\n this.toastService.createSuccessMessage(\"Success\", `Land Purchase Opportunity ${updatedLandPurchaseOpportunity.code} successfully updated!`);\r\n this.router.navigate([\"/opportunities\", \"list\"]);\r\n })\r\n );\r\n }\r\n }\r\n else {\r\n this._formUtil.markFormControlsAsTouched(this.opportunityForm);\r\n }\r\n }\r\n\r\n populateOpportunityProducts(assignedProductIds: number[]) {\r\n let opportunityProducts: {}[] = [];\r\n\r\n if (assignedProductIds != null && assignedProductIds.length > 0) {\r\n for (let id of assignedProductIds) {\r\n let opportunityProduct = {\r\n productId: id,\r\n opportunityId: this.opportunity.id,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n opportunityProducts.push(opportunityProduct);\r\n }\r\n }\r\n\r\n return opportunityProducts;\r\n }\r\n\r\n\r\n onRowRender(rowData){\r\n let rowFormGroup = rowData as Quote;\r\n if(rowFormGroup.isSelectedInvoice == true) return 'isSelectedInvoice';\r\n else return '';\r\n }\r\n\r\n onProjectStartDateChange(event: any): void {\r\n let projectStartDate = this.opportunityForm.get('project').get('startDate');\r\n let projectDueDate = this.opportunityForm.get('project').get('dueDate');\r\n\r\n if (event != null) {\r\n projectDueDate.enable();\r\n\r\n this.minDueDate = new Date(event);\r\n\r\n //if start date is gt the due date, reset it so that a waning message is showm\r\n if (projectDueDate.value != null) {\r\n if (new Date(projectStartDate.value).getTime() > new Date(projectDueDate.value).getTime()) {\r\n projectDueDate.setValue(null);\r\n projectDueDate.markAsTouched();\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //google maps\r\n initGoogleMap() {\r\n let lat = this.isEdit ?\r\n this.landPurchaseOpp.address.locationLat :\r\n GoogleMaps.DefaultLocationLat;\r\n\r\n let lng = this.isEdit ?\r\n this.landPurchaseOpp.address.locationLng :\r\n GoogleMaps.DefaultLocationLng;\r\n\r\n let location = this.isEdit ?\r\n this.landPurchaseOpp.address.addressLine1 :\r\n GoogleMaps.DefaultLocation;\r\n\r\n if (lat && lng) {\r\n this.options = {\r\n center: { lat: lat, lng: lng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n position: { lat: lat, lng: lng },\r\n title: location,\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine1: location,\r\n locationLat: lat,\r\n locationLng: lng\r\n }\r\n });\r\n } else {\r\n this.options = {\r\n center: { lat: GoogleMaps.DefaultLocationLat, lng: GoogleMaps.DefaultLocationLng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n\r\n\r\n }\r\n }\r\n\r\n initGoogleMapSearch() {\r\n if (!this.isGoogleMapsSearchInit) {\r\n let input = this.gMapsSearchElementRef.nativeElement;\r\n\r\n let options = {\r\n componentRestrictions: { country: \"mt\" },\r\n RankBy: 'PROMINENCE'\r\n };\r\n\r\n let autocomplete = new google.maps.places.Autocomplete(input, options);\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n let place = autocomplete.getPlace();\r\n this.onMapPlaceChanged(place);\r\n });\r\n\r\n this.isGoogleMapsSearchInit = true;\r\n }\r\n }\r\n\r\n onMapPlaceChanged(place) {\r\n if(place.address_components) {\r\n let streetnumberItem = place.address_components.find(x => x.types[0] === 'street_number');\r\n let streetItem = place.address_components.find(x => x.types[0] === 'route');\r\n let localityItem = place.address_components.find(x => x.types[0] === 'locality');\r\n let countryItem = place.address_components.find(x => x.types[0] === 'country');\r\n\r\n this.opportunityForm.patchValue({\r\n addressLine1: streetnumberItem ? streetnumberItem.long_name : \"\",\r\n addressLine3: streetItem ? streetItem.long_name : \"\",\r\n addressLine4: localityItem ? localityItem.long_name : \"\",\r\n country: countryItem ? countryItem.long_name : \"\",\r\n });\r\n\r\n }\r\n\r\n if (place.geometry) {\r\n let lat = place.geometry.location.lat();\r\n let lng = place.geometry.location.lng();\r\n let locationName = place.formatted_address;\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n title: locationName,\r\n position: { lat: lat, lng: lng },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n this.gmap.map.panTo({ lat: lat, lng: lng });\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine3: locationName,\r\n locationLat: lat,\r\n locationLng: lng\r\n }\r\n });\r\n }\r\n else {\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n this.opportunityForm.patchValue({\r\n address: {\r\n locationLat: null,\r\n locationLng: null\r\n }\r\n });\r\n }\r\n\r\n this.ref.detectChanges();\r\n }\r\n\r\n handleMapClick(event){\r\n var location = event.latLng;\r\n\r\n if (this.marker) {\r\n this.marker.setPosition(location);\r\n } else {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.gmap.map\r\n });\r\n }\r\n\r\n this.gmap.map.panTo(location);\r\n\r\n\r\n let address$ = this.geocodeLatLng(location)\r\n .subscribe(result => {\r\n if (result.length === 3) {\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine2: result[0].long_name, //street name\r\n addressLine3: result[1].long_name , //locality,\r\n country: result[2].long_name , //country,\r\n\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n }\r\n });\r\n }\r\n else if (result.length === 4) {\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine2: result[0].long_name + \", \" + result[1].long_name, //street name\r\n addressLine3: result[2].long_name, //locality,\r\n country: result[3].long_name , //country,\r\n\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.subscriptions$.push(address$);\r\n }\r\n\r\n geocodeLatLng(location: any) : Observable {\r\n\r\n return new Observable((observer) => {\r\n const geocoder = new google.maps.Geocoder;\r\n\r\n const latlng = {lat: location.lat(), lng: location.lng()};\r\n geocoder.geocode({'location': latlng}, function(results, status) {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n const address = results[0].address_components\r\n observer.next(address);\r\n observer.complete();\r\n } else {\r\n observer.error(\"No result found\");\r\n observer.complete();\r\n }\r\n } else {\r\n observer.error(\"Geocoder failed due to: \" + status);\r\n observer.complete();\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Update Quote
\\r\\n
New Quote
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n To:\\r\\n
\\r\\n {{organization.name}}
\\r\\n {{organization.addressLine1}}
\\r\\n {{organization.addressLine2}}
\\r\\n {{organization.addressLine3}}
\\r\\n {{organization.addressLine4}}
\\r\\n P: {{organization.mobilePhoneNumber}}
\\r\\n
\\r\\n

\\r\\n Invoice Date:{{quote.createdOn | date:'dd/MM/yyyy' }}\\r\\n

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

Items

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Add\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n You have no items set yet!\\r\\n
\\r\\n Click the add button. Make sure you click Submit!\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n At least one quote item is required.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\" formArrayName=\\\"quoteItems\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
DescriptionQuantityUnit PriceTotal PriceRemove
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Sub Total :
Discount :
\\r\\n
\\r\\n \\r\\n €\\r\\n
\\r\\n
SubTotal Less Discount :
VAT Rate :
\\r\\n
\\r\\n \\r\\n %\\r\\n
\\r\\n
Total VAT :

Grand Total :

\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n View PDF\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktcXVvdGVzL29wcG9ydHVuaXR5LXF1b3RlLW1hbmFnZS9vcHBvcnR1bml0eS1xdW90ZS1tYW5hZ2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormArray, FormControl } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { QuoteService } from \"../../../shared/services/quote.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { Quote} from \"../../../shared/models/quote.model\";\r\n\r\nimport { QuoteItem } from 'app/views/shared/models/quote-item.model';\r\nimport { QuoteItemFormControls } from './quote-item-form-control';\r\nimport { SelectItem, ConfirmationService } from 'primeng/primeng';\r\nimport { OpportunityService } from 'app/views/shared/services/opportunity.service';\r\nimport { Opportunity } from 'app/views/shared/models/opportunity.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { element } from '@angular/core/src/render3';\r\nimport { FormUtilityService } from 'app/shared/form-utility.service';\r\nimport { Organization } from 'app/views/shared/models/organization.model';\r\n\r\n@Component({\r\n selector: 'app-opportunity-quote-manage',\r\n templateUrl: './opportunity-quote-manage.component.html',\r\n styleUrls: ['./opportunity-quote-manage.component.scss']\r\n})\r\nexport class OpportunityQuoteManageComponent implements OnInit {\r\n\r\n\r\n quoteForm: FormGroup; // - Stores the quote form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a quote if true and add a new quote if false\r\n\r\n quotes: Quote[] = []; // - Stores all quotes retrieved from db\r\n quote: Quote = new Quote(); // - Stores Quote to populate form with a new / existing Quote's values\r\n selectedPrincipal: string; //- Stores the current Principal Before/After to detect any changes and revert if needed\r\n\r\n isModalShown: boolean = false;\r\n opportunityId: number;\r\n\r\n organization: Organization = new Organization(); // used to display organization details in quote\r\n\r\n public voyageTypeOptions: SelectItem[] = [];\r\n public deliveryTermOptions: SelectItem[] = [];\r\n public destinationOptions: SelectItem[]=[];\r\n public chargeOptions: SelectItem[] = [];\r\n public principalOptions: SelectItem[] = [];\r\n public hubOptions: SelectItem[] = [];\r\n\r\n //** DatePicker */\r\n minDate: Date = new Date(); // - Can't select a date before the current day\r\n dateRange: string = this.minDate.getFullYear() + ':' + (this.minDate.getFullYear() + 10); // - 10 Year Range\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private quoteService: QuoteService,\r\n private opportunityService: OpportunityService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private confirmationService: ConfirmationService,\r\n private _formUtil: FormUtilityService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n get quoteItems(): FormArray { return this.quoteForm.get('quoteItems') as FormArray; };\r\n get quoteDeliveryAddresses(): FormArray { return this.quoteForm.get('quoteDeliveryAddresses') as FormArray; };\r\n\r\n\r\n addItem() {\r\n\r\n var newQuoteItem = new QuoteItem(0, null, 0,0,0,this.quote.id);\r\n this.quote.quoteItems.push(newQuoteItem);\r\n this.quoteItems.push(this.formBuilder.group(this.populateQuoteItem(newQuoteItem)));\r\n }\r\n\r\n\r\n deleteItemByIndex(index: number) {\r\n this.quote.quoteItems.splice(index, 1);\r\n this.quoteItems.removeAt(index);\r\n }\r\n\r\n setItems(quoteItems: QuoteItemFormControls[]) {\r\n const quoteItemsFormGroups = quoteItems.map(r => this.formBuilder.group(r));\r\n const quoteItemFormArray = this.formBuilder.array(quoteItemsFormGroups, [Validators.required]);\r\n this.quoteForm.setControl('quoteItems', quoteItemFormArray);\r\n }\r\n\r\n populateQuoteItems(quoteItems: QuoteItem[]) {\r\n let quoteItemsFormControls: QuoteItemFormControls[] = [];\r\n\r\n quoteItems.map(\r\n r => {\r\n quoteItemsFormControls.push(this.populateQuoteItem(r));\r\n }\r\n );\r\n\r\n return quoteItemsFormControls;\r\n }\r\n\r\n populateQuoteItem(r: QuoteItem){\r\n let quoteItemFormControl = new QuoteItemFormControls();\r\n quoteItemFormControl.id.setValue(r.id);\r\n quoteItemFormControl.quoteId.setValue(r.quoteId? r.quoteId:null);\r\n\r\n quoteItemFormControl.unitPrice.setValue(r.unitPrice ? r.unitPrice : null);\r\n quoteItemFormControl.quantity.setValue(r.quantity ? r.quantity : null);\r\n quoteItemFormControl.description.setValue(r.description ? r.description : null);\r\n quoteItemFormControl.total.setValue(r.total ? r.total : null);\r\n\r\n return quoteItemFormControl;\r\n }\r\n\r\n\r\n removeItem(index: number) {\r\n this.deleteItemByIndex(index);\r\n this.onItemsAmountChange();\r\n this.onGrandTotalChange();\r\n\r\n if(this.quoteItems.length == 0){\r\n //Clean up values\r\n this.quoteForm.patchValue({\r\n subTotal: 0,\r\n discount:0,\r\n subTotalLessDiscount:0,\r\n totalVat:0,\r\n grandTotal:0\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n onValueChange(type,value){\r\n\r\n switch (type) {\r\n case 'item':\r\n this.onItemsAmountChange();\r\n break;\r\n\r\n case 'discount':\r\n this.onDiscountAmountChange(value);\r\n break;\r\n\r\n case 'vat':\r\n this.onVatAmountChange(value);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n this.onGrandTotalChange();\r\n\r\n }\r\n\r\n onItemsAmountChange(){\r\n\r\n var subTotal = 0;\r\n\r\n this.quoteItems.controls.forEach(element => {\r\n\r\n let elFormGroup = element as FormGroup;\r\n\r\n let quantity = elFormGroup.get('quantity').value;\r\n let unitPrice = elFormGroup.get('unitPrice').value;\r\n\r\n\r\n let total = +(quantity * unitPrice).toFixed(2);\r\n\r\n elFormGroup.controls['total'].setValue(total);\r\n\r\n\r\n subTotal = subTotal + total;\r\n\r\n });\r\n\r\n subTotal = +subTotal.toFixed(2);\r\n\r\n this.quoteForm.patchValue({\r\n subTotal: subTotal\r\n });\r\n\r\n //this.onGrandTotalChange();\r\n\r\n\r\n }\r\n\r\n onDiscountAmountChange(discount: number){\r\n\r\n let subtotal = this.quoteForm.get('subTotal').value;\r\n let subTotalLessDiscount = subtotal - discount;\r\n\r\n this.quoteForm.patchValue({\r\n subTotalLessDiscount: subTotalLessDiscount\r\n });\r\n return subTotalLessDiscount;\r\n }\r\n\r\n\r\n onVatAmountChange(vat : number){\r\n\r\n let subTotalLessDiscount = this.quoteForm.get('subTotalLessDiscount').value;\r\n let totalVat =+((vat/100) * subTotalLessDiscount).toFixed(2);\r\n\r\n this.quoteForm.patchValue({\r\n totalVat: totalVat\r\n });\r\n\r\n return totalVat;\r\n\r\n }\r\n\r\n onGrandTotalChange(){\r\n\r\n\r\n let subTotalLessDiscount = this.quoteForm.get('subTotalLessDiscount').value;\r\n subTotalLessDiscount = this.onDiscountAmountChange(this.quoteForm.get('discount').value);\r\n\r\n\r\n let totalVat = this.quoteForm.get('totalVat').value;\r\n totalVat = this.onVatAmountChange(this.quoteForm.get('vat').value)\r\n\r\n\r\n this.quoteForm.patchValue({\r\n grandTotal: (totalVat + subTotalLessDiscount).toFixed(2)\r\n });\r\n }\r\n\r\n\r\n\r\n setupForm() {\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const opportunityId = params['opportunityId'];\r\n const quoteId = params['id'];\r\n this.isEdit = quoteId != null;\r\n\r\n if (this.isEdit) {\r\n\r\n this.quoteService.getQuote(quoteId).subscribe(\r\n (quote: Quote) => {\r\n this.quote = quote;\r\n this.initForm(this.quote.opportunityId);\r\n this.setItems(this.populateQuoteItems(this.quote.quoteItems));\r\n\r\n if(this.quote.isSelectedInvoice || this.quote.status == \"D\")\r\n {\r\n\r\n setTimeout(()=> {\r\n this.quoteForm.disable();\r\n })\r\n\r\n }\r\n\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving quote\", error);\r\n }\r\n )\r\n\r\n\r\n\r\n // Redirect to 404 page if the selected quote could not be found\r\n if (!this.quote) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n else{\r\n // Create new quote using the opportunityId passed\r\n this.initForm(opportunityId);\r\n }\r\n }\r\n );\r\n }\r\n\r\n initForm(opportunityId:number) {\r\n\r\n var today = new Date();\r\n var thisMonth = today.getMonth();\r\n var nextMonthDate = new Date(today.setMonth(thisMonth + 1));\r\n\r\n this.quoteForm = this.formBuilder.group({\r\n id:this.formBuilder.control(this.quote.id),\r\n opportunityId:this.formBuilder.control(opportunityId),\r\n reference: this.formBuilder.control(this.quote.reference),\r\n version: this.formBuilder.control(this.quote.version),\r\n validUntil: this.formBuilder.control( this.quote.validUntil ? new Date(this.quote.validUntil): nextMonthDate),\r\n quoteItems: this.formBuilder.array([], [Validators.required]),\r\n isSelectedInvoice: this.formBuilder.control(this.quote.isSelectedInvoice),\r\n subTotal: this.formBuilder.control(this.quote.subTotal),\r\n discount: this.formBuilder.control(this.quote.discount),\r\n subTotalLessDiscount: this.formBuilder.control(this.quote.subTotalLessDiscount),\r\n vat: this.formBuilder.control(this.quote.vat? this.quote.vat :18),\r\n totalVat: this.formBuilder.control(this.quote.totalVat),\r\n grandTotal: this.formBuilder.control(this.quote.grandTotal),\r\n });\r\n this.isFormInit = true;\r\n\r\n this.onGetClientDetails(opportunityId);\r\n\r\n return true;\r\n }\r\n\r\n // onGetQuoteItems(agentItem: string){\r\n // if(agentItem != null){\r\n // this.quoteService.getItems(agentItem).subscribe(\r\n // (charges: Item[]) => {\r\n\r\n // this.chargeOptions = []; // empty Item Items before populating new ones\r\n // charges.map(cT => this.chargeOptions.push({ label: \"(\" + cT.code + \") \" + cT.name , value: cT.code }));\r\n\r\n // this.quoteForm.patchValue({\r\n // quoteItems: this.quote.quoteItems\r\n // });\r\n\r\n // },\r\n // (error: Response) => {\r\n // this.toastService.createErrorMessage(\"Error retrieving Quote Items\", error);\r\n // }\r\n // );\r\n // }\r\n // }\r\n\r\n\r\n onGetClientDetails(opportunityId: number){\r\n\r\n this.opportunityService.getOpportunity(opportunityId).subscribe(\r\n (opportunity: any) => {\r\n\r\n\r\n\r\n this.organization = opportunity? opportunity.assignedContact? opportunity.assignedContact ? opportunity.assignedContact.organization: \"\" : \"\" : \"\";\r\n\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving quote\", error);\r\n }\r\n )\r\n }\r\n\r\n onAddQuote(newQuote: Quote) {\r\n this.quoteService.addQuote(newQuote).subscribe(\r\n (response: Response) => {\r\n this.quoteService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The quote \" + newQuote.reference + \" has been created.\");\r\n this.router.navigate(['/opportunities','quote',(response).id, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding quote\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateQuote(newQuote: Quote) {\r\n this.quoteService.updateQuote(newQuote).subscribe(\r\n (response: Response) => {\r\n this.quoteService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The quote \" + newQuote.reference + \" has been updated.\");\r\n this.router.navigate(['/opportunities','quote',(response).id, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating quote\", error);\r\n }\r\n );\r\n }\r\n\r\n onSaveInvoice(quote: Quote) {\r\n this.quoteService.quoteToInvoice(quote).subscribe(\r\n (response: Response) => {\r\n this.quoteService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The quote \" + quote.reference + \" has been converted to invoice.\");\r\n this.router.navigate(['/opportunities',(response).opportunityId, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating quote\", error);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n onSubmit() {\r\n if (this.quoteForm.valid) {\r\n let newQuote = this.formBuilder.sanitizeFormValues(this.quoteForm).value;\r\n\r\n if (this.isEdit) {\r\n newQuote.id = this.quote.id; // - Set id of edited quote to its original id\r\n newQuote.createdByUserAccountId = this.quote.createdByUserAccountId; // - Need createdById of original quote to check if it is a prepopulated type\r\n newQuote.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateQuote(newQuote);\r\n }\r\n else {\r\n newQuote.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddQuote(newQuote);\r\n }\r\n } else {\r\n this._formUtil.markFormControlsAsTouched(this.quoteForm);\r\n }\r\n }\r\n\r\n onQuoteToInvoice() {\r\n this.confirmationService.confirm({\r\n header: 'Quote To Invoice',\r\n message: 'Are you sure you want to save changes and convert this quote to invoice',\r\n accept: () => {\r\n\r\n let newQuote = this.formBuilder.sanitizeFormValues(this.quoteForm).value;\r\n newQuote.id = this.quote.id; // - Set id of edited quote to its original id\r\n newQuote.createdByUserAccountId = this.quote.createdByUserAccountId; // - Need createdById of original quote to check if it is a prepopulated type\r\n newQuote.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onSaveInvoice(newQuote);\r\n\r\n },\r\n reject: () => {\r\n //this.router.navigate(['/contacts/']);\r\n }\r\n });\r\n }\r\n\r\n onGeneratePdf() {\r\n this.confirmationService.confirm({\r\n header: 'Generate PDF?',\r\n message: 'Are you sure you want to create the PDF for this Quote?',\r\n accept: () => {\r\n\r\n let newQuote = this.formBuilder.sanitizeFormValues(this.quoteForm).value;\r\n newQuote.id = this.quote.id; // - Set id of edited quote to its original id\r\n newQuote.createdByUserAccountId = this.quote.createdByUserAccountId; // - Need createdById of original quote to check if it is a prepopulated type\r\n newQuote.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onSubmitGeneratePdf(newQuote);\r\n\r\n },\r\n reject: () => {\r\n //this.router.navigate(['/contacts/']);\r\n }\r\n });\r\n }\r\n\r\n quotePdfUrl() {\r\n return `${this.quoteService.url}${this.quote.id}/pdf?access_token=${this.authService.getUser().access_token}`;\r\n }\r\n\r\n onSubmitGeneratePdf(quote: Quote) {\r\n this.quoteService.generatePdf(quote.id).subscribe(\r\n (response: Response) => {\r\n\r\n //this.quoteService.typesChanged.next(); // Let list component know of changes\r\n //this.toastService.createSuccessMessage(\"Success\", \"The quote \" + quote.reference + \" has been converted to booking.\");\r\n //this.router.navigate(['/opportunities',(response).opportunityId, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating quote\", error);\r\n }\r\n );\r\n }\r\n\r\n // onSubmitGeneratePdf(quote: Quote) {\r\n // this.quoteService.quoteToBooking(quote).subscribe(\r\n // (response: Response) => {\r\n // this.quoteService.typesChanged.next(); // Let list component know of changes\r\n // this.toastService.createSuccessMessage(\"Success\", \"The quote \" + quote.reference + \" has been converted to booking.\");\r\n // this.router.navigate(['/opportunities',(response).opportunityId, 'edit']);\r\n // },\r\n // (error: Response) => {\r\n // this.toastService.createErrorMessage(\"Error updating quote\", error);\r\n // }\r\n // );\r\n // }\r\n\r\n cloneQuote() {\r\n this.confirmationService.confirm({\r\n header: 'Cloning Quote',\r\n message: 'Are you sure you want to save and clone this quote? Please make sure to change reference number after cloning.',\r\n accept: () => {\r\n\r\n let quoteToClone = this.formBuilder.sanitizeFormValues(this.quoteForm).value;\r\n this.onUpdateQuote(quoteToClone);\r\n\r\n setTimeout(()=> {\r\n this.quoteService.cloneQuote(quoteToClone).subscribe(\r\n (response: Response) => {\r\n this.quoteService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The quote \" + this.quote.reference + \" has been cloned.\");\r\n this.router.navigate(['/opportunities','quote',(response).id, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding quote\", error);\r\n }\r\n )\r\n },200);\r\n\r\n },\r\n reject: () => {\r\n //this.router.navigate(['/contacts/']);\r\n }\r\n });\r\n }\r\n\r\n\r\n}\r\n\r\n","import { FormControl, Validators, FormGroup } from \"@angular/forms\";\r\n\r\nexport class QuoteItemFormControls {\r\n constructor(\r\n public id: FormControl = new FormControl(null),\r\n public description: FormControl = new FormControl(null),\r\n public unitPrice: FormControl = new FormControl(null),\r\n public quantity: FormControl = new FormControl(null),\r\n public total: FormControl = new FormControl(null),\r\n public quoteId: FormControl = new FormControl()\r\n ) { }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Send Quote By Email

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktcXVvdGVzL29wcG9ydHVuaXR5LXF1b3RlLXNlbmQtZW1haWwvb3Bwb3J0dW5pdHktcXVvdGUtc2VuZC1lbWFpbC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\nimport { CustomFormBuilder } from 'app/views/shared/classes/CustomFormBuilder';\r\nimport { AuthService } from 'app/views/auth/auth.service';\r\nimport { ToastService } from 'app/views/shared/services/toast.service';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { QuoteService } from 'app/views/shared/services/quote.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Quote } from 'app/views/shared/models/quote.model';\r\nimport { AutoComplete, SelectItem } from 'primeng/primeng';\r\nimport { Contact } from 'app/views/shared/models/contact.model';\r\nimport { ContactService } from 'app/views/shared/services/contact.service';\r\nimport { ContactSearchItem } from '../../../shared/models/contact-search-item.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-opportunity-quote-send-email',\r\n templateUrl: './opportunity-quote-send-email.component.html',\r\n styleUrls: ['./opportunity-quote-send-email.component.scss']\r\n})\r\nexport class OpportunityQuoteSendEmailManageComponent implements OnInit {\r\n opportunityQuoteSendEmailForm: FormGroup; // - Stores the opportunityQuoteSendEmail form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a opportunityQuoteSendEmail if true and add a new opportunityQuoteSendEmail if false\r\n quoteId: number = 0; // - Quote Id which need to send email\r\n isModalShown: boolean = false;\r\n\r\n toOptions: SelectItem[] = [];\r\n toCCOptions: SelectItem[] = [];\r\n toBCCOptions: SelectItem[] = [];\r\n\r\n recipientsOptions: any;\r\n newEmailRecipient:string;\r\n\r\n showCC = false;\r\n showBCC = false;\r\n\r\n @ViewChild('recipientsAutoComplete') private recipientsAutoComplete: AutoComplete;\r\n @ViewChild('recipientsCCAutoComplete') private recipientsCCAutoComplete: AutoComplete;\r\n @ViewChild('recipientsBCCAutoComplete') private recipientsBCCAutoComplete: AutoComplete;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private contactService: ContactService,\r\n public _quoteService: QuoteService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n onAutoCompleteEnterKey(event, type:string) {\r\n\r\n if(this.newEmailRecipient){\r\n\r\n let newContactRecipient: Contact = new Contact();\r\n newContactRecipient.email = this.newEmailRecipient\r\n newContactRecipient.fullName = this.newEmailRecipient\r\n let labelText= this.mapContactRecipient(newContactRecipient);\r\n let newRecipient = {label: labelText, value: newContactRecipient};\r\n\r\n switch(type){\r\n case \"bcc\":\r\n //Checking if there is already an entry for the input\r\n let currentBCCList = this.opportunityQuoteSendEmailForm.get('bccRecipients').value;\r\n let bccList: any[]=[];\r\n\r\n if(currentBCCList){\r\n bccList = currentBCCList;\r\n }\r\n bccList.push(newRecipient);\r\n\r\n this.opportunityQuoteSendEmailForm.patchValue({\r\n bccRecipients: bccList,\r\n });\r\n this.recipientsBCCAutoComplete.multiInputEL.nativeElement.value = '';\r\n\r\n break;\r\n\r\n case \"cc\":\r\n let currentCCList = this.opportunityQuoteSendEmailForm.get('ccRecipients').value;\r\n let ccList: any[]=[];\r\n\r\n if(currentCCList){\r\n ccList = currentCCList;\r\n }\r\n ccList.push(newRecipient);\r\n\r\n this.opportunityQuoteSendEmailForm.patchValue({\r\n ccRecipients: ccList,\r\n });\r\n this.recipientsCCAutoComplete.multiInputEL.nativeElement.value = '';\r\n\r\n break;\r\n\r\n case \"to\":\r\n let currentToList = this.opportunityQuoteSendEmailForm.get('recipients').value;\r\n let toList: any[]=[];\r\n\r\n if(currentToList){\r\n toList = currentToList;\r\n }\r\n toList.push(newRecipient);\r\n\r\n this.opportunityQuoteSendEmailForm.patchValue({\r\n recipients: toList,\r\n });\r\n this.recipientsAutoComplete.multiInputEL.nativeElement.value = '';\r\n\r\n break;\r\n }\r\n\r\n this.handleDropdownView(type);\r\n }\r\n\r\n }\r\n\r\n searchAutoComplete(event, type:string) {\r\n if (event.query){\r\n this.onGetContactsSearch(event.query, type);\r\n }\r\n //Setting value for items which are not found\r\n this.newEmailRecipient = event.query;\r\n }\r\n\r\n handleDropdown(event, type:string) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n\r\n this.handleDropdownView(type);\r\n }\r\n\r\n handleDropdownView(type: string){\r\n switch(type){\r\n case \"bcc\":\r\n if (this.recipientsBCCAutoComplete.panelVisible) {\r\n this.recipientsBCCAutoComplete.hide();\r\n } else {\r\n this.recipientsBCCAutoComplete.show();\r\n }\r\n break;\r\n case \"cc\":\r\n\r\n if (this.recipientsCCAutoComplete.panelVisible) {\r\n this.recipientsCCAutoComplete.hide();\r\n } else {\r\n this.recipientsCCAutoComplete.show();\r\n }\r\n break;\r\n\r\n case \"to\":\r\n\r\n if (this.recipientsAutoComplete.panelVisible) {\r\n this.recipientsAutoComplete.hide();\r\n } else {\r\n this.recipientsAutoComplete.show();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n\r\n onSelectRecipient(event: any, type:string) {\r\n this.newEmailRecipient = null;\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string, type:string) {\r\n // this.contactService.getContactsSearch(searchTerm).subscribe(\r\n // (contacts: ContactSearchItem[]) => {\r\n // let labelText = \"\";\r\n\r\n // let retrievedContactsOptions = [];\r\n\r\n // // Store retrieved contacts in the contactsOptions select list\r\n // contacts.map(cT => {\r\n\r\n // let labelText = this.mapContactRecipient(cT);\r\n // retrievedContactsOptions.push(\r\n // {\r\n // label: labelText,\r\n // value: cT\r\n // }\r\n // );\r\n // });\r\n\r\n // switch(type){\r\n // case \"bcc\":\r\n // this.toBCCOptions = retrievedContactsOptions;\r\n // break;\r\n // case \"cc\":\r\n // this.toCCOptions = retrievedContactsOptions;\r\n // break;\r\n // case \"to\":\r\n // this.toOptions = retrievedContactsOptions;\r\n // break;\r\n // }\r\n\r\n // },\r\n // (error: Response) => {\r\n // this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n // }\r\n // );\r\n }\r\n\r\n\r\n setupForm() {\r\n // this.route.parent.params.subscribe(\r\n // (queryParam: Params) => {\r\n // this.quoteId = queryParam['id'];\r\n // this.initForm(null);\r\n // }\r\n // );\r\n\r\n let params$ = this.route.parent.params;\r\n params$.pipe(\r\n map((params: Params) => {\r\n //return params;\r\n this.quoteId = +params['id'];\r\n let id = +params['id'];\r\n return id;\r\n }), switchMap((param: number) => {\r\n return forkJoin(this._quoteService.getAssignedContactByQuoteId(param), this._quoteService.getQuote(param));\r\n })).subscribe((_) => {\r\n this.initForm(_[0], _[1]);\r\n });\r\n }\r\n\r\n\r\n mapContactRecipient(cT:Contact){\r\n let labelText =\"\";\r\n let organization = cT[\"organization\"];\r\n\r\n labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n\r\n //cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n //cT.companyName ? labelText += \" / Company: \" + cT.companyName : \"\";\r\n //cT.homePhoneNumber ? labelText += \" / Tel: \" + cT.homePhoneNumber : \"\";\r\n // cT.mobilePhoneNumber ? labelText += \" / Mob: \" + cT.mobilePhoneNumber : \"\";\r\n cT.email ? labelText += \" / Email: \" + cT.email : \"\";\r\n return labelText;\r\n\r\n }\r\n\r\n initForm(recipients, quote: Quote) {\r\n // Get all opportunityQuoteSendEmail names to know if it already exists\r\n\r\n let labelText= this.mapContactRecipient(recipients);\r\n\r\n this.toOptions.push(\r\n {\r\n label: labelText,\r\n value: recipients\r\n }\r\n );\r\n\r\n this.opportunityQuoteSendEmailForm = this.formBuilder.group({\r\n quoteId: this.formBuilder.control(this.quoteId),\r\n recipients: this.formBuilder.control(this.toOptions),\r\n ccRecipients: this.formBuilder.control(\"\"),\r\n bccRecipients: this.formBuilder.control(\"\"),\r\n subject: this.formBuilder.control(`Quote ${quote.reference} v${quote.version}`),\r\n message: this.formBuilder.control(`Dear ${recipients.firstName},

Please find attached the quotation that you have requested.

Kind Regards,
`)\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onSubmit() {\r\n let newOpportunityQuoteSendEmail = this.formBuilder.sanitizeFormValues(this.opportunityQuoteSendEmailForm).getRawValue();\r\n\r\n let toDictionary = [];\r\n let ccDictionary = [];\r\n let bccDictionary = [];\r\n\r\n if (newOpportunityQuoteSendEmail.recipients) {\r\n newOpportunityQuoteSendEmail.recipients.map(\r\n to =>{\r\n toDictionary.push({\r\n fullName: to.value.fullName,\r\n email: to.value.email\r\n });\r\n });\r\n newOpportunityQuoteSendEmail.recipients = toDictionary;\r\n }\r\n\r\n if (newOpportunityQuoteSendEmail.ccRecipients) {\r\n newOpportunityQuoteSendEmail.ccRecipients.map(\r\n cc =>{\r\n ccDictionary.push({\r\n fullName: cc.value.fullName,\r\n email: cc.value.email\r\n });\r\n });\r\n newOpportunityQuoteSendEmail.ccRecipients = ccDictionary;\r\n }\r\n\r\n if (newOpportunityQuoteSendEmail.bccRecipients) {\r\n newOpportunityQuoteSendEmail.bccRecipients.map(\r\n bcc =>{\r\n bccDictionary.push({\r\n fullName: bcc.value.fullName,\r\n email: bcc.value.email\r\n });\r\n });\r\n newOpportunityQuoteSendEmail.bccRecipients = bccDictionary;\r\n }\r\n this._quoteService.scheduleEmailQuote(newOpportunityQuoteSendEmail).subscribe(()=>{});\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { OpportunityQuotesComponent } from './opportunity-quotes.component';\r\nimport { OpportunityQuoteManageComponent } from './opportunity-quote-manage/opportunity-quote-manage.component';\r\nimport { OpportunityQuoteSendEmailManageComponent } from './opportunity-quote-send-email/opportunity-quote-send-email.component';\r\n\r\nconst quoteRoutes: Routes = [\r\n {\r\n path: 'opportunities',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'quote', component: OpportunityQuotesComponent,\r\n children: [\r\n {\r\n path: ':id/edit', component: OpportunityQuoteManageComponent,// canActivate: [RoleGuard],\r\n children:[\r\n {\r\n path: 'send-email', component: OpportunityQuoteSendEmailManageComponent,// canActivate: [RoleGuard]\r\n },\r\n ]\r\n },\r\n {\r\n path: ':opportunityId/new', component: OpportunityQuoteManageComponent,// canActivate: [RoleGuard]\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(quoteRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OpportunityQuotesRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29wcG9ydHVuaXRpZXMvb3Bwb3J0dW5pdHktcXVvdGVzL29wcG9ydHVuaXR5LXF1b3Rlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-opportunity-quotes',\r\n templateUrl: './opportunity-quotes.component.html',\r\n styleUrls: ['./opportunity-quotes.component.scss']\r\n})\r\nexport class OpportunityQuotesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { OpportunityQuotesRoutingModule } from \"./opportunity-quotes-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { OpportunityQuotesComponent } from './opportunity-quotes.component';\r\nimport { OpportunityQuoteManageComponent } from './opportunity-quote-manage/opportunity-quote-manage.component';\r\nimport { CalendarModule, DropdownModule, EditorModule } from 'primeng/primeng';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { OpportunityQuoteSendEmailManageComponent } from './opportunity-quote-send-email/opportunity-quote-send-email.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n OpportunityQuotesComponent,\r\n OpportunityQuoteManageComponent,\r\n OpportunityQuoteSendEmailManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n OpportunityQuotesRoutingModule,\r\n ReactiveFormsModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n ModalModule.forRoot(),\r\n EditorModule\r\n ]\r\n})\r\nexport class OpportunityQuotesModule { }\r\n","import { SalesOpportunityManageComponent } from './opportunity-manage-sales.component';\r\n\r\nexport class SalesOpportunityValidation {\r\n constructor(private _opportunityManageItem: SalesOpportunityManageComponent) { }\r\n\r\n //the client input fields\r\n input = {\r\n NAME: \"name\",\r\n OPP_PROBABILITY: \"probability\",\r\n OPP_TYPE: \"opportunityTypeId\",\r\n OPP_CATEGORY_TYPE: \"opportunityCategoryTypeId\",\r\n\r\n OPP_SELLER: \"sellerId\",\r\n PLOT_DESC: \"plotDescription\",\r\n\r\n PROJECT_MANAGER: \"projectManagerId\",\r\n START_DATE: \"startDate\",\r\n DUE_DATE: \"dueDate\"\r\n }\r\n\r\n //opportunity category type validation\r\n get opportunityCategoryType() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_CATEGORY_TYPE); }\r\n get isOpportunityCategoryTypeInvalid() { return (this.opportunityCategoryType.invalid && (this.opportunityCategoryType.dirty || this.opportunityCategoryType.touched)); }\r\n\r\n //opportunity type validation\r\n get opportunityType() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_TYPE); }\r\n get isOpportunityTypeInvalid() { return (this.opportunityType.invalid && (this.opportunityType.dirty || this.opportunityType.touched)); }\r\n\r\n //probabillity validation\r\n get probability() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_PROBABILITY); }\r\n get isProbabilityInvalid() { return (this.probability.invalid && (this.probability.dirty || this.probability.touched)); }\r\n\r\n //name validation\r\n get name() { return this._opportunityManageItem.opportunityForm.get(this.input.NAME); }\r\n get isNameInvalid() { return (this.name.invalid && (this.name.dirty || this.name.touched)); }\r\n\r\n //seller validation\r\n get seller() { return this._opportunityManageItem.opportunityForm.get(this.input.OPP_SELLER); }\r\n get isSellerInvalid() { return (this.seller.invalid && (this.seller.dirty || this.seller.touched)); }\r\n\r\n //plot description validation\r\n get plotDescription() { return this._opportunityManageItem.opportunityForm.get(this.input.PLOT_DESC); }\r\n get isPlotDescriptionInvalid() { return (this.plotDescription.invalid && (this.plotDescription.dirty || this.plotDescription.touched)); }\r\n\r\n //project manager validation\r\n get projectManager() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.PROJECT_MANAGER); }\r\n get isProjectManagerInvalid() { return (this.projectManager.invalid && (this.projectManager.dirty || this.projectManager.touched)); }\r\n\r\n //project name validation\r\n get projectName() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.NAME); }\r\n get isProjectNameInvalid() { return (this.projectName.invalid && (this.projectName.dirty || this.projectName.touched)); }\r\n\r\n //project start date validation\r\n get projectStartDate() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.START_DATE); }\r\n get isProjectStartDateInvalid() { return (this.projectStartDate.invalid && (this.projectStartDate.dirty || this.projectStartDate.touched)); }\r\n\r\n //project due date validation\r\n get projectDueDate() { return this._opportunityManageItem.opportunityForm.get('project').get(this.input.DUE_DATE); }\r\n get isProjectDueDateInvalid() { return (this.projectDueDate.invalid && (this.projectDueDate.dirty || this.projectDueDate.touched)); }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update Opportunity
\\r\\n
New Opportunity
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Assigned Contact:\\r\\n {{ opportunityForm.get('assignedContactId').value.label }}.\\r\\n

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

\\r\\n No contact is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Assigned Contact field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The minimum allowed value is 0.\\r\\n \\r\\n \\r\\n The maximum allowed value is 100%.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

Property Details

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

\\r\\n Assigned Seller/Vendor:\\r\\n {{ opportunityForm?.get('sellerId')?.value?.label }}.\\r\\n

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

\\r\\n No seller/vendor is currently assigned.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Assigned Contact field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select an Opportunity Type.\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter probability.\\r\\n \\r\\n \\r\\n The minimum allowed value is 0.\\r\\n \\r\\n \\r\\n The maximum allowed value is 100%.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
This data is required to create a project in ORCHESTRATE
\\r\\n
This opportunity is linked with the following project in ORCHESTRATE
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Please enter project name.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select start date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select due date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please select a project manager.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please enter plot description.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Address Details\\r\\n \\r\\n

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

Potential Property Results

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Viewed
\\r\\n
Not Interested
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{prop.defaultPrice}}\\r\\n \\r\\n \\r\\n {{prop.customCode}}\\r\\n {{prop.propertyCategory}} - {{prop.propertyLocality}}\\r\\n\\r\\n \\r\\n
\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n {{prop.propertyStatus}}\\r\\n
\\r\\n
\\r\\n Set Viewing \\r\\n Undo 'Client Not Interested' \\r\\n \\r\\n Client Not Interested \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
Tasks
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task | taskStatus }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.reminderDate | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdByUserAccountId ? task.createdByUserAccount?.fullName : '-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 20 ? false : true\\\"\\r\\n tooltipPosition=\\\"left\\\" tooltipStyleClass=\\\"tooltip-primary\\\">\\r\\n {{ task.taskDescription }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.userTasks | assignedUsers | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.contactTasks | assignedContacts | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.isTaskComplete | taskStatus }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".header--collapse {\\n padding-left: 15px; }\\n\\nspan.ui-calendar {\\n display: flex !important;\\n align-items: center;\\n justify-content: flex-end; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdmlld3Mvb3Bwb3J0dW5pdGllcy9vcHBvcnR1bml0eS1zYWxlcy9DOlxcSmVua2luc1xcLmplbmtpbnNcXHdvcmtzcGFjZVxcQ1JNLUFDUS1QT1JUQUwtUFJPRFxcSVNCLkNSTS5XZWJzaXRlL3NyY1xcYXBwXFx2aWV3c1xcb3Bwb3J0dW5pdGllc1xcb3Bwb3J0dW5pdHktc2FsZXNcXG9wcG9ydHVuaXR5LW1hbmFnZS1zYWxlcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTtFQUNFLGtCQUFrQixFQUFBOztBQUlqQjtFQUVHLHdCQUF3QjtFQUN4QixtQkFBbUI7RUFDbkIseUJBQXlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9vcHBvcnR1bml0aWVzL29wcG9ydHVuaXR5LXNhbGVzL29wcG9ydHVuaXR5LW1hbmFnZS1zYWxlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC5oYXMtZGFuZ2VyIC5pbnB1dC1ncm91cC10ZXh0LCAuaGFzLWRhbmdlciAuZm9ybS1jb250cm9sLCAuaGFzLWRhbmdlciAucC1kcm9wZG93biA+IGRpdiB7XHJcbi8vICAgYm9yZGVyLWNvbG9yOiByZWQ7XHJcbi8vIH1cclxuXHJcblxyXG4uaGVhZGVyLS1jb2xsYXBzZSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG59XHJcblxyXG4vLyBwLWNhbGVuZGFyIHtcclxuICAgc3BhbiB7XHJcbiAgICAgICYudWktY2FsZW5kYXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcbiAgfVxyXG4vLyB9XHJcbiJdfQ== */\"","import { Component, OnInit, ViewChild, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities, PrepopulatedContactTypes, PrepopulatedContactSources, PrepopulatedOpportunityTypes, PrepopulatedTaskTypes, GoogleMaps } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { OpportunityService } from \"../../shared/services/opportunity.service\";\r\nimport { OpportunityTypeService } from \"../../shared/services/opportunity-type.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\nimport { OpportunityLostTypeService } from '../../shared/services/opportunity-lost-type.service';\r\nimport { ProductService } from '../../shared/services/product.service';\r\nimport { QuoteService } from '../../shared/services/quote.service';\r\nimport { Opportunity, OpportunityExtended, SalesOpportunityFormControl, LandPurchaseOpportunityFormControl, LandPurchaseOpportunity } from \"../../shared/models/opportunity.model\";\r\nimport { OpportunityType } from \"../../shared/models/opportunity-type.model\";\r\n\r\nimport { SelectItem, ConfirmationService, AutoComplete } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { OpportunityLostType } from '../../shared/models/opportunity-lost-type.model';\r\nimport { Product } from '../../shared/models/product.model';\r\nimport { PropertyService } from 'app/views/shared/services/property.service';\r\nimport { PropertyCategory } from 'app/views/shared/models/property-category.model';\r\nimport { PropertyLocality } from 'app/views/shared/models/property-locality.model';\r\nimport { PropertyRegion } from 'app/views/shared/models/property-region.model';\r\nimport { PropertyDealType } from 'app/views/shared/models/property-dealtype';\r\nimport { PropertyAttribute } from 'app/views/shared/models/property-attribute';\r\nimport { PropertyDetails } from 'app/views/shared/models/property-details.model';\r\nimport { pipeFromArray } from 'rxjs/internal/util/pipe';\r\nimport { OpportunitySelection } from 'app/views/shared/models/opportunity-selection.model';\r\nimport { PropertyOppSelection } from 'app/views/shared/models/property-opportunity-selection.model';\r\nimport { Property } from 'app/views/shared/models/property.model';\r\nimport { OpportunityPropertiesNotInterested } from 'app/views/shared/models/opportunity-properties-not-interested.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { Quote } from 'app/views/shared/models/quote.model';\r\nimport { Task } from 'app/views/shared/models/task.model';\r\nimport { TaskService } from 'app/views/shared/services/task.service';\r\nimport { Organization } from 'app/views/shared/models/organization.model';\r\nimport { BaseComponent } from 'app/views/base/base.component';\r\nimport { OpportunityInitQueryGQL } from 'app/graphql/opportunity/opportunity-init.query.graphql';\r\nimport { OpportunityCategoryType } from 'app/views/shared/models/opportunity-category-type/opportunity-category-type.model';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { SalesOpportunityValidation } from './opportunity-manage-sales-item.validation';\r\nimport { AllOpportunityCategoryTypesQueryGQL } from 'app/graphql/opportunity-category-type/opportunity-category-types.graphql';\r\nimport { forkJoin, combineLatest, of } from 'rxjs';\r\nimport { FormUtilityService } from 'app/shared/form-utility.service';\r\nimport { LandPurchaseOpportunityByIdOppIdQueryGQL } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-by-opp-id.graphql';\r\nimport { UpdateLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opportunity-update.mutation.graphql';\r\nimport { CreateLandPurchaseOpportunityMutation } from 'app/graphql/land-purchase-opportunity/land-purchase-opporunity-create.mutation.graphql';\r\nimport { AllAccountPRofilesQueryGQL } from 'app/graphql/account-profile/account-profiles.graphql';\r\nimport { Profile } from 'app/shared/profile/_models/profile.model';\r\n\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-sales-opportunity-manage',\r\n templateUrl: './opportunity-manage-sales.component.html',\r\n styleUrls: ['./opportunity-manage-sales.component.scss']\r\n})\r\nexport class SalesOpportunityManageComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n opportunityForm: FormGroup = null; // - Stores the opportunity form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update an opportunity if true and add a new opportunity if false\r\n isQuoteClosed: boolean = false; // - If Quote was selected and now cannot add more quotes\r\n\r\n opportunity: OpportunityExtended = new OpportunityExtended(); // - Stores Opportunity to populate form with a new / existing opportunity's values\r\n\r\n productsOptions: SelectItem[] = []; // - Stores Products Dropdown Options\r\n //propertyCategoryOptions: SelectItem[] = []; // - Stores Property Category Dropdown Options\r\n opportunityTypesOptions: SelectItem[] = []; // - Stores Opportunity Type Dropdown Options\r\n opportunityLostTypesOptions: SelectItem[] = []; // - Stores Opportunity Lost Type Dropdown Options\r\n assignedUserOptions: SelectItem[] = []; // - Stores Users to select the Assigned User of this opportunity\r\n assignedContactOptions: SelectItem[] = []; // - Stores Contacts to select the Assigned Contact of this opportunity\r\n opportunityCategoryTypeOptions: SelectItem[] = [];\r\n accountProfileOptions: SelectItem[] = [];\r\n tasks: Task[] = []; // - List of tasks displayed in table\r\n\r\n isProjectCreated: boolean = false;\r\n\r\n validation: SalesOpportunityValidation = null;\r\n\r\n selectedCategoryType: number = null;\r\n\r\n MainCatOptions: SelectItem[] = [];\r\n SubCatOptions: SelectItem[] = [];\r\n PropertyRegionsOptions: SelectItem[] = [];\r\n PropertyLocalitiesOptions: SelectItem[] = [];\r\n PropertyDealTypesOptions: SelectItem[] = [];\r\n PropertyRoomsOptions: SelectItem[] = [];\r\n PropertyFeaturesOptions: SelectItem[] = [];\r\n Properties: Property[] = [];\r\n ParamValues: string = null;\r\n Viewings: number[] = [];\r\n PropNotInterested: number[] = [];\r\n opportunityPropertyNotInterested: OpportunityPropertiesNotInterested = new OpportunityPropertiesNotInterested();\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n\r\n CategoryTypeEnums: { \"Sales Opportunity\": number; \"Land Purchases Opportunity\": number; };\r\n selectedCategoryTypeOptionId: any;\r\n landPurchaseOpp: LandPurchaseOpportunity;\r\n\r\n //** Google Maps */\r\n options: any;\r\n overlays: any[];\r\n marker: any;\r\n isGoogleMapsSearchInit = false;\r\n @ViewChild(\"gMapsSearch\") public gMapsSearchElementRef: ElementRef;\r\n @ViewChild(\"gmap\") public gmap;\r\n minDueDate: Date;\r\n allAccountProfiles: Profile[];\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private _formUtil: FormUtilityService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private propertyService: PropertyService,\r\n private productService: ProductService,\r\n private taskService: TaskService,\r\n private opportunityService: OpportunityService,\r\n private quoteService: QuoteService,\r\n private opportunityTypeService: OpportunityTypeService,\r\n private opportunityLostTypeService: OpportunityLostTypeService,\r\n private confirmationService: ConfirmationService,\r\n private authService: AuthService,\r\n private toastService: ToastService,\r\n private _allOppCategoryTypes: AllOpportunityCategoryTypesQueryGQL,\r\n\r\n private _landPurchaseOpportunityByIdQuery: LandPurchaseOpportunityByIdOppIdQueryGQL,\r\n private _updateLandPurchaseOpportunityMutation: UpdateLandPurchaseOpportunityMutation,\r\n private _createLandPurchaseOpportunityMutation: CreateLandPurchaseOpportunityMutation,\r\n\r\n private _allAccountProfiles: AllAccountPRofilesQueryGQL,\r\n\r\n private ref: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.populateCategoryTypeMappings();\r\n let oppTypes$ = this.ngOnInitHandleDropdowns() \r\n .pipe(\r\n tap(_=> {\r\n this.populateOppTypeOptions(_);\r\n }),\r\n switchMap(() => { return this.setupForm() })\r\n ).subscribe(_ => {\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n this.opportunity = _.opp as OpportunityExtended;\r\n this.onGetPropertyDetails(_.oppId);\r\n break;\r\n\r\n case 2:\r\n this.landPurchaseOpp = _.opp as LandPurchaseOpportunity;\r\n break;\r\n }\r\n\r\n\r\n this.initForm();\r\n })\r\n\r\nthis.subscriptions$.push(oppTypes$);\r\n \r\n\r\n // this.setupForm();\r\n }\r\n\r\n getImageUrl(prop){\r\n //url(' + prop.propertyUrl + prop.propertyImageUrl + ')\r\n let imagUrl = prop.propertyUrl + prop.propertyImageUrl;\r\n\r\n let link = 'url(' + imagUrl + ')';\r\n\r\n return link;\r\n }\r\n\r\n isPropertyViewedOrNotInterested(propId) {\r\n propId = parseInt(propId);\r\n\r\n if (this.PropNotInterested.includes(propId)) {\r\n return 'NotInterested';\r\n }\r\n else if (this.Viewings.includes(propId)) {\r\n return 'Viewed';\r\n }\r\n }\r\n\r\n NotInterested(prop) {\r\n this.confirmationService.confirm({\r\n header: prop.propertyPreCode + ' (Not Interested)',\r\n message: 'Would you like to mark this property as Not Interested?',\r\n accept: () => {\r\n this.opportunityPropertyNotInterested.OpportunityId = this.opportunity.id;\r\n this.opportunityPropertyNotInterested.PropertyId = prop.propertyId;\r\n this.opportunityService.addPropertyNotInterested(this.opportunityPropertyNotInterested).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property has been listed as not interested.\");\r\n //this.router.navigate(['/opportunities/' + this.opportunity.id + '/edit']);\r\n\r\n this.PropNotInterested.push(prop.propertyId);\r\n this.isPropertyViewedOrNotInterested(prop.propertyId);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating properties not interested\", error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n UndoNotInterested(prop) {\r\n this.confirmationService.confirm({\r\n header: prop.propertyPreCode + ' (Undo Not Interested)',\r\n message: 'Would you like to undo Not Interested for this property ?',\r\n accept: () => {\r\n this.opportunityPropertyNotInterested.OpportunityId = this.opportunity.id;\r\n this.opportunityPropertyNotInterested.PropertyId = prop.propertyId;\r\n this.opportunityService.undoPropertyNotInterested(this.opportunityPropertyNotInterested).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"Property not interested has been removed.\");\r\n //this.router.navigate(['/opportunities/' + this.opportunity.id + '/edit']);\r\n\r\n let index = this.PropNotInterested.indexOf(prop.propertyId);\r\n this.PropNotInterested.splice(index);\r\n this.isPropertyViewedOrNotInterested(prop.propertyId);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error undo properties not interested\", error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n private populateCategoryTypeMappings() {\r\n this.CategoryTypeEnums = {\r\n \"Sales Opportunity\": 1,\r\n \"Land Purchases Opportunity\": 2\r\n };\r\n }\r\n\r\n ngOnDestroy() : void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n private allOppCategoryTypes$(): Observable {\r\n return this._allOppCategoryTypes\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).opportunityCategoryTypes.data as OpportunityCategoryType[] : [];\r\n })\r\n );\r\n }\r\n\r\n // ngOnInitHandleDropdowns(): void {\r\n // let oppTypes$ = this.opportunityTypeService.getOpportunityTypes()\r\n // .subscribe(items => {\r\n // this.populateOppTypeOptions(items);\r\n // });\r\n // this.subscriptions$.push(oppTypes$);\r\n // }\r\n\r\n ngOnInitHandleDropdowns(): Observable {\r\n let oppTypes$ = this.opportunityTypeService.getOpportunityTypes();\r\n // .subscribe(items => {\r\n // this.populateOppTypeOptions(items);\r\n // });\r\n\r\n return oppTypes$;\r\n // this.subscriptions$.push(oppTypes$);\r\n }\r\n\r\n private populateOppCategoryTypeOptions(categoryTypes: OpportunityCategoryType[]): void {\r\n this.opportunityCategoryTypeOptions = [];\r\n if (categoryTypes != null && categoryTypes.length > 0) {\r\n categoryTypes.map(c => {\r\n this.opportunityCategoryTypeOptions.push({ label: c.name, value: c.id });\r\n });\r\n }\r\n }\r\n\r\n private populateOppTypeOptions(opportunityTypes: OpportunityType[]): void {\r\n this.opportunityTypesOptions = [];\r\n if (opportunityTypes != null && opportunityTypes.length > 0) {\r\n opportunityTypes.map(t => {\r\n this.opportunityTypesOptions.push({ label: t.name, value: t.id });\r\n });\r\n\r\n // if(this.isEdit) {\r\n\r\n \r\n // // control.opportunityTypeId.enable();\r\n // // control.opportunityTypeId.setValue(this.opportunity ? this.opportunity.opportunityType.id : null);\r\n // }\r\n // else {\r\n // debugger;\r\n // let control = this.opportunityForm.controls['opportunityTypeId'];\r\n // control.setValue(this.opportunityTypesOptions.length > 0 ? this.opportunityTypesOptions[0].value : null);\r\n // } \r\n }\r\n }\r\n\r\n private getAccountProfiles$() : Observable {\r\n return this._allAccountProfiles\r\n .watch()\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).systemAccountProfiles.data as Profile[] : [];\r\n // return item ? (item).accountProfiles.data as Profile[] : [];\r\n })\r\n );\r\n }\r\n\r\n public onOpportunityTypeChange(event: any) : void {\r\n let oppTypeIsClosed = this.isOpportunityTypeClosed();\r\n\r\n //show the dropdowns for creating a project only when the opportunity is selected as\r\n //closed\r\n if (oppTypeIsClosed) {\r\n this.landPurchaseClosedOppDropdownsInit();\r\n this.enableProjectFormDetails();\r\n } else {\r\n this.disableProjectFormDetails();\r\n }\r\n }\r\n\r\n private disableProjectFormDetails(): void {\r\n this.opportunityForm.get('project').disable();\r\n }\r\n\r\n private enableProjectFormDetails(): void {\r\n this.opportunityForm.get('project').enable();\r\n }\r\n\r\n private landPurchaseClosedOppDropdownsInit(): void {\r\n this.subscriptions$.push(\r\n this.getAccountProfiles$()\r\n .pipe(\r\n map(items => {\r\n return {\r\n accountProfiles: items\r\n };\r\n })\r\n )\r\n .subscribe(result => {\r\n this.populateAccountProfileOptions(result.accountProfiles);\r\n })\r\n );\r\n }\r\n\r\n private populateAccountProfileOptions(accountProfiles: Profile[]): void {\r\n this.allAccountProfiles = accountProfiles;\r\n this.accountProfileOptions = [];\r\n if (accountProfiles != null && accountProfiles.length > 0) {\r\n accountProfiles.map(acc => {\r\n this.accountProfileOptions.push({ label: `${acc.firstName} ${acc.lastName}`, value: acc.subjectId });\r\n });\r\n }\r\n }\r\n\r\n public onOpportunityCategoryTypeChange(event: any): void {\r\n let selectionCategoryTypeOption = this.opportunityCategoryTypeOptions.find(c => c.value == event.value).label;\r\n\r\n this.selectedCategoryType = this.CategoryTypeEnums[selectionCategoryTypeOption];\r\n\r\n switch (selectionCategoryTypeOption) {\r\n case \"Land Purchases Opportunity\":\r\n this.selectedCategoryType = 2;\r\n break;\r\n case \"Sales Opportunity\":\r\n this.selectedCategoryType = 1;\r\n break;\r\n }\r\n\r\n this.initForm();\r\n\r\n //the opportunity category type should always be visible to the user when creating a new opp\r\n this.opportunityForm.get('opportunityCategoryTypeId').setValue(event.value);\r\n }\r\n\r\n private showLandPurchaseOpportunityFields(opp: LandPurchaseOpportunity): void {\r\n\r\n this.isProjectCreated = opp && opp.project ? opp.project.name != null : false;\r\n\r\n console.log(\"opp --> \", opp)\r\n\r\n this.opportunityForm = null;\r\n\r\n var control = new LandPurchaseOpportunityFormControl();\r\n\r\n control.id.setValue(opp ? opp.id : null);\r\n control.code.setValue(opp ? opp.code : null);\r\n control.details.setValue(opp ? opp.details : null);\r\n control.plotDescription.setValue(opp ? opp.plotDescription : null);\r\n control.sellingPrice.setValue(opp ? opp.sellingPrice : null);\r\n control.sellerId.setValue(opp && opp.seller ? opp.seller.id : null);\r\n\r\n control.address.controls.id.setValue(opp && opp.address ? opp.address.id : null);\r\n control.address.controls.addressLine1.setValue(opp && opp.address ? opp.address.addressLine1 : null);\r\n control.address.controls.addressLine2.setValue(opp && opp.address ? opp.address.addressLine2 : null);\r\n control.address.controls.addressLine3.setValue(opp && opp.address ? opp.address.addressLine3 : null);\r\n control.address.controls.addressLine4.setValue(opp && opp.address ? opp.address.addressLine4 : null);\r\n control.address.controls.postCode.setValue(opp && opp.address ? opp.address.postCode : null);\r\n control.address.controls.country.setValue(opp && opp.address ? opp.address.country : null);\r\n control.address.controls.locationLat.setValue(opp && opp.address ? opp.address.locationLat : null);\r\n control.address.controls.locationLng.setValue(opp && opp.address ? opp.address.locationLng : null);\r\n\r\n control.assignedUserAccountId.setValue(opp && opp.opportunity.assignedUserAccount ? opp.opportunity.assignedUserAccount.id : null);\r\n control.probability.setValue(opp && opp.opportunity ? opp.opportunity.probability : null);\r\n control.value.setValue(opp && opp.opportunity ? opp.opportunity.value : null);\r\n control.name.setValue(opp && opp.opportunity ? opp.opportunity.name : null);\r\n\r\n control.opportunityLostTypeId.setValue(opp && opp.opportunity.opportunityLostType ? opp.opportunity.opportunityLostType.id : null);\r\n control.lostTypeDescription.setValue(opp && opp.opportunity ? opp.opportunity.lostTypeDescription : null);\r\n\r\n control.project.controls.name.setValue(opp && opp.project ? opp.project.name : null);\r\n control.project.controls.startDate.setValue(opp && opp.project.startDate ? new Date(opp.project.startDate) : null);\r\n control.project.controls.dueDate.setValue(opp && opp.project.dueDate ? new Date(opp.project.dueDate) : null);\r\n control.project.controls.projectManagerId.setValue(opp && opp.project.projectManager ? opp.project.projectManager.subjectId : null);\r\n\r\n if(this.isEdit) {\r\n control.opportunityTypeId.setValue(opp && opp.opportunity.opportunityType ? opp.opportunity.opportunityType.id : null);\r\n control.opportunityTypeId.enable();\r\n\r\n if (opp.opportunity.opportunityType.id == 2) {\r\n this.landPurchaseClosedOppDropdownsInit();\r\n }\r\n }\r\n else {\r\n debugger;\r\n control.opportunityTypeId.setValue(this.opportunityTypesOptions[0] ? this.opportunityTypesOptions[0].value : null);\r\n }\r\n\r\n this.opportunityForm = this.formBuilder.group(control);\r\n\r\n //keep watch on the locationLat to update the map accordingly\r\n this.opportunityForm.get('address').get('locationLat').valueChanges.subscribe(locationLat => {\r\n var location = { lat: locationLat , lng: this.marker.getPosition().lng() };\r\n if (this.gmap != null && this.gmap.map != null)\r\n this.gmap.map.panTo(location);\r\n });\r\n\r\n //keep watch on the locationLng to update the map accordingly\r\n this.opportunityForm.get('address').get('locationLng').valueChanges.subscribe(locationLng => {\r\n var location = { lat: this.marker.getPosition().lat() , lng: locationLng };\r\n if (this.gmap != null && this.gmap.map != null)\r\n this.gmap.map.panTo(location);\r\n });\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n this.enableProjectFormDetails();\r\n\r\n if (this.isEdit) {\r\n this.disableLandingPurchaseOppFormIfClosed();\r\n }\r\n } else {\r\n this.disableProjectFormDetails();\r\n }\r\n }\r\n\r\n //if the opportunityType is set as closed, then a project for this opportunity\r\n //has been created in ORCHESTRATE\r\n //the data pertaining the created project would need to be retrieved from ORCH?\r\n private disableLandingPurchaseOppFormIfClosed() {\r\n this.opportunityForm.get('opportunityTypeId').disable();\r\n this.opportunityForm.get('project').disable();\r\n\r\n this.isProjectCreated = true;\r\n }\r\n\r\n private showSalesOpportunityFields(): void {\r\n var control = new SalesOpportunityFormControl();\r\n\r\n control.name.setValue(this.opportunity ? this.opportunity.name : null);\r\n control.description.setValue(this.opportunity ? this.opportunity.description : null);\r\n control.productIds.setValue(this.opportunity.opportunityProducts ? this.opportunity.opportunityProducts.map(oP => oP.productId) : null);\r\n control.probability.setValue(this.opportunity ? this.opportunity.probability : null);\r\n control.value.setValue(this.opportunity ? this.opportunity.value : null);\r\n control.assignedContactId.setValue(this.opportunity ? this.opportunity.assignedContactId : null);\r\n control.assignedUserAccountId.setValue(this.opportunity ? this.opportunity.assignedContactId : null);\r\n control.opportunityLostTypeId.setValue(this.opportunity ? this.opportunity.opportunityLostTypeId : null);\r\n control.lostTypeDescription.setValue(this.opportunity ? this.opportunity.lostTypeDescription : null);\r\n\r\n control.opportunityCategoryTypeId.setValue(this.CategoryTypeEnums[\"Sales Opportunity\"]);\r\n\r\n control.opportunitySelectionModel.controls.propertyReference.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.propertyReference : null);\r\n control.opportunitySelectionModel.controls.mainCatIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.mainCatIds : []);\r\n control.opportunitySelectionModel.controls.subCatIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.subCatIds : []);\r\n control.opportunitySelectionModel.controls.regionIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.regionIds : []);\r\n control.opportunitySelectionModel.controls.localityIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.localityIds : []);\r\n control.opportunitySelectionModel.controls.dealTypeIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.dealTypeIds : []);\r\n control.opportunitySelectionModel.controls.startingBudget.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.startingBudget : null);\r\n control.opportunitySelectionModel.controls.maximumBudget.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.maximumBudget : null);\r\n control.opportunitySelectionModel.controls.minimumBedrooms.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumBedrooms : null);\r\n control.opportunitySelectionModel.controls.minimumGarages.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumGarages : null);\r\n control.opportunitySelectionModel.controls.minimumBathrooms.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.minimumBathrooms : null);\r\n control.opportunitySelectionModel.controls.roomsIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.roomsIds : []);\r\n control.opportunitySelectionModel.controls.featureIds.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.featureIds : []);\r\n control.opportunitySelectionModel.controls.description.setValue(this.opportunity.opportunitySelectionModel ? this.opportunity.description : null);\r\n\r\n if(this.isEdit) {\r\n control.opportunityTypeId.enable();\r\n control.opportunityTypeId.setValue(this.opportunity ? this.opportunity.opportunityType.id : null);\r\n }\r\n else {\r\n debugger;\r\n control.opportunityTypeId.setValue(this.opportunityTypesOptions.length > 0 ? this.opportunityTypesOptions[0].value : null);\r\n }\r\n\r\n this.opportunityForm = this.formBuilder.group(control);\r\n\r\n this.validation = new SalesOpportunityValidation(this);\r\n }\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n setupForm() : Observable {\r\n debugger;\r\n let initSetup$ = this.allOppCategoryTypes$()\r\n .pipe(\r\n map(result => {\r\n this.populateOppCategoryTypeOptions(result);\r\n return this.route.params;\r\n })\r\n ,\r\n switchMap((params: Params) => {\r\n const routeParams = params.value;\r\n\r\n const categoryType: string = routeParams['categoryType'];\r\n const opportunityId: string = routeParams['id'];\r\n\r\n debugger;\r\n let selectedCategoryType: number = 0;\r\n\r\n this.isEdit = opportunityId != null; // - Returns true if an id was present within the url\r\n\r\n // switch(categoryType) {\r\n // case \"sales-opp\":\r\n selectedCategoryType = this.CategoryTypeEnums[\"Sales Opportunity\"];\r\n // break;\r\n\r\n // case \"land-purchase-opp\":\r\n // selectedCategoryType = this.CategoryTypeEnums[\"Land Purchases Opportunity\"];\r\n // break;\r\n // }\r\n\r\n return of({ opportunityId, selectedCategoryType });\r\n })\r\n ,switchMap(result => {\r\n if (result.selectedCategoryType && result.opportunityId) {\r\n this.selectedCategoryType = result.selectedCategoryType;\r\n\r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n return this.onGetOpportunity$(parseInt(result.opportunityId))\r\n .pipe(\r\n map(o=>{\r\n return { opp: o, oppId: result.opportunityId }\r\n })\r\n );\r\n break;\r\n case 2:\r\n return this.getLandPurchaseByOppId$(parseInt(result.opportunityId))\r\n .pipe(\r\n map(o=>{\r\n return { opp: o, oppId: result.opportunityId }\r\n })\r\n );\r\n break;\r\n\r\n default:\r\n return of({ opp: null, oppId: null});\r\n break;\r\n }\r\n }\r\n\r\n return of({ opp: null, oppId: null});\r\n })\r\n );\r\n\r\n return initSetup$;\r\n\r\n\r\n // .subscribe(result => {\r\n // switch(this.selectedCategoryType) {\r\n // case 1:\r\n // this.opportunity = result.opp as OpportunityExtended;\r\n // this.onGetPropertyDetails(result.oppId);\r\n // break;\r\n\r\n // case 2:\r\n // this.landPurchaseOpp = result.opp as LandPurchaseOpportunity;\r\n // break;\r\n // }\r\n\r\n\r\n // this.initForm();\r\n // });\r\n\r\n // this.subscriptions$.push(initSetup$);\r\n }\r\n\r\n private getLandPurchaseByOppId$(id: number): Observable {\r\n return this._landPurchaseOpportunityByIdQuery\r\n .watch({id: id})\r\n .valueChanges\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).landPurchaseOpportunityByOppId.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n );\r\n }\r\n\r\n initForm() {\r\n this.onGetUsers();\r\n this.onGetOpportunityLostTypes();\r\n \r\n this.selectedCategoryType = 1;\r\n \r\n switch(this.selectedCategoryType) {\r\n case 1:\r\n this.onGetMainCategories();\r\n this.onGetSubCategoriesOnLoad(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.mainCatIds : [] ,this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.subCatIds : []);\r\n this.onGetPropertyLocalitiesOnLoad(this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.regionIds : [],this.opportunity.opportunitySelectionModel ? this.opportunity.opportunitySelectionModel.localityIds : []);\r\n this.onGetPropertyRegions();\r\n this.onGetPropertyDealType();\r\n this.onGetPropertyRooms();\r\n this.onGetPropertyFeatures();\r\n\r\n this.showSalesOpportunityFields();\r\n break;\r\n\r\n case 2:\r\n this.showLandPurchaseOpportunityFields(this.landPurchaseOpp);\r\n this.initGoogleMap();\r\n break;\r\n\r\n default:\r\n this.showSalesOpportunityFields();\r\n break;\r\n }\r\n\r\n\r\n //the category type can only be selected when creating a new opportunity\r\n if (!this.isEdit) {\r\n this.opportunityForm.get('opportunityCategoryTypeId').enable();\r\n }\r\n\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"]) {\r\n this.onGetProducts();\r\n\r\n if (this.isEdit && this.opportunity != null && this.opportunity.assignedContact) {\r\n\r\n let defaultValue = this.populateSelectedContactDetails(this.opportunity.assignedContact, this.selectedCategoryType);\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n assignedContactId: defaultValue\r\n });\r\n }\r\n\r\n this.onGetQuotes(this.opportunity.id);\r\n this.onGetTasks(this.opportunity.id);\r\n }\r\n }\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"]) {\r\n if (this.isEdit && this.landPurchaseOpp != null && this.landPurchaseOpp.seller) {\r\n\r\n let defaultValue = this.populateSelectedContactDetails(this.landPurchaseOpp.seller, this.selectedCategoryType);\r\n\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n sellerId: defaultValue\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let contactId = queryParam['contact'];\r\n if (contactId != null) {\r\n\r\n this.contactService.getContact(+contactId).subscribe(\r\n (contact: Contact) => {\r\n let defaultValue: SelectItem = {\r\n label: contact.fullName,\r\n value: +contactId\r\n };\r\n\r\n this.opportunityForm.patchValue({\r\n assignedContactId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n this.onGetNotInterested(this.opportunity.id);\r\n this.isFormInit = true;\r\n this.validation = new SalesOpportunityValidation(this);\r\n }\r\n\r\n private populateSelectedContactDetails(c: Contact, type: number): SelectItem {\r\n let labelText = c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n let defaultValue: SelectItem = null;\r\n\r\n switch(type) {\r\n case 1:\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let salesOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.opportunity.assignedContact.id\r\n };\r\n\r\n defaultValue = this.opportunity.assignedContact.id ? salesOppDefaultSelectItem : null;\r\n break;\r\n\r\n case 2:\r\n // c.organization ? labelText += \" / Company: \" + c.organization.name : \"\";\r\n // c.organization ? labelText += \" / Mob: \" + c.organization.mobilePhoneNumber : \"\";\r\n // c.organization ? labelText += \" / Email: \" + c.organization.email : \"\";\r\n\r\n let landOppDefaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.landPurchaseOpp.seller.id\r\n };\r\n\r\n defaultValue = this.landPurchaseOpp.seller.id ? landOppDefaultSelectItem : null;\r\n break;\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n isOpportunityTypeLost() {\r\n const oppTypeIdValue = this.opportunityForm.get('opportunityTypeId').value;\r\n const oppType = this.opportunityTypesOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.Lost)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isOpportunityTypeClosed() {\r\n const oppTypeIdValue = this.opportunityForm.get('opportunityTypeId').value;\r\n const oppType = this.opportunityTypesOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.ClosedSale)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n onGetMainCategories() {\r\n this.propertyService.getMainCategoryTypes().subscribe(\r\n (mainCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n mainCategories.map(p => {\r\n this.MainCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetSubCategories(SelectedMainCat: number[]) {\r\n this.propertyService.getSubCategoryTypes(SelectedMainCat).subscribe(\r\n (subCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.SubCatOptions = [];\r\n subCategories.map(p => {\r\n this.SubCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n\r\n this.cleanSubCategoryValues(subCategories);\r\n }\r\n );\r\n }\r\n\r\n onGetSubCategoriesOnLoad(SelectedMainCat: number[], selectedSubCats: number[]) {\r\n this.propertyService.getSubCategoryTypes(SelectedMainCat).subscribe(\r\n (subCategories: PropertyCategory[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.SubCatOptions = [];\r\n subCategories.map(p => {\r\n this.SubCatOptions.push({ label: p.categoryName, value: p.categoryId });\r\n });\r\n\r\n\r\n\r\n this.cleanSubCategoryValuesOnLoad(selectedSubCats);\r\n }\r\n );\r\n }\r\n\r\n cleanSubCategoryValuesOnLoad(subCategories: number[]) {\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').setValue(subCategories);\r\n }\r\n\r\n cleanSubCategoryValues(subCategories: PropertyCategory[]) {\r\n // Get the current selected sub-categories\r\n var subCatValues = this.opportunityForm.get('opportunitySelectionModel.subCatIds').value;\r\n // Get the sub-categoriy ids retrieved from the database\r\n var subCatIds = subCategories.map(x => x.categoryId);\r\n\r\n var subCatToSelect = subCatIds;//subCatValues.filter(x => subCatIds.includes(x));\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').setValue(subCatToSelect);\r\n }\r\n\r\n onGetPropertyLocalities(SelectedRegions: number[]) {\r\n this.propertyService.getPropertyLocalities(SelectedRegions).subscribe(\r\n (propertyLocalities: PropertyLocality[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.PropertyLocalitiesOptions = [];\r\n propertyLocalities.map(p => {\r\n this.PropertyLocalitiesOptions.push({ label: p.localityName, value: p.localityId });\r\n });\r\n\r\n this.cleanLocalityValues(propertyLocalities);\r\n }\r\n );\r\n }\r\n\r\n cleanLocalityValues(propertyLocalities: PropertyLocality[]) {\r\n // Get the current selected localities from the form\r\n var locValues = this.opportunityForm.get('opportunitySelectionModel.localityIds').value;\r\n // Get the locality ids retrieved from the database\r\n var locIds = propertyLocalities.map(x => x.localityId);\r\n\r\n var locToSelect = locIds;//locValues.filter(x => locIds.includes(x));\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').setValue(locToSelect);\r\n }\r\n\r\n onGetPropertyLocalitiesOnLoad(SelectedRegions: number[],propertyLocaltyIds: number[]) {\r\n this.propertyService.getPropertyLocalities(SelectedRegions).subscribe(\r\n (propertyLocalities: PropertyLocality[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.PropertyLocalitiesOptions = [];\r\n propertyLocalities.map(p => {\r\n this.PropertyLocalitiesOptions.push({ label: p.localityName, value: p.localityId });\r\n });\r\n\r\n this.cleanLocalityValuesOnLoad(propertyLocaltyIds);\r\n }\r\n );\r\n }\r\n\r\n cleanLocalityValuesOnLoad(propertyLocalities: number[]) {\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').setValue(propertyLocalities);\r\n }\r\n\r\n onGetPropertyRegions() {\r\n this.propertyService.getPropertyRegions().subscribe(\r\n (propertyRegions: PropertyRegion[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyRegions.map(p => {\r\n this.PropertyRegionsOptions.push({ label: p.regionName, value: p.regionId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyDealType() {\r\n this.propertyService.getPropertyDealTypes().subscribe(\r\n (propertyDealTypes: PropertyDealType[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyDealTypes.map(p => {\r\n this.PropertyDealTypesOptions.push({ label: p.dealTypeName, value: p.dealTypeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyRooms() {\r\n this.propertyService.getPropertyRooms().subscribe(\r\n (propertyRooms: PropertyAttribute[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyRooms.map(p => {\r\n this.PropertyRoomsOptions.push({ label: p.attributeName, value: p.attributeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyFeatures() {\r\n this.propertyService.getPropertyFeatures().subscribe(\r\n (propertyFeatures: PropertyAttribute[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n propertyFeatures.map(p => {\r\n this.PropertyFeaturesOptions.push({ label: p.attributeName, value: p.attributeId });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onPostPropertyDetails(oppSelection: OpportunitySelection) {\r\n this.propertyService.postPropertyDetails(oppSelection).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property details has been created.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding property details\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdatePropertyDetails(oppSelection: OpportunitySelection) {\r\n this.propertyService.updatePropertyDetails(oppSelection.opportunityId, oppSelection).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The property details has been updated.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating property details\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetPropertyDetails(id: number) {\r\n this.propertyService.getPropertyDetails(id).subscribe(\r\n (propertyOppSelection: PropertyOppSelection) => {\r\n // - Store the retrieved products as options for multiselect\r\n this.opportunity.opportunitySelectionModel = propertyOppSelection.oppSelections.oppSelectionModel;\r\n this.Properties = propertyOppSelection.properties;\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n onGetProducts() {\r\n this.productService.getProducts().subscribe(\r\n (products: Product[]) => {\r\n // - Store the retrieved products as options for multiselect\r\n products.map(p => {\r\n this.productsOptions.push({ label: p.name, value: p.id });\r\n });\r\n\r\n if (this.isEdit && this.opportunityForm ) {\r\n if(this.opportunity.opportunityProducts) {\r\n this.opportunityForm.patchValue({\r\n productIds: this.opportunity.opportunityProducts.map(oP => oP.productId)\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n onGetQuotes(opportunityId: number){\r\n this.quoteService.getQuotesByOpportunityId(opportunityId).subscribe(\r\n (quotes: Quote[]) => {\r\n this.opportunity.quotes = quotes;\r\n quotes.forEach(element => {\r\n if(element.isSelectedInvoice){\r\n this.isQuoteClosed = true;\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n //-------- TASKS --------\r\n onGetTasks(opportunityId: number) {\r\n // Admins can see everyone's tasks\r\n // if (this.authService.isAdmin()) {\r\n this.taskService.getTasksByOpportunityId(opportunityId).subscribe(\r\n (tasks: Task[]) => {\r\n this.opportunity.tasks = tasks;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n // }\r\n }\r\n\r\n onCompleteTask(task: Task) {\r\n let completedTask = this.opportunity.tasks.find(t => t.id === task.id);\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id; // Actual task\r\n\r\n this.taskService.toggleTaskCompletion(task).subscribe(\r\n (response: Response) => {\r\n // NOTE: The update is made in the API!!!\r\n // Here I am setting the task to complete because the update was successful, so we want the change to be shown to the user\r\n completedTask.isTaskComplete = !completedTask.isTaskComplete;\r\n this.taskService.taskCounterChanged.next();\r\n this.taskService.tasksChanged.next();\r\n\r\n // Only ask for new comm. log if task is complete and is assigned to at least one contact\r\n if (task.contactTasks.length > 0 && completedTask.isTaskComplete)\r\n this.onAskForCommunicationLog(completedTask);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error completing task\", error);\r\n }\r\n );\r\n }\r\n\r\n onAskForCommunicationLog(task: Task) {\r\n let firstContact = task.contactTasks[0].contact;\r\n\r\n this.confirmationService.confirm({\r\n header: 'Communication Log',\r\n message: 'The task has been marked as complete. Would you now like to create a new communication log for ' + firstContact.fullName + '?',\r\n accept: () => {\r\n this.router.navigate(['/contacts', firstContact.id, 'communication-history', 'new']);\r\n }\r\n });\r\n }\r\n\r\n rowStyle(task: Task, rowIndex: number) {\r\n if (task.isTaskComplete)\r\n return \"bg-success\";\r\n\r\n // Is Task Late?\r\n let reminderDate1 = new Date(task.reminderDate);\r\n let now = new Date();\r\n\r\n // If the task is not completed and the reminder date has already passed\r\n if (!task.isTaskComplete && now > reminderDate1)\r\n return \"bg-danger\";\r\n\r\n // Is Task For Today?\r\n let reminderDate = new Date(task.reminderDate).setHours(0, 0, 0, 0);\r\n let todayDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n let reminderDateTime = new Date(task.reminderDate);\r\n let todayDateTime = new Date();\r\n\r\n // If the task is not completed and the reminder date is set for today (but time has not yet passed)\r\n if (!task.isTaskComplete && (todayDate === reminderDate && todayDateTime <= reminderDateTime))\r\n return \"bg-warning\";\r\n\r\n return \"\";\r\n }\r\n\r\n onDeleteTask(task: Task) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Task',\r\n message: 'Are you sure you want to delete this task?',\r\n accept: () => {\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.taskService.deleteTask(task).subscribe(\r\n (response: Response) => {\r\n this.onGetTasks(this.opportunity.id);\r\n // this.taskService.tasksChanged.next();\r\n this.taskService.taskCounterChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting task\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for the task has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n\r\n //-------- END TASKS --------\r\n\r\n onGetOpportunity$(id: number): Observable {\r\n return this.opportunityService.getOpportunity(id)\r\n .pipe(\r\n map((result: OpportunityExtended) => {\r\n return result;\r\n })\r\n );\r\n }\r\n\r\n\r\n onGetOpportunityLostTypes() {\r\n this.opportunityLostTypeService.getOpportunityLostTypes().subscribe(\r\n (opportunityLostTypes: OpportunityLostType[]) => {\r\n // Store retrieved opportunity types in the opportunityLostTypesOptions select list\r\n opportunityLostTypes.map(cT => this.opportunityLostTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n let defaultValue = null;\r\n\r\n if (this.isEdit) {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"])\r\n defaultValue = this.opportunity.opportunityLostType ? this.opportunity.opportunityLostTypeId : null;\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"])\r\n defaultValue = this.landPurchaseOpp.opportunity.opportunityLostType ? this.landPurchaseOpp.opportunity.opportunityLostType.id : null;\r\n }\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n opportunityLostTypeId: defaultValue\r\n });\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving lost opportunity types\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Store retrieved users in the usersOptions select list\r\n users.map(u => this.assignedUserOptions.push({ label: u.fullName, value: u.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.authService.applicationProfileUser().id;\r\n else {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"])\r\n defaultValue = this.opportunity.assignedUserAccountId ? this.opportunity.assignedUserAccountId : this.authService.applicationProfileUser().id;\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"])\r\n defaultValue = this.landPurchaseOpp.opportunity.assignedUserAccount ? this.landPurchaseOpp.opportunity.assignedUserAccount.id : this.authService.applicationProfileUser().id;\r\n }\r\n if (this.opportunityForm) {\r\n this.opportunityForm.patchValue({\r\n assignedUserAccountId: defaultValue\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n let labelText =\r\n cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.assignedContactOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetViewings(contactId: number) {\r\n this.opportunityService.getViewingsByContactId(contactId).subscribe(\r\n (viewed: number[]) => {\r\n this.Viewings = viewed;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving viewed properties\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetNotInterested(oppId: number) {\r\n this.opportunityService.getPropertiesNotInterested(oppId).subscribe(\r\n (notInterested: number[]) => {\r\n this.PropNotInterested = notInterested;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving not interested properties\", error);\r\n }\r\n );\r\n }\r\n\r\n onAddOpportunity(newOpportunity: Opportunity, event) {\r\n debugger;\r\n this.opportunityService.addOpportunity(newOpportunity).subscribe(\r\n (response: Response) => {\r\n let oppSelection = new OpportunitySelection();\r\n oppSelection.opportunityId = (response).id;\r\n oppSelection.oppSelectionModel = newOpportunity.opportunitySelectionModel;\r\n this.onPostPropertyDetails(oppSelection);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + newOpportunity.name + \" has been created.\");\r\n\r\n this.router.navigate(['opportunities', 'sales-opp', oppSelection.opportunityId, 'edit']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n private quoteModal(response: any, event: any, oppSelection: OpportunitySelection): void {\r\n this.confirmationService.confirm({\r\n header: 'New Quote',\r\n message: 'Would you like to create a quote for this opportunity?',\r\n accept: () => {\r\n this.router.navigate(['/opportunities','quote',(response).id, 'new']);\r\n },\r\n reject: () => {\r\n if (event == \"ToList\"){\r\n this.router.navigate(['/opportunities/']);\r\n }\r\n else if (event == \"Refresh\") {\r\n this.router.navigate(['opportunities', 'sales-opp', oppSelection.opportunityId, 'edit'])\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeMainCatogory() {\r\n var selectedMainCat = this.opportunityForm.get('opportunitySelectionModel.mainCatIds').value;\r\n if (selectedMainCat != null && selectedMainCat.length > 0) {\r\n this.onGetSubCategories(selectedMainCat);\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').enable();\r\n }\r\n else {\r\n this.opportunityForm.get('opportunitySelectionModel.subCatIds').disable();\r\n }\r\n }\r\n\r\n onChangeRegion() {\r\n var selectedReg = this.opportunityForm.get('opportunitySelectionModel.regionIds').value;\r\n if (selectedReg != null && selectedReg.length > 0) {\r\n this.onGetPropertyLocalities(selectedReg);\r\n\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').enable();\r\n }\r\n else {\r\n this.opportunityForm.get('opportunitySelectionModel.localityIds').disable();\r\n }\r\n\r\n }\r\n\r\n onUpdateOpportunity(newOpportunity: Opportunity, event) {\r\n\r\n this.opportunityService.updateOpportunity(newOpportunity).subscribe(\r\n (response: Response) => {\r\n let oppSelection = new OpportunitySelection();\r\n oppSelection.opportunityId = newOpportunity.id;\r\n oppSelection.oppSelectionModel = newOpportunity.opportunitySelectionModel;\r\n debugger;\r\n this.onUpdatePropertyDetails(oppSelection);\r\n this.toastService.createSuccessMessage(\"Success\", \"The opportunity \" + newOpportunity.name + \" has been updated.\");\r\n\r\n if (event == \"ToList\"){\r\n this.router.navigate(['/opportunities/']);\r\n }\r\n else if (event == \"Refresh\") {\r\n window.location.reload();\r\n }\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating opportunity\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit(event) {\r\n if (this.selectedCategoryType == this.CategoryTypeEnums[\"Sales Opportunity\"]) {\r\n this.submitSalesOpportunity();\r\n }\r\n else if (this.selectedCategoryType == this.CategoryTypeEnums[\"Land Purchases Opportunity\"]) {\r\n // this.populateProjectData();\r\n this.opportunityForm = this.formBuilder.sanitizeFormValues(this.opportunityForm);\r\n\r\n\r\n this.submitLandPurchaseOpportunity();\r\n }\r\n }\r\n\r\n private populateProjectData(): void {\r\n let project = this.opportunityForm.get('project') as FormGroup;\r\n\r\n let plotDescription = this.opportunityForm.get('plotDescription');\r\n let details = this.opportunityForm.get('details');\r\n let address = this.opportunityForm.get('address') as FormGroup;\r\n let sellingPrice = this.opportunityForm.get('sellingPrice');\r\n\r\n address.removeControl(\"id\");\r\n\r\n project.get('proposalDescription').setValue(`${plotDescription.value} ${details.value}`);\r\n\r\n project.get('address').setValue(address.getRawValue());\r\n project.get('sellingPrice').setValue(sellingPrice.value);\r\n }\r\n\r\n private submitSalesOpportunity(): void {\r\n debugger;\r\n let newOpportunity = this.formBuilder.sanitizeFormValues(this.opportunityForm).getRawValue();\r\n\r\n debugger;\r\n // This is to pass correct value (contact id) from the autocomplete selection and to sanitize it\r\n // (Eg: writing random string in search and submit form would return an api error response)\r\n if (newOpportunity.assignedContactId && newOpportunity.assignedContactId.value)\r\n newOpportunity.assignedContactId = newOpportunity.assignedContactId.value;\r\n else\r\n newOpportunity.assignedContactId = null;\r\n\r\n newOpportunity.opportunityProducts = this.populateOpportunityProducts(newOpportunity.productIds);\r\n\r\n if (this.isEdit) {\r\n newOpportunity.id = this.opportunity.id; // - Set id of edited opportunity to its original id, same with externalId and createdById\r\n newOpportunity.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateOpportunity(newOpportunity, event);\r\n }\r\n else {\r\n newOpportunity.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n debugger;\r\n this.onAddOpportunity(newOpportunity, event);\r\n }\r\n }\r\n\r\n private submitLandPurchaseOpportunity(): void {\r\n if (this.opportunityForm.valid) {\r\n this.opportunityForm = this.formBuilder.sanitizeFormValues(this.opportunityForm);\r\n\r\n const MUT_VARS = {\r\n item: this.opportunityForm.getRawValue()\r\n };\r\n\r\n //the dropdown used is storing it as {label, value} object\r\n MUT_VARS.item.sellerId = MUT_VARS.item.sellerId.value;\r\n\r\n //if we are create a new land purchase opportunity, we don't have to send data for the project\r\n MUT_VARS.item.project = null;\r\n\r\n if (!this.isEdit) {\r\n let mutation$ = this._createLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).createLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((createdLandPurchaseOpportunity: LandPurchaseOpportunity) => {\r\n this.toastService.createSuccessMessage(\"Success\", `Land Purchase Opportunity ${createdLandPurchaseOpportunity.code} has been successfully created!`);\r\n this.router.navigate([\"/opportunities\", \"list\"]);\r\n })\r\n );\r\n }\r\n\r\n else {\r\n\r\n const MUT_VARS = {\r\n item: this.opportunityForm.getRawValue()\r\n };\r\n\r\n MUT_VARS.item.sellerId = MUT_VARS.item.sellerId.value;\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n\r\n if (this.isProjectCreated === false) {\r\n this.populateProjectData();\r\n\r\n let selectedProjectManager = this.opportunityForm.get('project').get('projectManagerId');\r\n\r\n let projectManagerData = this.allAccountProfiles.find(a => a.subjectId === selectedProjectManager.value);\r\n\r\n let projectManager = {\r\n subjectId: projectManagerData.subjectId,\r\n firstName: projectManagerData.firstName,\r\n lastName: projectManagerData.lastName\r\n };\r\n\r\n\r\n MUT_VARS.item.project = this.opportunityForm.get('project').value\r\n\r\n delete MUT_VARS.item.project.projectManagerId;\r\n\r\n MUT_VARS.item.project.projectManager = projectManager;\r\n\r\n console.log(\"CLOSED --> \", MUT_VARS);\r\n }\r\n\r\n else {\r\n MUT_VARS.item.project = null;\r\n }\r\n\r\n }\r\n else {\r\n MUT_VARS.item.project = null;\r\n console.log(\"NOT CLOSED --> \", MUT_VARS);\r\n }\r\n\r\n\r\n\r\n let mutation$ = this._updateLandPurchaseOpportunityMutation.mutate(MUT_VARS);\r\n\r\n this.subscriptions$.push(\r\n mutation$\r\n .pipe(\r\n map(result => {\r\n const item = (result).data;\r\n return item ? (item).updateLandPurchaseOpportunity.data as LandPurchaseOpportunity : new LandPurchaseOpportunity();\r\n })\r\n )\r\n .subscribe((updatedLandPurchaseOpportunity: LandPurchaseOpportunity) => {\r\n this.landPurchaseOpp = updatedLandPurchaseOpportunity;\r\n\r\n if (this.isOpportunityTypeClosed()) {\r\n this.disableLandingPurchaseOppFormIfClosed();\r\n }\r\n\r\n this.toastService.createSuccessMessage(\"Success\", `Land Purchase Opportunity ${updatedLandPurchaseOpportunity.code} successfully updated!`);\r\n this.router.navigate([\"/opportunities\", \"list\"]);\r\n })\r\n );\r\n }\r\n }\r\n else {\r\n this._formUtil.markFormControlsAsTouched(this.opportunityForm);\r\n }\r\n }\r\n\r\n populateOpportunityProducts(assignedProductIds: number[]) {\r\n let opportunityProducts: {}[] = [];\r\n\r\n if (assignedProductIds != null && assignedProductIds.length > 0) {\r\n for (let id of assignedProductIds) {\r\n let opportunityProduct = {\r\n productId: id,\r\n opportunityId: this.opportunity.id,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n opportunityProducts.push(opportunityProduct);\r\n }\r\n }\r\n\r\n return opportunityProducts;\r\n }\r\n\r\n\r\n onRowRender(rowData){\r\n let rowFormGroup = rowData as Quote;\r\n if(rowFormGroup.isSelectedInvoice == true) return 'isSelectedInvoice';\r\n else return '';\r\n }\r\n\r\n onProjectStartDateChange(event: any): void {\r\n let projectStartDate = this.opportunityForm.get('project').get('startDate');\r\n let projectDueDate = this.opportunityForm.get('project').get('dueDate');\r\n\r\n if (event != null) {\r\n projectDueDate.enable();\r\n\r\n this.minDueDate = new Date(event);\r\n\r\n //if start date is gt the due date, reset it so that a waning message is showm\r\n if (projectDueDate.value != null) {\r\n if (new Date(projectStartDate.value).getTime() > new Date(projectDueDate.value).getTime()) {\r\n projectDueDate.setValue(null);\r\n projectDueDate.markAsTouched();\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //google maps\r\n initGoogleMap() {\r\n let lat = this.isEdit ?\r\n this.landPurchaseOpp.address.locationLat :\r\n GoogleMaps.DefaultLocationLat;\r\n\r\n let lng = this.isEdit ?\r\n this.landPurchaseOpp.address.locationLng :\r\n GoogleMaps.DefaultLocationLng;\r\n\r\n let location = this.isEdit ?\r\n this.landPurchaseOpp.address.addressLine1 :\r\n GoogleMaps.DefaultLocation;\r\n\r\n if (lat && lng) {\r\n this.options = {\r\n center: { lat: lat, lng: lng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n position: { lat: lat, lng: lng },\r\n title: location,\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine1: location,\r\n locationLat: lat,\r\n locationLng: lng\r\n }\r\n });\r\n } else {\r\n this.options = {\r\n center: { lat: GoogleMaps.DefaultLocationLat, lng: GoogleMaps.DefaultLocationLng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n\r\n\r\n }\r\n }\r\n\r\n initGoogleMapSearch() {\r\n if (!this.isGoogleMapsSearchInit) {\r\n let input = this.gMapsSearchElementRef.nativeElement;\r\n\r\n let options = {\r\n componentRestrictions: { country: \"mt\" },\r\n RankBy: 'PROMINENCE'\r\n };\r\n\r\n let autocomplete = new google.maps.places.Autocomplete(input, options);\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n let place = autocomplete.getPlace();\r\n this.onMapPlaceChanged(place);\r\n });\r\n\r\n this.isGoogleMapsSearchInit = true;\r\n }\r\n }\r\n\r\n onMapPlaceChanged(place) {\r\n if(place.address_components) {\r\n let streetnumberItem = place.address_components.find(x => x.types[0] === 'street_number');\r\n let streetItem = place.address_components.find(x => x.types[0] === 'route');\r\n let localityItem = place.address_components.find(x => x.types[0] === 'locality');\r\n let countryItem = place.address_components.find(x => x.types[0] === 'country');\r\n\r\n this.opportunityForm.patchValue({\r\n addressLine1: streetnumberItem ? streetnumberItem.long_name : \"\",\r\n addressLine3: streetItem ? streetItem.long_name : \"\",\r\n addressLine4: localityItem ? localityItem.long_name : \"\",\r\n country: countryItem ? countryItem.long_name : \"\",\r\n });\r\n\r\n }\r\n\r\n if (place.geometry) {\r\n let lat = place.geometry.location.lat();\r\n let lng = place.geometry.location.lng();\r\n let locationName = place.formatted_address;\r\n\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n title: locationName,\r\n position: { lat: lat, lng: lng },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n this.gmap.map.panTo({ lat: lat, lng: lng });\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine3: locationName,\r\n locationLat: lat,\r\n locationLng: lng\r\n }\r\n });\r\n }\r\n else {\r\n this.overlays = [\r\n this.marker = new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n this.opportunityForm.patchValue({\r\n address: {\r\n locationLat: null,\r\n locationLng: null\r\n }\r\n });\r\n }\r\n\r\n this.ref.detectChanges();\r\n }\r\n\r\n handleMapClick(event){\r\n var location = event.latLng;\r\n\r\n if (this.marker) {\r\n this.marker.setPosition(location);\r\n } else {\r\n this.marker = new google.maps.Marker({\r\n position: location,\r\n map: this.gmap.map\r\n });\r\n }\r\n\r\n this.gmap.map.panTo(location);\r\n\r\n\r\n let address$ = this.geocodeLatLng(location)\r\n .subscribe(result => {\r\n if (result.length === 3) {\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine2: result[0].long_name, //street name\r\n addressLine3: result[1].long_name , //locality,\r\n country: result[2].long_name , //country,\r\n\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n }\r\n });\r\n }\r\n else if (result.length === 4) {\r\n this.opportunityForm.patchValue({\r\n address: {\r\n addressLine2: result[0].long_name + \", \" + result[1].long_name, //street name\r\n addressLine3: result[2].long_name, //locality,\r\n country: result[3].long_name , //country,\r\n\r\n locationLat: location.lat(),\r\n locationLng: location.lng()\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.subscriptions$.push(address$);\r\n }\r\n\r\n geocodeLatLng(location: any) : Observable {\r\n\r\n return new Observable((observer) => {\r\n const geocoder = new google.maps.Geocoder;\r\n\r\n const latlng = {lat: location.lat(), lng: location.lng()};\r\n geocoder.geocode({'location': latlng}, function(results, status) {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n const address = results[0].address_components\r\n observer.next(address);\r\n observer.complete();\r\n } else {\r\n observer.error(\"No result found\");\r\n observer.complete();\r\n }\r\n } else {\r\n observer.error(\"Geocoder failed due to: \" + status);\r\n observer.complete();\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Organizations
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n There are currently {{organizations.length}} organizations\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ organization.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ organization.createdByUserAccountId > 0 ? organization.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ organization.defaultContact ? organization.defaultContact?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ organization.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ organization.updatedByUserAccount ? organization.updatedByUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9uLWxpc3Qvb3JnYW5pemF0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { OrganizationService } from \"../../shared/services/organization.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { ConfirmationService, SelectItem } from \"primeng/primeng\";\r\nimport { TableUtilityService } from '../../shared/services/table-utility.service';\r\nimport { CookieService } from 'ngx-cookie';\r\n\r\nimport { Organization } from \"../../shared/models/organization.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-organization-list',\r\n templateUrl: './organization-list.component.html',\r\n styleUrls: ['./organization-list.component.scss']\r\n})\r\nexport class OrganizationListComponent implements OnInit {\r\n organizations: Organization[] = [];\r\n isAnim: boolean = true;\r\n\r\n /** Column Toggling */\r\n columnOptions: SelectItem[];\r\n selectedCols: any[]; // - Contains the table columns that should be visible\r\n allSelectableCols: any[] = []; // - Contains all table columns that may be toggled on or off\r\n \r\n selectedColsDefault: any[] = []; // - Contains the columns that are shown by default if no cookie is stored\r\n \r\n constructor(\r\n public authService: AuthService,\r\n private organizationService: OrganizationService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService,\r\n private cookieService: CookieService, \r\n private tableUtilService: TableUtilityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetOrganizations(); \r\n this.initColumnOptions();\r\n\r\n // Listen to changes made to organizations\r\n this.organizationService.typesChanged.subscribe(\r\n () => {\r\n this.onGetOrganizations();\r\n }\r\n );\r\n }\r\n\r\n initColumnOptions() {\r\n this.allSelectableCols = this.tableUtilService.getAllSelectableOrganizationCols();\r\n this.selectedColsDefault = this.tableUtilService.getSelectedOrganizationColsDefault();\r\n this.columnOptions = this.tableUtilService.getColumnOptions(this.columnOptions, this.allSelectableCols);\r\n\r\n let selectedColsCookie = this.cookieService.getObject(\"crm_selectedOrganizationCols\") as any[];\r\n if (selectedColsCookie)\r\n this.selectedCols = selectedColsCookie;\r\n else\r\n this.selectedCols = this.selectedColsDefault;\r\n }\r\n\r\n // - Saves options in a cookie whenever they are changed\r\n onColumnOptionsChange() {\r\n this.cookieService.putObject(\"crm_selectedOrganizationCols\", this.selectedCols);\r\n }\r\n\r\n isColVisible(colName: string) {\r\n if (this.selectedCols.find(sC => sC.value === colName))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n onGetOrganizations() {\r\n this.organizationService.getOrganizations().subscribe(\r\n (organizations: Organization[]) => {\r\n this.organizations = organizations;\r\n console.log(this.organizations);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving organizations\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteOrganization(organization: Organization) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the organization ' + organization.name + '?',\r\n accept: () => {\r\n organization.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.organizationService.deleteOrganization(organization).subscribe(\r\n (response: Response) => {\r\n this.onGetOrganizations();\r\n this.toastService.createSuccessMessage(\"Success\", \"The organization \" + organization.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting organization\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for organization \" + organization.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n\r\n}\r\n\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update Organization
\\r\\n
New Organization
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Primary Details

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Organizations must have either an Email or a Mobile or Office value.\\r\\n \\r\\n \\r\\n Please enter a valid email address.\\r\\n \\r\\n \\r\\n There is already a organization registered with that email address.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Organizations must have either an Email or a Mobile or Office value.\\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Organizations must have either an Email or a Mobile or Office value.\\r\\n \\r\\n \\r\\n Please enter a valid phone number.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Assigned Contact:\\r\\n {{ organizationForm.get('defaultContactId').value.label }}.\\r\\n

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

\\r\\n No contact is currently default.\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n The Assigned Contact field is required.\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Address Details\\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9uLW1hbmFnZS9vcmdhbml6YXRpb24tbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { AuditManager, PrepopulatedEntities } from \"app.constant\";\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { OrganizationService } from '../../shared/services/organization.service';\r\n\r\nimport { Organization } from '../../shared/models/organization.model';\r\n\r\nimport { CustomValidators } from 'ng2-validation';\r\nimport { SelectItem, ConfirmationService, AutoComplete } from \"primeng/primeng\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { ContactService } from '../../shared/services/contact.service';\r\nimport { Contact } from '../../shared/models/contact.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { PaymentTermService } from 'app/views/shared/services/payment-term.service';\r\nimport { PaymentTerm } from 'app/views/shared/models/payment-term.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-organization-manage',\r\n templateUrl: './organization-manage.component.html',\r\n styleUrls: ['./organization-manage.component.scss']\r\n})\r\nexport class OrganizationManageComponent implements OnInit {\r\n\r\n organizationForm: FormGroup; // - Stores the organization form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a organization if true and add a new organization if false\r\n\r\n organizations: Organization[] = []; // - Stores all organizations retrieved from db to validate unique values\r\n organization: Organization = new Organization();// - Stores Organization to populate form with a new / existing organization's values\r\n defaultContactOptions: SelectItem[] = []; // - Stores Contacts to select the Assigned Contact of this opportunity\r\n paymentTermOptions: SelectItem[] = []; // - Stores Complaint Types\r\n\r\n paymentTermId: number = 0;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toastService: ToastService,\r\n private organizationService: OrganizationService,\r\n public paymentTermService: PaymentTermService,\r\n private confirmationService: ConfirmationService,\r\n private contactService: ContactService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n initForm() {\r\n this.organizationForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.organization.name),\r\n email: this.formBuilder.control(this.organization.email, [Validators.required]),\r\n status: this.formBuilder.control(this.organization.status === AuditManager.StatusActive || !this.organization.status ? true : false),\r\n mobilePhoneNumber: this.formBuilder.control(this.organization.mobilePhoneNumber, [Validators.required]),\r\n officePhoneNumber: this.formBuilder.control(this.organization.officePhoneNumber),\r\n addressLine1: this.formBuilder.control(this.organization.addressLine1),\r\n addressLine2: this.formBuilder.control(this.organization.addressLine2),\r\n addressLine3: this.formBuilder.control(this.organization.addressLine3),\r\n addressLine4: this.formBuilder.control(this.organization.addressLine4),\r\n defaultContactId: this.formBuilder.control(this.organization.defaultContactId),\r\n paymentTermId: this.formBuilder.control(this.organization.paymentTermId),\r\n });\r\n\r\n this.onGetPaymentTerms();\r\n this.onFormValueChanges();\r\n\r\n\r\n if (this.isEdit && this.organization.defaultContact) {\r\n let c = this.organization.defaultContact;\r\n let labelText = c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let defaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: this.organization.defaultContactId\r\n };\r\n\r\n let defaultValue = this.organization.defaultContactId ? defaultSelectItem : null;\r\n\r\n this.organizationForm.patchValue({\r\n defaultContactId: defaultValue\r\n });\r\n }\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let contactId = queryParam['contact'];\r\n if (contactId != null) {\r\n\r\n this.contactService.getContact(+contactId).subscribe(\r\n (contact: Contact) => {\r\n let defaultValue: SelectItem = {\r\n label: contact.fullName,\r\n value: +contactId\r\n };\r\n\r\n this.organizationForm.patchValue({\r\n defaultContactId: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n\r\n this.isFormInit = true;\r\n }\r\n\r\n onFormValueChanges() {\r\n this.onEmailChange();\r\n this.onMobilePhoneNumberChange();\r\n }\r\n\r\n\r\n onEmailChange() {\r\n this.organizationForm.controls[\"email\"].valueChanges.subscribe(\r\n (email: string) => {\r\n // If email field is empty then Mobile field is set to required\r\n if (email.trim() === \"\") {\r\n this.organizationForm.controls['mobilePhoneNumber'].setValidators([\r\n Validators.required\r\n ]);\r\n this.organizationForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n // If email was provided then Mobile field is no longer required\r\n else {\r\n this.organizationForm.controls['mobilePhoneNumber'].clearValidators();\r\n this.organizationForm.controls['mobilePhoneNumber'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onMobilePhoneNumberChange() {\r\n this.organizationForm.controls[\"mobilePhoneNumber\"].valueChanges.subscribe(\r\n (mobilePhoneNumber: string) => {\r\n // const organizationEmails = this.organizations.map(c => c.email);\r\n // if (this.isEdit)\r\n // organizationEmails.splice(organizationEmails.indexOf(this.organization.email), 1);\r\n\r\n // If MobilePhoneNumber field is empty then Email field is set to required\r\n if (mobilePhoneNumber.trim() === \"\") {\r\n // this.organizationForm.controls['email'].setValidators([\r\n // Validators.required,\r\n // valueExistsValidator(organizationEmails)\r\n // ]);\r\n this.organizationForm.controls['email'].setValidators([\r\n Validators.required\r\n ]);\r\n this.organizationForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n // If MobilePhoneNumber was provided then Email field is no longer required\r\n else {\r\n // this.organizationForm.controls['email'].setValidators([\r\n // valueExistsValidator(organizationEmails)\r\n // ]);\r\n this.organizationForm.controls['email'].clearValidators();\r\n this.organizationForm.controls['email'].updateValueAndValidity({ emitEvent: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n setupForm() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const organizationId = params['id'];\r\n this.isEdit = organizationId != null; // - Returns true if an id was present within the url\r\n\r\n if (this.isEdit) {\r\n this.organizationService.getOrganization(+organizationId).subscribe(\r\n (organization: Organization) => {\r\n this.organization = organization;\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving organization\", error);\r\n }\r\n );\r\n\r\n // Redirect to 404 page if the selected organization could not be found\r\n if (!this.organization) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n else\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n onGetPaymentTerms() {\r\n this.paymentTermService.getPaymentTerms().subscribe(\r\n (paymentTerms: PaymentTerm[]) => {\r\n paymentTerms.map(oT => this.paymentTermOptions.push({ label: oT.name, value: oT.id }));\r\n\r\n let defaultValue = 0;\r\n if (!this.isEdit)\r\n defaultValue = this.paymentTermOptions[0].value;\r\n else\r\n defaultValue = this.organization.paymentTerm ? this.organization.paymentTermId : null;\r\n\r\n this.organizationForm.patchValue({\r\n paymentTermId: defaultValue\r\n });\r\n\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newOrganization = this.formBuilder.sanitizeFormValues(this.organizationForm).value;\r\n\r\n // This is to pass correct value (contact id) from the autocomplete selection and to sanitize it\r\n // (Eg: writing random string in search and submit form would return an api error response)\r\n if (newOrganization.defaultContactId && newOrganization.defaultContactId.value)\r\n newOrganization.defaultContactId = newOrganization.defaultContactId.value;\r\n else\r\n newOrganization.defaultContactId = null;\r\n\r\n\r\n\r\n // Status is a checkbox value so only true or false can be returned\r\n // True - Active Organization, False - Hidden Organization\r\n if (newOrganization.status)\r\n newOrganization.status = AuditManager.StatusActive;\r\n else\r\n newOrganization.status = AuditManager.StatusHidden;\r\n\r\n //newOrganization.paymentTermId = 0;\r\n\r\n if (this.isEdit) {\r\n newOrganization.id = this.organization.id; // - Set id of edited organization to its original id, same with externalId and createdById\r\n newOrganization.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateOrganization(newOrganization);\r\n }\r\n else {\r\n newOrganization.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddOrganization(newOrganization);\r\n }\r\n }\r\n\r\n onAddOrganization(newOrganization: Organization) {\r\n\r\n this.organizationService.addOrganization(newOrganization).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The organization \" + newOrganization.name + \" has been created.\");\r\n\r\n this.confirmationService.confirm({\r\n header: 'New Contact',\r\n message: 'Would you like to create a new Contact under this Organization?',\r\n accept: () => {\r\n\r\n this.router.navigate(['/contacts','new',(response).id]);\r\n },\r\n reject: () => {\r\n this.router.navigate(['/organizations/']);\r\n }\r\n });\r\n\r\n\r\n },\r\n (error) => {\r\n this.toastService.createErrorMessage(\"Error adding organization\", error);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n onUpdateOrganization(newOrganization: Organization) {\r\n this.organizationService.updateOrganization(newOrganization).subscribe(\r\n (response: Response) => {\r\n this.toastService.createSuccessMessage(\"Success\", \"The organization \" + newOrganization.name + \" has been updated.\");\r\n\r\n this.router.navigate(['/organizations/']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating organization\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n cT.companyName ? labelText += \" / Company: \" + cT.companyName : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.defaultContactOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { OrganizationsComponent } from \"../organizations/organizations.component\";\r\nimport { OrganizationListComponent } from \"../organizations/organization-list/organization-list.component\";\r\nimport { OrganizationManageComponent } from \"../organizations/organization-manage/organization-manage.component\";\r\n\r\nconst organizationsRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'organizations', component: OrganizationsComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: OrganizationListComponent },\r\n { path: ':id/edit', component: OrganizationManageComponent },\r\n { path: 'new', component: OrganizationManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(organizationsRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OrganizationsRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-organizations',\r\n templateUrl: './organizations.component.html',\r\n styleUrls: ['./organizations.component.scss']\r\n})\r\nexport class OrganizationsComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\n\r\nimport { OrganizationsComponent } from './organizations.component';\r\nimport { OrganizationListComponent } from './organization-list/organization-list.component';\r\nimport { OrganizationManageComponent } from './organization-manage/organization-manage.component';\r\nimport { OrganizationsRoutingModule } from './organizations-routing.module';\r\n// import { PaymentTermsModule } from './payment-terms/payment-terms.module';\r\nimport { DropdownModule } from 'primeng/primeng';\r\n\r\n@NgModule({\r\n declarations: [\r\n OrganizationsComponent,\r\n OrganizationListComponent,\r\n OrganizationManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n OrganizationsRoutingModule,\r\n// PaymentTermsModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n CollapseModule,\r\n ]\r\n})\r\nexport class OrganizationsModule { }\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Snag List Reports
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3JlcG9ydHMvY29tcGxhaW50cy9jb21wbGFpbnRzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ComplaintTypeService } from \"../../shared/services/complaint-type.service\";\r\nimport { ComplaintService } from '../../shared/services/complaint.service';\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { ComplaintType } from \"../../shared/models/complaint-type.model\";\r\nimport { ComplaintStatus } from 'app/views/shared/models/complaint-status.model';\r\n\r\nimport { SelectItem } from \"primeng/primeng\";\r\nimport { Response } from \"@angular/http\";\r\nimport { AppSettings } from 'app.settings'\r\n\r\n\r\n@Component({\r\n selector: 'app-complaints',\r\n templateUrl: './complaints.component.html',\r\n styleUrls: ['./complaints.component.scss']\r\n})\r\nexport class ComplaintsComponent implements OnInit {\r\n users: CrmUser[] = []; // - Stores all contacts to populate dropdown options\r\n usersOptions: SelectItem[] = []; // - Stores Assign User Dropdown Options\r\n complaintTypeOptions: SelectItem[] = []; // - Stores Complaint Types (Closed, Lost, Open)\r\n complaintStatusOptions: SelectItem[] = []; // - Stores Complaint Statuses\r\n\r\n selectedUserOption: any; // - Stores the selected dropdown option which can be 'all' or the id of a contact\r\n complaintTypeId: number = 0;\r\n complaintStatusId: any;\r\n fromDate: Date = null;\r\n toDate: Date = null;\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n accessToken = this.authService.currUser().access_token;//localStorage.getItem('accessToken');\r\n\r\n // Datepicker\r\n dateRange: string = (new Date().getFullYear() - 150) + ':' + new Date().getFullYear(); // - Range: 150 Years Ago until Today\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public complaintTypeService: ComplaintTypeService,\r\n public complaintService: ComplaintService,\r\n private userService: UserService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.authService.isAdmin()) {\r\n this.usersOptions.push({ label: 'All', value: 'all' });\r\n this.complaintStatusOptions.push({ label: 'All', value: 'all' });\r\n this.complaintTypeOptions.push({ label: 'All', value: 'all' });\r\n }\r\n\r\n\r\n\r\n this.onGetUsers();\r\n this.onGetComplaintTypes();\r\n this.onGetComplaintStatuses();\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Only Admins can get reports about all users\r\n if (this.authService.isAdmin())\r\n users.map(u => this.usersOptions.push({ label: u.fullName, value: u.id }));\r\n else {\r\n let user = users.find(u => u.id === this.authService.applicationProfileUser().id);\r\n this.usersOptions.push({ label: user.fullName, value: user.id });\r\n this.selectedUserOption = user.id;\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetComplaintTypes() {\r\n this.complaintTypeService.getComplaintTypes().subscribe(\r\n (complaintTypes: ComplaintType[]) => {\r\n complaintTypes.map(oT => this.complaintTypeOptions.push({ label: oT.name, value: oT.id }));\r\n //this.complaintTypeId = complaintTypes[0].id; // - First option as default option\r\n }\r\n );\r\n }\r\n\r\n onGetComplaintStatuses() {\r\n this.complaintService.getComplaintStatuses().subscribe(\r\n (complaintStatuses: ComplaintStatus[]) => {\r\n complaintStatuses.map(oT => this.complaintStatusOptions.push({ label: oT.name, value: oT.id }));\r\n //this.complaintStatusId = complaintStatuses[0].id; // - First option as default option\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Contacts Reports
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3JlcG9ydHMvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\n\r\nimport { SelectItem } from \"primeng/primeng\";\r\nimport { Response } from \"@angular/http\";\r\nimport { AppSettings } from 'app.settings'\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.scss']\r\n})\r\nexport class ContactsComponent implements OnInit {\r\n users: CrmUser[] = []; // - Stores all contacts to populate dropdown options\r\n usersOptions: SelectItem[] = []; // - Stores Assign User Dropdown Options\r\n\r\n selectedUserOption: any; // - Stores the selected dropdown option which can be 'all' or the id of a contact\r\n fromDate: Date = null;\r\n toDate: Date = null;\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n // Datepicker\r\n dateRange: string = (new Date().getFullYear() - 150) + ':' + new Date().getFullYear(); // - Range: 150 Years Ago until Today\r\n\r\n accessToken = this.authService.currUser().access_token;//localStorage.getItem('accessToken'); \r\n \r\n constructor(\r\n public authService: AuthService,\r\n private userService: UserService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.authService.isAdmin())\r\n this.usersOptions.push({ label: 'All', value: 'all' });\r\n\r\n this.onGetUsers();\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Only Admins can get reports about all users\r\n if (this.authService.isAdmin())\r\n users.map(u => this.usersOptions.push({ label: u.fullName, value: u.id }));\r\n else {\r\n let user = users.find(u => u.id === this.authService.applicationProfileUser().id);\r\n this.usersOptions.push({ label: user.fullName, value: user.id });\r\n this.selectedUserOption = user.id;\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Lead Conversions Reports
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3JlcG9ydHMvY29udmVyc2lvbnMvY29udmVyc2lvbnMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\n\r\nimport { SelectItem } from \"primeng/primeng\";\r\nimport { Response } from \"@angular/http\";\r\nimport { AppSettings } from 'app.settings'\r\n\r\n\r\n@Component({\r\n selector: 'app-conversions',\r\n templateUrl: './conversions.component.html',\r\n styleUrls: ['./conversions.component.scss']\r\n})\r\nexport class ConversionsComponent implements OnInit {\r\n users: CrmUser[] = []; // - Stores all contacts to populate dropdown options\r\n usersOptions: SelectItem[] = []; // - Stores Assign User Dropdown Options\r\n convertedOptions: SelectItem[] = [];\r\n\r\n selectedUserOption: any; // - Stores the selected dropdown option which can be 'all' or the id of a contact\r\n isConverted: boolean = true;\r\n fromDate: Date = null;\r\n toDate: Date = null;\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n accessToken = this.authService.currUser().access_token;//localStorage.getItem('accessToken'); \r\n \r\n // Datepicker\r\n dateRange: string = (new Date().getFullYear() - 150) + ':' + new Date().getFullYear(); // - Range: 150 Years Ago until Today\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private userService: UserService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.authService.isAdmin())\r\n this.usersOptions.push({ label: 'All', value: 'all' });\r\n\r\n this.convertedOptions.push({ label: 'Leads Converted', value: true })\r\n this.convertedOptions.push({ label: 'Pending Leads', value: false })\r\n this.onGetUsers();\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Only Admins can get reports about all users\r\n if (this.authService.isAdmin())\r\n users.map(u => this.usersOptions.push({ label: u.fullName, value: u.id }));\r\n else {\r\n let user = users.find(u => u.id === this.authService.applicationProfileUser().id);\r\n this.usersOptions.push({ label: user.fullName, value: user.id });\r\n this.selectedUserOption = user.id;\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Opportunities Reports
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3JlcG9ydHMvb3Bwb3J0dW5pdGllcy9vcHBvcnR1bml0aWVzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { OpportunityTypeService } from \"../../shared/services/opportunity-type.service\";\r\nimport { OpportunityLostTypeService } from '../../shared/services/opportunity-lost-type.service';\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\n\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { OpportunityType } from \"../../shared/models/opportunity-type.model\";\r\n\r\nimport { SelectItem, AutoComplete } from \"primeng/primeng\";\r\nimport { Response } from \"@angular/http\";\r\nimport { ApiEndPoints, PrepopulatedOpportunityTypes } from \"app.constant\";\r\nimport { OpportunityLostType } from 'app/views/shared/models/opportunity-lost-type.model';\r\nimport { AppSettings } from 'app.settings';\r\nimport { Contact } from 'app/views/shared/models/contact.model';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { AngularWaitBarrier } from 'blocking-proxy/built/lib/angular_wait_barrier';\r\n\r\n@Component({\r\n selector: 'app-opportunities',\r\n templateUrl: './opportunities.component.html',\r\n styleUrls: ['./opportunities.component.scss']\r\n})\r\nexport class OpportunitiesComponent implements OnInit {\r\n users: CrmUser[] = []; // - Stores all contacts to populate dropdown options\r\n usersOptions: SelectItem[] = []; // - Stores Assign User Dropdown Options\r\n opportunityTypeOptions: SelectItem[] = []; // - Stores Opportunity Types (Closed, Lost, Open)\r\n opportunityLostTypeOptions: SelectItem[] = []; // - Stores Opportunity Lost Types\r\n contactsOptions: SelectItem[] = [];\r\n selectedUserOption: any; // - Stores the selected dropdown option which can be 'all' or the id of a contact\r\n selectedContactOption: number[]= [];\r\n opportunityTypeId: number = 0;\r\n opportunityLostTypeId: any;\r\n fromDate: Date = null;\r\n toDate: Date = null;\r\n selectedProbabilityMin:any;\r\n selectedProbabilityMax:any;\r\n selectedValueMin:any;\r\n selectedValueMax:any;\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n accessToken = this.authService.currUser().access_token;//localStorage.getItem('accessToken');\r\n\r\n // Datepicker\r\n dateRange: string = (new Date().getFullYear() - 150) + ':' + new Date().getFullYear(); // - Range: 150 Years Ago until Today\r\n\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public opportunityTypeService: OpportunityTypeService,\r\n public opportunityLostTypeService: OpportunityLostTypeService,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.authService.isAdmin()) {\r\n this.usersOptions.push({ label: 'All', value: 'all' });\r\n this.opportunityTypeOptions.push({ label: 'All', value: 'all' });\r\n this.opportunityLostTypeOptions.push({ label: 'All', value: 'all' });\r\n }\r\n\r\n this.onGetContacts();\r\n this.onGetUsers();\r\n this.onGetOpportunityTypes();\r\n this.onGetOpportunityLostTypes();\r\n }\r\n\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n //cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.contactsOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n }\r\n );\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Only Admins can get reports about all users\r\n if (this.authService.isAdmin())\r\n users.map(u => this.usersOptions.push({ label: u.fullName, value: u.id }));\r\n else {\r\n let user = users.find(u => u.id === this.authService.applicationProfileUser().id);\r\n this.usersOptions.push({ label: user.fullName, value: user.id });\r\n this.selectedUserOption = user.id;\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetContacts() {\r\n this.contactService.getOpportunityContacts().subscribe(\r\n (contacts: Contact[]) => {\r\n contacts.map(c=>this.contactsOptions.push({ label: c.fullName, value: c.id }));\r\n }\r\n );\r\n }\r\n\r\n onGetOpportunityTypes() {\r\n this.opportunityTypeService.getOpportunityTypes().subscribe(\r\n (opportunityTypes: OpportunityType[]) => {\r\n opportunityTypes.map(oT => this.opportunityTypeOptions.push({ label: oT.name, value: oT.id }));\r\n this.opportunityTypeId = opportunityTypes[0].id; // - First option as default option\r\n }\r\n );\r\n }\r\n\r\n onGetOpportunityLostTypes() {\r\n this.opportunityLostTypeService.getOpportunityLostTypes().subscribe(\r\n (opportunityLostTypes: OpportunityLostType[]) => {\r\n opportunityLostTypes.map(oT => this.opportunityLostTypeOptions.push({ label: oT.name, value: oT.id }));\r\n }\r\n );\r\n }\r\n\r\n isOpportunityTypeLost() {\r\n const oppTypeIdValue = this.opportunityTypeId;\r\n const oppType = this.opportunityTypeOptions.find(o => o.value === oppTypeIdValue);\r\n\r\n if (oppType) {\r\n const oppTypeLabel = oppType.label;\r\n if (oppTypeLabel === PrepopulatedOpportunityTypes.Lost)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\nimport { RoleGuard } from '../auth/role-guard.service';\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\n\r\nimport { ReportsComponent } from \"./reports.component\";\r\nimport { ContactsComponent } from \"./contacts/contacts.component\";\r\nimport { TasksComponent } from \"./tasks/tasks.component\";\r\nimport { ConversionsComponent } from \"./conversions/conversions.component\";\r\nimport { OpportunitiesComponent } from \"./opportunities/opportunities.component\";\r\nimport { ComplaintsComponent } from \"./complaints/complaints.component\";\r\n\r\nconst reportRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'reports', component: ReportsComponent,\r\n children: [\r\n { path: '', redirectTo: 'contact-reports', pathMatch: 'full' },\r\n { path: 'contact-reports', component: ContactsComponent },\r\n { path: 'task-reports', component: TasksComponent },\r\n { path: 'conversion-reports', component: ConversionsComponent },\r\n { path: 'opportunity-reports', component: OpportunitiesComponent },\r\n { path: 'complaint-reports', component: ComplaintsComponent, canActivate: [RoleGuard] }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(reportRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ReportsRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3JlcG9ydHMvcmVwb3J0cy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports',\r\n templateUrl: './reports.component.html',\r\n styleUrls: ['./reports.component.scss']\r\n})\r\nexport class ReportsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReportsComponent } from './reports.component';\r\nimport { TasksComponent } from './tasks/tasks.component';\r\nimport { ContactsComponent } from './contacts/contacts.component';\r\nimport { ConversionsComponent } from './conversions/conversions.component';\r\n\r\nimport { ReportsRoutingModule } from \"./reports-routing.module\";\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { DropdownModule, CalendarModule } from \"primeng/primeng\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { OpportunitiesComponent } from './opportunities/opportunities.component';\r\nimport { ComplaintsComponent } from './complaints/complaints.component';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n FormsModule,\r\n ReportsRoutingModule,\r\n DropdownModule,\r\n CalendarModule,\r\n BrowserAnimationsModule\r\n ],\r\n declarations: [ReportsComponent, TasksComponent, ContactsComponent, ConversionsComponent, OpportunitiesComponent,ComplaintsComponent]\r\n})\r\nexport class ReportsModule { }\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Tasks Reports
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3JlcG9ydHMvdGFza3MvdGFza3MuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\n\r\nimport { SelectItem } from \"primeng/primeng\";\r\nimport { Response } from \"@angular/http\";\r\nimport { AppSettings } from 'app.settings'\r\n\r\n@Component({\r\n selector: 'app-tasks',\r\n templateUrl: './tasks.component.html',\r\n styleUrls: ['./tasks.component.scss']\r\n})\r\nexport class TasksComponent implements OnInit {\r\n users: CrmUser[] = []; // - Stores all contacts to populate dropdown options\r\n usersOptions: SelectItem[] = []; // - Stores Assign User Dropdown Options\r\n\r\n selectedUserOption: any; // - Stores the selected dropdown option which can be 'all' or the id of a contact\r\n fromDate: Date = null;\r\n toDate: Date = null;\r\n\r\n crmApiEndPoint: string = AppSettings.API_ENDPOINT;\r\n\r\n accessToken = this.authService.currUser().access_token;//localStorage.getItem('accessToken'); \r\n \r\n // Datepicker\r\n dateRange: string = (new Date().getFullYear() - 150) + ':' + new Date().getFullYear(); // - Range: 150 Years Ago until Today\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private userService: UserService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.authService.isAdmin())\r\n this.usersOptions.push({ label: 'All', value: 'all' });\r\n\r\n this.onGetUsers();\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // Only Admins can get reports about all users\r\n if (this.authService.isAdmin())\r\n users.map(u => this.usersOptions.push({ label: u.fullName, value: u.id }));\r\n else {\r\n let user = users.find(u => u.id === this.authService.applicationProfileUser().id);\r\n this.usersOptions.push({ label: user.fullName, value: user.id });\r\n this.selectedUserOption = user.id;\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","import { FormBuilder, FormGroup } from \"@angular/forms\";\r\n\r\nexport class CustomFormBuilder extends FormBuilder {\r\n //** Trims string values and catches empty string values and converts them to null\r\n public sanitizeFormValues(form: FormGroup): FormGroup {\r\n for (var property in form.value) {\r\n if (typeof form.value[property] === \"string\") {\r\n form.value[property] = form.value[property].trim(); // - Always trim string values\r\n\r\n if (form.value[property] === \"\")\r\n form.value[property] = null; // - Set value to null if value is empty after trimming\r\n }\r\n }\r\n return form;\r\n }\r\n}","import { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ApiService } from 'app/shared/api.service';\r\nimport { AuthService } from '../auth/auth.service';\r\n// import { ApiService } from '../api.service';\r\n// import { Profile } from './_models/profile.model';\r\n\r\nexport class DeveloperConstants {\r\n public static readonly IS_DEVELOPER_MODE = \"__dC7CzvnkTYbBBkfSuNry59wbnBK3e2d9nppVLbJ8NWPm5u9hn6X2f7rTCPaXyRvzTbqQBDnhzqt3tjfc75yVTzAPHdkMZfUxwbtg699GHxysv4CFfsLGSrbQfxSdkbCxVJamJ2YuCRJVcedC4SSuCECrKZMKRcQD2p4YTys7pMEt4b7WtKhvSMvKzgRhGyVm47va9PKZnnuptDukwguccJach9sU8w3nGkBx6xznp3NHjEXkjpFXyT6BZk6XqB6d\";\r\n}\r\n\r\n@Injectable()\r\nexport class DeveloperModeService {\r\n\r\n constructor(\r\n private _apiService: ApiService\r\n ) { }\r\n\r\n public enableDeveloperMode(): Observable {\r\n return this._apiService.get(`api/developer/enable`);\r\n }\r\n\r\n public disableDeveloperMode(): Observable {\r\n return this._apiService.get(`api/developer/disable`);\r\n }\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class DeveloperModeHelper {\r\n public isDeveloper: BehaviorSubject = new BehaviorSubject(false);\r\n public isDeveloperModeEnabled: BehaviorSubject = new BehaviorSubject(localStorage.getItem(DeveloperConstants.IS_DEVELOPER_MODE));\r\n\r\n constructor() {\r\n // _auth.mgr.events.addUserLoaded((e) => {\r\n // if(_auth.currentUser.profile && _auth.currentUser.profile.role) {\r\n // \r\n // if(_auth.currentUser.profile.role === 'Developer') {\r\n // console.log(`Developer Mode: Set to ${true}`);\r\n // this.isDeveloper.next(true);\r\n // }\r\n // }\r\n // });\r\n\r\n // let permissions = JSON.parse(localStorage.getItem(\"permissions\"));\r\n\r\n // if(permissions) {\r\n // var foundRole = permissions.find(_=>_ === \"Developer\");\r\n // if(foundRole) {\r\n // this.isDeveloper.next(true);\r\n // }\r\n // }\r\n }\r\n\r\n next(val: boolean) {\r\n localStorage.setItem(DeveloperConstants.IS_DEVELOPER_MODE, JSON.stringify(val));\r\n this.isDeveloperModeEnabled.next(val);\r\n }\r\n}\r\n","import { Directive, HostListener, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { isNil } from 'ramda';\r\n\r\n@Directive({\r\n selector: 'a[appExternalUrl]',\r\n})\r\nexport class ExternalUrlDirective {\r\n constructor(private el: ElementRef, private router: Router) {}\r\n\r\n @HostListener('click', ['$event'])\r\n clicked(event: Event) {\r\n const url = this.el.nativeElement.href;\r\n if (isNil(url)) {\r\n return;\r\n }\r\n\r\n this.router.navigate(['/externalRedirect', { externalUrl: url }], {\r\n skipLocationChange: true,\r\n });\r\n\r\n event.preventDefault();\r\n }\r\n}","import { Subscription } from \"rxjs\";\r\nimport { OnDestroy, OnInit } from \"@angular/core\";\r\n\r\nexport interface ILifetimeManagement {\r\n subscriptions$ : Subscription[];\r\n}\r\n\r\nexport abstract class LifetimeManagement implements ILifetimeManagement, OnInit, OnDestroy {\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions$.map(elem => {\r\n if(elem) {\r\n elem.unsubscribe();\r\n }\r\n });\r\n }\r\n \r\n private __subscriptions : Subscription[] = [];\r\n\r\n get subscriptions$(): Subscription[] {\r\n return this.__subscriptions;\r\n }\r\n\r\n constructor() { }\r\n\r\n}\r\n","\r\nexport class Address {\r\n constructor(\r\n public id: string = null,\r\n public addressLine1: string = null,\r\n public addressLine2: string = null,\r\n public addressLine3: string = null,\r\n public addressLine4: string = null,\r\n public postCode: string = null,\r\n public country: string = null,\r\n public locationLat: string = null,\r\n public locationLng: string = null,\r\n ) { }\r\n}\r\n","export class CommunicationLogType {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null\r\n ) { }\r\n}","import { Contact } from \"./contact.model\";\r\nimport { CommunicationLogType } from \"./communication-log-type.model\";\r\nimport { CrmUser } from \"./user.model\";\r\nimport { Task } from \"./task.model\";\r\nimport { Opportunity } from \"./opportunity.model\";\r\n\r\nexport class CommunicationLog {\r\n constructor(\r\n public id: number = 0,\r\n public communicationLogTypeId: number = null,\r\n public communicationLogTypeName: string = null,\r\n public communicationLogType: CommunicationLogType = new CommunicationLogType(),\r\n public direction: string = null,\r\n public contact: Contact = new Contact(),\r\n public contactId: number = 0,\r\n public opportunity: Opportunity = new Opportunity(),\r\n public opportunityId: number = 0,\r\n public assignedUser: CrmUser = new CrmUser(),\r\n public assignedUserAccountId: number = null,\r\n public task: Task = new Task(),\r\n public taskId: number = 0,\r\n public description: string = null,\r\n public occurredOn: string = null, \r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null,\r\n public assignedUserAccount: CrmUser = null,\r\n\r\n ) { }\r\n}","\r\nexport class CompanyDetails {\r\n constructor(\r\n public id: number = 0,\r\n public name : string = null,\r\n public email : string = null,\r\n public website : string = null,\r\n public mobilePhoneNumber : string = null,\r\n public officePhoneNumber : string = null,\r\n public vatNumber : string = null,\r\n public addressLine1 : string = null,\r\n public addressLine2 : string = null,\r\n public addressLine3 : string = null,\r\n public addressLine4 : string = null,\r\n public postCode : string = null,\r\n public country : string = null,\r\n public locationLat : number = null,\r\n public locationLng : number = null,\r\n public createdOn: string = null,\r\n public updatedOn: string = null,\r\n public notes: string = null,\r\n )\r\n {}\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\n\r\nexport class ComplaintStatus {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class ComplaintType {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\nimport { Contact } from \"./contact.model\";\r\nimport { ComplaintType } from \"./complaint-type.model\";\r\nimport { ComplaintStatus } from \"./complaint-status.model\";\r\n\r\nexport class Complaint {\r\n constructor(\r\n public id: number = 0,\r\n public code : string = null,\r\n public reportedDate : string = null,\r\n public description : string = null,\r\n public complaintType: ComplaintType = new ComplaintType(),\r\n public complaintTypeId : number = null,\r\n public complaintStatus: ComplaintStatus = new ComplaintStatus(),\r\n public complaintStatusId : number = null,\r\n public assignedContactId: number = null,\r\n public assignedContact: Contact = new Contact(),\r\n public assignedUserAccountId: number = null,\r\n public assignedUser: CrmUser = new CrmUser(),\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\nimport { Contact } from \"app/views/shared/models/contact.model\";\r\n\r\nexport class ContactFile {\r\n constructor(\r\n public id: number = 0,\r\n public contactId: number = null,\r\n public contact: Contact = new Contact(),\r\n public displayFileName: string = null,\r\n public originalFileName: string = null,\r\n public filePath: string = null,\r\n public urlPath: string = null,\r\n public fileType: string = null,\r\n public description: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class ContactSource {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class ContactType {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { ContactType } from \"./contact-type.model\";\r\nimport { ContactSource } from \"./contact-source.model\";\r\nimport { CrmUser } from \"./user.model\";\r\nimport { CommunicationLog } from \"./communication-log.model\";\r\nimport { Organization } from './organization.model';\r\n\r\nexport class Contact {\r\n constructor(\r\n public id: number = 0,\r\n public externalId: number = 0,\r\n public contactType: ContactType = new ContactType(),\r\n public contactTypes: ContactType [] = [],\r\n public contactTypeId: number = null,\r\n public contactTypeIds: number [] = [],\r\n public contactSource: ContactSource = new ContactSource(),\r\n public contactSourceId: number = null,\r\n public organizationId: number = null,\r\n // public organization: Organization = new Organization(),\r\n public convertedDate: string = null,\r\n public referredByContactId: number = null,\r\n public referredByContact: Contact = null,\r\n public firstName: string = null,\r\n public lastName: string = null,\r\n public fullName: string = firstName + ' ' + lastName,\r\n public companyName: string = null,\r\n public birthdate: string = null,\r\n public idCardNumber: string = null,\r\n public email: string = null,\r\n public mobilePhoneNumber: string = null,\r\n public homePhoneNumber: string = null,\r\n public officePhoneNumber: string = null,\r\n public alternatePhoneNumber: string = null,\r\n public notes: string = null,\r\n public vatNumber: string = null,\r\n public assignedUserAccountId: number = null,\r\n public assignedUser: CrmUser = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number = null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null,\r\n public addressLine1: string = null,\r\n public addressLine2: string = null,\r\n public addressLine3: string = null,\r\n public addressLine4: string = null,\r\n public postCode: string = null,\r\n public country: string = null,\r\n public location: string = null,\r\n public locationLat: number = null,\r\n public locationLng: number = null,\r\n\r\n // public organization: Organization = new Organization()\r\n ) { }\r\n}\r\n","import { Contact } from \"./contact.model\";\r\n\r\nexport class ContactsSegment {\r\n constructor(\r\n public contacts: Contact[] = [],\r\n public totalContactsCount: number = 0\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class EmailProfile {\r\n constructor(\r\n public id: number = 0,\r\n public userPartyId: number = null,\r\n public userParty: CrmUser = new CrmUser(),\r\n public name: string = null,\r\n public outgoingHostName: string = null,\r\n public outgoingPort: string = null,\r\n public outgoingUseSsl: string = null,\r\n // public incomingHostName: string = null,\r\n // public incomingPort: string = null,\r\n // public incomingUseSsl: string = null,\r\n public username: string = null,\r\n public password: string = null,\r\n public fromName: string = null,\r\n public fromEmail: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\nimport { Contact } from \"./contact.model\";\r\nimport { Task } from \"./task.model\";\r\n\r\nexport class Email {\r\n constructor(\r\n public userReceiver: CrmUser = null,\r\n public contactReceiver: Contact = null,\r\n\r\n public contactIds: number[] = [],\r\n public sentByUserId: number = null,\r\n\r\n public subject: string = null,\r\n public body: string = null,\r\n public task: Task = null,\r\n public calendarDuration: number = null\r\n ) { }\r\n}","export class ForgotPasswordModel {\r\n constructor( \r\n public email: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class Group {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"../user.model\";\r\n\r\nexport class LeadDeskConfig {\r\n constructor(\r\n public id: number = 0,\r\n public apiKey: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}\r\n\r\nexport class CallingList {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public created_at: string = null\r\n ) { }\r\n}","export class LogModel {\r\n constructor(\r\n public id: number = 0,\r\n public sections: LogSectionModel[] = []\r\n ) { }\r\n}\r\n\r\nexport class LogSectionModel {\r\n constructor(\r\n public name: string = \"\",\r\n public items: LogItemModel[] = []\r\n ) { }\r\n}\r\n\r\nexport class LogItemModel {\r\n constructor(\r\n public index: number = 0,\r\n public isInserted: boolean = false,\r\n public message: string = \"\"\r\n ) { }\r\n}\r\n\r\nexport class LogItemView {\r\n constructor(\r\n public success: boolean = false,\r\n public sectionName: string = \"\",\r\n public message: string = \"\",\r\n public index: number = 0\r\n ) { }\r\n}","export class LoginModel {\r\n constructor(\r\n public Email: string = null,\r\n public Password: string = null,\r\n public RememberMe: boolean = false\r\n ) { }\r\n}","import { CrmUser } from \"../../../shared/models/user.model\";\r\n\r\nexport class Campaign {\r\n constructor(\r\n public id: string = null,\r\n public create_time: string = null,\r\n public send_time: string = null,\r\n public status: string = null,\r\n public emails_sent: number = null,\r\n public settings: CampaignSettings = null,\r\n public report_summary: CampaignReportSummary = null\r\n ) { }\r\n}\r\n\r\nexport class CampaignSettings {\r\n constructor(\r\n public subject_line: string = null,\r\n public preview_text: string = null,\r\n public title: string = null,\r\n public from_name: string = null,\r\n public reply_to: string = null,\r\n public use_conversation: boolean = null,\r\n public to_name: string = null,\r\n public folder_id: string = null,\r\n public authenticate: boolean = null,\r\n public auto_footer: boolean = null,\r\n public inline_css: boolean = null,\r\n public auto_tweet: boolean = null,\r\n public auto_fb_post: string[] = null,\r\n public fb_comments: boolean = null,\r\n public timewarp: boolean = null,\r\n public template_id: number = null,\r\n public drag_and_drop: boolean = null\r\n ) { }\r\n}\r\n\r\nexport class CampaignReportSummary {\r\n constructor(\r\n public opens: number = null,\r\n public unique_opens: number = null,\r\n public open_rate: number = null,\r\n public clicks: number = null,\r\n public subscriber_clicks: number = null,\r\n public click_rate: number = null,\r\n ) { }\r\n}\r\n\r\nexport class List {\r\n constructor(\r\n public id: string = null,\r\n public date_created: string = null,\r\n public name: string = null,\r\n public stats: ListStats = null\r\n ) { }\r\n}\r\n\r\nexport class ListStats {\r\n constructor(\r\n public member_count: number = null,\r\n public unsubscribe_count: number = null,\r\n public cleaned_count: number = null,\r\n public member_count_since_send: number = null,\r\n public unsubscribe_count_since_send: number = null,\r\n public cleaned_count_since_send: number = null,\r\n public campaign_count: number = null,\r\n public campaign_last_sent: string = null,\r\n public merge_field_count: number = null,\r\n public avg_sub_rate: number = null,\r\n public avg_unsub_rate: number = null,\r\n public target_sub_rate: number = null,\r\n public open_rate: number = null,\r\n public click_rate: number = null,\r\n public last_sub_date: string = null,\r\n public last_unsub_date: string = null\r\n ) { }\r\n}\r\n\r\nexport class MailChimpConfig {\r\n constructor(\r\n public id: number = 0,\r\n public apiKey: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class MessageSignature {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public signiture: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\n\r\nexport class MessageTemplate {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public message: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}\r\n","import { Opportunity } from \"./opportunity.model\";\r\n\r\nexport class OpportunitiesSegment {\r\n constructor(\r\n public opportunities: Opportunity[] = [],\r\n public totalOpportunityCount: number = 0\r\n ) { }\r\n}","export class OpportunityCategoryType {\r\n constructor(\r\n public id: string = null,\r\n public name: string = null\r\n ) { }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\nimport { Opportunity } from \"app/views/shared/models/opportunity.model\";\r\n\r\nexport class OpportunityFile {\r\n constructor(\r\n public id: number = 0,\r\n public opportunityId: number = null,\r\n public opportunity: Opportunity = new Opportunity(),\r\n public displayFileName: string = null,\r\n public originalFileName: string = null,\r\n public filePath: string = null,\r\n public urlPath: string = null,\r\n public fileType: string = null,\r\n public description: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class OpportunityLostType {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","export class OpportunityPropertiesNotInterested {\r\n constructor(\r\n public OpportunityId: number = 0,\r\n public PropertyId: number = 0\r\n ) { }\r\n}","import { PropertyDetails } from './property-details.model';\r\n\r\nexport class OpportunitySelection {\r\n constructor(\r\n public opportunityId: number = 0,\r\n public oppSelectionModel: PropertyDetails = new PropertyDetails,\r\n ) { }\r\n}","export class OpportunityType {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null\r\n ) { }\r\n}","import { Contact } from \"./contact.model\";\r\nimport { Task } from \"./task.model\";\r\nimport { CrmUser } from \"./user.model\";\r\nimport { OpportunityProgress } from \"./opportunity-progress.model\";\r\nimport { OpportunityType } from \"./opportunity-type.model\";\r\nimport { OpportunityLostType } from \"./opportunity-lost-type.model\";\r\nimport { OpportunityProduct } from \"./opportunity-product.model\";\r\nimport { Quote } from './quote.model';\r\nimport { PropertyDetails } from './property-details.model';\r\nimport { OpportunityCategoryType } from './opportunity-category-type/opportunity-category-type.model';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\nimport { Address } from './address.model';\r\nimport { Profile } from 'app/shared/profile/_models/profile.model';\r\nimport { IDealTypeOpportunity, IDealTypeValue } from \"./deal-type-opportunity.model\";\r\n\r\nexport class Opportunity {\r\n constructor(\r\n public id: number = 0,\r\n public opportunityProducts: OpportunityProduct[] = [],\r\n public opportunityProgress: OpportunityProgress[] = [],\r\n public opportunityLostTypeId: number = null,\r\n public opportunityLostType: OpportunityLostType = new OpportunityLostType(),\r\n public lostTypeDescription: string = null,\r\n public assignedContactId: number = null,\r\n public assignedContact: Contact = new Contact(),\r\n public assignedUserAccountId: number = null,\r\n public assignedUser: CrmUser = new CrmUser(),\r\n public opportunityTypeId: number = null,\r\n public opportunityType: OpportunityType = new OpportunityType,\r\n public name: string = null,\r\n public description: string = null,\r\n public uniqueId: string = null, // - This is a unique product ID inputted by the user, nullable, Eg: REMS would input Propert Ref Code.\r\n public probability: number = null,\r\n public value: number = null,\r\n public closedDate: string = null,\r\n public lostDate: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number = null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null,\r\n public quotes: Quote[] = [],\r\n public opportunitySelectionModel: PropertyDetails = new PropertyDetails,\r\n public tasks: Task[] = [],\r\n ) { }\r\n}\r\n\r\nexport class OpportunityExtended extends Opportunity {\r\n constructor(\r\n public opportunityCategoryType: OpportunityCategoryType = new OpportunityCategoryType(),\r\n public assignedUserAccount: Profile = new Profile()\r\n )\r\n {\r\n super();\r\n }\r\n}\r\n\r\nexport class BasicProject {\r\n constructor(\r\n public name: string = null,\r\n public code: string = null,\r\n public startDate: Date = null,\r\n public dueDate: Date = null,\r\n public projectManager: Profile = new Profile()\r\n ) {}\r\n}\r\n\r\nexport class LandPurchaseOpportunity {\r\n constructor(\r\n public id: string = null,\r\n public code: string = null,\r\n public details: string = null,\r\n public plotDescription: string = null,\r\n public sellingPrice: number = null,\r\n public address: Address = new Address(),\r\n public seller: Contact = new Contact(),\r\n public opportunity: OpportunityExtended = new OpportunityExtended(),\r\n public project: BasicProject = new BasicProject(),\r\n public dealTypeValue: IDealTypeValue = {} as IDealTypeValue\r\n ) { }\r\n}\r\n\r\nexport class SalesOpportunityFormControl {\r\n constructor(\r\n public name: FormControl = new FormControl(null, [Validators.required]),\r\n public productIds: FormControl = new FormControl(null),\r\n public description: FormControl = new FormControl(null),\r\n public probability: FormControl = new FormControl(null, [Validators.min(0), Validators.max(100)]),\r\n public value: FormControl = new FormControl(null),\r\n public assignedContactId: FormControl = new FormControl(null, [Validators.required]),\r\n public assignedUserAccountId: FormControl = new FormControl(null),\r\n public opportunityTypeId: FormControl = new FormControl({value: null, disabled: true}, [Validators.required]),\r\n public opportunityLostTypeId: FormControl = new FormControl(null),\r\n public lostTypeDescription: FormControl = new FormControl(null),\r\n public opportunityCategoryTypeId: FormControl = new FormControl({value: null, disabled: true}, [Validators.required]),\r\n\r\n public opportunitySelectionModel: FormGroup = new FormGroup({\r\n mainCatIds: new FormControl([]),\r\n subCatIds: new FormControl([]),\r\n regionIds: new FormControl([]),\r\n localityIds: new FormControl([]),\r\n dealTypeIds: new FormControl([]),\r\n startingBudget: new FormControl(null),\r\n maximumBudget: new FormControl(null),\r\n minimumBedrooms: new FormControl(null),\r\n minimumGarages: new FormControl(null),\r\n minimumBathrooms: new FormControl(null),\r\n roomsIds: new FormControl([]),\r\n featureIds: new FormControl([]),\r\n description: new FormControl(null),\r\n propertyReference: new FormControl(null),\r\n })\r\n )\r\n { }\r\n}\r\n\r\nexport class LandPurchaseOpportunityFormControl {\r\n constructor(\r\n public id: FormControl = new FormControl({value: null, disabled: true}),\r\n public code: FormControl = new FormControl({value: null, disabled: true}),\r\n public details: FormControl = new FormControl(null),\r\n //this is made as required since it is also being used as the description for the opportunity (which is required in the opportunitie table :( )\r\n public plotDescription: FormControl = new FormControl(null),\r\n public sellingPrice: FormControl = new FormControl(null),\r\n public address: FormGroup = new FormGroup({\r\n id: new FormControl({value: null, disabled: true}),\r\n addressLine1: new FormControl(null),\r\n addressLine2: new FormControl(null),\r\n addressLine3: new FormControl(null),\r\n addressLine4: new FormControl(null),\r\n postCode: new FormControl(null),\r\n country: new FormControl(null),\r\n locationLat: new FormControl(null),\r\n locationLng: new FormControl(null)\r\n }),\r\n\r\n public sellerId: FormControl = new FormControl(null, [Validators.required]),\r\n public assignedUserAccountId: FormControl = new FormControl(null),\r\n public name: FormControl = new FormControl(null, [Validators.required]),\r\n public opportunityTypeId: FormControl = new FormControl({value: null, disabled: true}, [Validators.required]),\r\n public probability: FormControl = new FormControl(null, [Validators.min(0), Validators.max(100)]),\r\n public value: FormControl = new FormControl(null),\r\n public opportunityLostTypeId: FormControl = new FormControl(null),\r\n public lostTypeDescription: FormControl = new FormControl(null),\r\n\r\n //this data will be passed to ORCHESTRATE to create a project for this land purchase opportunity.\r\n public project: FormGroup = new FormGroup({\r\n name: new FormControl(null, [Validators.required]),\r\n code: new FormControl(null, [Validators.required]),\r\n startDate: new FormControl(null, [Validators.required]),\r\n dueDate: new FormControl({value: null, disabled: true}, [Validators.required]),\r\n projectManagerId: new FormControl(null, [Validators.required]), // the project manager responsible\r\n proposalDescription: new FormControl(null),\r\n sellingPrice: new FormControl(null),\r\n\r\n address: new FormGroup({\r\n // id: new FormControl({value: null, disabled: true}),\r\n addressLine1: new FormControl(null),\r\n addressLine2: new FormControl(null),\r\n addressLine3: new FormControl(null),\r\n addressLine4: new FormControl(null),\r\n postCode: new FormControl(null),\r\n country: new FormControl(null),\r\n locationLat: new FormControl(null),\r\n locationLng: new FormControl(null)\r\n }),\r\n }),\r\n\r\n public dealTypeValues: FormGroup = new FormGroup({\r\n id: new FormControl(null),\r\n dealTypeOpportunityId: new FormControl(null),\r\n cashValue: new FormControl(null),\r\n barterValue: new FormControl(null),\r\n partCashValue: new FormControl(null),\r\n partBarterValue: new FormControl(null)\r\n })\r\n )\r\n { }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\nimport { Contact } from \"./contact.model\";\r\nimport { NullTemplateVisitor } from '@angular/compiler';\r\nimport { PaymentTerm } from './payment-term.model';\r\n\r\nexport class IAuditableExtended {\r\n constructor(\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,) {\r\n\r\n }\r\n\r\n}\r\nexport class Organization extends IAuditableExtended {\r\n constructor(\r\n public id: number = 0,\r\n public name : string = null,\r\n public email : string = null,\r\n public mobilePhoneNumber : string = null,\r\n public officePhoneNumber : string = null,\r\n public addressLine1 : string = null,\r\n public addressLine2 : string = null,\r\n public addressLine3 : string = null,\r\n public addressLine4 : string = null,\r\n public defaultContact: Contact = new Contact(),\r\n public defaultContactId: number = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null,\r\n public paymentTerm: PaymentTerm = new PaymentTerm,\r\n public paymentTermId: number = null,\r\n ) {\r\n super(createdByUserAccount,\r\n createdByUserAccountId,\r\n updatedByUserAccount,\r\n updatedByUserAccountId)\r\n }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\n\r\nexport class PaymentTerm {\r\n constructor(\r\n public id: number = 0,\r\n public code: string = null,\r\n public name: string = null,\r\n public description: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\nimport { PropertyCategory } from './property-category.model';\r\nimport { PropertyRegion } from './property-region.model';\r\nimport { PropertyLocality } from './property-locality.model';\r\nimport { PropertyDealType } from './property-dealtype';\r\nimport { PropertyAttribute } from './property-attribute';\r\n\r\nexport class PropertyDetails {\r\n constructor(\r\n public mainCatIds: number[] = [],\r\n public mainCatId: PropertyCategory[] = null,\r\n public subCatIds: number[] = [],\r\n public subCatId: PropertyCategory[] = null,\r\n public regionIds: number[] = [],\r\n public regionId: PropertyRegion[] = null,\r\n public localityIds: number[] = [],\r\n public localityId: PropertyLocality[] = null,\r\n public dealTypeIds: number[] = [],\r\n public dealTypeId: PropertyDealType[] = null,\r\n public startingBudget: number = 0,\r\n public maximumBudget: number = 0,\r\n public minimumBedrooms: number = 0,\r\n public minimumGarages: number = 0,\r\n public minimumBathrooms: number = 0,\r\n public roomsIds: number[] = [],\r\n public roomId: PropertyAttribute[] = null,\r\n public featureIds: number[] = [],\r\n public featureId: PropertyAttribute[] = null,\r\n public propertyNotes: string = null,\r\n public propertyReference: string = null,\r\n ) { }\r\n}","export class PropertyIdCode {\r\n constructor(\r\n public propertyCode: string = null,\r\n public customCode: string = null,\r\n public propertyId: number = null\r\n ) { }\r\n}","\r\nexport class Property {\r\n constructor(\r\n public propertyId: number = 0,\r\n public propertyPreCode: string = null,\r\n public defaultPrice: string = null,\r\n public propertyCategory: string = null,\r\n public propertyCategoryId: number = 0,\r\n public propertyLocality: string = null,\r\n public PropertyLocalityId: number = 0,\r\n public propertyStatus: string = null,\r\n public propertyImageUrl: string = null,\r\n public propertyUrl: string = null,\r\n public propertyCoords: string[] = [],\r\n public propertyAddress: string = null,\r\n public customCode: string = null\r\n ) { }\r\n}","export class QuoteItem {\r\n constructor(\r\n\r\n\r\n public id: number = 0,\r\n public description: string = null,\r\n public quantity: number = 0,\r\n public unitPrice: number=0,\r\n public total: number=0,\r\n public quoteId: number =0\r\n ) { }\r\n}\r\n","import { Opportunity } from './opportunity.model';\r\nimport { CrmUser } from './user.model';\r\nimport { QuoteItem } from './quote-item.model';\r\n\r\nexport class Quote {\r\n constructor(\r\n\r\n\r\n public id: number = 0,\r\n public opportunity: Opportunity = null,\r\n public opportunityId: number = 0,\r\n\r\n public reference: string = null,\r\n public version: number = 0,\r\n\r\n public validUntil: string = null,\r\n\r\n public quoteItems: QuoteItem[] = [],\r\n\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = 0,\r\n public updatedOn: string = null,\r\n public status: string = null,\r\n\r\n public isSelectedInvoice: boolean = false,\r\n public subTotal : number= 0,\r\n public discount : number= 0,\r\n public subTotalLessDiscount : number= 0,\r\n public vat : number= 0,\r\n public totalVat : number= 0,\r\n public grandTotal : number= 0,\r\n ) { }\r\n}\r\n","export class ResetPasswordModel {\r\n constructor( \r\n public email: string = null,\r\n public password: string = null,\r\n public confirmPassword: string = null,\r\n public code: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class SavedContactSearch {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n\r\n public contactTypeId: number = null,\r\n public contactSourceId: number = null,\r\n public assignedToId: number = null,\r\n public createdById: number = null,\r\n\r\n public firstName: string = null,\r\n public lastName: string = null,\r\n public fullName: string = firstName + ' ' + lastName,\r\n public companyName: string = null,\r\n public email: string = null,\r\n public phoneNumber: string = null,\r\n public idCard: string = null,\r\n public vat: string = null,\r\n\r\n public createdOnSince: string = null,\r\n public createdOnBefore: string = null,\r\n\r\n public contactTagIds: string = null,\r\n public contactGroupIds: string = null,\r\n\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\n\r\nexport class SmsWarriorsProfile {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public companyName: string = null,\r\n public apiKey: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}\r\n","import { CrmUser } from \"./user.model\";\r\n\r\nexport class TaskType {\r\n constructor(\r\n public id: number = 0,\r\n public name: string = null,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { }\r\n}","import { CrmUser } from \"./user.model\";\r\nimport { UserTask } from \"./user-task.model\";\r\nimport { ContactTask } from \"./contact-task.model\";\r\nimport { OpportunityTask } from \"./opportunity-task.model\";\r\nimport { TaskType } from \"./task-type.model\";\r\nimport { PropertyIdCode } from './property-id-codes.model';\r\n\r\nexport class Task {\r\n constructor(\r\n public id: number = 0,\r\n public taskType: TaskType = new TaskType(),\r\n public taskTypeId: number = null,\r\n public userTasks: UserTask[] = [],\r\n public contactTasks: ContactTask[] = [],\r\n public opportunityTasks: OpportunityTask[] = [],\r\n public taskDescription: string = null,\r\n public location: string = null,\r\n public locationLat: number = null,\r\n public locationLng: number = null,\r\n public reminderDate: string = null,\r\n public isTaskComplete: boolean = false,\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null,\r\n public calendarDuration: number = null,\r\n public propertyId: number = null,\r\n public propCode: PropertyIdCode = new PropertyIdCode(),\r\n public userTaskNames: string = null,\r\n public contactTasksNames: string = null\r\n ) { }\r\n}","import { User } from \"oidc-client\";\r\nimport { Profile, AppUserRole } from 'app/shared/profile/_models/profile.model';\r\n\r\nexport class CrmUser extends Profile {\r\n public fullName: string = this.firstName + ' ' + this.lastName;\r\n constructor(\r\n public subjectId: string = null,\r\n public id: number = null,\r\n public profileExists: boolean = null,\r\n public appUserRoles: AppUserRole[] = [], \r\n public applicationUserId: string = null,\r\n firstName: string = null,\r\n lastName: string = null,\r\n \r\n public email: string = null,\r\n public roles: string[] = [],\r\n public createdByUserAccount: CrmUser = null,\r\n public createdByUserAccountId: number= null,\r\n public createdOn: string = null,\r\n public updatedByUserAccount: CrmUser = null,\r\n public updatedByUserAccountId: number = null,\r\n public updatedOn: string = null,\r\n public status: string = null\r\n ) { \r\n super(subjectId, id, '', firstName, lastName, email, '', profileExists, '', appUserRoles)\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ContactTask } from \"../models/contact-task.model\";\r\n@Pipe({\r\n name: 'assignedContacts'\r\n})\r\nexport class AssignedContactsPipe implements PipeTransform {\r\n output: string = \"\";\r\n list: string[] = [];\r\n transform(value: ContactTask[]) {\r\n\r\n this.list = value.map(v => v.contact.fullName);\r\n this.output = \"\";\r\n\r\n this.list.forEach(\r\n (item, index) => {\r\n this.output += item;\r\n if (index < (this.list.length - 1)) {\r\n this.output += \", \";\r\n }\r\n }\r\n );\r\n\r\n return this.output;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { UserTask } from \"../models/user-task.model\";\r\n@Pipe({\r\n name: 'assignedUsers'\r\n})\r\nexport class AssignedUsersPipe implements PipeTransform {\r\n output: string = \"\";\r\n list: string[] = [];\r\n transform(value: UserTask[]) {\r\n\r\n this.list = value.map(v => v.user? v.user.fullName : '');\r\n this.output = \"\";\r\n\r\n this.list.forEach(\r\n (item, index) => {\r\n this.output += item;\r\n if (index < (this.list.length - 1)) {\r\n this.output += \", \";\r\n }\r\n }\r\n );\r\n\r\n return this.output;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'labelEmptyField'\r\n})\r\nexport class LabelEmptyFieldPipe implements PipeTransform {\r\n transform(value: any, label: string) {\r\n if (!value)\r\n return label;\r\n\r\n return value;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { Task } from \"../models/task.model\";\r\nimport { TaskService } from \"app/views/shared/services/task.service\";\r\n\r\n@Pipe({\r\n name: 'taskStatus'\r\n})\r\nexport class TaskStatusPipe implements PipeTransform {\r\n constructor(private taskService: TaskService) { }\r\n\r\n transform(task: Task) {\r\n if (task.isTaskComplete)\r\n return \"Complete\";\r\n else if (this.taskService.isTaskForToday(task))\r\n return \"Today\";\r\n else if (this.taskService.isTaskLate(task))\r\n return \"Late\";\r\n else\r\n return \"Pending\";\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { CommunicationLogType } from \"../models/communication-log-type.model\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class CommunicationHistoryTypeService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/communicationlogtypes/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService\r\n ) { }\r\n\r\n getCommunicationLogTypes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n const logTypes: CommunicationLogType[] = (response);\r\n return logTypes;\r\n }\r\n );\r\n }\r\n\r\n getCommunicationLogType(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n const logType: CommunicationLogType = (response);\r\n return logType;\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { CommunicationLog } from \"../models/communication-log.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport { ApiEndPoints, CustomConfigurations } from \"app.constant\";\r\nimport { AppSettings } from 'app.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class CommunicationHistoryService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/communicationlogs/';\r\n\r\n public logsChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getCommunicationLogs(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getCommLogsUrl = this.url;\r\n\r\n if (!CustomConfigurations.SharedCommLogs && !this.authService.isAdmin())\r\n getCommLogsUrl += \"?assignedUserAccountId=\" + this.authService.applicationProfileUser().id;\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(getCommLogsUrl).map(\r\n (response: Response) => {\r\n let commLogs: CommunicationLog[] = (response);\r\n commLogs = commLogs.map(\r\n cL => {\r\n // cL.assignedUser = this.userService.getUser(cL.assignedUserAccountId);\r\n // cL.createdByUserAccount = this.userService.getUser(cL.createdByUserAccountId);\r\n // cL.updatedByUserAccount = this.userService.getUser(cL.updatedByUserAccountId);\r\n return cL;\r\n }\r\n );\r\n return commLogs;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCommunicationLogsByContactId(contactId: number, includeOpportunities: boolean = true): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n let getCommLogUrl = this.url + \"ContactId/\" + contactId;\r\n\r\n if (!includeOpportunities)\r\n getCommLogUrl += \"/ExcludeOpportunities\";\r\n\r\n return this.http.get(getCommLogUrl).map(\r\n (response: Response) => {\r\n let commLogs: CommunicationLog[] = (response);\r\n commLogs = commLogs.map(\r\n cL => {\r\n // cL.assignedUser = this.userService.getUser(cL.assignedUserAccountId);\r\n // cL.createdByUserAccount = this.userService.getUser(cL.createdByUserAccountId);\r\n // cL.updatedByUserAccount = this.userService.getUser(cL.updatedByUserAccountId);\r\n return cL;\r\n }\r\n );\r\n return commLogs;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCommunicationLogsByOpportunityId(opportunityId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"OpportunityId/\" + opportunityId).map(\r\n (response: Response) => {\r\n let commLogs: CommunicationLog[] = (response);\r\n commLogs = commLogs.map(\r\n cL => {\r\n // cL.assignedUser = this.userService.getUser(cL.assignedUserAccountId);\r\n // cL.createdByUserAccount = this.userService.getUser(cL.createdByUserAccountId);\r\n // cL.updatedByUserAccount = this.userService.getUser(cL.updatedByUserAccountId);\r\n return cL;\r\n }\r\n );\r\n return commLogs;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCommunicationLogsByComplaintId(complaintId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"ComplaintId/\" + complaintId).map(\r\n (response: Response) => {\r\n let commLogs: CommunicationLog[] = (response);\r\n commLogs = commLogs.map(\r\n cL => {\r\n // cL.assignedUser = this.userService.getUser(cL.assignedUserAccountId);\r\n // cL.createdByUserAccount = this.userService.getUser(cL.createdByUserAccountId);\r\n // cL.updatedByUserAccount = this.userService.getUser(cL.updatedByUserAccountId);\r\n return cL;\r\n }\r\n );\r\n return commLogs;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCommunicationLog(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let commLog: CommunicationLog = (response);\r\n // commLog.assignedUser = this.userService.getUser(commLog.assignedUserAccountId);\r\n // commLog.createdByUserAccount = this.userService.getUser(commLog.createdByUserAccountId);\r\n // commLog.updatedByUserAccount = this.userService.getUser(commLog.updatedByUserAccountId);\r\n return commLog;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addCommunicationLog(communicationLog: CommunicationLog): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n communicationLog\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateCommunicationLog(communicationLog: CommunicationLog): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + communicationLog.id,\r\n communicationLog\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteCommunicationLog(communicationLog: CommunicationLog): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + communicationLog.id,\r\n communicationLog\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { ComplaintLog } from \"../models/complaint-log.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ComplaintLogService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/complaintLogs/';\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getComplaintLogByComplaintId(id:number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"ComplaintLogByComplaintId/\" + id).map(\r\n (response: Response) => {\r\n let complaintLogs: ComplaintLog[] = (response);\r\n complaintLogs = complaintLogs.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return complaintLogs;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getComplaintLog(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let complaintLog: ComplaintLog = (response);\r\n // complaintLog.createdByUserAccount = this.userService.getUser(complaintLog.createdByUserAccountId);\r\n // complaintLog.updatedByUserAccount = this.userService.getUser(complaintLog.updatedByUserAccountId);\r\n return complaintLog;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addComplaintLog(complaintLog: ComplaintLog): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n complaintLog\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateComplaintLog(complaintLog: ComplaintLog): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + complaintLog.id,\r\n complaintLog\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteComplaintLog(complaintLog: ComplaintLog): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + complaintLog.id,\r\n complaintLog\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { ComplaintType } from \"../models/complaint-type.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ComplaintTypeService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/complaintstypes/';\r\n\r\n public typesChanged = new Subject();\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getComplaintTypes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let complaintTypes: ComplaintType[] = (response);\r\n complaintTypes = complaintTypes.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return complaintTypes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getComplaintType(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let complaintType: ComplaintType = (response);\r\n // complaintType.createdByUserAccount = this.userService.getUser(complaintType.createdByUserAccountId);\r\n // complaintType.updatedByUserAccount = this.userService.getUser(complaintType.updatedByUserAccountId);\r\n return complaintType;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addComplaintType(complaintType: ComplaintType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n complaintType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateComplaintType(complaintType: ComplaintType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + complaintType.id,\r\n complaintType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteComplaintType(complaintType: ComplaintType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + complaintType.id,\r\n complaintType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { Complaint } from \"../models/complaint.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { ComplaintStatus } from '../models/complaint-status.model';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ComplaintService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/complaints/';\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getComplaints(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let complaints: Complaint[] = (response);\r\n complaints = complaints.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return complaints;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getComplaint(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let complaint: Complaint = (response);\r\n // complaint.createdByUserAccount = this.userService.getUser(complaint.createdByUserAccountId);\r\n // complaint.updatedByUserAccount = this.userService.getUser(complaint.updatedByUserAccountId);\r\n return complaint;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addComplaint(complaint: Complaint): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n complaint\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateComplaint(complaint: Complaint): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + complaint.id,\r\n complaint\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteComplaint(complaint: Complaint): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + complaint.id,\r\n complaint\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n \r\n\r\n getComplaintStatuses(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"ComplaintStatuses/\").map(\r\n (response: Response) => {\r\n let complaintsStatuses: ComplaintStatus[] = (response);\r\n return complaintsStatuses;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n\r\n \r\n\r\n getComplaintsByAssignedContactId(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"AssignedContact/\" + id).map(\r\n (response: Response) => {\r\n let complaints: Complaint[] = (response);\r\n complaints = complaints.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return complaints;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { ContactFile } from \"../../shared/models/contact-file.model\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ContactFileService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/contactfiles/';\r\n\r\n public contactFilesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getContactFiles(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let contactFiles: ContactFile[] = (response);\r\n contactFiles = contactFiles.map(\r\n cF => {\r\n // cF.createdByUserAccount = this.userService.getUser(cF.createdByUserAccountId);\r\n // cF.updatedByUserAccount = this.userService.getUser(cF.updatedByUserAccountId);\r\n return cF;\r\n }\r\n );\r\n return contactFiles;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getContactFilesByContactId(contactId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Contact/\" + contactId).map(\r\n (response: Response) => {\r\n let contactFiles: ContactFile[] = (response);\r\n contactFiles = contactFiles.map(\r\n cF => {\r\n // cF.createdByUserAccount = this.userService.getUser(cF.createdByUserAccountId);\r\n // cF.updatedByUserAccount = this.userService.getUser(cF.updatedByUserAccountId);\r\n return cF;\r\n }\r\n );\r\n return contactFiles;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getContactFile(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let contactFile: ContactFile = (response);\r\n // contactFile.createdByUserAccount = this.userService.getUser(contactFile.createdByUserAccountId);\r\n // contactFile.updatedByUserAccount = this.userService.getUser(contactFile.updatedByUserAccountId);\r\n return contactFile;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n //** Contact Files are posted through 'DropZone' */\r\n // addContactFile(contactFile: ContactFile): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.post(\r\n // this.url,\r\n // contactFile\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n updateContactFile(contactFile: ContactFile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + contactFile.id,\r\n contactFile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteContactFile(contactFile: ContactFile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + contactFile.id,\r\n contactFile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { ContactSource } from \"../models/contact-source.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ContactSourceService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/contactsources/';\r\n\r\n public sourcesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getContactSources(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let contactSources: ContactSource[] = (response);\r\n contactSources = contactSources.map(\r\n cS => {\r\n // cS.createdByUserAccount = this.userService.getUser(cS.createdByUserAccountId);\r\n // cS.updatedByUserAccount = this.userService.getUser(cS.updatedByUserAccountId);\r\n return cS;\r\n }\r\n );\r\n return contactSources;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getContactSource(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let contactSource: ContactSource = (response);\r\n // contactSource.createdByUserAccount = this.userService.getUser(contactSource.createdByUserAccountId);\r\n // contactSource.updatedByUserAccount = this.userService.getUser(contactSource.updatedByUserAccountId);\r\n return contactSource;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addContactSource(contactSource: ContactSource): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n contactSource\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateContactSource(contactSource: ContactSource): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + contactSource.id,\r\n contactSource\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteContactSource(contactSource: ContactSource): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + contactSource.id,\r\n contactSource\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { ContactType } from \"../models/contact-type.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ContactTypeService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/contacttypes/';\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getContactTypes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + 'getcontacttypes').map(\r\n (response: Response) => {\r\n let contactTypes: ContactType[] = (response);\r\n contactTypes = contactTypes.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return contactTypes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getTypeContacts(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + 'gettypecontacts').map(\r\n (response: Response) => {\r\n let contactTypes: ContactType[] = (response);\r\n contactTypes = contactTypes.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return contactTypes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getContactType(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let contactType: ContactType = (response);\r\n // contactType.createdByUserAccount = this.userService.getUser(contactType.createdByUserAccountId);\r\n // contactType.updatedByUserAccount = this.userService.getUser(contactType.updatedByUserAccountId);\r\n return contactType;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getTypeContact(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + 'gettypecontact/' + id).map(\r\n (response: Response) => {\r\n let contactType: ContactType = (response);\r\n // contactType.createdByUserAccount = this.userService.getUser(contactType.createdByUserAccountId);\r\n // contactType.updatedByUserAccount = this.userService.getUser(contactType.updatedByUserAccountId);\r\n return contactType;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addContactType(contactType: ContactType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n contactType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addTypeContact(contactType: ContactType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url + 'addtypecontact',\r\n contactType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateContactType(contactType: ContactType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + contactType.id,\r\n contactType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateTypeContact(contactType: ContactType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + 'updatetypecontact/' + contactType.id,\r\n contactType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteContactType(contactType: ContactType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + contactType.id,\r\n contactType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteTypeContact(contactType: ContactType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"deletetypecontact/\" + contactType.id,\r\n contactType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, URLSearchParams, Http } from \"@angular/http\";\r\n\r\nimport { Contact } from \"../models/contact.model\";\r\nimport { ContactSource } from \"../models/contact-source.model\";\r\nimport { ContactType } from \"../models/contact-type.model\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { ApiEndPoints, CustomConfigurations } from \"app.constant\";\r\nimport { ContactsSegment } from 'app/views/shared/models/contacts-segment.model';\r\nimport { AppSettings } from 'app.settings';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { ContactProperty } from '../models/contact-property.model';\r\nimport { ContactSearchItem } from '../models/contact-search-item.model';\r\n\r\n\r\n@Injectable()\r\nexport class ContactService {\r\n private contactsUrl: string = AppSettings.API_ENDPOINT + 'api/contacts/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getContactsCount(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getContactsUrl = this.contactsUrl + \"Count\";\r\n\r\n if (!CustomConfigurations.SharedContacts && !this.authService.isAdmin())\r\n getContactsUrl += \"?assignedUserAccountId=\" + this.authService.applicationProfileUser().id;\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(getContactsUrl).map(\r\n (response: Response) => {\r\n let contactsCount: number = (response);\r\n return contactsCount;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // getLeadsCount(type: number): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n\r\n\r\n // let getContactsUrl = this.contactsUrl + \"LeadsCount\";\r\n // getContactsUrl += \"?Type=\" + type;\r\n\r\n // if (!CustomConfigurations.SharedContacts && !this.authService.isAdmin())\r\n // getContactsUrl += \"&assignedUserAccountId=\" + this.authService.applicationProfileUser().id;\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.get(getContactsUrl).map(\r\n // (response: Response) => {\r\n // let count: number = (response);\r\n // return count;\r\n // }\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n getLeadsConvertedThisMonthCount(type: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getContactsUrl = this.contactsUrl + \"LeadsConvertedThisMonthCount\";\r\n getContactsUrl += \"?Type=\" + type;\r\n\r\n if (!CustomConfigurations.SharedContacts && !this.authService.isAdmin())\r\n getContactsUrl += \"&assignedUserAccountId=\" + this.authService.applicationProfileUser().id;\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(getContactsUrl).map(\r\n (response: Response) => {\r\n let count: number = (response);\r\n return count;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getContactsSegment(params: HttpParams, showLoading: boolean = true): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getContactsUrl = this.contactsUrl;\r\n\r\n if (!CustomConfigurations.SharedContacts && !this.authService.isAdmin())\r\n params = params.append(\"assignedUserAccountId\", this.authService.applicationProfileUser().id.toString())\r\n\r\n if (showLoading)\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n return this.http.get(getContactsUrl, { params: params }).map(\r\n (response: Response) => {\r\n let contacts: Contact[] = (response).contacts;\r\n contacts = contacts.map(\r\n c => {\r\n // c.createdByUserAccount = this.userService.getUser(c.createdByUserAccountId);\r\n // c.updatedByUserAccount = this.userService.getUser(c.updatedByUserAccountId);\r\n // c.assignedUser = this.userService.getUser(c.assignedUserAccountId);\r\n return c;\r\n }\r\n );\r\n\r\n let contactsSegment: ContactsSegment = new ContactsSegment();\r\n contactsSegment.contacts = contacts;\r\n contactsSegment.totalContactsCount = (response).totalContactsCount;\r\n\r\n return contactsSegment;\r\n }\r\n ).finally(() => {\r\n if (showLoading)\r\n this.loadingService.hideLoadingSpinner();\r\n });\r\n }\r\n\r\n getContactsSearch(searchTerm: string, showLoading: boolean = true): Observable {\r\n searchTerm = searchTerm.replace(\"/\", \" \"); // - Replace '/' chars as route will change and cause issues!!\r\n\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getContactsUrl = this.contactsUrl + \"Search\";\r\n getContactsUrl += \"?SearchTerm=\" + searchTerm;\r\n\r\n if (!CustomConfigurations.SharedContacts && !this.authService.isAdmin())\r\n getContactsUrl += \"&assignedUserAccountId=\" + this.authService.applicationProfileUser().id;\r\n\r\n if (showLoading)\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n return this.http.get(getContactsUrl).map(\r\n (response: Response) => {\r\n let contacts: ContactSearchItem[] = (response);\r\n contacts = contacts.map(\r\n c => {\r\n // c.createdByUserAccount = this.userService.getUser(c.createdByUserAccountId);\r\n // c.updatedByUserAccount = this.userService.getUser(c.updatedByUserAccountId);\r\n // c.assignedUser = this.userService.getUser(c.assignedUserAccountId);\r\n return c;\r\n }\r\n );\r\n return contacts;\r\n }\r\n ).finally(() => {\r\n if (showLoading)\r\n this.loadingService.hideLoadingSpinner();\r\n });\r\n }\r\n\r\n getContact(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.contactsUrl + id).map(\r\n (response: Response) => {\r\n let contact: Contact = (response);\r\n // contact.createdByUserAccount = this.userService.getUser(contact.createdByUserAccountId);\r\n // contact.updatedByUserAccount = this.userService.getUser(contact.updatedByUserAccountId);\r\n // contact.assignedUser = this.userService.getUser(contact.assignedUserAccountId);\r\n return contact;\r\n }\r\n );\r\n }\r\n\r\n // getOpportunityContacts(): Observable {\r\n // return this.http.get(this.contactsUrl + \"GetOpportunityContacts\").map(\r\n // (response: Response) => {\r\n // let contacts: Contact[] = (response);\r\n // // contact.createdByUserAccount = this.userService.getUser(contact.createdByUserAccountId);\r\n // // contact.updatedByUserAccount = this.userService.getUser(contact.updatedByUserAccountId);\r\n // // contact.assignedUser = this.userService.getUser(contact.assignedUserAccountId);\r\n // return contacts;\r\n // }\r\n // );\r\n // }\r\n\r\n getContactProperty(id: number): Observable {\r\n\r\n\r\n return this.http.get(this.contactsUrl + 'GetContactProperty/' + id).map(\r\n (response: Response) => {\r\n let contactProp: ContactProperty = (response);\r\n return contactProp;\r\n }\r\n );\r\n }\r\n\r\n getOpportunityContacts(): Observable {\r\n return this.http.get(this.contactsUrl + \"GetOpportunityContacts\").map(\r\n (response: Response) => {\r\n let contacts: Contact[] = (response);\r\n // contact.createdByUserAccount = this.userService.getUser(contact.createdByUserAccountId);\r\n // contact.updatedByUserAccount = this.userService.getUser(contact.updatedByUserAccountId);\r\n // contact.assignedUser = this.userService.getUser(contact.assignedUserAccountId);\r\n return contacts;\r\n }\r\n );\r\n }\r\n\r\n addContact(contact: Contact): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.contactsUrl,\r\n contact\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateContact(contact: Contact): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.contactsUrl + contact.id,\r\n contact\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteContact(contact: Contact): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.contactsUrl + \"delete/\" + contact.externalId,\r\n contact\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n erasureContact(contact: Contact): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.contactsUrl + \"erasure/\" + contact.externalId,\r\n contact\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n\r\n //** THIS WAS EVIL! DON'T GET ALL CONTACTS TOGETHER EVER AGAIN! */\r\n // getContacts(): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n // let getContactsUrl = this.contactsUrl;\r\n\r\n // if (!CustomConfigurations.SharedContacts && !this.authService.isAdmin())\r\n // getContactsUrl += \"AssignedUser/\" + this.authService.getUser().id;\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.get(getContactsUrl).map(\r\n // (response: Response) => {\r\n // let contacts: Contact[] = (response);\r\n // contacts = contacts.map(\r\n // c => {\r\n // c.createdByUserAccount = this.userService.getUser(c.createdByUserAccountId);\r\n // c.updatedByUserAccount = this.userService.getUser(c.updatedByUserAccountId);\r\n // c.assignedUser = this.userService.getUser(c.assignedUserAccountId);\r\n // return c;\r\n // }\r\n // );\r\n // return contacts;\r\n // }\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { EmailProfile } from '../models/email-profile.model';\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class EmailProfileService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/emailprofiles/';\r\n\r\n public emailProfilesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getEmailProfiles(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n let getUrl = this.url;\r\n\r\n if (!this.authService.isAdmin())\r\n getUrl += \"UserParty/\" + this.authService.applicationProfileUser().id;\r\n\r\n return this.http.get(getUrl).map(\r\n (response: Response) => {\r\n let emailProfiles: EmailProfile[] = (response);\r\n emailProfiles = emailProfiles.map(\r\n cT => {\r\n // cT.userParty = this.userService.getUser(cT.userPartyId);\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return emailProfiles;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getEmailProfile(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let emailProfile: EmailProfile = (response);\r\n // emailProfile.userParty = this.userService.getUser(emailProfile.userPartyId);\r\n // emailProfile.createdByUserAccount = this.userService.getUser(emailProfile.createdByUserAccountId);\r\n // emailProfile.updatedByUserAccount = this.userService.getUser(emailProfile.updatedByUserAccountId);\r\n return emailProfile;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addEmailProfile(emailProfile: EmailProfile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n emailProfile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateEmailProfile(emailProfile: EmailProfile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + emailProfile.id,\r\n emailProfile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteEmailProfile(emailProfile: EmailProfile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + emailProfile.id,\r\n emailProfile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { Email } from \"../models/email.model\";\r\nimport { Task } from \"../models/task.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\nimport { Contact } from \"../models/contact.model\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { PrepopulatedTaskTypes } from 'app.constant';\r\n//import { TaskService } from './task.service';\r\nimport { Property } from '../models/property.model';\r\n\r\n\r\n@Injectable()\r\nexport class EmailService {\r\n private emailsUrl: string = AppSettings.API_ENDPOINT + 'api/email/';\r\n\r\n //propertySelected = new Property();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n //private taskService: TaskService\r\n ) { }\r\n\r\n sendEmail(email: Email): Observable {\r\n return this.http.post(\r\n this.emailsUrl,\r\n email\r\n );\r\n }\r\n\r\n sendEmailWithProfile(email: Email, profileId: number): Observable {\r\n return this.http.post(\r\n this.emailsUrl + \"profileId/\" + profileId,\r\n email\r\n );\r\n }\r\n\r\n createUserTaskEmail(task: Task, sender: CrmUser, receiver: CrmUser, calendarDuration: number, propertySelected: Property) {\r\n debugger;\r\n let subject = sender.fullName;\r\n subject += task.updatedByUserAccountId ?\r\n \" has updated a task that you are assigned to\" :\r\n \" has assigned you to a new task\";\r\n\r\n let intro =\"\";\r\n\r\n if(task.taskType.name == PrepopulatedTaskTypes.Viewing)\r\n {\r\n intro = \"Hello \" + receiver.fullName + \"

\";\r\n intro += task.updatedByUserAccountId ?\r\n \"The following viewing has been updated:\" :\r\n \"You have been assigned to the following viewing:\";\r\n intro += \"

\";\r\n }\r\n else\r\n {\r\n intro = \"Hello \" + receiver.fullName + \"

\";\r\n intro += task.updatedByUserAccountId ?\r\n \"The following task has been updated:\" :\r\n \"You have been assigned to the following task:\";\r\n intro += \"

\";\r\n }\r\n\r\n const createdOnDate = new Date(task.createdOn).toLocaleString(\"en-GB\");\r\n const updatedOnDate = new Date(task.updatedOn).toLocaleString(\"en-GB\");\r\n const reminderDate = new Date(task.reminderDate).toLocaleString(\"en-GB\");\r\n\r\n let body = \"\";\r\n body += this.tableRow(\"Created by:\", task.createdByUserAccount.fullName);\r\n body += this.tableRow(\"Created on:\", createdOnDate);\r\n body += this.tableRow(\"
\", \"
\");\r\n body += task.updatedByUserAccountId ? this.tableRow(\"Updated by:\", task.updatedByUserAccount.fullName) : \"\";\r\n body += task.updatedByUserAccountId ? this.tableRow(\"Updated on:\", updatedOnDate) : \"\";\r\n body += task.updatedByUserAccountId ? this.tableRow(\"
\", \"
\") : \"\";\r\n body += this.tableRow(\"Scheduled for:\", reminderDate);\r\n if(task.taskType.name == PrepopulatedTaskTypes.Viewing)\r\n {\r\n if(propertySelected.propertyCoords != null && propertySelected.propertyCoords.length)\r\n {\r\n task.locationLat = parseFloat(propertySelected.propertyCoords[0]);\r\n task.locationLng = parseFloat(propertySelected.propertyCoords[1]);\r\n body += this.tableRow(\"Location:\", \"Location on Google\")\r\n }\r\n }\r\n else\r\n {\r\n body += task.location ? this.tableRow(\"Location:\", task.location) : \"\";\r\n }\r\n body += this.tableRow(\"
\", \"
\");\r\n\r\n const contactVal = task.contactTasks.length > 1 ? \"Assigned Contacts:\" : \"Assigned Contact:\";\r\n task.contactTasks.forEach(\r\n (contactTask, index) => {\r\n let contactMobile = contactTask.contact.mobilePhoneNumber != null ? \" (\" + contactTask.contact.mobilePhoneNumber +\")\" : \"\";\r\n body += index === 0 ?\r\n this.tableRow(contactVal, contactTask.contact.fullName + contactMobile) :\r\n this.tableRow(\"\", contactTask.contact.fullName + contactMobile);\r\n }\r\n );\r\n body += this.tableRow(\"
\", \"
\");\r\n\r\n const agentVal = task.userTasks.length > 1 ? \"Assigned Agents:\" : \"Assigned Agent:\";\r\n task.userTasks.forEach(\r\n (userTask, index) => {\r\n body += index === 0 ?\r\n this.tableRow(agentVal, userTask.user.fullName) :\r\n this.tableRow(\"\", userTask.user.fullName);\r\n }\r\n );\r\n body += this.tableRow(\"
\", \"
\");\r\n if(task.taskType.name == PrepopulatedTaskTypes.Viewing)\r\n {\r\n body += this.tableRow(\"Property:\",\"\" + propertySelected.propertyPreCode+ \" - \"+ propertySelected.propertyCategory +\" in \" + propertySelected.propertyLocality + \"\") ;\r\n }\r\n body += this.tableRow(\"Task Description:\", task.taskDescription);\r\n body += \"
\";\r\n\r\n const mail: any = {\r\n userReceiver: receiver,\r\n contactReceiver: null,\r\n subject: subject,\r\n body: intro + body,\r\n task: task,\r\n calendarDuration: calendarDuration\r\n }\r\n return mail;\r\n }\r\n\r\n createContactTaskEmail(task: Task, sender: CrmUser, receiver: Contact, calendarDuration: number, propertySelected: Property) {\r\n let subject = sender.fullName;\r\n subject += task.updatedByUserAccountId ?\r\n \" has updated a task that you are assigned to\" :\r\n \" has assigned you to a new task\";\r\n\r\n\r\n let intro =\"\";\r\n \r\n \r\n if(task.taskType.name == PrepopulatedTaskTypes.Viewing)\r\n {\r\n intro = \"Hello \" + receiver.fullName + \"

\";\r\n intro += task.updatedByUserAccountId ?\r\n \"The following viewing has been updated:\" :\r\n \"You have been assigned to the following viewing:\";\r\n intro += \"

\";\r\n }\r\n else\r\n {\r\n intro = \"Hello \" + receiver.fullName + \"

\";\r\n intro += task.updatedByUserAccountId ?\r\n \"The following task has been updated:\" :\r\n \"You have been assigned to the following task:\";\r\n intro += \"

\";\r\n }\r\n\r\n const createdOnDate = new Date(task.createdOn).toLocaleString(\"en-GB\");\r\n const updatedOnDate = new Date(task.updatedOn).toLocaleString(\"en-GB\");\r\n const reminderDate = new Date(task.reminderDate).toLocaleString(\"en-GB\");\r\n\r\n let body = \"\";\r\n body += this.tableRow(\"Created by:\", task.createdByUserAccount.fullName);\r\n body += this.tableRow(\"Created on:\", createdOnDate);\r\n body += this.tableRow(\"
\", \"
\");\r\n body += task.updatedByUserAccountId ? this.tableRow(\"Updated by:\", task.updatedByUserAccount.fullName) : \"\";\r\n body += task.updatedByUserAccountId ? this.tableRow(\"Updated on:\", updatedOnDate) : \"\";\r\n body += task.updatedByUserAccountId ? this.tableRow(\"
\", \"
\") : \"\";\r\n body += this.tableRow(\"Scheduled for:\", reminderDate);\r\n\r\n if(task.taskType.name == PrepopulatedTaskTypes.Viewing)\r\n {\r\n //Will not give location to contact.\r\n }\r\n else\r\n {\r\n body += task.location ? this.tableRow(\"Location:\", task.location) : \"\";\r\n }\r\n\r\n body += this.tableRow(\"
\", \"
\");\r\n\r\n const contactVal = task.contactTasks.length > 1 ? \"Assigned Contacts:\" : \"Assigned Contact:\";\r\n task.contactTasks.forEach(\r\n (contactTask, index) => {\r\n body += index === 0 ?\r\n this.tableRow(contactVal, contactTask.contact.fullName) :\r\n this.tableRow(\"\", contactTask.contact.fullName);\r\n }\r\n );\r\n body += this.tableRow(\"
\", \"
\");\r\n\r\n const agentVal = task.userTasks.length > 1 ? \"Assigned Agents:\" : \"Assigned Agent:\";\r\n task.userTasks.forEach(\r\n (userTask, index) => {\r\n body += index === 0 ?\r\n this.tableRow(agentVal, userTask.user.fullName) :\r\n this.tableRow(\"\", userTask.user.fullName);\r\n }\r\n );\r\n body += this.tableRow(\"
\", \"
\");\r\n if(task.taskType.name == PrepopulatedTaskTypes.Viewing)\r\n {\r\n body += this.tableRow(\"Property:\",propertySelected.propertyPreCode+ \" - \"+ propertySelected.propertyCategory +\" in \" + propertySelected.propertyLocality) ;\r\n }\r\n body += this.tableRow(\"Task Description:\", task.taskDescription);\r\n body += \"
\";\r\n\r\n const mail: any = {\r\n userReceiver: null,\r\n contactReceiver: receiver,\r\n subject: subject,\r\n body: intro + body,\r\n task: task,\r\n calendarDuration: calendarDuration\r\n }\r\n return mail;\r\n }\r\n\r\n tableRow(colA: string, colB: string): string {\r\n return \"\"\r\n + \"\" + colA + \"\"\r\n + \"\" + colB + \"\"\r\n + \"\";\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { Group } from \"../models/group.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class GroupService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/groups/';\r\n\r\n public groupsChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getGroups(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let groups: Group[] = (response);\r\n groups = groups.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return groups;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getGroup(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let group: Group = (response);\r\n // group.createdByUserAccount = this.userService.getUser(group.createdByUserAccountId);\r\n // group.updatedByUserAccount = this.userService.getUser(group.updatedByUserAccountId);\r\n return group;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addGroup(group: Group): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n group\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateGroup(group: Group): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + group.id,\r\n group\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteGroup(group: Group): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + group.id,\r\n group\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { CallInfo } from '../../shared/models/lead-desk/call-info.model';\r\nimport { LeadDeskConfig, CallingList } from '../../shared/models/lead-desk/lead-desk-config.model';\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { ApiEndPoints } from 'app.constant';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { AppSettings } from 'app.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class LeadDeskService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/LeadDesk/';\r\n\r\n public configChanged = new Subject();\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getLeadDeskConfig(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Config\").map(\r\n (response: Response) => {\r\n let leadDeskConfig: LeadDeskConfig = (response);\r\n\r\n return leadDeskConfig;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addLeadDeskConfig(leadDeskConfig: LeadDeskConfig): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url + \"Config\",\r\n leadDeskConfig\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateLeadDeskConfig(leadDeskConfig: LeadDeskConfig): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Config/\" + leadDeskConfig.id,\r\n leadDeskConfig\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCallingLists() {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n this.loadingService.displayLoadingSpinner();\r\n \r\n let url = this.url + 'CallingLists';\r\n\r\n return this.http.get(url).map(\r\n (response: Response) => {\r\n let callingLists: CallingList[] = (response);\r\n return callingLists;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCallInfoByPhoneNumber(phoneNumber: string) {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n this.loadingService.displayLoadingSpinner();\r\n \r\n let url = this.url + 'CallInfoByPhoneNumber?phoneNumber=' + encodeURIComponent(phoneNumber);\r\n\r\n return this.http.get(url).map(\r\n (response: Response) => {\r\n let callInfo: CallInfo = (response);\r\n return callInfo;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCallInfoByCallRefId(callRefId: string) {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n this.loadingService.displayLoadingSpinner();\r\n \r\n let url = this.url + 'CallInfoByCallRefId/' + callRefId;\r\n\r\n return this.http.get(url).map(\r\n (response: Response) => {\r\n let callInfo: CallInfo = (response);\r\n return callInfo;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getLeadDeskContactById(contactId: string) {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n this.loadingService.displayLoadingSpinner();\r\n \r\n let url = this.url + 'LeadDeskContactById/' + contactId;\r\n\r\n return this.http.get(url).map(\r\n (response: Response) => {\r\n let callInfo: CallInfo = (response);\r\n return callInfo;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n mockLeadDeskPostCallEvent(callRefId: string) {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n this.loadingService.displayLoadingSpinner();\r\n \r\n let url = this.url + 'CallCompletedEvent?other_i_name_1=Type of Company&fname=Joanna&phone=0733309218&last_call_id=73590&other_i_name_2=CID Number&reason_id=3&updated_at=2018-04-13 16:28:22&email=joaboq@gmail.com&last_reason=3&other_info_ft=Starta Aktiebolag&lname=Boquist&id=41582&client_id=2284&call_logs_id=73590&other_i_name_6=Serviceavtal&other_i_name_4=Antalet anställda&other_i_name_5=Övriga kommentarer&api_key=TEMP_KEY885532&other_i_name_3=Beräknad omsättning&campaign_id=1397&created_at=2018-04-13 16:24:21';\r\n\r\n return this.http.get(url).map(\r\n (response: Response) => {\r\n let callInfo: CallInfo = (response);\r\n return callInfo;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\n@Injectable()\r\nexport class LoadingSpinnerService {\r\n isLoading: number = 0;\r\n\r\n displayLoadingSpinner() {\r\n this.isLoading++;\r\n }\r\n\r\n hideLoadingSpinner() {\r\n this.isLoading--;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { AuthHttp } from 'angular2-jwt';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { LoadingSpinnerService } from './loading-spinner.service';\r\n\r\nimport { Campaign, List, MailChimpConfig } from '../../shared/models/mailchimp/campaign.model';\r\n\r\nimport { ApiEndPoints } from 'app.constant';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs';\r\nimport { AppSettings } from 'app.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class MailchimpService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/MailChimp/';\r\n\r\n public configChanged = new Subject();\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getMailChimpConfig(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Config\").map(\r\n (response: Response) => {\r\n let mailChimpConfig: MailChimpConfig = (response);\r\n\r\n return mailChimpConfig;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addMailChimpConfig(mailChimpConfig: MailChimpConfig): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url + \"Config\",\r\n mailChimpConfig\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateMailChimpConfig(mailChimpConfig: MailChimpConfig): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Config/\" + mailChimpConfig.id,\r\n mailChimpConfig\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getLists(count: number = 99999): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Lists?count=\" + count).map(\r\n (response: Response) => {\r\n let lists: List[] = (response);\r\n\r\n return lists;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateCommunicationLogsFromList(id: string): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Lists/\" + id).map(\r\n (response: Response) => {\r\n return +(response).value;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getCampaigns(count: number = 99999): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Campaigns?count=\" + count).map(\r\n (response: Response) => {\r\n let campaigns: Campaign[] = (response);\r\n\r\n return campaigns;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateCommunicationLogsFromCampaign(id: string): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Campaigns/\" + id).map(\r\n (response: Response) => {\r\n return (response);\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { MessageSignature } from '../models/message-signature.model';\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class MessageSignatureService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/messagesignatures/';\r\n\r\n public messageSignaturesChanged = new Subject();\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getMessageSignatures(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let messageSignatures: MessageSignature[] = (response);\r\n messageSignatures = messageSignatures.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return messageSignatures;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getMessageSignature(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let messageSignature: MessageSignature = (response);\r\n // messageSignature.createdByUserAccount = this.userService.getUser(messageSignature.createdByUserAccountId);\r\n // messageSignature.updatedByUserAccount = this.userService.getUser(messageSignature.updatedByUserAccountId);\r\n return messageSignature;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addMessageSignature(messageSignature: MessageSignature): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n messageSignature\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateMessageSignature(messageSignature: MessageSignature): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + messageSignature.id,\r\n messageSignature\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteMessageSignature(messageSignature: MessageSignature): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + messageSignature.id,\r\n messageSignature\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { MessageTemplate } from '../models/message-template.model';\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class MessageTemplateService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/messagetemplates/';\r\n\r\n public messageTemplatesChanged = new Subject();\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getMessageTemplates(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let messageTemplates: MessageTemplate[] = (response);\r\n messageTemplates = messageTemplates.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return messageTemplates;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getMessageTemplate(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let messageTemplate: MessageTemplate = (response);\r\n // messageTemplate.createdByUserAccount = this.userService.getUser(messageTemplate.createdByUserAccountId);\r\n // messageTemplate.updatedByUserAccount = this.userService.getUser(messageTemplate.updatedByUserAccountId);\r\n return messageTemplate;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addMessageTemplate(messageTemplate: MessageTemplate): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n messageTemplate\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateMessageTemplate(messageTemplate: MessageTemplate): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + messageTemplate.id,\r\n messageTemplate\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteMessageTemplate(messageTemplate: MessageTemplate): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + messageTemplate.id,\r\n messageTemplate\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { OpportunityFile } from \"../../shared/models/opportunity-file.model\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class OpportunityFileService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/opportunityfiles/';\r\n\r\n public opportunityFilesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getOpportunityFiles(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let opportunityFiles: OpportunityFile[] = (response);\r\n opportunityFiles = opportunityFiles.map(\r\n cF => {\r\n // cF.createdByUserAccount = this.userService.getUser(cF.createdByUserAccountId);\r\n // cF.updatedByUserAccount = this.userService.getUser(cF.updatedByUserAccountId);\r\n return cF;\r\n }\r\n );\r\n return opportunityFiles;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getOpportunityFilesByOpportunityId(opportunityId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"Opportunity/\" + opportunityId).map(\r\n (response: Response) => {\r\n let opportunityFiles: OpportunityFile[] = (response);\r\n opportunityFiles = opportunityFiles.map(\r\n cF => {\r\n // cF.createdByUserAccount = this.userService.getUser(cF.createdByUserAccountId);\r\n // cF.updatedByUserAccount = this.userService.getUser(cF.updatedByUserAccountId);\r\n return cF;\r\n }\r\n );\r\n return opportunityFiles;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getOpportunityFile(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let opportunityFile: OpportunityFile = (response);\r\n // opportunityFile.createdByUserAccount = this.userService.getUser(opportunityFile.createdByUserAccountId);\r\n // opportunityFile.updatedByUserAccount = this.userService.getUser(opportunityFile.updatedByUserAccountId);\r\n return opportunityFile;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateOpportunityFile(opportunityFile: OpportunityFile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + opportunityFile.id,\r\n opportunityFile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteOpportunityFile(opportunityFile: OpportunityFile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + opportunityFile.id,\r\n opportunityFile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { OpportunityLostType } from \"../models/opportunity-lost-type.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class OpportunityLostTypeService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/opportunitylosttypes/';\r\n\r\n public typesChanged = new Subject();\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getOpportunityLostTypes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let opportunityLostTypes: OpportunityLostType[] = (response);\r\n opportunityLostTypes = opportunityLostTypes.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return opportunityLostTypes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getOpportunityLostType(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let opportunityLostType: OpportunityLostType = (response);\r\n // opportunityLostType.createdByUserAccount = this.userService.getUser(opportunityLostType.createdByUserAccountId);\r\n // opportunityLostType.updatedByUserAccount = this.userService.getUser(opportunityLostType.updatedByUserAccountId);\r\n return opportunityLostType;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addOpportunityLostType(opportunityLostType: OpportunityLostType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n opportunityLostType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateOpportunityLostType(opportunityLostType: OpportunityLostType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + opportunityLostType.id,\r\n opportunityLostType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteOpportunityLostType(opportunityLostType: OpportunityLostType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + opportunityLostType.id,\r\n opportunityLostType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { OpportunityType } from \"../models/opportunity-type.model\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class OpportunityTypeService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/opportunitytypes/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService\r\n ) { }\r\n\r\n getOpportunityTypes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n const opportunities: OpportunityType[] = (response);\r\n return opportunities;\r\n }\r\n );\r\n }\r\n\r\n getOpportunityType(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n const opportunity: OpportunityType = (response);\r\n return opportunity;\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, URLSearchParams, Http } from \"@angular/http\";\r\n\r\nimport { Opportunity } from \"../models/opportunity.model\";\r\nimport { OpportunityType } from \"../models/opportunity-type.model\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { ApiEndPoints, CustomConfigurations } from \"app.constant\";\r\nimport { OpportunitiesSegment } from '../models/opportunities-segment.model';\r\nimport { AppSettings } from 'app.settings';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { OpportunityPropertiesNotInterested } from '../models/opportunity-properties-not-interested.model';\r\n\r\n\r\n@Injectable()\r\nexport class OpportunityService {\r\n private opportunitiesUrl: string = AppSettings.API_ENDPOINT + 'api/opportunities/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getOpportunitiesSegment(params: HttpParams, showLoading: boolean = true): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getOpportunitiesUrl = this.opportunitiesUrl;\r\n\r\n debugger;\r\n\r\n if (!CustomConfigurations.SharedOpportunities && !this.authService.isAdmin())\r\n // params =params.set(\"assignedUserAccountId\", this.authService.applicationProfileUser().id.toString());\r\n\r\n if (showLoading)\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n return this.http.get(getOpportunitiesUrl + 'GetOpportunitiesSegmented', { params }).map(\r\n (response: Response) => {\r\n \r\n let opportunities: Opportunity[] = (response).opportunities;\r\n opportunities = opportunities.map(\r\n o => {\r\n // o.createdByUserAccount = this.userService.getUser(o.createdByUserAccountId);\r\n // o.updatedByUserAccount = this.userService.getUser(o.updatedByUserAccountId);\r\n // o.assignedUser = this.userService.getUser(o.assignedUserAccountId);\r\n return o;\r\n }\r\n );\r\n\r\n let opportunitySegment: OpportunitiesSegment = new OpportunitiesSegment();\r\n opportunitySegment.opportunities = opportunities;\r\n opportunitySegment.totalOpportunityCount = (response).totalOpportunitiesCount;\r\n\r\n\r\n\r\n return opportunitySegment;\r\n }\r\n ).finally(() => {\r\n if (showLoading)\r\n this.loadingService.hideLoadingSpinner();\r\n });\r\n }\r\n\r\n\r\n getOpportunities(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getOpportunitiesUrl = this.opportunitiesUrl;\r\n\r\n if (!CustomConfigurations.SharedOpportunities && !this.authService.isAdmin())\r\n getOpportunitiesUrl += \"AssignedUser/\" + this.authService.applicationProfileUser().id;\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(getOpportunitiesUrl).map(\r\n (response: Response) => {\r\n let opportunities: Opportunity[] = (response);\r\n opportunities = opportunities.map(\r\n o => {\r\n // o.createdByUserAccount = this.userService.getUser(o.createdByUserAccountId);\r\n // o.updatedByUserAccount = this.userService.getUser(o.updatedByUserAccountId);\r\n // o.assignedUser = this.userService.getUser(o.assignedUserAccountId);\r\n return o;\r\n }\r\n );\r\n return opportunities;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getOpportunitiesForDashboard(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n let getOpportunitiesUrl = this.opportunitiesUrl+'GetOpportunitiesForDashboard';\r\n\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(getOpportunitiesUrl).map(\r\n (response: Response) => {\r\n let opportunities: Opportunity[] = (response);\r\n opportunities = opportunities.map(\r\n o => {\r\n return o;\r\n }\r\n );\r\n return opportunities;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // getOpportunitiesForDashboard(): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n // let getOpportunitiesUrl = this.opportunitiesUrl+'GetOpportunitiesForDashboard';\r\n\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.get(getOpportunitiesUrl).map(\r\n // (response: Response) => {\r\n // let opportunities: Opportunity[] = (response);\r\n // opportunities = opportunities.map(\r\n // o => {\r\n // return o;\r\n // }\r\n // );\r\n // return opportunities;\r\n // }\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n getOpportunitiesByAssignedContactId(contactId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.opportunitiesUrl + \"AssignedContact/\" + contactId).map(\r\n (response: Response) => {\r\n let opportunities: Opportunity[] = (response);\r\n opportunities = opportunities.map(\r\n o => {\r\n // o.createdByUserAccount = this.userService.getUser(o.createdByUserAccountId);\r\n // o.updatedByUserAccount = this.userService.getUser(o.updatedByUserAccountId);\r\n // o.assignedUser = this.userService.getUser(o.assignedUserAccountId);\r\n return o;\r\n }\r\n );\r\n return opportunities;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // getOpportunitiesByTaskId(taskId: number): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.get(this.opportunitiesUrl + \"/Task/\" + taskId).map(\r\n // (response: Response) => {\r\n // let opportunities: Opportunity[] = (response);\r\n // opportunities = opportunities.map(\r\n // o => {\r\n // o.createdByUserAccount = this.userService.getUser(o.createdByUserAccountId);\r\n // o.updatedByUserAccount = this.userService.getUser(o.updatedByUserAccountId);\r\n // o.assignedUser = this.userService.getUser(o.assignedUserAccountId);\r\n // return o;\r\n // }\r\n // );\r\n // return opportunities;\r\n // }\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n getOpportunity(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.opportunitiesUrl + 'getopportunity/' + id).map(\r\n (response: Response) => {\r\n let opportunity: Opportunity = (response);\r\n // opportunity.createdByUserAccount = this.userService.getUser(opportunity.createdByUserAccountId);\r\n // opportunity.updatedByUserAccount = this.userService.getUser(opportunity.updatedByUserAccountId);\r\n // opportunity.assignedUser = this.userService.getUser(opportunity.assignedUserAccountId);\r\n return opportunity;\r\n }\r\n );\r\n }\r\n\r\n addOpportunity(opportunity: Opportunity): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.opportunitiesUrl + \"postopportunity\",\r\n opportunity\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateOpportunity(opportunity: Opportunity): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.opportunitiesUrl + \"updateopportunity/\" + opportunity.id,\r\n opportunity\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteOpportunity(opportunity: Opportunity): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.opportunitiesUrl + \"delete/\" + opportunity.id,\r\n opportunity\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getViewingsByContactId(id: number): Observable {\r\n\r\n return this.http.get(this.opportunitiesUrl + 'getviewingsbycontactId/' + id).map(\r\n (response: Response) => {\r\n let viewings: number[] = (response);\r\n return viewings;\r\n }\r\n );\r\n }\r\n\r\n addPropertyNotInterested(oppPropNotInterested: OpportunityPropertiesNotInterested): Observable {\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.opportunitiesUrl + \"addpropertynotinterested\",\r\n oppPropNotInterested\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n undoPropertyNotInterested(oppPropNotInterested: OpportunityPropertiesNotInterested): Observable {\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.opportunitiesUrl + \"undopropertynotinterested\",\r\n oppPropNotInterested\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getPropertiesNotInterested(oppId: number): Observable {\r\n return this.http.get(this.opportunitiesUrl + 'getopppropertynotinterested/' + oppId).map(\r\n (response: Response) => {\r\n let notInterestedProp: number[] = (response);\r\n return notInterestedProp;\r\n }\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { Organization } from \"../models/organization.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CompanyDetails } from '../models/company-details.model';\r\n\r\n\r\n@Injectable()\r\nexport class OrganizationService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/organizations/';\r\n private companyDetailsUrl: string = AppSettings.API_ENDPOINT + \"api/company-details/\";\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getOrganizations(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n\r\n let organizations: Organization[] = (response);\r\n organizations = organizations.map(\r\n cT => {\r\n\r\n //cT.createdByUserAccount = ((cT.createdByUserAccount))//this.userService.getUser(cT.createdByUserAccountId);\r\n //cT.updatedByUserAccount = ((cT.updatedByUserAccount));//this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return organizations;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getOrganization(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let organization: Organization = (response);\r\n // organization.createdByUserAccount = this.userService.getUser(organization.createdByUserAccountId);\r\n // organization.updatedByUserAccount = this.userService.getUser(organization.updatedByUserAccountId);\r\n return organization;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addOrganization(organization: Organization): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n organization\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateOrganization(organization: Organization): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + organization.id,\r\n organization\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteOrganization(organization: Organization): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + organization.id,\r\n organization\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // //create company Details\r\n // createCompanyDetails(companyDetails: CompanyDetails): Observable {\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.post(\r\n // this.companyDetailsUrl,\r\n // companyDetails\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n //read company details. Since there will be only 1 entry for the company, there is no need to retrieve the company details by id.\r\n //In this case the first instance inside the company details table, is retrieved and assumed to be the current company details.\r\n getCompanyDetails(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.companyDetailsUrl).map(\r\n (response: Response) => {\r\n let companyDetails: CompanyDetails = (response);\r\n return companyDetails;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n //update company details\r\n updateCompanyDetails(companyDetails: CompanyDetails): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.companyDetailsUrl + companyDetails.id,\r\n companyDetails\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n //create company Details\r\n createCompanyDetails(companyDetails: CompanyDetails): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.companyDetailsUrl,\r\n companyDetails\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // //read company details. Since there will be only 1 entry for the company, there is no need to retrieve the company details by id.\r\n // //In this case the first instance inside the company details table, is retrieved and assumed to be the current company details.\r\n // getCompanyDetails(): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.get(this.companyDetailsUrl).map(\r\n // (response: Response) => {\r\n // let companyDetails: CompanyDetails = (response);\r\n // return companyDetails;\r\n // }\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n // //update company details\r\n // updateCompanyDetails(companyDetails: CompanyDetails): Observable {\r\n // this.loadingService.displayLoadingSpinner();\r\n // return this.http.put(\r\n // this.companyDetailsUrl + companyDetails.id,\r\n // companyDetails\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { PaymentTerm } from \"../models/payment-term.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class PaymentTermService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/paymentsterms/';\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getPaymentTerms(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let paymentTerms: PaymentTerm[] = (response);\r\n paymentTerms = paymentTerms.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return paymentTerms;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getPaymentTerm(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let paymentTerm: PaymentTerm = (response);\r\n // paymentTerm.createdByUserAccount = this.userService.getUser(paymentTerm.createdByUserAccountId);\r\n // paymentTerm.updatedByUserAccount = this.userService.getUser(paymentTerm.updatedByUserAccountId);\r\n return paymentTerm;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addPaymentTerm(paymentTerm: PaymentTerm): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n paymentTerm\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updatePaymentTerm(paymentTerm: PaymentTerm): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + paymentTerm.id,\r\n paymentTerm\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deletePaymentTerm(paymentTerm: PaymentTerm): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + paymentTerm.id,\r\n paymentTerm\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { Product } from \"../models/product.model\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class ProductService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/products/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService\r\n ) { }\r\n\r\n getProducts(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n const products: Product[] = (response);\r\n return products;\r\n }\r\n );\r\n }\r\n\r\n getProduct(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n const product: Product = (response);\r\n return product;\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { Product } from \"../models/product.model\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { PropertyCategory } from '../models/property-category.model';\r\nimport { PropertyLocality } from '../models/property-locality.model';\r\nimport { PropertyRegion } from '../models/property-region.model';\r\nimport { PropertyDealType } from '../models/property-dealtype';\r\nimport { PropertyAttribute } from '../models/property-attribute';\r\nimport { PropertyDetails } from '../models/property-details.model';\r\nimport { LoadingSpinnerService } from './loading-spinner.service';\r\nimport { Opportunity } from '../models/opportunity.model';\r\nimport { OpportunitySelection } from '../models/opportunity-selection.model';\r\nimport { PropertyOppSelection } from '../models/property-opportunity-selection.model';\r\nimport { Property } from '../models/property.model';\r\n\r\n\r\n@Injectable()\r\nexport class PropertyService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/opportunities/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getMainCategoryTypes(): Observable {\r\n return this.http.get(this.url+'maincategories').map(\r\n (response: Response) => {\r\n const propCategories: PropertyCategory[] = (response);\r\n return propCategories;\r\n }\r\n );\r\n }\r\n\r\n getSubCategoryTypes(selectedMainCat: number[]): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url+'subcategories', selectedMainCat\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getPropertyLocalities(selectedReg: number[]): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url+'propertylocalitiesbyregionid', selectedReg\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getPropertyRegions(): Observable {\r\n return this.http.get(this.url+'propertyregions').map(\r\n (response: Response) => {\r\n const propLocalities: PropertyRegion[] = (response);\r\n return propLocalities;\r\n }\r\n );\r\n }\r\n\r\n getPropertyDealTypes(): Observable {\r\n return this.http.get(this.url+'dealtypes').map(\r\n (response: Response) => {\r\n const propDealTypes: PropertyDealType[] = (response);\r\n return propDealTypes;\r\n }\r\n );\r\n }\r\n\r\n getPropertyRooms(): Observable {\r\n return this.http.get(this.url+'rooms').map(\r\n (response: Response) => {\r\n const propAttributes: PropertyAttribute[] = (response);\r\n return propAttributes;\r\n }\r\n );\r\n }\r\n\r\n getPropertyFeatures(): Observable {\r\n return this.http.get(this.url+'features').map(\r\n (response: Response) => {\r\n const propAttributes: PropertyAttribute[] = (response);\r\n return propAttributes;\r\n }\r\n );\r\n }\r\n\r\n postPropertyDetails(opportunitySelection: OpportunitySelection): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url+'postoppselection', opportunitySelection\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getPropertyDetails(id: number): Observable {\r\n return this.http.get(this.url+'getoppselectionbyid/'+ id).map(\r\n (response: Response) => {\r\n let propOppSelection: PropertyOppSelection = (response);\r\n // let oppSelection: OpportunitySelection = propOppSelection.oppSelectionModel\r\n // let propDetails: PropertyDetails = propOppSelection.oppSelectionModel.oppSelectionModel\r\n // let properties: Property[] = propOppSelection.property\r\n return propOppSelection;\r\n }\r\n );\r\n }\r\n\r\n updatePropertyDetails(id:number, opportunitySelection: OpportunitySelection): Observable {\r\n \r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + 'updateoppselection/' + id, opportunitySelection\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // getProduct(id: number): Observable {\r\n // //this.authService.reauthenticateIfTokenExpired();\r\n\r\n // return this.http.get(this.url + id).map(\r\n // (response: Response) => {\r\n // const product: Product = (response);\r\n // return product;\r\n // }\r\n // );\r\n // }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Quote } from \"../models/quote.model\";\r\nimport { QuoteItem } from '../models/quote-item.model';\r\nimport { Contact } from '../models/contact.model';\r\n\r\n\r\n@Injectable()\r\nexport class QuoteService {\r\n\r\n public url: string = AppSettings.API_ENDPOINT + 'api/quotes/';\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getQuotes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let quotes: Quote[] = (response);\r\n quotes = quotes.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return quotes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getQuotesByOpportunityId(opportunityId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url+\"Opportunity/\"+opportunityId).map(\r\n (response: Response) => {\r\n let quotes: Quote[] = (response);\r\n quotes = quotes.map(\r\n cT => {\r\n return cT;\r\n }\r\n );\r\n return quotes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getAssignedContactByQuoteId(quoteId: number) : Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url+quoteId+\"/Contact\").map(\r\n (response: Response) => {\r\n let contact: Contact = (response);\r\n\r\n return contact;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getQuote(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let quote: Quote = (response);\r\n // quote.createdByUserAccount = this.userService.getUser(quote.createdByUserAccountId);\r\n // quote.updatedByUserAccount = this.userService.getUser(quote.updatedByUserAccountId);\r\n return quote;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addQuote(quote: Quote): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n quote\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateQuote(quote: Quote): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + quote.id,\r\n quote\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n cloneQuote(quote: Quote): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url + \"Clone\",\r\n quote\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n quoteToInvoice(quote: Quote): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url +\"Invoice/\" + quote.id,\r\n quote\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n generatePdf(quoteId: number): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(\r\n this.url + quoteId+\"/generate\",\r\n\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n view(quoteId: number): Observable {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(\r\n this.url +\"/\" + quoteId + \"/pdf\",\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n scheduleEmailQuote(newOpportunityQuoteSendEmail: any) {\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url + newOpportunityQuoteSendEmail.quoteId + \"/email\", newOpportunityQuoteSendEmail\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteQuote(quote: Quote): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + quote.id,\r\n quote\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteQuoteItem(quoteItem: QuoteItem): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"DeleteItem/\" + quoteItem.id,\r\n quoteItem\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { SavedContactSearch } from \"../models/saved-contact-search.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class SavedContactSearchService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/savedContactSearches/';\r\n\r\n public savedContactSearchesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getSavedContactSearches(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let savedContactSearches: SavedContactSearch[] = (response);\r\n savedContactSearches = savedContactSearches.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return savedContactSearches;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getSavedContactSearch(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let savedContactSearch: SavedContactSearch = (response);\r\n // savedContactSearch.createdByUserAccount = this.userService.getUser(savedContactSearch.createdByUserAccountId);\r\n // savedContactSearch.updatedByUserAccount = this.userService.getUser(savedContactSearch.updatedByUserAccountId);\r\n return savedContactSearch;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addSavedContactSearch(savedContactSearch: SavedContactSearch): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n savedContactSearch\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateSavedContactSearch(savedContactSearch: SavedContactSearch): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + savedContactSearch.id,\r\n savedContactSearch\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteSavedContactSearch(savedContactSearch: SavedContactSearch): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + savedContactSearch.id,\r\n savedContactSearch\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { SmsWarriorsProfile } from '../models/sms-warriors-profile.model';\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class SmsWarriorsProfileService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/smswarriorprofiles/';\r\n\r\n public smsWarriorsProfilesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getSmsWarriorProfiles(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let smsWarriorProfiles: SmsWarriorsProfile[] = (response);\r\n smsWarriorProfiles = smsWarriorProfiles.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return smsWarriorProfiles;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getSmsWarriorProfile(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let smsWarriorProfile: SmsWarriorsProfile = (response);\r\n // smsWarriorProfile.createdByUserAccount = this.userService.getUser(smsWarriorProfile.createdByUserAccountId);\r\n // smsWarriorProfile.updatedByUserAccount = this.userService.getUser(smsWarriorProfile.updatedByUserAccountId);\r\n return smsWarriorProfile;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addSmsWarriorProfile(smsWarriorProfile: SmsWarriorsProfile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n smsWarriorProfile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateSmsWarriorProfile(smsWarriorProfile: SmsWarriorsProfile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + smsWarriorProfile.id,\r\n smsWarriorProfile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteSmsWarriorProfile(smsWarriorProfile: SmsWarriorsProfile): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + smsWarriorProfile.id,\r\n smsWarriorProfile\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http, Headers, Request, RequestMethod, RequestOptions, ResponseContentType, Jsonp } from \"@angular/http\";\r\n\r\nimport { LoadingSpinnerService } from './loading-spinner.service';\r\n\r\nimport { SmsWarriors, ApiEndPoints } from 'app.constant';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { SmsWarriorsResponse } from '../models/sms-warriors-response.model';\r\nimport { AuthHttp } from 'angular2-jwt';\r\nimport { AppSettings } from 'app.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class SmsWarriorsService {\r\n // private url: string = `${SmsWarriors.ApiEndPoint}`;\r\n private url: string = AppSettings.API_ENDPOINT + 'api/externalapi/';\r\n\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n requestSMS(apiKey: string, countryCode: string, contactIds: any[], sentByUserId: number, senderId: string, msgBody: string, notification: number) {\r\n senderId = encodeURIComponent(senderId); // - Max: 18 numbers OR 11 text characters\r\n msgBody = encodeURIComponent(msgBody); // - Max: 500 chars\r\n\r\n let smsUrl = `${this.url}`;\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n\r\n let postObj = {\r\n key: apiKey,\r\n countryCode: countryCode,\r\n contactIds: contactIds,\r\n contacts: null,\r\n sentByUserId: sentByUserId,\r\n senderid: senderId,\r\n msg: msgBody,\r\n notification: 0\r\n };\r\n\r\n return this.http.post(smsUrl, postObj).map(\r\n (response: Response) => {\r\n\r\n let smsWarriorsResponse: SmsWarriorsResponse = (response);\r\n return smsWarriorsResponse;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n // requestSMS(apiKey: string, contactNumbers: string, senderId: string, msgBody: string, notification: number) {\r\n // senderId = encodeURIComponent(senderId); // - Max: 18 numbers OR 11 text characters\r\n // msgBody = encodeURIComponent(msgBody); // - Max: 500 chars\r\n\r\n // let smsUrl = `${this.url}?key=${apiKey}&contacts=${contactNumbers}&senderid=${senderId}&msg=${msgBody}¬ification=${notification}`;\r\n\r\n // this.loadingService.displayLoadingSpinner();\r\n\r\n\r\n // return this.http.get(smsUrl).map(\r\n // (response: Response) => {\r\n // let smsWarriorsResponse: SmsWarriorsResponse = (response);\r\n // return smsWarriorsResponse;\r\n // }\r\n // ).finally(() => this.loadingService.hideLoadingSpinner());\r\n // }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SelectItem } from \"primeng/primeng\";\r\n\r\n@Injectable()\r\nexport class TableUtilityService {\r\n //** Contacts Table - Start */\r\n //**** - All Toggleable Columns */\r\n private allSelectableContactCols: any[] = [\r\n { label: 'Date Created', value: 'createdOn' },\r\n { label: 'Created By', value: 'createdByUserAccount' },\r\n { label: 'Date Updated', value: 'updatedOn' },\r\n { label: 'Updated By', value: 'updatedByUserAccount' },\r\n { label: 'Assigned To', value: 'assignedUser' },\r\n { label: 'Full Name', value: 'fullName' },\r\n { label: 'Organization', value: 'organization' },\r\n { label: 'Type', value: 'contactTypes' },\r\n { label: 'Source', value: 'contactSource' },\r\n { label: 'Referred By', value: 'referredByContact' },\r\n { label: 'Date Converted', value: 'convertedDate' },\r\n { label: 'Company Name', value: 'companyName' },\r\n { label: 'Email', value: 'email' },\r\n { label: 'Mobile', value: 'mobilePhoneNumber' },\r\n { label: 'Home Tel', value: 'homePhoneNumber' },\r\n { label: 'Office Tel', value: 'officePhoneNumber' },\r\n { label: 'Alternate Tel', value: 'alternatePhoneNumber' },\r\n { label: 'Birthdate', value: 'birthdate' },\r\n { label: 'ID Card', value: 'idCardNumber' },\r\n { label: 'Vat', value: 'vatNumber' },\r\n { label: 'Notes', value: 'notes' },\r\n { label: 'Options', value: 'options' }\r\n ];\r\n\r\n /**** - Contacts table - Default Columns */\r\n private selectedContactColsDefault: any[] = [\r\n // { label: 'Date Created', value: 'createdOn' },\r\n { label: 'Assigned To', value: 'assignedUser' },\r\n { label: 'Organization', value: 'organization' },\r\n { label: 'Full Name', value: 'fullName' },\r\n { label: 'Company Name', value: 'companyName' },\r\n { label: 'Email', value: 'email' },\r\n // { label: 'Mobile', value: 'mobilePhoneNumber' },\r\n { label: 'Options', value: 'options' }\r\n ];\r\n //** Contacts Table - End */\r\n\r\n //** Tasks Table - Start */\r\n //**** - All Toggleable Columns */\r\n private allSelectableTaskCols: any[] = [\r\n { label: 'Status', value: 'taskStatus' },\r\n { label: 'Date Created', value: 'createdOn' },\r\n { label: 'Created By', value: 'createdByUserAccount' },\r\n { label: 'Date Updated', value: 'updatedOn' },\r\n { label: 'Updated By', value: 'updatedByUserAccount' },\r\n { label: 'Scheduled For', value: 'reminderDate' },\r\n { label: 'Description', value: 'taskDescription' },\r\n { label: 'Task Type', value: 'taskType' },\r\n { label: 'Assigned Agents', value: 'userTasks' },\r\n { label: 'Assigned Contacts', value: 'contactTasks' },\r\n { label: 'Location', value: 'location' },\r\n { label: 'Complete', value: 'isTaskComplete' },\r\n { label: 'Options', value: 'options' }\r\n ];\r\n\r\n /**** - Default Columns */\r\n private selectedTaskColsDefault: any[] = [\r\n { label: 'Status', value: 'taskStatus' },\r\n { label: 'Created By', value: 'createdByUserAccount' },\r\n { label: 'Scheduled For', value: 'reminderDate' },\r\n { label: 'Description', value: 'taskDescription' },\r\n { label: 'Task Type', value: 'taskType' },\r\n { label: 'Assigned Agents', value: 'userTasks' },\r\n { label: 'Assigned Contacts', value: 'contactTasks' },\r\n { label: 'Location', value: 'location' },\r\n { label: 'Complete', value: 'isTaskComplete' },\r\n { label: 'Options', value: 'options' }\r\n ];\r\n //** Tasks Table - End */\r\n\r\n //** Opportunity Table - Start */\r\n //**** - All Toggleable Columns */\r\n private allSelectableOpportunityCols: any[] = [\r\n { label: 'Date Created', value: 'createdOn' },\r\n { label: 'Created By', value: 'createdByUserAccount' },\r\n { label: 'Date Updated', value: 'updatedOn' },\r\n { label: 'Updated By', value: 'updatedByUserAccount' },\r\n { label: 'Product ID', value: 'uniqueId' },\r\n { label: 'Assigned To', value: 'assignedUser' },\r\n { label: 'Contact', value: 'assignedContact' },\r\n { label: 'Type', value: 'opportunityType' },\r\n { label: 'Category Type', value: 'opportunityCategoryType' },\r\n { label: 'Name', value: 'name' },\r\n { label: 'Description', value: 'description' },\r\n { label: 'Probability', value: 'probability' },\r\n { label: 'Value', value: 'value' },\r\n { label: 'Options', value: 'options' }\r\n ];\r\n\r\n /**** - Default Columns */\r\n private selectedOpportunityColsDefault: any[] = [\r\n { label: 'Date Created', value: 'createdOn' },\r\n { label: 'Assigned To', value: 'assignedUser' },\r\n { label: 'Contact', value: 'assignedContact' },\r\n { label: 'Type', value: 'opportunityType' },\r\n { label: 'Category Type', value: 'opportunityCategoryType' },\r\n { label: 'Name', value: 'name' },\r\n { label: 'Description', value: 'description' },\r\n { label: 'Probability', value: 'probability' },\r\n { label: 'Options', value: 'options' }\r\n ];\r\n //** Opportunity Table - End */\r\n\r\n\r\n //** Organizations Table - Start */\r\n //**** - All Toggleable Columns */\r\n private allSelectableOrganizationCols: any[] = [\r\n { label: 'Date Created', value: 'createdOn' },\r\n { label: 'Created By', value: 'createdByUserAccount' },\r\n { label: 'Date Updated', value: 'updatedOn' },\r\n { label: 'Updated By', value: 'updatedByUserAccount' },\r\n { label: 'Name', value: 'name' },\r\n { label: 'Email', value: 'email' },\r\n { label: 'Mobile', value: 'mobilePhoneNumber' },\r\n { label: 'Office Tel.', value: 'officePhoneNumber' },\r\n { label: 'Building Name', value: 'addressLine1' },\r\n { label: 'Street Name', value: 'addressLine2' },\r\n { label: 'Locality', value: 'addressLine3' },\r\n { label: 'Post Code', value: 'addressLine4' },\r\n { label: 'Default Contact', value: 'defaultContact' },\r\n ];\r\n\r\n /**** - Default Columns */\r\n private selectedOrganizationColsDefault: any[] = [\r\n { label: 'Status', value: 'taskStatus' },\r\n { label: 'Created By', value: 'createdByUserAccount' },\r\n { label: 'Name', value: 'name' },\r\n { label: 'Email', value: 'email' },\r\n { label: 'Mobile', value: 'mobilePhoneNumber' },\r\n { label: 'Default Contact', value: 'defaultContact' },\r\n ];\r\n //** Organizations Table - End */\r\n\r\n constructor() { }\r\n\r\n getAllSelectableContactCols() {\r\n return this.allSelectableContactCols;\r\n }\r\n\r\n getSelectedContactColsDefault() {\r\n return this.selectedContactColsDefault;\r\n }\r\n\r\n getAllSelectableTaskCols() {\r\n return this.allSelectableTaskCols;\r\n }\r\n\r\n getSelectedTaskColsDefault() {\r\n return this.selectedTaskColsDefault;\r\n }\r\n\r\n getAllSelectableOpportunityCols() {\r\n return this.allSelectableOpportunityCols;\r\n }\r\n\r\n getSelectedOpportunityColsDefault() {\r\n return this.selectedOpportunityColsDefault;\r\n }\r\n\r\n getAllSelectableOrganizationCols() {\r\n return this.allSelectableOrganizationCols;\r\n }\r\n\r\n getSelectedOrganizationColsDefault() {\r\n return this.selectedOrganizationColsDefault;\r\n }\r\n\r\n getColumnOptions(columnOptions: SelectItem[], allSelectableCols: any[]) {\r\n columnOptions = [];\r\n\r\n for (let i = 0; i < allSelectableCols.length; i++) {\r\n columnOptions.push({\r\n label: allSelectableCols[i].label,\r\n value: allSelectableCols[i]\r\n });\r\n }\r\n\r\n return columnOptions;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { Tag } from \"../models/tag.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class TagService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/tags/';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getTags(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let tags: Tag[] = (response);\r\n tags = tags.map(\r\n t => {\r\n // t.createdByUserAccount = this.userService.getUser(t.createdByUserAccountId);\r\n // t.updatedByUserAccount = this.userService.getUser(t.updatedByUserAccountId);\r\n return t;\r\n }\r\n );\r\n return tags;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getTag(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let tag: Tag = (response);\r\n // tag.createdByUserAccount = this.userService.getUser(tag.createdByUserAccountId);\r\n // tag.updatedByUserAccount = this.userService.getUser(tag.updatedByUserAccountId);\r\n return tag;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addTag(tag: Tag): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n tag\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateTag(tag: Tag): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + tag.id,\r\n tag\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteTag(tag: Tag): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + tag.id,\r\n tag\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\n\r\nimport { UserService } from \"./user.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport { TaskType } from \"../models/task-type.model\";\r\nimport { CrmUser } from \"../models/user.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class TaskTypeService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/tasktypes/';\r\n\r\n public typesChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getTaskTypes(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let taskTypes: TaskType[] = (response);\r\n taskTypes = taskTypes.map(\r\n cT => {\r\n // cT.createdByUserAccount = this.userService.getUser(cT.createdByUserAccountId);\r\n // cT.updatedByUserAccount = this.userService.getUser(cT.updatedByUserAccountId);\r\n return cT;\r\n }\r\n );\r\n return taskTypes;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getTaskType(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let taskType: TaskType = (response);\r\n // taskType.createdByUserAccount = this.userService.getUser(taskType.createdByUserAccountId);\r\n // taskType.updatedByUserAccount = this.userService.getUser(taskType.updatedByUserAccountId);\r\n return taskType;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n addTaskType(taskType: TaskType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n taskType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateTaskType(taskType: TaskType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + taskType.id,\r\n taskType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteTaskType(taskType: TaskType): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + taskType.id,\r\n taskType\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Response, Http } from \"@angular/http\";\r\n\r\nimport { Task } from \"../models/task.model\";\r\nimport { ContactTask } from \"../models/contact-task.model\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\nimport { UserService } from \"./user.service\";\r\nimport { ContactService } from \"./contact.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\nimport { EmailService } from \"./email.service\";\r\nimport { CrmUser } from \"../models/user.model\";\r\nimport { Contact } from \"../models/contact.model\";\r\nimport { Email } from \"../models/email.model\";\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { PropertyCodes } from '../models/property-codes.model';\r\nimport { PropertyIdCode } from '../models/property-id-codes.model';\r\nimport { Property } from '../models/property.model';\r\nimport { PrepopulatedTaskTypes } from 'app.constant';\r\n\r\n\r\n@Injectable()\r\nexport class TaskService {\r\n private url: string = AppSettings.API_ENDPOINT + 'api/Tasks/';\r\n\r\n public tasksChanged = new Subject();\r\n public taskCounterChanged = new Subject();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private loadingService: LoadingSpinnerService,\r\n private emailService: EmailService\r\n ) { }\r\n\r\n getTasks(): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url).map(\r\n (response: Response) => {\r\n let tasks: Task[] = (response);\r\n tasks = tasks.map(t => this.populateTaskUsers(t));\r\n return tasks;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getIncompleteTasks() {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url + \"Incomplete/Tasks\").map(\r\n (response: Response) => {\r\n let incompleteTasks: Task[] = (response); // - Don't need users here\r\n return incompleteTasks;\r\n }\r\n );\r\n }\r\n\r\n getIncompleteTasksByUserId(userId: number) {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n return this.http.get(this.url + \"Incomplete/Tasks/UserId/\" + userId).map(\r\n (response: Response) => {\r\n let incompleteTasks: Task[] = (response); // - Don't need users here\r\n return incompleteTasks;\r\n }\r\n );\r\n }\r\n\r\n getTasksByUserId(userId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"UserId/\" + userId).map(\r\n (response: Response) => {\r\n let tasks: Task[] = (response);\r\n tasks = tasks.map(t => this.populateTaskUsers(t));\r\n return tasks;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getTasksByOpportunityId(opportunityId: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + \"opportunityId/\" + opportunityId).map(\r\n (response: Response) => {\r\n let tasks: Task[] = (response);\r\n tasks = tasks.map(t => this.populateTaskUsers(t));\r\n return tasks;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getTask(id: number): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.get(this.url + id).map(\r\n (response: Response) => {\r\n let task: Task = (response);\r\n task = this.populateTaskUsers(task);\r\n\r\n return task;\r\n }\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n getPropertyCodes(): Observable {\r\n return this.http.get(this.url+'getpropertycodes').map(\r\n (response: Response) => {\r\n const propCodes: PropertyIdCode[] = (response);\r\n return propCodes;\r\n }\r\n );\r\n }\r\n\r\n getProperty(id: number): Observable {\r\n return this.http.get(this.url+'getproperty/'+id).map(\r\n (response: Response) => {\r\n const prop: Property = (response);\r\n return prop;\r\n }\r\n );\r\n }\r\n\r\n getPropertiesSearch(searchTerm: string, showLoading: boolean = true): Observable {\r\n // searchTerm = searchTerm.replace(\"/\", \" \"); // - Replace '/' chars as route will change and cause issues!!\r\n\r\n let getTasksUrl = this.url + \"propertysearch/\"+ searchTerm;\r\n\r\n if (showLoading)\r\n this.loadingService.displayLoadingSpinner();\r\n\r\n return this.http.get(getTasksUrl).map(\r\n (response: Response) => {\r\n let property: PropertyIdCode[] = (response);\r\n return property;\r\n }\r\n ).finally(() => {\r\n if (showLoading)\r\n this.loadingService.hideLoadingSpinner();\r\n });\r\n }\r\n\r\n addTask(task: Task, sendEmailToUsers: boolean, sendEmailToContacts: boolean): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.post(\r\n this.url,\r\n task\r\n ).map((response: Response) => {\r\n\r\n if (task.propertyId != null)\r\n {\r\n this.getProperty(task.propertyId).subscribe(\r\n (property: Property) => {\r\n this.onSendEmail((response).id, sendEmailToUsers, sendEmailToContacts, task.calendarDuration,property);\r\n }\r\n );\r\n }\r\n else {\r\n this.onSendEmail((response).id, sendEmailToUsers, sendEmailToContacts, task.calendarDuration, null);\r\n }\r\n\r\n return response;\r\n }).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n updateTask(task: Task, sendEmailToUsers: boolean, sendEmailToContacts: boolean): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\ndebugger;\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + task.id,\r\n task\r\n ).map((response: Response) => {\r\n //this.onSendEmail((response).id, sendEmailToUsers, sendEmailToContacts, task.calendarDuration);\r\n \r\n this.getProperty(task.propertyId).subscribe(\r\n (property: Property) => {\r\n this.onSendEmail((response).id, sendEmailToUsers, sendEmailToContacts, task.calendarDuration,property);\r\n }\r\n );\r\n \r\n\r\n return response;\r\n }).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n toggleTaskCompletion(task: Task) {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"ToggleCompletion/\" + task.id,\r\n task\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n deleteTask(task: Task): Observable {\r\n //this.authService.reauthenticateIfTokenExpired();\r\n\r\n this.loadingService.displayLoadingSpinner();\r\n return this.http.put(\r\n this.url + \"Delete/\" + task.id,\r\n task\r\n ).finally(() => this.loadingService.hideLoadingSpinner());\r\n }\r\n\r\n onSendEmail(id: number, sendEmailToUsers: boolean, sendEmailToContacts: boolean, calendarDuration: number, property: Property) {\r\n\r\n if (!sendEmailToUsers && !sendEmailToContacts)\r\n return; // - Return if both values are set to false\r\n\r\n // Retrieve task from db so we can get the contacts of the task's ContactTasks to display all contact's names in email\r\n this.getTask(id).subscribe(\r\n (task: Task) => {\r\n // Don't send any emails if the task is already marked as complete\r\n if (task.isTaskComplete)\r\n return;\r\n\r\n if (sendEmailToUsers) {\r\n let observableList: Observable[] = [];\r\n\r\n // Iterate through each agent assigned to this task\r\n for (let userTask of task.userTasks) {\r\n\r\n // Set current agent as receiver\r\n let receiver = this.userService.getUser(userTask.userId);\r\n let mail: Email = new Email();\r\n\r\n if (task.updatedByUserAccountId) {\r\n // Set updater as sender if task was edited\r\n let sender = this.userService.getUser(task.updatedByUserAccountId);\r\n mail = this.emailService.createUserTaskEmail(task, sender, receiver, calendarDuration,property);\r\n }\r\n else {\r\n // Otherwise set creator as sender\r\n let sender = this.userService.getUser(task.createdByUserAccountId);\r\n mail = this.emailService.createUserTaskEmail(task, sender, receiver, calendarDuration,property);\r\n }\r\n\r\n observableList.push(this.emailService.sendEmail(mail));\r\n }\r\n\r\n Observable.forkJoin(observableList).subscribe(\r\n (response) => console.log(\"Email sent.\"),\r\n (error) => console.log(\"Error sending email: \", error)\r\n );\r\n }\r\n\r\n if (sendEmailToContacts) {\r\n // Iterate through each contact assigned to this task\r\n for (let contactTask of task.contactTasks) {\r\n\r\n this.contactService.getContact(contactTask.contactId).subscribe(\r\n (contact: Contact) => {\r\n // Check if the contact has an email address\r\n if (!contact.email || contact.email.length === 0)\r\n return;\r\n\r\n // Set current contact as receiver\r\n let receiver = contact;\r\n let mail: Email = new Email();\r\n\r\n if (task.updatedByUserAccountId) {\r\n // Set updater as sender if task was edited\r\n let sender = this.userService.getUser(task.updatedByUserAccountId);\r\n mail = this.emailService.createContactTaskEmail(task, sender, receiver, calendarDuration,property);\r\n }\r\n else {\r\n // Otherwise set creator as sender\r\n let sender = this.userService.getUser(task.createdByUserAccountId);\r\n mail = this.emailService.createContactTaskEmail(task, sender, receiver, calendarDuration,property);\r\n }\r\n\r\n this.emailService.sendEmail(mail).subscribe(\r\n (response: Response) => {\r\n console.log(\"Mail sent to contact\");\r\n },\r\n (error: Response) => {\r\n console.log(\"Error sending mail to contact\");\r\n }\r\n );\r\n }\r\n );\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n private populateTaskUsers(task: Task): Task {\r\n // task.createdByUserAccount = this.userService.getUser(task.createdByUserAccountId);\r\n // task.updatedByUserAccount = this.userService.getUser(task.updatedByUserAccountId);\r\n task.userTasks = task.userTasks.map(\r\n uT => {\r\n // uT.createdByUserAccount = this.userService.getUser(uT.createdByUserAccountId);\r\n // uT.updatedByUserAccount = this.userService.getUser(uT.updatedByUserAccountId);\r\n // uT.user = this.userService.getUser(uT.userId);\r\n return uT;\r\n }\r\n );\r\n\r\n return task;\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param task\r\n * @param checkCompleted - true if you want list without complete\r\n */\r\n isTaskLate(task: Task, checkCompleted: boolean = true) {\r\n let reminderDate = new Date(task.reminderDate);\r\n let now = new Date();\r\n\r\n if (checkCompleted) {\r\n if (task.isTaskComplete)\r\n return false;\r\n }\r\n\r\n // If the task is not completed and the reminder date has already passed\r\n if (now > reminderDate)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n isTaskForToday(task: Task, checkCompleted: boolean = true) {\r\n let reminderDate = new Date(task.reminderDate).setHours(0, 0, 0, 0);\r\n let todayDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n let reminderDateTime = new Date(task.reminderDate);\r\n let todayDateTime = new Date();\r\n\r\n // // If the task is not completed and the reminder date is set for today (but time has not yet passed)\r\n // if (!task.isTaskComplete && (todayDate === reminderDate && todayDateTime <= reminderDateTime))\r\n // return true;\r\n\r\n if (checkCompleted) {\r\n if (task.isTaskComplete)\r\n return false;\r\n }\r\n\r\n if (todayDate === reminderDate && todayDateTime <= reminderDateTime)\r\n return true;\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Message } from \"primeng/primeng\";\r\nimport { Response } from \"@angular/http\";\r\n\r\n@Injectable()\r\nexport class ToastService {\r\n\r\n toastMsgs: Message[] = [];\r\n\r\n constructor() { }\r\n\r\n private createNewMessage(type: string, header: string, body: string) {\r\n this.createNewMessageWithTimer(type, header, body, 3000);\r\n }\r\n\r\n // Creates a new Message and pushes it to the toastMsgs list (expires after specified duration ends)\r\n private createNewMessageWithTimer(type: string, header: string, body: string, duration: number) {\r\n let newMessage = { severity: type, summary: header, detail: body };\r\n this.toastMsgs.push(newMessage);\r\n setTimeout(() => {\r\n this.toastMsgs.splice(this.toastMsgs.indexOf(newMessage), 1);\r\n }, duration);\r\n }\r\n\r\n createSuccessMessage(header: string, body: string) {\r\n this.createNewMessage('success', header, body);\r\n }\r\n\r\n createInfoMessage(header: string, body: string) {\r\n this.createNewMessage('info', header, body);\r\n }\r\n\r\n createWarningMessage(header: string, body: string) {\r\n this.createNewMessage('warn', header, body);\r\n }\r\n\r\n createErrorMessage(header: string, error: Response) {\r\n //let output = typeof error[\"_body\"] === 'string' ? error[\"_body\"] : error;\r\n\r\n let output = error[\"error\"];\r\n this.createNewMessageWithTimer('error', header, \"The following error has occured: \" + output, 8000); // - Error message should last longer\r\n }\r\n\r\n getMessages(): Message[] {\r\n return this.toastMsgs;\r\n }\r\n\r\n clearMessages(msgs) {\r\n msgs = [];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http, Response } from \"@angular/http\";\r\n\r\nimport { LoadingSpinnerService } from \"./loading-spinner.service\";\r\n\r\nimport 'rxjs/Rx';\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { CrmUser } from \"../models/user.model\";\r\nimport { RegisterModel } from \"../models/register.model\";\r\nimport { ResetPasswordModel } from '../models/reset-password.model';\r\n\r\nimport { AppSettings } from 'app.settings'\r\nimport { AuthHttp } from \"angular2-jwt/angular2-jwt\";\r\nimport { ForgotPasswordModel } from '../models/forgot-password.model';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private usersUrl: string = AppSettings.API_ENDPOINT + 'api/account/';\r\n\r\n private users: CrmUser[] = [];\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private loadingService: LoadingSpinnerService\r\n ) { }\r\n\r\n getUsers() {\r\n return this.http.get(this.usersUrl).map(\r\n (response: Response) => {\r\n let users: CrmUser[] = (response);\r\n\r\n this.users = users.map(\r\n u => {\r\n u.createdByUserAccount = this.getUser(u.createdByUserAccountId);\r\n u.updatedByUserAccount = this.getUser(u.updatedByUserAccountId);\r\n return u;\r\n }\r\n );\r\n return this.users;\r\n }\r\n );\r\n }\r\n\r\n getUsersAvailable() {\r\n return this.http.get(this.usersUrl + 'getUsersAvailable').map(\r\n (response: Response) => {\r\n let users: CrmUser[] = (response);\r\n\r\n this.users = users.map(\r\n u => {\r\n //u.createdByUserAccount = this.getUser(u.createdByUserAccountId);\r\n //u.updatedByUserAccount = this.getUser(u.updatedByUserAccountId);\r\n return u;\r\n }\r\n );\r\n return this.users;\r\n }\r\n );\r\n }\r\n\r\n getUser(id: number): CrmUser {\r\n return this.users.find(u => u.id === id);\r\n }\r\n\r\n getUserByApplicationUserId(applicationUserId: string): CrmUser {\r\n return this.users.find(u => u.applicationUserId === applicationUserId);\r\n }\r\n\r\n // setUsers(users: User[]): void {\r\n // this.users = users;\r\n // }\r\n\r\n registerUser(registerModel: RegisterModel) {\r\n return this.http.post(\r\n this.usersUrl + \"register\",\r\n registerModel\r\n );\r\n }\r\n\r\n updateUser(registerModel: RegisterModel) {\r\n return this.http.put(\r\n this.usersUrl + \"update\",\r\n registerModel\r\n );\r\n }\r\n\r\n isUserAdmin(user: CrmUser) {\r\n return (user.roles.includes('Admin'));\r\n }\r\n\r\n isUserSuperAdmin(user: CrmUser) {\r\n return (user.roles.includes('Super Admin'));\r\n }\r\n\r\n deleteUser(registerModel: RegisterModel) {\r\n return this.http.put(\r\n this.usersUrl + \"delete\",\r\n registerModel\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UtilityService {\r\n\r\n //** Arithmetics - Start */\r\n //** - Returns the average value of an array of numbers */\r\n getAvg(numbers: number[]) {\r\n return numbers.reduce(function (a, b) {\r\n return a + b;\r\n }) / numbers.length;\r\n }\r\n\r\n //** - Returns the percentage of a number value */\r\n getPercentOfValue(percent: number, value: number) {\r\n return (percent / 100) * value;\r\n }\r\n //** Arithmetics - End */\r\n\r\n //** Misc - Start */\r\n //** - Returns a random colour value (hex) */\r\n //** - Obtained from: https://stackoverflow.com/questions/1484506/random-color-generator */\r\n getRandomColor() {\r\n let letters = '0123456789ABCDEF'.split('');\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n \r\n return color;\r\n }\r\n //** Misc - End */\r\n\r\n //** List - Start */\r\n sortListByValueName(list: any[], valueToCompareName: string, orderAsc: boolean = true) {\r\n list = list.sort(\r\n (obj1, obj2) => {\r\n if (obj1[valueToCompareName] > obj2[valueToCompareName])\r\n return orderAsc ? 1 : -1;\r\n if (obj1[valueToCompareName] < obj2[valueToCompareName])\r\n return orderAsc ? -1 : 1;\r\n\r\n return 0;\r\n }\r\n );\r\n\r\n return list;\r\n }\r\n //** List - End */ \r\n\r\n //** Dates - Start */ \r\n //** - Returns the StartDate and EndDate of the Current Week (A Week starts on Sunday and ends on the following Saturday)\r\n //** - Obtained from: https://stackoverflow.com/a/44959028\r\n getWeekDates() {\r\n let now = new Date();\r\n let dayOfWeek = now.getDay(); // - 0-6, Sunday is 0, Saturday is 6\r\n let numDay = now.getDate();\r\n\r\n let start = new Date(now); //copy\r\n start.setDate(numDay - dayOfWeek);\r\n start.setHours(0, 0, 0, 0);\r\n\r\n let end = new Date(now); //copy\r\n end.setDate(numDay + (7 - dayOfWeek));\r\n end.setHours(0, 0, 0, 0);\r\n\r\n return [start, end];\r\n }\r\n\r\n isDateInCurrentWeek(date: Date) {\r\n let [start, end] = this.getWeekDates();\r\n if (+date >= +start && +date < +end)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n isDateInCurrentMonth(date: Date) {\r\n let now = new Date();\r\n let currentMonth = now.getMonth();\r\n let currentYear = now.getFullYear();\r\n\r\n // The Date must have the same month and year as the current date's\r\n if (date.getMonth() === currentMonth && date.getFullYear() === currentYear)\r\n return true;\r\n\r\n return false;\r\n }\r\n //** Dates - End */\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from \"@angular/router\";\r\n\r\nimport { LabelEmptyFieldPipe } from \"./pipes/label-empty-field.pipe\";\r\nimport { ConfirmDialogModule, GrowlModule, TooltipModule, DataTableModule, TabViewModule, SpinnerModule, MultiSelectModule, AutoCompleteModule } from \"primeng/primeng\";\r\nimport { TaskListComponent } from \"../tasks/task-list/task-list.component\";\r\nimport { TaskStatusPipe } from \"../shared/pipes/task-status.pipe\";\r\nimport { AssignedContactsPipe } from \"../shared/pipes/assigned-contacts.pipe\";\r\nimport { AssignedUsersPipe } from \"../shared/pipes/assigned-users.pipe\";\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\n\r\n@NgModule({\r\n declarations: [\r\n TaskListComponent,\r\n LabelEmptyFieldPipe,\r\n TaskStatusPipe,\r\n AssignedContactsPipe,\r\n AssignedUsersPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule, // - Imported because issues with routerLink not being recognized when inserted task-list component within dashboard\r\n FormsModule,\r\n ConfirmDialogModule,\r\n GrowlModule,\r\n TooltipModule,\r\n DataTableModule,\r\n TabViewModule,\r\n SpinnerModule,\r\n MultiSelectModule,\r\n NgxPermissionsModule\r\n ],\r\n exports: [\r\n CommonModule,\r\n TaskListComponent,\r\n TaskStatusPipe,\r\n AssignedContactsPipe,\r\n AssignedUsersPipe,\r\n LabelEmptyFieldPipe,\r\n FormsModule,\r\n ConfirmDialogModule,\r\n GrowlModule,\r\n TooltipModule,\r\n DataTableModule,\r\n TabViewModule,\r\n SpinnerModule,\r\n MultiSelectModule,\r\n AutoCompleteModule, \r\n NgxPermissionsModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ApiService } from 'app/shared/api.service';\r\n\r\nexport class SYSTEM_KEYS {\r\n static ACQUISITION: string = \"ACQUISITION\";\r\n static SALES: string = \"SALES\";\r\n}\r\n\r\nexport class SystemConfiguration {\r\n constructor(public keyConfiguration:string) {\r\n\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class SystemConfigurationService {\r\n\r\n constructor(\r\n private _apiService: ApiService\r\n ) { }\r\n\r\n public getConfiguration(): Observable {\r\n return this._apiService.get(`api/system`);\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable()\r\nexport class SystemModeHelper {\r\n public systemKey: BehaviorSubject = new BehaviorSubject(\"\");\r\n public SystemConfiguration: BehaviorSubject = new BehaviorSubject(localStorage.getItem(\"system-configuration\"));\r\n\r\n constructor() {\r\n }\r\n\r\n next(val: string) { \r\n localStorage.setItem('system-configuration', val);// JSON.stringify(val));\r\n this.SystemConfiguration.next(val);\r\n }\r\n }","\r\nimport { Subscription } from \"rxjs\";\r\nimport { OnDestroy, OnInit } from \"@angular/core\";\r\nimport { LifetimeManagement } from \"./lifetime-management\";\r\nimport { SystemModeHelper, SystemConfiguration } from './system-config.service';\r\n\r\n\r\n\r\nexport interface ISystem {\r\n\r\n // Property / Field\r\n // __systemKey : string;\r\n // showDeveloperModeLabel : boolean;\r\n\r\n // Getter\r\n // isDeveloperModeEnabled : boolean;\r\n\r\n systemKey$ : Subscription;\r\n // developerMode$ : Subscription;\r\n}\r\n\r\nexport abstract class System extends LifetimeManagement implements ISystem, OnInit, OnDestroy {\r\n constructor(protected system: SystemModeHelper) {\r\n super();\r\n };\r\n \r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.systemKey$ = this.system.systemKey.subscribe((systemKey) => {\r\n this.__systemKey = systemKey;\r\n });\r\n\r\n this.systemKey$ = this.system.SystemConfiguration.subscribe((systemKey : string) => {\r\n this.__systemKey = systemKey;\r\n });\r\n\r\n this.subscriptions$.push(this.systemKey$);\r\n \r\n // this.subscriptions$.push(this.developerMode$);\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n private __systemKey = \"\";\r\n // public showDeveloperModeLabel = false;\r\n\r\n get systemKey() {\r\n return this.__systemKey;\r\n }\r\n\r\n systemKey$ = null;\r\n // developerMode$ = null;\r\n\r\n}\r\n","import { ValidatorFn, FormControl } from '@angular/forms';\r\n\r\nexport function valueExistsValidator(arrayOfValues: string[]): ValidatorFn {\r\n return (control: FormControl): { [s: string]: boolean } => {\r\n arrayOfValues = arrayOfValues.filter(v => v != null);\r\n if (control.value != null) {\r\n if (arrayOfValues.find(v => v.toLowerCase() === (String)(control.value).toLowerCase()))\r\n return { 'valueExists': true };\r\n }\r\n return null;\r\n };\r\n}","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Priority Tasks
\\r\\n
Tasks
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n There are currently {{tasks.length}} tasks\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task | taskStatus }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.reminderDate | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.createdByUserAccountId ? task.createdByUserAccount?.fullName : '-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.updatedByUserAccountId ? task.updatedByUserAccount?.fullName : '-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 20 ? false : true\\\"\\r\\n tooltipPosition=\\\"left\\\" tooltipStyleClass=\\\"tooltip-primary\\\">\\r\\n {{ task.taskDescription }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.userTaskNames | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.contactTasksNames | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ task.location | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ task.isTaskComplete | taskStatus }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3Rhc2tzL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\nimport { Router } from \"@angular/router\";\r\n\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { TaskService } from \"../../shared/services/task.service\";\r\nimport { ConfirmationService, SelectItem } from \"primeng/components/common/api\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { TableUtilityService } from '../../shared/services/table-utility.service';\r\nimport { CookieService } from 'ngx-cookie';\r\n\r\nimport { Task } from \"../../shared/models/task.model\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\n\r\n@Component({\r\n selector: 'app-task-list',\r\n templateUrl: './task-list.component.html',\r\n styleUrls: ['./task-list.component.scss']\r\n})\r\nexport class TaskListComponent implements OnInit {\r\n tasks: Task[] = []; // - List of tasks displayed in table\r\n allTasks: Task[] = []; // - All tasks retrieved from db\r\n\r\n showPendingTasks: boolean = true; // - Completed tasks are shown instead when set to false\r\n isDashboard: boolean = this.router.url === '/dashboard'; // - Need to know if Dashboard to only show todays tasks\r\n\r\n /** Column Toggling */\r\n columnOptions: SelectItem[];\r\n selectedCols: any[]; // - Contains the table columns that should be visible\r\n allSelectableCols: any[] = []; // - Contains all table columns that may be toggled on or off\r\n\r\n selectedColsDefault: any[] = []; // - Contains the columns that are shown by default if no cookie is stored\r\n\r\n constructor(\r\n private router: Router,\r\n public authService: AuthService,\r\n private taskService: TaskService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService,\r\n private cookieService: CookieService,\r\n private tableUtilService: TableUtilityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetTasks();\r\n this.initColumnOptions();\r\n\r\n // Listen to changes made to tasks\r\n this.taskService.tasksChanged.subscribe(\r\n () => {\r\n this.onGetTasks();\r\n }\r\n );\r\n }\r\n\r\n initColumnOptions() {\r\n this.allSelectableCols = this.tableUtilService.getAllSelectableTaskCols();\r\n this.selectedColsDefault = this.tableUtilService.getSelectedTaskColsDefault();\r\n this.columnOptions = this.tableUtilService.getColumnOptions(this.columnOptions, this.allSelectableCols);\r\n\r\n let selectedColsCookie = this.cookieService.getObject(\"crm_selectedTaskCols\") as any[];\r\n if (selectedColsCookie)\r\n this.selectedCols = selectedColsCookie;\r\n else\r\n this.selectedCols = this.selectedColsDefault;\r\n }\r\n\r\n // - Saves options in a cookie whenever they are changed\r\n onColumnOptionsChange() {\r\n this.cookieService.putObject(\"crm_selectedTaskCols\", this.selectedCols);\r\n }\r\n\r\n isColVisible(colName: string) {\r\n if (this.selectedCols.find(sC => sC.value === colName))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n onGetTasks() {\r\n // Admins can see everyone's tasks\r\n if (this.authService.isAdmin()) {\r\n this.taskService.getTasks().subscribe(\r\n (tasks: Task[]) => {\r\n\r\n //tasks[0].userTasks[0].user.appUserRoles\r\n this.storeTasks(tasks);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n // Users may only see their own tasks\r\n else {\r\n this.taskService.getTasksByUserId(this.authService.applicationProfileUser().id).subscribe(\r\n (tasks: Task[]) => {\r\n this.storeTasks(tasks);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving tasks\", error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n storeTasks(tasks: Task[]) {\r\n this.allTasks = tasks; // - Keep all tasks stored here so we can filter from this list repeatedly\r\n\r\n // - Dashboard shows task records that are for today (and also late tasks)\r\n if (this.isDashboard)\r\n this.allTasks = this.allTasks.filter(t =>\r\n this.taskService.isTaskForToday(t, false) ||\r\n this.taskService.isTaskLate(t, true));\r\n\r\n this.filterTasksShown();\r\n }\r\n\r\n onAskForCommunicationLog(task: Task) {\r\n let firstContact = task.contactTasks[0].contact;\r\n\r\n this.confirmationService.confirm({\r\n header: 'Communication Log',\r\n message: 'The task has been marked as complete. Would you now like to create a new communication log for ' + firstContact.fullName + '?',\r\n accept: () => {\r\n this.router.navigate(['/contacts', firstContact.id, 'communication-history', 'new']);\r\n }\r\n });\r\n }\r\n\r\n onCompleteTask(task: Task) {\r\n let completedTask = this.allTasks.find(t => t.id === task.id);\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id; // Actual task\r\n\r\n this.taskService.toggleTaskCompletion(task).subscribe(\r\n (response: Response) => {\r\n // NOTE: The update is made in the API!!!\r\n // Here I am setting the task to complete because the update was successful, so we want the change to be shown to the user\r\n completedTask.isTaskComplete = !completedTask.isTaskComplete;\r\n this.taskService.taskCounterChanged.next();\r\n this.taskService.tasksChanged.next();\r\n\r\n // Only ask for new comm. log if task is complete and is assigned to at least one contact\r\n if (task.contactTasks.length > 0 && completedTask.isTaskComplete)\r\n this.onAskForCommunicationLog(completedTask);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error completing task\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteTask(task: Task) {\r\n this.confirmationService.confirm({\r\n header: 'Delete Task',\r\n message: 'Are you sure you want to delete this task?',\r\n accept: () => {\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.taskService.deleteTask(task).subscribe(\r\n (response: Response) => {\r\n this.onGetTasks();\r\n // this.taskService.tasksChanged.next();\r\n this.taskService.taskCounterChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting task\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for the task has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n taskStatusSort(event) {\r\n let taskService = this.taskService;\r\n\r\n let comparer = function (a: Task, b: Task): number {\r\n let result: number = -1;\r\n\r\n // Late Tasks\r\n if (taskService.isTaskLate(a) && !taskService.isTaskLate(b))\r\n result = 1;\r\n else if (!taskService.isTaskLate(a) && taskService.isTaskLate(b))\r\n result = -1;\r\n else if (taskService.isTaskLate(a) && taskService.isTaskLate(b)) {\r\n if (a.reminderDate >= b.reminderDate)\r\n result = 1;\r\n else\r\n result = -1;\r\n }\r\n\r\n // Today Tasks\r\n else if (taskService.isTaskForToday(a) && !taskService.isTaskForToday(b))\r\n result = 1;\r\n else if (!taskService.isTaskForToday(a) && taskService.isTaskForToday(b))\r\n result = -1;\r\n else if (taskService.isTaskForToday(a) && taskService.isTaskForToday(b)) {\r\n if (a.reminderDate >= b.reminderDate)\r\n result = 1;\r\n else\r\n result = -1;\r\n }\r\n\r\n // No longer needed as completed tasks are in their own tab view now\r\n //// Completed Tasks\r\n // else if (a.isTaskComplete && !b.isTaskComplete)\r\n // result = -1;\r\n // else if (!a.isTaskComplete && b.isTaskComplete)\r\n // result = 1;\r\n // else if (a.isTaskComplete && b.isTaskComplete) {\r\n // if (a.reminderDate >= b.reminderDate)\r\n // result = -1;\r\n // else\r\n // result = 1;\r\n // }\r\n\r\n // Pending Tasks\r\n else\r\n if (a.reminderDate >= b.reminderDate)\r\n result = 1;\r\n else\r\n result = -1;\r\n\r\n return result * event.order;\r\n };\r\n\r\n let sortedTasks = this.tasks.sort(comparer).slice();\r\n // this.tasks = sortedTasks.map(a => { return { ...a } });\r\n this.tasks = [...sortedTasks];\r\n }\r\n\r\n onChangeTasksTabView() {\r\n this.showPendingTasks = !this.showPendingTasks;\r\n this.filterTasksShown();\r\n }\r\n\r\n filterTasksShown() {\r\n if (this.showPendingTasks)\r\n this.tasks = this.allTasks.filter(t => !t.isTaskComplete);\r\n else\r\n this.tasks = this.allTasks.filter(t => t.isTaskComplete);\r\n }\r\n\r\n rowStyle(task: Task, rowIndex: number) {\r\n if (task.isTaskComplete)\r\n return \"bg-success\";\r\n\r\n // Is Task Late?\r\n let reminderDate1 = new Date(task.reminderDate);\r\n let now = new Date();\r\n\r\n // If the task is not completed and the reminder date has already passed\r\n if (!task.isTaskComplete && now > reminderDate1)\r\n return \"bg-danger\";\r\n\r\n // Is Task For Today?\r\n let reminderDate = new Date(task.reminderDate).setHours(0, 0, 0, 0);\r\n let todayDate = new Date().setHours(0, 0, 0, 0);\r\n\r\n let reminderDateTime = new Date(task.reminderDate);\r\n let todayDateTime = new Date();\r\n\r\n // If the task is not completed and the reminder date is set for today (but time has not yet passed)\r\n if (!task.isTaskComplete && (todayDate === reminderDate && todayDateTime <= reminderDateTime))\r\n return \"bg-warning\";\r\n\r\n return \"\";\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Update Task
\\r\\n
New Task
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n

Task Assignments

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Please assign a user to this task.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n

Task Details

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Task Description field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please select a Task Type.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n

Property Details

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{PropertySelected.defaultPrice}}\\r\\n \\r\\n \\r\\n {{PropertySelected.customCode}}\\r\\n {{PropertySelected.propertyCategory}} - {{PropertySelected.propertyLocality}}\\r\\n \\r\\n\\r\\n
\\r\\n {{PropertySelected.propertyStatus}}\\r\\n {{PropertySelected.propertyStatus}}\\r\\n {{PropertySelected.propertyStatus}}\\r\\n {{PropertySelected.propertyStatus}}\\r\\n {{PropertySelected.propertyStatus}}\\r\\n {{PropertySelected.propertyStatus}}\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n The Reminder Date field is required.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

Email Reminders

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3Rhc2tzL3Rhc2stbWFuYWdlL3Rhc2stbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { TaskService } from \"../../shared/services/task.service\";\r\nimport { UserService } from \"../../shared/services/user.service\";\r\nimport { ContactService } from \"../../shared/services/contact.service\";\r\nimport { AuthService } from \"../../auth/auth.service\";\r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { OpportunityService } from \"../../shared/services/opportunity.service\";\r\nimport { TaskTypeService } from '../../shared/services/task-type.service';\r\nimport { ConfirmationService } from \"primeng/components/common/api\";\r\n\r\nimport { Task } from \"../../shared/models/task.model\";\r\nimport { CrmUser } from \"../../shared/models/user.model\";\r\nimport { Contact } from \"../../shared/models/contact.model\";\r\nimport { ContactTask } from \"../../shared/models/contact-task.model\";\r\nimport { UserTask } from \"../../shared/models/user-task.model\";\r\nimport { Opportunity } from \"../../shared/models/opportunity.model\";\r\nimport { TaskType } from '../../shared/models/task-type.model';\r\nimport { SelectItem } from \"primeng/components/common/api\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { AutoComplete } from 'primeng/primeng';\r\nimport { PrepopulatedTaskTypes, GoogleMaps } from 'app.constant';\r\nimport { PropertyCodes } from 'app/views/shared/models/property-codes.model';\r\nimport { Property } from 'app/views/shared/models/property.model';\r\nimport { PropertyIdCode } from 'app/views/shared/models/property-id-codes.model';\r\nimport { combineLatest } from 'rxjs';\r\nimport { tap, map } from 'rxjs/operators';\r\nimport { ContactSearchItem } from 'app/views/shared/models/contact-search-item.model';\r\nimport { SystemModeHelper, SYSTEM_KEYS } from 'app/views/shared/system-config.service';\r\nimport { System } from 'app/views/shared/system';\r\n\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'app-task-manage',\r\n templateUrl: './task-manage.component.html',\r\n styleUrls: ['./task-manage.component.scss']\r\n})\r\nexport class TaskManageComponent extends System implements OnInit {\r\n taskForm: FormGroup; // - Stores the task form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a task if true and add a new task if false\r\n\r\n task: Task = new Task(); // - Stores Task to populate form with a new / existing task's values\r\n\r\n taskTypesOptions: SelectItem[] = []; // - Stores Task Type Dropdown Options\r\n _taskTypesOptions: SelectItem[] = [];\r\n usersOptions: SelectItem[] = []; // - Stores Assign Users Dropdown Options\r\n contactsOptions: SelectItem[] = [];\r\n propertyOptions: SelectItem[] = []; // - Stores Assign Contacts Dropdown Options\r\n opportunityOptions: SelectItem[] = []; // - Stores opportunities of assigned contacts\r\n propCodeOptions: SelectItem[] = [];\r\n\r\n //** Google Maps */\r\n options: any;\r\n overlays: any[];\r\n isGoogleMapsSearchInit = false;\r\n @ViewChild(\"gMapsSearch\") public gMapsSearchElementRef: ElementRef;\r\n @ViewChild(\"gmap\") public gmap;\r\n\r\n //** DatePicker */\r\n minDate: Date = new Date(); // - Can't select a date before the current day\r\n dateRange: string = (this.minDate.getFullYear() - 50) + ':' + (this.minDate.getFullYear() + 50); // - 100 Year Range\r\n\r\n //** Spinner (Calendar event duration) */\r\n defaultCalendarDuration: number = 30; // - Default Duration\r\n minCalendarDuration: number = 5; // - Duration in Minutes\r\n maxCalendarDuration: number = 600;\r\n isEmailGoingToSend: boolean = false; // - Used to know if an Email is currently going to be sent (based on both send email checkbox values)\r\n contactsNoEmail: boolean = false; // - Used to know if an Email was going to be sent to a Contact with no Email (For PrimeNG Confirm Dialog Box in HTML)\r\n\r\n isPropertySelected : boolean = false;\r\n Properties: Property[] = [];\r\n PropertySelected: Property = new Property();\r\n propParam: number = 0;\r\n @ViewChild('contactsAutoComplete') private contactsAutoComplete: AutoComplete;\r\n @ViewChild('propertiesAutoComplete') private propertiesAutoComplete: AutoComplete;\r\n\r\n public SYSTEM_KEYS : SYSTEM_KEYS = SYSTEM_KEYS;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authService: AuthService,\r\n private taskService: TaskService,\r\n private userService: UserService,\r\n private contactService: ContactService,\r\n private taskTypeService: TaskTypeService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService,\r\n private opportunityService: OpportunityService,\r\n private ref: ChangeDetectorRef,\r\n private systemModeHelper: SystemModeHelper\r\n ) {\r\n super(systemModeHelper);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.setupForm();\r\n\r\n console.log(\"Ryan's Keyyy -> \" + this.systemKey);\r\n }\r\n\r\n getImageUrl(PropertySelected){\r\n let imagUrl = PropertySelected.propertyUrl + PropertySelected.propertyImageUrl;\r\n\r\n let link = 'url(' + imagUrl + ')';\r\n\r\n return link;\r\n }\r\n\r\n initGoogleMap() {\r\n let lat = this.isEdit ?\r\n this.task.locationLat :\r\n GoogleMaps.DefaultLocationLat;\r\n\r\n let lng = this.isEdit ?\r\n this.task.locationLng :\r\n GoogleMaps.DefaultLocationLng;\r\n\r\n let location = this.isEdit ?\r\n this.task.location :\r\n GoogleMaps.DefaultLocation;\r\n\r\n if (lat && lng) {\r\n this.options = {\r\n center: { lat: lat, lng: lng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n position: { lat: lat, lng: lng },\r\n title: location,\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n\r\n this.taskForm.patchValue({\r\n location: location,\r\n locationLat: lat,\r\n locationLng: lng\r\n });\r\n } else {\r\n this.options = {\r\n center: { lat: GoogleMaps.DefaultLocationLat, lng: GoogleMaps.DefaultLocationLng },\r\n zoom: GoogleMaps.DefaultLocationZoom\r\n };\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n\r\n\r\n }\r\n }\r\n\r\n initGoogleMapSearch() {\r\n if (!this.isGoogleMapsSearchInit) {\r\n let input = this.gMapsSearchElementRef.nativeElement;\r\n\r\n let options = {\r\n componentRestrictions: { country: \"mt\" },\r\n RankBy: 'PROMINENCE'\r\n };\r\n\r\n let autocomplete = new google.maps.places.Autocomplete(input, options);\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n let place = autocomplete.getPlace();\r\n this.onMapPlaceChanged(place);\r\n });\r\n\r\n this.isGoogleMapsSearchInit = true;\r\n }\r\n }\r\n\r\n onMapPlaceChanged(place) {\r\n if (place.geometry) {\r\n let lat = place.geometry.location.lat();\r\n let lng = place.geometry.location.lng();\r\n let locationName = place.formatted_address;\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n title: locationName,\r\n position: { lat: lat, lng: lng },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n this.gmap.map.panTo({ lat: lat, lng: lng });\r\n this.taskForm.patchValue({\r\n location: locationName,\r\n locationLat: lat,\r\n locationLng: lng\r\n });\r\n }\r\n else {\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n }\r\n )\r\n ];\r\n this.taskForm.patchValue({\r\n locationLat: null,\r\n locationLng: null\r\n });\r\n }\r\n\r\n this.ref.detectChanges();\r\n }\r\n\r\n searchAutoComplete(event) {\r\n if (event.query)\r\n this.onGetContactsSearch(event.query);\r\n }\r\n\r\n\r\n searchAutoCompleteProperties(event) {\r\n\r\n this.isPropertySelected = false;\r\n if (event.query)\r\n this.onGetPropertySearch(event.query);\r\n }\r\n\r\n getProperty(event) {\r\n debugger;\r\n this.isPropertySelected = true;\r\n //this.PropertySelected = this.Properties.find(p => p.propertyId === event.value);\r\n this.taskService.getProperty(event.value).subscribe(\r\n (property: Property) => {\r\n this.PropertySelected = property;\r\n // }\r\n // );\r\n if (this.PropertySelected.propertyCoords.length > 0)\r\n {\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n title: this.PropertySelected.propertyLocality,\r\n position: { lat: parseFloat(this.PropertySelected.propertyCoords[0]), lng: parseFloat(this.PropertySelected.propertyCoords[1]) },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n this.gmap.map.panTo({ lat: parseFloat(this.PropertySelected.propertyCoords[0]), lng: parseFloat(this.PropertySelected.propertyCoords[1]) });\r\n\r\n debugger;\r\n\r\n this.taskForm.patchValue({\r\n location: this.PropertySelected.propertyAddress,\r\n locationLat: parseFloat(this.PropertySelected.propertyCoords[0]),\r\n locationLng: parseFloat(this.PropertySelected.propertyCoords[1])\r\n });\r\n\r\n }\r\n});\r\n }\r\n\r\n checkMeetingEvent(event){\r\n this.contactService.getContact(event.value).subscribe(\r\n (contact: Contact) => {\r\n var taskType = this.taskForm.get('taskTypeId').value;\r\n var taskTypeLabel = this.taskTypesOptions.find(e=>e.value === taskType).label;\r\n if(PrepopulatedTaskTypes.Viewing !== taskTypeLabel) {\r\n\r\n // Check if the contact has coordinates associated\r\n if (contact.locationLat == null && contact.locationLng == null )\r\n return;\r\n\r\n let formattedAddress = \"\";\r\n\r\n if (contact.addressLine1 != null && contact.addressLine2 != null && contact.addressLine3 != null && contact.addressLine4 != null)\r\n formattedAddress = contact.addressLine1 + \" \" +contact.addressLine2 + \" \" +contact.addressLine3 + \" \" +contact.addressLine4\r\n\r\n this.overlays = [\r\n new google.maps.Marker(\r\n {\r\n title: formattedAddress,\r\n position: { lat: contact.locationLat, lng: contact.locationLng },\r\n animation: google.maps.Animation.DROP\r\n }\r\n )\r\n ];\r\n\r\n\r\n this.gmap.map.panTo({ lat: contact.locationLat, lng: contact.locationLng });\r\n this.taskForm.patchValue({\r\n location: formattedAddress,\r\n locationLat: contact.locationLat,\r\n locationLng: contact.locationLng\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n handleDropdown(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.contactsAutoComplete.panelVisible) {\r\n this.contactsAutoComplete.hide();\r\n } else {\r\n this.contactsAutoComplete.show();\r\n }\r\n }\r\n\r\n handleDropdownProperties(event) {\r\n // - Dropdown for autocomplete was bugged...\r\n // - This workaround was obtained from: https://github.com/primefaces/primeng/issues/745\r\n event.originalEvent.preventDefault();\r\n event.originalEvent.stopPropagation();\r\n if (this.propertiesAutoComplete.panelVisible) {\r\n this.propertiesAutoComplete.hide();\r\n } else {\r\n this.propertiesAutoComplete.show();\r\n }\r\n }\r\n\r\n setupForm() {\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const taskId = params['id'];\r\n //this.propParam = params['propId'];\r\n this.isEdit = taskId != null; // - Returns true if an id was present within the url\r\n\r\n if (this.isEdit)\r\n this.onGetTask(taskId);\r\n else\r\n this.initForm();\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n this.onGetUsers();\r\n this.onGetProperties();\r\ndebugger;\r\n\r\n\r\n // if (!this.isEdit && this.propParam != 0)\r\n // {\r\n // this.getProperty(this.propParam);\r\n // }\r\n\r\n this.taskForm = this.formBuilder.group({\r\n taskDescription: this.formBuilder.control(this.task.taskDescription, [Validators.required]),\r\n taskTypeId: this.formBuilder.control(this.task.taskType.id, [Validators.required]),\r\n reminderDate: this.formBuilder.control(\r\n this.task.reminderDate ? new Date(this.task.reminderDate) : this.formatMinutesInDateToNearestFiveMinutes(new Date()),\r\n [Validators.required]),\r\n assignedUserIds: this.formBuilder.control(this.task.userTasks.map(uT => uT.userId), [Validators.required]), // - Assigned user IDs\r\n assignedContactIds: this.formBuilder.control(this.task.contactTasks.map(cT => cT.contactId),[Validators.required]), // - Assigned contact IDs\r\n assignedOpportunityIds: this.formBuilder.control(this.task.opportunityTasks.map(oT => oT.opportunityId)), // - Assigned opportunity IDs\r\n location: this.formBuilder.control(this.PropertySelected.propertyAddress != null ? this.PropertySelected.propertyAddress : this.task.location),\r\n propertyId: this.formBuilder.control(this.task.propertyId, [Validators.required]),\r\n locationLat: this.formBuilder.control(this.PropertySelected.propertyCoords != null && this.PropertySelected.propertyCoords.length > 0\r\n ? this.PropertySelected.propertyCoords[0] : this.task.locationLat),\r\n locationLng: this.formBuilder.control(this.PropertySelected.propertyCoords != null && this.PropertySelected.propertyCoords.length > 0\r\n ? this.PropertySelected.propertyCoords[1] : this.task.locationLng),\r\n\r\n sendEmailToUsers: this.formBuilder.control(false), // - Emails are sent to Users by default\r\n sendEmailToContacts: this.formBuilder.control(false), // - Emails are NOT sent to Contacts by default\r\n calendarDuration: this.formBuilder.control(\r\n this.defaultCalendarDuration,\r\n [\r\n Validators.required,\r\n Validators.min(this.minCalendarDuration),\r\n Validators.max(this.maxCalendarDuration)\r\n ]\r\n )\r\n });\r\n\r\n debugger;\r\n if (this.isEdit && this.task.contactTasks.length > 0) {\r\n let defaultSelectItems: SelectItem[] = [];\r\n\r\n this.task.contactTasks.map(cT => {\r\n let c = cT.contact;\r\n let labelText = c.fullName.trim().length > 0 ? c.fullName : \"NO-NAME\";\r\n c.idCardNumber ? labelText += \" / ID: \" + c.idCardNumber : \"\";\r\n c.companyName ? labelText += \" / Company: \" + c.companyName : \"\";\r\n c.homePhoneNumber ? labelText += \" / Tel: \" + c.homePhoneNumber : \"\";\r\n c.mobilePhoneNumber ? labelText += \" / Mob: \" + c.mobilePhoneNumber : \"\";\r\n c.email ? labelText += \" / Email: \" + c.email : \"\";\r\n\r\n let defaultSelectItem: SelectItem = {\r\n label: labelText,\r\n value: cT.contactId\r\n };\r\n\r\n defaultSelectItems.push(defaultSelectItem);\r\n });\r\n\r\n let defaultValue = this.task.contactTasks.length > 0 ? defaultSelectItems : null;\r\n\r\n this.taskForm.patchValue({\r\n assignedContactIds: defaultValue\r\n });\r\n\r\n this.changeTaskType();\r\n }\r\n\r\n this.route.queryParams.subscribe(\r\n (queryParam: Params) => {\r\n let contactId = queryParam['contact'];\r\n if (contactId != null) {\r\n // - Add the contact with the specified ID as one of the assigned contacts\r\n if (!this.isEdit) {\r\n this.contactService.getContact(+contactId).subscribe(\r\n (contact: Contact) => {\r\n let defaultValue: SelectItem[] = [{\r\n label: contact.fullName,\r\n value: +contactId\r\n }];\r\n\r\n this.taskForm.patchValue({\r\n assignedContactIds: defaultValue\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n let opportunityId = queryParam['opportunity'];\r\n if (opportunityId != null) {\r\n // - Add the opportunity with the specified ID as one of the assigned opportunitys\r\n if (!this.isEdit) {\r\n this.taskForm.patchValue({\r\n assignedOpportunityIds: [+opportunityId]\r\n });\r\n }\r\n }\r\n }\r\n );\r\n\r\n this.isFormInit = true;\r\n\r\n this.onGetTaskTypes(); // - Retrieve all task types to populate the Task Type dropdown\r\n this.onFormValueChanges();\r\n this.initGoogleMap();\r\n }\r\n\r\n formatMinutesInDateToNearestFiveMinutes(date: Date) {\r\n // Obtained from: https://stackoverflow.com/a/10789415\r\n let coeff = 1000 * 60 * 5;\r\n let rounded = new Date(Math.round(date.getTime() / coeff) * coeff)\r\n\r\n return rounded;\r\n }\r\n\r\n onFormValueChanges() {\r\n this.onSendEmailChange();\r\n this.onAssignedContactsChange();\r\n }\r\n\r\n onGetTaskTypes() {\r\n let combined$ = combineLatest(\r\n this.taskTypeService.getTaskTypes(),\r\n this.route.queryParams,\r\n (taskTypes, queryParam) => ({taskTypes, queryParam})\r\n );\r\n\r\n combined$.pipe(\r\n tap((result) => {\r\n // Store retrieved task types in the taskTypesOptions select list\r\n result.taskTypes.map(cT => this._taskTypesOptions.push({ label: cT.name, value: cT.id }));\r\n\r\n this.taskTypesOptions = this._taskTypesOptions\r\n // There must be at least one Task Type created to create or edit a task\r\n if (this.taskTypesOptions.length === 0) {\r\n this.isFormInit = false;\r\n return;\r\n }\r\n\r\n let viewingTaskTypeId = this.taskTypesOptions.find(o => o.label === PrepopulatedTaskTypes.Viewing).value;\r\n let defaultValue = 0;\r\n\r\n if (!this.isEdit)\r\n defaultValue = viewingTaskTypeId;\r\n else\r\n defaultValue = this.task.taskType.id;\r\n\r\n this.taskForm.patchValue({\r\n taskTypeId: defaultValue\r\n });\r\n }),\r\n map(result => {\r\n let paramTaskType = result.queryParam['viewingtype'];\r\n\r\n if (!this.isEdit && paramTaskType != null)\r\n {\r\n let viewingTaskTypeId = this.taskTypesOptions.find(o => o.label === paramTaskType).value;\r\n this.taskForm.get('taskTypeId').setValue(viewingTaskTypeId);\r\n }\r\n })\r\n ).subscribe(\r\n // Success\r\n ()=>{},\r\n // Error\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving task types\", error);\r\n }\r\n );\r\n }\r\n\r\n //** Updates made to form when checkbox email values change */\r\n onSendEmailChange() {\r\n this.taskForm.controls[\"sendEmailToUsers\"].valueChanges.subscribe(\r\n (sendEmailToUsers: boolean) => {\r\n let sendEmailToContacts = this.taskForm.controls[\"sendEmailToContacts\"].value;\r\n this.updateSpinner(sendEmailToUsers, sendEmailToContacts);\r\n }\r\n );\r\n this.taskForm.controls[\"sendEmailToContacts\"].valueChanges.subscribe(\r\n (sendEmailToContacts: boolean) => {\r\n let sendEmailToUsers = this.taskForm.controls[\"sendEmailToUsers\"].value;\r\n this.updateSpinner(sendEmailToContacts, sendEmailToUsers);\r\n }\r\n );\r\n }\r\n\r\n //** Updates made to Opportunity Options when assigned contacts change */\r\n onAssignedContactsChange() {\r\n this.taskForm.controls[\"assignedContactIds\"].valueChanges.subscribe(\r\n (assignedContactSelectItems: SelectItem[]) => {\r\n let observableList: Observable[] = [];\r\n\r\n assignedContactSelectItems.map(selectItem => {\r\n observableList.push(this.opportunityService.getOpportunitiesByAssignedContactId(selectItem.value));\r\n });\r\n\r\n this.opportunityOptions = [];\r\n\r\n Observable.forkJoin(observableList).subscribe(\r\n (results: Opportunity[][]) => {\r\n results.map(r => {\r\n r.map(o => {\r\n this.opportunityOptions.push({ label: o.name + \" - \" + o.assignedContact.fullName, value: o.id });\r\n });\r\n });\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n //** Updates the spinner based on send email checkboxes values */\r\n updateSpinner(sendEmailToUsers: boolean, sendEmailToContacts: boolean) {\r\n if (sendEmailToUsers || sendEmailToContacts) {\r\n this.taskForm.controls['calendarDuration'].setValidators([\r\n Validators.required,\r\n Validators.min(this.minCalendarDuration),\r\n Validators.max(this.maxCalendarDuration)\r\n ]);\r\n this.isEmailGoingToSend = true;\r\n this.taskForm.controls['calendarDuration'].updateValueAndValidity();\r\n }\r\n else {\r\n this.taskForm.controls['calendarDuration'].setValidators([\r\n Validators.min(this.minCalendarDuration),\r\n Validators.max(this.maxCalendarDuration)\r\n ]);\r\n this.isEmailGoingToSend = false;\r\n this.taskForm.controls['calendarDuration'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onGetTask(id: number) {\r\n this.taskService.getTask(id).subscribe(\r\n (task: Task) => {\r\n this.task = task;\r\n\r\n // - Get the opportunities of the contacts assigned to this task\r\n task.contactTasks.map(cT => {\r\n this.opportunityService.getOpportunitiesByAssignedContactId(cT.contactId).subscribe(\r\n (opportunities: Opportunity[]) => {\r\n opportunities.map(o => {\r\n this.opportunityOptions.push({ label: o.name + \" - \" + o.assignedContact.fullName, value: o.id });\r\n });\r\n }\r\n );\r\n });\r\n\r\n this.initForm();\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving task\", error);\r\n this.router.navigate(['/error/404']);\r\n }\r\n );\r\n }\r\n\r\n isTaskTypeMeeting() {\r\n const taskTypeIdValue = this.taskForm.get('taskTypeId').value;\r\n const taskType = this.taskTypesOptions.find(o => o.value === taskTypeIdValue);\r\n\r\n if (taskType) {\r\n const taskTypeLabel = taskType.label;\r\n if (taskTypeLabel === PrepopulatedTaskTypes.Meeting)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isTaskTypeViewing() {\r\n const taskTypeIdValue = this.taskForm.get('taskTypeId').value;\r\n const taskType = this.taskTypesOptions.find(o => o.value === taskTypeIdValue);\r\n\r\n if (taskType) {\r\n const taskTypeLabel = taskType.label;\r\n if (taskTypeLabel === PrepopulatedTaskTypes.Viewing)\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n changeTaskType() {\r\n if (this.isTaskTypeViewing()) {\r\n this.taskForm.get('propertyId').setValidators([Validators.required]);\r\n }\r\n else {\r\n this.taskForm.get('propertyId').clearValidators();\r\n }\r\n\r\n this.taskForm.get('propertyId').updateValueAndValidity();\r\n }\r\n\r\n onTaskTypeChange(event) {\r\n this.changeTaskType();\r\n }\r\n\r\n onGetContactsSearch(searchTerm: string) {\r\n this.contactService.getContactsSearch(searchTerm).subscribe(\r\n (contacts: ContactSearchItem[]) => {\r\n let labelText = \"\";\r\n\r\n let retrievedContactsOptions = [];\r\n\r\n // Store retrieved contacts in the contactsOptions select list\r\n contacts.map(cT => {\r\n\r\n let organization = cT[\"organization\"];\r\n\r\n let labelText = cT.fullName.trim().length > 0 ? cT.fullName : \"NO-NAME\";\r\n // cT.idCardNumber ? labelText += \" / ID: \" + cT.idCardNumber : \"\";\r\n organization ? organization.name ? labelText += \" / Company: \" + organization.name : \"\" : \"\";\r\n cT.telephone ? labelText += \" / Tel: \" + cT.telephone : \"\";\r\n cT.mobile ? labelText += \" / Mob: \" + cT.mobile : \"\";\r\n cT.contactEmail ? labelText += \" / Email: \" + cT.contactEmail : \"\";\r\n\r\n retrievedContactsOptions.push(\r\n {\r\n label: labelText,\r\n value: cT.id\r\n }\r\n );\r\n });\r\n\r\n this.contactsOptions = retrievedContactsOptions;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving contacts\", error);\r\n }\r\n );\r\n }\r\n\r\n onGetPropertySearch(searchTerm: string) {\r\n\r\n this.taskService.getPropertiesSearch(searchTerm).subscribe(\r\n (properties: PropertyIdCode[]) => {\r\n\r\n debugger;\r\n let propOpt = [];\r\n // - Store the retrieved property codes as options for dropdown\r\n properties.map(p => { propOpt.push({ label: p.customCode, value: p.propertyId}); });\r\n\r\n this.propCodeOptions = propOpt;\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving properties\", error);\r\n }\r\n );\r\n\r\n\r\n }\r\n\r\n onGetUsers() {\r\n this.userService.getUsers().subscribe(\r\n (users: CrmUser[]) => {\r\n // - Store the retrieved users as options for multiselect\r\n users.map(u => {\r\n this.usersOptions.push({ label: u.fullName, value: u.id });\r\n });\r\n\r\n // - Add the current user as one of the assigned users\r\n if (!this.isEdit) {\r\n this.taskForm.patchValue({\r\n assignedUserIds: [this.authService.applicationProfileUser().id]\r\n });\r\n } else {\r\n this.taskForm.patchValue({\r\n assignedUserIds: this.task.userTasks.map(uT => uT.userId)\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onGetProperties() {\r\n let combined$ = combineLatest(\r\n this.taskService.getPropertyCodes(),\r\n this.route.queryParams,\r\n (task, queryParams) => ({task, queryParams})\r\n );\r\n\r\n combined$.pipe(\r\n tap(result => {\r\n const res: PropertyIdCode[] = (result).task;\r\n res.map(c => this.propCodeOptions.push({ label: c.customCode, value: c.propertyId }));\r\n //result.task.properties.map(p => .push(p));\r\n\r\n if (this.isEdit && this.propCodeOptions.length > 0 && this.task.propertyId != null) {\r\n\r\n let defaultPropSelected: SelectItem = this.propCodeOptions.find(o => o.value === this.task.propertyId);\r\n this.taskForm.patchValue({\r\n propertyId: defaultPropSelected\r\n });\r\n this.getProperty(defaultPropSelected);\r\n }\r\n }),\r\n map(result => {\r\n let paramPropertyId = result.queryParams['propId'];\r\n\r\n if (!this.isEdit && paramPropertyId != null)\r\n {\r\n let defaultPropSelected: SelectItem = this.propCodeOptions.find(o => o.value === parseInt(paramPropertyId));\r\n this.taskForm.patchValue({\r\n propertyId: defaultPropSelected\r\n });\r\n this.getProperty(defaultPropSelected);\r\n }\r\n })\r\n ).subscribe(\r\n // Success\r\n ()=>{\r\n this.taskTypesOptions = this._taskTypesOptions\r\n },\r\n // error\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding properties\", error);\r\n this.taskTypesOptions = this._taskTypesOptions.filter(option => option.label !== PrepopulatedTaskTypes.Viewing)\r\n\r\n const meeting = this._taskTypesOptions.find(option => option.label === PrepopulatedTaskTypes.Meeting)\r\n this.taskForm.patchValue({\r\n taskTypeId: meeting.value\r\n })\r\n this.changeTaskType()\r\n }\r\n )\r\n }\r\n\r\n onAddTask(newTask: Task, sendEmailToUsers: boolean, sendEmailToContacts: boolean) {\r\n this.taskService.addTask(newTask, sendEmailToUsers, sendEmailToContacts).subscribe(\r\n (response: Response) => {\r\n this.taskService.taskCounterChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task has been created.\");\r\n this.router.navigate(['/tasks/list']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding task\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateTask(newTask: Task, sendEmailToUsers: boolean, sendEmailToContacts: boolean) {\r\n this.taskService.updateTask(newTask, sendEmailToUsers, sendEmailToContacts).subscribe(\r\n (response: Response) => {\r\n this.taskService.taskCounterChanged.next();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task has been updated.\");\r\n this.router.navigate(['/tasks/list']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating task\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newTask = this.formBuilder.sanitizeFormValues(this.taskForm).value;\r\n\r\n let meetingTaskTypeId = this.taskTypesOptions.find(o => o.label === PrepopulatedTaskTypes.Meeting).value;\r\n\r\n // - The values regarding task location should only be passed to API if task type is set to meeting\r\n if (newTask.taskTypeId !== meetingTaskTypeId) {\r\n //newTask.location = null;\r\n newTask.locationLat = null;\r\n newTask.locationLng = null;\r\n }\r\n\r\n // This is to pass correct value (contact id) from the autocomplete selection and to sanitize it\r\n // (Eg: writing random string in search and submit form would return an api error response)\r\n if (newTask.assignedContactIds[0] && newTask.assignedContactIds[0].value) {\r\n newTask.assignedContactIds.forEach(\r\n (assignedContactId, index) => {\r\n newTask.assignedContactIds[index] = assignedContactId.value;\r\n }\r\n );\r\n }\r\n else\r\n newTask.assignedContactIds = [];\r\n\r\n newTask.contactTasks = this.populateContactTasks(newTask.assignedContactIds);\r\n newTask.opportunityTasks = this.populateOpportunityTasks(newTask.assignedOpportunityIds);\r\n newTask.userTasks = this.populateUserTasks(newTask.assignedUserIds);\r\n\r\n if (this.isTaskTypeViewing())\r\n {\r\n newTask.propertyId = newTask.propertyId.value;\r\n }\r\n\r\n // Check if opportunityTasks values are in opportunityOptions\r\n // This check is made so that we will only have opportunityTasks of the contacts currently assigned to this task while editing the form\r\n for (let opportunityTask of newTask.opportunityTasks) {\r\n // Remove opportunityTask if it is no longer a selectable option\r\n if (!this.opportunityOptions.find(o => o.value === opportunityTask.opportunityId))\r\n newTask.opportunityTasks = newTask.opportunityTasks.filter(o => o.opportunityId !== opportunityTask.opportunityId);\r\n }\r\n\r\n let sendEmailToUsers = newTask.sendEmailToUsers;\r\n let sendEmailToContacts = newTask.sendEmailToContacts;\r\n\r\n // Omitted for now\r\n // Not all contacts have an email so a check is performed to inform the user\r\n // if (sendEmailToContacts) {\r\n // this.onCheckAssignedContactEmails(this.assignedContacts);\r\n // }\r\n\r\n if (this.isEdit) {\r\n newTask.id = this.task.id; // - Set id of edited task to its original id\r\n newTask.isTaskComplete = this.task.isTaskComplete;\r\n newTask.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateTask(newTask, sendEmailToUsers, sendEmailToContacts);\r\n }\r\n else {\r\n newTask.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddTask(newTask, sendEmailToUsers, sendEmailToContacts);\r\n }\r\n }\r\n\r\n populateContactTasks(assignedContactIds: number[]) {\r\n let contactTasks: {}[] = [];\r\n\r\n for (let id of assignedContactIds) {\r\n let contactTask = {\r\n contactId: id,\r\n taskId: this.task.id,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n contactTasks.push(contactTask);\r\n }\r\n\r\n return contactTasks;\r\n }\r\n\r\n populateOpportunityTasks(assignedOpportunityIds: number[]) {\r\n let opportunityTasks: {}[] = [];\r\n\r\n for (let id of assignedOpportunityIds) {\r\n let opportunityTask = {\r\n opportunityId: id,\r\n taskId: this.task.id,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n opportunityTasks.push(opportunityTask);\r\n }\r\n\r\n return opportunityTasks;\r\n }\r\n\r\n populateUserTasks(assignedUserIds: number[]) {\r\n let userTasks: {}[] = [];\r\n\r\n for (let id of assignedUserIds) {\r\n let userTask = {\r\n userId: id,\r\n taskId: this.task.id,\r\n createdByUserAccountId: this.authService.applicationProfileUser().id,\r\n };\r\n userTasks.push(userTask);\r\n }\r\n\r\n return userTasks;\r\n }\r\n\r\n onAskForCommunicationLog(task: Task) {\r\n let firstContact = task.contactTasks[0].contact;\r\n\r\n this.confirmationService.confirm({\r\n header: 'Communication Log',\r\n message: 'The task has been marked as complete. Would you now like to create a new communication log for ' + firstContact.fullName + '?',\r\n accept: () => {\r\n this.router.navigate(['/contacts', firstContact.id, 'communication-history', 'new']);\r\n }\r\n });\r\n }\r\n\r\n onCheckAssignedContactEmails(assignedContacts: Contact[]) {\r\n let contactsWithNoEmail = assignedContacts.filter(c => !c.email || c.email.length === 0).map(c => c.fullName);\r\n\r\n if (contactsWithNoEmail && contactsWithNoEmail.length > 0) {\r\n this.contactsNoEmail = true; // - Setting to true for PrimeNG dialog box (See: Bottom of HTML template of this component)\r\n let message = \"The following contacts do not have an email address stored so an email cannot be sent to them:\";\r\n message += \"

\";\r\n contactsWithNoEmail.forEach(\r\n (contactName, index) => {\r\n message += \"\" + contactName + \"\";\r\n if (index < contactsWithNoEmail.length - 1)\r\n message += \"
\";\r\n }\r\n );\r\n\r\n this.confirmationService.confirm({\r\n header: 'Please Note',\r\n message: message,\r\n rejectVisible: false\r\n });\r\n }\r\n }\r\n\r\n onCompleteTask(task: Task) {\r\n let completedTask = Object.assign(this.task); // Copy of task\r\n task.updatedByUserAccountId = this.authService.applicationProfileUser().id; // Actual task\r\n\r\n this.taskService.toggleTaskCompletion(task).subscribe(\r\n (response: Response) => {\r\n // NOTE: The update is made in the API!!!\r\n // Here I am setting the task to complete because the update was successful, so we want the change to be shown to the user\r\n completedTask.isTaskComplete = !completedTask.isTaskComplete;\r\n this.taskService.taskCounterChanged.next();\r\n\r\n // Only ask for new comm. log if task is complete and is assigned to at least one contact\r\n if (task.contactTasks.length > 0 && completedTask.isTaskComplete)\r\n this.onAskForCommunicationLog(completedTask);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error completing task\", error);\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Task Types
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n List of Task Types\\r\\n There are currently {{taskTypes.length}} task types\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.createdOn | date:'dd/MM/yyyy - HH:mm' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.createdByUserAccountId > 0 ? taskType.createdByUserAccount?.fullName : 'System' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.updatedOn | date:'dd/MM/yyyy - HH:mm' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taskType.updatedByUserAccount ? taskType.updatedByUserAccount?.fullName : '' | labelEmptyField:'-' }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3Rhc2tzL3Rhc2stdHlwZXMvdGFzay10eXBlLWxpc3QvdGFzay10eXBlLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Response } from \"@angular/http\";\r\n\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { TaskTypeService } from \"../../../shared/services/task-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ConfirmationService } from \"primeng/primeng\";\r\n\r\nimport { TaskType } from \"../../../shared/models/task-type.model\";\r\n\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { PrepopulatedEntities } from \"app.constant\";\r\n\r\n@Component({\r\n selector: 'app-task-type-list',\r\n templateUrl: './task-type-list.component.html',\r\n styleUrls: ['./task-type-list.component.scss']\r\n})\r\nexport class TaskTypeListComponent implements OnInit {\r\n taskTypes: TaskType[] = [];\r\n isAnim: boolean = true;\r\n\r\n systemCreatedById = PrepopulatedEntities.SystemTaskTypeCreatedById; // - Id of System used to check if task type was prepopulated (Added by system)\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private taskTypeService: TaskTypeService,\r\n private confirmationService: ConfirmationService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onGetTaskTypes();\r\n\r\n // Listen to changes made to taskTypes\r\n this.taskTypeService.typesChanged.subscribe(\r\n () => {\r\n this.onGetTaskTypes();\r\n }\r\n );\r\n }\r\n\r\n onGetTaskTypes() {\r\n this.taskTypeService.getTaskTypes().subscribe(\r\n (taskTypes: TaskType[]) => {\r\n this.taskTypes = taskTypes;\r\n console.log(this.taskTypes);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving task types\", error);\r\n }\r\n );\r\n }\r\n\r\n onDeleteTaskType(taskType: TaskType) {\r\n this.confirmationService.confirm({\r\n message: 'Are you sure you want to delete the task type ' + taskType.name + '?',\r\n accept: () => {\r\n taskType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n\r\n this.taskTypeService.deleteTaskType(taskType).subscribe(\r\n (response: Response) => {\r\n this.onGetTaskTypes();\r\n this.toastService.createSuccessMessage(\"Success\", \"The task type \" + taskType.name + \" has been deleted.\");\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error deleting task type\", error);\r\n }\r\n )\r\n },\r\n reject: () => {\r\n this.toastService.createInfoMessage(\"Aborted\", \"The delete for task type \" + taskType.name + \" has been aborted.\");\r\n }\r\n });\r\n }\r\n\r\n trackByFn(index: number, row: any) {\r\n return row.id;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Update Task Type

\\r\\n

New Task Type

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n The Task Type field is required.\\r\\n \\r\\n \\r\\n There is already a task type with this name.\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3Rhc2tzL3Rhc2stdHlwZXMvdGFzay10eXBlLW1hbmFnZS90YXNrLXR5cGUtbWFuYWdlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { Response } from '@angular/http';\r\n\r\nimport { CustomFormBuilder } from \"../../../shared/classes/CustomFormBuilder\";\r\n\r\nimport { TaskTypeService } from \"../../../shared/services/task-type.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\n\r\nimport { TaskType } from \"../../../shared/models/task-type.model\";\r\n\r\nimport { valueExistsValidator } from \"../../../shared/validators/value-exists.validator\";\r\n\r\n@Component({\r\n selector: 'app-task-type-manage',\r\n templateUrl: './task-type-manage.component.html',\r\n styleUrls: ['./task-type-manage.component.scss']\r\n})\r\nexport class TaskTypeManageComponent implements OnInit {\r\n taskTypeForm: FormGroup; // - Stores the taskType form's values\r\n isFormInit: boolean = false; // - The form is not created until it is initialised\r\n isEdit: boolean = false; // - The form is set to update a taskType if true and add a new taskType if false\r\n\r\n taskTypes: TaskType[] = []; // - Stores all taskTypes retrieved from db\r\n taskType: TaskType = new TaskType(); // - Stores TaskType to populate form with a new / existing TaskType's values\r\n\r\n isModalShown: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: CustomFormBuilder,\r\n private route: ActivatedRoute,\r\n public router: Router,\r\n private taskTypeService: TaskTypeService,\r\n private authService: AuthService,\r\n private toastService: ToastService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.setupForm();\r\n }\r\n\r\n setupForm() {\r\n this.taskTypeService.getTaskTypes().subscribe(\r\n (taskTypes: TaskType[]) => {\r\n this.taskTypes = taskTypes; // - Store all task types retrieved from db\r\n\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n const taskTypeId = params['id'];\r\n this.isEdit = taskTypeId != null;\r\n\r\n if (this.isEdit) {\r\n this.taskType = this.taskTypes.find(cType => cType.id === +taskTypeId); // - Store the selected taskType\r\n\r\n // Redirect to 404 page if the selected taskType could not be found\r\n if (!this.taskType) {\r\n this.router.navigate(['/error/404']);\r\n return;\r\n }\r\n }\r\n this.initForm();\r\n }\r\n );\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error retrieving task types\", error);\r\n }\r\n );\r\n }\r\n\r\n initForm() {\r\n // Get all taskType names to know if it already exists\r\n const taskTypeNames = this.taskTypes.map(cType => cType.name);\r\n\r\n this.taskTypeForm = this.formBuilder.group({\r\n name: this.formBuilder.control(this.taskType.name, [Validators.required, valueExistsValidator(taskTypeNames)])\r\n });\r\n this.isFormInit = true;\r\n }\r\n\r\n onAddTaskType(newTaskType: TaskType) {\r\n this.taskTypeService.addTaskType(newTaskType).subscribe(\r\n (response: Response) => {\r\n this.taskTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The task type \" + newTaskType.name + \" has been created.\");\r\n this.router.navigate(['/tasks/types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error adding task type\", error);\r\n }\r\n );\r\n }\r\n\r\n onUpdateTaskType(newTaskType: TaskType) {\r\n this.taskTypeService.updateTaskType(newTaskType).subscribe(\r\n (response: Response) => {\r\n this.taskTypeService.typesChanged.next(); // Let list component know of changes\r\n this.toastService.createSuccessMessage(\"Success\", \"The task type \" + newTaskType.name + \" has been updated.\");\r\n this.router.navigate(['/tasks/types']);\r\n },\r\n (error: Response) => {\r\n this.toastService.createErrorMessage(\"Error updating task type\", error);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n let newTaskType = this.formBuilder.sanitizeFormValues(this.taskTypeForm).value;\r\n\r\n if (this.isEdit) {\r\n newTaskType.id = this.taskType.id; // - Set id of edited taskType to its original id\r\n newTaskType.createdByUserAccountId = this.taskType.createdByUserAccountId; // - Need createdById of original task type to check if it is a prepopulated type\r\n newTaskType.updatedByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onUpdateTaskType(newTaskType);\r\n }\r\n else {\r\n newTaskType.createdByUserAccountId = this.authService.applicationProfileUser().id;\r\n this.onAddTaskType(newTaskType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../../auth/auth-guard.service\";\r\nimport { RoleGuard } from \"../../auth/role-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../../components/common/layouts/basicLayout.component\";\r\nimport { TaskTypesComponent } from \"../task-types/task-types.component\";\r\nimport { TaskTypeListComponent } from \"../task-types/task-type-list/task-type-list.component\";\r\nimport { TaskTypeManageComponent } from \"../task-types/task-type-manage/task-type-manage.component\";\r\n\r\nconst typesRoutes: Routes = [\r\n {\r\n path: 'tasks',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'types', component: TaskTypesComponent,\r\n children: [\r\n {\r\n path: '', component: TaskTypeListComponent,\r\n children: [\r\n { path: ':id/edit', component: TaskTypeManageComponent, canActivate: [RoleGuard] },\r\n { path: 'new', component: TaskTypeManageComponent, canActivate: [RoleGuard] }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(typesRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TaskTypesRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3Rhc2tzL3Rhc2stdHlwZXMvdGFzay10eXBlcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-task-types',\r\n templateUrl: './task-types.component.html',\r\n styleUrls: ['./task-types.component.scss']\r\n})\r\nexport class TaskTypesComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { TaskTypesRoutingModule } from \"./task-types-routing.module\";\r\n\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\n\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport { TaskTypesComponent } from './task-types.component';\r\nimport { TaskTypeListComponent } from './task-type-list/task-type-list.component';\r\nimport { TaskTypeManageComponent } from './task-type-manage/task-type-manage.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TaskTypesComponent,\r\n TaskTypeListComponent,\r\n TaskTypeManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n TaskTypesRoutingModule,\r\n ReactiveFormsModule,\r\n ModalModule.forRoot()\r\n ]\r\n})\r\nexport class TaskTypesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthGuard } from \"../auth/auth-guard.service\";\r\n\r\nimport { BasicLayoutComponent } from \"../../components/common/layouts/basicLayout.component\";\r\nimport { TasksComponent } from \"./tasks.component\";\r\nimport { TaskListComponent } from \"./task-list/task-list.component\";\r\nimport { TaskManageComponent } from \"./task-manage/task-manage.component\";\r\n\r\nconst tasksRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'tasks', component: TasksComponent,\r\n children: [\r\n { path: '', redirectTo: 'list', pathMatch: 'full' },\r\n { path: 'list', component: TaskListComponent },\r\n { path: ':id/edit', component: TaskManageComponent },\r\n { path: 'new', component: TaskManageComponent }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(tasksRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TasksRoutingModule { }","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZpZXdzL3Rhc2tzL3Rhc2tzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tasks',\r\n templateUrl: './tasks.component.html',\r\n styleUrls: ['./tasks.component.scss']\r\n})\r\nexport class TasksComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\n\r\nimport { TasksRoutingModule } from \"./tasks-routing.module\";\r\nimport { TaskTypesModule } from '../tasks/task-types/task-types.module';\r\n\r\nimport { SharedModule } from \"../shared/shared.module\";\r\n\r\nimport { TaskManageComponent } from './task-manage/task-manage.component';\r\nimport { TasksComponent } from './tasks.component';\r\n\r\nimport { CalendarModule, DropdownModule, MultiSelectModule, GMapModule } from 'primeng/primeng';\r\n\r\n@NgModule({\r\n declarations: [\r\n TasksComponent,\r\n TaskManageComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n TasksRoutingModule,\r\n TaskTypesModule,\r\n ReactiveFormsModule,\r\n CalendarModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n GMapModule\r\n ],\r\n})\r\nexport class TasksModule { }\r\n","export const environment = {\r\n production: true,\r\n\r\n PORTAL_URI: `https://acquisitions.karkanja.com/`,\r\n API_ENDPOINT: 'https://acquisitions-system-api.karkanja.com/',\r\n API_GRAPHQL: `https://acquisitions-system-api.karkanja.com/api/graphql`,\r\n\r\n AUTHORITY_ENDPOINT: 'https://auth.karkanja.com',\r\n\r\n POST_LOGOUT_REDIRECT_URI: 'https://acquisitions.karkanja.com/',\r\n REDIRECT_URI: 'https://acquisitions.karkanja.com/auth',\r\n SILENT_REDIRECT_URI: 'https://acquisitions.karkanja.com/silent',\r\n\r\n REAP_URI: 'https://properties.karkanja.com',\r\n\r\n CLIENT_ID: \"crmacquisitionsweb\",\r\n SCOPE: \"openid profile crmacquisitionsapi.web role orchestrate.web\",\r\n\r\n CENTRAL : `https://scenic.karkanja.com/`,\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"],"sourceRoot":""}