{"version":3,"sources":["./src/app/decorators/index.ts","./src/app/components/contact/contact.component.html","./src/app/components/user-details/user-details.component.html","./src/app/components/dashboard/filter-viewer/filter-viewer.component.ts","./src/app/view-models/user-role-view-model.ts","./src/app/components/dashboard/dashboard.component.html","./src/app/dialogs/confirm.dialog.html","./src/app/components/user-manager/user-manager.component.html","./src/app/view-models/filters/idw-filter-view-model.ts","./src/app/view-models/filters/review-document-filter-view-model.ts","./src/app/components/header/header.component.ts","./src/app/view-models/document-file-view-model.ts","./src/app/services/role.service.ts","./src/app/components/user-chooser/user-chooser.component.html","./src/app/components/review/review.component.ts","./src/app/dialogs/confirm.dialog.ts","./src/app/view-models/document-view-model.ts","./src/app/components/add-correspondence/validators/before-tomorrow.validator.ts","./src/app/view-models/filters/base-filter-view-model.ts","./src/app/services/error.service.ts","./src/app/view-models/filters/correspondence-filter-view-model.ts","./src/environments/environment.ts","./src/app/components/help/help.component.ts","./src/app/view-models/filters/index.ts","./src/app/components/download/download.component.html","./src/app/components/review/review.component.html","./src/app/view-models/review-view-model.ts","./src/app/components/contact-details/contact-details.component.ts","./src/app/components/contact/contact.component.ts","./src/app/decorators/endpoint.decorator.ts","./src/app/view-models/filters/operator.ts","./src/app/components/download/download.component.ts","./src/app/dialogs/index.ts","./src/app/view-models/review-comment-view-model.ts","./src/app/view-models/correspondence-view-model.ts","./src/app/components/filtered-dashboard/filtered-dashboard.component.html","./src/app/components/dashboard/dashboard.component.ts","./src/app/view-models/correspondence-input-model.ts","./src/app/components/help/help.component.html","./src/app/components/add-correspondence/validators/index.ts","./src/app/components/manage-contacts/manage-contacts.component.ts","./src/app/dialogs/download.dialog.html","./src/app/components/dashboard/filter.dialog.html","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/view-models/filters/corr-count-filter-view-model.ts","./src/app/app.component.ts","./src/app/components/user-details/user-details.component.ts","./src/app/app.config.tokens.ts","./src/app/view-models/filters/correspondence-subfilter-view-model.ts","./src/app/components/dashboard/filter.dialog.ts","./src/app/guards/auth.guard.ts","./src/app/components/login/login.component.ts","./src/app/components/add-review/add-review.component.ts","./src/app/components/contact-details/contact-details.component.html","./src/app/view-models/category-view-model.ts","./src/app/components/dashboard/filter-viewer/filter-viewer.component.html","./src/app/components/header/header.component.html","./src/app/view-models/requestor-view-model.ts","./src/app/components/filtered-dashboard/filtered-dashboard.component.ts","./src/app/app.module.ts","./src/app/view-models/base-view-model.ts","./src/app/components/add-correspondence/add-correspondence.component.html","./src/app/view-models/correspondence-category-view-model.ts","./src/app/services/community-auth.service.ts","./src/app/view-models/requestor-correspondence-view-model.ts","./src/app/static-data/index.ts","./src/app/components/add-correspondence/validators/after-today.validator.ts","./src/$_lazy_route_resource lazy namespace object","./src/app/components/add-document/add-document.component.html","./src/app/components/correspondence/correspondence.component.ts","./src/app/view-models/correspondence-document-view-model.ts","./src/app/guards/role.guard.ts","./src/app/components/login/login.component.html","./src/app/view-models/role-view-model.ts","./src/app/view-models/idw-view-model.ts","./src/app/components/add-user/add-user.component.html","./src/app/services/log.service.ts","./src/app/view-models/index.ts","./src/app/services/progress.service.ts","./src/app/directives/secured.directive.ts","./src/app/services/corr-filter.service.ts","./src/app/pipes/pretty-size.pipe.ts","./src/app/components/add-correspondence/add-correspondence.component.ts","./src/app/services/auth.service.ts","./src/app/components/add-document/add-document.component.ts","./src/app/services/mapper.service.ts","./src/app/view-models/filters/requestor-filter-view-model.ts","./src/app/services/index.ts","./src/app/view-models/filters/review-filter-view-model.ts","./src/app/view-models/review-document-view-model.ts","./src/app/components/manage-settings/manage-settings.component.ts","./src/app/customizations-of-internals/progress-interceptor.ts","./src/app/components/add-review/add-review.component.html","./src/app/view-models/user-view-model.ts","./src/app/components/manage-contacts/manage-contacts.component.html","./src/app/static-data/received-through.ts","./src/app/static-data/states.ts","./src/app/components/user-chooser/user-chooser.component.ts","./src/app/components/user-manager/user-manager.component.ts","./src/app/view-models/corr-count-view-model.ts","./src/app/static-data/priorities.ts","./src/app/services/scroll.service.ts","./src/app/view-models/filters/correspondence-document-filter-view-model.ts","./src/app/components/correspondence/correspondence.component.html","./src/app/view-models/contact-detail-view-model.ts","./src/app/components/add-user/add-user.component.ts","./src/app/decorators/mappable.decorator.ts","./src/app/services/repository.service.ts","./src/app/app.component.html","./src/app/components/manage-settings/manage-settings.component.html","./src/main.ts","./src/app/dialogs/download.dialog.ts","./src/app/view-models/filters/user-filter-view-model.ts"],"names":[],"mappings":"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BAAU,GACzE,mlBAAwC,81BAAU,GAKpD,s6EAA2C,IACzC,w3FAAkH,IAUpH,o8EAA2C,IACzC,o6FAAwG,IAU1G,k9EAA2C,IACzC,k8FAAyG,IAU3G,y+EAA2C,IACzC,k8FAAwG,IAU1G,y+EAA2C,IACzC,k8FAAkG,IAUpG,y+EAA2C,IACzC,0oDAAqF,IAKvF,46CAA4F,IAC5F,y+EAA2C,IACvB,yDAAoD,GAApE,y8CAAgB,WAAoD,EAApE,iMAA0H,IAKhI,oWAA+E,GAC/E,oWAAuD;;;;;;;;;;;;;;;ACrF/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;;;;;;;;;;;;;;;;;;;ACnSkD;AACa;AAEzB;AACM;AAC0B;AAE/D,MAAM,wBAAyB,SAAQ,2EAAmB;IAAjE;;QAEW,YAAO,GAAoC,EAAE,CAAC;IAsBzD,CAAC;IApBU,eAAe;QAClB,IAAI,MAAM,GAAG,IAAI,+DAAU,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBACrC,aAAa;gBACb,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,GAAG,kFAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,kDAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChF,SAAS;aACZ;YAED,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,CAAC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","file":"main-es2015.js","sourcesContent":["export * from './endpoint.decorator';\r\nexport * from './mappable.decorator';","\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You must provide either a valid alias, or a first and last name, or both.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
","
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n

{{ user && user.FullName }}

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

Email

\r\n

{{ user && user.Email }}

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

Role 0\">s

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

{{ urole && urole.Role && urole.Role.RoleName }}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ role.RoleName }}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { \r\n CorrespondenceFilterViewModel as CorFilter,\r\n CorrespondenceSubFilterViewModel as CorSubFilter,\r\n CorFilterType\r\n} from '../../../view-models/filters';\r\n\r\n@Component({\r\n selector: 'app-filter-viewer',\r\n templateUrl: './filter-viewer.component.html',\r\n styleUrls: ['./filter-viewer.component.css']\r\n})\r\nexport class FilterViewerComponent implements OnInit {\r\n @Input(\"filter\") filter: CorFilter;\r\n @Output() updated: EventEmitter = new EventEmitter();\r\n\r\n filterTypes: typeof CorFilterType = CorFilterType;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n removeFilter(f: CorSubFilter) {\r\n let i = this.filter.Filters.indexOf(f);\r\n if (i >= 0)\r\n this.filter.Filters.splice(i, 1);\r\n this.updated.emit(this.filter);\r\n }\r\n\r\n switchSorting() {\r\n this.filter.Ascending = !this.filter.Ascending;\r\n this.updated.emit(this.filter);\r\n }\r\n}\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\nimport { mappable } from '../decorators';\r\nimport { UserViewModel } from './user-view-model';\r\nimport { RoleViewModel } from './role-view-model';\r\n\r\n@endpoint(\"userrole\")\r\nexport class UserRoleViewModel extends BaseViewModel {\r\n public UserId: number = 0;\r\n public RoleId: number = 0;\r\n\r\n @mappable(\"UserViewModel\")\r\n public User: UserViewModel = null;\r\n\r\n @mappable(\"RoleViewModel\")\r\n public Role: RoleViewModel = null;\r\n}","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n

Filter

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

Sorry, you do not have access to the dashboard. Please consult an administrator of this system.

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

{{ corr.DateReceived | amDateFormat:'MMM DD' }}

\r\n
{{corr.Status || \"Status unavailable\"}}
\r\n
\r\n \r\n
\r\n
\r\n

{{ corr.RequestorName }}

\r\n

{{ corr.Title }}

\r\n

{{ corr.Summary?.substr(0, 105) }}{{ corr.Summary?.length > 105 ? \"...\" : \"\"}}

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

{{ title }}

\r\n\r\n

{{ message }}

\r\n
\r\n\r\n \r\n \r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n - All - \r\n \r\n \r\n {{ role.RoleName }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Users

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

{{ user.LastFirst }}

\r\n

Roles:  {{ user.RolesSummary }}

\r\n
\r\n
\r\n \r\n \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 { BaseFilterViewModel } from './base-filter-view-model';\r\n\r\nexport class IdwFilterViewModel extends BaseFilterViewModel {\r\n public Type: IdwFilterType = IdwFilterType.Keywords;\r\n public HawkId: string;\r\n}\r\n\r\nexport enum IdwFilterType {\r\n /**\r\n * Search using the Keywords property across all IDW fields (email, hawkId, etc).\r\n */\r\n Keywords = 0x1,\r\n\r\n /**\r\n * Search using the HawkId field, only.\r\n */\r\n HawkId = 0x2\r\n}","import { HttpParams } from '@angular/common/http';\r\nimport { BaseFilterViewModel } from './base-filter-view-model';\r\nimport { Operator } from './operator';\r\n\r\nexport class ReviewDocumentFilterViewModel extends BaseFilterViewModel {\r\n public Type: ReviewDocFilterType = ReviewDocFilterType.ByReviewId;\r\n public ReviewId: number = 0;\r\n\r\n public getAsHttpParams(): HttpParams {\r\n var params = super.getAsHttpParams();\r\n params = params.append('filter.Type', encodeURIComponent(`${this.Type}`));\r\n params = params.append('filter.ReviewId', encodeURIComponent(`${this.ReviewId}`));\r\n return params;\r\n }\r\n}\r\n\r\nexport enum ReviewDocFilterType {\r\n ByReviewId = 0x1,\r\n}\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationServiceToken } from '../../services';\r\nimport { IAuthenticationService } from '../../services/i'; \r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() title: string = \"\";\r\n showBreadcrumbs: boolean = true;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n @Inject(AuthenticationServiceToken) private auth: IAuthenticationService \r\n ) {}\r\n\r\n ngOnInit()\r\n {\r\n this.showBreadcrumbs = this.auth.isAuthenticated; //this.route.snapshot.url.length > 1;\r\n }\r\n\r\n}\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\n\r\n@endpoint(\"Document\")\r\nexport class DocumentFileViewModel extends BaseViewModel {\r\n public ContentBytes: string = \"\";\r\n}\r\n","import { Injectable, Inject, InjectionToken } from '@angular/core';\r\nimport { AuthenticationService, AuthenticationServiceToken } from './auth.service';\r\nimport { LogServiceToken } from './log.service';\r\nimport { IRoleService, ILogService } from './i';\r\n\r\n\r\n// Originally from http://jasonwatmore.com/post/2016/08/16/angular-2-jwt-authentication-example-tutorial\r\n\r\n@Injectable()\r\nexport class RoleService implements IRoleService {\r\n constructor(\r\n @Inject(AuthenticationServiceToken) private authService: AuthenticationService,\r\n @Inject(LogServiceToken) private log: ILogService) {}\r\n public canActivate(routeFrag: string, params: { [key: string]: string }): boolean {\r\n var routeFrag = routeFrag[0] == \"/\" ? routeFrag.substr(1) : routeFrag;\r\n switch(routeFrag) {\r\n case \"correspondences\":\r\n case \"correspondences/:filter\":\r\n case \"correspondence\": \r\n case \"correspondence/:id\":\r\n case \"download/:id\":\r\n return this.authService.isAuthenticated && this.authService.hasAnyRole(\"Admin\", \"Shepherd\", \"Reviewer\", \"Intake\");\r\n case \"correspondence/:id/reviews/add\":\r\n case \"correspondence/:cid/reviews/:rid\":\r\n case \"correspondence/:cid/reviews/:rid/documents/add\":\r\n return this.authService.isAuthenticated && this.authService.hasAnyRole(\"Admin\", \"Shepherd\", \"Reviewer\");\r\n case \"correspondence/add\":\r\n case \"correspondence/:id/documents/add\":\r\n return this.authService.isAuthenticated && this.authService.hasAnyRole(\"Admin\", \"Shepherd\", \"Intake\");\r\n case \"contacts\":\r\n case \"contacts/:id\":\r\n case \"contacts/:id/details/:id\":\r\n return this.authService.isAuthenticated && this.authService.hasAnyRole(\"Admin\", \"Shepherd\", \"Intake\");\r\n case \"users\":\r\n case \"users/add\":\r\n case \"users/:id\":\r\n case \"choose/user\":\r\n return this.authService.isAuthenticated && this.authService.hasAnyRole(\"Admin\", \"Shepherd\");\r\n case \"settings\":\r\n return this.authService.isAuthenticated && this.authService.hasAnyRole();\r\n default:\r\n this.log.warn(routeFrag + \" is not a known route. Authorization denied by default.\");\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport let RoleServiceToken = new InjectionToken(\"IRoleServiceToken\");\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ role.RoleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Users

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

{{ user.LastFirst }}

\r\n

Roles: {{ user.RolesSummary }}

\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, Inject, Injectable, EventEmitter, Input, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { RepositoryServiceToken, MapperServiceToken, LogServiceToken, AuthenticationServiceToken, AuthenticationService } from '../../services';\r\nimport { IRepositoryService, IMapperService, ILogService, IAuthenticationService } from '../../services/i';\r\nimport { CorrespondenceViewModel, ReviewViewModel, ReviewDocumentViewModel, DocumentViewModel, ReviewStatuses } from '../../view-models';\r\nimport { BaseFilterViewModel as CorFilter, ReviewDocumentFilterViewModel, ReviewDocFilterType } from '../../view-models/filters';\r\nimport { IFilterViewModel } from '../../view-models/filters/i';\r\nimport { ConfirmDialog, DownloadDialog } from '../../dialogs';\r\n\r\n@Component({\r\n selector: 'app-review',\r\n templateUrl: './review.component.html',\r\n styleUrls: ['./review.component.css']\r\n})\r\n@Injectable()\r\nexport class ReviewComponent implements OnInit {\r\n editMode: boolean = false;\r\n review: ReviewViewModel;\r\n documents: DocumentViewModel[] = [];\r\n corr: CorrespondenceViewModel;\r\n @Input() myForm: FormGroup;\r\n dialogRef: MatDialogRef;\r\n downloadDialogRef: MatDialogRef;\r\n statuses: { key: string, value: string }[] = ReviewStatuses;\r\n\r\n constructor(\r\n @Inject(AuthenticationServiceToken) private auth: AuthenticationService,\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private vcr: ViewContainerRef\r\n ) {\r\n this.myForm = this.buildForm();\r\n\r\n\r\n //this.myForm.disable();\r\n\r\n this.route.params.subscribe(params => {\r\n let cid: number = +params['cid'];\r\n let rid: number = +params['rid'];\r\n this.repo.Get(CorrespondenceViewModel, cid)\r\n .toPromise()\r\n .then(corr => { this.corr = corr; });\r\n\r\n this.repo.Get(ReviewViewModel, rid)\r\n .toPromise()\r\n .then(rev => {\r\n this.setupForm(rev);\r\n this.review = rev;\r\n });\r\n\r\n this.refreshDocuments(rid);\r\n });\r\n }\r\n\r\n removeFile(doc: DocumentViewModel) {\r\n this.openDialog(`Are you sure you want to delete ${doc.Filename}?`).then(result => {\r\n if (result) {\r\n this.repo.Delete(ReviewDocumentViewModel, doc.ReviewDocument.Id).toPromise().then(d => {\r\n this.refreshDocuments(this.review.Id);\r\n });\r\n }\r\n });\r\n }\r\n\r\n deleteReview() {\r\n this.openDialog(`Are you sure you want to delete this review?`).then(result => {\r\n if (result) {\r\n this.repo.Delete(ReviewViewModel, this.review.Id).toPromise().then(d => {\r\n this.goToCorrespondence();\r\n });\r\n }\r\n }); \r\n }\r\n\r\n sendReminder() {\r\n this.repo.Update(ReviewViewModel, { Remind: true, Id: this.review.Id })\r\n .toPromise()\r\n .then(r => {\r\n this.toastr.success(`Reminder email sent to ${r.User.FullName}.`);\r\n });\r\n }\r\n\r\n refreshDocuments(id: number) {\r\n let docFilter = new ReviewDocumentFilterViewModel();\r\n docFilter.ReviewId = id;\r\n docFilter.Type = ReviewDocFilterType.ByReviewId;\r\n this.repo.Page(ReviewDocumentViewModel, docFilter)\r\n .subscribe(rdocs => {\r\n this.documents = rdocs.map(rd => {\r\n rd.Document.ReviewDocument = rd;\r\n return rd.Document;\r\n });\r\n });\r\n }\r\n\r\n download(id: number) {\r\n this.downloadDialogRef = this.dialog.open(\r\n DownloadDialog, {\r\n disableClose: false\r\n });\r\n this.downloadDialogRef.componentInstance.title = \"Beginning secure download...\";\r\n this.downloadDialogRef.componentInstance.downloadId = id;\r\n\r\n this.downloadDialogRef.afterClosed().subscribe(result => {\r\n this.downloadDialogRef = null;\r\n });\r\n return this.downloadDialogRef.afterClosed().toPromise(); \r\n }\r\n\r\n buildForm(): FormGroup {\r\n return this.fb.group({\r\n review: [''],\r\n status: ['', Validators.required],\r\n instructions: ['']\r\n });\r\n }\r\n\r\n setupForm(r: ReviewViewModel): void {\r\n this.myForm.get('review').setValue(r.ReviewText);\r\n this.myForm.get('status').setValue(r.ReviewStatus);\r\n this.myForm.get('instructions').setValue(r.Instructions);\r\n }\r\n\r\n openDialog(message: string): Promise {\r\n this.dialogRef = this.dialog.open(\r\n ConfirmDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.title = \"Confirm\";\r\n this.dialogRef.componentInstance.message = message;\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n return this.dialogRef.afterClosed().toPromise();\r\n }\r\n\r\n goToCorrespondence() {\r\n let text = this.myForm.get(\"review\").value;\r\n let status = this.myForm.get(\"status\").value;\r\n if (text != this.review.ReviewText || status != this.review.ReviewStatus) {\r\n this.openDialog(\"You seem to have unsaved changes. Are you sure you want to cancel?\")\r\n .then(yes => {\r\n if (yes) {\r\n this.router.navigate([\"/correspondence\", this.corr.Id]);\r\n }\r\n })\r\n } else {\r\n this.router.navigate([\"/correspondence\", this.corr.Id]);\r\n }\r\n }\r\n\r\n saveChanges() {\r\n if (this.myForm.errors != null) {\r\n this.log.warn(\"Form not valid.\", this.myForm.errors);\r\n return;\r\n }\r\n\r\n let raw = this.myForm.getRawValue();\r\n this.review.ReviewText = raw.review;\r\n this.review.ReviewStatus = raw.status;\r\n this.review.Instructions = raw.instructions;\r\n\r\n if (this.myForm.errors == null)\r\n this.repo.Update(ReviewViewModel, this.review)\r\n .toPromise()\r\n .then(this.onUpdate.bind(this));\r\n }\r\n\r\n onUpdate(updated: ReviewViewModel) {\r\n this.review = updated;\r\n this.setupForm(updated);\r\n this.editMode = false;\r\n let rt = this.review.ReviewText ? this.review.ReviewText.trim() : \"\";\r\n let ct = this.corr.Summary ? this.corr.Summary.trim() : \"\";\r\n let message = [\r\n \"Review \",\r\n rt.length ? `\"${rt.substr(0, 20)}${rt.length > 20 ? '...' : ''}\" ` : \"\",\r\n \"has been updated\",\r\n ct.length ? ` for \"${ct.substr(0, 20)}${ct.length > 20 ? '...' : ''}\".` : \".\",\r\n ].join('');\r\n this.toastr.success(message, \"Success\");\r\n }\r\n\r\n cancelEdit() {\r\n this.setupForm(this.review);\r\n this.editMode = false;\r\n }\r\n\r\n editReview() {\r\n this.setupForm(this.review);\r\n this.editMode = true;\r\n }\r\n\r\n ngOnInit() { }\r\n}\r\n","import { OnInit, Inject, Component } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'confirm-dialog',\r\n templateUrl: './confirm.dialog.html',\r\n styleUrls: ['./confirm.dialog.css']\r\n})\r\n\r\nexport class ConfirmDialog implements OnInit {\r\n title: string;\r\n actionBtn: string;\r\n cancelBtn: string;\r\n message: string;\r\n constructor(\r\n public dialogRef: MatDialogRef\r\n ) {\r\n \r\n //Observable.create()\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { DocumentFileViewModel } from './document-file-view-model';\r\nimport { CorrespondenceDocumentViewModel } from './correspondence-document-view-model';\r\nimport { ReviewDocumentViewModel } from './review-document-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\nimport { mappable } from '../decorators/mappable.decorator';\r\n\r\n@endpoint(\"Document\")\r\nexport class DocumentViewModel extends BaseViewModel {\r\n public Filename: string = \"\";\r\n public ContentType: string = \"\";\r\n public Size: number = 0;\r\n\r\n @mappable(\"DocumentFileViewModel\")\r\n public DocumentFile: DocumentFileViewModel = null;\r\n\r\n @mappable(\"CorrespondenceDocumentViewModel\")\r\n public CorrespondenceDocument: CorrespondenceDocumentViewModel = null;\r\n\r\n @mappable(\"ReviewDocumentViewModel\")\r\n public ReviewDocument: ReviewDocumentViewModel = null;\r\n\r\n public UUID: string = null;\r\n}\r\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\nimport * as moment from 'moment';\r\n\r\n@Directive({\r\n selector: '[validateBeforeTomorrow][formControlName],[validateBeforeTomorrow][formControl],[validateBeforeTomorrow][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => BeforeTomorrowValidator), multi: true }\r\n ]\r\n})\r\nexport class BeforeTomorrowValidator implements Validator {\r\n tomorrow: moment.Moment = moment().add(0, \"days\");\r\n constructor() {}\r\n \r\n validate(c: AbstractControl): { [key: string]: any } {\r\n let v = moment(c.value, \"YYYY-MM-DD\");\r\n\r\n // value not equal\r\n if (v >= this.tomorrow) return {\r\n beforeTomorrow: true\r\n }\r\n return null;\r\n }\r\n}","import { HttpParams } from '@angular/common/http';\r\nimport { IFilterViewModel } from './i/i-filter-view-model';\r\n\r\nexport class BaseFilterViewModel implements IFilterViewModel {\r\n public Page: number = 0;\r\n public PageSize: number = 10;\r\n public Keywords: string[];\r\n\r\n getAsHttpParams(): HttpParams {\r\n let params = new HttpParams()\r\n .set('filter.page', `${this.Page}`)\r\n .set('filter.pageSize', `${this.PageSize}`);\r\n for (let i in this.Keywords) {\r\n params = params.append('filter.keywords', this.Keywords[i]);\r\n }\r\n // console.log(params);\r\n return params;\r\n }\r\n }\r\n\r\n\r\n\r\n","\r\nimport {filter} from 'rxjs/operators';\r\nimport { Injectable, InjectionToken } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { IErrorService, IErrorMessage, ErrorMessageCallback } from './i';\r\n\r\n\r\n@Injectable()\r\nexport class ErrorService implements IErrorService {\r\n private handler = new Subject();\r\n constructor() { }\r\n\r\n public broadcast(type: string, origin: InjectionToken, message: string) {\r\n let packet: IErrorMessage = { type, origin, message };\r\n this.handler.next(packet);\r\n }\r\n\r\n public subscribe(type: string, origin: InjectionToken, callback: ErrorMessageCallback): Subscription {\r\n return this.handler.pipe(\r\n filter(message => message.type === type && message.origin === origin))\r\n .subscribe((msg: IErrorMessage) => callback(msg.type, msg));\r\n }\r\n\r\n public subscribeAll(callback: ErrorMessageCallback): Subscription {\r\n return this.handler\r\n .subscribe((msg: IErrorMessage) => callback(msg.type, msg)); \r\n }\r\n}\r\n\r\nexport let ErrorServiceToken = new InjectionToken(\"IErrorService\");\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { BaseFilterViewModel } from './base-filter-view-model';\r\nimport { CorrespondenceSubFilterViewModel } from './correspondence-subfilter-view-model';\r\nimport { Operator } from './operator';\r\nimport { mappable } from '../../decorators';\r\n\r\nexport class CorrespondenceFilterViewModel extends BaseFilterViewModel {\r\n @mappable('CorrespondenceSubFilterViewModel')\r\n public Filters: CorrespondenceSubFilterViewModel[] = [];\r\n\r\n /** Whether to sort ascending on DateReceived. Default: descending (false). */\r\n public Ascending = false;\r\n\r\n public getAsHttpParams(): HttpParams {\r\n let params = super.getAsHttpParams();\r\n // params.append('filter.Ascending', `${this.Ascending}`);\r\n params = params.append(`filter.SortSpecifications[0].Property`, 'DateReceived');\r\n if (this.Ascending) {\r\n params = params.append(`filter.SortSpecifications[0].Direction`, '1');\r\n } else {\r\n params = params.append(`filter.SortSpecifications[0].Direction`, '2');\r\n }\r\n for (let i = 0; i < this.Filters.length; i++) {\r\n params = params.append(`filter.Filters[${i}].Type`, `${this.Filters[i].Type}`);\r\n params = params.append(`filter.Filters[${i}].Op`, `${this.Filters[i].Op}`);\r\n for (let j = 0; j < this.Filters[i].Keywords.length; j++) {\r\n params = params.append(`filter.Filters[${i}].Keywords`, `${this.Filters[i].Keywords[j]}`);\r\n }\r\n }\r\n return params;\r\n }\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `angular-cli.json`.\r\nimport { IAppConfig } from './i-app.config';\r\nimport { LogService } from '../app/services';\r\n\r\nexport function QALogServiceFactory() { return new LogService(true, false, true, true); }\r\nexport const OAuthConfig = {\r\n redirectUri: \"https://cortrack-test.iowa.uiowa.edu/dashboard\",\r\n clientId: \"pres-cortrack-web-cf\",\r\n scope: \"test.pres.cortrack.api openid profile uiowa\",\r\n responseType: 'code',\r\n clearHashAfterLogin: true,\r\n issuer: \"https://auth.esapps-test.iowa.uiowa.edu\",\r\n loginUrl: \"https://auth.esapps-test.iowa.uiowa.edu/connect/authorize\",\r\n logoutUrl: \"https://auth.esapps-test.iowa.uiowa.edu/connect/endsession\"\r\n}\r\n\r\nexport const environment = {\r\n production: false,\r\n qa: true,\r\n appConfig: {\r\n logFactory: QALogServiceFactory,\r\n APIBaseURI: \"https://cortrack-test.iowa.uiowa.edu/api\",\r\n BaseURI: \"https://cortrack-test.iowa.uiowa.edu\",\r\n OAuthConfig: OAuthConfig\r\n }\r\n};","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-help',\r\n templateUrl: './help.component.html',\r\n styleUrls: ['./help.component.css']\r\n})\r\nexport class HelpComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export * from './base-filter-view-model';\r\nexport * from './idw-filter-view-model';\r\nexport * from './user-filter-view-model';\r\nexport * from './requestor-filter-view-model';\r\nexport * from './correspondence-document-filter-view-model';\r\nexport * from './review-document-filter-view-model';\r\nexport * from './correspondence-filter-view-model';\r\nexport * from './corr-count-filter-view-model';\r\nexport * from './correspondence-subfilter-view-model';\r\nexport * from './review-filter-view-model';\r\nexport * from './operator';","
\r\n

\r\n If the download does not work, please try again by clicking, below.\r\n

\r\n \r\n

\r\n The generated link cannot be shared.\r\n

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

Review Details

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

Correspondence Details

\r\n

{{ corr && corr.Title }}

\r\n

{{ corr && corr.Summary }}

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

\r\n *Subject to Open Records Requests\r\n

\r\n
\r\n

User

\r\n

{{ review?.User?.FullName }}

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

Type

\r\n

{{ review?.Primary ? \"Primary\" : \"Non-primary\" }}

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

Status

\r\n

{{ review?.ReviewStatus }}

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

Instructions to Reviewer

\r\n

{{ review?.Instructions }}

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

Add Review

\r\n

{{ review?.ReviewText }}

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

Edit Review Details

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

Correspondence Details

\r\n

{{ corr && corr.Title }}

\r\n

{{ corr && corr.Summary }}

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

\r\n *Subject to Open Records Requests\r\n

\r\n
\r\n

User

\r\n

{{ review?.User?.FullName }}

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

Type

\r\n

{{ review && review.Primary ? \"Primary\" : \"Non-primary\" }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ s.value }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Attachments

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

{{ doc.Filename }} {{ doc.Size | prettySize }}

\r\n \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 { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\nimport { ReviewCommentViewModel } from './review-comment-view-model';\r\nimport { ReviewDocumentViewModel } from './review-document-view-model';\r\nimport { UserViewModel } from './user-view-model';\r\n\r\n@endpoint(\"review\")\r\nexport class ReviewViewModel extends BaseViewModel {\r\n public UserId: number = 0;\r\n public CorrespondenceId: number = 0;\r\n public Primary: boolean = false;\r\n public ReviewStatus: string = \"\";\r\n public ReviewText: string = \"\";\r\n\r\n /** Instructions from the assigning Shepherd to the Reviewer. */\r\n public Instructions: string = \"\";\r\n\r\n public Created: Date = null;\r\n\r\n /** Special field causes email to be sent upon update, if set to true. */\r\n public Remind: boolean = false;\r\n\r\n @mappable(\"UserViewModel\")\r\n public User: UserViewModel = null;\r\n\r\n @mappable(\"ReviewCommentViewModel\")\r\n public ReviewComments: ReviewCommentViewModel[] = null;\r\n\r\n @mappable(\"ReviewDocumentViewModel\")\r\n public ReviewDocuments: ReviewDocumentViewModel[] = null;\r\n}\r\n\r\nexport let ReviewStatuses: { key: string, value: string }[] = [\r\n { key: 'assigned', value: \"Assigned\" },\r\n { key: 'in-progress', value: \"In progress\" },\r\n { key: 'complete', value: \"Complete\" }\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-details',\r\n templateUrl: './contact-details.component.html',\r\n styleUrls: ['./contact-details.component.css']\r\n})\r\nexport class ContactDetailsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { RepositoryServiceToken } from '../../services';\r\nimport { IRepositoryService } from '../../services/i';\r\nimport { RequestorViewModel } from '../../view-models';\r\nimport { BaseFilterViewModel } from '../../view-models/filters';\r\n\r\n@Component({\r\n selector: 'app-contact',\r\n templateUrl: './contact.component.html',\r\n styleUrls: ['./contact.component.css']\r\n})\r\nexport class ContactComponent implements OnInit {\r\n id: number = 0;\r\n contact: RequestorViewModel = null;\r\n filter: BaseFilterViewModel = new BaseFilterViewModel();\r\n @Input() keywords: FormControl = new FormControl();\r\n @Input() userRole: FormControl = new FormControl();\r\n @Input() form: FormGroup = new FormGroup({ keywords: this.keywords, role: this.userRole });\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private fb: FormBuilder,\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService\r\n ) {\r\n this.activatedRoute.params.subscribe((params: Params) => {\r\n this.id = params[\"id\"];\r\n this.repo\r\n .Get(RequestorViewModel, this.id)\r\n .subscribe(value => this.contact = value);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.keywords.setValue(\"\");\r\n this.form = this.fb.group({\r\n names: this.fb.group({\r\n realName: this.fb.group({\r\n firstName: ['', [Validators.required]],\r\n middleName: [''],\r\n lastName: ['', Validators.required],\r\n }),\r\n alias: ['', Validators.required],\r\n }, { validator: this.eitherOr }),\r\n });\r\n }\r\n\r\n showRequiredError(fieldPath: string[]): boolean {\r\n return this.form.get(fieldPath).touched && this.form.hasError('required', fieldPath);\r\n }\r\n\r\n showCustomError(fieldPath: string[], error: string): boolean {\r\n return this.form.get(fieldPath).touched && this.form.hasError(error, fieldPath);\r\n }\r\n\r\n eitherOr(group: FormGroup) {\r\n for (let name in group.controls) {\r\n var ctl = group.controls[name];\r\n if (!ctl.errors)\r\n return null;\r\n }\r\n\r\n return { eitherOr: true };\r\n }\r\n}\r\n\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nconst endpointMetadataKey = \"cortrack.endpoint.decorator\";\r\nexport function endpoint(uri: string) {\r\n return (target: Function) => {\r\n Reflect.set(target, endpointMetadataKey, uri);\r\n };\r\n}\r\n\r\nexport function getEndpoint(target: Function): string {\r\n return Reflect.get(target, endpointMetadataKey);\r\n}\r\n","export enum Operator {\r\n /** Whether the API data is greater than the input data. */\r\n ApiGreaterThan = 0x1,\r\n\r\n /** Whether the API data is less than the input data. */\r\n ApiLessThan = 0x2,\r\n\r\n /** Whether the API data is equal to the input data. */\r\n ApiEquals = 0x3,\r\n\r\n /** Whether the API data contains the input data. */\r\n ApiContains = 0x4,\r\n\r\n /** Whether the API data is between the given input points. */\r\n ApiBetween = 0x5,\r\n}","import { Component, OnInit, Inject, Injectable, EventEmitter, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { RepositoryServiceToken, MapperServiceToken } from '../../services';\r\nimport { IRepositoryService, IMapperService } from '../../services/i';\r\nimport { \r\n CorrespondenceViewModel as VMCorr, \r\n CorrespondenceDocumentViewModel as VMCorDoc, \r\n DocumentViewModel,\r\n DocumentViewModel as VMDoc } from '../../view-models';\r\nimport { \r\n BaseFilterViewModel as CorFilter, \r\n CorrespondenceDocumentFilterViewModel as CorDocFilter,\r\n CorDocFilterType\r\n} from '../../view-models/filters';\r\n\r\n@Component({\r\n selector: 'app-download',\r\n templateUrl: './download.component.html',\r\n styleUrls: ['./download.component.css']\r\n})\r\n@Injectable()\r\nexport class DownloadComponent implements OnInit {\r\n @ViewChild(\"downloadLink\") downloadLink: ElementRef;\r\n @Input(\"id\") id: number;\r\n download: DocumentViewModel;\r\n url: string;\r\n\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n private route: ActivatedRoute,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.repo.Get(DocumentViewModel, this.id).toPromise().then(doc => {\r\n this.download = doc;\r\n let bytes = atob(doc.DocumentFile.ContentBytes);\r\n let nums = new Array(bytes.length);\r\n for(var i=0; i rc.IsPrimary);\r\n if (p.length >= 1)\r\n return p[0].Requestor;\r\n if ((this.RequestorCorrespondences || []).length)\r\n return this.RequestorCorrespondences[0].Requestor;\r\n return null;\r\n }\r\n\r\n public get RequestorSummary(): string {\r\n return (this.RequestorCorrespondences || []).map(rc => rc.Requestor && rc.Requestor.LastName || \"\").join(\", \");\r\n }\r\n}\r\n\r\nexport let Statuses: string[] = [\r\n \"Intake\", \"Assigned\", \"Completed\", \"Pending AVP\"\r\n];","\r\n","import { Component, OnInit, Inject, Injectable, Input, ViewChild } from '@angular/core';\r\nimport { VIRTUAL_SCROLL_STRATEGY, FixedSizeVirtualScrollStrategy, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { CorrespondenceViewModel as VMCorr,\r\n CorrCountViewModel} from '../../view-models';\r\nimport { CorrespondenceFilterViewModel as CorFilter, CorrCountFilterViewModel } from '../../view-models/filters';\r\n\r\n\r\nimport { FilterDialog } from './filter.dialog';\r\nimport { IMapperService, IRepositoryService, IAuthenticationService, ILogService, ICorrFilterService } from '../../services/i';\r\nimport { MapperServiceToken, RepositoryServiceToken, AuthenticationServiceToken, LogServiceToken, CorrFilterServiceToken, AuthenticationService } from '../../services';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { PageEvent} from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css'],\r\n providers: [{provide: VIRTUAL_SCROLL_STRATEGY, useValue: new FixedSizeVirtualScrollStrategy(50, null, null) }]\r\n})\r\n@Injectable()\r\nexport class DashboardComponent implements OnInit {\r\n dialogRef: MatDialogRef;\r\n @Input() savedFilterName: string;\r\n @Input() filter: CorFilter;\r\n correspondences: VMCorr[] = [];\r\n corrObs: Observable;\r\n corrObs$: Subscriber;\r\n noAccessDashboard: boolean;\r\n loading: boolean = false;\r\n limit: number = 10;\r\n @ViewChild(CdkVirtualScrollViewport)\r\n viewport: CdkVirtualScrollViewport;\r\n page: PageEvent;\r\n totalItems: number = 0;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(AuthenticationServiceToken) private auth: AuthenticationService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n @Inject(CorrFilterServiceToken) private corrFilterSvc: ICorrFilterService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService) {\r\n this.corrObs = new Observable((subscriber) => { this.corrObs$ = subscriber; });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.noAccessDashboard = !this.auth.hasAnyRole(\"Shepherd\", \"Reviewer\", \"Intake\", \"Admin\");\r\n this.filter = this.rememberFilter();\r\n this.refreshPaging();\r\n this.refreshCorrespondences();\r\n }\r\n\r\n\r\n rememberFilter(filter?: CorFilter): CorFilter {\r\n let storageKey = \"edu.uiowa.ITS.CorTrack.filter\";\r\n if (filter) {\r\n localStorage[storageKey] = JSON.stringify(filter);\r\n this.filter = filter;\r\n }\r\n\r\n if (this.filter) {\r\n return this.filter;\r\n } // passed in as input\r\n\r\n try {\r\n let json = localStorage[storageKey];\r\n let f = JSON.parse(json);\r\n return this.mapper.MapJsonToVM(CorFilter, f);\r\n } catch(err) {\r\n return new CorFilter();\r\n }\r\n }\r\n\r\n refreshPaging() {\r\n this.filter.Page = 0;\r\n this.filter.PageSize = this.limit;\r\n let cfilter = new CorrCountFilterViewModel();\r\n cfilter.Filters = [ this.filter ];\r\n this.repo.Page(CorrCountViewModel, cfilter)\r\n .toPromise()\r\n .then(c => { this.totalItems = c[0].Count; });\r\n }\r\n\r\n refreshFilter(filter: CorFilter): void {\r\n this.rememberFilter(filter);\r\n this.refreshPaging();\r\n this.refreshCorrespondences();\r\n }\r\n\r\n openDialog(): void {\r\n this.dialogRef = this.dialog.open(FilterDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.filter = this.mapper.MapJsonToVM(CorFilter, this.filter);\r\n this.dialogRef.componentInstance.savedFilterName = this.savedFilterName;\r\n this.dialogRef\r\n .afterClosed()\r\n .toPromise()\r\n .then(result => {\r\n this.refreshFilter(result);\r\n this.refreshPaging();\r\n this.dialogRef = null;\r\n });\r\n }\r\n\r\n refreshCorrespondences() {\r\n if (this.loading)\r\n return;\r\n\r\n this.loading = true;\r\n this.repo\r\n .Page(VMCorr, this.filter)\r\n .toPromise()\r\n .then(chunk => {\r\n this.loading = false;\r\n return chunk;\r\n })\r\n .then(chunk => {\r\n this.corrObs$.next(chunk);\r\n this.correspondences = this.correspondences.concat(chunk);\r\n });\r\n }\r\n\r\n setPage($event: PageEvent) {\r\n this.filter.Page = $event.pageIndex;\r\n this.filter.PageSize = $event.pageSize;\r\n this.refreshCorrespondences();\r\n }\r\n}\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\n\r\n@endpoint(\"Correspondence\")\r\nexport class CorrespondenceInputModel extends BaseViewModel {\r\n /** This could be an email correspondence subject line, or intake staff's own title. */\r\n public Title: string = \"\";\r\n\r\n /** Could be the body of the email correspondence, or intake staff's summary. */\r\n public Summary: string = \"\";\r\n public RequestorName: string = \"\";\r\n public RequestorDetail: string = \"\";\r\n\r\n /** A short description of the correspondence source. E.g., email, text, phone, letter, news article, etc */\r\n public ReceivedThrough: string = \"\";\r\n\r\n public Status: string=\"\";\r\n\r\n /** When the University received the correspondence. */\r\n public DateReceived: Date = null;\r\n\r\n /** When a reply is due, if ever. */\r\n public DueDate: Date = null;\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n

Help

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

\r\n This is the President's Office Correspondence Tracking application. If you believe you should have access, but are\r\n unable to login, please contact Ben Held.\r\n

\r\n\r\n

Authorization

\r\n

\r\n In order to use certain parts of this system, you must be in the correct role. If you believe\r\n you should be able to do something that you cannot, please contact an administrator of this system.\r\n

\r\n

\r\n If you've been redirected to this message, its likely you've tried to access a restricted feature without\r\n proper authorization.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","export * from './before-tomorrow.validator';\r\nexport * from './after-today.validator';","\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { RepositoryServiceToken } from '../../services';\r\nimport { IRepositoryService } from '../../services/i';\r\nimport { RequestorViewModel } from '../../view-models';\r\nimport { BaseFilterViewModel } from '../../view-models/filters';\r\n\r\n@Component({\r\n selector: 'app-manage-contacts',\r\n templateUrl: './manage-contacts.component.html',\r\n styleUrls: ['./manage-contacts.component.css']\r\n})\r\nexport class ManageContactsComponent implements OnInit {\r\n requestors: RequestorViewModel[] = [];\r\n filter: BaseFilterViewModel = new BaseFilterViewModel();\r\n @Input() keywords: FormControl = new FormControl();\r\n @Input() userRole: FormControl = new FormControl();\r\n @Input() form: FormGroup = new FormGroup({ keywords: this.keywords, role: this.userRole });\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService\r\n ) {\r\n this.keywords.valueChanges.pipe(\r\n debounceTime(400))\r\n .subscribe(keywords => {\r\n this.filter.Keywords = keywords.split();\r\n this.repo.Page(RequestorViewModel, this.filter)\r\n .subscribe(value => { this.requestors = value; });\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.keywords.setValue(\"\");\r\n /*var roleFilter = new BaseFilterViewModel();\r\n roleFilter.PageSize = 50;\r\n this.repo.Page(RoleViewModel, roleFilter)\r\n .subscribe(roles => this.roles = roles);*/\r\n }\r\n}\r\n","

{{ title }}

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

Filter Correspondence

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

Date

\r\n \r\n arrow_upward\r\n arrow_downward\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ type }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ cat }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ req.FullName }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ rev.FullName }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ status }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Save to Favorites\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import { HttpParams } from '@angular/common/http';\r\nimport { BaseFilterViewModel } from './base-filter-view-model';\r\nimport { CorrespondenceFilterViewModel } from './correspondence-filter-view-model';\r\nimport { Operator } from './operator';\r\nimport { mappable } from '../../decorators';\r\nimport { CorFilterType } from './correspondence-subfilter-view-model';\r\n\r\nexport class CorrCountFilterViewModel extends BaseFilterViewModel {\r\n @mappable(\"CorrespondenceSubFilterViewModel\")\r\n public Filters: CorrespondenceFilterViewModel[] = [];\r\n\r\n public getAsHttpParams(): HttpParams {\r\n let params = new HttpParams();\r\n for (var h=0; h path.split(\"#\")[0]);\r\n breadcrumbService.addCallbackForRouteRegex(\"\\%[0-9]{2}\", (path) => decodeURIComponent(path));\r\n breadcrumbService.addCallbackForRouteRegex('^.*[?].*$', (path) => path.split('?')[0]);\r\n breadcrumbService.hideRouteRegex(\"\\/choose.*\");\r\n breadcrumbService.hideRouteRegex(\"\\/choose\\/user.*\");\r\n this.filterNames = this.corrFilterSvc.getAvailableFilterNames();\r\n\r\n this.corrFilterSvc.updates.subscribe(() => {\r\n this.filterNames = this.corrFilterSvc.getAvailableFilterNames();\r\n }); \r\n if (this.authService.isAuthenticated) {\r\n let cfilter = new CorrCountFilterViewModel();\r\n cfilter.Filters = this.corrFilterSvc.getAvailableFilterNames().map(f => this.corrFilterSvc.getFilter(f));\r\n cfilter.Filters.unshift(this.corrFilterSvc.getFilter('awaiting-review'));\r\n this.repo.Page(CorrCountViewModel, cfilter)\r\n .toPromise()\r\n .then(() => { });\r\n }\r\n\r\n from(this.commAuthService.runInitialLoginSequence())\r\n .pipe(\r\n switchMap(_ => this.commAuthService.isDoneLoading$),\r\n filter(isDone => isDone),\r\n switchMap(_ => this.commAuthService.isAuthenticated$),\r\n tap(async isAuth => {\r\n if (isAuth) {\r\n this.user = await repo.Lookup(UserViewModel, this.commAuthService.actualUsername).toPromise();\r\n this.authService.setUserInfo(this.user);\r\n } else {\r\n this.log.warn(\"Not authenticated.\");\r\n }\r\n }, err => console.error(err))\r\n ).subscribe();\r\n\r\n this.errors.subscribeAll(this.unhandledGlobalErrors.bind(this));\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private removeFilter(name: string) {\r\n this.corrFilterSvc.removeFilter(name);\r\n }\r\n\r\n private unhandledGlobalErrors(payload: IErrorMessage) {\r\n console.error(payload);\r\n this.toastr.error(payload.message, `Error ${payload.type}`);\r\n }\r\n \r\n\r\n someMethod() {\r\n this.trigger.openMenu();\r\n }\r\n\r\n login(): void {\r\n this.authService.beginLoginFlow();\r\n }\r\n logout(): void {\r\n this.oauthService.logOut(false);\r\n }\r\n\r\n onScroll($event) {\r\n this.scroll.scroll($event);\r\n }\r\n\r\n title = 'CorTrack';\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialogRef, MatDialog } from '@angular/material/dialog';\r\nimport { FormControl } from '@angular/forms';\r\nimport { RoleViewModel, UserViewModel, UserRoleViewModel, BaseFilterViewModel } from '../../view-models';\r\nimport { RepositoryServiceToken, LogServiceToken} from '../../services';\r\nimport { IRepositoryService, ILogService } from '../../services/i';\r\nimport { ConfirmDialog } from '../../dialogs';\r\n\r\n@Component({\r\n selector: 'app-user-details',\r\n templateUrl: './user-details.component.html',\r\n styleUrls: ['./user-details.component.css']\r\n})\r\n// Purpose: show (and edit) user details not visible in the list view.\r\n// e.g. change user roles.\r\nexport class UserDetailsComponent implements OnInit {\r\n roles: RoleViewModel[];\r\n allRoles: RoleViewModel[];\r\n user: UserViewModel;\r\n userRoleControl: FormControl;\r\n dialogRef: MatDialogRef;\r\n\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n public dialog: MatDialog,\r\n private route: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n this.userRoleControl = new FormControl();\r\n }\r\n\r\n ngOnInit() {\r\n //this.keywords.setValue(\"\");\r\n var roleFilter = new BaseFilterViewModel();\r\n roleFilter.PageSize = 50;\r\n this.repo.Page(RoleViewModel, roleFilter)\r\n .subscribe(roles => {\r\n this.allRoles = roles;\r\n this.roles = roles;\r\n });\r\n\r\n this.route.params.subscribe(params => {\r\n let id: number = +params['id'];\r\n this.refreshUser(id);\r\n });\r\n }\r\n\r\n openDialog(message: string): Promise {\r\n this.dialogRef = this.dialog.open(\r\n ConfirmDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.title = \"Confirm Removal\";\r\n this.dialogRef.componentInstance.message = message;\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n return this.dialogRef.afterClosed().toPromise();\r\n }\r\n\r\n refreshUser(id: number) {\r\n this.repo.Get(UserViewModel, id)\r\n .toPromise()\r\n .then(user => {\r\n this.user = user;\r\n this.roles = this.allRoles.filter(r => user.UserRoles.find(ur => ur.RoleId == r.Id) == null)\r\n });\r\n }\r\n\r\n removeUser() {\r\n this.openDialog(`Are you sure you want to remove ${this.user.FullName}?`)\r\n .then(confirm => {\r\n if (confirm) {\r\n this.repo.Delete(UserViewModel, this.user.Id)\r\n .toPromise()\r\n .then(r => {\r\n this.router.navigate([\"/users\"]);\r\n })\r\n .catch(e => {\r\n this.log.warn(\"Error: \", e);\r\n });\r\n }\r\n });\r\n }\r\n\r\n removeRole(userRole: UserRoleViewModel) {\r\n this.openDialog(`Remove role ${userRole.Role.RoleName} from ${this.user.FullName}?`)\r\n .then(confirm => {\r\n if (confirm) {\r\n this.repo.Delete(UserRoleViewModel, userRole.Id)\r\n .toPromise()\r\n .then(ur => {\r\n this.refreshUser(this.user.Id);\r\n });\r\n }\r\n });\r\n }\r\n\r\n addRole() {\r\n let ur = new UserRoleViewModel();\r\n ur.UserId = this.user.Id;\r\n ur.RoleId = this.userRoleControl.value;\r\n if (! ur.RoleId)\r\n return;\r\n \r\n this.repo.Create(UserRoleViewModel, ur)\r\n .toPromise()\r\n .then(r => {\r\n this.refreshUser(this.user.Id);\r\n });\r\n }\r\n\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport let AppConfigToken = new InjectionToken(\"IAppConfig\");\r\nexport let OAuthConfigToken = new InjectionToken(\"IOAuthConfig\");\r\nexport let BaseURI = new InjectionToken(\"BaseURI\");\r\nexport let APIBaseURI = new InjectionToken(\"APIBaseURI\");","import { HttpParams } from '@angular/common/http';\r\nimport { BaseFilterViewModel } from './base-filter-view-model';\r\nimport { Operator } from './operator';\r\n\r\nexport class CorrespondenceSubFilterViewModel extends BaseFilterViewModel {\r\n public Type: CorFilterType = CorFilterType.Keywords;\r\n public Op: Operator = Operator.ApiContains;\r\n \r\n public Keywords: string[] = [];\r\n public DateTime: Date = null;\r\n public EndDateTime: Date = null;\r\n\r\n public getAsHttpParams(): HttpParams {\r\n throw new Error(\"This filter isn't meant to be used directly.\");\r\n }\r\n}\r\n\r\nexport enum CorFilterType {\r\n /** Search using the Keywords property across all IDW fields (email, hawkId, etc). */\r\n Keywords = 0x1,\r\n\r\n /** Date the correspondence was received. */\r\n DateReceived = 0x2,\r\n\r\n /** Category of the correspondence */\r\n Category = 0x3,\r\n\r\n /** A.k.a contact, the person with whom we're corresponding. */\r\n Requestor = 0x4,\r\n\r\n Status = 0x5,\r\n\r\n Reviewer = 0x6,\r\n\r\n CommunicationType = 0x7\r\n}\r\n","\r\nimport {map, startWith, mergeMap} from 'rxjs/operators';\r\nimport { OnInit, Inject, Component } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { RepositoryServiceToken, CorrFilterServiceToken } from '../../services';\r\nimport { IRepositoryService, ICorrFilterService } from '../../services/i';\r\nimport { UserViewModel, RequestorViewModel, CategoryViewModel,\r\n BaseFilterViewModel, RequestorFilterViewModel, RequestorFilterType, UserFilterViewModel, Statuses } from '../../view-models';\r\nimport { receivedThrough } from '../../static-data';\r\nimport {\r\n CorrespondenceFilterViewModel as CorFilter, \r\n CorrespondenceSubFilterViewModel as CorSubFilter,\r\n CorFilterType,\r\n Operator\r\n} from '../../view-models/filters';\r\n\r\n@Component({\r\n selector: 'filter-dialog',\r\n templateUrl: './filter.dialog.html',\r\n styleUrls: ['./filter.dialog.css'],\r\n})\r\nexport class FilterDialog implements OnInit {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private http: HttpClient,\r\n private formBuilder: FormBuilder,\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(CorrFilterServiceToken) private corrFilterSvc: ICorrFilterService\r\n ) {\r\n this.savedFilterName = null;\r\n this.filter = new CorFilter();\r\n this.filterTypes = CorFilterType;\r\n\r\n this.categoryControl = new FormControl();\r\n this.keywordsControl = new FormControl();\r\n this.requestorControl = new FormControl();\r\n this.reviewerControl = new FormControl();\r\n this.commTypeControl = new FormControl();\r\n this.sortControl = new FormControl();\r\n this.statusControl = new FormControl();\r\n this.filterName = new FormControl();\r\n this.saveToFavorites = new FormControl();\r\n this.filteredCategories = this.categoryControl.valueChanges.pipe(\r\n startWith(null),\r\n mergeMap(cat => {\r\n let catFilter = new BaseFilterViewModel();\r\n catFilter.PageSize = 100;\r\n catFilter.Keywords = cat ? cat.split() : [];\r\n return this.repo.Page(CategoryViewModel, catFilter).pipe(map(cs => cs.map(c => c.Name)));\r\n }),);\r\n this.filteredRequestors = this.requestorControl.valueChanges.pipe(\r\n startWith(null),\r\n mergeMap(req => {\r\n let reqFilter = new RequestorFilterViewModel();\r\n reqFilter.Type = RequestorFilterType.Keywords;\r\n reqFilter.Keywords = req ? req.split() : [];\r\n return this.repo.Page(RequestorViewModel, reqFilter);\r\n }),);\r\n this.filteredReviewers = this.reviewerControl.valueChanges.pipe(\r\n startWith(null),\r\n mergeMap(rev => {\r\n let revFilter = new BaseFilterViewModel();\r\n revFilter.Keywords = rev ? rev.split() : [];\r\n return this.repo.Page(UserViewModel, revFilter);\r\n }),);\r\n\r\n this.filteredCommTypes = this.commTypeControl.valueChanges.pipe(\r\n startWith(null),\r\n map(t => t ? receivedThrough.filter(r => r && new RegExp(t, \"gi\").test(r)) : receivedThrough),);\r\n }\r\n\r\n ngOnInit() {\r\n //this.fetchCategories();\r\n this.setupRequestorsTypeahead();\r\n this.setupReviewersTypeahead();\r\n this.loadFilter();\r\n }\r\n\r\n loadFilter() {\r\n let cat = this.getFirstSubFilter(CorFilterType.Category);\r\n let com = this.getFirstSubFilter(CorFilterType.CommunicationType);\r\n let req = this.getFirstSubFilter(CorFilterType.Requestor);\r\n let rev = this.getFirstSubFilter(CorFilterType.Reviewer);\r\n let status = this.getFirstSubFilter(CorFilterType.Status);\r\n let kw = this.getFirstSubFilter(CorFilterType.Keywords);\r\n if(cat) this.categoryControl.setValue(cat.Keywords[0] || \"\");\r\n if(com) this.commTypeControl.setValue(com.Keywords[0] || \"\");\r\n if(req) this.requestorControl.setValue((req.Keywords || []).join(\" \"));\r\n if(rev) this.reviewerControl.setValue((rev.Keywords || []).join(\" \"));\r\n if(status) this.statusControl.setValue(status.Keywords[0] || \"\");\r\n if(kw) this.keywordsControl.setValue((kw.Keywords || []).join(\" \"));\r\n this.sortControl.setValue(this.filter.Ascending ? \"true\" : \"false\");\r\n if (this.savedFilterName) {\r\n this.saveToFavorites.setValue(true);\r\n this.filterName.setValue(this.savedFilterName);\r\n } else {\r\n this.saveToFavorites.setValue(false);\r\n }\r\n }\r\n\r\n getFirstSubFilter(type: CorFilterType) {\r\n return (this.filter.Filters.filter(f => f.Type == type) || [])[0];\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(this.filter);\r\n }\r\n\r\n saveAndClose() {\r\n this.filter.Filters = [];\r\n if (this.categoryControl.value) {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Category;\r\n subfilter.Op = Operator.ApiEquals;\r\n subfilter.Keywords = [this.categoryControl.value];\r\n this.filter.Filters.push(subfilter);\r\n }\r\n if (this.commTypeControl.value) {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.CommunicationType;\r\n subfilter.Op = Operator.ApiEquals;\r\n subfilter.Keywords = [this.commTypeControl.value];\r\n this.filter.Filters.push(subfilter);\r\n }\r\n if (this.requestorControl.value) {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Requestor;\r\n subfilter.Keywords = this.requestorControl.value.split(/\\W+/);\r\n this.filter.Filters.push(subfilter);\r\n }\r\n if (this.reviewerControl.value) {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Reviewer;\r\n subfilter.Keywords = this.reviewerControl.value.split(/\\W+/);\r\n this.filter.Filters.push(subfilter);\r\n }\r\n if (this.statusControl.value) {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Status;\r\n subfilter.Op = Operator.ApiEquals;\r\n subfilter.Keywords = [this.statusControl.value];\r\n this.filter.Filters.push(subfilter);\r\n }\r\n if (this.keywordsControl.value) {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Keywords;\r\n subfilter.Keywords = this.keywordsControl.value.split(/\\W+/);\r\n this.filter.Filters.push(subfilter);\r\n }\r\n this.filter.Ascending = this.sortControl.value == \"true\";\r\n if (this.saveToFavorites) {\r\n this.saveFilter();\r\n }\r\n this.close();\r\n }\r\n\r\n saveFilter() {\r\n this.corrFilterSvc.saveFilter(this.filterName.value, this.filter);\r\n }\r\n\r\n addCategory() {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Category;\r\n subfilter.Keywords = [this.categoryControl.value];\r\n this.filter.Filters.push(subfilter);\r\n this.categoryControl.reset();\r\n }\r\n\r\n addKeywords() {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Keywords;\r\n subfilter.Keywords = [this.keywordsControl.value];\r\n this.filter.Filters.push(subfilter);\r\n this.keywordsControl.reset();\r\n }\r\n\r\n addRequestor() {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Requestor;\r\n subfilter.Keywords = [this.requestorControl.value];\r\n this.filter.Filters.push(subfilter);\r\n this.requestorControl.reset();\r\n }\r\n\r\n addReviewer() {\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Reviewer;\r\n subfilter.Keywords = [this.reviewerControl.value];\r\n this.filter.Filters.push(subfilter);\r\n this.reviewerControl.reset();\r\n }\r\n\r\n addStatus(status: string) {\r\n let subfilter;\r\n for (var i=0; i s); // copy\r\n let ind;\r\n for (var i=0; i= 0) {\r\n statuses.splice(ind, 1);\r\n }\r\n }\r\n\r\n this.filteredStatuses = statuses;\r\n }\r\n\r\n setupRequestorsTypeahead() {\r\n\r\n /*this.reqObservable = Observable.create(observer => {\r\n this.myForm.controls[\"Requestor\"].valueChanges\r\n .debounceTime(400)\r\n .subscribe(keywords => {\r\n var filter = new BaseFilterViewModel();\r\n filter.Keywords = keywords.split();\r\n var subscription = this.repo.Page(RequestorViewModel, filter)\r\n .subscribe(values => {\r\n let items: CompleterItem[] = values.map(r => { return { title: r.LastFirst }; });\r\n observer.next(items);\r\n });\r\n });\r\n });\r\n this.reqDataService = this.completerService.local(this.reqObservable, \"title\", \"title\");*/\r\n }\r\n\r\n setupReviewersTypeahead() {\r\n /*this.revObservable = Observable.create(observer => {\r\n this.myForm.controls[\"Reviewer\"].valueChanges\r\n .debounceTime(400)\r\n .subscribe(keywords => {\r\n var filter = new UserFilterViewModel();\r\n filter.Keywords = keywords.split();\r\n var subscription = this.repo.Page(UserViewModel, filter)\r\n .subscribe(values => {\r\n let items: CompleterItem[] = values.map(r => { return { title: r.LastFirst }; });\r\n observer.next(items);\r\n });\r\n });\r\n });\r\n this.revDataService = this.completerService.local(this.revObservable, \"title\", \"title\");*/\r\n }\r\n\r\n savedFilterName: string = null;\r\n myForm: FormGroup = null;\r\n categoryControl: FormControl;\r\n keywordsControl: FormControl;\r\n requestorControl: FormControl;\r\n reviewerControl: FormControl;\r\n statusControl: FormControl;\r\n sortControl: FormControl;\r\n filterName: FormControl;\r\n commTypeControl: FormControl;\r\n saveToFavorites: FormControl;\r\n filteredCategories: any;\r\n filteredRequestors: any;\r\n filteredReviewers: any;\r\n filteredStatuses: string[] = Statuses;\r\n filteredCommTypes: any;\r\n filter: CorFilter;\r\n filterTypes: any;\r\n\r\n //reqDataService: CompleterData;\r\n reqObservable: Observable;\r\n requestors: any[] = [];\r\n\r\n //revDataService: CompleterData;\r\n revObservable: Observable;\r\n reviewers: any[] = [];\r\n categories: any[] = []; /*[\r\n {\r\n CategoryName: 'Outgoing Correspondence',\r\n CategoryId: 1\r\n },\r\n {\r\n CategoryName: 'Academics',\r\n categoryId: 2\r\n },\r\n {\r\n \r\n CategoryName: 'Admissions',\r\n CategoryId: 3\r\n },\r\n {\r\n CategoryName: 'Alumni/ Fundraising',\r\n CategoryId: 4\r\n },\r\n {\r\n CategoryName: 'Athletics',\r\n CategoryId: 5\r\n }\r\n ];*/\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { CommunityAuthService } from 'app/services/community-auth.service';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { from, Observable } from 'rxjs';\r\nimport { OAuthConfig } from 'environments/environment';\r\nimport { switchMap, filter, tap } from 'rxjs/operators';\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private oauthService: OAuthService,\r\n private authService: CommunityAuthService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable {\r\n this.oauthService.configure(OAuthConfig);\r\n //this.oauthService.events.subscribe(e => console.log(\"event, e\", e));\r\n console.debug(state.url);\r\n return from(this.authService.runInitialLoginSequence())\r\n .pipe(\r\n switchMap(_ => this.authService.isDoneLoading$),\r\n filter(isDone => isDone),\r\n switchMap(_ => this.authService.isAuthenticated$),\r\n tap(isAuth => { if (! isAuth) this.router.navigate(['/help']); })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit, Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { IAuthenticationService } from '../../services/i';\r\nimport { AuthenticationService, AuthenticationServiceToken} from '../../services';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\n@Injectable()\r\nexport class LoginComponent implements OnInit {\r\n constructor(\r\n private router: Router,\r\n @Inject(AuthenticationServiceToken) private authService: AuthenticationService\r\n ) {\r\n // FIXME - should we do something more with nagivation errors?\r\n this.router.navigate([\"correspondences\"]).catch(r => r);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","\r\nimport {zip as observableZip, empty as observableEmpty, Observable } from 'rxjs';\r\n\r\nimport {mergeMap} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Injectable, EventEmitter, Input, ViewContainerRef } from '@angular/core';\r\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport * as moment from 'moment/moment';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { RepositoryServiceToken, MapperServiceToken, AuthenticationServiceToken, LogServiceToken, AuthenticationService } from '../../services';\r\nimport { IRepositoryService, IMapperService, IAuthenticationService, ILogService } from '../../services/i';\r\nimport { \r\n CorrespondenceViewModel as VMCorr, \r\n CorrespondenceDocumentViewModel as VMCorDoc, \r\n DocumentViewModel,\r\n DocumentViewModel as VMDoc,\r\n ReviewViewModel,\r\n ReviewCommentViewModel,\r\n ReviewStatuses,\r\n UserViewModel\r\n} from '../../view-models';\r\nimport { \r\n BaseFilterViewModel as CorFilter, \r\n CorrespondenceDocumentFilterViewModel as CorDocFilter,\r\n CorDocFilterType\r\n} from '../../view-models/filters';\r\nimport { IFilterViewModel } from '../../view-models/filters/i';\r\nimport { BeforeTomorrowValidator, AfterTodayValidator } from '../add-correspondence/validators';\r\nimport { ConfirmDialog } from '../../dialogs';\r\n\r\n@Component({\r\n selector: 'app-add-review',\r\n templateUrl: './add-review.component.html',\r\n styleUrls: ['./add-review.component.css']\r\n})@Injectable()\r\nexport class AddReviewComponent implements OnInit {\r\n editMode: boolean = false;\r\n showErrors: boolean = false;\r\n submitAttempted: boolean = false;\r\n filter: IFilterViewModel = new CorFilter();\r\n corrObs: Observable;\r\n reviewerObs: Observable;\r\n documents: DocumentViewModel[] = [];\r\n statuses: { key: string, value: string }[] = ReviewStatuses;\r\n returnRoute: string;\r\n userSelected: boolean = false;\r\n\r\n @Input() keywords: FormControl = new FormControl();\r\n @Input() myForm: FormGroup;\r\n\r\n dialogRef: MatDialogRef;\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n @Inject(AuthenticationServiceToken) public auth: AuthenticationService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private vcr: ViewContainerRef\r\n ) {\r\n this.myForm = this.buildForm();\r\n\r\n\r\n //this.myForm.disable();\r\n\r\n this.returnRoute = route.snapshot.url.reduce((p, s) => `${p}/${s.path}`, \"\");\r\n this.corrObs = this.route.params.pipe(mergeMap(params => {\r\n let id: number = +params['id'];\r\n return this.repo.Get(VMCorr, id);\r\n }));\r\n\r\n this.reviewerObs = this.route.queryParams.pipe(mergeMap(qparams => {\r\n let id: number = +qparams['userId'];\r\n if (id > 0) {\r\n this.userSelected = true;\r\n return this.repo.Get(UserViewModel, id);\r\n } else {\r\n return observableEmpty();\r\n }\r\n }));\r\n }\r\n\r\n buildForm(): FormGroup {\r\n return this.fb.group({\r\n review: [''],\r\n primary: ['', Validators.required],\r\n instructions: [''],\r\n status: ['assigned', Validators.required]\r\n });\r\n }\r\n\r\n formValid() {\r\n return this.myForm.valid && this.userSelected;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n openDialog(message: string): Promise {\r\n this.dialogRef = this.dialog.open(\r\n ConfirmDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.title = \"Confirm\";\r\n this.dialogRef.componentInstance.message = message;\r\n this.dialogRef.componentInstance.actionBtn = \"Yes\";\r\n this.dialogRef.componentInstance.cancelBtn = \"No\";\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n return this.dialogRef.afterClosed().toPromise();\r\n }\r\n\r\n goToCorrespondence() {\r\n this.corrObs.subscribe(corr => {\r\n var text = this.myForm.get(\"review\").value;\r\n if (text && text.length) {\r\n this.openDialog(\"You seem to have unsaved changes. Are you sure you want to cancel?\")\r\n .then(yes => {\r\n if (yes) {\r\n this.router.navigate([\"/correspondence\", corr.Id]);\r\n }\r\n })\r\n } else {\r\n this.router.navigate([\"/correspondence\", corr.Id]);\r\n }\r\n });\r\n }\r\n\r\n addReview() {\r\n this.log.debug(this.corrObs, this.reviewerObs);\r\n observableZip(this.corrObs, this.reviewerObs)\r\n .subscribe(values => { \r\n let corr = values[0];\r\n let reviewer = values[1];\r\n this.log.debug(reviewer, corr);\r\n if (this.myForm.errors || ! reviewer) {\r\n this.showErrors = true;\r\n return;\r\n }\r\n\r\n let user = this.auth.getUserInfo();\r\n if (user) {\r\n let rev = new ReviewViewModel();\r\n rev.Primary = this.myForm.get(\"primary\").value;\r\n rev.ReviewText = this.myForm.get(\"review\").value;\r\n rev.ReviewStatus = this.myForm.get(\"status\").value;\r\n rev.Instructions = this.myForm.get(\"instructions\").value;\r\n rev.UserId = reviewer.Id;\r\n rev.CorrespondenceId = corr.Id;\r\n this.repo.Create(ReviewViewModel, rev)\r\n .toPromise()\r\n .then(newRev => { \r\n if (rev.Primary) {\r\n corr.Status = \"Assigned\";\r\n this.repo.Update(VMCorr, corr).toPromise()\r\n .then(() => { this.success(newRev, corr); });\r\n } else {\r\n this.success(newRev, corr);\r\n }\r\n });\r\n } else {\r\n this.toastr.error(\"Your session has expired. Please login, again.\");\r\n }\r\n });\r\n }\r\n\r\n success(rev: ReviewViewModel, corr: VMCorr) {\r\n let rt = rev.ReviewText ? rev.ReviewText.trim() : \"\";\r\n let ct = corr.Summary ? corr.Summary.trim() : \"\";\r\n let message = [\r\n \"Review \",\r\n rt.length ? `\"${rt.substr(0, 20)}${rt.length > 20 ? '...' : ''}\" ` : \"\",\r\n \"has been created\",\r\n ct.length ? ` for \"${ct.substr(0, 20)}${ct.length > 20 ? '...' : ''}\".` : \".\",\r\n ].join('');\r\n this.toastr.success(message);\r\n this.router.navigate([\"/correspondence\", corr.Id, \"reviews\", rev.Id]);\r\n }\r\n}\r\n","

\r\n contact-details works!\r\n

\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\n\r\n@endpoint(\"Category\")\r\nexport class CategoryViewModel extends BaseViewModel {\r\n public Name: string = \"\";\r\n public Desc: string = \"\";\r\n}\r\n","
\r\n \r\n Sort: \r\n arrow_upwards\r\n arrow_downwards\r\n \r\n \r\n Type: {{ f.Keywords[0] }} x\r\n Cat.: {{ f.Keywords[0] }} x\r\n {{ f.Keywords.join(\", \") }} x\r\n Contact: {{ f.Keywords.join(\" \") }} x\r\n Status: {{ f.Keywords.join(\" or \") }} x\r\n Reviewer: {{ f.Keywords.join(\" \") }} x\r\n \r\n \r\n \r\n
","\r\n
\r\n
\r\n

{{title}}

\r\n \r\n
\r\n \r\n
","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\nimport { ContactDetailViewModel } from './contact-detail-view-model';\r\nimport { RequestorCorrespondenceViewModel } from './requestor-correspondence-view-model';\r\n\r\n@endpoint(\"requestor\")\r\nexport class RequestorViewModel extends BaseViewModel {\r\n /** An internal nickname given by President's Office staff to frequent contacts. */\r\n public Alias: string = \"\";\r\n\r\n /** The primary title of the contact. */\r\n public Title: string = \"\";\r\n /** The organization or affiliation on behalf of whom the requestor is corresponding. */\r\n public Affiliation: string = \"\";\r\n\r\n /** Staff notes on this requestor. */\r\n public Notes: string = \"\";\r\n public FirstName: string = \"\";\r\n public MiddleName: string = \"\";\r\n public LastName: string = \"\";\r\n public get FullName(): string { return `${this.FirstName} ${this.MiddleName || \"\"} ${this.LastName}`; }\r\n public get LastFirst(): string { return `${this.LastName}, ${this.FirstName} ${this.MiddleName || \"\"}`.trim(); }\r\n public get OrgSummary(): string {\r\n if (this.Title && this.Affiliation)\r\n return `${this.Title}, ${this.Affiliation}`;\r\n else if (this.Title)\r\n return this.Title;\r\n else if (this.Affiliation)\r\n return this.Affiliation\r\n else\r\n return \"\";\r\n }\r\n\r\n @mappable(\"RequestorCorrespondenceViewModel\")\r\n public RequestorCorrespondences: RequestorCorrespondenceViewModel[] = [];\r\n\r\n @mappable(\"ContactDetailViewModel\")\r\n public ContactDetails: ContactDetailViewModel[] = [];\r\n}\r\n","\r\nimport {debounceTime, map} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CorrespondenceFilterViewModel } from '../../view-models';\r\nimport { CorrFilterServiceToken } from '../../services';\r\nimport { ICorrFilterService } from '../../services/i';\r\n\r\n@Component({\r\n selector: 'app-filtered-dashboard',\r\n templateUrl: './filtered-dashboard.component.html',\r\n styleUrls: ['./filtered-dashboard.component.css']\r\n})\r\nexport class FilteredDashboardComponent implements OnInit {\r\n public filter: Observable;\r\n public filterName: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n @Inject(CorrFilterServiceToken) private corrFilterSvc: ICorrFilterService,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.filter = this.route.params.pipe(\r\n debounceTime(100),\r\n map(params => {\r\n this.filterName = params['filter'];\r\n let filter = this.corrFilterSvc.getFilter(this.filterName);\r\n return filter;\r\n }));\r\n }\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, Inject, ValueProvider, ClassProvider, Provider, FactoryProvider } from '@angular/core';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n//'import { BrowserXhr } from '@angular/http';' is depricated a should be replaced\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MomentModule } from 'ngx-moment';\r\nimport { OAuthModule, OAuthService, OAuthStorage } from 'angular-oauth2-oidc';\r\nimport { JwtModule, JwtModuleOptions } from '@auth0/angular-jwt';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport { NgBreadcrumbModule } from 'ng-breadcrumb';\r\n//import { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\n\r\nimport { environment, OAuthConfig } from '../environments/environment';\r\nimport { BaseURI, APIBaseURI, AppConfigToken } from './app.config.tokens';\r\n\r\nimport { AuthGuard, RoleGuard } from './guards';\r\nimport { AppComponent } from './app.component';\r\nimport { routes } from './app.routes';\r\nimport {\r\n DashboardComponent, FilterViewerComponent,\r\n AddCorrespondenceComponent, AddDocumentComponent, CorrespondenceComponent, ManageContactsComponent,\r\n ManageSettingsComponent, HelpComponent, LoginComponent, ContactComponent, ContactDetailsComponent,\r\n UserManagerComponent, UserDetailsComponent, AddUserComponent, UserChooserComponent,\r\n ReviewComponent, AddReviewComponent,\r\n DownloadComponent } from './components';\r\nimport { FilterDialog } from './components/dashboard/filter.dialog';\r\nimport { ConfirmDialog, DownloadDialog } from './dialogs';\r\nimport { \r\n RepositoryServiceToken, RepositoryService,\r\n AuthenticationService, AuthenticationServiceToken,\r\n RoleService, RoleServiceToken, \r\n MapperServiceToken, MapperService,\r\n ErrorServiceToken, ErrorService,\r\n ProgressServiceToken, ProgressService,\r\n CorrFilterServiceToken, CorrFilterService,\r\n ScrollServiceToken, ScrollService,\r\n LogServiceToken\r\n\r\n} from './services';\r\nimport { PrettySize, MapToIterable } from './pipes';\r\nimport { SecuredDirective } from './directives/secured.directive';\r\nimport { ProgressInterceptor } from './customizations-of-internals/progress-interceptor';\r\n//'import { BrowserXhr } from '@angular/http';' is depricated a should be replaced\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { FilteredDashboardComponent } from './components/filtered-dashboard/filtered-dashboard.component';\r\nimport { BeforeTomorrowValidator, AfterTodayValidator } from './components/add-correspondence/validators';\r\nimport { EitherOrValidator } from './components/contact/validators/either-or.validator';\r\nimport {OrderModule} from 'ngx-order-pipe';\r\n\r\n///var es = new ErrorService();\r\nexport function storageFactory(): OAuthStorage {\r\n return localStorage;\r\n}\r\nexport function getAccessToken() {\r\n return storageFactory().getItem('access_token');\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent, \r\n AddCorrespondenceComponent,\r\n AddDocumentComponent,\r\n AddReviewComponent,\r\n DownloadComponent,\r\n ManageContactsComponent,\r\n ManageSettingsComponent,\r\n CorrespondenceComponent,\r\n DashboardComponent,\r\n FilterViewerComponent,\r\n LoginComponent,\r\n HelpComponent,\r\n SecuredDirective,\r\n FilterDialog,\r\n ConfirmDialog,\r\n DownloadDialog,\r\n ContactComponent,\r\n ContactDetailsComponent,\r\n UserManagerComponent,\r\n UserDetailsComponent,\r\n AddUserComponent,\r\n UserChooserComponent,\r\n ReviewComponent,\r\n PrettySize,\r\n HeaderComponent,\r\n FilteredDashboardComponent,\r\n BeforeTomorrowValidator,\r\n AfterTodayValidator,\r\n MapToIterable,\r\n EitherOrValidator\r\n ],\r\n imports: [\r\n BrowserModule,\r\n OrderModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MomentModule,\r\n //Ng2CompleterModule,\r\n //InfiniteScrollModule,\r\n ToastrModule.forRoot(),\r\n OAuthModule.forRoot({ resourceServer: { allowedUrls: [environment.appConfig.APIBaseURI, environment.appConfig.OAuthConfig.loginUrl ], sendAccessToken: true }}),\r\n RouterModule.forRoot(routes),\r\n MatInputModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n MatCardModule,\r\n MatDividerModule,\r\n MatListModule,\r\n MatSidenavModule,\r\n MatSelectModule,\r\n MatDialogModule,\r\n MatProgressBarModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatAutocompleteModule,\r\n MatPaginatorModule,\r\n MatChipsModule,\r\n FlexLayoutModule,\r\n NgBreadcrumbModule,\r\n HttpClientModule,\r\n JwtModule.forRoot({\r\n config: {\r\n tokenGetter: (getAccessToken)\r\n }\r\n })\r\n ],\r\n entryComponents: [\r\n FilterDialog,\r\n ConfirmDialog,\r\n DownloadDialog\r\n ],\r\n providers: [\r\n AuthGuard, RoleGuard,\r\n { provide: OAuthStorage, useFactory: storageFactory },\r\n { provide: \"authConfig\", useValue: OAuthConfig },\r\n { provide: BaseURI, useValue: environment.appConfig.BaseURI },\r\n { provide: APIBaseURI, useValue: environment.appConfig.APIBaseURI },\r\n { provide: AppConfigToken, useValue: environment.appConfig },\r\n { provide: LogServiceToken, useFactory: environment.appConfig.logFactory },\r\n { provide: AuthenticationServiceToken, useClass: AuthenticationService },\r\n { provide: RoleServiceToken, useClass: RoleService },\r\n { provide: RepositoryServiceToken, useClass: RepositoryService },\r\n { provide: CorrFilterServiceToken, useClass: CorrFilterService },\r\n { provide: MapperServiceToken, useClass: MapperService },\r\n { provide: ProgressServiceToken, useClass: ProgressService },\r\n { provide: HTTP_INTERCEPTORS, useClass: ProgressInterceptor, multi: true },\r\n //'BrowserXhr' is depricated a should be replaced\r\n { provide: ScrollServiceToken, useClass: ScrollService },\r\n //{ provide: LocationStrategy, useClass: HashLocationStrategy }\r\n { provide: ErrorServiceToken, useClass: ErrorService }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n constructor() {\r\n //private oauth: OAuthService {\r\n // fallback to local settings\r\n log.error(\"Warning: failed to load ITS AppDev OAuth discovery document. Falling back to hard-coded settings. Please investigate.\");\r\n this.oauth.loginUrl = config.OAuthConfig.FallbackLoginUrl;\r\n this.oauth.issuer = config.OAuthConfig.FallbackIssuer;\r\n this.oauth.logoutUrl = config.OAuthConfig.FallbackLogoutUrl;\r\n });\r\n this.oauth.redirectUri = config.LoginReturnURI;\r\n this.oauth.clientId = config.OAuthConfig.ClientId;\r\n this.oauth.oidc = config.OAuthConfig.Oidc;\r\n this.oauth.setStorage(config.OAuthConfig.Storage);\r\n this.oauth.scope = config.OAuthConfig.Scope; */\r\n }\r\n}\r\n","import { IViewModel } from './i-view-model';\r\n\r\nexport class BaseViewModel implements IViewModel {\r\n public Id: number = 0;\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n

Correspondence Details

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Incoming\r\n Outgoing\r\n \r\n \r\n Please specify Incoming or Outgoing correspondence.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{p}}\r\n \r\n \r\n Please specify the correspondence priority.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Please select categories for this correspondence.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{r}}\r\n \r\n \r\n Please specify received method.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please specify when this correspondence was received.\r\n \r\n \r\n The date received must be today or in the past.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please specify when a response is due.\r\n \r\n \r\n The due date must be sometime after today.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n You must enter the above fields when In/Out type is Incoming.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Contact Details

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

Correspondence Content

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Please specify the correspondence subject or title.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please specify the correspondence details.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { RequestorCorrespondenceViewModel } from './requestor-correspondence-view-model';\r\nimport { RequestorViewModel } from './requestor-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\nimport { CategoryViewModel } from './category-view-model';\r\n\r\n@endpoint(\"CorrespondenceCategory\")\r\nexport class CorrespondenceCategoryViewModel extends BaseViewModel {\r\n public CorrespondenceId: number = 0;\r\n public CategoryId: number = 0;\r\n\r\n @mappable(\"CategoryViewModel\")\r\n public Category: CategoryViewModel = null;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { OAuthErrorEvent, OAuthService } from 'angular-oauth2-oidc';\r\nimport { BehaviorSubject, combineLatest, Observable, ReplaySubject } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\n// Isn't it silly to try to make one of these auth services on our own? So, we won't.\r\n// https://github.com/jeroenheijmans/sample-angular-oauth2-oidc-with-auth-guards/blob/master/src/app/core/auth.service.ts\r\n@Injectable({ providedIn: 'root' })\r\nexport class CommunityAuthService {\r\n\r\n constructor(\r\n private oauthService: OAuthService,\r\n private router: Router,\r\n ) {\r\n // Useful for debugging:\r\n this.oauthService.events.subscribe(event => {\r\n if (event instanceof OAuthErrorEvent) {\r\n console.error(event);\r\n } else {\r\n //console.warn(event);\r\n }\r\n });\r\n\r\n // This is tricky, as it might cause race conditions (where access_token is set in another\r\n // tab before everything is said and done there.\r\n // TODO: Improve this setup.\r\n window.addEventListener('storage', (event) => {\r\n // The `key` is `null` if the event was caused by `.clear()`\r\n if (event.key !== 'access_token' && event.key !== null) {\r\n return;\r\n }\r\n\r\n console.warn('Noticed changes to access_token (most likely from another tab), updating isAuthenticated');\r\n this.isAuthenticatedSubject$.next(this.oauthService.hasValidAccessToken());\r\n\r\n if (!this.oauthService.hasValidAccessToken()) {\r\n this.navigateToLoginPage();\r\n }\r\n });\r\n\r\n this.oauthService.events\r\n .subscribe(_ => {\r\n this.isAuthenticatedSubject$.next(this.oauthService.hasValidAccessToken());\r\n });\r\n\r\n this.oauthService.events\r\n .pipe(filter(e => ['token_received'].includes(e.type)))\r\n .subscribe(e => this.oauthService.loadUserProfile());\r\n\r\n this.oauthService.events\r\n .pipe(filter(e => ['session_terminated', 'session_error'].includes(e.type)))\r\n .subscribe(e => this.navigateToLoginPage());\r\n\r\n //this.oauthService.setupAutomaticSilentRefresh();\r\n }\r\n\r\n // These normally won't be exposed from a service like this, but\r\n // for debugging it makes sense.\r\n public get accessToken() { return this.oauthService.getAccessToken(); }\r\n public get refreshToken() { return this.oauthService.getRefreshToken(); }\r\n public get identityClaims() { return this.oauthService?.getIdentityClaims(); }\r\n public get idToken() { return this.oauthService.getIdToken(); }\r\n public get logoutUrl() { return this.oauthService.logoutUrl; }\r\n\r\n private isAuthenticatedSubject$ = new BehaviorSubject(false);\r\n public isAuthenticated$ = this.isAuthenticatedSubject$.asObservable();\r\n public isAuthenticated() { /*console.log(this.oauthService.hasValidAccessToken(), this.oauthService.getAccessTokenExpiration(), \"bogus\");*/ return this.oauthService.hasValidAccessToken(); }\r\n\r\n private isDoneLoadingSubject$ = new ReplaySubject();\r\n public isDoneLoading$ = this.isDoneLoadingSubject$.asObservable();\r\n\r\n private isImpersonatedSubject$ = new BehaviorSubject(false);\r\n public isImpersonated = this.isImpersonatedSubject$.asObservable();\r\n\r\n /**\r\n * Publishes `true` if and only if (a) all the asynchronous initial\r\n * login calls have completed or errorred, and (b) the user ended up\r\n * being authenticated.\r\n *\r\n * In essence, it combines:\r\n *\r\n * - the latest known state of whether the user is authorized\r\n * - whether the ajax calls for initial log in have all been done\r\n */\r\n public canActivateProtectedRoutes$: Observable = combineLatest([\r\n this.isAuthenticated$,\r\n this.isDoneLoading$\r\n ]).pipe(map(values => values.every(b => b)));\r\n\r\n private navigateToLoginPage() {\r\n // TODO: Remember current URL\r\n this.router.navigateByUrl('/should-login');\r\n }\r\n\r\n public runInitialLoginSequence(): Promise {\r\n if (location.hash) {\r\n console.log('Encountered hash fragment, plotting as table...');\r\n console.table(location.hash.substr(1).split('&').map(kvp => kvp.split('=')));\r\n }\r\n\r\n // 0. LOAD CONFIG:\r\n // First we have to check to see how the IdServer is\r\n // currently configured:\r\n return this.oauthService.loadDiscoveryDocument()\r\n // 1. HASH LOGIN:\r\n // Try to log in via hash fragment after redirect back\r\n // from IdServer from initImplicitFlow:\r\n .then(() => this.oauthService.tryLoginCodeFlow())\r\n .then(() => {\r\n if (this.oauthService.hasValidAccessToken()) {\r\n return Promise.resolve();\r\n }\r\n\r\n // We can't handle the truth, just pass on the problem to the\r\n // next handler.\r\n return Promise.reject(\"No valid access token.\");\r\n })\r\n\r\n .then(() => {\r\n this.isDoneLoadingSubject$.next(true);\r\n\r\n // Check for the strings 'undefined' and 'null' just to be sure. Our current\r\n // login(...) should never have this, but in case someone ever calls\r\n // initImplicitFlow(undefined | null) this could happen.\r\n if (this.oauthService.state && this.oauthService.state !== 'undefined' && this.oauthService.state !== 'null') {\r\n let stateUrl = this.oauthService.state;\r\n if (stateUrl.startsWith('/') === false) {\r\n stateUrl = decodeURIComponent(stateUrl);\r\n }\r\n console.debug(`There was state of ${this.oauthService.state}, so we are sending you to: ${stateUrl}`);\r\n this.router.navigateByUrl(stateUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.error(arguments);\r\n this.isDoneLoadingSubject$.next(true)\r\n });\r\n }\r\n\r\n public login(targetUrl?: string, noState?: boolean) {\r\n // Note: before version 9.1.0 of the library you needed to\r\n // call encodeURIComponent on the argument to the method.\r\n if (! noState) {\r\n this.oauthService.initCodeFlow(targetUrl || this.router.url);\r\n return;\r\n }\r\n\r\n this.oauthService.initCodeFlow();\r\n }\r\n\r\n public logout() { this.oauthService.logOut(); }\r\n public refresh() { this.oauthService.silentRefresh(); }\r\n public hasValidToken() { return this.oauthService.hasValidAccessToken(); }\r\n\r\n \r\n // ITS-added:\r\n impersonationKey = 'impersonatedHawkId';\r\n public get isImpersonating() { return !!sessionStorage[this.impersonationKey]; }\r\n public get impersonatedHawkId() { return sessionStorage[this.impersonationKey]; }\r\n public get applicationUsername(): string { return this.isImpersonating ? this.impersonatedHawkId : this.actualUsername; }\r\n public get actualUsername(): string { return this.identityClaims ? this.identityClaims[\"sub\"] : null; }\r\n public endImpersonation() {\r\n sessionStorage.removeItem('impersonatedHawkId');\r\n this.isImpersonatedSubject$.next(false);\r\n }\r\n public impersonate(hawkId: string) {\r\n sessionStorage.impersonatedHawkId = hawkId;\r\n this.isImpersonatedSubject$.next(true);\r\n }\r\n}\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\nimport { ContactDetailViewModel } from './contact-detail-view-model';\r\nimport { RequestorViewModel } from './requestor-view-model';\r\nimport { CorrespondenceViewModel } from './correspondence-view-model';\r\nimport { mappable } from '../decorators';\r\n/**\r\n * This view model represents a relationship between Correspondences\r\n * and Requestors (whom the correspondences are from). \r\n */\r\n@endpoint(\"RequestorCorrespondence\")\r\nexport class RequestorCorrespondenceViewModel extends BaseViewModel {\r\n public RequestorId: number = 0;\r\n public CorrespondenceId: number = 0;\r\n\r\n /** AKA who the correspondence is from */\r\n @mappable(\"RequestorViewModel\")\r\n public Requestor: RequestorViewModel = null;\r\n\r\n @mappable(\"CorrespondenceViewModel\")\r\n public Correspondence: CorrespondenceViewModel = null;\r\n\r\n /** Whether this is the primary requestor on a given correspondence. */\r\n public IsPrimary: boolean = false;\r\n}\r\n","export * from './priorities';\r\nexport * from './states';\r\nexport * from './received-through';","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\nimport * as moment from 'moment';\r\n\r\n@Directive({\r\n selector: '[validateAfterToday][formControlName],[validateAfterToday][formControl],[validateAfterToday][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => AfterTodayValidator), multi: true }\r\n ]\r\n})\r\nexport class AfterTodayValidator implements Validator {\r\n today: moment.Moment = moment().add(-1, \"days\");\r\n constructor() {}\r\n \r\n validate(c: AbstractControl): { [key: string]: any } {\r\n let v = moment(c.value, \"YYYY-MM-DD\");\r\n\r\n // value not equal\r\n if (v < this.today) return {\r\n afterToday: true\r\n }\r\n return null;\r\n }\r\n}","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;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","
\r\n \r\n \r\n
\r\n
\r\n

Documents

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

{{ doc.name }} - {{ doc.size | prettySize }}

\r\n \r\n
\r\n
\r\n
0\" [ngClass]=\"{ color: size >= maxRequestLength ? '#f44336' : 'inherit' }\">\r\n

= maxRequestLength\" style='color:#f44336; margin-bottom: 10px;'>*must be less than {{ maxRequestLength | prettySize }}

\r\n

Total size: {{ size | prettySize }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Upload {{ percentCompleteDisplay }} complete.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","\r\nimport {forkJoin as observableForkJoin, Observable } from 'rxjs';\r\n\r\nimport {map} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Injectable, EventEmitter, Input, ViewContainerRef } from '@angular/core';\r\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport * as moment from 'moment/moment';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { states, priorities, receivedThrough } from '../../static-data';\r\nimport { RepositoryServiceToken, MapperServiceToken, AuthenticationServiceToken, LogServiceToken, AuthenticationService } from '../../services';\r\nimport { IRepositoryService, IMapperService, IAuthenticationService, ILogService } from '../../services/i';\r\nimport { \r\n CorrespondenceViewModel as VMCorr, \r\n CorrespondenceDocumentViewModel as VMCorDoc,\r\n CorrespondenceCategoryViewModel, \r\n DocumentViewModel,\r\n CategoryViewModel,\r\n ContactDetailViewModel, RequestorViewModel,\r\n RequestorCorrespondenceViewModel,\r\n DocumentViewModel as VMDoc,\r\n ReviewViewModel } from '../../view-models';\r\nimport { \r\n BaseFilterViewModel as CorFilter, \r\n CorrespondenceDocumentFilterViewModel as CorDocFilter,\r\n CorDocFilterType,\r\n ReviewFilterType,\r\n ReviewFilterViewModel\r\n} from '../../view-models/filters';\r\nimport { IFilterViewModel } from '../../view-models/filters/i';\r\nimport { BeforeTomorrowValidator, AfterTodayValidator } from '../add-correspondence/validators';\r\nimport { ConfirmDialog, DownloadDialog } from '../../dialogs';\r\n\r\n@Component({\r\n selector: 'app-correspondence',\r\n templateUrl: './correspondence.component.html',\r\n styleUrls: ['./correspondence.component.css']\r\n})\r\n@Injectable()\r\nexport class CorrespondenceComponent implements OnInit {\r\n editMode: boolean = false;\r\n submitAttempted: boolean = false;\r\n filter: IFilterViewModel = new CorFilter();\r\n correspondence: VMCorr = null;\r\n documentsObs: Observable;\r\n reviewsObs: Observable;\r\n categories: CategoryViewModel[] = [];\r\n activeCategories: any[] = [];\r\n states: string[] = states;\r\n priorities: string[] = priorities;\r\n receivedThrough: string[] = receivedThrough;\r\n\r\n canIntake: boolean = false;\r\n canSeeAttachments: boolean = false;\r\n canSeeReviews: boolean = false;\r\n isAdmin: boolean = false;\r\n\r\n @Input() keywords: FormControl = new FormControl();\r\n @Input() myForm: FormGroup;\r\n\r\n dialogRef: MatDialogRef;\r\n downloadDialogRef: MatDialogRef;\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n @Inject(AuthenticationServiceToken) private auth: AuthenticationService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService,\r\n private vcr: ViewContainerRef\r\n ) {\r\n\r\n this.myForm = this.buildCorrespForm();\r\n\r\n //this.myForm.disable();\r\n var filter = new CorFilter();\r\n filter.PageSize = 30;\r\n this.repo.Page(CategoryViewModel,filter).subscribe(cats => {\r\n this.categories = cats; //cats.map(c => { return { id: c.Id, text: c.Name }; });\r\n }); \r\n\r\n this.route.params.subscribe(params => {\r\n let id: number = +params['id'];\r\n this.refresh(id);\r\n });\r\n\r\n this.isAdmin = auth.hasAnyRole('Admin', 'Shepherd');\r\n this.canSeeReviews = this.isAdmin || auth.hasAnyRole('Reviewer');\r\n this.canIntake = this.isAdmin || auth.hasAnyRole('Intake') || auth.hasAnyRole('Reviewer');\r\n this.canSeeAttachments = this.isAdmin || auth.hasAnyRole('Intake') || auth.hasAnyRole('Reviewer');\r\n }\r\n\r\n openDialog(message: string): Promise {\r\n this.dialogRef = this.dialog.open(\r\n ConfirmDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.title = \"Confirm Deletion\";\r\n this.dialogRef.componentInstance.message = message;\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n return this.dialogRef.afterClosed().toPromise();\r\n }\r\n\r\n download(id: number) {\r\n this.downloadDialogRef = this.dialog.open(\r\n DownloadDialog, {\r\n disableClose: false\r\n });\r\n this.downloadDialogRef.componentInstance.title = \"Beginning secure download...\";\r\n this.downloadDialogRef.componentInstance.downloadId = id;\r\n\r\n this.downloadDialogRef.afterClosed().subscribe(result => {\r\n this.downloadDialogRef = null;\r\n });\r\n return this.downloadDialogRef.afterClosed().toPromise(); \r\n }\r\n\r\n showRequiredError(fieldPath: string[]): boolean {\r\n return this.submitAttempted && this.myForm.hasError('required', fieldPath);\r\n }\r\n\r\n showCustomError(fieldPath: string[], error: string): boolean {\r\n return this.submitAttempted && this.myForm.hasError(error, fieldPath);\r\n }\r\n\r\n enableEditing() {\r\n this.editMode = true;\r\n }\r\n\r\n cancelEdits() {\r\n this.editMode = false;\r\n this.setupCorrForm(this.correspondence);\r\n }\r\n\r\n submitting: boolean = false;\r\n saveChanges() {\r\n if (this.submitting) return;\r\n\r\n this.submitAttempted = true;\r\n let corr = this.mapper.MapJsonToVM(VMCorr, this.myForm.value);\r\n corr.Status = this.myForm.get('Status').value;\r\n corr.Id = this.correspondence.Id;\r\n if (this.myForm.invalid) {\r\n this.log.warn(\"Form not valid.\", this.myForm.errors);\r\n return;\r\n }\r\n\r\n this.submitting = true;\r\n let r = this.myForm.value;\r\n let req = (this.correspondence.RequestorCorrespondences || [])[0];\r\n let corrUpdate = this.repo.Update(VMCorr, corr).toPromise(); //.subscribe(this.onUpdate.bind(this), e => this.log.warn(e));\r\n let contact: RequestorViewModel, details: ContactDetailViewModel;\r\n contact = (req && req.Requestor) || new RequestorViewModel();\r\n details = (contact.ContactDetails || [])[0] || new ContactDetailViewModel();\r\n contact.FirstName = r.RequestorFirstName;\r\n contact.MiddleName = r.RequestorMiddleName;\r\n contact.LastName = r.RequestorLastName;\r\n contact.Notes = r.RequestorDetails;\r\n details.Address1 = r.RequestorAddress;\r\n details.City = r.RequestorCity;\r\n details.State = r.RequestorState;\r\n details.PostalCode = r.RequestorZip;\r\n details.Phone = r.RequestorPhone;\r\n details.Email = r.RequestorEmail;\r\n let promise;\r\n if (details.Id > 0) {\r\n promise = observableForkJoin(\r\n corrUpdate,\r\n this.categoryUpdates(),\r\n this.repo.Update(RequestorViewModel, contact).toPromise(),\r\n this.repo.Update(ContactDetailViewModel, details).toPromise(),\r\n ).toPromise()\r\n .then(arr => { return this.onUpdate(arr[0]); });\r\n } else if (contact.Id > 0) {\r\n details.RequestorId = contact.Id;\r\n promise = observableForkJoin(\r\n corrUpdate,\r\n this.categoryUpdates(),\r\n this.repo.Update(RequestorViewModel, contact).toPromise(),\r\n this.repo.Create(ContactDetailViewModel, details).toPromise()\r\n ).toPromise();\r\n } else {\r\n promise = observableForkJoin(\r\n corrUpdate,\r\n this.categoryUpdates(),\r\n this.repo.Create(RequestorViewModel, contact)\r\n .toPromise()\r\n .then(r => {\r\n details.Id = 0;\r\n details.RequestorId = r.Id;\r\n var join = new RequestorCorrespondenceViewModel();\r\n join.CorrespondenceId = this.correspondence.Id;\r\n join.RequestorId = r.Id;\r\n let rdp = this.repo.Create(RequestorCorrespondenceViewModel, join).toPromise();\r\n let cdp = this.repo.Create(ContactDetailViewModel, details).toPromise();\r\n return observableForkJoin(rdp, cdp).toPromise();\r\n })\r\n ).toPromise();\r\n }\r\n promise\r\n .then(arr => { this.submitting = false; this.refresh(this.correspondence.Id); })\r\n //.then(arr => { return this.onUpdate(arr[0]); })\r\n .catch(e => { this.submitting = false; this.log.warn(e); });\r\n }\r\n\r\n categoryUpdates(): Promise<[CorrespondenceCategoryViewModel[], CorrespondenceCategoryViewModel[]]> {\r\n let curCats = this.correspondence.CorrespondenceCategories;\r\n let newccvms: CorrespondenceCategoryViewModel[] = [];\r\n\r\n for (let u of this.myForm.value.Category)\r\n {\r\n let ccm = new CorrespondenceCategoryViewModel ();\r\n ccm.Id=0;\r\n ccm.CorrespondenceId=this.correspondence.Id;\r\n ccm.CategoryId=u;\r\n newccvms.push(ccm);\r\n }\r\n\r\n // delete the current categories that don't exist among the newly selected.\r\n let delIds = curCats.filter(c => newccvms.map(n => n.CategoryId).indexOf(c.CategoryId) === -1).map(c => c.Id);\r\n // create only the new ones that don't already exist on the server.\r\n newccvms = newccvms.filter(c => curCats.map(cc => +cc.CategoryId).indexOf(+c.CategoryId) === -1);\r\n \r\n let deletes = delIds.map(id => this.repo.Delete(CorrespondenceCategoryViewModel, id).toPromise());\r\n\r\n return observableForkJoin(\r\n this.repo\r\n .CreateMany(CorrespondenceCategoryViewModel, newccvms)\r\n .toPromise(),\r\n observableForkJoin(deletes)\r\n ).toPromise(); \r\n }\r\n\r\n deleteReview(id: number) {\r\n this.openDialog(`Are you sure you want to delete this review?`).then(result => {\r\n if (result) {\r\n this.repo.Delete(ReviewViewModel, id).toPromise().then(d => {\r\n this.refreshReviews(this.correspondence.Id);\r\n });\r\n }\r\n }); \r\n }\r\n\r\n sendReminder(id: number) {\r\n this.repo.Update(ReviewViewModel, { Remind: true, Id: id })\r\n .toPromise()\r\n .then(r => {\r\n this.toastr.success(`Reminder email sent to ${r.User.FullName}.`);\r\n });\r\n }\r\n\r\n removeFile(doc: DocumentViewModel) {\r\n this.openDialog(`Are you sure you want to delete ${doc.Filename}?`).then(result => {\r\n if (result) {\r\n this.repo.Delete(VMCorDoc, doc.CorrespondenceDocument.Id).toPromise().then(d => {\r\n this.refreshDocuments(this.correspondence.Id);\r\n });\r\n }\r\n });\r\n }\r\n\r\n removeReview(review: ReviewViewModel) {\r\n this.openDialog(`Are you sure you want to delete review \"${(review.ReviewText || \"\").substr(0, 30)}\"?`).then(result => {\r\n if (result) {\r\n this.repo.Delete(ReviewViewModel, review.Id).toPromise().then(d => {\r\n this.refreshReviews(this.correspondence.Id);\r\n });\r\n }\r\n }); \r\n }\r\n\r\n refresh(id: number) {\r\n this.editMode = false;\r\n this.submitAttempted = false;\r\n this.refreshCorrAndCats(id);\r\n if (this.auth.hasAnyRole(\"Shepherd\", \"Admin\", \"Intake\", \"Reviewer\")) {\r\n this.refreshDocuments(id);\r\n }\r\n if (this.auth.hasAnyRole(\"Shepherd\", \"Admin\", \"Reviewer\")) {\r\n this.refreshReviews(id);\r\n }\r\n }\r\n\r\n refreshCorrAndCats(id: number) {\r\n this.repo.Get(VMCorr, id)\r\n .subscribe(corr => {\r\n if (corr.CorrespondenceCategories)\r\n this.activeCategories = corr.CorrespondenceCategories.map(c => { return { id: c.Id, text: c.Category.Name }; });\r\n this.setupCorrForm(corr);\r\n this.correspondence = corr;\r\n //this.myForm.setValue(corr);\r\n });\r\n }\r\n\r\n refreshDocuments(id: number) {\r\n let docFilter = new CorDocFilter();\r\n docFilter.CorrespondenceId = id;\r\n docFilter.Type = CorDocFilterType.ByCorrespondenceId;\r\n this.documentsObs = this.repo.Page(VMCorDoc, docFilter).pipe(\r\n map(cdocs => cdocs.map(cd => {\r\n if (cd.Document)\r\n cd.Document.CorrespondenceDocument = cd;\r\n return cd.Document;\r\n })));\r\n }\r\n\r\n refreshReviews(id: number) {\r\n let filter = new ReviewFilterViewModel();\r\n filter.CorrespondenceId = id;\r\n filter.Type = ReviewFilterType.ByCorrespondenceId;\r\n this.reviewsObs = this.repo.Page(ReviewViewModel, filter);\r\n }\r\n\r\n setupCorrForm(corr: VMCorr) {\r\n this.myForm.get(\"Type\").setValue(corr.Type || \"Incoming\");\r\n var req = corr.RequestorCorrespondences[0];\r\n if (req && req.Requestor) { \r\n this.myForm.get(\"RequestorFullName\").setValue(req.Requestor.FullName);\r\n this.myForm.get(\"RequestorFirstName\").setValue(req.Requestor.FirstName);\r\n this.myForm.get(\"RequestorMiddleName\").setValue(req.Requestor.MiddleName);\r\n this.myForm.get(\"RequestorLastName\").setValue(req.Requestor.LastName);\r\n this.myForm.get(\"RequestorDetails\").setValue(req.Requestor.Notes);\r\n let cd = req.Requestor.ContactDetails[0];\r\n if (cd) {\r\n this.myForm.get(\"RequestorAddress\").setValue(cd.Address1);\r\n this.myForm.get(\"RequestorCity\").setValue(cd.City);\r\n this.myForm.get(\"RequestorState\").setValue(cd.State);\r\n this.myForm.get(\"RequestorZip\").setValue(cd.PostalCode);\r\n this.myForm.get(\"RequestorPhone\").setValue(cd.Phone);\r\n this.myForm.get(\"RequestorEmail\").setValue(cd.Email);\r\n }\r\n }\r\n this.myForm.get(\"Title\").setValue(corr.Title || \"\");\r\n this.myForm.get(\"Status\").setValue(corr.Status);\r\n this.myForm.get(\"Notes\").setValue(corr.Notes);\r\n this.myForm.get(\"Priority\").setValue(corr.Priority);\r\n this.myForm.get(\"Summary\").setValue(corr.Summary || \"\");\r\n this.myForm.get(\"ReceivedThrough\").setValue(corr.ReceivedThrough || \"\");\r\n this.myForm.get(\"DateReceived\").setValue(moment(corr.DateReceived).format(\"YYYY-MM-DD\") || \"\");\r\n this.myForm.get(\"DueDate\").setValue(moment(corr.DueDate).format(\"YYYY-MM-DD\") || \"\");\r\n this.myForm.get(\"Category\").setValue(corr.CorrespondenceCategories.map(cc => cc.CategoryId));\r\n }\r\n\r\n onUpdate(updated: VMCorr) {\r\n this.correspondence = updated;\r\n this.setupCorrForm(updated);\r\n this.editMode = false;\r\n }\r\n\r\n buildCorrespForm(): FormGroup {\r\n return this.fb.group({\r\n Type: ['', Validators.required],\r\n //RequestorSummary: ['', Validators.required],\r\n RequestorDetails: [''],\r\n RequestorFullName: [''],\r\n RequestorFirstName: [''],\r\n RequestorMiddleName: [''],\r\n RequestorLastName: [''],\r\n RequestorAddress: [''],\r\n RequestorCity: [''],\r\n RequestorState: [''],\r\n RequestorZip: [''],\r\n RequestorEmail: [''],\r\n RequestorPhone: [''],\r\n\r\n RequestorDetail: [''],\r\n Priority: ['', Validators.required],\r\n Status: ['', Validators.required],\r\n Title: ['', Validators.required],\r\n Category: [[], Validators.required],\r\n Summary: [''],\r\n ReceivedThrough: [''],\r\n Notes: [''],\r\n DateReceived: [\r\n new Date(), \r\n [new BeforeTomorrowValidator() ]\r\n ],\r\n DueDate: [\r\n moment().toISOString()\r\n ]\r\n },\r\n {\r\n validator: (group) => {\r\n return group.value.Type == \"Incoming\" && !(group.value.DateReceived && group.value.DueDate && group.value.ReceivedThrough)\r\n ? { datesRequired: true }\r\n : null;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() { }\r\n}\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { DocumentViewModel } from './document-view-model';\r\nimport { CorrespondenceViewModel } from './correspondence-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\n\r\n@endpoint(\"CorrespondenceDocument\")\r\nexport class CorrespondenceDocumentViewModel extends BaseViewModel {\r\n public CorrespondenceId: number = 0;\r\n public DocumentId: number = 0;\r\n\r\n @mappable(\"DocumentViewModel\")\r\n public Document: DocumentViewModel = null;\r\n\r\n @mappable(\"CorrespondenceViewModel\")\r\n public Correspondence: CorrespondenceViewModel = null;\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, NavigationExtras } from '@angular/router';\r\nimport { IRoleService } from '../services/i';\r\nimport { RoleServiceToken, LogServiceToken } from '../services';\r\nimport { ILogService } from '../services/i';\r\n\r\n@Injectable()\r\nexport class RoleGuard implements CanActivate {\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject(RoleServiceToken) private roleService: IRoleService,\r\n @Inject(LogServiceToken) private log: ILogService\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return true; \r\n \r\n this.log.debug(\"can activate?\", route.routeConfig.path);\r\n var can = this.roleService.canActivate(route.routeConfig.path, route.queryParams);\r\n this.log.debug(\"can: \", can);\r\n if (can) return can;\r\n\r\n this.router.navigate(['/help'], { fragment: \"authorization\" });\r\n return false;\r\n }\r\n}","

\r\n login works!\r\n

\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { UserRoleViewModel } from '.';\r\nimport { endpoint, mappable } from '../decorators';\r\n\r\n@endpoint(\"role\")\r\nexport class RoleViewModel extends BaseViewModel {\r\n public RoleName: string = \"\";\r\n public Description: string = \"\";\r\n\r\n @mappable(\"UserRoleViewModel\")\r\n public UserRoles: UserRoleViewModel[];\r\n}","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\n\r\n@endpoint(\"population\")\r\nexport class IDWViewModel extends BaseViewModel {\r\n public HawkId: string = \"\";\r\n public Title: string = \"\";\r\n public Department: string = \"\";\r\n public Email: string = \"\";\r\n public First: string = \"\";\r\n public Middle: string = \"\";\r\n public Last: string = \"\";\r\n public get LastFirst(): string {\r\n return `${this.Last}, ${this.First} ${this.Middle || \"\"}`;\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Available User List

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

{{ user.LastFirst }} ({{ user.HawkId }})

\r\n

{{ user.Title }}, {{ user.Department }}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { ILogService } from './i';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport class ConsoleWrapper {\r\n error(...args: any[]): void { if (console && console.error) console.error.apply(this, args); }\r\n log(...args: any[]): void { if (console && console.log) console.log.apply(this, args); }\r\n warn(...args: any[]): void { if (console && console.warn) console.warn.apply(this, args); }\r\n debug(...args: any[]): void { if (console && console.debug) console.debug.apply(this, args); }\r\n}\r\n\r\nexport class LogService extends ConsoleWrapper implements ILogService {\r\n public constructor(\r\n private _err: boolean = true,\r\n private _log: boolean = true,\r\n private _warn: boolean = true,\r\n private _debug: boolean = true)\r\n {\r\n super();\r\n }\r\n\r\n error(message?: any, ...optional: any[]): void {\r\n if (this._err && typeof message !== \"undefined\") {\r\n optional.unshift(message);\r\n super.error.apply(this, optional);\r\n }\r\n }\r\n\r\n log(message?: any, ...optional: any[]): void {\r\n if (this._log && typeof message !== \"undefined\") {\r\n optional.unshift(message);\r\n super.log.apply(this, optional);\r\n }\r\n }\r\n\r\n warn(message?: any, ...optional: any[]): void {\r\n if (this._warn && typeof message !== \"undefined\") {\r\n optional.unshift(message);\r\n super.log.apply(this, optional);\r\n }\r\n }\r\n\r\n debug(message?: any, ...optional: any[]): void {\r\n if (this._debug && typeof message !== \"undefined\") {\r\n optional.unshift(message);\r\n super.debug.apply(this, optional);\r\n }\r\n }\r\n}\r\n\r\nexport let LogServiceToken = new InjectionToken(\"ILogService\");","export * from './filters';\r\nexport * from './base-view-model';\r\nexport * from './contact-detail-view-model';\r\nexport * from './correspondence-view-model';\r\nexport * from './corr-count-view-model';\r\nexport * from './correspondence-document-view-model';\r\nexport * from './document-view-model';\r\nexport * from './document-file-view-model';\r\nexport * from './i-view-model';\r\nexport * from './idw-view-model';\r\nexport * from './requestor-view-model';\r\nexport * from './review-comment-view-model';\r\nexport * from './review-view-model';\r\nexport * from './review-document-view-model';\r\nexport * from './user-view-model';\r\nexport * from './user-role-view-model';\r\nexport * from './role-view-model';\r\nexport * from './requestor-correspondence-view-model';\r\nexport * from './i-json-auth-token-view-model';\r\nexport * from './category-view-model';\r\nexport * from './correspondence-input-model';\r\nexport * from './correspondence-category-view-model';","import { Injectable, Inject, InjectionToken } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\nimport { APIBaseURI } from '../app.config.tokens';\r\n\r\n@Injectable()\r\nexport class ProgressService {\r\n constructor(\r\n @Inject(APIBaseURI) private baseUri: string\r\n ) { }\r\n\r\n progressEventObservable:Subject = new Subject();\r\n \r\n // TODO flesh this out... allow filtering, etc.\r\n public subscribe(fn: (value: any) => void, er: (value: any) => void): Subscription {\r\n return this.progressEventObservable.subscribe(fn, er);\r\n }\r\n\r\n}\r\n\r\nexport let ProgressServiceToken = new InjectionToken(\"ProgressService\");","import { Directive, HostBinding, ContentChildren, QueryList, Inject, Injectable, ChangeDetectorRef,\r\n AfterContentInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, RouterLink, RoutesRecognized } from '@angular/router';\r\nimport { IRoleService } from '../services/i';\r\nimport { RoleServiceToken } from '../services';\r\n\r\n@Directive({\r\n selector: '[secured]'\r\n})\r\n@Injectable()\r\nexport class SecuredDirective implements OnChanges, OnDestroy, AfterContentInit {\r\n @HostBinding(\"style.display\")\r\n private display: string = \"none\";\r\n private routerSubscription: Subscription;\r\n\r\n @ContentChildren(RouterLink, { descendants: true })\r\n routerLinks:QueryList;\r\n\r\n constructor(\r\n @Inject(RoleServiceToken) private roleService: IRoleService,\r\n private router: Router,\r\n private cdr: ChangeDetectorRef) {\r\n this.routerSubscription = this.router.events.subscribe(s => {\r\n if (s instanceof RoutesRecognized)\r\n this.update();\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void { this.routerLinks.changes.subscribe(_ => this.update()); }\r\n ngOnChanges(changes: SimpleChanges): void { this.update(); }\r\n ngOnDestroy(): void { this.routerSubscription.unsubscribe(); };\r\n\r\n private update(): void {\r\n if (this.routerLinks.length > 1)\r\n throw new Error(\"More than one routerLink found within this secured element. Cannot determine whether to hide element.\");\r\n var link = this.routerLinks.toArray()[0];\r\n // TODO FIXME: could there be a better way of doing this?\r\n var path = link.urlTree.toString();\r\n this.display = this.roleService.canActivate(path, link.queryParams) ? \"\" : \"none\";\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import { Injectable, Inject, InjectionToken } from '@angular/core';\r\nimport { Subject, Subscription, Subscriber, Observable } from 'rxjs';\r\n\r\nimport { CorrespondenceFilterViewModel as CorFilter, CorrespondenceSubFilterViewModel as CorSubFilter, CorFilterType, CorrespondenceFilterViewModel } from '../view-models/filters';\r\nimport { IMapperService } from './i';\r\nimport { MapperServiceToken } from './mapper.service';\r\n\r\nimport { ICorrFilterService } from './i';\r\nimport { APIBaseURI } from '../app.config.tokens';\r\n\r\n@Injectable()\r\nexport class CorrFilterService implements ICorrFilterService {\r\n private updates$: Observable<{ [key: string]: CorFilter }>;\r\n private updatesObserver: Subscriber<{ [key: string]: CorrespondenceFilterViewModel }>;\r\n constructor(\r\n @Inject(MapperServiceToken) private mapper: IMapperService\r\n ) {\r\n this.updates$ = new Observable(observer => {\r\n this.updatesObserver = observer\r\n });\r\n }\r\n\r\n get updates(): Observable<{ [key: string]: CorFilter }> { return this.updates$; };\r\n\r\n saveFilter(name: string, filter: CorFilter): void {\r\n let filters = this.getFilterObj();\r\n filters[name] = filter;\r\n localStorage[\"filters\"] = JSON.stringify(filters);\r\n this.updatesObserver.next(filters);\r\n }\r\n\r\n removeFilter(name: string): void {\r\n let filters = this.getFilterObj();\r\n delete filters[name];\r\n localStorage[\"filters\"] = JSON.stringify(filters);\r\n this.updatesObserver.next(filters);\r\n }\r\n\r\n getFilter(name: string): CorFilter {\r\n if (name=='awaiting-review') return this.awaitingReview();\r\n return this.mapper.MapJsonToVM(CorFilter, this.getFilterObj()[name]);\r\n }\r\n\r\n getAvailableFilterNames(): string[] {\r\n return Object.keys(this.getFilterObj());\r\n }\r\n\r\n private getFilterObj(): any {\r\n try {\r\n return JSON.parse(localStorage[\"filters\"] || \"{}\");\r\n } catch (err) {\r\n return {};\r\n }\r\n }\r\n\r\n private awaitingReview(): CorFilter {\r\n let filter = new CorFilter();\r\n let subfilter = new CorSubFilter();\r\n subfilter.Type = CorFilterType.Status;\r\n subfilter.Keywords = [\"Intake\"];\r\n filter.Filters = [subfilter];\r\n return filter;\r\n }\r\n}\r\n\r\nexport let CorrFilterServiceToken = new InjectionToken(\"CorrFilterService\");","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: \"prettySize\" })\r\nexport class PrettySize implements PipeTransform {\r\n transform(value: any): string {\r\n if (value > 1 << 20) {\r\n let f = \"\" + (value / (1 << 20));\r\n let i = f.indexOf(\".\");\r\n return (i > -1 ? f.substr(0, i + 2) : f) + \"Mb\";\r\n }\r\n if (value > 1024) {\r\n let f = \"\" + (value / (1 << 10));\r\n let i = f.indexOf(\".\");\r\n return (i > -1 ? f.substr(0, i + 2) : f) + \"Kb\";\r\n }\r\n\r\n return `${value} bytes`;\r\n }\r\n}","\r\nimport {forkJoin as observableForkJoin } from 'rxjs';\r\n\r\nimport {map, startWith} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Injectable, Input } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment/moment';\r\n\r\nimport { states, priorities, receivedThrough } from '../../static-data';\r\nimport { RepositoryServiceToken, MapperServiceToken, LogServiceToken } from '../../services';\r\nimport { IRepositoryService, IMapperService, ILogService } from '../../services/i';\r\nimport { CorrespondenceViewModel as VMCorr, CorrespondenceViewModel, ContactDetailViewModel, RequestorViewModel, RequestorCorrespondenceViewModel } from '../../view-models';\r\nimport { CorrespondenceCategoryViewModel as CorrespondenceCategoryViewModel } from '../../view-models';\r\nimport { BaseFilterViewModel as CorFilter } from '../../view-models/filters';\r\nimport { IFilterViewModel } from '../../view-models/filters/i';\r\nimport { BeforeTomorrowValidator, AfterTodayValidator } from './validators';\r\nimport { CategoryViewModel } from '../../view-models'\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-add-correspondence',\r\n templateUrl: './add-correspondence.component.html',\r\n styleUrls: ['./add-correspondence.component.css']\r\n})\r\n@Injectable()\r\nexport class AddCorrespondenceComponent implements OnInit {\r\n submitAttempted: boolean = false;\r\n correspondences: VMCorr[]=[];\r\n categories : CategoryViewModel[] = [];\r\n correspondenceCategories : CorrespondenceCategoryViewModel[] = [];\r\n filter: IFilterViewModel = new CorFilter();\r\n @Input() correspCat: FormControl = new FormControl(); \r\n filteredReceivedThrough: any;\r\n receivedThroughCommon: string[] = [\"Email\", \"Phone\", \"Text Message\", \"Mail\", \"In-Person\"];\r\n priorities: string[] = priorities;\r\n //correspCat: FormControl = new FormControl(); \r\n public myForm: FormGroup = null;\r\n states: string[] = states;\r\n receivedThrough: string[] = receivedThrough;\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private location: Location,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n private toastr: ToastrService ) {}\r\n\r\n ngOnInit() {\r\n //this.repo.Page(CategoryViewModel, this.filter).subscribe(cats => this.categories = cats); \r\n this.myForm = this.fb.group({\r\n Type: ['', Validators.required],\r\n NewRequestor: this.fb.group({\r\n FirstName: [''],\r\n MiddleName: [''],\r\n LastName: [''],\r\n Details: [''], \r\n Address: [''],\r\n City: [''],\r\n State: [''],\r\n Zip: [''],\r\n Phone: [''],\r\n Email: [''],\r\n }),\r\n Priority: ['Normal', Validators.required],\r\n Title: ['', Validators.required],\r\n Category: ['', Validators.required],\r\n Summary: [''],\r\n Notes: [''],\r\n ReceivedThrough: ['Postal Mail'],\r\n DateReceived: [\r\n moment().format(\"YYYY-MM-DD\"), \r\n [ new BeforeTomorrowValidator() ]\r\n ],\r\n DueDate: [\r\n moment().format(\"YYYY-MM-DD\"),\r\n [ new AfterTodayValidator() ]\r\n ] \r\n }, {\r\n validator: (group) => {\r\n return group.value.Type == \"Incoming\" && !(group.value.DateReceived && group.value.DueDate && group.value.ReceivedThrough)\r\n ? { datesRequired: true }\r\n : null;\r\n }\r\n });\r\n\r\n this.filteredReceivedThrough = this.myForm.controls[\"ReceivedThrough\"].valueChanges.pipe(\r\n startWith(null),\r\n map(r => r ? this.receivedThroughCommon.filter(c => c.indexOf(r) >= 0) : this.receivedThroughCommon),);\r\n\r\n var filter = new CorFilter();\r\n filter.PageSize = 30;\r\n this.repo.Page(CategoryViewModel,filter).subscribe(cats => this.categories=cats); \r\n }\r\n\r\n cvm : CorrespondenceViewModel;\r\n\r\n goBack() {\r\n this.location.back();\r\n }\r\n\r\n onsubmit()\r\n {\r\n this.submitAttempted = true;\r\n\r\n let ci = this.mapper.MapJsonToVM(CorrespondenceViewModel, this.myForm.value);\r\n ci.Id = 0;\r\n ci.Status = \"Intake\";\r\n\r\n if (this.myForm.valid) {\r\n this.repo.Create(CorrespondenceViewModel, ci)\r\n .toPromise()\r\n .then(this.onCreate.bind(this), e => this.log.error(e));\r\n } else {\r\n this.log.debug(this.myForm.errors, this.myForm);\r\n }\r\n }\r\n\r\n onCreate(v: VMCorr) {\r\n var ccms: CorrespondenceCategoryViewModel[] = [];\r\n\r\n for (let u of this.myForm.value.Category)\r\n {\r\n let ccm = new CorrespondenceCategoryViewModel ();\r\n ccm.Id=0;\r\n ccm.CorrespondenceId=v.Id;\r\n ccm.CategoryId=u;\r\n ccms.push(ccm);\r\n }\r\n this.repo\r\n .CreateMany(CorrespondenceCategoryViewModel, ccms)\r\n .toPromise()\r\n .then(() => {\r\n let contact = new RequestorViewModel();\r\n let r = this.myForm.value.NewRequestor;\r\n contact.FirstName = r.FirstName;\r\n contact.MiddleName = r.MiddleName;\r\n contact.LastName = r.LastName;\r\n contact.Notes = r.Details;\r\n return this.repo.Create(RequestorViewModel, contact).toPromise();\r\n })\r\n .then(rvm => {\r\n let details = new ContactDetailViewModel();\r\n let r = this.myForm.value.NewRequestor;\r\n details.RequestorId = rvm.Id;\r\n details.Address1 = r.Address;\r\n details.City = r.City;\r\n details.State = r.State;\r\n details.PostalCode = r.Zip;\r\n details.Phone = r.Phone;\r\n details.Email = r.Email;\r\n var join = new RequestorCorrespondenceViewModel();\r\n join.CorrespondenceId = v.Id;\r\n join.RequestorId = rvm.Id;\r\n\r\n let rdp = this.repo.Create(RequestorCorrespondenceViewModel, join).toPromise();\r\n let cdp = this.repo.Create(ContactDetailViewModel, details).toPromise();\r\n return observableForkJoin([rdp, cdp]).toPromise();\r\n })\r\n .then(() => {\r\n let message = `Correspondence \"${(v.Title || \"\").substr(0, 20)}\" has been created.`;\r\n this.toastr.success(message);\r\n this.router.navigate(['/correspondence', v.Id]);\r\n }, e => this.log.error(e));\r\n }\r\n\r\n showRequiredError(fieldPath: string[]): boolean {\r\n return this.submitAttempted && this.myForm.hasError('required', fieldPath);\r\n }\r\n\r\n showCustomError(fieldPath: string[], error: string): boolean {\r\n return this.submitAttempted && this.myForm.hasError(error, fieldPath);\r\n }\r\n}\r\n","import { Injectable, InjectionToken, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\n//import { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { IJsonAuthTokenViewModel as IJWT, UserViewModel } from '../view-models';\r\nimport { LogServiceToken } from './log.service';\r\nimport { IAuthenticationService, ILogService } from './i';\r\nimport { CommunityAuthService } from './community-auth.service';\r\n\r\n\r\n// Originally from http://jasonwatmore.com/post/2016/08/16/angular-2-jwt-authentication-example-tutorial\r\n\r\n@Injectable()\r\nexport class AuthenticationService {\r\n constructor(\r\n private oAuth: OAuthService,\r\n private communityAuth: CommunityAuthService,\r\n //private helper: JwtHelperService,\r\n @Inject(LogServiceToken) private log: ILogService) {}\r\n private decodedToken: any = null;\r\n get token(): string { return this.oAuth.getAccessToken(); }\r\n get isAuthenticated(): boolean { return !! this.token && ! this.isSessionExpired; }\r\n get username(): string { return this.jsonToken && this.jsonToken.sub || null; }\r\n get roles(): string[] {\r\n const user = this.getUserInfo();\r\n return user?.UserRoles?.map(r => r?.Role?.RoleName);\r\n /*return this.jsonToken && (typeof(this.jsonToken.role) == \"string\"\r\n ? [ this.jsonToken.role ]\r\n : this.jsonToken.role) || [];*/\r\n }\r\n get isSessionExpired(): boolean { return this.oAuth.getAccessTokenExpiration() < Date.now(); }\r\n get sessionExpiration(): Date { return new Date(this.oAuth.getAccessTokenExpiration()); }\r\n get jsonToken(): IJWT { return this.oAuth.getIdentityClaims() as IJWT; }\r\n get stateDescription(): string {\r\n if (this.token && this.isSessionExpired)\r\n return \"Session expired.\";\r\n else if (this.isAuthenticated)\r\n return \"Logged in.\";\r\n else\r\n return \"Not logged in.\";\r\n }\r\n\r\n public getToken(): any {\r\n // console.log('here i am ' , this.token);\r\n return this.token;\r\n }\r\n\r\n public getAccept(): string {\r\n return 'application/json';\r\n }\r\n authorizeRequest(headers: Headers): Headers {\r\n headers.append(\"Accept\", \"application/json\");\r\n headers.append(\"Authorization\", \"Bearer \" + this.token);\r\n return headers;\r\n }\r\n hasRole(role: string): boolean { return this.roles && this.roles.indexOf(role) != -1 || false; }\r\n hasAnyRole(...rs: string[]): boolean {\r\n if (rs.length == 0)\r\n return this.roles.length > 0;\r\n\r\n return this.roles && rs.filter(r => this.roles.indexOf(r) != -1).length > 0;\r\n }\r\n hasAllRoles(...rs: string[]): boolean {\r\n if (rs.length == 0)\r\n throw new Error(\"No roles requested in order to be authorized. Is this a typo?\");\r\n return this.roles && rs.filter(r => this.roles.indexOf(r) != -1).length == rs.length;\r\n }\r\n beginLoginFlow(): void { this.oAuth.initImplicitFlow(); }\r\n checkForLogin(): Promise { return this.oAuth.tryLogin().then(() => this.oAuth.getIdentityClaims()); }\r\n setUserInfo(user: T): void {\r\n localStorage.setItem(\"userInfo\", JSON.stringify(user));\r\n }\r\n getUserInfo(): T {\r\n let user = localStorage.getItem(\"userInfo\");\r\n try {\r\n return JSON.parse(user);\r\n } catch(err) {\r\n return null;\r\n }\r\n }\r\n logout(): void { this.oAuth.logOut(); }\r\n}\r\n\r\nexport let AuthenticationServiceToken = new InjectionToken(\"IAuthenticationServiceToken\");\r\n\r\n","import { Component, OnInit, Inject, ViewChild, ElementRef, InjectionToken } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators, Validator } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { RepositoryServiceToken, MapperServiceToken, ProgressServiceToken,\r\n ErrorServiceToken, LogServiceToken,\r\n ProgressService } from '../../services';\r\nimport { IRepositoryService, IMapperService, IErrorService, ILogService } from '../../services/i';\r\nimport {\r\n DocumentViewModel, CorrespondenceViewModel,\r\n ReviewViewModel,\r\n ReviewDocumentViewModel,\r\n CorrespondenceInputModel as CorrespondenceInputModel,\r\n CorrespondenceDocumentViewModel\r\n} from '../../view-models';\r\n\r\n@Component({\r\n selector: 'app-add-document',\r\n templateUrl: './add-document.component.html',\r\n styleUrls: ['./add-document.component.css']\r\n})\r\nexport class AddDocumentComponent implements OnInit {\r\n computedTitle: string;\r\n whoAmI: InjectionToken = new InjectionToken(\"AddDocumentComponent\");\r\n mode: string = \"correspondence\";\r\n get Id(): number { return this.mode == \"correspondence\" ? this.cvm.Id : this.rvm.Id; }\r\n cvm: CorrespondenceViewModel;\r\n rvm: ReviewViewModel;\r\n documents: File[] = [];\r\n maxRequestLength: number = 30*(1<<20);\r\n size: number = 0;\r\n disabled: boolean = false;\r\n percentComplete: number = 0;\r\n percentCompleteDisplay: string = \"0%\";\r\n @ViewChild(\"fileChooserForm\") chooser: ElementRef;\r\n @ViewChild(\"fileInput\") fileInput: ElementRef;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n @Inject(ErrorServiceToken) private errors: IErrorService,\r\n @Inject(ProgressServiceToken) private progress: ProgressService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n ) {\r\n this.computedTitle = \r\n 'Add Documents to '\r\n + (this.mode == \"correspondence\" ? \"Correspondence\" : \"Review\");\r\n }\r\n\r\n ngOnInit() {\r\n this.route.params.subscribe(params => {\r\n let id: number = +params['id'] || +params['cid'];\r\n let rid: number = +params['rid'];\r\n if (id) {\r\n this.repo.Get(CorrespondenceViewModel, id)\r\n .toPromise()\r\n .then(corr => {\r\n this.cvm = corr\r\n if (this.mode == \"correspondence\" && corr && corr.Title)\r\n this.computedTitle += ` \"${corr.Title.substr(0, 30).trim()}...\"`;\r\n });\r\n if (rid) {\r\n this.mode = \"review\";\r\n this.repo.Get(ReviewViewModel, rid)\r\n .toPromise()\r\n .then(r => { \r\n this.rvm = r;\r\n if (this.mode != \"correspondence\" && r && r.ReviewText)\r\n this.computedTitle += ` \"${r.ReviewText.substr(0, 30).trim()}...\"`;\r\n });\r\n }\r\n } else {\r\n this.errors.broadcast(\"Error\", this.whoAmI, \"Internal application error. Please report.\");\r\n }\r\n });\r\n\r\n this.progress.subscribe((e: ProgressEvent) => {\r\n this.log.log(\"Progress\", e.loaded, e.total, e);\r\n if (e.total > 0) {\r\n this.percentComplete = e.loaded / e.total * 100;\r\n let p = \"\" + (Math.round(this.percentComplete * 10) / 10);\r\n let i = p.indexOf(\".\");\r\n this.percentCompleteDisplay = i > -1 ? p.substr(0, i + 2) : p;\r\n }\r\n }, e => {\r\n this.disabled = false;\r\n this.errors.broadcast(\"Error\", this.whoAmI, \"Unknown error during upload. Please retry or contact support.\");\r\n });\r\n }\r\n\r\n fontRefs = {\r\n \"image/png\" : \"fa-file-picture-o\",\r\n \"image/gif\" : \"fa-file-picture-o\",\r\n \"image/jpeg\" : \"fa-file-picture-o\",\r\n \"application/pdf\": \"fa-file-pdf-o\",\r\n \"application/excel\": \"fa-file-excel-o\",\r\n \"application/msword\": \"fa-file-word-o\",\r\n \"text/plain\": \"fa-file-text\"\r\n };\r\n fileChangeEvent($event) {\r\n var files = $event.target.files;\r\n for (var i=0; i d[\"selected\"])\r\n .reduce((s: number, d: File) => d[\"selected\"] ? d.size + s : s, 0);\r\n }\r\n\r\n removeFileFromUpload(file: File) {\r\n var i = this.documents.indexOf(file);\r\n this.documents.splice(i, 1);\r\n this.updateMetrics();\r\n }\r\n\r\n clearUnselectedFromUpload() {\r\n let tempDocs = [];\r\n for(var i=0; i this.maxRequestLength)\r\n return;\r\n\r\n this.disabled = true;\r\n let self = this;\r\n \r\n let count = 0;\r\n var form = this.documents.reduce(\r\n (form: FormData, cur: File) => {\r\n count = count + 1;\r\n form.append(\"files\", cur, cur.name);\r\n return form;\r\n }, new FormData());\r\n let promise = self.repo.CreateMany(DocumentViewModel, form).toPromise();\r\n promise.catch(e => {\r\n this.disabled = false;\r\n this.errors.broadcast(\"Error\", this.whoAmI, \"Unknown error during upload. Please retry or contact support.\");\r\n });\r\n if (this.mode == \"correspondence\") {\r\n promise.then(\r\n (docs: DocumentViewModel[]) => {\r\n let vms = docs.map((d) => this.mapper.MapJsonToVM(CorrespondenceDocumentViewModel, { CorrespondenceId: this.cvm.Id, DocumentId: d.Id }));\r\n return this.repo.CreateMany(CorrespondenceDocumentViewModel, vms).toPromise();\r\n })\r\n .then(\r\n (cdvms: CorrespondenceDocumentViewModel[] | ReviewViewModel[]) => {\r\n this.router.navigate([\"/correspondence\", this.cvm.Id]);\r\n }\r\n )\r\n .catch(e => {\r\n this.disabled = false;\r\n this.errors.broadcast(\"Error\", this.whoAmI, \"Unknown error during upload. Please retry or contact support.\");\r\n })\r\n } else if (this.mode == \"review\") {\r\n promise.then(\r\n (docs: DocumentViewModel[]) => {\r\n this.log.debug(this.rvm);\r\n let vms = docs.map((d) => this.mapper.MapJsonToVM(\r\n ReviewDocumentViewModel, \r\n { ReviewId: this.rvm.Id, DocumentId: d.Id }));\r\n return this.repo.CreateMany(ReviewDocumentViewModel, vms).toPromise();\r\n })\r\n .then(\r\n (cdvms: ReviewDocumentViewModel[]) => {\r\n this.router.navigate([\"/correspondence\", this.cvm.Id, \"reviews\", this.rvm.Id]);\r\n }\r\n ).catch(e => { \r\n this.disabled = false;\r\n this.errors.broadcast(\"Error\", this.whoAmI, \"Unknown error during upload. Please retry or contact support.\");\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { InjectionToken, Inject, Injectable } from '@angular/core';\r\nimport { IMapperService, ILogService } from './i';\r\nimport { getMappableProperties } from '../decorators';\r\nimport { LogServiceToken } from './log.service';\r\nimport * as viewModels from '../view-models';\r\n\r\n@Injectable()\r\nexport class MapperService implements IMapperService {\r\n public constructor(\r\n @Inject(LogServiceToken) private log: ILogService\r\n ) { }\r\n\r\n dict: { [key: string]: viewModels.BaseViewModel } = {};\r\n\r\n /** Recursively maps JSON into a ViewModel. This is required in order to get the ViewModel's methods.\r\n * Typecasting is not sufficient. Uses @mappable attribute on destination ViewModel to determine\r\n * whether and how to map related ViewModels.\r\n * @param {instantiable} t The constructable destination view model.\r\n * @param {any} json The source JSON object.\r\n * @param {boolean} unmappedWarning Whether to warn if a destination property does not exist. Default: true.\r\n * @return {T} The constructed view model with all of its properties mapped from the source json.\r\n * @example MapJsonToVM(UserViewModel, userJson);\r\n */\r\n public MapJsonToVM(t: { new (): T }, json: any, unmappedWarning = true): T {\r\n let vm = new t();\r\n var tprops = getMappableProperties(vm);\r\n for(var prop of Object.keys(json || {})) {\r\n let desc = Object.getOwnPropertyDescriptor(vm, prop);\r\n if (!desc || !desc.writable)\r\n continue;\r\n\r\n // If there is an explicit mappable, map no matter what.\r\n if (typeof tprops[prop] === \"string\") {\r\n //if (! viewModels.hasOwnProperty(tprops[prop]))\r\n // this.log.warn(`View model ${tprops[prop]} does not exist. Did you type it correctly?`);\r\n // If either the source or destination is iterable,\r\n // map as an iterable. This is not ideal, but neither\r\n // is Typescript. :-P\r\n if (this.iterable(vm, json, prop)) {\r\n vm[prop] = this.MapJsonToVMArray(viewModels[tprops[prop]], json[prop]);\r\n } else {\r\n vm[prop] = this.MapJsonToVM(viewModels[tprops[prop]], json[prop]);\r\n }\r\n }\r\n else if (typeof vm[prop] !== \"undefined\") {\r\n vm[prop] = json[prop];\r\n }\r\n else if (unmappedWarning) {\r\n this.log.warn(`Property ${prop} is not mapped. Are you missing a destination property, default value, or @mappable attribute?`);\r\n }\r\n }\r\n\r\n return vm;\r\n }\r\n\r\n /** determines whether either the source json or destination view model property is iterable. */\r\n private iterable(vm: T, json: any, prop: string): boolean {\r\n return (vm[prop] && typeof vm[prop][Symbol.iterator] === 'function')\r\n || (json[prop] && typeof json[prop][Symbol.iterator] === 'function');\r\n }\r\n\r\n /**\r\n * Recursively maps a JSON array to a ViewModel array. This is required in order to get the ViewModel's\r\n * methods. Typecasting is not sufficient. Uses @mappable attribute on destination ViewModel to determine\r\n * whether and how to map related ViewModels.\r\n * @param {instantiable} t The constructable destination view model.\r\n * @param {any[]} json The source JSON array.\r\n * @param {boolean} unmappedWarning Whether to warn if a destination property does not exist. Default: true.\r\n * @return {T[]} The constructed view model array with all of its member properties mapped from the source json.\r\n * @example MapJsonToVM(UserViewModel, userJson);\r\n */\r\n public MapJsonToVMArray(t: { new (): T }, json: any[]): T[] {\r\n let arr = [];\r\n for(var i=0; i this.updateUI(users[0]));\r\n }\r\n\r\n updateUI(user: UserViewModel) {\r\n this.user = user;\r\n this.settingsForm.get(\"Email\").setValue(this.user.Email);\r\n this.settingsForm.get(\"EmailNotifications\").setValue(this.user.EmailNotifications ? \"1\" : \"0\");\r\n }\r\n\r\n save() {\r\n this.user.Email = this.settingsForm.value.Email;\r\n this.user.EmailNotifications = this.settingsForm.value.EmailNotifications == \"1\";\r\n this.repo.Update(UserViewModel, this.user)\r\n .toPromise()\r\n .then(u => this.updateUI(u));\r\n }\r\n\r\n}\r\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { tap } from 'rxjs/operators';\r\nimport { ProgressServiceToken, ProgressService } from '../services';\r\n\r\n@Injectable()\r\nexport class ProgressInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(ProgressServiceToken) private service:ProgressService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler) {\r\n return next.handle(req)\r\n .pipe(\r\n tap(\r\n event => this.service.progressEventObservable.next(event),\r\n event => this.service.progressEventObservable.error(event)\r\n )\r\n \r\n // finalize when observable\r\n // finalize(() => { })\r\n );\r\n }\r\n\r\n /*build(): any {\r\n let xhr = super.build();\r\n xhr.upload.onprogress = (event) => {\r\n this.service.progressEventObservable.next(event);\r\n };\r\n xhr.upload.onerror = (event) => {\r\n this.service.progressEventObservable.error(event);\r\n };\r\n return (xhr); \r\n } */\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

Add Reviewer

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

User *

\r\n

{{ (reviewerObs | async)?.FullName || \"None selected\" }}

\r\n
\r\n \r\n \r\n Please select categories for this correspondence.\r\n \r\n
\r\n \r\n
\r\n

Reviewer Status *

\r\n \r\n Primary Reviewer\r\n FYI Reviewer\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {{ s.value }}\r\n \r\n \r\n \r\n Please choose an initial status for this review.\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\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 { BaseViewModel } from './base-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\nimport { UserRoleViewModel } from '.';\r\n\r\n@endpoint(\"user\")\r\nexport class UserViewModel extends BaseViewModel {\r\n public HawkId: string = \"\";\r\n public First: string = \"\";\r\n public Middle: string = \"\";\r\n public Last: string = \"\";\r\n public Email: string = \"\";\r\n public Department: string = \"\";\r\n public Title: string = \"\";\r\n public EmailNotifications: boolean = true;\r\n\r\n @mappable(\"UserRoleViewModel\")\r\n public UserRoles: UserRoleViewModel[] = null;\r\n\r\n public get FullName(): string { return `${this.First} ${this.Last}`; }\r\n public get LastFirst(): string { return `${this.Last}, ${this.First} ${this.Middle || \"\"}`.trim(); }\r\n public get RolesSummary(): string { \r\n return (this.UserRoles || [])\r\n .filter(ur => ur.Role && ur.Role.RoleName && ur.Role.RoleName != 'ValidUser')\r\n .map(ur => ur.Role.RoleName)\r\n .join(\", \");\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n

{{ person.LastFirst }}{{ person.Alias ? ', AKA \"' + person.Alias + '\"\"' : \"\" }}

\r\n

{{ person.OrgSummary }}

\r\n
\r\n \r\n \r\n
\r\n
","export let receivedThroughDict: { [key: string]: string } = {\r\n \"Email\": \"Email\",\r\n \"Postal Mail\": \"Postal Mail\",\r\n \"Phone\": \"Phone\",\r\n \"In-Person\": \"In-Person\",\r\n \"Text Message\": \"Text Message\",\r\n \"Parcel\": \"Parcel\",\r\n \"Other\": \"Other\"\r\n};\r\n\r\nexport let receivedThrough: string[] = Object.keys(receivedThroughDict).map(k => receivedThroughDict[k]);"," export let stateKeys: { [key: string]: string } = {\r\n \"AL\": \"Alabama\",\r\n \"AK\": \"Alaska\",\r\n \"AS\": \"American Samoa\",\r\n \"AZ\": \"Arizona\",\r\n \"AR\": \"Arkansas\",\r\n \"CA\": \"California\",\r\n \"CO\": \"Colorado\",\r\n \"CT\": \"Connecticut\",\r\n \"DE\": \"Delaware\",\r\n \"DC\": \"District Of Columbia\",\r\n \"FM\": \"Federated States Of Micronesia\",\r\n \"FL\": \"Florida\",\r\n \"GA\": \"Georgia\",\r\n \"GU\": \"Guam\",\r\n \"HI\": \"Hawaii\",\r\n \"ID\": \"Idaho\",\r\n \"IL\": \"Illinois\",\r\n \"IN\": \"Indiana\",\r\n \"IA\": \"Iowa\",\r\n \"KS\": \"Kansas\",\r\n \"KY\": \"Kentucky\",\r\n \"LA\": \"Louisiana\",\r\n \"ME\": \"Maine\",\r\n \"MH\": \"Marshall Islands\",\r\n \"MD\": \"Maryland\",\r\n \"MA\": \"Massachusetts\",\r\n \"MI\": \"Michigan\",\r\n \"MN\": \"Minnesota\",\r\n \"MS\": \"Mississippi\",\r\n \"MO\": \"Missouri\",\r\n \"MT\": \"Montana\",\r\n \"NE\": \"Nebraska\",\r\n \"NV\": \"Nevada\",\r\n \"NH\": \"New Hampshire\",\r\n \"NJ\": \"New Jersey\",\r\n \"NM\": \"New Mexico\",\r\n \"NY\": \"New York\",\r\n \"NC\": \"North Carolina\",\r\n \"ND\": \"North Dakota\",\r\n \"MP\": \"Northern Mariana Islands\",\r\n \"OH\": \"Ohio\",\r\n \"OK\": \"Oklahoma\",\r\n \"OR\": \"Oregon\",\r\n \"PW\": \"Palau\",\r\n \"PA\": \"Pennsylvania\",\r\n \"PR\": \"Puerto Rico\",\r\n \"RI\": \"Rhode Island\",\r\n \"SC\": \"South Carolina\",\r\n \"SD\": \"South Dakota\",\r\n \"TN\": \"Tennessee\",\r\n \"TX\": \"Texas\",\r\n \"UT\": \"Utah\",\r\n \"VT\": \"Vermont\",\r\n \"VI\": \"Virgin Islands\",\r\n \"VA\": \"Virginia\",\r\n \"WA\": \"Washington\",\r\n \"WV\": \"West Virginia\",\r\n \"WI\": \"Wisconsin\",\r\n \"WY\": \"Wyoming\"\r\n};\r\nexport let states: string[] = Object.keys(stateKeys).map(k => stateKeys[k]);","\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Injectable, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { RepositoryServiceToken, LogServiceToken } from '../../services';\r\nimport { IRepositoryService, ILogService } from '../../services/i';\r\nimport { UserViewModel, RoleViewModel } from '../../view-models';\r\nimport { BaseFilterViewModel, UserFilterViewModel, UserFilterType } from '../../view-models/filters';\r\n\r\n@Component({\r\n selector: 'app-user-chooser',\r\n templateUrl: './user-chooser.component.html',\r\n styleUrls: ['./user-chooser.component.css']\r\n})\r\n@Injectable()\r\nexport class UserChooserComponent implements OnInit {\r\n\r\n users: UserViewModel[] = [];\r\n roles: RoleViewModel[] = [];\r\n filter: UserFilterViewModel = new UserFilterViewModel();\r\n latestKeywords: string = null;\r\n latestRole: number = null;\r\n @Input() keywords: FormControl = new FormControl();\r\n @Input() userRole: FormControl = new FormControl();\r\n @Input() form: FormGroup = new FormGroup({ keywords: this.keywords, role: this.userRole });\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {\r\n this.keywords.valueChanges.pipe(\r\n debounceTime(400))\r\n .subscribe(kw => { this.latestKeywords = kw; this.updateResults(); });\r\n this.userRole.valueChanges\r\n .subscribe(role => {\r\n this.latestRole = role; this.updateResults();\r\n });\r\n }\r\n\r\n updateResults() {\r\n this.filter.Keywords = (this.latestKeywords || \"\").split(\" \");\r\n if (this.latestRole) {\r\n this.filter.Type = UserFilterType.RoleAndKeywords;\r\n this.filter.RoleId = this.latestRole;\r\n } else {\r\n this.filter.Type = UserFilterType.AnyRoleAndKeywords;\r\n this.filter.RoleIds = this.roles.map(r => r.Id);\r\n }\r\n this.log.debug(this.filter.RoleIds);\r\n this.repo.Page(UserViewModel, this.filter)\r\n .subscribe(value => { this.users = value; });\r\n }\r\n\r\n chooseUser(user: UserViewModel) {\r\n this.route.queryParams.subscribe(p => {\r\n let ret = p[\"return\"] + `?userId=${user.Id}`;\r\n this.router.navigateByUrl(ret);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(p => {\r\n let rolesSubset = p[\"roles\"] || null;\r\n this.keywords.setValue(\"\");\r\n var roleFilter = new BaseFilterViewModel();\r\n roleFilter.PageSize = 50;\r\n let blank = {};\r\n blank.Id = null;\r\n blank.RoleName = \"\";\r\n this.repo.Page(RoleViewModel, roleFilter)\r\n .subscribe(roles => {\r\n if (rolesSubset)\r\n this.roles = roles.filter(r => rolesSubset.indexOf(r.RoleName) >= 0);\r\n else\r\n this.roles = roles;\r\n this.roles.unshift(blank);\r\n this.updateResults();\r\n });\r\n });\r\n }\r\n\r\n}","\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Injectable, EventEmitter, Input, InjectionToken } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { RepositoryService, RepositoryServiceToken, LogServiceToken, ErrorServiceToken } from '../../services';\r\nimport { IRepositoryService, ILogService, IErrorService } from '../../services/i';\r\nimport { UserViewModel, RoleViewModel } from '../../view-models';\r\nimport { BaseFilterViewModel, UserFilterViewModel, UserFilterType } from '../../view-models/filters';\r\nimport { IFilterViewModel } from '../../view-models/filters/i';\r\nimport { ConfirmDialog } from '../../dialogs';\r\n\r\n@Component({\r\n selector: 'app-user-manager',\r\n templateUrl: './user-manager.component.html',\r\n styleUrls: ['./user-manager.component.css']\r\n})\r\n@Injectable()\r\nexport class UserManagerComponent implements OnInit {\r\n dialogRef: MatDialogRef;\r\n users: UserViewModel[] = [];\r\n order: string = 'LastFirst';\r\n roles: RoleViewModel[] = [];\r\n filter: UserFilterViewModel = new UserFilterViewModel();\r\n latestKeywords: string = null;\r\n latestRole: number = null;\r\n @Input() keywords: FormControl = new FormControl();\r\n @Input() userRole: FormControl = new FormControl();\r\n @Input() form: FormGroup = new FormGroup({ keywords: this.keywords, role: this.userRole });\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n @Inject(ErrorServiceToken) private errors: IErrorService,\r\n public dialog: MatDialog,\r\n private route: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n this.keywords.valueChanges.pipe(\r\n debounceTime(400))\r\n .subscribe(kw => { this.latestKeywords = kw; this.updateResults(); });\r\n this.userRole.valueChanges\r\n .subscribe(role => { this.latestRole = role; this.updateResults(); })\r\n }\r\n\r\n updateResults() {\r\n this.filter.Keywords = this.latestKeywords.split(\" \");\r\n this.filter.Type = UserFilterType.RoleAndKeywords;\r\n this.filter.RoleId = this.latestRole;\r\n this.repo.Page(UserViewModel, this.filter)\r\n .subscribe(value => { this.users = value; });\r\n }\r\n\r\n openDialog(message: string): Promise {\r\n this.dialogRef = this.dialog.open(\r\n ConfirmDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.title = \"Confirm Removal\";\r\n this.dialogRef.componentInstance.message = message;\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n return this.dialogRef.afterClosed().toPromise();\r\n }\r\n\r\n removeUser(user: UserViewModel) {\r\n this.openDialog(`Are you sure you want to remove ${user.FullName}?`)\r\n .then(confirm => {\r\n if (confirm) {\r\n this.repo.Delete(UserViewModel, user.Id)\r\n .toPromise()\r\n .then(r => {\r\n this.updateResults();\r\n })\r\n .catch(e => {\r\n this.errors.broadcast(\"Error\", UserManagerComponentToken, `Unabled to remove user ${user.FullName}.`);\r\n this.log.warn(\"Error: \", e);\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n let blank = {};\r\n blank.RoleName = '';\r\n blank.Id = '';\r\n this.keywords.setValue(\"\");\r\n var roleFilter = new UserFilterViewModel();\r\n roleFilter.PageSize = 50;\r\n this.repo\r\n .Page(RoleViewModel, roleFilter)\r\n .subscribe(roles => { this.roles = roles; this.roles.unshift(blank); });\r\n }\r\n\r\n}\r\n\r\nexport let UserManagerComponentToken = new InjectionToken(\"UserManagerComponent\");\r\n","import { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { RequestorCorrespondenceViewModel } from './requestor-correspondence-view-model';\r\nimport { CorrespondenceCategoryViewModel } from './correspondence-category-view-model';\r\nimport { RequestorViewModel } from './requestor-view-model';\r\nimport { endpoint, mappable } from '../decorators';\r\n\r\n@endpoint('Count')\r\nexport class CorrCountViewModel extends BaseViewModel {\r\n Count: number = null;\r\n}\r\n","export let prioritiesDict: { [key: string]: string } = {\r\n \"Normal\": \"Normal\",\r\n \"Urgent\": \"Urgent\",\r\n \"Low-Priority\": \"Low-Priority\"\r\n};\r\n\r\nexport let priorities: string[] = Object.keys(prioritiesDict).map(k => prioritiesDict[k]);","import { Injectable, Inject, InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class ScrollService {\r\n\r\n private scroll$: Observable;\r\n private scrollObserver: any;\r\n\r\n constructor() {\r\n this.scroll$ = new Observable(observer => {\r\n this.scrollObserver = observer\r\n });\r\n }\r\n\r\n getObservable(): Observable {\r\n return this.scroll$;\r\n }\r\n\r\n scroll($event) {\r\n this.scrollObserver.next($event);\r\n }\r\n}\r\n\r\nexport let ScrollServiceToken = new InjectionToken(\"IScrollServiceToken\");","import { HttpParams } from '@angular/common/http';\r\nimport { BaseFilterViewModel } from './base-filter-view-model';\r\nimport { Operator } from './operator';\r\n\r\nexport class CorrespondenceDocumentFilterViewModel extends BaseFilterViewModel {\r\n public Type: CorDocFilterType = CorDocFilterType.ByCorrespondenceId;\r\n public CorrespondenceId: number = 0;\r\n\r\n public getAsHttpParams(): HttpParams {\r\n var params = super.getAsHttpParams();\r\n params = params.append('filter.Type', encodeURIComponent(`${this.Type}`));\r\n params = params.append('filter.CorrespondenceId', encodeURIComponent(`${this.CorrespondenceId}`));\r\n return params;\r\n }\r\n}\r\n\r\nexport enum CorDocFilterType {\r\n ByCorrespondenceId = 0x1,\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n

Correspondence

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

Date Received

\r\n

{{ myForm.get('DateReceived').value }}

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

Due Date

\r\n

{{ myForm.get('DueDate').value }}

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

Status

\r\n

{{ myForm.get('Status').value }}

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

Incoming/Outgoing

\r\n

{{ myForm.get('Type').value }}

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

Priority

\r\n

{{ myForm.get('Priority').value }}

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

Received Through

\r\n

{{ myForm.get('ReceivedThrough').value }}

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

Categories

\r\n

\r\n \r\n {{corCat.Category.Name}}\r\n

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

Requestor Name

\r\n

{{ myForm.get('RequestorFullName').value }}

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

Requestor Details/Notes

\r\n

{{ myForm.get('RequestorDetails').value }}

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

Address

\r\n

{{ myForm.get('RequestorAddress').value }}

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

City

\r\n

{{ myForm.get('RequestorCity').value }}

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

State

\r\n

{{ myForm.get('RequestorState').value }}

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

Zip

\r\n

{{ myForm.get('RequestorZip').value }}

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

Phone Number

\r\n

{{ myForm.get('RequestorPhone').value }}

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

Email

\r\n

{{ myForm.get('RequestorEmail').value }}

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

Title

\r\n

{{ myForm.get('Title').value }}

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

Summary

\r\n

{{ myForm.get('Summary').value }}

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

Notes

\r\n

{{ myForm.get('Notes').value }}

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

Edit Correspondence

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Please specify when this correspondence was received.\r\n \r\n \r\n The date received must be in the past.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Please specify when a response is due.\r\n \r\n \r\n The due date must be sometime after today.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Intake\r\n Assigned\r\n Completed\r\n \r\n \r\n Please specify a status.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n You must enter the above fields when In/Out type is Incoming.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Incoming\r\n Outgoing\r\n \r\n \r\n \r\n \r\n \r\n {{p}}\r\n \r\n \r\n Please specify a priority.\r\n \r\n \r\n \r\n \r\n \r\n {{r}}\r\n \r\n \r\n Please specify received method.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Please select categories for this correspondence.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ state }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Please specify the correspondence subject or title.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please specify the correspondence summary.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Attachments

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

{{ doc?.Filename }} {{ doc?.Size | prettySize }}

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

Reviews

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

{{ review.Created | amDateFormat:'MMM DD' }}

\r\n
{{ review.ReviewStatus }}
\r\n
\r\n \r\n
\r\n
\r\n

Reviewer: {{ review.User?.FullName || \"Unknown assignee\" }}

\r\n

{{ review.ReviewText?.substr(0,105) }}{{ review.ReviewText?.length > 105 ? \"...\" : \"\" }}

\r\n

\r\n Documents: \r\n \r\n {{ rd.Document && rd.Document.Filename }} ({{ rd.Document && rd.Document.Size | prettySize }})\r\n \r\n

\r\n
\r\n chevron_right\r\n
\r\n
\r\n
\r\n \r\n \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 { BaseViewModel } from './base-view-model';\r\nimport { IViewModel } from './i-view-model';\r\nimport { endpoint } from '../decorators/endpoint.decorator';\r\nimport { RequestorViewModel } from './requestor-view-model';\r\nimport { mappable } from '../decorators';\r\n\r\n@endpoint(\"contactdetail\")\r\nexport class ContactDetailViewModel extends BaseViewModel {\r\n public RequestorId: number = 0;\r\n public AddressType: string = \"\";\r\n public Phone: string = \"\";\r\n public Email: string = \"\";\r\n public Address1: string = \"\";\r\n public Address2: string = \"\";\r\n public City: string = \"\";\r\n public State: string = \"\";\r\n public Country: string = \"\";\r\n public PostalCode: string = \"\";\r\n public PreferContactBy: string = \"\";\r\n public PrimaryContact: boolean = false;\r\n public Notes: string = \"\";\r\n\r\n /** The person with whom this contact detail record is associated. */\r\n @mappable(\"RequestorViewModel\")\r\n public Requestor: RequestorViewModel;\r\n}\r\n","\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport { Component, OnInit, Inject, Injectable, EventEmitter, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialogRef, MatDialog } from '@angular/material/dialog';\r\nimport { RepositoryService, RepositoryServiceToken, LogServiceToken } from '../../services';\r\nimport { IRepositoryService, ILogService } from '../../services/i';\r\nimport { IDWViewModel as IdwUser, UserViewModel } from '../../view-models';\r\nimport { IdwFilterViewModel, IdwFilterType } from '../../view-models/filters';\r\nimport { IFilterViewModel } from '../../view-models/filters/i';\r\nimport { ConfirmDialog } from '../../dialogs';\r\n\r\n@Component({\r\n selector: 'app-add-user',\r\n templateUrl: './add-user.component.html',\r\n styleUrls: ['./add-user.component.css']\r\n})\r\nexport class AddUserComponent implements OnInit {\r\n users: IdwUser[] = [];\r\n filter: IdwFilterViewModel = new IdwFilterViewModel();\r\n @Input() keywords: FormControl = new FormControl();\r\n dialogRef: MatDialogRef;\r\n\r\n // http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/\r\n // Regarding subscribe and emit: https://scotch.io/tutorials/angular-2-http-requests-with-observables\r\n // Automapper (if really necessary): https://github.com/loedeman/AutoMapper/wiki\r\n constructor(\r\n @Inject(RepositoryServiceToken) private repo: IRepositoryService,\r\n @Inject(LogServiceToken) private log: ILogService,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n ) {\r\n this.keywords.valueChanges.pipe(\r\n debounceTime(400))\r\n .subscribe(keywords => {\r\n this.filter.Keywords = keywords.split(\" \");\r\n let subscription = this.repo.Page(IdwUser, this.filter)\r\n .subscribe(value => this.users = value);\r\n });\r\n }\r\n\r\n openDialog(message: string): Promise {\r\n this.dialogRef = this.dialog.open(\r\n ConfirmDialog, {\r\n disableClose: false\r\n });\r\n this.dialogRef.componentInstance.title = \"Confirm Add User\";\r\n this.dialogRef.componentInstance.message = message;\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n return this.dialogRef.afterClosed().toPromise();\r\n }\r\n\r\n addUser(user: IdwUser) {\r\n this.openDialog(`Add user ${user.First} ${user.Last}?`)\r\n .then(confirm => {\r\n if (confirm) {\r\n let uvm = new UserViewModel();\r\n uvm.HawkId = user.HawkId;\r\n uvm.Email = user.Email;\r\n uvm.First = user.First;\r\n uvm.Middle = user.Middle;\r\n uvm.Last = user.Last;\r\n uvm.Title = user.Title;\r\n uvm.Department = user.Department;\r\n this.repo.Create(UserViewModel, user)\r\n .toPromise()\r\n .then(u => {\r\n this.router.navigate([\"/users\", u.Id]);\r\n })\r\n .catch(e => {\r\n this.log.warn(`Unknown error adding user: ${user.HawkId}`);\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.keywords.setValue(\"\");\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nconst mapMetadataKey = \"its.appdev.map.decorator\";\r\nexport function mappable(type: string)\r\n{\r\n return (target: Object, propertyKey: string | symbol) => {\r\n let d = Reflect.get(target, mapMetadataKey) || {};\r\n d[propertyKey] = type;\r\n Reflect.set(target, mapMetadataKey, d);\r\n };\r\n}\r\n\r\nexport function getMappableProperties(target: Object)\r\n : { [propKey : string]: string }\r\n{\r\n return Reflect.get(target, mapMetadataKey) || {};\r\n}\r\n","import { map } from 'rxjs/operators';\r\nimport { Injectable, Inject, InjectionToken } from '@angular/core';\r\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\r\nimport { getEndpoint } from '../decorators';\r\nimport { BaseViewModel } from '../view-models';\r\nimport { IFilterViewModel } from '../view-models/filters/i';\r\nimport * as Rx from 'rxjs';\r\n\r\nimport { APIBaseURI } from '../app.config.tokens';\r\nimport { AuthenticationService, AuthenticationServiceToken } from './auth.service';\r\nimport { ErrorServiceToken } from './error.service';\r\nimport { MapperServiceToken } from './mapper.service';\r\nimport { IAuthenticationService, IRepositoryService, IMapperService,\r\n IErrorService } from './i';\r\nimport {Observable} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class RepositoryService implements IRepositoryService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(ErrorServiceToken) private errors: IErrorService,\r\n @Inject(MapperServiceToken) private mapper: IMapperService,\r\n @Inject(AuthenticationServiceToken) private authService: AuthenticationService,\r\n @Inject(APIBaseURI) private baseUri: string) { }\r\n\r\n /** @inheritdoc */\r\n public Page(t: { new (): T }, filter: IFilterViewModel): Rx.Observable {\r\n let uri = `${this.baseUri}/${getEndpoint(t)}/search`;\r\n let params = filter.getAsHttpParams();\r\n let headers = new HttpHeaders();\r\n headers = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n return this.http.get(uri, { headers: headers, params: params }).pipe(\r\n map((res: any) => this.mapper.MapJsonToVMArray(t, res as number), this))\r\n }\r\n\r\n /** @inheritdoc */\r\n public Get(t: { new (): T }, id: number): Rx.Observable {\r\n const uri = `${this.baseUri}/${getEndpoint(t)}/${id}`;\r\n if (id === 0) {\r\n return Rx.Observable.throw(\"Database ids must be >= 1.\");\r\n }\r\n let headers = new HttpHeaders();\r\n const myHeaders = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n return this.http.get(uri, { headers: myHeaders })\r\n .pipe(\r\n map((res: any) => this.mapper.MapJsonToVM(t, res as any), this));\r\n }\r\n\r\n /** @inheritdoc **/\r\n public Lookup(t: { new (): T }, key: string): Rx.Observable {\r\n const uri = `${this.baseUri}/${getEndpoint(t)}/bykey/${key}`;\r\n if (! key) {\r\n return Rx.Observable.throw(\"Database ids must be >= 1.\");\r\n }\r\n\r\n let headers = new HttpHeaders();\r\n const myHeaders = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n return this.http.get(uri, { headers: myHeaders })\r\n .pipe(\r\n map((res: any) => this.mapper.MapJsonToVM(t, res as any), this));\r\n }\r\n\r\n /** @inheritdoc */\r\n public Update(t: { new (): T }, input: T): Rx.Observable {\r\n const uri = `${this.baseUri}/${getEndpoint(t)}`;\r\n if (input.Id === 0) {\r\n return Rx.Observable.throw(\"Database ids must be >= 1.\");\r\n }\r\n let headers = new HttpHeaders();\r\n const myHeaders = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n return this.http.put(uri, input, { headers: myHeaders })\r\n .pipe(\r\n map((res: any) => this.mapper.MapJsonToVM(t, res as any), this));\r\n }\r\n\r\n /** @inheritdoc */\r\n public Create(t: { new (): T }, input: T): Rx.Observable {\r\n let uri = `${this.baseUri}/${getEndpoint(t)}`;\r\n let headers = new HttpHeaders();\r\n const myHeaders = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n if (input instanceof t && input.Id !== 0) {\r\n return Rx.Observable.throw(`Cannot create ${t.name} with pre-existing id ${input.Id}. Did you mean to update?`);\r\n }\r\n return this.http.post(uri, input, { headers: myHeaders })\r\n .pipe(\r\n map((res: any) => this.mapper.MapJsonToVM(t, res as any), this));\r\n }\r\n\r\n public CreateMany(t: { new (): T }, input: T[] | FormData): Rx.Observable {\r\n let uri = `${this.baseUri}/${getEndpoint(t)}`;\r\n let headers = new HttpHeaders();\r\n // if (input.Id !== 0) {\r\n // return Rx.Observable.throw(`Cannot create ${t.name} with pre-existing id ${input.Id}. Did you mean to update?`);\r\n // }\r\n const myHeaders = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n return this.http.post(uri, input, { headers: myHeaders }).pipe(\r\n map((res: any) => this.mapper.MapJsonToVMArray(t, res as any), this));\r\n }\r\n\r\n /** @inheritdoc */\r\n public Delete(t: { new (): T }, id: number): Rx.Observable {\r\n const uri = `${this.baseUri}/${getEndpoint(t)}/${id}`;\r\n if (id === 0) {\r\n return Rx.Observable.throw(`Database ids must be >= 1.`);\r\n }\r\n let headers = new HttpHeaders();\r\n const myHeaders = headers.append('Accept', this.authService.getAccept())\r\n .append('Authorization', 'Bearer ' + this.authService.getToken());\r\n return this.http.delete(uri, { headers: myHeaders }).pipe(\r\n map((res: any) => this.mapper.MapJsonToVM(t, res as any), this));\r\n }\r\n}\r\n\r\nexport let RepositoryServiceToken = new InjectionToken(\"IRepositoryServiceToken\");\r\n","\r\n
\r\n \r\n \r\n

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

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n face\r\n
\r\n {{ user && user.FullName || authService.username }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n X\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
","
\r\n \r\n
\r\n
\r\n
\r\n \r\n

{{ user && user.FullName }}

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

Role

{{ user && user.RolesSummary }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Email notifications ON\r\n Email notifications OFF\r\n \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 { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { enableProdMode } from '@angular/core';\r\n\r\nimport { environment } from './environments/environment';\r\nimport { AppModule } from './app/app.module';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n","import { OnInit, Inject, Component } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'download-dialog',\r\n templateUrl: './download.dialog.html',\r\n styleUrls: ['./download.dialog.css']\r\n})\r\n\r\nexport class DownloadDialog implements OnInit {\r\n title: string;\r\n downloadId: number;\r\n message: string;\r\n constructor(\r\n public dialogRef: MatDialogRef\r\n ) {\r\n \r\n //Observable.create()\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { BaseFilterViewModel } from './base-filter-view-model';\r\n\r\nexport class UserFilterViewModel extends BaseFilterViewModel {\r\n public Type: UserFilterType = UserFilterType.Keywords;\r\n public HawkId: string;\r\n public RoleId: number;\r\n public RoleIds: number[];\r\n\r\n public getAsHttpParams(): HttpParams {\r\n var params = super.getAsHttpParams();\r\n params = params.append('filter.Type', encodeURIComponent(`${this.Type}`));\r\n params = params.append('filter.HawkId', this.HawkId);\r\n params = params.append('filter.RoleId', \"\"+this.RoleId);\r\n for(var i in this.RoleIds)\r\n params = params.append('filter.RoleIds', \"\"+this.RoleIds[i]);\r\n params = params.delete('filter.pageSize');\r\n params = params.append('filter.pageSize', '1000');\r\n return params;\r\n\r\n }\r\n}\r\n\r\nexport enum UserFilterType {\r\n /** Search using the Keywords property across all fields (email, hawkId, etc). */\r\n Keywords = 0x1,\r\n\r\n /** Search using the HawkId field, only. */\r\n HawkId = 0x2,\r\n\r\n /** Return users matching role (if any) and keywords (if any). */\r\n RoleAndKeywords = 0x3,\r\n\r\n /** Return users matching any of the provided Roles and keywords. */\r\n AnyRoleAndKeywords = 0x4\r\n}\r\n"],"sourceRoot":"webpack:///"}