1 <cd-pwd-expiration-notification></cd-pwd-expiration-notification>
2 <cd-notifications-sidebar></cd-notifications-sidebar>
4 <div class=
"cd-navbar-top">
5 <nav class=
"navbar fixed-top navbar-expand-md navbar-dark cd-navbar-brand">
6 <button class=
"btn btn-link py-0"
7 (click)=
"showMenuSidebar = !showMenuSidebar">
8 <i class=
"fa fa-bars fa-2x"
9 aria-hidden=
"true"></i>
12 <a class=
"navbar-brand ml-2"
14 <img src=
"assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"
19 class=
"navbar-toggler"
20 (click)=
"isCollapsed = !isCollapsed">
22 class=
"sr-only">Toggle navigation
</span>
24 <i class=
"fa fa-navicon fa-lg"></i>
28 <div class=
"collapse navbar-collapse"
29 [collapse]=
"isCollapsed">
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 [collapse]=
"displayedSubMenu !== 'cluster'"
101 <li routerLinkActive=
"active"
102 class=
"tc_submenuitem tc_submenuitem_hosts"
103 *
ngIf=
"permissions.hosts.read">
105 routerLink=
"/hosts">Hosts
</a>
107 <li routerLinkActive=
"active"
108 class=
"tc_submenuitem tc_submenuitem_cluster_inventory"
109 *
ngIf=
"permissions.hosts.read">
111 routerLink=
"/inventory">Inventory
</a>
113 <li routerLinkActive=
"active"
114 class=
"tc_submenuitem tc_submenuitem_cluster_monitor"
115 *
ngIf=
"permissions.monitor.read">
117 routerLink=
"/monitor/">Monitors
</a>
119 <li routerLinkActive=
"active"
120 class=
"tc_submenuitem tc_submenuitem_cluster_services"
121 *
ngIf=
"permissions.hosts.read">
123 routerLink=
"/services/">Services
</a>
125 <li routerLinkActive=
"active"
126 class=
"tc_submenuitem tc_submenuitem_osds"
127 *
ngIf=
"permissions.osd.read">
129 routerLink=
"/osd">OSDs
</a>
131 <li routerLinkActive=
"active"
132 class=
"tc_submenuitem tc_submenuitem_configuration"
133 *
ngIf=
"permissions.configOpt.read">
135 routerLink=
"/configuration">Configuration
</a>
137 <li routerLinkActive=
"active"
138 class=
"tc_submenuitem tc_submenuitem_crush"
139 *
ngIf=
"permissions.osd.read">
141 routerLink=
"/crush-map">CRUSH map
</a>
143 <li routerLinkActive=
"active"
144 class=
"tc_submenuitem tc_submenuitem_modules"
145 *
ngIf=
"permissions.configOpt.read">
147 routerLink=
"/mgr-modules">Manager modules
</a>
149 <li routerLinkActive=
"active"
150 class=
"tc_submenuitem tc_submenuitem_log"
151 *
ngIf=
"permissions.log.read">
153 routerLink=
"/logs">Logs
</a>
155 <li routerLinkActive=
"active"
156 class=
"tc_submenuitem tc_submenuitem_monitoring"
157 *
ngIf=
"permissions.prometheus.read">
158 <a routerLink=
"/monitoring">
159 <ng-container i18n
>Monitoring
</ng-container>
160 <small *
ngIf=
"prometheusAlertService.alerts.length > 0"
161 class=
"badge badge-danger">{{ prometheusAlertService.alerts.length }}
</small>
168 <li routerLinkActive=
"active"
169 class=
"nav-item tc_menuitem_pool"
170 *
ngIf=
"permissions.pool.read">
173 routerLink=
"/pool">Pools
</a>
177 <li routerLinkActive=
"active"
178 class=
"nav-item tc_menuitem_block"
179 *
ngIf=
"(permissions.rbdImage.read || permissions.rbdMirroring.read || permissions.iscsi.read) &&
180 (enabledFeature.rbd || enabledFeature.mirroring || enabledFeature.iscsi)">
181 <a class=
"nav-link dropdown-toggle"
182 (click)=
"toggleSubMenu('block')"
183 [attr.aria-expanded]=
"displayedSubMenu == 'block'"
184 aria-controls=
"collapseBasic"
185 [ngStyle]=
"blockHealthColor()">
186 <ng-container i18n
>Block
</ng-container>
189 <ul class=
"list-unstyled"
190 [collapse]=
"displayedSubMenu !== 'block'"
192 <li routerLinkActive=
"active"
193 class=
"tc_submenuitem tc_submenuitem_block_images"
194 *
ngIf=
"permissions.rbdImage.read && enabledFeature.rbd">
196 routerLink=
"/block/rbd">Images
</a>
199 <li routerLinkActive=
"active"
200 class=
"tc_submenuitem tc_submenuitem_block_mirroring"
201 *
ngIf=
"permissions.rbdMirroring.read && enabledFeature.mirroring">
202 <a routerLink=
"/block/mirroring">
203 <ng-container i18n
>Mirroring
</ng-container>
204 <small *
ngIf=
"summaryData?.rbd_mirroring?.warnings !== 0"
205 class=
"badge badge-warning">{{ summaryData?.rbd_mirroring?.warnings }}
</small>
206 <small *
ngIf=
"summaryData?.rbd_mirroring?.errors !== 0"
207 class=
"badge badge-danger">{{ summaryData?.rbd_mirroring?.errors }}
</small>
211 <li routerLinkActive=
"active"
212 class=
"tc_submenuitem tc_submenuitem_block_iscsi"
213 *
ngIf=
"permissions.iscsi.read && enabledFeature.iscsi">
215 routerLink=
"/block/iscsi">iSCSI
</a>
221 <li routerLinkActive=
"active"
222 class=
"nav-item tc_menuitem_nfs"
223 *
ngIf=
"permissions.nfs.read && enabledFeature.nfs">
226 routerLink=
"/nfs">NFS
</a>
230 <li routerLinkActive=
"active"
231 class=
"nav-item tc_menuitem_cephfs"
232 *
ngIf=
"permissions.cephfs.read && enabledFeature.cephfs">
235 routerLink=
"/cephfs">Filesystems
</a>
238 <!-- Object Gateway -->
239 <li routerLinkActive=
"active"
240 class=
"nav-item tc_menuitem_rgw"
241 *
ngIf=
"permissions.rgw.read && enabledFeature.rgw">
242 <a class=
"nav-link dropdown-toggle"
243 (click)=
"toggleSubMenu('rgw')"
244 [attr.aria-expanded]=
"displayedSubMenu == 'rgw'"
245 aria-controls=
"collapseBasic">
246 <ng-container i18n
>Object Gateway
</ng-container>
248 <ul class=
"list-unstyled"
249 [collapse]=
"displayedSubMenu !== 'rgw'"
251 <li routerLinkActive=
"active"
252 class=
"tc_submenuitem tc_submenuitem_rgw_daemons">
254 routerLink=
"/rgw/daemon">Daemons
</a>
256 <li routerLinkActive=
"active"
257 class=
"tc_submenuitem tc_submenuitem_rgw_users">
259 routerLink=
"/rgw/user">Users
</a>
261 <li routerLinkActive=
"active"
262 class=
"tc_submenuitem tc_submenuitem_rgw_buckets">
264 routerLink=
"/rgw/bucket">Buckets
</a>