]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
921a2dfe3eb7d1e803228fd09466b9010c76b0a3
[ceph.git] /
1 <nav ngbNav
2      #nav="ngbNav"
3      class="nav-tabs"
4      [(activeId)]="activeId"
5      (navChange)="onNavChange($event)">
6   <ng-container ngbNavItem="configuration">
7     <a ngbNavLink
8        i18n>Configuration</a>
9     <ng-template ngbNavContent>
10       <div>
11         <cd-alert-panel
12           *ngIf="!rgwModuleStatus"
13           type="info"
14           spacingClass="mb-3"
15           class="d-flex align-items-center"
16           i18n
17           >In order to access the import/export feature, the rgw module must be enabled
18
19           <button class="btn btn-light mx-2"
20                   type="button"
21                   (click)="enableRgwModule()">
22             Enable
23           </button>
24         </cd-alert-panel>
25         <cd-alert-panel
26           *ngIf="restartGatewayMessage"
27           type="warning"
28           spacingClass="mb-3"
29           i18n>Please restart all Ceph Object Gateway instances in all zones to ensure consistent
30           multisite configuration updates.
31           <a class="text-decoration-underline"
32              routerLink="/services"> Cluster->Services</a>
33         </cd-alert-panel>
34         <cd-table-actions
35           class="btn-group mb-4 me-2"
36           [permission]="permission"
37           [selection]="selection"
38           [tableActions]="createTableActions"
39         >
40         </cd-table-actions>
41         <span *ngIf="showMigrateAction">
42           <cd-table-actions
43             class="btn-group mb-4 me-2 secondary"
44             [permission]="permission"
45             [btnColor]="'light'"
46             [selection]="selection"
47             [tableActions]="migrateTableAction"
48           >
49           </cd-table-actions>
50         </span>
51         <cd-table-actions
52           class="btn-group mb-4 me-2"
53           [permission]="permission"
54           [btnColor]="'light'"
55           [selection]="selection"
56           [tableActions]="importAction"
57         >
58         </cd-table-actions>
59         <cd-table-actions
60           class="btn-group mb-4 me-2"
61           [permission]="permission"
62           [btnColor]="'light'"
63           [selection]="selection"
64           [tableActions]="exportAction">
65         </cd-table-actions>
66       </div>
67       <div class="card">
68         <div class="card-header"
69              i18n>Topology Viewer</div>
70         <div class="card-body">
71           <div class="row">
72             <div class="col-sm-6 col-lg-6 tree-container">
73               <i *ngIf="loadingIndicator"
74                  [ngClass]="[icons.large, icons.spinner, icons.spin]"></i>
75               <tree-root
76                 #tree
77                 [nodes]="nodes"
78                 [options]="treeOptions"
79                 (updateData)="onUpdateData()">
80                 <ng-template
81                   #treeNodeTemplate
82                   let-node>
83                   <span *ngIf="node.data.name"
84                         class="me-3">
85                     <span *ngIf="node.data.show_warning">
86                       <i
87                         class="text-danger"
88                         i18n-title
89                         [title]="node.data.warning_message"
90                         [ngClass]="icons.danger"
91                       ></i>
92                     </span>
93                     <i [ngClass]="node.data.icon"></i>
94                     {{ node.data.name }}
95                   </span>
96                   <span class="badge badge-success me-2"
97                         *ngIf="node.data.is_default">
98                     default
99                   </span>
100                   <span class="badge badge-warning me-2"
101                         *ngIf="node.data.is_master"> master </span>
102                   <span class="badge badge-warning me-2"
103                         *ngIf="node.data.secondary_zone">
104                     secondary-zone
105                   </span>
106                   <div class="btn-group align-inline-btns"
107                        *ngIf="node.isFocused"
108                        role="group">
109                     <div [title]="editTitle"
110                          i18n-title>
111                       <button
112                         type="button"
113                         class="btn btn-light dropdown-toggle-split ms-1"
114                         (click)="openModal(node, true)"
115                         [disabled]="getDisable() || node.data.secondary_zone">
116                         <i [ngClass]="[icons.edit]"></i>
117                       </button>
118                     </div>
119                     <div [title]="deleteTitle"
120                          i18n-title>
121                       <button
122                         type="button"
123                         class="btn btn-light ms-1"
124                         [disabled]="isDeleteDisabled(node) || node.data.secondary_zone"
125                         (click)="delete(node)">
126                         <i [ngClass]="[icons.destroy]"></i>
127                       </button>
128                     </div>
129                   </div>
130                 </ng-template>
131               </tree-root>
132             </div>
133             <div class="col-sm-6 col-lg-6 metadata"
134                  *ngIf="metadata">
135               <legend>{{ metadataTitle }}</legend>
136               <div>
137                 <cd-table-key-value
138                 cdTableDetail
139                 [data]="metadata"></cd-table-key-value>
140               </div>
141             </div>
142           </div>
143         </div>
144       </div>
145     </ng-template>
146   </ng-container>
147   <ng-container ngbNavItem="syncPolicy">
148     <a ngbNavLink
149        i18n>Sync Policy</a>
150     <ng-template ngbNavContent>
151       <cd-rgw-multisite-sync-policy></cd-rgw-multisite-sync-policy>
152     </ng-template>
153   </ng-container>
154 </nav>
155
156 <div [ngbNavOutlet]="nav"></div>