{"version":3,"sources":["./src/app/modules/user-management/user-delete-confirmation.dialog.html","./src/app/modules/user-management/user-delete-confirmation.dialog.ts","./src/app/modules/user-management/user-management.module.ts","./src/app/modules/user-management/user-management.page.html","./src/app/modules/user-management/user-management.page.ts","./src/app/modules/user-management/user-management.routing.ts","./src/app/modules/user-management/user-management.service.ts","./src/app/modules/user-management/user-management.update.service.ts"],"names":[],"mappings":"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","file":"modules-user-management-user-management-module-ngfactory.7c5cd8f0b8d34c050f3c.js","sourcesContent":["<div class=\"bk-dialog\">\r\n\r\n\t<h4 mat-dialog-title>\r\n\t\t{{'Delete' | translate }} {{'User Account' | translate }}\r\n\t</h4>\r\n\r\n\t<div mat-dialog-content>\r\n\t\t<div class=\"bk-modal__remove-text\">\r\n\t\t\t{{'Are you sure you want to delete' | translate }}: <strong>{{ fullName }}</strong>?\r\n\t\t</div>\r\n\t\t<div class=\"bk-modal__remove-text\">\r\n\t\t\t{{'Deleting the user account is permanent. Please make sure no active ranch is associated with this account.' | translate }}\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div mat-dialog-actions align=\"end\">\r\n\r\n\t\t<button class=\"bk-button bk-button--medium bk-button--text-only\"\r\n\t\t\t(click)=\"close()\">\r\n\t\t\t{{'Cancel' | translate }}\r\n\t\t</button>\r\n\t\t<button class=\"bk-button bk-button--medium\"\r\n\t\t\t(click)=\"delete()\">\r\n\t\t\t{{'Delete User Account' | translate }}\r\n\t\t</button>\r\n\t</div>\r\n</div>","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { UserManagementService } from './user-management.service';\r\nimport { UpdateService } from '../../services/update.service';\r\nimport { UserManagementUpdateService } from './user-management.update.service';\r\nimport { CMError } from '../../interfaces/interfaces';\r\nimport { CustomErrorHandler } from '../../classes/custom-error-handler';\r\nimport { NotificationService } from '../../services/notification.service';\r\nimport { eNotificationTypes } from '../../interfaces/constants';\r\n\r\n@Component({\r\n\tmoduleId: module.id,\r\n\tselector: 'ap-user-delete-confirmation-dialog',\r\n\ttemplateUrl: 'user-delete-confirmation.dialog.html'\r\n})\r\n\r\nexport class UserDeleteConfirmationDialog implements OnInit {\r\n\r\n\tpublic fullName: string;\r\n\tpublic userId: string;\r\n\r\n\tpublic constructor(\r\n\t\tprivate _dialog: MatDialog,\r\n\t\tprivate _dialogRef: MatDialogRef<UserDeleteConfirmationDialog>,\r\n\t\t@Inject(MAT_DIALOG_DATA) private _data: { id: string, name: string },\r\n\t\tprivate _userManagementService: UserManagementService,\r\n\t\tprivate _updateService: UserManagementUpdateService,\r\n\t\tprivate _notificationService: NotificationService\r\n\t) {\r\n\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.fullName = this._data.name;\r\n\t\tthis.userId = this._data.id;\r\n\t}\r\n\r\n\tpublic delete(): void {\r\n\t\tthis._userManagementService.delete(this.userId)\r\n\t\t.then((response: CMError) => {\r\n\t\t\tif (response && response.message) {\r\n\t\t\t\tthis._notificationService.generateNotifcation({\r\n\t\t\t\t\ttype: eNotificationTypes.ERROR,\r\n\t\t\t\t\tmessage: response.message\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis._updateService.updateUsers(); // refresh parent view\r\n\t\t\t}\r\n\r\n\t\t\tthis._dialog.closeAll();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic close() {\r\n\t\tthis._dialogRef.close();\r\n\t}\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { UserManagementComponent } from './user-management.page';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { UserManagementRoutingModule } from './user-management.routing';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { UserManagementService } from './user-management.service';\r\nimport { UserDeleteConfirmationDialog } from './user-delete-confirmation.dialog';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { UserManagementUpdateService } from './user-management.update.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tMatDialogModule,\r\n\t\tCommonModule,\r\n\t\tSharedModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tUserManagementRoutingModule,\r\n\t\tMatTableModule,\r\n\t\tMatPaginatorModule,\r\n\t\tMatSortModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tUserManagementComponent,\r\n\t\tUserDeleteConfirmationDialog,\r\n\t],\r\n\texports: [\r\n\t],\r\n\tproviders: [\r\n\t\tUserManagementService,\r\n\t\tUserManagementUpdateService,\r\n\t\tNotificationService\r\n\t],\r\n\tentryComponents: [\r\n\t\tUserDeleteConfirmationDialog\r\n\t]\r\n})\r\n\r\nexport class UserManagementModule {\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: UserManagementModule,\r\n\t\t\tproviders: [\r\n\t\t\t\tUserManagementService\r\n\t\t\t]\r\n\t\t}\r\n\t}\r\n}\r\n","<admin-nav></admin-nav>\r\n<div class=\"bk-admin__page\">\r\n\r\n    <h5 class=\"bk-text--gray\">\r\n        {{'User Management' | translate }}\r\n    </h5>\r\n\r\n    <div class=\"bk-data-table bk-data-table__weather-stations\">\r\n        <div class=\"bk-data-table__head\">\r\n            <div class=\"bk-data-table__search\">\r\n                <label class=\"bk-data-table__search--label\">\r\n                    {{ 'Filter By' | translate }}\r\n                    <input class=\"bk-data-table__search--input\"\r\n                        (keyup)=\"search($event.target.value)\"\r\n                        placeholder=\"Name\"\r\n                        [(ngModel)]=\"query\"/>\r\n                </label>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"bk-data-table__content\">\r\n            <mat-table [dataSource]=\"dataSource\" matSort>\r\n\r\n                <ng-container matColumnDef=\"Name\">\r\n                    <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n                        {{ 'Name' | translate }}\r\n                    </mat-header-cell>\r\n                    <mat-cell *matCellDef=\"let row\">\r\n                        {{row.Name}}\r\n                    </mat-cell>\r\n                </ng-container>\r\n\r\n                <ng-container matColumnDef=\"Email\">\r\n                    <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n                        {{ 'Email' | translate }}\r\n                    </mat-header-cell>\r\n                    <mat-cell *matCellDef=\"let row\">\r\n                        {{row.Email}}\r\n                    </mat-cell>\r\n                </ng-container>\r\n\r\n                <ng-container matColumnDef=\"Roles\">\r\n                    <mat-header-cell *matHeaderCellDef mat-sort-header>\r\n                        {{ 'Roles' | translate }}\r\n                    </mat-header-cell>\r\n                    <mat-cell *matCellDef=\"let row\">\r\n\t\t\t\t\t\t<ng-container *ngFor=\"let role of row.Roles\">\r\n\t\t\t\t\t\t\t{{ role.Name }}\r\n\t\t\t\t\t\t</ng-container>\r\n                    </mat-cell>\r\n                </ng-container>\r\n\r\n                <ng-container matColumnDef=\"Action\">\r\n                    <mat-header-cell *matHeaderCellDef>\r\n                        {{ 'Actions' | translate }}\r\n                    </mat-header-cell>\r\n                    <mat-cell *matCellDef=\"let row\"\r\n                        class=\"bk-data-table__cell-overflow\">\r\n                        \r\n                        <button type=\"button\"\r\n                            class=\"bk-button bk-admin__button\"\r\n                            (click)=\"edit(row.Id)\">\r\n                            {{ 'Edit' | translate }}\r\n                        </button>\r\n                        <button type=\"button\"\r\n                            class=\"bk-button bk-admin__button\"\r\n                            (click)=\"delete(row)\">\r\n                            {{ 'Delete' | translate }}\r\n                        </button>\r\n                    </mat-cell>\r\n                </ng-container>\r\n\r\n                <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n                <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n            </mat-table>\r\n\r\n            <div class=\"bk-data-table__empty\"\r\n                *ngIf=\"results.length && dataSource && dataSource.filteredData\r\n                    && dataSource.filteredData.length === 0\">\r\n                {{ 'There are no results matching' | translate }} \r\n                <span class=\"bk-data-table__empty--filter\">\"{{dataSource.filter}}\"</span>\r\n            </div>\r\n\r\n            <mat-paginator [pageSizeOptions]=\"[10, 25]\"></mat-paginator>\r\n        </div>\r\n    </div>\r\n</div>","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TokenService } from '../../services/token.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { UserManagementRow } from './interfaces';\r\nimport { UserManagementService } from './user-management.service';\r\nimport { ObjectUtility } from '../../classes/objectUtility';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { UserDeleteConfirmationDialog } from './user-delete-confirmation.dialog';\r\nimport { UserManagementUpdateService } from './user-management.update.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'app-user-management',\r\n\ttemplateUrl: 'user-management.page.html',\r\n\tstyleUrls: [ 'user-management.scss']\r\n})\r\nexport class UserManagementComponent implements OnInit, OnDestroy {\r\n\t@ViewChild(MatPaginator, { static: true}) paginator: MatPaginator;\r\n\t@ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\tpublic dataSource: MatTableDataSource<UserManagementRow>;\r\n\tpublic results: UserManagementRow[] = new Array();\r\n\tpublic originalResults: UserManagementRow[] = new Array();\r\n\r\n\tpublic displayedColumns: string[] = ['Name', 'Email', 'Roles', 'Action'];\r\n\tpublic query = '';\r\n\tprivate _subscriptions$: Subject<boolean>;\r\n\r\n\tconstructor(\r\n\t\tprivate _dialog: MatDialog,\r\n\t\tprivate _userManagementService: UserManagementService,\r\n\t\tprivate _tokenService: TokenService,\r\n\t\tprivate _router: Router,\r\n\t\tprivate _updateService: UserManagementUpdateService\r\n\t) {\r\n\t\t// On home page, redirect to the app dashboard if already logged in\r\n\t\tif (!this._tokenService.isAuthenticated()) {\r\n\t\t\tthis._router.navigate(['/login']);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis._list();\r\n\t\tthis._subscriptions$ = new Subject();\r\n\r\n\t\tif (this.sort) {\r\n\t\t\tif (this.sort.sortChange) {\r\n\t\t\t\tthis.sort.sortChange.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\t\t\tif (!this.paginator) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twhile (this.paginator.hasPreviousPage()) {\r\n\t\t\t\t\t\tthis.paginator.previousPage();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.sort.sort({ id: 'Name', start: 'asc', disableClear: false });\r\n\t\t}\r\n\r\n\t\tthis._updateService.userUpdated.pipe(takeUntil(this._subscriptions$)).subscribe((data) => {\r\n\t\t\t// if user is edited or deleted, refresh the view\r\n\t\t\tthis._list();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (!this._subscriptions$) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._subscriptions$.next(true);\r\n\t\tthis._subscriptions$.complete();\r\n\t}\r\n\r\n\tpublic search(query: string): void {\r\n\t\tif (!this.dataSource) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (query === null) {\r\n\t\t\tquery = '';\r\n\t\t}\r\n\r\n\t\tquery = query.trim();\r\n\t\tquery = query.toLowerCase();\r\n\r\n\t\tthis.dataSource.filter = query;\r\n\t}\r\n\r\n\tpublic edit(): void {\r\n\t\t//\r\n\t}\r\n\r\n\tpublic delete(row: UserManagementRow): void {\r\n\r\n\t\tlet data: {\r\n\t\t\tid: string,\r\n\t\t\tname: string\r\n\t\t};\r\n\r\n\t\tdata = {\r\n\t\t\tid: row.Id,\r\n\t\t\tname: row.Name\r\n\t\t};\r\n\r\n\t\tthis._dialog.open(UserDeleteConfirmationDialog, {\r\n\t\t\tdisableClose: true,\r\n\t\t\tdata: data,\r\n\t\t\tmaxWidth: 'unset'\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _list(): void {\r\n\t\tthis._userManagementService.list().then((response) => {\r\n\t\t\tthis.originalResults = response;\r\n\t\t\tthis.results = ObjectUtility.copyArray(this.originalResults);\r\n\t\t\tthis._setDataSource(this.results);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _setDataSource(results: UserManagementRow[]): void {\r\n\t\tthis.dataSource = new MatTableDataSource(results);\r\n\t\tthis.dataSource.paginator = this.paginator;\r\n\t\tthis.dataSource.sort = this.sort;\r\n\t}\r\n}\r\n","import { Routes, RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { UserManagementComponent } from './user-management.page';\r\n\r\nconst routes: Routes = [\r\n\t{ path: '', component: UserManagementComponent }\r\n];\r\n\r\n@NgModule({\r\n\timports: [RouterModule.forChild(routes)],\r\n\texports: [RouterModule]\r\n})\r\n\r\nexport class UserManagementRoutingModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from '../../services/model.service';\r\nimport { of } from 'rxjs';\r\nimport { UserManagementRow } from './interfaces';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { HttpServicePostOptions } from '../../services/http.service';\r\nimport { CMError } from '../../interfaces/interfaces';\r\n\r\n@Injectable()\r\nexport class UserManagementService extends ModelService {\r\n\r\n\tprivate urls = {\r\n\t\tlist: '/v2/users.json',\r\n\t\tedit: (userId: string) => `/v2/user/${userId}.json`, // not implemented\r\n\t\tdelete: (userId: string) => `/v2/user/${userId}.json`\r\n\t}\r\n\r\n\tpublic list(): Promise<UserManagementRow[]> {\r\n\r\n\t\treturn this.get(this.urls.list,\r\n\t\t\t(data: UserManagementRow[]): UserManagementRow[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic edit(): Promise<void> {\r\n\t\t//\r\n\t\treturn of(null).toPromise();\r\n\t}\r\n\r\n\tpublic delete(userId: string): Promise<CMError> {\r\n\t\tlet options: HttpServicePostOptions;\r\n\r\n\t\toptions = {\r\n\t\t\turl: this.urls.delete(userId),\r\n\t\t\tbody: {},\r\n\t\t\tisWebAPI: true,\r\n\t\t\tshouldBypassServerErrorAlert: true\r\n\t\t}\r\n\r\n\t\treturn this.httpService.delete(options);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UserManagementUpdateService {\r\n\tprivate _userUpdated: Subject<null> = new Subject<null>();\r\n\tpublic userUpdated = this._userUpdated.asObservable();\r\n\r\n\t/**\r\n\t * Triggers when a user is edited or deleted\r\n\t * @param userId\r\n\t */\r\n\tpublic updateUsers(): void {\r\n\t\tthis._userUpdated.next();\r\n\t}\r\n}\r\n"],"sourceRoot":"webpack:///"}