]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html
update ceph source to reef 18.2.1
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / core / navigation / navigation / navigation.component.html
CommitLineData
20effc67
TL
1<div class="cd-navbar-main">
2 <cd-pwd-expiration-notification></cd-pwd-expiration-notification>
3 <cd-telemetry-notification></cd-telemetry-notification>
4 <cd-motd></cd-motd>
5 <cd-notifications-sidebar></cd-notifications-sidebar>
6 <div class="cd-navbar-top">
7 <nav class="navbar navbar-expand-md navbar-dark cd-navbar-brand">
39ae355f 8 <button class="btn btn-link py-0 ms-3"
20effc67
TL
9 (click)="showMenuSidebar = !showMenuSidebar"
10 aria-label="toggle sidebar visibility">
11 <i class="fa fa-bars fa-2x"
12 aria-hidden="true"></i>
13 </button>
11fdf7f2 14
39ae355f 15 <a class="navbar-brand ms-2"
20effc67
TL
16 href="#">
17 <img src="assets/Ceph_Ceph_Logo_with_text_white.svg"
18 alt="Ceph" />
19 </a>
11fdf7f2 20
20effc67
TL
21 <button type="button"
22 class="navbar-toggler"
23 (click)="toggleRightSidebar()">
24 <span i18n
25 class="sr-only">Toggle navigation</span>
26 <span class="">
27 <i class="fa fa-navicon fa-lg"></i>
28 </span>
29 </button>
11fdf7f2 30
20effc67
TL
31 <div class="collapse navbar-collapse"
32 [ngClass]="{'show': rightSidebarOpen}">
33 <ul class="nav navbar-nav cd-navbar-utility my-2 my-md-0">
34 <ng-container *ngTemplateOutlet="cd_utilities"> </ng-container>
35 </ul>
36 </div>
37 </nav>
38 </div>
9f95a23c 39
20effc67
TL
40 <div class="wrapper">
41 <!-- Content -->
42 <nav id="sidebar"
43 [ngClass]="{'active': !showMenuSidebar}">
44 <ngx-simplebar [options]="simplebar">
45 <ul class="list-unstyled components cd-navbar-primary">
46 <ng-container *ngTemplateOutlet="cd_menu"> </ng-container>
47 </ul>
48 </ngx-simplebar>
49 </nav>
9f95a23c 50
20effc67
TL
51 <!-- Page Content -->
52 <div id="content"
53 [ngClass]="{'active': !showMenuSidebar}">
54 <ng-content></ng-content>
55 </div>
11fdf7f2 56 </div>
9f95a23c 57
20effc67
TL
58 <ng-template #cd_utilities>
59 <li class="nav-item">
60 <cd-language-selector class="cd-navbar"></cd-language-selector>
9f95a23c 61 </li>
20effc67
TL
62 <li class="nav-item">
63 <cd-notifications class="cd-navbar"
64 (click)="toggleRightSidebar()"></cd-notifications>
9f95a23c 65 </li>
20effc67
TL
66 <li class="nav-item">
67 <cd-dashboard-help class="cd-navbar"></cd-dashboard-help>
68 </li>
69 <li class="nav-item">
70 <cd-administration class="cd-navbar"></cd-administration>
9f95a23c 71 </li>
20effc67
TL
72 <li class="nav-item">
73 <cd-identity class="cd-navbar"></cd-identity>
74 </li>
75 </ng-template>
9f95a23c 76
20effc67
TL
77 <ng-template #cd_menu>
78 <ng-container *ngIf="enabledFeature$ | async as enabledFeature">
79 <!-- Dashboard -->
80 <li routerLinkActive="active"
81 class="nav-item tc_menuitem_dashboard">
82 <a routerLink="/dashboard"
83 class="nav-link">
84 <span i18n>Dashboard</span>&nbsp;
85 <i [ngClass]="[icons.health]"
86 [ngStyle]="summaryData?.health_status | healthColor"></i>
87 </a>
88 </li>
9f95a23c 89
20effc67
TL
90 <!-- Cluster -->
91 <li routerLinkActive="active"
92 class="nav-item tc_menuitem_cluster"
93 *ngIf="permissions.hosts.read || permissions.monitor.read ||
94 permissions.osd.read || permissions.configOpt.read ||
95 permissions.log.read || permissions.prometheus.read">
96 <a (click)="toggleSubMenu('cluster')"
97 class="nav-link dropdown-toggle"
39ae355f
TL
98 [attr.aria-expanded]="displayedSubMenu === 'cluster'"
99 aria-controls="cluster-nav"
100 role="button">
20effc67
TL
101 <ng-container i18n>Cluster</ng-container>
102 </a>
103 <ul class="list-unstyled"
39ae355f 104 id="cluster-nav"
20effc67
TL
105 [ngbCollapse]="displayedSubMenu !== 'cluster'">
106 <li routerLinkActive="active"
107 class="tc_submenuitem tc_submenuitem_hosts"
108 *ngIf="permissions.hosts.read">
109 <a i18n
110 routerLink="/hosts">Hosts</a>
111 </li>
112 <li routerLinkActive="active"
113 class="tc_submenuitem tc_submenuitem_cluster_inventory"
114 *ngIf="permissions.hosts.read">
115 <a i18n
116 routerLink="/inventory">Physical Disks</a>
117 </li>
118 <li routerLinkActive="active"
119 class="tc_submenuitem tc_submenuitem_cluster_monitor"
120 *ngIf="permissions.monitor.read">
121 <a i18n
122 routerLink="/monitor/">Monitors</a>
123 </li>
124 <li routerLinkActive="active"
125 class="tc_submenuitem tc_submenuitem_cluster_services"
126 *ngIf="permissions.hosts.read">
127 <a i18n
128 routerLink="/services/">Services</a>
129 </li>
130 <li routerLinkActive="active"
131 class="tc_submenuitem tc_submenuitem_osds"
132 *ngIf="permissions.osd.read">
133 <a i18n
134 routerLink="/osd">OSDs</a>
135 </li>
136 <li routerLinkActive="active"
137 class="tc_submenuitem tc_submenuitem_configuration"
138 *ngIf="permissions.configOpt.read">
139 <a i18n
140 routerLink="/configuration">Configuration</a>
141 </li>
142 <li routerLinkActive="active"
143 class="tc_submenuitem tc_submenuitem_crush"
144 *ngIf="permissions.osd.read">
145 <a i18n
146 routerLink="/crush-map">CRUSH map</a>
147 </li>
148 <li routerLinkActive="active"
149 class="tc_submenuitem tc_submenuitem_modules"
150 *ngIf="permissions.configOpt.read">
151 <a i18n
152 routerLink="/mgr-modules">Manager Modules</a>
153 </li>
1e59de90
TL
154 <li routerLinkActive="active"
155 class="tc_submenuitem tc_submenuitem_users"
156 *ngIf="permissions.configOpt.read">
157 <a i18n
158 routerLink="/ceph-users">Ceph Users</a>
159 </li>
20effc67
TL
160 <li routerLinkActive="active"
161 class="tc_submenuitem tc_submenuitem_log"
162 *ngIf="permissions.log.read">
163 <a i18n
164 routerLink="/logs">Logs</a>
165 </li>
166 <li routerLinkActive="active"
167 class="tc_submenuitem tc_submenuitem_monitoring"
168 *ngIf="permissions.prometheus.read">
169 <a routerLink="/monitoring">
1e59de90 170 <ng-container i18n>Alerts</ng-container>
2a845540 171 <small *ngIf="prometheusAlertService.activeCriticalAlerts > 0"
39ae355f 172 class="badge badge-danger ms-1">{{ prometheusAlertService.activeCriticalAlerts }}</small>
2a845540 173 <small *ngIf="prometheusAlertService.activeWarningAlerts > 0"
39ae355f 174 class="badge badge-warning ms-1">{{ prometheusAlertService.activeWarningAlerts }}</small>
20effc67
TL
175 </a>
176 </li>
aee94f69
TL
177 <li routerLinkActive="active"
178 class="tc_submenuitem tc_submenuitem_upgrade"
179 *ngIf="permissions.configOpt.read">
180 <a i18n
181 routerLink="/upgrade">Upgrade</a>
182 </li>
20effc67
TL
183 </ul>
184 </li>
9f95a23c 185
20effc67
TL
186 <!-- Pools -->
187 <li routerLinkActive="active"
188 class="nav-item tc_menuitem_pool"
189 *ngIf="permissions.pool.read">
190 <a class="nav-link"
191 i18n
192 routerLink="/pool">Pools</a>
193 </li>
9f95a23c 194
20effc67
TL
195 <!-- Block -->
196 <li routerLinkActive="active"
197 class="nav-item tc_menuitem_block"
198 *ngIf="(permissions.rbdImage.read || permissions.rbdMirroring.read || permissions.iscsi.read) &&
199 (enabledFeature.rbd || enabledFeature.mirroring || enabledFeature.iscsi)">
200 <a class="nav-link dropdown-toggle"
201 (click)="toggleSubMenu('block')"
39ae355f
TL
202 [attr.aria-expanded]="displayedSubMenu === 'block'"
203 aria-controls="block-nav"
204 role="button"
20effc67
TL
205 [ngStyle]="blockHealthColor()">
206 <ng-container i18n>Block</ng-container>
207 </a>
9f95a23c 208
20effc67 209 <ul class="list-unstyled"
39ae355f 210 id="block-nav"
20effc67
TL
211 [ngbCollapse]="displayedSubMenu !== 'block'">
212 <li routerLinkActive="active"
213 class="tc_submenuitem tc_submenuitem_block_images"
214 *ngIf="permissions.rbdImage.read && enabledFeature.rbd">
215 <a i18n
216 routerLink="/block/rbd">Images</a>
217 </li>
9f95a23c 218
20effc67
TL
219 <li routerLinkActive="active"
220 class="tc_submenuitem tc_submenuitem_block_mirroring"
221 *ngIf="permissions.rbdMirroring.read && enabledFeature.mirroring">
222 <a routerLink="/block/mirroring">
223 <ng-container i18n>Mirroring</ng-container>
224 <small *ngIf="summaryData?.rbd_mirroring?.warnings !== 0"
225 class="badge badge-warning">{{ summaryData?.rbd_mirroring?.warnings }}</small>
226 <small *ngIf="summaryData?.rbd_mirroring?.errors !== 0"
227 class="badge badge-danger">{{ summaryData?.rbd_mirroring?.errors }}</small>
228 </a>
229 </li>
9f95a23c 230
20effc67
TL
231 <li routerLinkActive="active"
232 class="tc_submenuitem tc_submenuitem_block_iscsi"
233 *ngIf="permissions.iscsi.read && enabledFeature.iscsi">
234 <a i18n
235 routerLink="/block/iscsi">iSCSI</a>
236 </li>
237 </ul>
238 </li>
239
240 <!-- NFS -->
241 <li routerLinkActive="active"
242 class="nav-item tc_menuitem_nfs"
243 *ngIf="permissions.nfs.read && enabledFeature.nfs">
244 <a i18n
245 class="nav-link"
246 routerLink="/nfs">NFS</a>
247 </li>
248
249 <!-- Filesystem -->
250 <li routerLinkActive="active"
251 class="nav-item tc_menuitem_cephfs"
252 *ngIf="permissions.cephfs.read && enabledFeature.cephfs">
253 <a i18n
254 class="nav-link"
255 routerLink="/cephfs">File Systems</a>
256 </li>
257
258 <!-- Object Gateway -->
259 <li routerLinkActive="active"
260 class="nav-item tc_menuitem_rgw"
261 *ngIf="permissions.rgw.read && enabledFeature.rgw">
262 <a class="nav-link dropdown-toggle"
263 (click)="toggleSubMenu('rgw')"
39ae355f
TL
264 [attr.aria-expanded]="displayedSubMenu === 'rgw'"
265 aria-controls="gateway-nav"
266 role="button">
20effc67
TL
267 <ng-container i18n>Object Gateway</ng-container>
268 </a>
269 <ul class="list-unstyled"
39ae355f 270 id="gateway-nav"
20effc67 271 [ngbCollapse]="displayedSubMenu !== 'rgw'">
aee94f69
TL
272 <li routerLinkActive="active"
273 class="tc_submenuitem tc_submenuitem_rgw_overview">
274 <a i18n
275 routerLink="/rgw/overview">Overview</a>
276 </li>
20effc67
TL
277 <li routerLinkActive="active"
278 class="tc_submenuitem tc_submenuitem_rgw_daemons">
279 <a i18n
1e59de90 280 routerLink="/rgw/daemon">Gateways</a>
20effc67
TL
281 </li>
282 <li routerLinkActive="active"
283 class="tc_submenuitem tc_submenuitem_rgw_users">
284 <a i18n
285 routerLink="/rgw/user">Users</a>
286 </li>
287 <li routerLinkActive="active"
288 class="tc_submenuitem tc_submenuitem_rgw_buckets">
289 <a i18n
290 routerLink="/rgw/bucket">Buckets</a>
291 </li>
aee94f69
TL
292 <li routerLinkActive="active"
293 class="tc_submenuitem tc_submenuitem_rgw_buckets">
294 <a i18n
295 routerLink="/rgw/multisite">Multi-Site</a>
296 </li>
20effc67
TL
297 </ul>
298 </li>
299 </ng-container>
300 </ng-template>
301
302</div>