diff options
Diffstat (limited to 'portal-FE-common/src/app/pages/role/role.component.html')
-rw-r--r-- | portal-FE-common/src/app/pages/role/role.component.html | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/portal-FE-common/src/app/pages/role/role.component.html b/portal-FE-common/src/app/pages/role/role.component.html new file mode 100644 index 00000000..9f57aa47 --- /dev/null +++ b/portal-FE-common/src/app/pages/role/role.component.html @@ -0,0 +1,115 @@ +<!-- + ============LICENSE_START========================================== + ONAP Portal + =================================================================== + Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + =================================================================== + + Unless otherwise specified, all software contained herein is licensed + under the Apache License, Version 2.0 (the "License"); + you may not use this software except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Unless otherwise specified, all documentation contained herein is licensed + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + you may not use this documentation except in compliance with the License. + You may obtain a copy of the License at + + https://creativecommons.org/licenses/by/4.0/ + + Unless required by applicable law or agreed to in writing, documentation + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ============LICENSE_END============================================ + + + --> + +<div class="container"> + <div class="onap-main-view-title"> + <h1 class="heading-page">Roles</h1> + </div> + <mat-form-field> + <mat-label> Select Application </mat-label> + <mat-select [disabled]='centralizedApps.length === 0' [(ngModel)]="selectedCentralizedApp"> + <mat-option *ngFor="let app of centralizedApps" [value]="app.appId" + (click)="getRolesForSelectedCentralizedApp(selectedCentralizedApp)"> + {{app.appName}}</mat-option> + </mat-select> + </mat-form-field> + + <button type="button" class="btn btn-primary" [disabled]='centralizedApps.length === 0' + (click)="openBulkUploadRolesAndFunctionsModal()"><i class="icon ion-md-cloud-upload"></i> + Bulk Upload</button> + <button type="button" class="btn btn-primary" [disabled]='centralizedApps.length === 0' [hidden]="!syncRolesApplied" + (click)="syncRolesFromExternalAuthSystem()"><i class="icon ion-md-sync"></i> + Sync Roles </button> + <button type="button" class="btn btn-primary" [disabled]='centralizedApps.length === 0' + (click)="addRoleModalPopup()"><i class="icon ion-md-add-circle-outline"></i> + Create </button> + <span class="onap-spinner" *ngIf="showSpinner"></span> + <table mat-table [dataSource]="roleDataSource" matSort> + <!-- Name Column --> + <ng-container matColumnDef="name"> + <th id="col1" mat-header-cell *matHeaderCellDef mat-sort-header> Name </th> + <td id="rowheader_t1_{{i}}-firstName" mat-cell *matCellDef="let element; let i = index;"> {{element.name}} + </td> + </ng-container> + + <!-- Priority Column --> + <ng-container matColumnDef="priority"> + <th id="col2" mat-header-cell *matHeaderCellDef mat-sort-header> Priority </th> + <td id="rowheader_t1_{{i}}-lastName" mat-cell *matCellDef="let element; let i=index;"> {{element.priority}} + </td> + </ng-container> + + <!-- Active Column --> + <ng-container matColumnDef="active"> + <th id="col3" mat-header-cell *matHeaderCellDef mat-sort-header> Active </th> + <td id="rowheader_t1_{{i}}-userId" mat-cell *matCellDef="let element; let i=index;"> + <mat-slide-toggle + [disabled]="(element.id === 1 || element.id === 999) || ((this.selectedCentralizedApp !== 1) && (element.name.indexOf('global_') !== -1))" + [(ngModel)]="element.active" (change)="toggleRole(element)"></mat-slide-toggle> + </td> + </ng-container> + + <!-- Edit Column --> + <ng-container matColumnDef="edit"> + <th id="col3" mat-header-cell *matHeaderCellDef mat-sort-header> Edit </th> + <td id="rowheader_t1_{{i}}-userId" mat-cell *matCellDef="let element; let i=index;"> + <span class="icon-trash" id="{{i}}-button-edit" (click)="editRoleModalPopup(element)"> + <i class="icon ion-md-create"></i> + </span> + </td> + </ng-container> + + <!-- Delete Column --> + <ng-container matColumnDef="delete"> + <th [hidden]="selectedCentralizedApp === 1" id="col4" mat-header-cell *matHeaderCellDef> Delete </th> + <td [hidden]="selectedCentralizedApp === 1" id="rowheader_t1_{{i}}-applications" mat-cell + *matCellDef="let element; let i=index;"> + <span class="icon-trash" id="{{i}}-button-portal-admin-remove" (click)="removeRole(element)"> + <i class="icon ion-md-trash"></i> + </span> + </td> + </ng-container> + + <tr [hidden]="availableRoles.length === 0" mat-header-row *matHeaderRowDef="displayedColumns"></tr> + <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> + </table> + <mat-paginator [hidden]="availableRoles.length === 0" [pageSizeOptions]="[10, 20]" showFirstLastButtons> + </mat-paginator> + <a id="manage-role" [hidden]="availableRoles.length === 0" [routerLink]="['/roleFunctions']">Manage Role + Functions</a><br><br> +</div>
\ No newline at end of file |