| <template> |
| <b-nav vertical> |
| <b-nav-item to="/"><icon-overview />Overview</b-nav-item> |
| |
| <li class="nav-item"> |
| <b-button v-b-toggle.health-menu variant="link"> |
| <icon-health />Health |
| <icon-expand class="icon-expand" /> |
| </b-button> |
| <b-collapse id="health-menu" tag="ul" class="nav-item__nav"> |
| <b-nav-item href="javascript:void(0)">Event Log</b-nav-item> |
| <b-nav-item href="javascript:void(0)">Hardware Status</b-nav-item> |
| <b-nav-item href="javascript:void(0)">Sensors</b-nav-item> |
| </b-collapse> |
| </li> |
| |
| <li class="nav-item"> |
| <b-button v-b-toggle.control-menu variant="link"> |
| <icon-control />Control |
| <icon-expand class="icon-expand" /> |
| </b-button> |
| <b-collapse id="control-menu" tag="ul" class="nav-item__nav"> |
| <b-nav-item href="javascript:void(0)"> |
| Server power operations |
| </b-nav-item> |
| <b-nav-item href="javascript:void(0)">Manage power usage</b-nav-item> |
| <b-nav-item href="javascript:void(0)">Server LED</b-nav-item> |
| </b-collapse> |
| </li> |
| |
| <li class="nav-item"> |
| <b-button v-b-toggle.configuration-menu variant="link"> |
| <icon-configuration />Configuration |
| <icon-expand class="icon-expand" /> |
| </b-button> |
| <b-collapse id="configuration-menu" tag="ul" class="nav-item__nav"> |
| <b-nav-item href="javascript:void(0)">Network settings</b-nav-item> |
| <b-nav-item href="javascript:void(0)">SNMP settings</b-nav-item> |
| <b-nav-item href="javascript:void(0)">Firmware</b-nav-item> |
| </b-collapse> |
| </li> |
| |
| <li class="nav-item"> |
| <b-button v-b-toggle.access-control-menu variant="link"> |
| <icon-access-control />Access Control |
| <icon-expand class="icon-expand" /> |
| </b-button> |
| <b-collapse id="access-control-menu" tag="ul" class="nav-item__nav"> |
| <b-nav-item href="javascript:void(0)">LDAP</b-nav-item> |
| <b-nav-item to="/access-control/local-user-management"> |
| Local user management |
| </b-nav-item> |
| <b-nav-item href="javascript:void(0)">SSL Certificates</b-nav-item> |
| </b-collapse> |
| </li> |
| </b-nav> |
| </template> |
| |
| <script> |
| import IconAnalytics from '@carbon/icons-vue/es/analytics/16'; |
| import IconDataCheck from '@carbon/icons-vue/es/data--check/16'; |
| import IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16'; |
| import IconSettings from '@carbon/icons-vue/es/settings/16'; |
| import IconPassword from '@carbon/icons-vue/es/password/16'; |
| import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16'; |
| |
| export default { |
| name: 'AppNavigation', |
| components: { |
| iconOverview: IconAnalytics, |
| iconHealth: IconDataCheck, |
| iconControl: IconSettingsAdjust, |
| iconConfiguration: IconSettings, |
| iconAccessControl: IconPassword, |
| iconExpand: IconChevronUp |
| } |
| }; |
| </script> |
| |
| <style scoped lang="scss"> |
| svg { |
| fill: $gray-900; |
| margin-left: 0 !important; //!important overriding button specificity |
| vertical-align: text-bottom; |
| &:not(.icon-expand) { |
| margin-right: $spacer; |
| } |
| } |
| |
| .nav { |
| min-height: 100%; |
| padding-top: $spacer; |
| } |
| |
| .nav-item__nav { |
| list-style: none; |
| padding-left: 0; |
| margin-left: 0; |
| |
| .nav-link { |
| padding-left: $spacer * 4; |
| |
| &:not(.nav-link--current) { |
| font-weight: normal; |
| } |
| } |
| } |
| |
| .btn-link { |
| width: 100%; |
| text-align: left; |
| text-decoration: none !important; |
| border-radius: 0; |
| |
| &.collapsed { |
| .icon-expand { |
| transform: rotate(180deg); |
| } |
| } |
| } |
| |
| .icon-expand { |
| float: right; |
| margin-top: $spacer / 4; |
| } |
| |
| .btn-link, |
| .nav-link { |
| position: relative; |
| font-weight: $headings-font-weight; |
| padding-left: $spacer; // defining consistent padding for links and buttons |
| padding-right: $spacer; |
| color: $gray-900 !important; //using important to avoid styling states |
| |
| &:hover { |
| background-color: $gray-300; |
| } |
| |
| &:focus { |
| box-shadow: $btn-focus-box-shadow; |
| } |
| } |
| |
| .nav-link--current { |
| font-weight: $headings-font-weight; |
| background-color: $gray-300; |
| |
| &::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| bottom: 0; |
| left: 0; |
| width: 4px; |
| background-color: $primary; |
| } |
| } |
| </style> |