{"version":3,"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions: {}|namespace object","webpack:///src/app/app.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.material.module.ts","webpack:///src/app/app.module.ts","webpack:///src/app/bing-map/bing-map.component.ts","webpack:///src/app/bing-map/bing-map.component.html","webpack:///src/app/certification/certification.component.html","webpack:///src/app/certification/certification.component.ts","webpack:///src/app/coachpoolapplication/coachpoolapplication.component.ts","webpack:///src/app/coachpoolapplication/coachpoolapplication.component.html","webpack:///src/app/covid/covid.component.html","webpack:///src/app/covid/covid.component.ts","webpack:///src/app/double-row-paginator/double-row-paginator.component.html","webpack:///src/app/double-row-paginator/double-row-paginator.component.ts","webpack:///src/app/exit-survey/exit-survey-app.component.html","webpack:///src/app/exit-survey/exit-survey-app.component.ts","webpack:///src/app/home/home.component.ts","webpack:///src/app/home/home.component.html","webpack:///src/app/incounty/incounty.component.ts","webpack:///src/app/incounty/incounty.component.html","webpack:///src/app/login/login.component.html","webpack:///src/app/login/login.component.ts","webpack:///src/app/payroll/payroll.component.html","webpack:///src/app/payroll/payroll.component.ts","webpack:///src/app/portal-config-table/portal-config-table.component.html","webpack:///src/app/portal-config-table/portal-config-table.component.ts","webpack:///src/app/selectbox/selectbox.component.html","webpack:///src/app/selectbox/selectbox.component.ts","webpack:///src/app/site-maintinance/site-maintinance.component.ts","webpack:///src/app/site-maintinance/site-maintinance.component.html","webpack:///src/app/summer-app/summer-app.component.html","webpack:///src/app/summer-app/summer-app.component.ts","webpack:///src/app/summer-app/ui/schoolseditor/schoolseditor.component.ts","webpack:///src/app/summer-app/ui/schoolseditor/schoolseditor.component.html","webpack:///src/app/transcripts/transcripts.component.html","webpack:///src/app/transcripts/transcripts.component.ts","webpack:///src/app/ui/calendar/calendar.component.html","webpack:///src/app/ui/calendar/calendar.component.ts","webpack:///src/app/ui/navmenu/navmenu.component.html","webpack:///src/app/ui/navmenu/navmenu.component.ts","webpack:///src/app/userinfo/userinfo.component.html","webpack:///src/app/userinfo/userinfo.component.ts","webpack:///src/app/workdaycalendarviewer/workdaycalendarviewer.component.html","webpack:///src/app/workdaycalendarviewer/workdaycalendarviewer.component.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///src/models/exitsurvey.ts","webpack:///src/models/summerschool.ts","webpack:///src/pipes/dayofweek.pipe.ts","webpack:///src/pipes/electionmethod.pipe.ts","webpack:///src/pipes/fileSize.pipe.ts","webpack:///src/pipes/roletext.pipe.ts","webpack:///src/pipes/safehtml.pipe.ts","webpack:///src/pipes/schoolyear.pipe.ts","webpack:///src/pipes/titlecase.pipe.ts","webpack:///src/pipes/yesno.pipe.ts","webpack:///src/routes/app-routing.module.ts","webpack:///src/routes/routes.guard.ts","webpack:///src/services/application/application.service.ts","webpack:///src/services/authentication/auth.service.ts","webpack:///src/services/certification/certification.service.ts","webpack:///src/services/config/config.service.ts","webpack:///src/services/covid/covid.service.ts","webpack:///src/services/dialogs/atereportoptions/atereportoptions.dialogcomponent.html","webpack:///src/services/dialogs/atereportoptions/atereportoptions.dialogcomponent.ts","webpack:///src/services/dialogs/confirmation/confirmation.dialogcomponent.html","webpack:///src/services/dialogs/confirmation/confirmation.dialogcomponent.ts","webpack:///src/services/dialogs/countdown/countdown.dialogcomponent.ts","webpack:///src/services/dialogs/countdown/countdown.dialogcomponent.html","webpack:///src/services/dialogs/dialogoptions.ts","webpack:///src/services/dialogs/dialogs.service.ts","webpack:///src/services/dialogs/exitsurveyoptions/exitsurveyoptions.dialogcomponent.html","webpack:///src/services/dialogs/exitsurveyoptions/exitsurveyoptions.dialogcomponent.ts","webpack:///src/services/dialogs/inputbox/inputbox.dialogcomponent.html","webpack:///src/services/dialogs/inputbox/inputbox.dialogcomponent.ts","webpack:///src/services/dialogs/messagebox/messagebox.dialogcomponent.ts","webpack:///src/services/dialogs/messagebox/messagebox.dialogcomponent.html","webpack:///src/services/dialogs/notification/notification.dialogcomponent.html","webpack:///src/services/dialogs/notification/notification.dialogcomponent.ts","webpack:///src/services/dialogs/optionbox/optionbox.dialogcomponent.html","webpack:///src/services/dialogs/optionbox/optionbox.dialogcomponent.ts","webpack:///src/services/dialogs/reportoptions/reportoptions.dialogcomponent.html","webpack:///src/services/dialogs/reportoptions/reportoptions.dialogcomponent.ts","webpack:///src/services/dialogs/semiexclusionwizard/semiexclusionwizard.dialogcomponent.html","webpack:///src/services/dialogs/semiexclusionwizard/semiexclusionwizard.dialogcomponent.ts","webpack:///src/services/dialogs/semimonthlyreportoptions/semimonthlyreportoptions.dialogcomponent.html","webpack:///src/services/dialogs/semimonthlyreportoptions/semimonthlyreportoptions.dialogcomponent.ts","webpack:///src/services/dialogs/semimonthlywindowoptions/semimonthlywindowoptions.dialogcomponent.html","webpack:///src/services/dialogs/semimonthlywindowoptions/semimonthlywindowoptions.dialogcomponent.ts","webpack:///src/services/dialogs/semioverridewizard/semioverridewizard.dialogcomponent.html","webpack:///src/services/dialogs/semioverridewizard/semioverridewizard.dialogcomponent.ts","webpack:///src/services/dialogs/summerApplicationwindowoptions/summerApplicationwindowoptions.dialogcomponent.html","webpack:///src/services/dialogs/summerApplicationwindowoptions/summerApplicationwindowoptions.dialogcomponent.ts","webpack:///src/services/dialogs/usersearch/usersearch.dialogcomponent.html","webpack:///src/services/dialogs/usersearch/usersearch.dialogcomponent.ts","webpack:///src/services/dialogs/w2reportoptions/w2reportoptions.dialogcomponent.ts","webpack:///src/services/dialogs/w2reportoptions/w2reportoptions.dialogcomponent.html","webpack:///src/services/download/download.service.ts","webpack:///src/services/error/error.service.ts","webpack:///src/services/errormsg/errormsg.service.ts","webpack:///src/services/exitsurvey/exitsurvey.service.ts","webpack:///src/services/incounty/incounty.service.ts","webpack:///src/services/notification/notification.service.ts","webpack:///src/services/payroll/payroll.service.ts","webpack:///src/services/splash/splash.component.ts","webpack:///src/services/splash/splash.service.ts","webpack:///src/services/summerapp/summerapp.service.ts","webpack:///src/services/transcripts/transcripts.service.ts","webpack:///src/services/user/user.service.ts","webpack:///src/services/version/version.service.ts","webpack:///src/validators/date.validator.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","AuthInterceptor","injector","next","requestToForward","oidcSecurityService","undefined","get","OidcSecurityService","token","getToken","tokenValue","clone","setHeaders","Authorization","console","debug","handle","AppComponent","splashService","router","authService","userService","dialogService","MatDialog","media","errorService","_subRelease","Subject","AboutFn","About","bind","LogoutFn","Logout","self","OpenMessageBoxDialog","TitleText","MessageText","VersionLoaded","BuildTime","SummerTestWithOIDC","subscribe","result","log","navigate","OpenConfirmationDialog","OKText","CancelText","pipe","tap","confresult","SideNavOpen","authorizedCallbackWithCode","window","location","toString","event","SmallSize","authorize","authUrl","open","logoff","_routeSub","unsubscribe","_UserSubscription","_versionUpdateSub","complete","getIsAuthorized","auth","isAuthenticated","getUserData","userData","UpdateAvailable","VERSION_NUMBER","HasVersionUpdate","asObservable","status","events","takeUntil","filter","NavigationCancel","ev","CloseSplash","SnackbarError","TestConnection","isUp","url","combineLatest","UserSubject","userInfo","UserInfo","distinctUntilChanged","data","User","homeRoute","CurrentRole","toLowerCase","MenuItems","MenuText","MenuIcon","LinkedStates","ActionRoute","IsHome","Roles","IsCOVIDExposure","IsCOVIDChildCare","IsCOVIDAltWork","IsDeveloper","push","IsSummerApp","IsCoachApp","IsMenuSvg","IsIncounty","IsExitSurvey","IsCertification","IsTranscripts","IsPayroll","IsWorkdayCalendar","IsLogout","IsAbout","error","HandleServiceError","change","isActive","SizeCode","LastSizeCode","AppMaterialModule","MatButtonModule","MatCheckboxModule","MatDialogModule","MatExpansionModule","MatIconModule","MatInputModule","MatPaginatorModule","MatProgressBarModule","MatSelectModule","MatSnackBarModule","MatSortModule","MatStepperModule","MatTableModule","MatToolbarModule","MatNativeDateModule","MatSidenavModule","MatCardModule","MatRadioModule","MatTabsModule","MatGridListModule","MatDatepickerModule","MatMenuModule","AppModule","iconRegistry","sanitizer","addSvgIcon","bypassSecurityTrustResourceUrl","openIDImplicitFlowConfiguration","OpenIDImplicitFlowConfiguration","stsServer","redirect_url","client_id","response_type","scope","post_logout_redirect_uri","start_checksession","silent_renew","silent_renew_url","post_login_route","forbidden_route","unauthorized_route","log_console_warning_active","log_console_debug_active","max_id_token_iat_offset_allowed_in_seconds","authWellKnownEndpoints","AuthWellKnownEndpoints","issuer","jwks_uri","authorization_endpoint","token_endpoint","userinfo_endpoint","end_session_endpoint","check_session_iframe","revocation_endpoint","introspection_endpoint","ApplicationService","DatePipe","DecimalPipe","FileSizePipe","RoleTextPipe","SchoolYearPipe","SessionStorageService","TitleCasePipe","AuthenticatedGuard","ConfigService","COVIDService","AuthService","DialogService","DownloadService","ErrorMessageService","ErrorService","NotificationService","SplashService","UserService","SummerAppService","ExitSurveyService","InCountyService","CertificationService","PayrollService","TranscriptsService","OidcConfigService","AppRoutingModule","BrowserModule","BrowserAnimationsModule","FormsModule","ReactiveFormsModule","HttpClientModule","FlexLayoutModule","NgxChartsModule","AuthModule","CalendarComponent","COVIDComponent","HomeComponent","LoginComponent","NavMenuComponent","SplashDialogComponent","UserInfoComponent","CountdownDialogComponent","ConfirmationDialogComponent","InputBoxDialogComponent","MessageBoxDialogComponent","NotificationDialogComponent","OptionBoxDialogComponent","ElectionMethodPipe","SelectboxComponent","SummerAppComponent","SchoolsEditorComponent","SiteMaintinanceComponent","ExitSurveyComponent","ATEReportOptionsDialogComponent","ExitSurveyOptionsDialogComponent","ReportOptionsDialogComponent","SemiExclusionWizardDialogComponent","SemiMonthlyReportOptionsDialogComponent","SemiMonthlyWindowOptionsDialogComponent","PortalConfigTableComponent","CoachpoolAppComponent","SummerApplicationWindowOptionsDialogComponent","SemiOverrideWizardDialogComponent","UserSearchDialogComponent","W2ReportOptionsDialogComponent","DayOfWeekPipe","SafeHTMLPipe","YesNoPipe","IncountyComponent","BingMapComponent","CertificationComponent","PayrollComponent","DoubleRowPaginatorComponent","TranscriptsComponent","WorkdayCalendarViewerComponent","bingSessionKey","inCountyService","downloadService","MilageFound","displayedColumns","map","Microsoft","Maps","Map","document","getElementById","credentials","ClickGeocode","getCredentials","MakeBingMapsRESTRequest","sessionKey","type","ReportType","TypeSelectionMade","Scope","ScopeSelectionMade","dataMileage","text","padChar","size","String","repeat","substr","monthYear","newSAPID","length","paddedSAPID","padLeft","DisplaySplash","GetInCountyMileage","AuthToken","IncountyMileage","MatTableDataSource","now","Date","fname","AsDistrictOffice","RunReport","resp","loadMap","MatSort","MatPaginator","certificationService","route","datePipe","titleCasePipe","_subrelease","Subscription","ATEVisibleHeaders","resultsLength","isLoadingResults","isRateLimitReached","certificateColumns","esolColumns","examsPassedColumns","examsPassedMiscColumns","examsPassedMisc2Columns","outOfFieldColumns","stateLicenseColumns","deficiencyColumns","methodsColumns","sub","add","AgreementToEarnDocuments","AgreementToEarnDocumentsSource","AgreementToEarnEmployeeInfo","ATENoData","ATESearchConducted","ATEVisibleColumns","subrelease","SmallDisplay","item","DocumentImageId","_","RetrieveDownload","HttpMethod","svcAddress","purpose","filename","DocumentFilename","DownloadFormat","__","err","ReportSAPID","element","DownloadCertUpload","CertRenewalUploadID","body","Response","json","msg","CertRpt1Get","dataCertRpt1","paginator","sort","CertRptCertificateGet","dataCertRptCertificate","CertRptESOLGet","dataCertificateESOLReport","CertRptEducationGet","HighestCompleted","CertRptExamsPassedGet","dataCertExamsPassedReport","CertRptExamsPassedMiscGet","dataCertExamsPassedMiscReport","CertRptExamsPassedMisc2Get","dataCertExamsPassedMisc2Report","CertRptOutOfFieldSubjectsGet","dataCertOutOfFieldSubjectsReport","value","Approved","CertRptStateLicenseGet","dataCertStateLicenseReport","CertRptCertDeficiencyGet","dataCertCertDeficiencyReport","CertRenewalID","CertRenewalMethodsGet","dataCertRenewalMethods","TargetSAPID","slice","GetAgreementToEarnDocuments","info","Documents","EmployeeInfo","CertificateESOLReportGet","OpenInputBoxDialog","transform","FirstName","LastName","Position","SAPID","DocumentDateFormatted","Validators","ResolveAgreementToEarn","ates","SnackbarSuccess","OpenATEReportOptionsDialog","DatePrompt","height","dateType","UseDateRestriction","DateRestrictionType","SearchType","TimeType","Time1","DateBegin","toJSON","Time2","DateEnd","DateResolved","ResolverFirstName","ResolverLastName","ResolverSAPID","ResolverLocalJobTitle","Rationale","GetCertificationInfo","RunATESigningReport","GetAgreementToEarnInfo","summerAppService","runreport","covidService","GetCOVIDSelectionWindow","CanSeeAltWork","CanSeeChildCare","CanSeeExposure","CanUseWindow","_user","IsCOVIDWindow","win","OpenSemiMonthlyWindowOptionsDialog","Activate","Status","todayInRange","start","end","willBeOpen","conf","UpdateCOVIDSelectionWindow","COVIDWindowInfo","selectionWindowSource","SelectionWindowStatus","IsWindowOpen","today","reportnum","reportName","OpenSemiMonthlyReportOptionsDialog","toSet","RunCOVIDReport","selector","FormControl","selectorGroup","FormGroup","initialPageSize","pageSize","setInitialValues","setValue","valueChanges","selectChanged","setTimeout","JSON","stringify","startIndex","pageIndex","Math","floor","lastIndex","ceil","fireEvent","page","max","endIndex","min","emit","previousPage","nextPage","exitSurveyService","view","showXAxis","showYAxis","gradient","showLegend","showXAxisLabel","xAxisLabel","showYAxisLabel","yAxisLabel","showDataLabel","viewL","showXAxisL","showYAxisL","gradientL","showLegendL","showXAxisLabelL","xAxisLabelL","showYAxisLabelL","yAxisLabelL","viewPercent","showXAxisPercent","showYAxisPercent","gradientPercent","showLegendPercent","showXAxisLabelPercent","xAxisLabelPercent","showYAxisLabelPercent","yAxisLabelPercent","showDataLabelPercent","viewLPercent","showXAxisLPercent","showYAxisLPercent","gradientLPercent","showLegendLPercent","showXAxisLabelLPercent","xAxisLabelLPercent","showYAxisLabelLPercent","yAxisLabelLPercent","viewP","colorScheme","domain","Object","assign","single","Today","curYear","getFullYear","getMonth","allYears","i","AvailableSchoolYears","ExitSurveyID","OpenExitSurveyOptionsDialog","CurrentApplicationSchoolYear","SelectedYear","GetExitSurveyReport","dataExitSurvey","filterValue","trim","GetExitSurveySummary","exitSurveySummary","otherReasonChartData","locationChartData","otherReasonChartDataPercentage","locationChartDataPercentage","j","SummaryReasons","ReasonType","name","Reason","Count","SurveyTotal","mapReady","res","globalSessionkey","appsvc","onSubmit","form","password","focus","username","indexOf","OpenOptionBoxDialog","Options","DisplayText","Color","scr","screen","width","innerWidth","innerHeight","loginCall","impersonated","ValidateImpersonatedUser","ValidateUser","ProcessLogin","message","_failures","options","response","ForgotUsername","ForgotPassword","Event","preventDefault","uoptions","href","$event","ctrlKey","ShowImpersonationBox","SystemUpChecker","a","ImpersonatorClick","payrollService","displayedW2Columns","GetSalaryGroupAccess","GetPayrollElectionWindow","GetPayrollElectionStatistics","GetPayrollElectionWindowExclusions","GetW2Deadline","ShowingRemovedExclusions","OpenSemiExclusionWizardDialog","AddPayrollElectionWindowExclusion","TargetEmployeeSAPID","AllowMonthly","excls","PayrollWindowExclusionsInfo","UpdateExclusionsFiltering","OpenSemiOverrideWizardDialog","AddPayrollElectionOverride","ElectionStatus","exc","Exclusion","UpdatePayrollElectionWindowExclusion","SemiMonthlyPayrollElectionExclusionID","UpdatePayrollElectionWindow","WindowInfo","electionWindowSource","ElectionWindowStatus","sapid","dataEmployeeW2OptIns","EmployeeW2LookupSAPID","GetW2ElectronicOptIn","NoEmployeeW2Data","W2OptIns","EmployeeW2LookupInfo","EmployeeW2LookupStatus","CanViewW2","employeeDisplayedColumns","W2Deadline","TargetFirstName","TargetLastName","TargetLocalJobTitle","RemovePayrollElectionExclusion","excs","optinstatus","OpenW2ReportOptionsDialog","dataSalaryGroupAccess","PayrollStats","Set","p","grouped","k","Key","Data","pg","payrollChartData","p3","series","d","PayRateCode","tdata","forEach","grp","find","g","entry","Month10","Month11","Month12","Total","reduce","pr","c","p1","c1","payrollElectionSource","checked","update","Access","UpdateSalaryGroupAccess","PersonnelGroup","PersonnelSubGroup","FilteredPayrollWindowExclusionsInfo","NoExclusionsData","electionExclusionsSource","VisibleExclusionsHeaders","VisibleExclusionsColumns","GetEmployeeW2OptIn","RunVacationReport","RunSemiMonthlyReport","AddExclusion","ToggleRemovedExclusions","AddOverride","appSvc","SystemConfigGetByDescription","configdescription","ConfigDescription","applicationwindow","datasource","dialogRef","fb","o","Value","Option","close","Message","itemName","ItemName","dialogForm","group","MAT_DIALOG_DATA","isExpansionDetailRow","row","hasOwnProperty","displayedAppColumns","SummerSchoolToEdit","valid","SchoolNumber","UpdateSummerSchool","appData","GetSummerSchools","AppStatusHeader","dataSourceSummerApps","getRows","SummerApps","x","includes","customPaginator","GetSummerSchoolWindow","SummerApplicationWindowSource","SummerWindowStatus","OpenSummerApplicationWindowOptionsDialog","UpdateSummerApplicationWindow","OpenReportOptionsDialog","GetAllSchoolYears","years","GetAllSchoolsForEditing","SummerSchools","SummerSchoolsSource","GetSummerSchoolYear","SummerSchoolYear","GetSummerApps","ProcessedDate","index","GetSummerCerts","SummerCerts","summerapp","GetSummerJourneyEval","SummerJourneyEval","GetSummerCourses","SummerCourses","GetSummerAssignedContent","SummerAssignedContent","GetSummerAssignedProgram","SummerAssignedProgram","SummerApplicationID","GetSummerSchoolsSelected","SummerSchoolSelected","rows","show","detailRow","detail","SummerProcessingHolder","SummerProcessing","foundApp","elem","closeRows","AddSchoolToApplicationHolder","AddSchoolSummerApplicationID","ProcessSummerApplication","AddSummerSchoolToApplication","AddSchoolToApplication","ShowSchoolsArea","GetSummerApplicationWindow","trigger","state","style","minHeight","visibility","backgroundColor","transition","animate","dialogSvc","errorSvc","splashSvc","summerAppSvc","userSvc","AllHeaders","AllSchools","ChangeTrackingActive","CurrentYear","HasChanges","PDFServicePath","ViewReady","VisibleColumns","VisibleHeaders","SchoolsSource","FilterForm","SelectedSchoolYear","TextFilter","debounceTime","val","UpdateFilteredSchools","schools","schls","s","Active","Alternate","Migrant","ELL","ELLOnly","ESYIncluded","ESYOnly","ExtendedLearningAcad","IsElementary","IsMiddle","IsSenior","SchoolName","SummerSchoolsID","Title1Program","VPKIncluded","Visible","OrigELL","OrigELLOnly","OrigESYIncluded","OrigESYOnly","OrigAlternate","OrigMigrant","OrigExtendedLearningAcad","OrigTitle1Program","OrigVPKIncluded","OrigActive","TakeDownTracking","sorter","AllSchoolYears","sch","key","some","liveCheck","tfilter","dsource","changes","school","schchg","Changes","sp","sc","syear","SchoolYear","UpdateSchools","updatedSchs","us","dsch","toLocaleLowerCase","filtsch","SubmitAllChanges","ClearFilter","transcriptsService","_sort","_srt","dataTranscripts","UploadID","dataEmployeeTranscripts","EmployeeLookupSAPID","GetEmployeeTranscriptsInfo","NoEmployeeData","Transcripts","EmployeeLookupInfo","FileName","DateUploaded","RemoveTranscript","empInfo","EmployeeTranscriptsInfo","recent","MostRecentTranscripts","UseYear","GetRecentUploadedTranscripts","changeMonth","EventEmitter","DaysOfWeek","Name","MediumName","ShortName","DisplaySize","mqAlias","amt","tprcode","DaysOfWeekInfo","FilteredItems","curActive","aitem","ClearAllActiveButtons","methodFn","logout","about","btn","navmenu","nativeElement","querySelector","ButtonIndex","NavigationEnd","navev","UpdateMenuItems","curRole","user","fitems","items","itm","routerState","snapshot","NavMenuItem","rolePipe","role","_timerHandle","clearTimeout","SetTimeGreeting","hour","getHours","greeting","newRole","SetUserCurrentRole","payrollSvc","CachedMonths","CalendarData","CalendarLoaded","CurrentSY","GetSchoolYearFromDate","Is11Month","Is12Month","IsCurrentSY","SelectedDate","SelectedEmployee","SelectedMonth","first","_u","__u","adj","RetrieveMonthCalendar","month","year","tgtSY","tmpCurrentSY","localeCompare","foundData","of","GetWorkdayCalendar","EmployeeSAPID","cal","splitArr","datacpy","splice","IsHoliday","WorkdayText","payFirst","OpenUserSearch","TargetEmployee","SearchForUser","environment","production","enableProdMode","platformBrowser","bootstrapModule","ExitSurvey","ExitSurveySummary","ExitSurveySummaryReason","multi","colorSets","selectable","SummerApp","SummerCert","SummerSubject","shortForm","DaysOfWeekNames","shortDaysOfWeekNames","mediumDaysOfWeekNames","decimalPipe","decimals","_sizebreaks","_sizeextents","major","minor","bypassSecurityTrustHtml","formatted","replace","test","toUpperCase","routes","path","component","canActivate","RouterModule","relativeLinkResolution","_isAuthenticated","_userSub","_currentRole","isAuth","roles","matched","rolename","http","configService","hostAddress","Desc","UserSearchResult","ConfigWindowTable","VersionNumber","PolkSSOLogin","authToken","winres","post","EncryptedAuthToken","Screen","Window","impersonatedUsername","Username","Password","ImpersonatedUsername","ImpToken","AuthRefreshDeadline","nextAuthRefresh","IsRefreshing","bmoment","BUILD_TIME","share","StartAuthTokenRefreshing","headers","getHeaders","put","HttpHeaders","set","appendAuthHeader","CheckRecentUse","recentUse","SYSTEMTIMESUSERSOUT","RefreshAuthToken","newAuthPacket","newAuth","Version","UpdateAuthToken","AuthTokenCancelFlag","AuthTokenRefreshHandle","AuthTokenRefresh","AUTHCHECKTIME","Now","toISOString","CancelAuthTokenRefreshing","CountdownTime","LOGOUTWARNINGTIME","OpenCountdownDialog","firstName","lastName","email","Email","HttpResponse","errorPacket","parse","ExceptionMessage","confirmation","reason","opts","ClearUser","CloseAllDialogs","SetUser","valtoken","timeToRefresh","timediff","SessionStorage","AuthPacket","storage","DevSiteSubject","BehaviorSubject","DocumentDate","DateUpdated","ResolveCode","host","title","oktext","canceltext","datePrompt","OptionsForm","restrict","dbctrl","dectrl","setValidators","validateDate","updateValueAndValidity","dtype","dctrl","OKHandler","CancelHandler","BaseATEReportOptionsDialogOptions","BaseDialogOptions","BaseATEReportRunOptions","iconcolor","IconColor","iconname","IconName","showIcon","ShowIcon","_ConfirmationDialogOptions","maxtime","curtime","timerHandle","timeval","time","timeStr","Tick","GetTimeString","CountdownDialogOptions","mediaChange","smallMediaSize","closeAll","openHandle","disableClose","maxHeight","afterClosed","Time","InputHint","dlgoptions","panelClass","ConfirmationDialogOptions","InputBoxDialogOptions","MessageBoxDialogOptions","NotificationDialogOptions","OptionBoxDialogOptions","OptionBoxOption","displayText","color","useYear","begin","SelectedAppYear","_dateSub","_restrictSub","_ExitSurveyOptionsDialogOptions","_ExitSurveyRunOptions","inputhint","validators","inputForm","userinput","ctrl","_InputBoxDialogOptions","_MessageBoxDialogOptions","_OptionBoxOption","choice","_OptionBoxDialogOptions","closes","ClosesDialog","_ReportOptionsDialogOptions","_ReportRunOptions","configSvc","ExclusionForm","mediaService","AllDistrictHeaders","shorttitle","ShortTitleText","OriginalExclusion","CurrentStep","NoData","SearchResults","ResultsData","UserSearchConducted","TargetEmployeeFirst","TargetEmployeeLast","validator","valform","MissingSearchTerms","SettingsInfo","SemiMonthlyExclusionID","DateBeginTime","DateEndTime","PackedDateBegin","PackedDateEnd","gpform","gpvalue","db","de","DateOrder","RationaleInfo","_pck","PackDateTime","patchValue","emitEvent","onlySelf","PatchFormWithOriginal","SmallPaginator","Paginator","focusProc","smallempinput","invalid","exclusionForm","SnackbarAlert","users","SmallScrollPanel","scrollIntoView","RetrieveServiceErrorMessage","dateobj","timeobj","timematches","match","hrval","merid","hr","dobj","hours","minutes","dbt","dbe","patch","EmployeeFirstName","EmployeeLastName","LocalJobTitle","SiteName","TargetSiteName","dir","smallrationale","reset","wideempinput","selectedIndex","widerationale","StepChange","LookupEmployee","ResetForm","Cancel","Ok","PseudoStepChange","BaseSemiExclusionWizardDialogOptions","BaseSemiExclusionWizardDialogResult","BaseSemiMonthlyReportOptionsDialogOptions","BaseSemiMonthlyReportRunOptions","_DateBegin","_DateEnd","_Status","det","fgrp","formval","dBegin","dEnd","EndBeforeBegin","BaseSemiMonthlyWindowOptionsDialogOptions","BaseSemiMonthlyWindowRunOptions","OriginalElectionStatus","OverrideForm","DateElected","BaseSemiOverrideWizardDialogOptions","BaseSemiOverrideWizardDialogResult","BaseSummerApplicationWindowOptionsDialogOptions","BaseSummerApplicationWindowRunOptions","SelectedUser","ScrollPanel","BaseUserSearchDialogOptions","BaseUserSearchDialogResult","_W2ReportOptionsDialogOptions","_W2ReportRunOptions","downloadSubject","httpMethod","ServiceURL","Parameters","Format","ApplicationName","extension","PDF","Excel","ZIP","responseObs","GET","queryString","prev","cur","encodeURIComponent","join","observe","responseType","blob","contentdistribution","matches","saveAs","catchError","Blob","reader","FileReader","loadend","fromEvent","readAsText","ReportID","ReportFileName","ApplicationSchoolYear","IncountyMileageTotals","OptInStatus","Attachment","W2OptInStatus","Accept","HttpErrorResponse","errors","errobj","errkeys","ErrorMessage","ErrorObject","errObject","statusText","ErrorMessageInfo","SessionKey","promise","node","createElement","src","async","defer","getElementsByTagName","appendChild","ServerPath","NotificationEntry","NotificationTextEntry","Month","Year","CalendarDate","LongText","IsPayDay","longSplit","split","ShortText","IsSummerExtended","TPRCode","showProgress","ShowProgressBar","_SplashOptions","dialog","snackbar","afterOpened","allSplash","duration","config","hold","action","_GetSummerSchools","_GetSummerApps","_GetSummerCert","employeeSAPID","schoolYear","_GetSummerJourneyEval","_GetSummerAssignedContent","_GetSummerAssignedProgram","_GetSummerCourses","_GetSummerSchoolsSelected","SummerSchool","processing","ReceivedFrom","ReceivedDate","AssignedSite","DistrictNotes","AssignedContent","AssignedProgram","AppliedType","r","t","UserRoles","sessionService","_User","_ui","clear","newUser","homeroute","dateval"],"mappings":"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","file":"main-es5.js","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;","\r\n\r\n
\r\n \r\n
\r\n menu\r\n
\r\n
\r\n
Staff Portal Admin
\r\n
SPA
\r\n
A Polk County Public Schools Service
\r\n \r\n
\r\n \r\n \r\n exit_to_app\r\n \r\n
\r\n \r\n \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 { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Component, Injectable, Injector, OnDestroy, OnInit } from '@angular/core';\r\nimport { MediaObserver } from '@angular/flex-layout';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NavigationCancel, Router } from '@angular/router';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { combineLatest, Observable, Subject, Subscription } from 'rxjs';\r\nimport { distinctUntilChanged, filter, takeUntil, tap } from 'rxjs/operators';\r\n//import * as moment from 'moment';\r\nimport { AuthService } from '../services/authentication/auth.service';\r\nimport { DialogService } from '../services/dialogs/dialogs.service';\r\nimport { ErrorService } from '../services/error/error.service';\r\nimport { SplashService } from '../services/splash/splash.service';\r\nimport { UserInfo, UserService } from '../services/user/user.service';\r\nimport { VERSION_NUMBER } from '../services/version/version.service';\r\nimport { NavMenuItem } from './ui/navmenu/navmenu.component';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n private oidcSecurityService: OidcSecurityService;\r\n\r\n constructor(private injector: Injector) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let requestToForward = req;\r\n\r\n if (this.oidcSecurityService === undefined) {\r\n this.oidcSecurityService = this.injector.get(OidcSecurityService);\r\n }\r\n if (this.oidcSecurityService !== undefined) {\r\n let token = this.oidcSecurityService.getToken();\r\n if (token !== '') {\r\n let tokenValue = 'Bearer ' + token;\r\n requestToForward = req.clone({\r\n setHeaders: { Authorization: tokenValue },\r\n });\r\n }\r\n } else {\r\n console.debug('OidcSecurityService undefined: NO auth header!');\r\n }\r\n\r\n return next.handle(requestToForward);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css'],\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n AboutFn: () => Observable;\r\n LogoutFn: () => Observable;\r\n private _routeSub: Subscription;\r\n private _UserSubscription: Subscription;\r\n private _versionUpdateSub: Subscription;\r\n private userGreeting: string;\r\n MenuItems: NavMenuItem[];\r\n SideNavOpen: boolean;\r\n SizeCode: string;\r\n LastSizeCode: string;\r\n SmallSize: boolean;\r\n UpdateAvailable: boolean;\r\n User: UserInfo;\r\n VersionLoaded: string;\r\n BuildTime: string;\r\n isAuthenticated: boolean;\r\n userData: any;\r\n\r\n private _subRelease: Subject = new Subject();\r\n\r\n constructor(\r\n private splashService: SplashService,\r\n private router: Router,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private dialogService: DialogService,\r\n private MatDialog: MatDialog,\r\n public media: MediaObserver,\r\n private errorService: ErrorService,\r\n public oidcSecurityService: OidcSecurityService\r\n ) {\r\n //implicit\r\n //this.oidcSecurityService.getIsModuleSetup().pipe(\r\n // filter((isModuleSetup: boolean) => isModuleSetup),\r\n // take(1)\r\n //).subscribe((isModuleSetup: boolean) => {\r\n // this.doCallbackLogicIfRequired();\r\n // });\r\n\r\n //CODE\r\n // if (this.oidcSecurityService.moduleSetup) {\r\n // this.doCallbackLogicIfRequired();\r\n // } else {\r\n // this.oidcSecurityService.onModuleSetup.subscribe(() => {\r\n // this.doCallbackLogicIfRequired();\r\n // });\r\n // }\r\n\r\n this.AboutFn = this.About.bind(this);\r\n this.LogoutFn = this.Logout.bind(this);\r\n }\r\n\r\n About() {\r\n const self = this;\r\n\r\n // Show the about information.\r\n return self.dialogService.OpenMessageBoxDialog({\r\n TitleText: 'About Staff Portal Admin',\r\n MessageText: `The Staff Portal Admin System is where system owners go to generate reports and configure areas relating to the Staff Portal.

Staff Portal Admin Version: ${this.VersionLoaded}
Build Date/Time: ${this.BuildTime}`,\r\n });\r\n }\r\n\r\n callSummer() {\r\n this.authService.SummerTestWithOIDC().subscribe((result) => {\r\n console.log(result);\r\n });\r\n }\r\n\r\n Login() {\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n Logout() {\r\n const self = this;\r\n\r\n // Pop up a confirmation box to confirm desire to logout.\r\n return self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText: 'You are about to log out of the Staff Portal Admin app. Are you sure you wish to exit at this time?',\r\n OKText: 'Yes - Log Out',\r\n CancelText: 'No - Stay Logged In',\r\n })\r\n .pipe(\r\n tap((confresult) => {\r\n if (confresult === true) {\r\n // User is opting to log out. Proceed.\r\n this.authService.Logout(null, null);\r\n this.SideNavOpen = false;\r\n }\r\n })\r\n );\r\n }\r\n\r\n private doCallbackLogicIfRequired() {\r\n //Implicit\r\n //if (window.location.hash) {\r\n // this.oidcSecurityService.authorizedImplicitFlowCallback();\r\n //}\r\n\r\n //CODE\r\n this.oidcSecurityService.authorizedCallbackWithCode(window.location.toString());\r\n }\r\n\r\n Navigate(event) {\r\n // A navigation click occurred. Close the sidenav if it is open on small display sizes only.\r\n if (this.SmallSize) this.SideNavOpen = false;\r\n }\r\n\r\n login() {\r\n //this.oidcSecurityService.authorize();\r\n\r\n this.oidcSecurityService.authorize((authUrl) => {\r\n // handle the authorrization URL\r\n window.open(authUrl, '_blank', 'toolbar=0,location=0,menubar=0');\r\n });\r\n }\r\n\r\n logout() {\r\n this.oidcSecurityService.logoff();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._routeSub) this._routeSub.unsubscribe();\r\n if (this._UserSubscription) this._UserSubscription.unsubscribe();\r\n if (this._versionUpdateSub) this._versionUpdateSub.unsubscribe();\r\n\r\n this._subRelease.next();\r\n this._subRelease.complete();\r\n }\r\n\r\n ngOnInit() {\r\n this.oidcSecurityService.getIsAuthorized().subscribe((auth) => {\r\n this.isAuthenticated = auth;\r\n });\r\n\r\n this.oidcSecurityService.getUserData().subscribe((userData) => {\r\n this.userData = userData;\r\n });\r\n\r\n this.AboutFn = this.About.bind(this);\r\n this.LogoutFn = this.Logout.bind(this);\r\n this.SideNavOpen = false;\r\n this.UpdateAvailable = false;\r\n this.VersionLoaded = VERSION_NUMBER;\r\n\r\n //let btime = moment(BUILD_TIME, moment.ISO_8601, true);\r\n\r\n //if (btime.isValid()) this.BuildTime = btime.format('MMM. DD, YYYY h:mm a');\r\n\r\n // Set up a listener for the version being updated.\r\n this._versionUpdateSub = this.authService.HasVersionUpdate.asObservable().subscribe((status) => {\r\n if (status === true) {\r\n // There's a new version available. Display the bar note.\r\n this.UpdateAvailable = true;\r\n } else {\r\n // No new version available. Ensure the bar note is hidden.\r\n this.UpdateAvailable = false;\r\n }\r\n });\r\n\r\n // Set up a listener for when routing is canceled.\r\n this.router.events\r\n .pipe(\r\n takeUntil(this._subRelease),\r\n filter((event) => event instanceof NavigationCancel)\r\n )\r\n .subscribe((ev) => {\r\n // Drop splash (if any), and show a snackbar alert\r\n this.splashService.CloseSplash();\r\n\r\n this.splashService.SnackbarError('Unable to perform this action at the current time.', 8000);\r\n });\r\n\r\n // Check to see if the system is available right now.\r\n this.authService.TestConnection().subscribe((isUp) => {\r\n if (isUp !== true) {\r\n // System is down. If we have a user, we need to let them know it's down now, kill their token, and take to the outofservice.\r\n // If no user is there, just go to the state.\r\n // TODO: Add the code for the above, move the rest to in here.\r\n this.router.navigate(['/outofservice']);\r\n return;\r\n }\r\n\r\n if (this.router.url == '/') {\r\n // Yes, we need to redirect to the login screen.\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n // System is up and ready. Proceed with loading.\r\n\r\n // Get the user information for the logged in user.\r\n combineLatest(this.userService.UserSubject, function (userInfo) {\r\n return {\r\n UserInfo: userInfo,\r\n };\r\n })\r\n .pipe(takeUntil(this._subRelease), distinctUntilChanged())\r\n .subscribe(\r\n (data) => {\r\n this.User = data.UserInfo;\r\n\r\n if (this.User) {\r\n // [Re]Set up the navmenu entries\r\n let homeRoute = '/' + (this.User.CurrentRole || '').toLowerCase();\r\n\r\n this.MenuItems = [\r\n {\r\n MenuText: 'Home',\r\n MenuIcon: 'home',\r\n LinkedStates: ['/home'],\r\n ActionRoute: ['/home'],\r\n IsHome: true,\r\n },\r\n ];\r\n\r\n if (\r\n this.User.Roles.IsCOVIDExposure ||\r\n this.User.Roles.IsCOVIDChildCare ||\r\n this.User.Roles.IsCOVIDAltWork ||\r\n this.User.Roles.IsDeveloper\r\n ) {\r\n this.MenuItems.push({\r\n MenuText: 'COVID-19',\r\n MenuIcon: 'coronavirus',\r\n LinkedStates: ['/covid19'],\r\n ActionRoute: ['/covid19'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsSummerApp || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Summer Application',\r\n MenuIcon: 'wb_sunny',\r\n LinkedStates: ['/summerapp'],\r\n ActionRoute: ['/summerapp'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsCoachApp || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Coach Application',\r\n MenuIcon: 'coach',\r\n IsMenuSvg: true,\r\n LinkedStates: ['/coachapp'],\r\n ActionRoute: ['/coachapp'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsIncounty || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Incounty',\r\n MenuIcon: 'directions_car',\r\n LinkedStates: ['/incounty'],\r\n ActionRoute: ['/incounty'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsExitSurvey || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Exit Survey',\r\n MenuIcon: 'question_answer',\r\n LinkedStates: ['/exitsurvey'],\r\n ActionRoute: ['/exitsurvey'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsCertification || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Certification',\r\n MenuIcon: 'class',\r\n LinkedStates: ['/certification'],\r\n ActionRoute: ['/certification'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsTranscripts || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Transcripts',\r\n MenuIcon: 'school',\r\n LinkedStates: ['/transcripts'],\r\n ActionRoute: ['/transcripts'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsPayroll || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Payroll',\r\n MenuIcon: 'attach_money',\r\n LinkedStates: ['/payroll'],\r\n ActionRoute: ['/payroll'],\r\n });\r\n }\r\n\r\n if (this.User.Roles.IsWorkdayCalendar || this.User.Roles.IsDeveloper) {\r\n this.MenuItems.push({\r\n MenuText: 'Workday Calendar',\r\n MenuIcon: 'date_range',\r\n LinkedStates: ['/workdaycalendar'],\r\n ActionRoute: ['/workdaycalendar'],\r\n });\r\n }\r\n\r\n // Add in the final two items\r\n this.MenuItems.push(\r\n { MenuText: 'Logout', MenuIcon: 'exit_to_app', IsLogout: true },\r\n { MenuText: 'About', MenuIcon: 'help', IsAbout: true }\r\n );\r\n\r\n // If we're not on small displays, show the nav menu.\r\n if (!this.SmallSize) {\r\n this.SideNavOpen = true;\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n });\r\n\r\n // Get the user information for the logged in user.\r\n //this._UserSubscription = this.userService.UserSubject.share()\r\n // .distinctUntilChanged()\r\n // .subscribe(\r\n // data => {\r\n // this.User = data;\r\n\r\n // this.MenuItems = [\r\n // { MenuText: 'Home', MenuIcon: 'home', LinkedStates: ['/home'], ActionRoute: ['/home'], IsHome: true },\r\n // { MenuText: 'Logout', MenuIcon: 'exit_to_app', IsLogout: true },\r\n // { MenuText: 'About', MenuIcon: 'help', IsAbout: true }\r\n // ];\r\n\r\n // if (this.User != null) {\r\n // if (this.SmallSize) {\r\n // this.SideNavOpen = false;\r\n // } else {\r\n // this.SideNavOpen = true;\r\n // }\r\n // //this.MenuItems.splice(1, 1, { MenuText: 'Internal Request', MenuIcon: 'add_circle', LinkedStates: ['/internal'], ActionRoute: ['/internal'] });\r\n // //this.MenuItems.splice(1, 0, { MenuText: 'Supervisor Review', MenuIcon: 'gavel', LinkedStates: ['/supervisorlist'], ActionRoute: ['/supervisorlist'] });\r\n // //this.MenuItems.splice(4, 1, { MenuText: 'Logout', MenuIcon: 'exit_to_app', IsLogout: true });\r\n\r\n // if (this.User.Roles.IsDeveloper ||\r\n // this.User.Roles.IsSummerApplication)\r\n // {\r\n // this.MenuItems.splice(1, 0, { MenuText: 'Summer Application', MenuIcon: 'wb_sunny', LinkedStates: ['/summerapp'], ActionRoute: ['/summerapp'] });\r\n // }\r\n // }\r\n // });\r\n\r\n this.media.asObservable().subscribe((change) => {\r\n this.SmallSize = this.media.isActive('xs') || this.media.isActive('sm');\r\n this.SizeCode = this.media.isActive('xl')\r\n ? 'xl'\r\n : this.media.isActive('lg')\r\n ? 'lg'\r\n : this.media.isActive('md')\r\n ? 'md'\r\n : this.media.isActive('sm')\r\n ? 'sm'\r\n : 'xs';\r\n\r\n // Depending on which way we just changed size, we either close or open the sidenav automatically at this point.\r\n //if (this.SmallSize) this.SideNavOpen = false; else this.SideNavOpen = true;\r\n });\r\n\r\n this.SmallSize = this.media.isActive('xs') || this.media.isActive('sm');\r\n this.SizeCode = this.media.isActive('xl')\r\n ? 'xl'\r\n : this.media.isActive('lg')\r\n ? 'lg'\r\n : this.media.isActive('md')\r\n ? 'md'\r\n : this.media.isActive('sm')\r\n ? 'sm'\r\n : 'xs';\r\n this.LastSizeCode = this.SizeCode;\r\n\r\n this.SideNavOpen = true;\r\n }\r\n\r\n ToggleNav() {\r\n this.SideNavOpen = !this.SideNavOpen;\r\n }\r\n\r\n // #region Toolbar About Method\r\n\r\n ToolbarAbout(): void {\r\n this.About().subscribe();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Toolbar Logout Method\r\n\r\n ToolbarLogout(): void {\r\n this.Logout().subscribe();\r\n }\r\n\r\n // #endregion\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n@NgModule({\r\n imports: [\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatSelectModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatToolbarModule,\r\n MatNativeDateModule,\r\n MatSidenavModule,\r\n MatInputModule,\r\n MatCardModule,\r\n MatRadioModule,\r\n MatTabsModule,\r\n MatGridListModule,\r\n MatDatepickerModule,\r\n ],\r\n\r\n exports: [\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatSelectModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatToolbarModule,\r\n MatNativeDateModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatCardModule,\r\n MatRadioModule,\r\n MatTabsModule,\r\n MatGridListModule,\r\n MatDatepickerModule,\r\n ],\r\n})\r\nexport class AppMaterialModule {}\r\n","import { DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport {\r\n AuthModule,\r\n AuthWellKnownEndpoints,\r\n OidcConfigService,\r\n OidcSecurityService,\r\n OpenIDImplicitFlowConfiguration,\r\n} from 'angular-auth-oidc-client';\r\nimport { CalendarComponent } from 'app/ui/calendar/calendar.component';\r\nimport { SessionStorageService } from 'ng2-webstorage';\r\nimport { ATEReportOptionsDialogComponent } from 'services/dialogs/atereportoptions/atereportoptions.dialogcomponent';\r\nimport { ExitSurveyOptionsDialogComponent } from 'services/dialogs/exitsurveyoptions/exitsurveyoptions.dialogcomponent';\r\nimport { SemiExclusionWizardDialogComponent } from 'services/dialogs/semiexclusionwizard/semiexclusionwizard.dialogcomponent';\r\nimport { SemiMonthlyReportOptionsDialogComponent } from 'services/dialogs/semimonthlyreportoptions/semimonthlyreportoptions.dialogcomponent';\r\nimport { SemiMonthlyWindowOptionsDialogComponent } from 'services/dialogs/semimonthlywindowoptions/semimonthlywindowoptions.dialogcomponent';\r\nimport { SemiOverrideWizardDialogComponent } from 'services/dialogs/semioverridewizard/semioverridewizard.dialogcomponent';\r\nimport { SummerApplicationWindowOptionsDialogComponent } from 'services/dialogs/summerApplicationwindowoptions/summerApplicationwindowoptions.dialogcomponent';\r\nimport { DayOfWeekPipe } from '../pipes/dayofweek.pipe';\r\nimport { ElectionMethodPipe } from '../pipes/electionmethod.pipe';\r\nimport { FileSizePipe } from '../pipes/fileSize.pipe';\r\nimport { RoleTextPipe } from '../pipes/roletext.pipe';\r\nimport { SafeHTMLPipe } from '../pipes/safehtml.pipe';\r\nimport { SchoolYearPipe } from '../pipes/schoolyear.pipe';\r\nimport { TitleCasePipe } from '../pipes/titlecase.pipe';\r\nimport { YesNoPipe } from '../pipes/yesno.pipe';\r\nimport { AppRoutingModule } from '../routes/app-routing.module';\r\nimport { AuthenticatedGuard } from '../routes/routes.guard';\r\nimport { ApplicationService } from '../services/application/application.service';\r\nimport { AuthService } from '../services/authentication/auth.service';\r\nimport { CertificationService } from '../services/certification/certification.service';\r\nimport { ConfigService } from '../services/config/config.service';\r\nimport { COVIDService } from '../services/covid/covid.service';\r\nimport { ConfirmationDialogComponent } from '../services/dialogs/confirmation/confirmation.dialogcomponent';\r\nimport { CountdownDialogComponent } from '../services/dialogs/countdown/countdown.dialogcomponent';\r\nimport { DialogService } from '../services/dialogs/dialogs.service';\r\nimport { InputBoxDialogComponent } from '../services/dialogs/inputbox/inputbox.dialogcomponent';\r\nimport { MessageBoxDialogComponent } from '../services/dialogs/messagebox/messagebox.dialogcomponent';\r\nimport { NotificationDialogComponent } from '../services/dialogs/notification/notification.dialogcomponent';\r\nimport { OptionBoxDialogComponent } from '../services/dialogs/optionbox/optionbox.dialogcomponent';\r\nimport { ReportOptionsDialogComponent } from '../services/dialogs/reportoptions/reportoptions.dialogcomponent';\r\nimport { UserSearchDialogComponent } from '../services/dialogs/usersearch/usersearch.dialogcomponent';\r\nimport { W2ReportOptionsDialogComponent } from '../services/dialogs/w2reportoptions/w2reportoptions.dialogcomponent';\r\nimport { DownloadService } from '../services/download/download.service';\r\nimport { ErrorService } from '../services/error/error.service';\r\nimport { ErrorMessageService } from '../services/errormsg/errormsg.service';\r\nimport { ExitSurveyService } from '../services/exitsurvey/exitsurvey.service';\r\nimport { InCountyService } from '../services/incounty/incounty.service';\r\nimport { NotificationService } from '../services/notification/notification.service';\r\nimport { PayrollService } from '../services/payroll/payroll.service';\r\nimport { SplashDialogComponent } from '../services/splash/splash.component';\r\nimport { SplashService } from '../services/splash/splash.service';\r\nimport { SummerAppService } from '../services/summerapp/summerapp.service';\r\nimport { TranscriptsService } from '../services/transcripts/transcripts.service';\r\nimport { UserService } from '../services/user/user.service';\r\nimport { AppComponent } from './app.component';\r\nimport { AppMaterialModule } from './app.material.module';\r\nimport { BingMapComponent } from './bing-map/bing-map.component';\r\nimport { CertificationComponent } from './certification/certification.component';\r\nimport { CoachpoolAppComponent } from './coachpoolapplication/coachpoolapplication.component';\r\nimport { COVIDComponent } from './covid/covid.component';\r\nimport { DoubleRowPaginatorComponent } from './double-row-paginator/double-row-paginator.component';\r\nimport { ExitSurveyComponent } from './exit-survey/exit-survey-app.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { IncountyComponent } from './incounty/incounty.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { PayrollComponent } from './payroll/payroll.component';\r\nimport { PortalConfigTableComponent } from './portal-config-table/portal-config-table.component';\r\nimport { SelectboxComponent } from './selectbox/selectbox.component';\r\nimport { SiteMaintinanceComponent } from './site-maintinance/site-maintinance.component';\r\nimport { SummerAppComponent } from './summer-app/summer-app.component';\r\nimport { SchoolsEditorComponent } from './summer-app/ui/schoolseditor/schoolseditor.component';\r\nimport { TranscriptsComponent } from './transcripts/transcripts.component';\r\nimport { NavMenuComponent } from './ui/navmenu/navmenu.component';\r\nimport { UserInfoComponent } from './userinfo/userinfo.component';\r\nimport { WorkdayCalendarViewerComponent } from './workdaycalendarviewer/workdaycalendarviewer.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n CalendarComponent,\r\n COVIDComponent,\r\n HomeComponent,\r\n LoginComponent,\r\n NavMenuComponent,\r\n SplashDialogComponent,\r\n UserInfoComponent,\r\n CountdownDialogComponent,\r\n ConfirmationDialogComponent,\r\n InputBoxDialogComponent,\r\n MessageBoxDialogComponent,\r\n NotificationDialogComponent,\r\n OptionBoxDialogComponent,\r\n ElectionMethodPipe,\r\n FileSizePipe,\r\n RoleTextPipe,\r\n SchoolYearPipe,\r\n SelectboxComponent,\r\n SummerAppComponent,\r\n SchoolsEditorComponent,\r\n SiteMaintinanceComponent,\r\n ExitSurveyComponent,\r\n ATEReportOptionsDialogComponent,\r\n ExitSurveyOptionsDialogComponent,\r\n ReportOptionsDialogComponent,\r\n SemiExclusionWizardDialogComponent,\r\n SemiMonthlyReportOptionsDialogComponent,\r\n SemiMonthlyWindowOptionsDialogComponent,\r\n PortalConfigTableComponent,\r\n CoachpoolAppComponent,\r\n SummerApplicationWindowOptionsDialogComponent,\r\n SemiOverrideWizardDialogComponent,\r\n UserSearchDialogComponent,\r\n W2ReportOptionsDialogComponent,\r\n DayOfWeekPipe,\r\n SafeHTMLPipe,\r\n TitleCasePipe,\r\n YesNoPipe,\r\n IncountyComponent,\r\n BingMapComponent,\r\n CertificationComponent,\r\n PayrollComponent,\r\n DoubleRowPaginatorComponent,\r\n TranscriptsComponent,\r\n WorkdayCalendarViewerComponent,\r\n ],\r\n imports: [\r\n AppRoutingModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n FlexLayoutModule,\r\n NgxChartsModule,\r\n AppMaterialModule,\r\n AuthModule.forRoot(),\r\n ],\r\n providers: [\r\n ApplicationService,\r\n DatePipe,\r\n DecimalPipe,\r\n FileSizePipe,\r\n RoleTextPipe,\r\n SchoolYearPipe,\r\n SessionStorageService,\r\n TitleCasePipe,\r\n AuthenticatedGuard,\r\n ConfigService,\r\n COVIDService,\r\n AuthService,\r\n DialogService,\r\n DownloadService,\r\n ErrorMessageService,\r\n ErrorService,\r\n NotificationService,\r\n SplashService,\r\n UserService,\r\n SummerAppService,\r\n ExitSurveyService,\r\n InCountyService,\r\n CertificationService,\r\n PayrollService,\r\n TranscriptsService,\r\n OidcConfigService,\r\n ],\r\n entryComponents: [\r\n ATEReportOptionsDialogComponent,\r\n SplashDialogComponent,\r\n CountdownDialogComponent,\r\n ConfirmationDialogComponent,\r\n InputBoxDialogComponent,\r\n MessageBoxDialogComponent,\r\n NotificationDialogComponent,\r\n OptionBoxDialogComponent,\r\n SelectboxComponent,\r\n ExitSurveyOptionsDialogComponent,\r\n ReportOptionsDialogComponent,\r\n SemiExclusionWizardDialogComponent,\r\n SemiMonthlyReportOptionsDialogComponent,\r\n SemiMonthlyWindowOptionsDialogComponent,\r\n SummerApplicationWindowOptionsDialogComponent,\r\n SemiOverrideWizardDialogComponent,\r\n UserSearchDialogComponent,\r\n W2ReportOptionsDialogComponent,\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {\r\n constructor(\r\n public oidcSecurityService: OidcSecurityService,\r\n private iconRegistry: MatIconRegistry,\r\n private sanitizer: DomSanitizer\r\n ) {\r\n iconRegistry.addSvgIcon('custompdf', sanitizer.bypassSecurityTrustResourceUrl('assets/images/file-pdf-box.svg'));\r\n iconRegistry.addSvgIcon('customexcel', sanitizer.bypassSecurityTrustResourceUrl('assets/images/file-excel.svg'));\r\n iconRegistry.addSvgIcon('coach', sanitizer.bypassSecurityTrustResourceUrl('assets/images/coach.svg'));\r\n\r\n const openIDImplicitFlowConfiguration = new OpenIDImplicitFlowConfiguration();\r\n\r\n openIDImplicitFlowConfiguration.stsServer = 'https://localhost:44364';\r\n openIDImplicitFlowConfiguration.redirect_url = 'http://localhost:4200';\r\n // The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience.\r\n // The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client.\r\n openIDImplicitFlowConfiguration.client_id = 'StaffPortalAdmin';\r\n openIDImplicitFlowConfiguration.response_type = 'code'; // 'id_token token' Implicit Flow 'code' for code flow\r\n openIDImplicitFlowConfiguration.scope = 'openid profile pass.pcsIdentity StaffPortalAdminApi pass.role';\r\n openIDImplicitFlowConfiguration.post_logout_redirect_uri = 'https://localhost:44364/Unauthorized';\r\n openIDImplicitFlowConfiguration.start_checksession = true;\r\n openIDImplicitFlowConfiguration.silent_renew = true;\r\n openIDImplicitFlowConfiguration.silent_renew_url = 'http://localhost:4200/silent-renew.html';\r\n openIDImplicitFlowConfiguration.post_login_route = '/dataeventrecords';\r\n // HTTP 403\r\n openIDImplicitFlowConfiguration.forbidden_route = '/Forbidden';\r\n // HTTP 401\r\n openIDImplicitFlowConfiguration.unauthorized_route = '/Unauthorized';\r\n openIDImplicitFlowConfiguration.log_console_warning_active = true;\r\n openIDImplicitFlowConfiguration.log_console_debug_active = true;\r\n // id_token C8: The iat Claim can be used to reject tokens that were issued too far away from the current time,\r\n // limiting the amount of time that nonces need to be stored to prevent attacks.The acceptable range is Client specific.\r\n openIDImplicitFlowConfiguration.max_id_token_iat_offset_allowed_in_seconds = 10;\r\n\r\n const authWellKnownEndpoints = new AuthWellKnownEndpoints();\r\n authWellKnownEndpoints.issuer = 'https://localhost:44364';\r\n\r\n authWellKnownEndpoints.jwks_uri = 'https://localhost:44364/.well-known/openid-configuration/jwks';\r\n authWellKnownEndpoints.authorization_endpoint = 'https://localhost:44364/connect/authorize';\r\n authWellKnownEndpoints.token_endpoint = 'https://localhost:44364/connect/token';\r\n authWellKnownEndpoints.userinfo_endpoint = 'https://localhost:44364/connect/userinfo';\r\n authWellKnownEndpoints.end_session_endpoint = 'https://localhost:44364/connect/endsession';\r\n authWellKnownEndpoints.check_session_iframe = 'https://localhost:44364/connect/checksession';\r\n authWellKnownEndpoints.revocation_endpoint = 'https://localhost:44364/connect/revocation';\r\n authWellKnownEndpoints.introspection_endpoint = 'https://localhost:44364/connect/introspect';\r\n\r\n //undo this to reactivate oidc\r\n //this.oidcSecurityService.setupModule(\r\n // openIDImplicitFlowConfiguration,\r\n // authWellKnownEndpoints\r\n //);\r\n }\r\n}\r\n","/// \r\n\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\n\r\nimport { format } from 'date-fns';\r\n\r\nimport { InCountyService } from '../../services/incounty/incounty.service';\r\nimport { DownloadService } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { IncountyMileageTotals } from '../../models/incounty';\r\n\r\nvar bingSessionKey;\r\n\r\n@Component({\r\n selector: 'app-bing-map',\r\n templateUrl: './bing-map.component.html',\r\n styleUrls: ['./bing-map.component.scss'],\r\n})\r\nexport class BingMapComponent implements OnInit {\r\n map: Microsoft.Maps.Map;\r\n dataMileage: MatTableDataSource;\r\n IncountyMileage: IncountyMileageTotals[];\r\n MilageFound = null;\r\n ReportType: string;\r\n Scope: string;\r\n TypeSelectionMade: boolean;\r\n ScopeSelectionMade: boolean;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n displayedColumns = [\r\n 'LastName',\r\n 'FirstName',\r\n 'SAPID',\r\n 'Total',\r\n 'CostCenter',\r\n 'Fund',\r\n 'FunctionalArea',\r\n 'FundedProgram',\r\n 'MonthText',\r\n ];\r\n\r\n constructor(\r\n private inCountyService: InCountyService,\r\n private router: Router,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {}\r\n\r\n loadMap() {\r\n this.map = new Microsoft.Maps.Map(document.getElementById('mapId'), {\r\n credentials: 'ApJ51NXDrcMOfuYUAVWhwuOiO7mwL247T3W5oEaXVSxHhfnTWRTf0FfbOonD3UeV',\r\n });\r\n\r\n this.ClickGeocode();\r\n }\r\n\r\n ClickGeocode() {\r\n this.map.getCredentials(this.MakeBingMapsRESTRequest);\r\n }\r\n\r\n MakeBingMapsRESTRequest(sessionKey: string) {\r\n bingSessionKey = sessionKey;\r\n }\r\n\r\n SelectType(type: string) {\r\n this.ReportType = type;\r\n this.TypeSelectionMade = true;\r\n }\r\n\r\n SelectScope(scope: string) {\r\n this.Scope = scope;\r\n this.ScopeSelectionMade = true;\r\n }\r\n\r\n RestartReport() {\r\n this.ReportType = null;\r\n this.TypeSelectionMade = false;\r\n this.Scope = null;\r\n this.ScopeSelectionMade = false;\r\n this.dataMileage = null;\r\n }\r\n\r\n padLeft(text: string, padChar: string, size: number): string {\r\n return (String(padChar).repeat(size) + text).substr(size * -1, size);\r\n }\r\n\r\n GetInCountyMileage(monthYear: string, newSAPID: string) {\r\n if (monthYear.length < 7 || monthYear == null) {\r\n this.splashService.SnackbarError('Please ener a valid month/year');\r\n return;\r\n }\r\n\r\n let paddedSAPID: string = '';\r\n if (newSAPID > '') {\r\n paddedSAPID = this.padLeft(newSAPID, '0', 8);\r\n }\r\n console.log(monthYear);\r\n\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report',\r\n });\r\n\r\n this.inCountyService\r\n .GetInCountyMileage(this.userService.User.AuthToken, bingSessionKey, monthYear, this.ReportType, paddedSAPID)\r\n .subscribe(\r\n (data: IncountyMileageTotals[]) => {\r\n this.IncountyMileage = data;\r\n this.MilageFound = this.IncountyMileage.length > 0 ? true : false;\r\n this.dataMileage = new MatTableDataSource(this.IncountyMileage);\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n RunReport() {\r\n // Get options from the user before launching the report download.\r\n let now = new Date();\r\n let fname = 'Incounty-' + format(now, 'MMddyyyy') + '.xlsx';\r\n let AsDistrictOffice = this.userService.User.CurrentRole == 'SummerApp' || this.userService.User.CurrentRole == 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested excel file.',\r\n });\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 400,\r\n 1,\r\n fname,\r\n '',\r\n false,\r\n now,\r\n now,\r\n 0,\r\n AsDistrictOffice,\r\n 0,\r\n this.IncountyMileage,\r\n '',\r\n false\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n if (typeof Microsoft !== 'undefined') {\r\n console.log('BingMapComponent.ngOnInit');\r\n this.loadMap();\r\n }\r\n }\r\n}\r\n","
\r\n

Select Type of Record for Report

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

Type: {{ ReportType }}

\r\n
\r\n

Select Type of Report

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

Report: {{ Scope }}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\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 by SAPID

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Last NameFirst NameSAP NoPayroll Date9T01 In 9T02 OutAmountCost CenterFundFunctionFundend ProgMonth
{{ MileageTotals.LastName }}{{ MileageTotals.FirstName }}{{ ReportSAPID }}{{ MileageTotals.Total }}{{ MileageTotals.CostCenter }}{{ MileageTotals.Fund }}{{ MileageTotals.FunctionalArea }}{{ MileageTotals.FundedProgram }}{{ ReportMonthYear }}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n

No Milage Found!

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

Incounty Report Result

\r\n \r\n \r\n \r\n Last Name \r\n {{ element.LastName }} \r\n \r\n\r\n \r\n First Name \r\n {{ element.FirstName }} \r\n \r\n \r\n SAPID \r\n {{ element.SAPID }} \r\n \r\n \r\n Total \r\n {{ element.Total }} \r\n \r\n \r\n CostCenter \r\n {{ element.CostCenter }} \r\n \r\n \r\n Fund \r\n {{ element.Fund }} \r\n \r\n \r\n Functional Area \r\n {{ element.FunctionalArea }} \r\n \r\n \r\n Funded Program \r\n {{ element.FundedProgram }} \r\n \r\n \r\n Month \r\n {{ element.MonthText }} \r\n \r\n\r\n \r\n \r\n \r\n
\r\n","
\r\n
\r\n

Certification Tools

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

Certification Info Lookup

\r\n

\r\n Use the tools provided below to retrieve the same display of certification information (subject to formatting\r\n differences) that the selected employee would see in the Staff Portal on their \"Certification\" screen.\r\n

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

StaffPortal Cert Info

\r\n

\r\n \r\n

\r\n
\r\n \r\n \r\n FirstName \r\n {{ element.FirstName }} \r\n \r\n\r\n \r\n MiddleName \r\n {{ element.MiddleName }} \r\n \r\n\r\n \r\n LastName \r\n {{ element.LastName }} \r\n \r\n\r\n \r\n PersonnelArea \r\n {{ element.PersonnelArea }} \r\n \r\n\r\n \r\n Position \r\n {{ element.Position }} \r\n \r\n\r\n \r\n PersonnelGroup \r\n {{ element.PersonnelGroup }} \r\n \r\n\r\n \r\n PersonnelSubgroup \r\n {{ element.PersonnelSubgroup }} \r\n \r\n\r\n \r\n \r\n \r\n
\r\n

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n CertNumber \r\n {{ element.CertNumber }} \r\n \r\n\r\n \r\n CertEffective \r\n \r\n {{ element.CertEffective | date: 'shortDate' }}\r\n \r\n \r\n\r\n \r\n CertExpiration \r\n \r\n {{ element.CertExpiration | date: 'shortDate' }}\r\n \r\n \r\n\r\n \r\n CertType \r\n {{ element.CertType }} \r\n \r\n\r\n \r\n CertDescription \r\n {{ element.CertDescription }} \r\n \r\n\r\n \r\n Subjects \r\n\r\n \r\n
\r\n

{{ item.Subject }}, {{ item.DESCRIPTION }}

\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Category \r\n {{ element.Category }} \r\n \r\n\r\n \r\n AssignDate \r\n \r\n {{ element.AssignDate | date: 'shortDate' }}\r\n \r\n \r\n\r\n \r\n Cntr \r\n {{ element.Cntr }} \r\n \r\n\r\n \r\n Course \r\n {{ element.Course }} \r\n \r\n\r\n \r\n CourseDesc \r\n {{ element.CourseDesc }} \r\n \r\n\r\n \r\n Student \r\n {{ element.Student }} \r\n \r\n\r\n \r\n CompletionDate \r\n \r\n {{ element.CompletionDate | date: 'shortDate' }}\r\n \r\n \r\n\r\n \r\n Courses \r\n\r\n \r\n
\r\n

\r\n Description: {{ item.CourseDesc }}, Completion Date:\r\n {{ item.Completion_Date | date: 'shortDate' }}, Deadline Date:\r\n {{ item.DeadlineDate | date: 'shortDate' }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n DatePassed \r\n {{ element.DatePassed | date: 'shortDate' }} \r\n \r\n\r\n \r\n Subject \r\n {{ element.KSBEZ }} \r\n \r\n\r\n \r\n DESCRIPTION \r\n {{ element.DESCRIPTION }} \r\n \r\n\r\n \r\n \r\n \r\n

\r\n \r\n \r\n Description \r\n {{ element.Description }} \r\n \r\n\r\n \r\n DatePassed \r\n {{ element.DatePassed | date: 'shortDate' }} \r\n \r\n\r\n \r\n \r\n \r\n

\r\n \r\n \r\n Description \r\n {{ element.Description }} \r\n \r\n\r\n \r\n DatePassed \r\n {{ element.DatePassed | date: 'shortDate' }} \r\n \r\n\r\n \r\n SLART \r\n {{ element.SLART }} \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n DAR01 \r\n {{ element.DAR01 }} \r\n \r\n\r\n \r\n DESCRIPTION \r\n {{ element.DESCRIPTION }} \r\n \r\n\r\n \r\n Approved \r\n {{ element.Approved | date: 'shortDate' }} \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

Highest Completed

\r\n

{{ HighestCompleted }}

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n License \r\n {{ element.License }} \r\n \r\n\r\n \r\n Description \r\n {{ element.Description }} \r\n \r\n\r\n \r\n Expiration \r\n {{ element.Expiration | date: 'shortDate' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Requirement \r\n {{ element.CERT_DEF_TEXT }} \r\n \r\n\r\n \r\n Deadline Date \r\n {{ element.CERT_DEF_DATE }} \r\n \r\n\r\n \r\n Type \r\n {{ element.CERT_DEF_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

Certification Renewal Lookup

\r\n

\r\n Use the tools provided below to retrieve the upload information for the selected employee's application for\r\n certification renewal and/or add-ons. Note: This will only return information on the selected employee if an upload has\r\n been processed for the employee's renewal application.\r\n

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

Renewals

\r\n
\r\n \r\n \r\n SAPID \r\n {{ element.EmployeeSAPID }} \r\n \r\n \r\n First \r\n {{ element.EmployeeFirstName }} \r\n \r\n \r\n Last \r\n {{ element.EmployeeLastName }} \r\n \r\n\r\n \r\n Application ID \r\n {{ element.CertRenewalID }} \r\n \r\n\r\n \r\n Method Type \r\n {{ element.MethodType }} \r\n \r\n\r\n \r\n Date Created \r\n {{ element.DateCreated | date: 'shortDate' }} \r\n \r\n\r\n \r\n View Upload \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

Agreement To Earn Letters Signing Report

\r\n

\r\n Use the button provided below to run a report which lists all employees who have signed receipt of an Agreement to Earn\r\n Out-of-Field Certification letter within the selected time period.\r\n

\r\n \r\n

Agreement To Earn Letters Lookup

\r\n

\r\n Use the tools provided below to look up any Agreement to Earn Out-of-Field Certification letters assigned to employees\r\n in the system. You can view the PDF of the letter assigned, and also view the signature information (if any) of the\r\n letter as well.\r\n

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

\r\n Information for {{ AgreementToEarnEmployeeInfo.FirstName | titleCase }}\r\n {{ AgreementToEarnEmployeeInfo.LastName | titleCase }} - {{ AgreementToEarnEmployeeInfo.Position }} (#{{\r\n AgreementToEarnEmployeeInfo.SAPID\r\n }})\r\n

\r\n \r\n \r\n Notice Date\r\n \r\n
Notice Date
\r\n {{ item.DocumentDate | date: 'M/d/yyyy' }}\r\n
\r\n
\r\n \r\n Download Link\r\n \r\n \r\n \r\n \r\n \r\n Signed\r\n \r\n
Signed
\r\n {{ item.IsSigned | yesNo }}\r\n
\r\n
\r\n \r\n Resolved\r\n \r\n
Resolved
\r\n {{ item.IsResolved | yesNo }}\r\n
\r\n \r\n searchView Resolution\r\n \r\n \r\n
\r\n
\r\n \r\n Signature\r\n \r\n
Signature
\r\n
\r\n {{ item.SignatureProvided }}\r\n
\r\n \r\n
N/A
\r\n
\r\n
\r\n
\r\n \r\n Date Signed\r\n \r\n
Date Signed
\r\n
{{ item.DateUpdated | date: 'M/d/yyyy h:mm a' }}
\r\n \r\n
N/A
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
Agreement to Earn Information
\r\n
There is no data available.
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\nimport { Subscription, TeardownLogic, merge, of as observableOf } from 'rxjs';\r\nimport { format } from 'date-fns';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport { MediaChange, MediaObserver } from '@angular/flex-layout';\r\n\r\nimport { CertificationService } from '../../services/certification/certification.service';\r\nimport { DownloadService, HttpMethod, DownloadFormat } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { TitleCasePipe } from '../../pipes/titlecase.pipe';\r\n\r\nimport { ReportInfo } from '../../models/reports';\r\nimport {\r\n CertRpt1_Result,\r\n CertRptCertificate_Result,\r\n CertificateESOLReport,\r\n CertRptExamsPassed,\r\n CertRptExamsPassedMisc,\r\n CertRptExamsPassedMisc2,\r\n CertRptOutOfFieldSubjects,\r\n CertRptStateLicense,\r\n CertRptCertDeficiency,\r\n CertRenewalMethods,\r\n AgreementToEarnDocument,\r\n} from 'models/certification';\r\nimport { Validators } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-certification',\r\n templateUrl: './certification.component.html',\r\n styleUrls: ['./certification.component.scss'],\r\n})\r\nexport class CertificationComponent implements OnInit, OnDestroy {\r\n private _subrelease: Subscription = new Subscription();\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n AvailableReports: ReportInfo[];\r\n AvailableSchoolYears: string[];\r\n CurrentApplicationSchoolYear: string;\r\n PartialViewReady: boolean;\r\n SmallDisplay: boolean;\r\n HighestCompleted: string;\r\n ReportSAPID: string;\r\n\r\n // Agreement To Earn Tool\r\n AgreementToEarnDocuments: AgreementToEarnDocument[];\r\n AgreementToEarnDocumentsSource: MatTableDataSource;\r\n AgreementToEarnEmployeeInfo: CertRpt1_Result;\r\n ATENoData: boolean;\r\n ATESearchConducted: boolean;\r\n ATEVisibleHeaders = ['DocumentDate', 'DownloadLink', 'IsSigned', 'IsResolved', 'SignatureProvided', 'DateUpdated'];\r\n ATEVisibleColumns: string[];\r\n\r\n // CertRpt1: CertRpt1_Result[];\r\n dataCertRpt1: MatTableDataSource;\r\n\r\n // CertRptCertificate: CertRptCertificate_Result[];\r\n dataCertRptCertificate: MatTableDataSource;\r\n\r\n // CertificateESOLReport: CertificateESOLReport[];\r\n dataCertificateESOLReport: MatTableDataSource;\r\n dataCertEducationReport: MatTableDataSource;\r\n dataCertExamsPassedReport: MatTableDataSource;\r\n dataCertExamsPassedMiscReport: MatTableDataSource;\r\n dataCertExamsPassedMisc2Report: MatTableDataSource;\r\n dataCertOutOfFieldSubjectsReport: MatTableDataSource;\r\n dataCertStateLicenseReport: MatTableDataSource;\r\n dataCertCertDeficiencyReport: MatTableDataSource;\r\n dataCertRenewalMethods: MatTableDataSource;\r\n\r\n resultsLength = 0;\r\n isLoadingResults = true;\r\n isRateLimitReached = false;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n displayedColumns = ['FirstName', 'MiddleName', 'LastName', 'PersonnelArea', 'Position', 'PersonnelGroup', 'PersonnelSubgroup'];\r\n certificateColumns = ['CertNumber', 'CertEffective', 'CertExpiration', 'CertType', 'CertDescription', 'Subjects'];\r\n esolColumns = ['Category', 'AssignDate', 'Cntr', 'Course', 'CourseDesc', 'Student', 'CompletionDate', 'Courses'];\r\n examsPassedColumns = ['DatePassed', 'KSBEZ', 'DESCRIPTION'];\r\n examsPassedMiscColumns = ['Description', 'DatePassed'];\r\n examsPassedMisc2Columns = ['Description', 'DatePassed', 'SLART'];\r\n outOfFieldColumns = ['DAR01', 'DESCRIPTION', 'Approved'];\r\n stateLicenseColumns = ['License', 'Description', 'Expiration'];\r\n deficiencyColumns = ['CERT_DEF_TEXT', 'CERT_DEF_DATE', 'CERT_DEF_TYPE'];\r\n methodsColumns = [\r\n 'CertRenewalID',\r\n 'EmployeeSAPID',\r\n 'EmployeeFirstName',\r\n 'EmployeeLastName',\r\n 'MethodType',\r\n 'ViewUpload',\r\n 'DateCreated',\r\n ];\r\n\r\n constructor(\r\n private certificationService: CertificationService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private splashService: SplashService,\r\n private datePipe: DatePipe,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n public media: MediaObserver,\r\n private titleCasePipe: TitleCasePipe,\r\n private userService: UserService\r\n ) {}\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n const self = this;\r\n\r\n // Agreement to Earn\r\n self.AgreementToEarnDocuments = [];\r\n self.AgreementToEarnDocumentsSource = new MatTableDataSource([{} as AgreementToEarnDocument]);\r\n self.AgreementToEarnEmployeeInfo = null;\r\n self.ATENoData = true;\r\n self.ATESearchConducted = false;\r\n self.ATEVisibleColumns = ['NoData'];\r\n\r\n // Setup\r\n self.subrelease = self.media.asObservable().subscribe((change) => {\r\n this.SmallDisplay = this.media.isActive('xs') || this.media.isActive('sm');\r\n });\r\n\r\n this.SmallDisplay = this.media.isActive('xs') || this.media.isActive('sm');\r\n }\r\n\r\n // #region Download ATE PDF\r\n\r\n DownloadATEPDF(item: AgreementToEarnDocument) {\r\n const self = this;\r\n\r\n if (!item || item.DocumentImageId == null) {\r\n return;\r\n }\r\n\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Downloading PDF...',\r\n })\r\n .subscribe((_) => {\r\n self.downloadService\r\n .RetrieveDownload(\r\n HttpMethod.GET,\r\n this.certificationService.svcAddress + 'GetAgreementToEarnPDF',\r\n {\r\n AuthToken: this.userService.User.AuthToken || '',\r\n DocumentImageId: item.DocumentImageId != null ? item.DocumentImageId : '',\r\n purpose: 'save',\r\n filename: item.DocumentFilename || 'ATEDocument.PDF',\r\n },\r\n DownloadFormat.PDF\r\n )\r\n .subscribe(\r\n (__) => {\r\n self.splashService.CloseSplash();\r\n },\r\n (err) => self.errorService.HandleServiceError(err)\r\n );\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n getPDF() {\r\n // The user has made their selections. Process the report request with these options in place.\r\n let now = new Date();\r\n //alert(element.ExitSurveyID);\r\n let fname = 'CertificationReportCard-' + format(now, 'MMddyyyy') + '.pdf';\r\n let AsDistrictOffice =\r\n this.userService.User.CurrentRole == 'Certification' || this.userService.User.CurrentRole == 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n });\r\n\r\n //rep.ReportType = 1;\r\n //rep.ReportID = 1;\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 500,\r\n 0,\r\n fname,\r\n '',\r\n false,\r\n now,\r\n now,\r\n 0,\r\n true,\r\n 0,\r\n null,\r\n this.ReportSAPID,\r\n false\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n DownloadCertUpload(element: CertRenewalMethods) {\r\n //let formMasterID: number = 6;\r\n\r\n this.downloadService\r\n .DownloadCertUpload(this.userService.User.AuthToken, element.CertRenewalUploadID)\r\n .subscribe(null, (error) => {\r\n let body = error && error instanceof Response ? error.json() : error;\r\n let msg: string = body || 'An unknown error has occurred.';\r\n\r\n this.splashService.SnackbarError(body, 10000);\r\n });\r\n }\r\n\r\n CertRpt1Get(ReportSAPID: string) {\r\n this.certificationService.CertRpt1Get(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRpt1_Result[]) => {\r\n this.dataCertRpt1 = new MatTableDataSource(data);\r\n this.dataCertRpt1.paginator = this.paginator;\r\n this.dataCertRpt1.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptCertificateGet(ReportSAPID: string) {\r\n this.certificationService.CertRptCertificateGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptCertificate_Result[]) => {\r\n this.dataCertRptCertificate = new MatTableDataSource(data);\r\n this.dataCertRptCertificate.paginator = this.paginator;\r\n this.dataCertRptCertificate.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertificateESOLReportGet(ReportSAPID: string) {\r\n this.certificationService.CertRptESOLGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertificateESOLReport[]) => {\r\n this.dataCertificateESOLReport = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptEducationGet(ReportSAPID: string) {\r\n this.certificationService.CertRptEducationGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: string) => {\r\n //this.dataCertEducationReport = new MatTableDataSource(data);\r\n this.HighestCompleted = data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptExamsPassedGet(ReportSAPID: string) {\r\n this.certificationService.CertRptExamsPassedGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptExamsPassed[]) => {\r\n this.dataCertExamsPassedReport = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptExamsPassedMiscGet(ReportSAPID: string) {\r\n this.certificationService.CertRptExamsPassedMiscGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptExamsPassedMisc[]) => {\r\n this.dataCertExamsPassedMiscReport = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptExamsPassedMisc2Get(ReportSAPID: string) {\r\n this.certificationService.CertRptExamsPassedMisc2Get(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptExamsPassedMisc2[]) => {\r\n this.dataCertExamsPassedMisc2Report = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptOutOfFieldSubjectsGet(ReportSAPID: string) {\r\n this.certificationService.CertRptOutOfFieldSubjectsGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptOutOfFieldSubjects[]) => {\r\n this.dataCertOutOfFieldSubjectsReport = new MatTableDataSource(data.filter((value) => value.Approved));\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptStateLicenseGet(ReportSAPID: string) {\r\n this.certificationService.CertRptStateLicenseGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptStateLicense[]) => {\r\n this.dataCertStateLicenseReport = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRptCertDeficiencyGet(ReportSAPID: string) {\r\n this.certificationService.CertRptCertDeficiencyGet(this.userService.User.AuthToken, ReportSAPID).subscribe(\r\n (data: CertRptCertDeficiency[]) => {\r\n this.dataCertCertDeficiencyReport = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n CertRenewalMethodsGet(CertRenewalID: number) {\r\n this.dataCertRpt1 = null;\r\n this.certificationService.CertRenewalMethodsGet(this.userService.User.AuthToken, CertRenewalID).subscribe(\r\n (data: CertRenewalMethods[]) => {\r\n this.dataCertRenewalMethods = new MatTableDataSource(data);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n // #region Get Agreement To Earn Info\r\n\r\n GetAgreementToEarnInfo(TargetSAPID: string) {\r\n const self = this;\r\n\r\n if (!TargetSAPID) {\r\n return;\r\n }\r\n\r\n TargetSAPID = ('00000000' + TargetSAPID).slice(-8);\r\n\r\n self.certificationService.GetAgreementToEarnDocuments(self.userService.User.AuthToken, TargetSAPID).subscribe(\r\n (info) => {\r\n self.AgreementToEarnDocuments = (info && info.Documents) || [];\r\n self.AgreementToEarnEmployeeInfo = info && info.EmployeeInfo;\r\n self.ATENoData = !self.AgreementToEarnDocuments.length;\r\n self.ATESearchConducted = true;\r\n\r\n self.AgreementToEarnDocumentsSource = new MatTableDataSource(\r\n self.ATENoData ? [{} as AgreementToEarnDocument] : self.AgreementToEarnDocuments\r\n );\r\n\r\n self.ATEVisibleColumns = self.ATENoData ? ['NoData'] : self.ATEVisibleHeaders;\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n GetCertificationInfo(ReportSAPID: string) {\r\n this.dataCertRenewalMethods = null;\r\n this.ReportSAPID = ReportSAPID;\r\n this.CertRpt1Get(ReportSAPID);\r\n this.CertRptCertificateGet(ReportSAPID);\r\n this.CertificateESOLReportGet(ReportSAPID);\r\n this.CertRptEducationGet(ReportSAPID);\r\n this.CertRptExamsPassedGet(ReportSAPID);\r\n this.CertRptExamsPassedMiscGet(ReportSAPID);\r\n this.CertRptExamsPassedMisc2Get(ReportSAPID);\r\n this.CertRptOutOfFieldSubjectsGet(ReportSAPID);\r\n this.CertRptStateLicenseGet(ReportSAPID);\r\n this.CertRptCertDeficiencyGet(ReportSAPID);\r\n }\r\n\r\n // #region Resolve ATE\r\n\r\n ResolveATE(item: AgreementToEarnDocument) {\r\n const self = this;\r\n\r\n if (!item) {\r\n return;\r\n }\r\n // Collect the text rationale before proceeding.\r\n self.dialogService\r\n .OpenInputBoxDialog({\r\n TitleText: 'Resolve Agreement To Earn Letter',\r\n MessageText:\r\n `You are about to mark the following Agreement To Earn letter as resolved:

` +\r\n `Employee: ${self.titleCasePipe.transform(self.AgreementToEarnEmployeeInfo.FirstName)} ` +\r\n `${self.titleCasePipe.transform(self.AgreementToEarnEmployeeInfo.LastName)}
` +\r\n `Title: ${self.AgreementToEarnEmployeeInfo.Position}
` +\r\n `Pers. #: ${self.AgreementToEarnEmployeeInfo.SAPID}
` +\r\n `Notice Date: ${item.DocumentDateFormatted}

` +\r\n `Once resolved, the employee will no longer see this Agreement To Earn letter in his/her Staff Portal account, ` +\r\n `and he/she will not be notified about this letter in the Staff Portal.

` +\r\n `This operation requires an explanation be provided for the Staff Portal Admin security logs. Please enter a ` +\r\n `brief description in the box provided below:`,\r\n OKText: 'Resolve',\r\n CancelText: 'Cancel',\r\n Validators: [Validators.maxLength(5000)],\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Process the request to resolve to the system.\r\n self.certificationService\r\n .ResolveAgreementToEarn(\r\n self.userService.User.AuthToken,\r\n item.DocumentImageId,\r\n self.AgreementToEarnEmployeeInfo.SAPID,\r\n 'R',\r\n result\r\n )\r\n .subscribe(\r\n (ates) => {\r\n // Update the list of ATEs in the table with the updated info passed in.\r\n self.AgreementToEarnDocuments = (ates && ates.Documents) || [];\r\n self.AgreementToEarnEmployeeInfo = ates && ates.EmployeeInfo;\r\n self.ATENoData = !self.AgreementToEarnDocuments.length;\r\n self.ATESearchConducted = true;\r\n\r\n self.AgreementToEarnDocumentsSource = new MatTableDataSource(\r\n self.ATENoData ? [{} as AgreementToEarnDocument] : self.AgreementToEarnDocuments\r\n );\r\n\r\n self.ATEVisibleColumns = self.ATENoData ? ['NoData'] : self.ATEVisibleHeaders;\r\n\r\n // Splash success.\r\n self.splashService.SnackbarSuccess('Agreement To Earn Letter Resolved Successfully.');\r\n },\r\n (err) => self.errorService.HandleServiceError(err)\r\n );\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Run ATE Signing Report\r\n\r\n RunATESigningReport() {\r\n const self = this;\r\n\r\n self.dialogService\r\n .OpenATEReportOptionsDialog({\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n `Please use the tools below to refine the criteria used to generate your report. You may ` +\r\n `restrict your report by a specific date or range of dates.

Once you have made any ` +\r\n `selections you wish to use, click the \"Run Report\" button to generate the report.

`,\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n DatePrompt: 'Agreement to Earn',\r\n height: '500px',\r\n })\r\n .subscribe((resp) => {\r\n if (!resp) {\r\n return;\r\n }\r\n\r\n // The user has made selections. Process the report request with these options in place.\r\n const dateType = !resp.UseDateRestriction ? 0 : resp.DateRestrictionType + (resp.SearchType === 2 ? 3 : 0);\r\n\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Retrieving report...',\r\n })\r\n .subscribe((__) => {\r\n self.downloadService\r\n .RetrieveDownload(\r\n HttpMethod.GET,\r\n `Api/Services/Certification/GetAgreementToEarnSigningList`,\r\n {\r\n AuthToken: self.userService.User.AuthToken || '',\r\n TimeType: dateType != null ? '' + dateType : '0',\r\n Time1: resp.DateBegin != null ? resp.DateBegin.toJSON() : '',\r\n Time2: resp.DateEnd != null ? resp.DateEnd.toJSON() : '',\r\n },\r\n DownloadFormat.Excel\r\n )\r\n .subscribe(\r\n (_) => {\r\n self.splashService.CloseSplash();\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region View Resolution\r\n\r\n ViewResolution(item: AgreementToEarnDocument) {\r\n const self = this;\r\n\r\n self.dialogService\r\n .OpenMessageBoxDialog({\r\n TitleText: 'Agreement To Earn Letter Resolution',\r\n MessageText:\r\n `The Agreement To Earn letter for ${self.titleCasePipe.transform(self.AgreementToEarnEmployeeInfo.FirstName)}` +\r\n ` ${self.titleCasePipe.transform(self.AgreementToEarnEmployeeInfo.LastName)} (#${\r\n self.AgreementToEarnEmployeeInfo.SAPID\r\n }) ` +\r\n `was resolved previously in the Staff Portal Admin system. The resolution information is provided below:

` +\r\n `Resolution Date: ${self.datePipe.transform(item.DateResolved, 'M/d/yyyy h:mm a')}
` +\r\n `Resolver: ${self.titleCasePipe.transform(item.ResolverFirstName)} ` +\r\n `${self.titleCasePipe.transform(item.ResolverLastName)} (#${item.ResolverSAPID})
` +\r\n `Resolver Title: ${item.ResolverLocalJobTitle}
` +\r\n `Rationale:
${item.Rationale}`,\r\n OKText: 'OK',\r\n })\r\n .subscribe();\r\n }\r\n\r\n // #endregion\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { format } from 'date-fns';\r\nimport { DialogService } from 'services/dialogs/dialogs.service';\r\nimport { DownloadService } from 'services/download/download.service';\r\nimport { ErrorService } from 'services/error/error.service';\r\nimport { SplashService } from 'services/splash/splash.service';\r\nimport { SummerAppService } from 'services/summerapp/summerapp.service';\r\nimport { UserService } from 'services/user/user.service';\r\n\r\n@Component({\r\n selector: 'app-coachpoolapplication',\r\n templateUrl: './coachpoolapplication.component.html',\r\n styleUrls: ['./coachpoolapplication.component.scss'],\r\n})\r\nexport class CoachpoolAppComponent implements OnInit {\r\n constructor(\r\n private summerAppService: SummerAppService,\r\n private router: Router,\r\n private datePipe: DatePipe,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n runreport() {\r\n let now = new Date();\r\n let fname = 'CoachPoolApplication-' + format(now, 'MMddyyyy') + '.xlsx';\r\n let AsDistrictOffice = this.userService.User.CurrentRole == 'CoachApp' || this.userService.User.CurrentRole == 'Developer';\r\n\r\n this.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Generating Report...',\r\n })\r\n .subscribe(() => {\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 800,\r\n 1,\r\n fname,\r\n '2122',\r\n false,\r\n null,\r\n null,\r\n null,\r\n AsDistrictOffice,\r\n 0,\r\n null,\r\n '',\r\n false\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n });\r\n }\r\n}\r\n","
\r\n

Coach Pool Application

\r\n \r\n
\r\n","
\r\n

COVID-19 Reporting Tools

\r\n

Use the tools provided below to run various reports related to staff member COVID-19 option selections.

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

COVID-19 Option Selection Window

\r\n
\r\n The COVID-19 Option Select Window in the Staff Portal is currently {{ SelectionWindowStatus }}.\r\n
\r\n
\r\n \r\n \r\n Window Active?\r\n {{ win.Status | yesNo }} \r\n \r\n \r\n Window Opens\r\n {{ win.DateBegin | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Window Closes\r\n {{ win.DateEnd | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nimport { Subscription, TeardownLogic } from 'rxjs';\r\nimport { isWithinInterval } from 'date-fns';\r\n\r\nimport { COVIDService } from 'services/covid/covid.service';\r\nimport { DownloadService, HttpMethod, DownloadFormat } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { COVIDWindowInfo } from '../../models/covid';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'app-covid',\r\n templateUrl: 'covid.component.html',\r\n styleUrls: ['covid.component.scss'],\r\n})\r\nexport class COVIDComponent implements OnDestroy, OnInit {\r\n private _subrelease: Subscription = new Subscription();\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n CanSeeAltWork: boolean;\r\n CanSeeChildCare: boolean;\r\n CanSeeExposure: boolean;\r\n CanUseWindow: boolean;\r\n selectionWindowSource: MatTableDataSource;\r\n SelectionWindowStatus: string;\r\n COVIDWindowInfo: COVIDWindowInfo;\r\n SmallDisplay: boolean;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n constructor(\r\n private covidService: COVIDService,\r\n private datePipe: DatePipe,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {}\r\n\r\n // #region ngOnDestroy\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region OnInit\r\n\r\n ngOnInit() {\r\n this.GetCOVIDSelectionWindow();\r\n\r\n this.CanSeeAltWork = false;\r\n this.CanSeeChildCare = false;\r\n this.CanSeeExposure = false;\r\n this.CanUseWindow = false;\r\n\r\n this.subrelease = this.userService.UserSubject.subscribe((_user) => {\r\n this.CanSeeAltWork = _user && _user.Roles && (_user.Roles.IsCOVIDAltWork || _user.Roles.IsDeveloper);\r\n this.CanSeeChildCare = _user && _user.Roles && (_user.Roles.IsCOVIDChildCare || _user.Roles.IsDeveloper);\r\n this.CanSeeExposure = _user && _user.Roles && (_user.Roles.IsCOVIDExposure || _user.Roles.IsDeveloper);\r\n this.CanUseWindow = _user && _user.Roles && (_user.Roles.IsCOVIDWindow || _user.Roles.IsDeveloper);\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Edit Window\r\n\r\n EditWindow(win: COVIDWindowInfo) {\r\n const self = this;\r\n\r\n if (!win) {\r\n return;\r\n }\r\n\r\n self.dialogService\r\n .OpenSemiMonthlyWindowOptionsDialog({\r\n TitleText: 'Select Window Options',\r\n OKText: 'Update Window',\r\n DateBegin: win.DateBegin,\r\n DateEnd: win.DateEnd,\r\n Activate: win.Status,\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n const todayInRange = isWithinInterval(new Date(), {\r\n start: result.DateBegin,\r\n end: result.DateEnd,\r\n });\r\n const willBeOpen = todayInRange && result.Activate;\r\n\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to update the COVID-19 Option Selection window as follows:

` +\r\n `Window opens: ${self.datePipe.transform(result.DateBegin, 'M/d/yyyy h:mm a')}
` +\r\n `Window closes: ${self.datePipe.transform(result.DateEnd, 'M/d/yyyy h:mm a')}
` +\r\n `Activate window: ${result.Activate ? 'Yes' : 'No'}

` +\r\n `When this request completes, the selection window will be currently ` +\r\n `${willBeOpen ? 'OPEN' : 'CLOSED'}.

Are you sure you wish to ` +\r\n `submit this change?`,\r\n OKText: 'Yes - Update Window',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((conf) => {\r\n if (!conf) {\r\n return;\r\n }\r\n\r\n // Send request to server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Updating selection window...',\r\n })\r\n .subscribe((_) => {\r\n self.covidService\r\n .UpdateCOVIDSelectionWindow(\r\n self.userService.User.AuthToken,\r\n result.DateBegin,\r\n result.DateEnd,\r\n result.Activate\r\n )\r\n .subscribe(\r\n (window) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n\r\n self.splashService.SnackbarSuccess(\r\n 'COVID-19 Option Selection Window Updated Successfully.'\r\n );\r\n\r\n // Update the table to show the update.\r\n self.COVIDWindowInfo = window;\r\n self.selectionWindowSource = new MatTableDataSource([window]);\r\n self.SelectionWindowStatus =\r\n self.COVIDWindowInfo && self.COVIDWindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get COVID Selection Window\r\n\r\n GetCOVIDSelectionWindow() {\r\n this.covidService.GetCOVIDSelectionWindow(this.userService.User.AuthToken).subscribe((data: COVIDWindowInfo) => {\r\n const today = new Date();\r\n\r\n this.COVIDWindowInfo = data;\r\n this.selectionWindowSource = new MatTableDataSource([data]);\r\n this.SelectionWindowStatus = this.COVIDWindowInfo && this.COVIDWindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Run COVID Report\r\n\r\n RunCOVIDReport(reportnum: number) {\r\n const self = this;\r\n\r\n let reportName = '';\r\n\r\n switch (reportnum) {\r\n case 0: // All selections\r\n reportName = 'All Employee Selections';\r\n break;\r\n case 1: // Exposure Forms\r\n reportName = 'Exposure Forms';\r\n break;\r\n case 2: // Childcare Forms\r\n reportName = 'Childcare Forms';\r\n break;\r\n case 3: // Alternative Work Request\r\n reportName = 'Alternative Work Requests';\r\n break;\r\n }\r\n\r\n if (!reportName) {\r\n return;\r\n }\r\n\r\n self.dialogService\r\n .OpenSemiMonthlyReportOptionsDialog({\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n `Please use the tools below to refine the criteria used to generate your report. You may ` +\r\n `restrict your report by a specific date or range of dates.

Once you have made any ` +\r\n `selections you wish to use, click the \"Run Report\" button to generate the report.

`,\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n })\r\n .subscribe((resp) => {\r\n if (!resp) {\r\n return;\r\n }\r\n\r\n // The user has made selections. Process the report request with these options in place.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Retrieving report...',\r\n })\r\n .subscribe((__) => {\r\n self.downloadService\r\n .RetrieveDownload(\r\n HttpMethod.GET,\r\n `Api/Services/Misc/GetCOVIDSelectionReport`,\r\n {\r\n AuthToken: self.userService.User.AuthToken || '',\r\n ReportType: '' + reportnum,\r\n TimeType: resp.UseDateRestriction ? resp.DateRestrictionType : '0',\r\n Time1: resp.DateBegin != null ? resp.DateBegin.toJSON() : '',\r\n Time2: resp.DateEnd != null ? resp.DateEnd.toJSON() : '',\r\n },\r\n DownloadFormat.Excel\r\n )\r\n .subscribe(\r\n (_) => {\r\n self.splashService.CloseSplash();\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Toggle Window\r\n\r\n ToggleWindow(win: COVIDWindowInfo, toSet: boolean) {\r\n const self = this;\r\n\r\n if (!win || win.Status === toSet) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n const todayInRange = isWithinInterval(new Date(), {\r\n start: win.DateBegin,\r\n end: win.DateEnd,\r\n });\r\n const willBeOpen = todayInRange && toSet;\r\n\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to ${toSet ? 'enable' : 'disable'} the COVID-19 Option Selection window. ` +\r\n `When this request completes, the COVID-19 Option Selection window will be currently ` +\r\n `${willBeOpen ? 'OPEN' : 'CLOSED'}.

Are you sure you wish to ` +\r\n `${toSet ? 'enable' : 'disable'} the window?`,\r\n OKText: `Yes - ${toSet ? 'Enable' : 'Disable'} Window`,\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((conf) => {\r\n if (!conf) {\r\n return;\r\n }\r\n\r\n // Send request to server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: `${toSet ? 'Enabling' : 'Disabling'} selection window...`,\r\n })\r\n .subscribe((_) => {\r\n self.covidService\r\n .UpdateCOVIDSelectionWindow(self.userService.User.AuthToken, win.DateBegin, win.DateEnd, toSet)\r\n .subscribe(\r\n (window) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n\r\n self.splashService.SnackbarSuccess(\r\n `COVID-19 Option Selection Window ${toSet ? 'Enabled' : 'Disabled'} Successfully.`\r\n );\r\n\r\n // Update the table to show the update.\r\n self.COVIDWindowInfo = window;\r\n self.selectionWindowSource = new MatTableDataSource([window]);\r\n self.SelectionWindowStatus =\r\n self.COVIDWindowInfo && self.COVIDWindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n {{ elemPerPage }}\r\n \r\n \r\n \r\n
\r\n\r\n
{{ getRangeLabel(pageIndex, pageSize, length) }}
\r\n\r\n \r\n arrow_back_ios\r\n \r\n\r\n \r\n arrow_forward_ios\r\n \r\n
","import { FormControl, FormGroup } from '@angular/forms';\r\nimport { Component, Input, AfterViewInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-double-row-paginator',\r\n templateUrl: './double-row-paginator.component.html',\r\n styleUrls: ['./double-row-paginator.component.css'],\r\n})\r\nexport class DoubleRowPaginatorComponent extends MatPaginator implements AfterViewInit {\r\n selector = new FormControl();\r\n selectorGroup = new FormGroup({\r\n selector: this.selector,\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n this.setInitialValues(this.pageSize);\r\n this.selector.setValue('5');\r\n this.selectorGroup.valueChanges.subscribe((data) => this.selectChanged(data.selector));\r\n }\r\n\r\n lastIndex: number;\r\n initialPageSize = this.pageSize;\r\n\r\n setInitialValues(value) {\r\n setTimeout(() => {\r\n if (this.length !== 0) {\r\n this.selectChanged(value);\r\n } else {\r\n this.setInitialValues(value);\r\n }\r\n }, 100);\r\n }\r\n\r\n selectChanged(value) {\r\n console.log('The value is ' + JSON.stringify(value));\r\n const startIndex = this.pageIndex * this.pageSize;\r\n this.pageSize = value * 2;\r\n this.pageIndex = Math.floor(startIndex / this.pageSize);\r\n this.lastIndex = Math.ceil(this.length / this.pageSize);\r\n this.fireEvent();\r\n }\r\n\r\n getRangeLabel(page: number, pageSize: number, length: number) {\r\n if (length !== 0) {\r\n this.lastIndex = this.length / this.pageSize;\r\n if (length == 0 || pageSize == 0) {\r\n return `0 of ${length}`;\r\n }\r\n length = Math.max(length, 0);\r\n const startIndex = page * pageSize;\r\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n return `${startIndex / 2 + 1} - ${endIndex / 2} of ${length / 2}`;\r\n }\r\n }\r\n\r\n getArrowColor(value) {\r\n if (this.pageIndex === 0 && value === 'left') {\r\n return 'black'; // grayish color\r\n } else if (value === 'right' && this.pageIndex + 1 === Math.ceil(this.lastIndex)) {\r\n return 'black'; // grayish color\r\n } else {\r\n return '#adadad';\r\n }\r\n }\r\n\r\n previousPage() {\r\n if (this.pageIndex !== 0) {\r\n --this.pageIndex;\r\n this.fireEvent();\r\n }\r\n }\r\n\r\n fireEvent() {\r\n this.page.emit({ pageIndex: this.pageIndex, pageSize: this.pageSize, length: this.length });\r\n console.log('Fired event: ' + JSON.stringify({ pageIndex: this.pageIndex, pageSize: this.pageSize, length: this.length }));\r\n }\r\n\r\n nextPage() {\r\n if (this.pageIndex + 1 !== Math.ceil(this.lastIndex)) {\r\n ++this.pageIndex;\r\n this.fireEvent();\r\n }\r\n }\r\n\r\n getCursorStyle(value) {\r\n if (value === 'left' && this.pageIndex === 0) {\r\n return 'context-menu';\r\n } else if (value === 'right') {\r\n if (Math.ceil(this.lastIndex) === this.pageIndex + 1) {\r\n return 'context-menu';\r\n }\r\n } else {\r\n return 'pointer';\r\n }\r\n }\r\n}\r\n","
\r\n

Exit Survey

\r\n

Total Surveys: {{ exitSurveySummary.SurveyTotal }}

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

Reasons Summary - By Count

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

Next Work Location Summary - By Count

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

Reasons Summary - By Percentage

\r\n

Percentage of people that chose each reason.

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

Next Work Location Summary - Percentage

\r\n

Percentage of people that chose each next work location.

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

Reasons Summary

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

\r\n \r\n

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

Completed Surveys

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Resignation PDF\r\n \r\n \r\n \r\n \r\n\r\n \r\n FirstName \r\n {{ element.FirstName }} \r\n \r\n\r\n \r\n LastName \r\n {{ element.LastName }} \r\n \r\n\r\n \r\n\r\n \r\n SAPID \r\n {{ element.SAPID }} \r\n \r\n\r\n \r\n\r\n \r\n ActionType \r\n \r\n
Resign
\r\n
Retire
\r\n
\r\n \r\n
\r\n\r\n \r\n De l\r\n Reason \r\n {{ element.Reason }} \r\n \r\n\r\n \r\n \r\n EffectiveDate \r\n {{ element.EffectiveDate | date : 'shortDate' }} \r\n \r\n \r\n Status \r\n {{ element.Status }} \r\n \r\n \r\n ePAFID \r\n {{ element.ePAFID }} \r\n \r\n \r\n DateCreated \r\n {{ element.DateCreated | date : 'shortDate' }} \r\n \r\n \r\n DateUpdated \r\n {{ element.DateUpdated | date : 'shortDate' }} \r\n \r\n \r\n RetrievedBySAP \r\n {{ element.RetrievedBySAP | date : 'shortDate' }} \r\n \r\n \r\n UpdatedBySAP \r\n {{ element.UpdatedBySAP | date : 'shortDate' }} \r\n \r\n\r\n \r\n Comments\r\n {{ element.Comments }}\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\nimport { format } from 'date-fns';\r\nimport { merge, of as observableOf } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\n\r\nimport { ExitSurveyService } from '../../services/exitsurvey/exitsurvey.service';\r\nimport { DownloadService } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { ReportInfo } from '../../models/reports';\r\nimport { ExitSurvey, ExitSurveySummary, single, multi, colorSets } from 'models/exitsurvey';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-exit-survey',\r\n templateUrl: './exit-survey-app.component.html',\r\n styleUrls: ['./exit-survey-app.component.css'],\r\n})\r\nexport class ExitSurveyComponent implements OnInit {\r\n AvailableReports: ReportInfo[];\r\n AvailableSchoolYears: string[];\r\n CurrentApplicationSchoolYear: string;\r\n PartialViewReady: boolean;\r\n SmallDisplay: boolean;\r\n ExitSurveyReport: ExitSurvey[];\r\n dataExitSurvey: MatTableDataSource;\r\n ExitSurveyPDF: ExitSurvey;\r\n exitSurveySummary: ExitSurveySummary;\r\n\r\n resultsLength = 0;\r\n isLoadingResults = true;\r\n isRateLimitReached = false;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n displayedColumns = [\r\n 'PDF',\r\n 'FirstName',\r\n 'LastName',\r\n 'SAPID',\r\n 'ActionType',\r\n 'Reason',\r\n 'EffectiveDate',\r\n 'Status',\r\n 'ePAFID',\r\n 'DateCreated',\r\n 'DateUpdated',\r\n 'RetrievedBySAP',\r\n 'UpdatedBySAP',\r\n 'Comments',\r\n ];\r\n\r\n //displayedColumns = ['PDF', 'FirstName', 'LastName', 'ExitSurveyID', 'SAPID', 'PositionNo', 'ActionType', 'Reason', 'SurveyType', 'EffectiveDate', 'Status', 'ePAFID', 'DateCreated', 'DateUpdated', 'RetrievedBySAP', 'UpdatedBySAP'];\r\n\r\n single: any[];\r\n multi: any[];\r\n otherReasonChartData: any[];\r\n locationChartData: any[];\r\n otherReasonChartDataPercentage: any[];\r\n locationChartDataPercentage: any[];\r\n\r\n // other Reasons options\r\n view: any[] = [700, 400];\r\n showXAxis = true;\r\n showYAxis = true;\r\n gradient = false;\r\n showLegend = true;\r\n showXAxisLabel = true;\r\n xAxisLabel = 'Reason';\r\n showYAxisLabel = true;\r\n yAxisLabel = 'Count';\r\n showDataLabel = true;\r\n\r\n // Location Reasons options\r\n viewL: any[] = [600, 400];\r\n showXAxisL = true;\r\n showYAxisL = true;\r\n gradientL = false;\r\n showLegendL = true;\r\n showXAxisLabelL = true;\r\n xAxisLabelL = 'Next Work Location';\r\n showYAxisLabelL = true;\r\n yAxisLabelL = 'Count';\r\n\r\n // other Reasons options\r\n viewPercent: any[] = [700, 400];\r\n showXAxisPercent = true;\r\n showYAxisPercent = true;\r\n gradientPercent = false;\r\n showLegendPercent = true;\r\n showXAxisLabelPercent = true;\r\n xAxisLabelPercent = 'Reason';\r\n showYAxisLabelPercent = true;\r\n yAxisLabelPercent = 'Percent';\r\n showDataLabelPercent = true;\r\n\r\n // Location Reasons options\r\n viewLPercent: any[] = [600, 400];\r\n showXAxisLPercent = true;\r\n showYAxisLPercent = true;\r\n gradientLPercent = false;\r\n showLegendLPercent = true;\r\n showXAxisLabelLPercent = true;\r\n xAxisLabelLPercent = 'Next Work Location';\r\n showYAxisLabelLPercent = true;\r\n yAxisLabelLPercent = 'Percent';\r\n\r\n // Pie Chart options\r\n viewP: any[] = [700, 400];\r\n\r\n colorScheme = {\r\n //natural color set\r\n domain: ['#bf9d76', '#e99450', '#d89f59', '#f2dfa7', '#a5d7c6', '#7794b1', '#afafaf', '#707160', '#ba9383', '#d9d5c3'],\r\n };\r\n\r\n constructor(\r\n private exitSurveyService: ExitSurveyService,\r\n private router: Router,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {\r\n Object.assign(this, { single });\r\n\r\n // Code available school years to run from 1819 until the present school year.\r\n const Today = new Date();\r\n\r\n let curYear = Today.getFullYear() % 100;\r\n if (Today.getMonth() <= 5) curYear--; // If the current month is on/before June, we are in the 2nd half of the year, and the current year began in the previous year.\r\n\r\n const allYears = [];\r\n\r\n for (let i = curYear; i >= 18; --i) {\r\n allYears.push(('00' + i).slice(-2) + ('00' + (i + 1)).slice(-2));\r\n }\r\n\r\n this.AvailableSchoolYears = allYears;\r\n }\r\n\r\n getPDF(element: ExitSurvey) {\r\n // The user has made their selections. Process the report request with these options in place.\r\n let now = new Date();\r\n //alert(element.ExitSurveyID);\r\n let fname = 'ExitSurveyPDF-' + format(now, 'MMddyyyy') + '.pdf';\r\n let AsDistrictOffice = this.userService.User.CurrentRole == 'SummerApp' || this.userService.User.CurrentRole == 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n });\r\n\r\n //rep.ReportType = 1;\r\n //rep.ReportID = 1;\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 200,\r\n 0,\r\n fname,\r\n '',\r\n false,\r\n now,\r\n now,\r\n 0,\r\n true,\r\n element.ExitSurveyID,\r\n null,\r\n '',\r\n false\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n RunReport() {\r\n // Get options from the user before launching the report download.\r\n this.dialogService\r\n .OpenExitSurveyOptionsDialog({\r\n TitleText: 'Select Report Options...',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.

',\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n AvailableSchoolYears: this.AvailableSchoolYears,\r\n CurrentApplicationSchoolYear: this.CurrentApplicationSchoolYear,\r\n })\r\n .subscribe((resp) => {\r\n if (resp != null) {\r\n // The user has made their selections. Process the report request with these options in place.\r\n let now = new Date();\r\n let fname = 'ExitSurvey-' + format(now, 'MMddyyyy') + '.xlsx';\r\n let AsDistrictOffice =\r\n this.userService.User.CurrentRole == 'ExitSurvey' || this.userService.User.CurrentRole == 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n });\r\n\r\n //rep.ReportType = 1;\r\n //rep.ReportID = 1;\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 300,\r\n 1,\r\n fname,\r\n resp.SelectedYear,\r\n resp.UseDateRestriction,\r\n resp.DateBegin,\r\n resp.DateEnd,\r\n resp.DateRestrictionType,\r\n AsDistrictOffice,\r\n 0,\r\n null,\r\n '',\r\n false\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n GetExitSurveyReport() {\r\n this.exitSurveyService.GetExitSurveyReport(this.userService.User.AuthToken).subscribe(\r\n (data: ExitSurvey[]) => {\r\n this.dataExitSurvey = new MatTableDataSource(data);\r\n this.dataExitSurvey.paginator = this.paginator;\r\n this.dataExitSurvey.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n filterValue = filterValue.trim(); // Remove whitespace\r\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\r\n this.dataExitSurvey.filter = filterValue;\r\n }\r\n\r\n GetExitSurveySummary() {\r\n this.exitSurveyService.GetExitSurveySummary(this.userService.User.AuthToken).subscribe(\r\n (data: ExitSurveySummary) => {\r\n this.exitSurveySummary = data;\r\n\r\n this.otherReasonChartData = [];\r\n this.locationChartData = [];\r\n this.otherReasonChartDataPercentage = [];\r\n this.locationChartDataPercentage = [];\r\n for (let i = 0, j = this.exitSurveySummary.SummaryReasons.length; i < j; ++i) {\r\n if (this.exitSurveySummary.SummaryReasons[i].ReasonType == 'ExitSurveyReasons') {\r\n this.otherReasonChartData.push({\r\n name: this.exitSurveySummary.SummaryReasons[i].Reason,\r\n value: this.exitSurveySummary.SummaryReasons[i].Count,\r\n });\r\n }\r\n if (\r\n this.exitSurveySummary.SummaryReasons[i].ReasonType == 'ExitSurveyEdLocations' ||\r\n this.exitSurveySummary.SummaryReasons[i].ReasonType == 'ExitSureveyNonEdLocations'\r\n ) {\r\n this.locationChartData.push({\r\n name: this.exitSurveySummary.SummaryReasons[i].Reason,\r\n value: this.exitSurveySummary.SummaryReasons[i].Count,\r\n });\r\n }\r\n\r\n if (this.exitSurveySummary.SummaryReasons[i].ReasonType == 'ExitSurveyReasons') {\r\n this.otherReasonChartDataPercentage.push({\r\n name: this.exitSurveySummary.SummaryReasons[i].Reason,\r\n value: (this.exitSurveySummary.SummaryReasons[i].Count / this.exitSurveySummary.SurveyTotal) * 100,\r\n });\r\n }\r\n if (\r\n this.exitSurveySummary.SummaryReasons[i].ReasonType == 'ExitSurveyEdLocations' ||\r\n this.exitSurveySummary.SummaryReasons[i].ReasonType == 'ExitSureveyNonEdLocations'\r\n ) {\r\n this.locationChartDataPercentage.push({\r\n name: this.exitSurveySummary.SummaryReasons[i].Reason,\r\n value: (this.exitSurveySummary.SummaryReasons[i].Count / this.exitSurveySummary.SurveyTotal) * 100,\r\n });\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.GetExitSurveyReport();\r\n this.GetExitSurveySummary();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'home-node',\r\n styleUrls: ['home.component.css'],\r\n templateUrl: 'home.component.html'\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}","

Welcome to the Staff Portal Admin System!

\r\n
\r\n

\r\n Use the navigation on the left to access areas.\r\n

\r\n

\r\n If there is no menu, try clicking the menu icon in the upper left to expand the menu\r\n or try maximizing the window.\r\n

\r\n
\r\n","/// \r\n\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\nimport { merge, of as observableOf } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport { InCountyService } from '../../services/incounty/incounty.service';\r\nimport { DownloadService } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { IncountyMileageTotals } from '../../models/incounty';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-incounty',\r\n templateUrl: './incounty.component.html',\r\n styleUrls: ['./incounty.component.scss'],\r\n})\r\nexport class IncountyComponent implements OnInit {\r\n MileageTotals: IncountyMileageTotals;\r\n firsttofifth: boolean;\r\n map: any;\r\n globalSessionkey: string;\r\n mapReady = false;\r\n\r\n resultsLength = 0;\r\n isLoadingResults = true;\r\n isRateLimitReached = false;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n displayedColumns = [\r\n 'PDF',\r\n 'FirstName',\r\n 'LastName',\r\n 'ExitSurveyID',\r\n 'SAPID',\r\n 'PositionNo',\r\n 'ActionType',\r\n 'Reason',\r\n 'SurveyType',\r\n 'EffectiveDate',\r\n 'Status',\r\n 'ePAFID',\r\n 'DateCreated',\r\n 'DateUpdated',\r\n 'RetrievedBySAP',\r\n 'UpdatedBySAP',\r\n ];\r\n\r\n constructor(\r\n private inCountyService: InCountyService,\r\n private router: Router,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {\r\n InCountyService.loadBingMap().then((res) => {\r\n console.log('BingMapsLoader.load.then', res);\r\n this.mapReady = true;\r\n });\r\n }\r\n\r\n RetrieveBINGMapsSessionKey() {\r\n this.map = new Microsoft.Maps.Map('#myMap', {\r\n credentials: 'ApJ51NXDrcMOfuYUAVWhwuOiO7mwL247T3W5oEaXVSxHhfnTWRTf0FfbOonD3UeV',\r\n });\r\n\r\n //Get BING API session key\r\n this.ClickGeocode();\r\n }\r\n\r\n ClickGeocode() {\r\n this.map.getCredentials(this.MakeBingMapsRESTRequest);\r\n }\r\n MakeBingMapsRESTRequest(sessionKey) {\r\n this.globalSessionkey = sessionKey;\r\n }\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n

\r\n InCounty Travel Report\r\n

\r\n \r\n
","
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../../services/authentication/auth.service';\r\nimport {\r\n DialogService,\r\n MessageBoxDialogOptions,\r\n OptionBoxDialogOptions,\r\n OptionBoxOption,\r\n} from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\nimport { UserService, UserInfo } from '../../services/user/user.service';\r\nimport { ApplicationService } from 'services/application/application.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n styleUrls: ['login.component.css'],\r\n templateUrl: 'login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n private _failures: number;\r\n ShowImpersonationBox: boolean;\r\n public username: string;\r\n public password: string;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private splashService: SplashService,\r\n private userService: UserService,\r\n private router: Router,\r\n private dialogService: DialogService,\r\n private appsvc: ApplicationService\r\n ) {}\r\n\r\n ForgotUsername(event?: Event) {\r\n if (event && event instanceof Event) {\r\n event.preventDefault();\r\n }\r\n\r\n let uoptions: MessageBoxDialogOptions = {\r\n TitleText: 'Username Reminder',\r\n MessageText: `Your username to log in to the system is your email account name, without the @polk-fl.net portion. If you cannot remember your email account name, please check with your site's networking assistant for further information.`,\r\n };\r\n\r\n this.dialogService.OpenMessageBoxDialog(uoptions).subscribe((res) => {});\r\n }\r\n\r\n ForgotPassword() {\r\n this.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Forgot Password?',\r\n MessageText: `If you are a district staff member or school-based administrator, you can reset your password by using the Password Reset Tool. Click the \"Use Password Reset Tool\" button to leave the STARS System and go to the Reset Tool. Once you have reset your password, you will be returned to the STARS System.`,\r\n OKText: 'Use Password Reset Tool',\r\n CancelText: 'Cancel',\r\n })\r\n .subscribe((res) => {\r\n if (res === true) {\r\n // Leave the site and go to the reset tool.\r\n window.location.href = 'https://password.mypolkschools.net/?from=STARS';\r\n }\r\n });\r\n\r\n return; // Don't proceed below.\r\n }\r\n\r\n ImpersonatorClick($event: MouseEvent) {\r\n if (!$event) return;\r\n\r\n if ($event.ctrlKey === true) {\r\n this.ShowImpersonationBox = !this.ShowImpersonationBox;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this._failures = 0; // No login failures to start.\r\n this.ShowImpersonationBox = false;\r\n\r\n this.appsvc.SystemUpChecker().subscribe((a) => {\r\n if (a !== true) {\r\n this.router.navigate(['/maintenance']);\r\n }\r\n });\r\n\r\n // Is the user service reporting a current user? If so, we need to go to the home page\r\n if (this.userService.User && this.userService.User.AuthToken) {\r\n this.router.navigate(['/home']);\r\n }\r\n }\r\n\r\n onSubmit = (form: any) => {\r\n // Check for a password. If none present, don't allow.\r\n if (form.password == null || form.password == '') {\r\n this.splashService.SnackbarError('Please provide a password.', 5000);\r\n document.getElementById('password').focus();\r\n\r\n return;\r\n }\r\n\r\n // Check the username for an '@' symbol. If found, don't allow.\r\n if (form.username && form.username.indexOf('@') >= 0) {\r\n this.dialogService\r\n .OpenOptionBoxDialog({\r\n TitleText: 'Username Issue Detected',\r\n MessageText: `You appear to be attempting to use an email address as your username. You do not need to provide the \"@polk-fl.net\" portion of your email address for your username.`,\r\n Options: [{ DisplayText: 'OK', Response: 'ok', Color: 'primary' }],\r\n })\r\n .subscribe((resp) => {});\r\n\r\n document.getElementById('username').focus();\r\n\r\n return;\r\n }\r\n\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Now logging in...',\r\n });\r\n\r\n // Grab the screen and window resolutions\r\n let scr = window.screen.width + 'x' + window.screen.height;\r\n let win = window.innerWidth + 'x' + window.innerHeight;\r\n\r\n let loginCall: Observable;\r\n\r\n if (form.impersonated) {\r\n loginCall = this.authService.ValidateImpersonatedUser(form.username, form.password, form.impersonated, scr, win);\r\n } else {\r\n loginCall = this.authService.ValidateUser(form.username, form.password, '', scr, win);\r\n }\r\n\r\n loginCall.subscribe(\r\n (info: UserInfo) => {\r\n // Drop the splash that's on the screen.\r\n this.splashService.CloseSplash();\r\n\r\n // Use the user service to process this login, which will handle routing to the proper home page for us.\r\n this.authService.ProcessLogin(info);\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.splashService.CloseSplash();\r\n\r\n let body = error && error.error;\r\n let msg = body.message || body || 'An unknown error has occurred.';\r\n\r\n this.splashService.SnackbarError(msg, 8000);\r\n\r\n if (error.status == 401) {\r\n // Unauthorized. Typically a failed username/password.\r\n this._failures++;\r\n\r\n if (this._failures == 3) {\r\n // Time to pop up a choice box because they are still having problems.\r\n let options: OptionBoxDialogOptions = {\r\n TitleText: 'Problems Logging In?',\r\n MessageText: `You appear to be having some difficulty logging in to the system. Do you require any assistance?`,\r\n Options: [\r\n {\r\n DisplayText: 'I forgot my username.',\r\n Color: 'accent',\r\n Response: 'username',\r\n },\r\n {\r\n DisplayText: 'I forgot my password.',\r\n Color: 'warn',\r\n Response: 'password',\r\n },\r\n {\r\n DisplayText: `No - I'll try again`,\r\n Color: 'primary',\r\n Response: 'cancel',\r\n },\r\n ],\r\n };\r\n\r\n this.dialogService.OpenOptionBoxDialog(options).subscribe((response) => {\r\n // Reset the failures back to 0.\r\n this._failures = 0;\r\n\r\n switch (response) {\r\n case 'username': // Username forgotten. Collect email address and send on.\r\n this.ForgotUsername();\r\n\r\n break;\r\n case 'password': // Password forgotten. Collect email address and send on.\r\n this.ForgotPassword();\r\n\r\n break;\r\n case 'cancel': // User wishes to cancel and try again.\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n );\r\n };\r\n}\r\n","
\r\n

Payroll & Salary Tools

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

W-2 Opt-In Status Reports

\r\n

\r\n Use the tools provided below to run reports on those staff members who have opted into electronic W-2 forms, and those\r\n staff members who have opted out of electronic W-2 forms.\r\n

\r\n

\r\n Note: When using one of the provided Excel report options, please use the appropriate W-2 Opt-In\r\n deadline date in order to get an accurate list of employees who have opted-in to receive their W-2 forms electronically\r\n for a given tax year. Or, use the provided lookup tool below to look up a single employee by personnel #.\r\n

\r\n

\r\n The current W-2 Electronic Opt-In Deadline date for the year is: {{ W2Deadline | date: 'M/d/yyyy' }}\r\n

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

Employee W-2 Electronic Opt-In Look-up Tool

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

\r\n W-2 Electronic Opt-In History for {{ EmployeeW2LookupInfo?.EmployeeFirstName }}\r\n {{ EmployeeW2LookupInfo?.EmployeeLastName }} (#{{ EmployeeW2LookupInfo?.EmployeeSAPID }})\r\n

\r\n

\r\n Based upon the employee's electronic opt-in status as shown in the table below, and the current date, the employee\r\n CANCANNOT\r\n view their most recent W-2 form (if it has been processed by SAP).\r\n

\r\n
\r\n \r\n \r\n Date Updated \r\n \r\n {{ element.DateUpdated | date: 'M/d/yyyy h:mm a' }}\r\n \r\n \r\n \r\n Option Selected \r\n \r\n Opted In\r\n Opted Out\r\n \r\n \r\n \r\n \r\n \r\n No employee W-2 electronic opt-in information could be found in the system.\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n

Vacation Report

\r\n

Use the tool provided below to run the vacation hours report.

\r\n

\r\n \r\n

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

Semi-Monthly Election Reports

\r\n

Use the tools provided below to run various reports related to staff member payroll method elections.

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

Semi-Monthly Election Window

\r\n
\r\n The Semi-Monthly Election Window is currently {{ ElectionWindowStatus }}.\r\n
\r\n
\r\n \r\n \r\n Window Active?\r\n {{ win.Status | yesNo }} \r\n \r\n \r\n Window Opens\r\n {{ win.DateBegin | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Window Closes\r\n {{ win.DateEnd | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n

Semi-Monthly Election Window Exclusions

\r\n
\r\n Use the following tools to create brief exclusion windows which grant specific employees access to Payroll Frequency\r\n Election Tool, even if the tool is not currently open to the district at large. These exclusions can also grant access\r\n to employees who are new hires, and can provide approval for employees to select the \"Monthly Payment\" option even if\r\n they would otherwise not be allowed access to that option.\r\n
\r\n \r\n \r\n Show removed exclusions.\r\n
\r\n
\r\n \r\n \r\n Exclusion Open?\r\n {{ win.IsWindowOpen | yesNo }} \r\n \r\n \r\n Employee Last\r\n {{ win.TargetLastName | titleCase }}\r\n \r\n \r\n Employee First\r\n {{ win.TargetFirstName | titleCase }}\r\n \r\n \r\n Employee Pers. #\r\n {{ win.TargetSAPID }}\r\n \r\n \r\n Exclusion Opens\r\n {{ win.DateBegin | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Exclusion Closes\r\n {{ win.DateEnd | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No Semi-Monthly Election Window exclusions found in the system.\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n

Semi-Monthly Election Overrides

\r\n
\r\n Use the following tools to enter a Payroll Frequency Election override for an employee. If the employee already has an\r\n election on file, this will replace that election; otherwise, this will create a registered election on their behalf.\r\n
\r\n \r\n \r\n \r\n \r\n

All-Time Election Choices By Employee Groups

\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Election Choice\r\n {{ p.ElectionStatus }}\r\n \r\n \r\n 10-month\r\n {{ p.Month10 }}\r\n \r\n \r\n 11-month\r\n {{ p.Month11 }}\r\n \r\n \r\n 12-month\r\n {{ p.Month12 }}\r\n \r\n \r\n Total\r\n {{ p.Total }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n

Staff Portal Salary Access

\r\n
\r\n \r\n \r\n Group \r\n {{ element.PersonnelGroup }} \r\n \r\n \r\n SubGroup \r\n {{ element.PersonnelSubGroup }} \r\n \r\n \r\n Description \r\n {{ element.Description }} \r\n \r\n \r\n Updated By \r\n {{ element.UpdatedBySAPID }} \r\n \r\n \r\n Date Updated \r\n {{ element.DateUpdated | date: 'shortDate' }} \r\n \r\n \r\n Salary Access\r\n \r\n
check_circle
\r\n
cancel
\r\n
\r\n
\r\n \r\n Change Access\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\nimport { format, isWithinInterval, isEqual } from 'date-fns';\r\nimport { merge, of as observableOf } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\n\r\nimport { PayrollService } from '../../services/payroll/payroll.service';\r\nimport { DownloadService, HttpMethod, DownloadFormat } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { TitleCasePipe } from 'pipes/titlecase.pipe';\r\n\r\nimport {\r\n EmployeeInfo,\r\n PayrollElectionStatInfo,\r\n PayrollWindowExclusionInfo,\r\n SalaryGroupAccess,\r\n W2OptInInfo,\r\n WindowInfo,\r\n} from '../../models/payroll';\r\n\r\n@Component({\r\n selector: 'app-payroll',\r\n templateUrl: './payroll.component.html',\r\n styleUrls: ['./payroll.component.scss'],\r\n})\r\nexport class PayrollComponent implements OnInit {\r\n AvailableSchoolYears: string[];\r\n CurrentApplicationSchoolYear: string;\r\n dataEmployeeW2OptIns: MatTableDataSource;\r\n electionExclusionsSource: MatTableDataSource;\r\n electionWindowSource: MatTableDataSource;\r\n ElectionWindowStatus: string;\r\n employeeDisplayedColumns: string[];\r\n EmployeeW2LookupInfo: EmployeeInfo;\r\n EmployeeW2LookupSAPID: string;\r\n EmployeeW2LookupStatus: boolean | null;\r\n FilteredPayrollWindowExclusionsInfo: PayrollWindowExclusionInfo[];\r\n NoEmployeeW2Data: boolean;\r\n NoExclusionsData: boolean;\r\n PartialViewReady: boolean;\r\n PayrollStats: PayrollElectionStatInfo[];\r\n payrollElectionSource: MatTableDataSource;\r\n PayrollWindowExclusionsInfo: PayrollWindowExclusionInfo[];\r\n WindowInfo: WindowInfo;\r\n SmallDisplay: boolean;\r\n SalaryGroupAccess: SalaryGroupAccess[];\r\n ShowingRemovedExclusions: boolean;\r\n dataSalaryGroupAccess: MatTableDataSource;\r\n VisibleExclusionsHeaders: string[];\r\n VisibleExclusionsColumns: string[];\r\n W2Deadline: Date;\r\n\r\n // Payroll chart options\r\n payrollChartData: any[];\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n displayedColumns = ['PersonnelGroup', 'PersonnelSubGroup', 'Description', 'UpdatedBySAPID', 'DateUpdated', 'Access', 'Update'];\r\n displayedW2Columns = ['DateUpdated', 'OptInStatus'];\r\n\r\n constructor(\r\n private datePipe: DatePipe,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private payrollService: PayrollService,\r\n private splashService: SplashService,\r\n private titleCasePipe: TitleCasePipe,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {}\r\n\r\n // #region OnInit\r\n\r\n ngOnInit() {\r\n this.GetSalaryGroupAccess();\r\n this.GetPayrollElectionWindow();\r\n this.GetPayrollElectionStatistics();\r\n this.GetPayrollElectionWindowExclusions();\r\n this.GetW2Deadline();\r\n\r\n this.ShowingRemovedExclusions = false;\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Add Exclusion\r\n\r\n AddExclusion() {\r\n const self = this;\r\n\r\n // Pop up the dialog handler.\r\n self.dialogService\r\n .OpenSemiExclusionWizardDialog({\r\n TitleText: 'New Semi-Monthly Election Exclusion Wizard',\r\n OKText: 'Yes - Create Exclusion',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Send off to the server for adding this exclusion.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Adding exclusion...',\r\n })\r\n .subscribe((_) => {\r\n self.payrollService\r\n .AddPayrollElectionWindowExclusion(\r\n self.userService.User.AuthToken,\r\n result.TargetEmployeeSAPID,\r\n result.DateBegin,\r\n result.DateEnd,\r\n result.AllowMonthly,\r\n result.Rationale\r\n )\r\n .subscribe(\r\n (excls) => {\r\n // Display success\r\n self.splashService.CloseSplash();\r\n self.splashService.SnackbarSuccess('Payroll Election Window Exclusion Added Successfully.');\r\n\r\n // Update the exclusions data for the table.\r\n self.PayrollWindowExclusionsInfo = excls;\r\n self.UpdateExclusionsFiltering();\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Add Override\r\n\r\n AddOverride() {\r\n const self = this;\r\n\r\n // Pop up the dialog handler.\r\n self.dialogService\r\n .OpenSemiOverrideWizardDialog({\r\n TitleText: 'New Semi-Monthly Election Override Wizard',\r\n OKText: 'Yes - Create Override',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Send off to the server for adding this override.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Adding override...',\r\n })\r\n .subscribe((_) => {\r\n self.payrollService\r\n .AddPayrollElectionOverride(\r\n self.userService.User.AuthToken,\r\n result.TargetEmployeeSAPID,\r\n result.ElectionStatus,\r\n result.Rationale\r\n )\r\n .subscribe(\r\n (excls) => {\r\n // Display success\r\n self.splashService.CloseSplash();\r\n self.splashService.SnackbarSuccess('Payroll Election Override Added Successfully.');\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Edit Exclusion\r\n\r\n EditExclusion(exc: PayrollWindowExclusionInfo) {\r\n const self = this;\r\n\r\n if (!exc) {\r\n return;\r\n }\r\n\r\n // Load the wizard dialog with the preset values for editing.\r\n self.dialogService\r\n .OpenSemiExclusionWizardDialog({\r\n TitleText: 'New Semi-Monthly Election Exclusion Wizard',\r\n OKText: 'Yes - Create Exclusion',\r\n Exclusion: exc,\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Send off to the server for adding this exclusion.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Adding exclusion...',\r\n })\r\n .subscribe((_) => {\r\n self.payrollService\r\n .UpdatePayrollElectionWindowExclusion(\r\n self.userService.User.AuthToken,\r\n exc.SemiMonthlyPayrollElectionExclusionID,\r\n result.TargetEmployeeSAPID,\r\n result.DateBegin,\r\n result.DateEnd,\r\n result.AllowMonthly,\r\n result.Rationale\r\n )\r\n .subscribe(\r\n (excls) => {\r\n // Display success\r\n self.splashService.CloseSplash();\r\n self.splashService.SnackbarSuccess('Payroll Election Window Exclusion Updated Successfully.');\r\n\r\n // Update the exclusions data for the table.\r\n self.PayrollWindowExclusionsInfo = excls;\r\n self.UpdateExclusionsFiltering();\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Edit Window\r\n\r\n EditWindow(win: WindowInfo) {\r\n const self = this;\r\n\r\n if (!win) {\r\n return;\r\n }\r\n\r\n self.dialogService\r\n .OpenSemiMonthlyWindowOptionsDialog({\r\n TitleText: 'Select Window Options',\r\n OKText: 'Update Window',\r\n DateBegin: win.DateBegin,\r\n DateEnd: win.DateEnd,\r\n Activate: win.Status,\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n const todayInRange = isWithinInterval(new Date(), {\r\n start: result.DateBegin,\r\n end: result.DateEnd,\r\n });\r\n const willBeOpen = todayInRange && result.Activate;\r\n\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to update the Semi-Monthly Payroll Election window as follows:

` +\r\n `Window opens: ${self.datePipe.transform(result.DateBegin, 'M/d/yyyy h:mm a')}
` +\r\n `Window closes: ${self.datePipe.transform(result.DateEnd, 'M/d/yyyy h:mm a')}
` +\r\n `Activate window: ${result.Activate ? 'Yes' : 'No'}

` +\r\n `When this request completes, the Semi-Monthly Payroll Election window will be currently ` +\r\n `${willBeOpen ? 'OPEN' : 'CLOSED'}.

Are you sure you wish to ` +\r\n `submit this change?`,\r\n OKText: 'Yes - Update Window',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((conf) => {\r\n if (!conf) {\r\n return;\r\n }\r\n\r\n // Send request to server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Updating election window...',\r\n })\r\n .subscribe((_) => {\r\n self.payrollService\r\n .UpdatePayrollElectionWindow(\r\n self.userService.User.AuthToken,\r\n result.DateBegin,\r\n result.DateEnd,\r\n result.Activate\r\n )\r\n .subscribe(\r\n (window) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n\r\n self.splashService.SnackbarSuccess(\r\n 'Semi-Monthly Payroll Election Window Updated Successfully.'\r\n );\r\n\r\n // Update the table to show the update.\r\n self.WindowInfo = window;\r\n self.electionWindowSource = new MatTableDataSource([window]);\r\n self.ElectionWindowStatus =\r\n self.WindowInfo && self.WindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get Employee W2 Electronic Opt In\r\n\r\n GetEmployeeW2OptIn(sapid: string) {\r\n const self = this;\r\n\r\n if (!sapid) {\r\n return;\r\n }\r\n\r\n self.dataEmployeeW2OptIns = null;\r\n self.EmployeeW2LookupSAPID = sapid;\r\n\r\n self.payrollService.GetW2ElectronicOptIn(self.userService.User.AuthToken, sapid).subscribe(\r\n (info) => {\r\n self.NoEmployeeW2Data = !info || !info.W2OptIns || !info.W2OptIns.length;\r\n self.dataEmployeeW2OptIns = new MatTableDataSource(self.NoEmployeeW2Data ? [{} as W2OptInInfo] : info.W2OptIns);\r\n self.EmployeeW2LookupInfo = info && info.UserInfo;\r\n self.EmployeeW2LookupStatus = info && info.W2OptIns && info.W2OptIns.length ? info.W2OptIns[0].CanViewW2 : null;\r\n\r\n if (!info || !info.W2OptIns || !info.W2OptIns.length) {\r\n self.employeeDisplayedColumns = ['NoData'];\r\n } else {\r\n self.employeeDisplayedColumns = [...self.displayedW2Columns];\r\n }\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get Payroll Election Window\r\n\r\n GetPayrollElectionWindow() {\r\n this.payrollService.GetPayrollElectionWindow(this.userService.User.AuthToken).subscribe((data: WindowInfo) => {\r\n const today = new Date();\r\n\r\n this.WindowInfo = data;\r\n this.electionWindowSource = new MatTableDataSource([data]);\r\n this.ElectionWindowStatus = this.WindowInfo && this.WindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get Payroll Election Window Exclusions\r\n\r\n GetPayrollElectionWindowExclusions() {\r\n const self = this;\r\n\r\n self.payrollService\r\n .GetPayrollElectionWindowExclusions(self.userService.User.AuthToken)\r\n .subscribe((data: PayrollWindowExclusionInfo[]) => {\r\n self.PayrollWindowExclusionsInfo = data;\r\n self.UpdateExclusionsFiltering();\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get W2 Deadline\r\n\r\n GetW2Deadline() {\r\n this.payrollService.GetW2Deadline().subscribe((data) => {\r\n this.W2Deadline = data;\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Remove Exclusion\r\n\r\n RemoveExclusion(exc: PayrollWindowExclusionInfo) {\r\n const self = this;\r\n\r\n if (!exc) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before continuing.\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to remove the following Semi-Monthly Payroll Election Window exclusion:
` +\r\n `
Name: ${self.titleCasePipe.transform(exc.TargetFirstName)} ` +\r\n `${self.titleCasePipe.transform(exc.TargetLastName)}
Personnel #: ` +\r\n `${exc.TargetSAPID}
Title: ${exc.TargetLocalJobTitle}

` +\r\n `Window: ${self.datePipe.transform(exc.DateBegin, 'M/d/yy h:mm a')} - ` +\r\n `${self.datePipe.transform(exc.DateEnd, 'M/d/yy h:mm a')}
\"Allow Monthly\" Override: ` +\r\n `${exc.AllowMonthly === true ? 'Yes' : 'No'}

Once removed, this exclusion will no longer` +\r\n ` be in effect. If this exclusion window is currently open, it will immediately close and access ` +\r\n `to the Payroll Frequency Tool will be removed for this employee. Are you sure you wish ` +\r\n `to remove this exclusion?`,\r\n OKText: 'Yes - Remove',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Send off to the server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Removing exclusion...',\r\n })\r\n .subscribe((_) => {\r\n self.payrollService\r\n .RemovePayrollElectionExclusion(self.userService.User.AuthToken, exc.SemiMonthlyPayrollElectionExclusionID)\r\n .subscribe(\r\n (excs) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n self.splashService.SnackbarSuccess('Exclusion Removed Successfully.');\r\n\r\n // Update the loaded exclusions.\r\n self.PayrollWindowExclusionsInfo = excs;\r\n self.UpdateExclusionsFiltering();\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n RunReport(optinstatus: boolean) {\r\n // Get options from the user before launching the report download.\r\n this.dialogService\r\n .OpenW2ReportOptionsDialog({\r\n TitleText: 'Select Deadline Date',\r\n MessageText:\r\n 'Please enter the deadline date for W2 Opt In Entries. This report will include selections made ' +\r\n 'up to and including the date set below.

',\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n W2Deadline: this.W2Deadline,\r\n })\r\n .subscribe((resp) => {\r\n if (resp != null) {\r\n // The user has made their selections. Process the report request with these options in place.\r\n const now = new Date();\r\n const fname = 'W2Report-' + format(now, 'MMddyyyy') + '.xlsx';\r\n const AsDistrictOffice =\r\n this.userService.User.CurrentRole === 'SummerApp' || this.userService.User.CurrentRole === 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n });\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 600,\r\n 1,\r\n fname,\r\n '',\r\n resp.UseDateRestriction,\r\n null,\r\n resp.DateEnd,\r\n resp.DateRestrictionType,\r\n AsDistrictOffice,\r\n 0,\r\n null,\r\n '',\r\n optinstatus\r\n )\r\n .subscribe(\r\n (_) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n RunSemiMonthlyReport(reportnum: number) {\r\n const self = this;\r\n\r\n let reportName = '';\r\n\r\n switch (reportnum) {\r\n case 0: // All elections\r\n reportName = 'All Employee Elections';\r\n break;\r\n case 1: // Semi-Monthly elected\r\n reportName = 'Semi-Monthly Election Employees';\r\n break;\r\n case 2: // Monthly elected\r\n reportName = 'Monthly Election Employees';\r\n break;\r\n }\r\n\r\n if (!reportName) {\r\n return;\r\n }\r\n\r\n self.dialogService\r\n .OpenSemiMonthlyReportOptionsDialog({\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n `Please use the tools below to refine the criteria used to generate your report. You may ` +\r\n `restrict your report by a specific date or range of dates.

Once you have made any ` +\r\n `selections you wish to use, click the \"Run Report\" button to generate the report.

`,\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n DatePrompt: reportName,\r\n })\r\n .subscribe((resp) => {\r\n if (!resp) {\r\n return;\r\n }\r\n\r\n // The user has made selections. Process the report request with these options in place.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Retrieving report...',\r\n })\r\n .subscribe((__) => {\r\n self.downloadService\r\n .RetrieveDownload(\r\n HttpMethod.GET,\r\n `Api/Services/Payroll/GetSemiMonthlyPayrollReport`,\r\n {\r\n AuthToken: self.userService.User.AuthToken || '',\r\n ReportType: '' + reportnum,\r\n TimeType: resp.UseDateRestriction ? resp.DateRestrictionType : '0',\r\n Time1: resp.DateBegin != null ? resp.DateBegin.toJSON() : '',\r\n Time2: resp.DateEnd != null ? resp.DateEnd.toJSON() : '',\r\n },\r\n DownloadFormat.Excel\r\n )\r\n .subscribe(\r\n (_) => {\r\n self.splashService.CloseSplash();\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n RunVacationReport(optinstatus: boolean) {\r\n // Get options from the user before launching the report download.\r\n\r\n // The user has made their selections. Process the report request with these options in place.\r\n const now = new Date();\r\n const fname = 'VacationReport-' + format(now, 'MMddyyyy') + '.xlsx';\r\n const AsDistrictOffice =\r\n this.userService.User.CurrentRole === 'SummerApp' || this.userService.User.CurrentRole === 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n });\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 700,\r\n 1,\r\n fname,\r\n '',\r\n false,\r\n null,\r\n null,\r\n 0,\r\n AsDistrictOffice,\r\n 0,\r\n null,\r\n '',\r\n optinstatus\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSalaryGroupAccess() {\r\n this.payrollService.GetSalaryGroupAccess(this.userService.User.AuthToken).subscribe(\r\n (data: SalaryGroupAccess[]) => {\r\n this.dataSalaryGroupAccess = new MatTableDataSource(data);\r\n this.dataSalaryGroupAccess.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetPayrollElectionStatistics() {\r\n this.payrollService.GetPayrollElectionStatistics().subscribe(\r\n (data: PayrollElectionStatInfo[]) => {\r\n this.PayrollStats = data || [];\r\n\r\n // Group the data by the election status entries\r\n const keys = [...new Set(this.PayrollStats.map((p) => p.ElectionStatus))];\r\n const grouped = keys.map((k) => {\r\n return {\r\n Key: k,\r\n Data: this.PayrollStats.filter((pg) => pg.ElectionStatus === k),\r\n };\r\n });\r\n\r\n // Set up the chart data\r\n this.payrollChartData = grouped.map((p3) => {\r\n return {\r\n name:\r\n p3.Key === 1\r\n ? 'Monthly'\r\n : p3.Key === 2\r\n ? 'Semi (Holdback)'\r\n : p3.Key === 4\r\n ? 'Semi (Immediate)'\r\n : 'Unknown',\r\n series: p3.Data.map((d) => {\r\n return {\r\n name: d.PayRateCode === '10' ? '10 month' : d.PayRateCode === '11' ? '11 month' : '12 month',\r\n value: d.Count,\r\n };\r\n }),\r\n };\r\n });\r\n\r\n // Set up the data source for the table\r\n const tdata = [];\r\n\r\n keys.forEach((k) => {\r\n const grp = grouped.find((g) => g.Key === k);\r\n\r\n const entry = {\r\n ElectionStatus: k === 1 ? 'Monthly' : k === 2 ? 'Semi (Holdback)' : k === 4 ? 'Semi (Immediate)' : 'Unknown',\r\n Month10: (grp.Data.find((d) => d.PayRateCode === '10') || ({} as PayrollElectionStatInfo)).Count || 0,\r\n Month11: (grp.Data.find((d) => d.PayRateCode === '11') || ({} as PayrollElectionStatInfo)).Count || 0,\r\n Month12: (grp.Data.find((d) => d.PayRateCode === '12') || ({} as PayrollElectionStatInfo)).Count || 0,\r\n Total: grp.Data.reduce((pr, c) => pr + c.Count, 0),\r\n };\r\n\r\n tdata.push(entry);\r\n });\r\n\r\n // Add a totals row for the bottom\r\n tdata.push({\r\n ElectionStatus: 'Totals',\r\n Month10: grouped.reduce(\r\n (pr, c) => pr + c.Data.filter((d) => d.PayRateCode === '10').reduce((p1, c1) => p1 + c1.Count, 0),\r\n 0\r\n ),\r\n Month11: grouped.reduce(\r\n (pr, c) => pr + c.Data.filter((d) => d.PayRateCode === '11').reduce((p1, c1) => p1 + c1.Count, 0),\r\n 0\r\n ),\r\n Month12: grouped.reduce(\r\n (pr, c) => pr + c.Data.filter((d) => d.PayRateCode === '12').reduce((p1, c1) => p1 + c1.Count, 0),\r\n 0\r\n ),\r\n Total: grouped.reduce((pr, c) => pr + c.Data.reduce((p1, c1) => p1 + c1.Count, 0), 0),\r\n });\r\n\r\n this.payrollElectionSource = new MatTableDataSource(tdata);\r\n // this.dataSalaryGroupAccess.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n // #region Toggle Removed Exclusions\r\n\r\n ToggleRemovedExclusions(event: MatCheckboxChange) {\r\n const self = this;\r\n\r\n self.ShowingRemovedExclusions = event.checked;\r\n\r\n // Update filtering on exclusions.\r\n self.UpdateExclusionsFiltering();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Toggle Window\r\n\r\n ToggleWindow(win: WindowInfo, toSet: boolean) {\r\n const self = this;\r\n\r\n if (!win || win.Status === toSet) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n const todayInRange = isWithinInterval(new Date(), {\r\n start: win.DateBegin,\r\n end: win.DateEnd,\r\n });\r\n const willBeOpen = todayInRange && toSet;\r\n\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to ${toSet ? 'enable' : 'disable'} the Semi-Monthly Payroll Election window. ` +\r\n `When this request completes, the Semi-Monthly Payroll Election window will be currently ` +\r\n `${willBeOpen ? 'OPEN' : 'CLOSED'}.

Are you sure you wish to ` +\r\n `${toSet ? 'enable' : 'disable'} the window?`,\r\n OKText: `Yes - ${toSet ? 'Enable' : 'Disable'} Window`,\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((conf) => {\r\n if (!conf) {\r\n return;\r\n }\r\n\r\n // Send request to server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Enabling election window...',\r\n })\r\n .subscribe((_) => {\r\n self.payrollService\r\n .UpdatePayrollElectionWindow(self.userService.User.AuthToken, win.DateBegin, win.DateEnd, toSet)\r\n .subscribe(\r\n (window) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n\r\n self.splashService.SnackbarSuccess(\r\n `Semi-Monthly Payroll Election Window ${toSet ? 'Enabled' : 'Disabled'} Successfully.`\r\n );\r\n\r\n // Update the table to show the update.\r\n self.WindowInfo = window;\r\n self.electionWindowSource = new MatTableDataSource([window]);\r\n self.ElectionWindowStatus = self.WindowInfo && self.WindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n UpdateAccess(element: SalaryGroupAccess) {\r\n let update: boolean;\r\n if (element.Access) {\r\n update = false;\r\n } else {\r\n update = true;\r\n }\r\n\r\n this.payrollService\r\n .UpdateSalaryGroupAccess(this.userService.User.AuthToken, element.PersonnelGroup, element.PersonnelSubGroup, update)\r\n .subscribe(\r\n (data: any) => {\r\n this.GetSalaryGroupAccess();\r\n this.splashService.SnackbarSuccess(`Submit successful.`, 10000);\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n // #region Update Exclusions Filtering\r\n\r\n UpdateExclusionsFiltering() {\r\n const self = this;\r\n\r\n self.FilteredPayrollWindowExclusionsInfo = (self.PayrollWindowExclusionsInfo || []).filter(\r\n (p) => self.ShowingRemovedExclusions || !isEqual(p.DateBegin, p.DateEnd)\r\n );\r\n\r\n self.NoExclusionsData = !self.FilteredPayrollWindowExclusionsInfo || !self.FilteredPayrollWindowExclusionsInfo.length;\r\n\r\n self.electionExclusionsSource = new MatTableDataSource(\r\n self.NoExclusionsData ? [{} as PayrollWindowExclusionInfo] : self.FilteredPayrollWindowExclusionsInfo\r\n );\r\n self.VisibleExclusionsHeaders = [\r\n 'IsWindowOpen',\r\n 'TargetLastName',\r\n 'TargetFirstName',\r\n 'TargetSAPID',\r\n 'DateBegin',\r\n 'DateEnd',\r\n 'Actions',\r\n ];\r\n self.VisibleExclusionsColumns = self.NoExclusionsData ? ['NoData'] : self.VisibleExclusionsHeaders;\r\n }\r\n\r\n // #endregion\r\n}\r\n","

{{ configdescription.WindowTitle }}

\r\n
\r\n The {{ configdescription.ApplicationTypeString }} Application Window is currently\r\n {{ configdescription.WindowStatus }}.\r\n
\r\n
\r\n \r\n \r\n Window Active?\r\n {{ win.Status | yesNo }} \r\n \r\n \r\n Window Opens\r\n {{ win.DateBegin | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Window Closes\r\n {{ win.DateEnd | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ConfigWindowTable } from 'services/application/application.service';\r\nimport { WindowInfo } from '../../models/payroll';\r\nimport { ApplicationService } from '../../services/application/application.service';\r\n\r\n@Component({\r\n selector: 'app-portal-config-table',\r\n templateUrl: './portal-config-table.component.html',\r\n styleUrls: ['./portal-config-table.component.scss'],\r\n})\r\nexport class PortalConfigTableComponent implements OnInit {\r\n @Input() configdescription: ConfigWindowTable;\r\n datasource: MatTableDataSource;\r\n\r\n constructor(private appSvc: ApplicationService) {}\r\n\r\n ngOnInit(): void {\r\n this.appSvc.SystemConfigGetByDescription(this.configdescription.ConfigDescription).subscribe((applicationwindow) => {\r\n this.datasource = new MatTableDataSource(applicationwindow);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

{{message}}

\r\n \r\n \r\n {{o.Display}}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { Select } from 'models/select';\r\n\r\n@Component({\r\n selector: 'app-selectbox',\r\n templateUrl: './selectbox.component.html',\r\n styleUrls: ['./selectbox.component.css'],\r\n})\r\nexport class SelectboxComponent implements OnInit {\r\n options: Select[];\r\n message: string;\r\n itemName: string;\r\n dialogForm: FormGroup;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) data: any, private fb: FormBuilder) {\r\n this.message = data.Message;\r\n this.options = data.Options;\r\n this.itemName = data.ItemName;\r\n }\r\n\r\n onSubmit = (form: any) => {\r\n for (let o of this.options) {\r\n if (o.Value == form.Option) {\r\n this.dialogRef.close(o);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n this.dialogForm = this.fb.group({\r\n Option: [null, Validators.required],\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-site-maintinance',\r\n templateUrl: './site-maintinance.component.html',\r\n styleUrls: ['./site-maintinance.component.scss']\r\n})\r\nexport class SiteMaintinanceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Staff Portal Admin is down for maintenance\r\n
\r\n
\r\n

The Staff Portal Admin System is Currently Under Maintenance.

\r\n

Scheduled maintenance is currently in progress. Please check back soon.

\r\n

We apologize for any inconvenience.

\r\n

Webapps Team

\r\n
\r\n
\r\n
\r\n
\r\n","
\r\n

Summer Employment Application

\r\n

\r\n \r\n

\r\n\r\n

Summer Application Window

\r\n
\r\n The Summer Application Window is currently {{ SummerWindowStatus }}.\r\n
\r\n
\r\n \r\n \r\n Window Active?\r\n {{ win.Status | yesNo }} \r\n \r\n \r\n Window Opens\r\n {{ win.DateBegin | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Window Closes\r\n {{ win.DateEnd | date: 'M/d/yyyy h:mm a' }} \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\nimport { format, isWithinInterval } from 'date-fns';\r\nimport { merge, of as observableOf } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap, mergeMap, filter } from 'rxjs/operators';\r\n\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { DoubleRowPaginatorComponent } from '../double-row-paginator/double-row-paginator.component';\r\n\r\nimport { SummerAppService } from '../../services/summerapp/summerapp.service';\r\nimport { DownloadService } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { ReportInfo } from '../../models/reports';\r\nimport {\r\n SummerSchool,\r\n SummerApp,\r\n SummerCert,\r\n SummerSchoolSelected,\r\n SummerProcessing,\r\n SummerJourneyEval,\r\n SummerCourses,\r\n SummerAssignedContent,\r\n SummerAssignedProgram,\r\n AddSchoolToApplication,\r\n} from 'models/summerschool';\r\nimport { WindowInfo } from 'models/payroll';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-summer-app',\r\n templateUrl: './summer-app.component.html',\r\n styleUrls: ['./summer-app.component.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0', visibility: 'hidden' })),\r\n state('expanded', style({ height: '*', visibility: 'visible', backgroundColor: '#f2f2f2' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class SummerAppComponent implements OnInit {\r\n AvailableReports: ReportInfo[];\r\n AvailableSchoolYears: string[] = [];\r\n CurrentApplicationSchoolYear: string;\r\n SummerWindowStatus: string;\r\n SummerApplicationWindowSource: MatTableDataSource;\r\n PartialViewReady: boolean;\r\n SmallDisplay: boolean;\r\n SummerSchools: SummerSchool[];\r\n SummerSchoolsSource: MatTableDataSource;\r\n SummerSchoolYear: string;\r\n SummerApps: SummerApp[];\r\n dataSourceSummerApps: MatTableDataSource;\r\n SummerSchoolToEdit: SummerSchool;\r\n SummerCerts: SummerCert[];\r\n SummerSchoolsSelected: SummerSchoolSelected[];\r\n SummerProcessingHolder: SummerProcessing;\r\n AddSchoolToApplicationHolder: AddSchoolToApplication;\r\n ShowSchoolsArea: boolean;\r\n AppStatusHeader: string;\r\n WindowInfo: WindowInfo;\r\n SummerAssignedContent: SummerAssignedContent[];\r\n SummerAssignedProgram: SummerAssignedProgram[];\r\n\r\n isExpansionDetailRow = (i: number, row: Object) => {\r\n //console.log(row);\r\n return row.hasOwnProperty('detailRow');\r\n };\r\n expandedElement: any;\r\n\r\n resultsLength = 0;\r\n isLoadingResults = true;\r\n isRateLimitReached = false;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(DoubleRowPaginatorComponent, { static: false })\r\n customPaginator: DoubleRowPaginatorComponent;\r\n\r\n displayedColumns = [\r\n 'Edit',\r\n 'School_name',\r\n 'School_number',\r\n 'ExtendedLearningAcad',\r\n 'Title1Program',\r\n 'ESYIncluded',\r\n 'ESYOnly',\r\n 'VPKIncluded',\r\n 'Active',\r\n ];\r\n\r\n //displayedAppColumns = ['Edit', 'SummerApplicationID', 'SAPID', 'JobTitle', 'WorkLocation', 'FirstName', 'LastName', 'PrimaryEmail', 'SecondaryEmail', 'PrimaryPhone', 'SecondaryPhone', 'PositionSelected', 'CertificationCurrent', 'SchoolYear', 'DateCreated'];\r\n\r\n displayedAppColumns = [\r\n 'SummerApplicationID',\r\n 'SAPID',\r\n 'FirstName',\r\n 'LastName',\r\n 'JobTitle',\r\n 'WorkLocation',\r\n 'PositionSelected',\r\n 'SchoolYear',\r\n 'DateCreated',\r\n 'ProcessedDate',\r\n ];\r\n\r\n constructor(\r\n private summerAppService: SummerAppService,\r\n private router: Router,\r\n private datePipe: DatePipe,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {}\r\n\r\n setSchooltoEdit(element: SummerSchool) {\r\n this.SummerSchoolToEdit = element;\r\n }\r\n\r\n cancelSchoolEdit() {\r\n this.SummerSchoolToEdit = null;\r\n }\r\n\r\n onSubmit({ value, valid }: { value: SummerSchool; valid: boolean }) {\r\n value.SchoolNumber = this.SummerSchoolToEdit.SchoolNumber;\r\n this.summerAppService.UpdateSummerSchool(this.userService.User.AuthToken, this.userService.User.CurrentRole, value).subscribe(\r\n (appData: any) => {\r\n this.SummerSchoolToEdit = null;\r\n this.GetSummerSchools();\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarSuccess(`Submit successful.`, 10000);\r\n },\r\n (error: any) => {\r\n let body = error && error instanceof Response ? error.json() : error;\r\n let msg: string = body || 'An unknown error has occurred.';\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarError(body, 10000);\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n //filterValue = filterValue.trim(); // Remove whitespace\r\n //filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\r\n //this.dataSourceSummerApps.filter = filterValue;\r\n\r\n this.AppStatusHeader = 'Search Results';\r\n filterValue = filterValue.trim();\r\n filterValue = filterValue.toLowerCase();\r\n this.dataSourceSummerApps = new MatTableDataSource(\r\n this.getRows(\r\n this.SummerApps.filter(\r\n (x) =>\r\n x.LastName.toLowerCase().includes(filterValue) ||\r\n x.FirstName.toLowerCase().includes(filterValue) ||\r\n //x.JobTitle.toLowerCase().includes(filterValue) ||\r\n //x.WorkLocation.toLowerCase().includes(filterValue) ||\r\n //x.PositionSelected.toLowerCase().includes(filterValue) ||\r\n x.SAPID.toLowerCase().includes(filterValue)\r\n )\r\n )\r\n );\r\n this.dataSourceSummerApps.paginator = this.customPaginator;\r\n this.dataSourceSummerApps.sort = this.sort;\r\n }\r\n\r\n // #region Get Summer Application Window\r\n\r\n GetSummerApplicationWindow() {\r\n this.summerAppService.GetSummerSchoolWindow().subscribe((data: WindowInfo) => {\r\n const today = new Date();\r\n\r\n this.WindowInfo = data;\r\n this.SummerApplicationWindowSource = new MatTableDataSource([data]);\r\n this.SummerWindowStatus = this.WindowInfo && this.WindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Edit Window\r\n\r\n EditWindow(win: WindowInfo) {\r\n const self = this;\r\n\r\n if (!win) {\r\n return;\r\n }\r\n\r\n self.dialogService\r\n .OpenSummerApplicationWindowOptionsDialog({\r\n TitleText: 'Select Window Options',\r\n OKText: 'Update Window',\r\n DateBegin: win.DateBegin,\r\n DateEnd: win.DateEnd,\r\n Activate: win.Status,\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n const todayInRange = isWithinInterval(new Date(), {\r\n start: result.DateBegin,\r\n end: result.DateEnd,\r\n });\r\n const willBeOpen = todayInRange && result.Activate;\r\n\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to update the Summer Application window as follows:

` +\r\n `Window opens: ${self.datePipe.transform(result.DateBegin, 'M/d/yyyy h:mm a')}
` +\r\n `Window closes: ${self.datePipe.transform(result.DateEnd, 'M/d/yyyy h:mm a')}
` +\r\n `Activate window: ${result.Activate ? 'Yes' : 'No'}

` +\r\n `When this request completes, the Summer Application window will be currently ` +\r\n `${willBeOpen ? 'OPEN' : 'CLOSED'}.

Are you sure you wish to ` +\r\n `submit this change?`,\r\n OKText: 'Yes - Update Window',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((conf) => {\r\n if (!conf) {\r\n return;\r\n }\r\n\r\n // Send request to server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Updating election window...',\r\n })\r\n .subscribe((_) => {\r\n self.summerAppService\r\n .UpdateSummerApplicationWindow(\r\n self.userService.User.AuthToken,\r\n result.DateBegin,\r\n result.DateEnd,\r\n result.Activate\r\n )\r\n .subscribe(\r\n (window) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n\r\n self.splashService.SnackbarSuccess(\r\n 'Semi-Monthly Payroll Election Window Updated Successfully.'\r\n );\r\n\r\n // Update the table to show the update.\r\n self.WindowInfo = window;\r\n self.SummerApplicationWindowSource = new MatTableDataSource([window]);\r\n self.SummerWindowStatus =\r\n self.WindowInfo && self.WindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Toggle Window\r\n\r\n ToggleWindow(win: WindowInfo, toSet: boolean) {\r\n const self = this;\r\n\r\n if (!win || win.Status === toSet) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n const todayInRange = isWithinInterval(new Date(), {\r\n start: win.DateBegin,\r\n end: win.DateEnd,\r\n });\r\n const willBeOpen = todayInRange && toSet;\r\n\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to ${toSet ? 'enable' : 'disable'} the Semi-Monthly Payroll Election window. ` +\r\n `When this request completes, the Semi-Monthly Payroll Election window will be currently ` +\r\n `${willBeOpen ? 'OPEN' : 'CLOSED'}.

Are you sure you wish to ` +\r\n `${toSet ? 'enable' : 'disable'} the window?`,\r\n OKText: `Yes - ${toSet ? 'Enable' : 'Disable'} Window`,\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((conf) => {\r\n if (!conf) {\r\n return;\r\n }\r\n\r\n // Send request to server.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Enabling election window...',\r\n })\r\n .subscribe((_) => {\r\n self.summerAppService\r\n .UpdateSummerApplicationWindow(self.userService.User.AuthToken, win.DateBegin, win.DateEnd, toSet)\r\n .subscribe(\r\n (window) => {\r\n // Splash success.\r\n self.splashService.CloseSplash();\r\n\r\n self.splashService.SnackbarSuccess(\r\n `Summer Application Window ${toSet ? 'Enabled' : 'Disabled'} Successfully.`\r\n );\r\n\r\n // Update the table to show the update.\r\n self.WindowInfo = window;\r\n self.SummerApplicationWindowSource = new MatTableDataSource([window]);\r\n self.SummerWindowStatus = self.WindowInfo && self.WindowInfo.IsWindowOpen ? 'Open' : 'Closed';\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n RunReport() {\r\n // Get options from the user before launching the report download.\r\n this.dialogService\r\n .OpenReportOptionsDialog({\r\n TitleText: 'Select Report Options...',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.

',\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n AvailableSchoolYears: this.AvailableSchoolYears,\r\n CurrentApplicationSchoolYear: this.CurrentApplicationSchoolYear,\r\n })\r\n .subscribe((resp) => {\r\n if (resp != null) {\r\n // The user has made their selections. Process the report request with these options in place.\r\n let now = new Date();\r\n let fname = 'SummerApplication-' + format(now, 'MMddyyyy') + '.xlsx';\r\n let AsDistrictOffice =\r\n this.userService.User.CurrentRole == 'SummerApp' || this.userService.User.CurrentRole == 'Developer';\r\n\r\n // Pop up a splash while saving.\r\n this.splashService.DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n });\r\n\r\n //rep.ReportType = 1;\r\n //rep.ReportID = 1;\r\n\r\n this.downloadService\r\n .RunReport(\r\n this.userService.User.AuthToken,\r\n this.userService.User.CurrentRole,\r\n 100,\r\n 1,\r\n fname,\r\n resp.SelectedYear,\r\n resp.UseDateRestriction,\r\n resp.DateBegin,\r\n resp.DateEnd,\r\n resp.DateRestrictionType,\r\n AsDistrictOffice,\r\n 0,\r\n null,\r\n '',\r\n false\r\n )\r\n .subscribe(\r\n (resp) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n this.splashService.CloseSplash();\r\n\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n GetAllSchoolYears() {\r\n this.summerAppService.GetAllSchoolYears().subscribe(\r\n (years) => {\r\n this.AvailableSchoolYears = years || [];\r\n },\r\n (err) => this.errorService.HandleServiceError(err)\r\n );\r\n }\r\n\r\n GetSummerSchools() {\r\n this.summerAppService.GetAllSchoolsForEditing(this.userService.User.AuthToken).subscribe(\r\n (data: SummerSchool[]) => {\r\n this.SummerSchools = data || [];\r\n this.SummerSchoolsSource = new MatTableDataSource(data);\r\n this.SummerSchoolsSource.paginator = this.paginator;\r\n this.SummerSchoolsSource.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerSchoolYear() {\r\n this.summerAppService.GetSummerSchoolYear().subscribe(\r\n (data) => {\r\n this.SummerSchoolYear = data || '';\r\n },\r\n (err) => this.errorService.HandleServiceError(err)\r\n );\r\n }\r\n\r\n GetSummerApps() {\r\n this.summerAppService.GetSummerApps(this.userService.User.AuthToken, '1819').subscribe(\r\n (data: SummerApp[]) => {\r\n this.SummerApps = data;\r\n this.dataSourceSummerApps = new MatTableDataSource(this.getRows(data.filter((x) => !x.ProcessedDate)));\r\n this.dataSourceSummerApps.paginator = this.customPaginator;\r\n this.dataSourceSummerApps.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerCerts(SAPID: string, index: number) {\r\n this.summerAppService.GetSummerCerts(this.userService.User.AuthToken, SAPID).subscribe(\r\n (data: SummerCert[]) => {\r\n this.SummerCerts = data;\r\n this.dataSourceSummerApps.data[index].summerapp.SummerCerts = data;\r\n return data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerJourneyEval(SAPID: string, index: number) {\r\n this.summerAppService.GetSummerJourneyEval(this.userService.User.AuthToken, SAPID, '1819').subscribe(\r\n (data: SummerJourneyEval) => {\r\n this.dataSourceSummerApps.data[index].summerapp.SummerJourneyEval = data;\r\n return data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerCourses(SAPID: string, index: number) {\r\n this.summerAppService.GetSummerCourses(this.userService.User.AuthToken, SAPID).subscribe(\r\n (data: SummerCourses[]) => {\r\n this.dataSourceSummerApps.data[index].summerapp.SummerCourses = data;\r\n return data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerAssignedContent() {\r\n this.summerAppService.GetSummerAssignedContent(this.userService.User.AuthToken).subscribe(\r\n (data: SummerAssignedContent[]) => {\r\n this.SummerAssignedContent = data;\r\n return data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerAssignedProgram() {\r\n this.summerAppService.GetSummerAssignedProgram(this.userService.User.AuthToken).subscribe(\r\n (data: SummerAssignedProgram[]) => {\r\n this.SummerAssignedProgram = data;\r\n return data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n GetSummerSchoolsSelected(index: number, SummerApplicationID: number) {\r\n this.summerAppService.GetSummerSchoolsSelected(this.userService.User.AuthToken, SummerApplicationID).subscribe(\r\n (data: SummerSchoolSelected[]) => {\r\n this.dataSourceSummerApps.data[index].summerapp.SummerSchoolSelected = data;\r\n return data;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n getRows(data) {\r\n const rows = [];\r\n data.forEach((summerapp) => {\r\n summerapp.show = false;\r\n rows.push(summerapp, { detailRow: true, summerapp });\r\n });\r\n //console.log(rows);\r\n return rows;\r\n }\r\n\r\n logit(detail) {\r\n console.log(detail);\r\n console.log(this.SummerCerts);\r\n }\r\n\r\n closeRows(id?: number) {\r\n //hide all rows\r\n this.SummerProcessingHolder = new SummerProcessing();\r\n for (var i = 0; i < this.dataSourceSummerApps.data.length; i++) {\r\n if (this.dataSourceSummerApps.data[i].show && this.dataSourceSummerApps.data[i].SummerApplicationID !== id) {\r\n this.dataSourceSummerApps.data[i].show = !this.dataSourceSummerApps.data[i].show;\r\n }\r\n }\r\n }\r\n\r\n toggleRow(value: SummerApp) {\r\n const foundApp = this.dataSourceSummerApps.data.find(\r\n (elem) => elem.summerapp !== undefined && elem.summerapp.SummerApplicationID === value.SummerApplicationID\r\n );\r\n //console.log(\"The found element is \" + JSON.stringify(foundElement));\r\n const index = this.dataSourceSummerApps.data.indexOf(foundApp);\r\n this.GetSummerCerts(this.dataSourceSummerApps.data[index].summerapp.SAPID, index);\r\n this.GetSummerJourneyEval(this.dataSourceSummerApps.data[index].summerapp.SAPID, index);\r\n this.GetSummerCourses(this.dataSourceSummerApps.data[index].summerapp.SAPID, index);\r\n this.GetSummerSchoolsSelected(index, this.dataSourceSummerApps.data[index].summerapp.SummerApplicationID);\r\n\r\n this.closeRows(value.SummerApplicationID);\r\n\r\n this.dataSourceSummerApps.data[index].summerapp.show = !this.dataSourceSummerApps.data[index].summerapp.show;\r\n\r\n this.SummerProcessingHolder.SummerApplicationID = foundApp.summerapp.SummerApplicationID;\r\n this.AddSchoolToApplicationHolder.AddSchoolSummerApplicationID = foundApp.summerapp.SummerApplicationID;\r\n\r\n //load the placeholder\r\n this.SummerProcessingHolder = foundApp.summerapp;\r\n }\r\n\r\n onSubmitProcessing({ value, valid }: { value: SummerProcessing; valid: boolean }) {\r\n this.summerAppService\r\n .ProcessSummerApplication(this.userService.User.AuthToken, this.userService.User.CurrentRole, value)\r\n .subscribe(\r\n (appData: any) => {\r\n this.closeRows();\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarSuccess(`Submit successful.`, 10000);\r\n this.GetSummerApps();\r\n },\r\n (error: any) => {\r\n let body = error && error instanceof Response ? error.json() : error;\r\n let msg: string = body || 'An unknown error has occurred.';\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarError(body, 10000);\r\n }\r\n );\r\n }\r\n\r\n onSubmitAddSchool({ value, valid }: { value: AddSchoolToApplication; valid: boolean }) {\r\n this.summerAppService\r\n .AddSummerSchoolToApplication(this.userService.User.AuthToken, this.userService.User.CurrentRole, value)\r\n .subscribe(\r\n (appData: any) => {\r\n //this.closeRows();\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarSuccess(`Submit successful.`, 10000);\r\n this.GetSummerApps();\r\n },\r\n (error: any) => {\r\n let body = error && error instanceof Response ? error.json() : error;\r\n let msg: string = body || 'An unknown error has occurred.';\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarError(body, 10000);\r\n }\r\n );\r\n }\r\n\r\n ViewNewApps() {\r\n this.AppStatusHeader = 'New Applications';\r\n\r\n this.dataSourceSummerApps = new MatTableDataSource(this.getRows(this.SummerApps.filter((x) => !x.ProcessedDate)));\r\n\r\n this.dataSourceSummerApps.paginator = this.customPaginator;\r\n this.dataSourceSummerApps.sort = this.sort;\r\n }\r\n\r\n ViewProcessedApps() {\r\n this.AppStatusHeader = 'Processed Applications';\r\n this.dataSourceSummerApps = new MatTableDataSource(this.getRows(this.SummerApps.filter((x) => x.ProcessedDate)));\r\n this.dataSourceSummerApps.paginator = this.customPaginator;\r\n this.dataSourceSummerApps.sort = this.sort;\r\n }\r\n //can swap filters on this.summerapps\r\n ViewAllApps() {\r\n this.AppStatusHeader = 'All Applications';\r\n this.dataSourceSummerApps = new MatTableDataSource(this.getRows(this.SummerApps));\r\n this.dataSourceSummerApps.paginator = this.customPaginator;\r\n this.dataSourceSummerApps.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n //this.getTableByAAE();\r\n this.SummerProcessingHolder = new SummerProcessing();\r\n this.AddSchoolToApplicationHolder = new AddSchoolToApplication();\r\n this.ShowSchoolsArea = false;\r\n //this.SummerProcessingHolder.DistrictNotes = 'test';\r\n this.GetAllSchoolYears();\r\n // this.GetSummerSchools();\r\n // this.GetSummerSchoolYear();\r\n this.GetSummerApps();\r\n this.AppStatusHeader = 'New Applications';\r\n this.GetSummerAssignedContent();\r\n this.GetSummerAssignedProgram();\r\n this.GetSummerApplicationWindow();\r\n }\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\nimport { Observable, Subscription, TeardownLogic } from 'rxjs';\r\n\r\nimport { DialogService } from 'services/dialogs/dialogs.service';\r\nimport { ErrorService } from 'services/error/error.service';\r\nimport { SplashService } from 'services/splash/splash.service';\r\nimport { SummerAppService } from 'services/summerapp/summerapp.service';\r\nimport { UserService } from 'services/user/user.service';\r\n// import { UnsavedChangesService, UnsavedChanges } from 'routes/routes.guard';\r\n\r\n// import { SchoolYearPipe } from 'pipes/schoolyear';\r\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { SummerSchool } from 'models/summerschool';\r\nimport { AreaChartComponent } from '@swimlane/ngx-charts';\r\n\r\n@Component({\r\n selector: 'app-schools-settings',\r\n styleUrls: ['schoolseditor.component.scss'],\r\n templateUrl: 'schoolseditor.component.html',\r\n})\r\nexport class SchoolsEditorComponent implements AfterViewInit, OnChanges, OnDestroy /*, UnsavedChanges */ {\r\n @ViewChild(MatPaginator, { static: false }) private paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) private sorter: MatSort;\r\n private _subrelease = new Subscription();\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n AllHeaders = [\r\n 'SchoolNumber',\r\n 'SchoolName',\r\n 'Title1Program',\r\n 'ESYIncluded',\r\n 'ESYOnly',\r\n 'VPKIncluded',\r\n 'ELL',\r\n 'ELLOnly',\r\n 'Migrant',\r\n 'Alternate',\r\n 'Active',\r\n 'Actions',\r\n ];\r\n AllSchools: SchoolInfoUI[] = [];\r\n @Input() AllSchoolYears: string[];\r\n ChangeTrackingActive = false;\r\n CurrentYear = '';\r\n FilterForm: FormGroup;\r\n HasChanges = false;\r\n PDFServicePath = '';\r\n SmallDisplay = false;\r\n ViewReady = false;\r\n VisibleColumns: string[] = this.AllHeaders;\r\n VisibleHeaders = this.AllHeaders;\r\n SchoolsSource = new MatTableDataSource([]);\r\n\r\n constructor(\r\n private dialogSvc: DialogService,\r\n private errorSvc: ErrorService,\r\n private fb: FormBuilder,\r\n private splashSvc: SplashService,\r\n private summerAppSvc: SummerAppService,\r\n private userSvc: UserService // private unsavedChangesSvc: UnsavedChangesService\r\n ) {\r\n this.PDFServicePath = 'api/PDF/schools';\r\n\r\n // this.subrelease = this.screenSizeSvc.ScreenSizeSub.subscribe((size) => {\r\n // this.SmallDisplay = size.IsSmallDisplay;\r\n\r\n // this.VisibleHeaders = this.SmallDisplay ? ['SmallDisplay'] : this.AllHeaders;\r\n // this.VisibleColumns = this.VisibleHeaders;\r\n // });\r\n\r\n // Make the filters form group.\r\n this.FilterForm = this.fb.group({\r\n SelectedSchoolYear: [''],\r\n TextFilter: [''],\r\n });\r\n\r\n // Set a subscription on the text filter field, so when it changes we refresh the filtered list of schools.\r\n this.subrelease = this.FilterForm.get('TextFilter')\r\n .valueChanges.pipe(distinctUntilChanged(), debounceTime(200))\r\n .subscribe((val) => {\r\n // Update the list.\r\n this.UpdateFilteredSchools();\r\n });\r\n\r\n // Set a subscription on the selected school year field, so when it changes we refresh the list of schools.\r\n this.subrelease = this.FilterForm.get('SelectedSchoolYear')\r\n .valueChanges.pipe(distinctUntilChanged(), debounceTime(100))\r\n .subscribe((val) => {\r\n // Pull the current list of schools for the currently school year.\r\n this.splashSvc\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Loading schools...',\r\n })\r\n .subscribe(() => {\r\n this.summerAppSvc.GetAllSchoolsForEditing('', val).subscribe(\r\n (schools) => {\r\n const schls = (schools || []).map((s) => {\r\n return {\r\n Active: s.Active,\r\n Alternate: s.Alternate,\r\n Migrant: s.Migrant,\r\n ELL: s.ELL,\r\n ELLOnly: s.ELLOnly,\r\n ESYIncluded: s.ESYIncluded,\r\n ESYOnly: s.ESYOnly,\r\n ExtendedLearningAcad: s.ExtendedLearningAcad,\r\n IsElementary: s.IsElementary,\r\n IsMiddle: s.IsMiddle,\r\n IsSenior: s.IsSenior,\r\n SchoolName: s.SchoolName,\r\n SchoolNumber: s.SchoolNumber,\r\n SummerSchoolsID: s.SummerSchoolsID,\r\n Title1Program: s.Title1Program,\r\n VPKIncluded: s.VPKIncluded,\r\n HasChanges: false,\r\n Visible: true,\r\n OrigELL: s.ELL,\r\n OrigELLOnly: s.ELLOnly,\r\n OrigESYIncluded: s.ESYIncluded,\r\n OrigESYOnly: s.ESYOnly,\r\n OrigAlternate: s.Alternate,\r\n OrigMigrant: s.Migrant,\r\n OrigExtendedLearningAcad: s.ExtendedLearningAcad,\r\n OrigTitle1Program: s.Title1Program,\r\n OrigVPKIncluded: s.VPKIncluded,\r\n OrigActive: s.Active,\r\n } as SchoolInfoUI;\r\n });\r\n\r\n this.AllSchools = schls;\r\n\r\n // Now process for filtering.\r\n this.UpdateFilteredSchools();\r\n\r\n // Drop splash.\r\n this.splashSvc.CloseSplash();\r\n },\r\n (err) => this.errorSvc.HandleServiceError(err)\r\n );\r\n\r\n this.ViewReady = true;\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // Stop tracking.\r\n this.TakeDownTracking();\r\n\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.SchoolsSource) {\r\n this.SchoolsSource.sort = this.sorter;\r\n this.SchoolsSource.paginator = this.paginator;\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n const self = this;\r\n\r\n // If we have known years, get the first one and load that as a starting default.\r\n if (!self.CurrentYear && self.AllSchoolYears.length) {\r\n self.CurrentYear = self.AllSchoolYears[0];\r\n\r\n // Set this value to force the component to load the schools for this year.\r\n self.FilterForm.get('SelectedSchoolYear').setValue(self.CurrentYear);\r\n }\r\n // const srcSchools = (self.AllSchools || []).map((s) => {\r\n // return {\r\n // Active: s.Active,\r\n // ELL: s.ELL,\r\n // ELLOnly: s.ELLOnly,\r\n // ESYIncluded: s.ESYIncluded,\r\n // ESYOnly: s.ESYOnly,\r\n // ExtendedLearningAcad: s.ExtendedLearningAcad,\r\n // IsElementary: s.IsElementary,\r\n // IsMiddle: s.IsMiddle,\r\n // IsSenior: s.IsSenior,\r\n // SchoolName: s.SchoolName,\r\n // SchoolNumber: s.SchoolNumber,\r\n // SummerSchoolsID: s.SummerSchoolsID,\r\n // Title1Program: s.Title1Program,\r\n // VPKIncluded: s.VPKIncluded,\r\n // HasChanges: false,\r\n // Visible: true,\r\n // OrigELL: s.ELL,\r\n // OrigELLOnly: s.ELLOnly,\r\n // OrigESYIncluded: s.ESYIncluded,\r\n // OrigESYOnly: s.ESYOnly,\r\n // OrigExtendedLearningAcad: s.ExtendedLearningAcad,\r\n // OrigTitle1Program: s.Title1Program,\r\n // OrigVPKIncluded: s.VPKIncluded,\r\n // OrigActive: s.Active,\r\n // } as SchoolInfoUI;\r\n // });\r\n\r\n // self.SchoolsSource = new MatTableDataSource(srcSchools);\r\n // self.SchoolsSource.paginator = self.paginator;\r\n // self.SchoolsSource.sort = self.sorter;\r\n }\r\n\r\n // #region Checkbox Handler\r\n\r\n CheckboxHandler(event: MatCheckboxChange, sch: SchoolInfoUI, key: string): void {\r\n const self = this;\r\n\r\n if (!event || !sch || !key) {\r\n return;\r\n }\r\n\r\n // Set the school's related checkbox to the new value.\r\n switch (key) {\r\n case 'Title1Program':\r\n sch.Title1Program = event.checked;\r\n break;\r\n case 'ESYIncluded':\r\n sch.ESYIncluded = event.checked;\r\n break;\r\n case 'ESYOnly':\r\n sch.ESYOnly = event.checked;\r\n break;\r\n case 'VPKIncluded':\r\n sch.VPKIncluded = event.checked;\r\n break;\r\n case 'ELL':\r\n sch.ELL = event.checked;\r\n break;\r\n case 'ELLOnly':\r\n sch.ELLOnly = event.checked;\r\n break;\r\n case 'Migrant':\r\n sch.Migrant = event.checked;\r\n break;\r\n case 'Alternate':\r\n sch.Alternate = event.checked;\r\n break;\r\n case 'Active':\r\n sch.Active = event.checked;\r\n break;\r\n }\r\n\r\n // Now update the school's HasChanges property.\r\n sch.HasChanges =\r\n sch.Title1Program !== sch.OrigTitle1Program ||\r\n sch.ESYIncluded !== sch.OrigESYIncluded ||\r\n sch.ESYOnly !== sch.OrigESYOnly ||\r\n sch.VPKIncluded !== sch.OrigVPKIncluded ||\r\n sch.ELL !== sch.OrigELL ||\r\n sch.ELLOnly !== sch.OrigELLOnly ||\r\n sch.Active !== sch.OrigActive ||\r\n sch.Migrant !== sch.OrigMigrant ||\r\n sch.Alternate !== sch.OrigAlternate;\r\n\r\n if (sch.HasChanges) {\r\n self.HasChanges = true;\r\n } else {\r\n // Might still be something with changes other than this school. Quick scan (hah) to see.\r\n self.HasChanges = self.SchoolsSource.data.some((s) => s.HasChanges);\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Can Deactivate\r\n\r\n CanDeactivate(liveCheck?: boolean): boolean | Observable | Promise {\r\n const self = this;\r\n\r\n // Are there unsaved changes in the current form, or are we not actively change tracking?\r\n if (!self.ChangeTrackingActive || !self.HasChanges) {\r\n // No. The user can deactivate at will.\r\n return true;\r\n }\r\n\r\n // If this is a live check (native from browser), forego the confirmaion dialog as the native browser will catch instead.\r\n if (liveCheck === true) {\r\n return false;\r\n }\r\n\r\n // Need to prompt.\r\n return self.dialogSvc\r\n .OpenConfirmationDialog({\r\n TitleText: 'Unsaved Changes Detected',\r\n MessageText:\r\n `The schools editor has unsaved changes that have not yet been submitted. If you leave ` +\r\n `this page at this time, these unsaved changes will be lost. Do you wish to discard the changes ` +\r\n `and leave the page?`,\r\n OKText: 'Yes - Discard Changes',\r\n CancelText: 'No - Stay On Page',\r\n })\r\n .pipe(\r\n tap((result) => {\r\n if (result) {\r\n // The user agreed. Take down change tracking now so we won't get prompted again.\r\n self.TakeDownTracking();\r\n }\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Clear Filter\r\n\r\n ClearFilter(): void {\r\n const tfilter = this.FilterForm.get('TextFilter').value || '';\r\n\r\n if (!tfilter) {\r\n return;\r\n }\r\n\r\n this.FilterForm.get('TextFilter').setValue('');\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Download Schools PDF\r\n\r\n // DownloadSchoolsPDF(): void {\r\n // const self = this;\r\n\r\n // // Download the schools PDF for the current selected school year.\r\n // self.splashSvc\r\n // .OpenSplash({\r\n // TitleText: 'Please Wait',\r\n // MessageText: 'Downloading Schools PDF...',\r\n // })\r\n // .subscribe(() => {\r\n // self.downloadSvc\r\n // .RetrieveDownload(\r\n // HttpMethod.POST,\r\n // self.PDFServicePath,\r\n // {\r\n // schoolYear: self.CurrentYear,\r\n // },\r\n // DownloadFormat.PDF\r\n // )\r\n // .subscribe(\r\n // () => {\r\n // self.splashSvc.CloseSplash();\r\n // },\r\n // (err) => self.errorSvc.HandleServiceError(err)\r\n // );\r\n // });\r\n // }\r\n\r\n // #endregion\r\n\r\n // #region Setup Tracking Method\r\n\r\n SetupTracking(): void {\r\n const self = this;\r\n\r\n // self.unsavedChangesSvc.SetTracking(self.CanDeactivate.bind(self));\r\n self.ChangeTrackingActive = true;\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Submit All Changes\r\n\r\n SubmitAllChanges(): void {\r\n const self = this;\r\n\r\n // Determine all of the changes incoming.\r\n const dsource = ((self.SchoolsSource && self.SchoolsSource.data) || []).filter((s) => s.HasChanges);\r\n const changes = dsource.map((school) => {\r\n const schchg = {\r\n SchoolName: `${school.SchoolName} (${school.SchoolNumber})`,\r\n Changes: [] as string[],\r\n };\r\n\r\n if (school.Title1Program !== school.OrigTitle1Program) {\r\n schchg.Changes.push(\r\n `Title 1 Program: ${school.OrigTitle1Program ? 'Yes' : 'No'} -> ${\r\n school.Title1Program ? 'Yes' : 'No'\r\n }`\r\n );\r\n }\r\n if (school.ESYIncluded !== school.OrigESYIncluded) {\r\n schchg.Changes.push(\r\n `ESY Included: ${school.OrigESYIncluded ? 'Yes' : 'No'} -> ${school.ESYIncluded ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.ESYOnly !== school.OrigESYOnly) {\r\n schchg.Changes.push(\r\n `ESY Only: ${school.OrigESYOnly ? 'Yes' : 'No'} -> ${school.ESYOnly ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.VPKIncluded !== school.OrigVPKIncluded) {\r\n schchg.Changes.push(\r\n `VPK Included: ${school.OrigVPKIncluded ? 'Yes' : 'No'} -> ${school.VPKIncluded ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.ELL !== school.OrigELL) {\r\n schchg.Changes.push(`ELL: ${school.OrigELL ? 'Yes' : 'No'} -> ${school.ELL ? 'Yes' : 'No'}`);\r\n }\r\n if (school.ELLOnly !== school.OrigELLOnly) {\r\n schchg.Changes.push(\r\n `ELL Only: ${school.OrigELLOnly ? 'Yes' : 'No'} -> ${school.ELLOnly ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.Migrant !== school.OrigMigrant) {\r\n schchg.Changes.push(\r\n `Migrant: ${school.OrigMigrant ? 'Yes' : 'No'} -> ${school.Migrant ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.Alternate !== school.OrigAlternate) {\r\n schchg.Changes.push(\r\n `Alternate: ${school.OrigAlternate ? 'Yes' : 'No'} -> ${school.Alternate ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.Active !== school.OrigActive) {\r\n schchg.Changes.push(`Active: ${school.OrigActive ? 'Yes' : 'No'} -> ${school.Active ? 'Yes' : 'No'}`);\r\n }\r\n\r\n return schchg;\r\n });\r\n\r\n // Get a confirmation\r\n self.dialogSvc\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText: `You are about to submit the following update(s) for the school(s) as indicated below:

${changes.reduce(\r\n (sp, sc) => sp + `${sc.SchoolName}
    ${sc.Changes.reduce((p, c) => p + `
  • ${c}
  • `, '')}
`,\r\n ''\r\n )}

Once updated, these changes take effect immediately.

Submit update now?`,\r\n OKText: 'Yes - Submit',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Process the school updates.\r\n const syear = self.FilterForm.get('SelectedSchoolYear').value || '';\r\n\r\n const update = dsource.map((school) => {\r\n return {\r\n SchoolYear: syear,\r\n SchoolNumber: school.SchoolNumber,\r\n Title1Program: school.Title1Program,\r\n ESYIncluded: school.ESYIncluded,\r\n ESYOnly: school.ESYOnly,\r\n VPKIncluded: school.VPKIncluded,\r\n ELL: school.ELL,\r\n ELLOnly: school.ELLOnly,\r\n Migrant: school.Migrant,\r\n Alternate: school.Alternate,\r\n Active: school.Active,\r\n SummerSchoolsID: school.SummerSchoolsID,\r\n } as SummerSchool;\r\n });\r\n\r\n // Send to service layer.\r\n self.splashSvc\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Updating school(s)...',\r\n })\r\n .subscribe(() => {\r\n self.summerAppSvc.UpdateSchools(self.userSvc.User.AuthToken, syear, update).subscribe(\r\n (updatedSchs) => {\r\n self.splashSvc.CloseSplash();\r\n self.splashSvc.SnackbarSuccess('School(s) Updated Successfully.');\r\n\r\n // Parse through the returned schools and update their fields accordingly.\r\n (updatedSchs || []).forEach((us) => {\r\n const sch = self.AllSchools.find((s) => s.SchoolNumber === us.SchoolNumber);\r\n if (sch) {\r\n sch.Title1Program = sch.OrigTitle1Program = us.Title1Program;\r\n sch.ESYIncluded = sch.OrigESYIncluded = us.ESYIncluded;\r\n sch.ESYOnly = sch.OrigESYOnly = us.ESYOnly;\r\n sch.VPKIncluded = sch.OrigVPKIncluded = us.VPKIncluded;\r\n sch.ELL = sch.OrigELL = us.ELL;\r\n sch.ELLOnly = sch.OrigELLOnly = us.ELLOnly;\r\n sch.Migrant = sch.OrigMigrant = us.Migrant;\r\n sch.Alternate = sch.OrigAlternate = us.Alternate;\r\n sch.Active = sch.OrigActive = us.Active;\r\n sch.SummerSchoolsID = us.SummerSchoolsID;\r\n sch.HasChanges = false;\r\n }\r\n\r\n // Also patch in the data source\r\n const dsch = self.SchoolsSource.data.find((s) => s.SchoolNumber === us.SchoolNumber);\r\n if (dsch) {\r\n dsch.Title1Program = dsch.OrigTitle1Program = us.Title1Program;\r\n dsch.ESYIncluded = dsch.OrigESYIncluded = us.ESYIncluded;\r\n dsch.ESYOnly = dsch.OrigESYOnly = us.ESYOnly;\r\n dsch.VPKIncluded = dsch.OrigVPKIncluded = us.VPKIncluded;\r\n dsch.ELL = dsch.OrigELL = us.ELL;\r\n dsch.ELLOnly = dsch.OrigELLOnly = us.ELLOnly;\r\n dsch.Migrant = dsch.OrigMigrant = us.Migrant;\r\n dsch.Alternate = dsch.OrigAlternate = us.Alternate;\r\n dsch.Active = dsch.OrigActive = us.Active;\r\n dsch.SummerSchoolsID = us.SummerSchoolsID;\r\n dsch.HasChanges = false;\r\n }\r\n });\r\n\r\n // Should be fine to mark the whole thing as no changes now.\r\n self.HasChanges = false;\r\n },\r\n (err) => self.errorSvc.HandleServiceError(err)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Take Down Tracking Method\r\n\r\n TakeDownTracking(): void {\r\n // this.unsavedChangesSvc.ClearTracking();\r\n this.ChangeTrackingActive = false;\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Update Filtered Schools\r\n\r\n UpdateFilteredSchools(): void {\r\n const self = this;\r\n const tfilter = (self.FilterForm.get('TextFilter').value || '').toLocaleLowerCase();\r\n\r\n if (!tfilter) {\r\n self.AllSchools.forEach((s) => (s.Visible = true));\r\n } else {\r\n self.AllSchools.forEach((s) => {\r\n s.Visible =\r\n (s.SchoolNumber.indexOf(tfilter) || 0) >= 0 || (s.SchoolName.toLocaleLowerCase().indexOf(tfilter) || 0) >= 0;\r\n });\r\n }\r\n\r\n const filtsch = self.AllSchools.filter((s) => s.Visible);\r\n this.SchoolsSource = new MatTableDataSource(filtsch);\r\n this.SchoolsSource.sort = this.sorter;\r\n this.SchoolsSource.paginator = this.paginator;\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Update School\r\n\r\n UpdateSchool(school: SchoolInfoUI): void {\r\n const self = this;\r\n\r\n if (!school) {\r\n return;\r\n }\r\n\r\n const changes = [];\r\n\r\n if (school.Title1Program !== school.OrigTitle1Program) {\r\n changes.push(\r\n `Title 1 Program: ${school.OrigTitle1Program ? 'Yes' : 'No'} -> ${\r\n school.Title1Program ? 'Yes' : 'No'\r\n }`\r\n );\r\n }\r\n if (school.ESYIncluded !== school.OrigESYIncluded) {\r\n changes.push(\r\n `ESY Included: ${school.OrigESYIncluded ? 'Yes' : 'No'} -> ${school.ESYIncluded ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.ESYOnly !== school.OrigESYOnly) {\r\n changes.push(`ESY Only: ${school.OrigESYOnly ? 'Yes' : 'No'} -> ${school.ESYOnly ? 'Yes' : 'No'}`);\r\n }\r\n if (school.VPKIncluded !== school.OrigVPKIncluded) {\r\n changes.push(\r\n `VPK Included: ${school.OrigVPKIncluded ? 'Yes' : 'No'} -> ${school.VPKIncluded ? 'Yes' : 'No'}`\r\n );\r\n }\r\n if (school.ELL !== school.OrigELL) {\r\n changes.push(`ELL: ${school.OrigELL ? 'Yes' : 'No'} -> ${school.ELL ? 'Yes' : 'No'}`);\r\n }\r\n if (school.Migrant !== school.OrigMigrant) {\r\n changes.push(`Migrant: ${school.OrigMigrant ? 'Yes' : 'No'} -> ${school.Migrant ? 'Yes' : 'No'}`);\r\n }\r\n if (school.Alternate !== school.OrigAlternate) {\r\n changes.push(`Alternate: ${school.OrigAlternate ? 'Yes' : 'No'} -> ${school.Alternate ? 'Yes' : 'No'}`);\r\n }\r\n if (school.ELLOnly !== school.OrigELLOnly) {\r\n changes.push(`ELL Only: ${school.OrigELLOnly ? 'Yes' : 'No'} -> ${school.ELLOnly ? 'Yes' : 'No'}`);\r\n }\r\n if (school.Active !== school.OrigActive) {\r\n changes.push(`Active: ${school.OrigActive ? 'Yes' : 'No'} -> ${school.Active ? 'Yes' : 'No'}`);\r\n }\r\n\r\n // Get a confirmation\r\n self.dialogSvc\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText: `You are about to submit the following update(s) for the school as indicated below:

School: ${\r\n school.SchoolName\r\n } (${school.SchoolNumber})
Updates:
    ${changes.reduce(\r\n (p, c) => p + `
  • ${c}
  • `,\r\n ''\r\n )}


Once updated, these changes take effect immediately.

Submit update now?`,\r\n OKText: 'Yes - Submit',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Process the school updates.\r\n const update = [\r\n {\r\n SchoolYear: self.FilterForm.get('SelectedSchoolYear').value || '',\r\n SchoolNumber: school.SchoolNumber,\r\n Title1Program: school.Title1Program,\r\n ESYIncluded: school.ESYIncluded,\r\n ESYOnly: school.ESYOnly,\r\n VPKIncluded: school.VPKIncluded,\r\n ELL: school.ELL,\r\n ELLOnly: school.ELLOnly,\r\n Migrant: school.Migrant,\r\n Alternate: school.Alternate,\r\n Active: school.Active,\r\n SummerSchoolsID: school.SummerSchoolsID,\r\n } as SummerSchool,\r\n ];\r\n\r\n // Send to service layer.\r\n self.splashSvc\r\n .DisplaySplash({\r\n TitleText: 'Please Wait',\r\n MessageText: 'Updating school...',\r\n })\r\n .subscribe(() => {\r\n self.summerAppSvc\r\n .UpdateSchools(self.userSvc.User.AuthToken, self.FilterForm.get('SelectedSchoolYear').value, update)\r\n .subscribe(\r\n (updatedSchs) => {\r\n self.splashSvc.CloseSplash();\r\n self.splashSvc.SnackbarSuccess('School(s) Updated Successfully.');\r\n\r\n // Parse through the returned schools and update their fields accordingly.\r\n (updatedSchs || []).forEach((us) => {\r\n const sch = self.AllSchools.find((s) => s.SchoolNumber === us.SchoolNumber);\r\n if (sch) {\r\n sch.Title1Program = sch.OrigTitle1Program = us.Title1Program;\r\n sch.ESYIncluded = sch.OrigESYIncluded = us.ESYIncluded;\r\n sch.ESYOnly = sch.OrigESYOnly = us.ESYOnly;\r\n sch.VPKIncluded = sch.OrigVPKIncluded = us.VPKIncluded;\r\n sch.ELL = sch.OrigELL = us.ELL;\r\n sch.ELLOnly = sch.OrigELLOnly = us.ELLOnly;\r\n sch.Active = sch.OrigActive = us.Active;\r\n sch.SummerSchoolsID = us.SummerSchoolsID;\r\n sch.HasChanges = false;\r\n }\r\n\r\n // Also patch in the data source\r\n const dsch = self.SchoolsSource.data.find((s) => s.SchoolNumber === us.SchoolNumber);\r\n if (dsch) {\r\n dsch.Title1Program = dsch.OrigTitle1Program = us.Title1Program;\r\n dsch.ESYIncluded = dsch.OrigESYIncluded = us.ESYIncluded;\r\n dsch.ESYOnly = dsch.OrigESYOnly = us.ESYOnly;\r\n dsch.VPKIncluded = dsch.OrigVPKIncluded = us.VPKIncluded;\r\n dsch.ELL = dsch.OrigELL = us.ELL;\r\n dsch.ELLOnly = dsch.OrigELLOnly = us.ELLOnly;\r\n dsch.Active = dsch.OrigActive = us.Active;\r\n dsch.SummerSchoolsID = us.SummerSchoolsID;\r\n dsch.HasChanges = false;\r\n }\r\n });\r\n },\r\n (err) => self.errorSvc.HandleServiceError(err)\r\n );\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Interfaces\r\n\r\ninterface SchoolInfoUI extends SummerSchool {\r\n Visible?: boolean;\r\n HasChanges?: boolean;\r\n\r\n // Original flags (for change tracking)\r\n OrigActive?: boolean;\r\n OrigExtendedLearningAcad: boolean;\r\n OrigTitle1Program: boolean;\r\n OrigESYIncluded: boolean;\r\n OrigESYOnly: boolean;\r\n OrigVPKIncluded: boolean;\r\n OrigELL: boolean;\r\n OrigELLOnly: boolean;\r\n OrigMigrant: boolean;\r\n OrigAlternate: boolean;\r\n}\r\n\r\n// #endregion\r\n","
\r\n
\r\n
\r\n
\r\n \r\n Application School Year\r\n \r\n {{ year | schoolYear }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n School text filter\r\n \r\n clear\r\n \r\n
\r\n \r\n \r\n School Number\r\n \r\n {{ item.SchoolNumber }}\r\n \r\n \r\n\r\n \r\n School Name\r\n \r\n {{ item.SchoolName }}\r\n \r\n \r\n\r\n \r\n Title I?\r\n \r\n \r\n \r\n \r\n\r\n \r\n ESY Included?\r\n \r\n \r\n \r\n \r\n\r\n \r\n ESY Only?\r\n \r\n \r\n \r\n \r\n\r\n \r\n VPK?\r\n \r\n \r\n \r\n \r\n\r\n \r\n ELL?\r\n \r\n \r\n \r\n \r\n\r\n \r\n ELL Only?\r\n \r\n \r\n \r\n \r\n\r\n \r\n Active?\r\n \r\n \r\n \r\n \r\n\r\n \r\n Migrant?\r\n \r\n \r\n \r\n \r\n\r\n \r\n Alternate?\r\n \r\n \r\n \r\n \r\n\r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","
\r\n

Transcripts & Credentialing Documents Status Reports

\r\n

\r\n \r\n

\r\n

Employee Transcript Look-up Tool

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

\r\n Transcripts & Credentialing Documentation for {{ EmployeeLookupInfo?.EmployeeFirstName }}\r\n {{ EmployeeLookupInfo?.EmployeeLastName }} (#{{ EmployeeLookupInfo?.EmployeeSAPID }})\r\n

\r\n
\r\n \r\n \r\n Last Name \r\n \r\n {{ element.LastName }}\r\n \r\n \r\n \r\n First Name \r\n \r\n {{ element.FirstName }}\r\n \r\n \r\n \r\n Personnel # \r\n \r\n {{ element.SAPID }}\r\n \r\n \r\n \r\n File Name \r\n \r\n {{ element.FileName }}\r\n \r\n \r\n \r\n File Size \r\n \r\n {{ element.FileSize | fileSize }}\r\n \r\n \r\n \r\n Document Type \r\n \r\n {{ element.FileType }}\r\n \r\n \r\n \r\n Date Uploaded \r\n \r\n {{ element.DateUploaded | date: 'M/d/yyyy h:mm aa' }}\r\n \r\n \r\n \r\n Upload Source \r\n \r\n {{ element.UploadSource }}\r\n \r\n \r\n \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 transcripts or credentialing documents have been uploaded for this employee.\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n

Last 25 Uploaded Documents

\r\n
\r\n \r\n \r\n Last Name \r\n \r\n {{ element.LastName }}\r\n \r\n \r\n \r\n First Name \r\n \r\n {{ element.FirstName }}\r\n \r\n \r\n \r\n Personnel # \r\n \r\n {{ element.SAPID }}\r\n \r\n \r\n \r\n File Name \r\n \r\n {{ element.FileName }}\r\n \r\n \r\n \r\n File Size \r\n \r\n {{ element.FileSize | fileSize }}\r\n \r\n \r\n \r\n Document Type \r\n \r\n {{ element.FileType }}\r\n \r\n \r\n \r\n Date Uploaded \r\n \r\n {{ element.DateUploaded | date: 'M/d/yyyy h:mm aa' }}\r\n \r\n \r\n \r\n Upload Source \r\n \r\n {{ element.UploadSource }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\nimport { format } from 'date-fns';\r\nimport { merge, of as observableOf } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\n\r\nimport { TranscriptsService } from '../../services/transcripts/transcripts.service';\r\nimport { DownloadService, HttpMethod, DownloadFormat } from '../../services/download/download.service';\r\nimport { UserService } from '../../services/user/user.service';\r\nimport { ErrorService } from '../../services/error/error.service';\r\nimport { DialogService } from '../../services/dialogs/dialogs.service';\r\nimport { SplashService } from '../../services/splash/splash.service';\r\n\r\nimport { TranscriptReportInfo, EmployeeTranscriptInfo, EmployeeInfo } from '../../models/transcripts';\r\n\r\n@Component({\r\n selector: 'app-transcripts',\r\n templateUrl: './transcripts.component.html',\r\n styleUrls: ['./transcripts.component.scss'],\r\n})\r\nexport class TranscriptsComponent implements OnInit {\r\n AvailableSchoolYears: string[];\r\n CurrentApplicationSchoolYear: string;\r\n EmployeeLookupSAPID: string;\r\n EmployeeLookupInfo: EmployeeInfo;\r\n NoEmployeeData: boolean;\r\n PartialViewReady: boolean;\r\n SmallDisplay: boolean;\r\n RecentTranscripts: TranscriptReportInfo[];\r\n dataEmployeeTranscripts: MatTableDataSource;\r\n dataTranscripts: MatTableDataSource;\r\n\r\n @ViewChild(MatSort) set sort(_srt: MatSort | null) {\r\n this._sort = _srt;\r\n\r\n if (_srt && this.dataTranscripts) {\r\n this.dataTranscripts.sort = _srt;\r\n }\r\n }\r\n get sort() {\r\n return this._sort;\r\n }\r\n private _sort: MatSort | null = null;\r\n\r\n displayedColumns = [\r\n 'FirstName',\r\n 'LastName',\r\n 'SAPID',\r\n 'FileName',\r\n 'FileSize',\r\n 'FileType',\r\n 'DateUploaded',\r\n 'UploadSource',\r\n 'Actions',\r\n ];\r\n\r\n employeeDisplayedColumns: string[];\r\n\r\n constructor(\r\n private datePipe: DatePipe,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private transcriptsService: TranscriptsService,\r\n private splashService: SplashService,\r\n private dialogService: DialogService,\r\n private downloadService: DownloadService,\r\n private errorService: ErrorService,\r\n private userService: UserService\r\n ) {}\r\n\r\n DownloadFile(item: TranscriptReportInfo) {\r\n const self = this;\r\n\r\n if (!item) {\r\n return;\r\n }\r\n\r\n self.downloadService\r\n .RetrieveDownload(\r\n HttpMethod.GET,\r\n 'Api/Services/Transcripts/DownloadTranscript',\r\n {\r\n AuthToken: self.userService.User.AuthToken,\r\n UploadID: item.UploadID,\r\n },\r\n DownloadFormat.PDF\r\n )\r\n .subscribe(\r\n (_) => {},\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n }\r\n\r\n GetEmployeeTranscriptsInfo(sapid: string) {\r\n const self = this;\r\n\r\n if (!sapid) {\r\n return;\r\n }\r\n\r\n self.dataEmployeeTranscripts = null;\r\n self.EmployeeLookupSAPID = sapid;\r\n\r\n self.transcriptsService.GetEmployeeTranscriptsInfo(self.userService.User.AuthToken, sapid).subscribe(\r\n (info) => {\r\n self.NoEmployeeData = !info || !info.Transcripts || !info.Transcripts.length;\r\n self.dataEmployeeTranscripts = new MatTableDataSource(\r\n self.NoEmployeeData ? [{} as TranscriptReportInfo] : info.Transcripts\r\n );\r\n self.EmployeeLookupInfo = info && info.UserInfo;\r\n\r\n if (!info || !info.Transcripts || !info.Transcripts.length) {\r\n self.employeeDisplayedColumns = ['NoData'];\r\n } else {\r\n self.employeeDisplayedColumns = [...self.displayedColumns];\r\n }\r\n },\r\n (error) => self.errorService.HandleServiceError(error)\r\n );\r\n }\r\n\r\n RemoveFile(item: TranscriptReportInfo) {\r\n const self = this;\r\n\r\n if (!item) {\r\n return;\r\n }\r\n\r\n // Get a confirmation before proceeding.\r\n self.dialogService\r\n .OpenConfirmationDialog({\r\n TitleText: 'Confirmation Requested',\r\n MessageText:\r\n `You are about to remove the following transcript file from the system:

File Name:` +\r\n ` ${item.FileName}
File Uploaded: ${self.datePipe.transform(\r\n item.DateUploaded,\r\n 'M/d/yyyy h:mm a'\r\n )}
Uploaded by: ${item.FirstName} ${item.LastName} (${item.SAPID})` +\r\n `

Once removed, this file cannot be recovered. ` +\r\n `Are you sure you wish to proceed?`,\r\n OKText: 'Yes - Remove File',\r\n CancelText: 'No - Cancel',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Remove the file via the server.\r\n self.transcriptsService.RemoveTranscript(self.userService.User.AuthToken, item.UploadID).subscribe(\r\n (info) => {\r\n // Splash success.\r\n self.splashService.SnackbarSuccess('Transcript removed successfully.');\r\n\r\n // Update the loaded table for the current employee's transcripts based on what was returned.\r\n const empInfo = info?.EmployeeTranscriptsInfo;\r\n\r\n self.NoEmployeeData = !empInfo || !empInfo.Transcripts || !empInfo.Transcripts.length;\r\n self.dataEmployeeTranscripts = new MatTableDataSource(\r\n self.NoEmployeeData ? [{} as TranscriptReportInfo] : empInfo.Transcripts\r\n );\r\n self.EmployeeLookupInfo = empInfo && empInfo.UserInfo;\r\n\r\n if (!empInfo || !empInfo.Transcripts || !empInfo.Transcripts.length) {\r\n self.employeeDisplayedColumns = ['NoData'];\r\n } else {\r\n self.employeeDisplayedColumns = [...self.displayedColumns];\r\n }\r\n\r\n // Update the most recent 25 table based on what was returned.\r\n const recent = info?.MostRecentTranscripts;\r\n\r\n this.dataTranscripts = new MatTableDataSource(recent);\r\n this.dataTranscripts.sort = this.sort;\r\n },\r\n (err) => self.errorService.HandleServiceError(err)\r\n );\r\n });\r\n }\r\n\r\n RunReport() {\r\n const self = this;\r\n\r\n // Get options from the user before launching the report download.\r\n self.dialogService\r\n .OpenReportOptionsDialog({\r\n TitleText: 'Select Report Options...',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.

',\r\n OKText: 'Run Report',\r\n CancelText: 'Cancel',\r\n UseYear: false,\r\n })\r\n .subscribe((resp) => {\r\n if (resp != null) {\r\n // The user has made their selections. Process the report request with these options in place.\r\n const now = new Date();\r\n const fname = 'TranscriptUploadReport-' + format(now, 'MMddyyyy') + '.xlsx';\r\n\r\n // Pop up a splash while saving.\r\n self.splashService\r\n .DisplaySplash({\r\n TitleText: 'Please wait',\r\n MessageText: 'Downloading requested report/export',\r\n })\r\n .subscribe((_) => {\r\n self.downloadService\r\n .RetrieveDownload(\r\n HttpMethod.GET,\r\n `Api/Services/Transcripts/TranscriptUploadReport`,\r\n {\r\n AuthToken: self.userService.User.AuthToken || '',\r\n UseDateRestriction: resp.UseDateRestriction,\r\n DateBegin: resp.DateBegin ? resp.DateBegin.toJSON() : '',\r\n DateEnd: resp.DateEnd ? resp.DateEnd.toJSON() : '',\r\n DateRestrictionType: resp.DateRestrictionType != null ? '' + resp.DateRestrictionType : '',\r\n },\r\n DownloadFormat.Excel\r\n )\r\n .subscribe(\r\n (__) => {\r\n // Drop the splash.\r\n self.splashService.CloseSplash();\r\n },\r\n (error) => {\r\n // Drop the splash.\r\n self.splashService.CloseSplash();\r\n self.errorService.HandleServiceError(error);\r\n }\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n GetRecentUploadedTranscripts() {\r\n this.transcriptsService.GetRecentUploadedTranscripts(this.userService.User.AuthToken).subscribe(\r\n (data: TranscriptReportInfo[]) => {\r\n this.dataTranscripts = new MatTableDataSource(data);\r\n this.dataTranscripts.sort = this.sort;\r\n },\r\n (error) => {\r\n this.errorService.HandleServiceError(error);\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.GetRecentUploadedTranscripts();\r\n }\r\n}\r\n","
\r\n

\r\n The following calendar shows the daily work schedule calendar for\r\n {{ SelectedEmployee?.EmployeeFirstName | titleCase }} {{ SelectedEmployee?.EmployeeLastName | titleCase }} -\r\n {{ SelectedEmployee?.LocalJobTitle }} (#{{ SelectedEmployee?.EmployeeSAPID }}). You may use the controls at the top of the calendar to change the displayed month and year.\r\n

\r\n
\r\n
\r\n info\r\n Note: When the calendar is blank, work schedule information is not yet available. Please check back closer to the\r\n start of the new school year for updated information.\r\n
\r\n
\r\n info\r\n Note: Although 11-month employees will return to work in July, work schedule information is not yet available.\r\n Please check back closer to the start of the new school year for updated information.\r\n
\r\n
\r\n info\r\n Note: Extended contract days are not reflected on this calendar. Employees who do not work the traditional 10-month or\r\n 11-month schedule should contact their supervisor for information.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ DisplayedMonth | date: 'MMMM' }}\r\n {{ DisplayedMonth | date: 'MMM' }}\r\n {{ DisplayedMonth | date: 'yyyy' }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ dow.Name }}\r\n {{ dow.MediumName }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {{ day.Day }}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{ day.DayOfWeek | dayOfWeek: true }}\r\n
\r\n info\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnInit, OnDestroy, OnChanges, Output } from '@angular/core';\r\nimport { MediaChange, MediaObserver } from '@angular/flex-layout';\r\nimport { WorkdayCalendarDateInfo } from 'models/payroll';\r\n\r\nimport { Subscription, TeardownLogic } from 'rxjs';\r\n\r\nimport { DialogService } from 'services/dialogs/dialogs.service';\r\nimport { UserSearchResult } from 'services/application/application.service';\r\n\r\n@Component({\r\n selector: 'app-calendar',\r\n styleUrls: ['calendar.component.scss'],\r\n templateUrl: 'calendar.component.html',\r\n})\r\nexport class CalendarComponent implements OnInit, OnDestroy, OnChanges {\r\n private _subrelease: Subscription = new Subscription();\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n @Output() changeMonth: EventEmitter = new EventEmitter();\r\n\r\n @Input() CalendarData: WorkdayCalendarDateInfo[][];\r\n DaysOfWeek: DaysOfWeekInfo[];\r\n DisplaySize: string;\r\n @Input() DisplayedMonth: Date;\r\n @Input() Is11Month: boolean;\r\n @Input() Is12Month: boolean;\r\n @Input() IsCurrentSY: boolean;\r\n @Input() SelectedEmployee: UserSearchResult;\r\n @Input() Show11MonthWarning: boolean;\r\n @Input() ShowNonTraditionalWarning: boolean;\r\n SmallDisplay: boolean;\r\n Today: Date;\r\n ViewReady: boolean;\r\n\r\n constructor(private dialogSvc: DialogService, private media: MediaObserver) {\r\n this.DaysOfWeek = [\r\n { Name: 'Sunday', MediumName: 'Sun', ShortName: 'Su' },\r\n { Name: 'Monday', MediumName: 'Mon', ShortName: 'M' },\r\n { Name: 'Tuesday', MediumName: 'Tue', ShortName: 'Tu' },\r\n { Name: 'Wednesday', MediumName: 'Wed', ShortName: 'W' },\r\n { Name: 'Thursday', MediumName: 'Thu', ShortName: 'Th' },\r\n { Name: 'Friday', MediumName: 'Fri', ShortName: 'F' },\r\n { Name: 'Saturday', MediumName: 'Sat', ShortName: 'Sa' },\r\n ];\r\n this.Today = new Date();\r\n this.ViewReady = false;\r\n }\r\n\r\n ngOnDestroy() {}\r\n\r\n ngOnInit() {\r\n const self = this;\r\n\r\n self.subrelease = self.media.asObservable().subscribe((change) => {\r\n self.SmallDisplay = self.media.isActive('xs') || self.media.isActive('sm');\r\n self.DisplaySize = change[0].mqAlias;\r\n });\r\n\r\n self.SmallDisplay = self.media.isActive('xs') || self.media.isActive('sm');\r\n self.DisplaySize = self.media.isActive('xl')\r\n ? 'xl'\r\n : this.media.isActive('lg')\r\n ? 'lg'\r\n : this.media.isActive('md')\r\n ? 'md'\r\n : this.media.isActive('sm')\r\n ? 'sm'\r\n : 'xs';\r\n }\r\n\r\n ngOnChanges() {\r\n this.ViewReady = true;\r\n }\r\n\r\n // #region Adjust Month\r\n\r\n AdjustMonth(amt) {\r\n this.changeMonth.emit(amt);\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Show Summer Extended Popup\r\n\r\n ShowSummerExtendedPopup(tprcode: string) {\r\n const self = this;\r\n\r\n let msg = '';\r\n\r\n switch (tprcode) {\r\n case '0015':\r\n msg =\r\n 'During extended summer work hours, your work time is scheduled at 8.12 hours. This equates to ' +\r\n '8 hours and 7 minutes as follows:

8.12 hrs = 8 hrs + 0.12 hr = 8 hrs + (0.12 * 60 mins) ' +\r\n '= 8 hrs + 7.2 mins ≈ 8 hrs, 7 mins.';\r\n break;\r\n case '5010':\r\n msg =\r\n 'During extended summer work hours, your work time is scheduled at 9.38 hours. This equates to ' +\r\n '9 hours and 23 minutes as follows:

9.38 hrs = 9 hrs + 0.38 hr = 9 hrs + (0.38 * 60 mins) ' +\r\n '= 9 hrs + 22.8 mins ≈ 9 hrs, 23 mins.';\r\n break;\r\n case '5011':\r\n msg =\r\n 'During extended summer work hours, your work time is scheduled at 9.70 hours. This equates to ' +\r\n '9 hours and 42 minutes as follows:

9.70 hrs = 9 hrs + 0.70 hr = 9 hrs + (0.70 * 60 mins) = 9 hrs, 42 mins.';\r\n break;\r\n case '0013':\r\n msg = 'During extended summer work hours, your work time is scheduled at 10 hours.';\r\n break;\r\n }\r\n\r\n if (!msg) {\r\n return;\r\n }\r\n\r\n self.dialogSvc\r\n .OpenMessageBoxDialog({\r\n TitleText: 'Summer Extended Hours Explanation',\r\n MessageText: msg,\r\n OKText: 'OK',\r\n })\r\n .subscribe();\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Days Of Week Info\r\n\r\nclass DaysOfWeekInfo {\r\n Name: string;\r\n MediumName: string;\r\n ShortName: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n \r\n \r\n
\r\n
\r\n {{ item.MenuIcon }}\r\n \r\n {{ item.MenuText }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, OnChanges, OnInit, OnDestroy, Output, EventEmitter, ElementRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\n\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { Subscription, TeardownLogic, Subject, Observable } from 'rxjs';\r\n\r\nimport { UserInfo } from '../../../models/users';\r\n\r\n@Component({\r\n selector: 'nav-menu',\r\n styleUrls: ['navmenu.component.css'],\r\n templateUrl: 'navmenu.component.html',\r\n})\r\nexport class NavMenuComponent implements OnChanges, OnInit, OnDestroy {\r\n @ViewChild('navmenu', { static: false }) navmenu: ElementRef;\r\n\r\n private _subrelease: Subscription = new Subscription();\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(val: TeardownLogic) {\r\n this._subrelease.add(val);\r\n }\r\n\r\n @Input() items: NavMenuItem[];\r\n @Input() logout: () => Observable;\r\n @Input() about: () => Observable;\r\n @Input() user: UserInfo;\r\n\r\n @Output() navigate: EventEmitter = new EventEmitter();\r\n\r\n FilteredItems: NavMenuItem[];\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {}\r\n\r\n // #region Clear All Active Buttons Method\r\n\r\n ClearAllActiveButtons() {\r\n // Clear all active flags\r\n if (this.FilteredItems && this.FilteredItems.length > 0) {\r\n this.FilteredItems.forEach((item) => {\r\n item.Active = false;\r\n });\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n HandleItemClick(item: NavMenuItem) {\r\n const self = this;\r\n\r\n if (item == null) return;\r\n\r\n if (item.IsLogout === true || item.IsAbout === true) {\r\n // Get a handle to the currently active nav item.\r\n const curActive = self.FilteredItems.find((aitem) => aitem.Active);\r\n\r\n // Clear all actives\r\n self.ClearAllActiveButtons();\r\n\r\n // Set the Logout or About button as active visually.\r\n item.Active = true;\r\n\r\n // Call the appropriate method, and wait for the dialog to dismiss.\r\n const methodFn = item.IsLogout ? self.logout : self.about;\r\n\r\n self.subrelease = methodFn().subscribe(() => {\r\n // Clear the button as active.\r\n item.Active = false;\r\n\r\n // Restore focus to the previously active item.\r\n if (curActive) {\r\n curActive.Active = true;\r\n\r\n const btn = self.navmenu.nativeElement.querySelector('#NavBtn_' + curActive.ButtonIndex);\r\n if (btn) {\r\n btn.focus();\r\n }\r\n }\r\n });\r\n return;\r\n }\r\n\r\n self.navigate.emit((item.ActionRoute || [''])[0]);\r\n\r\n // Attempt to navigate to the action route, if one is defined.\r\n if (item.ActionRoute && !!item.ActionRoute.length) {\r\n self.router.navigate(item.ActionRoute);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n // Hook into the router event structure so we can monitor successful route changes in order to update the active button (and also remove buttons which may not apply).\r\n this.subrelease = this.router.events\r\n .pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n map((event) => {\r\n let navev: NavigationEnd = event;\r\n return navev.url;\r\n })\r\n )\r\n .subscribe((url) => {\r\n this.UpdateMenuItems(url);\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n const self = this;\r\n const curRole = self.user && self.user.CurrentRole;\r\n\r\n // Process the menu items against the user (if available) to determine which are available.\r\n const fitems = (self.items || []).filter((itm) => {\r\n //return (itm.Exclude !== true && (itm.AllowedRoles.includes('all') || (self.user && itm.AllowedRoles.includes(curRole))));\r\n return true;\r\n });\r\n\r\n self.FilteredItems = fitems;\r\n\r\n if (self.FilteredItems && self.FilteredItems.length) {\r\n for (let i = 0, j = self.FilteredItems.length; i < j; ++i) self.FilteredItems[i].ButtonIndex = i;\r\n }\r\n\r\n // Initial update the url we are currently at.\r\n this.UpdateMenuItems(this.router.routerState.snapshot.url);\r\n }\r\n\r\n UpdateMenuItems(url: string) {\r\n // Clear all active flags\r\n if (this.FilteredItems && this.FilteredItems.length > 0) {\r\n this.FilteredItems.forEach((item) => {\r\n item.Active = false;\r\n });\r\n }\r\n\r\n // Check the url against all of our menu items to look for a match.\r\n if (this.FilteredItems && this.FilteredItems.length > 0) {\r\n this.FilteredItems.forEach((item) => {\r\n if (\r\n item.LinkedStates &&\r\n item.LinkedStates.find((value) => {\r\n return url.indexOf(value) >= 0;\r\n }) != null\r\n ) {\r\n // Found a match on this item. Set the button to being active.\r\n item.Active = true;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport class NavMenuItem {\r\n ButtonIndex?: number;\r\n MenuText: string;\r\n MenuIcon?: string;\r\n ActionRoute?: any[];\r\n LinkedStates?: string[];\r\n AllowedRoles?: string[];\r\n IsAbout?: boolean;\r\n IsHome?: boolean;\r\n IsLogout?: boolean;\r\n IsMenuSvg?: boolean;\r\n Color?: string;\r\n Active?: boolean;\r\n Exclude?: boolean;\r\n}\r\n","
{{greeting}}, {{username}}!
\r\n
\r\n \r\n Impersonated\r\n
\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { RoleTextPipe } from '../../pipes/roletext.pipe';\r\nimport { UserService, UserInfo } from '../../services/user/user.service';\r\n\r\n@Component({\r\n selector: 'user-info',\r\n styleUrls: ['userinfo.component.css'],\r\n templateUrl: 'userinfo.component.html'\r\n})\r\nexport class UserInfoComponent {\r\n private _timerHandle: number;\r\n greeting: string;\r\n username: string;\r\n role: string;\r\n @Input() user: UserInfo;\r\n @Input() showName: boolean;\r\n\r\n constructor(private userService: UserService, private rolePipe : RoleTextPipe) {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n this.username = (this.user.FirstName || '') + ' ' + (this.user.LastName || '');\r\n this.role = this.rolePipe.transform(this.user.CurrentRole);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._timerHandle) window.clearTimeout(this._timerHandle);\r\n this._timerHandle = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.SetTimeGreeting();\r\n this.username = (this.user.FirstName || '') + ' ' + (this.user.LastName || '');\r\n }\r\n\r\n SetTimeGreeting() {\r\n let now = new Date();\r\n let hour = now.getHours();\r\n\r\n if ((hour >= 0 && hour <= 4) || hour >= 18) {\r\n this.greeting = 'Good evening';\r\n } else if (hour > 4 && hour < 12) {\r\n this.greeting = 'Good morning';\r\n } else if (hour >= 12 && hour < 18) {\r\n this.greeting = 'Good afternoon';\r\n }\r\n\r\n // Set up a one hour timer from now to check this again.\r\n this._timerHandle = window.setTimeout(() => {\r\n this.SetTimeGreeting();\r\n }, 60 * 60 * 1000);\r\n }\r\n\r\n SwitchRole(newRole: string) {\r\n if (!newRole) return;\r\n\r\n this.userService.SetUserCurrentRole(newRole);\r\n }\r\n}\r\n","
\r\n

Workday Calendar Viewer

\r\n

\r\n Use the tool provided here to load the workday calendar for another employee. You may search for the employee by first name,\r\n last name, or by personnel #. Once you have selected the employee, the workday calendar will appear in the space below, just as\r\n it would in the Staff Portal for the selected employee. (Note: There may be slight visual differences due to architectural\r\n differences between this application and the Staff Portal. However, the content in the calendar is identical.)\r\n

\r\n \r\n \r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { Subscription, TeardownLogic, of } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\n\r\nimport { DialogService } from 'services/dialogs/dialogs.service';\r\nimport { ErrorService } from 'services/error/error.service';\r\nimport { PayrollService } from 'services/payroll/payroll.service';\r\nimport { UserInfo, UserService } from 'services/user/user.service';\r\nimport { WorkdayCalendarDateInfo } from 'models/payroll';\r\nimport { UserSearchResult } from 'services/application/application.service';\r\n\r\n@Component({\r\n selector: 'app-workday-calendar-viewer',\r\n styleUrls: ['workdaycalendarviewer.component.scss'],\r\n templateUrl: 'workdaycalendarviewer.component.html',\r\n})\r\nexport class WorkdayCalendarViewerComponent implements OnInit, OnDestroy {\r\n private _subrelease: Subscription = new Subscription();\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n CachedMonths: Dictionary[] = [];\r\n CalendarData: WorkdayCalendarDateInfo[][];\r\n CalendarLoaded: boolean;\r\n CurrentSY: string;\r\n Is11Month: boolean;\r\n Is12Month: boolean;\r\n IsCurrentSY: boolean;\r\n SelectedDate: Date;\r\n SelectedEmployee: UserSearchResult;\r\n SelectedMonth: number;\r\n SelectedYear: number;\r\n User: UserInfo;\r\n ViewReady: boolean;\r\n\r\n constructor(\r\n private dialogSvc: DialogService,\r\n private errorSvc: ErrorService,\r\n private payrollSvc: PayrollService,\r\n private userSvc: UserService\r\n ) {}\r\n\r\n ngOnDestroy() {}\r\n\r\n ngOnInit() {\r\n const self = this;\r\n const today = new Date();\r\n\r\n self.CalendarData = null;\r\n self.CalendarLoaded = false;\r\n self.CurrentSY = self.GetSchoolYearFromDate(today.getMonth() + 1, today.getFullYear());\r\n self.Is11Month = false;\r\n self.Is12Month = false;\r\n self.IsCurrentSY = false;\r\n self.SelectedDate = null;\r\n self.SelectedEmployee = null;\r\n self.SelectedMonth = null;\r\n self.SelectedYear = null;\r\n self.User = null;\r\n self.ViewReady = false;\r\n\r\n self.userSvc.UserSubject.pipe(first((_u) => !!_u && !!_u.AuthToken)).subscribe(\r\n (__u) => {\r\n self.User = __u;\r\n\r\n self.subrelease = self.userSvc.UserSubject.subscribe(\r\n (user) => {\r\n self.User = user;\r\n },\r\n (error) => self.errorSvc.HandleServiceError(error)\r\n );\r\n\r\n self.CalendarData = null;\r\n self.CalendarLoaded = false;\r\n\r\n const today = new Date();\r\n\r\n self.SelectedMonth = today.getMonth() + 1; // JS months are 0-based.\r\n self.SelectedYear = today.getFullYear();\r\n self.SelectedDate = new Date(self.SelectedYear, self.SelectedMonth - 1, 1);\r\n\r\n self.ViewReady = true;\r\n },\r\n (error) => self.errorSvc.HandleServiceError(error)\r\n );\r\n }\r\n\r\n // #region Adjust Month\r\n\r\n AdjustMonth(adj: number) {\r\n const self = this;\r\n\r\n if (adj == null) {\r\n return;\r\n }\r\n\r\n self.SelectedMonth += adj;\r\n\r\n if (self.SelectedMonth < 1) {\r\n self.SelectedMonth = 12;\r\n self.SelectedYear--;\r\n } else if (self.SelectedMonth === 13) {\r\n self.SelectedMonth = 1;\r\n self.SelectedYear++;\r\n }\r\n\r\n // Load the next calendar.\r\n self.RetrieveMonthCalendar();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get School Year From Date\r\n\r\n GetSchoolYearFromDate(month, year) {\r\n if (month <= 6) {\r\n // This is in the tail end of the school year.\r\n return ('2000' + (year - 1)).slice(-4) + ('2000' + year).slice(-4);\r\n } else {\r\n // This is the start of a new fiscal/school year.\r\n return ('2000' + year).slice(-4) + ('2000' + (year + 1)).slice(-4);\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Retrieve Month Calendar\r\n\r\n RetrieveMonthCalendar() {\r\n const self = this;\r\n\r\n if (!self.SelectedEmployee) {\r\n return;\r\n }\r\n\r\n // Is the requested month and year in the current school year based on today's date?\r\n const tgtSY = self.GetSchoolYearFromDate(self.SelectedMonth, self.SelectedYear);\r\n let tmpCurrentSY = self.CurrentSY.localeCompare(tgtSY) >= 0;\r\n\r\n // Build a dictionary key\r\n const key = self.SelectedMonth + '/' + self.SelectedYear;\r\n\r\n // Does the data already exist in the cache?\r\n const foundData = self.CachedMonths.find((c) => c.Key === key);\r\n\r\n (!!foundData\r\n ? of(foundData.Value)\r\n : self.payrollSvc.GetWorkdayCalendar(\r\n self.User.AuthToken,\r\n self.SelectedEmployee.EmployeeSAPID,\r\n self.SelectedMonth,\r\n self.SelectedYear\r\n )\r\n ).subscribe(\r\n (cal) => {\r\n // Split into an array of arrays, representing the calendar weeks.\r\n const splitArr = [] as WorkdayCalendarDateInfo[][];\r\n const datacpy = cal.slice();\r\n\r\n while (datacpy.length) {\r\n splitArr.push([...datacpy.splice(0, 7)]);\r\n }\r\n\r\n self.CalendarData = splitArr;\r\n self.CalendarLoaded = true;\r\n\r\n // Look in the data retrieved. If anything has text for the day, assume we have data for this month\r\n // even if it's in the future.\r\n if (!tmpCurrentSY) {\r\n if (cal.some((d) => d.IsHoliday || !!d.WorkdayText)) {\r\n tmpCurrentSY = true;\r\n }\r\n }\r\n\r\n // Look inside the list for the first non-empty PayRateCode value, as this will determine whether\r\n // this employee is 11 - month, or 12-month.\r\n self.Is11Month = false;\r\n self.Is12Month = false;\r\n self.IsCurrentSY = tmpCurrentSY;\r\n const payFirst = cal.find((d) => !!d.PayRateCode);\r\n\r\n if (payFirst) {\r\n self.Is11Month = payFirst.PayRateCode === '11';\r\n self.Is12Month = payFirst.PayRateCode === '12';\r\n }\r\n\r\n self.SelectedDate = new Date(self.SelectedYear, self.SelectedMonth - 1, 1);\r\n\r\n // Cache this in the array if necessary\r\n if (!foundData) {\r\n self.CachedMonths.push({\r\n Key: key,\r\n Value: cal,\r\n });\r\n\r\n if (self.CachedMonths.length > 10) {\r\n self.CachedMonths.splice(0, 1);\r\n }\r\n }\r\n },\r\n (error) => self.errorSvc.HandleServiceError(error)\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Search For User\r\n\r\n SearchForUser() {\r\n const self = this;\r\n\r\n // Prompt for user.\r\n self.dialogSvc\r\n .OpenUserSearch({\r\n TitleText: 'Search for User',\r\n OKText: 'Select User',\r\n })\r\n .subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n // Set the employee.\r\n self.SelectedEmployee = result.TargetEmployee;\r\n\r\n // Flush the cache, reset the date to today's month/year, and retrieve the new calendar.\r\n self.CachedMonths = [];\r\n const today = new Date();\r\n\r\n self.SelectedMonth = today.getMonth() + 1;\r\n self.SelectedYear = today.getFullYear();\r\n\r\n self.RetrieveMonthCalendar();\r\n });\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Types\r\n\r\ninterface Dictionary {\r\n Key: string;\r\n Value: T;\r\n}\r\n\r\n// #endregion\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};\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\nimport 'hammerjs';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.log(err));\r\n","export class ExitSurvey {\r\n FirstName: string;\r\n LastName: string;\r\n ExitSurveyID: number;\r\n SAPID: string;\r\n PositionNo: string;\r\n ActionType: string;\r\n Reason: string;\r\n SurveyType: string;\r\n EffectiveDate: string;\r\n Status: string;\r\n ePAFID: string;\r\n DateCreated: string;\r\n DateUpdated: string;\r\n RetrievedBySAP: string;\r\n UpdatedBySAP: string;\r\n}\r\n\r\nexport class ExitSurveySummary {\r\n SurveyTotal: number;\r\n SummaryReasons: ExitSurveySummaryReason[];\r\n}\r\n\r\nexport class ExitSurveySummaryReason {\r\n ReasonType: string;\r\n Reason: string;\r\n Count: number;\r\n}\r\n\r\nexport var single = [\r\n {\r\n \"name\": \"Germany\",\r\n \"value\": 8940000\r\n },\r\n {\r\n \"name\": \"USA\",\r\n \"value\": 5000000\r\n },\r\n {\r\n \"name\": \"France\",\r\n \"value\": 7200000\r\n }\r\n];\r\n\r\nexport var multi = [\r\n {\r\n \"name\": \"Germany\",\r\n \"series\": [\r\n {\r\n \"name\": \"2010\",\r\n \"value\": 7300000\r\n },\r\n {\r\n \"name\": \"2011\",\r\n \"value\": 8940000\r\n }\r\n ]\r\n },\r\n\r\n {\r\n \"name\": \"USA\",\r\n \"series\": [\r\n {\r\n \"name\": \"2010\",\r\n \"value\": 7870000\r\n },\r\n {\r\n \"name\": \"2011\",\r\n \"value\": 8270000\r\n }\r\n ]\r\n },\r\n\r\n {\r\n \"name\": \"France\",\r\n \"series\": [\r\n {\r\n \"name\": \"2010\",\r\n \"value\": 5000002\r\n },\r\n {\r\n \"name\": \"2011\",\r\n \"value\": 5800000\r\n }\r\n ]\r\n }\r\n];\r\n\r\nexport let colorSets = [\r\n {\r\n name: 'vivid',\r\n selectable: true,\r\n group: 'Ordinal',\r\n domain: [\r\n '#647c8a', '#3f51b5', '#2196f3', '#00b862', '#afdf0a', '#a7b61a', '#f3e562', '#ff9800', '#ff5722', '#ff4514'\r\n ]\r\n },\r\n {\r\n name: 'natural',\r\n selectable: true,\r\n group: 'Ordinal',\r\n domain: [\r\n '#bf9d76', '#e99450', '#d89f59', '#f2dfa7', '#a5d7c6', '#7794b1', '#afafaf', '#707160', '#ba9383', '#d9d5c3'\r\n ]\r\n },\r\n {\r\n name: 'cool',\r\n selectable: true,\r\n group: 'Ordinal',\r\n domain: [\r\n '#a8385d', '#7aa3e5', '#a27ea8', '#aae3f5', '#adcded', '#a95963', '#8796c0', '#7ed3ed', '#50abcc', '#ad6886'\r\n ]\r\n },\r\n {\r\n name: 'fire',\r\n selectable: true,\r\n group: 'Ordinal',\r\n domain: [\r\n '#ff3d00', '#bf360c', '#ff8f00', '#ff6f00', '#ff5722', '#e65100', '#ffca28', '#ffab00'\r\n ]\r\n },\r\n {\r\n name: 'solar',\r\n selectable: true,\r\n group: 'Continuous',\r\n domain: [\r\n '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00'\r\n ]\r\n },\r\n {\r\n name: 'air',\r\n selectable: true,\r\n group: 'Continuous',\r\n domain: [\r\n '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b'\r\n ]\r\n },\r\n {\r\n name: 'aqua',\r\n selectable: true,\r\n group: 'Continuous',\r\n domain: [\r\n '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064'\r\n ]\r\n },\r\n {\r\n name: 'flame',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#A10A28', '#D3342D', '#EF6D49', '#FAAD67', '#FDDE90', '#DBED91', '#A9D770', '#6CBA67', '#2C9653', '#146738'\r\n ]\r\n },\r\n {\r\n name: 'ocean',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#1D68FB', '#33C0FC', '#4AFFFE', '#AFFFFF', '#FFFC63', '#FDBD2D', '#FC8A25', '#FA4F1E', '#FA141B', '#BA38D1'\r\n ]\r\n },\r\n {\r\n name: 'forest',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#55C22D', '#C1F33D', '#3CC099', '#AFFFFF', '#8CFC9D', '#76CFFA', '#BA60FB', '#EE6490', '#C42A1C', '#FC9F32'\r\n ]\r\n },\r\n {\r\n name: 'horizon',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#2597FB', '#65EBFD', '#99FDD0', '#FCEE4B', '#FEFCFA', '#FDD6E3', '#FCB1A8', '#EF6F7B', '#CB96E8', '#EFDEE0'\r\n ]\r\n },\r\n {\r\n name: 'neons',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#FF3333', '#FF33FF', '#CC33FF', '#0000FF', '#33CCFF', '#33FFFF', '#33FF66', '#CCFF33', '#FFCC00', '#FF6600'\r\n ]\r\n },\r\n {\r\n name: 'picnic',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#FAC51D', '#66BD6D', '#FAA026', '#29BB9C', '#E96B56', '#55ACD2', '#B7332F', '#2C83C9', '#9166B8', '#92E7E8'\r\n ]\r\n },\r\n {\r\n name: 'night',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#2B1B5A', '#501356', '#183356', '#28203F', '#391B3C', '#1E2B3C', '#120634',\r\n '#2D0432', '#051932', '#453080', '#75267D', '#2C507D', '#4B3880', '#752F7D', '#35547D'\r\n ]\r\n },\r\n {\r\n name: 'nightLights',\r\n selectable: false,\r\n group: 'Ordinal',\r\n domain: [\r\n '#4e31a5', '#9c25a7', '#3065ab', '#57468b', '#904497', '#46648b',\r\n '#32118d', '#a00fb3', '#1052a2', '#6e51bd', '#b63cc3', '#6c97cb', '#8671c1', '#b455be', '#7496c3'\r\n ]\r\n }\r\n];\r\n//to do: add reasons class","import { Data } from '@angular/router';\r\n\r\nexport interface SummerSchool {\r\n SchoolName?: string;\r\n SchoolNumber: string;\r\n IsElementary?: boolean;\r\n IsMiddle?: boolean;\r\n IsSenior?: boolean;\r\n ExtendedLearningAcad?: boolean;\r\n Title1Program: boolean;\r\n ESYIncluded: boolean;\r\n ESYOnly: boolean;\r\n VPKIncluded: boolean;\r\n ELL: boolean;\r\n ELLOnly: boolean;\r\n Migrant: boolean;\r\n Alternate: boolean;\r\n Active: boolean;\r\n SummerSchoolsID?: number | null;\r\n}\r\n\r\nexport class SummerApp {\r\n SummerApplicationID: number;\r\n SAPID: string;\r\n JobTitle: string;\r\n WorkLocation: string;\r\n FirstName: string;\r\n LastName: string;\r\n PrimaryEmail: string;\r\n SecondaryEmail: string;\r\n PrimaryPhone: string;\r\n SecondaryPhone: string;\r\n PositionSelected: string;\r\n CertificationCurrent: string;\r\n SchoolYear: string;\r\n DateCreated: Date;\r\n ProcessedBy: string;\r\n ProcessedDate: Date;\r\n ReceivedFrom: string;\r\n ReceivedDate: Date;\r\n AssignedSite: string;\r\n DistrictNotes: string;\r\n SummerCerts: SummerCert[];\r\n SummerSchoolSelected: SummerSchoolSelected[];\r\n AssignedContent: number;\r\n AssignedContentDesc: string;\r\n AssignedProgram: number;\r\n AssignedProgramDesc: string;\r\n show: boolean;\r\n}\r\n\r\nexport class SummerCert {\r\n CertNumber: string;\r\n CertEffective: string;\r\n CertExpiration: string;\r\n CertType: string;\r\n CertDescription: string;\r\n Subjects: SummerSubject[];\r\n}\r\n\r\nexport class SummerSubject {\r\n Subject: string;\r\n DESCRIPTION: string;\r\n}\r\n\r\nexport class SummerSchoolSelected {\r\n School_name: string;\r\n AppliedType: string;\r\n}\r\n\r\nexport class SummerProcessing {\r\n SummerApplicationID: number;\r\n ReceivedFrom: string;\r\n ReceivedDate: string;\r\n AssignedSite: string;\r\n DistrictNotes: string;\r\n AssignedContent: number;\r\n AssignedProgram: number;\r\n}\r\n\r\nexport class AddSchoolToApplication {\r\n AddSchoolSummerApplicationID: number;\r\n SummerSchoolsID: number;\r\n AppliedType: string;\r\n}\r\n\r\nexport class SummerJourneyEval {\r\n SAPID: string;\r\n FiscalYear: string;\r\n HasStage2: boolean;\r\n Stage2_Score: number;\r\n Stage2_Rank: string;\r\n Stage2_Rating: string;\r\n Stage2_HasUnsatEPCs: boolean;\r\n Stage2_CountUnsatEPCs: number;\r\n HasStage1: boolean;\r\n Stage1_Score: number;\r\n Stage1_Rank: string;\r\n Stage1_Rating: string;\r\n Stage1_HasUnsatEPCs: boolean;\r\n Stage1_CountUnsatEPCs: number;\r\n Eligible: boolean;\r\n Eligible_Reason: string;\r\n}\r\nexport class SummerCourses {\r\n SAPID: string;\r\n CourseTitle: string;\r\n}\r\n\r\nexport class SummerAssignedContent {\r\n CodeTableID: number;\r\n Description: string;\r\n}\r\n\r\nexport class SummerAssignedProgram {\r\n CodeTableID: number;\r\n Description: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dayOfWeek',\r\n})\r\nexport class DayOfWeekPipe implements PipeTransform {\r\n private static readonly DaysOfWeekNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n private static readonly mediumDaysOfWeekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\r\n private static readonly shortDaysOfWeekNames = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa'];\r\n\r\n transform(value: number, shortForm?: boolean) {\r\n if (value == null) {\r\n return '';\r\n }\r\n if (value < 0 || value > DayOfWeekPipe.DaysOfWeekNames.length) {\r\n return value;\r\n }\r\n\r\n return shortForm === true ? DayOfWeekPipe.shortDaysOfWeekNames[value] : DayOfWeekPipe.DaysOfWeekNames[value];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'electionMethod',\r\n})\r\nexport class ElectionMethodPipe implements PipeTransform {\r\n transform(value: number) {\r\n if (value == null) {\r\n return '';\r\n }\r\n\r\n switch (value) {\r\n case 1:\r\n return 'Monthly Payment';\r\n case 2:\r\n return 'Semi-Monthly Payment with Additional Holdback';\r\n case 4:\r\n return 'Semi-Monthly Payment Immediately (NO holdback)';\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DecimalPipe } from \"@angular/common\";\r\n\r\n@Pipe({\r\n name: \"fileSize\"\r\n})\r\nexport class FileSizePipe implements PipeTransform {\r\n constructor(private decimalPipe: DecimalPipe) {}\r\n\r\n transform(value: number, decimals?: number) {\r\n const _sizebreaks = [0, 1000, 1000000, 1000000000, 1000000000000];\r\n const _sizeextents = [\"B\", \"kB\", \"MB\", \"GB\", \"TB\"];\r\n\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n for (let i = _sizebreaks.length - 1; i >= 0; --i) {\r\n if (_sizebreaks[i] <= value) {\r\n const major =\r\n _sizebreaks[i] > 0 ? (value * 1.0) / _sizebreaks[i] : value;\r\n const minor = decimals != null ? decimals : 2;\r\n\r\n return `${this.decimalPipe.transform(major, `1.${minor}-${minor}`)} ${\r\n _sizeextents[i]\r\n }`;\r\n }\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"roleText\"\r\n})\r\nexport class RoleTextPipe implements PipeTransform {\r\n transform(value: string) {\r\n if (value == null || value == \"\") return \"\";\r\n\r\n switch (value) {\r\n case \"SystemAdmin\":\r\n return \"System Administrator\";\r\n case \"GeneralUser\":\r\n return \"General User\";\r\n case \"Developer\":\r\n return \"Developer\";\r\n case \"SummerApp\":\r\n return \"SummerApp\";\r\n case \"Incounty\":\r\n return \"Incounty\";\r\n case \"ExitSurvey\":\r\n return \"ExitSurvey\";\r\n case \"Certification\":\r\n return \"Certification\";\r\n case \"Transcripts\":\r\n return \"Transcripts\";\r\n default:\r\n return value;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHTML'\r\n})\r\nexport class SafeHTMLPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(value) {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'schoolYear'\r\n})\r\nexport class SchoolYearPipe implements PipeTransform {\r\n transform(value: string) {\r\n if (value.length == 8) return value.substr(0, 4) + ' - ' + value.substr(4);\r\n if (value.length == 4) return '20' + value.substr(0, 2) + ' - ' + '20' + value.substr(2);\r\n return value;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'titleCase',\r\n})\r\nexport class TitleCasePipe implements PipeTransform {\r\n transform(value: string) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const formatted = value.replace(/[A-Za-z]+\\s*/g, (val) => {\r\n if (/^[Ii]+$/.test(val)) {\r\n return val.toUpperCase();\r\n } else {\r\n return val[0].toUpperCase() + val.substr(1).toLowerCase();\r\n }\r\n });\r\n\r\n return formatted;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'yesNo',\r\n})\r\nexport class YesNoPipe implements PipeTransform {\r\n transform(value: boolean) {\r\n return value === true ? 'Yes' : 'No';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { COVIDComponent } from 'app/covid/covid.component';\r\nimport { SiteMaintinanceComponent } from 'app/site-maintinance/site-maintinance.component';\r\nimport { CertificationComponent } from '../app/certification/certification.component';\r\nimport { CoachpoolAppComponent } from '../app/coachpoolapplication/coachpoolapplication.component';\r\nimport { ExitSurveyComponent } from '../app/exit-survey/exit-survey-app.component';\r\nimport { HomeComponent } from '../app/home/home.component';\r\nimport { IncountyComponent } from '../app/incounty/incounty.component';\r\nimport { LoginComponent } from '../app/login/login.component';\r\nimport { PayrollComponent } from '../app/payroll/payroll.component';\r\nimport { SummerAppComponent } from '../app/summer-app/summer-app.component';\r\nimport { TranscriptsComponent } from '../app/transcripts/transcripts.component';\r\nimport { WorkdayCalendarViewerComponent } from '../app/workdaycalendarviewer/workdaycalendarviewer.component';\r\nimport { AuthenticatedGuard } from './routes.guard';\r\n\r\nconst routes: Routes = [\r\n { path: 'home', component: HomeComponent, canActivate: [AuthenticatedGuard] },\r\n { path: 'login', component: LoginComponent },\r\n // { path: 'otherreview/:id', component: OtherReviewComponent, canActivate: [AuthenticatedGuard] },\r\n {\r\n path: 'summerapp',\r\n component: SummerAppComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'coachapp',\r\n component: CoachpoolAppComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'exitsurvey',\r\n component: ExitSurveyComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'maintenance',\r\n component: SiteMaintinanceComponent,\r\n },\r\n {\r\n path: 'incounty',\r\n component: IncountyComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'certification',\r\n component: CertificationComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'payroll',\r\n component: PayrollComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'transcripts',\r\n component: TranscriptsComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'workdaycalendar',\r\n component: WorkdayCalendarViewerComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n {\r\n path: 'covid19',\r\n component: COVIDComponent,\r\n canActivate: [AuthenticatedGuard],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserService } from '../services/user/user.service';\r\n\r\n@Injectable()\r\nexport class AuthenticatedGuard implements CanActivate {\r\n private _isAuthenticated: boolean;\r\n private _currentRole: string;\r\n private _userSub: Subscription;\r\n\r\n constructor(private userService: UserService) {\r\n this._isAuthenticated = false; // Default to not authenticated.\r\n\r\n this._userSub = this.userService.UserSubject.subscribe(user => {\r\n this._isAuthenticated = user && (user.AuthToken != null && user.AuthToken != '');\r\n this._currentRole = (user != null && user.CurrentRole ? user.CurrentRole.toLowerCase() : null);\r\n });\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n // At a minimum, only allow access if we have a valid authtoken stored for the current user.\r\n let isAuth = this._isAuthenticated;\r\n\r\n // If there is optional data present, particularly the 'roles' array, we must also check to ensure that the current role of the user allows for this state\r\n // to be reached.\r\n if (route.data != null && route.data['roles'] != null && route.data['roles'].length > 0) {\r\n if (this._currentRole == null) {\r\n return false; // If we have limited roles, but no current role established, that is an automatic failure.\r\n }\r\n\r\n let roles: string[] = route.data['roles'];\r\n let matched = roles.find((rolename: string) => {\r\n if (rolename.toLowerCase() == this._currentRole || rolename.toLowerCase() == 'all') {\r\n return true;\r\n }\r\n });\r\n return (matched != null);\r\n }\r\n return this._isAuthenticated;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._userSub) this._userSub.unsubscribe();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { WindowInfo } from 'models/payroll';\r\nimport { ConfigService } from 'services/config/config.service';\r\n\r\n@Injectable()\r\nexport class ApplicationService {\r\n constructor(private http: HttpClient, private configService: ConfigService) {}\r\n\r\n SystemUpChecker() {\r\n return this.http.get(this.configService.hostAddress + 'Api/Services/App/SystemUpChecker');\r\n }\r\n\r\n SystemConfigGetByDescription(Desc: string) {\r\n return this.http.get(\r\n this.configService.hostAddress + `Api/Services/App/SystemConfigGetByDescription?Desc=${Desc || ''}`\r\n );\r\n }\r\n}\r\n\r\n// #region User Search Result Class\r\n\r\nexport class UserSearchResult {\r\n EmployeeFirstName?: string;\r\n EmployeeLastName?: string;\r\n City?: string;\r\n Email?: string;\r\n ActiveDirectoryEmail?: string;\r\n UserID?: number;\r\n Username?: string;\r\n AsAdmin?: boolean;\r\n EmployeeSAPID?: string;\r\n PositionNo?: string;\r\n LocalJobTitle?: string;\r\n Password?: string;\r\n WorkLocation?: string;\r\n SiteName?: string;\r\n DistrictLock?: boolean;\r\n\r\n ElectionStatus?: number;\r\n DateElected?: Date;\r\n}\r\n\r\n// #endregion\r\n\r\nexport class ConfigWindowTable {\r\n WindowStatus?: string;\r\n\r\n WindowTitle?: string;\r\n ApplicationTypeString?: string;\r\n ConfigDescription: string;\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpResponse, HttpHeaders } from '@angular/common/http';\r\nimport { map , share , takeUntil } from 'rxjs/operators';\r\nimport { Observable , Subject } from 'rxjs';\r\n//import * as moment from 'moment';\r\nimport { addSeconds, differenceInSeconds, format, isValid } from 'date-fns';\r\nimport { SessionStorage } from 'ng2-webstorage';\r\nimport { ConfigService } from '../config/config.service';\r\nimport { SplashService } from '../splash/splash.service';\r\nimport { UserInfo, UserService } from '../user/user.service';\r\nimport { VERSION_NUMBER, BUILD_TIME } from '../version/version.service';\r\nimport { DialogService, ConfirmationDialogOptions } from '../dialogs/dialogs.service';\r\nimport { CountdownDialogOptions } from '../dialogs/countdown/countdown.dialogcomponent';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\n\r\n@Injectable()\r\nexport class AuthService implements OnDestroy {\r\n private _subRelease: Subject = new Subject();\r\n @SessionStorage() nextAuthRefresh: string;\r\n AuthTokenCancelFlag: boolean;\r\n AuthTokenRefreshHandle: number;\r\n AuthRefreshDeadline: Date;\r\n HasVersionUpdate: Subject = new Subject();\r\n BuildTime: Subject = new Subject();\r\n VersionNumber: Subject = new Subject();\r\n IsRefreshing: boolean;\r\n static AUTHCHECKTIME: number = 45 * 60; // 45 minutes (time period to wait between successive checks of whether the auth token is recently used)\r\n static LOGOUTWARNINGTIME: number = 170; // 2 minutes, 50 seconds (time period to wait before logging the user out automatically). Roughly 48 minutes total between check and autologout\r\n static SYSTEMTIMESUSERSOUT: boolean = true; // Controls whether or not the system will time its users out for inactivity. If this is set to true, after the time shown\r\n // above the system will check for recent use. If no recent use was reported, the system will begin a timeout check. After that,\r\n // the system will logout the user if they are currently logged in. If this is set to false, the system will merely refresh\r\n // their auth token and allow them to remain in the system.\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private userService: UserService,\r\n private router: Router,\r\n private dialogService: DialogService,\r\n private splashService: SplashService,\r\n public oidcSecurityService: OidcSecurityService\r\n ) {\r\n this.AuthRefreshDeadline = this.nextAuthRefresh ? new Date(this.nextAuthRefresh) : null;\r\n this.IsRefreshing = false;\r\n\r\n let bmoment = new Date(BUILD_TIME);\r\n if (isValid(bmoment)) this.BuildTime.next(format(bmoment, 'MMM. dd, yyyy h:mm a'));\r\n\r\n this.VersionNumber.next(VERSION_NUMBER);\r\n\r\n // Set up the subscription to watch for the user being updated, so we can tell if we need to boot up auth token refreshing.\r\n this.userService.UserSubject.pipe(share(), takeUntil(this._subRelease)).subscribe((user) => {\r\n // See if we have a User object already known to us. If so, this was a refresh of the page most likely, and thus we need to kick start\r\n // authtoken refreshing again.\r\n if (user && !this.IsRefreshing && user.AuthToken) {\r\n this.StartAuthTokenRefreshing();\r\n }\r\n });\r\n }\r\n\r\n get(url: string): Observable {\r\n return this.http.get(url, { headers: this.getHeaders() });\r\n }\r\n\r\n put(url: string, data: any): Observable {\r\n const body = JSON.stringify(data);\r\n return this.http.put(url, body, { headers: this.getHeaders() });\r\n }\r\n\r\n delete(url: string): Observable {\r\n return this.http.delete(url, { headers: this.getHeaders() });\r\n }\r\n\r\n post(url: string, data: any): Observable {\r\n const body = JSON.stringify(data);\r\n return this.http.post(url, body, { headers: this.getHeaders() });\r\n }\r\n\r\n private getHeaders() {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Content-Type', 'application/json');\r\n return this.appendAuthHeader(headers);\r\n }\r\n\r\n private appendAuthHeader(headers: HttpHeaders) {\r\n const token = this.oidcSecurityService.getToken();\r\n\r\n if (token === '') return headers;\r\n\r\n const tokenValue = 'Bearer ' + token;\r\n return headers.set('Authorization', tokenValue);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subRelease.next();\r\n this._subRelease.complete();\r\n }\r\n\r\n IsSystemAvailable() {\r\n // Call the WebApi to see if anyone is home.\r\n return this.http.get(this.configService.hostAddress + 'Api/Services/Authentication/TestConnection');\r\n }\r\n\r\n SummerTestWithOIDC() {\r\n return this.get('http://localhost:60624/api/identitytest');\r\n }\r\n\r\n SummerTest() {\r\n return this.http.get('http://localhost:60624/api/identitytest');\r\n }\r\n\r\n private AuthTokenRefresh() {\r\n let self = this;\r\n\r\n // Now retrieve the auth token for the currently logged in user, stored in the userService\r\n var auth = this.userService.User.AuthToken;\r\n\r\n // Send a request to the system to check to see if the user's \"Recent Use\" flag is set. If it is, we will refresh their auth token and reset all countdown timers.\r\n this.CheckRecentUse(auth).subscribe(\r\n (recentUse) => {\r\n // If we get a non-null result, it indicates the status of the \"Recent Use\" flag. If it's true, we trigger an auth token refresh, which in turn will\r\n // reset the clock for our next check of recent use, etc. If it's false, but the global static SYSTEMTIMESUSERSOUT is set to false as well, then we\r\n // reauthorize the user to let them stay in the system.\r\n if (recentUse === true || AuthService.SYSTEMTIMESUSERSOUT === false) {\r\n // Call the service which will refresh the auth token.\r\n this.RefreshAuthToken(auth).subscribe(\r\n (newAuthPacket) => {\r\n let newAuth = newAuthPacket.AuthToken || newAuthPacket;\r\n\r\n if (newAuthPacket && newAuthPacket.Version) {\r\n // We have version information. Does it match the version known here in the TypeScript? If not, set the update flag.\r\n if (VERSION_NUMBER != newAuthPacket.Version) {\r\n // Mismatch. Set the flag.\r\n this.HasVersionUpdate.next(true);\r\n }\r\n }\r\n\r\n // We have a valid, new auth token. Update the User variable in the userService to reflect this.\r\n this.userService.UpdateAuthToken(newAuth);\r\n\r\n // If there is no flag signal set preventing this loop from continuing, then we can set up the next iteration with a timeout now.\r\n if (!this.AuthTokenCancelFlag) {\r\n this.AuthTokenRefreshHandle = window.setTimeout(() => {\r\n this.AuthTokenRefresh();\r\n }, AuthService.AUTHCHECKTIME * 1000);\r\n\r\n // Set the refresh deadline app value\r\n var Now = new Date();\r\n this.AuthRefreshDeadline = addSeconds(Now, AuthService.AUTHCHECKTIME);\r\n this.nextAuthRefresh = this.AuthRefreshDeadline.toISOString();\r\n }\r\n },\r\n (error) => {\r\n // An error occurred. Attempt to retrieve it.\r\n var body = error.json();\r\n var body =\r\n (body && body.Message) ||\r\n body ||\r\n 'An error occurred while trying to valid your active connection to the system. You have been logged out.';\r\n this.splashService.SnackbarError(body, 5000);\r\n }\r\n );\r\n } else {\r\n // We either could not retrieve the \"Recent Use\" flag, or we DID and it was false and the global static shows that we should time out the user.\r\n // In either case, we must begin a countdown process to log out the user from the system.\r\n // First, disable the current auth token refresh cycling. We won't restart that until we get feedback from the user.\r\n this.CancelAuthTokenRefreshing();\r\n\r\n let options: CountdownDialogOptions = {\r\n TitleText: 'Session Inactivity Logout',\r\n MessageText: `You are about to be automatically logged out of the system due to inactivity. If you wish to stay logged in to the site, please click the \"Stay Logged In\" button below.`,\r\n OKText: 'Stay Logged In',\r\n CancelText: 'Log Out',\r\n CountdownTime: AuthService.LOGOUTWARNINGTIME,\r\n };\r\n\r\n this.dialogService.OpenCountdownDialog(options).subscribe((res) => {\r\n if (res === true) {\r\n // User wants to stay logged in - Restart the auth token refresh cycling.\r\n this.RefreshAuthToken(auth).subscribe(\r\n (newAuthPacket) => {\r\n let newAuth = newAuthPacket.AuthToken || newAuthPacket;\r\n\r\n if (newAuthPacket && newAuthPacket.Version) {\r\n // We have version information. Does it match the version known here in the TypeScript? If not, set the update flag.\r\n if (VERSION_NUMBER != newAuthPacket.Version) {\r\n // Mismatch. Set the flag.\r\n this.HasVersionUpdate.next(true);\r\n }\r\n }\r\n\r\n // We have a new valid auth token to use. Update the user object accordingly with the new token.\r\n this.userService.UpdateAuthToken(newAuth);\r\n },\r\n (error) => {\r\n // Snackbar the error\r\n var body = error.json();\r\n var body =\r\n (body && body.Message) ||\r\n body ||\r\n 'An error occurred while trying to valid your active connection to the system. You have been logged out.';\r\n this.splashService.SnackbarError(body, 5000);\r\n }\r\n );\r\n } else {\r\n // User wishes to logout, or the timer expired. Either way, log them out.\r\n this.Logout(false, 1);\r\n }\r\n });\r\n }\r\n },\r\n (error) => {\r\n // This represents an error when trying to get recent use. Likely this is due to the session expiring in the authtoken. In this case, cancel the\r\n // refresh handle, and log out the user.\r\n this.CancelAuthTokenRefreshing();\r\n\r\n this.Logout(false, 2);\r\n }\r\n );\r\n }\r\n\r\n CancelAuthTokenRefreshing() {\r\n // If possible, use the handle to cancel the timeout from happening\r\n if (this.AuthTokenRefreshHandle != null) {\r\n window.clearTimeout(this.AuthTokenRefreshHandle);\r\n }\r\n\r\n // Cancel the flag, handle, and deadline to refresh\r\n this.AuthTokenRefreshHandle = null;\r\n this.AuthTokenCancelFlag = null;\r\n this.AuthRefreshDeadline = null;\r\n this.IsRefreshing = false;\r\n this.nextAuthRefresh = null;\r\n }\r\n\r\n CheckRecentUse(AuthToken: string) {\r\n return this.http.get(\r\n this.configService.hostAddress + `Api/Services/Authentication/CheckRecentUse?AuthToken=${AuthToken || ''}`\r\n );\r\n }\r\n\r\n CreateNewAccount(firstName: string, lastName: string, password: string, email: string) {\r\n return this.http.post(this.configService.hostAddress + 'Api/Services/Authentication/CreateNewAccount', {\r\n FirstName: firstName,\r\n LastName: lastName,\r\n Password: password,\r\n Email: email,\r\n });\r\n }\r\n\r\n HandleServiceError(error: any) {\r\n let self = this;\r\n let status: number = null;\r\n let msg: string = null;\r\n\r\n if (error instanceof HttpResponse) {\r\n status = error.status;\r\n\r\n let body = error.body;\r\n msg = body.Message || (typeof body == 'string' ? body : 'An unknown error has occurred.');\r\n } else {\r\n let errorPacket = error.message || error;\r\n\r\n if (errorPacket != null && errorPacket != '' && errorPacket[0] == '{') errorPacket = JSON.parse(errorPacket);\r\n msg =\r\n errorPacket != null && errorPacket instanceof Object\r\n ? errorPacket.ExceptionMessage || errorPacket.Message || error\r\n : errorPacket || 'An unknown error has occurred.';\r\n }\r\n\r\n if (status == 408) {\r\n // This is a Request Timeout response, indicating the user's session has expired.\r\n self.dialogService\r\n .OpenMessageBoxDialog({\r\n TitleText: 'Session Timed Out',\r\n MessageText: `Your current session to the PURE System has timed out and your login access has been closed. In order to continue using the PURE System, you will need to login again to the system.`,\r\n })\r\n .subscribe((res) => {\r\n // Force an unconfirmed logout to clear user stored values and return to the login screen.\r\n self.Logout(false, 2);\r\n });\r\n } else {\r\n // Something else, which should be snackbar displayed.\r\n self.splashService.SnackbarError(msg, 8000);\r\n }\r\n }\r\n\r\n Logout(confirmation?: boolean, reason?: number) {\r\n if (confirmation === true) {\r\n // Pop up a confirmation box to confirm desire to logout.\r\n let opts: ConfirmationDialogOptions = {\r\n TitleText: 'Confirmation Requested',\r\n MessageText: 'You are about to log out of the site. Are you sure you wish to exit at this time?',\r\n OKText: 'Yes - Log Out',\r\n CancelText: 'No - Stay Logged In',\r\n };\r\n\r\n this.dialogService.OpenConfirmationDialog(opts).subscribe((result) => {\r\n if (result === true) {\r\n // User is opting to log out. Proceed.\r\n this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Authentication/Logout?AuthToken=${this.userService.User.AuthToken}&Reason=${reason}`\r\n )\r\n .subscribe((result) => {});\r\n\r\n // Stop authtoken refreshing\r\n this.CancelAuthTokenRefreshing();\r\n\r\n // Null out the current user.\r\n this.userService.ClearUser();\r\n\r\n // Snackbar the logout if this was user initiated (reason null or 0)\r\n if (reason == null || reason == 0) {\r\n this.splashService.SnackbarSuccess('Successfully logged out.', 500000);\r\n }\r\n\r\n // Close out all remaining open dialogs\r\n this.dialogService.CloseAllDialogs();\r\n\r\n // Navigate to the home page.\r\n this.router.navigate(['/login']);\r\n }\r\n });\r\n } else {\r\n // No dialog needed. Exit out.\r\n this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Authentication/Logout?AuthToken=${this.userService.User.AuthToken || ''}&Reason=${reason}`\r\n )\r\n .subscribe((result) => {});\r\n\r\n // Stop authtoken refreshing\r\n this.CancelAuthTokenRefreshing();\r\n\r\n // Null out the current user.\r\n this.userService.ClearUser();\r\n\r\n // Snackbar the logout if this was user initiated (reason null or 0)\r\n if (reason == null || reason == 0) {\r\n this.splashService.SnackbarSuccess('Successfully logged out.', 5000);\r\n }\r\n\r\n // Close out all remaining open dialogs\r\n this.dialogService.CloseAllDialogs();\r\n\r\n // Navigate to the home page.\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n\r\n public PolkSSOLogin = (authToken: string, screen?: string, winres?: string) => {\r\n return >this.http.post(\r\n this.configService.hostAddress + 'Api/Services/Authentication/PolkSSOLogin',\r\n {\r\n EncryptedAuthToken: authToken,\r\n Screen: screen,\r\n Window: winres,\r\n }\r\n );\r\n };\r\n\r\n ProcessLogin(user: UserInfo) {\r\n // Set the user information.\r\n this.userService.SetUser(user);\r\n\r\n // Set the current role\r\n //ORDER MATTERS!!!\r\n if (user.Roles.IsDeveloper) {\r\n this.userService.SetUserCurrentRole('Developer');\r\n } else if (user.Roles.IsCOVIDExposure) {\r\n this.userService.SetUserCurrentRole('COVID19Exposure');\r\n } else if (user.Roles.IsCOVIDChildCare) {\r\n this.userService.SetUserCurrentRole('COVID19ChildCare');\r\n } else if (user.Roles.IsCOVIDAltWork) {\r\n this.userService.SetUserCurrentRole('COVID19AltWork');\r\n } else if (user.Roles.IsSummerApp) {\r\n this.userService.SetUserCurrentRole('SummerApp');\r\n } else if (user.Roles.IsCoachApp) {\r\n this.userService.SetUserCurrentRole('CoachApp');\r\n } else if (user.Roles.IsIncounty) {\r\n this.userService.SetUserCurrentRole('Incounty');\r\n } else if (user.Roles.IsExitSurvey) {\r\n this.userService.SetUserCurrentRole('ExitSurvey');\r\n } else if (user.Roles.IsCertification) {\r\n this.userService.SetUserCurrentRole('Certification');\r\n } else if (user.Roles.IsPayroll) {\r\n this.userService.SetUserCurrentRole('Payroll');\r\n } else if (user.Roles.IsTranscripts) {\r\n this.userService.SetUserCurrentRole('Transcripts');\r\n }\r\n }\r\n\r\n RefreshAuthToken(AuthToken: string) {\r\n return this.http.get(\r\n this.configService.hostAddress + `Api/Services/Authentication/RefreshAuthToken?AuthToken=${AuthToken || ''}`\r\n );\r\n }\r\n\r\n ResetUserPassword(password: string, valtoken: string) {\r\n return this.http.get(\r\n this.configService.hostAddress + `Api/Services/Authentication/ResetUserPassword?Password=${password}&ValToken=${valtoken}`\r\n );\r\n }\r\n\r\n SendPasswordResetRequestEmail(email: string) {\r\n return this.http.get(\r\n this.configService.hostAddress + `Api/Services/Authentication/SendPasswordResetRequestEmail?EmailAddress=${email}`\r\n );\r\n }\r\n\r\n SendUsernameRequestEmail(email: string) {\r\n return this.http.get(\r\n this.configService.hostAddress + `Api/Services/Authentication/SendUsernameRequestEmail?EmailAddress=${email}`\r\n );\r\n }\r\n\r\n StartAuthTokenRefreshing() {\r\n // This process will work as follows: We will call a service method which will tell us if the current user's auth token shows \"recent use\" (which is a flag set\r\n // by most stored procedures). If that method succeeds, and shows recent use, we will simply use a different service call to update the auth token refresh time,\r\n // then delay for a time period (AUTHCHECKTIME) before we run this same check again.\r\n // If at any point the recent use flag is not set, then we set a timer to logout the user after a set amount of time (LOGOUTWARNINGTIME), and simultaneously put\r\n // up a dialog box that gives the user a visual representation of the countdown, along with a button they can click to \"save\" their session, which essentially\r\n // manually triggers the refresh method.\r\n\r\n // Initiate the auth token refresh cycling by calling the refresh method the first time\r\n this.AuthTokenCancelFlag = false;\r\n\r\n // Check real quick for a present value for AuthRefreshDeadline. If that exists, then it indicates the time when we absolutely need to refresh the\r\n // auth token, so we should set the refresh handle time to just before then. Otherwise, this is probably a first login so use the default time.\r\n let timeToRefresh = AuthService.AUTHCHECKTIME;\r\n\r\n if (this.nextAuthRefresh) {\r\n // Read the deadline time to refresh from the session storage, convert into a Date object.\r\n this.AuthRefreshDeadline = new Date(this.nextAuthRefresh);\r\n } else {\r\n // Nothing available from session storage, so queue up a fresh refresh clock.\r\n this.AuthRefreshDeadline = addSeconds(new Date(), AuthService.AUTHCHECKTIME);\r\n }\r\n\r\n if (this.AuthRefreshDeadline && isValid(this.AuthRefreshDeadline)) {\r\n let timediff = differenceInSeconds(this.AuthRefreshDeadline, new Date()); // Find the time difference in seconds between now and when we are due to refresh.\r\n\r\n // We will always use the lesser of the next known time to refresh and the usual delay time. This is in case we are refreshing the browser and need\r\n // to restart refresh cycle, as opposed to fresh starting cycles.\r\n if (timediff < timeToRefresh) timeToRefresh = timediff;\r\n if (timeToRefresh <= 0) timeToRefresh = 1; // Ensure at least a 1 second wait.\r\n }\r\n\r\n this.AuthTokenRefreshHandle = window.setTimeout(() => {\r\n this.AuthTokenRefresh();\r\n }, timeToRefresh * 1000);\r\n\r\n // Set the refresh deadline app value\r\n var Now = new Date();\r\n\r\n this.AuthRefreshDeadline = addSeconds(Now, timeToRefresh);\r\n this.IsRefreshing = true;\r\n this.nextAuthRefresh = this.AuthRefreshDeadline.toISOString();\r\n }\r\n\r\n TestConnection() {\r\n // Call the WebApi to see if anyone is home.\r\n return this.http.get(this.configService.hostAddress + 'Api/Services/Authentication/TestConnection');\r\n }\r\n\r\n public ValidateUser = (username: string, password: string, impersonatedUsername?: string, screen?: string, winres?: string) => {\r\n return >this.http\r\n .post(this.configService.hostAddress + 'Api/Services/Authentication/ValidateUser', {\r\n Username: username || '',\r\n Password: password || '',\r\n ImpersonatedUsername: impersonatedUsername || '',\r\n Screen: screen || '',\r\n Window: winres || '',\r\n })\r\n .pipe(\r\n map((res) => {\r\n let body = res;\r\n return body;\r\n })\r\n );\r\n };\r\n\r\n public ValidateImpersonatedUser = (\r\n username: string,\r\n password: string,\r\n impersonatedUsername?: string,\r\n screen?: string,\r\n winres?: string\r\n ) => {\r\n return >this.http\r\n .post(this.configService.hostAddress + 'Api/Services/Authentication/ValidateUser', {\r\n Username: username,\r\n Password: password,\r\n ImpersonatedUsername: impersonatedUsername,\r\n ImpToken: 'D53101E1-5692-459F-81AB-DB8BBF9F06E4',\r\n Screen: screen,\r\n Window: winres,\r\n })\r\n .pipe(\r\n map((res) => {\r\n let body = res;\r\n return body;\r\n })\r\n );\r\n };\r\n}\r\n\r\nexport class AuthPacket {\r\n AuthToken: string;\r\n Version: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject , EMPTY as empty , Observable , of } from 'rxjs';\r\nimport { map , startWith , tap } from 'rxjs/operators';\r\n\r\nimport { SessionStorageService, SessionStorage } from 'ng2-webstorage';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { ErrorService } from '../error/error.service';\r\nimport { Session } from 'protractor';\r\n\r\nimport {\r\n CertRpt1_Result,\r\n CertRptCertificate_Result,\r\n CertificateESOLReport,\r\n CertRptExamsPassed,\r\n CertRptExamsPassedMisc,\r\n CertRptExamsPassedMisc2,\r\n CertRptOutOfFieldSubjects,\r\n CertRptStateLicense,\r\n CertRptCertDeficiency,\r\n CertRenewalMethods,\r\n AgreementToEarnDocument,\r\n AgreementToEarnInfo,\r\n} from '../../models/certification';\r\n\r\n@Injectable()\r\nexport class CertificationService {\r\n DevSiteSubject: BehaviorSubject = new BehaviorSubject(false);\r\n svcAddress: string;\r\n\r\n // #endregion\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private storage: SessionStorageService,\r\n private errorService: ErrorService\r\n ) {\r\n this.svcAddress = `Api/Services/Certification/`;\r\n }\r\n\r\n CertRpt1Get(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRpt1Get?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptCertificateGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptCertificateGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptESOLGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptESOLGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptEducationGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptEducationGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptExamsPassedGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptExamsPassedGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptExamsPassedMiscGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptExamsPassedMiscGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptExamsPassedMisc2Get(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptExamsPassedMisc2Get?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptOutOfFieldSubjectsGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptOutOfFieldSubjectsGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptStateLicenseGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptStateLicenseGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRptCertDeficiencyGet(AuthToken: string, ReportSAPID: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRptCertDeficiencyGet?AuthToken=${AuthToken}&ReportSAPID=${ReportSAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n CertRenewalMethodsGet(AuthToken: string, CertRenewalID: number) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/CertRenewalMethodsGet?AuthToken=${AuthToken}&CertRenewalID=${CertRenewalID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n // #region Get Agreement To Earn Documents Service Call\r\n\r\n GetAgreementToEarnDocuments(AuthToken: string, TargetSAPID: string) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Certification/GetAgreementToEarnDocuments` +\r\n `?AuthToken=${AuthToken || ''}&TargetSAPID=${TargetSAPID || ''}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data && data.Documents) {\r\n data.Documents.forEach((d) => {\r\n d.DocumentDate = d.DocumentDate ? new Date(d.DocumentDate) : null;\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Resolve Agreement To Earn\r\n\r\n ResolveAgreementToEarn(AuthToken: string, DocumentImageId: number, SAPID: string, ResolveCode: string, Rationale: string) {\r\n return this.http\r\n .post(this.configService.hostAddress + `Api/Services/Certification/ResolveAgreementToEarn`, {\r\n AuthToken: AuthToken || '',\r\n DocumentImageId: DocumentImageId != null ? DocumentImageId : '',\r\n SAPID: SAPID || '',\r\n ResolveCode: ResolveCode || '',\r\n Rationale: Rationale || '',\r\n })\r\n .pipe(\r\n map((data) => {\r\n if (data && data.Documents) {\r\n data.Documents.forEach((d) => {\r\n d.DocumentDate = d.DocumentDate ? new Date(d.DocumentDate) : null;\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n hostAddress: string;\r\n\r\n constructor() {\r\n if (window.location.host.toLowerCase().indexOf('localhost') >= 0 || window.location.host === '127.0.0.1') {\r\n this.hostAddress = 'http://localhost:1581/';\r\n } else {\r\n if (window.location.host.toLowerCase().indexOf('staffportaladmin.polk') >= 0) {\r\n // PRD\r\n this.hostAddress = 'https://staffportaladmin.polk-fl.net/';\r\n } else {\r\n // DEV\r\n this.hostAddress = 'https://staffportaladmindev.polk-fl.net/';\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\n\r\nimport { COVIDWindowInfo } from '../../models/covid';\r\n\r\n@Injectable()\r\nexport class COVIDService {\r\n constructor(private http: HttpClient, private configService: ConfigService) {}\r\n\r\n // #region Get COVID Selection Window\r\n\r\n GetCOVIDSelectionWindow(AuthToken: string) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/Misc/GetCOVIDSelectionWindow?AuthToken=${AuthToken || ''}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data) {\r\n data.DateBegin = data.DateBegin ? new Date(data.DateBegin) : null;\r\n data.DateEnd = data.DateEnd ? new Date(data.DateEnd) : null;\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Update COVID Selection Window\r\n\r\n UpdateCOVIDSelectionWindow(AuthToken: string, DateBegin: Date, DateEnd: Date, Activate: boolean) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Misc/UpdateCOVIDSelectionWindow` +\r\n `?AuthToken=${AuthToken || ''}&DateBegin=${DateBegin != null ? DateBegin.toJSON() : ''}` +\r\n `&DateEnd=${DateEnd != null ? DateEnd.toJSON() : ''}` +\r\n `&Activate=${Activate === true ? 'true' : 'false'}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data) {\r\n data.DateBegin = data.DateBegin ? new Date(data.DateBegin) : null;\r\n data.DateEnd = data.DateEnd ? new Date(data.DateEnd) : null;\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n}\r\n","
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n Use a restricted set of {{datePrompt}} dates\r\n \r\n
\r\n Search by:\r\n \r\n Letter/Document Creation Date\r\n Signature Date\r\n \r\n
\r\n
\r\n \r\n On or Before\r\n On or After\r\n Between\r\n \r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n \r\n \r\n \r\n \r\n MM/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","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { isValid } from 'date-fns';\r\n\r\nimport { Subscription, TeardownLogic } from 'rxjs';\r\nimport { validateDate } from 'validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'atereportoptions-dialog-component',\r\n styleUrls: ['atereportoptions.dialogcomponent.scss'],\r\n templateUrl: 'atereportoptions.dialogcomponent.html',\r\n})\r\nexport class ATEReportOptionsDialogComponent implements OnInit, OnDestroy {\r\n private _subrelease: Subscription = new Subscription();\r\n\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n datePrompt: string;\r\n OptionsForm: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseATEReportOptionsDialogOptions,\r\n private fb: FormBuilder\r\n ) {\r\n this.title = data.TitleText || 'Confirmation Requested...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.datePrompt = data.DatePrompt || '';\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n const opts = this.OptionsForm.value;\r\n\r\n this.dialogRef.close({\r\n UseDateRestriction: opts.UseDateRestriction,\r\n DateBegin: opts.DateBegin,\r\n DateEnd: opts.DateEnd,\r\n DateRestrictionType: opts.DateRestrictionType,\r\n SearchType: opts.SearchType,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.OptionsForm = this.fb.group({\r\n UseDateRestriction: [false],\r\n DateBegin: [null],\r\n DateEnd: [null],\r\n DateRestrictionType: [1, Validators.required],\r\n SearchType: [1, Validators.required],\r\n });\r\n\r\n this.subrelease = this.OptionsForm.get('UseDateRestriction').valueChanges.subscribe((restrict: boolean) => {\r\n const dbctrl = this.OptionsForm.get('DateBegin') as FormControl;\r\n const dectrl = this.OptionsForm.get('DateEnd') as FormControl;\r\n\r\n if (restrict === true) {\r\n // Activate requirement on at least DateBegin\r\n dbctrl.setValidators([Validators.required, validateDate]);\r\n\r\n if (this.OptionsForm.get('DateRestrictionType').value === 3) {\r\n dectrl.setValidators([Validators.required, validateDate]);\r\n }\r\n } else {\r\n // Deactivate requirement on DateBegin and DateEnd\r\n dbctrl.setValidators(null);\r\n dectrl.setValidators(null);\r\n }\r\n\r\n dbctrl.updateValueAndValidity();\r\n dectrl.updateValueAndValidity();\r\n });\r\n\r\n this.subrelease = this.OptionsForm.get('DateRestrictionType').valueChanges.subscribe((dtype: number) => {\r\n const dctrl = this.OptionsForm.get('DateEnd') as FormControl;\r\n\r\n // If dtype is 3 (between), activate a requirement on the DateEnd field.\r\n if (dtype === 3) {\r\n dctrl.setValidators(Validators.required);\r\n } else {\r\n dctrl.setValidators(null);\r\n }\r\n\r\n dctrl.updateValueAndValidity();\r\n });\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region ATE Report Options Dialog Options Class\r\n\r\nexport class BaseATEReportOptionsDialogOptions extends BaseDialogOptions {\r\n DefaultOptions?: BaseATEReportRunOptions;\r\n DatePrompt?: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region ATE Report Run Options Class\r\n\r\nexport class BaseATEReportRunOptions {\r\n UseDateRestriction?: boolean;\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n DateRestrictionType?: number;\r\n SearchType?: number;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","

\r\n {{title}}\r\n {{iconname}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'confirmation-dialog-component',\r\n styleUrls: ['confirmation.dialogcomponent.css'],\r\n templateUrl: 'confirmation.dialogcomponent.html',\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n iconcolor: string;\r\n iconname: string;\r\n oktext: string;\r\n canceltext: string;\r\n showIcon: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: _ConfirmationDialogOptions\r\n ) {\r\n this.title = data.TitleText || 'Confirmation Requested...';\r\n this.message = data.MessageText || '';\r\n this.iconcolor = data.IconColor || 'primary';\r\n this.iconname = data.IconName || 'help';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.showIcon = data.ShowIcon != null ? data.ShowIcon : true;\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n OKHandler() {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\nexport class _ConfirmationDialogOptions extends BaseDialogOptions {}\r\n\r\n// #endregion\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'countdown-dialog-component',\r\n styleUrls: ['countdown.dialogcomponent.css'],\r\n templateUrl: 'countdown.dialogcomponent.html',\r\n})\r\nexport class CountdownDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n\r\n curtime: number;\r\n maxtime: number;\r\n time: number;\r\n timerHandle: number;\r\n timeStr: string;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: CountdownDialogOptions\r\n ) {\r\n this.title = data.TitleText || 'Please wait...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || '';\r\n this.canceltext = data.CancelText || '';\r\n this.maxtime = data.CountdownTime || 170;\r\n this.curtime = this.maxtime;\r\n }\r\n\r\n CancelHandler() {\r\n // Disable timer, if possible\r\n if (this.timerHandle) window.clearTimeout(this.timerHandle);\r\n\r\n this.dialogRef.close(null);\r\n }\r\n\r\n private GetTimeString(timeval: number) {\r\n let result = Math.floor(timeval / 60) + ':' + ('00' + Math.floor(timeval % 60)).slice(-2);\r\n\r\n return result;\r\n }\r\n\r\n ngOnInit() {\r\n this.time = 100;\r\n this.timerHandle = null;\r\n this.timeStr = '';\r\n\r\n // Initialize ticking to get it rolling\r\n this.Tick();\r\n }\r\n\r\n OKHandler() {\r\n // Disable timer, if possible\r\n if (this.timerHandle) window.clearTimeout(this.timerHandle);\r\n\r\n this.dialogRef.close(true);\r\n }\r\n\r\n private Tick() {\r\n this.curtime--;\r\n if (this.curtime > 0) {\r\n this.time = Math.floor((this.curtime * 100) / this.maxtime);\r\n this.timeStr = this.GetTimeString(this.curtime);\r\n\r\n this.timerHandle = window.setTimeout(() => {\r\n this.Tick();\r\n }, 1000);\r\n } else {\r\n // Close the dialog automatically as a \"cancel\"\r\n this.CancelHandler();\r\n }\r\n }\r\n}\r\n\r\nexport class CountdownDialogOptions {\r\n TitleText?: string;\r\n MessageText?: string;\r\n OKText?: string;\r\n CancelText?: string;\r\n CountdownTime?: number;\r\n}\r\n","

{{title}}

\r\n
\r\n

{{message}}

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n","export class BaseDialogOptions {\r\n TitleText?: string;\r\n MessageText?: string;\r\n OKText?: string;\r\n CancelText?: string;\r\n IconColor?: string;\r\n IconName?: string;\r\n ShowIcon?: boolean;\r\n height?: string;\r\n width?: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { ValidatorFn } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material/dialog';\r\nimport { MediaObserver } from '@angular/flex-layout';\r\n\r\nimport {\r\n ATEReportOptionsDialogComponent,\r\n BaseATEReportOptionsDialogOptions,\r\n BaseATEReportRunOptions,\r\n} from './atereportoptions/atereportoptions.dialogcomponent';\r\nimport {\r\n ExitSurveyOptionsDialogComponent,\r\n _ExitSurveyRunOptions,\r\n _ExitSurveyOptionsDialogOptions,\r\n} from './exitsurveyoptions/exitsurveyoptions.dialogcomponent';\r\nimport {\r\n ReportOptionsDialogComponent,\r\n _ReportOptionsDialogOptions,\r\n _ReportRunOptions,\r\n} from './reportoptions/reportoptions.dialogcomponent';\r\nimport {\r\n SemiExclusionWizardDialogComponent,\r\n BaseSemiExclusionWizardDialogOptions,\r\n BaseSemiExclusionWizardDialogResult,\r\n} from './semiexclusionwizard/semiexclusionwizard.dialogcomponent';\r\nimport {\r\n SemiMonthlyReportOptionsDialogComponent,\r\n BaseSemiMonthlyReportOptionsDialogOptions,\r\n BaseSemiMonthlyReportRunOptions,\r\n} from './semimonthlyreportoptions/semimonthlyreportoptions.dialogcomponent';\r\nimport {\r\n SemiMonthlyWindowOptionsDialogComponent,\r\n BaseSemiMonthlyWindowOptionsDialogOptions,\r\n BaseSemiMonthlyWindowRunOptions,\r\n} from './semimonthlywindowoptions/semimonthlywindowoptions.dialogcomponent';\r\nimport {\r\n SemiOverrideWizardDialogComponent,\r\n BaseSemiOverrideWizardDialogOptions,\r\n BaseSemiOverrideWizardDialogResult,\r\n} from './semioverridewizard/semioverridewizard.dialogcomponent';\r\nimport {\r\n UserSearchDialogComponent,\r\n BaseUserSearchDialogOptions,\r\n BaseUserSearchDialogResult,\r\n} from './usersearch/usersearch.dialogcomponent';\r\nimport {\r\n W2ReportOptionsDialogComponent,\r\n _W2ReportOptionsDialogOptions,\r\n _W2ReportRunOptions,\r\n} from './w2reportoptions/w2reportoptions.dialogcomponent';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { NotificationEntry } from '../notification/notification.service';\r\nimport { CountdownDialogComponent, CountdownDialogOptions } from './countdown/countdown.dialogcomponent';\r\nimport { ConfirmationDialogComponent } from './confirmation/confirmation.dialogcomponent';\r\nimport { InputBoxDialogComponent } from './inputbox/inputbox.dialogcomponent';\r\nimport { MessageBoxDialogComponent } from './messagebox/messagebox.dialogcomponent';\r\nimport { NotificationDialogComponent } from './notification/notification.dialogcomponent';\r\nimport { OptionBoxDialogComponent } from './optionbox/optionbox.dialogcomponent';\r\nimport {\r\n BaseSummerApplicationWindowOptionsDialogOptions,\r\n BaseSummerApplicationWindowRunOptions,\r\n SummerApplicationWindowOptionsDialogComponent,\r\n} from './summerApplicationwindowoptions/summerApplicationwindowoptions.dialogcomponent';\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n private openHandle: MatDialogRef;\r\n\r\n smallMediaSize: boolean;\r\n\r\n constructor(private MatDialog: MatDialog, private mediaChange: MediaObserver) {\r\n this.smallMediaSize = mediaChange.isActive('screen and (max-width: 959px)');\r\n\r\n // Observe for media changes\r\n this.mediaChange.asObservable().subscribe((media) => {\r\n // Set flags accordingly with what we know.\r\n this.smallMediaSize = media[0].mqAlias == 'xs' || media[0].mqAlias == 'sm';\r\n });\r\n }\r\n\r\n CloseAllDialogs() {\r\n this.MatDialog.closeAll();\r\n }\r\n\r\n // #region Open ATE Report Options Dialog\r\n\r\n OpenATEReportOptionsDialog(options?: BaseATEReportOptionsDialogOptions): Observable {\r\n const self = this;\r\n\r\n const openHandle = self.MatDialog.open(ATEReportOptionsDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.',\r\n AvailableSchoolYears: [],\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '80vh' : '500px',\r\n maxHeight: '85vh',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n OpenConfirmationDialog(options?: ConfirmationDialogOptions): Observable {\r\n let openHandle = this.MatDialog.open(ConfirmationDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Confirmation Requested...',\r\n MessageText: '',\r\n OKText: 'OK',\r\n CancelText: 'Cancel',\r\n ...options,\r\n },\r\n //width: '500px',\r\n //height: (options && options.height) || '13rem'\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenCountdownDialog(options?: CountdownDialogOptions): Observable {\r\n let openHandle = this.MatDialog.open(CountdownDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Please Wait...',\r\n MessageText: '',\r\n OKText: 'OK',\r\n CancelText: 'Cancel',\r\n Time: 60,\r\n ...options,\r\n },\r\n width: '500px',\r\n height: '18rem',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenExitSurveyOptionsDialog(options?: _ExitSurveyOptionsDialogOptions): Observable<_ExitSurveyRunOptions> {\r\n let self = this;\r\n\r\n let openHandle = this.MatDialog.open(ExitSurveyOptionsDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.',\r\n AvailableSchoolYears: [],\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '80vh' : '450px',\r\n maxHeight: '85vh',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenInputBoxDialog(options?: InputBoxDialogOptions): Observable {\r\n let openHandle = this.MatDialog.open(InputBoxDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Information Requested...',\r\n MessageText: '',\r\n InputHint: '',\r\n OKText: 'OK',\r\n CancelText: 'Cancel',\r\n ...options,\r\n },\r\n //width: '500px',\r\n //height: (options && options.height) || '13rem'\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenMessageBoxDialog(options?: MessageBoxDialogOptions): Observable {\r\n let openHandle = this.MatDialog.open(MessageBoxDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Information',\r\n MessageText: '',\r\n OKText: 'OK',\r\n ...options,\r\n },\r\n width: '600px',\r\n height: '19rem',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenNotificationDialog(options?: NotificationDialogOptions): Observable {\r\n let openHandle = this.MatDialog.open(NotificationDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Notification Details',\r\n MessageText: '',\r\n OKText: 'OK',\r\n ...options,\r\n },\r\n width: '1000px',\r\n height: '19rem',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenOptionBoxDialog(options?: OptionBoxDialogOptions): Observable {\r\n let openHandle = this.MatDialog.open(OptionBoxDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Please select',\r\n MessageText: '',\r\n Options: [],\r\n ...options,\r\n },\r\n //width: '500px',\r\n //height: (options && options.height) || '13rem'\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n OpenReportOptionsDialog(options?: _ReportOptionsDialogOptions): Observable<_ReportRunOptions> {\r\n let self = this;\r\n\r\n let openHandle = this.MatDialog.open(ReportOptionsDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.',\r\n AvailableSchoolYears: [],\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '80vh' : '450px',\r\n maxHeight: '85vh',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #region Open Semi Exclusion Wizard Dialog\r\n\r\n OpenSemiExclusionWizardDialog(options?: BaseSemiExclusionWizardDialogOptions): Observable {\r\n const self = this;\r\n const dlgoptions: MatDialogConfig = {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'New Semi-Exclusion Wizard',\r\n MessageText: '',\r\n OKText: 'OK',\r\n ...options,\r\n },\r\n maxHeight: '85vh',\r\n };\r\n\r\n if (options && options.width) {\r\n dlgoptions.width = options.width;\r\n }\r\n\r\n if (self.smallMediaSize) {\r\n dlgoptions.width = '80vw';\r\n dlgoptions.height = '80vh';\r\n dlgoptions.panelClass = 'smalldialogpanel';\r\n }\r\n\r\n const openHandle = this.MatDialog.open(SemiExclusionWizardDialogComponent, dlgoptions);\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Open Semi Monthly Report Options Dialog\r\n\r\n OpenSemiMonthlyReportOptionsDialog(\r\n options?: BaseSemiMonthlyReportOptionsDialogOptions\r\n ): Observable {\r\n const self = this;\r\n\r\n const openHandle = self.MatDialog.open(SemiMonthlyReportOptionsDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select Report Options',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.',\r\n AvailableSchoolYears: [],\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '80vh' : '450px',\r\n maxHeight: '85vh',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Open Semi Monthly Window Options Dialog\r\n\r\n OpenSemiMonthlyWindowOptionsDialog(\r\n options?: BaseSemiMonthlyWindowOptionsDialogOptions\r\n ): Observable {\r\n const self = this;\r\n\r\n const openHandle = self.MatDialog.open(SemiMonthlyWindowOptionsDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select Window Options',\r\n MessageText:\r\n `Select the begin and end times for the Semi-Monthly Payroll Election window using the fields ` +\r\n `provided below. If you wish to the window to be active such that it will cause the tool to ` +\r\n `appear once the current date and time is within the range of dates set below, be sure to check ` +\r\n `\"Activate Window\" checkbox as well.

(Note: You may click ` +\r\n `on the calendar icon to use a widget to select the date field values.)`,\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '85vh' : '500px',\r\n maxHeight: '85vh',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Open Semi Monthly Window Options Dialog\r\n\r\n OpenSummerApplicationWindowOptionsDialog(\r\n options?: BaseSummerApplicationWindowOptionsDialogOptions\r\n ): Observable {\r\n const self = this;\r\n\r\n const openHandle = self.MatDialog.open(\r\n SummerApplicationWindowOptionsDialogComponent,\r\n {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select Window Options',\r\n MessageText:\r\n `Select the begin and end times for the Summer Application window using the fields ` +\r\n `provided below. If you wish to the window to be active such that it will cause the tool to ` +\r\n `appear once the current date and time is within the range of dates set below, be sure to check ` +\r\n `\"Activate Window\" checkbox as well.

(Note: You may click ` +\r\n `on the calendar icon to use a widget to select the date field values.)`,\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '85vh' : '500px',\r\n maxHeight: '85vh',\r\n }\r\n );\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Open Semi Override Wizard Dialog\r\n\r\n OpenSemiOverrideWizardDialog(options?: BaseSemiOverrideWizardDialogOptions): Observable {\r\n const self = this;\r\n const dlgoptions: MatDialogConfig = {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'New Semi-Override Wizard',\r\n MessageText: '',\r\n OKText: 'OK',\r\n ...options,\r\n },\r\n maxHeight: '85vh',\r\n };\r\n\r\n if (options && options.width) {\r\n dlgoptions.width = options.width;\r\n }\r\n\r\n if (self.smallMediaSize) {\r\n dlgoptions.width = '80vw';\r\n dlgoptions.height = '80vh';\r\n dlgoptions.panelClass = 'smalldialogpanel';\r\n }\r\n\r\n const openHandle = this.MatDialog.open(SemiOverrideWizardDialogComponent, dlgoptions);\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Open User Search Dialog\r\n\r\n OpenUserSearch(options?: BaseUserSearchDialogOptions): Observable {\r\n const self = this;\r\n const dlgoptions: MatDialogConfig = {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Search for User',\r\n MessageText: '',\r\n OKText: 'OK',\r\n ...options,\r\n },\r\n maxHeight: '85vh',\r\n };\r\n\r\n if (options && options.width) {\r\n dlgoptions.width = options.width;\r\n }\r\n\r\n if (self.smallMediaSize) {\r\n dlgoptions.width = '80vw';\r\n dlgoptions.height = '80vh';\r\n dlgoptions.panelClass = 'smalldialogpanel';\r\n }\r\n\r\n const openHandle = this.MatDialog.open(UserSearchDialogComponent, dlgoptions);\r\n\r\n return openHandle.afterClosed();\r\n }\r\n\r\n // #endregion\r\n\r\n OpenW2ReportOptionsDialog(options?: _W2ReportOptionsDialogOptions): Observable<_W2ReportRunOptions> {\r\n let self = this;\r\n\r\n let openHandle = this.MatDialog.open(W2ReportOptionsDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Select W2 Report Options',\r\n MessageText:\r\n 'Please select your desired report options, and then click the \"Run Report\" button to retrieve the report.',\r\n AvailableSchoolYears: [],\r\n ...options,\r\n },\r\n width: self.smallMediaSize ? '80vw' : '900px',\r\n height: self.smallMediaSize ? '80vh' : '450px',\r\n maxHeight: '85vh',\r\n });\r\n\r\n return openHandle.afterClosed();\r\n }\r\n}\r\n\r\nexport class BaseDialogOptions {\r\n TitleText?: string;\r\n MessageText?: string;\r\n OKText?: string;\r\n CancelText?: string;\r\n IconColor?: string;\r\n IconName?: string;\r\n ShowIcon?: boolean;\r\n height?: string;\r\n width?: string;\r\n}\r\n\r\nexport class ConfirmationDialogOptions extends BaseDialogOptions {}\r\n\r\nexport class InputBoxDialogOptions extends BaseDialogOptions {\r\n InputHint?: string;\r\n Validators?: ValidatorFn[];\r\n}\r\n\r\nexport class MessageBoxDialogOptions {\r\n TitleText?: string;\r\n MessageText?: string;\r\n OKText?: string;\r\n}\r\n\r\nexport class NotificationDialogOptions extends BaseDialogOptions {\r\n Details?: NotificationEntry[];\r\n}\r\n\r\nexport class OptionBoxDialogOptions extends BaseDialogOptions {\r\n Options?: OptionBoxOption[];\r\n}\r\n\r\nexport class OptionBoxOption {\r\n DisplayText: string;\r\n Response: any;\r\n Color: string;\r\n\r\n constructor(displayText: string, color: string, response: any) {\r\n this.DisplayText = displayText;\r\n this.Color = color || 'primary';\r\n this.Response = response;\r\n }\r\n}\r\n","
\r\n
\r\n

{{title}}

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

School Year:

\r\n \r\n \r\n All Years\r\n {{year | schoolYear}}\r\n \r\n \r\n
\r\n Use a restricted date range of submissions\r\n \r\n \r\n After\r\n Between\r\n Before\r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { isValid } from 'date-fns';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { validateDate } from '../../../validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'exitsurveyoptions-dialog-component',\r\n styleUrls: ['exitsurveyoptions.dialogcomponent.css'],\r\n templateUrl: 'exitsurveyoptions.dialogcomponent.html',\r\n})\r\nexport class ExitSurveyOptionsDialogComponent implements OnInit {\r\n private _dateSub: Subscription;\r\n private _restrictSub: Subscription;\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n useYear: boolean;\r\n CurrentApplicationSchoolYear: string;\r\n AvailableSchoolYears: string[];\r\n OptionsForm: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: _ExitSurveyOptionsDialogOptions,\r\n private fb: FormBuilder\r\n ) {\r\n this.title = data.TitleText || 'Select Report Options...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.useYear = data.UseYear != null ? data.UseYear : true;\r\n this.CurrentApplicationSchoolYear = data.CurrentApplicationSchoolYear || '';\r\n this.AvailableSchoolYears = data.AvailableSchoolYears || ['1920', '1819'];\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n let opts = this.OptionsForm.value;\r\n\r\n if (opts.DateBegin != null && opts.DateBegin != '') {\r\n let begin = new Date(opts.DateBegin);\r\n opts.DateBegin = isValid(begin) ? begin : null;\r\n }\r\n\r\n if (opts.DateEnd != null && opts.DateEnd != '') {\r\n let end = new Date(opts.DateEnd);\r\n opts.DateEnd = isValid(end) ? end : null;\r\n }\r\n\r\n this.dialogRef.close(<_ExitSurveyRunOptions>{\r\n SelectedYear: opts.SelectedAppYear,\r\n UseDateRestriction: opts.UseDateRestriction,\r\n DateBegin: opts.DateBegin,\r\n DateEnd: opts.DateEnd,\r\n DateRestrictionType: opts.DateRestrictionType,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._dateSub) this._dateSub.unsubscribe();\r\n if (this._restrictSub) this._restrictSub.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.OptionsForm = this.fb.group({\r\n SelectedAppYear: ['all'],\r\n UseDateRestriction: [false],\r\n DateBegin: [],\r\n DateEnd: [],\r\n DateRestrictionType: [0, Validators.required],\r\n });\r\n\r\n // Enable requirement on the SelectedAppYear if we are to use years for this report options.\r\n if (this.useYear) {\r\n this.OptionsForm.get('SelectedAppYear').setValidators(Validators.required);\r\n }\r\n\r\n this._restrictSub = this.OptionsForm.get('UseDateRestriction').valueChanges.subscribe((restrict: boolean) => {\r\n let dbctrl: AbstractControl = this.OptionsForm.get('DateBegin');\r\n let dectrl: AbstractControl = this.OptionsForm.get('DateEnd');\r\n\r\n if (restrict === true) {\r\n // Activate requirement on at least DateBegin\r\n dbctrl.setValidators([Validators.required, validateDate]);\r\n if (this.OptionsForm.get('DateRestrictionType').value == 1) {\r\n dectrl.setValidators([Validators.required, validateDate]);\r\n }\r\n } else {\r\n // Deactivate requirement on DateBegin and DateEnd\r\n dbctrl.setValidators(null);\r\n dectrl.setValidators(null);\r\n }\r\n dbctrl.updateValueAndValidity();\r\n dectrl.updateValueAndValidity();\r\n });\r\n\r\n this._dateSub = this.OptionsForm.get('DateRestrictionType').valueChanges.subscribe((dtype: number) => {\r\n let dctrl: AbstractControl = this.OptionsForm.get('DateEnd');\r\n\r\n // If dtype is 1 (between), activate a requirement on the DateEnd field.\r\n if (dtype == 1) {\r\n dctrl.setValidators(Validators.required);\r\n } else {\r\n dctrl.setValidators(null);\r\n }\r\n dctrl.updateValueAndValidity();\r\n });\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Exit Survey Options Dialog Options Class\r\n\r\nexport class _ExitSurveyOptionsDialogOptions extends BaseDialogOptions {\r\n DefaultOptions?: _ExitSurveyRunOptions;\r\n CurrentApplicationSchoolYear?: string;\r\n AvailableSchoolYears?: string[];\r\n UseYear?: boolean;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Exit Survey Run Options Class\r\n\r\nexport class _ExitSurveyRunOptions {\r\n SelectedYear?: string;\r\n UseDateRestriction?: boolean;\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n DateRestrictionType?: number;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n

{{title}}

\r\n

\r\n \r\n \r\n {{inputhint}}\r\n Invalid email address\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormBuilder, FormGroup, FormControl, ValidatorFn, Validators } from '@angular/forms';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'inputbox-dialog-component',\r\n styleUrls: ['inputbox.dialogcomponent.css'],\r\n templateUrl: 'inputbox.dialogcomponent.html',\r\n})\r\nexport class InputBoxDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n inputhint: string;\r\n oktext: string;\r\n canceltext: string;\r\n validators: ValidatorFn[];\r\n value: string;\r\n\r\n inputForm: FormGroup;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) private data: _InputBoxDialogOptions,\r\n private fb: FormBuilder\r\n ) {\r\n this.title = data.TitleText || 'Input Requested';\r\n this.message = data.MessageText || '';\r\n this.inputhint = data.InputHint || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.validators = data.Validators || null;\r\n this.value = data.Value || null;\r\n }\r\n\r\n ngOnInit() {\r\n // Set up the form group\r\n this.inputForm = this.fb.group({\r\n userinput: [],\r\n });\r\n\r\n // If we were provided validators, set them now.\r\n if (this.validators && this.validators.length > 0) {\r\n let ctrl = this.inputForm.get('userinput');\r\n let toSet = [Validators.required, ...this.validators];\r\n\r\n ctrl.setValidators(this.validators);\r\n this.inputForm.updateValueAndValidity();\r\n }\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n let response = this.inputForm.get('userinput').value;\r\n\r\n this.dialogRef.close(response);\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\nexport class _InputBoxDialogOptions extends BaseDialogOptions {\r\n InputHint?: string;\r\n Validators?: ValidatorFn[];\r\n Value?: string;\r\n}\r\n\r\n// #endregion\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'messagebox-dialog-component',\r\n styleUrls: ['messagebox.dialogcomponent.css'],\r\n templateUrl: 'messagebox.dialogcomponent.html',\r\n})\r\nexport class MessageBoxDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) private data: _MessageBoxDialogOptions\r\n ) {\r\n this.title = data.TitleText || 'Information';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n OKHandler() {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n\r\nexport class _MessageBoxDialogOptions extends BaseDialogOptions {}\r\n","

{{title}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","

{{title}}

\r\n

\r\n
\r\n
\r\n {{item.Text}}\r\n Go...\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\nimport { NotificationEntry } from '../../notification/notification.service';\r\n\r\n@Component({\r\n selector: 'notification-dialog-component',\r\n styleUrls: ['notification.dialogcomponent.css'],\r\n templateUrl: 'notification.dialogcomponent.html',\r\n})\r\nexport class NotificationDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n details: NotificationEntry[];\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) data: BaseDialogOptions) {\r\n this.title = data.TitleText || 'Notification Details...';\r\n this.message = data.MessageText || '';\r\n console.log('data: ', data);\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n OKHandler() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

{{title}}

\r\n

\r\n\r\n
\r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'optionbox-dialog-component',\r\n styleUrls: ['optionbox.dialogcomponent.css'],\r\n templateUrl: 'optionbox.dialogcomponent.html',\r\n})\r\nexport class OptionBoxDialogComponent implements OnInit {\r\n title: string;\r\n message: string;\r\n options: _OptionBoxOption[];\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) data: _OptionBoxDialogOptions) {\r\n this.title = data.TitleText || 'Confirmation Requested...';\r\n this.message = data.MessageText || '';\r\n this.options = data.Options || [new _OptionBoxOption('OK', 'primary', true), new _OptionBoxOption('Cancel', 'warn', null)];\r\n }\r\n\r\n OptionHandler(choice: _OptionBoxOption) {\r\n this.dialogRef.close(choice);\r\n }\r\n\r\n ngOnInit() {}\r\n}\r\n\r\n// #region Custom Classes\r\n\r\nexport class _OptionBoxDialogOptions extends BaseDialogOptions {\r\n Options?: _OptionBoxOption[];\r\n}\r\n\r\nexport class _OptionBoxOption {\r\n DisplayText: string;\r\n Response: any;\r\n Color?: string;\r\n ClosesDialog?: boolean;\r\n\r\n constructor(displayText: string, color: string, response: any, closes?: boolean) {\r\n this.DisplayText = displayText;\r\n this.Color = color || 'primary';\r\n this.Response = response;\r\n this.ClosesDialog = closes != null ? closes : true;\r\n }\r\n}\r\n\r\n// #endregion\r\n","
\r\n
\r\n

{{title}}

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

Application School Year:

\r\n \r\n \r\n {{year | schoolYear}}\r\n \r\n \r\n
\r\n Use a restricted date range of application submissions\r\n \r\n \r\n After\r\n Between\r\n Before\r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { isValid } from 'date-fns';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { validateDate } from '../../../validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'reportoptions-dialog-component',\r\n styleUrls: ['reportoptions.dialogcomponent.css'],\r\n templateUrl: 'reportoptions.dialogcomponent.html',\r\n})\r\nexport class ReportOptionsDialogComponent implements OnInit {\r\n private _dateSub: Subscription;\r\n private _restrictSub: Subscription;\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n useYear: boolean;\r\n CurrentApplicationSchoolYear: string;\r\n AvailableSchoolYears: string[];\r\n OptionsForm: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: _ReportOptionsDialogOptions,\r\n private fb: FormBuilder\r\n ) {\r\n this.title = data.TitleText || 'Confirmation Requested...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.useYear = data.UseYear != null ? data.UseYear : true;\r\n this.CurrentApplicationSchoolYear = data.CurrentApplicationSchoolYear || '';\r\n this.AvailableSchoolYears = data.AvailableSchoolYears || ['1920', '1819'];\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n let opts = this.OptionsForm.value;\r\n\r\n if (opts.DateBegin != null && opts.DateBegin != '') {\r\n let begin = new Date(opts.DateBegin);\r\n opts.DateBegin = isValid(begin) ? begin : null;\r\n }\r\n\r\n if (opts.DateEnd != null && opts.DateEnd != '') {\r\n let end = new Date(opts.DateEnd);\r\n opts.DateEnd = isValid(end) ? end : null;\r\n }\r\n\r\n this.dialogRef.close(<_ReportRunOptions>{\r\n SelectedYear: opts.SelectedAppYear,\r\n UseDateRestriction: opts.UseDateRestriction,\r\n DateBegin: opts.DateBegin,\r\n DateEnd: opts.DateEnd,\r\n DateRestrictionType: opts.DateRestrictionType,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._dateSub) this._dateSub.unsubscribe();\r\n if (this._restrictSub) this._restrictSub.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.OptionsForm = this.fb.group({\r\n SelectedAppYear: [this.CurrentApplicationSchoolYear],\r\n UseDateRestriction: [false],\r\n DateBegin: [],\r\n DateEnd: [],\r\n DateRestrictionType: [0, Validators.required],\r\n });\r\n\r\n // Enable requirement on the SelectedAppYear if we are to use years for this report options.\r\n if (this.useYear) {\r\n this.OptionsForm.get('SelectedAppYear').setValidators(Validators.required);\r\n }\r\n\r\n this._restrictSub = this.OptionsForm.get('UseDateRestriction').valueChanges.subscribe((restrict: boolean) => {\r\n let dbctrl: AbstractControl = this.OptionsForm.get('DateBegin');\r\n let dectrl: AbstractControl = this.OptionsForm.get('DateEnd');\r\n\r\n if (restrict === true) {\r\n // Activate requirement on at least DateBegin\r\n dbctrl.setValidators([Validators.required, validateDate]);\r\n if (this.OptionsForm.get('DateRestrictionType').value == 1) {\r\n dectrl.setValidators([Validators.required, validateDate]);\r\n }\r\n } else {\r\n // Deactivate requirement on DateBegin and DateEnd\r\n dbctrl.setValidators(null);\r\n dectrl.setValidators(null);\r\n }\r\n dbctrl.updateValueAndValidity();\r\n dectrl.updateValueAndValidity();\r\n });\r\n\r\n this._dateSub = this.OptionsForm.get('DateRestrictionType').valueChanges.subscribe((dtype: number) => {\r\n let dctrl: AbstractControl = this.OptionsForm.get('DateEnd');\r\n\r\n // If dtype is 1 (between), activate a requirement on the DateEnd field.\r\n if (dtype == 1) {\r\n dctrl.setValidators(Validators.required);\r\n } else {\r\n dctrl.setValidators(null);\r\n }\r\n dctrl.updateValueAndValidity();\r\n });\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Report Options Dialog Options Class\r\n\r\nexport class _ReportOptionsDialogOptions extends BaseDialogOptions {\r\n DefaultOptions?: _ReportRunOptions;\r\n CurrentApplicationSchoolYear?: string;\r\n AvailableSchoolYears?: string[];\r\n UseYear?: boolean;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Report Run Options Class\r\n\r\nexport class _ReportRunOptions {\r\n SelectedYear?: string;\r\n UseDateRestriction?: boolean;\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n DateRestrictionType?: number;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n

\r\n {{ title }} {{ shorttitle }}\r\n {{ iconname }}\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n Employee Info\r\n
\r\n
\r\n In this first step, you will identify the employee who will be receiving this Semi-Monthly Payroll Election\r\n Window exclusion.\r\n
\r\n
\r\n
\r\n First, enter the Personnel #, first name, or last name of the employee in the boxes provided, and click the\r\n \"Search\" button to search the district for the employee you wish to work with. Please note: If you are\r\n searching by the name of the employee, you must provide at least 5 characters (combined) between the first\r\n and last name fields in order to conduct a search.\r\n
\r\n
\r\n
\r\n
Personnel #:
\r\n \r\n \r\n 2-8 digits\r\n Required\r\n Invalid format (2-8 digits)\r\n \r\n
\r\n
\r\n
Last:
\r\n \r\n \r\n \r\n
\r\n
\r\n
First:
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Last Name\r\n \r\n {{ user.EmployeeLastName | titleCase }}\r\n \r\n \r\n\r\n \r\n First Name\r\n \r\n {{ user.EmployeeFirstName | titleCase }}\r\n \r\n \r\n\r\n \r\n SAPID\r\n \r\n {{ user.EmployeeSAPID }}\r\n \r\n \r\n\r\n \r\n Site\r\n \r\n {{ user.SiteName }}\r\n \r\n \r\n\r\n \r\n Title\r\n \r\n {{ user.LocalJobTitle }}\r\n \r\n \r\n\r\n \r\n Action(s)\r\n \r\n \r\n Select\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No search results were found with the provided search criteria.\r\n \r\n \r\n\r\n \r\n Search Result(s)\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Select Exclusion Settings\r\n
\r\n
\r\n In this step, you must choose the desired settings for the Semi-Monthly Payroll Election Window exclusion\r\n being created. These include the opening and closing dates of the window, and whether or not the employee\r\n will be allowed to make a \"Monthly Payment\" option election choice IF the\r\n employee would otherwise be ineliglbe to do so. (Note that all employees currently on the monthly payment\r\n option would normally be able to elect to continue that plan.)\r\n
\r\n
\r\n
Opening Date:
\r\n \r\n \r\n \r\n \r\n Required\r\n \r\n \r\n \r\n H:MM AM/PM\r\n Required\r\n Invalid format. (H:MM AM/PM)\r\n \r\n
\r\n
\r\n
Closing Date:
\r\n \r\n \r\n \r\n \r\n Required\r\n \r\n \r\n \r\n H:MM AM/PM\r\n Required\r\n Invalid format. (H:MM AM/PM)\r\n \r\n
\r\n
\r\n Closing date must be after opening date\r\n
\r\n Allow employee to elect \"Monthly Payment\" option if not otherwise eligible.\r\n
\r\n
\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Rationale\r\n
\r\n
\r\n In this final step, you must provide a reason and/or description of the purpose for this Semi-Monthly\r\n Payroll Election Window exclusion. This information is not displayed to the employee, but is included in\r\n security and diagnostic logging within the Staff Portal Admin System for auditing purposes in case of\r\n future inquiries. Please be as descriptive as necessary.\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Final Confirmation\r\n
\r\n
\r\n Please review the following exclusion information carefully prior to adding this exclusion:\r\n
\r\n

\r\n
\r\n
\r\n Target Employee: {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeFirstName |\r\n titleCase }} {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeLastName | titleCase }} ({{\r\n EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeSAPID }})\r\n
\r\n
\r\n Opening Date: {{ SettingsInfo?.get('PackedDateBegin')?.value | date: 'M/d/yyyy h:mm a'\r\n }}\r\n
\r\n
\r\n Closing Date: {{ SettingsInfo?.get('PackedDateEnd')?.value | date: 'M/d/yyyy h:mm a'\r\n }}\r\n
\r\n
\r\n \"Monthly Payment\" Override: Yes\r\n
\r\n
Reason / Description:
\r\n {{ RationaleInfo?.get('Rationale')?.value }}\r\n
\r\n

\r\n
\r\n Once this exclusion is created, it will take effect immediately in the system. If the opening date is on or\r\n before the current date/time, the Payroll Frequency Tool will be immediately accessible to the employee\r\n shown above. Are you sure you wish to create this exclusion?\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{ oktext }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
Employee Info
\r\n
\r\n In this first step, you will identify the employee who will be receiving this Semi-Monthly Payroll Election Window\r\n exclusion.\r\n
\r\n
\r\n
\r\n First, enter the Personnel #, first name, or last name of the employee in the boxes provided, and click the\r\n \"Search\" button to search the district for the employee you wish to work with. Please note: If you are searching by\r\n the name of the employee, you must provide at least 5 characters (combined) between the first and last name fields\r\n in order to conduct a search.\r\n
\r\n
\r\n
\r\n
Pers. #:
\r\n \r\n \r\n 2-8 digits\r\n Required\r\n Invalid format (2-8 digits)\r\n \r\n
\r\n
\r\n
Last:
\r\n \r\n \r\n \r\n
\r\n
\r\n
First:
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Search Results\r\n \r\n
\r\n
\r\n First Name: {{ user.EmployeeFirstName | titleCase }}\r\n
\r\n
\r\n Last Name: {{ user.EmployeeLastName | titleCase }}\r\n
\r\n
\r\n SAPID: {{ user.EmployeeSAPID }}\r\n
\r\n
\r\n Title: {{ user.LocalJobTitle }}\r\n
\r\n
\r\n Site: {{ user.SiteName }}\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n No search results were found with the provided search criteria.\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Exclusion Settings
\r\n
\r\n In this step, you must choose the desired settings for the Semi-Monthly Payroll Election Window exclusion being\r\n created. These include the opening and closing dates of the window, and whether or not the employee will be allowed\r\n to make a \"Monthly Payment\" option election choice IF the employee would otherwise be\r\n ineliglbe to do so. (Note that all employees currently on the monthly payment option would normally be able to\r\n elect to continue that plan.)\r\n
\r\n
\r\n
Open Date:
\r\n \r\n \r\n \r\n \r\n Required\r\n \r\n
\r\n
\r\n
Open Time:
\r\n \r\n \r\n H:MM AM/PM\r\n Required\r\n Invalid format. (H:MM AM/PM)\r\n \r\n
\r\n
\r\n
Close Date:
\r\n \r\n \r\n \r\n \r\n Required\r\n \r\n
\r\n
\r\n
Close Time:
\r\n \r\n \r\n H:MM AM/PM\r\n Required\r\n Invalid format. (H:MM AM/PM)\r\n \r\n
\r\n
\r\n Closing date must be after opening date\r\n
\r\n Allow employee to elect \"Monthly Payment\" option if not otherwise eligible.\r\n
\r\n
\r\n \r\n Previous\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Rationale
\r\n
\r\n In this final step, you must provide a reason and/or description of the purpose for this Semi-Monthly Payroll\r\n Election Window exclusion. This information is not displayed to the employee, but is included in security and\r\n diagnostic logging within the Staff Portal Admin System for auditing purposes in case of future inquiries. Please\r\n be as descriptive as necessary.\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Final Confirmation
\r\n
\r\n Please review the following exclusion information carefully prior to adding this exclusion:\r\n
\r\n

\r\n
\r\n
\r\n Target Employee: {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeFirstName | titleCase\r\n }} {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeLastName | titleCase }} ({{\r\n EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeSAPID }})\r\n
\r\n
\r\n Window: \r\n
\r\n
\r\n {{ SettingsInfo?.get('PackedDateBegin')?.value | date: 'M/d/yy h:mm a' }} - {{\r\n SettingsInfo?.get('PackedDateEnd')?.value | date: 'M/d/yy h:mm a' }}\r\n
\r\n
\"Monthly Payment\" Override: Yes
\r\n
Reason / Description:
\r\n {{ RationaleInfo?.get('Rationale')?.value }}\r\n
\r\n

\r\n
\r\n Once this exclusion is created, it will take effect immediately in the system. If the opening date is on or before\r\n the current date/time, the Payroll Frequency Tool will be immediately accessible to the employee shown above. Are\r\n you sure you wish to create this exclusion?\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MediaObserver } from '@angular/flex-layout';\r\n\r\nimport { Subscription, combineLatest } from 'rxjs';\r\n\r\nimport { isAfter, set, startOfDay, format } from 'date-fns';\r\n\r\nimport { UserSearchResult } from 'services/application/application.service';\r\nimport { ConfigService } from 'services/config/config.service';\r\nimport { ErrorMessageService } from 'services/errormsg/errormsg.service';\r\nimport { SplashService } from 'services/splash/splash.service';\r\nimport { UserService, UserInfo } from 'services/user/user.service';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { TitleCasePipe } from 'pipes/titlecase.pipe';\r\nimport { PayrollWindowExclusionInfo } from 'models/payroll';\r\n\r\n@Component({\r\n selector: 'dialog-semiexclusionwizard-component',\r\n styleUrls: ['semiexclusionwizard.dialogcomponent.scss'],\r\n templateUrl: 'semiexclusionwizard.dialogcomponent.html',\r\n})\r\nexport class SemiExclusionWizardDialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n private _subrelease: Subscription = new Subscription();\r\n\r\n @ViewChild('paginator', { static: false }) Paginator: MatPaginator;\r\n @ViewChild('smallpaginator', { static: false }) SmallPaginator: MatPaginator;\r\n @ViewChild('scrollpanel', { static: false }) ScrollPanel: ElementRef;\r\n @ViewChild('smallscrollpanel', { static: false }) SmallScrollPanel: ElementRef;\r\n @ViewChild('wideempinput', { static: false }) wideempinput: MatInput;\r\n @ViewChild('widerationale', { static: false }) widerationale: MatInput;\r\n @ViewChild('smallempinput', { static: false }) smallempinput: MatInput;\r\n @ViewChild('smallrationale', { static: false }) smallrationale: MatInput;\r\n\r\n get EmployeeInfo() {\r\n return this.ExclusionForm.get('EmployeeInfo') || {};\r\n }\r\n get SettingsInfo() {\r\n return this.ExclusionForm.get('SettingsInfo') || {};\r\n }\r\n get RationaleInfo() {\r\n return this.ExclusionForm.get('RationaleInfo') || {};\r\n }\r\n\r\n AllDistrictHeaders: string[] = ['EmployeeLastName', 'EmployeeFirstName', 'EmployeeSAPID', 'LocalJobTitle', 'SiteName', 'Actions'];\r\n canceltext: string;\r\n shorttitle: string;\r\n title: string;\r\n oktext: string;\r\n showIcon: boolean;\r\n CurrentStep: number;\r\n\r\n NoData: boolean;\r\n Options: BaseSemiExclusionWizardDialogOptions;\r\n OriginalExclusion: PayrollWindowExclusionInfo;\r\n ResultsData: MatTableDataSource;\r\n SearchResults: UserSearchResult[];\r\n SmallDisplay: boolean;\r\n User: UserInfo;\r\n UserSearchConducted: boolean;\r\n VisibleColumns: string[];\r\n VisibleHeaders: string[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseSemiExclusionWizardDialogOptions,\r\n private configSvc: ConfigService,\r\n private errorService: ErrorMessageService,\r\n private fb: FormBuilder,\r\n private http: HttpClient,\r\n public ExclusionForm: FormGroup,\r\n private mediaService: MediaObserver,\r\n private splashService: SplashService,\r\n private titleCasePipe: TitleCasePipe,\r\n private userService: UserService\r\n ) {\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.oktext = data.OKText || 'OK';\r\n this.shorttitle = data.ShortTitleText || 'New Exclusion';\r\n this.title = data.TitleText || 'New Semi-Monthly Election Window Exclusion';\r\n this.showIcon = data.ShowIcon != null ? data.ShowIcon : false;\r\n this.Options = data;\r\n this.OriginalExclusion = data.Exclusion;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n const self = this;\r\n\r\n self.CurrentStep = 0;\r\n self.NoData = true;\r\n self.SearchResults = [];\r\n self.ResultsData = new MatTableDataSource([{} as UserSearchResult]);\r\n self.UserSearchConducted = false;\r\n\r\n self.ExclusionForm = self.fb.group({\r\n EmployeeInfo: self.fb.group(\r\n {\r\n TargetEmployee: [null, Validators.required],\r\n TargetEmployeeFirst: [''],\r\n TargetEmployeeLast: [''],\r\n TargetEmployeeSAPID: ['', [Validators.pattern(/^\\d{2,8}$/)]],\r\n },\r\n {\r\n validator: (val) => {\r\n const valform = val.value;\r\n\r\n if (!valform.TargetEmployeeFirst && !valform.TargetEmployeeLast && !valform.TargetEmployeeSAPID) {\r\n return {\r\n MissingSearchTerms: true,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n }\r\n ),\r\n SettingsInfo: self.fb.group(\r\n {\r\n SemiMonthlyExclusionID: [null],\r\n DateBegin: [null, Validators.required],\r\n DateBeginTime: ['', [Validators.required, Validators.pattern(/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/)]],\r\n DateEnd: [null, Validators.required],\r\n DateEndTime: ['', [Validators.required, Validators.pattern(/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/)]],\r\n PackedDateBegin: [null],\r\n PackedDateEnd: [null],\r\n AllowMonthly: [false],\r\n },\r\n {\r\n validator: (gpform) => {\r\n const gpvalue = gpform && gpform.value;\r\n const db = gpvalue.PackedDateBegin;\r\n const de = gpvalue.PackedDateEnd;\r\n\r\n if (!db || !de) {\r\n return null;\r\n }\r\n\r\n if (!isAfter(de, db)) {\r\n return {\r\n DateOrder: true,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n }\r\n ),\r\n RationaleInfo: self.fb.group({\r\n Rationale: ['', Validators.required],\r\n }),\r\n });\r\n\r\n // Subscribe to updates on the DateBegin, DateBeginTime, DateEnd, and DateEndTime fields, so we can create the\r\n // proper packed entry for tracking.\r\n self._subrelease.add(\r\n combineLatest([\r\n self.ExclusionForm.get('SettingsInfo.DateBegin').valueChanges,\r\n self.ExclusionForm.get('SettingsInfo.DateBeginTime').valueChanges,\r\n self.ExclusionForm.get('SettingsInfo.DateEnd').valueChanges,\r\n self.ExclusionForm.get('SettingsInfo.DateEndTime').valueChanges,\r\n ])\r\n .pipe(debounceTime(250))\r\n .subscribe((_pck) => {\r\n // Pack together all values as can be, and update the packed entries.\r\n const gpvalue = self.ExclusionForm.get('SettingsInfo').value;\r\n\r\n const db = self.PackDateTime(gpvalue.DateBegin, gpvalue.DateBeginTime);\r\n const de = self.PackDateTime(gpvalue.DateEnd, gpvalue.DateEndTime);\r\n\r\n self.ExclusionForm.get('SettingsInfo').patchValue(\r\n {\r\n PackedDateBegin: db,\r\n PackedDateEnd: de,\r\n },\r\n { emitEvent: false, onlySelf: true }\r\n );\r\n })\r\n );\r\n\r\n // If we have an original exclusion, we must now patch the form to represent what's being edited.\r\n if (self.OriginalExclusion) {\r\n self.PatchFormWithOriginal();\r\n }\r\n\r\n // Subscribe to the user object, since we need that for the service layer call.\r\n self._subrelease.add(\r\n self.userService.UserSubject.subscribe((_user) => {\r\n self.User = _user;\r\n })\r\n );\r\n\r\n // Subscribe to get screen size notifications\r\n self._subrelease.add(\r\n self.mediaService.asObservable().subscribe((size) => {\r\n self.SmallDisplay = size[0].mqAlias === 'xs' || size[0].mqAlias === 'sm';\r\n self.VisibleHeaders = self.SmallDisplay ? ['SmallDisplay'] : self.AllDistrictHeaders;\r\n self.VisibleColumns = self.NoData ? ['NoData'] : self.VisibleHeaders;\r\n\r\n self.ResultsData.paginator = self.SmallDisplay ? self.SmallPaginator : self.Paginator;\r\n })\r\n );\r\n\r\n self.SmallDisplay = self.mediaService.isActive('xs') || self.mediaService.isActive('sm');\r\n }\r\n\r\n ngAfterViewInit() {\r\n const self = this;\r\n self.SmallDisplay = self.mediaService.isActive('xs') || self.mediaService.isActive('sm');\r\n\r\n let focusProc = null;\r\n\r\n if (self.SmallDisplay) {\r\n focusProc = self.smallempinput && self.smallempinput.focus.bind(self.smallempinput);\r\n }\r\n // else {\r\n // focusProc = self.wideempinput && self.wideempinput.focus.bind(self.wideempinput);\r\n // }\r\n\r\n window.setTimeout(() => {\r\n self.ResultsData.paginator = self.SmallDisplay ? self.SmallPaginator : self.Paginator;\r\n if (focusProc) {\r\n focusProc();\r\n }\r\n }, 100);\r\n }\r\n\r\n Ok() {\r\n const self = this;\r\n\r\n if (self.ExclusionForm.invalid) {\r\n return;\r\n }\r\n\r\n const exclusionForm = self.ExclusionForm.value;\r\n const empInfo = exclusionForm.EmployeeInfo;\r\n\r\n this.dialogRef.close({\r\n AllowMonthly: exclusionForm.SettingsInfo && exclusionForm.SettingsInfo.AllowMonthly,\r\n DateBegin: exclusionForm.SettingsInfo && exclusionForm.SettingsInfo.PackedDateBegin,\r\n DateEnd: exclusionForm.SettingsInfo && exclusionForm.SettingsInfo.PackedDateEnd,\r\n Rationale: exclusionForm.RationaleInfo && exclusionForm.RationaleInfo.Rationale,\r\n TargetEmployeeSAPID: empInfo.TargetEmployee && empInfo.TargetEmployee.EmployeeSAPID,\r\n });\r\n }\r\n\r\n Cancel() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n // #region Lookup Employee\r\n\r\n LookupEmployee() {\r\n const self = this;\r\n\r\n const form = self.EmployeeInfo.value;\r\n\r\n // There must be at least 1 of either first name, last name, or SAPID provided.\r\n // We will not allow a search on 300000+ users without something!\r\n if (!form.TargetEmployeeSAPID && (form.TargetEmployeeFirst || '').length + (form.TargetEmployeeLast || '').length < 5) {\r\n self.splashService.SnackbarAlert('You must provide at least five (5) letters combined in order to conduct a search');\r\n return;\r\n }\r\n\r\n // Pad SAPID up to 8 characters, if it is provided.\r\n if (form.TargetEmployeeSAPID && form.TargetEmployeeSAPID.length < 8) {\r\n form.TargetEmployeeSAPID = ('00000000' + form.TargetEmployeeSAPID).slice(-8);\r\n }\r\n\r\n // Perform the search.\r\n self.http\r\n .get(\r\n this.configSvc.hostAddress +\r\n `Api/Services/App/SearchForUser?` +\r\n `AuthToken=${self.userService.User.AuthToken || ''}&FirstName=${form.TargetEmployeeFirst || ''}` +\r\n `&LastName=${form.TargetEmployeeLast || ''}&SAPID=${form.TargetEmployeeSAPID || ''}`\r\n )\r\n .subscribe(\r\n (users) => {\r\n // Update the search results\r\n self.SearchResults = users;\r\n self.NoData = !users || !users.length;\r\n self.ResultsData = new MatTableDataSource(self.NoData ? [{} as UserSearchResult] : users);\r\n self.UserSearchConducted = true;\r\n\r\n self.VisibleHeaders = self.SmallDisplay ? ['SmallDisplay'] : self.AllDistrictHeaders.slice();\r\n self.VisibleColumns = self.NoData ? ['NoData'] : self.VisibleHeaders.slice();\r\n\r\n // If on a small display, scroll the scroll panel all the way downward\r\n if (self.SmallDisplay && self.SmallScrollPanel) {\r\n window.setTimeout(() => {\r\n (self.SmallScrollPanel.nativeElement as HTMLDivElement).scrollIntoView();\r\n }, 0);\r\n }\r\n },\r\n (error) => {\r\n const msg = self.errorService.RetrieveServiceErrorMessage(error);\r\n\r\n self.splashService.SnackbarError(msg, 5000);\r\n }\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Pack Date Time\r\n\r\n PackDateTime(dateobj: Date, timeobj: string) {\r\n if (!/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/.test(timeobj)) {\r\n return null;\r\n }\r\n\r\n const timematches = timeobj.match(/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/);\r\n\r\n if (timematches.length < 4) {\r\n return null;\r\n }\r\n\r\n const hrval = +timematches[1];\r\n const merid = timematches[3].toLocaleLowerCase();\r\n\r\n const hr = hrval === 12 ? (merid === 'pm' ? 12 : 0) : merid === 'pm' ? 12 + hrval : hrval;\r\n\r\n const dobj = set(dateobj, { hours: hr, minutes: +timematches[2] });\r\n\r\n return dobj;\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Patch Form With Original\r\n\r\n PatchFormWithOriginal() {\r\n const self = this;\r\n const exc = self.OriginalExclusion;\r\n\r\n const dbt = format(exc.DateBegin, 'h:mm a');\r\n const dbe = format(exc.DateEnd, 'h:mm a');\r\n\r\n const patch = {\r\n EmployeeInfo: {\r\n TargetEmployee: {\r\n EmployeeFirstName: self.titleCasePipe.transform(exc.TargetFirstName),\r\n EmployeeLastName: self.titleCasePipe.transform(exc.TargetLastName),\r\n EmployeeSAPID: exc.TargetSAPID,\r\n LocalJobTitle: exc.TargetLocalJobTitle,\r\n SiteName: exc.TargetSiteName,\r\n } as UserSearchResult,\r\n TargetEmployeeFirst: self.titleCasePipe.transform(exc.TargetFirstName),\r\n TargetEmployeeLast: self.titleCasePipe.transform(exc.TargetLastName),\r\n TargetEmployeeSAPID: exc.TargetSAPID,\r\n },\r\n SettingsInfo: {\r\n SemiMonthlyExclusionID: exc.SemiMonthlyPayrollElectionExclusionID,\r\n DateBegin: startOfDay(exc.DateBegin),\r\n DateBeginTime: dbt,\r\n DateEnd: startOfDay(exc.DateEnd),\r\n DateEndTime: dbe,\r\n PackedDateBegin: exc.DateBegin,\r\n PackedDateEnd: exc.DateEnd,\r\n AllowMonthly: exc.AllowMonthly,\r\n },\r\n };\r\n\r\n // Apply patch\r\n self.ExclusionForm.patchValue(patch);\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Pseudo Step Change\r\n\r\n PseudoStepChange(dir: number) {\r\n const self = this;\r\n\r\n if (dir < 0 && self.CurrentStep === 0) {\r\n return;\r\n }\r\n\r\n self.CurrentStep += dir;\r\n\r\n let focusProc = null;\r\n\r\n switch (self.CurrentStep) {\r\n case 0:\r\n focusProc = self.smallempinput && self.smallempinput.focus.bind(self.smallempinput);\r\n break;\r\n case 2:\r\n focusProc = self.smallrationale && self.smallrationale.focus.bind(self.smallrationale);\r\n break;\r\n }\r\n\r\n if (focusProc) {\r\n window.setTimeout(() => {\r\n focusProc();\r\n }, 50);\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Reset Form\r\n\r\n ResetForm() {\r\n this.EmployeeInfo.reset();\r\n\r\n if (this.SmallDisplay && this.smallempinput) {\r\n this.smallempinput.focus();\r\n } else if (!this.SmallDisplay && this.wideempinput) {\r\n this.wideempinput.focus();\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Select User\r\n\r\n SelectUser(user: UserSearchResult) {\r\n const self = this;\r\n\r\n if (!user) {\r\n return;\r\n }\r\n\r\n // Load the form group data for the selected user.\r\n self.EmployeeInfo.get('TargetEmployee').setValue(user);\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Step Change\r\n\r\n StepChange(event: StepperSelectionEvent) {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n // If we've selected the manual entry step, jump the focus to the first entry box.\r\n if (event.selectedIndex === 0) {\r\n if (this.wideempinput) {\r\n window.setTimeout(() => {\r\n this.wideempinput.focus();\r\n }, 50);\r\n }\r\n } else if (event.selectedIndex === 2) {\r\n if (this.widerationale) {\r\n window.setTimeout(() => {\r\n this.widerationale.focus();\r\n }, 50);\r\n }\r\n }\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Base Semi Exclusion Wizard Dialog Options Class\r\n\r\nexport class BaseSemiExclusionWizardDialogOptions {\r\n ShortTitleText?: string;\r\n TitleText?: string;\r\n OKText?: string;\r\n CancelText?: string;\r\n IconColor?: string;\r\n IconName?: string;\r\n ShowIcon?: boolean;\r\n height?: string;\r\n width?: string;\r\n Exclusion?: PayrollWindowExclusionInfo;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Base Semi Exclusion Wizard Dialog Result Class\r\n\r\nexport class BaseSemiExclusionWizardDialogResult {\r\n AllowMonthly?: boolean;\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n Rationale?: string;\r\n TargetEmployeeSAPID?: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n Use a restricted set of {{datePrompt}} dates\r\n \r\n \r\n On or Before\r\n On or After\r\n Between\r\n \r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { isValid } from 'date-fns';\r\n\r\nimport { Subscription, TeardownLogic } from 'rxjs';\r\nimport { validateDate } from 'validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'semimonthlyreportoptions-dialog-component',\r\n styleUrls: ['semimonthlyreportoptions.dialogcomponent.scss'],\r\n templateUrl: 'semimonthlyreportoptions.dialogcomponent.html',\r\n})\r\nexport class SemiMonthlyReportOptionsDialogComponent implements OnInit, OnDestroy {\r\n private _subrelease: Subscription = new Subscription();\r\n\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n datePrompt: string;\r\n OptionsForm: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseSemiMonthlyReportOptionsDialogOptions,\r\n private fb: FormBuilder\r\n ) {\r\n this.title = data.TitleText || 'Confirmation Requested...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.datePrompt = data.DatePrompt || '';\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n const opts = this.OptionsForm.value;\r\n\r\n this.dialogRef.close({\r\n UseDateRestriction: opts.UseDateRestriction,\r\n DateBegin: opts.DateBegin,\r\n DateEnd: opts.DateEnd,\r\n DateRestrictionType: opts.DateRestrictionType,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.OptionsForm = this.fb.group({\r\n UseDateRestriction: [false],\r\n DateBegin: [null],\r\n DateEnd: [null],\r\n DateRestrictionType: [1, Validators.required],\r\n });\r\n\r\n this.subrelease = this.OptionsForm.get('UseDateRestriction').valueChanges.subscribe((restrict: boolean) => {\r\n const dbctrl = this.OptionsForm.get('DateBegin') as FormControl;\r\n const dectrl = this.OptionsForm.get('DateEnd') as FormControl;\r\n\r\n if (restrict === true) {\r\n // Activate requirement on at least DateBegin\r\n dbctrl.setValidators([Validators.required, validateDate]);\r\n\r\n if (this.OptionsForm.get('DateRestrictionType').value === 3) {\r\n dectrl.setValidators([Validators.required, validateDate]);\r\n }\r\n } else {\r\n // Deactivate requirement on DateBegin and DateEnd\r\n dbctrl.setValidators(null);\r\n dectrl.setValidators(null);\r\n }\r\n\r\n dbctrl.updateValueAndValidity();\r\n dectrl.updateValueAndValidity();\r\n });\r\n\r\n this.subrelease = this.OptionsForm.get('DateRestrictionType').valueChanges.subscribe((dtype: number) => {\r\n const dctrl = this.OptionsForm.get('DateEnd') as FormControl;\r\n\r\n // If dtype is 3 (between), activate a requirement on the DateEnd field.\r\n if (dtype === 3) {\r\n dctrl.setValidators(Validators.required);\r\n } else {\r\n dctrl.setValidators(null);\r\n }\r\n\r\n dctrl.updateValueAndValidity();\r\n });\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Semi-Monthly Report Options Dialog Options Class\r\n\r\nexport class BaseSemiMonthlyReportOptionsDialogOptions extends BaseDialogOptions {\r\n DefaultOptions?: BaseSemiMonthlyReportRunOptions;\r\n DatePrompt?: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Semi-Monthly Report Run Options Class\r\n\r\nexport class BaseSemiMonthlyReportRunOptions {\r\n UseDateRestriction?: boolean;\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n DateRestrictionType?: number;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n Window Open: \r\n
\r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n Required.\r\n \r\n \r\n \r\n H:MM AM/PM\r\n \r\n
\r\n
\r\n \r\n Window Close: \r\n
\r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n Required.\r\n \r\n \r\n \r\n H:MM AM/PM\r\n \r\n
\r\n
\r\n Activate window\r\n
\r\n The window close date/time must be after the window open date/time.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { format, isBefore, isValid, set, startOfDay, isEqual } from 'date-fns';\r\n\r\nimport { Subscription, TeardownLogic } from 'rxjs';\r\nimport { validateDate } from 'validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'semimonthlywindowoptions-dialog-component',\r\n styleUrls: ['semimonthlywindowoptions.dialogcomponent.scss'],\r\n templateUrl: 'semimonthlywindowoptions.dialogcomponent.html',\r\n})\r\nexport class SemiMonthlyWindowOptionsDialogComponent implements OnInit, OnDestroy {\r\n private _subrelease: Subscription = new Subscription();\r\n\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n OptionsForm: FormGroup;\r\n _DateBegin: Date;\r\n _DateEnd: Date;\r\n _Status: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseSemiMonthlyWindowOptionsDialogOptions,\r\n private fb: FormBuilder,\r\n private datePipe: DatePipe\r\n ) {\r\n this.title = data.TitleText || 'Select Window Options...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this._DateBegin = data.DateBegin || null;\r\n this._DateEnd = data.DateEnd || null;\r\n this._Status = data.Activate != null ? data.Activate : false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n const db = this._DateBegin ? startOfDay(this._DateBegin) : null;\r\n const de = this._DateEnd ? startOfDay(this._DateEnd) : null;\r\n const dbt = this._DateBegin ? this.datePipe.transform(this._DateBegin, 'h:mm a') : '';\r\n const det = this._DateEnd ? this.datePipe.transform(this._DateEnd, 'h:mm a') : '';\r\n\r\n this.OptionsForm = this.fb.group(\r\n {\r\n DateBegin: [db, Validators.required],\r\n DateBeginTime: [dbt, Validators.required],\r\n DateEnd: [de, Validators.required],\r\n DateEndTime: [det, Validators.required],\r\n Activate: [this._Status],\r\n },\r\n {\r\n validator: (fgrp: FormGroup) => {\r\n const formval = fgrp.value;\r\n\r\n // Pack the date begin and end times into objects for comparisons.\r\n const dBegin = this.PackDateTime(formval.DateBegin, formval.DateBeginTime);\r\n const dEnd = this.PackDateTime(formval.DateEnd, formval.DateEndTime);\r\n\r\n if (!dBegin || !dEnd) {\r\n return null;\r\n }\r\n\r\n if (isBefore(dEnd, dBegin) || isEqual(dEnd, dBegin)) {\r\n return {\r\n EndBeforeBegin: true,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n }\r\n );\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n const opts = this.OptionsForm.value;\r\n\r\n // Pack the date and time into a single object for both the begin and end.\r\n const dBegin = this.PackDateTime(opts.DateBegin, opts.DateBeginTime);\r\n const dEnd = this.PackDateTime(opts.DateEnd, opts.DateEndTime);\r\n\r\n this.dialogRef.close({\r\n DateBegin: dBegin,\r\n DateEnd: dEnd,\r\n Activate: opts.Activate,\r\n });\r\n }\r\n\r\n PackDateTime(dateobj: Date, timeobj: string) {\r\n if (!/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/.test(timeobj)) {\r\n return null;\r\n }\r\n\r\n const timematches = timeobj.match(/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/);\r\n\r\n if (timematches.length < 4) {\r\n return null;\r\n }\r\n\r\n const hrval = +timematches[1];\r\n const merid = timematches[3].toLocaleLowerCase();\r\n\r\n const hr = hrval === 12 ? (merid === 'pm' ? 12 : 0) : merid === 'pm' ? 12 + hrval : hrval;\r\n\r\n const dobj = set(dateobj, { hours: hr, minutes: +timematches[2] });\r\n\r\n return dobj;\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Semi-Monthly Window Options Dialog Options Class\r\n\r\nexport class BaseSemiMonthlyWindowOptionsDialogOptions extends BaseDialogOptions {\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n Activate?: boolean;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Semi-Monthly Window Run Options Class\r\n\r\nexport class BaseSemiMonthlyWindowRunOptions {\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n Activate?: boolean;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n

\r\n {{ title }} {{ shorttitle }}\r\n {{ iconname }}\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n Employee Info\r\n
\r\n
\r\n In this first step, you will identify the employee who will be receiving this Semi-Monthly Payroll Election\r\n Override.\r\n
\r\n
\r\n
\r\n First, enter the Personnel #, first name, or last name of the employee in the boxes provided, and click the\r\n \"Search\" button to search the district for the employee you wish to work with. Please note: If you are\r\n searching by the name of the employee, you must provide at least 5 characters (combined) between the first\r\n and last name fields in order to conduct a search.\r\n
\r\n
\r\n
\r\n
Personnel #:
\r\n \r\n \r\n 2-8 digits\r\n Required\r\n Invalid format (2-8 digits)\r\n \r\n
\r\n
\r\n
Last:
\r\n \r\n \r\n \r\n
\r\n
\r\n
First:
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Last Name\r\n \r\n {{ user.EmployeeLastName | titleCase }}\r\n \r\n \r\n\r\n \r\n First Name\r\n \r\n {{ user.EmployeeFirstName | titleCase }}\r\n \r\n \r\n\r\n \r\n SAPID\r\n \r\n {{ user.EmployeeSAPID }}\r\n \r\n \r\n\r\n \r\n Site\r\n \r\n {{ user.SiteName }}\r\n \r\n \r\n\r\n \r\n Title\r\n \r\n {{ user.LocalJobTitle }}\r\n \r\n \r\n\r\n \r\n Action(s)\r\n \r\n \r\n Select\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No search results were found with the provided search criteria.\r\n \r\n \r\n\r\n \r\n Search Result(s)\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Select Payroll Election\r\n
\r\n
\r\n In this step, you must choose the desired Semi-Monthly Payroll Election option. Use the options below to\r\n make your selection.\r\n
\r\n
\r\n \r\n Current Payroll Election on file:\r\n \r\n (Selected on {{EmployeeInfo?.get('TargetEmployee')?.value?.DateElected | date:'M/d/yyyy h:mm\r\n a'}})\r\n \r\n
\r\n
\r\n
Election Option:
\r\n \r\n Monthly Payment\r\n Semi-Monthly Payment with Additional Holdback\r\n Semi-Monthly Payment Immediately (no holdback)\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Rationale\r\n
\r\n
\r\n In this final step, you must provide a reason and/or description of the purpose for this Semi-Monthly\r\n Payroll Election Override. This information\r\n will be displayed to the employee via email, and will be included in security and diagnostic logging within the Staff Portal Admin System for\r\n auditing purposes in case of future inquiries. Please be as descriptive as necessary.\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Final Confirmation\r\n
\r\n
Please review the following override information carefully prior to adding this override:
\r\n

\r\n
\r\n
\r\n Target Employee: {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeFirstName |\r\n titleCase }} {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeLastName | titleCase }} ({{\r\n EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeSAPID }})\r\n
\r\n
\r\n Election: \r\n
\r\n
Reason / Description:
\r\n {{ RationaleInfo?.get('Rationale')?.value }}\r\n
\r\n

\r\n
\r\n Once this override is created, it will take effect immediately in the system. The employee\r\n will be emailed with a confirmation, and the employee's election will be changed to the method selected above. Are you sure you wish to\r\n create this override?\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{ oktext }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
Employee Info
\r\n
\r\n In this first step, you will identify the employee who will be receiving this Semi-Monthly Payroll Election\r\n Override.\r\n
\r\n
\r\n
\r\n First, enter the Personnel #, first name, or last name of the employee in the boxes provided, and click the\r\n \"Search\" button to search the district for the employee you wish to work with. Please note: If you are searching by\r\n the name of the employee, you must provide at least 5 characters (combined) between the first and last name fields\r\n in order to conduct a search.\r\n
\r\n
\r\n
\r\n
Pers. #:
\r\n \r\n \r\n 2-8 digits\r\n Required\r\n Invalid format (2-8 digits)\r\n \r\n
\r\n
\r\n
Last:
\r\n \r\n \r\n \r\n
\r\n
\r\n
First:
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Search Results\r\n \r\n
\r\n
\r\n First Name: {{ user.EmployeeFirstName | titleCase }}\r\n
\r\n
\r\n Last Name: {{ user.EmployeeLastName | titleCase }}\r\n
\r\n
\r\n SAPID: {{ user.EmployeeSAPID }}\r\n
\r\n
\r\n Title: {{ user.LocalJobTitle }}\r\n
\r\n
\r\n Site: {{ user.SiteName }}\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n No search results were found with the provided search criteria.\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Select Payroll Election
\r\n
\r\n In this step, you must choose the desired Semi-Monthly Payroll Election option. Use the options below to make your\r\n selection.\r\n
\r\n
Current Payroll Election on file:
\r\n
\r\n
\r\n (Selected on {{EmployeeInfo?.get('TargetEmployee')?.value?.DateElected | date:'M/d/yyyy h:mm a'}})\r\n
\r\n
\r\n
Election Option:
\r\n \r\n Monthly Payment\r\n Semi-Monthly Payment with Additional Holdback\r\n Semi-Monthly Payment Immediately (no holdback)\r\n \r\n
\r\n
\r\n \r\n Previous\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Rationale
\r\n
\r\n In this final step, you must provide a reason and/or description of the purpose for this Semi-Monthly Payroll\r\n Election Override. This information will be displayed to the employee via email, and will be included in security and diagnostic logging within the Staff Portal Admin System for auditing\r\n purposes in case of future inquiries. Please be as descriptive as necessary.\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Next\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Final Confirmation
\r\n
Please review the following override information carefully prior to adding this override:
\r\n

\r\n
\r\n
\r\n Target Employee: {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeFirstName | titleCase\r\n }} {{ EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeLastName | titleCase }} ({{\r\n EmployeeInfo?.get('TargetEmployee')?.value?.EmployeeSAPID }})\r\n
\r\n
\r\n Election: \r\n
\r\n
Reason / Description:
\r\n {{ RationaleInfo?.get('Rationale')?.value }}\r\n
\r\n

\r\n
\r\n Once this override is created, it will take effect immediately in the system. The employee\r\n will be emailed with a confirmation, and the employee's election will be changed to the method selected above. Are you sure you wish to create this\r\n override?\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MediaObserver } from '@angular/flex-layout';\r\n\r\nimport { Subscription, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\n\r\nimport { isAfter, set, startOfDay, format } from 'date-fns';\r\n\r\nimport { UserSearchResult } from 'services/application/application.service';\r\nimport { ConfigService } from 'services/config/config.service';\r\nimport { ErrorMessageService } from 'services/errormsg/errormsg.service';\r\nimport { SplashService } from 'services/splash/splash.service';\r\nimport { UserService, UserInfo } from 'services/user/user.service';\r\n\r\nimport { TitleCasePipe } from 'pipes/titlecase.pipe';\r\nimport { PayrollWindowExclusionInfo } from 'models/payroll';\r\n\r\n@Component({\r\n selector: 'dialog-semioverridewizard-component',\r\n styleUrls: ['semioverridewizard.dialogcomponent.scss'],\r\n templateUrl: 'semioverridewizard.dialogcomponent.html',\r\n})\r\nexport class SemiOverrideWizardDialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n private _subrelease: Subscription = new Subscription();\r\n @ViewChild('paginator', { static: false }) Paginator: MatPaginator;\r\n @ViewChild('smallpaginator', { static: false }) SmallPaginator: MatPaginator;\r\n @ViewChild('scrollpanel', { static: false }) ScrollPanel: ElementRef;\r\n @ViewChild('smallscrollpanel', { static: false }) SmallScrollPanel: ElementRef;\r\n @ViewChild('wideempinput', { static: false }) wideempinput: MatInput;\r\n @ViewChild('widerationale', { static: false }) widerationale: MatInput;\r\n @ViewChild('smallempinput', { static: false }) smallempinput: MatInput;\r\n @ViewChild('smallrationale', { static: false }) smallrationale: MatInput;\r\n\r\n get EmployeeInfo() {\r\n return this.OverrideForm.get('EmployeeInfo') || {};\r\n }\r\n get SettingsInfo() {\r\n return this.OverrideForm.get('SettingsInfo') || {};\r\n }\r\n get RationaleInfo() {\r\n return this.OverrideForm.get('RationaleInfo') || {};\r\n }\r\n\r\n AllDistrictHeaders: string[] = ['EmployeeLastName', 'EmployeeFirstName', 'EmployeeSAPID', 'LocalJobTitle', 'SiteName', 'Actions'];\r\n canceltext: string;\r\n shorttitle: string;\r\n title: string;\r\n oktext: string;\r\n showIcon: boolean;\r\n CurrentStep: number;\r\n OverrideForm: FormGroup;\r\n NoData: boolean;\r\n Options: BaseSemiOverrideWizardDialogOptions;\r\n OriginalElectionStatus: number;\r\n ResultsData: MatTableDataSource;\r\n SearchResults: UserSearchResult[];\r\n SmallDisplay: boolean;\r\n User: UserInfo;\r\n UserSearchConducted: boolean;\r\n VisibleColumns: string[];\r\n VisibleHeaders: string[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseSemiOverrideWizardDialogOptions,\r\n private configSvc: ConfigService,\r\n private errorService: ErrorMessageService,\r\n private fb: FormBuilder,\r\n private http: HttpClient,\r\n private mediaService: MediaObserver,\r\n private splashService: SplashService,\r\n private titleCasePipe: TitleCasePipe,\r\n private userService: UserService\r\n ) {\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.oktext = data.OKText || 'OK';\r\n this.shorttitle = data.ShortTitleText || 'New Override';\r\n this.title = data.TitleText || 'New Semi-Monthly Election Override';\r\n this.showIcon = data.ShowIcon != null ? data.ShowIcon : false;\r\n this.Options = data;\r\n this.OriginalElectionStatus = data.OriginalElectionStatus != null ? data.OriginalElectionStatus : null;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n const self = this;\r\n\r\n self.CurrentStep = 0;\r\n self.NoData = true;\r\n self.SearchResults = [];\r\n self.ResultsData = new MatTableDataSource([{} as UserSearchResult]);\r\n self.UserSearchConducted = false;\r\n\r\n self.OverrideForm = self.fb.group({\r\n EmployeeInfo: self.fb.group(\r\n {\r\n TargetEmployee: [null, Validators.required],\r\n TargetEmployeeFirst: [''],\r\n TargetEmployeeLast: [''],\r\n TargetEmployeeSAPID: ['', [Validators.pattern(/^\\d{2,8}$/)]],\r\n },\r\n {\r\n validator: (val) => {\r\n const valform = val.value;\r\n\r\n if (!valform.TargetEmployeeFirst && !valform.TargetEmployeeLast && !valform.TargetEmployeeSAPID) {\r\n return {\r\n MissingSearchTerms: true,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n }\r\n ),\r\n SettingsInfo: self.fb.group({\r\n ElectionStatus: [null, Validators.required],\r\n }),\r\n RationaleInfo: self.fb.group({\r\n Rationale: ['', Validators.required],\r\n }),\r\n });\r\n\r\n // Subscribe to the user object, since we need that for the service layer call.\r\n self._subrelease.add(\r\n self.userService.UserSubject.subscribe((_user) => {\r\n self.User = _user;\r\n })\r\n );\r\n\r\n // Subscribe to get screen size notifications\r\n self._subrelease.add(\r\n self.mediaService.asObservable().subscribe((size) => {\r\n self.SmallDisplay = size[0].mqAlias === 'xs' || size[0].mqAlias === 'sm';\r\n self.VisibleHeaders = self.SmallDisplay ? ['SmallDisplay'] : self.AllDistrictHeaders;\r\n self.VisibleColumns = self.NoData ? ['NoData'] : self.VisibleHeaders;\r\n\r\n self.ResultsData.paginator = self.SmallDisplay ? self.SmallPaginator : self.Paginator;\r\n })\r\n );\r\n\r\n self.SmallDisplay = self.mediaService.isActive('xs') || self.mediaService.isActive('sm');\r\n }\r\n\r\n ngAfterViewInit() {\r\n const self = this;\r\n self.SmallDisplay = self.mediaService.isActive('xs') || self.mediaService.isActive('sm');\r\n\r\n let focusProc = null;\r\n\r\n if (self.SmallDisplay) {\r\n focusProc = self.smallempinput && self.smallempinput.focus.bind(self.smallempinput);\r\n }\r\n // else {\r\n // focusProc = self.wideempinput && self.wideempinput.focus.bind(self.wideempinput);\r\n // }\r\n\r\n window.setTimeout(() => {\r\n self.ResultsData.paginator = self.SmallDisplay ? self.SmallPaginator : self.Paginator;\r\n if (focusProc) {\r\n focusProc();\r\n }\r\n }, 100);\r\n }\r\n\r\n Ok() {\r\n const self = this;\r\n\r\n if (self.OverrideForm.invalid) {\r\n return;\r\n }\r\n\r\n const OverrideForm = self.OverrideForm.value;\r\n const empInfo = OverrideForm.EmployeeInfo;\r\n\r\n this.dialogRef.close({\r\n ElectionStatus: OverrideForm.SettingsInfo && OverrideForm.SettingsInfo.ElectionStatus,\r\n Rationale: OverrideForm.RationaleInfo && OverrideForm.RationaleInfo.Rationale,\r\n TargetEmployeeSAPID: empInfo.TargetEmployee && empInfo.TargetEmployee.EmployeeSAPID,\r\n });\r\n }\r\n\r\n Cancel() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n // #region Lookup Employee\r\n\r\n LookupEmployee() {\r\n const self = this;\r\n\r\n const form = self.EmployeeInfo.value;\r\n\r\n // There must be at least 1 of either first name, last name, or SAPID provided.\r\n // We will not allow a search on 300000+ users without something!\r\n if (!form.TargetEmployeeSAPID && (form.TargetEmployeeFirst || '').length + (form.TargetEmployeeLast || '').length < 5) {\r\n self.splashService.SnackbarAlert('You must provide at least five (5) letters combined in order to conduct a search');\r\n return;\r\n }\r\n\r\n // Pad SAPID up to 8 characters, if it is provided.\r\n if (form.TargetEmployeeSAPID && form.TargetEmployeeSAPID.length < 8) {\r\n form.TargetEmployeeSAPID = ('00000000' + form.TargetEmployeeSAPID).slice(-8);\r\n }\r\n\r\n // Perform the search.\r\n self.http\r\n .get(\r\n this.configSvc.hostAddress +\r\n `Api/Services/App/SearchForUser?` +\r\n `AuthToken=${self.userService.User.AuthToken || ''}&FirstName=${form.TargetEmployeeFirst || ''}` +\r\n `&LastName=${form.TargetEmployeeLast || ''}&SAPID=${form.TargetEmployeeSAPID || ''}` +\r\n `&AlsoSemiElection=true`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data && data.length) {\r\n data.forEach((d) => {\r\n d.DateElected = d.DateElected ? new Date(d.DateElected) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n )\r\n .subscribe(\r\n (users) => {\r\n // Update the search results\r\n self.SearchResults = users;\r\n self.NoData = !users || !users.length;\r\n self.ResultsData = new MatTableDataSource(self.NoData ? [{} as UserSearchResult] : users);\r\n self.UserSearchConducted = true;\r\n\r\n self.VisibleHeaders = self.SmallDisplay ? ['SmallDisplay'] : self.AllDistrictHeaders.slice();\r\n self.VisibleColumns = self.NoData ? ['NoData'] : self.VisibleHeaders.slice();\r\n\r\n // If on a small display, scroll the scroll panel all the way downward\r\n if (self.SmallDisplay && self.SmallScrollPanel) {\r\n window.setTimeout(() => {\r\n (self.SmallScrollPanel.nativeElement as HTMLDivElement).scrollIntoView();\r\n }, 0);\r\n }\r\n },\r\n (error) => {\r\n const msg = self.errorService.RetrieveServiceErrorMessage(error);\r\n\r\n self.splashService.SnackbarError(msg, 5000);\r\n }\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Pseudo Step Change\r\n\r\n PseudoStepChange(dir: number) {\r\n const self = this;\r\n\r\n if (dir < 0 && self.CurrentStep === 0) {\r\n return;\r\n }\r\n\r\n self.CurrentStep += dir;\r\n\r\n let focusProc = null;\r\n\r\n switch (self.CurrentStep) {\r\n case 0:\r\n focusProc = self.smallempinput && self.smallempinput.focus.bind(self.smallempinput);\r\n break;\r\n case 2:\r\n focusProc = self.smallrationale && self.smallrationale.focus.bind(self.smallrationale);\r\n break;\r\n }\r\n\r\n if (focusProc) {\r\n window.setTimeout(() => {\r\n focusProc();\r\n }, 50);\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Reset Form\r\n\r\n ResetForm() {\r\n this.EmployeeInfo.reset();\r\n\r\n if (this.SmallDisplay && this.smallempinput) {\r\n this.smallempinput.focus();\r\n } else if (!this.SmallDisplay && this.wideempinput) {\r\n this.wideempinput.focus();\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Select User\r\n\r\n SelectUser(user: UserSearchResult) {\r\n const self = this;\r\n\r\n if (!user) {\r\n return;\r\n }\r\n\r\n // Load the form group data for the selected user.\r\n self.EmployeeInfo.get('TargetEmployee').setValue(user);\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Step Change\r\n\r\n StepChange(event: StepperSelectionEvent) {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n // If we've selected the manual entry step, jump the focus to the first entry box.\r\n if (event.selectedIndex === 0) {\r\n if (this.wideempinput) {\r\n window.setTimeout(() => {\r\n this.wideempinput.focus();\r\n }, 50);\r\n }\r\n } else if (event.selectedIndex === 2) {\r\n if (this.widerationale) {\r\n window.setTimeout(() => {\r\n this.widerationale.focus();\r\n }, 50);\r\n }\r\n }\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Base Semi Override Wizard Dialog Options Class\r\n\r\nexport class BaseSemiOverrideWizardDialogOptions {\r\n ShortTitleText?: string;\r\n TitleText?: string;\r\n OKText?: string;\r\n CancelText?: string;\r\n IconColor?: string;\r\n IconName?: string;\r\n ShowIcon?: boolean;\r\n height?: string;\r\n width?: string;\r\n OriginalElectionStatus?: number;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Base Semi Override Wizard Dialog Result Class\r\n\r\nexport class BaseSemiOverrideWizardDialogResult {\r\n ElectionStatus?: number;\r\n Rationale?: string;\r\n TargetEmployeeSAPID?: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n Window Open: \r\n
\r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n Required.\r\n \r\n \r\n \r\n H:MM AM/PM\r\n \r\n
\r\n
\r\n \r\n Window Close: \r\n
\r\n \r\n \r\n \r\n \r\n MM/DD/YYYY\r\n Required.\r\n \r\n \r\n \r\n H:MM AM/PM\r\n \r\n
\r\n
\r\n Activate window\r\n
\r\n The window close date/time must be after the window open date/time.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { format, isBefore, isValid, set, startOfDay, isEqual } from 'date-fns';\r\n\r\nimport { Subscription, TeardownLogic } from 'rxjs';\r\nimport { validateDate } from 'validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'summerApplicationwindowoptions-dialog-component',\r\n styleUrls: ['summerApplicationwindowoptions.dialogcomponent.scss'],\r\n templateUrl: 'summerApplicationwindowoptions.dialogcomponent.html',\r\n})\r\nexport class SummerApplicationWindowOptionsDialogComponent implements OnInit, OnDestroy {\r\n private _subrelease: Subscription = new Subscription();\r\n\r\n get subrelease() {\r\n return this._subrelease;\r\n }\r\n set subrelease(sub: TeardownLogic) {\r\n this._subrelease.add(sub);\r\n }\r\n\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n OptionsForm: FormGroup;\r\n _DateBegin: Date;\r\n _DateEnd: Date;\r\n _Status: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseSummerApplicationWindowOptionsDialogOptions,\r\n private datePipe: DatePipe,\r\n private fb: FormBuilder\r\n ) {\r\n this.title = data.TitleText || 'Select Window Options...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this._DateBegin = data.DateBegin || null;\r\n this._DateEnd = data.DateEnd || null;\r\n this._Status = data.Activate != null ? data.Activate : false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n const db = this._DateBegin ? startOfDay(this._DateBegin) : null;\r\n const de = this._DateEnd ? startOfDay(this._DateEnd) : null;\r\n const dbt = this._DateBegin ? this.datePipe.transform(this._DateBegin, 'h:mm a') : '';\r\n const det = this._DateEnd ? this.datePipe.transform(this._DateEnd, 'h:mm a') : '';\r\n\r\n this.OptionsForm = this.fb.group(\r\n {\r\n DateBegin: [db, Validators.required],\r\n DateBeginTime: [dbt, Validators.required],\r\n DateEnd: [de, Validators.required],\r\n DateEndTime: [det, Validators.required],\r\n Activate: [this._Status],\r\n },\r\n {\r\n validator: (fgrp: FormGroup) => {\r\n const formval = fgrp.value;\r\n\r\n // Pack the date begin and end times into objects for comparisons.\r\n const dBegin = this.PackDateTime(formval.DateBegin, formval.DateBeginTime);\r\n const dEnd = this.PackDateTime(formval.DateEnd, formval.DateEndTime);\r\n\r\n if (!dBegin || !dEnd) {\r\n return null;\r\n }\r\n\r\n if (isBefore(dEnd, dBegin) || isEqual(dEnd, dBegin)) {\r\n return {\r\n EndBeforeBegin: true,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n }\r\n );\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n const opts = this.OptionsForm.value;\r\n\r\n // Pack the date and time into a single object for both the begin and end.\r\n const dBegin = this.PackDateTime(opts.DateBegin, opts.DateBeginTime);\r\n const dEnd = this.PackDateTime(opts.DateEnd, opts.DateEndTime);\r\n\r\n this.dialogRef.close({\r\n DateBegin: dBegin,\r\n DateEnd: dEnd,\r\n Activate: opts.Activate,\r\n });\r\n }\r\n\r\n PackDateTime(dateobj: Date, timeobj: string) {\r\n if (!/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/.test(timeobj)) {\r\n return null;\r\n }\r\n\r\n const timematches = timeobj.match(/^(10|11|12|0?[1-9]):([0-5][0-9])\\s*([aApP][mM])$/);\r\n\r\n if (timematches.length < 4) {\r\n return null;\r\n }\r\n\r\n const hrval = +timematches[1];\r\n const merid = timematches[3].toLocaleLowerCase();\r\n\r\n const hr = hrval === 12 ? (merid === 'pm' ? 12 : 0) : merid === 'pm' ? 12 + hrval : hrval;\r\n\r\n const dobj = set(dateobj, { hours: hr, minutes: +timematches[2] });\r\n\r\n return dobj;\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Semi-Monthly Window Options Dialog Options Class\r\n\r\nexport class BaseSummerApplicationWindowOptionsDialogOptions extends BaseDialogOptions {\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n Activate?: boolean;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Semi-Monthly Window Run Options Class\r\n\r\nexport class BaseSummerApplicationWindowRunOptions {\r\n DateBegin?: Date;\r\n DateEnd?: Date;\r\n Activate?: boolean;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n

\r\n {{ title }} {{ shorttitle }}\r\n {{ iconname }}\r\n

\r\n
\r\n \r\n
\r\n
\r\n Enter the Personnel #, first name, or last name of the employee in the boxes provided, and click the \"Search\" button to\r\n search the district for the employee you wish to work with. Please note: If you are searching by the name of the\r\n employee, you must provide at least 5 characters (combined) between the first and last name fields in order to conduct\r\n a search.\r\n
\r\n \r\n
\r\n
Personnel #:
\r\n \r\n \r\n 2-8 digits\r\n \r\n \r\n
\r\n
\r\n
Last:
\r\n \r\n \r\n \r\n
\r\n
\r\n
First:
\r\n \r\n \r\n \r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Last Name\r\n \r\n {{ user.EmployeeLastName | titleCase }}\r\n \r\n \r\n\r\n \r\n First Name\r\n \r\n {{ user.EmployeeFirstName | titleCase }}\r\n \r\n \r\n\r\n \r\n SAPID\r\n \r\n {{ user.EmployeeSAPID }}\r\n \r\n \r\n\r\n \r\n Site\r\n \r\n {{ user.SiteName }}\r\n \r\n \r\n\r\n \r\n Title\r\n \r\n {{ user.LocalJobTitle }}\r\n \r\n \r\n\r\n \r\n Action(s)\r\n \r\n \r\n Select\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No search results were found with the provided search criteria.\r\n \r\n \r\n\r\n \r\n Search Result(s)\r\n \r\n
\r\n
\r\n First Name: {{ user.EmployeeFirstName | titleCase }}\r\n
\r\n
\r\n Last Name: {{ user.EmployeeLastName | titleCase }}\r\n
\r\n
\r\n SAPID: {{ user.EmployeeSAPID }}\r\n
\r\n
\r\n Title: {{ user.LocalJobTitle }}\r\n
\r\n
\r\n Site: {{ user.SiteName }}\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MediaObserver } from '@angular/flex-layout';\r\n\r\nimport { Subscription, combineLatest } from 'rxjs';\r\n\r\nimport { isAfter, set, startOfDay, format } from 'date-fns';\r\n\r\nimport { UserSearchResult } from 'services/application/application.service';\r\nimport { ConfigService } from 'services/config/config.service';\r\nimport { ErrorMessageService } from 'services/errormsg/errormsg.service';\r\nimport { SplashService } from 'services/splash/splash.service';\r\nimport { UserService, UserInfo } from 'services/user/user.service';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { TitleCasePipe } from 'pipes/titlecase.pipe';\r\nimport { PayrollWindowExclusionInfo } from 'models/payroll';\r\n\r\n@Component({\r\n selector: 'dialog-usersearch-component',\r\n styleUrls: ['usersearch.dialogcomponent.scss'],\r\n templateUrl: 'usersearch.dialogcomponent.html',\r\n})\r\nexport class UserSearchDialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n private _subrelease: Subscription = new Subscription();\r\n @ViewChild('paginator', { static: false }) Paginator: MatPaginator;\r\n @ViewChild('scrollpanel', { static: false }) ScrollPanel: ElementRef;\r\n @ViewChild('wideempinput', { static: false }) wideempinput: MatInput;\r\n @ViewChild('smallempinput', { static: false }) smallempinput: MatInput;\r\n\r\n AllDistrictHeaders: string[] = ['EmployeeLastName', 'EmployeeFirstName', 'EmployeeSAPID', 'LocalJobTitle', 'SiteName', 'Actions'];\r\n canceltext: string;\r\n shorttitle: string;\r\n title: string;\r\n oktext: string;\r\n showIcon: boolean;\r\n NoData: boolean;\r\n Options: BaseUserSearchDialogOptions;\r\n EmployeeInfo: FormGroup;\r\n ResultsData: MatTableDataSource;\r\n SearchResults: UserSearchResult[];\r\n SelectedUser: UserSearchResult;\r\n SmallDisplay: boolean;\r\n User: UserInfo;\r\n UserSearchConducted: boolean;\r\n VisibleColumns: string[];\r\n VisibleHeaders: string[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: BaseUserSearchDialogOptions,\r\n private configSvc: ConfigService,\r\n private errorService: ErrorMessageService,\r\n private fb: FormBuilder,\r\n private http: HttpClient,\r\n private mediaService: MediaObserver,\r\n private splashService: SplashService,\r\n private titleCasePipe: TitleCasePipe,\r\n private userService: UserService\r\n ) {\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.oktext = data.OKText || 'OK';\r\n this.shorttitle = data.ShortTitleText || 'User Search';\r\n this.title = data.TitleText || 'Search for User';\r\n this.showIcon = data.ShowIcon != null ? data.ShowIcon : false;\r\n this.Options = data;\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subrelease.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n const self = this;\r\n\r\n self.NoData = true;\r\n self.SearchResults = [];\r\n self.SelectedUser = null;\r\n self.ResultsData = new MatTableDataSource([{} as UserSearchResult]);\r\n self.UserSearchConducted = false;\r\n\r\n self.EmployeeInfo = self.fb.group(\r\n {\r\n TargetEmployee: [null, Validators.required],\r\n TargetEmployeeFirst: [''],\r\n TargetEmployeeLast: [''],\r\n TargetEmployeeSAPID: ['', [Validators.pattern(/^\\d{2,8}$/)]],\r\n },\r\n {\r\n validator: (val) => {\r\n const valform = val.value;\r\n\r\n if (!valform.TargetEmployeeFirst && !valform.TargetEmployeeLast && !valform.TargetEmployeeSAPID) {\r\n return {\r\n MissingSearchTerms: true,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n }\r\n );\r\n\r\n // Subscribe to the user object, since we need that for the service layer call.\r\n self._subrelease.add(\r\n self.userService.UserSubject.subscribe((_user) => {\r\n self.User = _user;\r\n })\r\n );\r\n\r\n // Subscribe to get screen size notifications\r\n self._subrelease.add(\r\n self.mediaService.asObservable().subscribe((size) => {\r\n self.SmallDisplay = size[0].mqAlias === 'xs' || size[0].mqAlias === 'sm';\r\n self.VisibleHeaders = self.SmallDisplay ? ['SmallDisplay'] : self.AllDistrictHeaders;\r\n self.VisibleColumns = self.NoData ? ['NoData'] : self.VisibleHeaders;\r\n\r\n self.ResultsData.paginator = self.Paginator;\r\n })\r\n );\r\n\r\n self.SmallDisplay = self.mediaService.isActive('xs') || self.mediaService.isActive('sm');\r\n }\r\n\r\n ngAfterViewInit() {\r\n const self = this;\r\n self.SmallDisplay = self.mediaService.isActive('xs') || self.mediaService.isActive('sm');\r\n\r\n let focusProc = null;\r\n\r\n if (self.SmallDisplay) {\r\n focusProc = self.smallempinput && self.smallempinput.focus.bind(self.smallempinput);\r\n }\r\n // else {\r\n // focusProc = self.wideempinput && self.wideempinput.focus.bind(self.wideempinput);\r\n // }\r\n\r\n window.setTimeout(() => {\r\n self.ResultsData.paginator = self.Paginator;\r\n if (focusProc) {\r\n focusProc();\r\n }\r\n }, 100);\r\n }\r\n\r\n Ok(user: UserSearchResult) {\r\n const self = this;\r\n\r\n if (!user) {\r\n return;\r\n }\r\n\r\n this.dialogRef.close({\r\n TargetEmployee: user,\r\n });\r\n }\r\n\r\n Cancel() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n // #region Lookup Employee\r\n\r\n LookupEmployee() {\r\n const self = this;\r\n\r\n const form = self.EmployeeInfo.value;\r\n\r\n // There must be at least 1 of either first name, last name, or SAPID provided.\r\n // We will not allow a search on 300000+ users without something!\r\n if (!form.TargetEmployeeSAPID && (form.TargetEmployeeFirst || '').length + (form.TargetEmployeeLast || '').length < 5) {\r\n self.splashService.SnackbarAlert('You must provide at least five (5) letters combined in order to conduct a search');\r\n return;\r\n }\r\n\r\n // Pad SAPID up to 8 characters, if it is provided.\r\n if (form.TargetEmployeeSAPID && form.TargetEmployeeSAPID.length < 8) {\r\n form.TargetEmployeeSAPID = ('00000000' + form.TargetEmployeeSAPID).slice(-8);\r\n }\r\n\r\n // Perform the search.\r\n self.http\r\n .get(\r\n this.configSvc.hostAddress +\r\n `Api/Services/App/SearchForUser?` +\r\n `AuthToken=${self.userService.User.AuthToken || ''}&FirstName=${form.TargetEmployeeFirst || ''}` +\r\n `&LastName=${form.TargetEmployeeLast || ''}&SAPID=${form.TargetEmployeeSAPID || ''}`\r\n )\r\n .subscribe(\r\n (users) => {\r\n // Update the search results\r\n self.SearchResults = users;\r\n self.NoData = !users || !users.length;\r\n self.ResultsData = new MatTableDataSource(self.NoData ? [{} as UserSearchResult] : users);\r\n self.UserSearchConducted = true;\r\n\r\n self.VisibleHeaders = self.SmallDisplay ? ['SmallDisplay'] : self.AllDistrictHeaders.slice();\r\n self.VisibleColumns = self.NoData ? ['NoData'] : self.VisibleHeaders.slice();\r\n\r\n // If on a small display, scroll the scroll panel all the way downward\r\n if (self.SmallDisplay && self.ScrollPanel) {\r\n window.setTimeout(() => {\r\n (self.ScrollPanel.nativeElement as HTMLDivElement).scrollIntoView();\r\n }, 0);\r\n }\r\n },\r\n (error) => {\r\n const msg = self.errorService.RetrieveServiceErrorMessage(error);\r\n\r\n self.splashService.SnackbarError(msg, 5000);\r\n }\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Reset Form\r\n\r\n ResetForm() {\r\n this.EmployeeInfo.reset();\r\n\r\n if (this.SmallDisplay && this.smallempinput) {\r\n this.smallempinput.focus();\r\n } else if (!this.SmallDisplay && this.wideempinput) {\r\n this.wideempinput.focus();\r\n }\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Base User Search Dialog Options Class\r\n\r\nexport class BaseUserSearchDialogOptions {\r\n ShortTitleText?: string;\r\n TitleText?: string;\r\n OKText?: string;\r\n CancelText?: string;\r\n IconColor?: string;\r\n IconName?: string;\r\n ShowIcon?: boolean;\r\n height?: string;\r\n width?: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Base User Search Dialog Result Class\r\n\r\nexport class BaseUserSearchDialogResult {\r\n TargetEmployee?: UserSearchResult;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FormBuilder, FormGroup, AbstractControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { isValid } from 'date-fns';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { validateDate } from '../../../validators/date.validator';\r\n\r\nimport { BaseDialogOptions } from '../dialogoptions';\r\n\r\n@Component({\r\n selector: 'w2reportoptions-dialog-component',\r\n styleUrls: ['w2reportoptions.dialogcomponent.css'],\r\n templateUrl: 'w2reportoptions.dialogcomponent.html',\r\n})\r\nexport class W2ReportOptionsDialogComponent implements OnInit {\r\n private _dateSub: Subscription;\r\n private _restrictSub: Subscription;\r\n title: string;\r\n message: string;\r\n oktext: string;\r\n canceltext: string;\r\n CurrentApplicationSchoolYear: string;\r\n AvailableSchoolYears: string[];\r\n OptionsForm: FormGroup;\r\n W2Deadline: Date | null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: _W2ReportOptionsDialogOptions,\r\n private fb: FormBuilder,\r\n private datePipe: DatePipe\r\n ) {\r\n this.title = data.TitleText || 'Confirmation Requested...';\r\n this.message = data.MessageText || '';\r\n this.oktext = data.OKText || 'OK';\r\n this.canceltext = data.CancelText || 'Cancel';\r\n this.W2Deadline = data.W2Deadline;\r\n }\r\n\r\n CancelHandler() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n OKHandler() {\r\n let opts = this.OptionsForm.value;\r\n\r\n if (opts.DateEnd != null && opts.DateEnd != '') {\r\n let end = new Date(opts.DateEnd);\r\n opts.DateEnd = isValid(end) ? end : null;\r\n }\r\n\r\n this.dialogRef.close(<_W2ReportRunOptions>{\r\n DateEnd: opts.DateEnd,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._dateSub) this._dateSub.unsubscribe();\r\n if (this._restrictSub) this._restrictSub.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.OptionsForm = this.fb.group({\r\n DateEnd: [this.W2Deadline ? this.datePipe.transform(this.W2Deadline, 'M/d/yyyy') : ''],\r\n });\r\n\r\n let dectrl: AbstractControl = this.OptionsForm.get('DateEnd');\r\n dectrl.setValidators([Validators.required, validateDate]);\r\n }\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Report Options Dialog Options Class\r\n\r\nexport class _W2ReportOptionsDialogOptions extends BaseDialogOptions {\r\n DefaultOptions?: _W2ReportRunOptions;\r\n W2Deadline?: Date;\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Report Run Options Class\r\n\r\nexport class _W2ReportRunOptions {\r\n UseDateRestriction?: boolean;\r\n DateEnd?: Date;\r\n DateRestrictionType?: number;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n MM/DD/YYYY\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 { format } from 'date-fns';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Observable, Subject, fromEvent } from 'rxjs';\r\nimport { ConfigService } from '../config/config.service';\r\nimport { saveAs } from 'file-saver';\r\n\r\nimport { IncountyMileageTotals, IncountyUser } from '../../models/incounty';\r\n\r\n@Injectable()\r\nexport class DownloadService {\r\n downloadSubject: Subject = new Subject();\r\n\r\n constructor(private http: HttpClient, private configService: ConfigService) {}\r\n\r\n RetrieveDownload(httpMethod: HttpMethod, ServiceURL: string, Parameters: any, Format: DownloadFormat) {\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n ApplicationName: 'PURE',\r\n });\r\n\r\n let extension: string = '';\r\n\r\n switch (Format) {\r\n case DownloadFormat.PDF:\r\n headers = headers.set('Accept', 'application/pdf');\r\n extension = '.pdf';\r\n break;\r\n case DownloadFormat.Excel:\r\n headers = headers.set('Accept', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n extension = '.xlsx';\r\n break;\r\n case DownloadFormat.ZIP:\r\n headers = headers.set('Accept', 'application/zip');\r\n extension = '.zip';\r\n break;\r\n }\r\n\r\n let responseObs: Observable>;\r\n\r\n if (httpMethod == HttpMethod.GET) {\r\n // Process request as a GET method\r\n let queryString = Object.keys(Parameters)\r\n .reduce((prev: string[], cur: string) => {\r\n prev.push(`${encodeURIComponent(cur)}=${encodeURIComponent(Parameters[cur] || '')}`);\r\n\r\n return prev;\r\n }, [])\r\n .join('&');\r\n\r\n let url = this.configService.hostAddress + `${ServiceURL}?${queryString}`;\r\n\r\n responseObs = this.http.get(url, { headers: headers, observe: 'response', responseType: 'blob' });\r\n } else {\r\n // Process request as a POST method\r\n responseObs = this.http.post(this.configService.hostAddress + ServiceURL, Parameters, {\r\n headers: headers,\r\n observe: 'response',\r\n responseType: 'blob',\r\n });\r\n }\r\n\r\n // Process the response on the mapping/subscription\r\n return responseObs.pipe(\r\n map((resp) => {\r\n let blob = resp.body;\r\n\r\n let contentdistribution = resp.headers.get('content-disposition');\r\n let filename: string = 'Output' + extension;\r\n\r\n if (contentdistribution) {\r\n let matches = contentdistribution.match(/(?:filename=\"?(.*?)\"?;|filename=\"?(.*?)\"?$)/);\r\n if (matches && matches.length > 1) filename = matches[1];\r\n }\r\n\r\n if (blob) {\r\n saveAs(blob, filename);\r\n }\r\n\r\n return resp;\r\n }),\r\n catchError((error) => {\r\n let body = error.body || error.error || error;\r\n\r\n if (!(body instanceof Blob)) {\r\n return error;\r\n }\r\n\r\n let reader = new FileReader();\r\n let loadend = fromEvent(reader, 'loadend');\r\n\r\n reader.readAsText(body);\r\n\r\n return loadend.pipe(\r\n tap(() => {\r\n throw new Error((reader.result as string).replace(/(^\"|\"$)/g, ''));\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n RunReport(\r\n AuthToken: string,\r\n CurrentRole: string,\r\n ReportID: number,\r\n ReportType: DownloadFormat,\r\n ReportFileName: string,\r\n ApplicationSchoolYear: string,\r\n UseDateRestriction: boolean,\r\n DateBegin: Date,\r\n DateEnd: Date,\r\n DateRestrictionType: number,\r\n AsDistrictOffice: boolean,\r\n ExitSurveyID: number,\r\n IncountyMileageTotals: IncountyMileageTotals[],\r\n ReportSAPID: string,\r\n OptInStatus: boolean\r\n ) {\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n ApplicationName: 'StaffPortalAdmin',\r\n });\r\n\r\n let extension: string = '';\r\n\r\n switch (ReportType) {\r\n case DownloadFormat.PDF: // PDF\r\n headers = headers.set('Accept', 'application/pdf');\r\n extension = '.pdf';\r\n break;\r\n case DownloadFormat.Excel: // Excel\r\n headers = headers.set('Accept', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n extension = '.xlsx';\r\n break;\r\n case DownloadFormat.ZIP:\r\n headers = headers.set('Accept', 'application/zip');\r\n extension = '.zip';\r\n break;\r\n }\r\n\r\n let responseObs: Observable>;\r\n\r\n responseObs = this.http.post(\r\n this.configService.hostAddress + 'Api/Services/Report/RunReport',\r\n {\r\n AuthToken: AuthToken,\r\n CurrentRole: CurrentRole,\r\n ReportID: ReportID,\r\n ApplicationSchoolYear: ApplicationSchoolYear,\r\n UseDateRestriction: UseDateRestriction,\r\n DateBegin: DateBegin != null ? DateBegin.toJSON() : null,\r\n DateEnd: DateEnd != null ? DateEnd.toJSON() : null,\r\n DateRestrictionType: DateRestrictionType,\r\n AsDistrictOffice: AsDistrictOffice,\r\n Attachment: true,\r\n ExitSurveyID: ExitSurveyID,\r\n IncountyMileageTotals: IncountyMileageTotals,\r\n ReportSAPID: ReportSAPID,\r\n W2OptInStatus: OptInStatus,\r\n },\r\n { headers: headers, observe: 'response', responseType: 'blob' }\r\n );\r\n\r\n // Process the response on the mapping/subscription\r\n return responseObs.pipe(\r\n map((resp) => {\r\n let blob = resp.body;\r\n\r\n let contentdistribution = resp.headers.get('content-disposition');\r\n let filename: string = 'Output' + extension;\r\n\r\n if (contentdistribution) {\r\n let matches = contentdistribution.match(/(?:filename=\"?(.*?)\"?;|filename=\"?(.*?)\"?$)/);\r\n if (matches && matches.length > 1) filename = matches[1];\r\n }\r\n\r\n if (blob) {\r\n saveAs(blob, filename);\r\n }\r\n\r\n return resp;\r\n }),\r\n catchError((error) => {\r\n let body = error.body || error.error || error;\r\n\r\n if (!(body instanceof Blob)) {\r\n return error;\r\n }\r\n\r\n let reader = new FileReader();\r\n let loadend = fromEvent(reader, 'loadend');\r\n\r\n reader.readAsText(body);\r\n\r\n return loadend.pipe(\r\n tap(() => {\r\n throw new Error((reader.result as string).replace(/(^\"|\"$)/g, ''));\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n DownloadCertUpload(AuthToken: string, CertRenewalUploadID: number) {\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n ApplicationName: 'AthleticApproval',\r\n Accept: 'application/pdf',\r\n });\r\n\r\n //let opts = new RequestOptions();\r\n //opts.headers = headers;\r\n\r\n //let options = new RequestOptions({\r\n // headers: headers,\r\n // responseType: ResponseContentType.Blob\r\n //});\r\n\r\n let responseObs: Observable>;\r\n\r\n responseObs = this.http.post(\r\n this.configService.hostAddress + 'Api/Services/Certification/CertRenewalUploadGet',\r\n {\r\n AuthToken: AuthToken,\r\n CertRenewalUploadID: CertRenewalUploadID,\r\n Attachment: true,\r\n },\r\n { headers: headers, observe: 'response', responseType: 'blob' }\r\n );\r\n\r\n return responseObs.pipe(\r\n map((resp) => {\r\n let blob = resp.body;\r\n\r\n let contentdistribution = resp.headers.get('content-disposition');\r\n let filename: string = 'Output' + '.pdf';\r\n\r\n if (contentdistribution) {\r\n let matches = contentdistribution.match(/(?:filename=\"?(.*?)\"?;|filename=\"?(.*?)\"?$)/);\r\n if (matches && matches.length > 1) filename = matches[1];\r\n }\r\n\r\n let now = new Date();\r\n let fname = 'CertMethodType' + CertRenewalUploadID + '.pdf';\r\n\r\n if (blob) {\r\n saveAs(blob, fname);\r\n }\r\n\r\n return resp;\r\n }),\r\n catchError((error) => {\r\n let body = error.body || error.error || error;\r\n\r\n if (!(body instanceof Blob)) {\r\n return error;\r\n }\r\n\r\n let reader = new FileReader();\r\n let loadend = fromEvent(reader, 'loadend');\r\n\r\n reader.readAsText(body);\r\n\r\n return loadend.pipe(\r\n tap(() => {\r\n throw new Error((reader.result as string).replace(/(^\"|\"$)/g, ''));\r\n })\r\n );\r\n })\r\n );\r\n\r\n //return this.http.post(this.configService.hostAddress + 'Api/Services/Certification/CertRenewalUploadGet', {\r\n // //AuthToken: AuthToken,\r\n // //StudentID: StudentID,\r\n // //Attachment: true\r\n //}, { headers: headers, observe: 'response', responseType: 'blob' })\r\n // .map(resp => {\r\n // //let blob: Blob = resp.body();\r\n // let blob = resp.body;\r\n\r\n // FileSaver.saveAs(blob, 'CertificationUpload.pdf');\r\n\r\n // return resp;\r\n // }).catch(error => {\r\n // let body = error.json();\r\n\r\n // if (!(body instanceof Blob)) {\r\n // return error;\r\n // }\r\n\r\n // let reader = new FileReader();\r\n // let loadend = Observable.fromEvent(reader, 'loadend');\r\n\r\n // reader.readAsText(body);\r\n\r\n // return loadend.do(() => {\r\n // throw new Error(reader.result.replace(/(^\"|\"$)/g, ''));\r\n // });\r\n // });\r\n }\r\n}\r\n\r\nexport enum DownloadFormat {\r\n PDF = 0,\r\n Excel = 1,\r\n ZIP = 2,\r\n}\r\n\r\nexport enum HttpMethod {\r\n GET = 0,\r\n POST = 1,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { DialogService } from '../dialogs/dialogs.service';\r\nimport { SplashService } from '../splash/splash.service';\r\n\r\n@Injectable()\r\nexport class ErrorService {\r\n constructor(private authService: AuthService, private dialogService: DialogService, private splashService: SplashService) {}\r\n\r\n HandleServiceError(error: any) {\r\n let status: number | null = null;\r\n let msg = '';\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n status = error.status;\r\n\r\n let body = error?.error ?? error;\r\n if (!!body?.errors && typeof body.errors === 'object') {\r\n // tslint:disable-next-line: no-any\r\n const errobj = body.errors as any;\r\n const errkeys = Object.keys(errobj);\r\n\r\n msg = errkeys\r\n .map((k) => {\r\n return errobj[k].toString();\r\n })\r\n .join('|');\r\n } else if (!!body?.error) {\r\n body = body.error;\r\n\r\n msg = body.ExceptionMessage || body.Message || body.message || body || 'An unknown error has occurred.';\r\n } else {\r\n msg = body.ExceptionMessage || body.Message || body.message || body || 'An unknown error has occurred.';\r\n }\r\n } else {\r\n if (!!error?.errors && typeof error.errors === 'object') {\r\n const errkeys = Object.keys(error.errors);\r\n\r\n msg = errkeys\r\n .map((k) => {\r\n return error.errors[k].toString();\r\n })\r\n .join('|');\r\n } else {\r\n let errorPacket = error?.message ?? error;\r\n if (typeof errorPacket !== 'object' && errorPacket != null && errorPacket !== '') {\r\n try {\r\n errorPacket = JSON.parse(errorPacket);\r\n } catch {\r\n errorPacket = errorPacket || 'An unknown error has occurred.';\r\n }\r\n }\r\n msg =\r\n errorPacket != null && errorPacket instanceof Object\r\n ? errorPacket.ExceptionMessage || errorPacket.Message || error\r\n : errorPacket || 'An unknown error has occurred.';\r\n }\r\n }\r\n\r\n if (status == 408) {\r\n // This is a Request Timeout response, indicating the user's session has expired.\r\n this.dialogService\r\n .OpenMessageBoxDialog({\r\n TitleText: 'Session Timed Out',\r\n MessageText: `Your current session to the PURE system has timed out and your login access has been closed. In order to continue using the PURE System you will need to login again to the system.`,\r\n })\r\n .subscribe((res) => {\r\n // Force an unconfirmed logout to clear user stored values and return to the login screen.\r\n this.authService.Logout(false, 2);\r\n });\r\n } else {\r\n // Something else, which should be snackbar displayed.\r\n if (msg.length > 300) {\r\n msg = msg.substr(0, 300) + '...';\r\n }\r\n\r\n this.splashService.CloseSplash();\r\n this.splashService.SnackbarError(msg, 8000);\r\n }\r\n }\r\n\r\n RetrieveServiceError(error: any) {\r\n let status: number | null = null;\r\n let msg: string | null = null;\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n status = error.status;\r\n\r\n const body = error?.error ?? error;\r\n msg =\r\n body.ExceptionMessage || body.Message || body || (typeof body === 'string' ? body : 'An unknown error has occurred.');\r\n } else {\r\n let errorPacket = error?.message ?? error;\r\n\r\n if (!errorPacket) {\r\n try {\r\n errorPacket = JSON.parse(errorPacket);\r\n } catch {\r\n errorPacket = errorPacket || 'An unknown error has occurred.';\r\n }\r\n }\r\n\r\n msg =\r\n errorPacket != null && errorPacket instanceof Object\r\n ? errorPacket.ExceptionMessage || errorPacket.Message || error\r\n : errorPacket || 'An unknown error has occurred.';\r\n }\r\n\r\n if (status == 408) {\r\n // This is a Request Timeout response, indicating the user's session has expired.\r\n msg = 'Your current session to the Staff Portal Admin System has timed out and is no longer valid.';\r\n }\r\n\r\n return msg;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class ErrorMessageService {\r\n constructor() {}\r\n\r\n // #region Retrieve Service Error Service Call\r\n\r\n RetrieveServiceError(error: any) {\r\n if (error instanceof HttpErrorResponse) {\r\n const body = error && error.error;\r\n const msg =\r\n body.ExceptionMessage || body.Message || body || (typeof body === 'string' ? body : 'An unknown error has occurred.');\r\n\r\n return {\r\n ErrorMessage: msg,\r\n ErrorObject: error,\r\n };\r\n } else {\r\n // Try to get a sensible message, then create a fake HttpErrorResponse object\r\n let errorPacket = error.message || error;\r\n\r\n if (errorPacket != null && errorPacket !== '') {\r\n errorPacket = JSON.parse(errorPacket);\r\n }\r\n\r\n const msg =\r\n errorPacket != null && errorPacket instanceof Object\r\n ? errorPacket.ExceptionMessage || errorPacket.Message || error\r\n : errorPacket || 'An unknown error has occurred.';\r\n\r\n const errObject = new HttpErrorResponse({\r\n error: error,\r\n status: 500, // General internal server error\r\n statusText: msg,\r\n });\r\n\r\n return {\r\n ErrorMessage: msg,\r\n ErrorObject: errObject,\r\n };\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Retrieve Service Error Message Service Call\r\n\r\n RetrieveServiceErrorMessage(error: any) {\r\n let status: number = null;\r\n let msg: string = null;\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n status = error.status;\r\n\r\n const body = error && error.error;\r\n msg =\r\n body.ExceptionMessage || body.Message || body || (typeof body === 'string' ? body : 'An unknown error has occurred.');\r\n } else {\r\n let errorPacket = error.message || error;\r\n if (errorPacket != null && errorPacket !== '') {\r\n errorPacket = JSON.parse(errorPacket);\r\n }\r\n msg =\r\n errorPacket != null && errorPacket instanceof Object\r\n ? errorPacket.ExceptionMessage || errorPacket.Message || error\r\n : errorPacket || 'An unknown error has occurred.';\r\n }\r\n\r\n // if (status === 408) {\r\n // // This is a Request Timeout response, indicating the user's session has expired.\r\n // msg = 'Your current session to the IRIS System has timed out and is no longer valid.';\r\n // }\r\n\r\n return msg;\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\n// #region Custom Classes\r\n\r\n// #region Error Info Class\r\n\r\nexport class ErrorMessageInfo {\r\n ErrorObject: HttpErrorResponse;\r\n ErrorMessage: string;\r\n}\r\n\r\n// #endregion\r\n\r\n// #endregion\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject , EMPTY as empty , Observable , of } from 'rxjs';\r\nimport { map , startWith , tap } from 'rxjs/operators';\r\n\r\nimport { SessionStorageService, SessionStorage } from 'ng2-webstorage';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { ErrorService } from '../error/error.service';\r\nimport { Session } from 'protractor';\r\n\r\nimport { ExitSurvey, ExitSurveySummary } from '../../models/exitsurvey';\r\n\r\n@Injectable()\r\nexport class ExitSurveyService {\r\n DevSiteSubject: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n // #endregion\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private storage: SessionStorageService,\r\n private errorService: ErrorService\r\n ) {}\r\n\r\n GetExitSurveyReport(AuthToken: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(this.configService.hostAddress + `Api/Services/ExitSurvey/GetExitSurveyReport?AuthToken=${AuthToken}`)\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetExitSurveySummary(AuthToken: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/ExitSurvey/GetExitSurveySummaryReport?AuthToken=${AuthToken}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject , EMPTY as empty , Observable , of } from 'rxjs';\r\nimport { map , startWith , tap } from 'rxjs/operators';\r\n\r\nimport { SessionStorageService, SessionStorage } from 'ng2-webstorage';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { ErrorService } from '../error/error.service';\r\nimport { Session } from 'protractor';\r\n\r\nimport { IncountyMileageTotals, IncountyUser } from '../../models/incounty';\r\n\r\nconst url = 'https://www.bing.com/api/maps/mapcontrol?callback=__onBingLoaded&branch=release';\r\n\r\n@Injectable()\r\nexport class InCountyService {\r\n DevSiteSubject: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n // #endregion\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private storage: SessionStorageService,\r\n private errorService: ErrorService\r\n ) {}\r\n\r\n GetInCountyMileage(AuthToken: string, SessionKey: string, monthYear: string, type: string, SAPID: string) {\r\n let self = this;\r\n let status = '';\r\n if (type === 'PreviouslyFinalized') {\r\n status = 'F';\r\n }\r\n if (type === 'OutOfPeriod') {\r\n status = 'N';\r\n }\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Incounty/GetInCountyMileage?AuthToken=${AuthToken}&SessionKey=${SessionKey}&status=${status}&monthYear=${monthYear}&type=${type}&SAPID=${SAPID}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n private static promise;\r\n\r\n public static loadBingMap() {\r\n // First time 'load' is called?\r\n if (!InCountyService.promise) {\r\n // Make promise to load\r\n InCountyService.promise = new Promise((resolve) => {\r\n // Set callback for when bing maps is loaded.\r\n window['__onBingLoaded'] = (ev) => {\r\n resolve('Bing Maps API loaded');\r\n };\r\n\r\n const node = document.createElement('script');\r\n node.src = url;\r\n node.type = 'text/javascript';\r\n node.async = true;\r\n node.defer = true;\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n });\r\n }\r\n\r\n // Always return promise. When 'load' is called many times, the promise is already resolved.\r\n return InCountyService.promise;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n//import * as moment from 'moment';\r\nimport { Observable , BehaviorSubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ConfigService } from '../config/config.service';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n\r\n constructor(private http: HttpClient, private configService: ConfigService) {\r\n\r\n }\r\n\r\n GetCurrentNotifications(AuthToken: string, ServerPath: string) : Observable {\r\n return this.http.get(this.configService.hostAddress + `Api/Services/Notification/GetCurrentNotifications?AuthToken=${AuthToken || ''}&ServerPath=${ServerPath}`)\r\n .pipe(\r\n map(res => {\r\n let body = res;\r\n\r\n if (body && body.length) {\r\n for (let i = 0, j = body.length; i < j; ++i) {\r\n let entry = body[i];\r\n\r\n //entry.NotificationDate = moment(entry.NotificationDate, moment.ISO_8601, true);\r\n\r\n //if (entry.Details && entry.Details.length) {\r\n // for (let ei = 0, ej = entry.Details.length; ei < ej; ++ei) {\r\n // entry.Details[ei].NotificationDate = moment(entry.Details[ei].NotificationDate, moment.ISO_8601, true);\r\n // }\r\n //}\r\n }\r\n }\r\n return body;\r\n }));\r\n }\r\n \r\n}\r\n\r\nexport class NotificationEntry {\r\n NotificationText: NotificationTextEntry[];\r\n Priority: number;\r\n NotificationDate?: Date;\r\n NotificationTarget: number;\r\n NavigationRoute?: string;\r\n NavigationRouteParameters?: any[];\r\n Details?: NotificationEntry[];\r\n}\r\n\r\nexport class NotificationTextEntry {\r\n Text: string;\r\n IsHighlighted: boolean;\r\n IsBolded: boolean;\r\n Color: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject , EMPTY as empty , Observable , of } from 'rxjs';\r\nimport { map , startWith , tap } from 'rxjs/operators';\r\n\r\nimport { SessionStorageService, SessionStorage } from 'ng2-webstorage';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { ErrorService } from '../error/error.service';\r\n\r\nimport {\r\n PayrollElectionStatInfo,\r\n SalaryGroupAccess,\r\n PayrollWindowExclusionInfo,\r\n WindowInfo,\r\n WorkdayCalendarDateInfo,\r\n W2OptInInformation,\r\n} from '../../models/payroll';\r\n\r\n@Injectable()\r\nexport class PayrollService {\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private storage: SessionStorageService,\r\n private errorService: ErrorService\r\n ) {}\r\n\r\n // #region Add Payroll Election Window Exclusion\r\n\r\n AddPayrollElectionWindowExclusion(\r\n AuthToken: string,\r\n TargetSAPID: string,\r\n DateBegin: Date,\r\n DateEnd: Date,\r\n AllowMonthly: boolean,\r\n Rationale: string\r\n ) {\r\n return this.http\r\n .post(this.configService.hostAddress + `Api/Services/Payroll/UpsertSemiMonthlyExclusion`, {\r\n AuthToken: AuthToken || '',\r\n SemiMonthlyExclusionID: '',\r\n SAPID: TargetSAPID || '',\r\n DateBegin: DateBegin ? DateBegin.toJSON() : '',\r\n DateEnd: DateEnd ? DateEnd.toJSON() : '',\r\n AllowMonthly: AllowMonthly != null ? (AllowMonthly ? 'true' : 'false') : '',\r\n Rationale: Rationale || '',\r\n })\r\n .pipe(\r\n map((data) => {\r\n if (data && data.length) {\r\n data.forEach((d) => {\r\n d.DateBegin = d.DateBegin ? new Date(d.DateBegin) : null;\r\n d.DateEnd = d.DateEnd ? new Date(d.DateEnd) : null;\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Add Payroll Election Override\r\n\r\n AddPayrollElectionOverride(AuthToken: string, TargetSAPID: string, ElectionStatus: number, Rationale: string) {\r\n return this.http.post(this.configService.hostAddress + `Api/Services/Payroll/AddSemiMonthlyOverride`, {\r\n AuthToken: AuthToken || '',\r\n SAPID: TargetSAPID || '',\r\n ElectionStatus: ElectionStatus != null ? '' + ElectionStatus : '',\r\n Rationale: Rationale || '',\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n GetPayrollElectionStatistics() {\r\n const self = this;\r\n\r\n return self.http.get(\r\n this.configService.hostAddress + `Api/Services/Payroll/GetPayrollElectionStatistics`\r\n );\r\n }\r\n\r\n GetPayrollElectionWindow(AuthToken: string) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/Payroll/GetPayrollElectionWindow?AuthToken=${AuthToken || ''}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data) {\r\n data.DateBegin = data.DateBegin ? new Date(data.DateBegin) : null;\r\n data.DateEnd = data.DateEnd ? new Date(data.DateEnd) : null;\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n GetPayrollElectionWindowExclusions(AuthToken: string) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/Payroll/GetSemiMonthlyExclusions?AuthToken=${AuthToken || ''}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data && data.length) {\r\n data.forEach((d) => {\r\n d.DateBegin = d.DateBegin ? new Date(d.DateBegin) : null;\r\n d.DateEnd = d.DateEnd ? new Date(d.DateEnd) : null;\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n GetSalaryGroupAccess(AuthToken: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/Payroll/GetSalaryGroupAccess?AuthToken=${AuthToken}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n // #region Get W2 Deadline\r\n\r\n GetW2Deadline() {\r\n return this.http.get(this.configService.hostAddress + `Api/Services/Payroll/GetW2Deadline`).pipe(\r\n map((data) => {\r\n return data ? new Date(data) : null;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n // #region Get W2 Electronic Opt In\r\n\r\n GetW2ElectronicOptIn(AuthToken: string, TargetSAPID: string) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Payroll/GetW2ElectronicOptIn` +\r\n `?AuthToken=${AuthToken || ''}&TargetSAPID=${TargetSAPID || ''}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data && data.W2OptIns && data.W2OptIns.length) {\r\n data.W2OptIns.forEach((d) => {\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Get Workday Calendar\r\n\r\n GetWorkdayCalendar(AuthToken: string, TargetSAPID: string, Month: number, Year: number) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Payroll/WorkCalendarGet` +\r\n `?AuthToken=${AuthToken || ''}&TargetSAPID=${TargetSAPID || ''}` +\r\n `&Month=${Month != null ? '' + Month : ''}&Year=${Year != null ? '' + Year : ''}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data && data.length) {\r\n data.forEach((d) => {\r\n d.CalendarDate = d.CalendarDate ? new Date(d.CalendarDate) : null;\r\n\r\n d.LongText = (d.IsHoliday ? 'Off' : d.WorkdayText || '') + (d.IsPayDay ? '
Payday' : '');\r\n const longSplit = d.LongText.split(' ');\r\n d.ShortText =\r\n longSplit[0] + (longSplit[0] && longSplit[0] !== 'Off' ? ' hr' : '') + (d.IsPayDay ? '
Pay' : '');\r\n\r\n if (d.IsSummerExtended && ['0015', '5010', '5011'].includes(d.TPRCode)) {\r\n // For these, we use special text.\r\n switch (d.TPRCode) {\r\n case '0015':\r\n d.LongText = d.IsHoliday ? 'Off' : '8 hrs, 7 mins' + (d.IsPayDay ? '
Payday' : '');\r\n d.ShortText = d.IsHoliday ? 'Off' : '8h, 7m' + (d.IsPayDay ? '
Pay' : '');\r\n break;\r\n case '5010':\r\n d.LongText = d.IsHoliday ? 'Off' : '9 hrs, 23 mins' + (d.IsPayDay ? '
Payday' : '');\r\n d.ShortText = d.IsHoliday ? 'Off' : '9h, 23m' + (d.IsPayDay ? '
Pay' : '');\r\n break;\r\n case '5011':\r\n d.LongText = d.IsHoliday ? 'Off' : '9 hrs, 42 mins' + (d.IsPayDay ? '
Payday' : '');\r\n d.ShortText = d.IsHoliday ? 'Off' : '9h, 42m' + (d.IsPayDay ? '
Pay' : '');\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Remove Payroll Election Exclusion\r\n\r\n RemovePayrollElectionExclusion(AuthToken: string, SemiMonthlyExclusionID: number) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Payroll/RemoveSemiMonthlyExclusion` +\r\n `?AuthToken=${AuthToken || ''}&SemiMonthlyExclusionID=${\r\n SemiMonthlyExclusionID != null ? SemiMonthlyExclusionID : ''\r\n }`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data && data.length) {\r\n data.forEach((d) => {\r\n d.DateBegin = d.DateBegin ? new Date(d.DateBegin) : null;\r\n d.DateEnd = d.DateEnd ? new Date(d.DateEnd) : null;\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n UpdatePayrollElectionWindow(AuthToken: string, DateBegin: Date, DateEnd: Date, Activate: boolean) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Payroll/UpdatePayrollElectionWindow` +\r\n `?AuthToken=${AuthToken || ''}&DateBegin=${DateBegin != null ? DateBegin.toJSON() : ''}` +\r\n `&DateEnd=${DateEnd != null ? DateEnd.toJSON() : ''}` +\r\n `&Activate=${Activate === true ? 'true' : 'false'}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data) {\r\n data.DateBegin = data.DateBegin ? new Date(data.DateBegin) : null;\r\n data.DateEnd = data.DateEnd ? new Date(data.DateEnd) : null;\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n UpdateSalaryGroupAccess(AuthToken: string, PersonnelGroup: string, PersonnelSubGroup: string, Access: boolean) {\r\n return this.http\r\n .post(this.configService.hostAddress + 'Api/Services/Payroll/UpdateSalaryGroupAccess', {\r\n AuthToken: AuthToken || '',\r\n PersonnelGroup: PersonnelGroup || '',\r\n PersonnelSubGroup: PersonnelSubGroup || '',\r\n Access: Access || '',\r\n })\r\n .pipe(\r\n map((appData) => {\r\n return appData;\r\n })\r\n );\r\n }\r\n\r\n // #region Update Payroll Election Window Exclusion\r\n\r\n UpdatePayrollElectionWindowExclusion(\r\n AuthToken: string,\r\n SemiMonthlyExclusionID: number,\r\n TargetSAPID: string,\r\n DateBegin: Date,\r\n DateEnd: Date,\r\n AllowMonthly: boolean,\r\n Rationale: string\r\n ) {\r\n return this.http\r\n .post(this.configService.hostAddress + `Api/Services/Payroll/UpsertSemiMonthlyExclusion`, {\r\n AuthToken: AuthToken || '',\r\n SemiMonthlyExclusionID: SemiMonthlyExclusionID != null ? SemiMonthlyExclusionID : '',\r\n SAPID: TargetSAPID || '',\r\n DateBegin: DateBegin ? DateBegin.toJSON() : '',\r\n DateEnd: DateEnd ? DateEnd.toJSON() : '',\r\n AllowMonthly: AllowMonthly != null ? (AllowMonthly ? 'true' : 'false') : '',\r\n Rationale: Rationale || '',\r\n })\r\n .pipe(\r\n map((data) => {\r\n if (data && data.length) {\r\n data.forEach((d) => {\r\n d.DateBegin = d.DateBegin ? new Date(d.DateBegin) : null;\r\n d.DateEnd = d.DateEnd ? new Date(d.DateEnd) : null;\r\n d.DateUpdated = d.DateUpdated ? new Date(d.DateUpdated) : null;\r\n });\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n // #endregion\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'splash-dialog-component',\r\n template: `\r\n

{{ title }}

\r\n
{{ message }}
\r\n \r\n `,\r\n})\r\nexport class SplashDialogComponent {\r\n title: string;\r\n message: string;\r\n showProgress: boolean;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private data: _SplashOptions) {\r\n this.title = data.TitleText;\r\n this.message = data.MessageText;\r\n this.showProgress = data.ShowProgressBar;\r\n }\r\n}\r\n\r\nexport class _SplashOptions {\r\n TitleText?: string;\r\n MessageText?: string;\r\n ShowProgressBar?: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { SplashDialogComponent, _SplashOptions } from './splash.component';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\n\r\nexport { _SplashOptions as SplashOptions };\r\n\r\n@Injectable()\r\nexport class SplashService {\r\n private openHandle: MatDialogRef;\r\n\r\n constructor(private dialog: MatDialog, private snackbar: MatSnackBar) {}\r\n\r\n DisplaySplash = (options?: _SplashOptions): Observable => {\r\n this.openHandle = this.dialog.open(SplashDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n TitleText: 'Please wait',\r\n MessageText: 'Loading...',\r\n ShowProgressBar: true,\r\n ...options,\r\n },\r\n });\r\n\r\n return this.openHandle.afterOpened();\r\n };\r\n\r\n CloseSplash = (allSplash?: boolean) => {\r\n if (this.openHandle) {\r\n this.openHandle.close();\r\n this.openHandle = null;\r\n } else if (allSplash === true) {\r\n this.dialog.closeAll();\r\n this.openHandle = null;\r\n }\r\n };\r\n\r\n SnackbarAlert = (message: string, duration?: number) => {\r\n let config: MatSnackBarConfig = {\r\n panelClass: ['alert'],\r\n };\r\n\r\n config.duration = duration != null ? duration : 3500;\r\n\r\n return this.snackbar.open(message, null, config);\r\n };\r\n\r\n SnackbarSuccess = (message: string, duration?: number) => {\r\n let config: MatSnackBarConfig = {\r\n panelClass: ['success'],\r\n };\r\n\r\n config.duration = duration != null ? duration : 3500;\r\n\r\n return this.snackbar.open(message, null, config);\r\n };\r\n\r\n SnackbarError = (message: string, duration?: number, hold?: boolean) => {\r\n let config: MatSnackBarConfig = {\r\n panelClass: ['error'],\r\n };\r\n\r\n let action: string = null;\r\n\r\n config.duration = duration != null ? duration : 3500;\r\n\r\n if (hold === true) {\r\n action = 'OK';\r\n config.duration = 5 * 60 * 1000; // 5 minutes?\r\n }\r\n\r\n return this.snackbar.open(message, action, config);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject , EMPTY as empty , Observable , of } from 'rxjs';\r\nimport { map , startWith , tap } from 'rxjs/operators';\r\n\r\nimport { SessionStorageService, SessionStorage } from 'ng2-webstorage';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { ErrorService } from '../error/error.service';\r\nimport { Session } from 'protractor';\r\n\r\nimport {\r\n SummerSchool,\r\n SummerApp,\r\n SummerCert,\r\n SummerSchoolSelected,\r\n SummerProcessing,\r\n SummerJourneyEval,\r\n SummerCourses,\r\n SummerAssignedContent,\r\n SummerAssignedProgram,\r\n AddSchoolToApplication,\r\n} from '../../models/summerschool';\r\nimport { WindowInfo } from 'models/payroll';\r\n\r\n@Injectable()\r\nexport class SummerAppService {\r\n _GetSummerSchools: SummerSchool[];\r\n @SessionStorage() _GetSummerApps: SummerApp[];\r\n _GetSummerCert: SummerCert[];\r\n _GetSummerSchoolsSelected: SummerSchoolSelected[];\r\n _GetSummerJourneyEval: SummerJourneyEval;\r\n _GetSummerCourses: SummerCourses[];\r\n _GetSummerAssignedContent: SummerAssignedContent[];\r\n _GetSummerAssignedProgram: SummerAssignedProgram[];\r\n @SessionStorage() _AllSchoolsYear: string;\r\n @SessionStorage() _AvailableApplicationYears: string[];\r\n @SessionStorage() _CurrentApplicationSchoolYear: string;\r\n @SessionStorage() _CurrentSchoolYear: string;\r\n\r\n DevSiteSubject: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n // #region Getters and Setters\r\n\r\n public get GetSummerSchools(): SummerSchool[] {\r\n return this._GetSummerSchools;\r\n }\r\n\r\n // #endregion\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private storage: SessionStorageService,\r\n private errorService: ErrorService\r\n ) {}\r\n\r\n GetAllSchoolsForEditing(AuthToken: string, SchoolYear?: string) {\r\n let self = this;\r\n\r\n return this.http.get(\r\n this.configService.hostAddress +\r\n `Api/Services/SummerSchool/GetSummerSchoolsForEditing?Authtoken=${AuthToken || ''}&summerYear=${SchoolYear || ''}`\r\n );\r\n }\r\n\r\n GetSummerSchoolWindow() {\r\n return this.http.get(this.configService.hostAddress + `Api/Services/SummerSchool/GetSummerSchoolWindow`);\r\n }\r\n\r\n GetAllSchoolYears() {\r\n return this.http.get(this.configService.hostAddress + `Api/Services/SummerSchool/GetAllSchoolYears`);\r\n }\r\n\r\n GetSummerApps(AuthToken: string, SchoolYear?: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/App/GetSummerApplications?Authtoken=${AuthToken || ''}&SchoolYear=${SchoolYear || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerApps = res || [];\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetSummerCerts(AuthToken: string, SAPID?: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/App/GetSummerCertification?Authtoken=${AuthToken || ''}&SAPID=${SAPID || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerCert = res || [];\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetSummerJourneyEval(AuthToken: string, employeeSAPID?: string, schoolYear?: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/App/GetSummerJourneyEval?Authtoken=${AuthToken || ''}&employeeSAPID=${\r\n employeeSAPID || ''\r\n }&schoolYear=${schoolYear || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerJourneyEval = res;\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n UpdateSummerApplicationWindow(AuthToken: string, DateBegin: Date, DateEnd: Date, Activate: boolean) {\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/SummerSchool/UpdateSummerApplicationWindow` +\r\n `?AuthToken=${AuthToken || ''}&DateBegin=${DateBegin != null ? DateBegin.toJSON() : ''}` +\r\n `&DateEnd=${DateEnd != null ? DateEnd.toJSON() : ''}` +\r\n `&Activate=${Activate === true ? 'true' : 'false'}`\r\n )\r\n .pipe(\r\n map((data) => {\r\n if (data) {\r\n data.DateBegin = data.DateBegin ? new Date(data.DateBegin) : null;\r\n data.DateEnd = data.DateEnd ? new Date(data.DateEnd) : null;\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n GetSummerAssignedContent(AuthToken: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/App/GetSummerAssignedContent?Authtoken=${AuthToken || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerAssignedContent = res || [];\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetSummerAssignedProgram(AuthToken: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/App/GetSummerAssignedProgram?Authtoken=${AuthToken || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerAssignedProgram = res || [];\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetSummerCourses(AuthToken: string, SAPID?: string) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/App/GetSummerCourses?Authtoken=${AuthToken || ''}&SAPID=${SAPID || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerCourses = res || [];\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetSummerSchoolsSelected(AuthToken: string, SummerApplicationID?: number) {\r\n let self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/App/GetSummerSchoolsSelected?Authtoken=${AuthToken || ''}&SummerApplicationID=${\r\n SummerApplicationID || ''\r\n }`\r\n )\r\n .pipe(\r\n map((res) => {\r\n self._GetSummerSchoolsSelected = res || [];\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetSummerSchoolYear() {\r\n return this.http.get(this.configService.hostAddress + `Api/Services/SummerSchool/GetSummerSchoolUpcomingYear`);\r\n }\r\n\r\n // #region Update Schools\r\n\r\n UpdateSchools(AuthToken: string, SchoolYear: string, schools: SummerSchool[]): Observable {\r\n return this.http.post(this.configService.hostAddress + `Api/Services/SummerSchool/UpdateSchools`, {\r\n AuthToken: AuthToken || '',\r\n SchoolYear: SchoolYear || '',\r\n schools: schools || [],\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n UpdateSummerSchool(AuthToken: string, CurrentRole: string, school: SummerSchool) {\r\n return this.http\r\n .post(this.configService.hostAddress + 'Api/Services/App/UpdateSummerSchool', {\r\n AuthToken: AuthToken || '',\r\n CurrentRole: CurrentRole || '',\r\n SummerSchool: school || '',\r\n })\r\n .pipe(\r\n map((appData) => {\r\n return appData;\r\n })\r\n );\r\n }\r\n\r\n ProcessSummerApplication(AuthToken: string, CurrentRole: string, processing: SummerProcessing) {\r\n return this.http\r\n .post(this.configService.hostAddress + 'Api/Services/App/ProcessSummerApplication', {\r\n AuthToken: AuthToken || '',\r\n CurrentRole: CurrentRole || '',\r\n SummerApplicationID: processing.SummerApplicationID || '',\r\n ReceivedFrom: processing.ReceivedFrom || '',\r\n ReceivedDate: processing.ReceivedDate || '',\r\n AssignedSite: processing.AssignedSite || '',\r\n DistrictNotes: processing.DistrictNotes || '',\r\n AssignedContent: processing.AssignedContent || '',\r\n AssignedProgram: processing.AssignedProgram || '',\r\n })\r\n .pipe(\r\n map((appData) => {\r\n return appData;\r\n })\r\n );\r\n }\r\n\r\n AddSummerSchoolToApplication(AuthToken: string, CurrentRole: string, processing: AddSchoolToApplication) {\r\n return this.http\r\n .post(this.configService.hostAddress + 'Api/Services/App/AddSummerSchoolToApplication', {\r\n AuthToken: AuthToken || '',\r\n SummerApplicationID: processing.AddSchoolSummerApplicationID || '',\r\n SummerSchoolsID: processing.SummerSchoolsID || '',\r\n AppliedType: processing.AppliedType || '',\r\n })\r\n .pipe(\r\n map((appData) => {\r\n return appData;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, EMPTY as empty, Observable, of } from 'rxjs';\r\nimport { map, startWith, tap } from 'rxjs/operators';\r\n\r\nimport { SessionStorageService, SessionStorage } from 'ng2-webstorage';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { ErrorService } from '../error/error.service';\r\n\r\nimport { TranscriptReportInfo, EmployeeTranscriptInfo, RemoveTranscriptResult } from '../../models/transcripts';\r\n\r\n@Injectable()\r\nexport class TranscriptsService {\r\n constructor(\r\n private http: HttpClient,\r\n private configService: ConfigService,\r\n private storage: SessionStorageService,\r\n private errorService: ErrorService\r\n ) {}\r\n\r\n GetEmployeeTranscriptsInfo(AuthToken: string, SAPID: string) {\r\n const self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Transcripts/GetEmployeeTranscriptsInfo?AuthToken=${AuthToken || ''}&SAPID=${SAPID || ''}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n if (res && res.Transcripts && res.Transcripts.length) {\r\n res.Transcripts.forEach((r) => {\r\n r.DateUploaded = r.DateUploaded ? new Date(r.DateUploaded) : null;\r\n });\r\n }\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetRecentUploadedTranscripts(AuthToken: string) {\r\n const self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress + `Api/Services/Transcripts/GetRecentUploadedTranscripts?AuthToken=${AuthToken}`\r\n )\r\n .pipe(\r\n map((res) => {\r\n if (res && res.length) {\r\n res.forEach((r) => {\r\n r.DateUploaded = r.DateUploaded ? new Date(r.DateUploaded) : null;\r\n });\r\n }\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n RemoveTranscript(AuthToken: string, UploadID: number) {\r\n const self = this;\r\n\r\n return this.http\r\n .get(\r\n this.configService.hostAddress +\r\n `Api/Services/Transcripts/RemoveTranscript?AuthToken=${AuthToken || ''}&UploadID=${\r\n UploadID != null ? UploadID : ''\r\n }`\r\n )\r\n .pipe(\r\n map((res) => {\r\n if (res?.EmployeeTranscriptsInfo) {\r\n res.EmployeeTranscriptsInfo?.Transcripts?.forEach((t) => {\r\n t.DateUploaded = t.DateUploaded ? new Date(t.DateUploaded) : null;\r\n });\r\n }\r\n\r\n res?.MostRecentTranscripts?.forEach((t) => {\r\n t.DateUploaded = t.DateUploaded ? new Date(t.DateUploaded) : null;\r\n });\r\n\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SessionStorage, SessionStorageService } from 'ng2-webstorage';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport class UserInfo {\r\n AccountName: string;\r\n AuthToken: string;\r\n UserID: number;\r\n FirstName: string;\r\n LastName: string;\r\n SAPID: string;\r\n Email: string;\r\n PositionNo: string;\r\n Roles: UserRoles;\r\n CurrentRole: string;\r\n Impersonation: boolean;\r\n IsMultiRole: boolean;\r\n ImpersonatorPositionNo: string;\r\n ImpersonatorSAPID: string;\r\n}\r\n\r\nexport class UserRoles {\r\n IsCOVIDExposure: boolean;\r\n IsCOVIDChildCare: boolean;\r\n IsCOVIDAltWork: boolean;\r\n IsCOVIDWindow: boolean;\r\n IsDeveloper: boolean;\r\n IsMultiRole: boolean;\r\n IsSummerApp: boolean;\r\n IsCoachApp: boolean;\r\n IsIncounty: boolean;\r\n IsExitSurvey: boolean;\r\n IsCertification: boolean;\r\n IsPayroll: boolean;\r\n IsTranscripts: boolean;\r\n IsWorkdayCalendar: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class UserService {\r\n @SessionStorage() private _User: UserInfo;\r\n\r\n UserSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n get User() {\r\n return this._User;\r\n }\r\n\r\n set User(_ui: UserInfo) {\r\n this._User = _ui;\r\n this.UserSubject.next(_ui);\r\n }\r\n\r\n constructor(private storage: SessionStorageService, private router: Router, private sessionService: SessionStorageService) {\r\n this.UserSubject.next(this._User);\r\n }\r\n\r\n ClearUser() {\r\n this.User = null;\r\n this.sessionService.clear('_User');\r\n }\r\n\r\n SetUser = (user: UserInfo) => {\r\n this.User = user;\r\n };\r\n\r\n SetUserCurrentRole(role: string) {\r\n if (this.User.CurrentRole != null && role == this.User.CurrentRole) return;\r\n\r\n // To trigger proper session storage, we need to create a new object reference, rather than just updating our existing User object.\r\n let newUser: UserInfo = JSON.parse(JSON.stringify(this.User));\r\n\r\n let homeroute = '/home';\r\n\r\n // Update the current role field.\r\n newUser.CurrentRole = role;\r\n\r\n // Now, persist it to session storage and then broadcast it for listeners.\r\n this.User = newUser;\r\n\r\n // Set default route for current role\r\n if (role == 'Developer') homeroute = '/home';\r\n if (role === 'COVID19Exposure' || role === 'COVID19ChildCare' || role === 'COVID19AltWork') homeroute = '/covid19';\r\n if (role == 'SummerApp') homeroute = '/summerapp';\r\n if (role == 'Incounty') homeroute = '/incounty';\r\n if (role == 'ExitSurvey') homeroute = '/exitsurvey';\r\n if (role == 'Certification') homeroute = '/certification';\r\n if (role == 'Payroll') homeroute = '/payroll';\r\n if (role === 'Transcripts') homeroute = '/transcripts';\r\n if (role === 'WorkdayCalendar') homeroute = '/workdaycalendar';\r\n\r\n // Go to the home screen for this role.\r\n this.router.navigate([homeroute]);\r\n //window.location.reload();\r\n }\r\n\r\n UpdateAuthToken(AuthToken: any) {\r\n // If the authtoken has changed, update the user record.\r\n if (AuthToken != this.User.AuthToken) {\r\n // To trigger proper session storage, we need to create a new object reference, rather than just updating our existing User object.\r\n let newUser: UserInfo = { ...this.User };\r\n\r\n // Update the AuthToken field\r\n newUser.AuthToken = AuthToken;\r\n\r\n // Now, persist it to session storage and then broadcast it for listeners\r\n this.User = newUser;\r\n }\r\n }\r\n}\r\n","export const VERSION_NUMBER: string = '1.100';\r\nexport const BUILD_TIME: string = 'BUILD_TIME_VALUE';\r\n","import { FormControl } from '@angular/forms';\r\n\r\nimport { isDate, isValid } from 'date-fns';\r\n\r\nexport function validateDate(c: FormControl) {\r\n\r\n if (c.value == null || c.value == '') return null; // Empty or null is considered valid. It's assumed if a value is required, that a required validator is used.\r\n\r\n let dateval = c.value;\r\n\r\n if (!isDate(dateval)) dateval = new Date(dateval);\r\n\r\n let valid = isValid(dateval);\r\n\r\n // If the value of the control tests, there is no error (return null).\r\n return (valid === true ? null : {\r\n validateDate: {\r\n valid: false\r\n }\r\n });\r\n}"]}
\r\n
\r\n \r\n
\r\n Login\r\n \r\n \r\n person\r\n \r\n \r\n \r\n lock_outline\r\n \r\n \r\n \r\n account_circle\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n