[ 
https://issues.apache.org/jira/browse/KNOX-2859?focusedWorklogId=838347&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-838347
 ]

ASF GitHub Bot logged work on KNOX-2859:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 10/Jan/23 14:59
            Start Date: 10/Jan/23 14:59
    Worklog Time Spent: 10m 
      Work Description: pzampino commented on code in PR #713:
URL: https://github.com/apache/knox/pull/713#discussion_r1065889252


##########
knox-token-management-ui/token-management/app/token.management.component.html:
##########
@@ -20,90 +20,116 @@
             <span class="glyphicon glyphicon-refresh"></span>
         </button>
     </div>
+
     <div class="table-responsive" style="width:100%; overflow: auto; 
overflow-y: scroll; padding: 10px 0px 0px 0px;">
         <label>My Knox Tokens</label>
-        <table class="table table-hover" [mfData]="knoxTokens" 
#tokens="mfDataTable" [mfRowsOnPage]="10">
-            <thead>
-            <tr>
-                <th>Token ID</th>
-                <th>Issued</th>
-                <th>Expires</th>
-                <th>Comment</th>
-                <th>Additional Metadata</th>
-                <th>Actions</th>
-            </tr>
-            </thead>
-            <tbody>
-            <tr *ngFor="let knoxToken of tokens.data">
-                <td>{{knoxToken.tokenId}}</td>
-                <td>{{formatDateTime(knoxToken.issueTimeLong)}}</td>
-                <td *ngIf="!isTokenExpired(knoxToken.expirationLong)" 
style="color: green">{{formatDateTime(knoxToken.expirationLong)}}</td>
-                <td *ngIf="isTokenExpired(knoxToken.expirationLong)" 
style="color: red">{{formatDateTime(knoxToken.expirationLong)}}</td>
-                <td>{{knoxToken.metadata.comment}}</td>
-                <td>
-                  <ul>
-                    <li *ngFor="let metadata of 
getCustomMetadataArray(knoxToken)">
-                      {{metadata[0]}} = {{metadata[1]}}
-                    </li>
-                  </ul>
-                </td>
-                <td>
+
+        <mat-form-field [floatLabel]="always" appearance="fill" #search>
+            <mat-label>Search by Token ID, Comment or Metadata...</mat-label>
+            <input matInput (keyup)="applyFilter(false, $event.target.value)">
+        </mat-form-field>
+
+        <mat-table [dataSource]="knoxTokens" matSort #ownSort="matSort">
+            <ng-container matColumnDef="tokenId">
+                <mat-header-cell *matHeaderCellDef 
mat-sort-header="tokenId">Token ID</mat-header-cell>
+                <mat-cell *matCellDef="let 
knoxToken">{{knoxToken.tokenId}}</mat-cell>
+            </ng-container>
+
+            <ng-container matColumnDef="issued">
+                <mat-header-cell *matHeaderCellDef 
mat-sort-header="issueTime">Issued</mat-header-cell>
+                <mat-cell *matCellDef="let 
knoxToken">{{formatDateTime(knoxToken.issueTimeLong)}}</mat-cell>
+            </ng-container>
+
+            <ng-container matColumnDef="expires">
+                <mat-header-cell *matHeaderCellDef 
mat-sort-header="expiration">Expires</mat-header-cell>
+                <mat-cell *matCellDef="let knoxToken" 
[style.color]="getExpirationColor(knoxToken.expirationLong)">{{formatDateTime(knoxToken.expirationLong)}}</mat-cell>
+            </ng-container>
+
+            <ng-container matColumnDef="comment">
+                <mat-header-cell *matHeaderCellDef 
mat-sort-header="metadata.comment">Comment</mat-header-cell>
+                <mat-cell *matCellDef="let 
knoxToken">{{knoxToken.metadata.comment}}</mat-cell>
+            </ng-container>
+
+            <ng-container matColumnDef="metadata">
+                <mat-header-cell *matHeaderCellDef>Additional 
Metadata</mat-header-cell>
+                <mat-cell *matCellDef="let knoxToken">
+                   <ul>
+                     <li *ngFor="let metadata of 
getCustomMetadataArray(knoxToken)">
+                       {{metadata[0]}} = {{metadata[1]}}
+                     </li>
+                   </ul>
+                </mat-cell>
+            </ng-container>
+
+            <ng-container matColumnDef="actions">
+                <mat-header-cell *matHeaderCellDef>Actions</mat-header-cell>
+                <mat-cell *matCellDef="let knoxToken">
                     <button *ngIf="knoxToken.metadata.enabled && 
!isTokenExpired(knoxToken.expirationLong)" 
(click)="disableToken(knoxToken.tokenId);">Disable</button>
                     <button *ngIf="!knoxToken.metadata.enabled && 
!isTokenExpired(knoxToken.expirationLong)" 
(click)="enableToken(knoxToken.tokenId);">Enable</button>
                     <button 
(click)="revokeToken(knoxToken.tokenId);">Revoke</button>
-                </td>
-            </tr>
-            </tbody>
-                   <tfoot>
-                   <tr>
-                       <td colspan="6">
-                           <mfBootstrapPaginator 
[rowsOnPageSet]="[5,10,15]"></mfBootstrapPaginator>
-                       </td>
-                   </tr>
-                   </tfoot>
-        </table>
+                </mat-cell>
+            </ng-container>
+
+            <mat-header-row 
*matHeaderRowDef="displayedColumns"></mat-header-row>
+            <mat-row *matRowDef="let row; columns: 
displayedColumns;"></mat-row>
+
+        </mat-table>
+        <mat-paginator #ownPaginator [pageSizeOptions]="[5, 10, 25, 100]" 
[showFirstLastButtons]="true"></mat-paginator>
     </div>
 
+
     <!

Issue Time Tracking
-------------------

    Worklog Id:     (was: 838347)
    Time Spent: 1h 20m  (was: 1h 10m)

> Search/filter tokens on Token Management page
> ---------------------------------------------
>
>                 Key: KNOX-2859
>                 URL: https://issues.apache.org/jira/browse/KNOX-2859
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: TokenManagementUI
>    Affects Versions: 2.0.0
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Major
>             Fix For: 2.1.0
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> In 2.0.0, the Knox team introduced a new UI where logged-in users can see 
> their own tokens as well as tokens generated by them on behalf of other users 
> (impersonated tokens).
> These tables show different useful information, such as custom metadata, in 
> tables where pagination is used. However, there is no way that end-users can 
> filter/search for specific tokens based on their needs. In the case of a huge 
> token list (e.g. when the token limit is disabled), it may be very hard for 
> them to find the token they are interested in (e.g. they want to 
> revoke/disable one).
> The scope of this task is to find another Angular DataTable implementation 
> where these features are supported and integrate them on the token management 
> page (we may want to do the same on tables on the Admin UI).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to