]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.html
ea2bd668fbaa9c3eeb57717dcfe9f833156ce680
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / block / rbd-list / rbd-list.component.html
1 <cd-rbd-tabs></cd-rbd-tabs>
2
3 <cd-table #table
4 [data]="images"
5 columnMode="flex"
6 [columns]="columns"
7 identifier="unique_id"
8 [searchableObjects]="true"
9 forceIdentifier="true"
10 selectionType="single"
11 [hasDetails]="true"
12 [status]="tableStatus"
13 [autoReload]="-1"
14 (fetchData)="taskListService.fetch()"
15 (setExpandedRow)="setExpandedRow($event)"
16 (updateSelection)="updateSelection($event)">
17 <cd-table-actions class="table-actions"
18 [permission]="permission"
19 [selection]="selection"
20 [tableActions]="tableActions">
21 </cd-table-actions>
22 <cd-rbd-details cdTableDetail
23 [selection]="expandedRow">
24 </cd-rbd-details>
25 </cd-table>
26
27 <ng-template #usageNotAvailableTooltipTpl>
28 <div i18n
29 [innerHtml]="'Only available for RBD images with <strong>fast-diff</strong> enabled'"></div>
30 </ng-template>
31
32 <ng-template #provisionedNotAvailableTooltipTpl
33 let-row="row">
34 <span *ngIf="row.disk_usage === null && !row.features_name.includes('fast-diff'); else provisioned"
35 [ngbTooltip]="usageNotAvailableTooltipTpl"
36 placement="top"
37 i18n>N/A</span>
38 <ng-template #provisioned
39 i18n>{{row.disk_usage | dimlessBinary}}</ng-template>
40 </ng-template>
41
42 <ng-template #totalProvisionedNotAvailableTooltipTpl
43 let-row="row">
44 <span *ngIf="row.total_disk_usage === null && !row.features_name.includes('fast-diff'); else totalProvisioned"
45 [ngbTooltip]="usageNotAvailableTooltipTpl"
46 placement="top"
47 i18n>N/A</span>
48 <ng-template #totalProvisioned
49 i18n>{{row.total_disk_usage | dimlessBinary}}</ng-template>
50 </ng-template>
51
52 <ng-template #parentTpl
53 let-value="value">
54 <span *ngIf="value">{{ value.pool_name }}<span
55 *ngIf="value.pool_namespace">/{{ value.pool_namespace }}</span>/{{ value.image_name }}@{{ value.snap_name }}</span>
56 <span *ngIf="!value">-</span>
57 </ng-template>
58
59 <ng-template #flattenTpl
60 let-value>
61 You are about to flatten
62 <strong>{{ value.child }}</strong>.
63 <br>
64 <br> All blocks will be copied from parent
65 <strong>{{ value.parent }}</strong> to child
66 <strong>{{ value.child }}</strong>.
67 </ng-template>
68
69 <ng-template #deleteTpl
70 let-hasSnapshots="hasSnapshots"
71 let-snapshots="snapshots">
72 <div class="alert alert-warning"
73 *ngIf="hasSnapshots"
74 role="alert">
75 <span i18n>Deleting this image will also delete all its snapshots.</span>
76 <br>
77 <ng-container *ngIf="snapshots.length > 0">
78 <span i18n>The following snapshots are currently protected and will be removed:</span>
79 <ul>
80 <li *ngFor="let snapshot of snapshots">{{ snapshot }}</li>
81 </ul>
82 </ng-container>
83 </div>
84 </ng-template>
85
86 <ng-template #removingStatTpl
87 let-column="column"
88 let-value="value"
89 let-row="row">
90
91 <i [ngClass]="[icons.spinner, icons.spin]"
92 *ngIf="row.cdExecuting"></i>
93 <span [ngClass]="column?.customTemplateConfig?.valueClass">
94 {{ value }}
95 </span>
96 <span *ngIf="row.cdExecuting"
97 [ngClass]="column?.customTemplateConfig?.executingClass ?
98 column.customTemplateConfig.executingClass :
99 'text-muted italic'">
100 ({{ row.cdExecuting }})
101 </span>
102 <i *ngIf="row.source && row.source === 'REMOVING'"
103 i18n-title
104 title="RBD in status 'Removing'"
105 class="{{ icons.warning }} warn"></i>
106 </ng-template>