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