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.activeAlerts > 0"
164 class=
"badge badge-danger">{{ prometheusAlertService.activeAlerts }}
</small>
171 <li routerLinkActive=
"active"
172 class=
"nav-item tc_menuitem_pool"
173 *
ngIf=
"permissions.pool.read">
176 routerLink=
"/pool">Pools
</a>
180 <li routerLinkActive=
"active"
181 class=
"nav-item tc_menuitem_block"
182 *
ngIf=
"(permissions.rbdImage.read || permissions.rbdMirroring.read || permissions.iscsi.read) &&
183 (enabledFeature.rbd || enabledFeature.mirroring || enabledFeature.iscsi)">
184 <a class=
"nav-link dropdown-toggle"
185 (click)=
"toggleSubMenu('block')"
186 [attr.aria-expanded]=
"displayedSubMenu == 'block'"
187 aria-controls=
"collapseBasic"
188 [ngStyle]=
"blockHealthColor()">
189 <ng-container i18n
>Block
</ng-container>
192 <ul class=
"list-unstyled"
193 [ngbCollapse]=
"displayedSubMenu !== 'block'">
194 <li routerLinkActive=
"active"
195 class=
"tc_submenuitem tc_submenuitem_block_images"
196 *
ngIf=
"permissions.rbdImage.read && enabledFeature.rbd">
198 routerLink=
"/block/rbd">Images
</a>
201 <li routerLinkActive=
"active"
202 class=
"tc_submenuitem tc_submenuitem_block_mirroring"
203 *
ngIf=
"permissions.rbdMirroring.read && enabledFeature.mirroring">
204 <a routerLink=
"/block/mirroring">
205 <ng-container i18n
>Mirroring
</ng-container>
206 <small *
ngIf=
"summaryData?.rbd_mirroring?.warnings !== 0"
207 class=
"badge badge-warning">{{ summaryData?.rbd_mirroring?.warnings }}
</small>
208 <small *
ngIf=
"summaryData?.rbd_mirroring?.errors !== 0"
209 class=
"badge badge-danger">{{ summaryData?.rbd_mirroring?.errors }}
</small>
213 <li routerLinkActive=
"active"
214 class=
"tc_submenuitem tc_submenuitem_block_iscsi"
215 *
ngIf=
"permissions.iscsi.read && enabledFeature.iscsi">
217 routerLink=
"/block/iscsi">iSCSI
</a>
223 <li routerLinkActive=
"active"
224 class=
"nav-item tc_menuitem_nfs"
225 *
ngIf=
"permissions.nfs.read && enabledFeature.nfs">
228 routerLink=
"/nfs">NFS
</a>
232 <li routerLinkActive=
"active"
233 class=
"nav-item tc_menuitem_cephfs"
234 *
ngIf=
"permissions.cephfs.read && enabledFeature.cephfs">
237 routerLink=
"/cephfs">File Systems
</a>
240 <!-- Object Gateway -->
241 <li routerLinkActive=
"active"
242 class=
"nav-item tc_menuitem_rgw"
243 *
ngIf=
"permissions.rgw.read && enabledFeature.rgw">
244 <a class=
"nav-link dropdown-toggle"
245 (click)=
"toggleSubMenu('rgw')"
246 [attr.aria-expanded]=
"displayedSubMenu == 'rgw'"
247 aria-controls=
"collapseBasic">
248 <ng-container i18n
>Object Gateway
</ng-container>
250 <ul class=
"list-unstyled"
251 [ngbCollapse]=
"displayedSubMenu !== 'rgw'">
252 <li routerLinkActive=
"active"
253 class=
"tc_submenuitem tc_submenuitem_rgw_daemons">
255 routerLink=
"/rgw/daemon">Daemons
</a>
257 <li routerLinkActive=
"active"
258 class=
"tc_submenuitem tc_submenuitem_rgw_users">
260 routerLink=
"/rgw/user">Users
</a>
262 <li routerLinkActive=
"active"
263 class=
"tc_submenuitem tc_submenuitem_rgw_buckets">
265 routerLink=
"/rgw/bucket">Buckets
</a>