]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
ddc202152b9f4e5f3d860b8b4f085d1d12be6e23
[ceph.git] /
1 <ng-container *ngIf="selection">
2   <nav ngbNav
3        #nav="ngbNav"
4        class="nav-tabs"
5        cdStatefulTab="rgw-bucket-details">
6     <ng-container ngbNavItem="details">
7       <a ngbNavLink
8          i18n>Details</a>
9       <ng-template ngbNavContent>
10
11         <table class="cds--data-table--sort cds--data-table--no-border cds--data-table cds--data-table--md"
12                data-testid="rgw-bucket-details">
13           <tbody>
14             <tr>
15               <td i18n
16                   class="bold w-25">Versioning</td>
17               <td class="w-75">{{ selection.versioning }}</td>
18             </tr>
19             <tr>
20               <td i18n
21                   class="bold">Encryption</td>
22               <td>{{ selection.encryption }}</td>
23             </tr>
24             <tr>
25               <td i18n
26                   class="bold">Replication</td>
27               <td>{{ replicationStatus }}</td>
28             </tr>
29             <tr>
30               <td i18n
31                   class="bold">MFA Delete</td>
32               <td>{{ selection.mfa_delete }}</td>
33             </tr>
34             <tr>
35               <td i18n
36                   class="bold">Index type</td>
37               <td>{{ selection.index_type }}</td>
38             </tr>
39             <tr>
40               <td i18n
41                   class="bold">Placement rule</td>
42               <td>{{ selection.placement_rule }}</td>
43             </tr>
44             <tr>
45               <td i18n
46                   class="bold">Last modification time</td>
47               <td>{{ selection.mtime | cdDate }}</td>
48             </tr>
49           </tbody>
50         </table>
51
52         <!-- Bucket quota -->
53         <div>
54           <legend i18n>Bucket quota</legend>
55           <table class="cds--data-table--sort cds--data-table--no-border cds--data-table cds--data-table--md"
56                  data-testid="rgw-bucket-quota-details">
57             <tbody>
58               <tr>
59                 <td i18n
60                     class="bold w-25">Enabled</td>
61                 <td class="w-75">{{ selection.bucket_quota.enabled | booleanText }}</td>
62               </tr>
63               <ng-container *ngIf="selection.bucket_quota.enabled">
64                 <tr>
65                   <td i18n
66                       class="bold">Maximum size</td>
67                   <td *ngIf="selection.bucket_quota.max_size <= -1"
68                       i18n>Unlimited</td>
69                   <td *ngIf="selection.bucket_quota.max_size > -1">
70                     {{ selection.bucket_quota.max_size | dimless }}
71                   </td>
72                 </tr>
73                 <tr>
74                   <td i18n
75                       class="bold">Maximum objects</td>
76                   <td *ngIf="selection.bucket_quota.max_objects <= -1"
77                       i18n>Unlimited</td>
78                   <td *ngIf="selection.bucket_quota.max_objects > -1">
79                     {{ selection.bucket_quota.max_objects }}
80                   </td>
81                 </tr>
82               </ng-container>
83             </tbody>
84           </table>
85         </div>
86
87         <!-- Locking -->
88         <legend i18n>Locking</legend>
89         <table class="cds--data-table--sort cds--data-table--no-border cds--data-table cds--data-table--md"
90                data-testid="rgw-bucket-locking-details">
91           <tbody>
92             <tr>
93               <td i18n
94                   class="bold w-25">Enabled</td>
95               <td class="w-75">{{ selection.lock_enabled | booleanText }}</td>
96             </tr>
97             <ng-container *ngIf="selection.lock_enabled">
98               <tr>
99                 <td i18n
100                     class="bold">Mode</td>
101                 <td>{{ selection.lock_mode }}</td>
102               </tr>
103               <tr>
104                 <td i18n
105                     class="bold">Days</td>
106                 <td>{{ selection.lock_retention_period_days }}</td>
107               </tr>
108             </ng-container>
109           </tbody>
110         </table>
111
112       <!-- Tags -->
113       <ng-container *ngIf="(selection.tagset | keyvalue)?.length">
114         <legend i18n>Tags</legend>
115         <table class="cds--data-table--sort cds--data-table--no-border cds--data-table cds--data-table--md">
116           <tbody>
117             <tr *ngFor="let tag of selection.tagset | keyvalue">
118               <td i18n
119                   class="bold w-25">{{tag.key}}</td>
120               <td class="w-75">{{ tag.value }}</td>
121             </tr>
122           </tbody>
123         </table>
124       </ng-container>
125
126       </ng-template>
127     </ng-container>
128
129     <ng-container ngbNavItem="permissions">
130       <a ngbNavLink
131          i18n>Policies</a>
132       <ng-template ngbNavContent>
133         <div class="table-scroller">
134           <table class="cds--data-table--sort cds--data-table--no-border cds--data-table cds--data-table--md">
135             <tbody>
136               <tr>
137                 <td i18n
138                     class="bold w-25">Bucket policy</td>
139                 <td><pre>{{ selection.bucket_policy | json}}</pre></td>
140               </tr>
141               <tr>
142                 <td i18n
143                     class="bold w-25">Lifecycle
144                   <div *ngIf="(selection.lifecycle | json) !== '{}'"
145                        class="input-group">
146                     <button type="button"
147                             class="btn btn-light"
148                             [ngClass]="{'active': lifecycleFormat === 'json'}"
149                             (click)="lifecycleFormat = 'json'">
150                           JSON
151                     </button>
152                     <button type="button"
153                             class="btn btn-light"
154                             [ngClass]="{'active': lifecycleFormat === 'xml'}"
155                             (click)="lifecycleFormat = 'xml'">
156                           XML
157                     </button>
158                   </div>
159                 </td>
160                 <td>
161                   <pre *ngIf="lifecycleFormat === 'json'">{{selection.lifecycle | json}}</pre>
162                   <pre *ngIf="lifecycleFormat === 'xml'">{{ (selection.lifecycle | xml) || '-'}}</pre>
163                 </td>
164               </tr>
165               <tr>
166                 <td i18n
167                     class="bold w-25">Replication policy</td>
168                 <td><pre>{{ selection.replication | json}}</pre></td>
169               </tr>
170               <tr>
171                 <td i18n
172                     class="bold w-25">ACL</td>
173                 <td>
174                   <table class="table">
175                     <thead>
176                       <tr i18n>
177                         <th>Grantee</th>
178                         <th>Permissions</th>
179                       </tr>
180                     </thead>
181                     <tbody>
182                       <tr i18n>
183                         <td>Bucket Owner</td>
184                         <td>{{ aclPermissions.Owner || '-'}}</td>
185                       </tr>
186                       <tr i18n>
187                         <td>Everyone</td>
188                         <td>{{ aclPermissions.AllUsers || '-'}}</td>
189                       </tr>
190                       <tr i18n>
191                         <td>Authenticated users group</td>
192                         <td>{{ aclPermissions.AuthenticatedUsers || '-'}}</td>
193                       </tr>
194                     </tbody>
195                   </table>
196                 </td>
197               </tr>
198             </tbody>
199           </table>
200         </div>
201       </ng-template>
202     </ng-container>
203   </nav>
204
205   <div [ngbNavOutlet]="nav"></div>
206 </ng-container>