1 <cd-pwd-expiration-notification></cd-pwd-expiration-notification>
2 <cd-telemetry-notification></cd-telemetry-notification>
3 <cd-notifications-sidebar></cd-notifications-sidebar>
5 <div class=
"cd-navbar-top">
6 <nav class=
"navbar fixed-top navbar-expand-md navbar-dark cd-navbar-brand">
7 <button class=
"btn btn-link py-0"
8 (click)=
"showMenuSidebar = !showMenuSidebar">
9 <i class=
"fa fa-bars fa-2x"
10 aria-hidden=
"true"></i>
13 <a class=
"navbar-brand ml-2"
15 <img src=
"assets/Ceph_Ceph_Logo_with_text_white.svg"
20 class=
"navbar-toggler"
21 (click)=
"isCollapsed = !isCollapsed">
23 class=
"sr-only">Toggle navigation
</span>
25 <i class=
"fa fa-navicon fa-lg"></i>
29 <div class=
"collapse navbar-collapse">
30 <ul class=
"nav navbar-nav cd-navbar-utility my-2 my-md-0">
31 <ng-container *
ngTemplateOutlet=
"cd_utilities"> </ng-container>
40 [ngClass]=
"{'active': !showMenuSidebar}">
41 <ngx-simplebar [options]=
"simplebar">
42 <ul class=
"list-unstyled components cd-navbar-primary">
43 <ng-container *
ngTemplateOutlet=
"cd_menu"> </ng-container>
50 [ngClass]=
"{'active': !showMenuSidebar}">
51 <ng-content></ng-content>
55 <ng-template #cd_utilities
>
56 <li class=
"nav-item ">
57 <cd-language-selector class=
"cd-navbar"></cd-language-selector>
59 <li class=
"nav-item ">
60 <cd-notifications class=
"cd-navbar"></cd-notifications>
62 <li class=
"nav-item ">
63 <cd-dashboard-help class=
"cd-navbar"></cd-dashboard-help>
65 <li class=
"nav-item ">
66 <cd-administration class=
"cd-navbar"></cd-administration>
68 <li class=
"nav-item ">
69 <cd-identity class=
"cd-navbar"></cd-identity>
73 <ng-template #cd_menu
>
74 <ng-container *
ngIf=
"enabledFeature$ | async as enabledFeature">
76 <li routerLinkActive=
"active"
77 class=
"nav-item tc_menuitem_dashboard">
78 <a routerLink=
"/dashboard"
80 <span i18n
>Dashboard
</span>
81 <i [ngClass]=
"[icons.health]"
82 [ngStyle]=
"summaryData?.health_status | healthColor"></i>
87 <li routerLinkActive=
"active"
88 class=
"nav-item tc_menuitem_cluster"
89 *
ngIf=
"permissions.hosts.read || permissions.monitor.read ||
90 permissions.osd.read || permissions.configOpt.read ||
91 permissions.log.read || permissions.prometheus.read">
92 <a (click)=
"toggleSubMenu('cluster')"
93 class=
"nav-link dropdown-toggle"
94 [attr.aria-expanded]=
"displayedSubMenu == 'cluster'"
95 aria-controls=
"collapseBasic">
96 <ng-container i18n
>Cluster
</ng-container>
98 <ul class=
"list-unstyled"
99 [ngbCollapse]=
"displayedSubMenu !== 'cluster'">
100 <li routerLinkActive=
"active"
101 class=
"tc_submenuitem tc_submenuitem_hosts"
102 *
ngIf=
"permissions.hosts.read">
104 routerLink=
"/hosts">Hosts
</a>
106 <li routerLinkActive=
"active"
107 class=
"tc_submenuitem tc_submenuitem_cluster_inventory"
108 *
ngIf=
"permissions.hosts.read">
110 routerLink=
"/inventory">Inventory
</a>
112 <li routerLinkActive=
"active"
113 class=
"tc_submenuitem tc_submenuitem_cluster_monitor"
114 *
ngIf=
"permissions.monitor.read">
116 routerLink=
"/monitor/">Monitors
</a>
118 <li routerLinkActive=
"active"
119 class=
"tc_submenuitem tc_submenuitem_cluster_services"
120 *
ngIf=
"permissions.hosts.read">
122 routerLink=
"/services/">Services
</a>
124 <li routerLinkActive=
"active"
125 class=
"tc_submenuitem tc_submenuitem_osds"
126 *
ngIf=
"permissions.osd.read">
128 routerLink=
"/osd">OSDs
</a>
130 <li routerLinkActive=
"active"
131 class=
"tc_submenuitem tc_submenuitem_configuration"
132 *
ngIf=
"permissions.configOpt.read">
134 routerLink=
"/configuration">Configuration
</a>
136 <li routerLinkActive=
"active"
137 class=
"tc_submenuitem tc_submenuitem_crush"
138 *
ngIf=
"permissions.osd.read">
140 routerLink=
"/crush-map">CRUSH map
</a>
142 <li routerLinkActive=
"active"
143 class=
"tc_submenuitem tc_submenuitem_modules"
144 *
ngIf=
"permissions.configOpt.read">
146 routerLink=
"/mgr-modules">Manager Modules
</a>
148 <li routerLinkActive=
"active"
149 class=
"tc_submenuitem tc_submenuitem_log"
150 *
ngIf=
"permissions.log.read">
152 routerLink=
"/logs">Logs
</a>
154 <li routerLinkActive=
"active"
155 class=
"tc_submenuitem tc_submenuitem_monitoring"
156 *
ngIf=
"permissions.prometheus.read">
157 <a routerLink=
"/monitoring">
158 <ng-container i18n
>Monitoring
</ng-container>
159 <small *
ngIf=
"prometheusAlertService.activeAlerts > 0"
160 class=
"badge badge-danger">{{ prometheusAlertService.activeAlerts }}
</small>
167 <li routerLinkActive=
"active"
168 class=
"nav-item tc_menuitem_pool"
169 *
ngIf=
"permissions.pool.read">
172 routerLink=
"/pool">Pools
</a>
176 <li routerLinkActive=
"active"
177 class=
"nav-item tc_menuitem_block"
178 *
ngIf=
"(permissions.rbdImage.read || permissions.rbdMirroring.read || permissions.iscsi.read) &&
179 (enabledFeature.rbd || enabledFeature.mirroring || enabledFeature.iscsi)">
180 <a class=
"nav-link dropdown-toggle"
181 (click)=
"toggleSubMenu('block')"
182 [attr.aria-expanded]=
"displayedSubMenu == 'block'"
183 aria-controls=
"collapseBasic"
184 [ngStyle]=
"blockHealthColor()">
185 <ng-container i18n
>Block
</ng-container>
188 <ul class=
"list-unstyled"
189 [ngbCollapse]=
"displayedSubMenu !== 'block'">
190 <li routerLinkActive=
"active"
191 class=
"tc_submenuitem tc_submenuitem_block_images"
192 *
ngIf=
"permissions.rbdImage.read && enabledFeature.rbd">
194 routerLink=
"/block/rbd">Images
</a>
197 <li routerLinkActive=
"active"
198 class=
"tc_submenuitem tc_submenuitem_block_mirroring"
199 *
ngIf=
"permissions.rbdMirroring.read && enabledFeature.mirroring">
200 <a routerLink=
"/block/mirroring">
201 <ng-container i18n
>Mirroring
</ng-container>
202 <small *
ngIf=
"summaryData?.rbd_mirroring?.warnings !== 0"
203 class=
"badge badge-warning">{{ summaryData?.rbd_mirroring?.warnings }}
</small>
204 <small *
ngIf=
"summaryData?.rbd_mirroring?.errors !== 0"
205 class=
"badge badge-danger">{{ summaryData?.rbd_mirroring?.errors }}
</small>
209 <li routerLinkActive=
"active"
210 class=
"tc_submenuitem tc_submenuitem_block_iscsi"
211 *
ngIf=
"permissions.iscsi.read && enabledFeature.iscsi">
213 routerLink=
"/block/iscsi">iSCSI
</a>
219 <li routerLinkActive=
"active"
220 class=
"nav-item tc_menuitem_nfs"
221 *
ngIf=
"permissions.nfs.read && enabledFeature.nfs">
224 routerLink=
"/nfs">NFS
</a>
228 <li routerLinkActive=
"active"
229 class=
"nav-item tc_menuitem_cephfs"
230 *
ngIf=
"permissions.cephfs.read && enabledFeature.cephfs">
233 routerLink=
"/cephfs">Filesystems
</a>
236 <!-- Object Gateway -->
237 <li routerLinkActive=
"active"
238 class=
"nav-item tc_menuitem_rgw"
239 *
ngIf=
"permissions.rgw.read && enabledFeature.rgw">
240 <a class=
"nav-link dropdown-toggle"
241 (click)=
"toggleSubMenu('rgw')"
242 [attr.aria-expanded]=
"displayedSubMenu == 'rgw'"
243 aria-controls=
"collapseBasic">
244 <ng-container i18n
>Object Gateway
</ng-container>
246 <ul class=
"list-unstyled"
247 [ngbCollapse]=
"displayedSubMenu !== 'rgw'">
248 <li routerLinkActive=
"active"
249 class=
"tc_submenuitem tc_submenuitem_rgw_daemons">
251 routerLink=
"/rgw/daemon">Daemons
</a>
253 <li routerLinkActive=
"active"
254 class=
"tc_submenuitem tc_submenuitem_rgw_users">
256 routerLink=
"/rgw/user">Users
</a>
258 <li routerLinkActive=
"active"
259 class=
"tc_submenuitem tc_submenuitem_rgw_buckets">
261 routerLink=
"/rgw/bucket">Buckets
</a>