{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACAA;AACA;AACE,SAJF;AAKA;;AACAC;AAA6C;AAAA,OAA7C;;AACAA;AACAA;AACAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","names":["e","webpackEmptyAsyncContext","module","routes","path","component","_admin_component__WEBPACK_IMPORTED_MODULE_0__","children","_report_management_report_management_component__WEBPACK_IMPORTED_MODULE_1__","data","breadcrumb","_user_management_user_management_component__WEBPACK_IMPORTED_MODULE_3__","_lookup_management_lookup_management_component__WEBPACK_IMPORTED_MODULE_4__","_reports_dashboard_custom_reports_custom_reports_component__WEBPACK_IMPORTED_MODULE_6__","_reports_dashboard_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_5__","AdminRoutingModule","imports","_angular_router__WEBPACK_IMPORTED_MODULE_9__","exports","providers","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_2__","AdminComponent","selector","template","AdminModule","declarations","_admin_component__WEBPACK_IMPORTED_MODULE_1__","_report_management_report_management_component__WEBPACK_IMPORTED_MODULE_2__","_report_management_reports_reports_component__WEBPACK_IMPORTED_MODULE_3__","_user_management_user_management_component__WEBPACK_IMPORTED_MODULE_4__","_user_management_users_list_users_list_component__WEBPACK_IMPORTED_MODULE_6__","_report_management_rptstatusmgmt_rptstatusmgmt_component__WEBPACK_IMPORTED_MODULE_9__","_lookup_management_lookup_management_component__WEBPACK_IMPORTED_MODULE_10__","_lookup_management_country_country_component__WEBPACK_IMPORTED_MODULE_11__","_lookup_management_post_post_component__WEBPACK_IMPORTED_MODULE_12__","_lookup_management_programarea_programarea_component__WEBPACK_IMPORTED_MODULE_13__","_lookup_management_division_division_component__WEBPACK_IMPORTED_MODULE_14__","_lookup_management_reportcategory_reportcategory_component__WEBPACK_IMPORTED_MODULE_15__","_lookup_management_post_post_detail_post_detail_component__WEBPACK_IMPORTED_MODULE_17__","_lookup_management_country_country_detail_country_detail_component__WEBPACK_IMPORTED_MODULE_18__","_lookup_management_programarea_programarea_detail_programarea_detail_component__WEBPACK_IMPORTED_MODULE_19__","_lookup_management_division_division_detail_division_detail_component__WEBPACK_IMPORTED_MODULE_20__","_lookup_management_reportcategory_reportcategory_detail_reportcategory_detail_component__WEBPACK_IMPORTED_MODULE_21__","_reports_dashboard_reports_dashboard_component__WEBPACK_IMPORTED_MODULE_22__","_reports_dashboard_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_23__","_reports_dashboard_custom_reports_custom_reports_component__WEBPACK_IMPORTED_MODULE_24__","_reports_dashboard_dashboard_reports_total_count_card_reports_total_count_card_component__WEBPACK_IMPORTED_MODULE_25__","_reports_dashboard_dashboard_report_counts_five_year_card_report_counts_five_year_card_component__WEBPACK_IMPORTED_MODULE_27__","_reports_dashboard_dashboard_reports_count_by_status_card_reports_count_by_status_card_component__WEBPACK_IMPORTED_MODULE_28__","_reports_dashboard_dashboard_report_count_by_type_card_report_count_by_type_card_component__WEBPACK_IMPORTED_MODULE_29__","_reports_dashboard_custom_reports_report_download_counts_report_download_counts_component__WEBPACK_IMPORTED_MODULE_30__","_reports_dashboard_custom_reports_report_variance_due_date_report_variance_due_date_component__WEBPACK_IMPORTED_MODULE_31__","_reports_dashboard_custom_reports_report_submitted_by_post_report_submitted_by_post_component__WEBPACK_IMPORTED_MODULE_32__","_report_management_view_history_view_history_component__WEBPACK_IMPORTED_MODULE_33__","_report_management_rptmetadata_rptmetadata_component__WEBPACK_IMPORTED_MODULE_34__","_report_management_view_attachment_view_attachment_component__WEBPACK_IMPORTED_MODULE_35__","_angular_common__WEBPACK_IMPORTED_MODULE_38__","_admin_routing_module__WEBPACK_IMPORTED_MODULE_0__","primeng_radiobutton__WEBPACK_IMPORTED_MODULE_39__","_angular_forms__WEBPACK_IMPORTED_MODULE_40__","primeng_table__WEBPACK_IMPORTED_MODULE_41__","primeng_TabView__WEBPACK_IMPORTED_MODULE_42__","primeng_Dropdown__WEBPACK_IMPORTED_MODULE_43__","primeng_listbox__WEBPACK_IMPORTED_MODULE_44__","primeng_multiselect__WEBPACK_IMPORTED_MODULE_45__","primeng_dialog__WEBPACK_IMPORTED_MODULE_46__","primeng_Tree__WEBPACK_IMPORTED_MODULE_47__","primeng_TreeTable__WEBPACK_IMPORTED_MODULE_48__","primeng_contextmenu__WEBPACK_IMPORTED_MODULE_49__","highcharts_angular__WEBPACK_IMPORTED_MODULE_50__","primeng_confirmdialog__WEBPACK_IMPORTED_MODULE_51__","primeng_calendar__WEBPACK_IMPORTED_MODULE_52__","primeng_selectbutton__WEBPACK_IMPORTED_MODULE_53__","primeng_fileupload__WEBPACK_IMPORTED_MODULE_54__","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_5__","_services_lookups_lookupadmin_service__WEBPACK_IMPORTED_MODULE_16__","_services_registration_service__WEBPACK_IMPORTED_MODULE_7__","angular_notifier__WEBPACK_IMPORTED_MODULE_55__","_services_report_service__WEBPACK_IMPORTED_MODULE_8__","_services_analytics_service__WEBPACK_IMPORTED_MODULE_26__","CountryDetailComponent","fb","lookupService","lookupAdminService","notifier","_angular_core__WEBPACK_IMPORTED_MODULE_5__","countryDetailForm","group","Id","countryName","_angular_forms__WEBPACK_IMPORTED_MODULE_6__","region","isActive","lastUpdatedDateTime","location","getAllRegions$","subscribe","regions","sort","a","b","locationName","patchValue","id","parentLocation","String","Date","toLocaleString","reset","showHideCountryDetailDlg","emit","refreshDataSource","valid","country","Object","assign","_models_user_model__WEBPACK_IMPORTED_MODULE_3__","value","parentId","saveCountry","resp","ok","notify","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_2__","_services_lookups_lookupadmin_service__WEBPACK_IMPORTED_MODULE_4__","angular_notifier__WEBPACK_IMPORTED_MODULE_7__","CountryComponent","LoadAllCountries","getAllCountries$","countries","locationNames","GetUniqueValues","map","p","parentLocationNames","parentLocationName","isActives","Array","push","label","isActiveList","isDisplay","displayCountryDetailDlg","countryDetail","showCountryDetailDialog","ShowHideCountryDetailDialog","isReload","_services_lookups_lookupadmin_service__WEBPACK_IMPORTED_MODULE_3__","args","_country_detail_country_detail_component__WEBPACK_IMPORTED_MODULE_4__","DivisionDetailComponent","divisionDetailForm","divisionName","programArea","getAllProgramAreas$","programAreas","showHideDivisionDetailDlg","division","_models_user_model__WEBPACK_IMPORTED_MODULE_4__","saveDivision","DivisionComponent","LoadAllDivisions","getAllDivisions$","divisions","displayDivisionDetailDlg","divisionDetail","showDivisionDetailDialog","ShowHideDivisionDetailDialog","_division_detail_division_detail_component__WEBPACK_IMPORTED_MODULE_4__","LookupManagementComponent","PostDetailComponent","postDetailForm","postName","showHidePostDetailDlg","post","savePost","PostComponent","LoadAllPosts","getAllPosts$","posts","displayPostDetailDlg","postDetail","showPostDetailDialog","ShowHidePostDetailDialog","_post_detail_post_detail_component__WEBPACK_IMPORTED_MODULE_4__","ProgramAreaDetailComponent","programAreaDetailForm","programAreaName","programareas","showHideProgramAreaDetailDlg","saveProgramArea","ProgramAreaComponent","LoadAllProgramAreas","displayProgramAreaDetailDlg","programAreaDetail","showProgramAreaDetailDialog","ShowHideProgramAreaDetailDialog","_programarea_detail_programarea_detail_component__WEBPACK_IMPORTED_MODULE_4__","ReportcategoryDetailComponent","reportCategoryDetailForm","categoryName","parentCategory","autoPublishPolicy","LoadLookupValues","getAllActiveProgramAreas$","getAllActiveReportAutoPublishPolicies$","autoPublishPolicies","getAllActiveReportCategories$","parentReportCategories","selectedCategory","area","filter","x","programAreaId","length","controlDisable","controls","reportCategoryId","isNew","createNewReportCategory","updateReportCategory","parentCategoryId","onChangeCategory","getReportCategoryById","reportCategory","lastUpdatedDatetime","find","policy","autoPublishPolicyId","showHideReportCategoryDetailDlg","_models_report_model__WEBPACK_IMPORTED_MODULE_4__","saveReportCategory$","ReportCategoryComponent","items","icon","command","event","showReportCategoryDetailDlg","LoadReportCategoryHierarchy","loading","getReportCategoryHierarchy$","pipe","reportCategories","of","expanded","title","displayReportCategoryDlg","mdlDlgTitle","reportCategoryDetail","showReportCategoryDetail","parseInt","selectedNode","node","contextMenu","_reportcategory_detail_reportcategory_detail_component__WEBPACK_IMPORTED_MODULE_3__","ReportManagementComponent","_reportDashboardService","_notifier","getLockedReports","lockedReports","reports","report","removeReportLock","reportId","token","response","angular_notifier__WEBPACK_IMPORTED_MODULE_3__","ReportsComponent","_angular_core__WEBPACK_IMPORTED_MODULE_2__","unlockReport","RptmetadataComponent","reportService","authUserService","authUser","currentUser","_user","showHideMetadata","reportType","startsWith","getReportScheduleById","metadata","reportNumber","reportName","dueDate","reportDate","reportState","reportHighlights","preparedBy","selectedApproverName","approvedBy","fullName","i","slice","highlights","category","fasPost","getAllActiveUsers$","selectedApprover","u","approverId","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_4__","_services_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_3__","angular_notifier__WEBPACK_IMPORTED_MODULE_6__","RptstatusmgmtComponent","reportDashboardService","confirmationService","getReportYears","loadReportStates","loadReportsTable","ReportYear","year","displayAttachmentDlg","getAllReportsBasedOnYear$","reportData","LoadTableFilters","_models_report_model__WEBPACK_IMPORTED_MODULE_2__","getFullYear","Years","ReportYears","reportNumbers","r","reportNames","fasPosts","distributionTypes","distribution","reportStates","reportTypes","vals","returnArry","cnt","reportStateId","lstReportStates","getReportStates$","allReportStates","forEach","element","stateName","displayStatusDlg","viewHistory","getReportHistory","displayHistoryDlg","publishedReportMetadata","isReportPublished","showPublishedReportClick","ShowConfirmationDlg","dlgMessage","action","successMsg","confirm","message","header","key","accept","performAction$","console","log","err","viewAttachment","ShowAttachmentsDialog","RptMetadata","showMetadataDialog","updateReportState$","selectedState","displayMetadata","reportScheduleforStatus","launchReport","link","document","createElement","href","_environments_environment__WEBPACK_IMPORTED_MODULE_8__","setAttribute","click","_services_report_service__WEBPACK_IMPORTED_MODULE_3__","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_7__","angular_notifier__WEBPACK_IMPORTED_MODULE_10__","primeng_api__WEBPACK_IMPORTED_MODULE_11__","_angular_core__WEBPACK_IMPORTED_MODULE_12__","_view_history_view_history_component__WEBPACK_IMPORTED_MODULE_5__","_rptmetadata_rptmetadata_component__WEBPACK_IMPORTED_MODULE_6__","_view_attachment_view_attachment_component__WEBPACK_IMPORTED_MODULE_9__","ViewAttachmentComponent","constructor","ngOnInit","reportAttachmentList","reportMetadataId","getReportAttachments$","finalize","checkForLock","isLocked","onUpload","form","formData","FormData","files","file","_this","attachmentName","name","clearFiles","append","uploadAttachments$","error","uploadAttachmentList","clear","openAttachment","fileName","fileType","split","toString","openAttachment$","content","fileURL","URL","createObjectURL","anchor","download","deleteAttachment","reportAttachment","deleteAttachment$","splice","indexOf","ReportdashboardService","NotifierService","Component","animations","trigger","state","style","transform","opacity","transition","animate","ViewHistoryComponent","getReportHistoryById","reportAuditTrailData","CustomReportsComponent","searchService","filterForm","selectedCountries","selectedPosts","selectedProgramAreas","selectedReportYears","selectedReportTypes","selectedReportDistributionTypes","fromDate","toDate","LoadAdvanceFilterOptions","LoadAllReportStates","LoadAllReportTypes","LoadAllReportDistributionTypes","LoadAllReportYears","filters","_models_analytics_model__WEBPACK_IMPORTED_MODULE_4__","selectedReport","selectedNodes","undefined","TraverseChildNodes","selectedReportCategories","RunSelectedReport","child","searchResults","reportYears","currentYear","selectedItems","displayTab","index","reportTitle","postList","v","val","countryList","programAreaList","divisionList","getAllReportTypes$","reportTypeList","description","getAllReportDistributionTypes$","reportDistributionTypeList","reportDistributionTypes","reportStateList","getReportYear","reportYearList","_services_search_service__WEBPACK_IMPORTED_MODULE_3__","ReportDownloadCountsComponent","analyticsService","filterService","found","changes","LoadReportData","getReportDownloadsCount$","reportFilters","body","makeRowsSameHeight","cols","field","colName","matchMode","dt","setTimeout","getElementsByClassName","wrapper","w","item","frozen_rows","querySelectorAll","unfrozen_rows","clientHeight","height","reportYear","distributionType","GetUniqueValuesWithComa","dueDates","dateSort","reportDueDate","publishDates","reportPublishDate","downloadsCount","downloadcounts","filterItem","returnArray","getTime","splitVal","first","rows","_services_analytics_service__WEBPACK_IMPORTED_MODULE_2__","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_3__","angular_notifier__WEBPACK_IMPORTED_MODULE_5__","primeng_api__WEBPACK_IMPORTED_MODULE_6__","_angular_core__WEBPACK_IMPORTED_MODULE_7__","mapWorld","__webpack_require__","highcharts_highcharts_more__WEBPACK_IMPORTED_MODULE_7___default","highcharts_highmaps__WEBPACK_IMPORTED_MODULE_4__","highcharts_modules_exporting__WEBPACK_IMPORTED_MODULE_5___default","highcharts_modules_offline_exporting__WEBPACK_IMPORTED_MODULE_6___default","ReportSubmittedByPostComponent","toggleOptions","selectedOption","firstChange","graphData","getSubmittedReportCountByPostAndYear$","graphReportYears","LoadChart","requiredReportCounts","requiredReportCount","voluntaryReportCounts","voluntaryReportCount","totalReportCounts","totalReportCount","features","toLowerCase","properties","sumVal","reduce","requiredSum","voluntarySum","code3","requiredCnt","voluntaryCnt","GetChartOptions","chartOptions","chart","width","exporting","fallbackToExportServer","text","credits","enabled","mapNavigation","buttonOptions","alignTo","plotOptions","color","colors","legend","colorAxis","min","minColor","maxColor","tooltip","backgroundColor","borderWidth","shadow","useHTML","padding","pointFormat","positioner","y","series","type","states","hover","borderColor","joinBy","angular_notifier__WEBPACK_IMPORTED_MODULE_9__","_angular_core__WEBPACK_IMPORTED_MODULE_10__","ReportVarianceDueDateComponent","getVarianceReportByDueDates$","types","dateSubmittedToWashingtons","dateSubmittedToWashington","submittedDateVariances","submittedDateVariance","publishedDate","publishDateVariances","publishDateVariance","DashboardComponent","LoadReportYears","reportCountsFiveYearCardComponent","loadChart","reportTotalCntComponent","loadProgressChart","reportByTypeCntComponent","reportByStatusCntComponent","loadReportsCountsByStatusChart","_reports_total_count_card_reports_total_count_card_component__WEBPACK_IMPORTED_MODULE_4__","_report_counts_five_year_card_report_counts_five_year_card_component__WEBPACK_IMPORTED_MODULE_5__","_reports_count_by_status_card_reports_count_by_status_card_component__WEBPACK_IMPORTED_MODULE_3__","_report_count_by_type_card_report_count_by_type_card_component__WEBPACK_IMPORTED_MODULE_6__","highcharts_highcharts_more__WEBPACK_IMPORTED_MODULE_3___default","highcharts__WEBPACK_IMPORTED_MODULE_2__","highcharts_modules_exporting__WEBPACK_IMPORTED_MODULE_4___default","ReportCountByTypeCardComponent","yearId","getReportCountsByType$","reportCountByType","requiredInternalReportCount","requiredPublicReportCount","voluntaryInternalReportCount","voluntaryPublicReportCount","updateChart","updateFromInput","reportCountByTypeChartOptions","plotBackgroundColor","plotBorderWidth","plotShadow","options3d","alpha","beta","accessibility","point","valueSuffix","pie","allowPointSelect","cursor","depth","dataLabels","format","size","showInLegend","selected","_services_analytics_service__WEBPACK_IMPORTED_MODULE_5__","ReportCountsFiveYearCardComponent","selectedReportYear","getPublishedReportCountsByYear$","publishedReportCountsByYear","publishedReportCountRequiredPublicList","publishedReportCountRequiredInternalList","publishedReportCountVoluntaryPublicList","publishedReportCountVoluntaryInternalList","fiveYearLineChartOptions","formatter","xAxis","categories","yAxis","line","_services_analytics_service__WEBPACK_IMPORTED_MODULE_4__","ReportsCountByStatusCardComponent","GetReportStates","getReportsCountByStatus$","requiredReportCnt","isRequired","voluntaryReportCnt","ReportCountByStatusChartOptions","stackLabels","fontWeight","headerFormat","column","stacking","notStarted","draft","submittedToPostApprover","approvedAndSentToWashington","returnedFromPostApprover","returnedFromWashington","published","hold","highcharts_highcharts_more__WEBPACK_IMPORTED_MODULE_4___default","highcharts_modules_exporting__WEBPACK_IMPORTED_MODULE_3___default","ReportsTotalCountCardComponent","getRequiredReportsCountByYear$","pendingCount","pendingRequiredReportsCount","completedCount","completedRequiredReportsCount","requiredReportchartOptions","startAngle","endAngle","center","align","verticalAlign","innerSize","ReportsDashboardComponent","UserManagementComponent","_lookupService","_registrationService","statusSelected","getPendingHqUsers","getUserTypes","userTypes","typeName","users","usersTemp","firstName","lastName","userType","getActiveUsers","getDeactiveUsers","userstatusSelected","getAllDeActiveUsers$","getPendingHqUsers$","userToActivate","activateUser","onStatusSelection","userToDeactivate","deactivateUser","_services_registration_service__WEBPACK_IMPORTED_MODULE_3__","angular_notifier__WEBPACK_IMPORTED_MODULE_4__","UsersListComponent","registrationService","_angular_core__WEBPACK_IMPORTED_MODULE_4__","user","userId","displayEditUserRoleDlg","disableButton","disableSelection","getAppRolesByUserTypeId","appRoles","editUserTypeAndRole","userRole","reload","AppComponent","router","localStorage","spinner","httpStatus","displayUserNotification","setUpAnalytics","AuthUser","userStatus","navigate","userLocations","getHttpStatus","status","show","hide","getItem","toPromise","then","notification","showNotification","removeItem","GAId","environment","events","NavigationEnd","gtag","page_path","urlAfterRedirects","Router","LocalStorage","AuthUserService","NgxSpinnerService","HttpStatusNotifierService","ConfirmationService","AppModule","_app_component__WEBPACK_IMPORTED_MODULE_0__","_layout_header_header_component__WEBPACK_IMPORTED_MODULE_1__","_layout_footer_footer_component__WEBPACK_IMPORTED_MODULE_2__","_layout_breadcrumbs_breadcrumbs_component__WEBPACK_IMPORTED_MODULE_3__","_layout_contentarea_contentarea_component__WEBPACK_IMPORTED_MODULE_4__","_layout_navbar_navbar_component__WEBPACK_IMPORTED_MODULE_5__","_home_home_component__WEBPACK_IMPORTED_MODULE_6__","_registration_registration_component__WEBPACK_IMPORTED_MODULE_7__","_user_profile_user_profile_component__WEBPACK_IMPORTED_MODULE_15__","_post_user_post_user_component__WEBPACK_IMPORTED_MODULE_16__","_hq_user_hq_user_component__WEBPACK_IMPORTED_MODULE_17__","_reports_reports_component__WEBPACK_IMPORTED_MODULE_20__","_reportdashboard_reportdashboard_component__WEBPACK_IMPORTED_MODULE_18__","_requiredreportschedule_requiredreportschedule_component__WEBPACK_IMPORTED_MODULE_21__","_reportinginstructions_reportinginstructions_reportinginstructions_component__WEBPACK_IMPORTED_MODULE_25__","_reportinginstructions_fileupload_fileupload_component__WEBPACK_IMPORTED_MODULE_26__","_reportdashboard_reportlisting_reportlisting_component__WEBPACK_IMPORTED_MODULE_19__","_search_searchresults_searchresults_component__WEBPACK_IMPORTED_MODULE_27__","_home_externaluserhome_externaluserhome_component__WEBPACK_IMPORTED_MODULE_28__","_home_internaluserhome_internaluserhome_component__WEBPACK_IMPORTED_MODULE_29__","_home_annoucments_annoucments_component__WEBPACK_IMPORTED_MODULE_30__","_home_alerts_alerts_component__WEBPACK_IMPORTED_MODULE_31__","_home_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_32__","_myreports_reportfilter_reportfilter_component__WEBPACK_IMPORTED_MODULE_33__","_myreports_reportlineitem_reportlineitem_component__WEBPACK_IMPORTED_MODULE_34__","_myreports_comments_comments_component__WEBPACK_IMPORTED_MODULE_35__","_reportassignment_reportassignment_reportassignment_component__WEBPACK_IMPORTED_MODULE_36__","_reportschedule_reportschedule_component__WEBPACK_IMPORTED_MODULE_37__","_reportdashboard_requiredrptmetadata_requiredrptmetadata_component__WEBPACK_IMPORTED_MODULE_42__","_reportdashboard_voluntaryrptmetadata_voluntaryrptmetadata_component__WEBPACK_IMPORTED_MODULE_43__","_directive_can_access_directive__WEBPACK_IMPORTED_MODULE_45__","_reportdashboard_reportworkflow_reportworkflow_component__WEBPACK_IMPORTED_MODULE_47__","_reportdashboard_reporthistory_reporthistory_component__WEBPACK_IMPORTED_MODULE_48__","_search_search_component__WEBPACK_IMPORTED_MODULE_50__","_faq_faq_component__WEBPACK_IMPORTED_MODULE_38__","_help_help_component__WEBPACK_IMPORTED_MODULE_39__","_reportdashboard_reportattachments_reportattachments_component__WEBPACK_IMPORTED_MODULE_53__","_quick_links_quick_links_component__WEBPACK_IMPORTED_MODULE_55__","_release_note_release_note_component__WEBPACK_IMPORTED_MODULE_56__","_search_version_history_version_history_component__WEBPACK_IMPORTED_MODULE_58__","_home_today_report_today_report_component__WEBPACK_IMPORTED_MODULE_59__","_home_release_schedule_release_schedule_component__WEBPACK_IMPORTED_MODULE_60__","_home_post_by_country_post_by_country_component__WEBPACK_IMPORTED_MODULE_61__","_home_percentage_report_by_country_percentage_report_by_country_component__WEBPACK_IMPORTED_MODULE_62__","_home_top_five_report_categories_top_five_report_categories_component__WEBPACK_IMPORTED_MODULE_63__","_home_home_search_home_search_component__WEBPACK_IMPORTED_MODULE_64__","primeng_autocomplete__WEBPACK_IMPORTED_MODULE_68__","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_69__","primeng_checkbox__WEBPACK_IMPORTED_MODULE_70__","primeng_calendar__WEBPACK_IMPORTED_MODULE_71__","primeng_multiselect__WEBPACK_IMPORTED_MODULE_72__","primeng_treeselect__WEBPACK_IMPORTED_MODULE_73__","primeng_listbox__WEBPACK_IMPORTED_MODULE_74__","primeng_dropdown__WEBPACK_IMPORTED_MODULE_75__","primeng_radiobutton__WEBPACK_IMPORTED_MODULE_76__","_angular_common_http__WEBPACK_IMPORTED_MODULE_77__","_angular_forms__WEBPACK_IMPORTED_MODULE_78__","_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_79__","primeng_panel__WEBPACK_IMPORTED_MODULE_80__","primeng_dialog__WEBPACK_IMPORTED_MODULE_81__","primeng_TabView__WEBPACK_IMPORTED_MODULE_82__","primeng_InputText__WEBPACK_IMPORTED_MODULE_83__","primeng_confirmdialog__WEBPACK_IMPORTED_MODULE_84__","ngx_permissions__WEBPACK_IMPORTED_MODULE_85__","ngx_spinner__WEBPACK_IMPORTED_MODULE_86__","angular_notifier__WEBPACK_IMPORTED_MODULE_87__","primeng_fileupload__WEBPACK_IMPORTED_MODULE_88__","primeng_tree__WEBPACK_IMPORTED_MODULE_89__","primeng_treetable__WEBPACK_IMPORTED_MODULE_90__","primeng_accordion__WEBPACK_IMPORTED_MODULE_91__","primeng_OverlayPanel__WEBPACK_IMPORTED_MODULE_92__","primeng_carousel__WEBPACK_IMPORTED_MODULE_93__","highcharts_angular__WEBPACK_IMPORTED_MODULE_94__","_angular_router__WEBPACK_IMPORTED_MODULE_95__","loadChildren","_admin_admin_module__WEBPACK_IMPORTED_MODULE_51__","canActivate","permissions","only","redirectTo","canDeactivate","_services_guards_has_locations_guard__WEBPACK_IMPORTED_MODULE_8__","useHash","primeng_table__WEBPACK_IMPORTED_MODULE_96__","primeng_inputtextarea__WEBPACK_IMPORTED_MODULE_97__","layouts_lib__WEBPACK_IMPORTED_MODULE_98__","angular_crumbs__WEBPACK_IMPORTED_MODULE_57__","_services_http_status_notifier_service__WEBPACK_IMPORTED_MODULE_44__","ngx_cookie_service__WEBPACK_IMPORTED_MODULE_54__","_services_appInitialization_authToken_service__WEBPACK_IMPORTED_MODULE_9__","_services_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_10__","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_12__","_services_lookups_lookupadmin_service__WEBPACK_IMPORTED_MODULE_13__","_services_registration_service__WEBPACK_IMPORTED_MODULE_14__","_services_report_service__WEBPACK_IMPORTED_MODULE_22__","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_23__","_services_resolvers_reportMetadata_resolver__WEBPACK_IMPORTED_MODULE_24__","_services_reportschedule_service__WEBPACK_IMPORTED_MODULE_40__","_services_requiredreportschedule_service__WEBPACK_IMPORTED_MODULE_41__","_services_reportinstructions_service__WEBPACK_IMPORTED_MODULE_49__","_services_permissions_service__WEBPACK_IMPORTED_MODULE_46__","_services_search_service__WEBPACK_IMPORTED_MODULE_52__","_services_searchData__WEBPACK_IMPORTED_MODULE_65__","_angular_common__WEBPACK_IMPORTED_MODULE_99__","provide","useClass","_services_appInitialization_token_Interceptor__WEBPACK_IMPORTED_MODULE_11__","multi","_angular_core__WEBPACK_IMPORTED_MODULE_67__","useFactory","tokenSwapperFactory","deps","_ngx_pwa_local_storage__WEBPACK_IMPORTED_MODULE_100__","bootstrap","getParameterByName","url","window","replace","regex","RegExp","results","exec","decodeURIComponent","getFixedToken","getAuthTokenAndUser","authTokenService","tempToken","swapToken","getAuthUser","AuthToken","ex","Function","CanAccessDirective","templateRef","viewContainer","workflowEvents","applyPermission","permission$","checkAuthorization","authorized","createEmbeddedView","unsubscribe","_angular_core__WEBPACK_IMPORTED_MODULE_1__","_services_permissions_service__WEBPACK_IMPORTED_MODULE_0__","FAQComponent","HelpComponent","AlertsComponent","AnnoucmentsComponent","ExternaluserhomeComponent","publishTime","setHours","setMinutes","setSeconds","getHours","checkDST","getTimezoneOffset","todayReport","getElementById","getReportsForToday","todayReportData","isPublic","getReportScheduleForHome","reportScheduleData","fasCountryCode","locationCode","locationTypeId","onChangeCountry","countryId","selectedCountryId","reportCountry","loadCountry","percentageReport","getCountryReportRatio","topFiveReport","getTopFiveCategories","january","today","july","Math","max","_services_report_service__WEBPACK_IMPORTED_MODULE_2__","ngx_spinner__WEBPACK_IMPORTED_MODULE_12__","_services_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_6__","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_7__","_angular_core__WEBPACK_IMPORTED_MODULE_13__","_release_schedule_release_schedule_component__WEBPACK_IMPORTED_MODULE_3__","_today_report_today_report_component__WEBPACK_IMPORTED_MODULE_4__","_post_by_country_post_by_country_component__WEBPACK_IMPORTED_MODULE_5__","_percentage_report_by_country_percentage_report_by_country_component__WEBPACK_IMPORTED_MODULE_9__","_top_five_report_categories_top_five_report_categories_component__WEBPACK_IMPORTED_MODULE_10__","HomeSearchComponent","searchDataService","setSearchData","keyword","styleClass","_angular_router__WEBPACK_IMPORTED_MODULE_4__","_services_searchData__WEBPACK_IMPORTED_MODULE_3__","HomeComponent","InternaluserhomeComponent","userRoles","roleName","releaseScheduleTitle","releaseScheduleData","PercentageReportByCountryComponent","appUserId","GetPercentageReportByCountry","result","countryReportCount","occupiedRatio","round","remainRatio","occupied","remain","container","display","lessThanOne","marginLeft","PostByCountryComponent","getChildLocations","selectedCountry","flagURL","postsFirst","postsSecond","FASUrl","ngx_spinner__WEBPACK_IMPORTED_MODULE_5__","_angular_core__WEBPACK_IMPORTED_MODULE_6__","ReleaseScheduleComponent","applyReportFileter","allReports","selectReport","page","carouselPage","ngx_spinner__WEBPACK_IMPORTED_MODULE_3__","TodayReportComponent","EventEmitter","refreshTime","getMinutes","getSeconds","noPublish","postPublish","pastPublish","publishedOn","_a","setTimer","ngOnChanges","emptyItem","ReportsForToday","Promise","f","refresh","refreshPage","viewReport","previewPDF$","open","ReportService","Input","Output","TopFiveReportCategoriesComponent","legendItemClick","queryParams","searchCategory","target","searchCountry","layout","itemMarginBottom","squareSymbol","symbolRadius","itemStyle","itemHoverStyle","GetTopFiveReportCategories","generatePieChart","noResult","categoryCount","categoryId","HqUserComponent","newLocationIds","hqDetails","Hq","displayHQLocation","getRootLocations","JSON","stringify","showProfilesetupAlert","getUserCategories","userSavedCategories","userCategories","saveStatus","addHQDetail","displayHQCategories","reportCategoriesTree","selectedCategoryNodes","categoryNode","hqDetail","divisionId","deleteUserLocation","getUserLocations","locations","userReportCategoryId","deleteUserReportCategory","usercategories","deleteuserlocation$","rxjs__WEBPACK_IMPORTED_MODULE_5__","adduserlocation$","addUserLocations","result$","newUserReportCategoryIds","selectedUserReportCategories","oldCategories","newCategories","updateUserReportCategories","_services_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_2__","_services_registration_service__WEBPACK_IMPORTED_MODULE_4__","_angular_core__WEBPACK_IMPORTED_MODULE_8__","BreadcrumbsComponent","titleService","breadcrumbService","breadcrumbChanged","crumbs","setTitle","createTitle","routesCollection","days","route","includes","pop","displayName","titles","pageTitle","routeTitle","titlesToString","prev","curr","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__","angular_crumbs__WEBPACK_IMPORTED_MODULE_2__","ContentareaComponent","FooterComponent","HeaderComponent","NavbarComponent","cookieService","logoutUrl","_environments_environment__WEBPACK_IMPORTED_MODULE_3__","loginUrl","GAUrl","set","button","subMenu","btn","getElementsByName","menu","getAttribute","hidden","_ngx_pwa_local_storage__WEBPACK_IMPORTED_MODULE_5__","ngx_cookie_service__WEBPACK_IMPORTED_MODULE_4__","PublishedReportCountsByYear","ReportCountByStatus","ReportCountByType","ReportFilter","DownloadCountsReportResult","VarianceReportByDueDatesResult","SubmittedReportCountByPostAndYearResult","ReportMetadata","Approver","ReportCategory","UserReportCategory","ReportSchedule","VoluntaryReportMetadata","ReportAuditRecord","ReportingInstructions","ReportState","FrequencyType","ReportAttachment","Report","ReportScheduleResults","PublishedReport","ReportStates","ReportAutoPublishPolicy","ReportType","ReportDistributionType","ReportScheduleForHome","CountryReport","ReportCategoryRank","SearchFilter","SearchResult","QuickLinkResult","PublishedReportHistory","User","UserRegistrationModel","UserStatus","UserType","AppRole","Location","PostUserType","TypeName","Descripton","ReleaseNote","CommentsComponent","ReportfilterComponent","ReportlineitemComponent","PostUserComponent","postDetails","addPostDetail","addLocationsDisplay","Post","postId","addLocations","deleteLocation","enableSave","regionId","QuickLinksComponent","titleNames","paramMap","dayCnt","params","get","LoadData","currentDate","setDate","getDate","getQuickLinkResults$","toDateString","fileNameType","postType","countryType","publishedOnDateType","fileNames","_angular_router__WEBPACK_IMPORTED_MODULE_5__","_services_search_service__WEBPACK_IMPORTED_MODULE_2__","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_4__","RegistrationComponent","permissionsService","registerUserModel","_models_user_model__WEBPACK_IMPORTED_MODULE_2__","roleIds","showLaunchButtonClick","userTypeId","registerUser","showRoleUserInformation","removePermission","addPermission","_services_registration_service__WEBPACK_IMPORTED_MODULE_5__","ngx_permissions__WEBPACK_IMPORTED_MODULE_6__","ReleaseNoteComponent","LoadReleaseNotes","getAllReleaseNotes$","releaseNotes","_services_lookups_lookupadmin_service__WEBPACK_IMPORTED_MODULE_2__","ReportassignmentComponent","ReportattachmentsComponent","ReportdashboardComponent","LoadReportSchedules","getReportSchedule","correctedReportSchedules","otherStateReportSchedules","concat","requiredReportScheduleData","rs","voluntaryReportScheduleData","userLocation","intrestReportScheduleData","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_3__","_services_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_4__","ngx_spinner__WEBPACK_IMPORTED_MODULE_8__","_angular_core__WEBPACK_IMPORTED_MODULE_9__","_reportlisting_reportlisting_component__WEBPACK_IMPORTED_MODULE_6__","ReporthistoryComponent","ReportlistingComponent","reportMetadata","lastUpdateDatetime","requiredRptMetadata","voluntaryRptMetadata","reporthistory","ShowReportHistoryDlg","reportAttachements","LaunchReport","downloadPDF$","isDisplayRefresh","displayWorkflowDlg","reportSchedule","mode","reportWorkflow","ShowWorkflowDialog","dialogTitle","colorVal","_services_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_10__","_services_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_11__","_services_permissions_service__WEBPACK_IMPORTED_MODULE_8__","angular_notifier__WEBPACK_IMPORTED_MODULE_14__","primeng_api__WEBPACK_IMPORTED_MODULE_15__","_services_report_service__WEBPACK_IMPORTED_MODULE_12__","_requiredrptmetadata_requiredrptmetadata_component__WEBPACK_IMPORTED_MODULE_4__","_voluntaryrptmetadata_voluntaryrptmetadata_component__WEBPACK_IMPORTED_MODULE_5__","_reportworkflow_reportworkflow_component__WEBPACK_IMPORTED_MODULE_6__","_reporthistory_reporthistory_component__WEBPACK_IMPORTED_MODULE_7__","_reportattachments_reportattachments_component__WEBPACK_IMPORTED_MODULE_9__","ReportworkflowComponent","_angular_core__WEBPACK_IMPORTED_MODULE_3__","reportWorkflowForm","_angular_forms__WEBPACK_IMPORTED_MODULE_4__","removeAuthor","comments","dlgMode","approveText","returnText","showHideWorkflowDlg","checkforCommentsandTrackChanges$","ExecuteWorkflow","executeWorkflow$","getConfirmationMsg","RequiredrptmetadataComponent","saveReportMetadatafields","preferredReportName","saveReportMetadata","launchStatus","approver","accessLink","isReportLocked","controlDisabled","searchString","query","ApproversList","VoluntaryrptmetadataComponent","voluntaryMetadataForm","_angular_forms__WEBPACK_IMPORTED_MODULE_8__","disclaimer","isSaved","getAllReportCategories$","loadReportCategories","enable","LoadVoluntaryMetadataForm","voluntaryMetadata","loadSelectedCategoryNodes","disable","getParentLocation","parentLoc","saveVoluntaryReport$","dirty","setValue","getReportCategoryFromNode","cat","$event","setSelectedReportCategories","setVoluntaryFormsReportCategories","_environments_environment__WEBPACK_IMPORTED_MODULE_6__","approvers","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_5__","FileuploadComponent","ReportingInstructionsComponent","reportingstructionsService","GetReportingInstructionsAll","createFolderDialog","nodeId","createFolder","newFolderParentId","cancelFolderButton","uploadDocumentDialog","uploadFile","newDocumentParentId","updateDocumentDialog","uploadDocId","uploadDocParentId","updateDocument","fileContent","updateDocuments","contentType","contentLength","reader","FileReader","onload","arrayBuffer","array","Uint8Array","byteArray","byteLength","readAsArrayBuffer","onloadend","uploadDocument","uploadDocuments","addReportingInstructions","deleteDocument","fileNodeId","addFolderButton","folderName","addFolder","cancelDocumentUploadButton","getReportingInstructionsByType","nodeRoot","fileTree","getChildrenNodes","leaf","selectable","parentNodeId","reportNode","getReportingInstructionsByParentId","reportTreeNode","fileNode","documentSelect","loadDocumentId","documentName","downloadDocument$","deleteFolder","ReportingInstructionsService","lookUpService","reportScheduleService","mapReportSchedule","reportMetadataData","requiredReportcount","reportingYear","getSummaryData","_services_reportschedule_service__WEBPACK_IMPORTED_MODULE_5__","_services_reportdashboard_service__WEBPACK_IMPORTED_MODULE_6__","ReportscheduleComponent","datePipe","reportNameData","reportDistribution","reportCategoriesdata","locationId","selectedPost","fasPostId","yr","addButton","previewButton","isReportScheduleEditable","selectedYear","resolve","reject","replicateReportScheduleForYear","recordCount","getReportSchedulesByYear","reportNameType","programAreaType","frequencyTypes","proposedDueDate","ProgramAreaName","parentPostLocation","postLocation","frequencyTypeName","isReleased","selectOrUnselectAll","filterRreportCategory","getUniqueValues","filterReportName","filterProgramArea","filtercountry","filterFasPost","filterDistributionTypes","filterFrequencyTypes","filterDueDate","filterProposedDue","rowIndex","addNewReportSchedule","reportCategorydata","getLocation","programAreadata","ProgramAreaId","isSelected","selectedFrequencyType","frequencyTypeId","selectedDistribution","selectedDueDate","reportscheduleIndex","updateReportScheduleById","deleteReportSchedule","previewReportScheduleDialog","addNewReportDialog","errorMessage","addNewReportfields","ReportYearId","CategoryId","ReportName","IsRequired","IsPublic","PostLocationId","ParentLocationId","ReportDueDate","ProposedDueDate","IsReleased","FrequencyTypeId","createReportSchedule","onClickAddNewReportSchedule","getFrequencyTypes$","dueDateInNextYear","setFullYear","replicateReportsfields","replicateReportScheduleData","postLocationId","parentPostLocationId","releaseReportSchedule","editReportsfields","previewReportSchedule","closePreviewReportDialog","releaseRecallReportSchedule","_angular_common__WEBPACK_IMPORTED_MODULE_7__","RequiredreportscheduleComponent","requiredreportService","LoadTable","getReportbasedonyear","reportCategoryType","dueDateType","distType","reportStatus","dueDateFilter","_services_requiredreportschedule_service__WEBPACK_IMPORTED_MODULE_5__","SearchComponent","searchForm","dateRange","reporthighlights","correctedReport","reportnumber","reportname","blockDate","searchPost","LoadBlockDateOptions","all","checkSearch","redirectSearch","getSearch","take","searchParams","dataVals","checkNodes","search","resetSearchData","categoryData","selectedCategories","numChildren","numSelected","partialSelected","searchFilter","countryIds","postNames","categoryIds","getSearchResults$","searchResultsComponent","resetPageIndex","yearStart","checked","scrollIntoView","behavior","block","inline","blockDatesOptions","blockDatesOptionsForInternal","onReset","ddlBlockDateOnClick","calendarOnFocus","LookupService","FormBuilder","SearchService","ActivatedRoute","SearchDataService","ViewChild","SearchresultsComponent","_environments_environment__WEBPACK_IMPORTED_MODULE_4__","register","some","ExpandReportCategories","countryNames","firstPage","versionHistory","seperatedArray","join","primeng_api__WEBPACK_IMPORTED_MODULE_7__","_version_history_version_history_component__WEBPACK_IMPORTED_MODULE_3__","VersionHistoryComponent","getVersionHistory$","versionList","_angular_common__WEBPACK_IMPORTED_MODULE_4__","AnalyticsService","http","_environments_environment__WEBPACK_IMPORTED_MODULE_0__","reportYearId","endpoint","numberOfYears","headers","_angular_common_http__WEBPACK_IMPORTED_MODULE_1__","observe","AuthTokenService","tokenEndPoint","_authToken","access_token","expires_in","token_type","_promiseDone","_promise","setItem","_tempStr","HttpClient","Injectable","rolesService","userEndPoint","tap","d","_location","statusName","addRole","updateAuthUser","NgxRolesService","NgxPermissionsService","TokenInterceptor","authtokenService","userService","httpStatusNotifier","intercept","request","next","clone","withCredentials","setHeaders","Authorization","setHttpStatus","handle","unauthorizedHandler","HasLocationsGuard","_locations","_lookups_lookup_service__WEBPACK_IMPORTED_MODULE_0__","requestInFlight$","rxjs__WEBPACK_IMPORTED_MODULE_0__","inFlight","asObservable","usersList","regionList","autoPublishPolicyList","includeAll","reportStatesList","reportTypesList","reportDistributionTypesList","_angular_common_http__WEBPACK_IMPORTED_MODULE_2__","LookupAdminService","releaseNoteList","PermissionsService","freeze","getUser","Set","getRoleNames","doCheckAuthorization","keys","parsePath","entry","findEntry","WORKFLOW_EVENTS","permittedRoles","has","permittedRole","isArray","currentObject","roles","roleNames","_appInitialization_authUser_service__WEBPACK_IMPORTED_MODULE_1__","RegistrationService","updateUser","newRoleId","reportStatusId","responseType","Blob","numberOfRows","_environments_environment__WEBPACK_IMPORTED_MODULE_1__","reportScheduleStore","reportSchedules","bsReportSchedules","rxjs__WEBPACK_IMPORTED_MODULE_3__","getReportScheduleForLoggedInUser","_angular_common_http__WEBPACK_IMPORTED_MODULE_4__","voluntaryReportMetadata","_models_report_model__WEBPACK_IMPORTED_MODULE_0__","reportMetatadataId","isAprroved","isValidated","_http_status_notifier_service__WEBPACK_IMPORTED_MODULE_2__","httpClient","reportInstrutions","documentId","ReportScheduleService","reportScheduleId","RequiredreportscheduleService","reportyear","ReportMetadataResolver","activatedRoute","_reportdashboard_service__WEBPACK_IMPORTED_MODULE_0__","_angular_router__WEBPACK_IMPORTED_MODULE_1__","keywordData","countryData","UserProfileComponent","postEmployments","postEmployment","isLes","getUserReportCategories","userRoleId","rootLocations","isButtonVisible","SelectedUserType","newLocationId","userlocation","oldLocation","production","workflow","reportPublishTime","apiEndpoint","tokenEndpoint","serverUrl","bootstrapModule","_app_app_module__WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__"],"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions:%20%7B%7D|namespace%20object","webpack:///src/app/admin/admin-routing.module.ts","webpack:///src/app/admin/admin.component.ts","webpack:///src/app/admin/admin.module.ts","webpack:///src/app/admin/lookup-management/country/country-detail/country-detail.component.ts","webpack:///src/app/admin/lookup-management/country/country.component.ts","webpack:///src/app/admin/lookup-management/division/division-detail/division-detail.component.ts","webpack:///src/app/admin/lookup-management/division/division.component.ts","webpack:///src/app/admin/lookup-management/lookup-management.component.ts","webpack:///src/app/admin/lookup-management/post/post-detail/post-detail.component.ts","webpack:///src/app/admin/lookup-management/post/post.component.ts","webpack:///src/app/admin/lookup-management/programarea/programarea-detail/programarea-detail.component.ts","webpack:///src/app/admin/lookup-management/programarea/programarea.component.ts","webpack:///src/app/admin/lookup-management/reportcategory/reportcategory-detail/reportcategory-detail.component.ts","webpack:///src/app/admin/lookup-management/reportcategory/reportcategory.component.ts","webpack:///src/app/admin/report-management/report-management.component.ts","webpack:///src/app/admin/report-management/reports/reports.component.ts","webpack:///src/app/admin/report-management/rptmetadata/rptmetadata.component.ts","webpack:///src/app/admin/report-management/rptstatusmgmt/rptstatusmgmt.component.ts","webpack:///src/app/admin/report-management/view-attachment/view-attachment.component.ts","webpack:///src/app/admin/report-management/view-history/view-history.component.ts","webpack:///src/app/admin/reports-dashboard/custom-reports/custom-reports.component.ts","webpack:///src/app/admin/reports-dashboard/custom-reports/report-download-counts/report-download-counts.component.ts","webpack:///src/app/admin/reports-dashboard/custom-reports/report-submitted-by-post/report-submitted-by-post.component.ts","webpack:///src/app/admin/reports-dashboard/custom-reports/report-variance-due-date/report-variance-due-date.component.ts","webpack:///src/app/admin/reports-dashboard/dashboard/dashboard.component.ts","webpack:///src/app/admin/reports-dashboard/dashboard/report-count-by-type-card/report-count-by-type-card.component.ts","webpack:///src/app/admin/reports-dashboard/dashboard/report-counts-five-year-card/report-counts-five-year-card.component.ts","webpack:///src/app/admin/reports-dashboard/dashboard/reports-count-by-status-card/reports-count-by-status-card.component.ts","webpack:///src/app/admin/reports-dashboard/dashboard/reports-total-count-card/reports-total-count-card.component.ts","webpack:///src/app/admin/reports-dashboard/reports-dashboard.component.ts","webpack:///src/app/admin/user-management/user-management.component.ts","webpack:///src/app/admin/user-management/users-list/users-list.component.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/directive/can-access.directive.ts","webpack:///src/app/faq/faq.component.ts","webpack:///src/app/help/help.component.ts","webpack:///src/app/home/alerts/alerts.component.ts","webpack:///src/app/home/annoucments/annoucments.component.ts","webpack:///src/app/home/dashboard/dashboard.component.ts","webpack:///src/app/home/externaluserhome/externaluserhome.component.ts","webpack:///src/app/home/home-search/home-search.component.ts","webpack:///src/app/home/home.component.ts","webpack:///src/app/home/internaluserhome/internaluserhome.component.ts","webpack:///src/app/home/percentage-report-by-country/percentage-report-by-country.component.ts","webpack:///src/app/home/post-by-country/post-by-country.component.ts","webpack:///src/app/home/release-schedule/release-schedule.component.ts","webpack:///src/app/home/today-report/today-report.component.ts","webpack:///src/app/home/top-five-report-categories/top-five-report-categories.component.ts","webpack:///src/app/hq-user/hq-user.component.ts","webpack:///src/app/layout/breadcrumbs/breadcrumbs.component.ts","webpack:///src/app/layout/contentarea/contentarea.component.ts","webpack:///src/app/layout/footer/footer.component.ts","webpack:///src/app/layout/header/header.component.ts","webpack:///src/app/layout/navbar/navbar.component.ts","webpack:///src/app/models/analytics.model.ts","webpack:///src/app/models/report.model.ts","webpack:///src/app/models/search.model.ts","webpack:///src/app/models/user.model.ts","webpack:///src/app/myreports/comments/comments.component.ts","webpack:///src/app/myreports/reportfilter/reportfilter.component.ts","webpack:///src/app/myreports/reportlineitem/reportlineitem.component.ts","webpack:///src/app/post-user/post-user.component.ts","webpack:///src/app/quick-links/quick-links.component.ts","webpack:///src/app/registration/registration.component.ts","webpack:///src/app/release-note/release-note.component.ts","webpack:///src/app/reportassignment/reportassignment/reportassignment.component.ts","webpack:///src/app/reportdashboard/reportattachments/reportattachments.component.ts","webpack:///src/app/reportdashboard/reportdashboard.component.ts","webpack:///src/app/reportdashboard/reporthistory/reporthistory.component.ts","webpack:///src/app/reportdashboard/reportlisting/reportlisting.component.ts","webpack:///src/app/reportdashboard/reportworkflow/reportworkflow.component.ts","webpack:///src/app/reportdashboard/requiredrptmetadata/requiredrptmetadata.component.ts","webpack:///src/app/reportdashboard/voluntaryrptmetadata/voluntaryrptmetadata.component.ts","webpack:///src/app/reportinginstructions/fileupload/fileupload.component.ts","webpack:///src/app/reportinginstructions/reportinginstructions/reportinginstructions.component.ts","webpack:///src/app/reports/reports.component.ts","webpack:///src/app/reportschedule/reportschedule.component.ts","webpack:///src/app/requiredreportschedule/requiredreportschedule.component.ts","webpack:///src/app/search/search.component.ts","webpack:///src/app/search/searchresults/searchresults.component.ts","webpack:///src/app/search/version-history/version-history.component.ts","webpack:///src/app/services/analytics.service.ts","webpack:///src/app/services/appInitialization/authToken.service.ts","webpack:///src/app/services/appInitialization/authUser.service.ts","webpack:///src/app/services/appInitialization/token.Interceptor.ts","webpack:///src/app/services/guards/has-locations-guard.ts","webpack:///src/app/services/http-status-notifier.service.ts","webpack:///src/app/services/lookups/lookup.service.ts","webpack:///src/app/services/lookups/lookupadmin.service.ts","webpack:///src/app/services/permissions.service.ts","webpack:///src/app/services/registration.service.ts","webpack:///src/app/services/report.service.ts","webpack:///src/app/services/reportdashboard.service.ts","webpack:///src/app/services/reportinstructions.service.ts","webpack:///src/app/services/reportschedule.service.ts","webpack:///src/app/services/requiredreportschedule.service.ts","webpack:///src/app/services/resolvers/reportMetadata.resolver.ts","webpack:///src/app/services/search.service.ts","webpack:///src/app/services/searchData.ts","webpack:///src/app/user-profile/user-profile.component.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///src/app/admin/admin.component.html","webpack:///src/app/admin/lookup-management/country/country-detail/country-detail.component.html","webpack:///src/app/admin/lookup-management/country/country.component.html","webpack:///src/app/admin/lookup-management/division/division-detail/division-detail.component.html","webpack:///src/app/admin/lookup-management/division/division.component.html","webpack:///src/app/admin/lookup-management/lookup-management.component.html","webpack:///src/app/admin/lookup-management/post/post-detail/post-detail.component.html","webpack:///src/app/admin/lookup-management/post/post.component.html","webpack:///src/app/admin/lookup-management/programarea/programarea-detail/programarea-detail.component.html","webpack:///src/app/admin/lookup-management/programarea/programarea.component.html","webpack:///src/app/admin/lookup-management/reportcategory/reportcategory-detail/reportcategory-detail.component.html","webpack:///src/app/admin/lookup-management/reportcategory/reportcategory.component.html","webpack:///src/app/admin/report-management/report-management.component.html","webpack:///src/app/admin/report-management/reports/reports.component.html","webpack:///src/app/admin/report-management/rptmetadata/rptmetadata.component.html","webpack:///src/app/admin/report-management/rptstatusmgmt/rptstatusmgmt.component.html","webpack:///src/app/admin/report-management/view-attachment/view-attachment.component.html","webpack:///src/app/admin/report-management/view-history/view-history.component.html","webpack:///src/app/admin/reports-dashboard/custom-reports/custom-reports.component.html","webpack:///src/app/admin/reports-dashboard/custom-reports/report-download-counts/report-download-counts.component.html","webpack:///src/app/admin/reports-dashboard/custom-reports/report-submitted-by-post/report-submitted-by-post.component.html","webpack:///src/app/admin/reports-dashboard/custom-reports/report-variance-due-date/report-variance-due-date.component.html","webpack:///src/app/admin/reports-dashboard/dashboard/dashboard.component.html","webpack:///src/app/admin/reports-dashboard/dashboard/report-count-by-type-card/report-count-by-type-card.component.html","webpack:///src/app/admin/reports-dashboard/dashboard/report-counts-five-year-card/report-counts-five-year-card.component.html","webpack:///src/app/admin/reports-dashboard/dashboard/reports-count-by-status-card/reports-count-by-status-card.component.html","webpack:///src/app/admin/reports-dashboard/dashboard/reports-total-count-card/reports-total-count-card.component.html","webpack:///src/app/admin/reports-dashboard/reports-dashboard.component.html","webpack:///src/app/admin/user-management/user-management.component.html","webpack:///src/app/admin/user-management/users-list/users-list.component.html","webpack:///src/app/app.component.html","webpack:///src/app/faq/faq.component.html","webpack:///src/app/help/help.component.html","webpack:///src/app/home/alerts/alerts.component.html","webpack:///src/app/home/annoucments/annoucments.component.html","webpack:///src/app/home/dashboard/dashboard.component.html","webpack:///src/app/home/externaluserhome/externaluserhome.component.html","webpack:///src/app/home/home-search/home-search.component.html","webpack:///src/app/home/home.component.html","webpack:///src/app/home/internaluserhome/internaluserhome.component.html","webpack:///src/app/home/percentage-report-by-country/percentage-report-by-country.component.html","webpack:///src/app/home/post-by-country/post-by-country.component.html","webpack:///src/app/home/release-schedule/release-schedule.component.html","webpack:///src/app/home/today-report/today-report.component.html","webpack:///src/app/home/top-five-report-categories/top-five-report-categories.component.html","webpack:///src/app/hq-user/hq-user.component.html","webpack:///src/app/layout/breadcrumbs/breadcrumbs.component.html","webpack:///src/app/layout/contentarea/contentarea.component.html","webpack:///src/app/layout/footer/footer.component.html","webpack:///src/app/layout/header/header.component.html","webpack:///src/app/layout/navbar/navbar.component.html","webpack:///src/app/myreports/comments/comments.component.html","webpack:///src/app/myreports/reportfilter/reportfilter.component.html","webpack:///src/app/myreports/reportlineitem/reportlineitem.component.html","webpack:///src/app/post-user/post-user.component.html","webpack:///src/app/quick-links/quick-links.component.html","webpack:///src/app/registration/registration.component.html","webpack:///src/app/release-note/release-note.component.html","webpack:///src/app/reportassignment/reportassignment/reportassignment.component.html","webpack:///src/app/reportdashboard/reportattachments/reportattachments.component.html","webpack:///src/app/reportdashboard/reportdashboard.component.html","webpack:///src/app/reportdashboard/reporthistory/reporthistory.component.html","webpack:///src/app/reportdashboard/reportlisting/reportlisting.component.html","webpack:///src/app/reportdashboard/reportworkflow/reportworkflow.component.html","webpack:///src/app/reportdashboard/requiredrptmetadata/requiredrptmetadata.component.html","webpack:///src/app/reportdashboard/voluntaryrptmetadata/voluntaryrptmetadata.component.html","webpack:///src/app/reportinginstructions/fileupload/fileupload.component.html","webpack:///src/app/reportinginstructions/reportinginstructions/reportinginstructions.component.html","webpack:///src/app/reports/reports.component.html","webpack:///src/app/reportschedule/reportschedule.component.html","webpack:///src/app/requiredreportschedule/requiredreportschedule.component.html","webpack:///src/app/search/search.component.html","webpack:///src/app/search/searchresults/searchresults.component.html","webpack:///src/app/search/version-history/version-history.component.html","webpack:///src/app/user-profile/user-profile.component.html"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AdminComponent } from './admin.component';\r\nimport { ReportManagementComponent } from './report-management/report-management.component';\r\nimport { ReportdashboardService } from '../services/reportdashboard.service';\r\nimport { UserManagementComponent } from './user-management/user-management.component';\r\nimport { LookupManagementComponent } from './lookup-management/lookup-management.component';\r\nimport { ReportsDashboardComponent } from './reports-dashboard/reports-dashboard.component';\r\nimport { DashboardComponent } from './reports-dashboard/dashboard/dashboard.component';\r\nimport { CustomReportsComponent } from './reports-dashboard/custom-reports/custom-reports.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AdminComponent,\r\n children: [\r\n { path: 'report-management', component: ReportManagementComponent, data:{breadcrumb:'Reports Management'} },\r\n { path: 'user-management', component: UserManagementComponent, data:{breadcrumb:'Users Management'} },\r\n { path: 'lookup-management', component: LookupManagementComponent, data:{breadcrumb:'List Management'} },\r\n { path: 'report-analytics', component: CustomReportsComponent, data:{breadcrumb:'Report Analytics'} },\r\n { path: 'dashboard', component: DashboardComponent, data:{breadcrumb:'Dashboard'} }\r\n ]\r\n }\r\n];\r\n\r\n// , { path: 'reports', component: ReportsComponent }\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [ReportdashboardService]\r\n})\r\nexport class AdminRoutingModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.css']\r\n})\r\nexport class AdminComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n //console.log('in Admin component');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PanelModule, Panel } from 'primeng/Panel';\r\nimport { InputTextModule } from 'primeng/InputText';\r\nimport { TabViewModule } from 'primeng/TabView';\r\nimport { OverlayPanelModule } from 'primeng/OverlayPanel';\r\nimport { DropdownModule } from 'primeng/Dropdown';\r\nimport { TreeTableModule } from 'primeng/TreeTable';\r\nimport { TreeModule } from 'primeng/Tree';\r\nimport { AdminRoutingModule } from './admin-routing.module';\r\nimport { AdminComponent } from './admin.component';\r\nimport { ReportManagementComponent } from './report-management/report-management.component';\r\nimport { ReportsComponent } from './report-management/reports/reports.component';\r\nimport { UserManagementComponent } from './user-management/user-management.component';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { UsersListComponent } from './user-management/users-list/users-list.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { RegistrationService } from '../services/registration.service';\r\nimport { ReportService } from '../services/report.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { RptstatusmgmtComponent } from './report-management/rptstatusmgmt/rptstatusmgmt.component';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { LookupManagementComponent } from './lookup-management/lookup-management.component';\r\nimport { CountryComponent } from './lookup-management/country/country.component';\r\nimport { PostComponent } from './lookup-management/post/post.component';\r\nimport { ProgramAreaComponent } from './lookup-management/programarea/programarea.component';\r\nimport { DivisionComponent } from './lookup-management/division/division.component';\r\nimport { ReportCategoryComponent } from './lookup-management/reportcategory/reportcategory.component';\r\nimport { LookupAdminService } from '../services/lookups/lookupadmin.service';\r\nimport { PostDetailComponent } from './lookup-management/post/post-detail/post-detail.component';\r\nimport { CountryDetailComponent } from './lookup-management/country/country-detail/country-detail.component';\r\nimport { ProgramAreaDetailComponent } from './lookup-management/programarea/programarea-detail/programarea-detail.component';\r\nimport { DivisionDetailComponent } from './lookup-management/division/division-detail/division-detail.component';\r\nimport {ContextMenuModule} from 'primeng/contextmenu';\r\nimport { ReportcategoryDetailComponent } from './lookup-management/reportcategory/reportcategory-detail/reportcategory-detail.component';\r\nimport { ReportsDashboardComponent } from './reports-dashboard/reports-dashboard.component';\r\nimport { DashboardComponent } from './reports-dashboard/dashboard/dashboard.component';\r\nimport { CustomReportsComponent } from './reports-dashboard/custom-reports/custom-reports.component';\r\nimport {HighchartsChartModule} from 'highcharts-angular';\r\nimport { ReportsTotalCountCardComponent } from './reports-dashboard/dashboard/reports-total-count-card/reports-total-count-card.component';\r\nimport { AnalyticsService } from '../services/analytics.service';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\n\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport {MultiSelectModule} from 'primeng/multiselect';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport {SelectButtonModule} from 'primeng/selectbutton';\r\n\r\nimport { ReportCountsFiveYearCardComponent } from './reports-dashboard/dashboard/report-counts-five-year-card/report-counts-five-year-card.component';\r\nimport { ReportsCountByStatusCardComponent } from './reports-dashboard/dashboard/reports-count-by-status-card/reports-count-by-status-card.component';\r\nimport { ReportCountByTypeCardComponent } from './reports-dashboard/dashboard/report-count-by-type-card/report-count-by-type-card.component';\r\nimport { ReportDownloadCountsComponent } from './reports-dashboard/custom-reports/report-download-counts/report-download-counts.component';\r\nimport { ReportVarianceDueDateComponent } from './reports-dashboard/custom-reports/report-variance-due-date/report-variance-due-date.component';\r\nimport { ReportSubmittedByPostComponent } from './reports-dashboard/custom-reports/report-submitted-by-post/report-submitted-by-post.component';\r\nimport { ViewHistoryComponent } from './report-management/view-history/view-history.component';\r\nimport { RptmetadataComponent } from './report-management/rptmetadata/rptmetadata.component';\r\nimport { ViewAttachmentComponent } from './report-management/view-attachment/view-attachment.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AdminComponent,\r\n ReportManagementComponent,\r\n ReportsComponent,\r\n UserManagementComponent,\r\n UsersListComponent,\r\n RptstatusmgmtComponent,\r\n LookupManagementComponent,\r\n CountryComponent,\r\n PostComponent,\r\n ProgramAreaComponent,\r\n DivisionComponent,\r\n ReportCategoryComponent,\r\n PostDetailComponent,\r\n CountryDetailComponent,\r\n ProgramAreaDetailComponent,\r\n DivisionDetailComponent,\r\n ReportcategoryDetailComponent,\r\n ReportsDashboardComponent,\r\n DashboardComponent,\r\n CustomReportsComponent,\r\n ReportsTotalCountCardComponent,\r\n ReportCountsFiveYearCardComponent,\r\n ReportsCountByStatusCardComponent,\r\n ReportCountByTypeCardComponent,\r\n ReportDownloadCountsComponent,\r\n ReportVarianceDueDateComponent,\r\n ReportSubmittedByPostComponent,\r\n ViewHistoryComponent,\r\n RptmetadataComponent,\r\n ViewAttachmentComponent\r\n ],\r\n imports: [CommonModule,\r\n AdminRoutingModule,\r\n RadioButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TableModule,\r\n TabViewModule,\r\n DropdownModule,\r\n ListboxModule,\r\n MultiSelectModule,\r\n DialogModule,\r\n TreeModule,\r\n TreeTableModule,\r\n ContextMenuModule,\r\n HighchartsChartModule,\r\n ConfirmDialogModule,\r\n CalendarModule,\r\n SelectButtonModule,\r\n ConfirmDialogModule,\r\n FileUploadModule],\r\n providers: [LookupService,\r\n LookupAdminService,\r\n RegistrationService,\r\n NotifierService,\r\n ReportService,\r\n AnalyticsService]\r\n})\r\nexport class AdminModule {}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport {Location} from '../../../../models/user.model';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-country-detail',\r\n templateUrl: './country-detail.component.html',\r\n styleUrls: ['./country-detail.component.css']\r\n})\r\nexport class CountryDetailComponent implements OnInit {\r\n regions: Location[] = [];\r\n @Output() showHideCountryDetailDlg = new EventEmitter();\r\n @Output() refreshDataSource=new EventEmitter();\r\n countryDetailForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder, \r\n private lookupService: LookupService,\r\n private lookupAdminService:LookupAdminService,\r\n private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.countryDetailForm = this.fb.group({\r\n Id: [''],\r\n countryName: ['', [Validators.required, Validators.pattern(/^[ A-Za-z0-9_'-]*$/)]],\r\n region: ['', Validators.required],\r\n isActive:[''],\r\n //lastUpdatedBy:[''],\r\n lastUpdatedDateTime:['']\r\n });\r\n }\r\n\r\n showCountryDetailDialog(location:Location) {\r\n // console.log(id);\r\n //this.lookupService.getRootLocations(this.authUser._user.userType.typeName).subscribe((data: Location[]) => {\r\n this.lookupService.getAllRegions$().subscribe((data: Location[]) => {\r\n this.regions = data;\r\n this.regions.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n\r\n if(location!=null)\r\n {\r\n //console.log(location);\r\n this.countryDetailForm.patchValue({\r\n Id:location.id,\r\n countryName:location.locationName,\r\n region:location.parentLocation,\r\n isActive :String(location.isActive),\r\n lastUpdatedDateTime : new Date(location.lastUpdatedDateTime).toLocaleString()\r\n });\r\n }\r\n else\r\n {\r\n this.countryDetailForm.reset();\r\n }\r\n }\r\n onCancelCountryDetail()\r\n {\r\n this.countryDetailForm.reset();\r\n this.showHideCountryDetailDlg.emit(false);\r\n this.refreshDataSource.emit(true);\r\n }\r\n onSaveCountryDetail()\r\n {\r\n if(this.countryDetailForm.valid)\r\n {\r\n let country= Object.assign(new Location(),this.countryDetailForm.value);\r\n country.parentId = country.region.id;\r\n country.locationName =country.countryName;\r\n this.lookupAdminService.saveCountry(country).subscribe((resp)=>{\r\n if(resp.ok)\r\n {\r\n this.notifier.notify('success', 'Country saved successfully');\r\n }\r\n\r\n },error=>{\r\n this.notifier.notify('error', 'Failed to save Country, contact tech support');\r\n });\r\n \r\n //this.refreshDataSource.emit(true);\r\n\r\n }\r\n }\r\n \r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../services/lookups/lookupadmin.service';\r\nimport { Location } from '../../../models/user.model';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { CountryDetailComponent } from './country-detail/country-detail.component';\r\n\r\n@Component({\r\n selector: 'app-country',\r\n templateUrl: './country.component.html',\r\n styleUrls: ['./country.component.css']\r\n})\r\nexport class CountryComponent implements OnInit {\r\n countries: Location[];\r\n locationNames:SelectItem[];\r\n parentLocationNames:SelectItem[];\r\n isActiveList:SelectItem[];\r\n displayCountryDetailDlg:boolean;\r\n @ViewChild(CountryDetailComponent) countryDetail: CountryDetailComponent;\r\n constructor(private lookupService: LookupService, private lookupAdminService: LookupAdminService) {}\r\n\r\n ngOnInit() {\r\n this.LoadAllCountries();\r\n \r\n }\r\n\r\n private LoadAllCountries() {\r\n this.lookupAdminService.getAllCountries$().subscribe(data => {\r\n this.countries = data;\r\n this.countries.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n this.locationNames = this.lookupAdminService.GetUniqueValues(this.countries.map(p=>p.locationName));\r\n this.parentLocationNames = this.lookupAdminService.GetUniqueValues(this.countries.map(p=>p.parentLocationName));\r\n var isActives = new Array();\r\n isActives.push({ label: \"Yes\", value:true});\r\n isActives.push({ label: \"No\", value:false});\r\n this.isActiveList = isActives;\r\n });\r\n }\r\n \r\n ShowHideCountryDetailDialog(isDisplay:boolean)\r\n {\r\n this.displayCountryDetailDlg = isDisplay;\r\n //TODO: Add behaviour subject in the services to manage refresh of the table.\r\n //this.LoadAllCountries();\r\n \r\n }\r\n showCountryDetailDialog(location:any)\r\n {\r\n this.countryDetail.showCountryDetailDialog(location);\r\n this.ShowHideCountryDetailDialog(true);\r\n }\r\n RefreshDataSource(isReload:boolean)\r\n {\r\n if(isReload)\r\n this.LoadAllCountries();\r\n }\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport {Location} from '../../../../models/user.model';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-division-detail',\r\n templateUrl: './division-detail.component.html',\r\n styleUrls: ['./division-detail.component.css']\r\n})\r\nexport class DivisionDetailComponent implements OnInit {\r\n programAreas: Location[] = [];\r\n @Output() showHideDivisionDetailDlg = new EventEmitter();\r\n @Output() refreshDataSource=new EventEmitter();\r\n divisionDetailForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder, \r\n private lookupService: LookupService,\r\n private lookupAdminService:LookupAdminService,\r\n private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.divisionDetailForm = this.fb.group({\r\n Id: [''],\r\n divisionName: ['', [Validators.required, Validators.pattern(/^[ A-Za-z0-9_'-]*$/)]],\r\n programArea: ['', Validators.required],\r\n isActive:['',Validators.required],\r\n //lastUpdatedBy:[''],\r\n lastUpdatedDateTime:['']\r\n });\r\n }\r\n\r\n showDivisionDetailDialog(location: Location) {\r\n // console.log(id);\r\n //this.lookupService.getRootLocations(this.authUser._user.userType.typeName).subscribe((data: Location[]) => {\r\n this.lookupService.getAllProgramAreas$().subscribe((data: Location[]) => {\r\n this.programAreas = data;\r\n this.programAreas.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n \r\n if(location!=null)\r\n {\r\n //console.log(location);\r\n this.divisionDetailForm.patchValue({\r\n Id:location.id,\r\n divisionName:location.locationName,\r\n programArea:location.parentLocation,\r\n isActive :String(location.isActive),\r\n lastUpdatedDateTime : new Date(location.lastUpdatedDateTime).toLocaleString()\r\n });\r\n }\r\n else\r\n {\r\n this.divisionDetailForm.reset();\r\n }\r\n\r\n }\r\n\r\n onCancelDivisionDetail()\r\n {\r\n this.divisionDetailForm.reset();\r\n this.showHideDivisionDetailDlg.emit(false);\r\n this.refreshDataSource.emit(true);\r\n\r\n }\r\n onSaveDivisionDetail()\r\n {\r\n if(this.divisionDetailForm.valid)\r\n {\r\n let division = Object.assign(new Location(),this.divisionDetailForm.value);\r\n division.parentId = division.programArea.id;\r\n division.locationName = division.divisionName;\r\n this.lookupAdminService.saveDivision(division).subscribe((resp)=>{\r\n if(resp.ok)\r\n {\r\n this.notifier.notify('success', 'Division saved successfully');\r\n }\r\n\r\n },error=>{\r\n this.notifier.notify('error', 'Failed to save Division, contact tech support');\r\n });\r\n \r\n \r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../services/lookups/lookupadmin.service';\r\nimport { Location } from '../../../models/user.model';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DivisionDetailComponent } from './division-detail/division-detail.component';\r\n\r\n@Component({\r\n selector: 'app-division',\r\n templateUrl: './division.component.html',\r\n styleUrls: ['./division.component.css']\r\n})\r\nexport class DivisionComponent implements OnInit {\r\n divisions: Location[];\r\n locationNames:SelectItem[];\r\n parentLocationNames:SelectItem[];\r\n isActiveList:SelectItem[];\r\n displayDivisionDetailDlg:boolean;\r\n @ViewChild(DivisionDetailComponent) divisionDetail: DivisionDetailComponent;\r\n constructor(private lookupService: LookupService, private lookupAdminService: LookupAdminService) {}\r\n\r\n ngOnInit() {\r\n this.LoadAllDivisions();\r\n \r\n }\r\n\r\n private LoadAllDivisions() {\r\n this.lookupAdminService.getAllDivisions$().subscribe(data => {\r\n this.divisions = data;\r\n this.divisions.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n this.locationNames = this.lookupAdminService.GetUniqueValues(this.divisions.map(p=>p.locationName));\r\n this.parentLocationNames = this.lookupAdminService.GetUniqueValues(this.divisions.map(p=>p.parentLocationName));\r\n var isActives = new Array();\r\n isActives.push({ label: \"Yes\", value:true});\r\n isActives.push({ label: \"No\", value:false});\r\n this.isActiveList = isActives;\r\n });\r\n }\r\n \r\n ShowHideDivisionDetailDialog(isDisplay:boolean)\r\n {\r\n this.displayDivisionDetailDlg = isDisplay;\r\n //TODO: Add behaviour subject in the services to manage refresh of the table.\r\n //this.LoadAllDivisions();\r\n \r\n }\r\n showDivisionDetailDialog(location:any)\r\n {\r\n this.divisionDetail.showDivisionDetailDialog(location);\r\n this.ShowHideDivisionDetailDialog(true);\r\n }\r\n RefreshDataSource(isReload:boolean)\r\n {\r\n if(isReload)\r\n this.LoadAllDivisions();\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-lookup-management',\r\n templateUrl: './lookup-management.component.html',\r\n styleUrls: ['./lookup-management.component.css']\r\n})\r\nexport class LookupManagementComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport {Location} from '../../../../models/user.model';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-post-detail',\r\n templateUrl: './post-detail.component.html',\r\n styleUrls: ['./post-detail.component.css']\r\n})\r\nexport class PostDetailComponent implements OnInit {\r\n countries: Location[] = [];\r\n @Output() showHidePostDetailDlg = new EventEmitter();\r\n @Output() refreshDataSource=new EventEmitter();\r\n postDetailForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder, \r\n private lookupService: LookupService,\r\n private lookupAdminService:LookupAdminService,\r\n private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.postDetailForm = this.fb.group({\r\n Id: [''],\r\n postName: ['', [Validators.required, Validators.pattern(/^[ A-Za-z0-9_'-]*$/)]],\r\n country: ['', Validators.required],\r\n isActive:['',Validators.required],\r\n //lastUpdatedBy:[''],\r\n lastUpdatedDateTime:['']\r\n });\r\n }\r\n\r\n showPostDetailDialog(location: Location) {\r\n // console.log(id);\r\n //this.lookupService.getRootLocations(this.authUser._user.userType.typeName).subscribe((data: Location[]) => {\r\n this.lookupService.getAllCountries$().subscribe((data: Location[]) => {\r\n this.countries = data;\r\n this.countries.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n \r\n if(location!=null)\r\n {\r\n //console.log(location);\r\n this.postDetailForm.patchValue({\r\n Id:location.id,\r\n postName:location.locationName,\r\n country:location.parentLocation,\r\n isActive :String(location.isActive),\r\n lastUpdatedDateTime : new Date(location.lastUpdatedDateTime).toLocaleString()\r\n });\r\n }\r\n else\r\n {\r\n this.postDetailForm.reset();\r\n }\r\n\r\n }\r\n\r\n onCancelPostDetail()\r\n {\r\n this.postDetailForm.reset();\r\n this.showHidePostDetailDlg.emit(false);\r\n this.refreshDataSource.emit(true);\r\n }\r\n onSavePostDetail()\r\n { \r\n if(this.postDetailForm.valid)\r\n {\r\n let post= Object.assign(new Location(),this.postDetailForm.value);\r\n post.parentId = post.country.id;\r\n post.locationName =post.postName;\r\n this.lookupAdminService.savePost(post).subscribe((resp)=>{\r\n if(resp.ok)\r\n {\r\n this.notifier.notify('success', 'Post saved successfully');\r\n }\r\n\r\n },error=>{\r\n this.notifier.notify('error', 'Failed to save Post, contact tech support');\r\n });\r\n \r\n // this.refreshDataSource.emit(true);\r\n\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../services/lookups/lookupadmin.service';\r\nimport { Location } from '../../../models/user.model';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { PostDetailComponent } from './post-detail/post-detail.component';\r\n\r\n@Component({\r\n selector: 'app-post',\r\n templateUrl: './post.component.html',\r\n styleUrls: ['./post.component.css']\r\n})\r\nexport class PostComponent implements OnInit {\r\n posts: Location[];\r\n locationNames:SelectItem[];\r\n parentLocationNames:SelectItem[];\r\n isActiveList:SelectItem[];\r\n displayPostDetailDlg:boolean;\r\n @ViewChild(PostDetailComponent) postDetail: PostDetailComponent;\r\n constructor(private lookupService: LookupService, private lookupAdminService: LookupAdminService) {}\r\n\r\n ngOnInit() {\r\n this.LoadAllPosts();\r\n \r\n }\r\n\r\n private LoadAllPosts() {\r\n this.lookupAdminService.getAllPosts$().subscribe(data => {\r\n this.posts = data;\r\n this.posts.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n this.locationNames = this.lookupAdminService.GetUniqueValues(this.posts.map(p=>p.locationName));\r\n this.parentLocationNames = this.lookupAdminService.GetUniqueValues(this.posts.map(p=>p.parentLocationName));\r\n var isActives = new Array();\r\n isActives.push({ label: \"Yes\", value:true});\r\n isActives.push({ label: \"No\", value:false});\r\n this.isActiveList = isActives;\r\n });\r\n }\r\n \r\n ShowHidePostDetailDialog(isDisplay:boolean)\r\n {\r\n this.displayPostDetailDlg = isDisplay;\r\n //TODO: Add behaviour subject in the services to manage refresh of the table.\r\n //this.LoadAllPosts();\r\n \r\n }\r\n showPostDetailDialog(location:any)\r\n {\r\n this.postDetail.showPostDetailDialog(location);\r\n this.ShowHidePostDetailDialog(true);\r\n }\r\n RefreshDataSource(isReload:boolean)\r\n {\r\n if(isReload)\r\n this.LoadAllPosts();\r\n }\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport {Location} from '../../../../models/user.model';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-programarea-detail',\r\n templateUrl: './programarea-detail.component.html',\r\n styleUrls: ['./programarea-detail.component.css']\r\n})\r\nexport class ProgramAreaDetailComponent implements OnInit {\r\n programareas: Location[] = [];\r\n @Output() showHideProgramAreaDetailDlg = new EventEmitter();\r\n @Output() refreshDataSource=new EventEmitter();\r\n programAreaDetailForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder,\r\n private lookupService: LookupService,\r\n private lookupAdminService:LookupAdminService,\r\n private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.programAreaDetailForm = this.fb.group({\r\n Id: [''],\r\n programAreaName: ['', [Validators.required, Validators.pattern(/^[ A-Za-z0-9_'-]*$/)]],\r\n //hq: [2],\r\n isActive:['',Validators.required],\r\n //lastUpdatedBy:[''],\r\n lastUpdatedDateTime:['']\r\n });\r\n }\r\n\r\n showProgramAreaDetailDialog(location: Location) {\r\n // console.log(id);\r\n //this.lookupService.getRootLocations(this.authUser._user.userType.typeName).subscribe((data: Location[]) => {\r\n this.lookupService.getAllProgramAreas$().subscribe((data: Location[]) => {\r\n this.programareas = data;\r\n this.programareas.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n\r\n if(location!=null)\r\n {\r\n //console.log(location);\r\n this.programAreaDetailForm.patchValue({\r\n Id:location.id,\r\n programAreaName:location.locationName,\r\n //country:location.parentLocation,\r\n isActive :String(location.isActive),\r\n lastUpdatedDateTime : new Date(location.lastUpdatedDateTime).toLocaleString()\r\n });\r\n }\r\n else\r\n {\r\n this.programAreaDetailForm.reset();\r\n }\r\n\r\n }\r\n\r\n onCancelProgramAreaDetail()\r\n {\r\n this.programAreaDetailForm.reset();\r\n this.showHideProgramAreaDetailDlg.emit(false);\r\n this.refreshDataSource.emit(true);\r\n }\r\n onSaveProgramAreaDetail()\r\n {\r\n if(this.programAreaDetailForm.valid)\r\n {\r\n let programArea= Object.assign(new Location(),this.programAreaDetailForm.value);\r\n programArea.parentId = 2; // programArea.country.id;\r\n programArea.locationName = programArea.programAreaName;\r\n this.lookupAdminService.saveProgramArea(programArea).subscribe((resp)=>{\r\n if(resp.ok)\r\n {\r\n this.notifier.notify('success', 'Program Area saved successfully');\r\n }\r\n\r\n },error=>{\r\n this.notifier.notify('error', 'Failed to save Program Area, contact tech support');\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../services/lookups/lookupadmin.service';\r\nimport { Location } from '../../../models/user.model';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { ProgramAreaDetailComponent } from './programarea-detail/programarea-detail.component';\r\n\r\n@Component({\r\n selector: 'app-programarea',\r\n templateUrl: './programarea.component.html',\r\n styleUrls: ['./programarea.component.css']\r\n})\r\nexport class ProgramAreaComponent implements OnInit {\r\n programareas: Location[];\r\n locationNames:SelectItem[];\r\n parentLocationNames:SelectItem[];\r\n isActiveList:SelectItem[];\r\n displayProgramAreaDetailDlg:boolean;\r\n @ViewChild(ProgramAreaDetailComponent) programAreaDetail: ProgramAreaDetailComponent;\r\n constructor(private lookupService: LookupService, private lookupAdminService: LookupAdminService) {}\r\n\r\n ngOnInit() {\r\n this.LoadAllProgramAreas();\r\n \r\n }\r\n\r\n private LoadAllProgramAreas() {\r\n this.lookupAdminService.getAllProgramAreas$().subscribe(data => {\r\n this.programareas = data;\r\n this.programareas.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n this.locationNames = this.lookupAdminService.GetUniqueValues(this.programareas.map(p=>p.locationName));\r\n this.parentLocationNames = this.lookupAdminService.GetUniqueValues(this.programareas.map(p=>p.parentLocationName));\r\n var isActives = new Array();\r\n isActives.push({ label: \"Yes\", value:true});\r\n isActives.push({ label: \"No\", value:false});\r\n this.isActiveList = isActives;\r\n });\r\n }\r\n \r\n ShowHideProgramAreaDetailDialog(isDisplay:boolean)\r\n {\r\n this.displayProgramAreaDetailDlg = isDisplay;\r\n //TODO: Add behaviour subject in the services to manage refresh of the table.\r\n //this.LoadAllPosts();\r\n \r\n }\r\n showProgramAreaDetailDialog(location:any)\r\n {\r\n this.programAreaDetail.showProgramAreaDetailDialog(location);\r\n this.ShowHideProgramAreaDetailDialog(true);\r\n }\r\n RefreshDataSource(isReload:boolean)\r\n {\r\n if(isReload)\r\n this.LoadAllProgramAreas();\r\n }\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport { Location } from '../../../../models/user.model';\r\nimport { ReportAutoPublishPolicy, ReportCategory } from '../../../../models/report.model';\r\n//import { elementStart } from '@angular/core/src/render3/instructions';\r\n\r\n@Component({\r\n selector: 'app-reportcategory-detail',\r\n templateUrl: './reportcategory-detail.component.html',\r\n styleUrls: ['./reportcategory-detail.component.css']\r\n})\r\nexport class ReportcategoryDetailComponent implements OnInit {\r\n autoPublishPolicies:ReportAutoPublishPolicy[];\r\n programAreas: Location[] = [];\r\n parentReportCategories:ReportCategory[];\r\n controlDisable:boolean=false;\r\n @Output() showHideReportCategoryDetailDlg = new EventEmitter();\r\n @Output() refreshDataSource=new EventEmitter();\r\n reportCategoryDetailForm: FormGroup;\r\n constructor(private fb: FormBuilder, \r\n private lookupService: LookupService,\r\n private lookupAdminService:LookupAdminService,\r\n private notifier: NotifierService) { }\r\n\r\n ngOnInit() {\r\n this.reportCategoryDetailForm = this.fb.group({\r\n Id: [''],\r\n categoryName: ['', [Validators.required, Validators.pattern(/^[ A-Za-z0-9]*$/)]],\r\n programArea: ['', Validators.required],\r\n parentCategory:['',Validators.required],\r\n autoPublishPolicy:['', Validators.required],\r\n isActive:['',Validators.required],\r\n //lastUpdatedBy:[''],\r\n lastUpdatedDateTime:['']\r\n });\r\n this.LoadLookupValues();\r\n\r\n \r\n }\r\n\r\n private LoadLookupValues()\r\n {\r\n this.lookupService.getAllActiveProgramAreas$().subscribe(data=>{\r\n this.programAreas =data;\r\n\r\n });\r\n\r\n this.lookupService.getAllActiveReportAutoPublishPolicies$().subscribe(data=>{\r\n this.autoPublishPolicies =data;\r\n });\r\n\r\n this.lookupService.getAllActiveReportCategories$().subscribe(data=>{\r\n this.parentReportCategories = data;\r\n });\r\n }\r\n\r\n onChangeCategory(selectedCategory:ReportCategory)\r\n {\r\n var area = this.programAreas.filter(x=>x.id ===selectedCategory.programAreaId);\r\n if(area.length >0)\r\n {\r\n this.reportCategoryDetailForm.patchValue({programArea:area[0]});\r\n this.controlDisable =true;\r\n }\r\n else{\r\n this.reportCategoryDetailForm.controls[\"programArea\"].reset();\r\n this.controlDisable=false;\r\n }\r\n }\r\n showReportCategoryDetail(reportCategoryId: number,isNew:boolean)\r\n {\r\n \r\n this.reportCategoryDetailForm.reset();\r\n if(isNew)\r\n {\r\n this.createNewReportCategory(reportCategoryId);\r\n }\r\n else{\r\n this.updateReportCategory(reportCategoryId);\r\n }\r\n\r\n\r\n }\r\n\r\n private createNewReportCategory(parentCategoryId:number)\r\n {\r\n var parentCategory = this.parentReportCategories.filter(x=>x.id === parentCategoryId);\r\n if(parentCategory.length >0)\r\n {\r\n this.reportCategoryDetailForm.patchValue({parentCategory:parentCategory[0],Id:String(0)});\r\n this.onChangeCategory(parentCategory[0]);\r\n \r\n }\r\n \r\n }\r\n\r\n private updateReportCategory(reportCategoryId:number)\r\n {\r\n\r\n this.lookupService.getReportCategoryById(reportCategoryId).subscribe(data=>{\r\n var reportCategory = data;\r\n if(reportCategory)\r\n {\r\n this.reportCategoryDetailForm.patchValue({Id:reportCategory.id,\r\n categoryName:reportCategory.categoryName,\r\n isActive:String(reportCategory.isActive),\r\n lastUpdatedDateTime:new Date(reportCategory.lastUpdatedDatetime).toLocaleString() });\r\n var parentCategory = this.parentReportCategories.find(x=>x.id === reportCategory.parentCategoryId);\r\n var policy =this.autoPublishPolicies.find(x=>x.id === reportCategory.autoPublishPolicyId);\r\n var programArea = this.programAreas.find(x=>x.id === reportCategory.programAreaId);\r\n this.reportCategoryDetailForm.patchValue({autoPublishPolicy:policy,parentCategory:parentCategory,programArea:programArea});\r\n\r\n }\r\n\r\n });\r\n \r\n }\r\n\r\n onCancelReportCategoryDetail()\r\n {\r\n this.reportCategoryDetailForm.reset();\r\n this.showHideReportCategoryDetailDlg.emit(false);\r\n this.refreshDataSource.emit(true);\r\n }\r\n\r\n onSaveReportCategoryDetail()\r\n {\r\n if(this.reportCategoryDetailForm.valid)\r\n {\r\n var reportCategory = Object.assign(new ReportCategory(),this.reportCategoryDetailForm.value);\r\n reportCategory.programAreaId = reportCategory.programArea.id;\r\n reportCategory.autoPublishPolicyId =reportCategory.autoPublishPolicy.id;\r\n reportCategory.parentCategoryId = reportCategory.parentCategory.id;\r\n //console.log(reportCategory);\r\n\r\n this.lookupAdminService.saveReportCategory$(reportCategory).subscribe(resp=>{\r\n if(resp.ok)\r\n {\r\n this.notifier.notify('success', 'Report Category saved successfully');\r\n this.LoadLookupValues();\r\n }\r\n\r\n },error=>{\r\n this.notifier.notify('error', 'Failed to save Report Category, contact tech support');\r\n });\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 { ElementSchemaRegistry } from '@angular/compiler';\r\nimport { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MenuItem, TreeNode } from 'primeng/api';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { ReportcategoryDetailComponent } from './reportcategory-detail/reportcategory-detail.component';\r\n\r\n@Component({\r\n selector: 'app-reportcategory',\r\n templateUrl: './reportcategory.component.html',\r\n styleUrls: ['./reportcategory.component.css']\r\n})\r\nexport class ReportCategoryComponent implements OnInit {\r\n reportCategories: TreeNode[];\r\n items: MenuItem[];\r\n selectedNode: TreeNode;\r\n mdlDlgTitle:string;\r\n displayReportCategoryDlg:boolean;\r\n loading:boolean=false;\r\n @ViewChild(ReportcategoryDetailComponent) reportCategoryDetail :ReportcategoryDetailComponent;\r\n\r\n constructor(private lookupService: LookupService) { }\r\n\r\n ngOnInit() {\r\n this.items = [\r\n {label: 'Create Sub Category', icon: 'fa fa-plus-square', command: (event) => this.showReportCategoryDetailDlg(\"Create Sub Category\",true)},\r\n {label: 'Modify Category', icon: 'fa fa-pencil-square', command: (event) => this.showReportCategoryDetailDlg(\"Modify Category\",false)}\r\n ];\r\n this.LoadReportCategoryHierarchy();\r\n }\r\n\r\n private LoadReportCategoryHierarchy() {\r\n this.loading =true;\r\n this.lookupService.getReportCategoryHierarchy$()\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(data => {\r\n //console.log(Array.of(data));\r\n\r\n this.reportCategories = Array.of(data);\r\n this.reportCategories[0].expanded = true;\r\n this.reportCategories[0].children.sort((a, b) => {\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n });\r\n }\r\n\r\n private showReportCategoryDetailDlg(title:string,isNew:boolean)\r\n {\r\n this.displayReportCategoryDlg = true;\r\n this.mdlDlgTitle =title;\r\n this.reportCategoryDetail.showReportCategoryDetail(parseInt(this.selectedNode.data),isNew);\r\n }\r\n \r\n ShowHideReportCategoryDetailDialog(isDisplay:boolean)\r\n {\r\n this.displayReportCategoryDlg = isDisplay;\r\n //TODO: Add behaviour subject in the services to manage refresh of the table.\r\n //this.LoadAllPosts();\r\n \r\n }\r\n RefreshDataSource(isReload:boolean)\r\n {\r\n if(isReload)\r\n this.LoadReportCategoryHierarchy();\r\n }\r\n onTreeContextMenuSelect(node, contextMenu) {\r\n if(node.data ==\"1\")\r\n {\r\n this.items = [\r\n {label: 'Create Sub Category', icon: 'fa fa-plus-square', command: (event) => this.showReportCategoryDetailDlg(\"Create Sub Category\",true)}];\r\n \r\n }\r\n else\r\n {\r\n this.items = [\r\n {label: 'Create Sub Category', icon: 'fa fa-plus-square', command: (event) => this.showReportCategoryDetailDlg(\"Create Sub Category\",true)},\r\n {label: 'Modify Category', icon: 'fa fa-pencil-square', command: (event) => this.showReportCategoryDetailDlg(\"Modify Category\",false)}];\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { ReportLock } from '../../models/report-lock.model';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-report-management',\r\n templateUrl: './report-management.component.html',\r\n styleUrls: ['./report-management.component.css']\r\n})\r\nexport class ReportManagementComponent implements OnInit {\r\n lockedReports: ReportLock[];\r\n\r\n constructor(private _reportDashboardService: ReportdashboardService, private _notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.getLockedReports();\r\n }\r\n\r\n getLockedReports() {\r\n this._reportDashboardService.getLockedReports().subscribe(reports => {\r\n //console.log(reports);\r\n this.lockedReports = reports;\r\n });\r\n }\r\n\r\n unlockReport(report: ReportLock) {\r\n this._reportDashboardService.removeReportLock(report.reportId, report.token).subscribe(response => {\r\n //console.log('unlocking report');\r\n if (response.ok) {\r\n this.getLockedReports();\r\n this._notifier.notify('success', 'Successfully unlocked report');\r\n }\r\n });\r\n }\r\n\r\n\r\n ///\r\n /// TODO: Additional Admin functionality for reports ///\r\n ///\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ReportLock } from '../../../models/report-lock.model';\r\n\r\n@Component({\r\n selector: 'app-reports',\r\n templateUrl: './reports.component.html',\r\n styleUrls: ['./reports.component.css']\r\n})\r\nexport class ReportsComponent implements OnInit {\r\n @Input() lockedReports: ReportLock[];\r\n @Output() unlockReport = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n onUnlockReport(report: ReportLock) {\r\n //console.log(report);\r\n this.unlockReport.emit(report);\r\n }\r\n}\r\n","import { Component, OnInit, Output,Input,EventEmitter } from '@angular/core';\r\nimport { ReportdashboardService } from '../../../services/reportdashboard.service';\r\nimport { Observable } from 'rxjs';\r\nimport { FormsModule, NgForm } from '@angular/forms';\r\nimport { ReportMetadata, VoluntaryReportMetadata ,Approver, ReportSchedule} from '../../../models/report.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AuthUserService } from '../../../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { User } from '../../../models/user.model';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-rptmetadata',\r\n templateUrl: './rptmetadata.component.html',\r\n styleUrls: ['./rptmetadata.component.css']\r\n})\r\nexport class RptmetadataComponent implements OnInit\r\n{\r\n selectedApprover: User;\r\n selectedApproverName: string = '';\r\n currentUser: User;\r\n countryName: string = '';\r\n postName: string = '';\r\n categoryName: string = '';\r\n reportNumber: string = '';\r\n reportName: string = '';\r\n dueDate: Date;\r\n region: string = '';\r\n reportType: string = '';\r\n reportState: string = '';\r\n reportHighlights: string = '';\r\n preparedBy: string = '';\r\n\r\n @Output() showHideMetadata= new EventEmitter();\r\n @Input() reportId:any;\r\n constructor(private reportService: ReportdashboardService,\r\n private lookupService:LookupService,\r\n private authUserService:AuthUserService,\r\n private authUser: AuthUserService,\r\n private notifier: NotifierService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n\r\n }\r\n\r\n CancelReportMetadataDialog()\r\n {\r\n this.showHideMetadata.emit(false);\r\n }\r\n\r\n showMetadataDialog(report: any)\r\n {\r\n\r\n if(report.reportType.startsWith(\"Voluntary\"))\r\n {\r\n this.reportService.getReportScheduleById(report.id).subscribe((metadata:VoluntaryReportMetadata)=>{\r\n this.reportNumber = metadata.reportNumber;\r\n this.reportName = metadata.reportName;\r\n this.dueDate = metadata.reportDate;\r\n this.region = metadata.region;\r\n this.reportType = metadata.reportType;\r\n this.reportState = metadata.reportState;\r\n this.reportHighlights = metadata.reportHighlights;\r\n this.preparedBy = metadata.preparedBy;\r\n this.selectedApproverName = metadata.approvedBy.fullName;\r\n this.categoryName = \"\";\r\n for (let i=0; i {\r\n this.reportNumber = metadata.reportNumber;\r\n this.reportName = metadata.reportName;\r\n this.dueDate = metadata.dueDate;\r\n this.region = metadata.region;\r\n this.reportType = metadata.reportType;\r\n this.reportState = metadata.reportState;\r\n this.reportHighlights = metadata.highlights;\r\n this.preparedBy = metadata.preparedBy;\r\n this.categoryName = metadata.category;\r\n this.countryName = metadata.country;\r\n this.postName = metadata.fasPost;\r\n\r\n this.lookupService.getAllActiveUsers$().subscribe((data)=>{\r\n this.selectedApprover = data.map(u=>u).filter(u=> u.id=== metadata.approverId)[0];\r\n\r\n if (this.selectedApprover != null)\r\n this.selectedApproverName = this.selectedApprover.fullName;\r\n\r\n });\r\n\r\n });\r\n }\r\n this.showHideMetadata.emit(true);\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { ReportMetadata, ReportSchedule, ReportState, ReportYear, ReportCategory, Report, ReportStates, ReportAuditRecord } from '../../../models/report.model';\r\nimport { ReportService } from '../../../services/report.service';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ConfirmationService, SelectItem } from 'primeng/api';\r\nimport { ViewHistoryComponent } from '../view-history/view-history.component';\r\nimport { RptmetadataComponent } from '../rptmetadata/rptmetadata.component';\r\nimport { ReportdashboardService } from '../../../services/reportdashboard.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ViewAttachmentComponent } from '../view-attachment/view-attachment.component';\r\n\r\n@Component({\r\n selector: 'app-rptstatusmgmt',\r\n templateUrl: './rptstatusmgmt.component.html',\r\n styleUrls: ['./rptstatusmgmt.component.css'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class RptstatusmgmtComponent implements OnInit {\r\n @ViewChild(ViewHistoryComponent) viewHistory: ViewHistoryComponent;\r\n ReportYears: ReportYear[];\r\n @Input() ReportYear: ReportYear;\r\n displayStatusDlg: boolean;\r\n displayMetadata = false;\r\n reportData: Report[];\r\n allReportStates: ReportState[];\r\n reportNames: SelectItem[];\r\n countries: SelectItem[];\r\n fasPosts: SelectItem[];\r\n reportNumbers: SelectItem[];\r\n distributionTypes: SelectItem[];\r\n reportStates: SelectItem[];\r\n reportTypes: SelectItem[];\r\n lstReportStates: SelectItem[];\r\n selectedState: SelectItem;\r\n reportId: any;\r\n displayHistoryDlg: boolean = false;\r\n publishedReportMetadata: ReportMetadata;\r\n showPublishedReportClick: boolean = false;\r\n reportScheduleforStatus: ReportSchedule;\r\n displayAttachmentDlg: boolean = false;\r\n\r\n @ViewChild(RptmetadataComponent) RptMetadata: RptmetadataComponent;\r\n @ViewChild(ViewAttachmentComponent) viewAttachment: ViewAttachmentComponent;\r\n constructor(private reportService: ReportService,\r\n private reportDashboardService: ReportdashboardService,\r\n private lookupService: LookupService,\r\n private notifier: NotifierService,\r\n private confirmationService: ConfirmationService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.getReportYears();\r\n this.loadReportStates(-1); //include all states\r\n this.loadReportsTable(this.ReportYear.year);\r\n this.displayAttachmentDlg = false;\r\n\r\n }\r\n onYearSelected(value) {\r\n\r\n\r\n this.loadReportsTable(value.year);\r\n\r\n }\r\n\r\n loadReportsTable(year: any) {\r\n this.reportService.getAllReportsBasedOnYear$(year).subscribe((data: Report[]) => {\r\n //console.log(data);\r\n\r\n this.reportData = data;\r\n this.LoadTableFilters(data);\r\n\r\n });\r\n }\r\n\r\n getReportYears() {\r\n this.ReportYear = new ReportYear();\r\n this.ReportYear.year = new Date().getFullYear();\r\n\r\n var Years = new Array();\r\n Years = [\r\n { id: 1, year: this.ReportYear.year },\r\n { id: 2, year: this.ReportYear.year - 1 },\r\n { id: 3, year: this.ReportYear.year - 2 }\r\n ];\r\n this.ReportYears = Years;\r\n }\r\n\r\n\r\n LoadTableFilters(reportData: Report[]) {\r\n this.reportNumbers = this.GetUniqueValues(reportData.map(r => r.reportNumber));\r\n this.reportNames = this.GetUniqueValues(reportData.map(r => r.reportName));\r\n this.countries = this.GetUniqueValues(reportData.map(r => r.country));\r\n this.fasPosts = this.GetUniqueValues(reportData.map(r => r.fasPost));\r\n this.distributionTypes = this.GetUniqueValues(reportData.map(r => r.distribution));\r\n this.reportStates = this.GetUniqueValues(reportData.map(r => r.reportState));\r\n this.reportTypes = this.GetUniqueValues(reportData.map(r => r.reportType));\r\n }\r\n GetUniqueValues(vals: any[]): SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n loadReportStates(reportStateId: number) {\r\n this.lstReportStates = new Array();\r\n this.lookupService.getReportStates$().subscribe((data: ReportState[]) => {\r\n data = data.filter(x => x.id !== ReportStates.NotStarted && x.id !== ReportStates.Hold && x.id !== ReportStates.Validated);\r\n this.allReportStates = data;\r\n data.forEach(element => {\r\n if (element.id !== reportStateId)\r\n this.lstReportStates.push({ label: element.stateName, value: element.id });\r\n });\r\n\r\n });\r\n }\r\n\r\n onClickChangeStatus(report) {\r\n this.displayStatusDlg = true;\r\n this.loadReportStates(report.reportStateId);\r\n this.reportId = report.id;\r\n }\r\n\r\n onClickViewHistory(report) {\r\n this.viewHistory.getReportHistory(report.id);\r\n this.displayHistoryDlg = true;\r\n }\r\n\r\n PublishImmediately(report) {\r\n this.reportDashboardService.getReportScheduleById(report.id).subscribe((data: ReportMetadata)=>{\r\n this.publishedReportMetadata = data;\r\n if(this.publishedReportMetadata.isReportPublished)\r\n {\r\n this.showPublishedReportClick = true;\r\n this.notifier.notify('error', 'Report is Published. Please refresh the page.');\r\n }\r\n else{\r\n this.ShowConfirmationDlg(\r\n report.id,\r\n 'Are you sure you want to Publish Immediately?',\r\n 'PublishImmediately',\r\n 'Report is send to Publish Immediately'\r\n );\r\n }\r\n });\r\n }\r\n\r\n OnshowPublishedReportOkButton()\r\n {\r\n this.showPublishedReportClick = false;\r\n }\r\n\r\n ShowConfirmationDlg(id: any, dlgMessage: string, action: string, successMsg: string) {\r\n this.confirmationService.confirm({\r\n message: dlgMessage,\r\n header: 'Confirmation',\r\n icon: 'fa fa-exclamation-circle',\r\n key: 'Confirm',\r\n accept: () => {\r\n this.reportDashboardService.performAction$(id, action).subscribe(\r\n resp => {\r\n if (resp.ok) {\r\n //this.LoadReportSchedules();\r\n // this.refreshDataSource.emit(true);\r\n this.loadReportsTable(this.ReportYear.year);\r\n this.notifier.notify('success', successMsg);\r\n }\r\n // else {\r\n // this.notifier.notify('error', 'Report is already Published. Please refresh the page.');\r\n // }\r\n },\r\n err => {\r\n console.log(err);\r\n this.notifier.notify('error', 'Something went wrong, Please contact Administrator');\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n onClickCorrection(report) {\r\n this.ShowConfirmationDlg(\r\n report.id,\r\n 'Are you sure you want to Request for correction?',\r\n 'RequestCorrection',\r\n 'Request for report correction has been sent'\r\n );\r\n\r\n // this.confirmationService.confirm({\r\n // message: 'Are you sure you want to Request for correction?',\r\n // header: 'Confirmation',\r\n // icon: 'fa fa-exclamation-circle',\r\n // accept: () => {\r\n // this.reportService.updateReportState$(report.id, Number(ReportStates.RequestedForCorrection)).subscribe((resp) => { //set stateID to request for correction\r\n // if (resp.ok) {\r\n // this.loadReportsTable(this.ReportYear.year);\r\n // this.notifier.notify(\"success\", \"Request for report correction has been sent\");\r\n // }\r\n // else {\r\n // this.notifier.notify(\"error\", \"Failed to request for report correction\");\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n // });\r\n }\r\n\r\n ShowAttachmentsDialog(id: any, reportState: string) {\r\n this.viewAttachment.ShowAttachmentsDialog(id, reportState);\r\n this.displayAttachmentDlg = true;\r\n }\r\n\r\n onClickReportInformation(report) {\r\n this.RptMetadata.showMetadataDialog(report);\r\n }\r\n\r\n onReportStatusChange() {\r\n //console.log(this.reportId +\",\" +this.selectedState);\r\n this.reportService.updateReportState$(this.reportId, this.selectedState).subscribe((resp) => {\r\n if (resp.ok) {\r\n this.notifier.notify(\"success\", \"Report State has been changed successfully\");\r\n this.reportData = this.reportData.filter(x => x.id !== this.reportId);\r\n // this.reportData.forEach(element => {\r\n // if(element.id === this.reportId)\r\n // {\r\n // this.lstReportStates.filter(item =>{\r\n // console.log(item.label);\r\n // if(item.value === this.selectedState)\r\n // element.reportState= item.label;\r\n\r\n // })\r\n // }\r\n\r\n // });\r\n //this.loadReportStates(parseInt(this.selectedState.toString()));\r\n }\r\n else {\r\n this.notifier.notify(\"error\", \"Failed to change the Report state\");\r\n }\r\n\r\n\r\n });\r\n this.displayStatusDlg = false;\r\n }\r\n onClose() {\r\n\r\n this.displayStatusDlg = false;\r\n }\r\n ShowHideDialog(isDisplay: boolean) {\r\n this.displayMetadata = isDisplay;\r\n // this.refreshDataSource.emit(true);\r\n }\r\n\r\n LaunchReport(report) {\r\n this.reportDashboardService.getReportScheduleById(report.id).subscribe((metadata:ReportSchedule)=>{\r\n this.reportScheduleforStatus = metadata;\r\n this.reportDashboardService.launchReport(report.id).subscribe(data => {\r\n const link = document.createElement('a');\r\n link.href = 'ms-word:ofe|u|' + environment.serverUrl + '/' + data;\r\n link.setAttribute('visibility', 'hidden');\r\n link.click();\r\n });\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ReportAttachment } from '../../../models/report.model';\r\nimport { ReportdashboardService } from '../../../services/reportdashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-view-attachment',\r\n templateUrl: './view-attachment.component.html',\r\n animations: [\r\n trigger('rowExpansionTrigger', [\r\n state(\r\n 'void',\r\n style({\r\n transform: 'translateX(-10%)',\r\n opacity: 0\r\n })\r\n ),\r\n state(\r\n 'active',\r\n style({\r\n transform: 'translateX(0)',\r\n opacity: 1\r\n })\r\n ),\r\n transition('* <=> *', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n ])\r\n ],\r\n styleUrls: ['./view-attachment.component.css']\r\n})\r\nexport class ViewAttachmentComponent implements OnInit {\r\n uploadAttachmentList: ReportAttachment[] = [];\r\n reportAttachmentList: ReportAttachment[] = [];\r\n reportState: string;\r\n reportMetadataId: any;\r\n isLocked: boolean = false;\r\n loading: boolean;\r\n\r\n constructor(private reportDashboardService: ReportdashboardService, private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.reportAttachmentList = [];\r\n }\r\n\r\n ShowAttachmentsDialog(reportMetadataId: any, reportState: string) {\r\n this.reportAttachmentList = [];\r\n\r\n this.reportState = reportState;\r\n this.reportMetadataId = reportMetadataId;\r\n this.loading = true;\r\n //setTimeout(() => {\r\n this.reportDashboardService\r\n .getReportAttachments$(reportMetadataId)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(data => {\r\n this.reportAttachmentList = data;\r\n });\r\n this.reportDashboardService.checkForLock(reportMetadataId).subscribe((data: boolean) => {\r\n this.isLocked = data;\r\n //console.log(data);\r\n });\r\n\r\n // },5000);\r\n }\r\n\r\n async onUpload(event, form) {\r\n var formData = new FormData();\r\n for (let file of event.files) {\r\n if (this.reportAttachmentList.length > 0) {\r\n if (this.reportAttachmentList.filter(x => x.attachmentName == file.name).length > 0) {\r\n this.clearFiles(form);\r\n this.notifier.notify('error', 'Attachment already exists');\r\n return;\r\n }\r\n }\r\n formData.append('files', file, file.name);\r\n }\r\n this.reportDashboardService.uploadAttachments$(this.reportMetadataId, formData).subscribe(\r\n resp => {\r\n //console.log(resp);\r\n this.reportDashboardService.getReportAttachments$(this.reportMetadataId).subscribe(data => {\r\n this.reportAttachmentList = data;\r\n });\r\n this.notifier.notify('success', 'Attachment(s) added successfully');\r\n this.clearFiles(form);\r\n },\r\n (error: any) => {\r\n this.clearFiles(form);\r\n console.log(error);\r\n this.notifier.notify('error', 'Something went wrong, Please contact System Administrator');\r\n }\r\n );\r\n }\r\n\r\n clearFiles(form) {\r\n this.uploadAttachmentList = [];\r\n form.clear();\r\n }\r\n openAttachment(Id: number, fileName: string) {\r\n var fileType = fileName.split('.', 2)[1].toString();\r\n this.reportDashboardService.openAttachment$(Id, fileType).subscribe((content: Blob) => {\r\n const fileURL = URL.createObjectURL(content);\r\n //setTimeout(() => window.open(fileURL, '_blank'), 1000);\r\n var anchor = document.createElement('a');\r\n anchor.download = fileName;\r\n anchor.href = fileURL;\r\n anchor.click();\r\n });\r\n }\r\n deleteAttachment(reportAttachment: ReportAttachment) {\r\n this.reportDashboardService.deleteAttachment$(reportAttachment.id, this.reportMetadataId).subscribe(resp => {\r\n if (resp.ok) {\r\n this.reportAttachmentList.splice(this.reportAttachmentList.indexOf(reportAttachment), 1);\r\n this.notifier.notify('success', 'Attachment removed successfully');\r\n } else {\r\n this.notifier.notify('error', 'Something went wrong, Please contact System Administrator');\r\n }\r\n });\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { ReportAuditRecord } from '../../../models/report.model';\r\nimport { ReportdashboardService } from '../../../services/reportdashboard.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-history',\r\n templateUrl: './view-history.component.html',\r\n styleUrls: ['./view-history.component.css']\r\n})\r\nexport class ViewHistoryComponent implements OnInit {\r\n reportAuditTrailData:ReportAuditRecord[];\r\n constructor(private reportDashboardService:ReportdashboardService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getReportHistory(id){\r\n this.reportDashboardService.getReportHistoryById(id).subscribe(\r\n (data:ReportAuditRecord[])=>{\r\n this.reportAuditTrailData =data;\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { SelectItem, TreeNode } from 'primeng/api';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { SearchFilter, SearchResult } from '../../../models/search.model';\r\nimport { SearchService } from '../../../services/search.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ReportFilter } from '../../../models/analytics.model';\r\nimport { Console } from 'console';\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-reports',\r\n templateUrl: './custom-reports.component.html',\r\n styleUrls: ['./custom-reports.component.css']\r\n})\r\nexport class CustomReportsComponent implements OnInit {\r\n selectedReport:string=\"1\";\r\n reportTitle :string;\r\n displayReportDlg :boolean;\r\n filterForm: FormGroup;\r\n countries: SelectItem[] = [];\r\n posts: SelectItem[] = [];\r\n programAreas: SelectItem[] = [];\r\n divisions: SelectItem[] = [];\r\n reportCategories: TreeNode[];\r\n reportStates: SelectItem[] = [];\r\n reportTypes: SelectItem[] = [];\r\n reportDistributionTypes: SelectItem[] = [];\r\n reportYears:SelectItem[]=[];\r\n searchFilter: SearchFilter;\r\n selectedNodes: TreeNode[];\r\n searchResults: SearchResult[];\r\n loading: boolean;\r\n filters:ReportFilter;\r\n displayTab:boolean = false;\r\n index:number=0;\r\n currentYear: number;\r\n selectedItems:any;\r\n\r\n constructor(\r\n private lookupService: LookupService,\r\n private fb: FormBuilder,\r\n private searchService: SearchService,\r\n private notifier: NotifierService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.filterForm = this.fb.group({\r\n selectedCountries: [''],\r\n selectedPosts: [''],\r\n selectedProgramAreas: [''],\r\n selectedReportYears: [''],\r\n selectedReportTypes: [''],\r\n selectedReportDistributionTypes: [''],\r\n fromDate:[''],\r\n toDate:['']\r\n });\r\n this.LoadAdvanceFilterOptions();\r\n }\r\n\r\n LoadAdvanceFilterOptions() {\r\n\r\n this.LoadAllCountries();\r\n this.LoadAllPosts();\r\n this.LoadAllProgramAreas();\r\n this.LoadAllDivisions();\r\n this.LoadAllReportStates();\r\n this.LoadAllReportTypes();\r\n this.LoadAllReportDistributionTypes();\r\n this.LoadAllReportYears();\r\n this.LoadReportCategoryHierarchy();\r\n\r\n }\r\n\r\n\r\n\r\n onRunReport()\r\n {\r\n this.filters = new ReportFilter();\r\n if(this.selectedReport == \"1\")\r\n {\r\n if(!this.filterForm.controls[\"fromDate\"].value && this.filterForm.controls[\"toDate\"].value)\r\n {\r\n this.notifier.notify('error', 'Please select From Date');\r\n return;\r\n }\r\n\r\n if(this.filterForm.controls[\"fromDate\"].value && !this.filterForm.controls[\"toDate\"].value)\r\n {\r\n this.notifier.notify('error', 'Please select To Date');\r\n return;\r\n }\r\n this.filters.fromDate = this.filterForm.controls[\"fromDate\"].value;\r\n this.filters.toDate = this.filterForm.controls[\"toDate\"].value;\r\n }\r\n if (this.selectedNodes !== undefined)\r\n this.TraverseChildNodes(this.selectedNodes, this.filters.selectedReportCategories);\r\n this.filters.selectedCountries = this.filterForm.controls[\"selectedCountries\"].value;\r\n this.filters.selectedPosts = this.filterForm.controls[\"selectedPosts\"].value;\r\n this.filters.selectedProgramAreas =this.filterForm.controls[\"selectedProgramAreas\"].value;\r\n this.filters.selectedReportYears = this.filterForm.controls[\"selectedReportYears\"].value;\r\n this.filters.selectedReportDistributionTypes = this.filterForm.controls[\"selectedReportDistributionTypes\"].value;\r\n this.filters.selectedReportTypes = this.filterForm.controls[\"selectedReportTypes\"].value;\r\n //console.log(JSON.stringify(this.filters));\r\n this.RunSelectedReport();\r\n\r\n }\r\n private TraverseChildNodes(element: TreeNode[], selectedReportCategories: number[]) {\r\n element.forEach(child => {\r\n if (child.children.length == 0) {\r\n if (selectedReportCategories.indexOf(child.data) == -1) selectedReportCategories.push(child.data);\r\n } else {\r\n this.TraverseChildNodes(child.children, selectedReportCategories);\r\n }\r\n });\r\n }\r\n onReset()\r\n {\r\n this.selectedNodes = [];\r\n this.searchResults = new Array();\r\n this.reportYears=[];\r\n this.LoadAllReportYears();\r\n // this.selectedItems=this.reportYears.filter(x=>x.label==new Date().getFullYear().toString())[0].value;\r\n // this.filterForm.patchValue({selectedReportYears:this.reportYears.filter(x=>x.label==new Date().getFullYear().toString())[0].value});\r\n\r\n }\r\n defaulyYear()\r\n {\r\n this.currentYear = new Date().getFullYear();\r\n this.filters = new ReportFilter();\r\n for (let cnt = this.reportYears.length - 1; cnt >= 0; cnt--) {\r\n\r\n if (this.reportYears[cnt].label == this.currentYear.toString()) {\r\n this.selectedItems=[this.reportYears[cnt].value];\r\n }\r\n }\r\n }\r\n\r\n onDisplayTab():void\r\n {\r\n this.displayTab=false\r\n }\r\n handleChange(e) {\r\n this.index = e.index;\r\n\r\n }\r\n private RunSelectedReport()\r\n {\r\n this.displayTab =true;\r\n this.index = 1;\r\n if(this.selectedReport == \"1\")\r\n {\r\n this.reportTitle=\"Report Download Counts\";\r\n }\r\n if(this.selectedReport == \"2\")\r\n {\r\n this.reportTitle=\"Variance of Reports based on due dates\";\r\n }\r\n if(this.selectedReport == \"3\")\r\n {\r\n this.reportTitle=\"Report Counts Submitted by Post\";\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n private LoadAllPosts() {\r\n\r\n this.lookupService.getAllPosts$().subscribe(postList => {\r\n //this.posts.push({ label: 'All Posts', value: '' });\r\n postList.forEach(val => {\r\n if (\r\n this.posts\r\n .map(function(v) {\r\n return v.value;\r\n })\r\n .indexOf(val.locationName.toString()) == -1\r\n )\r\n this.posts.push({ label: val.locationName.toString(), value: val.locationName.toString() });\r\n });\r\n\r\n this.posts.sort((a, b) => {\r\n if (a.label === b.label) return 0;\r\n //if (a.label == 'All Posts') return -1;\r\n //if (b.label == 'All Posts') return 1;\r\n\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n });\r\n }\r\n\r\n private LoadAllCountries() {\r\n this.lookupService.getAllCountries$().subscribe(countryList => {\r\n\r\n countryList.forEach(val => {\r\n this.countries.push({ label: val.locationName.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n private LoadAllProgramAreas() {\r\n this.lookupService.getAllProgramAreas$().subscribe(programAreaList => {\r\n //this.programAreas.push({ label: 'All Program Areas', value: '' ,styleClass:'p-state-highlight'});\r\n programAreaList.forEach(val => {\r\n this.programAreas.push({ label: val.locationName.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n\r\n private LoadAllDivisions() {\r\n this.lookupService.getAllDivisions$().subscribe(divisionList => {\r\n //this.divisions.push({ label: 'All Divisions', value: '' ,styleClass:'p-state-highlight'});\r\n divisionList.forEach(val => {\r\n this.divisions.push({ label: val.locationName.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n\r\n private LoadAllReportTypes() {\r\n this.lookupService.getAllReportTypes$().subscribe(reportTypeList => {\r\n //this.reportTypes.push({ label: 'All Report Types', value: '-1' ,styleClass:'p-state-highlight'});\r\n reportTypeList.forEach(val => {\r\n this.reportTypes.push({ label: val.description.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n private LoadAllReportDistributionTypes() {\r\n this.lookupService.getAllReportDistributionTypes$().subscribe(reportDistributionTypeList => {\r\n //this.reportDistributionTypes.push({ label: 'All Report Distribution Types', value: '-1' ,styleClass:'p-state-highlight'});\r\n reportDistributionTypeList.forEach(val => {\r\n this.reportDistributionTypes.push({ label: val.description.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n\r\n private LoadAllReportStates() {\r\n this.lookupService.getReportStates$().subscribe(reportStateList => {\r\n //this.reportStates.push({ label: 'All Statuses', value: '' ,styleClass:'p-state-highlight'});\r\n reportStateList.forEach(val => {\r\n this.reportStates.push({ label: val.stateName.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n private LoadAllReportYears()\r\n {\r\n\r\n\r\n this.currentYear = new Date().getFullYear();\r\n this.lookupService.getReportYear().subscribe(reportYearList=>{\r\n\r\n reportYearList.sort((a, b) => {\r\n\r\n if (a.year < b.year) return 1;\r\n if (a.year > b.year) return -1;\r\n return 0;\r\n });\r\n\r\n reportYearList.forEach(val => {\r\n this.reportYears.push({ label: val.year.toString(), value: val.id });\r\n\r\n });\r\n for (let cnt = reportYearList.length - 1; cnt >= 0; cnt--) {\r\n\r\n if (reportYearList[cnt].year == this.currentYear ) {\r\n this.selectedItems=[reportYearList[cnt].id];\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n private LoadReportCategoryHierarchy() {\r\n\r\n this.loading = true;\r\n\r\n this.lookupService\r\n .getReportCategoryHierarchy$()\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(data => {\r\n //console.log(Array.of(data));\r\n\r\n this.reportCategories = Array.of(data);\r\n this.reportCategories[0].expanded = true;\r\n this.reportCategories[0].children.sort((a, b) => {\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { DownloadCountsReportResult, ReportFilter } from '../../../../models/analytics.model';\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ConfirmationService, SelectItem, FilterService } from 'primeng/api';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { Table, TableModule } from 'primeng/table';\r\nimport { Observable } from 'rxjs';\r\nimport { NgForm } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-report-download-counts',\r\n templateUrl: './report-download-counts.component.html',\r\n styleUrls: ['./report-download-counts.component.css']\r\n})\r\nexport class ReportDownloadCountsComponent implements OnInit,OnChanges {\r\n//reportData:DownloadCountsReportResult[]=[];\r\nloading: boolean;\r\n cols: any[];\r\n\r\n@Input() reportFilters: ReportFilter;\r\n@ViewChild('dt') dt:Table;\r\n reportData:DownloadCountsReportResult[]=[];\r\n reportNames: SelectItem[];\r\n countries: SelectItem[];\r\n posts: SelectItem[];\r\n reportNumbers: SelectItem[];\r\n distributionTypes: SelectItem[];\r\n reportTypes:SelectItem[];\r\n programAreas:SelectItem[];\r\n reportCategories:SelectItem[];\r\n reportYears:SelectItem[];\r\n downloadsCount:SelectItem[];\r\n dueDates:SelectItem[];\r\n publishDates:SelectItem[];\r\n\r\n constructor(private analyticsService:AnalyticsService,\r\n private lookupService: LookupService,private notifier:NotifierService,\r\n private filterService: FilterService\r\n ) { }\r\n\r\n ngOnInit() {\r\n // this.LoadTableFilters(this.reportData);\r\n this.filterService.filters['custom'] = (value, filter: any): boolean => {\r\n let found:number =0;\r\n if (filter === undefined || filter === null || filter === '') {\r\n return true;\r\n }\r\n\r\n if (value === undefined || value === null || !value.length) {\r\n return false;\r\n }\r\n filter.forEach(element => {\r\n if(value.indexOf(element)>-1)\r\n found=found+1;\r\n\r\n });\r\n if(found>0)\r\n return true;\r\n else\r\n return false;\r\n\r\n };\r\n\r\n }\r\n ngOnChanges(changes:any)\r\n {\r\n //if(!changes.firstChange)\r\n this.LoadReportData();\r\n\r\n }\r\n\r\n private LoadReportData()\r\n {\r\n //console.log(this.reportFilters);\r\n this.analyticsService.getReportDownloadsCount$(this.reportFilters)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(resp=>{\r\n if(resp.ok)\r\n this.reportData = resp.body;\r\n this.LoadTableFilters(this.reportData);\r\n },\r\n error=>{\r\n this.notifier.notify('error','Error displaying report,please contact Tech Support');\r\n console.error('Error getting data via subscribe() method:', error);\r\n },\r\n ()=>{\r\n this.makeRowsSameHeight();\r\n });\r\n this.cols = [\r\n { field: 'reportNumber', header: 'Report Number' },\r\n { field: 'reportName', header: 'Report Name' },\r\n { field: 'reportYear', header: 'Report Year' },\r\n { field: 'country', header: 'Country' },\r\n { field: 'post', header: 'Post' },\r\n { field: 'programArea', header: 'Program Area' },\r\n { field: 'reportCategory', header: 'Report Category' },\r\n { field: 'reportType', header: 'Report Type' },\r\n { field: 'distributionType', header: 'Distribution Type' },\r\n { field: 'reportDueDate', header: 'Due Date' },\r\n { field: 'reportPublishDate', header: 'Published Date' },\r\n { field: 'downloadcounts', header: 'No of Downloads' },\r\n ];\r\n\r\n\r\n }\r\n filter(value:any,colName:string,matchMode:any)\r\n {\r\n this.dt.filter(value,colName,matchMode);\r\n this.makeRowsSameHeight();\r\n\r\n }\r\n\r\n makeRowsSameHeight() {\r\n setTimeout(() => {\r\n if (document.getElementsByClassName('p-table-scrollable-wrapper').length) {\r\n let wrapper = document.getElementsByClassName('p-table-scrollable-wrapper');\r\n for (var i = 0; i < wrapper.length; i++) {\r\n let w = wrapper.item(i) as HTMLElement;\r\n let frozen_rows: any = w.querySelectorAll('.p-table-frozen-view tr');\r\n let unfrozen_rows: any = w.querySelectorAll('.p-table-unfrozen-view tr');\r\n for (let i = 0; i < frozen_rows.length; i++) {\r\n if (frozen_rows[i].clientHeight > unfrozen_rows[i].clientHeight) {\r\n unfrozen_rows[i].style.height = frozen_rows[i].clientHeight+\"px\";\r\n }\r\n else if (frozen_rows[i].clientHeight < unfrozen_rows[i].clientHeight)\r\n {\r\n frozen_rows[i].style.height = unfrozen_rows[i].clientHeight+\"px\";\r\n }\r\n }\r\n }\r\n }\r\n },300);\r\n }\r\n LoadTableFilters(reportData: DownloadCountsReportResult[]) {\r\n this.reportNumbers = this.GetUniqueValues(reportData.map(r => r.reportNumber));\r\n this.reportNames = this.GetUniqueValues(reportData.map(r => r.reportName));\r\n this.countries = this.GetUniqueValues(reportData.map(r => r.country));\r\n this.reportYears = this.GetUniqueValues(reportData.map(r => r.reportYear));\r\n this.distributionTypes = this.GetUniqueValues(reportData.map(r => r.distributionType));\r\n this.posts = this.GetUniqueValues(reportData.map(r => r.post));\r\n this.reportTypes = this.GetUniqueValues(reportData.map(r => r.reportType));\r\n this.programAreas = this.GetUniqueValues(reportData.map(r => r.programArea));\r\n this.reportCategories = this.GetUniqueValuesWithComa(reportData.map(r => r.reportCategory));\r\n this.dueDates = this.dateSort(reportData.map(r => r.reportDueDate));\r\n this.publishDates = this.dateSort(reportData.map(r => r.reportPublishDate));\r\n this.downloadsCount = this.GetUniqueValues(reportData.map(r => r.downloadcounts));\r\n\r\n }\r\n dateSort(filterItem: any[]): SelectItem[]{\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a, b) => new Date(b.value).getTime() - new Date(a.value).getTime());\r\n return returnArray;\r\n }\r\n\r\n GetUniqueValues(vals: any[]):SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n GetUniqueValuesWithComa(vals: any[]):SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n var splitVal=vals[cnt].split(',');\r\n for (let i = 0; i < splitVal.length; i++) {\r\n if (returnArry.filter(r => r.label == splitVal[i]).length == 0)\r\n returnArry.push({ label:splitVal[i], value:splitVal[i]});\r\n }\r\n }\r\n //console.log(returnArry.length);\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n onPage(first:number,rows:number)\r\n {\r\n this.makeRowsSameHeight();\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { TableModule } from 'primeng/table';\r\nimport { Observable } from 'rxjs';\r\nimport { NgForm } from '@angular/forms';\r\nimport { SubmittedReportCountByPostAndYearResult, ReportFilter, GraphData } from '../../../../models/analytics.model';\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport { ConfirmationService, SelectItem } from 'primeng/api';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\n//import * as Highcharts from \"highcharts\";\r\nimport * as Highcharts from 'highcharts/highmaps';\r\n//import MapModule from 'highcharts/modules/map';\r\nimport { Options } from \"highcharts\";\r\nimport exporting from 'highcharts/modules/exporting';\r\nimport offline from 'highcharts/modules/offline-exporting';\r\nimport HC_more from \"highcharts/highcharts-more\";\r\nimport { NotifierService } from 'angular-notifier';\r\nvar mapWorld = require('@highcharts/map-collection/custom/world.geo.json');\r\n// const noData = require('highcharts/modules/no-data-to-display');\r\n// noData(Highcharts);\r\n//MapModule(Highcharts);\r\nHC_more(Highcharts);\r\nexporting(Highcharts);\r\noffline(Highcharts);\r\n\r\n\r\n@Component({\r\n selector: 'app-report-submitted-by-post',\r\n templateUrl: './report-submitted-by-post.component.html',\r\n styleUrls: ['./report-submitted-by-post.component.css']\r\n\r\n})\r\n\r\n\r\nexport class ReportSubmittedByPostComponent implements OnInit,OnChanges {\r\n reportData:SubmittedReportCountByPostAndYearResult[]=[];\r\n loading: boolean;\r\n cols: any[];\r\n\r\n @Input() reportFilters: ReportFilter;\r\n toggleOptions:SelectItem[]=[];\r\n selectedOption:SelectItem;\r\n reportYears: SelectItem[];\r\n graphReportYears:SelectItem[];\r\n countries: SelectItem[];\r\n posts: SelectItem[];\r\n requiredReportCounts: SelectItem[];\r\n voluntaryReportCounts: SelectItem[];\r\n totalReportCounts: SelectItem[];\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chartConstructor = \"mapChart\";\r\n\r\n chartOptions: any;\r\n selectedYear:SelectItem;\r\n graphData :GraphData[]=[];\r\n\r\n constructor(private analyticsService:AnalyticsService,\r\n private lookupAdminService:LookupAdminService,\r\n private notifier:NotifierService) { }\r\n\r\n ngOnInit() {\r\n // this.toggleOptions.push({ label: 'Tabular',value:0 });\r\n // this.toggleOptions.push({ label: 'Graphical',value:1});\r\n this.toggleOptions = [\r\n {icon: 'fa fa-2x fa-list-alt', label: 'View in Table',value:0 },\r\n {icon: 'fa fa-2x fa-bar-chart', label: 'View in Graph',value:1}\r\n];\r\n this.selectedOption =this.toggleOptions[0];\r\n\r\n }\r\n\r\n\r\n ngOnChanges(changes:SimpleChanges)\r\n {\r\n if(!changes.firstChange)\r\n {\r\n this.LoadReportData();\r\n\r\n }\r\n }\r\n\r\n\r\n private LoadReportData()\r\n {\r\n //console.log(\"submitted report by post\");\r\n //console.log(this.reportFilters);\r\n this.graphData=[];\r\n this.analyticsService.getSubmittedReportCountByPostAndYear$(this.reportFilters)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(resp=>{\r\n if(resp.ok)\r\n this.reportData = resp.body;\r\n //console.log(this.reportData);\r\n this.LoadTableFilters(this.reportData);\r\n if(this.graphReportYears[0])\r\n {\r\n this.LoadChart(this.graphReportYears[0].value);\r\n }\r\n else{\r\n this.LoadChart(this.reportFilters.selectedReportYears[0]);\r\n }\r\n },\r\n error=>{\r\n this.notifier.notify('error','Error displaying report,please contact Tech Support');\r\n console.error('Error getting data via subscribe() method:', error);\r\n });\r\n\r\n\r\n this.cols = [\r\n { field: 'reportYear', header: 'Report Year' },\r\n { field: 'countryName', header: 'Country' },\r\n { field: 'postName', header: 'Post' },\r\n { field: 'requiredReportCount', header: 'Required Report Count' },\r\n { field: 'voluntaryReportCount', header: 'Voluntary Report Count' },\r\n { field: 'totalReportCount', header: 'Total Count' }\r\n ];\r\n }\r\n\r\n LoadTableFilters(reportData:SubmittedReportCountByPostAndYearResult[]) {\r\n this.reportYears = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.reportYear));\r\n this.graphReportYears = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.reportYear));\r\n this.graphReportYears.sort((a,b)=>{\r\n if (a.value > b.value) return -1;\r\n if (a.value < b.value) return 1;\r\n return 0;\r\n\r\n });\r\n this.countries = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.countryName));\r\n this.posts = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.postName));\r\n this.requiredReportCounts = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.requiredReportCount));\r\n this.voluntaryReportCounts = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.voluntaryReportCount));\r\n this.totalReportCounts = this.lookupAdminService.GetUniqueValues(reportData.map(r => r.totalReportCount));\r\n }\r\n\r\n onReportYearChange(reportYear:number)\r\n {\r\n this.graphData=[];\r\n this.LoadChart(reportYear);\r\n }\r\n\r\n LoadChart(reportYear:number)\r\n {\r\n mapWorld.features.forEach(element => {\r\n //console.log(element);\r\n let filter = this.reportData.filter(x=>x.countryName.toLowerCase() == element.properties.name.toLowerCase()&& x.reportYear ===reportYear);\r\n if(filter.length>0)\r\n {\r\n let sumVal:number =\r\n filter.map(a=>a.totalReportCount).reduce(function(a,b)\r\n {\r\n return a+b;\r\n });\r\n let requiredSum:number =\r\n filter.map(a=>a.requiredReportCount).reduce(function(a,b)\r\n {\r\n return a+b;\r\n });\r\n let voluntarySum:number =\r\n filter.map(a=>a.voluntaryReportCount).reduce(function(a,b)\r\n {\r\n return a+b;\r\n });\r\n this.graphData.push({code3:element.properties[\"hc-key\"],name:element.properties[\"name\"],value:sumVal,requiredCnt:requiredSum,voluntaryCnt:voluntarySum});\r\n }\r\n\r\n\r\n\r\n });\r\n //console.log(this.graphData);\r\n this.GetChartOptions();\r\n }\r\n\r\n\r\n\r\n GetChartOptions()\r\n {\r\n this.chartOptions= {\r\n chart: {\r\n map: mapWorld as any,\r\n width:950,\r\n height:600\r\n\r\n },\r\n exporting: {\r\n fallbackToExportServer: false\r\n },\r\n title: {\r\n text: \"Reports Submitted By Post\"\r\n },\r\n credits:{\r\n enabled:false\r\n },\r\n mapNavigation: {\r\n enabled: true,\r\n buttonOptions: {\r\n alignTo: \"spacingBox\"\r\n }\r\n },\r\n plotOptions:{\r\n map:{\r\n color:Highcharts.getOptions().colors[3]\r\n }\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n colorAxis: {\r\n min: 0,\r\n minColor: '#E6E7E8',\r\n maxColor: '#005645'\r\n },\r\n tooltip: {\r\n backgroundColor: 'none',\r\n borderWidth: 0,\r\n shadow: false,\r\n useHTML: true,\r\n padding: 0,\r\n pointFormat: '
' +\r\n ' {point.name}
' +\r\n 'Required - {point.requiredCnt}
'+\r\n 'Voluntary - {point.voluntaryCnt}
'+\r\n 'Total - {point.value}
',\r\n positioner: () => ({ x: 10, y: 450 })\r\n },\r\n series: [\r\n {\r\n type: \"map\",\r\n name: \"Report Counts\",\r\n states: {\r\n hover: {\r\n color: Highcharts.getOptions().colors[3],\r\n borderColor: 'gray'\r\n }\r\n },\r\n joinBy: ['hc-key', 'code3'],\r\n //allAreas: false,\r\n data: this.graphData\r\n }\r\n ]\r\n };\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { VarianceReportByDueDatesResult, ReportFilter } from '../../../../models/analytics.model';\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nimport { LookupAdminService } from '../../../../services/lookups/lookupadmin.service';\r\nimport { ConfirmationService, SelectItem, FilterService } from 'primeng/api';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { Table, TableModule } from 'primeng/table';\r\nimport { Observable } from 'rxjs';\r\nimport { NgForm } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-report-variance-due-date',\r\n templateUrl: './report-variance-due-date.component.html',\r\n styleUrls: ['./report-variance-due-date.component.css']\r\n})\r\nexport class ReportVarianceDueDateComponent implements OnInit {\r\n\r\nloading: boolean;\r\ncols: any[];\r\n\r\n\r\n@ViewChild('dt') dt:Table;\r\n@Input() reportFilters: ReportFilter;\r\nreportData:VarianceReportByDueDatesResult[]=[];\r\n reportNames: SelectItem[];\r\n countries: SelectItem[];\r\n posts: SelectItem[];\r\n reportNumbers: SelectItem[];\r\n distributionTypes: SelectItem[];\r\n reportTypes:SelectItem[];\r\n programAreas:SelectItem[];\r\n reportCategories:SelectItem[];\r\n reportYears:SelectItem[];\r\n dateSubmittedToWashingtons:SelectItem[];\r\n dueDates:SelectItem[];\r\n publishDates:SelectItem[];\r\n submittedDateVariances:SelectItem[];\r\n publishDateVariances:SelectItem[];\r\n types:SelectItem[];\r\n\r\n constructor(private analyticsService:AnalyticsService ,\r\n private lookupService: LookupService,private notifier:NotifierService,\r\n private filterService: FilterService) { }\r\n ngOnInit() {\r\n\r\n this.filterService.filters['custom'] = (value, filter: any): boolean => {\r\n let found:number =0;\r\n if (filter === undefined || filter === null || filter === '') {\r\n return true;\r\n }\r\n\r\n if (value === undefined || value === null || !value.length) {\r\n return false;\r\n }\r\n filter.forEach(element => {\r\n if(value.indexOf(element)>-1)\r\n found=found+1;\r\n\r\n });\r\n if(found>0)\r\n return true;\r\n else\r\n return false;\r\n\r\n };\r\n }\r\n\r\n ngOnChanges(changes:SimpleChanges)\r\n {\r\n if(!changes.firstChange)\r\n {\r\n this.LoadReportData();\r\n //this.makeRowsSameHeight();\r\n }\r\n\r\n }\r\n\r\n private LoadReportData()\r\n {\r\n //console.log(this.reportFilters);\r\n this.analyticsService.getVarianceReportByDueDates$(this.reportFilters)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(resp=>{\r\n if(resp.ok)\r\n this.reportData = resp.body;\r\n\r\n for (let cnt = this.reportData.length - 1; cnt >= 0; cnt--) {\r\n if (this.reportData[cnt].distributionType == \"Public\" ) {\r\n this.reportData[cnt].distributionType =\"P\";\r\n }\r\n else{ this.reportData[cnt].distributionType =\"I\";}\r\n\r\n if (this.reportData[cnt].reportType == \"Required\" ) {\r\n this.reportData[cnt].reportType =\"R\";\r\n }\r\n else{ this.reportData[cnt].reportType =\"V\";}\r\n this.reportData[cnt].type = this.reportData[cnt].reportType + \" | \" + this.reportData[cnt].distributionType;\r\n }\r\n this.LoadTableFilters(this.reportData);\r\n //this.makeRowsSameHeight();\r\n\r\n },\r\n error=>{\r\n this.notifier.notify('error','Error displaying report,please contact Tech Support');\r\n console.error('Error getting data via subscribe() method:', error);\r\n },\r\n ()=>{\r\n this.makeRowsSameHeight();\r\n }\r\n );\r\n\r\n this.cols = [\r\n { field: 'reportNumber', header: 'Report Number' },\r\n { field: 'reportName', header: 'Report Name' },\r\n { field: 'reportYear', header: 'Report Year' },\r\n { field: 'country', header: 'Country' },\r\n { field: 'post', header: 'Post' },\r\n { field: 'reportCategory', header: 'Report Category' },\r\n { field: 'type', header: 'Type' },\r\n { field: 'reportDueDate', header: 'Report DueDate' },\r\n { field: 'dateSubmittedToWashington', header: 'Date SubmittedToWashington' },\r\n { field: 'submittedDateVariance', header: 'Submitted DateVariance' },\r\n { field: 'publishedDate', header: 'Published Date' },\r\n { field: 'publishDateVariance', header: 'Publish DateVariance' }\r\n ];\r\n\r\n }\r\n\r\n filterTable(value:any,colName:string,matchMode:any)\r\n {\r\n this.dt.filter(value,colName,matchMode);\r\n this.makeRowsSameHeight();\r\n\r\n }\r\n makeRowsSameHeight() {\r\n setTimeout(() => {\r\n if (document.getElementsByClassName('p-table-scrollable-wrapper').length) {\r\n let wrapper = document.getElementsByClassName('p-table-scrollable-wrapper');\r\n for (var i = 0; i < wrapper.length; i++) {\r\n let w = wrapper.item(i) as HTMLElement;\r\n let frozen_rows: any = w.querySelectorAll('.p-table-frozen-view tr');\r\n let unfrozen_rows: any = w.querySelectorAll('.p-table-unfrozen-view tr');\r\n for (let i = 0; i < frozen_rows.length; i++) {\r\n if (frozen_rows[i].clientHeight > unfrozen_rows[i].clientHeight) {\r\n unfrozen_rows[i].style.height = frozen_rows[i].clientHeight+\"px\";\r\n }\r\n else if (frozen_rows[i].clientHeight < unfrozen_rows[i].clientHeight)\r\n {\r\n frozen_rows[i].style.height = unfrozen_rows[i].clientHeight+\"px\";\r\n }\r\n }\r\n }\r\n }\r\n },300);\r\n }\r\n LoadTableFilters(reportData:VarianceReportByDueDatesResult[]) {\r\n this.reportNumbers = this.GetUniqueValues(reportData.map(r => r.reportNumber));\r\n this.reportNames = this.GetUniqueValues(reportData.map(r => r.reportName));\r\n this.reportYears = this.GetUniqueValues(reportData.map(r => r.reportYear));\r\n this.countries = this.GetUniqueValues(reportData.map(r => r.country));\r\n this.posts = this.GetUniqueValues(reportData.map(r => r.post));\r\n this.reportCategories = this.GetUniqueValuesWithComa(reportData.map(r => r.reportCategory));\r\n this.types = this.GetUniqueValues(reportData.map(r => r.type));\r\n this.dueDates = this.dateSort(reportData.map(r => r.reportDueDate));\r\n this.dateSubmittedToWashingtons = this.dateSort(reportData.map(r => r.dateSubmittedToWashington));\r\n this.submittedDateVariances = this.GetUniqueValues(reportData.map(r => r.submittedDateVariance));\r\n this.publishDates = this.dateSort(reportData.map(r => r.publishedDate));\r\n this.publishDateVariances = this.GetUniqueValues(reportData.map(r => r.publishDateVariance));\r\n }\r\n dateSort(filterItem: any[]): SelectItem[]{\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a, b) => new Date(b.value).getTime() - new Date(a.value).getTime());\r\n return returnArray;\r\n }\r\n\r\n GetUniqueValues(vals: any[]):SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n GetUniqueValuesWithComa(vals: any[]):SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n var splitVal=vals[cnt].split(',');\r\n for (let i = 0; i < splitVal.length; i++) {\r\n if (returnArry.filter(r => r.label == splitVal[i]).length == 0)\r\n returnArry.push({ label:splitVal[i], value:splitVal[i]});\r\n }\r\n }\r\n //console.log(returnArry.length);\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n\r\n onPage(first:number,rows:number)\r\n {\r\n this.makeRowsSameHeight();\r\n }\r\n}\r\n","import { ViewEncapsulation } from '@angular/compiler/src/core';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ReportYear } from '../../../models/report.model';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { ReportsCountByStatusCardComponent } from './reports-count-by-status-card/reports-count-by-status-card.component';\r\nimport { ReportsTotalCountCardComponent } from './reports-total-count-card/reports-total-count-card.component';\r\nimport { ReportCountsFiveYearCardComponent } from './report-counts-five-year-card/report-counts-five-year-card.component';\r\nimport { ReportCountByTypeCardComponent } from './report-count-by-type-card/report-count-by-type-card.component';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n ReportYears: ReportYear[];\r\n @ViewChild(ReportsTotalCountCardComponent) reportTotalCntComponent: ReportsTotalCountCardComponent;\r\n @ViewChild(ReportCountsFiveYearCardComponent) reportCountsFiveYearCardComponent: ReportCountsFiveYearCardComponent;\r\n @ViewChild(ReportsCountByStatusCardComponent) reportByStatusCntComponent:ReportsCountByStatusCardComponent;\r\n @ViewChild(ReportCountByTypeCardComponent) reportByTypeCntComponent:ReportCountByTypeCardComponent;\r\n constructor(private lookupService:LookupService) { }\r\n currentYear: number;\r\n selectedYear :ReportYear;\r\n ngOnInit() { \r\n }\r\n\r\n ngAfterViewInit (){\r\n this.LoadReportYears();\r\n }\r\n\r\n\r\n LoadReportYears()\r\n {\r\n this.currentYear = new Date().getFullYear();\r\n\r\n this.lookupService.getReportYear().subscribe((data: ReportYear[]) => {\r\n this.ReportYears =data;\r\n for (let cnt = data.length - 1; cnt >= 0; cnt--) {\r\n if (this.ReportYears[cnt].year > this.currentYear ) {\r\n this.ReportYears.splice(cnt, 1);\r\n }\r\n }\r\n this.ReportYears.sort((a,b):number=>{\r\n if (a.year > b.year) return -1;\r\n if (a.year < b.year) return 1;\r\n return 0;\r\n })\r\n\r\n this.reportCountsFiveYearCardComponent.loadChart(this.ReportYears[0].id,this.ReportYears[0].year);\r\n this.reportTotalCntComponent.loadProgressChart(this.ReportYears[0].id,this.ReportYears[0].year);\r\n this.reportByTypeCntComponent.loadChart(this.ReportYears[0].id);\r\n this.reportByStatusCntComponent.loadReportsCountsByStatusChart(this.ReportYears[0].id,this.ReportYears[0].year);\r\n \r\n \r\n });\r\n }\r\n onReportYearChange(reportYear:ReportYear)\r\n {\r\n \r\n this.reportCountsFiveYearCardComponent.loadChart(reportYear.id,reportYear.year);\r\n this.reportTotalCntComponent.loadProgressChart(reportYear.id,reportYear.year);\r\n this.reportByTypeCntComponent.loadChart(reportYear.id);\r\n this.reportByStatusCntComponent.loadReportsCountsByStatusChart(reportYear.id,reportYear.year);\r\n \r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as Highcharts from \"highcharts\";\r\nimport HC_more from \"highcharts/highcharts-more\";\r\nimport exporting from 'highcharts/modules/exporting';\r\nimport { ReportCountByType } from \"../../../../models/analytics.model\";\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nHC_more(Highcharts);\r\nexporting(Highcharts);\r\n@Component({\r\n selector: 'app-report-count-by-type-card',\r\n templateUrl: './report-count-by-type-card.component.html',\r\n styleUrls: ['./report-count-by-type-card.component.css']\r\n})\r\nexport class ReportCountByTypeCardComponent implements OnInit {\r\n\r\n updateFromInput: boolean = false;\r\n reportCountByType: ReportCountByType;\r\n\r\n ReportCountByTypeChart: typeof Highcharts = Highcharts;\r\n reportCountByTypeChartOptions:any;\r\n\r\n constructor(private analyticsService: AnalyticsService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n loadChart(yearId:number)\r\n {\r\n\r\n this.analyticsService.getReportCountsByType$(yearId).subscribe((data)=>{\r\n\r\n //console.log(data);\r\n\r\n this.reportCountByType = data;\r\n this.reportCountByType.reportYear=data.reportYear\r\n this.reportCountByType.requiredInternalReportCount = data.requiredInternalReportCount\r\n this.reportCountByType.requiredPublicReportCount= data.requiredPublicReportCount\r\n this.reportCountByType.voluntaryInternalReportCount= data.voluntaryInternalReportCount\r\n this.reportCountByType.voluntaryPublicReportCount =data.voluntaryPublicReportCount\r\n\r\n\r\n this.GetChartOptions();\r\n this.updateChart();\r\n\r\n });\r\n\r\n }\r\n\r\n\r\nupdateChart()\r\n{\r\n this.updateFromInput = true;\r\n}\r\n\r\nGetChartOptions()\r\n {\r\n this.reportCountByTypeChartOptions=\r\n {\r\n chart: {\r\n type: 'pie',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n width:450,\r\n height:500,\r\n options3d: {\r\n enabled: true,\r\n alpha: 45,\r\n beta: 0\r\n }\r\n },\r\n title: {\r\n text: 'Reports for ' + this.reportCountByType.reportYear,\r\n style:{\"color\":\"#337ab7\",\"fontSize\":\"16px\",\"fontWeight\":\"bold\" }\r\n },\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n tooltip: {\r\n pointFormat: '{point.percentage:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n depth: 35,\r\n dataLabels: {\r\n enabled: false,\r\n format: '{point.name}'\r\n },\r\n size: '80%',\r\n },\r\n },\r\n credits:{\r\n enabled:false\r\n },\r\n series: [{\r\n type: 'pie',\r\n showInLegend: true,\r\n name: 'Reports share',\r\n data: [\r\n {\r\n name: 'Required-Public: ' + this.reportCountByType.requiredPublicReportCount,\r\n y: this.reportCountByType.requiredPublicReportCount,\r\n data: this.reportCountByType.requiredPublicReportCount,\r\n selected: true,\r\n color:Highcharts.getOptions().colors[7]\r\n },\r\n {\r\n name: 'Required-Internal: ' + this.reportCountByType.requiredInternalReportCount,\r\n y: this.reportCountByType.requiredInternalReportCount,\r\n data: this.reportCountByType.requiredInternalReportCount,\r\n selected: true,\r\n color:Highcharts.getOptions().colors[8]\r\n },\r\n {\r\n name: 'Voluntary-Public: ' + this.reportCountByType.voluntaryPublicReportCount,\r\n y: this.reportCountByType.voluntaryPublicReportCount,\r\n data: this.reportCountByType.voluntaryPublicReportCount,\r\n selected: true,\r\n color: Highcharts.getOptions().colors[3]\r\n },\r\n {\r\n name: 'Voluntary-Internal: ' + this.reportCountByType.voluntaryInternalReportCount,\r\n y: this.reportCountByType.voluntaryInternalReportCount,\r\n data: this.reportCountByType.voluntaryInternalReportCount,\r\n selected: true,\r\n color: Highcharts.getOptions().colors[2]\r\n }\r\n ]\r\n }]\r\n };\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as Highcharts from \"highcharts\";\r\nimport HC_more from \"highcharts/highcharts-more\";\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nimport { PublishedReportCountsByYear } from \"../../../../models/analytics.model\";\r\nHC_more(Highcharts);\r\n\r\n@Component({\r\n selector: 'app-report-counts-five-year-card',\r\n templateUrl: './report-counts-five-year-card.component.html',\r\n styleUrls: ['./report-counts-five-year-card.component.css']\r\n})\r\nexport class ReportCountsFiveYearCardComponent implements OnInit {\r\n\r\n updateFromInput: boolean = false;\r\n publishedReportCountsByYear: PublishedReportCountsByYear[];\r\n\r\n FiveYearLineChart: typeof Highcharts = Highcharts;\r\n fiveYearLineChartOptions:any; // the actual value should be Highcharts.Options. it does not build with that.\r\n\r\n reportYearList: number[] = [];\r\n publishedReportCountRequiredPublicList: number[] = [];\r\n publishedReportCountRequiredInternalList: number[] = [];\r\n publishedReportCountVoluntaryPublicList: number[] = [];\r\n publishedReportCountVoluntaryInternalList: number[] = [];\r\n\r\n selectedReportYear: number; \r\n constructor( private analyticsService: AnalyticsService ) { }\r\n\r\n ngOnInit() { }\r\n\r\n\r\n\r\n loadChart(yearId:number,year:number)\r\n {\r\n\r\n this.selectedReportYear = year;\r\n this.analyticsService.getPublishedReportCountsByYear$(yearId,5).subscribe((data)=>{\r\n \r\n //console.log(data);\r\n\r\n\r\n this.publishedReportCountsByYear = data;\r\n // console.log(this.publishedReportCountsByYear);\r\n // console.log(this.publishedReportCountsByYear.length);\r\n\r\n this.reportYearList = [];\r\n this.publishedReportCountRequiredPublicList = [];\r\n this.publishedReportCountRequiredInternalList = [];\r\n this.publishedReportCountVoluntaryPublicList = [];\r\n this.publishedReportCountVoluntaryInternalList = [];\r\n \r\n for (let index = 0; index < this.publishedReportCountsByYear.length; index++) {\r\n this.reportYearList.push(this.publishedReportCountsByYear[index].reportYear);\r\n this.publishedReportCountRequiredPublicList.push(this.publishedReportCountsByYear[index].requiredPublicReportCount);\r\n this.publishedReportCountRequiredInternalList.push(this.publishedReportCountsByYear[index].requiredInternalReportCount);\r\n this.publishedReportCountVoluntaryPublicList.push(this.publishedReportCountsByYear[index].voluntaryPublicReportCount);\r\n this.publishedReportCountVoluntaryInternalList.push(this.publishedReportCountsByYear[index].voluntaryInternalReportCount);\r\n\r\n };\r\n\r\n \r\n this.GetChartOptions();\r\n this.updateChart();\r\n \r\n });\r\n\r\n }\r\n\r\n\r\nupdateChart()\r\n{\r\n this.updateFromInput = true;\r\n}\r\n\r\nGetChartOptions()\r\n{\r\n this.fiveYearLineChartOptions=\r\n {\r\n chart: {\r\n type: 'line',\r\n borderColor: null,\r\n borderWidth: 1,\r\n width:450,\r\n height:375\r\n },\r\n\r\n title: {\r\n text: 'Published Report Counts for ' + (this.selectedReportYear - 4) + '-' + this.selectedReportYear ,\r\n style:{\"color\":\"#337ab7\",\"fontSize\":\"16px\",\"fontWeight\":\"bold\" }\r\n },\r\n \r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.y + '';\r\n }\r\n },\r\n\r\n xAxis: {\r\n categories: this.reportYearList\r\n },\r\n\r\n yAxis: {\r\n title: {\r\n text: 'No. Of Reports'\r\n }\r\n },\r\n\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n\r\n credits:{\r\n enabled:false\r\n },\r\n\r\n series: [{\r\n type: 'line',\r\n name: 'Required-Public',\r\n data: this.publishedReportCountRequiredPublicList,\r\n color: Highcharts.getOptions().colors[7] \r\n }, {\r\n type: 'line',\r\n name: 'Required-Internal',\r\n data: this.publishedReportCountRequiredInternalList,\r\n color: Highcharts.getOptions().colors[8] \r\n }, {\r\n type: 'line',\r\n name: 'Voluntary-Public',\r\n data: this.publishedReportCountVoluntaryPublicList,\r\n color: Highcharts.getOptions().colors[3] \r\n }, {\r\n type: 'line',\r\n name: 'Voluntary-Internal',\r\n data: this.publishedReportCountVoluntaryInternalList,\r\n color: Highcharts.getOptions().colors[2] \r\n }]\r\n };\r\n\r\n}\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport * as Highcharts from \"highcharts\";\r\nimport HC_more from \"highcharts/highcharts-more\";\r\nimport { ReportCountByStatus } from \"../../../../models/analytics.model\";\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nimport { LookupService } from '../../../../services/lookups/lookup.service';\r\nHC_more(Highcharts);\r\n\r\n\r\n@Component({\r\n selector: 'app-reports-count-by-status-card',\r\n templateUrl: './reports-count-by-status-card.component.html',\r\n styleUrls: ['./reports-count-by-status-card.component.css']\r\n})\r\nexport class ReportsCountByStatusCardComponent implements OnInit {\r\n\r\n updateFromInput: boolean = false;\r\n reportStates:string[]=[];\r\n requiredReportCnt:ReportCountByStatus;\r\n voluntaryReportCnt:ReportCountByStatus;\r\n selectedReportYear: number;\r\n\r\n ReportCountByStatusChart: typeof Highcharts = Highcharts;\r\n ReportCountByStatusChartOptions:any;\r\n constructor(private lookupService:LookupService,private analyticsService: AnalyticsService) { }\r\n\r\n ngOnInit() {\r\n this.GetReportStates();\r\n }\r\n\r\n loadReportsCountsByStatusChart(yearId:number,year:number)\r\n {\r\n\r\n this.selectedReportYear = year;\r\n this.analyticsService.getReportsCountByStatus$(yearId).subscribe((data)=>{\r\n if(data)\r\n {\r\n this.requiredReportCnt= data.filter(x=>x.isRequired ===true)[0];\r\n this.voluntaryReportCnt= data.filter(x=>x.isRequired ===false)[0];\r\n\r\n this.GetChartOptions();\r\n this.updateFromInput=true;\r\n }\r\n });\r\n }\r\n\r\n GetChartOptions()\r\n {\r\n this.ReportCountByStatusChartOptions={\r\n chart: {\r\n type: 'column',\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n width:460,\r\n height:500\r\n },\r\n title: {\r\n text: 'Reports based on Status for ' + this.selectedReportYear,\r\n style:{\"color\":\"#337ab7\",\"fontSize\":\"16px\",\"fontWeight\":\"bold\" }\r\n },\r\n xAxis: {\r\n categories: this.reportStates\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'No. of Reports'\r\n },\r\n stackLabels: {\r\n enabled: true,\r\n style: {\r\n fontWeight: 'bold',\r\n color: ( // theme\r\n Highcharts.defaultOptions.title.style &&\r\n Highcharts.defaultOptions.title.style.color\r\n ) || 'gray'\r\n }\r\n }\r\n },\r\n // legend: {\r\n // align: 'right',\r\n // x: -30,\r\n // verticalAlign: 'top',\r\n // y: 25,\r\n // floating: true,\r\n // backgroundColor:\r\n // Highcharts.defaultOptions.legend.backgroundColor || 'white',\r\n // borderColor: '#CCC',\r\n // borderWidth: 1,\r\n // shadow: false\r\n // },\r\n tooltip: {\r\n headerFormat: '{point.x}
',\r\n pointFormat: '{series.name}: {point.y}
Total: {point.stackTotal}'\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: true\r\n }\r\n\r\n }\r\n\r\n },\r\n credits:{\r\n enabled:false\r\n },\r\n series: [{\r\n type:'column',\r\n name: 'Voluntary',\r\n data: [this.voluntaryReportCnt.notStarted,\r\n this.voluntaryReportCnt.draft,\r\n this.voluntaryReportCnt.submittedToPostApprover,\r\n this.voluntaryReportCnt.approvedAndSentToWashington,\r\n this.voluntaryReportCnt.returnedFromPostApprover,\r\n this.voluntaryReportCnt.returnedFromWashington,\r\n //this.voluntaryReportCnt.validated,\r\n this.voluntaryReportCnt.published,\r\n this.voluntaryReportCnt.hold\r\n ],//[12, 12, 18, 12, 12,10,10,10,10],\r\n color: Highcharts.getOptions().colors[7]\r\n },{\r\n type:'column',\r\n name: 'Required',\r\n data: [this.requiredReportCnt.notStarted,\r\n this.requiredReportCnt.draft,\r\n this.requiredReportCnt.submittedToPostApprover,\r\n this.requiredReportCnt.approvedAndSentToWashington,\r\n this.requiredReportCnt.returnedFromPostApprover,\r\n this.requiredReportCnt.returnedFromWashington,\r\n //this.requiredReportCnt.validated,\r\n this.requiredReportCnt.published,\r\n this.requiredReportCnt.hold\r\n ], //[15, 13, 14, 17, 21,10,10,10,10],\r\n color: Highcharts.getOptions().colors[8]\r\n }]\r\n };\r\n }\r\n\r\n\r\n private GetReportStates(){\r\n this.lookupService.getReportStates$().subscribe(data=>{\r\n\r\n this.reportStates =data.filter(x=>x.stateName != 'Validated').map(a=>a.stateName);\r\n this.GetChartOptions();\r\n this.updateFromInput=true;\r\n //console.log(this.reportStates);\r\n });\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as Highcharts from \"highcharts\";\r\nimport exporting from 'highcharts/modules/exporting';\r\nimport HC_more from \"highcharts/highcharts-more\";\r\nimport { AnalyticsService } from '../../../../services/analytics.service';\r\nHC_more(Highcharts);\r\nexporting(Highcharts);\r\n\r\n@Component({\r\n selector: 'app-reports-total-count-card',\r\n templateUrl: './reports-total-count-card.component.html',\r\n styleUrls: ['./reports-total-count-card.component.css']\r\n})\r\nexport class ReportsTotalCountCardComponent implements OnInit {\r\n\r\n pendingCount:number =0;\r\n completedCount:number=0;\r\n updateFromInput: boolean = false;\r\n //requiredReportchartOptionsString: string =\r\n RequiredReportsChart: typeof Highcharts = Highcharts;\r\n requiredReportchartOptions:Highcharts.Options;\r\n\r\n selectedReportYear: number;\r\n\r\n constructor(private analyticsService: AnalyticsService) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n loadProgressChart(yearId:number,year:number)\r\n {\r\n\r\n this.selectedReportYear = year;\r\n this.analyticsService.getRequiredReportsCountByYear$(yearId).subscribe((data)=>{\r\n\r\n //console.log(data);\r\n\r\n this.pendingCount =data.pendingRequiredReportsCount;\r\n this.completedCount = data.completedRequiredReportsCount;\r\n this.GetChartOptions();\r\n this.updateChart();\r\n });\r\n\r\n\r\n\r\n\r\n }\r\n updateChart()\r\n {\r\n //console.log(this.requiredReportchartOptionsString);\r\n //this.requiredReportchartOptions =JSON.parse(this.requiredReportchartOptionsString);\r\n this.updateFromInput = true;\r\n }\r\n GetChartOptions()\r\n {\r\n this.requiredReportchartOptions=\r\n {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n width:450,\r\n height:375,\r\n\r\n },\r\n title: {\r\n text: 'Required Reports Progress for ' + this.selectedReportYear,\r\n style:{\"color\":\"#337ab7\",\"fontSize\":\"16px\",\"fontWeight\":\"bold\" }\r\n },\r\n\r\n tooltip: {\r\n pointFormat: '{point.percentage:.1f}%'\r\n\r\n\r\n },\r\n\r\n plotOptions: {\r\n pie: {\r\n dataLabels: {\r\n enabled: false\r\n },\r\n startAngle: -90,\r\n endAngle: 90,\r\n center: ['50%', '75%'],\r\n size: '120%'\r\n }\r\n },\r\n credits:{\r\n enabled:false\r\n },\r\n\r\n legend: {\r\n align: 'center',\r\n verticalAlign: 'bottom',\r\n x: 0,\r\n y: 0\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: 'Required Reports Progress',\r\n innerSize: '70%',\r\n startAngle: -90,\r\n endAngle: 90,\r\n showInLegend: true,\r\n data: [\r\n {\r\n\r\n name: 'Completed: ' + this.completedCount,\r\n y:this.completedCount,\r\n color:Highcharts.getOptions().colors[7]\r\n },\r\n\r\n {\r\n\r\n name: 'Pending: ' + this.pendingCount,\r\n y:this.pendingCount,\r\n color: Highcharts.getOptions().colors[3]\r\n\r\n }\r\n ]\r\n }]\r\n\r\n };\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports-dashboard',\r\n templateUrl: './reports-dashboard.component.html',\r\n styleUrls: ['./reports-dashboard.component.css']\r\n})\r\nexport class ReportsDashboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { User,UserType } from '../../models/user.model';\r\nimport { RegistrationService } from '../../services/registration.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n\r\n@Component({\r\n selector: 'app-user-management',\r\n templateUrl: './user-management.component.html',\r\n styleUrls: ['./user-management.component.css']\r\n})\r\nexport class UserManagementComponent implements OnInit {\r\n statusSelected: string;\r\n users: User[];\r\n usersTemp: User[];\r\n userType: UserType;\r\n // lookup data\r\n userTypes: UserType[];\r\n userstatusSelected: string;\r\n lastName: string ;\r\n firstName: string ;\r\n\r\n //lastName: string;\r\n constructor(\r\n private _lookupService: LookupService,\r\n private _registrationService: RegistrationService,\r\n private _notifier: NotifierService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.statusSelected = 'Pending';\r\n this.getPendingHqUsers(); \r\n\r\n this._lookupService.getUserTypes().subscribe((data: UserType[]) => { \r\n this.userTypes =data.filter(type => type.typeName !== 'Unknown'); \r\n }); \r\n }\r\n\r\n search()\r\n { \r\n this.users=this.usersTemp;\r\n if (this.firstName!=undefined )\r\n {\r\n this.users= this.users.filter(u =>u.firstName.toLowerCase().indexOf(this.firstName.toLowerCase())!== -1);\r\n }\r\n if (this.lastName!=undefined)\r\n {\r\n this.users= this.users.filter(u =>u.lastName.toLowerCase().indexOf(this.lastName.toLowerCase())!== -1);\r\n }\r\n if (this.userType!=null )\r\n {\r\n this.users= this.users.filter(u =>u.userType.id===this.userType.id);\r\n } \r\n }\r\n onReset()\r\n {\r\n this.lastName='';\r\n this.firstName='';\r\n if (this.userType!=undefined )\r\n {\r\n this.userType=this.userType[0];\r\n }\r\n this.users=this.usersTemp;\r\n\r\n }\r\n onStatusSelection() {\r\n this.lastName='';\r\n this.firstName=''; \r\n this.userType=undefined;//this.userType[0];\r\n\r\n if (this.statusSelected === 'Active') {\r\n this.getActiveUsers();\r\n } else if(this.statusSelected === 'Pending'){\r\n this.getPendingHqUsers();\r\n }\r\n else\r\n {\r\n this.getDeactiveUsers();\r\n }\r\n }\r\n\r\n getActiveUsersSearch(userstatusSelected: string,lastName: string) {\r\n this._lookupService.getAllActiveUsers$().subscribe((users: User[]) => {\r\n this.users = users; \r\n });\r\n }\r\n\r\n getActiveUsers() {\r\n this._lookupService.getAllActiveUsers$().subscribe((users: User[]) => {\r\n this.usersTemp = users;\r\n this.users = users;\r\n });\r\n }\r\n\r\n \r\n getDeactiveUsers() {\r\n this._lookupService.getAllDeActiveUsers$().subscribe((users: User[]) => {\r\n this.usersTemp = users;\r\n this.users = users;\r\n });\r\n }\r\n\r\n getPendingHqUsers() {\r\n this._lookupService.getPendingHqUsers$().subscribe((users: User[]) => {\r\n this.usersTemp = users;\r\n this.users = users;\r\n });\r\n }\r\n reload(val:boolean)\r\n {\r\n if(val)\r\n {\r\n \r\n if (this.statusSelected === 'Active') {\r\n this.getActiveUsers();\r\n } else if(this.statusSelected === 'Pending'){\r\n this.getPendingHqUsers();\r\n }\r\n else\r\n {\r\n this.getDeactiveUsers();\r\n }\r\n }\r\n }\r\n\r\n activateUser(userToActivate: User) {\r\n this._registrationService.activateUser(userToActivate.id).subscribe(response => {\r\n if (response.ok) {\r\n this.onStatusSelection();\r\n this._notifier.notify('success', 'User activated successfully.');\r\n }\r\n });\r\n }\r\n\r\n deactivateUser(userToDeactivate: User) {\r\n this._registrationService.deactivateUser(userToDeactivate.id).subscribe(response => {\r\n if (response.ok) {\r\n this.onStatusSelection();\r\n this._notifier.notify('success', 'User deactivated successfully.');\r\n }\r\n });\r\n }\r\n}\r\n\r\n// export class RadioButtonDemo {\r\n// val1: string;\r\n\r\n// val2: string = 'Option 2';\r\n// }\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { User, UserType, AppRole} from '../../../models/user.model';\r\nimport { LookupService } from '../../../services/lookups/lookup.service';\r\nimport { RegistrationService } from '../../../services/registration.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-users-list',\r\n templateUrl: './users-list.component.html',\r\n styleUrls: ['./users-list.component.css']\r\n})\r\nexport class UsersListComponent implements OnInit {\r\n @Input() users: User[];\r\n @Input() userStatus: string;\r\n @Output() activateUser: EventEmitter = new EventEmitter();\r\n @Output() deactivateUser: EventEmitter = new EventEmitter();\r\n @Output() reload: EventEmitter = new EventEmitter();\r\n \r\n \r\n displayEditUserRoleDlg = false;\r\n userType: UserType;\r\n userRole: AppRole;\r\n userTypes: UserType[];\r\n appRoles: AppRole[];\r\n disableButton = true;\r\n disableSelection = true;\r\n userId: number;\r\n user: User;\r\n\r\n constructor(\r\n private registrationService: RegistrationService,\r\n private lookupService: LookupService,\r\n private _notifier: NotifierService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onActivateUser(user) {\r\n this.activateUser.emit(user);\r\n }\r\n\r\n onDeactivateUser(user) {\r\n this.deactivateUser.emit(user);\r\n }\r\n\r\n\r\n onEditUserRole(user) {\r\n //TODO\r\n //Should admin have capability to edit a user's user type and/or roles?\r\n this.userId = user.id;\r\n // console.log(\"USer Details === \" + JSON.stringify(user))\r\n // User Types -- Post or HQ\r\n this.lookupService.getUserTypes().subscribe((data: UserType[]) => {\r\n this.userTypes = data;\r\n this.userTypes = this.userTypes.filter(type => type.typeName !== 'Unknown');\r\n });\r\n this.displayEditUserRoleDlg = true;\r\n this.disableButton = true;\r\n this.disableSelection = true;\r\n }\r\n\r\n onChangeUserType(userType, user) {\r\n this.disableButton = true;\r\n this.disableSelection = false;\r\n this.lookupService.getAppRolesByUserTypeId(this.userType.id).subscribe((data: AppRole[]) => {\r\n this.appRoles = data;\r\n });\r\n }\r\n\r\n onChangeUserRole()\r\n {\r\n this.disableSelection = false;\r\n this.disableButton = false;\r\n }\r\n\r\n saveChanges(user)\r\n {\r\n this.registrationService.editUserTypeAndRole(this.userId,this.userType.id,this.userRole.id).subscribe(resp => {\r\n if (resp.ok) {\r\n // this.onStatusSelection();\r\n this.displayEditUserRoleDlg = false;\r\n this._notifier.notify('success', 'User role edited successfully.');\r\n this.reload.emit(true);\r\n }\r\n });\r\n\r\n }\r\n \r\n closeDialog()\r\n {\r\n this.displayEditUserRoleDlg = false;\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { NgxPermissionsModule, NgxPermissionsGuard } from 'ngx-permissions';\r\nimport { HasLocationsGuard} from './services/guards/has-locations-guard';\r\nimport { AuthTokenService } from './services/appInitialization/authToken.service';\r\nimport { AuthUserService } from './services/appInitialization/authUser.service';\r\n\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\nimport { User } from './models/user.model'; \r\nimport { Router, NavigationEnd } from '@angular/router'; \r\nimport { filter } from 'rxjs/operators';\r\nimport { HttpStatusNotifierService } from './services/http-status-notifier.service';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { environment } from '../environments/environment';\r\n\r\ndeclare let gtag: Function;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class AppComponent {\r\n private _user: User;\r\n GAId: string;\r\n constructor(private router: Router, private localStorage: LocalStorage,\r\n private authUserService: AuthUserService, private spinner: NgxSpinnerService,\r\n private httpStatus: HttpStatusNotifierService, private notifier: NotifierService){}\r\n\r\n ngOnInit() {\r\n\r\n this.displayUserNotification();\r\n this.setUpAnalytics();\r\n\r\n this._user = this.authUserService.AuthUser;\r\n if(this._user == undefined)\r\n {\r\n \r\n }\r\n else\r\n {\r\n if (this._user.userStatus.id == 2){\r\n this.router.navigate(['registration']); //navigate pending activation page\r\n } else {\r\n if (this._user.userType.typeName != \"Unknown\" && this._user.userLocations.length == 0) {\r\n this.router.navigate(['user-profile']);\r\n }\r\n else\r\n {\r\n this.router.navigate(['home']);\r\n }\r\n }\r\n }\r\n\r\n this.httpStatus.getHttpStatus().subscribe((status:boolean) => {\r\n if(status) {\r\n this.spinner.show();\r\n }\r\n if(!status){\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n\r\n private async displayUserNotification() : Promise {\r\n return await this.localStorage.getItem('UserNotification')\r\n .toPromise()\r\n .then((notification: string) => {\r\n if (!(notification == null)) {\r\n this.showNotification('error', notification);\r\n this.localStorage.removeItem('UserNotification')\r\n .subscribe(() => {});\r\n }\r\n });\r\n }\r\n\r\n public showNotification( type: string, message: string ): void {\r\n\t\tthis.notifier.notify( type, message );\r\n\t}\r\n\r\n private setUpAnalytics() {\r\n this.GAId = environment.GAId;\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe((event: NavigationEnd) => {\r\n gtag('config', this.GAId,\r\n {\r\n page_path: event.urlAfterRedirects\r\n }\r\n );\r\n });\r\n }\r\n}","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, APP_INITIALIZER, Injector } from '@angular/core';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { PanelModule, Panel} from 'primeng/panel';\r\nimport { InputTextModule} from 'primeng/InputText';\r\nimport { TabViewModule} from 'primeng/TabView';\r\nimport { OverlayPanelModule} from 'primeng/OverlayPanel';\r\n\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { TreeNode } from 'primeng/api';\r\n\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { NotifierModule, NotifierOptions } from 'angular-notifier';\r\nimport { AppComponent } from './app.component';\r\nimport { HeaderComponent } from './layout/header/header.component';\r\nimport { FooterComponent } from './layout/footer/footer.component';\r\nimport { BreadcrumbsComponent } from './layout/breadcrumbs/breadcrumbs.component';\r\nimport { ContentareaComponent } from './layout/contentarea/contentarea.component';\r\nimport { NavbarComponent } from './layout/navbar/navbar.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\n\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { TreeSelectModule } from 'primeng/treeselect'\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { DatePipe } from '@angular/common';\r\nimport {AccordionModule} from 'primeng/accordion';\r\n\r\nimport {CarouselModule} from 'primeng/carousel';\r\nimport {HighchartsChartModule} from 'highcharts-angular';\r\n\r\n// import { DropdownModule } from 'primeng/primeng';\r\n// import {DataTableModule,SharedModule,InputTextModule,PanelModule,\r\n// ButtonModule,MessagesModule,GrowlModule,TabViewModule,\r\n// ConfirmDialogModule,ConfirmationService} from 'primeng/primeng';\r\n\r\nimport { HomeComponent } from './home/home.component';\r\nimport { RegistrationComponent } from './registration/registration.component';\r\nimport { Observable } from 'rxjs';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { NgxPermissionsModule, NgxPermissionsGuard } from 'ngx-permissions';\r\nimport { HasLocationsGuard } from './services/guards/has-locations-guard';\r\nimport { AuthTokenService } from './services/appInitialization/authToken.service';\r\nimport { AuthUserService } from './services/appInitialization/authUser.service';\r\nimport { TokenInterceptor } from './services/appInitialization/token.Interceptor';\r\nimport { LookupService } from './services/lookups/lookup.service';\r\nimport { LookupAdminService } from './services/lookups/lookupadmin.service';\r\nimport { RegistrationService } from './services/registration.service';\r\nimport { UserProfileComponent } from './user-profile/user-profile.component';\r\nimport { PostUserComponent } from './post-user/post-user.component';\r\nimport { HqUserComponent } from './hq-user/hq-user.component';\r\nimport { ReportdashboardComponent } from './reportdashboard/reportdashboard.component';\r\nimport { ReportlistingComponent } from './reportdashboard/reportlisting/reportlisting.component';\r\nimport { ReportsComponent } from './reports/reports.component';\r\nimport { RequiredreportscheduleComponent } from './requiredreportschedule/requiredreportschedule.component';\r\n\r\nimport { ReportService } from './services/report.service';\r\nimport { ReportdashboardService } from './services/reportdashboard.service';\r\nimport { ReportMetadataResolver } from './services/resolvers/reportMetadata.resolver';\r\nimport { ReportingInstructionsComponent } from './reportinginstructions/reportinginstructions/reportinginstructions.component';\r\nimport { FileuploadComponent } from './reportinginstructions/fileupload/fileupload.component';\r\n//import { ReportlistingComponent } from './search/reportlisting/reportlisting.component';\r\nimport { SearchresultsComponent } from './search/searchresults/searchresults.component';\r\n\r\nimport { ExternaluserhomeComponent } from './home/externaluserhome/externaluserhome.component';\r\nimport { InternaluserhomeComponent } from './home/internaluserhome/internaluserhome.component';\r\nimport { AnnoucmentsComponent } from './home/annoucments/annoucments.component';\r\nimport { AlertsComponent } from './home/alerts/alerts.component';\r\nimport { DashboardComponent } from './home/dashboard/dashboard.component';\r\nimport { ReportfilterComponent } from './myreports/reportfilter/reportfilter.component';\r\nimport { ReportlineitemComponent } from './myreports/reportlineitem/reportlineitem.component';\r\nimport { CommentsComponent } from './myreports/comments/comments.component';\r\nimport { ReportassignmentComponent } from './reportassignment/reportassignment/reportassignment.component';\r\nimport { ReportscheduleComponent } from './reportschedule/reportschedule.component';\r\nimport { FAQComponent } from './faq/faq.component';\r\nimport { HelpComponent } from './help/help.component';\r\n\r\nimport { OAuthToken } from './models/oAuthToken.model';\r\nimport { ReportScheduleService } from './services/reportschedule.service';\r\nimport { RequiredreportscheduleService } from './services/requiredreportschedule.service';\r\nimport { RequiredrptmetadataComponent } from './reportdashboard/requiredrptmetadata/requiredrptmetadata.component';\r\nimport { VoluntaryrptmetadataComponent } from './reportdashboard/voluntaryrptmetadata/voluntaryrptmetadata.component';\r\nimport { HttpStatusNotifierService } from './services/http-status-notifier.service';\r\nimport { CanAccessDirective } from './directive/can-access.directive';\r\nimport { PermissionsService } from './services/permissions.service';\r\nimport { ReportworkflowComponent } from './reportdashboard/reportworkflow/reportworkflow.component';\r\nimport { ReporthistoryComponent } from './reportdashboard/reporthistory/reporthistory.component';\r\nimport { ReportingInstructionsService } from './services/reportinstructions.service';\r\nimport { SearchComponent } from './search/search.component';\r\nimport { AdminModule } from './admin/admin.module';\r\nimport { SearchService } from './services/search.service';\r\nimport { ReportattachmentsComponent } from './reportdashboard/reportattachments/reportattachments.component';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport { QuickLinksComponent } from './quick-links/quick-links.component';\r\nimport { ReleaseNoteComponent } from './release-note/release-note.component';\r\nimport { LayoutsLibModule } from 'layouts-lib';\r\nimport { BreadcrumbModule } from 'angular-crumbs';\r\nimport { VersionHistoryComponent } from './search/version-history/version-history.component';\r\nimport { TodayReportComponent } from './home/today-report/today-report.component';\r\nimport { ReleaseScheduleComponent } from './home/release-schedule/release-schedule.component';\r\nimport { PostByCountryComponent } from './home/post-by-country/post-by-country.component';\r\nimport { PercentageReportByCountryComponent } from './home/percentage-report-by-country/percentage-report-by-country.component';\r\nimport { TopFiveReportCategoriesComponent } from './home/top-five-report-categories/top-five-report-categories.component';\r\nimport { HomeSearchComponent } from './home/home-search/home-search.component';\r\nimport { SearchDataService } from './services/searchData';\r\n\r\n// import { APP_BASE_HREF, HashLocationStrategy, LocationStrategy } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n BreadcrumbsComponent,\r\n ContentareaComponent,\r\n NavbarComponent,\r\n HomeComponent,\r\n RegistrationComponent,\r\n UserProfileComponent,\r\n PostUserComponent,\r\n HqUserComponent,\r\n ReportsComponent,\r\n ReportdashboardComponent,\r\n RequiredreportscheduleComponent,\r\n ReportingInstructionsComponent,\r\n FileuploadComponent,\r\n ReportlistingComponent,\r\n SearchresultsComponent,\r\n ExternaluserhomeComponent,\r\n InternaluserhomeComponent,\r\n AnnoucmentsComponent,\r\n AlertsComponent,\r\n DashboardComponent,\r\n ReportfilterComponent,\r\n ReportlineitemComponent,\r\n CommentsComponent,\r\n ReportassignmentComponent,\r\n ReportscheduleComponent,\r\n RequiredrptmetadataComponent,\r\n VoluntaryrptmetadataComponent,\r\n CanAccessDirective,\r\n ReportworkflowComponent,\r\n ReporthistoryComponent,\r\n SearchComponent,\r\n FAQComponent,\r\n HelpComponent,\r\n ReportattachmentsComponent,\r\n QuickLinksComponent,\r\n ReleaseNoteComponent,\r\n VersionHistoryComponent,\r\n TodayReportComponent,\r\n ReleaseScheduleComponent,\r\n PostByCountryComponent,\r\n PercentageReportByCountryComponent,\r\n TopFiveReportCategoriesComponent,\r\n HomeSearchComponent\r\n ],\r\n imports: [\r\n AutoCompleteModule,\r\n BrowserModule,\r\n CheckboxModule,\r\n CalendarModule,\r\n MultiSelectModule,\r\n TreeSelectModule,\r\n ListboxModule,\r\n DropdownModule,\r\n RadioButtonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BrowserAnimationsModule,\r\n NoopAnimationsModule,\r\n PanelModule,\r\n DialogModule,\r\n TabViewModule,\r\n InputTextModule,\r\n ConfirmDialogModule,\r\n NgxPermissionsModule.forRoot(),\r\n NgxSpinnerModule,\r\n NotifierModule,\r\n FileUploadModule,\r\n TreeModule,\r\n TreeTableModule,\r\n AccordionModule,\r\n OverlayPanelModule,\r\n CarouselModule,\r\n HighchartsChartModule,\r\n RouterModule.forRoot(\r\n [\r\n {\r\n path: 'admin',\r\n loadChildren:()=>AdminModule, //'./admin/admin.module#AdminModule',\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Admin',\r\n permissions: {\r\n only: ['Admin']\r\n }\r\n }\r\n },\r\n {\r\n path: 'home',\r\n component: HomeComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Home',\r\n permissions: {\r\n // User Activated w/ AppRole\r\n only: ['Activated'],\r\n redirectTo: 'registration'\r\n }\r\n }\r\n },\r\n {\r\n path: 'registration',\r\n component: RegistrationComponent,\r\n canDeactivate: [HasLocationsGuard],\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Registration',\r\n permissions: {\r\n // Guest User, New or Registered\r\n only: ['Guest', 'New', 'Registered', 'Deactivated'],\r\n redirectTo: ''\r\n }\r\n }\r\n },\r\n {\r\n path: 'user-profile',\r\n component: UserProfileComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n canDeactivate: [HasLocationsGuard],\r\n data: {\r\n breadcrumb: 'My Profile',\r\n permissions: {\r\n // Registered\r\n only: ['Registered', 'Activated'],\r\n redirectTo: ''\r\n }\r\n }\r\n },\r\n {\r\n path: 'reportinginstructions',\r\n component: ReportingInstructionsComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Reporting Instructions',\r\n permissions: {\r\n only: ['Author', 'Approver', 'Admin', 'Power User', 'SME']\r\n }\r\n }\r\n },\r\n {\r\n path: 'reports',\r\n component: ReportsComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Reports',\r\n permissions: {\r\n only: ['Author', 'Approver', 'Admin', 'Power User']\r\n }\r\n }\r\n },\r\n {\r\n path: 'reportdashboard',\r\n component: ReportdashboardComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'My Reports',\r\n permissions: {\r\n only: ['Registered', 'Activated'],\r\n redirectTo: ''\r\n }\r\n }\r\n // canActivate: [NgxPermissionsGuard],\r\n // data: {\r\n // permissions: {\r\n // only: ['Author', 'Approver', 'Admin', 'Power User', 'SME']\r\n // }\r\n // }\r\n },\r\n {\r\n path: 'requiredreportschedule',\r\n component: RequiredreportscheduleComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n // canDeactivate: [HasLocationsGuard],\r\n data: {\r\n breadcrumb: 'Required Report Schedule',\r\n permissions: {\r\n only: ['Registered', 'Activated'],\r\n redirectTo: ''\r\n }\r\n }\r\n },\r\n\r\n {\r\n path: 'reportschedule',\r\n component: ReportscheduleComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Report Schedule',\r\n permissions: {\r\n only: ['Registered', 'Activated'],\r\n redirectTo: ''\r\n }\r\n }\r\n },\r\n {\r\n path: 'reports',\r\n component: ReportsComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Reports',\r\n permissions: {\r\n only: ['Registered', 'Activated'],\r\n redirectTo: ''\r\n }\r\n }\r\n },\r\n {\r\n path: 'search',\r\n component: SearchComponent,\r\n canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Search',\r\n permissions: {\r\n only: ['Registered', 'Activated'],\r\n redirectTo: ''\r\n }\r\n }\r\n },\r\n {\r\n path: 'faq',\r\n component: FAQComponent,\r\n //canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'FAQ',\r\n // permissions: {\r\n // redirectTo: ''\r\n }\r\n // }\r\n },\r\n {\r\n path: 'help',\r\n component: HelpComponent,\r\n // canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Help',\r\n // permissions: {\r\n // redirectTo: ''\r\n }\r\n // }\r\n },\r\n {\r\n path: 'releasenote',\r\n component: ReleaseNoteComponent,\r\n // canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Release Note',\r\n // permissions: {\r\n // redirectTo: ''\r\n // }\r\n }\r\n },\r\n {\r\n path: 'quick-links/:dayCnt',\r\n component: QuickLinksComponent,\r\n // canActivate: [NgxPermissionsGuard],\r\n data: {\r\n breadcrumb: 'Past dayCnt Days Report',\r\n // permissions: {\r\n // redirectTo: ''\r\n // }\r\n }\r\n }\r\n ]\r\n // , { onSameUrlNavigation: 'reload' }\r\n , {useHash: true}\r\n ),\r\n // DataTableModule,SharedModule,InputTextModule,\r\n // ButtonModule,PanelModule,TabViewModule,\r\n // MessagesModule,GrowlModule\r\n // ConfirmDialogModule,MessagesModule,GrowlModule\r\n TableModule,\r\n DropdownModule,\r\n InputTextareaModule,\r\n LayoutsLibModule,\r\n BreadcrumbModule\r\n ],\r\n providers: [\r\n HttpStatusNotifierService,\r\n HttpClient,\r\n CookieService,\r\n AuthTokenService,\r\n AuthUserService,\r\n LookupService,\r\n LookupAdminService,\r\n HasLocationsGuard,\r\n RegistrationService,\r\n ReportService,\r\n ReportdashboardService,\r\n ReportMetadataResolver,\r\n ReportScheduleService,\r\n RequiredreportscheduleService,\r\n ReportingInstructionsService,\r\n HttpStatusNotifierService,\r\n HttpClient,\r\n AuthTokenService,\r\n AuthUserService,\r\n LookupService,\r\n HasLocationsGuard,\r\n RegistrationService,\r\n ReportdashboardService,\r\n ReportMetadataResolver,\r\n ReportScheduleService,\r\n RequiredreportscheduleService,\r\n PermissionsService,\r\n SearchService,\r\n SearchDataService,\r\n DatePipe,\r\n // { provide: APP_BASE_HREF, useValue: '', },\r\n // { provide: LocationStrategy, useClass: HashLocationStrategy },\r\n { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: tokenSwapperFactory,\r\n deps: [AuthTokenService, AuthUserService, LocalStorage],\r\n multi: true\r\n }\r\n ],\r\n bootstrap: [AppComponent],\r\n exports: [HomeComponent, ReportattachmentsComponent]\r\n})\r\nexport class AppModule {}\r\n\r\nfunction getParameterByName(name) {\r\n // regex to get temp token from url\r\n const url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) {\r\n return null;\r\n }\r\n if (!results[2]) {\r\n return '';\r\n }\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n}\r\n\r\nfunction getFixedToken() {\r\n // anonymous user token\r\n return '00000000-0000-0000-0000-00000000000000000000-0000-0000-0000-000000000000';\r\n}\r\n\r\nfunction getAuthTokenAndUser(\r\n authTokenService: AuthTokenService,\r\n authUserService: AuthUserService,\r\n localStorage: LocalStorage,\r\n tempToken\r\n): Promise {\r\n // clear local storage\r\n // localStorage.clear().subscribe(() => {});\r\n\r\n // use temptoken from url OR fixed\r\n // get OAuth Token & User object\r\n const p = authTokenService.swapToken(tempToken).then(t => {\r\n return authUserService.getAuthUser();\r\n });\r\n return p;\r\n}\r\n\r\nexport function tokenSwapperFactory(\r\n authTokenService: AuthTokenService,\r\n authUserService: AuthUserService,\r\n localStorage: LocalStorage\r\n): Function {\r\n return () => {\r\n //console.log('In Token Swapper Factory');\r\n let tempToken = null;\r\n try {\r\n // get temp token in url\r\n tempToken = getParameterByName('tempToken');\r\n\r\n // no temp token in url\r\n if (tempToken == null) {\r\n // check local storage for oauth token\r\n return localStorage\r\n .getItem('oauth_token')\r\n .toPromise()\r\n .then((token:OAuthToken) => {\r\n // token exists in local storage to use\r\n if (token !== null) {\r\n // set AuthTokenService AuthToken variable\r\n // get User w/token\r\n authTokenService.AuthToken = token;\r\n return authUserService.getAuthUser();\r\n } else {\r\n // no oauth token in local storage\r\n\r\n // get anonymous user temptoken\r\n // invoke getAuthTokenAndUser\r\n tempToken = getFixedToken();\r\n return getAuthTokenAndUser(authTokenService, authUserService, localStorage, tempToken);\r\n }\r\n });\r\n } else {\r\n // temp token exists in url\r\n\r\n // invoke getAuthTokenAndUser\r\n return getAuthTokenAndUser(authTokenService, authUserService, localStorage, tempToken);\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n return Function();\r\n }\r\n };\r\n}\r\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { PermissionsService } from '../services/permissions.service';\r\n\r\n@Directive({\r\n selector: '[appCanAccess]'\r\n})\r\nexport class CanAccessDirective implements OnInit, OnDestroy {\r\n\r\n @Input() set appCanAccess(value: string | string[]) {\r\n this.applyPermission(value);\r\n }\r\n private permission$: Subscription;\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private workflowEvents: PermissionsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private applyPermission(value: string | string[]): void {\r\n //console.log(value);\r\n this.permission$ = this.workflowEvents.checkAuthorization(value)\r\n .subscribe(authorized => {\r\n //console.log('value', value);\r\n //console.log('authorized', authorized);\r\n if (authorized) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n //console.log(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.permission$.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-faq',\r\n templateUrl: './faq.component.html',\r\n styleUrls: ['./faq.component.css']\r\n})\r\nexport class FAQComponent implements OnInit {\r\n ngOnInit() {}\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-help',\r\n templateUrl: './help.component.html',\r\n styleUrls: ['./help.component.css']\r\n})\r\nexport class HelpComponent implements OnInit {\r\n ngOnInit() {}\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-alerts',\r\n templateUrl: './alerts.component.html',\r\n styleUrls: ['./alerts.component.css']\r\n})\r\nexport class AlertsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-annoucments',\r\n templateUrl: './annoucments.component.html',\r\n styleUrls: ['./annoucments.component.css']\r\n})\r\nexport class AnnoucmentsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, Output } from '@angular/core';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { ReportMetadata, ReportYear, ReportSchedule, ReportsForToday, ReportScheduleForHome } from '../../models/report.model';\r\nimport { delay, finalize } from 'rxjs/operators';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ReleaseScheduleComponent } from '../release-schedule/release-schedule.component'\r\nimport { TodayReportComponent } from '../today-report/today-report.component'\r\nimport { PostByCountryComponent } from '../post-by-country/post-by-country.component';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { User, Location } from '../../models/user.model';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { PercentageReportByCountryComponent } from '../percentage-report-by-country/percentage-report-by-country.component';\r\nimport { TopFiveReportCategoriesComponent } from '../top-five-report-categories/top-five-report-categories.component';\r\n\r\n@Component({\r\n selector: 'app-externaluserhome',\r\n templateUrl: './externaluserhome.component.html',\r\n styleUrls: ['./externaluserhome.component.css']\r\n})\r\nexport class ExternaluserhomeComponent implements OnInit {\r\n todayReportData:ReportsForToday[];\r\n reportScheduleData:ReportScheduleForHome[];\r\n user: User = this.authUserService._user;\r\n countryList: Location[];\r\n selectedCountryId: number;\r\n countryName: string;\r\n publishTime: Date;\r\n today: Date = new Date();\r\n @ViewChild(ReleaseScheduleComponent) releaseSchedule: ReleaseScheduleComponent;\r\n @ViewChild(TodayReportComponent) todayReport: TodayReportComponent;\r\n @ViewChild(PostByCountryComponent) reportCountry: PostByCountryComponent;\r\n @ViewChild(PercentageReportByCountryComponent) percentageReport: PercentageReportByCountryComponent;\r\n @ViewChild(TopFiveReportCategoriesComponent) topFiveReport: TopFiveReportCategoriesComponent;\r\n\r\n constructor(private reportService:ReportService,\r\n private spinner: NgxSpinnerService,\r\n private authUserService: AuthUserService,\r\n private lookupService: LookupService) { }\r\n\r\n ngOnInit() {\r\n this.publishTime = new Date();\r\n this.publishTime.setHours(parseInt(environment.reportPublishTime.split(':')[0]));\r\n this.publishTime.setMinutes(parseInt(environment.reportPublishTime.split(':')[1]));\r\n this.publishTime.setSeconds(parseInt(environment.reportPublishTime.split(':')[2]));\r\n this.publishTime.setHours(this.publishTime.getHours() + (this.checkDST ? 4 : 5) - this.publishTime.getTimezoneOffset()/60);\r\n if(new Date() > this.publishTime){\r\n var todayReport = document.getElementById(\"today-report-container\");\r\n todayReport.style.height = \"102.5%\";\r\n }\r\n\r\n this.reportService.getReportsForToday(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportsForToday[])=>{\r\n if(data.length>0){\r\n this.todayReportData = data.filter(x => x.isPublic = true);\r\n }\r\n });\r\n\r\n this.reportService.getReportScheduleForHome(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportScheduleForHome[])=>{\r\n if(data.length>0){\r\n this.reportScheduleData = data;\r\n }\r\n });\r\n\r\n this.lookupService.getAllCountries$()\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:Location[])=>{\r\n if(data.length>0){\r\n this.countryList = data.filter(x => x.fasCountryCode != null && x.locationCode != null && x.locationTypeId == 6);\r\n this.onChangeCountry(this.countryList.find(x => x.locationName == 'Canada').id);\r\n }\r\n });\r\n\r\n }\r\n \r\n refreshTodayReport(){\r\n this.spinner.show();\r\n this.reportService.getReportsForToday(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportsForToday[])=>{\r\n if(data.length>0){\r\n this.todayReportData = data;\r\n }\r\n });\r\n }\r\n\r\n refreshReportSchedule(){\r\n this.spinner.show();\r\n this.reportService.getReportScheduleForHome(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportScheduleForHome[])=>{\r\n if(data.length>0){\r\n this.reportScheduleData = data;\r\n }\r\n });\r\n }\r\n \r\n onChangeCountry(countryId){\r\n this.countryName = this.countryList.find(x=>x.id==countryId).locationName;\r\n this.selectedCountryId = countryId;\r\n this.reportCountry.loadCountry(countryId);\r\n this.percentageReport.getCountryReportRatio(countryId, this.user.id);\r\n this.topFiveReport.getTopFiveCategories(countryId, this.user.id);\r\n }\r\n\r\n checkDST(){\r\n var january = new Date(this.today.getFullYear(), 0, 1).getTimezoneOffset();\r\n var july = new Date(this.today.getFullYear(), 6, 1).getTimezoneOffset();\r\n return Math.max(january, july) != this.today.getTimezoneOffset();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SelectItem, TreeNode } from 'primeng/api';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { Router } from '@angular/router';\r\nimport { SearchDataService } from '../../services/searchData';\r\n\r\n@Component({\r\n selector: 'app-home-search',\r\n templateUrl: './home-search.component.html',\r\n styleUrls: ['./home-search.component.css']\r\n})\r\nexport class HomeSearchComponent implements OnInit {\r\n keyword: string;\r\n reportCategories: TreeNode[];\r\n countries: SelectItem[] = [];\r\n selectedCountries: Number[] = [];\r\n selectedNodes: TreeNode[] = [];\r\n\r\n constructor(\r\n private lookupService: LookupService,\r\n private router: Router,\r\n private searchDataService: SearchDataService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.LoadReportCategoryHierarchy();\r\n this.LoadAllCountries();\r\n }\r\n\r\n search() {\r\n this.searchDataService.setSearchData(this.keyword, [], []);\r\n this.router.navigate(['/search']);\r\n }\r\n\r\n advSearch() {\r\n this.searchDataService.setSearchData(\"\", this.selectedNodes, this.selectedCountries);\r\n this.router.navigate(['/search']);\r\n }\r\n\r\n private LoadReportCategoryHierarchy() {\r\n this.lookupService.getReportCategoryHierarchy$()\r\n .subscribe(data => {\r\n this.reportCategories = Array.of(data);\r\n this.reportCategories[0].expanded = true;\r\n this.reportCategories[0].children.sort((a, b) => {\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n });\r\n }\r\n\r\n private LoadAllCountries() {\r\n this.lookupService.getAllCountries$().subscribe(countryList => {\r\n this.countries.push({ label: 'All Countries', value: '' ,styleClass:'p-state-highlight'});\r\n countryList.forEach(val => {\r\n this.countries.push({ label: val.locationName.toString(), value: val.id });\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, Output } from '@angular/core';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { ReportYear, ReportSchedule, ReportsForToday, ReportScheduleForHome } from '../../models/report.model';\r\nimport { delay, finalize } from 'rxjs/operators';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ReleaseScheduleComponent } from '../release-schedule/release-schedule.component'\r\nimport { TodayReportComponent } from '../today-report/today-report.component'\r\nimport { PostByCountryComponent } from '../post-by-country/post-by-country.component';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { User, Location } from '../../models/user.model';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { PercentageReportByCountryComponent } from '../percentage-report-by-country/percentage-report-by-country.component';\r\nimport { TopFiveReportCategoriesComponent } from '../top-five-report-categories/top-five-report-categories.component';\r\n\r\n@Component({\r\n selector: 'app-internaluserhome',\r\n templateUrl: './internaluserhome.component.html',\r\n styleUrls: ['./internaluserhome.component.css']\r\n})\r\nexport class InternaluserhomeComponent implements OnInit {\r\n todayReportData:ReportsForToday[];\r\n releaseScheduleData:ReportScheduleForHome[];\r\n user: User = this.authUserService._user;\r\n releaseScheduleTitle: string;\r\n countryList: Location[];\r\n selectedCountryId: number;\r\n countryName: string;\r\n publishTime: Date;\r\n today: Date = new Date();\r\n @ViewChild(ReleaseScheduleComponent) releaseSchedule: ReleaseScheduleComponent;\r\n @ViewChild(TodayReportComponent) todayReport: TodayReportComponent;\r\n @ViewChild(PostByCountryComponent) reportCountry: PostByCountryComponent;\r\n @ViewChild(PercentageReportByCountryComponent) percentageReport: PercentageReportByCountryComponent;\r\n @ViewChild(TopFiveReportCategoriesComponent) topFiveReport: TopFiveReportCategoriesComponent;\r\n\r\n constructor(private reportService:ReportService,\r\n private spinner: NgxSpinnerService,\r\n private authUserService: AuthUserService,\r\n private lookupService: LookupService) { }\r\n\r\n ngOnInit() {\r\n this.publishTime = new Date();\r\n this.publishTime.setHours(parseInt(environment.reportPublishTime.split(':')[0]));\r\n this.publishTime.setMinutes(parseInt(environment.reportPublishTime.split(':')[1]));\r\n this.publishTime.setSeconds(parseInt(environment.reportPublishTime.split(':')[2]));\r\n this.publishTime.setHours(this.publishTime.getHours() + (this.checkDST ? 4 : 5) - this.publishTime.getTimezoneOffset()/60);\r\n\r\n if(this.user.userRoles.find(x => x.roleName == \"Admin\")){\r\n this.releaseScheduleTitle = \"Release Schedule\";\r\n }\r\n else if(this.user.userRoles.find(x => x.roleName == \"Approver\" || x.roleName == \"Author\")){\r\n this.releaseScheduleTitle = \"Release Schedule\";\r\n }\r\n else if(this.user.userRoles.find(x => x.roleName == \"Power User\")){\r\n this.releaseScheduleTitle = \"Release Schedule\";\r\n }\r\n else{\r\n this.releaseScheduleTitle = \"Release Schedule\";\r\n }\r\n\r\n this.reportService.getReportsForToday(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportsForToday[])=>{\r\n if(data.length>0){\r\n this.todayReportData = data;\r\n }\r\n });\r\n\r\n this.reportService.getReportScheduleForHome(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportScheduleForHome[])=>{\r\n if(data.length>0){\r\n this.releaseScheduleData = data;\r\n }\r\n });\r\n \r\n this.lookupService.getAllCountries$()\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:Location[])=>{\r\n if(data.length>0){\r\n this.countryList = data.filter(x => x.fasCountryCode != null && x.locationCode != null && x.locationTypeId == 6);\r\n this.onChangeCountry(this.countryList.find(x => x.locationName == 'Canada').id);\r\n }\r\n });\r\n \r\n }\r\n\r\n refreshTodayReport(){\r\n this.spinner.show();\r\n this.reportService.getReportsForToday(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportsForToday[])=>{\r\n if(data.length>0){\r\n this.todayReportData = data;\r\n }\r\n });\r\n }\r\n\r\n refreshReportSchedule(){\r\n this.spinner.show();\r\n this.reportService.getReportScheduleForHome(this.user.id, 10000)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportScheduleForHome[])=>{\r\n if(data.length>0){\r\n this.releaseScheduleData = data;\r\n }\r\n });\r\n }\r\n \r\n onChangeCountry(countryId){\r\n this.countryName = this.countryList.find(x=>x.id==countryId).locationName;\r\n this.selectedCountryId = countryId;\r\n this.reportCountry.loadCountry(countryId);\r\n this.percentageReport.getCountryReportRatio(countryId, this.user.id);\r\n this.topFiveReport.getTopFiveCategories(countryId, this.user.id);\r\n }\r\n\r\n checkDST(){\r\n var january = new Date(this.today.getFullYear(), 0, 1).getTimezoneOffset();\r\n var july = new Date(this.today.getFullYear(), 6, 1).getTimezoneOffset();\r\n return Math.max(january, july) != this.today.getTimezoneOffset();\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { element } from 'protractor';\r\nimport { User, Location } from '../../models/user.model';\r\nimport { CountryReport } from '../../models/report.model';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-percentage-report-by-country',\r\n templateUrl: './percentage-report-by-country.component.html',\r\n styleUrls: ['./percentage-report-by-country.component.css']\r\n})\r\nexport class PercentageReportByCountryComponent implements OnInit {\r\n occupiedRatio: number;\r\n remainRatio: number;\r\n countryReportCount: number;\r\n @Input() selectedCountryId: number;\r\n lessThanOne: boolean = false;;\r\n user: User = this.authUserService._user;\r\n constructor(private lookupService: LookupService,\r\n private authUserService: AuthUserService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n getCountryReportRatio(selectedCountryId, appUserId){\r\n this.lookupService.GetPercentageReportByCountry(selectedCountryId, appUserId)\r\n .pipe()\r\n .subscribe((result: CountryReport)=>{\r\n this.countryReportCount = result.countryReportCount;\r\n this.occupiedRatio = Math.round(result.countryReportCount / result.totalReportCount * 100);\r\n this.remainRatio = 100 - this.occupiedRatio;\r\n var occupied = document.getElementById('country-bar-occupied');\r\n var remain = document.getElementById('country-bar-remain');\r\n var container = document.getElementById('country-bar-container');\r\n if(this.countryReportCount < 1){\r\n container.style.display = \"none\";\r\n }\r\n else{\r\n container.style.display = \"inline-block\";\r\n if(this.occupiedRatio < 1){\r\n this.lessThanOne = true;\r\n occupied.style.width = (0.5).toString() + \"%\";\r\n remain.style.marginLeft = \"0.5%\";\r\n remain.style.width = (99).toString() + \"%\";\r\n }\r\n else{\r\n this.lessThanOne = false;\r\n occupied.style.width = (this.occupiedRatio).toString() + \"%\";\r\n remain.style.marginLeft = \"0.5%\";\r\n remain.style.width = (this.remainRatio - 0.5).toString() + \"%\";\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { Location } from '../../models/user.model';\r\n\r\n@Component({\r\n selector: 'app-post-by-country',\r\n templateUrl: './post-by-country.component.html',\r\n styleUrls: ['./post-by-country.component.css']\r\n})\r\nexport class PostByCountryComponent implements OnInit {\r\n @Input() countryList: Location[];\r\n countryName: string;\r\n postsFirst: Location[];\r\n postsSecond: Location[];\r\n selectedCountry: Location;\r\n flagURL: string;\r\n FASUrl: string;\r\n constructor(private notifier:NotifierService,\r\n private spinner: NgxSpinnerService,\r\n private lookupService: LookupService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n loadCountry(countryId: number){\r\n this.lookupService.getChildLocations(countryId)\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((posts: Location[]) => {\r\n this.selectedCountry = this.countryList.find(x => x.id == countryId);\r\n this.flagURL = \"./assets/flags/\" + this.selectedCountry.locationCode.toLowerCase() + \".svg\";\r\n if(posts.length > 3){\r\n this.postsFirst = posts.slice(0,Math.round(posts.length/2));\r\n this.postsSecond = posts.slice(Math.round(posts.length/2));\r\n }\r\n else{\r\n this.postsFirst = posts;\r\n this.postsSecond = [];\r\n }\r\n this.FASUrl = \"https://www.fas.usda.gov/international-offices\" + \"?id=\" + this.selectedCountry.fasCountryCode;\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnInit, SimpleChanges } from '@angular/core'; import { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { ReportsForToday, ReportYear, ReportScheduleForHome } from '../../models/report.model';\r\nimport { delay, finalize } from 'rxjs/operators';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-release-schedule',\r\n templateUrl: './release-schedule.component.html',\r\n styleUrls: ['./release-schedule.component.css']\r\n})\r\nexport class ReleaseScheduleComponent implements OnInit {\r\n allReports: ReportScheduleForHome[][] = [];\r\n selectReport: ReportScheduleForHome[];\r\n carouselPage: number = 0;\r\n @Input() releaseScheduleData: ReportScheduleForHome[];\r\n\r\n constructor(private reportDashboardService: ReportdashboardService,\r\n private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.applyReportFileter();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.applyReportFileter();\r\n }\r\n\r\n applyReportFileter(){\r\n //var today = new Date();\r\n if(this.releaseScheduleData != null){ \r\n for (let i = 0; i < this.releaseScheduleData.length / 5; i++) {\r\n this.allReports.push(this.releaseScheduleData.slice(i * 5, i * 5 + 5));\r\n }\r\n this.allReports = this.allReports.slice(0, this.allReports.length);\r\n this.selectReport = this.allReports[0];\r\n }\r\n }\r\n\r\n updatePage(page) {\r\n this.carouselPage = page;\r\n this.selectReport = this.allReports[page];\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { ReportsForToday } from '../../models/report.model';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ReportService } from '../../services/report.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-today-report',\r\n templateUrl: './today-report.component.html',\r\n styleUrls: ['./today-report.component.css']\r\n})\r\nexport class TodayReportComponent implements OnInit { \r\n today: Date;\r\n refreshTime: Date;\r\n publishTime: Date;\r\n postPublish: boolean = false;\r\n pastPublish: boolean = false;\r\n noPublish: boolean = false;\r\n postPublishReport: ReportsForToday[];\r\n pastPublishReport: ReportsForToday[];\r\n emptyPlaceHolder: ReportsForToday;\r\n @Input() todayReportData: ReportsForToday[];\r\n @Output() refresh = new EventEmitter();\r\n\r\n constructor(private notifier:NotifierService,\r\n private reportService: ReportService) { \r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.today = new Date();\r\n this.publishTime = new Date();\r\n this.refreshTime = new Date();\r\n //set publish time to 3PM\r\n this.publishTime.setHours(parseInt(environment.reportPublishTime.split(':')[0]));\r\n this.publishTime.setMinutes(parseInt(environment.reportPublishTime.split(':')[1]));\r\n this.publishTime.setSeconds(parseInt(environment.reportPublishTime.split(':')[2]));\r\n //convert publish time to local time zone\r\n this.publishTime.setHours((this.publishTime.getHours() + (this.checkDST ? 4 : 5)) - this.publishTime.getTimezoneOffset()/60);\r\n this.refreshTime.setHours(this.publishTime.getHours() - new Date().getHours());\r\n this.refreshTime.setMinutes(this.publishTime.getMinutes() - new Date().getMinutes());\r\n this.refreshTime.setSeconds(this.publishTime.getSeconds() - new Date().getSeconds());\r\n this.noPublish = false;\r\n this.postPublish = true;\r\n this.pastPublish = false;\r\n if(this.pastPublish){ \r\n this.todayReportData = this.todayReportData.filter(x=>x.publishedOn!=null);\r\n }\r\n if(this.todayReportData?.length > 0){ \r\n this.noPublish = false;\r\n }\r\n else{\r\n this.noPublish = true;\r\n }\r\n this.setTimer();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if(this.pastPublish){ \r\n this.todayReportData = this.todayReportData.filter(x=>x.publishedOn!=null);\r\n }\r\n if(this.todayReportData?.length > 0){ \r\n this.noPublish = false;\r\n //Adding two empty items at the bottom of carousel to avoid last item been cut out\r\n var emptyItem = new ReportsForToday();\r\n emptyItem.reportName = \"EmptyPlaceHolder\";\r\n this.todayReportData.push(emptyItem);\r\n this.todayReportData.push(emptyItem);\r\n }\r\n else{\r\n this.noPublish = true;\r\n }\r\n }\r\n\r\n async setTimer(){\r\n if (new Date() < this.publishTime){\r\n await new Promise(f => setTimeout(f, 1000));\r\n this.ngOnInit();\r\n }\r\n else{\r\n this.refresh.emit();\r\n this.postPublish = false;\r\n this.pastPublish = true;\r\n }\r\n }\r\n\r\n refreshPage() {\r\n this.refresh.emit();\r\n this.notifier.notify('success', 'Today\\'s report updated.');\r\n }\r\n\r\n viewReport(reportId){\r\n this.reportService.previewPDF$(reportId).subscribe((content:Blob)=>{\r\n const fileURL = URL.createObjectURL(content);\r\n window.open(fileURL, '_blank');\r\n });\r\n }\r\n\r\n checkDST(){\r\n var january = new Date(this.today.getFullYear(), 0, 1).getTimezoneOffset();\r\n var july = new Date(this.today.getFullYear(), 6, 1).getTimezoneOffset();\r\n return Math.max(january, july) != this.today.getTimezoneOffset();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as Highcharts from 'highcharts';\r\nimport { ReportCategoryRank } from '../../models/report.model';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\n\r\n@Component({\r\n selector: 'app-top-five-report-categories',\r\n templateUrl: './top-five-report-categories.component.html',\r\n styleUrls: ['./top-five-report-categories.component.css']\r\n})\r\nexport class TopFiveReportCategoriesComponent implements OnInit {\r\n highcharts: typeof Highcharts = Highcharts;\r\n chartOptions: any;\r\n noResult: boolean;\r\n @Input() selectedCountryId: number;\r\n\r\n constructor(private lookupService: LookupService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n var router = this.router;\r\n var selectedCountryId = this.selectedCountryId;\r\n this.chartOptions = {\r\n chart: {\r\n type: 'pie',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n width: 400,\r\n height: 250,\r\n options3d: {\r\n enabled: true,\r\n alpha: 45,\r\n beta: 0\r\n }\r\n },\r\n title: null,\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n tooltip: {\r\n pointFormat: '{point.percentage:.0f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n depth: 35,\r\n dataLabels: {\r\n enabled: false,\r\n format: '{point.name}'\r\n },\r\n center: [90, 90],\r\n size: '100%',\r\n point: {\r\n events: {\r\n legendItemClick: function (event: any) {\r\n router.navigate(['search'], { queryParams: {searchCategory: event.target.id, searchCountry: selectedCountryId} });\r\n return false;\r\n }\r\n },\r\n showInLegend: true,\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n exporting: {\r\n enabled: false\r\n },\r\n legend: {\r\n align: 'left',\r\n verticalAlign: 'top',\r\n layout: 'vertical',\r\n itemMarginBottom: 15,\r\n squareSymbol: true,\r\n symbolRadius: 0,\r\n width: '50%',\r\n itemStyle: {\"color\": \"#162e52\", \"fontSize\": \"16px\", \"fontWeight\": \"700\", \"font-family\": \"Source Sans Pro\",\"text-decoration\": \"none\"},\r\n itemHoverStyle:{\"text-decoration\": \"underline\"},\r\n x: -10,\r\n y: 30\r\n },\r\n series: [{\r\n type: 'pie',\r\n showInLegend: true,\r\n name: '',\r\n data: []\r\n }]\r\n };\r\n }\r\n\r\n getTopFiveCategories(selectedCountryId, appUserId) {\r\n this.lookupService.GetTopFiveReportCategories(selectedCountryId, appUserId)\r\n .pipe()\r\n .subscribe((result: ReportCategoryRank[]) => {\r\n this.generatePieChart(result);\r\n }\r\n )\r\n }\r\n\r\n\r\n generatePieChart(result: ReportCategoryRank[]) {\r\n\r\n var router = this.router;\r\n var selectedCountryId = this.selectedCountryId;\r\n\r\n if (result.length != 0) {\r\n this.noResult = false;\r\n this.chartOptions = {\r\n chart: {\r\n type: 'pie',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n width: 400,\r\n height: 250,\r\n options3d: {\r\n enabled: true,\r\n alpha: 45,\r\n beta: 0\r\n }\r\n },\r\n title: null,\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n tooltip: {\r\n pointFormat: '{point.percentage:.0f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n depth: 35,\r\n dataLabels: {\r\n enabled: false,\r\n format: '{point.name}'\r\n },\r\n center: [90, 90],\r\n size: '100%',\r\n point: {\r\n events: {\r\n legendItemClick: function (event: any) {\r\n router.navigate(['search'], { queryParams: {searchCategory: event.target.id, searchCountry: selectedCountryId} });\r\n return false;\r\n }\r\n },\r\n showInLegend: true,\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n exporting: {\r\n enabled: false\r\n },\r\n legend: {\r\n align: 'left',\r\n verticalAlign: 'top',\r\n layout: 'vertical',\r\n itemMarginBottom: 15,\r\n squareSymbol: true,\r\n symbolRadius: 0,\r\n width: '50%',\r\n itemStyle: {\"color\": \"#162e52\", \"fontSize\": \"16px\", \"fontWeight\": \"700\", \"font-family\": \"Source Sans Pro\"},\r\n x: -10,\r\n y: 30\r\n },\r\n series: [{\r\n type: 'pie',\r\n showInLegend: true,\r\n name: '',\r\n data: [\r\n ]\r\n }]\r\n };\r\n if (result.length > 0) {\r\n this.chartOptions.series[0].data.push({\r\n name: result[0].categoryName,\r\n y: result[0].categoryCount,\r\n data: result[0].categoryCount,\r\n id:result[0].categoryId,\r\n selected: true,\r\n color: '#b88181'\r\n })\r\n }\r\n if (result.length > 1) {\r\n this.chartOptions.series[0].data.push({\r\n name: result[1].categoryName,\r\n y: result[1].categoryCount,\r\n data: result[1].categoryCount,\r\n id:result[1].categoryId,\r\n selected: true,\r\n color: '#c9b87f'\r\n })\r\n }\r\n if (result.length > 2) {\r\n this.chartOptions.series[0].data.push({\r\n name: result[2].categoryName,\r\n y: result[2].categoryCount,\r\n data: result[2].categoryCount,\r\n id:result[2].categoryId,\r\n selected: true,\r\n color: '#97b9c4'\r\n })\r\n }\r\n if (result.length > 3) {\r\n this.chartOptions.series[0].data.push({\r\n name: result[3].categoryName,\r\n y: result[3].categoryCount,\r\n data: result[3].categoryCount,\r\n id:result[3].categoryId,\r\n selected: true,\r\n color: '#765087'\r\n })\r\n }\r\n if (result.length > 4) {\r\n this.chartOptions.series[0].data.push({\r\n name: result[4].categoryName,\r\n y: result[4].categoryCount,\r\n data: result[4].categoryCount,\r\n id:result[4].categoryId,\r\n selected: true,\r\n color: '#717d5e'\r\n })\r\n }\r\n }\r\n\r\n else {\r\n this.noResult = true;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, NgModule, Input } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport {\r\n User,\r\n UserType,\r\n AppRole,\r\n Location,\r\n UserRegistrationModel,\r\n HqLocationsModel,\r\n PostLocationsModel\r\n} from '../models/user.model';\r\nimport { Unsubscribable as AnonymousSubscription , EMPTY as empty,concat } from 'rxjs';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { RegistrationService } from '../services/registration.service';\r\nimport { ReportCategory, UserReportCategory } from '../models/report.model';\r\nimport { element } from 'protractor';\r\n//import { forEach } from '@angular/router/src/utils/collection';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { SelectItem, TreeNode } from 'primeng/api';\r\nimport { Tree } from 'primeng/Tree';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-hq-user',\r\n templateUrl: './hq-user.component.html',\r\n styleUrls: ['./hq-user.component.css']\r\n})\r\nexport class HqUserComponent implements OnInit {\r\n constructor(\r\n private lookupService: LookupService,\r\n private authUser: AuthUserService,\r\n private authUserService: AuthUserService,\r\n private registrationService: RegistrationService,\r\n private notifier: NotifierService\r\n ) {}\r\n\r\n public hqDetails: Hq[] = [];\r\n displayHQLocation = false;\r\n displayHQCategories = false;\r\n //reportCategory: Location[];\r\n reportCategoriesdata: ReportCategory[];\r\n currentUser: User;\r\n newLocationIds: number[];\r\n newUserReportCategoryIds: number[] = [];\r\n selectedUserReportCategories: any[] = [];\r\n @Input()\r\n locations: HqLocationsModel[];\r\n @Input()\r\n userCategories: UserReportCategory[];\r\n userSavedCategories: UserReportCategory[];\r\n programArea: Location;\r\n reportCategoriesTree: TreeNode[];\r\n reportCategories: ReportCategory[] = [];\r\n selectedCategoryNodes: TreeNode[] = new Array();\r\n uniqueSelectedCategoryNodes: TreeNode[] = new Array();\r\n selectedReportCategories: ReportCategory[] = new Array();\r\n programAreas: Location[];\r\n saveStatus:boolean = false; \r\n oldCategories: boolean = false;\r\n newCategories: boolean = false;\r\n showProfilesetupAlert: boolean=false;\r\n\r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n this.newLocationIds = Array();\r\n\r\n this.hqDetails.push(new Hq(null, null));\r\n this.displayHQLocation = false;\r\n\r\n this.lookupService.getRootLocations(this.currentUser.userType.typeName).subscribe((data: Location[]) => {\r\n this.programAreas = data;\r\n \r\n if(JSON.stringify(this.currentUser.userLocations)=='[]')\r\n {\r\n this.showProfilesetupAlert=true;\r\n }\r\n });\r\n\r\n this.lookupService.getUserCategories().subscribe((data: UserReportCategory[]) => {\r\n this.userSavedCategories = data;\r\n this.userCategories = data.sort(\r\n (a, b): number => {\r\n if (a.categoryName < b.categoryName) return -1;\r\n if (a.categoryName > b.categoryName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n\r\n addHQDetail() {\r\n // new reporting Post location selection, initialize w/ null values\r\n this.hqDetails.push(new Hq(null, null));\r\n }\r\n\r\n showLocationDialog() {\r\n this.displayHQLocation = true;\r\n this.saveStatus = false;\r\n this.hqDetails = new Array();\r\n this.addHQDetail();\r\n this.showProfilesetupAlert=false;\r\n }\r\n\r\n showCategoriesDialog() {\r\n this.displayHQCategories = true;\r\n // this.loadReportCategories();\r\n // this.lookupService.getParentLocation(this.locations[0].divisionId).subscribe((data: Location) => {\r\n // this.programArea = data;\r\n // this.lookupService.GetReportCategories(data.id).subscribe((data: ReportCategory[]) => {\r\n // this.reportCategoriesdata = data.sort(\r\n // (a, b): number => {\r\n // if (a.categoryName < b.categoryName) return -1;\r\n // if (a.categoryName > b.categoryName) return 1;\r\n // return 0;\r\n // }\r\n // );\r\n // for (let cnt = this.reportCategoriesdata.length - 1; cnt >= 0; cnt--) {\r\n // var result = this.userCategories.filter(\r\n // userCategory => userCategory.categoryId === this.reportCategoriesdata[cnt].id\r\n // );\r\n // if (result.length > 0) {\r\n // this.reportCategoriesdata.splice(cnt, 1);\r\n // }\r\n // }\r\n // });\r\n // });\r\n\r\n this.lookupService.getReportCategoryHierarchy$().subscribe(categories => {\r\n this.reportCategoriesTree = Array.of(categories);\r\n this.reportCategoriesTree[0].expanded = true;\r\n this.reportCategoriesTree[0].children.sort((a, b) => {\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n this.selectedCategoryNodes = new Array();\r\n this.lookupService.getUserCategories().subscribe((data: UserReportCategory[]) => {\r\n this.userCategories = data;\r\n this.userCategories.forEach(category => {\r\n this.reportCategoriesTree[0].children.forEach(categoryNode => {\r\n if (categoryNode.children != null && categoryNode.children.length != 0) {\r\n categoryNode.children.forEach(child => {\r\n if (child.data == category.categoryId) {\r\n this.selectedCategoryNodes.push(child);\r\n }\r\n });\r\n }\r\n if (categoryNode.data == category.categoryId) {\r\n this.selectedCategoryNodes.push(categoryNode);\r\n }\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n addHqDetail() {\r\n this.hqDetails.push(new Hq(null, null));\r\n }\r\n\r\n deleteHqDetail(hqDetail: Hq) {\r\n const i = this.hqDetails.indexOf(hqDetail);\r\n this.hqDetails.splice(i, 1);\r\n }\r\n\r\n deleteUserLocation(divisionId: number) {\r\n this.registrationService.deleteUserLocation(divisionId).subscribe(resp => {\r\n if (resp.ok) {\r\n this.lookupService.getUserLocations().subscribe(locations => {\r\n this.locations = locations;\r\n this.newLocationIds = Array();\r\n // window.location.reload();\r\n });\r\n\r\n this.lookupService.getUserCategories().subscribe((data: UserReportCategory[]) => {\r\n this.userCategories = data;\r\n });\r\n this.notifier.notify('success', 'Program Area, Division and Categories deleted successfully');\r\n this.showProfilesetupAlert=true;\r\n }\r\n });\r\n \r\n \r\n }\r\n\r\n deleteUserReportCategory(userReportCategoryId: number) {\r\n this.registrationService.deleteUserReportCategory(userReportCategoryId).subscribe(resp => {\r\n if (resp.ok) {\r\n this.lookupService.getUserCategories().subscribe(usercategories => {\r\n this.userCategories = usercategories.sort(\r\n (a, b): number => {\r\n if (a.categoryName < b.categoryName) return -1;\r\n if (a.categoryName > b.categoryName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n this.notifier.notify('success', 'Category deleted successfully');\r\n }\r\n });\r\n }\r\n\r\n onChangeProgram(hqDetail: Hq, programArea) {\r\n this.saveStatus = false;\r\n hqDetail.programAreaId = programArea.id;\r\n this.lookupService.getChildLocations(programArea.id).subscribe((data: Location[]) => {\r\n hqDetail.divisions = data.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n\r\n onChangeDivision(hqDetail, division) {\r\n hqDetail.divisionId = division.id; \r\n if(division.id != null){\r\n this.saveStatus = true;\r\n }else{this.saveStatus = false;}\r\n }\r\n\r\n saveReportingStations() {\r\n let deleteuserlocation$;\r\n if (this.locations[0] != null) {\r\n deleteuserlocation$ = this.registrationService.deleteUserLocation(this.locations[0].divisionId);\r\n } else {\r\n deleteuserlocation$ = empty;\r\n }\r\n\r\n this.hqDetails.forEach(element => {\r\n this.newLocationIds.push(element.divisionId);\r\n });\r\n\r\n let adduserlocation$ = this.registrationService.addUserLocations(this.newLocationIds);\r\n\r\n \r\n let result$ = concat(deleteuserlocation$,adduserlocation$);\r\n\r\n result$.subscribe(resp => {\r\n if (resp.ok) {\r\n this.lookupService.getUserLocations().subscribe(locations => {\r\n this.locations = locations;\r\n });\r\n }\r\n });\r\n this.notifier.notify('success', 'Program Area and Division saved successfully');\r\n this.displayHQLocation = false;\r\n this.newLocationIds = new Array();\r\n this.showProfilesetupAlert = false;\r\n }\r\n\r\n hideAddLocationDialog() {\r\n this.displayHQLocation = false;\r\n if(this.currentUser.userLocations.length <= 0) this.showProfilesetupAlert = true; \r\n \r\n }\r\n\r\n hideCategoriesDialog() {\r\n this.displayHQCategories = false;\r\n this.selectedCategoryNodes = new Array();\r\n this.selectedReportCategories = new Array();\r\n this.newUserReportCategoryIds = Array();\r\n this.selectedUserReportCategories = Array();\r\n }\r\n\r\nsaveReportingcategories() {\r\n this.newUserReportCategoryIds = new Array();\r\n this.oldCategories = false;\r\n this.newCategories = false;\r\n \r\n // this.selectedUserReportCategories.forEach(element => this.newUserReportCategoryIds.push(element));\r\n this.selectedCategoryNodes.forEach(node => {if (node.data != 1)this.newUserReportCategoryIds.push(node.data);});\r\n // console.log(\"Selected Categories ID's =====\" + this.newUserReportCategoryIds);\r\n // console.log(\"Old Categories ID's =====\" + JSON.stringify(this.userSavedCategories));\r\n // this.userSavedCategories.forEach(category => {this.newUserReportCategoryIds.forEach(newCategory => {\r\n // if(newCategory == category.categoryId)\r\n // this.oldCategories = true\r\n // if(newCategory != category.categoryId) \r\n // this.newCategories = true\r\n // // console.log(\"OLD Categories ID's Count INSIDE=====\" + this.oldCategories);\r\n // }); });\r\n \r\n this.registrationService.updateUserReportCategories(this.newUserReportCategoryIds).subscribe(resp => {\r\n if (resp.ok) {\r\n // if(this.oldCategories)\r\n // this.notifier.notify('error', 'One or more Categories already exists in your Profile');\r\n // if(this.newCategories)\r\n this.notifier.notify('success', 'Categories updated successfully');\r\n\r\n this.lookupService.getUserCategories().subscribe(usercategories => {\r\n this.userCategories = usercategories.sort(\r\n (a, b): number => {\r\n if (a.categoryName < b.categoryName) return -1;\r\n if (a.categoryName > b.categoryName) return 1;\r\n return 0;\r\n });\r\n });\r\n }\r\n });\r\n this.displayHQCategories = false;\r\n this.selectedCategoryNodes = new Array();\r\n this.newUserReportCategoryIds = new Array();\r\n this.selectedUserReportCategories = Array();\r\n }\r\n\r\n}\r\n\r\nexport class Hq {\r\n divisions: Location[];\r\n\r\n constructor(public programAreaId: number, public divisionId: number) {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { Breadcrumb, BreadcrumbService } from 'angular-crumbs';\r\n\r\n@Component({\r\n selector: 'app-breadcrumbs',\r\n templateUrl: './breadcrumbs.component.html',\r\n styleUrls: ['./breadcrumbs.component.css']\r\n})\r\nexport class BreadcrumbsComponent implements OnInit {\r\n pageTitle!:string;\r\n isDisplay:boolean =true;\r\n\r\n constructor(private titleService: Title,\r\n private breadcrumbService: BreadcrumbService,\r\n private router:Router) { }\r\n\r\n ngOnInit(): void {\r\n this.breadcrumbService.breadcrumbChanged.subscribe((crumbs) => {\r\n this.titleService.setTitle(this.createTitle(crumbs));\r\n });\r\n }\r\n\r\n private createTitle(routesCollection: Breadcrumb[]) {\r\n var days = '';\r\n const title = 'Global Agricultural Information Network';\r\n if(routesCollection.length > 0)\r\n {\r\n if (routesCollection[0].route.path.includes('quick-links'))\r\n {\r\n days = routesCollection[0].url.split('/').pop();\r\n if(days == '1')\r\n {\r\n routesCollection[0].displayName = 'Today\\'s Reports';\r\n }\r\n else if(days == '30')\r\n {\r\n routesCollection[0].displayName = 'Past Month\\'s Reports';\r\n }\r\n else\r\n {\r\n routesCollection[0].displayName = 'Past ' + days + ' Days Reports';\r\n }\r\n }\r\n }\r\n const titles = routesCollection.filter((route) => route.displayName);\r\n\r\n if (!titles.length) { this.pageTitle =title ;return title; }\r\n else{ this.pageTitle = titles[titles.length-1].displayName;}\r\n\r\n const routeTitle = this.titlesToString(titles);\r\n return `${routeTitle} ${title}`;\r\n }\r\n\r\n private titlesToString(titles: any) {\r\n return titles.reduce((prev: any, curr: any) => {\r\n return `${curr.displayName} | ${prev}`;\r\n }, '');\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contentarea',\r\n templateUrl: './contentarea.component.html',\r\n styleUrls: ['./contentarea.component.css']\r\n})\r\nexport class ContentareaComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { User } from '../../models/user.model';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n currentUser:User;\r\n constructor(private authUser: AuthUserService) { }\r\n\r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { User } from '../../models/user.model';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n\r\n@Component({\r\n selector: 'app-navbar',\r\n templateUrl: './navbar.component.html',\r\n styleUrls: ['./navbar.component.css']\r\n})\r\nexport class NavbarComponent implements OnInit {\r\n currentUser:User;\r\n logoutUrl:string;\r\n loginUrl:string;\r\n GAUrl:string;\r\n constructor(protected localStorage: LocalStorage,private authUser: AuthUserService,private cookieService: CookieService) { }\r\n\r\n ngOnInit() {\r\n \r\n this.currentUser = this.authUser._user;\r\n this.logoutUrl = environment.logoutUrl;\r\n this.loginUrl = environment.loginUrl;\r\n this.GAUrl = environment.GAUrl;\r\n\r\n }\r\n\r\n onNavigation() {\r\n // clear local storage items\r\n this.localStorage.clear().subscribe(() => {});\r\n this.cookieService.set('AuthTrackerCookie','',-1,'/');\r\n \r\n\r\n }\r\n\r\n toggleMenu(button: any, subMenu: any) {\r\n const btn = document.getElementsByName(button)[0];\r\n const menu = document.getElementById(subMenu);\r\n if(btn.getAttribute(\"aria-expanded\") == \"false\") {\r\n btn.setAttribute(\"aria-expanded\", \"true\")\r\n menu.hidden = false;\r\n }\r\n else {\r\n btn.setAttribute(\"aria-expanded\", \"false\");\r\n menu.hidden = true;\r\n }\r\n }\r\n}\r\n","\r\nexport class PublishedReportCountsByYear {\r\n reportYear: number;\r\n requiredPublicReportCount: number;\r\n requiredInternalReportCount: number;\r\n voluntaryPublicReportCount: number;\r\n voluntaryInternalReportCount: number;\r\n}\r\n//Used for Analytics module\r\nexport class ReportCountByStatus {\r\n isRequired: boolean;\r\n notStarted: number;\r\n draft: number;\r\n submittedToPostApprover: number;\r\n approvedAndSentToWashington: number;\r\n returnedFromPostApprover: number;\r\n returnedFromWashington: number;\r\n validated: number;\r\n published: number;\r\n hold: number;\r\n}\r\nexport class ReportCountByType {\r\n reportYear: number;\r\n requiredPublicReportCount: number;\r\n requiredInternalReportCount: number;\r\n voluntaryPublicReportCount: number;\r\n voluntaryInternalReportCount: number;\r\n}\r\nexport class ReportFilter\r\n{\r\n fromDate:Date;\r\n toDate:Date;\r\n selectedReportCategories:number[] =new Array(); \r\n selectedCountries:number[] =new Array();\r\n selectedPosts:string[]=new Array();\r\n selectedProgramAreas: number[]= new Array();\r\n selectedReportYears: number[]=new Array();\r\n selectedReportTypes: number[]=new Array();\r\n selectedReportDistributionTypes: number[]=new Array();\r\n \r\n}\r\nexport class DownloadCountsReportResult\r\n{\r\n reportNumber:string;\r\n reportName:string;\r\n reportYear:number;\r\n country:string;\r\n post:string;\r\n programArea:string;\r\n reportCategory:string;\r\n reportType:string;\r\n distributionType:string;\r\n reportDueDate:Date;\r\n reportPublishDate:Date;\r\n downloadcounts:number;\r\n\r\n}\r\nexport class VarianceReportByDueDatesResult\r\n{\r\n reportNumber:string;\r\n reportName:string;\r\n reportYear:number;\r\n country:string;\r\n post:string;\r\n programArea:string;\r\n reportCategory:string;\r\n reportType:string;\r\n distributionType:string;\r\n reportDueDate:Date; \r\n dateSubmittedToWashington:Date;\r\n submittedDateVariance:string;\r\n publishedDate:Date;\r\n publishDateVariance:string; \r\n type:string; \r\n}\r\n\r\n\r\nexport class SubmittedReportCountByPostAndYearResult {\r\n \r\n reportYear: number;\r\n countryName: string;\r\n postName: string;\r\n requiredReportCount: number;\r\n voluntaryReportCount: number;\r\n totalReportCount: number;\r\n}\r\nexport interface GraphData{\r\n //hc-key:string;\r\n code3:string;\r\n name:string;\r\n value:number;\r\n requiredCnt:number;\r\n voluntaryCnt:number;\r\n}","import { Location, User } from '../models/user.model';\r\nimport { TreeTable } from 'primeng/TreeTable';\r\n\r\nexport class ReportMetadata {\r\n id: string;\r\n reportNumber: string;\r\n category: string;\r\n reportName: string;\r\n fasPost: string;\r\n country: string;\r\n programArea: string;\r\n division: string;\r\n dueDate: Date;\r\n proposedDueDate:Date;\r\n dueDateInNextYear: Date;\r\n region: string;\r\n reportType: string;\r\n fasPostId: number;\r\n approverId: number;\r\n highlights: string;\r\n preparedBy: string;\r\n selected?: boolean = false;\r\n countries?: Location[];\r\n posts?: Location[];\r\n regionId?: number;\r\n countryId?: number;\r\n isRequired: boolean;\r\n isPublic?: boolean;\r\n //Commented by SC added isPublic instead of distribution\r\n //distribution:boolean;\r\n distribution: string;\r\n categoryName: string;\r\n isReleased: boolean;\r\n categoryId: number;\r\n reportState: string;\r\n reportStateId: number;\r\n isReportLocked:boolean;\r\n categoryParentId?: number;\r\n categoryParent?: string;\r\n categoryTreeTable?: TreeTable;\r\n requiredCount?: number;\r\n voluntaryCount?: number;\r\n lastUpdatedDatetime:Date;\r\n postLocation?: string;\r\n parentPostLocation?: string;\r\n reportDueDate?: Date;\r\n postLocationId?: number;\r\n parentPostLocationId?: number;\r\n ProgramAreaName?: string;\r\n ProgramAreaId?: number;\r\n reportStatusId?:number;\r\n frequencyTypeId?:number;\r\n frequencyTypeName?:string;\r\n FrequencyType?:FrequencyType;\r\n isReportPublished?:boolean;\r\n}\r\n\r\nexport class Approver {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport class ReportCategory {\r\n id: number;\r\n categoryName: string;\r\n parentCategoryId: number;\r\n programAreaId?: number;\r\n isActive:boolean;\r\n lastUpdatedDatetime:Date;\r\n autoPublishPolicyId:number;\r\n}\r\n\r\nexport class ReportYear {\r\n id: number;\r\n year: number;\r\n}\r\n\r\n\r\nexport class UserReportCategory {\r\n userReportCategoryId: number;\r\n categoryId: number;\r\n categoryName: string;\r\n}\r\n\r\nexport class ReportSchedule {\r\n Id: string;\r\n ProgramAreaId: number;\r\n ReportYear: number;\r\n ReportYearId: number;\r\n CategoryId: number;\r\n ReportName: string;\r\n IsRequired: boolean;\r\n IsPublic: boolean;\r\n PostLocationId: number;\r\n ParentLocationId: number;\r\n ReportDueDate: Date;\r\n ProposedDueDate?:Date;\r\n IsReleased: boolean;\r\n reportState?: string;\r\n reportStateId?: number;\r\n reportNumber?: string;\r\n FrequencyTypeId?:number;\r\n isReportPublished?:string;\r\n}\r\n\r\nexport class VoluntaryReportMetadata {\r\n id: any;\r\n reportNumber: string;\r\n reportName: string;\r\n distributionType: string;\r\n reportCategory: ReportCategory[];\r\n reportDate: Date;\r\n post: Location;\r\n country: Location;\r\n region: string;\r\n preparedBy: string;\r\n disclaimer: string;\r\n reportHighlights: string;\r\n //approvedBy:Approver;\r\n approvedBy: User;\r\n reportState: string;\r\n reportStateId: number;\r\n isReportLocked:boolean;\r\n reportType: string;\r\n}\r\n\r\nexport class ReportAuditRecord {\r\n reportActionName: string;\r\n processedBy: string;\r\n processedDateTime: Date;\r\n userComments: string;\r\n}\r\n\r\nexport class ReportingInstructions {\r\n id: string;\r\n parentId: string;\r\n type: number;\r\n name: string;\r\n contentType: string;\r\n content: any[];\r\n contentLength: number;\r\n}\r\n\r\nexport class ReportState{\r\n id: number;\r\n stateName: string;\r\n}\r\nexport class FrequencyType\r\n{\r\n id:number;\r\n frequencyTypeName:string;\r\n}\r\n\r\nexport class ReportAttachment\r\n{\r\n id:number;\r\n reportMetadataId:string;\r\n attachmentName:string;\r\n //attachmentContent:any[];\r\n}\r\nexport class Report{\r\n id:any;\r\n reportName:string;\r\n reportNumber:string;\r\n country:string;\r\n fasPost:string;\r\n reportType:string;\r\n distribution:string;\r\n reportState:string;\r\n reportStateId:number;\r\n isReportPublished:boolean;\r\n}\r\n\r\nexport class ReportScheduleResults\r\n{\r\nId: string;\r\nReportName: string;\r\nReportYearId: number;\r\nIsRequired: boolean;\r\nIsPublic: boolean;\r\nAutoPublishPolicyId: number;\r\nPostLocationId: number;\r\nParentPostLocationId: number;\r\nReportDueDate: Date;\r\nIsReleased: boolean;\r\nPostLocation: string;\r\nParentPostLocation: string;\r\nReportYear: number;\r\nCategoryId: number;\r\nCategoryName: string;\r\nProgramAreaName: string;\r\nProgramAreaId: number;\r\n}\r\n\r\nexport class PublishedReport\r\n{\r\nId: string;\r\nPostLocationId: number;\r\nCountryId: number;\r\nRegionId: number;\r\nReportYearId: number;\r\nPublishedOn: number;\r\nReportContent: any[];\r\nTrackingId: string;\r\nFileName: string;\r\nFileExtension: string;\r\nReportSchedule: ReportSchedule[];\r\n}\r\n//This enum needs to match the reportStates enum in the domain layer\r\nexport enum ReportStates\r\n{\r\n NotStarted=1,\r\n Draft=2,\r\n SubmittedToPostApprover= 3,\r\n ApproveAndSendToWashingtion=4,\r\n ReturnFromPostApprover=5,\r\n ReturnFromWashington=6,\r\n Validated =7,\r\n Published=8,\r\n Hold =9,\r\n RequestedForCorrection = 10,\r\n CorrectedAndSentToApprover = 11,\r\n CorrectedAndSentToWashington = 12\r\n}\r\n\r\nexport class ReportAutoPublishPolicy{\r\n id:number;\r\n policyName:string;\r\n}\r\n\r\nexport class ReportType{\r\n id: number;\r\n description: string;\r\n isRequired: boolean;\r\n}\r\n\r\nexport class ReportDistributionType{\r\n id: number;\r\n description: string;\r\n isPublic: boolean;\r\n}\r\n\r\nexport class ReportsForToday\r\n {\r\n reportId:string;\r\n reportNumber:string;\r\n reportName:string;\r\n preferredReportName:string;\r\n countryName:string;\r\n postName:string;\r\n publishedOn?:Date;\r\n isRequired:boolean;\r\n isPublic:boolean;\r\n reportPublishStatus:string\r\n }\r\n\r\n export class ReportScheduleForHome\r\n {\r\n reportId:string;\r\n reportNumber:string;\r\n reportName:string;\r\n preferredReportName:string;\r\n countryName:string;\r\n postName:string;\r\n isRequired?:boolean;\r\n isPublic?:boolean;\r\n ReportStatusId?:number;\r\n ReportStateName:string;\r\n FrequencyTypeName:string;\r\n ReportDueDate?: Date;\r\n ProposedDueDate?: Date;\r\n ReportYear: string;\r\n }\r\n\r\n export class CountryReport\r\n {\r\n countryReportCount:number;\r\n totalReportCount:number;\r\n }\r\n\r\n export class ReportCategoryRank{\r\n categoryId:number;\r\n categoryName:string;\r\n categoryCount:number;\r\n categoryRank:number;\r\n }","export class SearchFilter {\r\n fromDate: Date;\r\n toDate: Date;\r\n reportName: string;\r\n reportHighlights: string;\r\n reportNumber: string;\r\n keyword: string;\r\n categoryIds: number[] = new Array();\r\n postIds: number[] = new Array();\r\n postNames: string[] = new Array();\r\n countryIds: number[] = new Array();\r\n correctedReport: boolean;\r\n displayInternal: boolean;\r\n}\r\n\r\nexport class SearchResult {\r\n reportId: string;\r\n reportName?: string;\r\n reportHighlights: string;\r\n publishDate?: Date;\r\n reportDate: Date;\r\n reportYear: number;\r\n postName: string;\r\n isPublic: boolean;\r\n isRequired: boolean;\r\n isLegacy: boolean;\r\n fileName: string;\r\n //preferredName: string;\r\n countryName: string;\r\n reportCategory: string;\r\n reportNumber: string;\r\n reportStateId: number;\r\n reportState: string;\r\n currentVersion: number;\r\n approvedSentToWashingtonDate: Date;\r\n}\r\n\r\nexport class QuickLinkResult{\r\n reportId :string;\r\n reportName :string;\r\n fileName :string;\r\n fileExtension:string;\r\n countryName:string;\r\n postName:string;\r\n publishedOn:Date;\r\n isRequired:boolean;\r\n isPublic:boolean;\r\n}\r\n\r\nexport class PublishedReportHistory{\r\n id: number;\r\n publishReportId: string;\r\n publishedOn: Date;\r\n //reportContent: Uint8Array[];\r\n fileName: string;\r\n fileExtension: string;\r\n reportVersion: number;\r\n}\r\n\r\n","export class User {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n fullName: string;\r\n emailAddress: string;\r\n userStatus: UserStatus;\r\n userType: UserType;\r\n userRoles: AppRole[];\r\n userRoleId: number[];\r\n // userLocation: Location;\r\n userLocationId: number;\r\n userLocations: Location[];\r\n isLes: boolean;\r\n agencyCode: string;\r\n}\r\n\r\nexport class UserRegistrationModel {\r\n id: number;\r\n userTypeId: number;\r\n locationId: number;\r\n roleIds: number[];\r\n}\r\n\r\nexport interface PostLocationsModel {\r\n region: string;\r\n country: string;\r\n post: string;\r\n postId: number;\r\n}\r\n\r\nexport interface HqLocationsModel {\r\n hq: string;\r\n programArea: string;\r\n division: string;\r\n divisionId: number;\r\n}\r\n\r\nexport class UserStatus {\r\n id: number;\r\n statusName: string;\r\n}\r\n\r\nexport class UserType {\r\n // constructor(Id:number, TypeName:string)\r\n // {\r\n // this.id = Id;\r\n // this.typeName=TypeName;\r\n // }\r\n id: number;\r\n typeName: string;\r\n}\r\n\r\nexport class AppRole {\r\n id: number;\r\n roleName: string;\r\n // flagValue: number; // 16 bit signed integer\r\n}\r\n\r\nexport class Location {\r\n id: number;\r\n locationName: string;\r\n parentLocationId: number;\r\n parentLocationName:string;\r\n locationTypeId: number;\r\n locationId: number;\r\n locationCode: string;\r\n fasCountryCode: string;\r\n parentId:number; \r\n isActive:boolean;\r\n lastUpdatedBy:string;\r\n lastUpdatedDateTime :Date;\r\n parentLocation:Location;\r\n}\r\n\r\n\r\n\r\nexport class PostUserType {\r\n constructor(Id: number, TypeName: string, Descripton: string) {\r\n this.id = Id;\r\n this.typeName = TypeName;\r\n this.description = Descripton;\r\n }\r\n id: number;\r\n typeName: string;\r\n description: string;\r\n}\r\n\r\nexport class ReleaseNote {\r\n id: number;\r\n releaseTitle: string;\r\n releaseDetail: string;\r\n deploymentDate: Date;\r\n isActive: boolean;\r\n lastUpdatedDateTime: Date;\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-comments',\r\n templateUrl: './comments.component.html',\r\n styleUrls: ['./comments.component.css']\r\n})\r\nexport class CommentsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reportfilter',\r\n templateUrl: './reportfilter.component.html',\r\n styleUrls: ['./reportfilter.component.css']\r\n})\r\nexport class ReportfilterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reportlineitem',\r\n templateUrl: './reportlineitem.component.html',\r\n styleUrls: ['./reportlineitem.component.css']\r\n})\r\nexport class ReportlineitemComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, NgModule, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { User, Location, PostLocationsModel, AppRole } from '../models/user.model';\r\nimport { Unsubscribable as AnonymousSubscription } from 'rxjs';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { RegistrationService } from '../services/registration.service';\r\n\r\n@Component({\r\n selector: 'app-post-user',\r\n templateUrl: './post-user.component.html',\r\n styleUrls: ['./post-user.component.css']\r\n})\r\nexport class PostUserComponent implements OnInit {\r\n public postDetails: Post[];\r\n newLocationIds: number[];\r\n enableSave = false;\r\n currentUser: User;\r\n userRoles: AppRole[];\r\n // filteredCountries: string[];\r\n // locationName: string[] = [];\r\n // location: string;\r\n\r\n @Input()\r\n userLocations: PostLocationsModel[];\r\n @Output()\r\n deleteLocation = new EventEmitter();\r\n @Output()\r\n addLocations = new EventEmitter();\r\n showProfilesetupAlert: boolean=false;\r\n // dialog display\r\n addLocationsDisplay = false;\r\n // lookup data\r\n //@Input() regions: Location[];\r\n @Input()\r\n countries: Location[];\r\n\r\n constructor(\r\n private lookupService: LookupService,\r\n private registrationService: RegistrationService,\r\n private authUser: AuthUserService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n this.userRoles = this.currentUser.userRoles;\r\n this.userLocations.sort(\r\n (a, b): number => {\r\n if (a.region < b.region) return -1;\r\n if (a.region > b.region) return 1;\r\n return 0;\r\n }\r\n );\r\n\r\n this.postDetails = new Array();\r\n this.addPostDetail(); // add empty row for reporting Post selection\r\n this.newLocationIds = new Array();\r\n if(this.userLocations.length<1 ) this.showProfilesetupAlert = true;\r\n }\r\n\r\n // filterCountries(event): void {\r\n // // this.filterCountries = this.countries.filter(c => c.locationName.startsWith(event.query));\r\n // this.filteredCountries = [];\r\n // for (let i = 0; i < this.countries.length; i++) {\r\n // if (this.countries[i].locationName.toLowerCase().indexOf(event.query.toLowerCase()) == 0) {\r\n // this.filteredCountries.push(this.countries[i].locationName);\r\n // }\r\n // }\r\n // }\r\n\r\n showAddLocations() {\r\n this.addLocationsDisplay = true;\r\n this.postDetails = new Array();\r\n this.addPostDetail();\r\n this.countries.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n if(this.userLocations.length>=0) this.showProfilesetupAlert = false; \r\n }\r\n hideAddLocationDialog() {\r\n this.addLocationsDisplay = false;\r\n if(this.userLocations.length<=0) this.showProfilesetupAlert = true; \r\n }\r\n\r\n addPostDetail() {\r\n // new reporting Post location selection, initialize w/ null values\r\n this.postDetails.push(new Post(null, null, null));\r\n }\r\n\r\n deletePostDetail(postDetail: Post) {\r\n const i = this.postDetails.indexOf(postDetail);\r\n this.postDetails.splice(i, 1);\r\n }\r\n\r\n onAddLocations() {\r\n this.postDetails.forEach(element => {\r\n this.newLocationIds.push(element.postId);\r\n });\r\n this.addLocations.emit(this.newLocationIds);\r\n\r\n // reset PostDetails and LocationIds selections\r\n // add empty row\r\n this.postDetails = new Array();\r\n this.addPostDetail();\r\n\r\n this.newLocationIds = new Array();\r\n\r\n // hide add locations dialog\r\n this.addLocationsDisplay = false; \r\n if(this.userLocations.length>0) this.showProfilesetupAlert = false; \r\n }\r\n\r\n onDeleteLocation(postId: number) {\r\n this.deleteLocation.emit(postId);\r\n if(this.userLocations.length = 0) this.showProfilesetupAlert = true; \r\n }\r\n\r\n // onChangeRegion(postDetail: Post, region) {\r\n // postDetail.regionId = region.id;\r\n // this.lookupService.getChildLocations(region.id).subscribe(\r\n // (data: Location[]) => {\r\n // postDetail.countries = data;\r\n // }\r\n // );\r\n // }\r\n\r\n onChangeCountry(postDetail: Post, country) {\r\n postDetail.countryId = country.id;\r\n this.lookupService.getChildLocations(country.id).subscribe((data: Location[]) => {\r\n postDetail.posts = data.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n\r\n onChangePost(postDetail: Post, post) {\r\n postDetail.postId = post.id;\r\n this.enableSave = true;\r\n }\r\n}\r\n\r\nexport class Post {\r\n countries: Location[];\r\n posts: Location[];\r\n\r\n constructor(public regionId: number, public countryId: number, public postId: number) {}\r\n}\r\n","import { Component, OnInit, Input, Output } from '@angular/core';\r\nimport { ActivatedRoute} from '@angular/router';\r\nimport { QuickLinkResult } from '../models/search.model';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { SearchService } from '../services/search.service';\r\nimport { environment } from '../../environments/environment';\r\nimport { ReportMetadata } from '../models/report.model';\r\nimport { ReportdashboardService } from '../services/reportdashboard.service';\r\n\r\n@Component({\r\n selector: 'app-quick-links',\r\n templateUrl: './quick-links.component.html',\r\n styleUrls: ['./quick-links.component.css']\r\n})\r\nexport class QuickLinksComponent implements OnInit {\r\n filelocationapi: string =environment.apiEndpoint+\"/Report/DownloadReportByFileName?fileName=\";\r\n first:number =0;\r\n @Output() dayCnt:number;\r\n title:string;\r\n fileNames: SelectItem[];\r\n countries: SelectItem[];\r\n fasPosts: SelectItem[];\r\n publishedOn: SelectItem[];\r\n titleNames:SelectItem[];\r\n\r\n results: QuickLinkResult[];\r\n reportScheduleData: ReportMetadata[];\r\n\r\n constructor(private route:ActivatedRoute,\r\n private searchService: SearchService,\r\n private reportDashboardService:ReportdashboardService) {\r\n this.titleNames = [\r\n { label: \"Today's Reports\", value: 1 },\r\n { label: \"Past 3 Days Reports\", value:3 },\r\n { label: \"Past 5 Days Reports\", value: 5 },\r\n { label: \"Past 7 Days Reports\", value: 7 },\r\n { label: \"Past Month's Reports\", value: 30 }\r\n ];\r\n\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.route.paramMap.subscribe(params => {\r\n this.dayCnt = +params.get('dayCnt');\r\n this.title =this.titleNames.filter(x=>x.value == this.dayCnt)[0].label;\r\n this.LoadData(this.dayCnt);\r\n this.first =0;\r\n });\r\n }\r\n\r\n paginate(event) {\r\n this.first = event.first;\r\n}\r\n\r\n private LoadData(dayCnt:number)\r\n {\r\n var currentDate = new Date();\r\n currentDate.setHours(23,59,59,999);\r\n var fromDate = new Date().setDate(currentDate.getDate() - dayCnt);\r\n this.searchService.getQuickLinkResults$(new Date(fromDate).toDateString(),currentDate.toLocaleString()).subscribe(resp => {\r\n // console.log(resp);\r\n if (resp.ok) {\r\n this.results = resp.body;\r\n this.results.sort((a, b) => {\r\n if (a.publishedOn > b.publishedOn) return -1;\r\n if (a.publishedOn < b.publishedOn) return 1;\r\n return 0;\r\n });\r\n\r\n\r\n var fileNameType = new Array();\r\n var postType = new Array();\r\n var countryType = new Array();\r\n var publishedOnDateType = new Array();\r\n\r\n for (let i = 0; i < this.results.length; i++) {\r\n fileNameType.push(this.results[i].fileName);\r\n postType.push(this.results[i].postName);\r\n countryType.push(this.results[i].countryName);\r\n publishedOnDateType.push(this.results[i].publishedOn.toString());\r\n }\r\n\r\n this.fileNames = this.GetUniqueValues(fileNameType);\r\n this.fasPosts = this.GetUniqueValues(postType);\r\n this.countries = this.GetUniqueValues(countryType);\r\n this.publishedOn = this.dateSort(publishedOnDateType);\r\n\r\n\r\n // console.log(this.searchResults);\r\n }\r\n });\r\n }\r\n\r\n dateSort(filterItem: any[]): SelectItem[]{\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a, b) => new Date(b.value).getTime() - new Date(a.value).getTime());\r\n return returnArray;\r\n }\r\n\r\n //TODO: Move this to a generic utils class\r\n GetUniqueValues(vals: any[]): SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n\r\n\r\n\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { User, UserType, AppRole, Location, UserRegistrationModel } from '../models/user.model';\r\nimport { Unsubscribable as AnonymousSubscription , Observable } from 'rxjs';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { RegistrationService } from '../services/registration.service';\r\nimport { NgxPermissionsService } from 'ngx-permissions';\r\nimport { NotifierService } from 'angular-notifier';\r\n//import { DISABLED } from '@angular/forms/src/model';\r\n\r\n@Component({\r\n selector: 'app-registration',\r\n templateUrl: './registration.component.html',\r\n styleUrls: ['./registration.component.css']\r\n})\r\nexport class RegistrationComponent implements OnInit {\r\n // User variables/data for registration\r\n currentUser: User;\r\n registerUserModel: UserRegistrationModel;\r\n userType: UserType;\r\n userRole: AppRole;\r\n // postEmployment: any;\r\n post: Location;\r\n division: Location;\r\n\r\n // lookup data\r\n userTypes: UserType[];\r\n // postEmployments: any[];\r\n appRoles: AppRole[];\r\n childLocations: Location[];\r\n showLaunchButtonClick: boolean = false;\r\n // Post User locations\r\n // regions: Location[];\r\n // countries: Location[];\r\n // posts: Location[];\r\n\r\n // HQ User locations\r\n // programAreas: Location[];\r\n //divisions: Location[];\r\n showRoleUserInformation: boolean=true;\r\n constructor(\r\n private authUser: AuthUserService,\r\n private lookupService: LookupService,\r\n private registrationService: RegistrationService,\r\n private permissionsService: NgxPermissionsService,\r\n private notifier: NotifierService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n this.registerUserModel = new UserRegistrationModel();\r\n this.registerUserModel.roleIds = new Array();\r\n this.userType = new UserType();\r\n \r\n\r\n // User Types -- Post or HQ\r\n this.lookupService.getUserTypes().subscribe((data: UserType[]) => {\r\n this.userTypes = data;\r\n this.userTypes = this.userTypes.filter(type => type.typeName !== 'Unknown');\r\n });\r\n \r\n // Post User Types -- LES or FSO\r\n // this.postEmployments = [\r\n // { id: 1, typeName: 'LES', roleIds: [3] }, // LES -> Author role ID = 3\r\n // { id: 2, typeName: 'FSO', roleIds: [3, 4] } // FSO -> Author, Approver roles ID = 3 & 4\r\n // ];\r\n }\r\n\r\n onChangeUserType(userType) {\r\n // get Root Locations for User Type\r\n this.lookupService.getRootLocations(this.userType.typeName).subscribe((data: Location[]) => {\r\n if (this.userType.typeName === 'PostUser') {\r\n this.disableButton = false;\r\n // PostUser->Regions\r\n // this.regions = data;\r\n // this.programAreas = null;\r\n } else {\r\n this.disableButton = true;\r\n\r\n\r\n\r\n // alert (\"Test\");\r\n // HQ->ProgramAreas\r\n\r\n // this.programAreas = data;\r\n // this.regions = null;\r\n }\r\n });\r\n\r\n // clear child locations\r\n // this.countries = null;\r\n // this.posts = null;\r\n // this.divisions = null;\r\n\r\n // get App Roles for User Type\r\n this.lookupService.getAppRolesByUserTypeId(this.userType.id).subscribe((data: AppRole[]) => {\r\n this.appRoles = data;\r\n // console.log(this.appRoles);\r\n });\r\n }\r\n onChangeUserRole(userRole) {\r\n // alert ('test');\r\n \r\n if (this.userRole.roleName=='Admin')\r\n {\r\n this.showLaunchButtonClick=true;\r\n // alert (this.userRole.roleName); \r\n }\r\n else\r\n {\r\n this.disableButton = false;\r\n }\r\n \r\n\r\n }\r\n OnUserRoleCancelButton()\r\n {\r\n this.showLaunchButtonClick = false; \r\n this.disableButton = true; \r\n }\r\n OnUserRoleOkButton()\r\n {\r\n this.showLaunchButtonClick = false; \r\n this.disableButton = false; \r\n }\r\n // onChangeRegion(region) {\r\n // this.getChildLocations(region.id).then(\r\n // (data) => {\r\n // this.countries = data;\r\n // }\r\n // );\r\n // }\r\n\r\n // onChangeCountry(country) {\r\n // this.getChildLocations(country.id).then(\r\n // (data) => {\r\n // this.posts = data;\r\n // }\r\n // );\r\n // }\r\n\r\n // onChangeProgramArea(programArea) {\r\n // this.getChildLocations(programArea.id).then(\r\n // (data) => {\r\n // this.divisions = data;\r\n // }\r\n // );\r\n // }\r\n\r\n // getChildLocations(parentId: number): any {\r\n // return new Promise((resolve) => {\r\n // this.lookupService.getChildLocations(parentId).subscribe(\r\n // (locations: Location[]) => {\r\n // resolve(locations);\r\n // }\r\n // );\r\n // });\r\n // }\r\n disableButton;\r\n registerPostUser() {\r\n this.registerUserModel.id = this.currentUser.id;\r\n this.registerUserModel.userTypeId = this.userType.id;\r\n // this.registerUserModel.locationId = this.post.id;\r\n // this.postEmployment.roleIds.forEach(roleId => {\r\n // this.registerUserModel.roleIds.push(roleId);\r\n // });\r\n\r\n this.registerUser(this.registerUserModel);\r\n //alert('Registered Successfully');\r\n this.notifier.notify('success','Registered Successfully');\r\n \r\n this.disableButton = true;\r\n this.showRoleUserInformation = false;\r\n }\r\n\r\n registerHQUser() {\r\n this.registerUserModel.id = this.currentUser.id;\r\n this.registerUserModel.userTypeId = this.userType.id;\r\n // this.registerUserModel.locationId = this.division.id;\r\n this.registerUserModel.roleIds.push(this.userRole.id);\r\n\r\n this.registerUser(this.registerUserModel);\r\n //alert('Registered Successfully');\r\n this.notifier.notify('success','Registered Successfully');\r\n this.disableButton = true;\r\n this.showRoleUserInformation = false;\r\n }\r\n\r\n registerUser(registerUserModel: UserRegistrationModel) {\r\n this.registrationService.registerUser(registerUserModel).subscribe(resp => {\r\n if (resp.ok) {\r\n // successfully registered\r\n // remove 'Unknown' role, add selected UserType role\r\n // remove 'New', add 'Registered' permission\r\n this.permissionsService.removePermission('New');\r\n this.permissionsService.addPermission('Registered');\r\n\r\n // GetUser api call to update user var in AuthUser ??\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LookupAdminService } from '../services/lookups/lookupadmin.service';\r\nimport { ReleaseNote } from '../models/user.model';\r\nimport {AccordionModule} from 'primeng/accordion';\r\n\r\n@Component({\r\n selector: 'app-release-note',\r\n templateUrl: './release-note.component.html',\r\n styleUrls: ['./release-note.component.css']\r\n})\r\n\r\nexport class ReleaseNoteComponent implements OnInit {\r\n\r\nreleaseNotes: ReleaseNote[];\r\n\r\n constructor(private lookupAdminService: LookupAdminService) { }\r\n\r\n ngOnInit() {\r\n this.LoadReleaseNotes();\r\n }\r\n\r\n private LoadReleaseNotes(){\r\n //(\"start This is ReleaseNotes data\");\r\n this.lookupAdminService.getAllReleaseNotes$()\r\n .subscribe(data=>{\r\n\r\n this.releaseNotes = data;\r\n //console.log(\"This is ReleaseNotes data\");\r\n //console.log(this.releaseNotes);\r\n\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reportassignment',\r\n templateUrl: './reportassignment.component.html',\r\n styleUrls: ['./reportassignment.component.css']\r\n})\r\nexport class ReportassignmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ReportAttachment } from '../../models/report.model';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-reportattachments',\r\n templateUrl: './reportattachments.component.html',\r\n animations: [\r\n trigger('rowExpansionTrigger', [\r\n state(\r\n 'void',\r\n style({\r\n transform: 'translateX(-10%)',\r\n opacity: 0\r\n })\r\n ),\r\n state(\r\n 'active',\r\n style({\r\n transform: 'translateX(0)',\r\n opacity: 1\r\n })\r\n ),\r\n transition('* <=> *', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n ])\r\n ],\r\n styleUrls: ['./reportattachments.component.css']\r\n})\r\nexport class ReportattachmentsComponent implements OnInit {\r\n uploadAttachmentList: ReportAttachment[] = [];\r\n reportAttachmentList: ReportAttachment[] = [];\r\n reportState: string;\r\n reportMetadataId: any;\r\n isLocked: boolean = false;\r\n loading: boolean;\r\n\r\n constructor(private reportDashboardService: ReportdashboardService, private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n this.reportAttachmentList = [];\r\n }\r\n\r\n ShowAttachmentsDialog(reportMetadataId: any, reportState: string) {\r\n this.reportAttachmentList = [];\r\n\r\n this.reportState = reportState;\r\n this.reportMetadataId = reportMetadataId;\r\n this.loading = true;\r\n //setTimeout(() => {\r\n this.reportDashboardService\r\n .getReportAttachments$(reportMetadataId)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(data => {\r\n this.reportAttachmentList = data;\r\n });\r\n this.reportDashboardService.checkForLock(reportMetadataId).subscribe((data: boolean) => {\r\n this.isLocked = data;\r\n //console.log(data);\r\n });\r\n\r\n // },5000);\r\n }\r\n\r\n async onUpload(event, form) {\r\n var formData = new FormData();\r\n for (let file of event.files) {\r\n if (this.reportAttachmentList.length > 0) {\r\n if (this.reportAttachmentList.filter(x => x.attachmentName == file.name).length > 0) {\r\n this.clearFiles(form);\r\n this.notifier.notify('error', 'Attachment already exists');\r\n return;\r\n }\r\n }\r\n formData.append('files', file, file.name);\r\n }\r\n this.reportDashboardService.uploadAttachments$(this.reportMetadataId, formData).subscribe(\r\n resp => {\r\n //console.log(resp);\r\n this.reportDashboardService.getReportAttachments$(this.reportMetadataId).subscribe(data => {\r\n this.reportAttachmentList = data;\r\n });\r\n this.notifier.notify('success', 'Attachment(s) added successfully');\r\n this.clearFiles(form);\r\n },\r\n (error: any) => {\r\n this.clearFiles(form);\r\n console.log(error);\r\n this.notifier.notify('error', 'Something went wrong, Please contact System Administrator');\r\n }\r\n );\r\n }\r\n\r\n clearFiles(form) {\r\n this.uploadAttachmentList = [];\r\n form.clear();\r\n }\r\n openAttachment(Id: number, fileName: string) {\r\n var fileType = fileName.split('.', 2)[1].toString();\r\n this.reportDashboardService.openAttachment$(Id, fileType).subscribe((content: Blob) => {\r\n const fileURL = URL.createObjectURL(content);\r\n //setTimeout(() => window.open(fileURL, '_blank'), 1000);\r\n var anchor = document.createElement('a');\r\n anchor.download = fileName;\r\n anchor.href = fileURL;\r\n anchor.click();\r\n });\r\n }\r\n deleteAttachment(reportAttachment: ReportAttachment) {\r\n this.reportDashboardService.deleteAttachment$(reportAttachment.id, this.reportMetadataId).subscribe(resp => {\r\n if (resp.ok) {\r\n this.reportAttachmentList.splice(this.reportAttachmentList.indexOf(reportAttachment), 1);\r\n this.notifier.notify('success', 'Attachment removed successfully');\r\n } else {\r\n this.notifier.notify('error', 'Something went wrong, Please contact System Administrator');\r\n }\r\n });\r\n }\r\n}\r\n\r\n// async onUpload(event, form) {\r\n\r\n// for (let file of event.files) {\r\n\r\n// if(this.reportAttachmentList.length >0)\r\n// {\r\n// if(this.reportAttachmentList.filter(x=>x.attachmentName == file.name).length >0)\r\n// {\r\n// this.notifier.notify('error','Attachment already exists');\r\n// return;\r\n// }\r\n// // if(file.name.length > 700000)\r\n// // {\r\n// // this.notifier.notify('error','File Name is too Long');\r\n// // return;\r\n// // }\r\n// }\r\n\r\n// // const readUploadedFileAsArrayBuffer = (inputFile) => {\r\n// // const temporaryFileReader = new FileReader();\r\n\r\n// // return new Promise((resolve, reject) => {\r\n// // temporaryFileReader.onerror = () => {\r\n// // temporaryFileReader.abort();\r\n// // reject(\"Problem parsing input file.\");//new DOMException(\"Problem parsing input file.\")\r\n// // };\r\n\r\n// // temporaryFileReader.onload = () => {\r\n// // resolve(temporaryFileReader.result);\r\n// // };\r\n// // temporaryFileReader.readAsArrayBuffer(inputFile);\r\n// // });\r\n// // };\r\n\r\n// // const fileContent = await readUploadedFileAsArrayBuffer(file);\r\n// // this.uploadAttachments(file,fileContent);\r\n\r\n// }\r\n\r\n// this.reportDashboardService.uploadAttachments$(this.uploadAttachmentList).subscribe((resp)=>{\r\n// if(resp.ok)\r\n// {\r\n// this.reportAttachmentList =resp.body;\r\n// this.notifier.notify('success','Attachment added successfully');\r\n// }\r\n// else{\r\n// this.notifier.notify('error','Something went wrong, Please contact System Administrator');\r\n\r\n// }\r\n// this.clearFiles(form);\r\n// this.uploadAttachmentList=[];\r\n// });\r\n\r\n// }\r\n// uploadAttachments(file,fileContent)\r\n// {\r\n// var fileBuffer = new Uint8Array(fileContent);\r\n// var content :any[]=[];\r\n// if (fileBuffer) {\r\n// var byteArray = new Uint8Array(fileBuffer);\r\n// for (var i = 0; i < byteArray.byteLength; i++) {\r\n// content.push(byteArray[i]);\r\n// }\r\n// }\r\n// this.uploadAttachmentList.push({\r\n// id: 0,\r\n// reportMetadataId:this.reportMetadataId,\r\n// attachmentName:file.name,\r\n// attachmentContent:content\r\n// });\r\n\r\n// console.log(this.uploadAttachmentList);\r\n\r\n// }\r\n","import { Component, OnInit,Input, ViewChild } from '@angular/core';\r\nimport { ReportMetadata ,Approver, ReportStates, Report} from '../models/report.model';\r\nimport { ReportdashboardService } from '../services/reportdashboard.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NgForm } from '@angular/forms';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { environment } from '../../environments/environment';\r\nimport { ActivatedRoute} from '@angular/router';\r\nimport { User, HqLocationsModel, UserType } from '../models/user.model';\r\nimport { ReportlistingComponent } from './reportlisting/reportlisting.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { delay, finalize } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-reportdashboard',\r\n templateUrl: './reportdashboard.component.html',\r\n styleUrls: ['./reportdashboard.component.css']\r\n})\r\nexport class ReportdashboardComponent implements OnInit {\r\n\r\n displayMetadata =false;\r\n reportScheduleData:ReportMetadata[]=[];\r\n interimReportScheduleData:ReportMetadata[]=[];\r\n requiredReportScheduleData:ReportMetadata[]=[];\r\n voluntaryReportScheduleData:ReportMetadata[]=[];\r\n intrestReportScheduleData:ReportMetadata[]=[];\r\n reportMetadata: ReportMetadata;\r\n saveReportMetadatafields: any;\r\n saveStatus:boolean = false;\r\n selectedApprover :Approver;\r\n ApproverList : Approver[];\r\n type:string;\r\n accessLink :string;\r\n reportType:string;\r\n currentUser: User;\r\n @ViewChild(ReportlistingComponent) reportListing: ReportlistingComponent;\r\n // @Input() ApproverList : Approver[];\r\n constructor(private reportDashboardService:ReportdashboardService,\r\n private authUserService:AuthUserService,\r\n private lookupService:LookupService,\r\n private spinner: NgxSpinnerService\r\n //private reportService: ReportdashboardService,\r\n //private route:ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit()\r\n {\r\n this.reportType=\"r\";\r\n this.LoadReportSchedules();\r\n\r\n\r\n }\r\n\r\n LoadReportSchedules()\r\n {\r\n this.currentUser = this.authUserService._user;\r\n this.reportScheduleData = [];\r\n\r\n //this.spinner.show();\r\n this.reportDashboardService.getReportSchedule()\r\n .pipe(finalize(()=>this.spinner.hide()))\r\n .subscribe((data:ReportMetadata[])=>{\r\n this.reportScheduleData = data;\r\n this.reportScheduleData.sort((a,b):number=>{\r\n if (a.reportState > b.reportState) return 1;\r\n if (a.reportState < b.reportState) return -1;\r\n return 0;\r\n });\r\n\r\n let correctedReportSchedules = this.reportScheduleData.filter(x=>{\r\n if(x.reportStateId== ReportStates.RequestedForCorrection ||\r\n x.reportStateId== ReportStates.CorrectedAndSentToApprover||\r\n x.reportStateId== ReportStates.CorrectedAndSentToWashington)\r\n return x;\r\n });\r\n\r\n let otherStateReportSchedules = this.reportScheduleData.filter(x=>{\r\n if(x.reportStateId != ReportStates.RequestedForCorrection &&\r\n x.reportStateId != ReportStates.CorrectedAndSentToApprover&&\r\n x.reportStateId != ReportStates.CorrectedAndSentToWashington)\r\n return x;\r\n });\r\n\r\n this.reportScheduleData = correctedReportSchedules.concat(otherStateReportSchedules);\r\n this.requiredReportScheduleData =this.reportScheduleData.filter(rs => rs.isRequired == true);\r\n this.voluntaryReportScheduleData =this.reportScheduleData.filter(rs => rs.isRequired == false);\r\n\r\n\r\n if(this.currentUser.userType.typeName=='HQUser')\r\n {\r\n if(this.currentUser.userRoles[1].roleName !== 'Admin')\r\n {\r\n this.lookupService.getUserLocations().subscribe((userLocation: HqLocationsModel[]) => {\r\n\r\n this.requiredReportScheduleData = this.reportScheduleData.filter(rs => rs.programArea == userLocation[0].programArea && rs.isRequired == true);\r\n this.voluntaryReportScheduleData = this.reportScheduleData.filter(rs=>rs.isRequired == false);\r\n this.intrestReportScheduleData = this.reportScheduleData.filter(rs => rs.programArea != userLocation[0].programArea && rs.isRequired == true);\r\n\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nRefreshDataSource(isReload:boolean){\r\n // console.log(isReload);\r\n if(isReload)\r\n this.LoadReportSchedules();\r\n\r\n}\r\n\r\n\r\n // onTabChange(val)\r\n // {\r\n // if(val.index==0)\r\n // {\r\n // this.reportType =\"r\";\r\n // }\r\n // else\r\n // this.reportType =\"v\";\r\n // }\r\n //}\r\n\r\n\r\n //);\r\n\r\n //console.log(this.type);\r\n // this.reportDashboardService.getReportSchedule().subscribe(\r\n // (data:ReportMetadata[])=>{\r\n // console.log(data);\r\n // this.reportScheduleData =data;\r\n // }\r\n // );\r\n // if(this.type==\"r\")\r\n // this.displayMetadata=false;\r\n // else\r\n // this.displayMetadata=true;\r\n\r\n // }\r\n\r\n // showMetadataDialog(id:any)\r\n // {\r\n // this.saveStatus = false;\r\n // this.reportDashboardService.getReportScheduleById(id).subscribe((metadata:ReportMetadata)=>{\r\n // console.log(metadata);\r\n // this.reportMetadata = metadata;\r\n // this.reportMetadata.preparedBy =this.authUserService._user.firstName +\" , \" +this.authUserService._user.lastName ;\r\n // //TODO: Remove the hard coded value for the report Type\r\n // this.reportMetadata.reportType =\"Required Report - Public Distribution\";\r\n\r\n // if(this.reportMetadata.approverId!==0)\r\n // {\r\n // this.saveStatus = true;\r\n // }\r\n\r\n // this.lookupService.getPostApprovers(this.reportMetadata.fasPostId).subscribe((approvers:[Approver]) =>{\r\n // this.ApproverList = approvers;\r\n // this.selectedApprover = approvers.find(approver => approver.id === this.reportMetadata.approverId)\r\n // });\r\n\r\n // });\r\n // this.displayMetadata=true;\r\n // }\r\n //Moved to Report Listing Component\r\n // SaveReportMetadata() {\r\n // this.saveReportMetadatafields = {id: this.reportMetadata.id,\r\n // approverId: this.reportMetadata.approverId,\r\n // highlights: this.reportMetadata.highlights,\r\n // preferredReportName: this.reportMetadata.reportName\r\n\r\n // };\r\n\r\n // this.reportService.saveReportMetadata(this.saveReportMetadatafields).subscribe(\r\n // (resp) => {\r\n // if (resp.ok) {\r\n\r\n // // SUCCESSFULLY ADDED\r\n // alert(\"Saved Successfully\");\r\n // console.log(resp);\r\n // }\r\n // });\r\n\r\n // }\r\n // ViewReport()\r\n // {\r\n\r\n // this.reportDashboardService.launchReport(this.reportMetadata.id).subscribe(\r\n // (data) => {\r\n\r\n // console.log(data);\r\n // this.accessLink =\"ms-word:ofe|u|\"+ environment.serverUrl+\"/\"+ data;\r\n // const link = document.createElement('a');\r\n // link.href = this.accessLink;\r\n // link.setAttribute('visibility', 'hidden');\r\n // link.click();\r\n // //TODO: The above code is not working for IE but works for Chorme\r\n // //window.open(this.accessLink);\r\n\r\n\r\n // }\r\n\r\n // );\r\n // console.log(this.accessLink);\r\n\r\n // }\r\n // onApproverChange(approver: Approver) {\r\n // this.reportMetadata.approverId = approver.id;\r\n // if (approver.id != null) {\r\n // this.saveStatus = true;\r\n // }\r\n // }\r\n // CancelReportMetadataDialog()\r\n // {\r\n // this.displayMetadata=false;\r\n // }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ReportAuditRecord } from '../../models/report.model';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\n\r\n@Component({\r\n selector: 'app-reporthistory',\r\n templateUrl: './reporthistory.component.html',\r\n styleUrls: ['./reporthistory.component.css']\r\n})\r\nexport class ReporthistoryComponent implements OnInit {\r\n reportAuditTrailData:ReportAuditRecord[];\r\n \r\n constructor(private reportDashboardService:ReportdashboardService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ShowReportHistoryDlg(Id:any)\r\n {\r\n this.reportDashboardService.getReportHistoryById(Id).subscribe(\r\n (data:ReportAuditRecord[])=>{\r\n //console.log(data);\r\n this.reportAuditTrailData =data;\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\nimport { ReportMetadata, Approver, ReportAuditRecord, ReportStates } from '../../models/report.model';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { RequiredrptmetadataComponent } from '../requiredrptmetadata/requiredrptmetadata.component';\r\nimport { VoluntaryrptmetadataComponent } from '../voluntaryrptmetadata/voluntaryrptmetadata.component';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ConfirmationService, SelectItem, LazyLoadEvent } from 'primeng/api';\r\nimport { ReportworkflowComponent } from '../reportworkflow/reportworkflow.component';\r\nimport { error } from 'util';\r\nimport { ReporthistoryComponent } from '../reporthistory/reporthistory.component';\r\nimport { PermissionsService } from '../../services/permissions.service';\r\nimport { ReportattachmentsComponent } from '../reportattachments/reportattachments.component';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { User, HqLocationsModel } from '../../models/user.model';\r\nimport { ReportService } from '../../services/report.service';\r\n//import { Observable } from 'rxjs';\r\n//import { NgForm } from '@angular/forms';\r\n\r\n//import { environment } from '../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-reportlisting',\r\n templateUrl: './reportlisting.component.html',\r\n styleUrls: ['./reportlisting.component.css'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class ReportlistingComponent implements OnInit,OnChanges {\r\n showLaunchButtonClick: boolean = false;\r\n showPublishedReportClick: boolean = false;\r\n displayMetadata = false;\r\n displayWorkflowDlg = false;\r\n displayHistoryDlg = false;\r\n displayAttachmentDlg = false;\r\n categories: SelectItem[];\r\n reportNames: SelectItem[];\r\n countries: SelectItem[];\r\n fasPosts: SelectItem[];\r\n programAreas: SelectItem[];\r\n distributionTypes: SelectItem[];\r\n dueDates: SelectItem[];\r\n reportStates: SelectItem[];\r\n dialogTitle: string;\r\n selectedReportID: string = '';\r\n lastUpdateDatetime: SelectItem[];\r\n publishedReportMetadata: ReportMetadata;\r\n //strRequiredReports=\"Required Reports\";\r\n //strVoluntaryReports=\"Voluntary Reports\";\r\n @Input() reportType: string;\r\n @ViewChild(RequiredrptmetadataComponent) requiredRptMetadata: RequiredrptmetadataComponent;\r\n @ViewChild(VoluntaryrptmetadataComponent) voluntaryRptMetadata: VoluntaryrptmetadataComponent;\r\n @ViewChild(ReportworkflowComponent) reportWorkflow: ReportworkflowComponent;\r\n @ViewChild(ReporthistoryComponent) reporthistory: ReporthistoryComponent;\r\n @ViewChild(ReportattachmentsComponent) reportAttachements: ReportattachmentsComponent;\r\n @Input() reportScheduleData: ReportMetadata[];\r\n @Output() refreshDataSource=new EventEmitter();\r\n\r\n interestReportScheduleData: ReportMetadata[];\r\n myReportScheduleData: ReportMetadata[];\r\n currentUser: User;\r\n isRequired: boolean;\r\n reportId: any;\r\n loading:boolean;\r\n cols: any[];\r\n\r\n constructor(\r\n private lookupService: LookupService,\r\n private authUser: AuthUserService,\r\n private authUserService: AuthUserService,\r\n private reportDashboardService: ReportdashboardService,\r\n private workflowEvents: PermissionsService,\r\n private notifier: NotifierService,\r\n private confirmationService: ConfirmationService,\r\n private reportService:ReportService\r\n ) {}\r\n\r\n ngOnInit() {\r\n // this.currentUser = this.authUser._user;\r\n\r\n //console.log(this.reportType);\r\n // if (this.reportType == 'r' || this.reportType =='i') this.isRequired = true;\r\n // else if (this.reportType == 'v') this.isRequired = false;\r\n // this.loading = true;\r\n this.LoadTableFilters(this.reportScheduleData);\r\n\r\n }\r\n\r\n ngOnChanges(changes:SimpleChanges)\r\n {\r\n this.LoadTableFilters(this.reportScheduleData);\r\n }\r\n LoadTableFilters(reportMetadata: ReportMetadata[]) {\r\n if(reportMetadata.length>0)\r\n {\r\n this.categories = this.GetUniqueValues(reportMetadata.map(r => r.category));\r\n this.reportNames = this.GetUniqueValues(reportMetadata.map(r => r.reportName));\r\n this.countries = this.GetUniqueValues(reportMetadata.map(r => r.country));\r\n this.fasPosts = this.GetUniqueValues(reportMetadata.map(r => r.fasPost));\r\n this.programAreas = this.GetUniqueValues(reportMetadata.map(r => r.programArea));\r\n this.distributionTypes = this.GetUniqueValues(reportMetadata.map(r => r.distribution));\r\n this.dueDates = this.dateSort(reportMetadata.map(r => r.dueDate));\r\n this.reportStates = this.GetUniqueValues(reportMetadata.map(r => r.reportState));\r\n this.lastUpdateDatetime = this.dateSort(reportMetadata.map(r => r.lastUpdatedDatetime));\r\n }\r\n\r\n if(this.reportType == 'v')\r\n {\r\n this.cols = [\r\n { field: 'category', header: 'Category' },\r\n { field: 'reportName', header: 'Report Name' },\r\n { field: 'country', header: 'Country' },\r\n { field: 'fasPost', header: 'FAS Post' },\r\n { field: 'distribution', header: 'Distribution' },\r\n { field: 'reportState', header: 'Status' },\r\n { field: 'dueDate', header: 'Due Date' },\r\n { field: 'lastUpdatedDatetime', header: 'Status Updated Date' },\r\n ];\r\n }\r\n\r\n if (this.reportType == 'r' || this.reportType =='i')\r\n {\r\n this.cols = [\r\n { field: 'category', header: 'Category' },\r\n { field: 'reportName', header: 'Frequency Type' },\r\n { field: 'country', header: 'Country' },\r\n { field: 'fasPost', header: 'FAS Post' },\r\n { field: 'programArea', header: 'Program Area' },\r\n { field: 'distribution', header: 'Distribution' },\r\n { field: 'reportState', header: 'Status' },\r\n { field: 'dueDate', header: 'Due Date' },\r\n { field: 'lastUpdatedDatetime', header: 'Status Updated Date' },\r\n ];\r\n }\r\n\r\n }\r\n\r\ndateSort(filterItem: any[]): SelectItem[]{\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a, b) => new Date(b.value).getTime() - new Date(a.value).getTime());\r\n return returnArray;\r\n }\r\n\r\n //LoadReportSchedules()\r\n //{\r\n //this.LoadTableFilters(this.reportScheduleData);\r\n\r\n // this.currentUser = this.authUser._user;\r\n\r\n // this.reportDashboardService.getReportSchedule().subscribe((data:ReportMetadata[])=>{\r\n // //TODO: Push this data to Local storage in order to make edits avoid reloads\r\n // this.myReportScheduleData =data;\r\n // this.reportScheduleData =this.myReportScheduleData.filter(rs => rs.isRequired == this.isRequired);\r\n // //console.log(\"Report Schedule data from MY Reports\" + JSON.stringify(this.reportScheduleData));\r\n\r\n // this.lookupService.getUserLocations().subscribe((userLocation: HqLocationsModel[]) => {\r\n // if(this.currentUser.userType.typeName=='HQUser')\r\n // {\r\n // if(this.currentUser.userRoles[1].roleName == 'Admin')\r\n // {\r\n // if (this.reportType == 'r')\r\n // this.reportScheduleData = this.myReportScheduleData.filter(rs => rs.isRequired == true)\r\n\r\n // this.reportScheduleData.sort((a,b):number=>{\r\n // if (a.reportState > b.reportState) return 1;\r\n // if (a.reportState < b.reportState) return -1;\r\n // return 0;\r\n // });\r\n // }\r\n // else\r\n // {\r\n // if (this.reportType == 'r')\r\n // this.reportScheduleData = this.myReportScheduleData.filter(rs => rs.programArea == userLocation[0].programArea && rs.isRequired == true)\r\n // if(this.reportType =='i')\r\n // this.reportScheduleData = this.myReportScheduleData.filter(rs => rs.programArea != userLocation[0].programArea && rs.isRequired == true)\r\n\r\n // this.reportScheduleData.sort((a,b):number=>{\r\n // if (a.category > b.category) return 1;\r\n // if (a.category < b.category) return -1;\r\n // return 0;\r\n // });\r\n // }\r\n // }\r\n // // this.reportScheduleData.sort((a,b):number=>{\r\n // // if (a.category > b.category) return 1;\r\n // // if (a.category < b.category) return -1;\r\n // // return 0;\r\n // // });\r\n // this.LoadTableFilters(this.reportScheduleData);\r\n // this.loading=false;\r\n // });\r\n\r\n // });\r\n\r\n //}\r\n\r\n showMetadataDialog(id: any) {\r\n this.reportId = id;\r\n //console.log(\"in showMetadataDialog\" + id);\r\n if (this.reportType == 'r' || this.reportType =='i') this.requiredRptMetadata.showMetadataDialog(this.reportId);\r\n else this.voluntaryRptMetadata.showMetadataDialog(this.reportId);\r\n }\r\n ShowHistoryDialog(id: any) {\r\n this.reporthistory.ShowReportHistoryDlg(id);\r\n this.displayHistoryDlg = true;\r\n }\r\n ShowAttachmentsDialog(id: any, reportState: string) {\r\n this.reportAttachements.ShowAttachmentsDialog(id, reportState);\r\n this.displayAttachmentDlg = true;\r\n }\r\n\r\n LaunchReport(id: any) {\r\n if (this.reportType == 'r' || this.reportType =='i') this.requiredRptMetadata.LaunchReport(id);\r\n else this.voluntaryRptMetadata.LaunchReport(id);\r\n }\r\n ViewPDF(id:any)\r\n {\r\n this.reportDashboardService.downloadPDF$(id).subscribe((content:Blob)=>{\r\n const fileURL = URL.createObjectURL(content);\r\n window.open(fileURL, '_blank');\r\n\r\n });\r\n\r\n }\r\n\r\n PreviewPDF(id:any)\r\n {\r\n this.reportService.previewPDF$(id).subscribe((content:Blob)=>{\r\n const fileURL = URL.createObjectURL(content);\r\n\r\n window.open(fileURL, '_blank');\r\n\r\n });\r\n\r\n }\r\n ShowHideDialog(isDisplayRefresh: number) {\r\n //0-Hide Popup No refresh 1-Show popup no refresh 2-Hide popup Refresh 3-Show popup Refresh\r\n this.displayMetadata = (isDisplayRefresh == 1 || isDisplayRefresh == 3);\r\n // console.log(isDisplayRefresh);\r\n this.refreshDataSource.emit((isDisplayRefresh == 2 || isDisplayRefresh == 3));\r\n }\r\n\r\n ShowHideWorkflowDialog(isDisplay: boolean) {\r\n //console.log(isDisplay);\r\n this.displayWorkflowDlg = isDisplay;\r\n if (isDisplay == false) this.refreshDataSource.emit(true);//this.LoadReportSchedules();\r\n\r\n //this.LoadReportSchedules();\r\n }\r\n ShowHideHistoryDlg(isDisplay: boolean) {\r\n this.displayHistoryDlg = isDisplay;\r\n }\r\n SendToWorkflow(reportSchedule: ReportMetadata, mode: string) {\r\n this.reportDashboardService.getReportScheduleById(reportSchedule.id).subscribe((data: ReportMetadata)=>{\r\n this.publishedReportMetadata = data;\r\n // console.log('Report Metadata =========== '+ JSON.stringify(this.publishedReportMetadata));\r\n // console.log('Report Metadata =========== '+ this.publishedReportMetadata.isReportPublished);\r\n\r\n if(this.publishedReportMetadata.isReportPublished)\r\n {\r\n this.showPublishedReportClick = true;\r\n this.notifier.notify('error', 'Report is Published. Please refresh the page.');\r\n }\r\n else{\r\n this.reportWorkflow.ShowWorkflowDialog(reportSchedule.id, mode);\r\n this.dialogTitle = this.reportWorkflow.dialogTitle;\r\n }\r\n });\r\n\r\n\r\n //console.log('In SendToWorkflow');\r\n //this.displayWorkflowDlg= true;\r\n }\r\n\r\n ShowConfirmationDlg(id: any, dlgMessage: string, action: string, successMsg: string) {\r\n this.confirmationService.confirm({\r\n message: dlgMessage,\r\n header: 'Confirmation',\r\n icon: 'fa fa-exclamation-circle',\r\n accept: () => {\r\n this.reportDashboardService.performAction$(id, action).subscribe(\r\n resp => {\r\n if (resp.ok) {\r\n // console.log(\"Test the load\");\r\n //this.LoadReportSchedules();\r\n this.refreshDataSource.emit(true);\r\n this.notifier.notify('success', successMsg);\r\n }\r\n // else {\r\n // this.notifier.notify('error', 'Report is already Published. Please refresh the page.');\r\n // }\r\n },\r\n err => {\r\n console.log(err);\r\n this.notifier.notify('error', 'Something went wrong, Please contact Administrator');\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n GetStyle(reportState: string): string {\r\n let colorVal = '#FFF';\r\n var value: string[] = [reportState, 'ViewDisabledRecord'];\r\n this.workflowEvents.checkAuthorization(value).subscribe(authorized => {\r\n //console.log(authorized);\r\n if (authorized) {\r\n colorVal = '#EDEDED';\r\n }\r\n });\r\n return colorVal;\r\n }\r\n\r\n SendToPostApprover(report: any) {\r\n if(report.reportStateId == ReportStates.RequestedForCorrection)\r\n {\r\n this.ShowConfirmationDlg(\r\n report.id,\r\n 'Are you sure you want to send for Approval?',\r\n 'SendCorrectedToPostApprover',\r\n 'Report Sent to Approver Successfully'\r\n );\r\n }\r\n else{\r\n this.ShowConfirmationDlg(\r\n report.id,\r\n 'Are you sure you want to send for Approval?',\r\n 'SendToPostApprover',\r\n 'Report Sent to Approver Successfully'\r\n );\r\n }\r\n }\r\n\r\n PutOnHold(id: any) {\r\n this.reportDashboardService.getReportScheduleById(id).subscribe((data: ReportMetadata)=>{\r\n this.publishedReportMetadata = data;\r\n // console.log('Report Metadata =========== '+ JSON.stringify(this.publishedReportMetadata));\r\n // console.log('Report Metadata =========== '+ this.publishedReportMetadata.isReportPublished);\r\n\r\n if(this.publishedReportMetadata.isReportPublished)\r\n {\r\n this.showPublishedReportClick = true;\r\n this.notifier.notify('error', 'Report is Published. Please refresh the page.');\r\n }\r\n else{\r\n this.ShowConfirmationDlg(id, 'Are you sure you want to Put report on hold?', 'PutOnHold', 'Report is Put on Hold');\r\n }\r\n });\r\n }\r\n\r\n UnHoldReport(id: any) {\r\n this.ShowConfirmationDlg(\r\n id,\r\n 'Are you sure you want to remove Hold on report?',\r\n 'UnHoldReport',\r\n 'Report is removed from Hold'\r\n );\r\n }\r\n PublishImmediately(id: any) {\r\n this.reportDashboardService.getReportScheduleById(id).subscribe((data: ReportMetadata)=>{\r\n this.publishedReportMetadata = data;\r\n if(this.publishedReportMetadata.isReportPublished)\r\n {\r\n this.showPublishedReportClick = true;\r\n this.notifier.notify('error', 'Report is Published. Please refresh the page.');\r\n }\r\n else{\r\n this.ShowConfirmationDlg(\r\n id,\r\n 'Are you sure you want to Publish Immediately?',\r\n 'PublishImmediately',\r\n 'Report is send to Publish Immediately'\r\n );\r\n }\r\n });\r\n }\r\n\r\nDeleteReport(id: any){\r\n this.ShowConfirmationDlg(\r\n id,\r\n 'Are you sure you want to delete the report?',\r\n 'DeleteReport',\r\n 'Report is Deleted'\r\n );\r\n\r\n}\r\n //TODO: Move this to a generic utils class\r\n GetUniqueValues(vals: any[]): SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n\r\n\r\n\r\n loadCarsLazy(event: LazyLoadEvent) {\r\n this.loading = true;\r\n\r\n //in a real application, make a remote request to load data using state metadata from event\r\n //event.first = First row offset\r\n //event.rows = Number of rows per page\r\n //event.sortField = Field name to sort with\r\n //event.sortOrder = Sort order as number, 1 for asc and -1 for dec\r\n //filters: FilterMetadata object having field as key and filter value, filter matchMode as value\r\n\r\n //imitate db connection over a network\r\n setTimeout(() => {\r\n if(this.reportScheduleData.length >0)\r\n {\r\n this.loading = false;\r\n }\r\n\r\n }, 1000);\r\n}\r\n\r\n// OnClassifiedOkButton()\r\n // {\r\n // this.showLaunchButtonClick = false;\r\n // this.LaunchReport(this.selectedReportID);\r\n // console.log(\"on Ok\");\r\n\r\n // }\r\n // OnLaunchReportAlertClassified(id: any)\r\n // {\r\n // this.showLaunchButtonClick = true;\r\n // this.selectedReportID = id;\r\n // console.log(\"on launch\");\r\n // }\r\n\r\n OnshowPublishedReportOkButton()\r\n {\r\n this.showPublishedReportClick = false;\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReportMetadata } from '../../models/report.model';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-reportworkflow',\r\n templateUrl: './reportworkflow.component.html',\r\n styleUrls: ['./reportworkflow.component.css']\r\n})\r\nexport class ReportworkflowComponent implements OnInit {\r\n reportWorkflowForm: FormGroup;\r\n approveText: string;\r\n returnText: string;\r\n dialogTitle: string;\r\n reportMetadataId: any;\r\n dlgMode: string;\r\n @Output() showHideWorkflowDlg = new EventEmitter();\r\n constructor(\r\n private fb: FormBuilder,\r\n private reportDashboardService: ReportdashboardService,\r\n private notifier: NotifierService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.reportWorkflowForm = this.fb.group({\r\n status: ['', Validators.required],\r\n removeAuthor:[false],\r\n comments: ['']\r\n });\r\n }\r\n\r\n ShowWorkflowDialog(id: any, mode: string) {\r\n this.reportMetadataId = id;\r\n this.dlgMode = mode;\r\n this.reportWorkflowForm.reset();\r\n\r\n //TODO: Remove Hard coding\r\n if (mode == 'Approve') {\r\n this.approveText = 'Approve and Send to Washington';\r\n this.returnText = 'Return to Author';\r\n this.dialogTitle = 'Approve/Return';\r\n } else {\r\n // this.approveText = 'Validated and Ready to Publish';\r\n // this.returnText = 'Return to Author';\r\n // this.dialogTitle = 'Validate/Return';\r\n this.returnText = 'Return to Author';\r\n this.dialogTitle = 'Return to Post Author/Approver';\r\n }\r\n\r\n this.showHideWorkflowDlg.emit(true);\r\n }\r\n\r\n SaveWorkflowStatus() {\r\n //console.log(this.reportWorkflowForm.controls[\"status\"].value);\r\n //this.reportWorkflowForm.controls[].value\r\n\r\n if (this.reportWorkflowForm.controls['status'].value === 'true') {\r\n this.reportDashboardService.checkforCommentsandTrackChanges$(this.reportMetadataId).subscribe(data => {\r\n if (data === false) {\r\n this.ExecuteWorkflow();\r\n } else {\r\n this.notifier.notify(\r\n 'error',\r\n 'Please verify the document for Track changes and comments. Remove track changes and comments to proceed further'\r\n );\r\n }\r\n });\r\n } else {\r\n this.ExecuteWorkflow();\r\n }\r\n }\r\n\r\n ExecuteWorkflow() {\r\n // console.log(\"Remove author\" + JSON.stringify(this.reportWorkflowForm.controls['removeAuthor'].value));\r\n this.reportDashboardService\r\n .executeWorkflow$(\r\n this.reportMetadataId,\r\n this.dlgMode,\r\n this.reportWorkflowForm.controls['status'].value,\r\n this.reportWorkflowForm.controls['comments'].value,\r\n //this.reportWorkflowForm.controls['removeAuthor'].value\r\n this.reportWorkflowForm.controls['removeAuthor'].value === null ? false : this.reportWorkflowForm.controls['removeAuthor'].value\r\n )\r\n .subscribe(\r\n resp => {\r\n\r\n // Code to load the reportschedules in ReportListing Component\r\n this.showHideWorkflowDlg.emit(false);\r\n\r\n if (resp.ok) {\r\n this.notifier.notify(\r\n 'success',\r\n this.getConfirmationMsg(this.dlgMode, this.reportWorkflowForm.controls['status'].value)\r\n );\r\n }\r\n },\r\n err => {\r\n console.log(err);\r\n this.notifier.notify('error', 'Something went wrong, Please contact Administrator');\r\n }\r\n );\r\n // this.showHideWorkflowDlg.emit(false);\r\n }\r\n CloseWorkflowDialog() {\r\n this.reportWorkflowForm.reset();\r\n this.showHideWorkflowDlg.emit(false);\r\n }\r\n getConfirmationMsg(dlgMode: string, status: string): string {\r\n if (dlgMode == 'Approve' && status == 'true') {\r\n return 'Report Approved and Sent to Washington successfully';\r\n } else if (dlgMode == 'Approve' && status == 'false') {\r\n return 'Report is returned to Author successfully';\r\n } else if (dlgMode == 'Validation' && status == 'true') {\r\n return 'Report is Validated and ready for publication';\r\n } else if (dlgMode == 'Validation' && status == 'false') {\r\n return 'Report is returned to Post successfully';\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Output,Input,EventEmitter } from '@angular/core';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ReportMetadata ,Approver, ReportSchedule} from '../../models/report.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { User } from '../../models/user.model';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-requiredrptmetadata',\r\n templateUrl: './requiredrptmetadata.component.html',\r\n styleUrls: ['./requiredrptmetadata.component.css']\r\n})\r\nexport class RequiredrptmetadataComponent implements OnInit \r\n{\r\n showLaunchButtonClick: boolean = false;\r\n reportScheduleforStatus: ReportSchedule;\r\n saveReportMetadatafields: any;\r\n reportMetadata: ReportMetadata;\r\n saveStatus:boolean = false; \r\n launchStatus: boolean = false;\r\n controlDisabled:boolean = false;\r\n accessLink :string;\r\n //selectedApprover :Approver;\r\n //ApproverList : Approver[];\r\n ApproversList:User[]=[];\r\n selectedApprover:User;\r\n selectedReportID: string = '';\r\n currentUser: User;\r\n\r\n @Output() showHideMetadata= new EventEmitter();\r\n @Input() reportId:any;\r\n constructor(private reportService: ReportdashboardService,\r\n private lookupService:LookupService,\r\n private authUserService:AuthUserService,\r\n private authUser: AuthUserService,\r\n private notifier: NotifierService\r\n ) { \r\n \r\n }\r\n \r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n // console.log(\"User Role Details=================\" + JSON.stringify(this.currentUser.userRoles[1].roleName));\r\n }\r\n SaveReportMetadata() {\r\n this.saveReportMetadatafields = {id: this.reportMetadata.id, \r\n approverId: this.selectedApprover.id, \r\n highlights: this.reportMetadata.highlights,\r\n preferredReportName: this.reportMetadata.reportName,\r\n preparedBy:this.reportMetadata.preparedBy\r\n };\r\n //console.log(this.saveReportMetadatafields);\r\n\r\n this.reportService.saveReportMetadata(this.saveReportMetadatafields).subscribe(\r\n (resp) => {\r\n if (resp.ok) {\r\n this.notifier.notify('success','Required Report saved successfully');\r\n this.launchStatus = true;\r\n // SUCCESSFULLY ADDED\r\n // alert(\"Saved Successfully\");\r\n //console.log(resp);\r\n }\r\n else\r\n {\r\n this.notifier.notify('error','Something went wrong, Please contact System Administrator');\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n onApproverChange(approver: Approver) {\r\n this.reportMetadata.approverId = approver.id;\r\n if (approver.id != null) {\r\n this.saveStatus = true;\r\n }\r\n else\r\n {\r\n this.saveStatus = false;\r\n }\r\n\r\n // console.log(\"save Status\" + this.saveStatus);\r\n }\r\n \r\n LaunchReport(Id:any)\r\n {\r\n\r\n // console.log(\"User Role Details=================\" + JSON.stringify(this.currentUser.userRoles[1].roleName));\r\n\r\n this.reportService.getReportScheduleById(Id).subscribe((metadata:ReportSchedule)=>{\r\n this.reportScheduleforStatus = metadata;\r\n // console.log(\"REport Status=========\" + JSON.stringify(this.reportScheduleforStatus));\r\n this.reportService.launchReport(Id).subscribe(\r\n (data) => {\r\n \r\n if (this.reportScheduleforStatus.reportState == 'Approved And Sent To Washington' || this.reportScheduleforStatus.reportState == 'Hold')\r\n {\r\n if (this.currentUser.userRoles[1].roleName == 'Admin'){ \r\n this.accessLink =\"ms-word:ofe|u|\"+ environment.serverUrl+\"/\"+ data; }\r\n else{\r\n this.accessLink = environment.serverUrl+\"/\"+ data; }\r\n }\r\n else\r\n { this.accessLink =\"ms-word:ofe|u|\"+ environment.serverUrl+\"/\"+ data; }\r\n const link = document.createElement('a');\r\n link.href = this.accessLink;\r\n link.setAttribute('visibility', 'hidden');\r\n link.click();\r\n //TODO: The above code is not working for IE but works for Chorme\r\n //window.open(this.accessLink);\r\n \r\n });\r\n });\r\n \r\n //console.log(this.accessLink);\r\n \r\n }\r\n CancelReportMetadataDialog()\r\n {\r\n //console.log(\"CancelReportMetadataDialog\");\r\n this.showHideMetadata.emit(false);\r\n }\r\n\r\n showMetadataDialog(reportId:any)\r\n {\r\n this.saveStatus = false;\r\n this.launchStatus = false;\r\n this.reportService.getReportScheduleById(reportId).subscribe((metadata:ReportMetadata)=>{\r\n //console.log(metadata);\r\n this.reportMetadata = metadata;\r\n //this.reportMetadata.preparedBy =this.authUserService._user.firstName +\" , \" +this.authUserService._user.lastName ;\r\n this.reportMetadata.preparedBy=this.reportMetadata.preparedBy;\r\n if(this.reportMetadata.reportNumber == null)\r\n {\r\n this.reportMetadata.reportNumber =\"(Auto Generated)\";\r\n this.reportMetadata.preparedBy =this.authUserService._user.firstName +\" \" +this.authUserService._user.lastName ;\r\n // this.launchStatus = false;\r\n }\r\n else\r\n {\r\n this.launchStatus = true;\r\n }\r\n //this.reportMetadata.reportType =\"Required Report - Public Distribution\"; \r\n \r\n if(this.reportMetadata.approverId!==0)\r\n { \r\n this.saveStatus = true;\r\n }\r\n \r\n if(this.reportMetadata.isReportLocked === true)\r\n {\r\n this.controlDisabled = true;\r\n this.saveStatus = false;\r\n }\r\n else \r\n {\r\n this.controlDisabled = false;\r\n //this.saveStatus = true;\r\n }\r\n \r\n \r\n\r\n \r\n this.lookupService.getAllActiveUsers$().subscribe((data)=>{\r\n this.selectedApprover = data.map(u=>u).filter(u=> u.id=== this.reportMetadata.approverId)[0];\r\n \r\n //console.log(this.ApproverNamesList);\r\n });\r\n // this.lookupService.getPostApprovers(this.reportMetadata.fasPostId).subscribe((approvers:[Approver]) =>{\r\n //this.ApproverList = approvers; \r\n //this.selectedApprover = approvers.find(approver => approver.id === this.reportMetadata.approverId)\r\n //});\r\n \r\n\r\n\r\n });\r\n this.showHideMetadata.emit(true);\r\n }\r\n filterNames(event)\r\n {\r\n //console.log(event);\r\n var searchString:string = event.query;\r\n this.lookupService.getAllActiveUsers$().subscribe((data)=>{\r\n this.ApproversList = data.map(u=>u).filter(u=> u.fullName.toLowerCase().includes(searchString.toLowerCase()));\r\n //console.log(this.ApproverNamesList);\r\n this.ApproversList.sort((a,b):number=>{\r\n if (a.fullName < b.fullName) return -1;\r\n if (a.fullName > b.fullName) return 1;\r\n return 0;\r\n });\r\n });\r\n }\r\n\r\n // OnLaunchReportAlertClassified(id: any)\r\n // {\r\n // this.showLaunchButtonClick = true;\r\n // this.selectedReportID = id;\r\n // }\r\n\r\n // OnClassifiedOkButton()\r\n // {\r\n // this.showLaunchButtonClick = false;\r\n // this.LaunchReport(this.selectedReportID);\r\n // }\r\n\r\n}\r\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReportCategory, Approver, ReportMetadata, VoluntaryReportMetadata, ReportSchedule } from '../../models/report.model';\r\nimport { Location, User } from '../../models/user.model';\r\nimport { LookupService } from '../../services/lookups/lookup.service';\r\nimport { AuthUserService } from '../../services/appInitialization/authUser.service';\r\nimport { Tree } from 'primeng/Tree';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { SelectItem, TreeNode } from 'primeng/api';\r\nimport { debug } from 'util';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-voluntaryrptmetadata',\r\n templateUrl: './voluntaryrptmetadata.component.html',\r\n styleUrls: ['./voluntaryrptmetadata.component.css']\r\n})\r\nexport class VoluntaryrptmetadataComponent implements OnInit {\r\n voluntaryMetadataForm: FormGroup;\r\n voluntaryMetadata: VoluntaryReportMetadata;\r\n\r\n reportCategories: ReportCategory[] = [];\r\n\r\n reportCategoriesTree: TreeNode[];\r\n selectedCategoryNodes: TreeNode[] = new Array();\r\n selectedReportCategories: ReportCategory[] = new Array();\r\n\r\n //TODO: Get this data from WEBAPI\r\n distributionTypes: SelectItem[] = [{ label: 'Public', value: 'Public' }, { label: 'Internal', value: 'Internal' }];\r\n countries: Location[] = [];\r\n posts: Location[] = [];\r\n //approvers : Approver[]=[];\r\n approvers: User[] = [];\r\n accessLink: string;\r\n launchStatus: boolean = false;\r\n isSaved: boolean = false;\r\n reportScheduleforStatus: ReportSchedule;\r\n currentUser: User;\r\n loading:boolean=false;\r\n\r\n @Output() showHideMetadata = new EventEmitter(); //0-Hide Popup No refresh 1-Show popup no refresh 2-Hide popup Refresh 3-Show popup Refresh\r\n @Input() reportId: any;\r\n constructor(\r\n private fb: FormBuilder,\r\n private lookupService: LookupService,\r\n private authUser: AuthUserService,\r\n private reportDashboardService: ReportdashboardService,\r\n private notifier: NotifierService\r\n ) {}\r\n\r\n /* Sample reg ex for allow alpha numeric and special charecteres /^[ A-Za-z0-9_@./#&+-]*$/ */\r\n ngOnInit() {\r\n this.voluntaryMetadataForm = this.fb.group({\r\n Id: [''],\r\n reportNumber: [''],\r\n reportDate: [new Date()],\r\n country: ['', Validators.required],\r\n post: ['', Validators.required],\r\n region: [''],\r\n //reportName: ['', [Validators.required,Validators.pattern(/^(?![\\s\\S]*[^\\w -]+)[\\s\\S]*?$/)]],\r\n\r\n reportName: ['', [Validators.required,Validators.pattern(/^[ A-Za-z0-9_'-]*$/)]],\r\n reportCategory: ['', Validators.required],\r\n distributionType: ['', Validators.required],\r\n preparedBy: [''],\r\n approvedBy: ['', Validators.required],\r\n reportHighlights: ['', Validators.maxLength(1024)],\r\n disclaimer: [''],\r\n reportState: ['']\r\n });\r\n\r\n this.launchStatus = false;\r\n this.isSaved = false;\r\n this.currentUser = this.authUser._user;\r\n // console.log(\"User Role Details=================\" + JSON.stringify(this.currentUser.userRoles[1].roleName));\r\n }\r\n loadReportCategories() {\r\n this.loading = true;\r\n this.lookupService.getAllReportCategories$().subscribe(data => {\r\n this.reportCategories = data;\r\n });\r\n\r\n\r\n this.lookupService.getReportCategoryHierarchy$(false)\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe(categories => {\r\n //console.log(categories);\r\n this.reportCategoriesTree = Array.of(categories);\r\n this.reportCategoriesTree[0].children.sort((a, b) => {\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n this.reportCategoriesTree[0].expanded= true;\r\n });\r\n }\r\n\r\n showMetadataDialog(id: any) {\r\n // console.log(id);\r\n //this.lookupService.getRootLocations(this.authUser._user.userType.typeName).subscribe((data: Location[]) => {\r\n this.lookupService.getAllCountries$().subscribe((data: Location[]) => {\r\n this.countries = data;\r\n this.countries.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n this.loadReportCategories();\r\n\r\n\r\n if (id == null) {\r\n this.voluntaryMetadataForm.reset();\r\n this.voluntaryMetadataForm.enable();\r\n this.voluntaryMetadataForm.patchValue({\r\n preparedBy: this.authUser._user.firstName + ' ' + this.authUser._user.lastName,\r\n reportDate: new Date()\r\n });\r\n this.launchStatus = false;\r\n } else\r\n {\r\n this.launchStatus = true;\r\n this.LoadVoluntaryMetadataForm(id);\r\n }\r\n\r\n\r\n this.showHideMetadata.emit(1); //0-Hide Popup No refresh 1-Show popup no refresh 2-Hide popup Refresh 3-Show popup Refresh\r\n }\r\n\r\n loadSelectedCategoryNodes(reportMetadata: VoluntaryReportMetadata) {\r\n this.selectedCategoryNodes = new Array();\r\n reportMetadata.reportCategory.forEach(reportCategory => {\r\n this.reportCategoriesTree[0].children.forEach(categoryNode => {\r\n if (categoryNode.children != null && categoryNode.children.length != 0) {\r\n categoryNode.children.forEach(child => {\r\n if (child.data == reportCategory.id) {\r\n this.selectedCategoryNodes.push(child);\r\n }\r\n });\r\n }\r\n if (categoryNode.data == reportCategory.id) {\r\n this.selectedCategoryNodes.push(categoryNode);\r\n }\r\n });\r\n });\r\n }\r\n\r\n LoadVoluntaryMetadataForm(id: any) {\r\n this.reportDashboardService.getReportScheduleById(id).subscribe((reportMetadata: VoluntaryReportMetadata) => {\r\n // console.log(reportMetadata);\r\n this.voluntaryMetadata = reportMetadata;\r\n\r\n // this.loadReportCategories();\r\n this.onChangeCountry(reportMetadata.country);\r\n //this.onChangePost(reportMetadata.post);\r\n\r\n this.loadSelectedCategoryNodes(reportMetadata);\r\n\r\n this.voluntaryMetadataForm.patchValue({\r\n Id: reportMetadata.id,\r\n reportName: reportMetadata.reportName,\r\n reportNumber: reportMetadata.reportNumber,\r\n reportCategory: reportMetadata.reportCategory,\r\n reportDate: new Date(reportMetadata.reportDate.toString()),\r\n reportHighlights: reportMetadata.reportHighlights,\r\n disclaimer: reportMetadata.disclaimer,\r\n distributionType: reportMetadata.distributionType,\r\n approvedBy: reportMetadata.approvedBy,\r\n country: reportMetadata.country,\r\n post: reportMetadata.post,\r\n preparedBy: reportMetadata.preparedBy,\r\n reportState: reportMetadata.reportState\r\n });\r\n\r\n if (reportMetadata.isReportLocked) {\r\n this.voluntaryMetadataForm.disable();\r\n } else {\r\n this.voluntaryMetadataForm.enable();\r\n }\r\n });\r\n }\r\n\r\n CancelReportMetadataDialog() {\r\n //console.log(\"CancelReportMetadataDialog\");\r\n this.selectedCategoryNodes = new Array();\r\n this.selectedReportCategories = new Array();\r\n if(this.isSaved)\r\n {\r\n this.showHideMetadata.emit(2);//0-Hide Popup No refresh 1-Show popup no refresh 2-Hide popup Refresh 3-Show popup Refresh\r\n }\r\n else\r\n {\r\n this.showHideMetadata.emit(0);//0-Hide Popup No refresh 1-Show popup no refresh 2-Hide popup Refresh 3-Show popup Refresh\r\n }\r\n }\r\n onChangeCountry(selectedCountry: Location) {\r\n //console.log(selectedCountry);\r\n this.lookupService.getParentLocation(selectedCountry.id).subscribe((parentLoc: Location) => {\r\n //console.log(parentLoc);\r\n this.voluntaryMetadataForm.patchValue({ region: parentLoc.locationName });\r\n });\r\n this.lookupService.getChildLocations(selectedCountry.id).subscribe((data: Location[]) => {\r\n this.posts = data;\r\n this.posts.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n //this.onChangePost(this.posts[0]);\r\n });\r\n }\r\n // onChangePost(selectedPost:any)\r\n // {\r\n // // this.lookupService.getPostApprovers(selectedPost.id).subscribe((data:Approver[])=>{\r\n // // //console.log(data);\r\n // // this.approvers = data;\r\n // // });\r\n // }\r\n\r\n SaveReportMetadata() {\r\n if (this.voluntaryMetadataForm.valid) {\r\n let reportMetadata = Object.assign(new VoluntaryReportMetadata(), this.voluntaryMetadataForm.value);\r\n // let reportMetadata = new VoluntaryReportMetadata();\r\n //console.log(this.voluntaryMetadataForm.value['approvedBy']);\r\n\r\n // console.log(\"REPORT METADATA 123456789=============\" + reportMetadata);\r\n\r\n this.reportDashboardService.saveVoluntaryReport$(reportMetadata).subscribe(resp => {\r\n //console.log(resp.body);\r\n this.LoadVoluntaryMetadataForm(resp.body);\r\n if (resp.ok) {\r\n //alert('Saved Successfully');\r\n this.notifier.notify('success', 'Voluntary Report saved successfully');\r\n this.launchStatus = true;\r\n this.isSaved = true;\r\n }\r\n });\r\n //this.onSaveComplete();\r\n } else if (!this.voluntaryMetadataForm.dirty) {\r\n //this.onSaveComplete();\r\n }\r\n }\r\n private setVoluntaryFormsReportCategories() {\r\n this.voluntaryMetadataForm.controls['reportCategory'].setValue(this.selectedReportCategories);\r\n }\r\n private setSelectedReportCategories() {\r\n this.selectedReportCategories = new Array();\r\n this.selectedCategoryNodes.forEach(node => {\r\n if (node.children.length == 0) {\r\n let category = this.getReportCategoryFromNode(node);\r\n this.selectedReportCategories.push(category);\r\n }\r\n });\r\n }\r\n private getReportCategoryFromNode(categoryNode: TreeNode): ReportCategory {\r\n return this.reportCategories.filter(cat => cat.id == categoryNode.data)[0];\r\n }\r\n onCategorySelection($event) {\r\n this.setSelectedReportCategories();\r\n this.setVoluntaryFormsReportCategories();\r\n }\r\n onCategoryUnselection($event) {\r\n this.setSelectedReportCategories();\r\n this.setVoluntaryFormsReportCategories();\r\n }\r\n onSaveComplete() {\r\n this.voluntaryMetadataForm.reset();\r\n this.showHideMetadata.emit(2);//0-Hide Popup No refresh 1-Show popup no refresh 2-Hide popup Refresh 3-Show popup Refresh\r\n }\r\n LaunchReport(Id: any) {\r\n //console.log(Id);\r\n this.reportDashboardService.getReportScheduleById(Id).subscribe((metadata:ReportSchedule)=>{\r\n this.reportScheduleforStatus = metadata;\r\n this.reportDashboardService.launchReport(Id).subscribe(data => {\r\n // console.log(data);\r\n if (this.reportScheduleforStatus.reportState == 'Approved And Sent To Washington' || this.reportScheduleforStatus.reportState == 'Hold')\r\n {\r\n if (this.currentUser.userRoles[1].roleName == 'Admin'){\r\n this.accessLink =\"ms-word:ofe|u|\"+ environment.serverUrl+\"/\"+ data; }\r\n else{\r\n this.accessLink = environment.serverUrl+\"/\"+ data; }\r\n }\r\n else\r\n { this.accessLink = 'ms-word:ofe|u|' + environment.serverUrl + '/' + data; }\r\n const link = document.createElement('a');\r\n link.href = this.accessLink;\r\n link.setAttribute('visibility', 'hidden');\r\n link.click();\r\n //TODO: The above code is not working for IE but works for Chorme\r\n //window.open(this.accessLink);\r\n });\r\n });\r\n //this.voluntaryMetadataForm.disable();\r\n //console.log(this.accessLink);\r\n }\r\n filterNames(event) {\r\n //console.log(event);\r\n var searchString: string = event.query;\r\n this.lookupService.getAllActiveUsers$().subscribe(data => {\r\n this.approvers = data.map(u => u).filter(u => u.fullName.toLowerCase().includes(searchString.toLowerCase()));\r\n //console.log(this.ApproverNamesList);\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fileupload',\r\n templateUrl: './fileupload.component.html',\r\n styleUrls: ['./fileupload.component.css']\r\n})\r\nexport class FileuploadComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { TreeNode } from 'primeng/api';\r\nimport { ReportingInstructionsService } from '../../services/reportinstructions.service';\r\nimport { ReportingInstructions, ReportMetadata } from '../../models/report.model';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { empty } from 'rxjs';\r\nimport { FileuploadComponent} from '../fileupload/fileupload.component';\r\n\r\n@Component({\r\n selector: 'app-reportinginstructions',\r\n templateUrl: './reportinginstructions.component.html',\r\n styleUrls: ['./reportinginstructions.component.css']\r\n})\r\nexport class ReportingInstructionsComponent implements OnInit {\r\n fileTree: TreeNode[] = [];\r\n reportTreeNode: ReportingInstructions[];\r\n nodeRoot: ReportingInstructions[];\r\n addFolder: ReportingInstructions[];\r\n uploadDocuments: ReportingInstructions[] = [];\r\n updateDocuments: ReportingInstructions[] = [];\r\n createFolder: boolean = false;\r\n uploadFile: boolean = false;\r\n nodeId: string;\r\n newFolderParentId: string;\r\n newDocumentParentId: string;\r\n FolderDocumentData: any[];\r\n uploadDocId: string;\r\n uploadDocParentId: string;\r\n loadDocumentId: string;\r\n documentName: string;\r\n fileType: string;\r\n\r\n\r\n constructor(\r\n private reportingstructionsService: ReportingInstructionsService,\r\n private notifier: NotifierService) {}\r\n\r\n ngOnInit() {\r\n\r\n // this.FolderDocumentData = [\r\n // { id: 1, detail: 'Root Folder' },\r\n // { id: 2, detail: 'Folder' },\r\n // { id: 3, detail: 'Document' }\r\n // ];\r\n\r\n this.GetReportingInstructionsAll();\r\n }\r\n\r\n createFolderDialog(nodeId){\r\n // console.log(\"CREATE Folder Parent ID ----\"+ nodeId);\r\n this.nodeId = null;\r\n this.createFolder = true;\r\n this.newFolderParentId = nodeId;\r\n }\r\n\r\n cancelFolderButton(){\r\n this.createFolder = false;\r\n }\r\n\r\n uploadDocumentDialog(nodeId){\r\n this.nodeId = null;\r\n this.uploadFile = true;\r\n this.newDocumentParentId = nodeId;\r\n }\r\n\r\n updateDocumentDialog(id, parentId){\r\n this.uploadFile = true;\r\n this.uploadDocId = id;\r\n this.uploadDocParentId = parentId;\r\n }\r\n\r\n updateDocument(file, fileContent, form)\r\n {\r\n this.updateDocuments.push({\r\n id: this.uploadDocId,\r\n parentId: null, // this.uploadDocParentId,\r\n type: 2,\r\n name: file.name,\r\n contentType: file.type,\r\n content: fileContent,\r\n contentLength: file.size,\r\n });\r\n //console.log(\"Update Document content......\"+ JSON.stringify(this.updateDocuments[0]));\r\n this.reportingstructionsService.updateDocument(this.updateDocuments[0]).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Document updated successfully');\r\n this.clearFiles(form);\r\n this.GetReportingInstructionsAll();\r\n }\r\n });\r\n }\r\n\r\n async onUpload(event, form) {\r\n // console.log(\"EVENT ----\"+ JSON.stringify(event));\r\n //console.log(\"CREATE File Parent ID ----\"+ this.newDocumentParentId);\r\n for (let file of event.files) {\r\n // console.log(\"FILE Content ----\"+ JSON.stringify(file.name) + \"----\" + file.type + \"---\" + file.size);\r\n var fileContent: any[] = [];\r\n var reader = new FileReader();\r\n reader.onload = function() {\r\n var arrayBuffer = this.result as ArrayBuffer,\r\n array = new Uint8Array(arrayBuffer);\r\n //binaryString = String.fromCharCode.apply(null, array);\r\n if (array) {\r\n var byteArray = new Uint8Array(array);\r\n for (var i = 0; i < byteArray.byteLength; i++) {\r\n fileContent.push(byteArray[i]);\r\n }\r\n }\r\n // console.log(\"fileContent ------ \"+fileContent);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n if(this.uploadDocId != null){\r\n reader.onloadend = () => this.updateDocument(file, fileContent, form);\r\n }\r\n else{\r\n reader.onloadend = () => this.uploadDocument(file, fileContent, form);\r\n }\r\n }\r\n }\r\n\r\n clearFiles(form){\r\n this.uploadDocuments = [];\r\n this.uploadFile = false;\r\n form.clear();\r\n }\r\n\r\n uploadDocument(file, fileContent, form){\r\n this.uploadDocuments.push({\r\n id: null,\r\n parentId: this.newDocumentParentId,\r\n type: 2,\r\n name: file.name,\r\n contentType: file.type,\r\n content: fileContent,\r\n contentLength: file.size,\r\n });\r\n //console.log(\"File DATA---------------\" + JSON.stringify(this.uploadDocuments[0]));\r\n this.reportingstructionsService.addReportingInstructions(this.uploadDocuments[0]).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Document uploaded successfully');\r\n this.clearFiles(form);\r\n this.GetReportingInstructionsAll();\r\n }\r\n });\r\n }\r\n\r\n deleteDocument(fileNodeId){\r\n //Delete the file\r\n this.reportingstructionsService.deleteDocument(fileNodeId).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Document deleted successfully');\r\n }\r\n });\r\n this.GetReportingInstructionsAll();\r\n }\r\n\r\n addFolderButton(folderName){\r\n this.addFolder = [];\r\n this.addFolder.push({\r\n id: null,\r\n parentId: this.newFolderParentId,\r\n type: 3,\r\n name: folderName,\r\n contentType: null,\r\n content: null,\r\n contentLength: null\r\n });\r\n this.reportingstructionsService.addReportingInstructions(this.addFolder[0]).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Created folder successfully');\r\n }else\r\n {\r\n this.notifier.notify('error', 'Duplicate Folder Name');\r\n }\r\n });\r\n this.cancelFolderButton();\r\n this.GetReportingInstructionsAll();\r\n }\r\n\r\n // addFileButton(){\r\n\r\n // }\r\n\r\n cancelDocumentUploadButton(){\r\n this.uploadFile = false;\r\n }\r\n\r\n GetReportingInstructionsAll() {\r\n this.reportingstructionsService.getReportingInstructionsByType(1).subscribe((data: ReportingInstructions[]) => {\r\n this.nodeRoot = data;\r\n for (let i = 0; i < this.nodeRoot.length; i++) {\r\n this.fileTree = [\r\n {\r\n label: this.nodeRoot[i].name,\r\n data: this.nodeRoot[i].id,\r\n // parentId: this.nodeRoot[i].parentId,\r\n children: this.getChildrenNodes(this.nodeRoot[i].id),\r\n leaf: false,\r\n // expandedIcon: this.nodeRoot[i].type == 1 ? 'expand' : '',\r\n // collapsedIcon: this.nodeRoot[i].type == 1 ? 'collaps' : '',\r\n expanded: this.nodeRoot[i].name == 'Root' ? true : false,\r\n selectable: false\r\n }\r\n ];\r\n }\r\n });\r\n }\r\n\r\ngetChildrenNodes(parentNodeId)\r\n{\r\n var reportNode: TreeNode[] = [];\r\n this.reportingstructionsService.getReportingInstructionsByParentId(parentNodeId).subscribe((data: ReportingInstructions[]) => {\r\n this.reportTreeNode = data;\r\n for (let i = 0; i < this.reportTreeNode.length; i++)\r\n {\r\n var fileNode: TreeNode;\r\n fileNode =\r\n {\r\n label: this.reportTreeNode[i].name,\r\n data: this.reportTreeNode[i].id ,\r\n // parentId: this.reportTreeNode[i].parentId,\r\n children: this.reportTreeNode[i].type != 2 ? this.getChildrenNodes(this.reportTreeNode[i].id) : null,\r\n leaf: this.reportTreeNode[i].type != 2 ? false : true,\r\n icon: (this.reportTreeNode[i].name).split('.',2)[1],\r\n // expandedIcon: this.reportTreeNode[i].type !== 2 ? 'expand': false, //this.getFileType((this.reportTreeNode[i].name).split('.',2)[1]) : 'fa fa-folder',\r\n //collapsedIcon: this.reportTreeNode[i].type !== 2 ? 'collaps': false, //this.getFileType((this.reportTreeNode[i].name).split('.',2)[1]) : 'fa fa-folder',\r\n expanded: this.reportTreeNode[i].type != 2 ? false : true,\r\n styleClass: this.reportTreeNode[i].type == 2 ? 'text-decoration:underline !important;' : '',\r\n selectable: false //this.reportTreeNode[i].type == 2 ? true : false\r\n }\r\n ;\r\n reportNode.push(fileNode);\r\n }\r\n });\r\n\r\n\r\nreturn reportNode;\r\n}\r\n\r\ndocumentSelect(nodeId,fileName){\r\n this.loadDocumentId = nodeId;\r\n this.documentName = fileName;\r\n this.fileType = this.documentName.split('.',2)[1].toString();\r\n // console.log(\"FileName-----\"+ this.fileType);\r\n // this.reportingstructionsService.downloadDocument$(this.loadDocumentId,this.fileType).subscribe((content:Blob)=>{\r\n // const fileURL = URL.createObjectURL(content);\r\n // window.open(fileURL, '_blank');\r\n // });\r\n this.reportingstructionsService.downloadDocument$(this.loadDocumentId,this.fileType);\r\n}\r\n\r\n // nodeUnslect() {}\r\n\r\n// getFileType(fileType){\r\n// this.fileType = null;\r\n// if(fileType == 'docx')\r\n// return 'fa fa-file-word-o';\r\n// else if(fileType == 'txt')\r\n// return 'fa fa-file-text-o';\r\n// else if(fileType == 'pdf')\r\n// return 'fa fa-file-pdf-o';\r\n// else if(fileType == 'xlsx')\r\n// return 'fa fa-file-excel-o';\r\n// }\r\n\r\ndeleteFolder(nodeId){\r\n this.reportingstructionsService.getReportingInstructionsByParentId(nodeId).subscribe((data: ReportingInstructions[]) => {\r\n if (data.length > 0) {\r\n this.notifier.notify('error', 'Cannot Delete the folder, it has documents associated.');\r\n } else {\r\n this.deleteDocument(nodeId);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { SelectItem, TreeNode } from 'primeng/api';\r\nimport { ReportMetadata, ReportSchedule, ReportState, ReportYear, ReportCategory} from '../models/report.model';\r\nimport { ReportService } from '../services/report.service';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { environment } from '../../environments/environment';\r\nimport { ActivatedRoute} from '@angular/router';\r\n// import { ReportdashboardService } from '../services/reportdashboard.service';\r\nimport { ReportScheduleService } from '../services/reportschedule.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Location, PostLocationsModel } from '../models/user.model';\r\nimport { ReportdashboardService } from '../services/reportdashboard.service';\r\n//import { forEach } from '@angular/router/src/utils/collection';\r\nimport { ok } from 'assert';\r\nimport { TreeTable } from 'primeng/TreeTable';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-reports',\r\n templateUrl: './reports.component.html',\r\n styleUrls: ['./reports.component.css']\r\n})\r\nexport class ReportsComponent implements OnInit {\r\nreportScheduleData: ReportSchedule[];\r\nreportMetadataData: ReportMetadata[];\r\nreportState: ReportState[];\r\nreportCategory: ReportCategory[];\r\nparentCategory: string;\r\nreportCategories: TreeNode[];\r\nfileTree: TreeNode[];\r\nfileNode: TreeNode;\r\nrequiredReportcount : number;\r\nvoluntaryReportcount : number;\r\ncols : any[];\r\n\r\nregion: PostLocationsModel[];\r\nReportYears: ReportYear[];\r\n\r\n@Input()\r\nReportYear: ReportYear;\r\n\r\nconstructor(\r\n // private reportDashboardService: ReportdashboardService,\r\n private lookUpService: LookupService,\r\n private reportService: ReportService,\r\n private reportScheduleService: ReportScheduleService,\r\n private reportDashboardService: ReportdashboardService,\r\n private notifier: NotifierService){}\r\n\r\n ngOnInit() {\r\n this.ReportYear = new ReportYear();\r\n this.ReportYear.year = new Date().getFullYear();\r\n\r\n var Years = new Array();\r\n Years = [\r\n { id: 1, year: this.ReportYear.year },\r\n { id: 2, year: this.ReportYear.year - 1 },\r\n { id: 3, year: this.ReportYear.year - 2 }\r\n ];\r\n this.ReportYears = Years;\r\n\r\n this.mapReportSchedule(this.ReportYear);\r\n// this.onYearSelected(this.ReportYear.year);\r\n // console.log(\"YEAR==============\" + this.ReportYear.year);\r\n }\r\n\r\n onYearSelected(value) {\r\n\r\n //console.log(\"YEAR==============\" + value);\r\n this.mapReportSchedule(value);\r\n }\r\n\r\n getReportCount(id: number)\r\n {\r\n for (let i = 0; i < this.reportMetadataData.length; i++) {\r\n if(this.reportMetadataData[i].categoryId == id){\r\n this.requiredReportcount +1;\r\n }\r\n }\r\n return this.requiredReportcount;\r\n }\r\n\r\nmapReportSchedule(reportingYear: ReportYear) {\r\n this.reportService.getSummaryData(reportingYear.year).subscribe((data) => {\r\n\r\n // this.lookUpService.getReportCategoryHierarchy$().subscribe((data)=>{\r\n //console.log(Array.of(data));\r\n //console.log(\"DATA ====================\" + JSON.stringify(Array.of(data)));\r\n\r\n this.reportCategories = Array.of(data);\r\n\r\n\r\n });\r\n //console.log(\"Count====================\" + JSON.stringify(this.reportMetadataData));\r\n }\r\n\r\n getUniqueValues(filterItem: any[]): SelectItem[] {\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n return returnArray;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { Component, OnInit, NgModule, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Observable , EMPTY as empty } from 'rxjs';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport {\r\n User,\r\n AppRole,\r\n Location,\r\n UserRegistrationModel,\r\n HqLocationsModel,\r\n PostLocationsModel\r\n} from '../models/user.model';\r\nimport { ReportCategory, ReportMetadata, ReportYear, ReportSchedule, UserReportCategory, FrequencyType } from '../models/report.model';\r\nimport { ReportdashboardService } from '../services/reportdashboard.service';\r\nimport { ReportScheduleService } from '../services/reportschedule.service';\r\n//import { forEach, and } from '@angular/router/src/utils/collection';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { stringify } from 'querystring';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-reportschedule',\r\n templateUrl: './reportschedule.component.html',\r\n styleUrls: ['./reportschedule.component.css']\r\n})\r\nexport class ReportscheduleComponent implements OnInit {\r\n countries: Location[];\r\n post: Location[];\r\n programArea: Location;\r\n reportCategory: Location[];\r\n replicateReportScheduleData: ReportMetadata[];\r\n reportMetadata: ReportMetadata;\r\n reportCategoriesdata: ReportCategory[];\r\n reportYear: ReportYear[];\r\n region: PostLocationsModel[];\r\n addNewReportDialog: boolean = false;\r\n currentUser: User;\r\n reportScheduleData: ReportMetadata[];\r\n recallReportScheduleData: ReportSchedule[];\r\n selectedYear: ReportYear;\r\n frequencyTypes :FrequencyType[];\r\n reportNameData: any[];\r\n editReportsfields: ReportSchedule[] = [];\r\n replicateReportsfields: ReportSchedule[] = [];\r\n addNewReportfields: ReportSchedule[] = [];\r\n enableSave: boolean = false;\r\n isReportScheduleEditable: boolean;\r\n reportDistribution: SelectItem[] = [];\r\n selectedReportDistribution: boolean;\r\n addNewReportSchedule: ReportMetadata[] = [];\r\n previewReportScheduleDialog: boolean = false;\r\n releaseReportSchedule: ReportMetadata[];\r\n filterRreportCategory: SelectItem[];\r\n filterReportName: SelectItem[];\r\n filterFasPost: SelectItem[];\r\n filtercountry: SelectItem[];\r\n filterProgramArea: SelectItem[];\r\n filterDueDate: SelectItem[];\r\n filterProposedDue: SelectItem[];\r\n filterDistributionTypes: SelectItem[];\r\n filterFrequencyTypes: SelectItem[];\r\n addButton: boolean = false;\r\n previewButton: boolean = false;\r\n currentYear: number;\r\n selectedCategory: boolean = false;\r\n selectedCountry: boolean = false;\r\n selectedPost: boolean = false;\r\n selectedFrequencyType: boolean = false;\r\n selectedDistribution: boolean = false;\r\n selectedDueDate: boolean = false;\r\n recordCount: number;\r\n newRecordCount: number;\r\n reportScheduleforStatus: ReportSchedule;\r\n programAreaByCategory: string;\r\n\r\n @Input()\r\n locations: HqLocationsModel[];\r\n constructor(\r\n private reportDashboardService: ReportdashboardService,\r\n private authUserService: AuthUserService,\r\n private reportService: ReportdashboardService,\r\n private lookupService: LookupService,\r\n private authUser: AuthUserService,\r\n private reportSchedule: ReportScheduleService,\r\n private notifier: NotifierService,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.currentYear = new Date().getFullYear();\r\n\r\n this.lookupService.getReportYear().subscribe((data: ReportYear[]) => {\r\n this.reportYear = data.sort();\r\n for (let cnt = data.length - 1; cnt >= 0; cnt--) {\r\n if (this.reportYear[cnt].year != this.currentYear && this.reportYear[cnt].year != this.currentYear + 1) {\r\n this.reportYear.splice(cnt, 1);\r\n }\r\n }\r\n });\r\n\r\n this.currentUser = this.authUser._user;\r\n\r\n this.reportNameData = [\r\n { id: 1, reportName: 'Monthly' },\r\n { id: 2, reportName: 'Quarterly' },\r\n { id: 3, reportName: 'Semi-Annual' },\r\n { id: 4, reportName: 'Annual' },\r\n { id: 5, reportName: 'Weekly' },\r\n { id: 6, reportName: 'Annual Addendum' }\r\n ];\r\n\r\n this.reportDistribution.push({ label: 'Public', value: 'Public' });\r\n this.reportDistribution.push({ label: 'Internal', value: 'Internal' });\r\n\r\n this.lookupService.getAllReportCategories$().subscribe((reportData: ReportCategory[]) => {\r\n // this.lookupService.getUserAllReportCategories().subscribe((reportData: ReportCategory[]) => {\r\n this.reportCategoriesdata = reportData.sort(\r\n (a, b): number => {\r\n if (a.categoryName < b.categoryName) return -1;\r\n if (a.categoryName > b.categoryName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n\r\n this.lookupService.getParentLocation(this.authUserService._user.userLocations[0].locationId).subscribe((data: Location) => {\r\n this.programArea = data;\r\n });\r\n\r\n this.lookupService.getRootLocations('PostUser').subscribe((data: Location[]) => {\r\n this.countries = data.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n\r\n onChangeCountry(country, reportSchedule: ReportMetadata) {\r\n // console.log('Country Name' + country.id);\r\n this.selectedCountry = true;\r\n reportSchedule.countryId = country.id;\r\n this.lookupService.getChildLocations(country.id).subscribe((data: Location[]) => {\r\n reportSchedule.posts = data.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n\r\n onChangeFasPost(fasPost, reportSchedule) {\r\n // console.log('POst Name' + fasPost.id);\r\n this.selectedPost = true;\r\n reportSchedule.fasPostId = fasPost.id;\r\n }\r\n\r\n onReportYearChange(reportYear) {\r\n var yr = new Date().getFullYear();\r\n this.addButton = true;\r\n this.previewButton = false;\r\n if (reportYear.year == yr) {\r\n this.enableSave = false;\r\n // console.log('Enable Save-------' + this.enableSave);\r\n } else if (reportYear.year == yr + 1) {\r\n this.enableSave = true;\r\n }\r\n this.mapReportSchedule(reportYear.year);\r\n this.isReportScheduleEditable = true;\r\n this.selectedYear = reportYear;\r\n }\r\n\r\n replicateReportSchedule() {\r\n return new Promise((resolve, reject) => {\r\n // this.reportSchedule.getReportSchedulesByYear(this.selectedYear.year - 1).subscribe(\r\n this.reportSchedule.replicateReportScheduleForYear(this.selectedYear.year).subscribe(\r\n (data: any) => {\r\n this.recordCount = data;\r\n// console.log(\"Count ----- : \" + this.recordCount);\r\n if (this.recordCount > 0) {\r\n // this.replicateReports();\r\n this.mapReportSchedule(this.selectedYear.year);\r\n this.notifier.notify('success', 'Schedules replicated successfully');\r\n }\r\n if (this.recordCount == 0)\r\n this.notifier.notify('success', 'No new Schedules to replicate');\r\n else if (this.recordCount == -1)\r\n this.notifier.notify('error', ' Something went wrong, please contact administrator');\r\n }\r\n\r\n ,\r\n error => console.log(error)\r\n );\r\n resolve();\r\n });\r\n }\r\n\r\n mapReportSchedule(reportingYear: number) {\r\n this.reportSchedule.getReportSchedulesByYear(reportingYear).subscribe((data: ReportMetadata[]) => {\r\n this.reportScheduleData = data.sort(\r\n (a, b): number => {\r\n if (a.categoryName < b.categoryName) return -1;\r\n if (a.categoryName > b.categoryName) return 1;\r\n return 0;\r\n });\r\n //console.log(\"FIRST Records\" + JSON.stringify(this.reportScheduleData[0]));\r\n var reportCategory = new Array();\r\n var reportNameType = new Array();\r\n // var region = new Array();\r\n var programAreaType = new Array();\r\n var postType = new Array();\r\n var countryType = new Array();\r\n var distributionType = new Array();\r\n var frequencyTypes = new Array();\r\n var dueDate = new Array();\r\n var proposedDueDate = new Array();\r\n\r\n for (let i = 0; i < this.reportScheduleData.length; i++) {\r\n reportCategory.push(this.reportScheduleData[i].categoryName);\r\n reportNameType.push(this.reportScheduleData[i].reportName);\r\n // region.push(this.reportScheduleData[i].region);\r\n programAreaType.push(this.reportScheduleData[i].ProgramAreaName);\r\n countryType.push(this.reportScheduleData[i].parentPostLocation);\r\n postType.push(this.reportScheduleData[i].postLocation);\r\n distributionType.push(this.reportScheduleData[i].distribution); //isPublic === true ? \"Public\" : \"Internal\");\r\n dueDate.push(this.reportScheduleData[i].reportDueDate);\r\n if (this.reportScheduleData[i].proposedDueDate != null) {\r\n proposedDueDate.push(this.reportScheduleData[i].proposedDueDate);\r\n }\r\n frequencyTypes.push(this.reportScheduleData[i].frequencyTypeName);\r\n if (!this.reportScheduleData[i].isReleased) {\r\n this.previewButton = true;\r\n }\r\n }\r\n\r\n this.selectOrUnselectAll(true);\r\n this.filterRreportCategory = this.getUniqueValues(reportCategory);\r\n this.filterReportName = this.getUniqueValues(reportNameType);\r\n // this.filterProgramArea = this.getUniqueValues(region);\r\n this.filterProgramArea = this.getUniqueValues(programAreaType);\r\n this.filtercountry = this.getUniqueValues(countryType);\r\n this.filterFasPost = this.getUniqueValues(postType);\r\n this.filterDistributionTypes = this.getUniqueValues(distributionType);\r\n this.filterFrequencyTypes = this.getUniqueValues(frequencyTypes);\r\n this.filterDueDate = this.dateSort(dueDate);\r\n this.filterProposedDue = this.dateSort(proposedDueDate);\r\n });\r\n }\r\n\r\n onCategoryChange(reportCategoriesdata, rowIndex) {\r\n this.addNewReportSchedule[rowIndex].categoryName = reportCategoriesdata.categoryName;\r\n this.addNewReportSchedule[rowIndex].categoryId = reportCategoriesdata.id;\r\n this.selectedCategory = true;\r\n this.lookupService.getReportCategoryById(reportCategoriesdata.id).subscribe((reportCategorydata:ReportCategory)=>{\r\n this.lookupService.getLocation(reportCategorydata.programAreaId).subscribe((programAreadata:Location)=>{\r\n this.addNewReportSchedule[rowIndex].ProgramAreaId = programAreadata.id;\r\n this.addNewReportSchedule[rowIndex].ProgramAreaName = programAreadata.locationName;\r\n });\r\n });\r\n }\r\n\r\n getUniqueValues(filterItem: any[]): SelectItem[] {\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a,b):number=>{\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n });\r\n return returnArray;\r\n }\r\n\r\n dateSort(filterItem: any[]): SelectItem[]{\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a, b) => new Date(b.value).getTime() - new Date(a.value).getTime());\r\n return returnArray;\r\n }\r\n\r\n selectOrUnselectAll(isSelected: boolean) {\r\n //this.enableSave = isSelected;\r\n for (const report of this.reportScheduleData) {\r\n report.selected = isSelected;\r\n }\r\n }\r\n\r\n onFrequencyTypeChange(selectedFrequencyType, rowIndex) {\r\n this.addNewReportSchedule[rowIndex].frequencyTypeName = selectedFrequencyType.frequencyTypeName;\r\n this.addNewReportSchedule[rowIndex].frequencyTypeId = selectedFrequencyType.id;\r\n this.selectedFrequencyType = true;\r\n }\r\n\r\n onReportDistributionChange(reportDistribution, rowIndex) {\r\n // console.log(\"Distribution\" + this.selectedReportDistribution)\r\n this.selectedDistribution = true;\r\n this.addNewReportSchedule[rowIndex].distribution = reportDistribution;\r\n }\r\n\r\n onReportDueDate()\r\n {\r\n // console.log(\"DueDate\" + this.selectedDueDate)\r\n this.selectedDueDate = true;\r\n }\r\n\r\n onSaveReportSchedule(reportscheduleIndex:number,reportId:any,isPublic:string,reportDueDate:Date,proposedDueDate:Date)\r\n {\r\n //console.log(\"Distribution & DUe Date \" + isPublic === 'Public' ? true : false + ' and ' + this.datePipe.transform(reportDueDate, 'MM/dd/yyyy'));\r\n this.reportService.getReportScheduleById(reportId).subscribe((metadata:ReportSchedule)=>{\r\n this.reportScheduleforStatus = metadata;\r\n\r\n if (this.reportScheduleforStatus.reportNumber == null)\r\n {\r\n\r\n this.reportSchedule.updateReportScheduleById(reportId,\r\n isPublic === 'Public' ? true : false,\r\n this.datePipe.transform(reportDueDate, 'MM/dd/yyyy'),\r\n this.datePipe.transform(proposedDueDate, 'MM/dd/yyyy')).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Schedule updated successfully');\r\n }\r\n });\r\n }\r\n else\r\n {\r\n this.notifier.notify('error', 'Cannot update the report schedule as it is NOT under NOT Started state.');\r\n }\r\n });\r\n }\r\n\r\n onChangeSelection(reportscheduleIndex, isReportScheduleEditable) {\r\n\r\n this.reportService.getReportScheduleById(this.reportScheduleData[reportscheduleIndex].id).subscribe((metadata:ReportSchedule)=>{\r\n this.reportScheduleforStatus = metadata;\r\n\r\n if (this.reportScheduleforStatus.reportNumber == null)\r\n {\r\n //console.log(\"Released Record delete=============\" + JSON.stringify(metadata));\r\n\r\n this.reportScheduleData[reportscheduleIndex].selected = isReportScheduleEditable;\r\n this.reportSchedule.deleteReportSchedule(this.reportScheduleData[reportscheduleIndex].id).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Schedule deleted successfully');\r\n this.reportScheduleData.splice(reportscheduleIndex, 1);\r\n }\r\n },error=>{\r\n this.notifier.notify('error', 'Failed to Delete Report Schedule');\r\n });\r\n }\r\n else\r\n {\r\n this.notifier.notify('error', 'Cannot delete the report scheduke as it is NOT under NOT Started state.');\r\n }\r\n });\r\n\r\n }\r\n\r\n // onRecallSelection(reportscheduleIndex) {\r\n // this.recallReportScheduleData = [];\r\n // this.reportScheduleData[reportscheduleIndex];\r\n\r\n // // this.recallReportScheduleData.push({\r\n // // Id: this.reportScheduleData[reportscheduleIndex].id,\r\n // // ProgramAreaId: this.reportSchedule[reportscheduleIndex].ProgramAreaId,\r\n // // ReportYear: this.reportSchedule[reportscheduleIndex].selectedYear.year,\r\n // // ReportYearId: this.reportSchedule[reportscheduleIndex].selectedYear.id,\r\n // // CategoryId: this.reportSchedule[reportscheduleIndex].categoryId,\r\n // // ReportName: this.reportSchedule[reportscheduleIndex].reportName,\r\n // // IsRequired: this.reportSchedule[reportscheduleIndex].IsRequired,\r\n // // IsPublic: this.reportSchedule[reportscheduleIndex].isPublic, // === 'Public' ? true : false,\r\n // // PostLocationId: this.reportSchedule[reportscheduleIndex].fasPostId,\r\n // // ParentLocationId: this.reportSchedule[reportscheduleIndex].countryId,\r\n // // ReportDueDate: this.reportSchedule[reportscheduleIndex].dueDate,\r\n // // IsReleased: false\r\n // // });\r\n\r\n // console.log(\r\n // 'RECALL DATA ------------------------------' + JSON.stringify(this.reportScheduleData[reportscheduleIndex])\r\n // );\r\n\r\n // // this.reportSchedule.editReportSchedule(this.recallReportScheduleData).subscribe(resp => {\r\n // // if (resp.ok) {\r\n // // this.mapReportSchedule(this.selectedYear.year);\r\n // // this.notifier.notify('success', 'Schedules recalled successfully');\r\n // // console.log(resp);\r\n // // }\r\n // // });\r\n // }\r\n\r\n previewReportSchedule() {\r\n this.previewReportScheduleDialog = true;\r\n // this.releaseReportSchedule = [];\r\n // for (let i = 0; i < this.reportScheduleData.length; i++) {\r\n // const isSelected = this.reportScheduleData[i].selected;\r\n // if (this.reportScheduleData[i].selected === true && this.reportScheduleData[i].isReleased === false) {\r\n // this.releaseReportSchedule.push(this.reportScheduleData[i]);\r\n // }\r\n // }\r\n }\r\n\r\n closePreviewReportDialog() {\r\n this.previewReportScheduleDialog = false;\r\n }\r\n\r\n closeAddNewReportDialog() {\r\n this.addNewReportDialog = false;\r\n this.selectedDueDate = false;\r\n }\r\n\r\n saveNewReport() {\r\n if(!this.selectedCategory || !this.selectedFrequencyType || !this.selectedCountry || !this.selectedPost || !this.selectedDistribution || !this.selectedDueDate){\r\n var errorMessage = (this.selectedCategory ? '' : 'Category, ') + \r\n (this.selectedFrequencyType ? '' : 'FrequencyType, ') + \r\n (this.selectedCountry ? '' : 'Country, ') + \r\n (this.selectedPost ? '' : 'Post, ') + \r\n (this.selectedDistribution ? '' : 'Distribution, ') + \r\n (this.selectedDueDate ? '' : 'Due Date,');\r\n errorMessage = errorMessage.slice(0,errorMessage.length -1) + ' cannot be empty!';\r\n this.notifier.notify('error', errorMessage);\r\n return;\r\n }\r\n this.addNewReportDialog = false;\r\n this.addNewReportfields = [];\r\n this.selectedDueDate = false;\r\n\r\n for (const reportSchedule of this.addNewReportSchedule) {\r\n this.addNewReportfields.push({\r\n Id: reportSchedule.id,\r\n ProgramAreaId: reportSchedule.ProgramAreaId,\r\n ReportYear: this.selectedYear.year,\r\n ReportYearId: this.selectedYear.id,\r\n CategoryId: reportSchedule.categoryId,\r\n ReportName: reportSchedule.categoryName + ' ' + reportSchedule.frequencyTypeName,\r\n IsRequired: true,\r\n IsPublic: reportSchedule.distribution === 'Public' ? true : false,\r\n PostLocationId: reportSchedule.fasPostId,\r\n ParentLocationId: reportSchedule.countryId,\r\n ReportDueDate: reportSchedule.dueDate,\r\n ProposedDueDate: reportSchedule.proposedDueDate,\r\n IsReleased: false,\r\n FrequencyTypeId: reportSchedule.frequencyTypeId\r\n });\r\n }\r\n\r\n this.reportSchedule.createReportSchedule(this.addNewReportfields).subscribe((data: any) => {\r\n if (data.body)\r\n this.notifier.notify('error', 'One or more Report Schedules already exists in the system.');\r\n if (!data.body){\r\n this.mapReportSchedule(this.selectedYear.year);\r\n this.notifier.notify('success', 'Report Schedules added successfully');\r\n }\r\n });\r\n }\r\n\r\n addNewReport() {\r\n this.addNewReportDialog = true;\r\n this.addNewReportSchedule = [];\r\n this.onClickAddNewReportSchedule();\r\n this.lookupService.getFrequencyTypes$().subscribe((data:FrequencyType[]) => {\r\n this.frequencyTypes = data.sort();\r\n });\r\n // this.reportNameData.sort(\r\n // (a, b): number => {\r\n // if (a.reportName < b.reportName) return -1;\r\n // if (a.reportName > b.reportName) return 1;\r\n // return 0;\r\n // }\r\n // );\r\n }\r\n\r\n onClickAddNewReportSchedule() {\r\n this.selectedCategory = false;\r\n this.selectedFrequencyType = false;\r\n this.selectedCountry = false;\r\n this.selectedPost = false;\r\n this.selectedDistribution = false;\r\n this.selectedDueDate = false;\r\n this.addNewReportSchedule.push({\r\n id: null,\r\n reportNumber: null,\r\n category: null,\r\n reportName: null,\r\n fasPost: null,\r\n country: null,\r\n programArea: null,\r\n division: null,\r\n dueDate: null,\r\n dueDateInNextYear: null,\r\n proposedDueDate:null,\r\n region: null,\r\n reportType: null,\r\n fasPostId: null,\r\n approverId: null,\r\n highlights: null,\r\n preparedBy: null,\r\n distribution: null,\r\n selected: true,\r\n categoryName: null,\r\n isReleased: null,\r\n categoryId: null,\r\n reportState: null,\r\n reportStateId: null,\r\n isPublic: null,\r\n isRequired: null,\r\n isReportLocked:null,\r\n lastUpdatedDatetime:null\r\n });\r\n }\r\n\r\n dueDateInNextYear(dueDate: Date)\r\n {\r\n return new Date(dueDate.setFullYear(dueDate.getFullYear() + 1));\r\n }\r\n\r\n replicateReports() {\r\n this.replicateReportsfields = [];\r\n // console.log(\"Number of records\"+ this.replicateReportScheduleData.length);\r\n // console.log(\"Number of records\"+ JSON.stringify(this.replicateReportScheduleData[0]));\r\n\r\n for (const reportSchedule of this.replicateReportScheduleData) {\r\n // const isSelected = reportSchedule.selected;\r\n // if (isSelected) {\r\n this.replicateReportsfields.push({\r\n Id: reportSchedule.id,\r\n ProgramAreaId: this.programArea.id,\r\n ReportYear: this.selectedYear.year,\r\n ReportYearId: this.selectedYear.id,\r\n CategoryId: reportSchedule.categoryId,\r\n ReportName: reportSchedule.reportName,\r\n IsRequired: true,\r\n IsPublic: reportSchedule.distribution === 'Public' ? true : false,\r\n PostLocationId: reportSchedule.postLocationId,\r\n ParentLocationId: reportSchedule.parentPostLocationId,\r\n ReportDueDate: this.dueDateInNextYear(new Date(reportSchedule.reportDueDate)), //this.isReportScheduleEditable ? reportSchedule.dueDateInNextYear : reportSchedule.dueDate,\r\n IsReleased: false\r\n\r\n\r\n });\r\n // }\r\n }\r\n // console.log(\"Number of records\"+ JSON.stringify(this.replicateReportsfields[0]));\r\n\r\n this.reportSchedule.createReportSchedule(this.replicateReportsfields).subscribe(resp => {\r\n if (resp.ok) {\r\n this.mapReportSchedule(this.selectedYear.year);\r\n this.notifier.notify('success', 'Schedules saved successfully');\r\n } else\r\n {\r\n this.notifier.notify('error', 'Duplicate Schedule');\r\n }\r\n });\r\n }\r\n\r\n deleteReportSchedule(reportscheduleIndex) {\r\n this.reportScheduleData.splice(reportscheduleIndex, 1);\r\n }\r\n\r\n deleteFromAddNewReportSchedule(reportscheduleIndex) {\r\n this.addNewReportSchedule.splice(reportscheduleIndex, 1);\r\n if(!this.addNewReportSchedule.find(x=>x.categoryId==null)){\r\n this.selectedCategory = true;\r\n }\r\n if(!this.addNewReportSchedule.find(x=>x.frequencyTypeId==null)){\r\n this.selectedFrequencyType = true;\r\n }\r\n if(!this.addNewReportSchedule.find(x=>x.countryId==null)){\r\n this.selectedCountry = true;\r\n }\r\n if(!this.addNewReportSchedule.find(x=>x.fasPostId==null)){\r\n this.selectedPost = true;\r\n }\r\n if(!this.addNewReportSchedule.find(x=>x.dueDate==null)){\r\n this.selectedDueDate = true;\r\n }\r\n if(!this.addNewReportSchedule.find(x=>x.distribution==null)){\r\n this.selectedDistribution = true;\r\n }\r\n }\r\n\r\n deleteFromReleaseReportSchedule(reportscheduleIndex) {\r\n //console.log(\"Report Id to DELETE\" + this.releaseReportSchedule[reportscheduleIndex].id);\r\n this.reportSchedule.deleteReportSchedule(this.releaseReportSchedule[reportscheduleIndex].id).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'Schedules deleted successfully');\r\n }\r\n });\r\n this.releaseReportSchedule.splice(reportscheduleIndex, 1);\r\n this.previewButton = false;\r\n this.mapReportSchedule(this.selectedYear.year);\r\n }\r\n\r\n releaseRecallReportToPost() {\r\n this.editReportsfields = [];\r\n for (const reportSchedule of this.releaseReportSchedule) {\r\n this.editReportsfields.push({\r\n Id: reportSchedule.id,\r\n ProgramAreaId: this.programArea.id,\r\n ReportYear: this.selectedYear.year,\r\n ReportYearId: this.selectedYear.id,\r\n CategoryId: reportSchedule.categoryId,\r\n ReportName: reportSchedule.reportName,\r\n IsRequired: true,\r\n IsPublic: reportSchedule.distribution === 'Public' ? true : false,\r\n PostLocationId: reportSchedule.postLocationId,\r\n ParentLocationId: reportSchedule.parentPostLocationId,\r\n ReportDueDate: reportSchedule.reportDueDate==null? null: new Date(reportSchedule.reportDueDate),\r\n ProposedDueDate:reportSchedule.proposedDueDate==null? null: new Date(reportSchedule.proposedDueDate),\r\n IsReleased: true\r\n });\r\n\r\n }\r\n // console.log(\"ISPUBLIC\"+ JSON.stringify(this.editReportsfields[0]));\r\n\r\n this.previewReportSchedule();\r\n this.closePreviewReportDialog();\r\n this.reportSchedule.releaseRecallReportSchedule(this.editReportsfields).subscribe((data: any) => {\r\n if (data.body)\r\n this.notifier.notify('error', 'One or more Report Schedules already exists in the system.');\r\n if (!data.body){\r\n this.releaseReportSchedule =[];\r\n this.mapReportSchedule(this.selectedYear.year);\r\n this.notifier.notify('success', 'Report Schedules Released successfully');\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ReportMetadata, ReportYear } from '../models/report.model';\r\n// import {ButtonModule} from 'primeng/button';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { TableModule } from 'primeng/table';\r\nimport { Observable } from 'rxjs';\r\nimport { NgForm } from '@angular/forms';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { RequiredreportscheduleService } from '../services/requiredreportschedule.service';\r\nimport { SelectItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-requiredreportschedule',\r\n templateUrl: './requiredreportschedule.component.html',\r\n styleUrls: ['./requiredreportschedule.component.css']\r\n})\r\nexport class RequiredreportscheduleComponent implements OnInit {\r\n // displayMetadata =false;\r\n reportScheduleData: ReportMetadata[];\r\n reportMetadata: ReportMetadata;\r\n saveReportMetadatafields: any;\r\n\r\n ReportYears: ReportYear[];\r\n cols: any[];\r\n\r\n reportCategory: SelectItem[];\r\n reportName: SelectItem[];\r\n fasPost: SelectItem[];\r\n country: SelectItem[];\r\n programArea: SelectItem[];\r\n reportStatus: SelectItem[];\r\n dueDateFilter: SelectItem[];\r\n distributionTypes: SelectItem[];\r\n\r\n @Input()\r\n ReportYear: ReportYear;\r\n\r\n constructor(\r\n private requiredreportService: RequiredreportscheduleService,\r\n private authUserService: AuthUserService,\r\n private reportService: RequiredreportscheduleService,\r\n private lookupService: LookupService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.ReportYear = new ReportYear();\r\n var currentYear =new Date().getFullYear();\r\n\r\n var Years = new Array();\r\n Years = [\r\n { id: 1, year: currentYear+1 },\r\n { id: 2, year: currentYear },\r\n { id: 3, year: currentYear - 1 },\r\n { id: 4, year: currentYear - 2 }\r\n ];\r\n this.ReportYears = Years;\r\n this.ReportYear.id =2;\r\n this.ReportYear.year = currentYear;\r\n this.LoadTable(this.ReportYear);\r\n }\r\n\r\n onYearSelected(val) {\r\n //console.log(val.year);\r\n this.LoadTable(val);\r\n }\r\n\r\n LoadTable(year: ReportYear) {\r\n this.requiredreportService.getReportbasedonyear(year.year).subscribe((data: ReportMetadata[]) => {\r\n // console.log('REPORT SCHEDULE===================' + JSON.stringify(data));\r\n this.reportScheduleData = data;\r\n\r\n var reportCategoryType = new Array();\r\n var reportNameType = new Array();\r\n var postType = new Array();\r\n var countryType = new Array();\r\n var programAreaType = new Array();\r\n var dueDateType = new Array();\r\n var reportState = new Array();\r\n var distType = new Array();\r\n\r\n this.reportScheduleData.sort((a,b):number=>{\r\n if (a.category > b.category) return 1;\r\n if (a.category < b.category) return -1;\r\n return 0;\r\n });\r\n\r\n for (let i = 0; i < this.reportScheduleData.length; i++) {\r\n reportCategoryType.push(this.reportScheduleData[i].category);\r\n reportNameType.push(this.reportScheduleData[i].reportName);\r\n postType.push(this.reportScheduleData[i].fasPost);\r\n countryType.push(this.reportScheduleData[i].country);\r\n programAreaType.push(this.reportScheduleData[i].programArea);\r\n reportState.push(this.reportScheduleData[i].reportState);\r\n dueDateType.push(this.reportScheduleData[i].dueDate.toString());\r\n distType.push(this.reportScheduleData[i].reportType);\r\n }\r\n this.reportCategory = this.GetUniqueValues(reportCategoryType);\r\n this.reportName = this.GetUniqueValues(reportNameType);\r\n this.fasPost = this.GetUniqueValues(postType);\r\n this.country = this.GetUniqueValues(countryType);\r\n this.programArea = this.GetUniqueValues(programAreaType);\r\n this.reportStatus = this.GetUniqueValues(reportState);\r\n this.dueDateFilter = this.dateSort(dueDateType);\r\n this.distributionTypes = this.GetUniqueValues(distType);\r\n // this.lookupService.getReportYear().subscribe(\r\n // (Years:ReportYear[]) =>{\r\n // console.log(Years);\r\n // this.ReportYears = Years;\r\n // console.log(this.ReportYears);\r\n\r\n this.cols = [\r\n { field: 'category', header: 'Category' },\r\n { field: 'reportName', header: 'Report Name' },\r\n { field: 'country', header: 'Country' },\r\n { field: 'fasPost', header: 'FAS Post' },\r\n { field: 'programArea', header: 'Program Area' },\r\n { field: 'reportType', header: 'Distribution' },\r\n { field: 'reportState', header: 'Status' },\r\n { field: 'dueDate', header: 'Due Date' }\r\n ];\r\n // }\r\n // );\r\n });\r\n }\r\n\r\n dateSort(filterItem: any[]): SelectItem[]{\r\n var returnArray = new Array();\r\n for (let i = 0; i < filterItem.length; i++) {\r\n if (returnArray.filter(r => r.label == filterItem[i]).length == 0)\r\n returnArray.push({ label: filterItem[i], value: filterItem[i] });\r\n }\r\n returnArray.sort((a, b) => new Date(b.value).getTime() - new Date(a.value).getTime());\r\n return returnArray;\r\n }\r\n\r\n GetUniqueValues(vals: any[]): SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n returnArry.sort((a,b):number=>{\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n });\r\n return returnArry;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { SelectItem, TreeNode } from 'primeng/api';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { SearchFilter, SearchResult } from '../models/search.model';\r\nimport { SearchService } from '../services/search.service';\r\nimport { SearchresultsComponent } from './searchresults/searchresults.component';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { finalize, take } from 'rxjs/operators';\r\nimport { SearchDataService } from '../services/searchData';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.css']\r\n})\r\nexport class SearchComponent implements OnInit {\r\n searchForm: FormGroup;\r\n blockDatesOptionsForInternal: SelectItem[];\r\n blockDatesOptions: SelectItem[];\r\n countries: SelectItem[] = [];\r\n posts: SelectItem[] = [];\r\n reportCategories: TreeNode[];\r\n keyword: string;\r\n searchFilter: SearchFilter;\r\n selectedNodes: TreeNode[] = [];\r\n searchResults: SearchResult[];\r\n loading:boolean=false;\r\n searchCategory: string;\r\n searchCountry: string;\r\n searchPost: string;\r\n @ViewChild(SearchresultsComponent) searchResultsComponent:SearchresultsComponent;\r\n\r\n constructor(\r\n private lookupService: LookupService,\r\n private fb: FormBuilder,\r\n private searchService: SearchService,\r\n private notifier: NotifierService,\r\n private route: ActivatedRoute,\r\n private searchDataService: SearchDataService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.searchForm = this.fb.group({\r\n dateRange: [''],\r\n country: [''],\r\n post: [''],\r\n reporthighlights: [''],\r\n correctedReport: [''],\r\n reportnumber: [''],\r\n reportname: [''],\r\n fromDate: [''],\r\n toDate: [''],\r\n blockDate: [''],\r\n category: ['']\r\n });\r\n this.LoadAdvanceFilterOptions();\r\n\r\n this.route.queryParams.subscribe(params => {\r\n if(params['searchCategory']!=null || params['searchCountry']!=null || params['searchPost']!=null){\r\n this.searchCategory = params['searchCategory'];\r\n this.searchCountry = params['searchCountry'];\r\n this.searchPost = params['searchPost'];\r\n //this.redirectSearch();\r\n }\r\n });\r\n }\r\n\r\n LoadAdvanceFilterOptions() {\r\n this.LoadBlockDateOptions();\r\n this.LoadAllPosts();\r\n // Load data asynchronously so search parameters won't get overwritten \r\n Promise.all([\r\n this.LoadReportCategoryHierarchy(),\r\n this.LoadAllCountries()\r\n ]).then(() => {\r\n this.checkSearch();\r\n this.redirectSearch();\r\n });\r\n }\r\n\r\n private checkSearch() {\r\n this.searchDataService.getSearch().pipe(\r\n take(1),\r\n ).subscribe(searchParams => {\r\n if(searchParams.keyword || searchParams.category.length > 0 || searchParams.country.length > 0) {\r\n this.keyword = searchParams.keyword;\r\n if(searchParams.category.length > 0) {\r\n let dataVals: string[] = [];\r\n searchParams.category.forEach(val => {\r\n dataVals.push(val.data);\r\n })\r\n this.checkNodes(this.reportCategories[0], dataVals);\r\n }\r\n if(searchParams.country.length > 0) {\r\n this.searchForm.patchValue({country: searchParams.country});\r\n }\r\n this.search();\r\n this.searchDataService.resetSearchData()\r\n }\r\n })\r\n }\r\n\r\n // Setting this.selectedNodes equal to the value given by searchDataService\r\n // doesn't check them in the tree for some reason so we have to manually do it\r\n private checkNodes(category: TreeNode, categoryData: string[]) {\r\n if(category === undefined) {\r\n return 0;\r\n }\r\n const selectedCategories = this.selectedNodes;\r\n let numChildren = category.children.length || 0; \r\n let numSelected = 0;\r\n category.children.forEach(child => {\r\n numSelected += this.checkNodes(child, categoryData);\r\n })\r\n if(categoryData.includes(category.data)) {\r\n selectedCategories.push(category);\r\n return 1;\r\n }\r\n switch(numSelected) {\r\n case 0:\r\n break;\r\n case numChildren:\r\n selectedCategories.push(category);\r\n break;\r\n default:\r\n category.partialSelected = true;\r\n category.expanded = true;\r\n break;\r\n }\r\n return numSelected;\r\n }\r\n\r\n search() {\r\n // if (this.keyword !== undefined && this.keyword !== '') {\r\n //console.log(this.searchForm.value);\r\n this.searchFilter = new SearchFilter();\r\n this.searchFilter.keyword = this.keyword;\r\n\r\n if (parseInt(this.searchForm.controls['dateRange'].value) === 0) {\r\n var currentDate = new Date();\r\n this.searchFilter.toDate = currentDate;\r\n if(parseInt(this.searchForm.controls['blockDate'].value) === 1)\r\n { this.searchFilter.fromDate = currentDate; }\r\n else\r\n {\r\n //console.log(currentDate.setDate(currentDate.getDate() - parseInt(this.searchForm.controls[\"blockDate\"].value)).toLocaleString());\r\n //console.log(new Date(currentDate.toLocaleDateString()));\r\n var fromDate = new Date().setDate(currentDate.getDate() - parseInt(this.searchForm.controls['blockDate'].value));\r\n this.searchFilter.fromDate = new Date(fromDate);}\r\n } else if (parseInt(this.searchForm.controls['dateRange'].value) === 1) {\r\n this.searchFilter.fromDate = this.searchForm.controls['fromDate'].value;\r\n this.searchFilter.toDate = this.searchForm.controls['toDate'].value;\r\n }\r\n this.searchFilter.countryIds = this.searchForm.controls['country'].value;\r\n this.searchFilter.postNames = this.searchForm.controls['post'].value;\r\n if (this.selectedNodes !== undefined) this.TraverseChildNodes(this.selectedNodes, this.searchFilter.categoryIds);\r\n this.searchFilter.reportName = this.searchForm.controls['reportname'].value;\r\n this.searchFilter.reportHighlights = this.searchForm.controls['reporthighlights'].value;\r\n this.searchFilter.reportNumber = this.searchForm.controls['reportnumber'].value;\r\n this.searchFilter.correctedReport = this.searchForm.controls['correctedReport'].value;\r\n\r\n //console.log(this.searchForm);\r\n //console.log(\"Search parameters\" + JSON.stringify(this.searchFilter));\r\n this.searchService.getSearchResults$(this.searchFilter).subscribe(resp => {\r\n // console.log(resp);\r\n if (resp.ok) {\r\n this.searchResults = resp.body;\r\n // this.searchResults.sort((a, b) => {\r\n // if (a.publishDate > b.publishDate) return -1;\r\n // if (a.publishDate < b.publishDate) return 1;\r\n // return 0;\r\n // });\r\n this.searchResultsComponent.resetPageIndex();\r\n // console.log(this.searchResults);\r\n }\r\n });\r\n // } else {\r\n // this.notifier.notify('error', 'Keyword cannot be empty');\r\n // }\r\n //this.searchForm.reset();\r\n }\r\n\r\n //this method will be called when calling search screen from other screen with parameters\r\n redirectSearch() {\r\n if(this.searchCategory || this.searchCountry || this.searchPost) {\r\n this.searchFilter = new SearchFilter();\r\n\r\n const yearStart = new Date(new Date().getFullYear(), 0, 1);\r\n this.searchFilter.fromDate = yearStart;\r\n this.searchFilter.countryIds.push(parseInt(this.searchCountry));\r\n this.searchFilter.categoryIds.push(parseInt(this.searchCategory));\r\n this.searchFilter.postNames.push(this.searchPost);\r\n \r\n this.searchService.getSearchResults$(this.searchFilter).subscribe(resp => {\r\n if (resp.ok) {\r\n this.searchResults = resp.body;\r\n this.searchResultsComponent.resetPageIndex();\r\n if(this.searchCategory) this.checkNodes(this.reportCategories[0], [this.searchCategory]);\r\n this.searchForm.patchValue({fromDate: yearStart});\r\n this.searchForm.patchValue({toDate: new Date()});\r\n if(this.searchPost) this.searchForm.patchValue({post: [this.searchPost]});\r\n (document.getElementById(\"rbCustomRange\") as HTMLInputElement).checked = true;\r\n document.getElementById('searchResult').scrollIntoView({ behavior: \"smooth\", block: \"start\", inline: \"nearest\"});\r\n }\r\n });\r\n }\r\n }\r\n\r\n private TraverseChildNodes(element: TreeNode[], categoryIds: number[]) {\r\n element.forEach(child => {\r\n if (child.children.length == 0) {\r\n if (categoryIds.indexOf(child.data) == -1) categoryIds.push(child.data);\r\n } else {\r\n this.TraverseChildNodes(child.children, categoryIds);\r\n }\r\n });\r\n }\r\n\r\n private LoadReportCategoryHierarchy() {\r\n return new Promise((resolve) => {\r\n this.loading =true;\r\n this.lookupService.getReportCategoryHierarchy$()\r\n .pipe(finalize(() => (\r\n this.loading = false,\r\n resolve()\r\n )))\r\n .subscribe(data => {\r\n //console.log(Array.of(data));\r\n \r\n this.reportCategories = Array.of(data);\r\n this.reportCategories[0].expanded = true;\r\n this.reportCategories[0].children.sort((a, b) => {\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n }); \r\n })\r\n }\r\n private LoadAllPosts() {\r\n this.lookupService.getAllPosts$().subscribe(postList => {\r\n this.posts.push({ label: 'All Posts', value: '' });\r\n postList.forEach(val => {\r\n if (\r\n this.posts\r\n .map(function(v) {\r\n return v.value;\r\n })\r\n .indexOf(val.locationName.toString()) == -1\r\n )\r\n this.posts.push({ label: val.locationName.toString(), value: val.locationName.toString() });\r\n });\r\n\r\n this.posts.sort((a, b) => {\r\n if (a.label === b.label) return 0;\r\n if (a.label == 'All Posts') return -1;\r\n if (b.label == 'All Posts') return 1;\r\n\r\n if (a.label < b.label) return -1;\r\n if (a.label > b.label) return 1;\r\n return 0;\r\n });\r\n this.searchForm.patchValue({post:['']});\r\n });\r\n\r\n\r\n }\r\n\r\n private LoadAllCountries() {\r\n return new Promise((resolve) => {\r\n this.lookupService.getAllCountries$().subscribe(countryList => {\r\n this.countries.push({ label: 'All Countries', value: '' ,styleClass:'p-state-highlight'});\r\n countryList.forEach(val => {\r\n this.countries.push({ label: val.locationName.toString(), value: val.id });\r\n });\r\n this.searchForm.patchValue({country:['']});\r\n resolve();\r\n });\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n private LoadBlockDateOptions() {\r\n this.blockDatesOptions = [\r\n { label: 'Select', value: '0' },\r\n { label: 'Today', value: '1' },\r\n { label: 'Most Recent Week', value: '7' },\r\n { label: 'Most Recent Month', value: '30' }\r\n ];\r\n this.blockDatesOptionsForInternal = [\r\n { label: 'Select', value: '0' },\r\n { label: 'Today', value: '1' },\r\n { label: 'Last 3 Days', value: '3' },\r\n { label: 'Most Recent Week', value: '7' },\r\n { label: 'Most Recent Month', value: '30' }\r\n ];\r\n }\r\n\r\n private onReset() {\r\n // history.pushState(null, null, window.location.href.split('#')[0]);\r\n //window.location.reload();\r\n this.keyword = '';\r\n this.selectedNodes = [];\r\n this.searchResults = new Array();\r\n\r\n // (document.getElementById('rbBlockDate')).checked = true;\r\n }\r\n private ddlBlockDateOnClick(event:Event)\r\n {\r\n this.searchForm.patchValue({dateRange:'0',fromDate:'',toDate:''});\r\n }\r\n private calendarOnFocus(event:Event)\r\n {\r\n this.searchForm.patchValue({dateRange:'1',blockDate:'0'});\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { SearchResult } from '../../models/search.model';\r\nimport { ReportdashboardService } from '../../services/reportdashboard.service';\r\nimport { VersionHistoryComponent } from '../version-history/version-history.component';\r\nimport { ReportAuditRecord } from '../../models/report.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { SelectItem, FilterService } from 'primeng/api';\r\nimport { Table } from 'primeng/table';\r\nimport { stringify } from 'querystring';\r\ndeclare let gtag: Function;\r\n\r\n\r\n@Component({\r\n selector: 'app-searchresults',\r\n templateUrl: './searchresults.component.html',\r\n styleUrls: ['./searchresults.component.css']\r\n})\r\nexport class SearchresultsComponent implements OnInit {\r\n\r\n filelocationapi: string = environment.apiEndpoint + \"/Report/DownloadReportByFileName?fileName=\";\r\n constructor(private router: Router, private reportDashboardService: ReportdashboardService, private notifier: NotifierService,private filterService: FilterService) { }\r\n\r\n @ViewChild('dt') dt: Table;\r\n @Input()searchResults: SearchResult[];\r\n reportAuditTrailData:ReportAuditRecord[];\r\n firstPage: number;\r\n reportId: number;\r\n displayHistoryDlg:boolean=false;\r\n @ViewChild(VersionHistoryComponent) versionHistory: VersionHistoryComponent;\r\n //totalrecs:number=this.searchResults.length;\r\n reportCategories: SelectItem[];\r\n reportYears: SelectItem[];\r\n countryNames: SelectItem[];\r\n posts: SelectItem[];\r\n distributionType: SelectItem[];\r\n reportTypes: SelectItem[];\r\n ngOnInit() {\r\n\r\n this.filterService.register('array-some', (value: any, filters) => {\r\n if (filters === undefined || filters === null || filters.length === 0) {\r\n return true;\r\n }\r\n\r\n return filters.some(r=>value.split(';').includes(r))\r\n });\r\n }\r\n\r\n ngOnChanges(){\r\n if(this.searchResults?.length>0){\r\n this.reportCategories = this.ExpandReportCategories(this.searchResults.map(r => r.reportCategory))\r\n this.reportCategories = this.GetUniqueValues(this.reportCategories);\r\n this.reportYears = this.GetUniqueValues(this.searchResults.map(r => new Date(r.reportDate).getFullYear()));\r\n this.searchResults.forEach(item => {\r\n item.reportYear = new Date(item.reportDate).getFullYear();\r\n })\r\n this.countryNames = this.GetUniqueValues(this.searchResults.map(r => r.countryName));\r\n this.posts = this.GetUniqueValues(this.searchResults.map(r => r.postName));\r\n this.distributionType = [{label: 'Internal', value: false},{label: 'Public', value: true}] //isPublic\r\n this.reportTypes = [{label: 'Required', value: true},{label: 'Voluntary', value: false}] //\r\n }\r\n }\r\n\r\n trackDownload(reportName){\r\n gtag('event', 'report_download', {\r\n 'report_name': reportName\r\n });\r\n gtag('event', '\\\"' + reportName + '\\\"', {\r\n 'report_name': reportName\r\n });\r\n }\r\n\r\n\r\n OpenFile(reportName: any) {\r\n // var windowfeatures = \"status=yes\";\r\n\r\n window.open(environment.apiEndpoint + \"/Report/DownloadReportByFileName?fileName=\" + reportName, '_blank');\r\n //window.open(environment.apiEndpoint+\"/Report/DownloadReportByFileName?fileName=\"+reportName, '_blank',windowfeatures);\r\n //window.open(environment.apiEndpoint+\"/ReportSchedule/DownloadPublishedReportPDF?reportId=\"+reportId, '_blank');\r\n // this.reportDashboardService.downloadPDF$(reportId).subscribe((content:Blob)=>{\r\n\r\n // // window.open(environment.apiEndpoint+\"/Report/DownloadReportByFileName?fileName=\"+reportName, '_blank');\r\n // const fileURL = window.URL.createObjectURL(content);\r\n // setTimeout(() => window.open(fileURL, '_blank'), 1000);\r\n // // // var a = document.createElement(\"a\");\r\n // // // document.body.appendChild(a);\r\n // // // //a.style = \"display: none\";\r\n\r\n // // // //var json = JSON.stringify(content);\r\n // // // //blob = new Blob([json], {type: \"octet/stream\"});\r\n // // // let url = window.URL.createObjectURL(content);\r\n // // // a.href = url;\r\n // // // a.download = reportName+\".pdf\";\r\n // // // a.target =\"_blank\";\r\n // // // a.click();\r\n // // // window.URL.revokeObjectURL(url);\r\n\r\n\r\n // },error=>{\r\n // this.notifier.notify('error', 'File not found ,please contact administrator');\r\n // });\r\n }\r\n paginate(event) {\r\n this.firstPage = event.first;\r\n }\r\n\r\n resetPageIndex() {\r\n this.firstPage = 0;\r\n }\r\n LaunchReport(Id: any) {\r\n //console.log(Id);\r\n\r\n this.reportDashboardService.launchReport(Id).subscribe(\r\n (data) => {\r\n\r\n\r\n // console.log(data);\r\n var accessLink = environment.serverUrl + \"/\" + data; // \"ms-word:ofe|u|\"+ environment.serverUrl+\"/\"+ data;\r\n const link = document.createElement('a');\r\n link.href = accessLink;\r\n link.setAttribute('visibility', 'hidden');\r\n link.click();\r\n //TODO: The above code is not working for IE but works for Chorme\r\n //window.open(this.accessLink);\r\n\r\n\r\n }\r\n\r\n );\r\n //this.voluntaryMetadataForm.disable();\r\n //console.log(this.accessLink);\r\n\r\n }\r\n\r\n ViewPreviousVersions(id){\r\n this.versionHistory.ShowReportHistoryDlg(id);\r\n this.displayHistoryDlg = true;\r\n }\r\n\r\n ExpandReportCategories(vals: any[]): any[] {\r\n var returnArry = new Array();\r\n var seperatedArray: String;\r\n seperatedArray = vals.join(';');\r\n returnArry = seperatedArray.split(';');\r\n return returnArry;\r\n }\r\n\r\n GetUniqueValues(vals: any[]): SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (vals)\r\n\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SearchService } from '../../services/search.service';\r\nimport { ReportAuditRecord } from '../../models/report.model';\r\nimport { PublishedReportHistory } from '../../models/search.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-version-history',\r\n templateUrl: './version-history.component.html',\r\n styleUrls: ['./version-history.component.css']\r\n})\r\nexport class VersionHistoryComponent implements OnInit {\r\n versionList: PublishedReportHistory[] = [];\r\n filelocationapi: string = environment.apiEndpoint + \"/Report/DownloadReportByPublishedReportHistoryId?id=\";\r\n constructor(private searchService: SearchService,\r\n private datePipe: DatePipe) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ShowReportHistoryDlg(id:string)\r\n {\r\n this.searchService.getVersionHistory$(id).subscribe(resp => {\r\n //console.log(resp);\r\n this.versionList = resp;\r\n });\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport { VarianceReportByDueDatesResult, DownloadCountsReportResult, ReportCountByStatus, SubmittedReportCountByPostAndYearResult, ReportFilter } from \"../models/analytics.model\";\r\n\r\n@Injectable()\r\nexport class AnalyticsService {\r\n endpoint = environment.apiEndpoint + '/Analytics/';\r\n constructor(private http: HttpClient) {}\r\n\r\n getRequiredReportsCountByYear$(reportYearId: number): Observable {\r\n return this.http.get(this.endpoint+'GetRequiredReportsCountByYear?reportYearId='+reportYearId);\r\n }\r\n\r\n getPublishedReportCountsByYear$(reportYearId: number, numberOfYears: number): Observable {\r\n return this.http.get(this.endpoint+'GetPublishedReportCountsByYear?reportYearId='+reportYearId+'&numberOfYears='+numberOfYears);\r\n }\r\n\r\n getReportsCountByStatus$(reportYearId: number): Observable {\r\n return this.http.get(this.endpoint+'GetReportCountsByStatus?reportYearId='+reportYearId);\r\n }\r\n\r\n getReportCountsByType$(reportYearId: number): Observable {\r\n return this.http.get(this.endpoint+'GetReportCountsByType?reportYearId='+reportYearId);\r\n }\r\n getReportDownloadsCount$(reportFilters:ReportFilter):Observable{\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportFilters;\r\n return this.http.post(this.endpoint+\"GenerateReportDownloadsCount\", body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n getVarianceReportByDueDates$(reportFilters:ReportFilter):Observable{\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportFilters;\r\n return this.http.post(this.endpoint+\"GenerateVarianceReportByDueDates\", body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n \r\n }\r\n\r\n getSubmittedReportCountByPostAndYear$(reportFilters:ReportFilter):Observable{\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportFilters;\r\n return this.http.post(this.endpoint+\"GenerateSubmittedReportCountByPostAndYear\", body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n \r\n } \r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n// tslint:disable-next-line:import-blacklist\r\n//import 'rxjs/Rx';\r\nimport { OAuthToken } from '../../models/oAuthToken.model';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { environment } from '../../../environments/environment';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AuthTokenService {\r\n private _authToken: OAuthToken;\r\n private _tempStr: '';\r\n private _promise: Promise;\r\n private _promiseDone = false;\r\n constructor(private http: HttpClient, protected localStorage: LocalStorage) {}\r\n\r\n swapToken(tempToken: string): Promise {\r\n //const tokenEndPoint = 'http://localhost:58830/token';\r\n const tokenEndPoint = environment.tokenEndpoint;\r\n this._authToken = {access_token: '', expires_in: '', token_type: ''};\r\n if (this._promiseDone) {\r\n return Promise.resolve(); }\r\n if (this._promise != null) {\r\n return this._promise; }\r\n this._promise = this.http\r\n .post(tokenEndPoint, `client_id=eAuthClient&client_secret=${tempToken}&grant_type=client_credentials`)\r\n .pipe(map((resp: Response) => resp))\r\n .toPromise()\r\n .then((data: any) => {\r\n //console.log('In AuthTokenService');\r\n\r\n this._authToken = data;\r\n this._promiseDone = true;\r\n\r\n // store OAuth token in async local storage\r\n this.localStorage.setItem('oauth_token', this._authToken).subscribe(() => {});\r\n\r\n return this._authToken;\r\n }).catch((err: any) => {\r\n\r\n this._promiseDone = true;\r\n return Promise.resolve();\r\n });\r\n return this._promise;\r\n }\r\n\r\n get AuthToken(): OAuthToken {\r\n return this._authToken;\r\n }\r\n\r\n set AuthToken (token: OAuthToken) {\r\n this._authToken = token;\r\n }\r\n\r\n get TempStr(): string {\r\n return this._tempStr;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n// tslint:disable-next-line:import-blacklist\r\n//import 'rxjs/Rx';\r\n//import 'rxjs/add/operator/do';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { NgxRolesService, NgxPermissionsService } from 'ngx-permissions';\r\nimport { User } from '../../models/user.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AuthUserService {\r\n private _promise: Promise;\r\n private _promiseDone = false;\r\n public _user: User;\r\n public _location : Location;\r\n\r\n constructor(private http: HttpClient, private localStorage: LocalStorage,\r\n private rolesService: NgxRolesService, private permissionsService: NgxPermissionsService) { }\r\n\r\n getAuthUser(): Promise {\r\n // const userEndPoint = 'http://localhost:58830/api/User/GetUser';\r\n const userEndPoint = environment.apiEndpoint + '/User/GetUser';\r\n this._promise = this.http\r\n .get(userEndPoint)\r\n .pipe(\r\n tap(d => {}),\r\n map((resp: Response) => resp))\r\n .toPromise()\r\n .then((data: any) => {\r\n // console.log(data);\r\n\r\n // store User data in class variable & async local storage\r\n this._user = data;\r\n this.localStorage.setItem('user', data).subscribe();\r\n this._location = data;\r\n this.localStorage.setItem('location', data); // TODO is this needed? not subscribing, so location data is\r\n // never added to localstorage anyway.\r\n // add User's Roles and Permissions\r\n // UserRoles & UserType for ngxRoles\r\n // UserStatus for ngxPermissions -- New, Registered, Activated, Deactivated\r\n this.permissionsService.addPermission(data.userStatus.statusName);\r\n this.rolesService.addRole(data.userType.typeName, [data.userStatus.statusName]);\r\n data.userRoles.forEach(element => {\r\n this.rolesService.addRole(element.roleName, [data.userStatus.statusName]);\r\n });\r\n\r\n this._promiseDone = true;\r\n\r\n }).catch((err: any) => {\r\n this._promiseDone = true;\r\n console.log(err);\r\n return Promise.resolve();\r\n });\r\n return this._promise;\r\n }\r\n\r\n updateAuthUser(user: User) {\r\n this._user = user;\r\n }\r\n\r\n set AuthUser (user: User) {\r\n this._user = user;\r\n }\r\n\r\n // TODO\r\n // Components should access _user property\r\n // through getter & make _user property private\r\n get AuthUser() {\r\n return this._user;\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\n//import { Observable } from 'rxjs';\r\n// tslint:disable-next-line:import-blacklist\r\n\r\n//throwError\r\n//import 'rxjs/add/operator/do';\r\nimport { Observable,pipe } from 'rxjs';\r\nimport { tap, catchError, finalize, map } from 'rxjs/operators'\r\nimport { AuthTokenService } from './authToken.service';\r\nimport { HttpStatusNotifierService } from '../http-status-notifier.service';\r\nimport { Router } from '@angular/router';\r\nimport { AuthUserService } from './authUser.service';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\n\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n private tokenPromise: Observable;\r\n constructor(private authtokenService: AuthTokenService,\r\n private userService : AuthUserService,\r\n private httpStatusNotifier: HttpStatusNotifierService,\r\n private localStorage: LocalStorage) {\r\n }\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n request = request.clone({\r\n withCredentials: true,\r\n setHeaders: {\r\n Authorization: `Bearer ${this.authtokenService.AuthToken.access_token}`\r\n }\r\n });\r\n\r\n this.httpStatusNotifier.setHttpStatus(true);\r\n\r\n return next.handle(request).pipe(tap((event: HttpEvent) => {\r\n return event;\r\n },\r\n (err: any) => {\r\n if (err.status === 401) {\r\n // Handle unauthorized http code\r\n this.unauthorizedHandler();\r\n }\r\n\r\n this.httpStatusNotifier.setHttpStatus(false);\r\n }, () => {\r\n this.httpStatusNotifier.setHttpStatus(false);\r\n }));\r\n }\r\n\r\n private async unauthorizedHandler() {\r\n // Unauthorized http code\r\n // Clear token & user from local storage & services\r\n // Add display message in local storage\r\n // Force page reload to log-in as Anonymous user\r\n \r\n await this.localStorage.clear().toPromise();\r\n await this.localStorage.setItem('UserNotification', \"Session expired, User logged out\")\r\n .toPromise();\r\n this.authtokenService.AuthToken = null;\r\n this.userService.AuthUser = null;\r\n window.location.reload();\r\n }\r\n\r\n}\r\n","import { CanDeactivate } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { UserProfileComponent } from '../../user-profile/user-profile.component';\r\nimport { LookupService } from '../lookups/lookup.service';\r\nimport { AuthUserService } from '../appInitialization/authUser.service';\r\n\r\n@Injectable()\r\nexport class HasLocationsGuard implements CanDeactivate {\r\n\r\n private _locations: Location[];\r\n\r\n constructor(private lookupService : LookupService) {}\r\n\r\n canDeactivate(): Promise {\r\n return this.lookupService.getUserLocations().toPromise()\r\n .then((locations: Location[]) => {\r\n return this._locations = locations;\r\n })\r\n .then(() => {\r\n return (this._locations != null && this._locations.length != 0);\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HttpStatusNotifierService {\r\n private requestInFlight$: BehaviorSubject;\r\n\r\n constructor(){\r\n this.requestInFlight$ = new BehaviorSubject(false);\r\n }\r\n setHttpStatus(inFlight: boolean){\r\n this.requestInFlight$.next(inFlight);\r\n }\r\n getHttpStatus(): Observable {\r\n return this.requestInFlight$.asObservable();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Location, UserType, User } from '../../models/user.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport { ReportMetadata, ReportCategory, ReportYear,ReportState, FrequencyType, ReportAutoPublishPolicy, ReportType, ReportDistributionType, CountryReport, ReportCategoryRank} from '../../models/report.model';\r\nimport { map } from 'rxjs/operators';\r\n@Injectable()\r\nexport class LookupService {\r\n\r\n // endpoint = 'http://localhost:58830/api/Lookup/';\r\n\r\n endpoint = environment.apiEndpoint + '/Lookup/';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getUserTypes(): Observable {\r\n return this.http.get(this.endpoint + 'GetUserTypes');\r\n }\r\n\r\n getAppRoles(): Observable {\r\n return this.http.get(this.endpoint + 'GetAppRoles');\r\n }\r\n\r\n getAppRolesByUserTypeId(userTypeId: number): Observable {\r\n return this.http.get(this.endpoint + 'GetAppRolesByUserTypeId?userTypeId=' + userTypeId);\r\n }\r\n\r\n getRootLocations(userType: string): Observable {\r\n return this.http.get(this.endpoint + 'GetRootLocations?userType=' + userType);\r\n // return this.http.post(this.endpoint + 'GetRootLocations', userType);\r\n }\r\n\r\n getChildLocations(parentId: Number): Observable {\r\n return this.http.get(this.endpoint + 'GetChildLocations?parentLocationId=' + parentId);\r\n }\r\n\r\n getLocation(locationId: Number): Observable {\r\n return this.http.get(this.endpoint + 'GetLocation?locationId=' + locationId);\r\n }\r\n\r\n getParentLocation(locationId: Number): Observable {\r\n return this.http.get(this.endpoint + 'GetParentLocation?locationId=' + locationId);\r\n }\r\n\r\n getLocationHierarchy(locationId: number): Observable {\r\n return this.http.get(this.endpoint + 'GetLocationHierarchy?locationId=' + locationId);\r\n }\r\n\r\n getReportCategoryById(id: number): Observable {\r\n return this.http.get(this.endpoint + 'GetReportCategory?id=' + id);\r\n }\r\n\r\n getUserLocations(): Observable {\r\n //return this.http.get('http://localhost:58830/api/User/GetUserLocations');\r\n return this.http.get(environment.apiEndpoint + '/User/GetUserLocations');\r\n }\r\n\r\n getUserCategories(): Observable {\r\n //return this.http.get('http://localhost:58830/api/User/GetUserLocations');\r\n return this.http.get(environment.apiEndpoint + '/User/GetUserCategories');\r\n }\r\n\r\n getUserAllReportCategories(): Observable {\r\n //return this.http.get('http://localhost:58830/api/User/GetUserLocations');\r\n return this.http.get(environment.apiEndpoint + '/User/GetUserReportCategories');\r\n }\r\n\r\n getPostApprovers(postId: number): Observable {\r\n return this.http.get(this.endpoint + 'GetPostApprovers?postLocationId=' + postId);\r\n }\r\n\r\n GetReportCategories(locationId: number):Observable{\r\n //console.log(\"From Service \"+ locationId);\r\n return this.http.get(this.endpoint + 'GetReportCategories?programAreaId=' + locationId)\r\n }\r\n getAllReportCategories$ ():Observable{\r\n return this.http.get(this.endpoint+'GetReportCategories').pipe(map((reportCategories:ReportCategory[])=>reportCategories));\r\n }\r\n\r\n\r\n getReportYear():Observable{\r\n return this.http.get(this.endpoint + 'GetReportYears');\r\n }\r\n\r\n getAllActiveUsers$():Observable{\r\n return this.http.get(environment.apiEndpoint + '/User/GetAllActiveUsers').pipe(map((usersList:User[])=>usersList));\r\n }\r\n\r\n getPendingHqUsers$(): Observable{\r\n return this.http.get(environment.apiEndpoint + '/User/GetPendingHqUsers');\r\n }\r\n\r\n getAllDeActiveUsers$(): Observable{\r\n return this.http.get(environment.apiEndpoint + '/User/GetAllDeActiveUsers').pipe(map((usersList:User[])=>usersList));;\r\n }\r\n\r\n getAllRegions$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllRegions').pipe(map((regionList:Location[])=>regionList));\r\n }\r\n getAllCountries$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllCountries').pipe(map((countryList:Location[])=>countryList));\r\n }\r\n getAllPosts$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllPosts').pipe(map((postList:Location[])=>postList));\r\n }\r\n\r\n getAllProgramAreas$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllProgramAreas').pipe(map((programAreaList:Location[])=>programAreaList));\r\n }\r\n\r\n getAllDivisions$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllDivisions').pipe(map((divisionList:Location[])=>divisionList));\r\n }\r\n\r\n getAllActiveProgramAreas$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllActiveProgramAreas').pipe(map((programAreaList:Location[])=>programAreaList));\r\n }\r\n getAllActiveReportAutoPublishPolicies$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllActiveReportAutoPublishPolicies').pipe(map((autoPublishPolicyList:ReportAutoPublishPolicy[])=>autoPublishPolicyList));\r\n }\r\n getAllActiveReportCategories$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllActiveReportCategories').pipe(map((reportCategories:ReportCategory[])=>reportCategories));\r\n }\r\n\r\n getReportCategoryHierarchy$(includeAll:boolean=true):Observable{\r\n return this.http.get(this.endpoint + 'GetReportCategoryHierarchy?includeAll='+includeAll);\r\n }\r\n\r\n getReportStates$():Observable{\r\n return this.http.get(this.endpoint+'GetReportStates').pipe(map((reportStatesList:ReportState[])=>reportStatesList));\r\n }\r\n getFrequencyTypes$():Observable{\r\n return this.http.get(this.endpoint+'GetFrequencyTypes').pipe(map((frequencyTypes:FrequencyType[])=>frequencyTypes));\r\n }\r\n\r\n getAllReportTypes$():Observable{\r\n return this.http.get(this.endpoint+'GetAllReportTypes').pipe(map((reportTypesList:ReportType[])=>reportTypesList));\r\n }\r\n\r\n getAllReportDistributionTypes$():Observable{\r\n return this.http.get(this.endpoint+'GetAllReportDistributionTypes').pipe(map((reportDistributionTypesList:ReportDistributionType[])=>reportDistributionTypesList));\r\n }\r\n\r\n GetPercentageReportByCountry(countryId: number, appUserId: number):Observable{\r\n return this.http.get(this.endpoint+'GetPercentageReportByCountry?countryId=' + countryId + '&appUserId=' + appUserId).pipe(map((result:CountryReport)=>result));\r\n }\r\n\r\n GetTopFiveReportCategories(countryId: number, appUserId: number):Observable{\r\n return this.http.get(this.endpoint+'GetTopFiveReportCategories?countryId=' + countryId + '&appUserId=' + appUserId).pipe(map((result:ReportCategoryRank[])=>result));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { environment } from '../../../environments/environment';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Location, ReleaseNote } from '../../models/user.model';\r\nimport { ReportCategory } from '../../models/report.model';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LookupAdminService {\r\n endpoint = environment.apiEndpoint + '/LookupAdmin/';\r\n constructor(private http: HttpClient) {}\r\n\r\n GetUniqueValues(vals: any[]): SelectItem[] {\r\n var returnArry = new Array();\r\n for (let cnt = 0; cnt < vals.length; cnt++) {\r\n if (returnArry.filter(r => r.label == vals[cnt]).length == 0)\r\n returnArry.push({ label: vals[cnt], value: vals[cnt] });\r\n }\r\n //console.log(returnArry.length);\r\n\r\n returnArry.sort(\r\n (a, b): number => {\r\n if (a.value < b.value) return -1;\r\n if (a.value > b.value) return 1;\r\n return 0;\r\n }\r\n );\r\n return returnArry;\r\n }\r\n\r\n getAllPosts$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllPosts').pipe(map((postList:Location[])=>postList));\r\n }\r\n getAllCountries$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllCountries').pipe(map((countryList:Location[])=>countryList));\r\n }\r\n getAllProgramAreas$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllProgramAreas').pipe(map((programAreaList:Location[])=>programAreaList));\r\n }\r\n\r\n getAllDivisions$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllDivisions').pipe(map((divisionList:Location[])=>divisionList));\r\n }\r\n\r\n\r\n savePost(post:Location)\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = post;\r\n return this.http.post(this.endpoint + '/SavePost', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n \r\n saveCountry(country:Location)\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = country;\r\n return this.http.post(this.endpoint + '/SaveCountry', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n saveProgramArea(programArea:Location)\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = programArea;\r\n return this.http.post(this.endpoint + '/SaveProgramArea', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n\r\n saveDivision(division:Location)\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = division;\r\n return this.http.post(this.endpoint + '/SaveDivision', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n saveReportCategory$(reportCategory:ReportCategory)\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportCategory;\r\n return this.http.post(this.endpoint + '/SaveReportCategory', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n getAllReleaseNotes$():Observable{\r\n return this.http.get(this.endpoint + 'GetAllReleaseNotes').pipe(map((releaseNoteList:ReleaseNote[])=>releaseNoteList));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../environments/environment';\r\nimport { AuthUserService } from './appInitialization/authUser.service';\r\nimport { Observable , from , ReplaySubject } from 'rxjs';\r\nimport { User,AppRole } from '../models/user.model';\r\n//import 'rxjs/add/operator/do';\r\n//import 'rxjs/add/observable/of';\r\nimport { of } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n//import { forEach } from '@angular/router/src/utils/collection';\r\n\r\n@Injectable()\r\nexport class PermissionsService {\r\n private readonly WORKFLOW_EVENTS = Object.freeze(environment['workflow']);\r\n private userRoles: Set;\r\n\r\n constructor(private userService: AuthUserService) {\r\n }\r\n\r\n public checkAuthorization(path: any): Observable {\r\n if (!this.userRoles) {\r\n return this.getUser()\r\n .pipe(tap(user => this.userRoles = new Set(this.getRoleNames(user.userRoles)))\r\n ,map(() => this.doCheckAuthorization(path)));\r\n \r\n }\r\n \r\n return of(this.doCheckAuthorization(path));\r\n }\r\n\r\n private doCheckAuthorization(path: any): boolean {\r\n \r\n const keys = this.parsePath(path);\r\n if (keys.length) {\r\n const entry = this.findEntry(this.WORKFLOW_EVENTS, keys);\r\n \r\n if (entry && entry['permittedRoles'] && this.userRoles.size) {\r\n return entry.permittedRoles.some(permittedRole => this.userRoles.has(permittedRole));\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private parsePath(path: any): string[] {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n if (Array.isArray(path)) {\r\n return path;\r\n }\r\n return [];\r\n }\r\n\r\n private findEntry(currentObject: any, keys: string[], index = 0) {\r\n const key = keys[index];\r\n if (currentObject[key] && index < keys.length - 1) {\r\n return this.findEntry(currentObject[key], keys, index + 1);\r\n } else if (currentObject[key] && index === keys.length - 1) {\r\n return currentObject[key];\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private getRoleNames(roles:AppRole[])\r\n {\r\n let roleNames = new Array();\r\n roles.forEach(element => {\r\n roleNames.push(element.roleName);\r\n });\r\n \r\n return roleNames;\r\n }\r\n\r\n private getUser():Observable\r\n {\r\n let user =new ReplaySubject(1);\r\n user.next(this.userService._user);\r\n return user.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { UserRegistrationModel, User } from '../models/user.model';\r\nimport { Post } from '../post-user/post-user.component';\r\nimport { environment } from '../../environments/environment';\r\n\r\n@Injectable()\r\nexport class RegistrationService {\r\n //endpoint = 'http://localhost:58830/api/User/';\r\n endpoint = environment.apiEndpoint + '/User/';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n registerUser(registerUserModel: UserRegistrationModel): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = registerUserModel;\r\n return this.http.post(this.endpoint + 'RegisterUser', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n addUserLocations(newLocationIds: number[]): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = newLocationIds;\r\n return this.http.post(this.endpoint + 'AddUserLocations', body, { headers, observe: 'response' });\r\n }\r\n\r\n updateUserReportCategories(newUserReportCategoryIds: number[]): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = newUserReportCategoryIds;\r\n return this.http.post(this.endpoint + 'UpdateUserCategories', body, { headers, observe: 'response' });\r\n }\r\n\r\n deleteUserLocation(locationId: number): Observable {\r\n //console.log(locationId);\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = locationId;\r\n return this.http.post(this.endpoint + 'DeleteUserLocation', body, { headers, observe: 'response' });\r\n }\r\n\r\n deleteUserReportCategory(userReportCategoryId: number): Observable {\r\n //console.log(userReportCategoryId);\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = userReportCategoryId;\r\n return this.http.post(this.endpoint + 'DeleteUserReportCategory', body, { headers, observe: 'response' });\r\n }\r\n updateUser(updateUser: User): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = updateUser;\r\n return this.http.post(this.endpoint + 'UpdateUser', body, { headers, observe: 'response' });\r\n }\r\n activateUser(userId: number) {\r\n return this.http.get(this.endpoint + 'ActivateUser?userId=' + userId, { observe: 'response' });\r\n }\r\n deactivateUser(userId: number) {\r\n return this.http.get(this.endpoint + 'DeactivateUser?userId=' + userId, { observe: 'response' });\r\n }\r\n editUserTypeAndRole(userId: number, userTypeId: number, newRoleId: number)\r\n {\r\n return this.http.get(this.endpoint + 'EditUserTypeAndRole?userId=' + userId + '&userTypeId=' + userTypeId + '&newRoleId=' + newRoleId, { observe: 'response' });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ReportMetadata, ReportSchedule ,Report, ReportsForToday, ReportScheduleForHome} from '../models/report.model';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ReportService {\r\n endpoint = environment.apiEndpoint + '/Report/';\r\n reportScheduleData: ReportMetadata[];\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\ngetSummaryData(reportYear: any): Observable {\r\n //console.log(\"-------ReportService-----------\");\r\n\r\n return this.http.get(this.endpoint + 'GetSummaryData?year=' + reportYear);\r\n }\r\n\r\n getAllReportsBasedOnYear$(reportYear:any):Observable{\r\n return this.http.get(this.endpoint+'GetAllReportsBasedOnYear?reportYear='+reportYear);\r\n }\r\n updateReportState$(reportId:any,reportStatusId:any):Observable\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = [{ reportId: reportId,reportStatusId: reportId }];\r\n return this.http.post(environment.apiEndpoint + '/Report/UpdateReportState?reportId='+reportId+'&reportStateId='+reportStatusId, body, { headers, observe: 'response' });\r\n }\r\n previewPDF$(reportId:any):Observable\r\n {\r\n return this.http.get(this.endpoint+\"PreviewPDF?reportId=\"+reportId,{responseType:'blob'}).pipe(map((resp:Blob)=>{\r\n return new Blob([resp], { type: 'application/pdf' });\r\n }));\r\n }\r\n\r\n getReportsForToday(appUserId: number, numberOfRows: number): Observable {\r\n return this.http.get(this.endpoint + 'GetReportsForToday?appUserId=' + appUserId + '&numberOfRows=' + numberOfRows);\r\n }\r\n\r\n getReportScheduleForHome(appUserId: number, numberOfRows: number): Observable {\r\n return this.http.get(this.endpoint + 'GetReportScheduleForHome?appUserId=' + appUserId + '&numberOfRows=' + numberOfRows);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ReportMetadata, VoluntaryReportMetadata, ReportAttachment, ReportSchedule, ReportStates } from '../models/report.model';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport { ReportLock } from '../models/report-lock.model';\r\n//import { ObserveOnMessage } from 'rxjs/operators';\r\n//import { observableToBeFn } from 'rxjs/testing/TestScheduler';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { HttpStatusNotifierService } from './http-status-notifier.service';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ReportdashboardService {\r\n // endpoint = 'http://localhost:58830/api/Report/';\r\n endpoint = environment.apiEndpoint + '/ReportSchedule/';\r\n\r\n private bsReportSchedules: BehaviorSubject;\r\n private reportScheduleStore: {\r\n reportSchedules:ReportSchedule[];\r\n };\r\n\r\n reportScheduleData: ReportMetadata[];\r\n\r\n constructor(private http: HttpClient,private httpStatusNotifier: HttpStatusNotifierService) {\r\n this.reportScheduleStore = { reportSchedules: [] };\r\n this.bsReportSchedules = new BehaviorSubject([]);\r\n\r\n }\r\n\r\n\r\n\r\n getReportSchedule(): Observable {\r\n\r\n if (this.reportScheduleStore.reportSchedules.length === 0) {\r\n this.getReportScheduleForLoggedInUser();\r\n }\r\n\r\n return this.bsReportSchedules.asObservable();\r\n\r\n\r\n\r\n }\r\n\r\n getReportScheduleForLoggedInUser() {\r\n // console.log('in ReportDashboardService');\r\n return this.http.get(this.endpoint + 'GetReportSchedulesBasedOnLoggedInUser')\r\n .subscribe((data:ReportSchedule[])=>{\r\n this.reportScheduleStore.reportSchedules =data;\r\n this.bsReportSchedules.next(this.reportScheduleStore.reportSchedules);\r\n\r\n });\r\n }\r\n\r\n\r\n getReportScheduleById(Id: any): Observable {\r\n //console.log('In GetReportScheduleByID with Id:' + Id);\r\n return this.http.get(this.endpoint + 'GetReportScheduleById?id=' + Id);\r\n }\r\n\r\n saveReportMetadata(reportMetadata: any): Observable {\r\n this.reportScheduleStore.reportSchedules=[];\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportMetadata;\r\n // return this.http.post('http://localhost:58830/api/ReportSchedule/SaveReportMetadata', body, { headers, observe: 'response' });\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/SaveReportMetadata', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n launchReport(Id: any): Observable {\r\n //console.log('Inside Launch Report method of ReportDashboardService with Id:' + Id);\r\n return this.http.get(this.endpoint + 'LaunchReport?reportScheduleId=' + Id + '&updateContent=true');\r\n }\r\n saveVoluntaryReport$(voluntaryReportMetadata: any): Observable {\r\n this.reportScheduleStore.reportSchedules=[];\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = voluntaryReportMetadata;\r\n //console.log(body);\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/SaveVoluntaryReport', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n performAction$(id: any, action: string): Observable {\r\n this.reportScheduleStore.reportSchedules=[];\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n //console.log(action + ' ' + this.endpoint);\r\n if (action == 'SendToPostApprover')\r\n return this.http.post(this.endpoint + 'SendForPostApprover?reportMetadataId=' + id + '&statusId=' + ReportStates.SubmittedToPostApprover, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n else if (action == 'SendCorrectedToPostApprover')\r\n return this.http.post(this.endpoint + 'SendForPostApprover?reportMetadataId=' + id + '&statusId=' + ReportStates.CorrectedAndSentToApprover, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n else if (action == 'PutOnHold')\r\n return this.http.post(this.endpoint + 'PutReportOnHold?reportMetadataId=' + id, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n else if (action == 'UnHoldReport')\r\n return this.http.post(this.endpoint + 'UnholdReport?reportMetadataId=' + id, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n else if (action == 'PublishImmediately')\r\n return this.http.post(this.endpoint + 'PublishImmediately?reportMetadataId=' + id, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n else if (action == 'DeleteReport')\r\n return this.http.post(this.endpoint + 'DeleteReportById?reportMetadataId=' + id, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n else if (action == 'RequestCorrection')\r\n return this.http.post(this.endpoint + 'UpdateReportState?reportId=' + id + '&reportStateId=' + ReportStates.RequestedForCorrection, '', {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n // sendToPostApprover$(id:any):Observable\r\n // {\r\n // const headers = new HttpHeaders().set('content-type', 'application/json');\r\n\r\n // return this.http.post(this.endpoint+'SendForPostApprover?reportMetadataId='+id,'',{headers, observe: 'response' });\r\n // }\r\n\r\n // putOnHold$(id:any):Observable\r\n // {\r\n // const headers = new HttpHeaders().set('content-type', 'application/json');\r\n\r\n // return this.http.post(this.endpoint+'PutReportOnHold?reportMetadataId='+id,'',{headers, observe: 'response' });\r\n // }\r\n // unholdReport$(id:any):Observable\r\n // {\r\n // const headers = new HttpHeaders().set('content-type', 'application/json');\r\n\r\n // return this.http.post(this.endpoint+'UnholdReport?reportMetadataId='+id,'',{headers, observe: 'response' });\r\n // }\r\n\r\n executeWorkflow$(id: any, mode: string, status: boolean, comments: string,removeAuthor:boolean): Observable {\r\n this.reportScheduleStore.reportSchedules=[];\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n // removeAuthor=((removeAuthor == null)? false: true);\r\n //TODO: Is there a way to pass the reportmetadata object and the workflow code would find out what step it is in the workflow\r\n // and what needs to be done next?\r\n if (mode == 'Approve') {\r\n const body = [{ reportMetatadataId: id, isAprroved: status, comments: comments,removeAuthor:removeAuthor }];\r\n return this.http.post(\r\n this.endpoint +\r\n 'ApproveReturnFromPostApprover?reportMetadataId=' +\r\n id +\r\n '&isApproved=' +\r\n status +\r\n '&comments=' +\r\n comments +\r\n '&removeAuthor='+\r\n removeAuthor\r\n ,\r\n '',\r\n { headers, observe: 'response' }\r\n );\r\n } else {\r\n const body = [{ reportMetatadataId: id, isValidated: status, comments: comments }];\r\n return this.http.post(\r\n this.endpoint +\r\n 'ApproveReturnFromWashington?reportMetadataId=' +\r\n id +\r\n '&isValidated=' +\r\n status +\r\n '&comments=' +\r\n comments,\r\n '',\r\n { headers, observe: 'response' }\r\n );\r\n }\r\n }\r\n\r\n getReportHistoryById(Id: any): Observable {\r\n return this.http.get(this.endpoint + 'GetAuditTrailBasedOnReportId?Id=' + Id);\r\n }\r\n\r\n getLockedReports(): Observable {\r\n return this.http.get(this.endpoint + 'GetLockedReports');\r\n }\r\n\r\n checkForLock(Id:any):Observable{\r\n return this.http.get(this.endpoint + 'CheckForReportLock?reportId='+Id);\r\n }\r\n\r\n removeReportLock(reportId: string, token: string) {\r\n return this.http.get(this.endpoint + 'RemoveReportLock?reportId=' + reportId + '&token=' + token, {\r\n observe: 'response'\r\n });\r\n }\r\n\r\n checkforCommentsandTrackChanges$(reportId:string):Observable{\r\n return this.http.get(this.endpoint+'CheckForCommentsAndTrackChanges?reportId=' + reportId);\r\n }\r\n downloadPDF$(reportId:any):Observable\r\n {\r\n return this.http.get(this.endpoint+\"DownloadPublishedReportPDF?reportId=\"+reportId,{responseType:'blob'}).pipe(map((resp:Blob)=>{\r\n return new Blob([resp], { type: 'application/pdf' });\r\n }));\r\n }\r\n\r\n\r\n downloadPDFByFileName$(reportName:any):Observable\r\n {\r\n\r\n\r\n return this.http.get(environment.apiEndpoint+\"/Report/DownloadReportByFileName?fileName=\"+reportName,{responseType:'blob'}).pipe(map((resp:Blob)=>{\r\n return new Blob([resp], { type: 'application/pdf' });\r\n\r\n }));\r\n }\r\n\r\n getReportAttachments$(reportId:string):Observable{\r\n return this.http.get(environment.apiEndpoint + '/Report/GetReportAttachments?reportId='+reportId);\r\n }\r\n\r\n // uploadAttachments$(uploadAttachmentList:any[]):Observable{\r\n // const headers = new HttpHeaders().set('content-type', 'application/json');\r\n // const body = uploadAttachmentList;\r\n // console.log(body);\r\n // return this.http.post(environment.apiEndpoint + '/Report/UploadAttachments', body, { headers, observe: 'response' });\r\n // }\r\n uploadAttachments$(reportMetadataId:string,formData:FormData):Observable\r\n {\r\n let url = environment.apiEndpoint+'/Report/UploadAttachments?reportMetadataId='+reportMetadataId;\r\n return this.http.post(url,formData);\r\n\r\n }\r\n\r\n openAttachment$(Id:number,fileType:string):Observable\r\n {\r\n return this.http.get(environment.apiEndpoint+\"/Report/GetAttachmentById?Id=\"+Id,{responseType:'blob'}).pipe(map((resp:Blob)=>{\r\n return new Blob([resp], { type: 'application/'+fileType });\r\n }));\r\n }\r\n\r\n deleteAttachment$(Id:number,reportId:any):Observable\r\n {\r\n\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = [{ Id: Id,reportId: reportId }];\r\n return this.http.post(environment.apiEndpoint + '/Report/DeleteAttachment?Id='+Id+'&reportId='+reportId, body, { headers, observe: 'response' });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport { ReportingInstructions } from '../models/report.model';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ReportingInstructionsService {\r\n endpoint = environment.apiEndpoint + '/ReportingInstructions/';\r\n constructor(private httpClient: HttpClient,\r\n private http: HttpClient) { }\r\n // constructor(private http: HttpClient) {}\r\n\r\n getReportingInstructionsByType(type: number): Observable {\r\n return this.http.get(this.endpoint + 'GetReportingInstructionsByType?Type=' + type);\r\n }\r\n\r\n getReportingInstructionsById(id: string): Observable {\r\n return this.http.get(this.endpoint + 'GetReportingInstructionsById?Id=' + id);\r\n }\r\n\r\n getReportingInstructionsByParentId(parentId: string): Observable {\r\n return this.http.get(this.endpoint + 'GetReportingInstructionsByParentId?ParentId=' + parentId);\r\n }\r\n\r\n addReportingInstructions(reportInstrutions: any): Observable{\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportInstrutions;\r\n return this.http.post(environment.apiEndpoint + '/ReportingInstructions/CreateFolderUploadDocuments', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n updateDocument(reportInstrutions: any): Observable{\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportInstrutions;\r\n return this.http.post(environment.apiEndpoint + '/ReportingInstructions/UpdateDocument', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n \r\n //downloadDocument$(documentId:any,fileType: string):Observable\r\n downloadDocument$(documentId:any,fileType: string):void\r\n {\r\n // return this.httpClient.get(this.endpoint+\"GetDocument?id=\"+documentId,{responseType:'blob'}).pipe(map((resp:Blob)=>{\r\n // return new Blob([resp], { type: 'application/' + fileType });\r\n // }));\r\n window.open(this.endpoint+\"GetDocument?id=\"+documentId);\r\n }\r\n\r\n deleteDocument(Id: any): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = Id;\r\n return this.http.post(environment.apiEndpoint + '/ReportingInstructions/DeleteDocument?Id=' + Id, body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ReportMetadata, ReportSchedule } from '../models/report.model';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ReportScheduleService {\r\n // endpoint = 'http://localhost:58830/api/Report/';\r\n endpoint = environment.apiEndpoint + '/ReportSchedule/';\r\n reportScheduleData: ReportMetadata[];\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getReportSchedule(): Observable {\r\n //console.log('in ReportDashboardService');\r\n return this.http.get(this.endpoint + 'GetPostAuthorReportSchedules');\r\n }\r\n\r\n getReportScheduleById(Id: any): Observable {\r\n return this.http.get(this.endpoint + 'GetReportScheduleById?id=' + Id);\r\n }\r\n\r\n getReportSchedulesByYear(reportYear: number): Observable {\r\n return this.http.get(this.endpoint + 'GetReportSchedulesByYear?reportYear=' + reportYear);\r\n }\r\n\r\n replicateReportScheduleForYear(reportYear: number): Observable {\r\n return this.http.get(this.endpoint + 'ReplicateReportScheduleForYear?reportYear=' + reportYear);\r\n }\r\n\r\n getReportSchedulesToRelease(reportYear: number, IsReleased: boolean): Observable {\r\n return this.http.get(\r\n this.endpoint + 'GetReportSchedulesToRelease?reportYear=' + reportYear + '&isReleased=' + IsReleased\r\n );\r\n }\r\n\r\n saveReportSchedule(reportSchedule: any[]): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportSchedule;\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/CreateReportSchedules', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n editReportSchedule(reportSchedule: any[]): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportSchedule;\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/EditReportSchedule', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n createReportSchedule(reportSchedule: any[]): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportSchedule;\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/CreateReportSchedules', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n // getReportScheduleToRelease(reportYear: number): Observable{\r\n // return this.http.get(this.endpoint + 'GetReportScheduleToRelease?reportYear=' + reportYear)\r\n // }\r\n releaseRecallReportSchedule(reportScheduleId: any): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = reportScheduleId;\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/ReleaseRecallReportSchedule', body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n deleteReportSchedule(Id: any): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = Id;\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/DeleteReportSchedule?Id=' + Id, body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n updateReportScheduleById(Id: any, IsPublic: boolean, ReportDueDate:any,ProposedDueDate: any): Observable {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = [{ reportId: Id, isPublic: IsPublic, proposedDueDate: ProposedDueDate}];\r\n // return this.http.post(environment.apiEndpoint + '/ReportSchedule/UpdateReportScheduleById' + body,\r\n // { headers, observe: 'response' });\r\n return this.http.post(environment.apiEndpoint + '/ReportSchedule/UpdateReportScheduleById?reportId=' + Id +\r\n '&isPublic=' + IsPublic +\r\n '&reportDueDate=' + ReportDueDate +\r\n '&proposedDueDate=' + ProposedDueDate, body,\r\n { headers, observe: 'response' });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport {ReportMetadata} from '../models/report.model';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\n\r\n@Injectable()\r\nexport class RequiredreportscheduleService {\r\n endpoint = environment.apiEndpoint + '/ReportSchedule/';\r\n requiredreportScheduleData:ReportMetadata[];\r\n constructor(private http: HttpClient) { }\r\n getReportSchedule(): Observable {\r\n //console.log('in RequiredReportDashboardService');\r\n return this.http.get(this.endpoint + 'GetPostAuthorReportSchedules');\r\n }\r\n\r\n getReportScheduleById(Id: any): Observable {\r\n //console.log('In GetReportScheduleByID with Id:' + Id);\r\n return this.http.get(this.endpoint + 'GetReportScheduleById?id=' + Id);\r\n }\r\n getReportbasedonyear(reportyear: any): Observable{\r\n //console.log('in GetReportBasedOnYear with year:' + reportyear);\r\n return this.http.get(this.endpoint + 'GetReportbasedOnYear?reportyear=' + reportyear);\r\n }\r\n\r\n}\r\n","import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\r\nimport { ReportMetadata } from '../../models/report.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ReportdashboardService } from '../reportdashboard.service';\r\n\r\n@Injectable()\r\nexport class ReportMetadataResolver implements Resolve {\r\n\r\n private subscription: any;\r\n\r\n constructor(private reportService: ReportdashboardService, private activatedRoute: ActivatedRoute) {\r\n\r\n }\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const reportScheduleId = route.paramMap.get('id');\r\n //console.log(reportScheduleId);\r\n return this.reportService.getReportScheduleById(reportScheduleId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../environments/environment';\r\nimport { SearchFilter } from '../models/search.model';\r\n\r\n@Injectable()\r\nexport class SearchService\r\n{\r\n endpoint = environment.apiEndpoint + '/Search/';\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getSearchResults$(searchFilter:SearchFilter):Observable\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = searchFilter;\r\n return this.httpClient.post(this.endpoint+\"GetSearchResults\", body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n getQuickLinkResults$(fromDate:any, toDate:any):Observable\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n const body = [{ fromDate: fromDate, toDate: toDate}];\r\n return this.httpClient.post(this.endpoint+\"GetQuickLinksResults?fromDate=\"+fromDate+\"&toDate=\"+toDate, body, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n getVersionHistory$(id:string):Observable\r\n {\r\n const headers = new HttpHeaders().set('content-type', 'application/json');\r\n return this.httpClient.post(this.endpoint+\"GetVersionHistory?id=\" + id, {\r\n headers,\r\n observe: 'response'\r\n });\r\n }\r\n\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { TreeNode } from 'primeng/api';\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nexport interface SearchParams {\r\n keyword: string;\r\n category: TreeNode[];\r\n country: Number[];\r\n}\r\n\r\n@Injectable()\r\nexport class SearchDataService {\r\n\r\n searchParams = new BehaviorSubject({\r\n keyword: \"\",\r\n category: [],\r\n country: []\r\n });\r\n\r\n constructor() {}\r\n\r\n setSearchData(keywordData: string, categoryData: TreeNode[], countryData: Number[]) {\r\n this.searchParams.next({\r\n keyword: keywordData,\r\n category: categoryData,\r\n country: countryData\r\n })\r\n }\r\n\r\n getSearch() {\r\n return this.searchParams.asObservable();\r\n }\r\n\r\n resetSearchData() {\r\n this.searchParams.next({\r\n keyword: \"\",\r\n category: [],\r\n country: []\r\n })\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { User, UserRegistrationModel, UserType, PostUserType,PostLocationsModel } from '../models/user.model';\r\nimport { Unsubscribable as AnonymousSubscription } from 'rxjs';\r\nimport { AuthUserService } from '../services/appInitialization/authUser.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { LookupService } from '../services/lookups/lookup.service';\r\nimport { RegistrationService } from '../services/registration.service';\r\nimport { ReportCategory, UserReportCategory } from '../models/report.model';\r\nimport { NotifierService } from 'angular-notifier';\r\n//import { enableDebugTools } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-user-profile',\r\n templateUrl: './user-profile.component.html',\r\n styleUrls: ['./user-profile.component.css']\r\n})\r\nexport class UserProfileComponent implements OnInit {\r\n currentUser: User;\r\n userLocations: PostLocationsModel[];\r\n rootLocations: Location[];\r\n userCategories: UserReportCategory[];\r\n postEmployments: PostUserType[] = [];\r\n postEmployment: PostUserType;\r\n registerUserModel: UserRegistrationModel;\r\n private isButtonVisible = true;\r\n oldLocation: number = 0;\r\n //postuser: any;\r\n\r\n constructor(\r\n private authUser: AuthUserService,\r\n private lookupService: LookupService,\r\n private registrationService: RegistrationService,\r\n private notifier: NotifierService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.currentUser = this.authUser._user;\r\n // Post User Types -- LES or FSO\r\n this.postEmployments.push(new PostUserType(0, 'Post Type', 'Select Post Type'));\r\n this.postEmployments.push(new PostUserType(1, 'LES', 'Locally Employed Staff (LES)'));\r\n this.postEmployments.push(new PostUserType(2, 'FSO', 'Foreign Service Officer (FSO)'));\r\n if (this.currentUser.userLocations.length === 0) {\r\n this.postEmployment = this.postEmployments.find(p => p.id === 0);\r\n } else {\r\n if (this.currentUser.isLes === true) {\r\n this.postEmployment = this.postEmployments.find(p => p.id === 1);\r\n } else {\r\n this.postEmployment = this.postEmployments.find(p => p.id === 2);\r\n }\r\n }\r\n this.getUserLocations();\r\n this.getUserReportCategories();\r\n this.currentUser.userRoleId = Array();\r\n this.lookupService.getRootLocations(this.currentUser.userType.typeName).subscribe((data: Location[]) => {\r\n this.rootLocations = data.sort(\r\n (a, b): number => {\r\n if (a.toString < b.toString) return -1;\r\n if (a.toString > b.toString) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n\r\n //RegisterUser;\r\n getUserLocations() {\r\n this.lookupService.getUserLocations().subscribe((locations: any[]) => {\r\n // console.log(locations);\r\n this.userLocations = locations.sort(\r\n (a, b): number => {\r\n if (a.locationName < b.locationName) return -1;\r\n if (a.locationName > b.locationName) return 1;\r\n return 0;\r\n }\r\n );\r\n if (this.userLocations.length > 0) this.isButtonVisible = false;\r\n else this.isButtonVisible = true;\r\n });\r\n }\r\n\r\n deleteUserLocation(locationId: number) {\r\n // console.log(locationId);\r\n this.registrationService.deleteUserLocation(locationId).subscribe(resp => {\r\n if (resp.ok) {\r\n this.notifier.notify('success', 'User Location deleted successfully');\r\n //this.authUser._user.userLocations[0].locationId;\r\n\r\n this.getUserLocations();\r\n this.authUser.getAuthUser();\r\n }\r\n });\r\n }\r\n\r\n onSavePostType() {\r\n let SelectedUserType = new UserType();\r\n SelectedUserType.id = this.postEmployment.id;\r\n SelectedUserType.typeName = this.postEmployment.typeName;\r\n this.currentUser.userRoleId = [];\r\n if (this.postEmployment.typeName == 'Post Type') {\r\n this.notifier.notify('error', 'Please select a Post Type and Save to Proceed');\r\n } else {\r\n if (this.postEmployment.typeName == 'LES') {\r\n this.currentUser.isLes = true;\r\n this.currentUser.userRoleId.push(3);\r\n //Check If RolID 3 is present if not add\r\n //If RoleID 4 is present then delete\r\n } else if (this.postEmployment.typeName == 'FSO') {\r\n this.currentUser.isLes = false;\r\n this.currentUser.userRoleId.push(3);\r\n this.currentUser.userRoleId.push(4);\r\n //Check if 3 is present if not add 3\r\n //Check if 4 is present if not add 4\r\n }\r\n this.isButtonVisible = false;\r\n\r\n this.registrationService.updateUser(this.currentUser).subscribe(resp => {\r\n if (resp.ok) {\r\n this.authUser.getAuthUser();\r\n this.notifier.notify('success', 'Post Type saved successfully');\r\n }\r\n });\r\n }\r\n }\r\n\r\n SaveReportingStations(newLocationIds: number[]) {\r\n this.userLocations.forEach(userlocation => {newLocationIds.forEach(newLocationId => {\r\n if(newLocationId === userlocation.postId)\r\n this.oldLocation++;\r\n }); });\r\n this.registrationService.addUserLocations(newLocationIds).subscribe(resp => {\r\n if (resp.ok) {\r\n if(this.oldLocation != 0)\r\n this.notifier.notify('error', 'One or more Locations already exists in your Profile');\r\n if(newLocationIds.length > this.oldLocation)\r\n this.notifier.notify('success', 'User Locations saved successfully');\r\n this.getUserLocations();\r\n this.authUser.getAuthUser();\r\n this.oldLocation = 0;\r\n }\r\n });\r\n }\r\n\r\n getUserReportCategories() {\r\n this.lookupService.getUserCategories().subscribe((userCategories: UserReportCategory[]) => {\r\n // console.log(userCategories);\r\n this.userCategories = userCategories.sort(\r\n (a, b): number => {\r\n if (a.categoryName < b.categoryName) return -1;\r\n if (a.categoryName > b.categoryName) return 1;\r\n return 0;\r\n }\r\n );\r\n });\r\n }\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n workflow: require('./workflow.json'),\r\n reportPublishTime: '15:00:00', //Report auto publish at 3PM ET\r\n //local\r\n // apiEndpoint: 'http://localhost:58830/api',\r\n // tokenEndpoint: 'http://localhost:58830/token',\r\n // logoutUrl: 'https://www.cert.eauth.usda.gov/Logout/logoff.asp',\r\n // loginUrl: 'http://localhost:51274/LoginPage.aspx',\r\n // serverUrl: 'http://localhost:51274',\r\n // GAUrl: 'https://analytics.google.com/analytics/web/?pli=1#/p294743007/reports/reportinghub',\r\n // GAId: 'G-GE755X0254'\r\n\r\n //dev server\r\n // apiEndpoint: 'https://devapps.fas.usda.gov/newgainapi/api',\r\n // tokenEndpoint:'https://devapps.fas.usda.gov/newgainapi/token',\r\n // logoutUrl:'https://devapps.fas.usda.gov/newgain',\r\n // loginUrl:'https://devapps.fas.usda.gov/newgain/LoginPage.aspx',\r\n // serverUrl:'https://devapps.fas.usda.gov/newgain/',\r\n // GAUrl: 'https://analytics.google.com/analytics/web/?pli=1#/p294743007/reports/reportinghub',\r\n // GAId: 'G-GE755X0254'\r\n\r\n //staging server\r\n // apiEndpoint: 'https://stgapps.fas.usda.gov/newgainapi/api',\r\n // tokenEndpoint:'https://stgapps.fas.usda.gov/newgainapi/token',\r\n // logoutUrl:'https://stgapps.fas.usda.gov/newgain',\r\n // //loginUrl:'https://stgapps.fas.usda.gov/newgain/LoginPage.aspx',\r\n // // NewEauth LoginPage redirection\r\n // loginUrl:'https://www.cert.eauth.usda.gov/eauth/b/usda/login?TARGET=-SM-https://stgapps.fas.usda.gov/newgain/LoginPage.aspx ',\r\n // serverUrl:'https://stgapps.fas.usda.gov/newgain/',\r\n // GAUrl: 'https://analytics.google.com/analytics/web/?pli=1#/p295236668/reports/reportinghub',\r\n // GAId: 'G-ZJ5HDPLNTH'\r\n\r\n\r\n\r\n //prod server\r\n apiEndpoint: 'https://apps.fas.usda.gov/newgainapi/api',\r\n tokenEndpoint:'https://apps.fas.usda.gov/newgainapi/token',\r\n logoutUrl:'https://gain.fas.usda.gov/',\r\n loginUrl:'https://gain.fas.usda.gov/LoginPage.aspx',\r\n serverUrl:'https://gain.fas.usda.gov/',\r\n GAUrl: 'https://analytics.google.com/analytics/web/?pli=1#/p295178864/reports/reportinghub',\r\n GAId: 'G-NF0V16XF9E'\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 .catch(err => console.log(err));\r\n","export default \"\\r\\n\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Country Name is required\\r\\n \\r\\n \\r\\n Country Name does not allow special charecters except [ ' - _]\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Region 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 Yes  \\r\\n No
\\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\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Country \\r\\n Region \\r\\n Is Active \\r\\n\\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.locationName }} \\r\\n {{ location.parentLocationName }} \\r\\n {{ location.isActive==true?'Yes':'No'}} \\r\\n\\r\\n \\r\\n \\r\\n \\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 default \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Division Name is required\\r\\n \\r\\n \\r\\n Division Name does not allow special charecters except [ ' - _]\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Program Area 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 Yes \\r\\n No
\\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\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Division \\r\\n Program Area \\r\\n Is Active \\r\\n\\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.locationName }} \\r\\n {{ location.parentLocationName }} \\r\\n {{ location.isActive==true?'Yes':'No'}} \\r\\n\\r\\n \\r\\n \\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 default \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\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 default \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Post Name is required\\r\\n \\r\\n \\r\\n Post Name does not allow special charecters except [ ' - _]\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Country 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 Yes \\r\\n No
\\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\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Post \\r\\n Country \\r\\n Is Active \\r\\n\\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.locationName }} \\r\\n {{ location.parentLocationName }} \\r\\n {{ location.isActive==true?'Yes':'No'}} \\r\\n\\r\\n \\r\\n \\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 default \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Program Area Name is required\\r\\n \\r\\n \\r\\n Program Area Name does not allow special charecters except [ ' - _]\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n Yes \\r\\n No
\\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\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Program Area \\r\\n \\r\\n Is Active \\r\\n\\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.locationName }} \\r\\n \\r\\n {{ location.isActive==true?'Yes':'No'}} \\r\\n\\r\\n \\r\\n \\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 default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Category Name is required \\r\\n \\r\\n \\r\\n Category Name does not allow special charecters \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Parent Category 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 Program Area 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 Auto Publish Policy 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 Yes
\\r\\n No
\\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
\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\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 default \"\\r\\n\\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 default \"
\\r\\n
\\r\\n No locked reports.\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Report Name \\r\\n Category \\r\\n Owner \\r\\n Expires \\r\\n Post \\r\\n Program Area \\r\\n Distribution \\r\\n Unlock \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ report.reportName }} \\r\\n {{ report.category }} \\r\\n {{ report.owner }} \\r\\n {{ report.expires |date:'medium' }} \\r\\n {{ report.post }} \\r\\n {{ report.programArea }} \\r\\n {{ report.distribution }} \\r\\n Unlock \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.reportNumber}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.reportName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.dueDate | date:'MMMM dd, yyyy'}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.region}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.countryName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.postName}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.reportType}}
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
{{this.categoryName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.reportState}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.reportHighlights}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.preparedBy}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{this.selectedApproverName}}
\\r\\n
\\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 default \"
\\r\\n
\\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Report Number \\r\\n Report Name \\r\\n Country \\r\\n Post \\r\\n Report Type \\r\\n Distribution \\r\\n Status \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{report.reportNumber}}\\r\\n {{report.reportName}}\\r\\n {{report.country}}\\r\\n {{report.fasPost}}\\r\\n {{report.reportType}}\\r\\n {{report.distribution}}\\r\\n \\r\\n 9 && report.reportStateId < 13\\\" style=\\\"color: red;\\\">⚠ {{report.reportState }}\\r\\n 12\\\" >{{report.reportState }}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n No Records to display here\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Report Status:\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
Report is Published. Please refresh the page.
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Attachment\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{reportAttachment?.attachmentName}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n No Records to display here\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n This feature is not available at the moment because the report is opened in word for edit.\\r\\n
\\r\\n
\\r\\n \\r\\n
\";","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Action Performed\\r\\n Processed By\\r\\n Processed Date\\r\\n Comments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{reportAuditRecord.reportActionName}}\\r\\n {{reportAuditRecord.processedBy}}\\r\\n {{reportAuditRecord.processedDateTime |date:'medium'}}\\r\\n {{reportAuditRecord.userComments}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n No Records to display here\\r\\n
\\r\\n
\";","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n \\r\\n

  • \\r\\n
  • \\r\\n \\r\\n \\r\\n

  • \\r\\n
  • \\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n     \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\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 default \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Total number of records: {{reportData.length}}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Report Number \\r\\n Report Name\\r\\n Report Year\\r\\n Country \\r\\n Post \\r\\n Program Area \\r\\n Category \\r\\n Report Type \\r\\n Distribution Type \\r\\n Due Date \\r\\n Published Date \\r\\n No. of Downloads\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{dueDate.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{publishDate.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Data not available for selected criteria\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{rowData.reportNumber}}\\r\\n {{rowData.reportName}}\\r\\n {{rowData.reportYear}}\\r\\n {{rowData.country}}\\r\\n {{rowData.post}}\\r\\n {{rowData.programArea}}\\r\\n {{rowData.reportCategory}}\\r\\n {{rowData.reportType}}\\r\\n {{rowData.distributionType}}\\r\\n {{rowData.reportDueDate|date:'longDate'}}\\r\\n {{rowData.reportPublishDate|date:'longDate'}}\\r\\n {{rowData.downloadcounts}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Total number of records: {{reportData.length}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Report Year\\r\\n Country \\r\\n Post \\r\\n Required Count\\r\\n Voluntary Count\\r\\n Total Count\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Data not available for selected criteria\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData.reportYear}}\\r\\n {{rowData.countryName}}\\r\\n {{rowData.postName}}\\r\\n {{rowData.requiredReportCount}}\\r\\n {{rowData.voluntaryReportCount}}\\r\\n {{rowData.totalReportCount}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Data not available for selected criteria\\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\";","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Report Number\\r\\n Report Name\\r\\n Report Year\\r\\n Country\\r\\n Post\\r\\n Category\\r\\n Type\\r\\n Due Date\\r\\n Submitted Date\\r\\n Submitted Variance\\r\\n Published Date\\r\\n Published Variance\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{dueDate.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{dateSubmittedToWashington.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{dueDate.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Data not available for selected criteria\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{rowData.reportNumber}}\\r\\n {{rowData.reportName}}\\r\\n {{rowData.reportYear}}\\r\\n {{rowData.country}}\\r\\n {{rowData.post}}\\r\\n {{rowData.reportCategory}}\\r\\n {{rowData.type}}\\r\\n {{rowData.reportDueDate|date:'longDate'}}\\r\\n {{rowData.dateSubmittedToWashington|date:'longDate'}}\\r\\n {{rowData.submittedDateVariance}}\\r\\n {{rowData.publishedDate|date:'longDate'}}\\r\\n {{rowData.publishDateVariance}}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\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 default \"
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\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 default \"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\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 default \"\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Last, First Name \\r\\n Email Address \\r\\n Status \\r\\n User Type \\r\\n Role(s) \\r\\n Action \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{user.lastName}}, {{user.firstName}}\\r\\n {{user.emailAddress}}\\r\\n {{user.userStatus.statusName}}\\r\\n {{user.userType.typeName}}\\r\\n \\r\\n
    \\r\\n
  • \\r\\n {{role.roleName}}\\r\\n
  • \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n No Records to display here\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n User Type:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n User Role:\\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 default \"\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\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 default \"\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n1.\\tAre all the SharePoint reports in GAIN?
\\r\\nYes. There are few exceptions that we will load soon.\\r\\n\\r\\n

\\r\\n\\r\\n2.\\tAre the most recent GAIN Reports available to view?
\\r\\nYes.\\r\\n\\r\\n

\\r\\n\\r\\n3.\\tWhen will the most recent GAIN reports be available to view?
\\r\\nThe most recent reports will be available to view now.\\r\\n\\r\\n

\\r\\n\\r\\n4.\\tWill I be able to view Legacy reports prior to 2009 in GAIN?
\\r\\nYes. The Legacy report that will be migrated to GAIN soon. This means you will no longer have to search the old Legacy application when looking for a report.\\r\\nUntil they are fully imported into the new GAIN system, please search for reports released before July 2, 2009 by\\r\\n \\r\\n clicking here.\\r\\n\\r\\n

\\r\\n\\r\\n5.\\tCan I access GAIN from the Public website?
\\r\\nYes. If you select the GAIN icon on https://www.fas.usda.gov/, you will be directed to the GAIN application.\\r\\n\\r\\n

\\r\\n\\r\\n6.\\tI am a Post User, and I did not receive an email?
\\r\\nIf you are a Post User and you did not receive an email we ask that you check the following locations:\\r\\n•\\tSpam/Junk email\\r\\n•\\tIf you have a State.gov email Please check your USDA.gov email\\r\\nIf you still do not see your system generated email please contact 1-GAINAppSupport@usda.gov, for assistance.\\r\\n\\r\\n

\\r\\n\\r\\n7.\\tI have several reports bookmarked, will I need to update my bookmarks?
\\r\\nNo. Existing bookmarks for GAIN reports will continue to function.\\r\\n\\r\\n

\\r\\n\\r\\n8.\\tI am receiving an error when creating or submitting reports?
\\r\\nIf you are receiving any kind of error when creating or submitting reports please contact 1-GAINAppSupport@usda.gov, for assistance.\\r\\n\\r\\n

\\r\\n\\r\\n9.\\tI am a Post User and new to GAIN, is there a reference manual or someone I can speak to when I have questions?
\\r\\nYes. Located on the Home page you will find the “Help” link, a reference manual is available. If you continue to have questions please contact 1-GAINAppSupport@usda.gov, for assistance.\\r\\n\\r\\n
\\r\\n\";","export default \"\\r\\n\\r\\n
\\r\\n\\r\\nIf you have any questions about the new GAIN interface, please contact:\\r\\n1-GAINAppSupport@usda.gov.\\r\\nYour question will be addressed promptly.\\r\\n\\r\\n
\\r\\n \\r\\n

\\r\\n\\r\\nThe subject directory provides a list of topics related to international agriculture and trade and the experts, inside and outside FAS, who can provide information on them.\\r\\nSite Map\\r\\n

\\r\\n\\r\\nFind out how we handle information about your visit to our Web site.\\r\\n
\\r\\n
  • \\r\\n Privacy/Security Notice
  • \\r\\n

    \\r\\n Read the current FAS policy, which includes information about how to file a complaint of discrimination. Contact the FAS Office of Civil Rights for more information.\\r\\n\\r\\n
    \\r\\n
  • \\r\\n USDA Nondiscrimination Statement
  • \\r\\n

    \\r\\n Read the current FAS policy statement.\\r\\n\\r\\n
    \\r\\n
  • \\r\\n Equal Employment Opportunity Policy Statement
  • \\r\\n
    \\r\\n\\r\\n
  • \\r\\n \\r\\n \\r\\n Click Here for Post Reference Manual\\r\\n
    \\r\\n
  • \\r\\n\\r\\n
  • \\r\\n \\r\\n \\r\\n Click Here for Power User Reference Manual\\r\\n
    \\r\\n
  • \\r\\n\\r\\n
  • \\r\\n \\r\\n \\r\\n Click Here for Admin Reference Manual\\r\\n
  • \\r\\n\\r\\n
  • \\r\\n \\r\\n \\r\\n Click Here for Video Tutorials\\r\\n
  • \\r\\n\\r\\n
  • \\r\\n \\r\\n Click Here for Latest Release Updates\\r\\n \\r\\n
  • \\r\\n\\r\\n\\r\\n
    \\r\\n\";","export default \"

    \\r\\n alerts works!\\r\\n

    \\r\\n\";","export default \"

    \\r\\n annoucments works!\\r\\n

    \\r\\n\";","export default \"

    \\r\\n dashboard works!\\r\\n

    \\r\\n\";","export default \"\\r\\n\\r\\n
      \\r\\n
    • \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    • \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
        \\r\\n

        Recent and Upcoming 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

      Visualize GAIN Reporting by Country

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      To visualize another country,\\r\\n select from the 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 \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
    • \\r\\n
      \\r\\n

      Get reports, news and more delivered straight to your inbox

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
    \";","export default \"
    \\r\\n

    GAIN consists of reports compiled by FAS Foreign Service Officers and staff around the world.\\r\\n They provide agricultural market intelligence, insight and analysis of interest to exporters of U.S.\\r\\n agriculture. FAS currently generates more than 3,000 reports a year, dating back to 1995.

    \\r\\n Click here to view schedule for required reporting.\\r\\n
    \\r\\n
    \\r\\n

    Search GAIN Reports

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

    Filter Search Results by ...

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

    If you have any questions about GAIN or wish to report unavailable reports, please contact 1-GAINAppSupport@usda.gov.

    \\r\\n
    \";","export default \"\\r\\n\";","export default \"\\r\\n\\r\\n
      \\r\\n
    • \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    • \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
        \\r\\n

        {{releaseScheduleTitle}}

        \\r\\n \\r\\n
        \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    • \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      Visualize GAIN Reporting by Country

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      To visualize another country,\\r\\n select from the 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 \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
    • \\r\\n
      \\r\\n

      Get reports, news and more delivered straight to your inbox

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n

    % of FASʼs Total GAIN Reporting

    \\r\\n
    \\r\\n
    \\r\\n  \\r\\n \\r\\n {{occupiedRatio}}%\\r\\n Less than 1%\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{countryReportCount}} reports published so far this year\\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n

    Offices in {{selectedCountry?.locationName}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{report.reportDueDate | date:'MMM' }}
    \\r\\n
    {{report.reportDueDate | date:'dd' }}
    \\r\\n
    \\r\\n
    \\r\\n
    {{report.countryName == '' ? 'Country Name' : report.countryName}} \\r\\n | {{report.postName == '' ? 'Post Name' : report.postName}} - {{report.reportName}}
    \\r\\n
    \";","export default \"
    \\r\\n
    {{today | date:mediumDate}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    Published at: {{report.publishedOn | date:'mediumTime'}}
    \\r\\n
    {{report.countryName == '' ? 'Country Name' : report.countryName}} \\r\\n | {{report.postName == '' ? 'Post Name' : report.postName}} - {{report.reportName}}
    \\r\\n
    Schedule to publish today
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Reports have been published
    \\r\\n
    \\r\\n
    \\r\\n
    This page will refresh when new reports are released in:\\r\\n {{refreshTime | date:'H'}} Hours {{refreshTime | date:'mm'}} Minutes {{refreshTime | date:'ss'}}\\r\\n Seconds.\\r\\n Click the icon on the left to manually refresh the page.
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n There are no GAIN reports scheduled for release today. Previous reports are available from our Publication section.\\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n

    Top 5 Report Categories

    \\r\\n
    0 categories published so far this year
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\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 add your location to setup the profile.
    \\r\\n
    \\r\\n

    \\r\\n HQ Location\\r\\n

    \\r\\n \\r\\n \\r\\n \\r\\n Program Area\\r\\n Division\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ location?.programArea }} \\r\\n {{ location?.division }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n HQ Categories\\r\\n

    \\r\\n
    ** You can find below Category reports under \\\"Interest Report\\\" tab **
    \\r\\n \\r\\n \\r\\n \\r\\n Categories \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ userCategory?.categoryName }} \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Program Area \\r\\n Division \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Categories \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\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 default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
      \\r\\n
    1. \\r\\n Home\\r\\n
    2. \\r\\n \\r\\n
    3. \\r\\n {{ route.displayName }}\\r\\n
    4. \\r\\n
    5. {{ route.displayName }}
    6. \\r\\n
      \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ pageTitle }}\\r\\n
    \\r\\n
    \\r\\n Global Agricultural Information Network\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    FAS maintains other highly useful trade data systems linked below
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Open Data
    \\r\\n
    FAS Open Data Services
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Export Sales
    \\r\\n
    Export Sales Query System
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    GATS
    \\r\\n
    Global Agricultural Trade System
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    PSD
    \\r\\n
    Production, Supply and Distribution Online
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\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 default \"\\r\\n\";","export default \"

    \\r\\n comments works!\\r\\n

    \\r\\n\";","export default \"

    \\r\\n reportfilter works!\\r\\n

    \\r\\n\";","export default \"

    \\r\\n reportlineitem works!\\r\\n

    \\r\\n\";","export default \" \\r\\n
    \\r\\n

    Please add your location to setup the profile.

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Post Locations\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Region \\r\\n Country \\r\\n Post \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ location.region }} \\r\\n {{ location.country }} \\r\\n {{ location.post }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Country \\r\\n Post \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\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 default \"
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Report Name\\r\\n Country \\r\\n FAS Post \\r\\n Published On \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{publishedOn.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{result.fileName}}\\r\\n {{result.countryName}}\\r\\n {{result.postName}}\\r\\n \\r\\n {{result.publishedOn | date}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n No Records to display here\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n First Name:\\r\\n
    \\r\\n
    \\r\\n {{currentUser.firstName}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n Last Name:\\r\\n
    \\r\\n
    \\r\\n {{currentUser.lastName}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n User 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 \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n User Role:\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n Post User or a Washington user :\\r\\n
      \\r\\n
    • If Post user
    • \\r\\n
        \\r\\n
      • Author - Prepare Report for posts' he/she is responsible for.
      • \\r\\n
      • Approver - Prepare and/or Approve and send to Washington or Reject reports \\r\\n for the posts' he/she is responsible for.
      • \\r\\n
      \\r\\n
    • If Washington/HQ user
    • \\r\\n
        \\r\\n
      • SME or Powser user
      • \\r\\n
          \\r\\n
        • SME - If you just want to read the reports.
        • \\r\\n
        • Power user - You can read / review reports, approve or reject or put the report on hold.
        • \\r\\n
        \\r\\n
      \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n


    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    • Post user
    • \\r\\n
        \\r\\n
      • Author - Prepare Report for posts' he/she is responsible for.
      • \\r\\n
      • Approver - Prepare and/or Approve and send to Washington or Reject reports \\r\\n for the posts' he/she is responsible for.
      • \\r\\n
      \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n


    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    Admin role is for Report officer, Are you sure you want to select User role as a Admin?.

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    • Washington/HQ user
    • \\r\\n
        \\r\\n
      • SME or Powser user
      • \\r\\n
          \\r\\n
        • SME - If you just want to read the reports.
        • \\r\\n
        • Power user - You can read / review reports, approve or reject or put the report on hold.
        • \\r\\n
        \\r\\n
      \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    First Name:
    \\r\\n
    {{currentUser.firstName}}
    \\r\\n
    \\r\\n
    \\r\\n
    Last Name:
    \\r\\n
    {{currentUser.lastName}}
    \\r\\n
    \\r\\n
    \\r\\n
    Email Address:
    \\r\\n
    {{currentUser.emailAddress}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    You have successfully registered in the GAIN system. An email has been sent with status of your account activation. Make sure to update user profile once your account is Activated.

    \\r\\n

    For Post Users: If the registration email does not appear in your FAS email account within 15 minutes, please check your state.gov email account. \\r\\n If you do not receive the email in either of these emails accounts, please contact FAS.1-Gain App Support\\r\\n

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    First Name:
    \\r\\n
    {{currentUser.firstName}}
    \\r\\n
    \\r\\n
    \\r\\n
    Last Name:
    \\r\\n
    {{currentUser.lastName}}
    \\r\\n
    \\r\\n
    \\r\\n
    Email Address:
    \\r\\n
    {{currentUser.emailAddress}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Your account has been Deactivated. Please contact the adminstrator for further details.

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n\";","export default \"\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    Deployed on {{ rn.deploymentDate|date:'EEEE, LLLL d, yyyy @hh:mm aaa' }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"

    \\r\\n reportassignment works!\\r\\n

    \\r\\n\";","export default \"
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
      \\r\\n
    • {{file.name}} - {{file.size}} bytes
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Attachment\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{reportAttachment?.attachmentName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n No Records to display here\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n This feature is not available at the moment because the report is opened in word for edit.\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\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 default \"
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Action Performed\\r\\n Processed By\\r\\n Processed Date\\r\\n Comments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{reportAuditRecord.reportActionName}}\\r\\n {{reportAuditRecord.processedBy}}\\r\\n {{reportAuditRecord.processedDateTime |date:'medium'}}\\r\\n {{reportAuditRecord.userComments}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n No Records to display here\\r\\n
    \\r\\n
    \";","export default \"\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n Category \\r\\n Frequency Type\\r\\n Report Name\\r\\n Country \\r\\n FAS Post \\r\\n Program Area \\r\\n Distribution \\r\\n Status \\r\\n Due Date \\r\\n Status Updated 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 {{dueDate.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{lastUpdatedDatetime.value | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{reportSchedule.category}}\\r\\n {{reportSchedule.reportName}}\\r\\n {{reportSchedule.country}}\\r\\n {{reportSchedule.fasPost}}\\r\\n {{reportSchedule.programArea}}\\r\\n {{reportSchedule.distribution}}\\r\\n 9 && reportSchedule.reportStateId < 13\\\" style=\\\"color: red;\\\">⚠ {{reportSchedule.reportState }}\\r\\n 12\\\">{{reportSchedule.reportState }}\\r\\n {{(reportSchedule.dueDate !== '0001-01-01T00:00:00')?(reportSchedule.dueDate|date:'MMMM dd, yyyy' ):\\\"\\\" }}\\r\\n {{(reportSchedule.lastUpdatedDatetime !== '0001-01-01T00:00:00')?(reportSchedule.lastUpdatedDatetime|date:'MMMM dd, yyyy' ):\\\"\\\" }}\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n No Records to display here\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\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 ensure that this document is classified correctly.
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    Report is Published. Please refresh the page.
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n   \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\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 default \"
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.reportNumber}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.reportName}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.dueDate | date:'MMMM dd, yyyy'}}
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.region}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.country}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.fasPost}}
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.reportType}}
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.category}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportMetadata?.reportState}}
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\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 feature is not available at the moment because the report is opened in word for edit.\\r\\n
    \\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n Report Name is required\\r\\n \\r\\n \\r\\n Report Name does not allow special charecters except [ ' - _]\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    * \\\"Undesignated\\\" indicates no FAS coverage.
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n {{voluntaryMetadataForm.controls['reportDate'].value | date:'MMMM dd, yyyy'}} \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n Distribution Type 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
    5\\\">
    * Please limit your selections to 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 This feature is not available at the moment because the report is opened in word for edit.\\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n\\r\\n\";","export default \"\\r\\n\\r\\n

    \\r\\nGAIN Reporting Instructions \\r\\n

    \\r\\nGAIN is on electronic system that allows FAS Post staff to capture, analyze, ond disseminate world agricultural trade information to USDA FAS users, other U.S. Government agencies, U.S. exporters ond commodity analysts. It also provides information on policies ond market demand that affects the soles of U.S. agricultural products worldwide.\\r\\n

    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
      \\r\\n
    • {{file.name}} - {{file.size}} bytes
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n

    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Category\\r\\n Required Reports\\r\\n Voluntary Reports\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowNode.node.label}}\\r\\n \\r\\n {{rowNode.node.isRequired}}\\r\\n {{rowNode.node.isVoluntary}}\\r\\n \\r\\n \\r\\n \\r\\n

    \\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\\r\\n Required Reports\\r\\n Voluntary Reports\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowNode.node.location}}\\r\\n \\r\\n {{rowNode.node.isRequired}}\\r\\n {{rowNode.node.isVoluntary}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n
    \\r\\n
    \\r\\n Report Schedule For Year:\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n Program Area:\\r\\n
    \\r\\n
    \\r\\n {{programArea.locationName}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n  \\r\\n  \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Category \\r\\n Frequency Type \\r\\n \\r\\n \\r\\n Country \\r\\n FAS Post \\r\\n Distribution \\r\\n Due Date \\r\\n Proposed 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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n \\r\\n \\r\\n \\r\\n No Schedules Available\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

    {{reportSchedule.categoryName}}

    \\r\\n

    {{reportSchedule.frequencyTypeName}}

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

    {{reportSchedule.parentPostLocation}}

    \\r\\n

    {{reportSchedule.postLocation}}

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

    {{reportSchedule.distribution}}

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

    {{reportSchedule.reportDueDate | date:'MMM dd, yyyy'}}

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

    {{reportSchedule.proposedDueDate | date:'MMM dd, yyyy'}}

    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.categoryName}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.frequencyTypeName}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.reportName }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.programAreaName}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.parentPostLocation}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.postLocation }}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    {{reportSchedule.distribution}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    {{reportSchedule.distribution}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.reportDueDate | date:'longDate'}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{reportSchedule.reportDueDate | date:'longDate'}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Category\\r\\n Program Area\\r\\n Frequency Type\\r\\n \\r\\n Country\\r\\n FAS Post \\r\\n Distribution\\r\\n Due Date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{reportSchedule.ProgramAreaName}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Category\\r\\n Program Area\\r\\n Frequency Type\\r\\n \\r\\n Country\\r\\n FAS Post \\r\\n Distribution\\r\\n Due Date\\r\\n Proposed Due Date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n No Schedules Available to Release\\r\\n \\r\\n \\r\\n \\r\\n {{reportSchedule.categoryName}}\\r\\n {{reportSchedule.programAreaName}}\\r\\n {{reportSchedule.reportName}}\\r\\n \\r\\n {{reportSchedule.parentPostLocation}}\\r\\n {{reportSchedule.postLocation}}\\r\\n {{reportSchedule.distribution}}\\r\\n {{reportSchedule.reportDueDate | date:'MMMM dd, yyyy'}}\\r\\n {{reportSchedule.proposedDueDate | date:'MMMM dd, yyyy'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n {{col.header}}\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n No Schedules Available\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{rowData[col.field]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\";","export default \"\\r\\n

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

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\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
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    * \\\"Undesignated\\\" indicates no FAS coverage.
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\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 default \"
    \\r\\n
    \\r\\n
    \\r\\n
    0\\\">** These reports have not been released to the public
    \\r\\n
    \\r\\n
    0\\\">Hide Highlights
    \\r\\n
    {{dt ? dt._totalRecords : searchResults.length}} results found.
    \\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 Internal {{result.reportName}} | {{result.reportNumber}}\\r\\n {{result.postName}} | {{result.countryName}}\\r\\n
    \\r\\n
    \\r\\n Published On: {{result.publishDate | date:'MMMM dd, yyyy' }}\\r\\n
    \\r\\n
    \\r\\n Approved And Sent To Washington On: {{result.approvedSentToWashingtonDate| date:'MMMM dd, yyyy'}}\\r\\n
    \\r\\n
    {{result?.reportHighlights}}
    \\r\\n
    \\r\\n {{result.fileName}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n View in Word Format \\r\\n
    \\r\\n
    \\r\\n
    ! Report is under correction
    \\r\\n
    \\r\\n
    1\\\">\\r\\n View previous versions \\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 default \"
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Report Name\\r\\n Publish Date\\r\\n Version Number\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{reports.fileName}}\\r\\n {{reports.publishedOn | date: 'MM/dd/yyyy'}}\\r\\n {{reports.reportVersion}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n No Records to display here\\r\\n
    \\r\\n
    \";","export default \"\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n First Name:\\r\\n
    \\r\\n
    \\r\\n {{currentUser.firstName}}\\r\\n
    \\r\\n
    \\r\\n Last Name:\\r\\n
    \\r\\n
    \\r\\n {{currentUser.lastName}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Email:\\r\\n
    \\r\\n
    \\r\\n {{currentUser.emailAddress}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n User Type:\\r\\n
    \\r\\n
    \\r\\n {{currentUser.userType.typeName}} \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Post 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
    \\r\\n \\r\\n \";"]}