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_Logo_Standard_RGB_White_120411_fa.png"
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 [collapse]=
"isCollapsed">
31 <ul class=
"nav navbar-nav cd-navbar-utility my-2 my-md-0">
32 <ng-container *
ngTemplateOutlet=
"cd_utilities"> </ng-container>
41 [ngClass]=
"{'active': !showMenuSidebar}">
42 <ngx-simplebar [options]=
"simplebar">
43 <ul class=
"list-unstyled components cd-navbar-primary">
44 <ng-container *
ngTemplateOutlet=
"cd_menu"> </ng-container>
51 [ngClass]=
"{'active': !showMenuSidebar}">
52 <ng-content></ng-content>
56 <ng-template #cd_utilities
>
57 <li class=
"nav-item ">
58 <cd-language-selector class=
"cd-navbar"></cd-language-selector>
60 <li class=
"nav-item ">
61 <cd-notifications class=
"cd-navbar"></cd-notifications>
63 <li class=
"nav-item ">
64 <cd-dashboard-help class=
"cd-navbar"></cd-dashboard-help>
66 <li class=
"nav-item ">
67 <cd-administration class=
"cd-navbar"></cd-administration>
69 <li class=
"nav-item ">
70 <cd-identity class=
"cd-navbar"></cd-identity>
74 <ng-template #cd_menu
>
75 <ng-container *
ngIf=
"enabledFeature$ | async as enabledFeature">
77 <li routerLinkActive=
"active"
78 class=
"nav-item tc_menuitem_dashboard">
79 <a routerLink=
"/dashboard"
81 <span i18n
>Dashboard
</span>
82 <i [ngClass]=
"[icons.health]"
83 [ngStyle]=
"summaryData?.health_status | healthColor"></i>
88 <li routerLinkActive=
"active"
89 class=
"nav-item tc_menuitem_cluster"
90 *
ngIf=
"permissions.hosts.read || permissions.monitor.read ||
91 permissions.osd.read || permissions.configOpt.read ||
92 permissions.log.read || permissions.prometheus.read">
93 <a (click)=
"toggleSubMenu('cluster')"
94 class=
"nav-link dropdown-toggle"
95 [attr.aria-expanded]=
"displayedSubMenu == 'cluster'"
96 aria-controls=
"collapseBasic">
97 <ng-container i18n
>Cluster
</ng-container>
99 <ul class=
"list-unstyled"
100 [collapse]=
"displayedSubMenu !== 'cluster'"
102 <li routerLinkActive=
"active"
103 class=
"tc_submenuitem tc_submenuitem_hosts"
104 *
ngIf=
"permissions.hosts.read">
106 routerLink=
"/hosts">Hosts
</a>
108 <li routerLinkActive=
"active"
109 class=
"tc_submenuitem tc_submenuitem_cluster_inventory"
110 *
ngIf=
"permissions.hosts.read">
112 routerLink=
"/inventory">Inventory
</a>
114 <li routerLinkActive=
"active"
115 class=
"tc_submenuitem tc_submenuitem_cluster_monitor"
116 *
ngIf=
"permissions.monitor.read">
118 routerLink=
"/monitor/">Monitors
</a>
120 <li routerLinkActive=
"active"
121 class=
"tc_submenuitem tc_submenuitem_cluster_services"
122 *
ngIf=
"permissions.hosts.read">
124 routerLink=
"/services/">Services
</a>
126 <li routerLinkActive=
"active"
127 class=
"tc_submenuitem tc_submenuitem_osds"
128 *
ngIf=
"permissions.osd.read">
130 routerLink=
"/osd">OSDs
</a>
132 <li routerLinkActive=
"active"
133 class=
"tc_submenuitem tc_submenuitem_configuration"
134 *
ngIf=
"permissions.configOpt.read">
136 routerLink=
"/configuration">Configuration
</a>
138 <li routerLinkActive=
"active"
139 class=
"tc_submenuitem tc_submenuitem_crush"
140 *
ngIf=
"permissions.osd.read">
142 routerLink=
"/crush-map">CRUSH map
</a>
144 <li routerLinkActive=
"active"
145 class=
"tc_submenuitem tc_submenuitem_modules"
146 *
ngIf=
"permissions.configOpt.read">
148 routerLink=
"/mgr-modules">Manager Modules
</a>
150 <li routerLinkActive=
"active"
151 class=
"tc_submenuitem tc_submenuitem_log"
152 *
ngIf=
"permissions.log.read">
154 routerLink=
"/logs">Logs
</a>
156 <li routerLinkActive=
"active"
157 class=
"tc_submenuitem tc_submenuitem_monitoring"
158 *
ngIf=
"permissions.prometheus.read">
159 <a routerLink=
"/monitoring">
160 <ng-container i18n
>Monitoring
</ng-container>
161 <small *
ngIf=
"prometheusAlertService.alerts.length > 0"
162 class=
"badge badge-danger">{{ prometheusAlertService.alerts.length }}
</small>
169 <li routerLinkActive=
"active"
170 class=
"nav-item tc_menuitem_pool"
171 *
ngIf=
"permissions.pool.read">
174 routerLink=
"/pool">Pools
</a>
178 <li routerLinkActive=
"active"
179 class=
"nav-item tc_menuitem_block"
180 *
ngIf=
"(permissions.rbdImage.read || permissions.rbdMirroring.read || permissions.iscsi.read) &&
181 (enabledFeature.rbd || enabledFeature.mirroring || enabledFeature.iscsi)">
182 <a class=
"nav-link dropdown-toggle"
183 (click)=
"toggleSubMenu('block')"
184 [attr.aria-expanded]=
"displayedSubMenu == 'block'"
185 aria-controls=
"collapseBasic"
186 [ngStyle]=
"blockHealthColor()">
187 <ng-container i18n
>Block
</ng-container>
190 <ul class=
"list-unstyled"
191 [collapse]=
"displayedSubMenu !== 'block'"
193 <li routerLinkActive=
"active"
194 class=
"tc_submenuitem tc_submenuitem_block_images"
195 *
ngIf=
"permissions.rbdImage.read && enabledFeature.rbd">
197 routerLink=
"/block/rbd">Images
</a>
200 <li routerLinkActive=
"active"
201 class=
"tc_submenuitem tc_submenuitem_block_mirroring"
202 *
ngIf=
"permissions.rbdMirroring.read && enabledFeature.mirroring">
203 <a routerLink=
"/block/mirroring">
204 <ng-container i18n
>Mirroring
</ng-container>
205 <small *
ngIf=
"summaryData?.rbd_mirroring?.warnings !== 0"
206 class=
"badge badge-warning">{{ summaryData?.rbd_mirroring?.warnings }}
</small>
207 <small *
ngIf=
"summaryData?.rbd_mirroring?.errors !== 0"
208 class=
"badge badge-danger">{{ summaryData?.rbd_mirroring?.errors }}
</small>
212 <li routerLinkActive=
"active"
213 class=
"tc_submenuitem tc_submenuitem_block_iscsi"
214 *
ngIf=
"permissions.iscsi.read && enabledFeature.iscsi">
216 routerLink=
"/block/iscsi">iSCSI
</a>
222 <li routerLinkActive=
"active"
223 class=
"nav-item tc_menuitem_nfs"
224 *
ngIf=
"permissions.nfs.read && enabledFeature.nfs">
227 routerLink=
"/nfs">NFS
</a>
231 <li routerLinkActive=
"active"
232 class=
"nav-item tc_menuitem_cephfs"
233 *
ngIf=
"permissions.cephfs.read && enabledFeature.cephfs">
236 routerLink=
"/cephfs">Filesystems
</a>
239 <!-- Object Gateway -->
240 <li routerLinkActive=
"active"
241 class=
"nav-item tc_menuitem_rgw"
242 *
ngIf=
"permissions.rgw.read && enabledFeature.rgw">
243 <a class=
"nav-link dropdown-toggle"
244 (click)=
"toggleSubMenu('rgw')"
245 [attr.aria-expanded]=
"displayedSubMenu == 'rgw'"
246 aria-controls=
"collapseBasic">
247 <ng-container i18n
>Object Gateway
</ng-container>
249 <ul class=
"list-unstyled"
250 [collapse]=
"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>