{"version":3,"file":"main-es2018.js","mappings":"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","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/admin/admin-routing.module.ts","./src/app/admin/admin.component.ts","./src/app/admin/admin.module.ts","./src/app/admin/lookup-management/country/country-detail/country-detail.component.ts","./src/app/admin/lookup-management/country/country.component.ts","./src/app/admin/lookup-management/division/division-detail/division-detail.component.ts","./src/app/admin/lookup-management/division/division.component.ts","./src/app/admin/lookup-management/lookup-management.component.ts","./src/app/admin/lookup-management/post/post-detail/post-detail.component.ts","./src/app/admin/lookup-management/post/post.component.ts","./src/app/admin/lookup-management/programarea/programarea-detail/programarea-detail.component.ts","./src/app/admin/lookup-management/programarea/programarea.component.ts","./src/app/admin/lookup-management/reportcategory/reportcategory-detail/reportcategory-detail.component.ts","./src/app/admin/lookup-management/reportcategory/reportcategory.component.ts","./src/app/admin/report-management/report-management.component.ts","./src/app/admin/report-management/reports/reports.component.ts","./src/app/admin/report-management/rptmetadata/rptmetadata.component.ts","./src/app/admin/report-management/rptstatusmgmt/rptstatusmgmt.component.ts","./src/app/admin/report-management/view-attachment/view-attachment.component.ts","./src/app/admin/report-management/view-history/view-history.component.ts","./src/app/admin/reports-dashboard/custom-reports/custom-reports.component.ts","./src/app/admin/reports-dashboard/custom-reports/report-download-counts/report-download-counts.component.ts","./src/app/admin/reports-dashboard/custom-reports/report-submitted-by-post/report-submitted-by-post.component.ts","./src/app/admin/reports-dashboard/custom-reports/report-variance-due-date/report-variance-due-date.component.ts","./src/app/admin/reports-dashboard/dashboard/dashboard.component.ts","./src/app/admin/reports-dashboard/dashboard/report-count-by-type-card/report-count-by-type-card.component.ts","./src/app/admin/reports-dashboard/dashboard/report-counts-five-year-card/report-counts-five-year-card.component.ts","./src/app/admin/reports-dashboard/dashboard/reports-count-by-status-card/reports-count-by-status-card.component.ts","./src/app/admin/reports-dashboard/dashboard/reports-total-count-card/reports-total-count-card.component.ts","./src/app/admin/reports-dashboard/reports-dashboard.component.ts","./src/app/admin/user-management/user-management.component.ts","./src/app/admin/user-management/users-list/users-list.component.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/directive/can-access.directive.ts","./src/app/faq/faq.component.ts","./src/app/help/help.component.ts","./src/app/home/alerts/alerts.component.ts","./src/app/home/annoucments/annoucments.component.ts","./src/app/home/dashboard/dashboard.component.ts","./src/app/home/externaluserhome/externaluserhome.component.ts","./src/app/home/home-search/home-search.component.ts","./src/app/home/home.component.ts","./src/app/home/internaluserhome/internaluserhome.component.ts","./src/app/home/percentage-report-by-country/percentage-report-by-country.component.ts","./src/app/home/post-by-country/post-by-country.component.ts","./src/app/home/release-schedule/release-schedule.component.ts","./src/app/home/today-report/today-report.component.ts","./src/app/home/top-five-report-categories/top-five-report-categories.component.ts","./src/app/hq-user/hq-user.component.ts","./src/app/layout/breadcrumbs/breadcrumbs.component.ts","./src/app/layout/contentarea/contentarea.component.ts","./src/app/layout/footer/footer.component.ts","./src/app/layout/header/header.component.ts","./src/app/layout/navbar/navbar.component.ts","./src/app/models/analytics.model.ts","./src/app/models/report.model.ts","./src/app/models/search.model.ts","./src/app/models/user.model.ts","./src/app/myreports/comments/comments.component.ts","./src/app/myreports/reportfilter/reportfilter.component.ts","./src/app/myreports/reportlineitem/reportlineitem.component.ts","./src/app/post-user/post-user.component.ts","./src/app/quick-links/quick-links.component.ts","./src/app/registration/registration.component.ts","./src/app/release-note/release-note.component.ts","./src/app/reportassignment/reportassignment/reportassignment.component.ts","./src/app/reportdashboard/reportattachments/reportattachments.component.ts","./src/app/reportdashboard/reportdashboard.component.ts","./src/app/reportdashboard/reporthistory/reporthistory.component.ts","./src/app/reportdashboard/reportlisting/reportlisting.component.ts","./src/app/reportdashboard/reportworkflow/reportworkflow.component.ts","./src/app/reportdashboard/requiredrptmetadata/requiredrptmetadata.component.ts","./src/app/reportdashboard/voluntaryrptmetadata/voluntaryrptmetadata.component.ts","./src/app/reportinginstructions/fileupload/fileupload.component.ts","./src/app/reportinginstructions/reportinginstructions/reportinginstructions.component.ts","./src/app/reports/reports.component.ts","./src/app/reportschedule/reportschedule.component.ts","./src/app/requiredreportschedule/requiredreportschedule.component.ts","./src/app/search/search.component.ts","./src/app/search/searchresults/searchresults.component.ts","./src/app/search/version-history/version-history.component.ts","./src/app/services/analytics.service.ts","./src/app/services/appInitialization/authToken.service.ts","./src/app/services/appInitialization/authUser.service.ts","./src/app/services/appInitialization/token.Interceptor.ts","./src/app/services/guards/has-locations-guard.ts","./src/app/services/http-status-notifier.service.ts","./src/app/services/lookups/lookup.service.ts","./src/app/services/lookups/lookupadmin.service.ts","./src/app/services/permissions.service.ts","./src/app/services/registration.service.ts","./src/app/services/report.service.ts","./src/app/services/reportdashboard.service.ts","./src/app/services/reportinstructions.service.ts","./src/app/services/reportschedule.service.ts","./src/app/services/requiredreportschedule.service.ts","./src/app/services/resolvers/reportMetadata.resolver.ts","./src/app/services/search.service.ts","./src/app/services/searchData.ts","./src/app/user-profile/user-profile.component.ts","./src/environments/environment.ts","./src/main.ts","./src/app/admin/admin.component.html","./src/app/admin/lookup-management/country/country-detail/country-detail.component.html","./src/app/admin/lookup-management/country/country.component.html","./src/app/admin/lookup-management/division/division-detail/division-detail.component.html","./src/app/admin/lookup-management/division/division.component.html","./src/app/admin/lookup-management/lookup-management.component.html","./src/app/admin/lookup-management/post/post-detail/post-detail.component.html","./src/app/admin/lookup-management/post/post.component.html","./src/app/admin/lookup-management/programarea/programarea-detail/programarea-detail.component.html","./src/app/admin/lookup-management/programarea/programarea.component.html","./src/app/admin/lookup-management/reportcategory/reportcategory-detail/reportcategory-detail.component.html","./src/app/admin/lookup-management/reportcategory/reportcategory.component.html","./src/app/admin/report-management/report-management.component.html","./src/app/admin/report-management/reports/reports.component.html","./src/app/admin/report-management/rptmetadata/rptmetadata.component.html","./src/app/admin/report-management/rptstatusmgmt/rptstatusmgmt.component.html","./src/app/admin/report-management/view-attachment/view-attachment.component.html","./src/app/admin/report-management/view-history/view-history.component.html","./src/app/admin/reports-dashboard/custom-reports/custom-reports.component.html","./src/app/admin/reports-dashboard/custom-reports/report-download-counts/report-download-counts.component.html","./src/app/admin/reports-dashboard/custom-reports/report-submitted-by-post/report-submitted-by-post.component.html","./src/app/admin/reports-dashboard/custom-reports/report-variance-due-date/report-variance-due-date.component.html","./src/app/admin/reports-dashboard/dashboard/dashboard.component.html","./src/app/admin/reports-dashboard/dashboard/report-count-by-type-card/report-count-by-type-card.component.html","./src/app/admin/reports-dashboard/dashboard/report-counts-five-year-card/report-counts-five-year-card.component.html","./src/app/admin/reports-dashboard/dashboard/reports-count-by-status-card/reports-count-by-status-card.component.html","./src/app/admin/reports-dashboard/dashboard/reports-total-count-card/reports-total-count-card.component.html","./src/app/admin/reports-dashboard/reports-dashboard.component.html","./src/app/admin/user-management/user-management.component.html","./src/app/admin/user-management/users-list/users-list.component.html","./src/app/app.component.html","./src/app/faq/faq.component.html","./src/app/help/help.component.html","./src/app/home/alerts/alerts.component.html","./src/app/home/annoucments/annoucments.component.html","./src/app/home/dashboard/dashboard.component.html","./src/app/home/externaluserhome/externaluserhome.component.html","./src/app/home/home-search/home-search.component.html","./src/app/home/home.component.html","./src/app/home/internaluserhome/internaluserhome.component.html","./src/app/home/percentage-report-by-country/percentage-report-by-country.component.html","./src/app/home/post-by-country/post-by-country.component.html","./src/app/home/release-schedule/release-schedule.component.html","./src/app/home/today-report/today-report.component.html","./src/app/home/top-five-report-categories/top-five-report-categories.component.html","./src/app/hq-user/hq-user.component.html","./src/app/layout/breadcrumbs/breadcrumbs.component.html","./src/app/layout/contentarea/contentarea.component.html","./src/app/layout/footer/footer.component.html","./src/app/layout/header/header.component.html","./src/app/layout/navbar/navbar.component.html","./src/app/myreports/comments/comments.component.html","./src/app/myreports/reportfilter/reportfilter.component.html","./src/app/myreports/reportlineitem/reportlineitem.component.html","./src/app/post-user/post-user.component.html","./src/app/quick-links/quick-links.component.html","./src/app/registration/registration.component.html","./src/app/release-note/release-note.component.html","./src/app/reportassignment/reportassignment/reportassignment.component.html","./src/app/reportdashboard/reportattachments/reportattachments.component.html","./src/app/reportdashboard/reportdashboard.component.html","./src/app/reportdashboard/reporthistory/reporthistory.component.html","./src/app/reportdashboard/reportlisting/reportlisting.component.html","./src/app/reportdashboard/reportworkflow/reportworkflow.component.html","./src/app/reportdashboard/requiredrptmetadata/requiredrptmetadata.component.html","./src/app/reportdashboard/voluntaryrptmetadata/voluntaryrptmetadata.component.html","./src/app/reportinginstructions/fileupload/fileupload.component.html","./src/app/reportinginstructions/reportinginstructions/reportinginstructions.component.html","./src/app/reports/reports.component.html","./src/app/reportschedule/reportschedule.component.html","./src/app/requiredreportschedule/requiredreportschedule.component.html","./src/app/search/search.component.html","./src/app/search/searchresults/searchresults.component.html","./src/app/search/version-history/version-history.component.html","./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 \";"],"names":["Component","ReportdashboardService","NotifierService","trigger","state","style","transition","animate","finalize","ViewAttachmentComponent","constructor","reportDashboardService","notifier","ngOnInit","reportAttachmentList","ShowAttachmentsDialog","reportMetadataId","reportState","loading","getReportAttachments$","pipe","subscribe","data","checkForLock","isLocked","onUpload","event","form","formData","FormData","file","files","length","filter","x","attachmentName","name","clearFiles","notify","append","uploadAttachments$","resp","error","console","log","uploadAttachmentList","clear","openAttachment","Id","fileName","fileType","split","toString","openAttachment$","content","fileURL","URL","createObjectURL","anchor","document","createElement","download","href","click","deleteAttachment","reportAttachment","deleteAttachment$","id","ok","splice","indexOf","selector","template","animations","transform","opacity","AuthUserService","NgxSpinnerService","Router","NavigationEnd","HttpStatusNotifierService","LocalStorage","ConfirmationService","environment","AppComponent","router","localStorage","authUserService","spinner","httpStatus","displayUserNotification","setUpAnalytics","_user","AuthUser","undefined","userStatus","navigate","userType","typeName","userLocations","getHttpStatus","status","show","hide","getItem","toPromise","then","notification","showNotification","removeItem","type","message","GAId","events","gtag","page_path","urlAfterRedirects","providers","EventEmitter","Input","Output","ReportsForToday","ReportService","TodayReportComponent","reportService","today","Date","publishTime","refreshTime","setHours","parseInt","reportPublishTime","setMinutes","setSeconds","getHours","checkDST","getTimezoneOffset","getMinutes","getSeconds","noPublish","postPublish","pastPublish","todayReportData","publishedOn","_a","setTimer","ngOnChanges","changes","emptyItem","reportName","push","Promise","f","setTimeout","refresh","emit","refreshPage","viewReport","reportId","previewPDF$","window","open","january","getFullYear","july","Math","max","ReportattachmentsComponent","ReportingInstructionsService","ReportingInstructionsComponent","reportingstructionsService","GetReportingInstructionsAll","createFolderDialog","nodeId","createFolder","newFolderParentId","cancelFolderButton","uploadDocumentDialog","uploadFile","newDocumentParentId","updateDocumentDialog","parentId","uploadDocId","uploadDocParentId","updateDocument","fileContent","updateDocuments","contentType","contentLength","size","reader","FileReader","onload","arrayBuffer","result","array","Uint8Array","byteArray","i","byteLength","readAsArrayBuffer","onloadend","uploadDocument","uploadDocuments","addReportingInstructions","deleteDocument","fileNodeId","addFolderButton","folderName","addFolder","cancelDocumentUploadButton","getReportingInstructionsByType","nodeRoot","fileTree","label","children","getChildrenNodes","leaf","expanded","selectable","parentNodeId","reportNode","getReportingInstructionsByParentId","reportTreeNode","fileNode","icon","styleClass","documentSelect","loadDocumentId","documentName","downloadDocument$","deleteFolder","ViewChild","LookupService","FormBuilder","SearchFilter","SearchService","SearchresultsComponent","take","SearchDataService","ActivatedRoute","SearchComponent","lookupService","fb","searchService","route","searchDataService","searchForm","group","dateRange","country","post","reporthighlights","correctedReport","reportnumber","reportname","fromDate","toDate","blockDate","category","LoadAdvanceFilterOptions","queryParams","params","searchCategory","searchCountry","searchPost","LoadBlockDateOptions","LoadAllPosts","all","LoadReportCategoryHierarchy","LoadAllCountries","checkSearch","redirectSearch","getSearch","searchParams","keyword","dataVals","forEach","val","checkNodes","reportCategories","patchValue","search","resetSearchData","categoryData","selectedCategories","selectedNodes","numChildren","numSelected","child","includes","partialSelected","searchFilter","controls","value","currentDate","setDate","getDate","countryIds","postNames","TraverseChildNodes","categoryIds","reportHighlights","reportNumber","getSearchResults$","searchResults","body","searchResultsComponent","resetPageIndex","yearStart","getElementById","checked","scrollIntoView","behavior","block","inline","element","resolve","getReportCategoryHierarchy$","Array","of","sort","a","b","getAllPosts$","postList","posts","map","v","locationName","getAllCountries$","countryList","countries","blockDatesOptions","blockDatesOptionsForInternal","onReset","ddlBlockDateOnClick","calendarOnFocus","args","Injectable","HttpClient","AuthTokenService","http","swapToken","tempToken","tokenEndPoint","tokenEndpoint","_authToken","access_token","expires_in","token_type","_promiseDone","_promise","setItem","catch","err","AuthToken","token","TempStr","_tempStr","NgxRolesService","NgxPermissionsService","tap","rolesService","permissionsService","getAuthUser","userEndPoint","apiEndpoint","get","d","_location","addPermission","statusName","addRole","userRoles","roleName","updateAuthUser","user","TokenInterceptor","authtokenService","userService","httpStatusNotifier","intercept","request","next","clone","withCredentials","setHeaders","Authorization","setHttpStatus","handle","unauthorizedHandler","location","reload"],"sourceRoot":"webpack:///"}