1 <div class=
"cd-navbar-main">
2 <cd-pwd-expiration-notification></cd-pwd-expiration-notification>
3 <cd-telemetry-notification></cd-telemetry-notification>
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">
8 <button class=
"btn btn-link py-0"
9 (click)=
"showMenuSidebar = !showMenuSidebar"
10 aria-label=
"toggle sidebar visibility">
11 <i class=
"fa fa-bars fa-2x"
12 aria-hidden=
"true"></i>
15 <a class=
"navbar-brand ml-2"
17 <img src=
"assets/Ceph_Ceph_Logo_with_text_white.svg"
22 class=
"navbar-toggler"
23 (click)=
"toggleRightSidebar()">
25 class=
"sr-only">Toggle navigation
</span>
27 <i class=
"fa fa-navicon fa-lg"></i>
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>
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>
53 [ngClass]=
"{'active': !showMenuSidebar}">
54 <ng-content></ng-content>
58 <ng-template #cd_utilities
>
60 <cd-language-selector class=
"cd-navbar"></cd-language-selector>
63 <cd-notifications class=
"cd-navbar"
64 (click)=
"toggleRightSidebar()"></cd-notifications>
67 <cd-dashboard-help class=
"cd-navbar"></cd-dashboard-help>
70 <cd-administration class=
"cd-navbar"></cd-administration>
73 <cd-identity class=
"cd-navbar"></cd-identity>
77 <ng-template #cd_menu
>
78 <ng-container *
ngIf=
"enabledFeature$ | async as enabledFeature">
80 <li routerLinkActive=
"active"
81 class=
"nav-item tc_menuitem_dashboard">
82 <a routerLink=
"/dashboard"
84 <span i18n
>Dashboard
</span>
85 <i [ngClass]=
"[icons.health]"
86 [ngStyle]=
"summaryData?.health_status | healthColor"></i>
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"
98 [attr.aria-expanded]=
"displayedSubMenu == 'cluster'"
99 aria-controls=
"collapseBasic">
100 <ng-container i18n
>Cluster
</ng-container>
102 <ul class=
"list-unstyled"
103 [ngbCollapse]=
"displayedSubMenu !== 'cluster'">
104 <li routerLinkActive=
"active"
105 class=
"tc_submenuitem tc_submenuitem_hosts"
106 *
ngIf=
"permissions.hosts.read">
108 routerLink=
"/hosts">Hosts
</a>
110 <li routerLinkActive=
"active"
111 class=
"tc_submenuitem tc_submenuitem_cluster_inventory"
112 *
ngIf=
"permissions.hosts.read">
114 routerLink=
"/inventory">Physical Disks
</a>
116 <li routerLinkActive=
"active"
117 class=
"tc_submenuitem tc_submenuitem_cluster_monitor"
118 *
ngIf=
"permissions.monitor.read">
120 routerLink=
"/monitor/">Monitors
</a>
122 <li routerLinkActive=
"active"
123 class=
"tc_submenuitem tc_submenuitem_cluster_services"
124 *
ngIf=
"permissions.hosts.read">
126 routerLink=
"/services/">Services
</a>
128 <li routerLinkActive=
"active"
129 class=
"tc_submenuitem tc_submenuitem_osds"
130 *
ngIf=
"permissions.osd.read">
132 routerLink=
"/osd">OSDs
</a>
134 <li routerLinkActive=
"active"
135 class=
"tc_submenuitem tc_submenuitem_configuration"
136 *
ngIf=
"permissions.configOpt.read">
138 routerLink=
"/configuration">Configuration
</a>
140 <li routerLinkActive=
"active"
141 class=
"tc_submenuitem tc_submenuitem_crush"
142 *
ngIf=
"permissions.osd.read">
144 routerLink=
"/crush-map">CRUSH map
</a>
146 <li routerLinkActive=
"active"
147 class=
"tc_submenuitem tc_submenuitem_modules"
148 *
ngIf=
"permissions.configOpt.read">
150 routerLink=
"/mgr-modules">Manager Modules
</a>
152 <li routerLinkActive=
"active"
153 class=
"tc_submenuitem tc_submenuitem_log"
154 *
ngIf=
"permissions.log.read">
156 routerLink=
"/logs">Logs
</a>
158 <li routerLinkActive=
"active"
159 class=
"tc_submenuitem tc_submenuitem_monitoring"
160 *
ngIf=
"permissions.prometheus.read">
161 <a routerLink=
"/monitoring">
162 <ng-container i18n
>Monitoring
</ng-container>
163 <small *
ngIf=
"prometheusAlertService.activeCriticalAlerts > 0"
164 class=
"badge badge-danger ml-1">{{ prometheusAlertService.activeCriticalAlerts }}
</small>
165 <small *
ngIf=
"prometheusAlertService.activeWarningAlerts > 0"
166 class=
"badge badge-warning ml-1">{{ prometheusAlertService.activeWarningAlerts }}
</small>
173 <li routerLinkActive=
"active"
174 class=
"nav-item tc_menuitem_pool"
175 *
ngIf=
"permissions.pool.read">
178 routerLink=
"/pool">Pools
</a>
182 <li routerLinkActive=
"active"
183 class=
"nav-item tc_menuitem_block"
184 *
ngIf=
"(permissions.rbdImage.read || permissions.rbdMirroring.read || permissions.iscsi.read) &&
185 (enabledFeature.rbd || enabledFeature.mirroring || enabledFeature.iscsi)">
186 <a class=
"nav-link dropdown-toggle"
187 (click)=
"toggleSubMenu('block')"
188 [attr.aria-expanded]=
"displayedSubMenu == 'block'"
189 aria-controls=
"collapseBasic"
190 [ngStyle]=
"blockHealthColor()">
191 <ng-container i18n
>Block
</ng-container>
194 <ul class=
"list-unstyled"
195 [ngbCollapse]=
"displayedSubMenu !== 'block'">
196 <li routerLinkActive=
"active"
197 class=
"tc_submenuitem tc_submenuitem_block_images"
198 *
ngIf=
"permissions.rbdImage.read && enabledFeature.rbd">
200 routerLink=
"/block/rbd">Images
</a>
203 <li routerLinkActive=
"active"
204 class=
"tc_submenuitem tc_submenuitem_block_mirroring"
205 *
ngIf=
"permissions.rbdMirroring.read && enabledFeature.mirroring">
206 <a routerLink=
"/block/mirroring">
207 <ng-container i18n
>Mirroring
</ng-container>
208 <small *
ngIf=
"summaryData?.rbd_mirroring?.warnings !== 0"
209 class=
"badge badge-warning">{{ summaryData?.rbd_mirroring?.warnings }}
</small>
210 <small *
ngIf=
"summaryData?.rbd_mirroring?.errors !== 0"
211 class=
"badge badge-danger">{{ summaryData?.rbd_mirroring?.errors }}
</small>
215 <li routerLinkActive=
"active"
216 class=
"tc_submenuitem tc_submenuitem_block_iscsi"
217 *
ngIf=
"permissions.iscsi.read && enabledFeature.iscsi">
219 routerLink=
"/block/iscsi">iSCSI
</a>
225 <li routerLinkActive=
"active"
226 class=
"nav-item tc_menuitem_nfs"
227 *
ngIf=
"permissions.nfs.read && enabledFeature.nfs">
230 routerLink=
"/nfs">NFS
</a>
234 <li routerLinkActive=
"active"
235 class=
"nav-item tc_menuitem_cephfs"
236 *
ngIf=
"permissions.cephfs.read && enabledFeature.cephfs">
239 routerLink=
"/cephfs">File Systems
</a>
242 <!-- Object Gateway -->
243 <li routerLinkActive=
"active"
244 class=
"nav-item tc_menuitem_rgw"
245 *
ngIf=
"permissions.rgw.read && enabledFeature.rgw">
246 <a class=
"nav-link dropdown-toggle"
247 (click)=
"toggleSubMenu('rgw')"
248 [attr.aria-expanded]=
"displayedSubMenu == 'rgw'"
249 aria-controls=
"collapseBasic">
250 <ng-container i18n
>Object Gateway
</ng-container>
252 <ul class=
"list-unstyled"
253 [ngbCollapse]=
"displayedSubMenu !== 'rgw'">
254 <li routerLinkActive=
"active"
255 class=
"tc_submenuitem tc_submenuitem_rgw_daemons">
257 routerLink=
"/rgw/daemon">Daemons
</a>
259 <li routerLinkActive=
"active"
260 class=
"tc_submenuitem tc_submenuitem_rgw_users">
262 routerLink=
"/rgw/user">Users
</a>
264 <li routerLinkActive=
"active"
265 class=
"tc_submenuitem tc_submenuitem_rgw_buckets">
267 routerLink=
"/rgw/bucket">Buckets
</a>