summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitalii Lysak <v.lysak@dunice.net>2022-07-13 15:46:06 +0300
committerVitalii Lysak <v.lysak@dunice.net>2022-07-13 15:46:06 +0300
commit1272456ab2cb77f29b27f3839563b09a709cbc06 (patch)
treebb8655fd1dff128355a14f61b50556708e87f4a9
parentb2bea3021aea8be3d4bc34f965bf58297c358bca (diff)
downloadwebui-vue-sila-fe.tar.xz
move sila-dev to _silasila-fe
-rw-r--r--src/assets/images/_sila/Radiobutton.svg4
-rw-r--r--src/assets/images/_sila/amperage-icon.svg3
-rw-r--r--src/assets/images/_sila/arrow-down.svg3
-rw-r--r--src/assets/images/_sila/arrow-left.svg3
-rw-r--r--src/assets/images/_sila/arrow-right.svg3
-rw-r--r--src/assets/images/_sila/arrow-up.svg3
-rw-r--r--src/assets/images/_sila/calendar-icon.svg3
-rw-r--r--src/assets/images/_sila/console-images.svg12
-rw-r--r--src/assets/images/_sila/edit-no.svg3
-rw-r--r--src/assets/images/_sila/edit-ok.svg3
-rw-r--r--src/assets/images/_sila/event-logs/archive.svg3
-rw-r--r--src/assets/images/_sila/event-logs/fans.svg3
-rw-r--r--src/assets/images/_sila/event-logs/memory-module.svg3
-rw-r--r--src/assets/images/_sila/event-logs/not-resolved.svg3
-rw-r--r--src/assets/images/_sila/event-logs/processor.svg3
-rw-r--r--src/assets/images/_sila/event-logs/raid-controllers.svg3
-rw-r--r--src/assets/images/_sila/event-logs/resolved-button.svg3
-rw-r--r--src/assets/images/_sila/event-logs/resolved.svg3
-rw-r--r--src/assets/images/_sila/event-logs/sort-icon-rotate.svg3
-rw-r--r--src/assets/images/_sila/event-logs/sort-icon.svg3
-rw-r--r--src/assets/images/_sila/event-logs/time.svg3
-rw-r--r--src/assets/images/_sila/fans-page/fans-icon.svg3
-rw-r--r--src/assets/images/_sila/frequency-icon.svg3
-rw-r--r--src/assets/images/_sila/header/header-avatar.svg10
-rw-r--r--src/assets/images/_sila/header/header-clock.svg3
-rw-r--r--src/assets/images/_sila/header/icon-notification.svg5
-rw-r--r--src/assets/images/_sila/header/logout-icon.svg3
-rw-r--r--src/assets/images/_sila/icon-chevron-red.svg3
-rw-r--r--src/assets/images/_sila/icon-chevron.svg3
-rw-r--r--src/assets/images/_sila/icon-clear-red.svg3
-rw-r--r--src/assets/images/_sila/icon-edit.svg3
-rw-r--r--src/assets/images/_sila/icon-no.svg3
-rw-r--r--src/assets/images/_sila/icon-ok.svg3
-rw-r--r--src/assets/images/_sila/icon-options.svg3
-rw-r--r--src/assets/images/_sila/icon-reload-red.svg3
-rw-r--r--src/assets/images/_sila/icon-settings-red.svg3
-rw-r--r--src/assets/images/_sila/labels/critical.svg4
-rw-r--r--src/assets/images/_sila/labels/non-normal.svg4
-rw-r--r--src/assets/images/_sila/labels/shutdown.svg3
-rw-r--r--src/assets/images/_sila/labels/warning.svg3
-rw-r--r--src/assets/images/_sila/login/autrorization-left-image.svg11
-rw-r--r--src/assets/images/_sila/login/hidden-password-icon.svg3
-rw-r--r--src/assets/images/_sila/login/vector1.svg3
-rw-r--r--src/assets/images/_sila/login/vector2.svg3
-rw-r--r--src/assets/images/_sila/logo-header-sila.svg4
-rw-r--r--src/assets/images/_sila/popups/red-sign.svg3
-rw-r--r--src/assets/images/_sila/popups/x-icon.svg3
-rw-r--r--src/assets/images/_sila/power-error-icon.svg3
-rw-r--r--src/assets/images/_sila/power-icon.svg3
-rw-r--r--src/assets/images/_sila/processors-page/error-icon.svg4
-rw-r--r--src/assets/images/_sila/refresh.svg3
-rw-r--r--src/assets/images/_sila/search-icon.svg3
-rw-r--r--src/assets/images/_sila/sila-server-navbar-icon.svg3
-rw-r--r--src/assets/images/_sila/status/off.svg3
-rw-r--r--src/assets/images/_sila/status/on.svg3
-rw-r--r--src/assets/images/_sila/temperature-icon.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-bold.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-crossline.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-cursive.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-link.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-list.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-number-list.svg3
-rw-r--r--src/assets/images/_sila/textarea-buttons/button-icon-underline.svg3
-rw-r--r--src/assets/images/_sila/usage-icon.svg3
-rw-r--r--src/assets/images/_sila/voltage-icon.svg3
-rw-r--r--src/assets/styles/_obmc-sila.scss2
-rw-r--r--src/assets/styles/bmc/_sila/custom/_alert.scss70
-rw-r--r--src/assets/styles/bmc/_sila/custom/_badge.scss21
-rw-r--r--src/assets/styles/bmc/_sila/custom/_base.scss295
-rw-r--r--src/assets/styles/bmc/_sila/custom/_bootstrap-grid.scss8
-rw-r--r--src/assets/styles/bmc/_sila/custom/_buttons.scss222
-rw-r--r--src/assets/styles/bmc/_sila/custom/_calendar.scss17
-rw-r--r--src/assets/styles/bmc/_sila/custom/_card.scss19
-rw-r--r--src/assets/styles/bmc/_sila/custom/_dropdown.scss36
-rw-r--r--src/assets/styles/bmc/_sila/custom/_forms.scss273
-rw-r--r--src/assets/styles/bmc/_sila/custom/_index.scss20
-rw-r--r--src/assets/styles/bmc/_sila/custom/_kvm.scss16
-rw-r--r--src/assets/styles/bmc/_sila/custom/_logs.scss78
-rw-r--r--src/assets/styles/bmc/_sila/custom/_modal.scss69
-rw-r--r--src/assets/styles/bmc/_sila/custom/_pagination.scss34
-rw-r--r--src/assets/styles/bmc/_sila/custom/_popover.scss72
-rw-r--r--src/assets/styles/bmc/_sila/custom/_section-divider.scss7
-rw-r--r--src/assets/styles/bmc/_sila/custom/_sol.scss3
-rw-r--r--src/assets/styles/bmc/_sila/custom/_tables.scss409
-rw-r--r--src/assets/styles/bmc/_sila/custom/_toasts.scss61
-rw-r--r--src/assets/styles/bmc/_sila/helpers/_colors.scss75
-rw-r--r--src/assets/styles/bmc/_sila/helpers/_functions.scss9
-rw-r--r--src/assets/styles/bmc/_sila/helpers/_index.scss4
-rw-r--r--src/assets/styles/bmc/_sila/helpers/_motion.scss14
-rw-r--r--src/assets/styles/bmc/_sila/helpers/_variables.scss24
-rw-r--r--src/components/_sila/AppHeader/AppHeader.vue173
-rw-r--r--src/components/_sila/AppNavigation/AppNavigation.vue207
-rw-r--r--src/components/_sila/AppNavigation/AppNavigationMixin.js343
-rw-r--r--src/components/_sila/Global/Alert.vue4
-rw-r--r--src/components/_sila/Global/FormFile.vue64
-rw-r--r--src/components/_sila/Global/InfoTooltip.vue1
-rw-r--r--src/components/_sila/Global/InputPasswordToggle.vue26
-rw-r--r--src/components/_sila/Global/LoadingBar.vue4
-rw-r--r--src/components/_sila/Global/PageContainer.vue13
-rw-r--r--src/components/_sila/Global/PageSection.vue14
-rw-r--r--src/components/_sila/Global/PageTitle.vue40
-rw-r--r--src/components/_sila/Global/Popover.vue287
-rw-r--r--src/components/_sila/Global/PopoverInfo.vue40
-rw-r--r--src/components/_sila/Global/Search.vue9
-rw-r--r--src/components/_sila/Global/SilaComponents/ApplySettingsPopover.vue163
-rw-r--r--src/components/_sila/Global/SilaComponents/DataTabs.vue136
-rw-r--r--src/components/_sila/Global/SilaComponents/DateSwitch.vue123
-rw-r--r--src/components/_sila/Global/SilaComponents/InventoryControlSystem.vue195
-rw-r--r--src/components/_sila/Global/SilaComponents/NtpPopover.vue132
-rw-r--r--src/components/_sila/Global/SilaComponents/PopoverWithSlot.vue228
-rw-r--r--src/components/_sila/Global/SilaComponents/Tables/AccessoryTable.vue88
-rw-r--r--src/components/_sila/Global/SilaComponents/Tables/AccessoryTableDrivers.vue90
-rw-r--r--src/components/_sila/Global/SilaComponents/Tables/AccessoryTablePower.vue91
-rw-r--r--src/components/_sila/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue99
-rw-r--r--src/components/_sila/Global/SilaComponents/TwoChiocePopover.vue117
-rw-r--r--src/components/_sila/Global/SilaComponents/colors.js8
-rw-r--r--src/components/_sila/Global/StatusIcon.vue12
-rw-r--r--src/components/_sila/Global/TableCellCount.vue2
-rw-r--r--src/components/_sila/Global/TableDateFilter.vue8
-rw-r--r--src/components/_sila/Global/TableToolbar.vue29
-rw-r--r--src/components/_sila/Global/TableToolbarExport.vue13
-rw-r--r--src/components/_sila/SubHeader/SubHeader.vue179
-rw-r--r--src/components/_sila/SubHeader/index.js1
-rw-r--r--src/layouts/_sila/AppLayout.vue18
-rw-r--r--src/layouts/_sila/LoginLayout.vue141
-rw-r--r--src/locales/en-US.json2
-rw-r--r--src/locales/ru-RU.json2
-rw-r--r--src/views/_sila/BMC/Configuration/BMCConfiguration.vue105
-rw-r--r--src/views/_sila/BMC/Configuration/BMCConfigurationControl.vue121
-rw-r--r--src/views/_sila/BMC/Configuration/BMCConfigurationTable.vue91
-rw-r--r--src/views/_sila/BMC/Configuration/SettingsImportPopup.vue291
-rw-r--r--src/views/_sila/BMC/Configuration/index.js2
-rw-r--r--src/views/_sila/BMC/Firmware/FirmwarePage.vue273
-rw-r--r--src/views/_sila/BMC/Firmware/index.js2
-rw-r--r--src/views/_sila/BMC/Settings/SettingsPage.vue439
-rw-r--r--src/views/_sila/BMC/Settings/index.js2
-rw-r--r--src/views/_sila/Fans/DynamicInformation/FansDynamicPage.vue118
-rw-r--r--src/views/_sila/Fans/DynamicInformation/FansDynamicTable.vue126
-rw-r--r--src/views/_sila/Fans/DynamicInformation/IndicatorsTable.vue167
-rw-r--r--src/views/_sila/Fans/DynamicInformation/helpers.js820
-rw-r--r--src/views/_sila/Fans/DynamicInformation/index.js2
-rw-r--r--src/views/_sila/Fans/StaticInformation/FansStaticPage.vue152
-rw-r--r--src/views/_sila/Fans/StaticInformation/index.js2
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/Inventory.vue196
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryServiceIndicator.vue82
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableAssembly.vue160
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableBmcManager.vue254
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableChassis.vue199
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableDimmSlot.vue263
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableFans.vue198
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue216
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableProcessors.vue275
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/InventoryTableSystem.vue236
-rw-r--r--src/views/_sila/HardwareStatus/Inventory/index.js2
-rw-r--r--src/views/_sila/HardwareStatus/Sensors/Sensors.vue7
-rw-r--r--src/views/_sila/InformationAndFAQ/InformationAndFAQ.vue9
-rw-r--r--src/views/_sila/InformationAndFAQ/index.js1
-rw-r--r--src/views/_sila/Login/Login.vue86
-rw-r--r--src/views/_sila/Login/index.js3
-rw-r--r--src/views/_sila/Logs/Dumps/DumpsForm.vue6
-rw-r--r--src/views/_sila/Logs/Dumps/DumpsModalConfirmation.vue4
-rw-r--r--src/views/_sila/Logs/EventLogs/EventLogs.vue337
-rw-r--r--src/views/_sila/Logs/PostCodeLogs/PostCodeLogs.vue256
-rw-r--r--src/views/_sila/MemoryModules/DynamicInfo/MemoryDynamicPage.vue224
-rw-r--r--src/views/_sila/MemoryModules/DynamicInfo/TemperatureTable.vue126
-rw-r--r--src/views/_sila/MemoryModules/DynamicInfo/helpers.js458
-rw-r--r--src/views/_sila/MemoryModules/DynamicInfo/index.js2
-rw-r--r--src/views/_sila/MemoryModules/Specification/MemoryStaticPage.vue228
-rw-r--r--src/views/_sila/MemoryModules/Specification/index.js2
-rw-r--r--src/views/_sila/Motherboard/DynamicInfo/MotherboardDynamicPage.vue159
-rw-r--r--src/views/_sila/Motherboard/DynamicInfo/TemperatureTable.vue112
-rw-r--r--src/views/_sila/Motherboard/DynamicInfo/helpers.js458
-rw-r--r--src/views/_sila/Motherboard/DynamicInfo/index.js2
-rw-r--r--src/views/_sila/Motherboard/Specification/MotherboardSpecificationPage.vue83
-rw-r--r--src/views/_sila/Motherboard/Specification/index.js2
-rw-r--r--src/views/_sila/Operations/ConsoleSettings/ConsoleSettings.vue154
-rw-r--r--src/views/_sila/Operations/ConsoleSettings/index.js2
-rw-r--r--src/views/_sila/Operations/FactoryReset/FactoryReset.vue13
-rw-r--r--src/views/_sila/Operations/Firmware/Firmware.vue13
-rw-r--r--src/views/_sila/Operations/Firmware/FirmwareAlertServerPower.vue2
-rw-r--r--src/views/_sila/Operations/Firmware/FirmwareCardsBmc.vue8
-rw-r--r--src/views/_sila/Operations/Firmware/FirmwareCardsHost.vue2
-rw-r--r--src/views/_sila/Operations/Firmware/FirmwareFormUpdate.vue11
-rw-r--r--src/views/_sila/Operations/KeyClear/KeyClear.vue17
-rw-r--r--src/views/_sila/Operations/Kvm/Kvm.vue4
-rw-r--r--src/views/_sila/Operations/Kvm/KvmConsole.vue26
-rw-r--r--src/views/_sila/Operations/RebootBmc/RebootBmc.vue40
-rw-r--r--src/views/_sila/Operations/SerialOverLan/SerialOverLanConsole.vue2
-rw-r--r--src/views/_sila/Operations/ServerPowerOperations/BootSettings.vue41
-rw-r--r--src/views/_sila/Operations/ServerPowerOperations/ServerPowerOperations.vue193
-rw-r--r--src/views/_sila/Operations/VirtualMedia/ModalConfigureConnection.vue25
-rw-r--r--src/views/_sila/Operations/VirtualMedia/VirtualMedia.vue68
-rw-r--r--src/views/_sila/Overview/Inventory/index.js2
-rw-r--r--src/views/_sila/Overview/Network/index.js2
-rw-r--r--src/views/_sila/Overview/Overview.vue6
-rw-r--r--src/views/_sila/Overview/OverviewDumps.vue2
-rw-r--r--src/views/_sila/Overview/OverviewEvents.vue4
-rw-r--r--src/views/_sila/Overview/OverviewFirmware.vue2
-rw-r--r--src/views/_sila/Overview/OverviewNetwork.vue2
-rw-r--r--src/views/_sila/Overview/OverviewPower.vue2
-rw-r--r--src/views/_sila/Overview/OverviewQuickLinks.vue2
-rw-r--r--src/views/_sila/Overview/OverviewServer.vue4
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/PowerDynamicPage.vue592
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/PowerTable.vue126
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/TemperatureTable.vue126
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/UsingTable.vue126
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/VoltageTable.vue126
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/helpers.js1526
-rw-r--r--src/views/_sila/PowerSupplies/DynamicInfo/index.js2
-rw-r--r--src/views/_sila/PowerSupplies/Specification/PowerStaticPage.vue137
-rw-r--r--src/views/_sila/PowerSupplies/Specification/index.js2
-rw-r--r--src/views/_sila/Processors/DynamicInfo/FrequencyTable.vue107
-rw-r--r--src/views/_sila/Processors/DynamicInfo/PowerTable.vue126
-rw-r--r--src/views/_sila/Processors/DynamicInfo/ProcessorsDynamicPage.vue361
-rw-r--r--src/views/_sila/Processors/DynamicInfo/TemperatureTable.vue126
-rw-r--r--src/views/_sila/Processors/DynamicInfo/helpers.js1398
-rw-r--r--src/views/_sila/Processors/DynamicInfo/index.js2
-rw-r--r--src/views/_sila/Processors/Specification/AcceleratorSpecificationTable.vue146
-rw-r--r--src/views/_sila/Processors/Specification/ProcessorsSpecificationPage.vue117
-rw-r--r--src/views/_sila/Processors/Specification/ProcessorsSpecificationTable.vue251
-rw-r--r--src/views/_sila/Processors/Specification/helpers.js254
-rw-r--r--src/views/_sila/Processors/Specification/index.js2
-rw-r--r--src/views/_sila/SILA/AnalyticalPanel/AnalyticalPanelPage.vue272
-rw-r--r--src/views/_sila/SILA/AnalyticalPanel/PowerTable.vue82
-rw-r--r--src/views/_sila/SILA/AnalyticalPanel/TemperatureTable.vue115
-rw-r--r--src/views/_sila/SILA/AnalyticalPanel/helpers.js196
-rw-r--r--src/views/_sila/SILA/AnalyticalPanel/index.js2
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/Dynamic/NetworkDynamicPage.vue135
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/Dynamic/TemperatureTable.vue112
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/Dynamic/helpers.js356
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/Dynamic/index.js1
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/EthernetAdaptersPage.vue399
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/helpers.js99
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/index.js1
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/FcHbaAdaptersPage.vue211
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/helpers.js42
-rw-r--r--src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/index.js1
-rw-r--r--src/views/_sila/SILA/PciDevices/PciDevicesPage.vue115
-rw-r--r--src/views/_sila/SILA/PciDevices/index.js1
-rw-r--r--src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/DriversDynamicPage.vue204
-rw-r--r--src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/TemperatureTable.vue126
-rw-r--r--src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/helpers.js564
-rw-r--r--src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/index.js1
-rw-r--r--src/views/_sila/SILA/PhysicalDrivers/StaticInfo/DriversStaticPage.vue133
-rw-r--r--src/views/_sila/SILA/PhysicalDrivers/StaticInfo/index.js1
-rw-r--r--src/views/_sila/SILA/RAID/Cache/RAIDCachePage.vue107
-rw-r--r--src/views/_sila/SILA/RAID/Cache/index.js1
-rw-r--r--src/views/_sila/SILA/RAID/Settings/ActionSettingsPopover.vue131
-rw-r--r--src/views/_sila/SILA/RAID/Settings/OptionsPopover.vue87
-rw-r--r--src/views/_sila/SILA/RAID/Settings/RAIDSettingsPage.vue288
-rw-r--r--src/views/_sila/SILA/RAID/Settings/TomeModal.vue179
-rw-r--r--src/views/_sila/SILA/RAID/Settings/helpers.js62
-rw-r--r--src/views/_sila/SILA/RAID/Settings/index.js1
-rw-r--r--src/views/_sila/SILA/RAID/Specification/RAIDSpecificationPage.vue221
-rw-r--r--src/views/_sila/SILA/RAID/Specification/index.js1
-rw-r--r--src/views/_sila/SILA/VirtualDrivers/VirtualDriversPage.vue122
-rw-r--r--src/views/_sila/SILA/VirtualDrivers/index.js1
-rw-r--r--src/views/_sila/SecurityAndAccess/Certificates/Certificates.vue192
-rw-r--r--src/views/_sila/SecurityAndAccess/Certificates/ModalGenerateCsr.vue167
-rw-r--r--src/views/_sila/SecurityAndAccess/Policies/Policies.vue215
-rw-r--r--src/views/_sila/SecurityAndAccess/Sessions/Sessions.vue8
-rw-r--r--src/views/_sila/SecurityAndAccess/UserManagement/UserManagement.vue11
-rw-r--r--src/views/_sila/Settings/DateTime/DateTime.vue435
-rw-r--r--src/views/_sila/Settings/DateTime/index.js2
-rw-r--r--src/views/_sila/Settings/Network/ModalDns.vue92
-rw-r--r--src/views/_sila/Settings/Network/ModalHostname.vue110
-rw-r--r--src/views/_sila/Settings/Network/ModalIpv4.vue165
-rw-r--r--src/views/_sila/Settings/Network/ModalMacAddress.vue109
-rw-r--r--src/views/_sila/Settings/Network/Network.vue166
-rw-r--r--src/views/_sila/Settings/Network/NetworkGlobalSettings.vue161
-rw-r--r--src/views/_sila/Settings/Network/NetworkInterfaceSettings.vue117
-rw-r--r--src/views/_sila/Settings/Network/TableDns.vue156
-rw-r--r--src/views/_sila/Settings/Network/TableIpv4.vue183
-rw-r--r--src/views/_sila/Settings/Network/index.js2
-rw-r--r--src/views/_sila/Settings/PowerRestorePolicy/PowerRestorePolicy.vue8
-rw-r--r--src/views/_sila/Support/Support.vue9
-rw-r--r--src/views/_sila/Support/index.js1
-rw-r--r--src/views/_sila/SystemDescription/Info/InventoryTableSystem.vue81
-rw-r--r--src/views/_sila/SystemDescription/Info/SystemDescription.vue148
-rw-r--r--src/views/_sila/SystemDescription/Info/index.js2
-rw-r--r--src/views/_sila/SystemDescription/Network/InventoryIPv4Settings.vue277
-rw-r--r--src/views/_sila/SystemDescription/Network/InventoryIPv6Settings.vue263
-rw-r--r--src/views/_sila/SystemDescription/Network/SystemNetwork.vue101
-rw-r--r--src/views/_sila/SystemDescription/Network/index.js2
-rw-r--r--src/views/_sila/SystemDescription/ServerParametrs/ServerParametrs.vue21
-rw-r--r--src/views/_sila/SystemDescription/ServerParametrs/ServereParametrsSection.vue128
-rw-r--r--src/views/_sila/SystemDescription/ServerParametrs/index.js2
287 files changed, 25458 insertions, 1093 deletions
diff --git a/src/assets/images/_sila/Radiobutton.svg b/src/assets/images/_sila/Radiobutton.svg
new file mode 100644
index 00000000..9647a19f
--- /dev/null
+++ b/src/assets/images/_sila/Radiobutton.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8 12C10.2091 12 12 10.2091 12 8C12 5.79086 10.2091 4 8 4C5.79086 4 4 5.79086 4 8C4 10.2091 5.79086 12 8 12Z" fill="#E11717"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM14.4 8C14.4 11.5346 11.5346 14.4 8 14.4C4.46538 14.4 1.6 11.5346 1.6 8C1.6 4.46538 4.46538 1.6 8 1.6C11.5346 1.6 14.4 4.46538 14.4 8Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/amperage-icon.svg b/src/assets/images/_sila/amperage-icon.svg
new file mode 100644
index 00000000..299777ff
--- /dev/null
+++ b/src/assets/images/_sila/amperage-icon.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.78183 7.57895H5.48287L2.70925 13.1779L9.21817 8.42106H6.6L9.29075 2.82209L2.78183 7.57895ZM11.7614 0L11.1557 1.39631L8.19869 7.57895H12L0.238644 16L0.844344 14.6037L3.88418 8.42106H0L11.7614 0Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/arrow-down.svg b/src/assets/images/_sila/arrow-down.svg
new file mode 100644
index 00000000..d20227fc
--- /dev/null
+++ b/src/assets/images/_sila/arrow-down.svg
@@ -0,0 +1,3 @@
+<svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.76668 5.2584L5.00002 2.02506L8.23335 5.2584C8.55835 5.5834 9.08335 5.5834 9.40835 5.2584C9.73335 4.9334 9.73335 4.4084 9.40835 4.0834L5.58335 0.258398C5.25835 -0.0666016 4.73335 -0.0666016 4.40835 0.258398L0.58335 4.0834C0.25835 4.4084 0.25835 4.9334 0.58335 5.2584C0.90835 5.57507 1.44168 5.5834 1.76668 5.2584Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/arrow-left.svg b/src/assets/images/_sila/arrow-left.svg
new file mode 100644
index 00000000..feeb6c2f
--- /dev/null
+++ b/src/assets/images/_sila/arrow-left.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.2584 8.23332L2.02506 4.99998L5.2584 1.76665C5.5834 1.44165 5.5834 0.91665 5.2584 0.59165C4.9334 0.26665 4.4084 0.26665 4.0834 0.59165L0.258398 4.41665C-0.0666016 4.74165 -0.0666016 5.26665 0.258398 5.59165L4.0834 9.41665C4.4084 9.74165 4.9334 9.74165 5.2584 9.41665C5.57507 9.09165 5.5834 8.55832 5.2584 8.23332Z" fill="#040A0F" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/arrow-right.svg b/src/assets/images/_sila/arrow-right.svg
new file mode 100644
index 00000000..ce3658eb
--- /dev/null
+++ b/src/assets/images/_sila/arrow-right.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0.741553 8.23332L3.97489 4.99998L0.741553 1.76665C0.416553 1.44165 0.416553 0.91665 0.741553 0.59165C1.06655 0.26665 1.59155 0.26665 1.91655 0.59165L5.74155 4.41665C6.06655 4.74165 6.06655 5.26665 5.74155 5.59165L1.91655 9.41665C1.59155 9.74165 1.06655 9.74165 0.741553 9.41665C0.424886 9.09165 0.416553 8.55832 0.741553 8.23332Z" fill="#040A0F" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/arrow-up.svg b/src/assets/images/_sila/arrow-up.svg
new file mode 100644
index 00000000..dc9971f7
--- /dev/null
+++ b/src/assets/images/_sila/arrow-up.svg
@@ -0,0 +1,3 @@
+<svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.76668 0.741797L5.00002 3.97513L8.23335 0.741797C8.55835 0.416797 9.08335 0.416797 9.40835 0.741797C9.73335 1.0668 9.73335 1.5918 9.40835 1.9168L5.58335 5.7418C5.25835 6.0668 4.73335 6.0668 4.40835 5.7418L0.58335 1.9168C0.25835 1.5918 0.25835 1.0668 0.58335 0.741797C0.90835 0.42513 1.44168 0.416797 1.76668 0.741797Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/calendar-icon.svg b/src/assets/images/_sila/calendar-icon.svg
new file mode 100644
index 00000000..cee494ec
--- /dev/null
+++ b/src/assets/images/_sila/calendar-icon.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="16" viewBox="0 0 14 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.3334 1.99935H11.6667V1.33268C11.6667 0.966016 11.3667 0.666016 11 0.666016C10.6334 0.666016 10.3334 0.966016 10.3334 1.33268V1.99935H3.66671V1.33268C3.66671 0.966016 3.36671 0.666016 3.00004 0.666016C2.63337 0.666016 2.33337 0.966016 2.33337 1.33268V1.99935H1.66671C0.933374 1.99935 0.333374 2.59935 0.333374 3.33268V13.9993C0.333374 14.7327 0.933374 15.3327 1.66671 15.3327H12.3334C13.0667 15.3327 13.6667 14.7327 13.6667 13.9993V3.33268C13.6667 2.59935 13.0667 1.99935 12.3334 1.99935ZM11.6667 13.9993H2.33337C1.96671 13.9993 1.66671 13.6993 1.66671 13.3327V5.33268H12.3334V13.3327C12.3334 13.6993 12.0334 13.9993 11.6667 13.9993Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/console-images.svg b/src/assets/images/_sila/console-images.svg
new file mode 100644
index 00000000..741f9d36
--- /dev/null
+++ b/src/assets/images/_sila/console-images.svg
@@ -0,0 +1,12 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M20 40C31.0457 40 40 31.0457 40 20C40 8.95431 31.0457 0 20 0C8.95431 0 0 8.95431 0 20C0 31.0457 8.95431 40 20 40ZM20 30C14.4772 30 10 25.5228 10 20C10 14.4772 14.4772 10 20 10C25.5228 10 30 14.4772 30 20C30 25.5228 25.5228 30 20 30ZM20 27.5C24.1421 27.5 27.5 24.1421 27.5 20C27.5 15.8579 24.1421 12.5 20 12.5C15.8579 12.5 12.5 15.8579 12.5 20C12.5 24.1421 15.8579 27.5 20 27.5ZM20 23.75C17.9289 23.75 16.25 22.0711 16.25 20C16.25 17.9289 17.9289 16.25 20 16.25C22.0711 16.25 23.75 17.9289 23.75 20C23.75 22.0711 22.0711 23.75 20 23.75Z" fill="url(#paint0_linear_1642_14684)"/>
+<defs>
+<linearGradient id="paint0_linear_1642_14684" x1="6.25" y1="5" x2="35" y2="33.75" gradientUnits="userSpaceOnUse">
+<stop stop-color="#E11717"/>
+<stop offset="0.135118" stop-color="#E82424"/>
+<stop offset="0.307292" stop-color="#FF6A6A"/>
+<stop offset="0.536458" stop-color="#E51E1E"/>
+<stop offset="1" stop-color="#E51E1E"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/src/assets/images/_sila/edit-no.svg b/src/assets/images/_sila/edit-no.svg
new file mode 100644
index 00000000..4cb0d8e8
--- /dev/null
+++ b/src/assets/images/_sila/edit-no.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11.2496 0.258431C10.9246 -0.0665688 10.3996 -0.0665688 10.0746 0.258431L5.99961 4.3251L1.92461 0.250098C1.59961 -0.0749023 1.07461 -0.0749023 0.749609 0.250098C0.424609 0.575098 0.424609 1.1001 0.749609 1.4251L4.82461 5.5001L0.749609 9.5751C0.424609 9.9001 0.424609 10.4251 0.749609 10.7501C1.07461 11.0751 1.59961 11.0751 1.92461 10.7501L5.99961 6.6751L10.0746 10.7501C10.3996 11.0751 10.9246 11.0751 11.2496 10.7501C11.5746 10.4251 11.5746 9.9001 11.2496 9.5751L7.17461 5.5001L11.2496 1.4251C11.5663 1.10843 11.5663 0.575098 11.2496 0.258431Z" fill="#FF4141"/>
+</svg>
diff --git a/src/assets/images/_sila/edit-ok.svg b/src/assets/images/_sila/edit-ok.svg
new file mode 100644
index 00000000..2534daca
--- /dev/null
+++ b/src/assets/images/_sila/edit-ok.svg
@@ -0,0 +1,3 @@
+<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4.49993 9.0001L1.58327 6.08343C1.25827 5.75843 0.741602 5.75843 0.416602 6.08343C0.0916016 6.40843 0.0916016 6.9251 0.416602 7.2501L3.90827 10.7418C4.23327 11.0668 4.75827 11.0668 5.08327 10.7418L13.9166 1.91676C14.2416 1.59176 14.2416 1.0751 13.9166 0.750098C13.5916 0.425098 13.0749 0.425098 12.7499 0.750098L4.49993 9.0001Z" fill="#4EBF19"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/archive.svg b/src/assets/images/_sila/event-logs/archive.svg
new file mode 100644
index 00000000..3fe4703f
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/archive.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.1167 2.35833L13.9583 0.958333C13.7333 0.675 13.3917 0.5 13 0.5H3C2.60833 0.5 2.26667 0.675 2.03333 0.958333L0.883333 2.35833C0.641667 2.64167 0.5 3.01667 0.5 3.41667V13.8333C0.5 14.75 1.25 15.5 2.16667 15.5H13.8333C14.75 15.5 15.5 14.75 15.5 13.8333V3.41667C15.5 3.01667 15.3583 2.64167 15.1167 2.35833ZM7.70833 12.2917L3.41667 8H6.33333V6.33333H9.66667V8H12.5833L8.29167 12.2917C8.13333 12.45 7.86667 12.45 7.70833 12.2917ZM2.26667 2.16667L2.94167 1.33333H12.9417L13.725 2.16667H2.26667Z" fill="white"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/fans.svg b/src/assets/images/_sila/event-logs/fans.svg
new file mode 100644
index 00000000..ecee5ea3
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/fans.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.0071 14.5899C5.88063 15.1221 6.9438 15.3043 7.65225 15.3043L7.65225 9.70443C7.02871 9.57786 6.52632 9.1177 6.33946 8.51834C5.89187 8.63106 5.42752 8.80613 5.0071 9.06226C4.15196 9.58323 3.47829 10.4354 3.47829 11.8261C3.47829 13.2168 4.15196 14.0689 5.0071 14.5899ZM6.29572 7.65225H0.695659C0.695659 6.9438 0.877919 5.88063 1.41009 5.0071C1.93106 4.15196 2.7832 3.47829 4.17391 3.47829C5.56463 3.47829 6.41677 4.15196 6.93774 5.0071C7.19388 5.42754 7.36896 5.8919 7.48167 6.33951C6.88238 6.5264 6.42228 7.02876 6.29572 7.65225ZM8.34791 7.01596C8.23911 6.97751 8.12204 6.95659 8.00008 6.95659C7.86275 6.95659 7.73161 6.98312 7.61152 7.03133C7.3343 7.14262 7.11592 7.36946 7.01596 7.65225C6.97751 7.76104 6.95659 7.87812 6.95659 8.00008C6.95659 8.13735 6.9831 8.26843 7.03127 8.38849C7.14254 8.66578 7.36941 8.88422 7.65225 8.98419C7.76104 9.02264 7.87812 9.04356 8.00008 9.04356C8.18346 9.04356 8.35579 8.99625 8.50554 8.91318C8.7268 8.79044 8.89876 8.58961 8.98419 8.34791C9.02264 8.23911 9.04356 8.12204 9.04356 8.00008C9.04356 7.81664 8.99623 7.64425 8.91311 7.49447C8.79035 7.27328 8.58956 7.10138 8.34791 7.01596ZM9.586 7.28526C9.35937 6.78322 8.90135 6.40806 8.34791 6.29572V0.746159C8.96378 0.831471 9.67823 1.03288 10.2974 1.41009C11.1525 1.93106 11.8262 2.7832 11.8262 4.17391C11.8262 5.56463 11.1525 6.41677 10.2974 6.93774C10.0699 7.07632 9.82958 7.19117 9.586 7.28526ZM9.70444 8.34791C9.59208 8.9014 9.21686 9.35945 8.71476 9.58606C8.80884 9.82962 8.92369 10.0699 9.06226 10.2974C9.58323 11.1525 10.4354 11.8262 11.8261 11.8262C13.2168 11.8262 14.0689 11.1525 14.5899 10.2974C14.9671 9.67823 15.1685 8.96378 15.2538 8.34791H9.70444ZM8.34791 10.4501V16L7.65225 16C6.85343 16 5.65572 15.7997 4.64517 15.184C3.61623 14.5571 2.78264 13.4962 2.78264 11.8261C2.78264 10.1559 3.61623 9.09503 4.64517 8.46817C4.7141 8.42617 4.78391 8.38611 4.8544 8.34791H1.9281e-06L0 7.65225C0 6.85343 0.200349 5.65572 0.816001 4.64517C1.44286 3.61623 2.50376 2.78264 4.17391 2.78264C5.84407 2.78264 6.90497 3.61623 7.53183 4.64517C7.57388 4.7142 7.614 4.7841 7.65225 4.85469V0.695659V0.347832V0C8.45106 0 9.64878 0.200348 10.6593 0.816001C11.6883 1.44286 12.5219 2.50376 12.5219 4.17391C12.5219 5.84407 11.6883 6.90497 10.6593 7.53183C10.5903 7.57388 10.5204 7.614 10.4498 7.65225H15.3043H15.6522H16C16 8.45106 15.7997 9.64878 15.184 10.6593C14.5571 11.6883 13.4962 12.5219 11.8261 12.5219C10.1559 12.5219 9.09503 11.6883 8.46817 10.6593C8.42617 10.5904 8.38611 10.5206 8.34791 10.4501Z" fill="#0C1C29" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/memory-module.svg b/src/assets/images/_sila/event-logs/memory-module.svg
new file mode 100644
index 00000000..842ad676
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/memory-module.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M0.827586 0.820513V11.4872H11.1724V0.820513H0.827586ZM0.827586 15.1795V12.7179H11.1724V15.1795H0.827586ZM0.413793 0C0.185262 0 0 0.183678 0 0.410256V15.5897C0 15.8163 0.185262 16 0.413793 16H11.5862C11.8147 16 12 15.8163 12 15.5897V0.410256C12 0.183678 11.8147 0 11.5862 0H0.413793ZM2.89655 5.12821C2.55375 5.12821 2.27586 5.40372 2.27586 5.74359V6.13886C2.27586 6.41637 2.4632 6.65955 2.73324 6.73256L3.82216 6.9599C3.91217 6.98424 3.93103 7.12062 3.93103 7.21312V7.38462C3.93103 7.4979 3.8384 7.58974 3.72414 7.58974H2.48276V8H3.72414C4.06694 8 4.34483 7.72448 4.34483 7.38462V7.21312C4.34483 6.93561 4.20107 6.63712 3.93103 6.5641L2.84211 6.33676C2.7521 6.31242 2.68966 6.23137 2.68966 6.13886V5.74359C2.68966 5.6303 2.78229 5.53846 2.89655 5.53846H4.13793V5.12821H2.89655ZM5.37931 5.12821C5.03651 5.12821 4.75862 5.40372 4.75862 5.74359V6.13886C4.75862 6.41637 4.94596 6.65955 5.216 6.73256L6.30492 6.9599C6.39493 6.98424 6.41379 7.12062 6.41379 7.21312V7.38462C6.41379 7.4979 6.32116 7.58974 6.2069 7.58974H4.96552V8H6.2069C6.54969 8 6.82759 7.72448 6.82759 7.38462V7.21312C6.82759 6.93561 6.68383 6.63712 6.41379 6.5641L5.32487 6.33676C5.23486 6.31242 5.17241 6.23137 5.17241 6.13886V5.74359C5.17241 5.6303 5.26504 5.53846 5.37931 5.53846H6.62069V5.12821H5.37931ZM2.89655 1.64103H1.65517V2.87179H2.89655V1.64103ZM10.3448 13.5385H7.44828V14.359H10.3448V13.5385ZM9.10345 1.64103H10.3448V2.87179H9.10345V1.64103ZM7.86207 5.12821H7.65517V5.33333V7.79487V8H7.86207H8.81085C9.05307 8 9.28537 7.9046 9.45664 7.73479C9.62792 7.56498 9.72414 7.33467 9.72414 7.09452V6.03368C9.72414 5.79354 9.62792 5.56322 9.45664 5.39341C9.28537 5.2236 9.05307 5.12821 8.81085 5.12821H7.86207ZM8.06897 7.58974V5.53846H8.81085C8.94333 5.53846 9.07037 5.59064 9.16405 5.68351C9.25772 5.77638 9.31035 5.90234 9.31035 6.03368V7.09452C9.31035 7.22586 9.25772 7.35182 9.16405 7.4447C9.07037 7.53757 8.94333 7.58974 8.81085 7.58974H8.06897Z" fill="#0C1C29" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/not-resolved.svg b/src/assets/images/_sila/event-logs/not-resolved.svg
new file mode 100644
index 00000000..6778cd17
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/not-resolved.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="14" viewBox="0 0 12 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.99996 2.9998V4.19313C5.99996 4.49313 6.35996 4.6398 6.56663 4.42646L8.42663 2.56646C8.55996 2.43313 8.55996 2.22646 8.42663 2.09313L6.56663 0.233131C6.35996 0.0264643 5.99996 0.173131 5.99996 0.473131V1.66646C3.05329 1.66646 0.666626 4.05313 0.666626 6.9998C0.666626 7.69313 0.799959 8.3598 1.04663 8.96646C1.22663 9.41313 1.79996 9.53313 2.13996 9.19313C2.31996 9.01313 2.39329 8.7398 2.29329 8.4998C2.09996 8.0398 1.99996 7.52646 1.99996 6.9998C1.99996 4.79313 3.79329 2.9998 5.99996 2.9998ZM9.85996 4.80646C9.67996 4.98646 9.60663 5.26646 9.70662 5.4998C9.89329 5.96646 9.99996 6.47313 9.99996 6.9998C9.99996 9.20646 8.20663 10.9998 5.99996 10.9998V9.80646C5.99996 9.50646 5.63996 9.3598 5.43329 9.57313L3.57329 11.4331C3.43996 11.5665 3.43996 11.7731 3.57329 11.9065L5.43329 13.7665C5.63996 13.9731 5.99996 13.8265 5.99996 13.5331V12.3331C8.94663 12.3331 11.3333 9.94646 11.3333 6.9998C11.3333 6.30646 11.2 5.6398 10.9533 5.03313C10.7733 4.58646 10.2 4.46646 9.85996 4.80646Z" fill="#0C1C29" fill-opacity="0.3"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/processor.svg b/src/assets/images/_sila/event-logs/processor.svg
new file mode 100644
index 00000000..fdf1a119
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/processor.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.05263 0H4.21053V2.10526H2.94737H2.10526V2.94737V4.63158H0V5.47368H2.10526V6.73684H0V7.57895H2.10526V8.8421H0V9.68421H2.10526V10.9474H0V11.7895H2.10526L2.10526 13.0526V13.8947H2.94737H4.21053V16H5.05263V13.8947H6.31579V16H7.15789V13.8947H8.42105V16H9.26316V13.8947H10.5263V16H11.3684V13.8947H13.0526H13.8947V13.0526V11.7895H16V10.9474H13.8947V9.68421H16V8.8421H13.8947V7.57895H16V6.73684H13.8947V5.47368H16V4.63158H13.8947V2.94737V2.10526H13.0526H11.3684V0H10.5263V2.10526H9.26316V0H8.42105V2.10526H7.15789V0H6.31579V2.10526H5.05263V0ZM13.0526 2.94737H2.94737V13.0526H13.0526V2.94737ZM5.47368 5.47368H10.5263V10.5263H5.47368V5.47368ZM4.63158 4.63158H5.47368H10.5263H11.3684V5.47368V10.5263V11.3684H10.5263H5.47368H4.63158V10.5263V5.47368V4.63158Z" fill="#0C1C29" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/raid-controllers.svg b/src/assets/images/_sila/event-logs/raid-controllers.svg
new file mode 100644
index 00000000..a81c887a
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/raid-controllers.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="13" viewBox="0 0 16 13" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M0.559671 12.461V0.539024H1.21811V12.461H0.559671ZM0 0.253659C0 0.113567 0.117917 0 0.263374 0H1.5144C1.65986 0 1.77778 0.113567 1.77778 0.253659V0.665854H15.7037C15.8673 0.665854 16 0.793615 16 0.951219V12.0963C16 12.2539 15.8673 12.3817 15.7037 12.3817H6.32099C6.15734 12.3817 6.02469 12.2539 6.02469 12.0963V11.0341V10.8915C6.02469 10.6375 5.81097 10.4317 5.54733 10.4317C5.28368 10.4317 5.06996 10.6375 5.06996 10.8915V11.0341V12.0963C5.06996 12.2539 4.9373 12.3817 4.77366 12.3817H1.77778V12.7463C1.77778 12.8864 1.65986 13 1.5144 13H0.263374C0.117917 13 0 12.8864 0 12.7463V0.253659ZM6.55144 11.0341V11.8744H7.11111V11.5415C7.11111 11.4189 7.21429 11.3195 7.34156 11.3195H7.37449C7.50176 11.3195 7.60494 11.4189 7.60494 11.5415V11.8744H8.16461V11.5415C8.16461 11.4189 8.26779 11.3195 8.39506 11.3195H8.42798C8.55526 11.3195 8.65844 11.4189 8.65844 11.5415V11.8744H9.18518V11.5415C9.18518 11.4189 9.28836 11.3195 9.41564 11.3195H9.44856C9.57584 11.3195 9.67901 11.4189 9.67901 11.5415V11.8744H10.2387V11.5415C10.2387 11.4189 10.3419 11.3195 10.4691 11.3195H10.5021C10.6293 11.3195 10.7325 11.4189 10.7325 11.5415V11.8744H11.2922V11.5415C11.2922 11.4189 11.3954 11.3195 11.5226 11.3195H11.5556C11.6828 11.3195 11.786 11.4189 11.786 11.5415V11.8744H12.3457V11.5415C12.3457 11.4189 12.4489 11.3195 12.5761 11.3195H12.6091C12.7363 11.3195 12.8395 11.4189 12.8395 11.5415V11.8744H13.3663V11.5415C13.3663 11.4189 13.4694 11.3195 13.5967 11.3195H13.6296C13.7569 11.3195 13.8601 11.4189 13.8601 11.5415V11.8744H14.4198V11.5098C14.4198 11.3872 14.5229 11.2878 14.6502 11.2878H14.6831C14.8104 11.2878 14.9136 11.3872 14.9136 11.5098V11.8744H15.4733V11.0341H6.55144ZM15.4733 10.5268V1.17317H1.77778V10.5268H4.61703C4.7665 10.1735 5.12671 9.92439 5.54733 9.92439C5.96794 9.92439 6.32815 10.1735 6.47762 10.5268H15.4733ZM1.77778 11.8744V11.0341H4.54321V11.8744H4.01646V11.5415C4.01646 11.4189 3.91328 11.3195 3.78601 11.3195H3.75309C3.62581 11.3195 3.52263 11.4189 3.52263 11.5415V11.8744H2.96296V11.5415C2.96296 11.4189 2.85979 11.3195 2.73251 11.3195H2.69959C2.57231 11.3195 2.46914 11.4189 2.46914 11.5415V11.8744H1.77778ZM3.16049 2.6V4.3439H6.09053V2.6H3.16049ZM2.83128 2.06098C2.704 2.06098 2.60082 2.16035 2.60082 2.28293V4.66098C2.60082 4.78356 2.704 4.88293 2.83128 4.88293H6.41975C6.54703 4.88293 6.65021 4.78356 6.65021 4.66098V2.28293C6.65021 2.16035 6.54703 2.06098 6.41975 2.06098H2.83128ZM3.16049 8.02195V6.27805H6.09053V8.02195H3.16049ZM2.60082 5.96098C2.60082 5.8384 2.704 5.73902 2.83128 5.73902H6.41975C6.54703 5.73902 6.65021 5.8384 6.65021 5.96098V8.33902C6.65021 8.4616 6.54703 8.56098 6.41975 8.56098H2.83128C2.704 8.56098 2.60082 8.4616 2.60082 8.33902V5.96098ZM10.4362 3.42439V6.02439H13.1358V3.42439H10.4362ZM10.107 2.88537C9.97972 2.88537 9.87654 2.98474 9.87654 3.10732V6.34146C9.87654 6.46404 9.97972 6.56341 10.107 6.56341H13.465C13.5923 6.56341 13.6955 6.46404 13.6955 6.34146V3.10732C13.6955 2.98474 13.5923 2.88537 13.465 2.88537H10.107ZM12.3457 4.72439C12.3457 5.04594 12.0812 5.29512 11.7695 5.29512C11.4579 5.29512 11.1934 5.04594 11.1934 4.72439C11.1934 4.40284 11.4579 4.15366 11.7695 4.15366C12.0812 4.15366 12.3457 4.40284 12.3457 4.72439ZM12.7737 4.72439C12.7737 5.26725 12.3241 5.70732 11.7695 5.70732C11.215 5.70732 10.7654 5.26725 10.7654 4.72439C10.7654 4.18153 11.215 3.74146 11.7695 3.74146C12.3241 3.74146 12.7737 4.18153 12.7737 4.72439ZM9.0535 8.68781C9.0535 8.56523 9.15667 8.46585 9.28395 8.46585H9.87654C10.0038 8.46585 10.107 8.56523 10.107 8.68781V8.75122C10.107 8.8738 10.0038 8.97317 9.87654 8.97317H9.28395C9.15667 8.97317 9.0535 8.8738 9.0535 8.75122V8.68781ZM12.3786 8.46585C12.2513 8.46585 12.1481 8.56523 12.1481 8.68781V8.75122C12.1481 8.8738 12.2513 8.97317 12.3786 8.97317H12.9712C13.0985 8.97317 13.2016 8.8738 13.2016 8.75122V8.68781C13.2016 8.56523 13.0985 8.46585 12.9712 8.46585H12.3786ZM13.8601 3.55122C13.8601 3.42864 13.9633 3.32927 14.0905 3.32927H14.4856C14.6129 3.32927 14.716 3.42864 14.716 3.55122V3.58293C14.716 3.70551 14.6129 3.80488 14.4856 3.80488H14.0905C13.9633 3.80488 13.8601 3.70551 13.8601 3.58293V3.55122ZM9.08642 3.32927C8.95914 3.32927 8.85597 3.42864 8.85597 3.55122V3.58293C8.85597 3.70551 8.95914 3.80488 9.08642 3.80488H9.48148C9.60876 3.80488 9.71193 3.70551 9.71193 3.58293V3.55122C9.71193 3.42864 9.60876 3.32927 9.48148 3.32927H9.08642ZM13.0041 1.87073C13.1314 1.87073 13.2346 1.9701 13.2346 2.09268V2.47317C13.2346 2.59575 13.1314 2.69512 13.0041 2.69512H12.9712C12.8439 2.69512 12.7407 2.59575 12.7407 2.47317V2.09268C12.7407 1.9701 12.8439 1.87073 12.9712 1.87073H13.0041ZM13.2346 6.97561C13.2346 6.85303 13.1314 6.75366 13.0041 6.75366H12.9712C12.8439 6.75366 12.7407 6.85303 12.7407 6.97561V7.3561C12.7407 7.47868 12.8439 7.57805 12.9712 7.57805H13.0041C13.1314 7.57805 13.2346 7.47868 13.2346 7.3561V6.97561ZM14.0905 4.12195C13.9633 4.12195 13.8601 4.22132 13.8601 4.3439V4.37561C13.8601 4.49819 13.9633 4.59756 14.0905 4.59756H14.4856C14.6129 4.59756 14.716 4.49819 14.716 4.37561V4.3439C14.716 4.22132 14.6129 4.12195 14.4856 4.12195H14.0905ZM8.85597 4.3439C8.85597 4.22132 8.95914 4.12195 9.08642 4.12195H9.48148C9.60876 4.12195 9.71193 4.22132 9.71193 4.3439V4.37561C9.71193 4.49819 9.60876 4.59756 9.48148 4.59756H9.08642C8.95914 4.59756 8.85597 4.49819 8.85597 4.37561V4.3439ZM12.4115 2.09268C12.4115 1.9701 12.3083 1.87073 12.1811 1.87073H12.1481C12.0209 1.87073 11.9177 1.9701 11.9177 2.09268V2.47317C11.9177 2.59575 12.0209 2.69512 12.1481 2.69512H12.1811C12.3083 2.69512 12.4115 2.59575 12.4115 2.47317V2.09268ZM12.1811 6.75366C12.3083 6.75366 12.4115 6.85303 12.4115 6.97561V7.3561C12.4115 7.47868 12.3083 7.57805 12.1811 7.57805H12.1481C12.0209 7.57805 11.9177 7.47868 11.9177 7.3561V6.97561C11.9177 6.85303 12.0209 6.75366 12.1481 6.75366H12.1811ZM13.8601 5.10488C13.8601 4.9823 13.9633 4.88293 14.0905 4.88293H14.4856C14.6129 4.88293 14.716 4.9823 14.716 5.10488V5.13659C14.716 5.25916 14.6129 5.35854 14.4856 5.35854H14.0905C13.9633 5.35854 13.8601 5.25916 13.8601 5.13659V5.10488ZM9.08642 4.88293C8.95914 4.88293 8.85597 4.9823 8.85597 5.10488V5.13659C8.85597 5.25916 8.95914 5.35854 9.08642 5.35854H9.48148C9.60876 5.35854 9.71193 5.25916 9.71193 5.13659V5.10488C9.71193 4.9823 9.60876 4.88293 9.48148 4.88293H9.08642ZM11.3909 1.87073C11.5182 1.87073 11.6214 1.9701 11.6214 2.09268V2.47317C11.6214 2.59575 11.5182 2.69512 11.3909 2.69512H11.358C11.2307 2.69512 11.1276 2.59575 11.1276 2.47317V2.09268C11.1276 1.9701 11.2307 1.87073 11.358 1.87073H11.3909ZM11.6214 6.97561C11.6214 6.85303 11.5182 6.75366 11.3909 6.75366H11.358C11.2307 6.75366 11.1276 6.85303 11.1276 6.97561V7.3561C11.1276 7.47868 11.2307 7.57805 11.358 7.57805H11.3909C11.5182 7.57805 11.6214 7.47868 11.6214 7.3561V6.97561ZM13.8601 5.86585C13.8601 5.74327 13.9633 5.6439 14.0905 5.6439H14.4856C14.6129 5.6439 14.716 5.74327 14.716 5.86585V5.89756C14.716 6.02014 14.6129 6.11951 14.4856 6.11951H14.0905C13.9633 6.11951 13.8601 6.02014 13.8601 5.89756V5.86585ZM9.08642 5.6439C8.95914 5.6439 8.85597 5.74327 8.85597 5.86585V5.89756C8.85597 6.02014 8.95914 6.11951 9.08642 6.11951H9.48148C9.60876 6.11951 9.71193 6.02014 9.71193 5.89756V5.86585C9.71193 5.74327 9.60876 5.6439 9.48148 5.6439H9.08642ZM10.6008 1.87073C10.7281 1.87073 10.8313 1.9701 10.8313 2.09268V2.47317C10.8313 2.59575 10.7281 2.69512 10.6008 2.69512H10.5679C10.4406 2.69512 10.3374 2.59575 10.3374 2.47317V2.09268C10.3374 1.9701 10.4406 1.87073 10.5679 1.87073H10.6008ZM10.8313 6.97561C10.8313 6.85303 10.7281 6.75366 10.6008 6.75366H10.5679C10.4406 6.75366 10.3374 6.85303 10.3374 6.97561V7.3561C10.3374 7.47868 10.4406 7.57805 10.5679 7.57805H10.6008C10.7281 7.57805 10.8313 7.47868 10.8313 7.3561V6.97561ZM13.6955 8.68781C13.6955 8.56523 13.7986 8.46585 13.9259 8.46585H14.5185C14.6458 8.46585 14.749 8.56523 14.749 8.68781V8.75122C14.749 8.8738 14.6458 8.97317 14.5185 8.97317H13.9259C13.7986 8.97317 13.6955 8.8738 13.6955 8.75122V8.68781ZM13.9259 9.44878C13.7986 9.44878 13.6955 9.54815 13.6955 9.67073V9.73415C13.6955 9.85673 13.7986 9.9561 13.9259 9.9561H14.5185C14.6458 9.9561 14.749 9.85673 14.749 9.73415V9.67073C14.749 9.54815 14.6458 9.44878 14.5185 9.44878H13.9259ZM10.6008 9.67073C10.6008 9.54815 10.704 9.44878 10.8313 9.44878H11.4239C11.5511 9.44878 11.6543 9.54815 11.6543 9.67073V9.73415C11.6543 9.85673 11.5511 9.9561 11.4239 9.9561H10.8313C10.704 9.9561 10.6008 9.85673 10.6008 9.73415V9.67073ZM9.28395 9.44878C9.15667 9.44878 9.0535 9.54815 9.0535 9.67073V9.73415C9.0535 9.85673 9.15667 9.9561 9.28395 9.9561H9.87654C10.0038 9.9561 10.107 9.85673 10.107 9.73415V9.67073C10.107 9.54815 10.0038 9.44878 9.87654 9.44878H9.28395Z" fill="#0C1C29" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/resolved-button.svg b/src/assets/images/_sila/event-logs/resolved-button.svg
new file mode 100644
index 00000000..40e76bf0
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/resolved-button.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9.00001 0.666748C4.40001 0.666748 0.666672 4.40008 0.666672 9.00008C0.666672 13.6001 4.40001 17.3334 9.00001 17.3334C13.6 17.3334 17.3333 13.6001 17.3333 9.00008C17.3333 4.40008 13.6 0.666748 9.00001 0.666748ZM9.00001 15.6667C5.32501 15.6667 2.33334 12.6751 2.33334 9.00008C2.33334 5.32508 5.32501 2.33341 9.00001 2.33341C12.675 2.33341 15.6667 5.32508 15.6667 9.00008C15.6667 12.6751 12.675 15.6667 9.00001 15.6667ZM12.2333 5.90841L7.33334 10.8084L5.76667 9.24175C5.44167 8.91675 4.91667 8.91675 4.59167 9.24175C4.26667 9.56675 4.26667 10.0917 4.59167 10.4167L6.75001 12.5751C7.07501 12.9001 7.60001 12.9001 7.92501 12.5751L13.4167 7.08342C13.7417 6.75841 13.7417 6.23342 13.4167 5.90841C13.0917 5.58342 12.5583 5.58342 12.2333 5.90841Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/resolved.svg b/src/assets/images/_sila/event-logs/resolved.svg
new file mode 100644
index 00000000..ae48e6aa
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/resolved.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7.00004 0.333496C3.32004 0.333496 0.333374 3.32016 0.333374 7.00016C0.333374 10.6802 3.32004 13.6668 7.00004 13.6668C10.68 13.6668 13.6667 10.6802 13.6667 7.00016C13.6667 3.32016 10.68 0.333496 7.00004 0.333496ZM7.00004 12.3335C4.06004 12.3335 1.66671 9.94016 1.66671 7.00016C1.66671 4.06016 4.06004 1.66683 7.00004 1.66683C9.94004 1.66683 12.3334 4.06016 12.3334 7.00016C12.3334 9.94016 9.94004 12.3335 7.00004 12.3335ZM9.58671 4.52683L5.66671 8.44683L4.41337 7.1935C4.15337 6.9335 3.73337 6.9335 3.47337 7.1935C3.21337 7.4535 3.21337 7.8735 3.47337 8.1335L5.20004 9.86016C5.46004 10.1202 5.88004 10.1202 6.14004 9.86016L10.5334 5.46683C10.7934 5.20683 10.7934 4.78683 10.5334 4.52683C10.2734 4.26683 9.84671 4.26683 9.58671 4.52683Z" fill="#4EBF19"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/sort-icon-rotate.svg b/src/assets/images/_sila/event-logs/sort-icon-rotate.svg
new file mode 100644
index 00000000..b4c8833a
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/sort-icon-rotate.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M3 6H9V8H3V6ZM3 18V16H21V18H3ZM3 11H15V13H3V11Z" fill="#0C1C29"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/sort-icon.svg b/src/assets/images/_sila/event-logs/sort-icon.svg
new file mode 100644
index 00000000..885ae23d
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/sort-icon.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="10" viewBox="0 0 16 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.33333 10H4.66667C5.125 10 5.5 9.625 5.5 9.16667C5.5 8.70833 5.125 8.33333 4.66667 8.33333H1.33333C0.875 8.33333 0.5 8.70833 0.5 9.16667C0.5 9.625 0.875 10 1.33333 10ZM0.5 0.833333C0.5 1.29167 0.875 1.66667 1.33333 1.66667H14.6667C15.125 1.66667 15.5 1.29167 15.5 0.833333C15.5 0.375 15.125 0 14.6667 0H1.33333C0.875 0 0.5 0.375 0.5 0.833333ZM1.33333 5.83333H9.66667C10.125 5.83333 10.5 5.45833 10.5 5C10.5 4.54167 10.125 4.16667 9.66667 4.16667H1.33333C0.875 4.16667 0.5 4.54167 0.5 5C0.5 5.45833 0.875 5.83333 1.33333 5.83333Z" fill="#0C1C29" fill-opacity="0.3"/>
+</svg>
diff --git a/src/assets/images/_sila/event-logs/time.svg b/src/assets/images/_sila/event-logs/time.svg
new file mode 100644
index 00000000..2a8c2cfd
--- /dev/null
+++ b/src/assets/images/_sila/event-logs/time.svg
@@ -0,0 +1,3 @@
+<svg width="13" height="15" viewBox="0 0 13 15" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8.33328 0.666504H5.66661C5.29994 0.666504 4.99994 0.966504 4.99994 1.33317C4.99994 1.69984 5.29994 1.99984 5.66661 1.99984H8.33328C8.69994 1.99984 8.99994 1.69984 8.99994 1.33317C8.99994 0.966504 8.69994 0.666504 8.33328 0.666504ZM6.99994 9.33317C7.36661 9.33317 7.66661 9.03317 7.66661 8.6665V5.99984C7.66661 5.63317 7.36661 5.33317 6.99994 5.33317C6.63328 5.33317 6.33328 5.63317 6.33328 5.99984V8.6665C6.33328 9.03317 6.63328 9.33317 6.99994 9.33317ZM11.6866 4.9265L12.1866 4.4265C12.4399 4.17317 12.4466 3.75317 12.1866 3.49317L12.1799 3.4865C11.9199 3.2265 11.5066 3.23317 11.2466 3.4865L10.7466 3.9865C9.71328 3.15984 8.41328 2.6665 6.99994 2.6665C3.79994 2.6665 1.07994 5.3065 0.999945 8.5065C0.913278 11.8932 3.62661 14.6665 6.99994 14.6665C10.3199 14.6665 12.9999 11.9798 12.9999 8.6665C12.9999 7.25317 12.5066 5.95317 11.6866 4.9265ZM6.99994 13.3332C4.41994 13.3332 2.33328 11.2465 2.33328 8.6665C2.33328 6.0865 4.41994 3.99984 6.99994 3.99984C9.57994 3.99984 11.6666 6.0865 11.6666 8.6665C11.6666 11.2465 9.57994 13.3332 6.99994 13.3332Z" fill="#0C1C29" fill-opacity="0.3"/>
+</svg>
diff --git a/src/assets/images/_sila/fans-page/fans-icon.svg b/src/assets/images/_sila/fans-page/fans-icon.svg
new file mode 100644
index 00000000..eddb89ab
--- /dev/null
+++ b/src/assets/images/_sila/fans-page/fans-icon.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.0071 14.5899C5.88063 15.1221 6.9438 15.3043 7.65225 15.3043L7.65225 9.70443C7.02871 9.57786 6.52632 9.1177 6.33946 8.51834C5.89187 8.63106 5.42752 8.80613 5.0071 9.06226C4.15196 9.58323 3.47829 10.4354 3.47829 11.8261C3.47829 13.2168 4.15196 14.0689 5.0071 14.5899ZM6.29572 7.65225H0.695659C0.695659 6.9438 0.877919 5.88063 1.41009 5.0071C1.93106 4.15196 2.7832 3.47829 4.17391 3.47829C5.56463 3.47829 6.41677 4.15196 6.93774 5.0071C7.19388 5.42754 7.36896 5.8919 7.48167 6.33951C6.88238 6.5264 6.42228 7.02876 6.29572 7.65225ZM8.34791 7.01596C8.23911 6.97751 8.12204 6.95659 8.00008 6.95659C7.86275 6.95659 7.73161 6.98312 7.61152 7.03133C7.3343 7.14262 7.11592 7.36946 7.01596 7.65225C6.97751 7.76104 6.95659 7.87812 6.95659 8.00008C6.95659 8.13735 6.9831 8.26843 7.03127 8.38849C7.14254 8.66578 7.36941 8.88422 7.65225 8.98419C7.76104 9.02264 7.87812 9.04356 8.00008 9.04356C8.18346 9.04356 8.35579 8.99625 8.50554 8.91318C8.7268 8.79044 8.89876 8.58961 8.98419 8.34791C9.02264 8.23911 9.04356 8.12204 9.04356 8.00008C9.04356 7.81664 8.99623 7.64425 8.91311 7.49447C8.79035 7.27328 8.58956 7.10138 8.34791 7.01596ZM9.586 7.28526C9.35937 6.78322 8.90135 6.40806 8.34791 6.29572V0.746159C8.96378 0.831471 9.67823 1.03288 10.2974 1.41009C11.1525 1.93106 11.8262 2.7832 11.8262 4.17391C11.8262 5.56463 11.1525 6.41677 10.2974 6.93774C10.0699 7.07632 9.82958 7.19117 9.586 7.28526ZM9.70444 8.34791C9.59208 8.9014 9.21686 9.35945 8.71476 9.58606C8.80884 9.82962 8.92369 10.0699 9.06226 10.2974C9.58323 11.1525 10.4354 11.8262 11.8261 11.8262C13.2168 11.8262 14.0689 11.1525 14.5899 10.2974C14.9671 9.67823 15.1685 8.96378 15.2538 8.34791H9.70444ZM8.34791 10.4501V16L7.65225 16C6.85343 16 5.65572 15.7997 4.64517 15.184C3.61623 14.5571 2.78264 13.4962 2.78264 11.8261C2.78264 10.1559 3.61623 9.09503 4.64517 8.46817C4.7141 8.42617 4.78391 8.38611 4.8544 8.34791H1.9281e-06L0 7.65225C0 6.85343 0.200349 5.65572 0.816001 4.64517C1.44286 3.61623 2.50376 2.78264 4.17391 2.78264C5.84407 2.78264 6.90497 3.61623 7.53183 4.64517C7.57388 4.7142 7.614 4.7841 7.65225 4.85469V0.695659V0.347832V0C8.45106 0 9.64878 0.200348 10.6593 0.816001C11.6883 1.44286 12.5219 2.50376 12.5219 4.17391C12.5219 5.84407 11.6883 6.90497 10.6593 7.53183C10.5903 7.57388 10.5204 7.614 10.4498 7.65225H15.3043H15.6522H16C16 8.45106 15.7997 9.64878 15.184 10.6593C14.5571 11.6883 13.4962 12.5219 11.8261 12.5219C10.1559 12.5219 9.09503 11.6883 8.46817 10.6593C8.42617 10.5904 8.38611 10.5206 8.34791 10.4501Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/frequency-icon.svg b/src/assets/images/_sila/frequency-icon.svg
new file mode 100644
index 00000000..65a3d913
--- /dev/null
+++ b/src/assets/images/_sila/frequency-icon.svg
@@ -0,0 +1,3 @@
+<svg width="20" height="14" viewBox="0 0 20 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.19997 12.7795L7.49997 7.47954L10.75 10.7295C11.16 11.1395 11.82 11.1195 12.2 10.6895L19.37 2.61954C19.72 2.22954 19.7 1.62954 19.33 1.24954C18.93 0.84954 18.26 0.85954 17.88 1.28954L11.49 8.46954L8.19997 5.17954C7.80997 4.78954 7.17997 4.78954 6.78997 5.17954L0.699971 11.2795C0.309971 11.6695 0.309971 12.2995 0.699971 12.6895L0.789971 12.7795C1.17997 13.1695 1.81997 13.1695 2.19997 12.7795Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/header/header-avatar.svg b/src/assets/images/_sila/header/header-avatar.svg
new file mode 100644
index 00000000..70a97d0f
--- /dev/null
+++ b/src/assets/images/_sila/header/header-avatar.svg
@@ -0,0 +1,10 @@
+<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect x="3" y="3" width="28" height="28" rx="14" fill="url(#pattern0)"/>
+<path d="M17 32C8.71573 32 2 25.2843 2 17H0C0 26.3888 7.61116 34 17 34V32ZM32 17C32 25.2843 25.2843 32 17 32V34C26.3888 34 34 26.3888 34 17H32ZM17 2C25.2843 2 32 8.71573 32 17H34C34 7.61116 26.3888 0 17 0V2ZM17 0C7.61116 0 0 7.61116 0 17H2C2 8.71573 8.71573 2 17 2V0Z" fill="#E11717"/>
+<defs>
+<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
+<use xlink:href="#image0_1034_21700" transform="translate(0 -0.25) scale(0.003125)"/>
+</pattern>
+<image id="image0_1034_21700" width="320" height="480" xlink:href="data:image/jpeg;base64,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"/>
+</defs>
+</svg>
diff --git a/src/assets/images/_sila/header/header-clock.svg b/src/assets/images/_sila/header/header-clock.svg
new file mode 100644
index 00000000..dae2f062
--- /dev/null
+++ b/src/assets/images/_sila/header/header-clock.svg
@@ -0,0 +1,3 @@
+<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4.995 0C2.235 0 0 2.24 0 5C0 7.76 2.235 10 4.995 10C7.76 10 10 7.76 10 5C10 2.24 7.76 0 4.995 0ZM5 9C2.79 9 1 7.21 1 5C1 2.79 2.79 1 5 1C7.21 1 9 2.79 9 5C9 7.21 7.21 9 5 9ZM4.89 2.5H4.86C4.66 2.5 4.5 2.66 4.5 2.86V5.22C4.5 5.395 4.59 5.56 4.745 5.65L6.82 6.895C6.99 6.995 7.21 6.945 7.31 6.775C7.415 6.605 7.36 6.38 7.185 6.28L5.25 5.13V2.86C5.25 2.66 5.09 2.5 4.89 2.5Z" fill="white" fill-opacity="0.7"/>
+</svg>
diff --git a/src/assets/images/_sila/header/icon-notification.svg b/src/assets/images/_sila/header/icon-notification.svg
new file mode 100644
index 00000000..22b5ecc0
--- /dev/null
+++ b/src/assets/images/_sila/header/icon-notification.svg
@@ -0,0 +1,5 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M22.075 20.4085L21 19.3335V15.1668C21 12.6085 19.6334 10.4668 17.25 9.90016V9.3335C17.25 8.64183 16.6917 8.0835 16 8.0835C15.3084 8.0835 14.75 8.64183 14.75 9.3335V9.90016C12.3584 10.4668 11 12.6002 11 15.1668V19.3335L9.92504 20.4085C9.40004 20.9335 9.76671 21.8335 10.5084 21.8335H21.4834C22.2334 21.8335 22.6 20.9335 22.075 20.4085ZM19.3334 20.1668H12.6667V15.1668C12.6667 13.1002 13.925 11.4168 16 11.4168C18.075 11.4168 19.3334 13.1002 19.3334 15.1668V20.1668ZM16 24.3335C16.9167 24.3335 17.6667 23.5835 17.6667 22.6668H14.3334C14.3334 23.5835 15.075 24.3335 16 24.3335Z" fill="white"/>
+<rect x="14" y="6" width="12" height="12" rx="6" fill="#E11717"/>
+<path d="M18.2919 9.18182V15H17.0618V10.3494H17.0277L15.6953 11.1847V10.0938L17.1357 9.18182H18.2919ZM21.956 15.1278C21.4673 15.1259 21.0469 15.0057 20.6946 14.767C20.3442 14.5284 20.0743 14.1828 19.8849 13.7301C19.6974 13.2775 19.6046 12.733 19.6065 12.0966C19.6065 11.4621 19.7003 10.9214 19.8878 10.4744C20.0772 10.0275 20.3471 9.6875 20.6974 9.45455C21.0497 9.2197 21.4692 9.10227 21.956 9.10227C22.4427 9.10227 22.8613 9.2197 23.2116 9.45455C23.5639 9.68939 23.8348 10.0303 24.0241 10.4773C24.2135 10.9223 24.3073 11.4621 24.3054 12.0966C24.3054 12.7348 24.2107 13.2803 24.0213 13.733C23.8338 14.1856 23.5649 14.5312 23.2145 14.7699C22.8641 15.0085 22.4446 15.1278 21.956 15.1278ZM21.956 14.108C22.2893 14.108 22.5554 13.9403 22.7543 13.6051C22.9531 13.2699 23.0516 12.767 23.0497 12.0966C23.0497 11.6553 23.0043 11.2879 22.9134 10.9943C22.8243 10.7008 22.6974 10.4801 22.5327 10.3324C22.3698 10.1847 22.1776 10.1108 21.956 10.1108C21.6245 10.1108 21.3594 10.2765 21.1605 10.608C20.9616 10.9394 20.8613 11.4356 20.8594 12.0966C20.8594 12.5436 20.9039 12.9167 20.9929 13.2159C21.0838 13.5133 21.2116 13.7367 21.3764 13.8864C21.5412 14.0341 21.7344 14.108 21.956 14.108Z" fill="white"/>
+</svg>
diff --git a/src/assets/images/_sila/header/logout-icon.svg b/src/assets/images/_sila/header/logout-icon.svg
new file mode 100644
index 00000000..c0e8cee2
--- /dev/null
+++ b/src/assets/images/_sila/header/logout-icon.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6.99167 11.575C7.31667 11.9 7.84167 11.9 8.16667 11.575L11.1583 8.58333C11.4833 8.25833 11.4833 7.73333 11.1583 7.40833L8.16667 4.41667C7.84167 4.09167 7.31667 4.09167 6.99167 4.41667C6.66667 4.74167 6.66667 5.26667 6.99167 5.59167L8.55833 7.16667H1.33333C0.875 7.16667 0.5 7.54167 0.5 8C0.5 8.45833 0.875 8.83333 1.33333 8.83333H8.55833L6.99167 10.4C6.66667 10.725 6.675 11.2583 6.99167 11.575ZM13.8333 0.5H2.16667C1.24167 0.5 0.5 1.25 0.5 2.16667V4.66667C0.5 5.125 0.875 5.5 1.33333 5.5C1.79167 5.5 2.16667 5.125 2.16667 4.66667V3C2.16667 2.54167 2.54167 2.16667 3 2.16667H13C13.4583 2.16667 13.8333 2.54167 13.8333 3V13C13.8333 13.4583 13.4583 13.8333 13 13.8333H3C2.54167 13.8333 2.16667 13.4583 2.16667 13V11.3333C2.16667 10.875 1.79167 10.5 1.33333 10.5C0.875 10.5 0.5 10.875 0.5 11.3333V13.8333C0.5 14.75 1.25 15.5 2.16667 15.5H13.8333C14.75 15.5 15.5 14.75 15.5 13.8333V2.16667C15.5 1.25 14.75 0.5 13.8333 0.5Z" fill="white"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-chevron-red.svg b/src/assets/images/_sila/icon-chevron-red.svg
new file mode 100644
index 00000000..7fcd68d4
--- /dev/null
+++ b/src/assets/images/_sila/icon-chevron-red.svg
@@ -0,0 +1,3 @@
+<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.4134 1.19329L4.00006 3.77996L6.58673 1.19329C6.84673 0.933291 7.26673 0.933291 7.52673 1.19329C7.78673 1.45329 7.78673 1.87329 7.52673 2.13329L4.46673 5.19329C4.20673 5.45329 3.78673 5.45329 3.52673 5.19329L0.466729 2.13329C0.206729 1.87329 0.206729 1.45329 0.466729 1.19329C0.726729 0.939958 1.1534 0.933291 1.4134 1.19329V1.19329Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-chevron.svg b/src/assets/images/_sila/icon-chevron.svg
new file mode 100644
index 00000000..597287ef
--- /dev/null
+++ b/src/assets/images/_sila/icon-chevron.svg
@@ -0,0 +1,3 @@
+<svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8.23332 0.741797L4.99998 3.97513L1.76665 0.741797C1.44165 0.416797 0.91665 0.416797 0.59165 0.741797C0.26665 1.0668 0.26665 1.5918 0.59165 1.9168L4.41665 5.7418C4.74165 6.0668 5.26665 6.0668 5.59165 5.7418L9.41665 1.9168C9.74165 1.5918 9.74165 1.0668 9.41665 0.741797C9.09165 0.42513 8.55832 0.416797 8.23332 0.741797Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-clear-red.svg b/src/assets/images/_sila/icon-clear-red.svg
new file mode 100644
index 00000000..2f50ed01
--- /dev/null
+++ b/src/assets/images/_sila/icon-clear-red.svg
@@ -0,0 +1,3 @@
+<svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.00004 10.6667C1.00004 11.4 1.60004 12 2.33337 12H7.66671C8.40004 12 9.00004 11.4 9.00004 10.6667V4C9.00004 3.26667 8.40004 2.66667 7.66671 2.66667H2.33337C1.60004 2.66667 1.00004 3.26667 1.00004 4V10.6667ZM3.00004 4H7.00004C7.36671 4 7.66671 4.3 7.66671 4.66667V10C7.66671 10.3667 7.36671 10.6667 7.00004 10.6667H3.00004C2.63337 10.6667 2.33337 10.3667 2.33337 10V4.66667C2.33337 4.3 2.63337 4 3.00004 4ZM7.33337 0.666667L6.86004 0.193333C6.74004 0.0733333 6.56671 0 6.39337 0H3.60671C3.43337 0 3.26004 0.0733333 3.14004 0.193333L2.66671 0.666667H1.00004C0.633374 0.666667 0.333374 0.966667 0.333374 1.33333C0.333374 1.7 0.633374 2 1.00004 2H9.00004C9.36671 2 9.66671 1.7 9.66671 1.33333C9.66671 0.966667 9.36671 0.666667 9.00004 0.666667H7.33337Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-edit.svg b/src/assets/images/_sila/icon-edit.svg
new file mode 100644
index 00000000..9897aacd
--- /dev/null
+++ b/src/assets/images/_sila/icon-edit.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.18244 11.25H0.75V9.81101L7.37231 3.1887L8.81106 4.62745L2.18244 11.25ZM9.87196 4.62769L2.59297 11.9C2.53298 11.9667 2.44633 12 2.35967 12H0.333287C0.146646 12 0 11.8534 0 11.6667V9.64033C0 9.54701 0.0333288 9.46702 0.0999862 9.40036L7.37231 2.12804L9.87196 4.62769ZM11.2143 2.22469L10.5852 2.8538L9.1462 1.4148L9.77531 0.785698L11.2143 2.22469ZM10.5852 3.91446L11.805 2.69463C12.065 2.43466 12.065 2.01472 11.805 1.75476L10.2452 0.194973C9.98528 -0.064991 9.56534 -0.064991 9.30537 0.194973L8.08554 1.4148L10.5852 3.91446Z" fill="#0C1C29" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-no.svg b/src/assets/images/_sila/icon-no.svg
new file mode 100644
index 00000000..4cb0d8e8
--- /dev/null
+++ b/src/assets/images/_sila/icon-no.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11.2496 0.258431C10.9246 -0.0665688 10.3996 -0.0665688 10.0746 0.258431L5.99961 4.3251L1.92461 0.250098C1.59961 -0.0749023 1.07461 -0.0749023 0.749609 0.250098C0.424609 0.575098 0.424609 1.1001 0.749609 1.4251L4.82461 5.5001L0.749609 9.5751C0.424609 9.9001 0.424609 10.4251 0.749609 10.7501C1.07461 11.0751 1.59961 11.0751 1.92461 10.7501L5.99961 6.6751L10.0746 10.7501C10.3996 11.0751 10.9246 11.0751 11.2496 10.7501C11.5746 10.4251 11.5746 9.9001 11.2496 9.5751L7.17461 5.5001L11.2496 1.4251C11.5663 1.10843 11.5663 0.575098 11.2496 0.258431Z" fill="#FF4141"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-ok.svg b/src/assets/images/_sila/icon-ok.svg
new file mode 100644
index 00000000..2534daca
--- /dev/null
+++ b/src/assets/images/_sila/icon-ok.svg
@@ -0,0 +1,3 @@
+<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4.49993 9.0001L1.58327 6.08343C1.25827 5.75843 0.741602 5.75843 0.416602 6.08343C0.0916016 6.40843 0.0916016 6.9251 0.416602 7.2501L3.90827 10.7418C4.23327 11.0668 4.75827 11.0668 5.08327 10.7418L13.9166 1.91676C14.2416 1.59176 14.2416 1.0751 13.9166 0.750098C13.5916 0.425098 13.0749 0.425098 12.7499 0.750098L4.49993 9.0001Z" fill="#4EBF19"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-options.svg b/src/assets/images/_sila/icon-options.svg
new file mode 100644
index 00000000..b9ab31bb
--- /dev/null
+++ b/src/assets/images/_sila/icon-options.svg
@@ -0,0 +1,3 @@
+<svg width="4" height="14" viewBox="0 0 4 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.00004 3.66683C2.91671 3.66683 3.66671 2.91683 3.66671 2.00016C3.66671 1.0835 2.91671 0.333496 2.00004 0.333496C1.08337 0.333496 0.333374 1.0835 0.333374 2.00016C0.333374 2.91683 1.08337 3.66683 2.00004 3.66683ZM2.00004 5.3335C1.08337 5.3335 0.333374 6.0835 0.333374 7.00016C0.333374 7.91683 1.08337 8.66683 2.00004 8.66683C2.91671 8.66683 3.66671 7.91683 3.66671 7.00016C3.66671 6.0835 2.91671 5.3335 2.00004 5.3335ZM2.00004 10.3335C1.08337 10.3335 0.333374 11.0835 0.333374 12.0002C0.333374 12.9168 1.08337 13.6668 2.00004 13.6668C2.91671 13.6668 3.66671 12.9168 3.66671 12.0002C3.66671 11.0835 2.91671 10.3335 2.00004 10.3335Z" fill="#040A0F" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-reload-red.svg b/src/assets/images/_sila/icon-reload-red.svg
new file mode 100644
index 00000000..c6e8e9ff
--- /dev/null
+++ b/src/assets/images/_sila/icon-reload-red.svg
@@ -0,0 +1,3 @@
+<svg width="19" height="14" viewBox="0 0 19 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.0417 3.95837L12.7167 6.28337C12.45 6.55004 12.6333 7.00004 13.0083 7.00004H14.5C14.5 9.75837 12.2583 12 9.49998 12C8.84165 12 8.19998 11.875 7.62498 11.6334C7.32498 11.5084 6.98332 11.6 6.75832 11.825C6.33332 12.25 6.48332 12.9667 7.04165 13.1917C7.79998 13.5 8.63332 13.6667 9.49998 13.6667C13.1833 13.6667 16.1667 10.6834 16.1667 7.00004H17.6583C18.0333 7.00004 18.2167 6.55004 17.95 6.29171L15.625 3.96671C15.4667 3.80004 15.2 3.80004 15.0417 3.95837V3.95837ZM4.49998 7.00004C4.49998 4.24171 6.74165 2.00004 9.49998 2.00004C10.1583 2.00004 10.8 2.12504 11.375 2.36671C11.675 2.49171 12.0167 2.40004 12.2417 2.17504C12.6667 1.75004 12.5167 1.03337 11.9583 0.808374C11.2 0.500041 10.3667 0.333374 9.49998 0.333374C5.81665 0.333374 2.83332 3.31671 2.83332 7.00004H1.34165C0.966651 7.00004 0.783318 7.45004 1.04998 7.70837L3.37498 10.0334C3.54165 10.2 3.79998 10.2 3.96665 10.0334L6.29165 7.70837C6.54998 7.45004 6.36665 7.00004 5.99165 7.00004H4.49998V7.00004Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/icon-settings-red.svg b/src/assets/images/_sila/icon-settings-red.svg
new file mode 100644
index 00000000..8ed9156a
--- /dev/null
+++ b/src/assets/images/_sila/icon-settings-red.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.1917 9.8165C15.225 9.54984 15.25 9.28317 15.25 8.99984C15.25 8.7165 15.225 8.44984 15.1917 8.18317L16.95 6.80817C17.1083 6.68317 17.15 6.45817 17.05 6.27484L15.3833 3.3915C15.2833 3.20817 15.0583 3.1415 14.875 3.20817L12.8 4.0415C12.3667 3.70817 11.9 3.43317 11.3917 3.22484L11.075 1.0165C11.05 0.816504 10.875 0.666504 10.6667 0.666504H7.33332C7.12499 0.666504 6.94999 0.816504 6.92499 1.0165L6.60832 3.22484C6.09999 3.43317 5.63332 3.7165 5.19999 4.0415L3.12499 3.20817C2.93332 3.13317 2.71666 3.20817 2.61666 3.3915L0.949988 6.27484C0.841655 6.45817 0.891655 6.68317 1.04999 6.80817L2.80832 8.18317C2.77499 8.44984 2.74999 8.72484 2.74999 8.99984C2.74999 9.27484 2.77499 9.54984 2.80832 9.8165L1.04999 11.1915C0.891655 11.3165 0.849988 11.5415 0.949988 11.7248L2.61666 14.6082C2.71666 14.7915 2.94165 14.8582 3.12499 14.7915L5.19999 13.9582C5.63332 14.2915 6.09999 14.5665 6.60832 14.7748L6.92499 16.9832C6.94999 17.1832 7.12499 17.3332 7.33332 17.3332H10.6667C10.875 17.3332 11.05 17.1832 11.075 16.9832L11.3917 14.7748C11.9 14.5665 12.3667 14.2832 12.8 13.9582L14.875 14.7915C15.0667 14.8665 15.2833 14.7915 15.3833 14.6082L17.05 11.7248C17.15 11.5415 17.1083 11.3165 16.95 11.1915L15.1917 9.8165ZM8.99999 11.9165C7.39165 11.9165 6.08332 10.6082 6.08332 8.99984C6.08332 7.3915 7.39165 6.08317 8.99999 6.08317C10.6083 6.08317 11.9167 7.3915 11.9167 8.99984C11.9167 10.6082 10.6083 11.9165 8.99999 11.9165Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/labels/critical.svg b/src/assets/images/_sila/labels/critical.svg
new file mode 100644
index 00000000..a154ad18
--- /dev/null
+++ b/src/assets/images/_sila/labels/critical.svg
@@ -0,0 +1,4 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="8" height="8" rx="2" fill="#FF4141" fill-opacity="0.1"/>
+<rect x="0.5" y="0.5" width="7" height="7" rx="1.5" stroke="#040A0F" stroke-opacity="0.3"/>
+</svg>
diff --git a/src/assets/images/_sila/labels/non-normal.svg b/src/assets/images/_sila/labels/non-normal.svg
new file mode 100644
index 00000000..2a31e325
--- /dev/null
+++ b/src/assets/images/_sila/labels/non-normal.svg
@@ -0,0 +1,4 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="8" height="8" rx="2" fill="#F0AC0C" fill-opacity="0.1"/>
+<rect x="0.5" y="0.5" width="7" height="7" rx="1.5" stroke="#040A0F" stroke-opacity="0.3"/>
+</svg>
diff --git a/src/assets/images/_sila/labels/shutdown.svg b/src/assets/images/_sila/labels/shutdown.svg
new file mode 100644
index 00000000..0404f277
--- /dev/null
+++ b/src/assets/images/_sila/labels/shutdown.svg
@@ -0,0 +1,3 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="8" height="8" rx="2" fill="#1A3E5B" fill-opacity="0.75"/>
+</svg>
diff --git a/src/assets/images/_sila/labels/warning.svg b/src/assets/images/_sila/labels/warning.svg
new file mode 100644
index 00000000..3d31df37
--- /dev/null
+++ b/src/assets/images/_sila/labels/warning.svg
@@ -0,0 +1,3 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="8" height="8" rx="2" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/login/autrorization-left-image.svg b/src/assets/images/_sila/login/autrorization-left-image.svg
new file mode 100644
index 00000000..364afa5e
--- /dev/null
+++ b/src/assets/images/_sila/login/autrorization-left-image.svg
@@ -0,0 +1,11 @@
+<svg width="480" height="900" viewBox="0 0 480 900" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect width="480" height="900" fill="url(#pattern0)"/>
+<rect width="480" height="900" fill="#1A3E5B" fill-opacity="0.85"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M178.44 441.619V434H138.073C133.615 434 130 437.639 130 442.127V457.873C130 462.361 133.615 466 138.073 466H178.44V456.857H144.128C142.178 456.857 140.596 455.265 140.596 453.302V445.175C140.596 443.211 142.178 441.619 144.128 441.619H178.44ZM188.028 466V434H204.679V441.619H199.128V457.873L224.358 434H238.991V466H228.395V442.127L203.67 466H188.028ZM253.624 434V441.619H257.156V442.127L244.794 466H255.138L267.752 441.619H271.789L284.404 466H295.505L278.853 434H253.624ZM308.119 441.619V434H332.844L350 466H338.395L336.376 461.937H311.147L309.128 466H299.037L311.147 442.127V441.619H308.119ZM315.688 452.794V454.317H332.339V452.794L325.78 441.619H321.743L315.688 452.794Z" fill="#E11717"/>
+<defs>
+<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
+<use xlink:href="#image0_265_12656" transform="translate(-0.249902) scale(0.000977071 0.000521105)"/>
+</pattern>
+<image id="image0_265_12656" width="1535" height="1919" xlink:href="data:image/jpeg;base64,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"/>
+</defs>
+</svg>
diff --git a/src/assets/images/_sila/login/hidden-password-icon.svg b/src/assets/images/_sila/login/hidden-password-icon.svg
new file mode 100644
index 00000000..08347d6b
--- /dev/null
+++ b/src/assets/images/_sila/login/hidden-password-icon.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="13" viewBox="0 0 18 13" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.12728 0.928571L3.1091 0L4.80314 1.60217C6.07226 1.02181 7.49575 0.696429 9 0.696429C13.0909 0.696429 16.5845 3.10298 18 6.5C17.2828 8.22128 16.032 9.68825 14.4403 10.7167L15.8727 12.0714L14.8909 13L13.1969 11.3978C11.9277 11.9782 10.5043 12.3036 9 12.3036C4.90909 12.3036 1.41545 9.89702 0 6.5C0.717213 4.77872 1.96799 3.31174 3.55968 2.28329L2.12728 0.928571ZM5.6585 4.26829C5.18652 4.89902 4.90909 5.66905 4.90909 6.5C4.90909 8.63571 6.74182 10.369 9 10.369C9.87859 10.369 10.6928 10.1067 11.3597 9.66028L10.1749 8.53978C9.82621 8.71943 9.42598 8.82143 9 8.82143C7.64182 8.82143 6.54545 7.78452 6.54545 6.5C6.54545 6.09712 6.6533 5.7186 6.84326 5.38879L5.6585 4.26829ZM11.1567 7.6112C11.3467 7.28139 11.4545 6.90288 11.4545 6.5C11.4545 5.21548 10.3582 4.17857 9 4.17857C8.57402 4.17857 8.1738 4.28057 7.82508 4.46022L6.64032 3.33972C7.30722 2.89334 8.12141 2.63095 9 2.63095C11.2582 2.63095 13.0909 4.36429 13.0909 6.5C13.0909 7.33094 12.8135 8.10097 12.3415 8.73171L11.1567 7.6112Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/login/vector1.svg b/src/assets/images/_sila/login/vector1.svg
new file mode 100644
index 00000000..b91b4724
--- /dev/null
+++ b/src/assets/images/_sila/login/vector1.svg
@@ -0,0 +1,3 @@
+<svg width="80" height="64" viewBox="0 0 80 64" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 64L0 0L80 0V36.5714H53.3333V64L0 64Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/login/vector2.svg b/src/assets/images/_sila/login/vector2.svg
new file mode 100644
index 00000000..b59c9791
--- /dev/null
+++ b/src/assets/images/_sila/login/vector2.svg
@@ -0,0 +1,3 @@
+<svg width="40" height="32" viewBox="0 0 40 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M40 0L40 32L0 32L1.59859e-06 13.7143L13.3333 13.7143L13.3333 -2.33127e-06L40 0Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/logo-header-sila.svg b/src/assets/images/_sila/logo-header-sila.svg
new file mode 100644
index 00000000..dee454ae
--- /dev/null
+++ b/src/assets/images/_sila/logo-header-sila.svg
@@ -0,0 +1,4 @@
+
+<svg width="110" height="16" viewBox="0 0 110 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2202 3.80952V0H4.0367C1.80729 0 0 1.81929 0 4.06349V11.9365C0 14.1807 1.80729 16 4.0367 16H24.2202V11.4286H7.06422C6.08885 11.4286 5.29817 10.6326 5.29817 9.65079V5.5873C5.29817 4.60546 6.08886 3.80952 7.06422 3.80952H24.2202ZM29.0138 16V0H37.3395V3.80952H34.5642V11.9365L47.1789 0H54.4954V16H49.1972V4.06349L36.8349 16H29.0138ZM61.8119 0V3.80952H63.578V4.06349L57.3968 16H62.5688L68.8761 3.80952H70.8945L77.2018 16H82.7523L74.4266 0H61.8119ZM89.0596 3.80952V0H101.422L110 16H104.197L103.188 13.9683H90.5734L89.5642 16H84.5184L90.5734 4.06349V3.80952H89.0596ZM92.844 9.39683V10.1587H101.17V9.39683L97.8899 3.80952H95.8716L92.844 9.39683Z" fill="#E11717"/>
+</svg> \ No newline at end of file
diff --git a/src/assets/images/_sila/popups/red-sign.svg b/src/assets/images/_sila/popups/red-sign.svg
new file mode 100644
index 00000000..fdc2e146
--- /dev/null
+++ b/src/assets/images/_sila/popups/red-sign.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6.99992 0.333496C3.31992 0.333496 0.333252 3.32016 0.333252 7.00016C0.333252 10.6802 3.31992 13.6668 6.99992 13.6668C10.6799 13.6668 13.6666 10.6802 13.6666 7.00016C13.6666 3.32016 10.6799 0.333496 6.99992 0.333496ZM6.99992 10.3335C6.63325 10.3335 6.33325 10.0335 6.33325 9.66683V7.00016C6.33325 6.6335 6.63325 6.3335 6.99992 6.3335C7.36659 6.3335 7.66659 6.6335 7.66659 7.00016V9.66683C7.66659 10.0335 7.36659 10.3335 6.99992 10.3335ZM7.66659 4.3335C7.66659 4.70169 7.36811 5.00016 6.99992 5.00016C6.63173 5.00016 6.33325 4.70169 6.33325 4.3335C6.33325 3.96531 6.63173 3.66683 6.99992 3.66683C7.36811 3.66683 7.66659 3.96531 7.66659 4.3335Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/popups/x-icon.svg b/src/assets/images/_sila/popups/x-icon.svg
new file mode 100644
index 00000000..74d403f6
--- /dev/null
+++ b/src/assets/images/_sila/popups/x-icon.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11.2501 0.758431C10.9251 0.433431 10.4001 0.433431 10.0751 0.758431L6.0001 4.8251L1.9251 0.750098C1.6001 0.425098 1.0751 0.425098 0.750098 0.750098C0.425098 1.0751 0.425098 1.6001 0.750098 1.9251L4.8251 6.0001L0.750098 10.0751C0.425098 10.4001 0.425098 10.9251 0.750098 11.2501C1.0751 11.5751 1.6001 11.5751 1.9251 11.2501L6.0001 7.1751L10.0751 11.2501C10.4001 11.5751 10.9251 11.5751 11.2501 11.2501C11.5751 10.9251 11.5751 10.4001 11.2501 10.0751L7.1751 6.0001L11.2501 1.9251C11.5668 1.60843 11.5668 1.0751 11.2501 0.758431Z" fill="#040A0F" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/power-error-icon.svg b/src/assets/images/_sila/power-error-icon.svg
new file mode 100644
index 00000000..e9400b20
--- /dev/null
+++ b/src/assets/images/_sila/power-error-icon.svg
@@ -0,0 +1,3 @@
+<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6.5 1.99378L11.52 10.6671H1.48L6.5 1.99378ZM0.326666 10.0004C-0.186667 10.8871 0.453333 12.0004 1.48 12.0004H11.52C12.5467 12.0004 13.1867 10.8871 12.6733 10.0004L7.65333 1.32711C7.14 0.440443 5.86 0.440443 5.34667 1.32711L0.326666 10.0004ZM5.83333 5.33378V6.66711C5.83333 7.03378 6.13333 7.33378 6.5 7.33378C6.86667 7.33378 7.16667 7.03378 7.16667 6.66711V5.33378C7.16667 4.96711 6.86667 4.66711 6.5 4.66711C6.13333 4.66711 5.83333 4.96711 5.83333 5.33378ZM5.83333 8.66711H7.16667V10.0004H5.83333V8.66711Z" fill="#FF4141"/>
+</svg>
diff --git a/src/assets/images/_sila/power-icon.svg b/src/assets/images/_sila/power-icon.svg
new file mode 100644
index 00000000..9af28988
--- /dev/null
+++ b/src/assets/images/_sila/power-icon.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0.5 14H4.02205L4.77627 9.65234H7.15277C10.5183 9.65234 12.9232 7.76563 13.4142 4.84668C13.9123 1.96191 12.2188 0 8.9387 0H2.91919L0.5 14ZM5.23876 6.98633L5.97875 2.72754H7.71487C9.30157 2.72754 9.98464 3.54102 9.77118 4.84668C9.55061 6.13867 8.57582 6.98633 6.96777 6.98633H5.23876Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/processors-page/error-icon.svg b/src/assets/images/_sila/processors-page/error-icon.svg
new file mode 100644
index 00000000..a154ad18
--- /dev/null
+++ b/src/assets/images/_sila/processors-page/error-icon.svg
@@ -0,0 +1,4 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="8" height="8" rx="2" fill="#FF4141" fill-opacity="0.1"/>
+<rect x="0.5" y="0.5" width="7" height="7" rx="1.5" stroke="#040A0F" stroke-opacity="0.3"/>
+</svg>
diff --git a/src/assets/images/_sila/refresh.svg b/src/assets/images/_sila/refresh.svg
new file mode 100644
index 00000000..0b84e1a1
--- /dev/null
+++ b/src/assets/images/_sila/refresh.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9.76672 2.23365C8.68005 1.14699 7.14005 0.52032 5.44672 0.693654C3.00005 0.94032 0.986722 2.92699 0.713388 5.37365C0.346722 8.60699 2.84672 11.3337 6.00005 11.3337C8.12672 11.3337 9.95339 10.087 10.8067 8.29365C11.0201 7.84699 10.7001 7.33365 10.2067 7.33365C9.96005 7.33365 9.72672 7.46699 9.62006 7.68699C8.86672 9.30699 7.06005 10.3337 5.08672 9.89365C3.60672 9.56699 2.41339 8.36032 2.10005 6.88032C1.54005 4.29365 3.50672 2.00032 6.00005 2.00032C7.10672 2.00032 8.09339 2.46032 8.81339 3.18699L7.80672 4.19365C7.38672 4.61365 7.68005 5.33365 8.27339 5.33365H10.6667C11.0334 5.33365 11.3334 5.03365 11.3334 4.66699V2.27365C11.3334 1.68032 10.6134 1.38032 10.1934 1.80032L9.76672 2.23365Z" fill="#040A0F" fill-opacity="0.6"/>
+</svg>
diff --git a/src/assets/images/_sila/search-icon.svg b/src/assets/images/_sila/search-icon.svg
new file mode 100644
index 00000000..b1565187
--- /dev/null
+++ b/src/assets/images/_sila/search-icon.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.4999 14.0001H14.7099L14.4299 13.7301C15.6299 12.3301 16.2499 10.4201 15.9099 8.39014C15.4399 5.61014 13.1199 3.39014 10.3199 3.05014C6.08989 2.53014 2.52989 6.09014 3.04989 10.3201C3.38989 13.1201 5.60989 15.4401 8.38989 15.9101C10.4199 16.2501 12.3299 15.6301 13.7299 14.4301L13.9999 14.7101V15.5001L18.2499 19.7501C18.6599 20.1601 19.3299 20.1601 19.7399 19.7501C20.1499 19.3401 20.1499 18.6701 19.7399 18.2601L15.4999 14.0001ZM9.49989 14.0001C7.00989 14.0001 4.99989 11.9901 4.99989 9.50014C4.99989 7.01014 7.00989 5.00014 9.49989 5.00014C11.9899 5.00014 13.9999 7.01014 13.9999 9.50014C13.9999 11.9901 11.9899 14.0001 9.49989 14.0001Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/sila-server-navbar-icon.svg b/src/assets/images/_sila/sila-server-navbar-icon.svg
new file mode 100644
index 00000000..8bcd2712
--- /dev/null
+++ b/src/assets/images/_sila/sila-server-navbar-icon.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16 0H0V4.06154H1.68421V4.8H0V9.2H1.68421V10H0V14.4H1.68421V15.2V16H14.3158V15.2V14.4H16V10H14.3158V9.2H16V4.8H14.3158V4.06154H16V0ZM13.4737 4.8V4.06154H2.52632V4.8H13.4737ZM0.842105 3.32308V0.738462H15.1579V3.32308H0.842105ZM2.10526 1.10769H1.26316V2.95385H2.10526V1.10769ZM2.94737 1.10769H3.78947V2.95385H2.94737V1.10769ZM5.05263 1.10769H4.21053V2.95385H5.05263V1.10769ZM5.89474 1.10769H6.73684V2.95385H5.89474V1.10769ZM13.8947 1.47692H11.3684V2.58462H13.8947V1.47692ZM13.4737 15.2H2.52632V14.4H13.4737V15.2ZM13.4737 10V9.2H2.52632V10H13.4737ZM0.842105 8.4V5.6H15.1579V8.4H0.842105ZM2.10526 8V6H1.26316V8H2.10526ZM2.94737 6H3.78947V8H2.94737V6ZM5.05263 6H4.21053V8H5.05263V6ZM5.89474 6H6.73684V8H5.89474V6ZM13.8947 6.4H11.3684V7.6H13.8947V6.4ZM0.842105 13.6V10.8H15.1579V13.6H0.842105ZM2.10526 13.2V11.2H1.26316V13.2H2.10526ZM2.94737 11.2H3.78947V13.2H2.94737V11.2ZM5.05263 11.2H4.21053V13.2H5.05263V11.2ZM5.89474 11.2H6.73684V13.2H5.89474V11.2ZM13.8947 11.6H11.3684V12.8H13.8947V11.6Z" fill="#0C1C29" fill-opacity="0.9"/>
+</svg>
diff --git a/src/assets/images/_sila/status/off.svg b/src/assets/images/_sila/status/off.svg
new file mode 100644
index 00000000..d84bedbc
--- /dev/null
+++ b/src/assets/images/_sila/status/off.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M10.5751 6.25033L9.00008 7.82533L7.42508 6.25033C7.10008 5.92533 6.57508 5.92533 6.25008 6.25033C5.92508 6.57533 5.92508 7.10033 6.25008 7.42533L7.82508 9.00033L6.25008 10.5753C5.92508 10.9003 5.92508 11.4253 6.25008 11.7503C6.57508 12.0753 7.10008 12.0753 7.42508 11.7503L9.00008 10.1753L10.5751 11.7503C10.9001 12.0753 11.4251 12.0753 11.7501 11.7503C12.0751 11.4253 12.0751 10.9003 11.7501 10.5753L10.1751 9.00033L11.7501 7.42533C12.0751 7.10033 12.0751 6.57533 11.7501 6.25033C11.4251 5.93366 10.8917 5.93366 10.5751 6.25033ZM9.00008 0.666992C4.39175 0.666992 0.666748 4.39199 0.666748 9.00033C0.666748 13.6087 4.39175 17.3337 9.00008 17.3337C13.6084 17.3337 17.3334 13.6087 17.3334 9.00033C17.3334 4.39199 13.6084 0.666992 9.00008 0.666992ZM9.00008 15.667C5.32508 15.667 2.33341 12.6753 2.33341 9.00033C2.33341 5.32533 5.32508 2.33366 9.00008 2.33366C12.6751 2.33366 15.6667 5.32533 15.6667 9.00033C15.6667 12.6753 12.6751 15.667 9.00008 15.667Z" fill="#FF4141"/>
+</svg>
diff --git a/src/assets/images/_sila/status/on.svg b/src/assets/images/_sila/status/on.svg
new file mode 100644
index 00000000..e97abf4a
--- /dev/null
+++ b/src/assets/images/_sila/status/on.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9.00008 0.666992C4.40008 0.666992 0.666748 4.40033 0.666748 9.00033C0.666748 13.6003 4.40008 17.3337 9.00008 17.3337C13.6001 17.3337 17.3334 13.6003 17.3334 9.00033C17.3334 4.40033 13.6001 0.666992 9.00008 0.666992ZM9.00008 15.667C5.32508 15.667 2.33341 12.6753 2.33341 9.00033C2.33341 5.32533 5.32508 2.33366 9.00008 2.33366C12.6751 2.33366 15.6667 5.32533 15.6667 9.00033C15.6667 12.6753 12.6751 15.667 9.00008 15.667ZM12.2334 5.90866L7.33342 10.8087L5.76675 9.24199C5.44175 8.91699 4.91675 8.91699 4.59175 9.24199C4.26675 9.56699 4.26675 10.092 4.59175 10.417L6.75008 12.5753C7.07508 12.9003 7.60008 12.9003 7.92508 12.5753L13.4167 7.08366C13.7417 6.75866 13.7417 6.23366 13.4167 5.90866C13.0917 5.58366 12.5584 5.58366 12.2334 5.90866Z" fill="#4EBF19"/>
+</svg>
diff --git a/src/assets/images/_sila/temperature-icon.svg b/src/assets/images/_sila/temperature-icon.svg
new file mode 100644
index 00000000..8feecae4
--- /dev/null
+++ b/src/assets/images/_sila/temperature-icon.svg
@@ -0,0 +1,3 @@
+<svg width="8" height="16" viewBox="0 0 8 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.59649 8.70217V2.11563C2.72082 1.71432 3.14137 1.08777 3.96881 1.08777C4.80097 1.08777 5.25676 1.71835 5.40351 2.1269V8.5628V8.70217H5.40718L5.1428 9.2957C6.08491 9.74384 6.73684 10.7272 6.73684 11.8665C6.73684 13.4284 5.51152 14.6947 4 14.6947C2.48848 14.6947 1.26316 13.4284 1.26316 11.8665C1.26316 10.7267 1.91563 9.74303 2.85836 9.29515L2.59455 8.70217H2.59649ZM1.47368 8.66168V2.07598C1.47368 2.01444 1.48068 1.94562 1.50067 1.87278C1.67069 1.25325 2.37741 0 3.96881 0C5.54465 0 6.29377 1.23221 6.49026 1.84692C6.51676 1.92982 6.52632 2.00947 6.52632 2.08119V8.66168C7.42514 9.4192 8 10.5731 8 11.8665C8 14.1494 6.20914 16 4 16C1.79086 16 0 14.1494 0 11.8665C0 10.5731 0.574857 9.4192 1.47368 8.66168ZM6 12C6 13.1046 5.10457 14 4 14C2.89543 14 2 13.1046 2 12C2 11.2597 2.5 10 3.5 10V4H4.5V10C5.5 10 6 11.2597 6 12Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-bold.svg b/src/assets/images/_sila/textarea-buttons/button-icon-bold.svg
new file mode 100644
index 00000000..53e67502
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-bold.svg
@@ -0,0 +1,3 @@
+<svg width="11" height="14" viewBox="0 0 11 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8.6 6.79C9.57 6.12 10.25 5.02 10.25 4C10.25 1.74 8.5 0 6.25 0H1C0.45 0 0 0.45 0 1V13C0 13.55 0.45 14 1 14H6.78C8.85 14 10.74 12.31 10.75 10.23C10.76 8.7 9.9 7.39 8.6 6.79ZM3 2.5H6C6.83 2.5 7.5 3.17 7.5 4C7.5 4.83 6.83 5.5 6 5.5H3V2.5ZM6.5 11.5H3V8.5H6.5C7.33 8.5 8 9.17 8 10C8 10.83 7.33 11.5 6.5 11.5Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-crossline.svg b/src/assets/images/_sila/textarea-buttons/button-icon-crossline.svg
new file mode 100644
index 00000000..347eee6f
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-crossline.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="15" viewBox="0 0 18 15" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 15C10.1 15 11 14.1 11 13V12H7V13C7 14.1 7.9 15 9 15ZM2 1.5C2 2.33 2.67 3 3.5 3H7V6H11V3H14.5C15.33 3 16 2.33 16 1.5C16 0.67 15.33 0 14.5 0H3.5C2.67 0 2 0.67 2 1.5ZM1 10H17C17.55 10 18 9.55 18 9C18 8.45 17.55 8 17 8H1C0.45 8 0 8.45 0 9C0 9.55 0.45 10 1 10Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-cursive.svg b/src/assets/images/_sila/textarea-buttons/button-icon-cursive.svg
new file mode 100644
index 00000000..4632587d
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-cursive.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="14" viewBox="0 0 12 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 1.5C4 2.33 4.67 3 5.5 3H6.21L2.79 11H1.5C0.67 11 0 11.67 0 12.5C0 13.33 0.67 14 1.5 14H6.5C7.33 14 8 13.33 8 12.5C8 11.67 7.33 11 6.5 11H5.79L9.21 3H10.5C11.33 3 12 2.33 12 1.5C12 0.67 11.33 0 10.5 0H5.5C4.67 0 4 0.67 4 1.5Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-link.svg b/src/assets/images/_sila/textarea-buttons/button-icon-link.svg
new file mode 100644
index 00000000..41e44097
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-link.svg
@@ -0,0 +1,3 @@
+<svg width="21" height="10" viewBox="0 0 21 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.95995 4.38C2.23995 2.91 3.61995 1.9 5.11995 1.9H8.04995C8.56995 1.9 8.99995 1.47 8.99995 0.95C8.99995 0.43 8.56995 0 8.04995 0H5.21995C2.60995 0 0.279953 1.91 0.0299532 4.51C-0.260047 7.49 2.07995 10 4.99995 10H8.04995C8.56995 10 8.99995 9.57 8.99995 9.05C8.99995 8.53 8.56995 8.1 8.04995 8.1H4.99995C3.08995 8.1 1.57995 6.36 1.95995 4.38ZM6.99995 6H13C13.55 6 14 5.55 14 5C14 4.45 13.55 4 13 4H6.99995C6.44995 4 5.99995 4.45 5.99995 5C5.99995 5.55 6.44995 6 6.99995 6ZM14.78 0H11.95C11.43 0 11 0.43 11 0.95C11 1.47 11.43 1.9 11.95 1.9H14.88C16.38 1.9 17.76 2.91 18.04 4.38C18.42 6.36 16.91 8.1 15 8.1H11.95C11.43 8.1 11 8.53 11 9.05C11 9.57 11.43 10 11.95 10H15C17.92 10 20.26 7.49 19.98 4.51C19.73 1.91 17.39 0 14.78 0Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-list.svg b/src/assets/images/_sila/textarea-buttons/button-icon-list.svg
new file mode 100644
index 00000000..4a3d56a5
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-list.svg
@@ -0,0 +1,3 @@
+<svg width="19" height="16" viewBox="0 0 19 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 3H18C18.55 3 19 2.55 19 2C19 1.45 18.55 1 18 1H6C5.45 1 5 1.45 5 2C5 2.55 5.45 3 6 3ZM18 13H6C5.45 13 5 13.45 5 14C5 14.55 5.45 15 6 15H18C18.55 15 19 14.55 19 14C19 13.45 18.55 13 18 13ZM18 7H6C5.45 7 5 7.45 5 8C5 8.55 5.45 9 6 9H18C18.55 9 19 8.55 19 8C19 7.45 18.55 7 18 7ZM2.5 12H0.5C0.22 12 0 12.22 0 12.5C0 12.78 0.22 13 0.5 13H2V13.5H1.5C1.22 13.5 1 13.72 1 14C1 14.28 1.22 14.5 1.5 14.5H2V15H0.5C0.22 15 0 15.22 0 15.5C0 15.78 0.22 16 0.5 16H2.5C2.78 16 3 15.78 3 15.5V12.5C3 12.22 2.78 12 2.5 12ZM0.5 1H1V3.5C1 3.78 1.22 4 1.5 4C1.78 4 2 3.78 2 3.5V0.5C2 0.22 1.78 0 1.5 0H0.5C0.22 0 0 0.22 0 0.5C0 0.78 0.22 1 0.5 1ZM2.5 6H0.5C0.22 6 0 6.22 0 6.5C0 6.78 0.22 7 0.5 7H1.8L0.12 8.96C0.0399999 9.05 0 9.17 0 9.28V9.5C0 9.78 0.22 10 0.5 10H2.5C2.78 10 3 9.78 3 9.5C3 9.22 2.78 9 2.5 9H1.2L2.88 7.04C2.96 6.95 3 6.83 3 6.72V6.5C3 6.22 2.78 6 2.5 6Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-number-list.svg b/src/assets/images/_sila/textarea-buttons/button-icon-number-list.svg
new file mode 100644
index 00000000..01533066
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-number-list.svg
@@ -0,0 +1,3 @@
+<svg width="19" height="16" viewBox="0 0 19 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 6.5C1.17 6.5 0.5 7.17 0.5 8C0.5 8.83 1.17 9.5 2 9.5C2.83 9.5 3.5 8.83 3.5 8C3.5 7.17 2.83 6.5 2 6.5ZM2 0.5C1.17 0.5 0.5 1.17 0.5 2C0.5 2.83 1.17 3.5 2 3.5C2.83 3.5 3.5 2.83 3.5 2C3.5 1.17 2.83 0.5 2 0.5ZM2 12.5C1.17 12.5 0.5 13.18 0.5 14C0.5 14.82 1.18 15.5 2 15.5C2.82 15.5 3.5 14.82 3.5 14C3.5 13.18 2.83 12.5 2 12.5ZM6 15H18C18.55 15 19 14.55 19 14C19 13.45 18.55 13 18 13H6C5.45 13 5 13.45 5 14C5 14.55 5.45 15 6 15ZM6 9H18C18.55 9 19 8.55 19 8C19 7.45 18.55 7 18 7H6C5.45 7 5 7.45 5 8C5 8.55 5.45 9 6 9ZM5 2C5 2.55 5.45 3 6 3H18C18.55 3 19 2.55 19 2C19 1.45 18.55 1 18 1H6C5.45 1 5 1.45 5 2Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/textarea-buttons/button-icon-underline.svg b/src/assets/images/_sila/textarea-buttons/button-icon-underline.svg
new file mode 100644
index 00000000..61801b1b
--- /dev/null
+++ b/src/assets/images/_sila/textarea-buttons/button-icon-underline.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="18" viewBox="0 0 14 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7.79 13.95C10.82 13.56 13 10.84 13 7.79V1.25C13 0.56 12.44 0 11.75 0C11.06 0 10.5 0.56 10.5 1.25V7.9C10.5 9.57 9.37 11.09 7.73 11.42C5.48 11.89 3.5 10.17 3.5 8V1.25C3.5 0.56 2.94 0 2.25 0C1.56 0 1 0.56 1 1.25V8C1 11.57 4.13 14.42 7.79 13.95ZM0 17C0 17.55 0.45 18 1 18H13C13.55 18 14 17.55 14 17C14 16.45 13.55 16 13 16H1C0.45 16 0 16.45 0 17Z" fill="#626773"/>
+</svg>
diff --git a/src/assets/images/_sila/usage-icon.svg b/src/assets/images/_sila/usage-icon.svg
new file mode 100644
index 00000000..9fda1696
--- /dev/null
+++ b/src/assets/images/_sila/usage-icon.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.16321 0.102643C4.54537 -0.192399 6.29362 0.133249 7.39198 1.27964C7.98027 1.89366 8.2714 2.72271 8.40553 3.48547C8.53189 4.20407 8.52564 4.90096 8.47505 5.38722L15.8329 13.0669C16.0557 13.2994 16.0557 13.6764 15.8329 13.9089L14.0101 15.8115C13.7873 16.044 13.4261 16.044 13.2033 15.8115L5.70737 7.9877C4.77612 8.37143 2.93189 8.6634 1.52967 7.19986C0.171603 5.78239 0.192261 3.81534 0.401181 2.77598C0.496812 2.30021 1.03059 2.1886 1.32768 2.47483L3.32312 4.39732L4.68077 3.12199L2.86961 1.07409C2.59026 0.758221 2.70918 0.199563 3.16321 0.102643ZM3.68069 0.820729L5.37031 2.7312C5.58592 2.97499 5.56902 3.35569 5.33275 3.57764L3.70313 5.10844C3.48413 5.31417 3.15105 5.31198 2.93456 5.10339L1.08634 3.32274C0.981164 4.26701 1.11097 5.64009 2.06752 6.63848C3.20578 7.82653 4.75518 7.5583 5.516 7.21114C5.72564 7.11548 5.98261 7.15223 6.15778 7.33506L13.6067 15.1098L15.1606 13.4879L7.87306 5.88164C7.74401 5.74696 7.68786 5.56053 7.70995 5.3803C7.76124 4.96181 7.77604 4.3035 7.65739 3.62879C7.53814 2.95063 7.29165 2.29767 6.85413 1.84101C6.06616 1.01859 4.7991 0.691294 3.68069 0.820729ZM14.8253 0.944666L12.6624 1.54665L9.12165 5.24229L8.5838 4.68092L12.1607 0.947577C12.2317 0.8735 12.3201 0.820278 12.4171 0.793285L14.9247 0.0953439C15.3331 -0.0183267 15.714 0.354845 15.6311 0.787439L15.1319 3.39272C15.1098 3.50799 15.0555 3.61386 14.9759 3.69698L11.2134 7.624L10.6756 7.06263L14.3973 3.1781L14.8253 0.944666ZM5.12832 9.01333L2.74696 11.4988L4.46764 13.1451L7.25269 10.2382L7.79054 10.7996L4.748 13.9752L2.97515 15.8256C2.75918 16.051 2.41143 16.0589 2.18628 15.8435L0.184992 13.9287C-0.0544278 13.6997 -0.0625714 13.3085 0.16709 13.0688L1.92824 11.2306L4.59047 8.45196L5.12832 9.01333ZM2.20861 12.0607L3.92928 13.707L2.56605 15.1299L0.845376 13.4836L2.20861 12.0607Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/images/_sila/voltage-icon.svg b/src/assets/images/_sila/voltage-icon.svg
new file mode 100644
index 00000000..dce7dae8
--- /dev/null
+++ b/src/assets/images/_sila/voltage-icon.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M10.4778 0L8.95907 8.62681C8.72378 10.0579 7.46177 11.0974 5.8789 11.0974C4.3103 11.0974 3.41904 10.0579 3.65434 8.62681L5.17303 0H1.64367L0.0821938 8.91707C-0.452558 12.0087 1.65793 14 5.36554 14C9.05176 14 11.9038 12.0087 12.4385 8.91707L14 0H10.4778Z" fill="#E11717"/>
+</svg>
diff --git a/src/assets/styles/_obmc-sila.scss b/src/assets/styles/_obmc-sila.scss
index ea2507f0..1f8bc62b 100644
--- a/src/assets/styles/_obmc-sila.scss
+++ b/src/assets/styles/_obmc-sila.scss
@@ -4,3 +4,5 @@
// IBS BMC styles
@import "./bmc/_sila";
+@import "./bmc/_sila/helpers";
+@import "./bmc/_sila/custom";
diff --git a/src/assets/styles/bmc/_sila/custom/_alert.scss b/src/assets/styles/bmc/_sila/custom/_alert.scss
new file mode 100644
index 00000000..0e78ba64
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_alert.scss
@@ -0,0 +1,70 @@
+.alert {
+ display: flex;
+ padding: $spacer;
+ border-width: 0 0 0 3px;
+ color: gray("800");
+ margin-bottom: $spacer;
+
+ &.small {
+ padding: $spacer / 2;
+ font-size: 1rem;
+ }
+
+ .close {
+ font-weight: 300;
+ opacity: 1;
+ }
+
+ .alert-icon {
+ display: inline-flex;
+ align-items: flex-start;
+ margin-right: $spacer;
+ margin-bottom: $spacer;
+
+ @include media-breakpoint-up(sm) {
+ margin-bottom: 0;
+ }
+ }
+
+ .alert-content {
+ flex: 1 1 auto;
+ }
+
+ .alert-title {
+ margin-bottom: $spacer / 2;
+ }
+
+ .alert-msg {
+ p + p {
+ margin-bottom: $spacer;
+ }
+
+ p:last-of-type {
+ margin-bottom: 0;
+ }
+ }
+
+ &.alert-info {
+ border-left-color: theme-color("info");
+ background-color: theme-color-light("info");
+ fill: theme-color("info");
+ }
+
+ &.alert-success {
+ border-left-color: theme-color("success");
+ background-color: theme-color-light("success");
+ fill: theme-color("success");
+ }
+
+ &.alert-danger {
+ border-left-color: theme-color("danger");
+ background-color: theme-color-light("danger");
+ fill: theme-color("danger");
+ }
+
+ &.alert-warning {
+ border-left-color: theme-color("warning");
+ background-color: theme-color-light("warning");
+ fill: theme-color("warning");
+ }
+ } \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_badge.scss b/src/assets/styles/bmc/_sila/custom/_badge.scss
new file mode 100644
index 00000000..0b88b499
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_badge.scss
@@ -0,0 +1,21 @@
+.badge-pill {
+ // Need to explicitly set border-radius
+ // for pill variant because global $enable-rounded
+ // Bootstrap setting removes rounded pill style
+ border-radius: 10rem;
+ fill: currentColor;
+ font-weight: 400;
+ line-height: 1.5;
+ display: inline-flex;
+ .close {
+ font-size: 1em;
+ margin-left: $spacer/2;
+ font-weight: inherit;
+ color: inherit;
+ }
+}
+
+.badge-primary {
+ background-color: theme-color-light("info");
+ color: theme-color("info");
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_base.scss b/src/assets/styles/bmc/_sila/custom/_base.scss
new file mode 100644
index 00000000..1e3abf71
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_base.scss
@@ -0,0 +1,295 @@
+body {
+ overflow-y: hidden;
+}
+
+.scroll-container {
+ overflow-y: overlay;
+ height: calc(100vh - #{$header-height});
+ &::-webkit-scrollbar {
+ margin-top: $header-height;
+ position: absolute;
+ width: 10px;
+ }
+ &::-webkit-scrollbar-thumb {
+ margin-top: $header-height;
+ border: 4px solid transparent;
+ background: $faint-secondary-primary-20;
+ border-radius: 16px;
+ background-clip: content-box;
+ }
+}
+
+@-moz-document url-prefix() {
+ #logs-table-wrapper div,
+ #table-event-logs div,
+ .scroll-container,
+ .nav-container {
+ overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: $faint-secondary-primary-20 transparent;
+}
+}
+
+.pointer {
+ cursor: pointer;
+}
+
+.icon-edit,
+.icon-options {
+ display: block;
+ margin: 2px 12px 0 auto;
+ cursor: pointer;
+}
+
+h3,
+.h3 {
+ font-size: 1.75rem;
+ font-weight: 400;
+ line-height: 1.2857;
+}
+
+h4,
+.h4 {
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.3;
+}
+
+h5,
+.h5 {
+ font-size: 1rem;
+ font-weight: 500;
+ line-height: 1.375;
+}
+
+h6,
+.h6 {
+ font-size: 0.875rem;
+ font-weight: 500;
+ line-height: 1.2857;
+}
+
+.regular-12px {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-primary;
+ &.red {
+ color: $red-brand-primary
+ }
+ &.underline {
+ text-decoration: underline;
+ cursor: pointer;
+ }
+ &.tretiatry {
+ color: $text-tretiatry;
+ }
+ &.quaternary {
+ color: $text-quaternary;
+ }
+}
+
+.light-12px {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 300;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+}
+
+.caption-12px {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-tretiatry;
+}
+
+
+.semi-bold-12px {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+}
+
+.semi-bold-12px__caps {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ text-transform: uppercase;
+ color: $text-primary;
+ &:hover {
+ color: $text-primary;
+ }
+ &.tretiatry {
+ color: $text-tretiatry !important;
+ }
+}
+
+.bold-12px__caps {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+ text-transform: uppercase;
+}
+
+.medium-12px {
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-primary;
+}
+
+.modal-body,
+#page-network dd,
+.page-inventory dd,
+.custom-radio,
+.regular-14px {
+ font-family: 'Inter', sans-serif;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+}
+
+#page-network dt,
+.page-inventory dt,
+.semi-bold-14px {
+ font-family: 'Inter', sans-serif;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 20px;
+ color: $text-primary;
+}
+
+#date-time dd,
+.regular-16px {
+ font-family: 'Inter', sans-serif;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 20px;
+ letter-spacing: 0em;
+ text-align: left;
+}
+
+#date-time dt,
+.semi-bold-16px {
+ font-family: 'Inter', sans-serif;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 20px;
+ color: $text-primary;
+}
+
+.medium-16px {
+ font-family: 'Inter', sans-serif;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-primary;
+}
+
+.bold-16px {
+ font-family: 'Inter', sans-serif;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: 20px;
+ letter-spacing: 0em;
+ text-align: left;
+}
+
+.bold-16px__caps {
+ font-family: 'Inter', sans-serif;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: 20px;
+ letter-spacing: 0em;
+ text-align: left;
+ text-transform: uppercase;
+ color: $text-secondary;
+}
+
+h2, .h2,
+.modal-title,
+.semi-bold-20px {
+ font-family: 'Inter', sans-serif;
+ font-size: 20px !important;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 24px;
+ letter-spacing: 0em;
+}
+
+.bold-24px {
+ font-family: 'Inter', sans-serif;
+ font-style: normal;
+ font-weight: bold;
+ font-weight: 700;
+ font-size: 24px;
+ line-height: 28px;
+ color: $text-primary;
+ margin: 0;
+}
+
+.auth-description {
+ font-family: 'Inter', sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 12px;
+ line-height: 16px;
+ color: $login-page-description-color;
+}
+
+.icon-expand {
+ height: 1.2rem;
+ width: 1.2rem;
+ float: right;
+ transition: 0.3s linear;
+ margin: $spacer/4 35px 0 auto;
+}
+
+.icon-expand-right {
+ height: 1.2rem;
+ width: 1.2rem;
+ float: right;
+ transition: 0.3s linear;
+ margin: $spacer/4 5px 0 0;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_bootstrap-grid.scss b/src/assets/styles/bmc/_sila/custom/_bootstrap-grid.scss
new file mode 100644
index 00000000..7ad7c81b
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_bootstrap-grid.scss
@@ -0,0 +1,8 @@
+.container-xl {
+ // Fluid layout container class sets 100%
+ // width until xl breakpoint. Once a max-width
+ // is set, setting the left margin to 0 is needed
+ // so the content doesn't center align
+ // https://bootstrap-vue.org/docs/components/layout#fluid-width-container
+ margin-left: 0;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_buttons.scss b/src/assets/styles/bmc/_sila/custom/_buttons.scss
new file mode 100644
index 00000000..04a97c21
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_buttons.scss
@@ -0,0 +1,222 @@
+.btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: space-around;
+ height: 36px;
+ &:disabled {
+ color: gray("600");
+ fill: currentColor;
+ box-shadow: none !important;
+ &:not(.btn-link) {
+ border-color: gray("400");
+ background-color: gray("400");
+ }
+ }
+ &svg {
+ padding-right: 8px;
+ }
+}
+
+.btn-md {
+ width: 220px;
+ height: 36px;
+}
+
+.btn-lg {
+ width: 290px;
+ height: 36px;
+}
+
+.btn-danger,
+.btn-primary {
+ background-color: $red-brand-primary;
+ border-radius: 8px;
+ border: none;
+ box-shadow: 1px 2px 2px -1px rgb(79 37 37 / 40%) inset;
+ font-family: 'Inter', sans-serif;
+ font-style: normal;
+ font-weight: 600;
+ font-size: 16px;
+ line-height: 20px;
+ &:hover {
+ background-color: $red-brand-primary-hover;
+ }
+ &:not(:disabled):not(.disabled):active:focus,
+ &:focus-visible {
+ border: none;
+ box-shadow: none;
+ background-color: $red-brand-primary-click;
+ }
+ &:focus {
+ border: none;
+ box-shadow: 0px 0px 0px 4px rgba(225, 23, 23, 0.5);
+ background-color: $red-brand-primary;
+ }
+ &:active {
+ border: none;
+ box-shadow: none;
+ background-color: $red-brand-primary;
+ }
+}
+
+.btn-secondary,
+.modal-header button {
+ background-color: $faint-secondary-primary-5;
+ color: $red-brand-primary;
+ border-radius: 8px;
+ border: none;
+ box-shadow: 1px 2px 4px -1px rgb(79 37 37 / 10%) inset;
+ font-family: 'Inter', sans-serif;
+ font-style: normal;
+ font-weight: 600;
+ font-size: 16px;
+ line-height: 20px;
+ &:hover {
+ background-color: $faint-secondary-primary-5-hover;
+ color: $red-brand-primary;
+ }
+ &:focus {
+ border: none;
+ box-shadow: 0px 0px 0px 4px rgba(225, 23, 23, 0.5);
+ color: $red-brand-primary;
+ background-color: $faint-secondary-primary-5;
+ }
+ &:not(:disabled):not(.disabled):active:focus,
+ &:focus-visible {
+ border: none;
+ box-shadow: none;
+ color: $red-brand-primary;
+ background-color: $faint-secondary-primary-20;
+ }
+ // style for standard close button in modal and popups
+ &.close {
+ width: 32px;
+ height: 22px;
+ padding: 0px;
+ margin: 0px;
+ background-color: $faint-secondary-primary-1;
+ border: 1px solid $faint-secondary-primary-10;
+ border-radius: 7px;
+ &:hover {
+ background-color: $faint-secondary-primary-2;
+ }
+ }
+}
+
+.btn-unstyled {
+ border: none;
+ &:focus {
+ box-shadow: none;
+ }
+ &:active {
+ box-shadow: none;
+ }
+}
+
+.btn-popover {
+ border: none;
+ color: $red-brand-primary;
+ height: 28px;
+ border-radius: 8px;
+ font-weight: 500;
+ font-size: 12px;
+ transition: ease-in 0.2s;
+ &:hover {
+ color: $white;
+ transition: ease-in 0.2s;
+ }
+ &:focus {
+ box-shadow: none;
+ }
+ &:active {
+ box-shadow: none;
+ }
+ &.selected-unit-button {
+ transition: ease-in 0.2s;
+ color: $white;
+ }
+ &.selected-choice-button {
+ transition: ease-in 0.2s;
+ color: $white;
+ }
+}
+
+.btn-toogle-popover {
+ justify-content: flex-start;
+ width: 25px;
+ height: 16px;
+ padding: 0;
+ &:focus {
+ box-shadow: none;
+ }
+ &:active {
+ box-shadow: none;
+ }
+}
+
+.btn-link {
+ color: $text-primary;
+ text-decoration: none !important;
+ &:hover {
+ background-color: gray("200");
+ color: theme-color("primary");
+ }
+ &:active {
+ background-color: gray("300");
+ }
+ &:disabled {
+ box-shadow: $btn-focus-box-shadow;
+ }
+ &.collapsed {
+ .icon-expand {
+ transform: rotate(180deg);
+ transition: 0.3s linear;
+ }
+ .icon-expand-right {
+ transform: rotate(180deg);
+ transition: 0.3s linear;
+ }
+ }
+}
+
+// Icon only buttons
+.btn-icon-only svg {
+ margin-right: 0;
+}
+
+// Datepicker, clear search and Password toggle buttons
+.input-action-btn,
+.btn-datepicker {
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: $zindex-dropdown + 1;
+}
+
+// Contain input buttons within input
+.btn-datepicker .dropdown-toggle,
+.input-action-btn {
+ padding: 7px;
+ margin: 1px;
+}
+
+.collapse-button {
+ height: 56px;
+ width: 100%;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ gap: 8px;
+ &:active,
+ &:focus {
+ box-shadow: none;
+ }
+ &:hover {
+ color: $text-primary;
+ }
+}
+
+.table-toolbar-button {
+ width: 220px;
+ height: 36px;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_calendar.scss b/src/assets/styles/bmc/_sila/custom/_calendar.scss
new file mode 100644
index 00000000..0307a6ce
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_calendar.scss
@@ -0,0 +1,17 @@
+.b-calendar-nav {
+ .btn {
+ &:hover {
+ background: none;
+ color: theme-color("dark");
+ }
+ }
+}
+
+.b-calendar-grid .btn {
+ display: inline-block;
+}
+
+// Date picker focus
+.b-calendar .b-calendar-grid {
+ padding: 6px 12px;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_card.scss b/src/assets/styles/bmc/_sila/custom/_card.scss
new file mode 100644
index 00000000..db8d076b
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_card.scss
@@ -0,0 +1,19 @@
+.card {
+ .bg-success {
+ background-color: theme-color-light('success')!important;
+ }
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 16px;
+}
+
+.card-header {
+ border-radius: 15px 15px 0 0;
+ background-color: $faint-secondary-primary-10 !important;
+ color: $text-primary !important;
+ .nav-tabs .nav-link {
+ border-radius: 10px 10px 0 0 ;
+ &:hover {
+ background-color: $faint-secondary-primary-2;
+ }
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_dropdown.scss b/src/assets/styles/bmc/_sila/custom/_dropdown.scss
new file mode 100644
index 00000000..1ea80d9f
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_dropdown.scss
@@ -0,0 +1,36 @@
+// Make calendar visible over the table
+.dropdown-menu {
+ border-radius: 5px;
+ z-index: $zindex-dropdown + 1;
+ padding: 0;
+ a {
+ border-radius: 5px;
+ }
+}
+.dropdown-item {
+ padding-left: $spacer/4;
+ margin-top: -1 * $spacer/4;
+ background-color: $white;
+}
+// .b-dropdown-form {
+// padding: $spacer/2;
+// .form-group {
+// margin-bottom: $spacer/2;
+// }
+// }
+// Table filter dropdown clear button style
+.table-filter {
+ .dropdown-item {
+ &:hover {
+ background-color: gray("200");
+ }
+ &:active {
+ background-color: gray("300");
+ }
+ &:focus {
+ outline: none;
+ background-color: transparent;
+ box-shadow: inset 0 0 0 2px theme-color("primary");
+ }
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_forms.scss b/src/assets/styles/bmc/_sila/custom/_forms.scss
new file mode 100644
index 00000000..bf69795a
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_forms.scss
@@ -0,0 +1,273 @@
+// Helper text
+.form-text {
+ font-size: $form-label-font-size;
+ line-height: $form-line-height;
+ margin-top: -$spacer / 4;
+ margin-bottom: $spacer / 2;
+ color: gray("700")!important;
+}
+
+// Legend label
+.col-form-label {
+ color: gray("800");
+ font-size: $form-label-font-size;
+ line-height: $form-line-height;
+}
+
+.custom-select,
+.form-control,
+.input-group-text {
+ // border-color: gray("500") !important;
+ background-color: gray("100");
+}
+
+.custom-select,
+.form-control {
+ // &:active {
+ // border: 1px solid $primary!important;
+ // }
+ // &:focus {
+ // color: theme-color("dark");
+ // background-color: gray("100");
+ // box-shadow: inset 0 0 0 3px gray("100"), inset 0 0 0 5px $primary !important;
+ // }
+ &:disabled {
+ background-color: gray("400");
+ color: gray("600");
+ }
+ &.is-invalid,
+ &:invalid {
+ border: 1px solid theme-color("danger") !important;
+ }
+}
+
+.form-control::-webkit-outer-spin-button,
+.form-control::-webkit-inner-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+.form-control[type='number'] {
+ -moz-appearance: textfield;
+}
+
+// .custom-select,
+// .custom-control-label,
+.form-control {
+ border-radius: 8px;
+ border: none;
+ background-color: $faint-secondary-primary-5;
+ &:hover {
+ background-color: $faint-secondary-primary-5-hover;
+ }
+}
+
+.select-per-page {
+ padding: 0 0 0 5px;
+ width: 146px !important;
+ height: 24px;
+ background-color: transparent;
+ border: 1px solid $on-surface-tretiatry;
+ border-radius: 4px;
+ background-image: url('~@/assets/images/_sila/icon-chevron.svg');
+}
+
+// Inverted form colors
+.form-background {
+ background-color: none;
+ .custom-select,
+ .form-control {
+ border-radius: 8px;
+ border: none;
+ background-color: $faint-secondary-primary-5;
+ &:hover {
+ // opacity: 0.1;
+ background-color: $faint-secondary-primary-5-hover;
+ }
+ &:focus {
+ border: 1px solid gray("400");
+ }
+ &:disabled {
+ background-color: gray("400");
+ color: gray("600");
+ }
+ &.is-valid {
+ border: 1px solid gray("400");
+ }
+ }
+}
+
+.invalid-feedback {
+ font-size: $form-label-font-size;
+ line-height: $form-line-height;
+}
+
+.custom-checkbox {
+ line-height: 23px;
+}
+
+.custom-radio {
+ line-height: 23px !important;
+}
+
+.custom-checkbox ::before {
+ box-shadow: none !important;
+ border: 2px solid $on-surface-secondary;
+ background-color: #fff;
+ border-radius: 3px;
+}
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after,
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before,
+.custom-control-input:checked ~ .custom-control-label::before {
+ border-radius: 3px;
+ background-color: $red-brand-primary;
+ border-color: $red-brand-primary;
+ cursor: pointer;
+ &:focus {
+ box-shadow: none !important;
+ }
+}
+
+.custom-control {
+ .custom-control-input[disabled=disabled] {
+ & + .custom-control-label {
+ // Disabled label for checkbox, radio,
+ // switch bootstrap form components
+ color: gray("600")!important;
+ }
+ }
+}
+
+.custom-switch {
+ width: 28px;
+ height: 16px;
+}
+
+.custom-switch
+.custom-control-input:focus ~ .custom-control-label::before {
+ box-shadow: none;
+}
+
+.custom-switch
+.custom-control-input ~ .custom-control-label::after {
+ border: 1px solid $faint-secondary-primary-20;
+ background: $white;
+}
+
+.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
+ border-color: $faint-secondary-primary-20;
+}
+
+.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
+ background-color: rgba(4, 10, 15, 0.3);
+ border-color: $faint-secondary-primary-20;
+}
+
+.custom-switch
+.custom-control-input ~ .custom-control-label::before {
+ border: 1px solid $faint-secondary-primary-20;
+ background: rgba(4, 10, 15, 0.3);
+}
+
+.custom-switch
+.custom-control-input:checked ~ .custom-control-label::before {
+ background: $red-brand-primary;
+ border: 1px solid $faint-secondary-primary-20;
+ border-radius: 8px;
+}
+
+.custom-control-label::after {
+ cursor: pointer;
+}
+
+.b-form-tag-remove {
+ // X button to remove tag
+ font-weight: normal;
+}
+
+.b-form-tags-button {
+ // Add button inside input field
+ white-space: nowrap;
+ margin-right: -$spacer;
+ &.btn-link-primary {
+ color: theme-color("primary");
+ fill: currentColor;
+ }
+}
+
+// Form validation icon
+ .form-control.is-invalid,
+ .form-control.is-valid {
+ background-position: right 1rem bottom 50%;
+ }
+
+// Form validation icon with datepicker or password toggle icon
+.form-control-with-button {
+ &.is-invalid,
+ &.is-valid {
+ background-position: right 3rem bottom 50%;
+ }
+}
+
+// Global style progress bar
+.progress {
+ width: 120px;
+ height: 8px;
+ border-radius: 4px;
+ background-color: $faint-secondary-primary-10;
+}
+
+.progress-bar {
+ background-color: $red-brand-primary;
+ border-radius: 4px;
+}
+
+.progress_bar_percent {
+ color: $red-brand-primary;
+}
+
+.cb label{
+ padding-top: 4px;
+}
+.system-control__radio label {
+ padding-top: 4px;
+}
+
+//radio buttons style
+ .custom-radio ::before {
+ border: 1px solid $red-brand-primary;
+ background-color: #fff;
+ border-radius: 100%;
+}
+
+.custom-radio
+.custom-control-input:checked
+~ .custom-control-label::before {
+ border: 2px solid $red-brand-primary;
+ background-color: $red-brand-primary;
+ box-shadow: 0px 0px 0px 2.4px $white inset;
+ border-radius: 100%;
+}
+
+ .custom-radio
+ .custom-control-input:hover
+ ~ .custom-control-label::before {
+ background-color: $red-brand-primary-hover !important;
+ box-shadow: 0px 0px 0px 2.4px $white inset;
+ border-color: $red-brand-primary-hover;
+}
+
+.custom-radio
+.custom-control-input:checked
+~ .custom-control-label::after {
+ background-image: none !important;
+ border-radius: 100%;
+}
+
+.custom-radio
+.custom-control-input:active
+~ .custom-control-label::before {
+ background-color: $red-brand-primary-active !important;
+ box-shadow: 0px 0px 0px 2.4px $white inset;
+ border-color: $red-brand-primary-active;
+}
diff --git a/src/assets/styles/bmc/_sila/custom/_index.scss b/src/assets/styles/bmc/_sila/custom/_index.scss
new file mode 100644
index 00000000..40995ce9
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_index.scss
@@ -0,0 +1,20 @@
+// OpenBMC Global Style Overrides of out of the box
+// Bootstrap styles
+@import "./alert";
+@import "./badge";
+@import "./base";
+@import "./bootstrap-grid";
+@import "./buttons";
+@import "./calendar";
+@import "./card";
+@import "./dropdown";
+@import "./forms";
+@import "./kvm";
+@import "./modal";
+@import "./pagination";
+@import "./section-divider";
+@import "./sol";
+@import "./tables";
+@import "./toasts";
+@import "./popover";
+@import "./logs"; \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_kvm.scss b/src/assets/styles/bmc/_sila/custom/_kvm.scss
new file mode 100644
index 00000000..74b61c7e
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_kvm.scss
@@ -0,0 +1,16 @@
+#terminal-kvm {
+ height: 100vw;
+ display: flex;
+ &.full-window {
+ height: calc(100vh - 80px);
+ }
+ div:nth-child(1) {
+ background: transparent !important;
+ display: block !important;
+ overflow: hidden !important;
+ canvas {
+ max-height: 579px;
+ max-width: 740px;
+ }
+ }
+}
diff --git a/src/assets/styles/bmc/_sila/custom/_logs.scss b/src/assets/styles/bmc/_sila/custom/_logs.scss
new file mode 100644
index 00000000..237205c6
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_logs.scss
@@ -0,0 +1,78 @@
+.logs-section .table.b-table > thead > tr > [aria-sort='ascending'] {
+ background-image: url('~@/assets/images/_sila/event-logs/sort-icon-rotate.svg');
+}
+
+.logs-section .table.b-table > thead > tr > [aria-sort='descending'],
+.table.b-table > thead > tr > [aria-sort='none'] {
+ background-image: url('~@/assets/images/_sila/event-logs/sort-icon.svg');
+}
+
+.logs-section .b-table-sort-icon-left {
+ background-size: 15px !important;
+}
+
+.logs-head-container {
+ position: absolute;
+ width: 50%;
+ top: calc(#{$header-height});
+ right: 0px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-end;
+ align-items: baseline;
+ gap: 6px;
+ z-index: 1001;
+}
+
+#logs-table-wrapper div {
+ max-height: calc(100vh - 194px - #{$header-height});
+}
+
+#logs-table,
+#table-event-logs {
+ margin: 0 !important;
+}
+
+// scrollbar styles
+#logs-table-wrapper div,
+#table-event-logs div {
+ overflow-y: overlay;
+ &::-webkit-scrollbar {
+ position: absolute;
+ width: 10px;
+ }
+ &::-webkit-scrollbar-thumb {
+ border: 4px solid transparent;
+ border-top: 52px solid transparent;
+ background: $faint-secondary-primary-20;
+ border-radius: 16px;
+ background-clip: content-box;
+ }
+}
+
+.logs-table__th {
+ background-color: #f8f8f8 !important;
+ border-bottom: 1px solid $faint-secondary-primary-20 !important;
+ border-top: 1px solid $faint-secondary-primary-20 !important;
+ color: $text-primary !important;
+}
+
+.logs-table__td {
+ border-bottom: 1px solid $faint-secondary-primary-10 !important;
+ height: 64px;
+}
+
+.logs-pagination-container {
+ width: calc(100% - #{$navigation-width});
+ height: $toolbar-height;
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ box-shadow: 0px -4px 12px rgba(0, 0, 0, 0.06);
+ z-index: $zindex-dropdown;
+ background-color: $white;
+}
+
+.table-pagination-select {
+ line-height: 1.8rem;
+}
diff --git a/src/assets/styles/bmc/_sila/custom/_modal.scss b/src/assets/styles/bmc/_sila/custom/_modal.scss
new file mode 100644
index 00000000..803d95d8
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_modal.scss
@@ -0,0 +1,69 @@
+.modal-dialog {
+ margin: 25vh auto 0;
+}
+
+.modal-content {
+ border-radius: 16px;
+}
+
+.modal-header {
+ align-items: center;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ .close {
+ font-weight: normal;
+ color: theme-color("dark");
+ opacity: 1;
+ }
+}
+
+.modal-body {
+ display: flex;
+ justify-content: flex-start;
+}
+
+.modal-footer {
+ border-top: 1px solid $faint-secondary-primary-10;
+}
+
+#modal-reset .modal-body {
+ flex-direction: column;
+}
+
+#generate-csr .custom-select,
+#upload-certificate .custom-select,
+#modal-user .custom-select {
+ background-color: transparent;
+ border: 1px solid $on-surface-tretiatry;
+ border-radius: 4px;
+ background-image: url('~@/assets/images/_sila/icon-chevron.svg');
+}
+
+// file-input-modal
+.modal-file-body {
+ display: flex;
+ padding: 0;
+ justify-content: center;
+}
+
+.file-input_container > .custom-file {
+ width: 432px;
+ height: 357px;
+}
+
+.custom-file-input ~ .custom-file-label {
+ background-color: transparent;
+ border: 1px dashed rgba(12, 28, 41, 0.6);
+ box-sizing: border-box;
+ border-radius: 8px;
+ width: 432px;
+ height: 357px;
+ display: flex;
+ align-items: center;
+ text-align: center;
+ white-space: normal;
+ justify-content: center;
+}
+
+.custom-file-input ~ .custom-file-label::after {
+ display: none;
+}
diff --git a/src/assets/styles/bmc/_sila/custom/_pagination.scss b/src/assets/styles/bmc/_sila/custom/_pagination.scss
new file mode 100644
index 00000000..bce593ef
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_pagination.scss
@@ -0,0 +1,34 @@
+.table-pagination-select {
+ display: flex;
+ flex-direction: row-reverse;
+ justify-content: flex-end;
+ select {
+ width: fit-content;
+ }
+ label {
+ margin-left: $spacer;
+ line-height: $spacer * 2;
+ }
+}
+
+.b-pagination {
+ @include media-breakpoint-up(sm) {
+ justify-content: flex-end;
+ }
+
+ .page-link {
+ border: transparent;
+ &:hover {
+ background-color: transparent;
+ }
+ &:focus {
+ box-shadow: none;
+ }
+ }
+ .page-item.active button {
+ color: theme-color("dark");
+ background-color: color("white");
+ border-color: transparent;
+ box-shadow: inset 0px -3px theme-color("primary");
+ }
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_popover.scss b/src/assets/styles/bmc/_sila/custom/_popover.scss
new file mode 100644
index 00000000..8611fb0e
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_popover.scss
@@ -0,0 +1,72 @@
+.b-popover {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ background: $white;
+ box-shadow: 0px -4px 12px rgba(0, 0, 0, 0.05);
+ border-radius: 4px;
+ position: relative;
+ max-width: 400px;
+ width: 400px;
+ height: auto;
+ will-change: unset !important;
+}
+
+.popover-header {
+ background-color: transparent;
+ border: none;
+ padding: 24px 0px 0px 24px;
+ width: 400px;
+}
+
+.arrow {
+ visibility: hidden;
+}
+
+.popover-heigth-100 {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 6px;
+ background: $white;
+ border: 1px solid $faint-secondary-primary-10;
+ box-shadow: 0px -4px 12px rgba(0, 0, 0, 0.05);
+ padding: 5px;
+ border-radius: 8px;
+ max-width: 100px;
+}
+
+.popover-heigth-100 .popover-body {
+ padding: 0px;
+
+}
+
+.apply-reload-popover {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 6px;
+ background: $white;
+ border: 1px solid $faint-secondary-primary-10;
+ box-shadow: 0px -4px 12px rgba(0, 0, 0, 0.05);
+ padding: 5px;
+ border-radius: 8px;
+ max-width: 250px;
+}
+
+.apply-reload-popover .popover-body {
+ padding: 0px;
+}
+
+.boot-popover {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 6px;
+ background: $white;
+ border: 1px solid $faint-secondary-primary-10;
+ box-shadow: 0px -4px 12px rgba(0, 0, 0, 0.05);
+ padding: 5px;
+ border-radius: 8px;
+ max-width: 200px;
+}
diff --git a/src/assets/styles/bmc/_sila/custom/_section-divider.scss b/src/assets/styles/bmc/_sila/custom/_section-divider.scss
new file mode 100644
index 00000000..79b14476
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_section-divider.scss
@@ -0,0 +1,7 @@
+.section-divider {
+ border-bottom: 1px solid gray('400');
+ }
+
+.page-collapse-decorator {
+ border-bottom: 1px solid $faint-secondary-primary-10;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_sol.scss b/src/assets/styles/bmc/_sila/custom/_sol.scss
new file mode 100644
index 00000000..6987cf79
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_sol.scss
@@ -0,0 +1,3 @@
+#terminal .xterm .xterm-viewport {
+ overflow: auto;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/custom/_tables.scss b/src/assets/styles/bmc/_sila/custom/_tables.scss
new file mode 100644
index 00000000..23baf757
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_tables.scss
@@ -0,0 +1,409 @@
+.table {
+ position: relative;
+ z-index: $zindex-dropdown;
+ border-radius: 10px;
+
+ td {
+ vertical-align: middle;
+
+ // Table action buttons
+ .btn-link {
+ height: 20px;
+ border-radius: 2px;
+ padding: 4px !important;
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+ }
+ }
+
+ // thead-light added for specificity
+ .thead-light th {
+ text-align: left !important;
+ vertical-align: middle;
+ border-bottom: 1px solid gray("300");
+ &:focus {
+ outline: none;
+ }
+ }
+
+ .status-icon svg {
+ width: 1.2rem;
+ height: auto;
+ }
+
+ .b-table-has-details {
+ td {
+ border-bottom: none;
+ }
+ .table-row-expand svg {
+ transform: rotate(180deg);
+ }
+ }
+
+ .b-table-details {
+ background-color: theme-color("light");
+ td {
+ padding: 0px 16px 16px 16px;
+ }
+ dl {
+ margin: 0;
+ }
+ dt {
+ float: left;
+ clear: left;
+ margin-right: $spacer / 2;
+ }
+ dd {
+ line-height: 1.2
+ }
+ }
+
+ .table-row-expand {
+ width: 50px;
+ .btn {
+ padding: 0;
+ width: 27px;
+ }
+ }
+ .b-table-sort-icon-left {
+ padding-left: calc(1.2rem + 0.65em) !important;
+ &:focus {
+ outline: none;
+ box-shadow: inset 0 0 0 2px theme-color('primary') !important;
+ }
+ &:hover {
+ background-color: theme-color-dark('light');
+ }
+ }
+}
+
+.b-table-sticky-header td {
+ border-top: none;
+}
+
+// Table stacked style for small screen only
+@include media-breakpoint-down(xs) {
+ .b-table-stacked-sm {
+ border: 1px solid gray("300");
+
+ tr {
+
+ &:not(:first-child) > td[aria-colindex='1'] {
+ padding-top: 0.625rem;
+ }
+
+ &:not(.b-table-empty-row) {
+ position: relative; // Restrict background color to get zebra striping for the row
+
+ &::before,
+ &::after {
+ position: absolute;
+ top: 0;
+ height: 100%;
+ z-index: -1;
+ }
+
+ &:before {
+ content: '';
+ background-color: gray("200");
+ width: 40%;
+ border-right: 1px solid gray("300");
+ }
+
+ &:after {
+ content: '';
+ right: 0;
+ width: 60%;
+ }
+
+ &:nth-child(even)::after {
+ background-color: gray("100"); // Zebra striping for the row
+ }
+ }
+
+ td {
+ border: 0;
+ padding: 0.75rem;
+ text-align: left !important;
+
+ &:last-of-type {
+ border-right: 0;
+ }
+ }
+ }
+ }
+
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] {
+ &::before {
+ text-align: left;
+ padding-left: $spacer /2;
+ }
+
+ > div {
+ padding-left: 1rem;
+ }
+ }
+}
+
+.b-table-details > td {
+ padding: 0px !important;
+}
+
+.indicators-Critical {
+ color: $indicators-errors !important;
+}
+
+.indicators-Warning {
+ color: $indicators-warning !important;
+}
+
+.indicators-OK {
+ color: $indicators-succes !important;
+}
+
+.bootstrap-table__section {
+ position: relative;
+ margin: 16px 2rem 24px 2rem;
+ width: 90%;
+}
+// 1 //
+.bootstrap-table {
+ border-top: none !important;
+ border: 1px solid rgba(26, 62, 91, 0.1);
+ background-color: $faint-secondary-primary-5;
+}
+
+// style for rounded tables
+// add style for page ID
+#page-inventory table,
+#page-system-network table,
+#page-network table,
+#page-bmc-settings table,
+#page-memory-specification table,
+#page-processors table,
+// add style for class
+#main-content .table-rounded {
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
+ border: 1px solid rgba(26, 62, 91, 0.3);
+ background-color: none;
+
+ tr {
+ border-radius: 10px 10px 0 0;
+ -webkit-border-radius: 10px 10px 0 0;
+ -moz-border-radius: 10px 10px 0 0;
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-primary;
+ &:hover {
+ background-color: $faint-secondary-primary-2-hover;
+ }
+ &.b-table-details:hover {
+ background-color: transparent;
+ }
+ }
+
+ th {
+ border-top: none;
+ border-bottom: none;
+ text-transform: uppercase;
+ border-left: 1px solid rgba(26, 62, 91, 0.3);
+ background-color: $faint-secondary-primary-10 !important;
+ color: $text-primary !important;
+ &:first-child {
+ border-left: none;
+ border-radius: 10px 0 0 0;
+ }
+ &:last-child {
+ border-right: none;
+ border-radius: 0 10px 0 0;
+ }
+ }
+
+ td {
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+ }
+}
+.table-network__icon {
+ max-width: 20%;
+ margin: 0 5px 0 auto !important;
+}
+
+// stripes table //
+#main-content .table-stripes {
+ border-top: none !important;
+ border: 1px solid rgba(26, 62, 91, 0.1);
+ background-color: $faint-secondary-primary-5;
+ tr:nth-of-type(even) {
+ background-color: rgb(255 255 255);
+ }
+ th {
+ border-top: none;
+ display: none;
+ &:first-child {
+ border-top: none;
+ }
+ &:last-child {
+ border-top: none;
+ }
+ }
+
+ td {
+ border-top: 1px solid rgba(26, 62, 91, 0.1);
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+ &:first-child {
+ width: 70%;
+ }
+ &:first-child {
+ border-right: 1px solid rgba(26, 62, 91, 0.1);
+ }
+ .col > .custom-switch {
+ padding-top: 5px;
+ margin: -10px 0 0 auto;
+ }
+ }
+}
+
+// table accessory //
+#main-content .table-accessory,
+#main-content .table-firmware {
+
+ th {
+ // padding: 10px 5px !important;
+ background-color: transparent !important;
+ color: $text-primary !important;
+ border-top: none !important;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ }
+
+ td {
+ padding: 5px !important;
+ border-top: none !important;
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 300;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+ }
+}
+#main-content .table-accessory{
+ th {
+ padding: 10px 5px !important;
+ }
+}
+.bootstrap-table__section
+ .table.b-table
+ > thead
+ > tr
+ > [aria-sort='ascending'] {
+ background-image: url('~@/assets/images/_sila/event-logs/sort-icon-rotate.svg');
+}
+
+.bootstrap-table__section
+ .table.b-table
+ > thead
+ > tr
+ > [aria-sort='descending'],
+.table.b-table > thead > tr > [aria-sort='none'] {
+ background-image: url('~@/assets/images/_sila/event-logs/sort-icon.svg');
+}
+
+// table analytical //
+#main-content .table-analytical {
+ border: 1px solid rgba(26, 62, 91, 0.3);
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ tr {
+ border-top: none !important;
+ border-radius: 0 0 0 0;
+ -webkit-border-radius: 0 0 0 0;
+ -moz-border-radius: 0 0 0 0;
+ &:hover {
+ background-color: $faint-secondary-primary-2-hover;
+ }
+ &.b-table-details:hover {
+ background-color: transparent;
+ }
+ }
+
+ th {
+ border-top: none !important;
+ border-bottom: 1px solid rgba(26, 62, 91, 0.3) !important;
+ background-color: $white !important;
+ color: $text-primary !important;
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ text-transform: uppercase;
+ color: $text-primary;
+ &:first-child {
+ border-radius: 4px 0 0 0;
+ -webkit-border-radius: 4px 0 0 0;
+ -moz-border-radius: 4px 0 0 0;
+ }
+ &:last-child {
+ border-radius: 0 4px 0 0;
+ -webkit-border-radius: 0 4px 0 0;
+ -moz-border-radius: 0 4px 0 0;
+ }
+ }
+
+ td {
+ border-top: none !important;
+ padding: 10px !important;
+ border-radius: 0;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ // font styles
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 16px;
+ letter-spacing: 0em;
+ text-align: left;
+ color: $text-secondary;
+ }
+}
diff --git a/src/assets/styles/bmc/_sila/custom/_toasts.scss b/src/assets/styles/bmc/_sila/custom/_toasts.scss
new file mode 100644
index 00000000..a3480fda
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/custom/_toasts.scss
@@ -0,0 +1,61 @@
+.b-toaster {
+ top: 95px!important; // make sure toasts do not hide top header
+}
+
+// Toast component and status icon style
+.toast {
+ padding: $spacer/2 $spacer/2 $spacer/2 $spacer+2;
+ border-width: 0 0 0 3px;
+ box-shadow: $box-shadow;
+ .close {
+ font-weight: 300;
+ opacity: 1;
+ }
+}
+
+.toast-header {
+ display: flex;
+ align-items: flex-start;
+ background-color: inherit!important; //override specificity
+ border: none;
+ color: theme-color("dark")!important; //override specificity
+ padding-bottom: 0;
+}
+
+.toast-icon {
+ display: flex;
+ margin-right: 1rem;
+
+ svg {
+ margin-left: -2.5rem;
+ }
+
+ + .close {
+ line-height: .9;
+ }
+}
+
+.toast-body {
+ color: theme-color("dark");
+ padding-top: 0;
+}
+
+.b-toast-success .toast {
+ border-left-color: theme-color("success")!important;
+ background-color: theme-color-light("success")!important;
+}
+
+.b-toast-info .toast {
+ border-left-color: theme-color("info")!important;
+ background-color: theme-color-light("info")!important;
+}
+
+.b-toast-danger .toast {
+ border-left-color: theme-color("danger")!important;
+ background-color: theme-color-light("danger")!important;
+}
+
+.b-toast-warning .toast {
+ border-left-color: theme-color("warning")!important;
+ background-color: theme-color-light("warning")!important;
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/helpers/_colors.scss b/src/assets/styles/bmc/_sila/helpers/_colors.scss
new file mode 100644
index 00000000..028d962b
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/helpers/_colors.scss
@@ -0,0 +1,75 @@
+// Sass Color Variables
+$black: #000;
+$white: #FFFFFF;
+
+$blue-500: #2d60e5;
+$green-500: #4EBF19;
+$red-500: #FF4141;
+$yellow-500: #F0AC0C;
+$dark-blue: #1A3E5B;
+
+$gray-100: #f4f4f4;
+$gray-200: #e6e6e6;
+$gray-300: #d8d8d8;
+$gray-400: #cccccc;
+$gray-500: #b3b3b3;
+$gray-600: #999999;
+$gray-700: #666666;
+$gray-800: #3f3f3f;
+$gray-900: #161616;
+
+
+// Sass Base Color Variables
+$blue: $blue-500;
+$green: $green-500;
+$red: $red-500;
+$yellow: $yellow-500;
+
+// Sass Theme Color Variables
+// Can be used as variants
+$danger: $red;
+$dark: $dark-blue;
+$info: $blue;
+$light: $white;
+$primary: $dark-blue;
+$secondary: #1A3E5B;
+$success: $green;
+$warning: $yellow;
+
+$loading-color: $primary;
+$navbar-color: $primary;
+
+$login-page-description-color: rgba(12, 28, 41, 0.6);
+
+$text-primary: #0C1C29;
+$text-secondary: #0C1C29E5;
+$text-tretiatry: rgba(12, 28, 41, 0.6);
+$text-quaternary: rgba(12, 28, 41, 0.3);
+
+$indicators-errors: #FF4141;
+$indicators-succes: #4EBF19;
+$indicators-warning: #F0AC0C;
+$indicators-complementary:rgba(26, 62, 91, 0.6);;
+
+$on-surface-primary: #040A0F;
+
+$surface-secondary: #F3F4F5;
+$on-surface-secondary: rgba(4, 10, 15, 0.6);
+$on-surface-tretiatry: #040A0F4D;
+
+$faint-secondary-primary-1: rgba(26, 62, 91, 0.01);
+$faint-secondary-primary-2: rgba(26, 62, 91, 0.02);
+$faint-secondary-primary-2-hover: rgba(26, 62, 91, 0.03);
+
+$faint-secondary-primary-5: rgba(26, 62, 91, 0.05);
+$faint-secondary-primary-5-hover: rgba(20, 39, 53, 0.1);
+$faint-secondary-primary-10: rgba(26, 62, 91, 0.1);
+$faint-secondary-primary-20: rgba(26, 62, 91, 0.2);
+$faint-brand-primary-40:rgba(225, 23, 23, 0.4);
+
+$red-brand-primary: #E11717;
+$red-brand-primary-hover: #FC2A2A;
+$red-brand-primary-active: #df2323;
+$red-brand-primary-disabled: #E17171;
+$red-brand-primary-click: #C71414;
+$red-brand-primary-5: rgba(225, 23, 23, 0.05);
diff --git a/src/assets/styles/bmc/_sila/helpers/_functions.scss b/src/assets/styles/bmc/_sila/helpers/_functions.scss
new file mode 100644
index 00000000..57956c99
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/helpers/_functions.scss
@@ -0,0 +1,9 @@
+// This function is usually used to get a lighter
+// theme variant color to use as a background color
+@function theme-color-light($variant) {
+ @return theme-color-level($variant, -11.3);
+}
+
+@function theme-color-dark($variant) {
+ @return theme-color-level($variant, 2);
+} \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/helpers/_index.scss b/src/assets/styles/bmc/_sila/helpers/_index.scss
new file mode 100644
index 00000000..ce0631a7
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/helpers/_index.scss
@@ -0,0 +1,4 @@
+@import "./colors";
+@import "./motion";
+@import "./variables";
+@import "./functions"; \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/helpers/_motion.scss b/src/assets/styles/bmc/_sila/helpers/_motion.scss
new file mode 100644
index 00000000..55a3eed9
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/helpers/_motion.scss
@@ -0,0 +1,14 @@
+$duration--fast-01: 70ms; //Micro-interactions such as button and toggle
+$duration--fast-02: 110ms; //Micro-interactions such as fade
+$duration--moderate-01: 150ms; //Micro-interactions, small expansion, short distance movements
+$duration--moderate-02: 240ms; //Expansion, system communication, toast
+$duration--slow-01: 400ms; //Large expansion, important system notifications
+$duration--slow-02: 700ms; //Background dimming
+
+// https://www.carbondesignsystem.com/guidelines/motion/basics/#easing
+$standard-easing--productive: cubic-bezier(0.2, 0, 0.38, 0.9);
+$standard-easing--expressive: cubic-bezier(0.4, 0.14, 0.3, 1);
+$entrance-easing--productive: cubic-bezier(0, 0, 0.38, 0.9);
+$entrance-easing--expressive: cubic-bezier(0, 0, 0.3, 1);
+$exit-easing--productive: cubic-bezier(0.2, 0, 1, 0.9);
+$exit-easing--expressive: cubic-bezier(0.4, 0.14, 1, 1); \ No newline at end of file
diff --git a/src/assets/styles/bmc/_sila/helpers/_variables.scss b/src/assets/styles/bmc/_sila/helpers/_variables.scss
new file mode 100644
index 00000000..9e3a3aed
--- /dev/null
+++ b/src/assets/styles/bmc/_sila/helpers/_variables.scss
@@ -0,0 +1,24 @@
+// Override Bootstrap Variables - node_modules/Bootstrap/scss/_variables.scss
+$enable-rounded: false;
+$enable-validation-icons: false;
+$transition-base: all $duration--moderate-02 $standard-easing--productive;
+$transition-fade: opacity $duration--moderate-01 $standard-easing--productive;
+$transition-collapse: height $duration--slow-01 $standard-easing--expressive;
+
+// OpenBMC Custom Variables
+$responsive-layout-bp: lg;
+$first-header-height: 48px;
+$second-header-height: 39px;
+$header-height: 87px;
+$headerHeight: 40px;
+$navigation-width: 320px;
+$toolbar-height: 60px;
+$form-label-font-size: .875rem;
+$form-line-height: 1.25rem;
+$box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.3);
+$focus-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,
+border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+
+// :export {
+// headerHeight: $header-height;
+// } \ No newline at end of file
diff --git a/src/components/_sila/AppHeader/AppHeader.vue b/src/components/_sila/AppHeader/AppHeader.vue
index 84e4588f..96c93fbb 100644
--- a/src/components/_sila/AppHeader/AppHeader.vue
+++ b/src/components/_sila/AppHeader/AppHeader.vue
@@ -31,39 +31,89 @@
</b-button>
<b-navbar-nav>
<b-navbar-brand
- class="mr-0"
- to="/"
+ class="mr-0 app-logo"
+ to="/hardware-status/inventory"
data-test-id="appHeader-container-overview"
>
<img
class="header-logo"
- src="@/assets/images/logo-header.svg"
- :alt="altLogo"
+ src="@/assets/images/_sila/logo-header-sila.svg"
/>
</b-navbar-brand>
<div v-if="isNavTagPresent" :key="routerKey" class="pl-2 nav-tags">
- <span>|</span>
- <span class="pl-3 asset-tag">{{ assetTag }}</span>
- <span class="pl-3">{{ modelType }}</span>
- <span class="pl-3">{{ serialNumber }}</span>
+ <span style="color: white">|</span>
+ <span style="color: white" class="pl-2 asset-tag">{{
+ assetTag
+ }}</span>
+ <span style="color: white" class="pl-2">{{ modelType }}</span>
+ <span style="color: white" class="pl-2">{{ serialNumber }}</span>
</div>
</b-navbar-nav>
- <!-- Right aligned nav items -->
- <b-navbar-nav class="ml-auto helper-menu">
+ <!-- Left nav items-->
+ <!-- <b-navbar-nav class="helper-menu">
<b-nav-item
- to="/logs/event-logs"
+ to="/hardware-status/inventory"
data-test-id="appHeader-container-health"
+ class="nav-top-button"
+ :class="{
+ 'active-route-top-nav': ![
+ 'profile-settings',
+ 'information-and-faq',
+ 'support',
+ ].includes($route.path.split('/')[1]),
+ }"
>
- <status-icon :status="healthStatusIcon" />
- {{ $t('appHeader.health') }}
+ {{ $t('appHeader.servers') }}
</b-nav-item>
+
<b-nav-item
- to="/operations/server-power-operations"
+ to="/information-and-faq"
+ data-test-id="appHeader-container-power"
+ class="nav-top-button"
+ :class="{
+ 'active-route-top-nav': ''.includes(
+ $route.path.split('information-and-faq')[1]
+ ),
+ }"
+ >
+ {{ $t('appHeader.informationAndFAQ') }}
+ </b-nav-item>
+
+ <b-nav-item
+ to="/support"
data-test-id="appHeader-container-power"
+ class="nav-top-button"
+ :class="{
+ 'active-route-top-nav': ''.includes(
+ $route.path.split('support')[1]
+ ),
+ }"
>
- <status-icon :status="serverStatusIcon" />
- {{ $t('appHeader.power') }}
+ {{ $t('appHeader.support') }}
</b-nav-item>
+ </b-navbar-nav> -->
+ <!-- Right aligned nav items -->
+ <b-navbar-nav class="ml-auto helper-menu">
+ <li class="nav-item">
+ <b-button
+ variant="link"
+ data-test-id="appHeader-container-health"
+ @click="toLogs"
+ >
+ <status-icon :status="healthStatusIcon" />
+ <span>{{ $t('appHeader.health') }}</span>
+ </b-button>
+ </li>
+ <li class="nav-item">
+ <b-button
+ variant="link"
+ data-test-id="appHeader-container-power"
+ @click="toOperations"
+ >
+ <status-icon :status="serverStatusIcon" />
+ <span>{{ $t('appHeader.power') }}</span>
+ </b-button>
+ </li>
<!-- Using LI elements instead of b-nav-item to support semantic button elements -->
<li class="nav-item">
<b-button
@@ -103,28 +153,24 @@
</b-navbar-nav>
</b-navbar>
</header>
- <loading-bar />
</div>
</template>
<script>
-import BVToastMixin from '@/components/Mixins/BVToastMixin';
-import IconAvatar from '@carbon/icons-vue/es/user--avatar/20';
+import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
import IconClose from '@carbon/icons-vue/es/close/20';
import IconMenu from '@carbon/icons-vue/es/menu/20';
+import IconAvatar from '@carbon/icons-vue/es/user--avatar/20';
import IconRenew from '@carbon/icons-vue/es/renew/20';
-import StatusIcon from '@/components/Global/StatusIcon';
-import LoadingBar from '@/components/Global/LoadingBar';
-
+import StatusIcon from '@/components/_sila/Global/StatusIcon';
export default {
name: 'AppHeader',
components: {
- IconAvatar,
IconClose,
IconMenu,
+ IconAvatar,
IconRenew,
StatusIcon,
- LoadingBar,
},
mixins: [BVToastMixin],
props: {
@@ -136,7 +182,6 @@ export default {
data() {
return {
isNavigationOpen: false,
- altLogo: process.env.VUE_APP_COMPANY_NAME || 'Built on OpenBMC',
};
},
computed: {
@@ -232,6 +277,12 @@ export default {
event.preventDefault();
this.$root.$emit('skip-navigation');
},
+ toLogs() {
+ this.$router.push('/logs/event-logs').catch(() => {});
+ },
+ toOperations() {
+ this.$router.push('/operations/server-power-operations').catch(() => {});
+ },
},
};
</script>
@@ -241,6 +292,7 @@ export default {
box-shadow: inset 0 0 0 3px $padding-color, inset 0 0 0 5px $outline-color;
}
.app-header {
+ flex-grow: 1;
.link-skip-nav {
position: absolute;
top: -60px;
@@ -252,39 +304,52 @@ export default {
transition-timing-function: $entrance-easing--expressive;
}
}
+
+ .app-logo {
+ margin-top: 10px;
+ }
+ .nav-top-button {
+ color: $white;
+ padding: 0px;
+ margin: 0px 8px;
+ }
+
+ .active-route-top-nav {
+ background-color: $faint-brand-primary-40;
+ border-radius: 4px;
+ }
+
.navbar-text,
.nav-link,
.btn-link {
- color: color('white') !important;
- fill: currentColor;
- padding: 0.68rem 1rem !important;
+ border-radius: 4px;
+ color: $white !important;
&:hover {
- background-color: theme-color-level(light, 10);
+ background-color: $faint-brand-primary-40;
}
&:active {
- background-color: theme-color-level(light, 9);
- }
- &:focus {
- @include focus-box-shadow;
- outline: 0;
+ background-color: $faint-brand-primary-40;
}
}
- .nav-item {
- fill: theme-color('light');
- }
-
.navbar {
padding: 0;
background-color: $navbar-color;
+ svg {
+ margin-right: 2px;
+ }
+ .status-icon {
+ svg {
+ vertical-align: text-bottom;
+ }
+ }
@include media-breakpoint-up($responsive-layout-bp) {
- height: $header-height;
+ height: $first-header-height;
}
.helper-menu {
@include media-breakpoint-down(sm) {
- background-color: gray('800');
width: 100%;
justify-content: flex-end;
@@ -292,11 +357,6 @@ export default {
.btn {
padding: $spacer / 1.125 $spacer / 2;
}
-
- .nav-link:focus,
- .btn:focus {
- @include focus-box-shadow($gray-800);
- }
}
.responsive-text {
@@ -311,14 +371,13 @@ export default {
@include media-breakpoint-up($responsive-layout-bp) {
padding: 0 $spacer;
}
- align-items: center;
+ align-items: baseline;
.navbar-brand,
.nav-link {
transition: $focus-transition;
}
.nav-tags {
- color: theme-color-level(light, 3);
@include media-breakpoint-down(xs) {
@include sr-only;
}
@@ -332,8 +391,8 @@ export default {
.nav-trigger {
fill: theme-color('light');
- width: $header-height;
- height: $header-height;
+ width: $first-header-height;
+ height: $first-header-height;
transition: none;
display: inline-flex;
flex: 0 0 20px;
@@ -374,11 +433,25 @@ export default {
.navbar-brand {
padding: $spacer/2;
- height: $header-height;
+ height: $first-header-height;
line-height: 1;
&:focus {
box-shadow: inset 0 0 0 3px $navbar-color, inset 0 0 0 5px color('white');
outline: 0;
}
}
+
+.app-header-logout,
+.app-header-notification {
+ margin: 0 5px;
+ background: none;
+ border: none;
+ width: 30px;
+ height: 30px;
+ &:hover {
+ background: $faint-brand-primary-40;
+ border-radius: 5px;
+ border: none;
+ }
+}
</style>
diff --git a/src/components/_sila/AppNavigation/AppNavigation.vue b/src/components/_sila/AppNavigation/AppNavigation.vue
index acfabe76..1228968d 100644
--- a/src/components/_sila/AppNavigation/AppNavigation.vue
+++ b/src/components/_sila/AppNavigation/AppNavigation.vue
@@ -2,8 +2,8 @@
<div>
<div class="nav-container" :class="{ open: isNavigationOpen }">
<nav ref="nav" :aria-label="$t('appNavigation.primaryNavigation')">
- <b-nav vertical class="mb-4">
- <template v-for="(navItem, index) in navigationItems">
+ <b-nav vertical>
+ <template v-for="(navItem, index) in sideBar">
<!-- Navigation items with no children -->
<b-nav-item
v-if="!navItem.children"
@@ -22,9 +22,9 @@
variant="link"
:data-test-id="`nav-button-${navItem.id}`"
>
- <component :is="navItem.icon" />
{{ navItem.label }}
- <icon-expand class="icon-expand" />
+ <component :is="navItem.icon" class="icon-expand" />
+ <!-- <icon-expand class="icon-expand" /> -->
</b-button>
<b-collapse :id="navItem.id" tag="ul" class="nav-item__nav">
<li class="nav-item">
@@ -59,16 +59,40 @@
//Do not change Mixin import.
//Exact match alias set to support
//dotenv customizations.
-import AppNavigationMixin from './AppNavigationMixin';
+import { AppNavigationMixin, KvmNavigationMixin } from './AppNavigationMixin';
export default {
name: 'AppNavigation',
- mixins: [AppNavigationMixin],
+ mixins: [AppNavigationMixin, KvmNavigationMixin],
data() {
return {
isNavigationOpen: false,
+ server: 1,
+ servers: [
+ {
+ value: 1,
+ text: 'Сервер №1',
+ },
+ {
+ value: 2,
+ text: 'Сервер №2',
+ },
+ ],
};
},
+ computed: {
+ sideBar() {
+ if (
+ this.$route.path === '/console/settings' ||
+ this.$route.path === '/operations/serial-over-lan' ||
+ this.$route.path === '/operations/kvm'
+ ) {
+ return this.kvmNavigationItems;
+ } else {
+ return this.navigationItems;
+ }
+ },
+ },
watch: {
$route: function () {
this.isNavigationOpen = false;
@@ -100,10 +124,16 @@ svg {
}
}
-.nav {
- padding-top: $spacer / 4;
- @include media-breakpoint-up($responsive-layout-bp) {
- padding-top: $spacer;
+.nav-link {
+ display: flex;
+ align-items: center;
+ padding-left: $spacer * 4;
+ outline: none;
+ box-sizing: border-box;
+ height: 68px;
+ border-top: 1px solid rgba(26, 62, 91, 0.2);
+ &:not(.nav-link--current) {
+ font-weight: normal;
}
}
@@ -117,32 +147,43 @@ svg {
}
.nav-link {
+ display: flex;
+ align-items: center;
padding-left: $spacer * 4;
outline: none;
-
+ height: 68px;
+ border-top: 1px solid rgba(26, 62, 91, 0.2);
&:not(.nav-link--current) {
font-weight: normal;
}
}
}
+.server-form {
+ height: 48px;
+ width: 272px;
+ border-radius: 8px;
+ padding: 8px;
+ background-color: $faint-secondary-primary-5;
+}
.btn-link {
display: inline-block;
width: 100%;
text-align: left;
text-decoration: none !important;
border-radius: 0;
-
- &.collapsed {
- .icon-expand {
- transform: rotate(180deg);
- }
+ height: 68px;
+ border-top: 1px solid rgba(26, 62, 91, 0.2);
+ font-weight: 600;
+ line-height: 20px;
+ &.not-collapsed {
+ font-weight: 600;
+ line-height: 20px;
}
}
.icon-expand {
- float: right;
- margin-top: $spacer / 4;
+ margin: 0;
}
.btn-link,
@@ -151,16 +192,16 @@ svg {
font-weight: $headings-font-weight;
padding-left: $spacer; // defining consistent padding for links and buttons
padding-right: $spacer;
- color: theme-color('secondary');
+ color: $text-primary;
&:hover {
- background-color: theme-color-level(dark, -10.5);
+ background-color: $faint-secondary-primary-5-hover;
color: theme-color('dark');
}
&:focus {
- background-color: theme-color-level(light, 0);
- box-shadow: inset 0 0 0 2px theme-color('primary');
+ background-color: $faint-secondary-primary-5-hover;
+ box-shadow: none;
color: theme-color('dark');
outline: 0;
}
@@ -173,11 +214,10 @@ svg {
.nav-link--current {
font-weight: $headings-font-weight;
- background-color: theme-color('secondary');
- color: theme-color('light');
+ background-color: $red-brand-primary-5;
+ color: $red-brand-primary;
cursor: default;
box-shadow: none;
-
&::before {
content: '';
position: absolute;
@@ -185,13 +225,13 @@ svg {
bottom: 0;
left: 0;
width: 4px;
- background-color: theme-color('primary');
+ background-color: $red-brand-primary;
}
&:hover,
&:focus {
- background-color: theme-color('secondary');
- color: theme-color('light');
+ background-color: $red-brand-primary-5;
+ color: $red-brand-primary;
}
}
@@ -201,12 +241,12 @@ svg {
top: $header-height;
bottom: 0;
left: 0;
- z-index: $zindex-fixed;
- overflow-y: auto;
+ z-index: 10;
+ overflow-y: overlay;
background-color: theme-color('light');
transform: translateX(-$navigation-width);
transition: transform $exit-easing--productive $duration--moderate-02;
- border-right: 1px solid theme-color-level('light', 2.85);
+ border-right: 1px solid rgba(19, 46, 68, 0.247);
@include media-breakpoint-down(md) {
z-index: $zindex-fixed + 2;
@@ -222,6 +262,17 @@ svg {
transition-duration: $duration--fast-01;
transform: translateX(0);
}
+
+ &::-webkit-scrollbar {
+ position: absolute;
+ width: 10px;
+ }
+ &::-webkit-scrollbar-thumb {
+ border: 4px solid transparent;
+ background: $faint-secondary-primary-20;
+ border-radius: 16px;
+ background-clip: content-box;
+ }
}
.nav-overlay {
@@ -252,4 +303,98 @@ svg {
display: none;
}
}
+
+.navbar__search_select_container {
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: space-between;
+ align-items: flex-start;
+}
+
+.server__icon {
+ width: 20px;
+ height: 20px;
+}
+
+.server-form {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ margin: 16px 1rem;
+ height: 48px;
+ width: 272px;
+
+ .options {
+ background-color: $white;
+ height: 48px;
+ width: 272px;
+ border-radius: 8px;
+ }
+ option {
+ background-color: $white;
+ height: 48px;
+ width: 272px;
+ border-radius: 8px;
+ }
+}
+
+.nav-line {
+ height: 1px;
+ width: 272px;
+ border-bottom: 1px solid rgba(26, 62, 91, 0.2);
+ margin: 0 1rem;
+}
+
+.server-pagination-select {
+ margin: 0;
+}
+
+.server-select {
+ font-weight: 500;
+ line-height: 20px;
+ width: 237px;
+ border: none;
+ height: 48px;
+ background-image: url('../../../assets/images/_sila/icon-chevron.svg');
+ &:focus {
+ box-shadow: none;
+ }
+
+ .options {
+ background-color: $white;
+ height: 48px;
+ width: 272px;
+ border-radius: 8px;
+ }
+ option {
+ background-color: $white;
+ height: 48px;
+ width: 272px;
+ border-radius: 8px;
+ }
+}
+
+.server-search {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ border: none;
+ box-shadow: none;
+ height: 40px;
+ margin: 16px 1rem;
+ width: 272px;
+}
+
+.search-button {
+ border: none;
+ background: none;
+}
+
+.nav-search__input {
+ border: none;
+ background: none;
+ box-shadow: none;
+}
</style>
diff --git a/src/components/_sila/AppNavigation/AppNavigationMixin.js b/src/components/_sila/AppNavigation/AppNavigationMixin.js
index bbbbb1ee..13125fdf 100644
--- a/src/components/_sila/AppNavigation/AppNavigationMixin.js
+++ b/src/components/_sila/AppNavigation/AppNavigationMixin.js
@@ -1,36 +1,227 @@
-import IconDashboard from '@carbon/icons-vue/es/dashboard/16';
-import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/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 IconSecurity from '@carbon/icons-vue/es/security/16';
-import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
-import IconDataBase from '@carbon/icons-vue/es/data--base--alt/16';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
-const AppNavigationMixin = {
+export const AppNavigationMixin = {
components: {
- iconOverview: IconDashboard,
- iconLogs: IconTextLinkAnalysis,
- iconHealth: IconDataCheck,
- iconControl: IconSettingsAdjust,
- iconSettings: IconSettings,
- iconSecurityAndAccess: IconSecurity,
- iconExpand: IconChevronUp,
- iconResourceManagement: IconDataBase,
+ IconChevronUp: iconChevronUp,
},
data() {
return {
navigationItems: [
{
- id: 'overview',
- label: this.$t('appNavigation.overview'),
- route: '/',
- icon: 'iconOverview',
+ id: 'system',
+ label: this.$t('appNavigation.systemInformaion'),
+ icon: 'iconChevronUp',
+ children: [
+ {
+ id: 'info',
+ label: this.$t('appNavigation.overviewInfo'),
+ route: '/hardware-status/inventory',
+ },
+ {
+ id: 'network',
+ label: this.$t('appNavigation.networkParametrs'),
+ route: '/settings/network',
+ },
+ {
+ id: 'date-time',
+ label: this.$t('appNavigation.dateTime'),
+ route: '/settings/date-time',
+ },
+ ],
+ },
+ {
+ id: 'bmc',
+ label: this.$t('appNavigation.bmc'),
+ icon: 'iconChevronUp',
+ children: [
+ {
+ id: 'bmc-configuration',
+ label: this.$t('appNavigation.config'),
+ route: '/bmc-configuration',
+ },
+ // {
+ // id: 'bmc-firmware',
+ // label: this.$t('appNavigation.deviceFirmware'),
+ // route: '/bmc-firmware',
+ // },
+ // {
+ // id: 'bmc-settings',
+ // label: this.$t('appNavigation.broadcast'),
+ // route: '/bmc-settings',
+ // },
+ ],
+ },
+ // {
+ // id: 'analytical-panel',
+ // label: this.$t('appNavigation.analyticalPanel'),
+ // route: '/analytical-panel',
+ // },
+ // {
+ // id: 'RAID',
+ // label: this.$t('appNavigation.raidControllers'),
+ // icon: 'iconChevronUp',
+ // children: [
+ // {
+ // id: 'raid-specification',
+ // label: this.$t('appNavigation.specification'),
+ // route: '/raid-specification',
+ // },
+ // {
+ // id: 'raid-settings',
+ // label: this.$t('appNavigation.settings'),
+ // route: '/raid-settings',
+ // },
+ // {
+ // id: 'raid-cache',
+ // label: this.$t('RAID.cache'),
+ // route: '/raid-cache',
+ // },
+ // ],
+ // },
+ // {
+ // id: 'processors',
+ // label: this.$t('appNavigation.processors'),
+ // icon: 'iconChevronUp',
+ // children: [
+ // {
+ // id: 'processors-specification',
+ // label: this.$t('appNavigation.specification'),
+ // route: '/processors-specification',
+ // },
+ // {
+ // id: 'processors-dynamic-info',
+ // label: this.$t('appNavigation.analyticalPanel'),
+ // route: '/processors-dynamic-info',
+ // },
+ // ],
+ // },
+ /*{
+ id: 'power',
+ label: this.$t('appNavigation.powerSupplies'),
+ icon: 'iconChevronUp',
+ children: [
+ {
+ id: 'power-specification',
+ label: this.$t('appNavigation.specification'),
+ route: '/power-specification',
+ },
+ {
+ id: 'power-dynamic-info',
+ label: this.$t('appNavigation.analyticalPanel'),
+ route: '/power-dynamic-info',
+ },
+ ],
+ },*/
+ {
+ id: 'memory',
+ label: this.$t('appNavigation.memoryModules'),
+ icon: 'iconChevronUp',
+ children: [
+ /*{
+ id: 'memory-specification',
+ label: this.$t('appNavigation.specification'),
+ route: '/memory-specification',
+ },*/
+ {
+ id: 'memory-dynamic-info',
+ label: this.$t('appNavigation.dynamicInformation'),
+ route: '/memory-dynamic-info',
+ },
+ ],
+ },
+ {
+ id: 'fans',
+ label: this.$t('appNavigation.fans'),
+ icon: 'iconChevronUp',
+ children: [
+ {
+ id: 'fans-static',
+ label: this.$t('appNavigation.statisticInformation'),
+ route: '/fans-static',
+ },
+ {
+ id: 'fans',
+ label: this.$t('appNavigation.dynamicInformation'),
+ route: '/fans',
+ },
+ ],
+ },
+ // {
+ // id: 'physical-drives',
+ // label: this.$t('appNavigation.physicalDrives'),
+ // icon: 'iconChevronUp',
+ // children: [
+ // {
+ // id: 'drivers-static',
+ // label: this.$t('appNavigation.statisticInformation'),
+ // route: '/drivers-static',
+ // },
+ // {
+ // id: 'drivers',
+ // label: this.$t('appNavigation.analyticalPanel'),
+ // route: '/drivers',
+ // },
+ // ],
+ // },
+ // {
+ // id: 'virtual-drivers',
+ // label: this.$t('appNavigation.virtualDrivers'),
+ // route: '/virtual-drivers',
+ // },
+ {
+ id: 'motherboard',
+ label: this.$t('appNavigation.motherboard'),
+ icon: 'iconChevronUp',
+ children: [
+ /*{
+ id: 'motherboard-specification',
+ label: this.$t('appNavigation.specification'),
+ route: '/motherboard-specification',
+ },*/
+ {
+ id: 'motherboard-dynamic-info',
+ label: this.$t('appNavigation.dynamicInformation'),
+ route: '/motherboard-dynamic-info',
+ },
+ ],
},
+ // {
+ // id: 'network-adapters',
+ // label: this.$t('appNavigation.networkAdapters'),
+ // icon: 'iconChevronUp',
+ // children: [
+ // {
+ // id: 'network-adapters-ethernet',
+ // label: this.$t('appNavigation.ethernetAdapters'),
+ // route: '/network-adapters-ethernet',
+ // },
+ // {
+ // id: 'network-adapters-fc-hba',
+ // label: this.$t('appNavigation.fcHbaAdapters'),
+ // route: '/network-adapters-fc-hba',
+ // },
+ // {
+ // id: 'network-adapters-pannel',
+ // label: this.$t('appNavigation.analyticalPanel'),
+ // route: '/network-adapters-pannel',
+ // },
+ // ],
+ // },
+ // {
+ // id: 'pci-devices',
+ // label: this.$t('appNavigation.pciDevices'),
+ // route: '/pci-devices',
+ // },
+ ///////////////////////////old tabs
+ // {
+ // id: 'overview',
+ // label: 'Обзор',
+ // route: '/Info',
+ // },
{
id: 'logs',
label: this.$t('appNavigation.logs'),
- icon: 'iconLogs',
+ icon: 'iconChevronUp',
children: [
{
id: 'event-logs',
@@ -47,14 +238,9 @@ const AppNavigationMixin = {
{
id: 'hardware-status',
label: this.$t('appNavigation.hardwareStatus'),
- icon: 'iconHealth',
+ icon: 'iconChevronUp',
children: [
{
- id: 'inventory',
- label: this.$t('appNavigation.inventory'),
- route: '/hardware-status/inventory',
- },
- {
id: 'sensors',
label: this.$t('appNavigation.sensors'),
route: '/hardware-status/sensors',
@@ -64,7 +250,7 @@ const AppNavigationMixin = {
{
id: 'operations',
label: this.$t('appNavigation.operations'),
- icon: 'iconControl',
+ icon: 'iconChevronUp',
children: [
{
id: 'factory-reset',
@@ -72,13 +258,8 @@ const AppNavigationMixin = {
route: '/operations/factory-reset',
},
{
- id: 'kvm',
- label: this.$t('appNavigation.kvm'),
- route: '/operations/kvm',
- },
- {
id: 'key-clear',
- label: this.$t('appNavigation.keyClear'),
+ label: this.$t('appPageTitle.keyClear'),
route: '/operations/key-clear',
},
{
@@ -92,11 +273,6 @@ const AppNavigationMixin = {
route: '/operations/reboot-bmc',
},
{
- id: 'serial-over-lan',
- label: this.$t('appNavigation.serialOverLan'),
- route: '/operations/serial-over-lan',
- },
- {
id: 'server-power-operations',
label: this.$t('appNavigation.serverPowerOperations'),
route: '/operations/server-power-operations',
@@ -108,32 +284,27 @@ const AppNavigationMixin = {
},
],
},
- {
- id: 'settings',
- label: this.$t('appNavigation.settings'),
- icon: 'iconSettings',
- children: [
- {
- id: 'date-time',
- label: this.$t('appNavigation.dateTime'),
- route: '/settings/date-time',
- },
- {
- id: 'network',
- label: this.$t('appNavigation.network'),
- route: '/settings/network',
- },
- {
- id: 'power-restore-policy',
- label: this.$t('appNavigation.powerRestorePolicy'),
- route: '/settings/power-restore-policy',
- },
- ],
- },
+ // {
+ // id: 'settings',
+ // label: this.$t('appNavigation.settings'),
+ // icon: 'iconChevronUp',
+ // children: [
+ // {
+ // id: 'network',
+ // label: this.$t('appNavigation.network'),
+ // route: '/settings/network',
+ // },
+ // {
+ // id: 'power-restore-policy',
+ // label: this.$t('appNavigation.powerRestorePolicy'),
+ // route: '/settings/power-restore-policy',
+ // },
+ // ],
+ // },
{
id: 'security-and-access',
label: this.$t('appNavigation.securityAndAccess'),
- icon: 'iconSecurityAndAccess',
+ icon: 'iconChevronUp',
children: [
{
id: 'sessions',
@@ -162,21 +333,43 @@ const AppNavigationMixin = {
},
],
},
+ // {
+ // id: 'resource-management',
+ // label: this.$t('appNavigation.resourceManagement'),
+ // icon: 'iconChevronUp',
+ // children: [
+ // {
+ // id: 'power',
+ // label: this.$t('appNavigation.power'),
+ // route: '/resource-management/power',
+ // },
+ // ],
+ // },
+ ],
+ };
+ },
+};
+
+export const KvmNavigationMixin = {
+ data() {
+ return {
+ kvmNavigationItems: [
+ // {
+ // id: 'console-settings',
+ // label: this.$t('appPageTitle.consoleSettings'),
+ // route: '/console/settings',
+ // },
+ {
+ id: 'kvm',
+ label: this.$t('appNavigation.kvm'),
+ route: '/operations/kvm',
+ },
{
- id: 'resource-management',
- label: this.$t('appNavigation.resourceManagement'),
- icon: 'iconResourceManagement',
- children: [
- {
- id: 'power',
- label: this.$t('appNavigation.power'),
- route: '/resource-management/power',
- },
- ],
+ id: 'serial-over-lan',
+ label: this.$t('appPageTitle.serialOverLan'),
+ route: '/operations/serial-over-lan',
},
],
};
},
};
-
-export default AppNavigationMixin;
diff --git a/src/components/_sila/Global/Alert.vue b/src/components/_sila/Global/Alert.vue
index e8de9e27..8b9b0d90 100644
--- a/src/components/_sila/Global/Alert.vue
+++ b/src/components/_sila/Global/Alert.vue
@@ -12,7 +12,7 @@
<status-icon :status="variant" />
</div>
<div class="alert-content">
- <div class="alert-msg">
+ <div class="alert-msg regular-14px">
<slot />
</div>
</div>
@@ -23,7 +23,7 @@
</template>
<script>
-import StatusIcon from '@/components/Global/StatusIcon';
+import StatusIcon from '@/components/_sila/Global/StatusIcon';
import { BAlert } from 'bootstrap-vue';
export default {
diff --git a/src/components/_sila/Global/FormFile.vue b/src/components/_sila/Global/FormFile.vue
index cf713acf..50af468e 100644
--- a/src/components/_sila/Global/FormFile.vue
+++ b/src/components/_sila/Global/FormFile.vue
@@ -1,26 +1,38 @@
<template>
<div class="custom-form-file-container">
<label>
- <b-form-file
- :id="id"
- v-model="file"
- :accept="accept"
- :disabled="disabled"
- :state="state"
- plain
- @input="$emit('input', file)"
+ <b-modal
+ :id="`modal-${id}`"
+ body-class="modal-file-body"
+ :title="$t('pageKvm.addImage_modal')"
+ hide-footer
>
- </b-form-file>
- <span
- class="add-file-btn btn"
+ <div class="file-input_container">
+ <b-form-file
+ :id="id"
+ v-model="file"
+ :accept="accept"
+ :disabled="disabled"
+ :state="state"
+ placeholder="Нажмите на область или перетащите в нее файл"
+ drop-placeholder="Отпустите, чтобы добавить файл"
+ @input="$emit('input', file)"
+ >
+ </b-form-file>
+ </div>
+ </b-modal>
+ <b-button
+ size="lg"
+ class="add-file-btn"
:class="{
disabled,
'btn-secondary': isSecondary,
'btn-primary': !isSecondary,
}"
+ @click="$bvModal.show(`modal-${id}`)"
>
{{ $t('global.fileUpload.browseText') }}
- </span>
+ </b-button>
<slot name="invalid"></slot>
</label>
<div v-if="file" class="clear-selected-file px-3 py-2 mt-2">
@@ -78,9 +90,17 @@ export default {
return this.variant === 'secondary';
},
},
+ watch: {
+ file() {
+ if (this.file) {
+ this.$bvModal.hide(`modal-${this.id}`);
+ } else {
+ this.$emit('input', this.file);
+ }
+ },
+ },
};
</script>
-
<style lang="scss" scoped>
.form-control-file {
opacity: 0;
@@ -116,4 +136,22 @@ export default {
}
}
}
+
+.file-input_container {
+ width: 100%;
+ height: 400px;
+ background-color: $surface-secondary;
+ border-top: 1px solid #f3f4f5;
+ border-radius: 0 0 16px 16px;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.custom-form-file-container {
+ label {
+ margin-bottom: 0;
+ }
+}
</style>
diff --git a/src/components/_sila/Global/InfoTooltip.vue b/src/components/_sila/Global/InfoTooltip.vue
index c91109d1..950b6c3e 100644
--- a/src/components/_sila/Global/InfoTooltip.vue
+++ b/src/components/_sila/Global/InfoTooltip.vue
@@ -28,6 +28,7 @@ export default {
.btn-tooltip {
padding: 0;
line-height: 1em;
+ height: auto;
svg {
vertical-align: baseline;
}
diff --git a/src/components/_sila/Global/InputPasswordToggle.vue b/src/components/_sila/Global/InputPasswordToggle.vue
index d2c0d4a6..be4fdc6c 100644
--- a/src/components/_sila/Global/InputPasswordToggle.vue
+++ b/src/components/_sila/Global/InputPasswordToggle.vue
@@ -16,8 +16,8 @@
</template>
<script>
-import IconView from '@carbon/icons-vue/es/view/20';
-import IconViewOff from '@carbon/icons-vue/es/view--off/20';
+import IconView from '@carbon/icons-vue/es/view--filled/32';
+import IconViewOff from '@carbon/icons-vue/es/view--off--filled/32';
export default {
name: 'InputPasswordToggle',
@@ -48,6 +48,28 @@ export default {
</script>
<style lang="scss" scoped>
+.input-action-btn,
+.btn-icon-only {
+ margin: auto;
+ padding: 10px;
+ &:hover {
+ border-radius: 8px;
+ background-color: transparent;
+ }
+ &:focus {
+ box-shadow: none;
+ color: none;
+ }
+ &:active {
+ background-color: transparent;
+ }
+}
+
+.btn-icon-only svg {
+ width: 30px;
+ height: 20px;
+}
+
.input-password-toggle-container {
position: relative;
}
diff --git a/src/components/_sila/Global/LoadingBar.vue b/src/components/_sila/Global/LoadingBar.vue
index 0e9551b5..b65f97a7 100644
--- a/src/components/_sila/Global/LoadingBar.vue
+++ b/src/components/_sila/Global/LoadingBar.vue
@@ -74,12 +74,13 @@ export default {
<style lang="scss" scoped>
.progress {
position: absolute;
- left: 0;
right: 0;
bottom: -0.4rem;
opacity: 1;
transition: opacity $duration--moderate-01 $standard-easing--productive;
height: 0.4rem;
+ width: calc(100vw - 320px);
+ border-radius: 0px;
&.fade-enter, // Remove this vue2 based only class when switching to vue3
&.fade-enter-from, // This is vue3 based only class modified from 'fade-enter'
@@ -89,5 +90,6 @@ export default {
}
.progress-bar {
background-color: $loading-color;
+ border-radius: 0px;
}
</style>
diff --git a/src/components/_sila/Global/PageContainer.vue b/src/components/_sila/Global/PageContainer.vue
index ab4adb63..4c4c502d 100644
--- a/src/components/_sila/Global/PageContainer.vue
+++ b/src/components/_sila/Global/PageContainer.vue
@@ -1,11 +1,11 @@
<template>
- <main id="main-content" class="page-container">
+ <main id="main-content" class="page-container scroll-container">
<slot />
</main>
</template>
<script>
-import JumpLinkMixin from '@/components/Mixins/JumpLinkMixin';
+import JumpLinkMixin from '@/components/_sila/Mixins/JumpLinkMixin';
export default {
name: 'PageContainer',
mixins: [JumpLinkMixin],
@@ -19,19 +19,10 @@ export default {
<style lang="scss" scoped>
main {
width: 100%;
- height: 100%;
- padding-top: $spacer * 1.5;
- padding-bottom: $spacer * 3;
- padding-left: $spacer;
- padding-right: $spacer;
&:focus-visible {
box-shadow: inset 0 0 0 2px theme-color('primary');
outline: none;
}
-
- @include media-breakpoint-up($responsive-layout-bp) {
- padding-left: $spacer * 2;
- }
}
</style>
diff --git a/src/components/_sila/Global/PageSection.vue b/src/components/_sila/Global/PageSection.vue
index f86649fe..0521dc06 100644
--- a/src/components/_sila/Global/PageSection.vue
+++ b/src/components/_sila/Global/PageSection.vue
@@ -1,6 +1,9 @@
<template>
<div class="page-section">
<h2 v-if="sectionTitle">{{ sectionTitle }}</h2>
+ <span v-if="sectionSmallTitle" class="bold-16px">
+ {{ sectionSmallTitle }}
+ </span>
<slot />
</div>
</template>
@@ -13,17 +16,26 @@ export default {
type: String,
default: '',
},
+ sectionSmallTitle: {
+ type: String,
+ default: '',
+ },
},
};
</script>
<style lang="scss" scoped>
.page-section {
- margin-bottom: $spacer;
+ margin-bottom: $spacer * 1;
}
h2 {
@include font-size($h3-font-size);
margin-bottom: $spacer;
}
+
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
</style>
diff --git a/src/components/_sila/Global/PageTitle.vue b/src/components/_sila/Global/PageTitle.vue
index 45c75edb..3f8ffe66 100644
--- a/src/components/_sila/Global/PageTitle.vue
+++ b/src/components/_sila/Global/PageTitle.vue
@@ -1,7 +1,11 @@
<template>
- <div class="page-title">
- <h1>{{ title }}</h1>
- <p v-if="description">{{ description }}</p>
+ <div v-if="description" class="page-title">
+ <h1 class="bold-24px text-title">{{ title }}</h1>
+ <p class="page-description">{{ description }}</p>
+ </div>
+ <div v-else class="page-title no_description">
+ <h1 class="bold-24px text-title">{{ title }}</h1>
+ <p class="page-description">{{ description }}</p>
</div>
</template>
@@ -24,9 +28,33 @@ export default {
<style lang="scss" scoped>
.page-title {
- margin-bottom: $spacer * 2;
+ width: 100%;
+ height: 72px;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ background-color: $white;
+ z-index: 1001;
+
+ display: flex;
+ flex-flow: column nowrap;
+ align-items: flex-start;
+ justify-content: center;
+ &.no_description {
+ height: 64px;
+ }
+}
+
+.text-title {
+ margin-left: 2rem;
}
-p {
- max-width: 72ch;
+
+.page-description {
+ color: $text-secondary;
+ font-family: 'Inter', sans-serif;
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 16px;
+
+ margin: 4px 0 0 2rem;
+ padding: 0;
}
</style>
diff --git a/src/components/_sila/Global/Popover.vue b/src/components/_sila/Global/Popover.vue
new file mode 100644
index 00000000..0d52cfa5
--- /dev/null
+++ b/src/components/_sila/Global/Popover.vue
@@ -0,0 +1,287 @@
+<template>
+ <div id="popover-container">
+ <div v-if="isclear" :id="id" ref="button" variant="primary" class="pointer">
+ <img src="@/assets/images/icon-clear-red.svg" />
+ <span class="regular-12px red-font">{{ $t(description) }}</span>
+ </div>
+ <div
+ v-else-if="isMicrocode"
+ :id="id"
+ ref="button"
+ variant="primary"
+ class="pointer"
+ >
+ <img src="@/assets/images/icon-reload-red.svg" />
+ <span class="regular-12px red-font">{{ $t(description) }}</span>
+ </div>
+
+ <div
+ v-else-if="isMicrocodeDrivers"
+ :id="id"
+ ref="button"
+ variant="primary"
+ class="pointer"
+ >
+ <img src="@/assets/images/icon-reload-red.svg" />
+ <span class="semi-bold-16px red-font">{{ $t(description) }}</span>
+ </div>
+
+ <span
+ v-else
+ :id="id"
+ ref="button"
+ class="regular-12px underline"
+ variant="primary"
+ >
+ {{ $t(description) }}
+ </span>
+ <!-- Our popover title and content render container -->
+ <b-popover
+ ref="popover"
+ :target="id"
+ triggers="click"
+ :show.sync="popoverShow"
+ placement="auto"
+ container="popover-container"
+ @show="onShow"
+ @shown="onShown"
+ @hidden="onHidden"
+ >
+ <template #title>
+ <div class="popup-title">
+ <span class="bold-16px__caps">{{ $t(popup) }}</span>
+ <b-button class="popup-title__button_close" @click="onClose">
+ <img src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-button>
+ </div>
+ </template>
+
+ <div class="popup-body">
+ <div>
+ <label class="light-12px" style="margin-right: 5px">{{
+ 'HEX для ввода'
+ }}</label>
+ <img id="popover-tooltip" src="@/assets/images/popups/red-sign.svg" />
+ <popover-info
+ id="popover-tooltip"
+ description="Введите HEX в поле для подтверждения действия"
+ />
+ <div class="hex-label">
+ <span class="medium-12px"> 9c1735b3f819142393146a5d03314f0a </span>
+ </div>
+ </div>
+ <div class="popup-body__input-container">
+ <span style="margin-left: 12px" class="regular-12px tretiatry"
+ >Поле для ввода</span
+ >
+ <b-form-input
+ id="popover-input-1"
+ v-model="input"
+ class="medium-12px"
+ ></b-form-input>
+ </div>
+ <b-button
+ class="popup-button"
+ variant="primary"
+ :disabled="!input"
+ @click="onOk"
+ >
+ {{ $t(button) }}
+ </b-button>
+ </div>
+ </b-popover>
+ </div>
+</template>
+
+<script>
+import PopoverInfo from './PopoverInfo';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+export default {
+ components: {
+ PopoverInfo,
+ },
+ mixins: [BVToastMixin],
+ props: {
+ id: {
+ type: String,
+ default: '',
+ },
+ description: {
+ type: String,
+ default: '',
+ },
+ popup: {
+ type: String,
+ default: '',
+ },
+ placement: {
+ type: String,
+ default: 'auto',
+ },
+ button: {
+ type: String,
+ default: 'global.action.reload',
+ },
+ isMicrocode: {
+ type: Boolean,
+ default: false,
+ },
+ isMicrocodeDrivers: {
+ type: Boolean,
+ default: false,
+ },
+ isclear: {
+ type: Boolean,
+ default: false,
+ },
+ action: {
+ type: Function,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ input: '',
+ popoverShow: false,
+ };
+ },
+ methods: {
+ onClose() {
+ this.popoverShow = false;
+ },
+ onOk() {
+ if (this.input === '9c1735b3f819142393146a5d03314f0a') {
+ this.action();
+ this.onClose();
+ } else {
+ this.warningToast(
+ this.$t('Неправильный HEX в поле для подтверждения действия'),
+ {
+ title: this.$t('Неправильный НЕХ'),
+ }
+ );
+ }
+ },
+ onShow() {
+ // This is called just before the popover is shown
+ // Reset our popover form variables
+ this.$root.$emit('bv::hide::popover');
+ this.input = '';
+ },
+ onShown() {
+ // Called just after the popover has been shown
+ // Transfer focus to the first input
+ this.focusRef(this.$refs.input1);
+ },
+ onHidden() {
+ // Called just after the popover has finished hiding
+ // Bring focus back to the button
+ this.focusRef(this.$refs.button);
+ },
+ focusRef(ref) {
+ // Some references may be a component, functional component, or plain element
+ // This handles that check before focusing, assuming a `focus()` method exists
+ // We do this in a double `$nextTick()` to ensure components have
+ // updated & popover positioned first
+ this.$nextTick(() => {
+ this.$nextTick(() => {
+ (ref.$el || ref).focus();
+ });
+ });
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.form-group {
+ margin: 0;
+}
+
+.popup-title {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: baseline;
+}
+
+.popup-title__button_close {
+ margin: 0 28px 0 auto;
+ background: none;
+ border: none;
+ &:active {
+ background-color: $faint-secondary-primary-5-hover !important;
+ box-shadow: none !important;
+ border-radius: 8px;
+ }
+ &:focus-visible {
+ border: none !important;
+ border-radius: 8px;
+ }
+ &:focus {
+ box-shadow: none;
+ border-radius: 8px;
+ }
+}
+
+.popup-body {
+ display: flex;
+ flex-direction: column;
+ align-content: center;
+ justify-content: center;
+ align-items: center;
+}
+
+.form-control {
+ width: 341px;
+ height: 52px;
+ margin: -25px auto;
+ padding-top: 30px;
+}
+
+.hex-label {
+ height: 32px;
+ width: 341px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background: $faint-secondary-primary-5;
+ border-radius: 8px;
+ border: none;
+ margin: 0 auto;
+}
+
+.popup-button {
+ width: 341px;
+ height: 40px;
+ margin-bottom: 10px;
+}
+
+.popup-body__input-container {
+ height: 52px;
+ margin: 24px auto 16px auto;
+}
+
+.tretiatry {
+ margin-left: 12px;
+}
+
+.light-12px {
+ margin: 0px 5px 0px 15px;
+}
+
+.popover-info {
+ background-color: $on-surface-primary;
+ // border: 1px solid $text-primary;
+ // box-shadow: 0px 6px 16px -12px rgba(23, 40, 77, 0.06);
+ border-radius: 8px;
+ width: 168px;
+ height: 76px;
+ &.arrow {
+ display: block;
+ }
+}
+
+.red-font {
+ padding-left: 5px;
+ color: $red-brand-primary;
+}
+</style>
diff --git a/src/components/_sila/Global/PopoverInfo.vue b/src/components/_sila/Global/PopoverInfo.vue
new file mode 100644
index 00000000..4b1b0b0d
--- /dev/null
+++ b/src/components/_sila/Global/PopoverInfo.vue
@@ -0,0 +1,40 @@
+<template>
+ <b-popover :target="id" triggers="hover" placement="top">
+ <span class="regular-12px">{{ description }}</span>
+ </b-popover>
+</template>
+
+<script>
+export default {
+ props: {
+ description: {
+ type: String,
+ default: '',
+ },
+ id: {
+ type: String,
+ default: '',
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.popover::v-deep {
+ background-color: #040a0f;
+ width: 168px;
+ height: 76px;
+}
+
+.popover::v-deep .arrow {
+ visibility: visible;
+}
+
+.popover::v-deep .arrow::after {
+ border-top-color: #040a0f;
+ border-bottom-color: #040a0f;
+}
+
+.regular-12px {
+ color: $white;
+}
+</style>
diff --git a/src/components/_sila/Global/Search.vue b/src/components/_sila/Global/Search.vue
index ac8f9bfb..ce097fcb 100644
--- a/src/components/_sila/Global/Search.vue
+++ b/src/components/_sila/Global/Search.vue
@@ -1,11 +1,12 @@
<template>
<div class="search-global">
- <b-form-group
- :label="$t('global.form.search')"
+ <!--<b-form-group
+ :label="$t('global.form.search')"
:label-for="`searchInput-${_uid}`"
label-class="invisible"
- class="mb-2"
- >
+ class="mb-2"
+ >-->
+ <b-form-group>
<b-input-group size="md" class="align-items-center">
<b-input-group-prepend>
<icon-search class="search-icon" />
diff --git a/src/components/_sila/Global/SilaComponents/ApplySettingsPopover.vue b/src/components/_sila/Global/SilaComponents/ApplySettingsPopover.vue
new file mode 100644
index 00000000..57e0844c
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/ApplySettingsPopover.vue
@@ -0,0 +1,163 @@
+<template>
+ <div class="popover-applay-container">
+ <span class="apply-label regular-12px tretiatry">
+ {{ $t('global.applySettings.apply') }}</span
+ >
+ <b-button :id="`popover-apply-ractive${id}`" variant="unstiled">
+ <span class="regular-12px apply-variant">
+ {{ $t(`global.applySettings.${applyType}`) }}</span
+ >
+ <img class="apply-chevron" src="@/assets/images/icon-chevron-red.svg" />
+ </b-button>
+ <b-popover
+ placement="bottom"
+ triggers="focus"
+ :show.sync="show"
+ custom-class="apply-reload-popover"
+ :target="`popover-apply-ractive${id}`"
+ @hidden="onHidden"
+ >
+ <b-button
+ id="popover-apply-button"
+ variant="popover"
+ :class="{ 'hovered-apply-button': scale === topPosition }"
+ @mouseover="scale = topPosition"
+ @click="
+ () => {
+ show = false;
+ appalyOnReload();
+ }
+ "
+ >
+ При перезагрузке
+ </b-button>
+ <b-button
+ id="popover-apply-button"
+ variant="popover"
+ :class="{ 'hovered-apply-button': scale === middlePosition }"
+ @mouseover="scale = middlePosition"
+ @click="
+ () => {
+ show = false;
+ appalyOption1();
+ }
+ "
+ >
+ Опция 1
+ </b-button>
+ <b-button
+ id="popover-apply-button"
+ variant="popover"
+ :class="{ 'hovered-apply-button': scale === bottomPosition }"
+ @mouseover="scale = bottomPosition"
+ @click="
+ () => {
+ show = false;
+ appalyOption2();
+ }
+ "
+ >
+ Опция 2
+ </b-button>
+ <div class="slider" :style="`left: 5px; top: ${scale}px;`"></div>
+ </b-popover>
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ id: {
+ type: Number,
+ default: 1,
+ },
+ appalyOnReload: {
+ type: Function,
+ default: null,
+ },
+ appalyOption1: {
+ type: Function,
+ default: null,
+ },
+ appalyOption2: {
+ type: Function,
+ default: null,
+ },
+ applyType: {
+ type: String,
+ default: 'reload',
+ },
+ },
+ data() {
+ return {
+ topPosition: 5,
+ middlePosition: 33,
+ bottomPosition: 60,
+ show: false,
+ scale: 5,
+ };
+ },
+ methods: {
+ onHidden() {
+ if (this.applyType === 'reload') {
+ this.scale = this.topPosition;
+ } else if (this.applyType === 'option1') {
+ this.scale = this.middlePosition;
+ } else {
+ this.scale = this.bottomPosition;
+ }
+ },
+ },
+};
+</script>
+<style lang="scss">
+.popover-applay-container {
+ display: flex;
+ align-items: baseline;
+ justify-content: flex-end;
+ margin-left: auto;
+}
+
+#popover-apply-ractive {
+ padding-left: 5px;
+}
+
+.hovered-apply-button {
+ color: $white;
+}
+</style>
+<style lang="scss" scoped>
+.apply-label {
+ margin-left: auto;
+}
+
+.apply-chevron {
+ margin: 0 10px 0 5px;
+ cursor: pointer;
+}
+
+#popover-apply-ractive {
+ padding-left: 5px;
+}
+
+.apply-variant {
+ cursor: pointer;
+ color: $red-brand-primary;
+}
+
+#popover-apply-button {
+ justify-content: flex-start;
+ width: 240px;
+}
+
+.slider {
+ width: 240px;
+ height: 28px;
+ border-radius: 8px;
+ background-color: $red-brand-primary;
+ box-shadow: 1px 2px 4px -1px rgb(79 37 37 / 40%) inset;
+ position: absolute;
+ transition: ease-in 0.2s;
+ z-index: -1;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/DataTabs.vue b/src/components/_sila/Global/SilaComponents/DataTabs.vue
new file mode 100644
index 00000000..49afbbfb
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/DataTabs.vue
@@ -0,0 +1,136 @@
+<template>
+ <div>
+ <div
+ ref="content"
+ :class="'tabs-switch'"
+ :style="gridStyle"
+ @wheel.prevent="wheelItBetter($event)"
+ >
+ <span
+ v-for="item in slots"
+ :key="item.id"
+ class="medium-12px scale-item"
+ :class="{ 'tab-active': currentTab === item.id }"
+ :style="`width: ${slotWidth}px`"
+ @click="switchTab(item.id)"
+ >{{ $t(item.name) }}</span
+ >
+ <div class="slider" :style="sliderStyle" />
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ slots: {
+ type: Array,
+ default: null,
+ },
+ currentTab: {
+ type: Number,
+ default: 1,
+ },
+ switchTab: {
+ type: Function,
+ required: true,
+ },
+ slotWidth: {
+ type: Number,
+ default: null,
+ },
+ sliderWidth: {
+ type: Number,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ upHere: false,
+ container: this.$refs.content,
+ };
+ },
+ computed: {
+ sliderStyle() {
+ return {
+ width: `${this.sliderWidth}px`,
+ left: `${
+ ((this.currentTab ? this.currentTab : 1) - 1) * this.slotWidth
+ }px`,
+ };
+ },
+ gridStyle() {
+ return {
+ gridTemplateColumns: `repeat(${this.slots.length}, ${this.slotWidth}px)`,
+ };
+ },
+ },
+ methods: {
+ wheelItBetter(event) {
+ if (event.deltaY < 0) {
+ this.$refs.content.scrollLeft -= 25;
+ } else {
+ this.$refs.content.scrollLeft += 25;
+ }
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.tabs-switch {
+ position: relative;
+ width: calc(95vw - 320px);
+ height: 45px;
+ margin-left: 32px;
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: 32px;
+ align-items: end;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ overflow-x: auto;
+ white-space: nowrap;
+ &::-webkit-scrollbar {
+ height: 2px;
+ }
+ &::-webkit-scrollbar-thumb {
+ background: rgba(26, 62, 91, 0.2);
+ border-radius: 16px;
+ background-clip: content-box;
+ height: 10px;
+ }
+}
+
+.tab-active {
+ color: $red-brand-primary;
+ transition: ease-in 0.15s;
+}
+
+.slider {
+ position: absolute;
+ height: 0px;
+ border-bottom: 4px solid $red-brand-primary;
+ transition: ease-in 0.2s;
+ bottom: 0px;
+}
+
+.scale-item {
+ display: inline-block;
+ margin-right: 6px;
+ cursor: pointer;
+ &:hover {
+ transition: ease-in 0.2s;
+ color: #e11717;
+ }
+}
+
+.date-picker {
+ display: flex;
+ align-items: center;
+ gap: 9px;
+}
+
+.date-clear {
+ margin-left: auto;
+ cursor: pointer;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/DateSwitch.vue b/src/components/_sila/Global/SilaComponents/DateSwitch.vue
new file mode 100644
index 00000000..4df70ba4
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/DateSwitch.vue
@@ -0,0 +1,123 @@
+<template>
+ <div class="fans-date-switch">
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'hour' }"
+ @click="switchTimeScale('hour')"
+ >{{ $t('global.date.lastHour') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'day' }"
+ @click="switchTimeScale('day')"
+ >{{ $t('global.date.lastDay') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'week' }"
+ @click="switchTimeScale('week')"
+ >{{ $t('global.date.lastWeek') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'mounth' }"
+ @click="switchTimeScale('mounth')"
+ >{{ $t('global.date.lastMounth') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'year' }"
+ @click="switchTimeScale('year')"
+ >{{ $t('global.date.lastYear') }}</span
+ >
+ <div class="slider" />
+ <div class="date-picker">
+ <img src="@/assets/images/calendar-icon.svg" />
+ <span class="medium-12px scale-item">{{
+ $t('global.date.selectDate')
+ }}</span>
+ </div>
+ <img class="date-clear" src="@/assets/images/icon-clear-red.svg" />
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ switchTimeScale: {
+ type: Function,
+ required: true,
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-date-switch {
+ position: relative;
+
+ height: 48px;
+ padding: 0 16px 0 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ gap: 24px;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.switch-active {
+ color: $red-brand-primary;
+ transition: ease-in 0.15s;
+}
+
+.slider {
+ position: absolute;
+ height: 0px;
+ border-bottom: 4px solid $red-brand-primary;
+ transition: ease-in 0.2s;
+ bottom: 0px;
+}
+
+.scale-item {
+ cursor: pointer;
+}
+
+.scale-item:nth-child(1).switch-active ~ .slider {
+ width: 92px;
+ left: 31px;
+}
+
+.scale-item:nth-child(2).switch-active ~ .slider {
+ left: 135px;
+ width: 105px;
+}
+
+.scale-item:nth-child(3).switch-active ~ .slider {
+ left: 255px;
+ width: 112px;
+}
+
+.scale-item:nth-child(4).switch-active ~ .slider {
+ left: 383px;
+ width: 107px;
+}
+
+.scale-item:nth-child(5).switch-active ~ .slider {
+ left: 508px;
+ width: 90px;
+}
+
+.date-picker {
+ display: flex;
+ align-items: center;
+ gap: 9px;
+}
+
+.date-clear {
+ margin-left: auto;
+ cursor: pointer;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/InventoryControlSystem.vue b/src/components/_sila/Global/SilaComponents/InventoryControlSystem.vue
new file mode 100644
index 00000000..18f1d9ff
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/InventoryControlSystem.vue
@@ -0,0 +1,195 @@
+<template>
+ <page-section class="system-control-section">
+ <div class="system-control__table">
+ <div class="system-control__table__row">
+ <div class="system-control__table__cell">
+ <div>
+ <span class="semi-bold-12px">
+ {{ $t('SystemDescription.title.ReloadServer') }}
+ </span>
+ </div>
+ <popover
+ id="popover-reactive-1"
+ description="SystemDescription.ReloadOSAndServer"
+ popup="SystemDescription.ReloadOSAndServer_popup"
+ />
+ <popover
+ id="popover-reactive-2"
+ description="SystemDescription.ReloadServer"
+ popup="SystemDescription.ReloadServer_popup"
+ />
+ <div>
+ <span class="regular-12px underline" @click="redirectConsole">
+ {{ $t('SystemDescription.ConnectToDesktop') }}
+ </span>
+ </div>
+ </div>
+
+ <div class="system-control__table__cell system-control__table__cell__2">
+ <div class="reload-progress__container">
+ <span class="regular-12px">
+ {{ $t('SystemDescription.status') }}
+ </span>
+ <span class="semi-bold-12px progress_bar_percent"
+ >{{ progress1.value }}%</span
+ >
+ <b-progress
+ class="reload-progress"
+ :value="progress1.value"
+ ></b-progress>
+ </div>
+ <div class="reload-progress__container">
+ <span class="regular-12px">
+ {{ $t('SystemDescription.status') }}
+ </span>
+ <span
+ v-if="progress2.value === null"
+ class="semi-bold-12px progress_bar_percent"
+ >{{ $t('SystemDescription.NotRunning') }}</span
+ >
+ <span v-else class="semi-bold-12px progress_bar_percent"
+ >{{ progress2.value }}%</span
+ >
+ <b-progress
+ class="reload-progress"
+ :value="progress2.value"
+ ></b-progress>
+ </div>
+ </div>
+
+ <div class="system-control__table__cell">
+ <div>
+ <span class="semi-bold-12px">
+ {{ $t('SystemDescription.title.OnOffServer') }}
+ </span>
+ </div>
+ <div>
+ <popover
+ id="popover-reactive-3"
+ description="SystemDescription.OffOsAndServer"
+ popup="SystemDescription.OffOsAndServer_popup"
+ button="global.action.off"
+ />
+ <popover
+ id="popover-reactive-4"
+ description="SystemDescription.OffServer"
+ popup="SystemDescription.OffServer_popup"
+ button="global.action.off"
+ />
+ </div>
+ </div>
+ </div>
+ <div class="system-control__table__row">
+ <div class="system-control__table__cell system-control__table__cell__4">
+ <div>
+ <span class="semi-bold-12px">
+ {{ $t('SystemDescription.title.setupDatetime') }}
+ </span>
+ </div>
+ <b-form @submit.prevent="onResetSubmit">
+ <b-form-radio-group
+ v-model="timeOption"
+ class="system-control__radio regular-12px"
+ >
+ <b-form-radio variant="radio" value="NTP">
+ {{ $t('SystemDescription.GetNtpFromServer') }}
+ </b-form-radio>
+ <b-form-radio variant="radio" value="serverDate">
+ {{ $t('SystemDescription.UseServerDatettime') }}
+ </b-form-radio>
+ </b-form-radio-group>
+ </b-form>
+ <ntp-popover
+ id="popover-reactive-5"
+ description="SystemDescription.NtpSettings"
+ />
+ </div>
+ </div>
+ </div>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import Popover from '@/components/Global/Popover';
+import NtpPopover from '@/components/Global/SilaComponents/NtpPopover';
+
+export default {
+ components: {
+ PageSection,
+ NtpPopover,
+ Popover,
+ },
+ data() {
+ return {
+ timeOption: 'resetBios',
+ picked: '',
+ options: [
+ { text: 'Toggle this custom radio', value: 'first' },
+ { text: 'Or toggle this other custom radio', value: 'second' },
+ ],
+ progress1: {
+ value: 90,
+ },
+ progress2: {
+ value: null,
+ },
+ };
+ },
+ methods: {
+ redirectConsole() {
+ this.$router.push('/console/kvm');
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+a {
+ list-style-type: none;
+}
+
+.system-control-section {
+ position: relative;
+ margin: 16px 2rem 2rem !important;
+ width: 90%;
+}
+
+.system-control__table__row {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ width: 85%;
+}
+
+.system-control__table__cell {
+ display: flex;
+ flex-flow: column nowrap;
+ align-items: flex-start;
+ row-gap: 6px;
+}
+
+.system-control__table__cell__2 {
+ margin-top: 37px;
+ row-gap: 14px;
+}
+
+.reload-progress__container {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+ width: 100%;
+ column-gap: 4px;
+}
+
+.semi-bold-12px {
+ display: inline-block;
+}
+
+label {
+ padding-top: 5px;
+}
+.system-control__table__cell__4 {
+ margin-top: 26px;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/NtpPopover.vue b/src/components/_sila/Global/SilaComponents/NtpPopover.vue
new file mode 100644
index 00000000..0b476f72
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/NtpPopover.vue
@@ -0,0 +1,132 @@
+<template>
+ <div id="my-container">
+ <span :id="id" class="regular-12px underline" variant="primary">
+ {{ $t(description) }}
+ </span>
+ <!-- Our popover title and content render container -->
+ <b-popover
+ :target="id"
+ placement="auto"
+ container="my-container"
+ :show.sync="popoverShow"
+ @show="onShow"
+ >
+ <template #title>
+ <div class="popup-title">
+ <span class="bold-16px__caps">{{ $t(description) }}</span>
+ <b-button class="popup-title__button_close" @click="onClose">
+ <img src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-button>
+ </div>
+ </template>
+
+ <div class="popup-body">
+ <div class="popup-body__input-container">
+ <span class="regular-12px tretiatry"
+ >Введите адрес сервера (IP, FQDM)</span
+ >
+ <b-form-input
+ id="popover-input-1"
+ v-model="input1"
+ class="medium-12px"
+ ></b-form-input>
+ </div>
+ <b-button class="popup-button" variant="primary" @click="onClose">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ </b-popover>
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ description: {
+ type: String,
+ default: '',
+ },
+ id: {
+ type: String,
+ default: '',
+ },
+ button: {
+ type: String,
+ default: 'Reload',
+ },
+ },
+ data() {
+ return {
+ input1: '',
+ popoverShow: false,
+ };
+ },
+ methods: {
+ onShow() {
+ this.$root.$emit('bv::hide::popover');
+ },
+ onClose() {
+ this.popoverShow = false;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.form-group {
+ margin: 0;
+}
+
+.popup-title {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: baseline;
+}
+
+.popup-title__button_close {
+ margin: 0 28px 0 auto;
+ background: none;
+ border: none;
+ &:active {
+ background-color: $faint-secondary-primary-5-hover !important;
+ box-shadow: none !important;
+ border-radius: 8px;
+ }
+ &:focus-visible {
+ border: none !important;
+ border-radius: 8px;
+ }
+ &:focus {
+ box-shadow: none;
+ border-radius: 8px;
+ }
+}
+
+.popup-body {
+ display: flex;
+ flex-direction: column;
+ align-content: center;
+ justify-content: center;
+}
+
+.form-control {
+ width: 341px;
+ height: 52px;
+ margin: -25px auto;
+ padding-top: 30px;
+}
+
+.popup-button {
+ width: 341px;
+ height: 40px;
+ margin: 0 auto 10px;
+}
+
+.popup-body__input-container {
+ height: 52px;
+ margin: 24px auto 16px auto;
+}
+
+.tretiatry {
+ margin-left: 12px;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/PopoverWithSlot.vue b/src/components/_sila/Global/SilaComponents/PopoverWithSlot.vue
new file mode 100644
index 00000000..4c908083
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/PopoverWithSlot.vue
@@ -0,0 +1,228 @@
+<template>
+ <div id="popover-container">
+ <slot />
+ <b-popover
+ ref="popover"
+ :target="id"
+ triggers="focus"
+ :show.sync="popoverShow"
+ :placement="placement"
+ container="popover-container"
+ @show="onShow"
+ @shown="onShown"
+ @hidden="onHidden"
+ >
+ <template #title>
+ <div class="popup-title">
+ <span class="bold-16px__caps">{{ popupLabel }}</span>
+ <b-button class="popup-title__button_close" @click="onClose">
+ <img src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-button>
+ </div>
+ </template>
+
+ <div class="popup-body">
+ <div>
+ <label class="light-12px" style="margin-right: 5px">{{
+ 'HEX для ввода'
+ }}</label>
+ <img
+ id="popover-tooltip"
+ src="@/assets/images/_sila/popups/red-sign.svg"
+ />
+ <popover-info
+ id="popover-tooltip"
+ description="Введите HEX в поле для подтверждения действия"
+ />
+ <div class="hex-label">
+ <span class="medium-12px"> 9c1735b3f819142393146a5d03314f0a </span>
+ </div>
+ </div>
+ <div class="popup-body__input-container">
+ <span style="margin-left: 12px" class="regular-12px tretiatry"
+ >Поле для ввода</span
+ >
+ <b-form-input
+ id="popover-input-1"
+ ref="input"
+ v-model="input"
+ class="medium-12px"
+ ></b-form-input>
+ </div>
+ <b-button
+ class="popup-button"
+ variant="primary"
+ :disabled="!input"
+ @click="onOk"
+ >
+ {{ buttonLabel }}
+ </b-button>
+ </div>
+ </b-popover>
+ </div>
+</template>
+
+<script>
+import PopoverInfo from '../PopoverInfo';
+import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
+export default {
+ components: {
+ PopoverInfo,
+ },
+ mixins: [BVToastMixin],
+ props: {
+ id: {
+ type: String,
+ default: '',
+ },
+ placement: {
+ type: String,
+ default: 'auto',
+ },
+ popupLabel: {
+ type: String,
+ default: '',
+ },
+ buttonLabel: {
+ type: String,
+ default: 'global.action.reload',
+ },
+ action: {
+ type: Function,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ input: '',
+ popoverShow: false,
+ };
+ },
+ methods: {
+ onClose() {
+ this.popoverShow = false;
+ },
+ onOk() {
+ if (this.input === '9c1735b3f819142393146a5d03314f0a') {
+ this.action();
+ this.onClose();
+ } else {
+ this.warningToast(
+ this.$t('Неправильный HEX в поле для подтверждения действия'),
+ {
+ title: this.$t('Неправильный НЕХ'),
+ }
+ );
+ }
+ },
+ onShow() {
+ // This is called just before the popover is shown
+ // Reset our popover form variables
+ this.$root.$emit('bv::hide::popover');
+ this.input = '';
+ },
+ onShown() {
+ // Called just after the popover has been shown
+ // Transfer focus to the first input
+ this.focusRef(this.$refs.input);
+ },
+ onHidden() {
+ // Called just after the popover has finished hiding
+ // Bring focus back to the button
+ // this.focusRef(this.$refs.button);
+ },
+ focusRef(ref) {
+ // Some references may be a component, functional component, or plain element
+ // This handles that check before focusing, assuming a `focus()` method exists
+ // We do this in a double `$nextTick()` to ensure components have
+ // updated & popover positioned first
+ this.$nextTick(() => {
+ this.$nextTick(() => {
+ (ref.$el || ref).focus();
+ });
+ });
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.form-group {
+ margin: 0;
+}
+
+.popup-title {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: baseline;
+}
+
+.popup-title__button_close {
+ margin: 0 28px 0 auto;
+ background: none;
+ border: none;
+ height: 25px;
+ &:active {
+ background-color: $faint-secondary-primary-5-hover !important;
+ box-shadow: none !important;
+ border-radius: 8px;
+ }
+ &:focus-visible {
+ border: none !important;
+ border-radius: 8px;
+ }
+ &:focus {
+ box-shadow: none;
+ border-radius: 8px;
+ }
+}
+
+.popup-body {
+ display: flex;
+ flex-direction: column;
+ align-content: center;
+ justify-content: center;
+ align-items: center;
+}
+
+.form-control {
+ width: 341px;
+ height: 52px;
+ margin: -25px auto;
+ padding-top: 30px;
+}
+
+.hex-label {
+ height: 32px;
+ width: 341px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background: $faint-secondary-primary-5;
+ border-radius: 8px;
+ border: none;
+ margin: 0 auto;
+}
+
+.popup-button {
+ width: 341px;
+ height: 40px;
+ margin-bottom: 10px;
+}
+
+.popup-body__input-container {
+ height: 52px;
+ margin: 24px auto 16px auto;
+}
+
+.popover-info {
+ background-color: $on-surface-primary;
+ // border: 1px solid $text-primary;
+ // box-shadow: 0px 6px 16px -12px rgba(23, 40, 77, 0.06);
+ border-radius: 8px;
+ width: 168px;
+ height: 76px;
+ &.arrow {
+ display: block;
+ }
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/Tables/AccessoryTable.vue b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTable.vue
new file mode 100644
index 00000000..4cb64929
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTable.vue
@@ -0,0 +1,88 @@
+<template>
+ <section class="bootstrap-table__section">
+ <b-table
+ id="table-accessory"
+ responsive="md"
+ class="table-accessory"
+ no-border-collapse
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../colors';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/Tables/AccessoryTableDrivers.vue b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTableDrivers.vue
new file mode 100644
index 00000000..1f511ffc
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTableDrivers.vue
@@ -0,0 +1,90 @@
+<template>
+ <section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-accessory"
+ no-border-collapse
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../colors';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/Tables/AccessoryTablePower.vue b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTablePower.vue
new file mode 100644
index 00000000..4e957c6e
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTablePower.vue
@@ -0,0 +1,91 @@
+<template>
+ <section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-accessory"
+ no-border-collapse
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ <img src="@/assets/images/power-error-icon.svg" />
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../../../../views/Processors/DynamicInfo/helpers';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue
new file mode 100644
index 00000000..37de1c6b
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue
@@ -0,0 +1,99 @@
+<template>
+ <section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-accessory"
+ no-border-collapse
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors: [],
+ };
+ },
+ watch: {
+ 'records.items'(value) {
+ if (value && value.length > 0) {
+ this.colors = this.$randomColor({
+ count: value.length,
+ hue: 'random',
+ luminosity: 'random',
+ });
+ }
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/TwoChiocePopover.vue b/src/components/_sila/Global/SilaComponents/TwoChiocePopover.vue
new file mode 100644
index 00000000..c89c5a81
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/TwoChiocePopover.vue
@@ -0,0 +1,117 @@
+<template>
+ <b-popover
+ :placement="placement"
+ triggers="focus"
+ :show.sync="show"
+ custom-class="popover-heigth-100"
+ :target="`popover-choice-${id}`"
+ @hidden="onHidden"
+ >
+ <b-button
+ id="popover-choice-button"
+ variant="popover"
+ :class="{ 'selected-choice-button': scale === topPosition }"
+ @mouseover="scale = topPosition"
+ @click="
+ () => {
+ show = false;
+ firstAction();
+ }
+ "
+ >
+ {{ fitstOption }}
+ </b-button>
+ <b-button
+ id="popover-choice-button"
+ variant="popover"
+ :class="{ 'selected-choice-button': scale === bottomPosition }"
+ @mouseover="scale = bottomPosition"
+ @click="
+ () => {
+ show = false;
+ secondAction();
+ }
+ "
+ >
+ {{ secondOption }}
+ </b-button>
+ <div class="slider" :style="`left: 5px; top: ${scale}px;`"></div>
+ </b-popover>
+</template>
+
+<script>
+export default {
+ props: {
+ id: {
+ type: Number,
+ default: null,
+ },
+ fitstOption: {
+ type: String,
+ default: null,
+ },
+ secondOption: {
+ type: String,
+ default: null,
+ },
+ chosenOption: {
+ type: String,
+ default: null,
+ },
+ firstAction: {
+ type: Function,
+ default: null,
+ },
+ secondAction: {
+ type: Function,
+ default: null,
+ },
+ placement: {
+ type: String,
+ default: 'bottom',
+ },
+ },
+ data() {
+ return {
+ topPosition: 5,
+ bottomPosition: 33,
+ show: false,
+ scale: 5,
+ };
+ },
+ methods: {
+ onHidden() {
+ if (this.secondOption === this.chosenOption) {
+ this.scale = this.bottomPosition;
+ } else {
+ this.scale = this.topPosition;
+ }
+ },
+ },
+};
+</script>
+<style lang="scss">
+#popover-unit-ractive {
+ padding-left: 5px;
+}
+
+.hovered-unit-button {
+ color: $white;
+}
+</style>
+<style lang="scss" scoped>
+#popover-choice-button {
+ width: 89px;
+}
+
+.slider {
+ width: 89px;
+ height: 28px;
+ border-radius: 8px;
+ background-color: $red-brand-primary;
+ box-shadow: 1px 2px 4px -1px rgb(79 37 37 / 40%) inset;
+ position: absolute;
+ transition: ease-in 0.2s;
+ z-index: -1;
+}
+</style>
diff --git a/src/components/_sila/Global/SilaComponents/colors.js b/src/components/_sila/Global/SilaComponents/colors.js
new file mode 100644
index 00000000..de832de2
--- /dev/null
+++ b/src/components/_sila/Global/SilaComponents/colors.js
@@ -0,0 +1,8 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
diff --git a/src/components/_sila/Global/StatusIcon.vue b/src/components/_sila/Global/StatusIcon.vue
index 4552633e..8f9e3d53 100644
--- a/src/components/_sila/Global/StatusIcon.vue
+++ b/src/components/_sila/Global/StatusIcon.vue
@@ -9,20 +9,20 @@
</template>
<script>
-import IconInfo from '@carbon/icons-vue/es/information--filled/20';
-import IconCheckmark from '@carbon/icons-vue/es/checkmark--filled/20';
-import IconWarning from '@carbon/icons-vue/es/warning--filled/20';
-import IconError from '@carbon/icons-vue/es/error--filled/20';
-import IconMisuse from '@carbon/icons-vue/es/misuse/20';
+import IconInfo from '@carbon/icons-vue/es/information/20';
+import IconCheckmark from '@carbon/icons-vue/es/checkmark--outline/20';
+import IconWarning from '@carbon/icons-vue/es/warning/20';
+import IconError from '@carbon/icons-vue/es/error--outline/20';
+import IconMisuse from '@carbon/icons-vue/es/misuse--outline/20';
export default {
name: 'StatusIcon',
components: {
IconInfo: IconInfo,
iconSuccess: IconCheckmark,
- iconDanger: IconMisuse,
iconSecondary: IconError,
iconWarning: IconWarning,
+ iconDanger: IconMisuse,
},
props: {
status: {
diff --git a/src/components/_sila/Global/TableCellCount.vue b/src/components/_sila/Global/TableCellCount.vue
index acb4d443..e64475bc 100644
--- a/src/components/_sila/Global/TableCellCount.vue
+++ b/src/components/_sila/Global/TableCellCount.vue
@@ -1,5 +1,5 @@
<template>
- <div class="mt-2">
+ <div class="semi-bold-14px">
<p v-if="!filterActive">
{{ $t('global.table.items', { count: totalNumberOfCells }) }}
</p>
diff --git a/src/components/_sila/Global/TableDateFilter.vue b/src/components/_sila/Global/TableDateFilter.vue
index aa10cb5c..49e4b8ff 100644
--- a/src/components/_sila/Global/TableDateFilter.vue
+++ b/src/components/_sila/Global/TableDateFilter.vue
@@ -1,9 +1,10 @@
<template>
- <b-row class="mb-2">
+ <b-row class="mb-2 mt-2">
<b-col class="d-sm-flex">
<b-form-group
:label="$t('global.table.fromDate')"
label-for="input-from-date"
+ label-class="caption-12px mb-0"
class="mr-3 my-0 w-100"
>
<b-input-group>
@@ -12,7 +13,7 @@
v-model="fromDate"
placeholder="YYYY-MM-DD"
:state="getValidationState($v.fromDate)"
- class="form-control-with-button mb-3 mb-md-0"
+ class="form-control-with-button mb-md-0"
@blur="$v.fromDate.$touch()"
/>
<b-form-invalid-feedback role="alert">
@@ -50,6 +51,7 @@
<b-form-group
:label="$t('global.table.toDate')"
label-for="input-to-date"
+ label-class="caption-12px mb-0"
class="my-0 w-100"
>
<b-input-group>
@@ -101,7 +103,7 @@
import IconCalendar from '@carbon/icons-vue/es/calendar/20';
import { helpers } from 'vuelidate/lib/validators';
-import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js';
const isoDateRegex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/;
diff --git a/src/components/_sila/Global/TableToolbar.vue b/src/components/_sila/Global/TableToolbar.vue
index 5235feae..4137d98c 100644
--- a/src/components/_sila/Global/TableToolbar.vue
+++ b/src/components/_sila/Global/TableToolbar.vue
@@ -7,7 +7,7 @@
</p>
<div class="toolbar-actions d-flex">
<slot name="toolbar-buttons"></slot>
- <b-button
+ <!-- <b-button
v-for="(action, index) in actions"
:key="index"
:data-test-id="`table-button-${action.value}Selected`"
@@ -16,14 +16,14 @@
@click="$emit('batch-action', action.value)"
>
{{ action.label }}
- </b-button>
- <b-button
+ </b-button> -->
+ <!-- <b-button
variant="secondary"
class="d-block"
@click="$emit('clear-selected')"
>
{{ $t('global.action.cancel') }}
- </b-button>
+ </b-button> -->
</div>
</div>
</div>
@@ -67,27 +67,26 @@ export default {
},
};
</script>
-
<style lang="scss" scoped>
-$toolbar-height: 46px;
-
.toolbar-container {
- width: 100%;
- position: relative;
+ width: calc(100vw - 320px);
+ height: $toolbar-height;
+ border-radius: 0px;
+ position: fixed;
+ bottom: 0;
+ right: 0;
z-index: $zindex-dropdown + 1;
}
.toolbar-content {
- height: $toolbar-height;
- background-color: theme-color('primary');
+ background-color: $white;
color: $white;
- position: absolute;
- left: 0;
- right: 0;
- top: -$toolbar-height;
display: flex;
flex-direction: row;
+ align-items: center;
justify-content: space-between;
+ box-shadow: 0px -4px 12px rgba(0, 0, 0, 0.06);
+ border-radius: 0px;
}
.toolbar-selected {
diff --git a/src/components/_sila/Global/TableToolbarExport.vue b/src/components/_sila/Global/TableToolbarExport.vue
index 69646ea6..152a4f68 100644
--- a/src/components/_sila/Global/TableToolbarExport.vue
+++ b/src/components/_sila/Global/TableToolbarExport.vue
@@ -1,16 +1,15 @@
<template>
- <b-button
- class="d-flex align-items-center"
- variant="primary"
- :download="download"
- :href="href"
- >
- {{ $t('global.action.export') }}
+ <b-button size="md" variant="primary" :download="download" :href="href">
+ <icon-export /> {{ $t('global.action.export') }}
</b-button>
</template>
<script>
+import IconExport from '@carbon/icons-vue/es/document--export/20';
export default {
+ components: {
+ IconExport,
+ },
props: {
data: {
type: Array,
diff --git a/src/components/_sila/SubHeader/SubHeader.vue b/src/components/_sila/SubHeader/SubHeader.vue
new file mode 100644
index 00000000..086fc7b8
--- /dev/null
+++ b/src/components/_sila/SubHeader/SubHeader.vue
@@ -0,0 +1,179 @@
+<template>
+ <div>
+ <section id="sub-header">
+ <b-navbar type="dark" :aria-label="$t('appHeader.applicationHeader')">
+ <!-- top navigation menu -->
+ <b-navbar-nav>
+ <b-nav-item
+ to="/hardware-status/inventory"
+ data-test-id="appHeader-container-health"
+ class="subheader-button"
+ :class="{
+ 'active-route-top': ![
+ 'profile-settings',
+ 'information-and-faq',
+ 'support',
+ 'console-settings',
+ 'console',
+ 'operations',
+ 'security-and-access',
+ ].includes($route.path.split('/')[1]),
+ }"
+ >
+ {{ $t('subHeader.serverInfo') }}
+ </b-nav-item>
+
+ <b-nav-item
+ to="/operations/kvm"
+ data-test-id="appHeader-container-health"
+ class="subheader-button"
+ :class="{
+ 'active-route-top':
+ ''.includes($route.path.split('/console/settings')[1]) ||
+ ''.includes(
+ $route.path.split('/operations/serial-over-lan')[1]
+ ) ||
+ ''.includes($route.path.split('/operations/kvm')[1]),
+ }"
+ >
+ {{ $t('subHeader.console') }}
+ </b-nav-item>
+
+ <b-nav-item
+ to="/security-and-access/user-management"
+ data-test-id="appHeader-container-power"
+ class="subheader-button"
+ :class="{
+ 'active-route-top': ''.includes(
+ $route.path.split('security-and-access/user-management')[1]
+ ),
+ }"
+ >
+ {{ $t('subHeader.administration') }}
+ </b-nav-item>
+ <!-- Using LI elements instead of b-nav-item to support semantic button elements -->
+ </b-navbar-nav>
+ </b-navbar>
+ </section>
+ <loading-bar />
+ </div>
+</template>
+
+<script>
+import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
+import LoadingBar from '@/components/_sila/Global/LoadingBar';
+
+export default {
+ name: 'AppHeader',
+ components: {
+ LoadingBar,
+ },
+ mixins: [BVToastMixin],
+ props: {
+ routerKey: {
+ type: Number,
+ default: 0,
+ },
+ },
+ data() {
+ return {
+ isNavigationOpen: false,
+ };
+ },
+ computed: {
+ isNavTagPresent() {
+ return this.assetTag || this.modelType || this.serialNumber;
+ },
+ },
+ mounted() {
+ this.$root.$on(
+ 'change-is-navigation-open',
+ (isNavigationOpen) => (this.isNavigationOpen = isNavigationOpen)
+ );
+ },
+ methods: {
+ toggleNavigation() {
+ this.$root.$emit('toggle-navigation');
+ },
+ setFocus(event) {
+ event.preventDefault();
+ this.$root.$emit('skip-navigation');
+ },
+ },
+};
+</script>
+
+<style lang="scss">
+@mixin focus-box-shadow($padding-color: $navbar-color, $outline-color: $white) {
+ box-shadow: inset 0 0 0 3px $padding-color, inset 0 0 0 5px $outline-color;
+}
+.sub-header {
+ height: $second-header-height;
+
+ .subheader-button {
+ margin-left: 10px;
+ }
+
+ .navbar-text,
+ .nav-link,
+ .btn-link {
+ border-radius: 14% 14% 0px 0px;
+ padding: 0.68rem 1rem !important;
+
+ &:hover {
+ background-color: $white;
+ color: #1a3e5b !important;
+ border-radius: 14% 14% 0px 0px;
+ }
+ &:active {
+ background-color: $white;
+ color: #1a3e5b !important;
+ border-radius: 14% 14% 0px 0px;
+ }
+ }
+
+ .navbar {
+ padding: 0;
+ background-color: $navbar-color;
+ @include media-breakpoint-up($responsive-layout-bp) {
+ height: $second-header-height;
+ }
+
+ .helper-menu {
+ @include media-breakpoint-down(sm) {
+ width: 100%;
+ justify-content: flex-end;
+ .nav-link,
+ .btn {
+ padding: $spacer / 1.125 $spacer / 2;
+ margin-left: 10px;
+ }
+ }
+ }
+ }
+
+ .navbar-nav {
+ align-items: baseline;
+ padding-left: 24px;
+ .nav-tags {
+ @include media-breakpoint-down(xs) {
+ @include sr-only;
+ }
+ .asset-tag {
+ @include media-breakpoint-down($responsive-layout-bp) {
+ @include sr-only;
+ }
+ }
+ }
+ }
+}
+#sub-header .nav-item.active-route-top > a {
+ background-color: $white;
+ color: #1a3e5b;
+ border-radius: 14% 14% 0px 0px;
+}
+
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(255, 255, 255, 1);
+}
+</style>
diff --git a/src/components/_sila/SubHeader/index.js b/src/components/_sila/SubHeader/index.js
new file mode 100644
index 00000000..ad26fced
--- /dev/null
+++ b/src/components/_sila/SubHeader/index.js
@@ -0,0 +1 @@
+export { default } from './SubHeader.vue';
diff --git a/src/layouts/_sila/AppLayout.vue b/src/layouts/_sila/AppLayout.vue
index 7ce1c806..53fae569 100644
--- a/src/layouts/_sila/AppLayout.vue
+++ b/src/layouts/_sila/AppLayout.vue
@@ -2,10 +2,11 @@
<div class="app-container">
<app-header
ref="focusTarget"
+ :key="routerKey"
class="app-header"
- :router-key="routerKey"
@refresh="refresh"
/>
+ <sub-header ref="focusTarget" class="sub-header" :router-key="routerKey" />
<app-navigation class="app-navigation" />
<page-container class="app-content">
<router-view ref="routerView" :key="routerKey" />
@@ -17,6 +18,7 @@
<script>
import AppHeader from '@/components/_sila/AppHeader';
+import SubHeader from '@/components/_sila/SubHeader';
import AppNavigation from '@/components/_sila/AppNavigation';
import PageContainer from '@/components/_sila/Global/PageContainer';
import ButtonBackToTop from '@/components/_sila/Global/ButtonBackToTop';
@@ -26,6 +28,7 @@ export default {
name: 'App',
components: {
AppHeader,
+ SubHeader,
AppNavigation,
PageContainer,
ButtonBackToTop,
@@ -60,15 +63,17 @@ export default {
.app-container {
display: grid;
grid-template-columns: 100%;
- grid-template-rows: auto;
+ grid-template-rows: $first-header-height $second-header-height 1fr;
grid-template-areas:
'header'
+ 'subheader'
'content';
@include media-breakpoint-up($responsive-layout-bp) {
grid-template-columns: $navigation-width 1fr;
grid-template-areas:
'header header'
+ 'subheader subheader'
'navigation content';
}
}
@@ -80,7 +85,16 @@ export default {
z-index: $zindex-fixed + 1;
}
+.sub-header {
+ grid-area: subheader;
+ position: sticky;
+ top: $first-header-height;
+ z-index: $zindex-fixed - 1;
+}
+
.app-navigation {
+ overflow: auto;
+ scrollbar-gutter: auto;
grid-area: navigation;
}
diff --git a/src/layouts/_sila/LoginLayout.vue b/src/layouts/_sila/LoginLayout.vue
index cdff2040..d4e072c8 100644
--- a/src/layouts/_sila/LoginLayout.vue
+++ b/src/layouts/_sila/LoginLayout.vue
@@ -1,33 +1,26 @@
<template>
<main>
<div class="login-container">
- <div class="login-main">
- <div>
- <div class="login-brand mb-5">
- <img
- width="90px"
- src="@/assets/images/login-company-logo.svg"
- :alt="altLogo"
- />
- </div>
- <h1 v-if="customizableGuiName" class="h3 mb-5">
- {{ customizableGuiName }}
- </h1>
- <router-view class="login=form form-background" />
- </div>
- </div>
<div class="login-aside">
- <div class="login-aside__logo-brand">
- <!-- Add Secondary brand logo if needed -->
- </div>
- <div class="login-aside__logo-bmc">
- <img
- height="60px"
- src="@/assets/images/built-on-openbmc-logo.svg"
- alt="Built on OpenBMC"
- />
- </div>
+ <img
+ class="login-aside__picture"
+ src="@/assets/images/_sila/login/autrorization-left-image.svg"
+ />
+ <img
+ class="login-aside__vector1"
+ src="@/assets/images/_sila/login/vector1.svg"
+ />
+ </div>
+ <div class="login-main">
+ <!-- <h1 v-if="customizableGuiName">
+ {{ customizableGuiName }}
+ </h1> -->
+ <router-view class="login=form form-background" />
</div>
+ <img
+ class="login-aside__vector2"
+ src="@/assets/images/_sila/login/vector2.svg"
+ />
</div>
</main>
</template>
@@ -37,7 +30,6 @@ export default {
name: 'LoginLayout',
data() {
return {
- altLogo: process.env.VUE_APP_COMPANY_NAME || 'OpenBMC',
customizableGuiName: process.env.VUE_APP_GUI_NAME || '',
};
},
@@ -46,67 +38,74 @@ export default {
<style lang="scss" scoped>
.login-container {
- background: gray('100');
+ background: $white;
display: flex;
- flex-direction: column;
- gap: $spacer * 2;
- max-width: 1400px;
+ flex-direction: row;
min-width: 320px;
min-height: 100vh;
- justify-content: space-around;
+ justify-content: flex-start;
+}
- @include media-breakpoint-up('md') {
- background: $white;
- flex-direction: row;
- }
+.login-aside {
+ min-height: 100vh;
+ width: 480px;
}
-.login-main {
- min-height: 50vh;
- padding: $spacer * 3;
+.login-aside__picture {
+ height: 100vh;
+ width: 480px;
+ object-fit: cover;
+}
- @include media-breakpoint-up('md') {
- background: gray('100');
- display: flex;
- flex-direction: column;
- flex: 1 1 75%;
- min-height: 100vh;
- justify-content: center;
- align-items: center;
- }
+.login-aside__vector1 {
+ position: absolute;
+ top: 0%;
+ left: 0%;
}
-.login-form {
- @include media-breakpoint-up('md') {
- max-width: 360px;
- }
+.login-aside__vector2 {
+ position: absolute;
+ bottom: 32px;
+ right: 32px;
}
-.login-aside {
+.login-main {
display: flex;
- align-items: flex-end;
- justify-content: flex-end;
- gap: $spacer * 1.5;
- margin-right: $spacer * 3;
- margin-bottom: $spacer;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ min-height: 100vh;
+ width: calc(100vw - 480px);
+ margin: 0;
+ padding: 0;
+}
+
+@media (max-width: 992px) {
+ .login-container {
+ flex-direction: column;
+
+ .login-aside {
+ width: 100%;
+ min-height: 40vh;
+ height: 40vh;
+
+ .login-aside__picture {
+ width: 100%;
+ height: 40vh;
+ }
+ }
- @include media-breakpoint-up('md') {
- min-height: 100vh;
- padding-bottom: $spacer;
- flex: 1 1 25%;
- margin-bottom: 0;
+ .login-main {
+ width: 100%;
+ min-height: 40vh;
+ height: 40vh;
+ }
}
}
-.login-aside__logo-brand:not(:empty) {
- &::after {
- content: '';
- display: inline-block;
- height: 2.5rem;
- width: 2px;
- background-color: gray('200');
- margin-left: $spacer * 1.5;
- vertical-align: middle;
+@media (max-width: 576px) {
+ .login-form {
+ width: 90%;
}
}
</style>
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index e43167c6..39dcab18 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -596,6 +596,8 @@
}
},
"pageLogin": {
+ "auth": "Authorization",
+ "authDescription": "Enter your credentials",
"language": "Language",
"logIn": "Log in",
"password": "Password",
diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json
index 62eb5359..24fa76d3 100644
--- a/src/locales/ru-RU.json
+++ b/src/locales/ru-RU.json
@@ -596,6 +596,8 @@
}
},
"pageLogin": {
+ "auth": "Авторизация",
+ "authDescription": "Введите данные для входа в систему",
"language": "Язык",
"logIn": "Войти",
"password": "Пароль",
diff --git a/src/views/_sila/BMC/Configuration/BMCConfiguration.vue b/src/views/_sila/BMC/Configuration/BMCConfiguration.vue
new file mode 100644
index 00000000..111fa81a
--- /dev/null
+++ b/src/views/_sila/BMC/Configuration/BMCConfiguration.vue
@@ -0,0 +1,105 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.description.configuration')" />
+ <!-- BMC table -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_1
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ {{ $t('BMC.BmcTitle') }}
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_1" visible class="nav-item__nav">
+ <span class="semi-bold-12px">{{ $t('BMC.BmcTable') }}</span>
+ <b-m-c-configuration-table />
+ <span class="semi-bold-12px">{{ $t('BMC.Bios') }}</span>
+ <div>
+ <span class="regular-12px bmc-configuration__bios-version">{{
+ $t('BMC.BiosV')
+ }}</span>
+ <span class="medium-12px">V 3.2.10.0</span>
+ </div>
+ </b-collapse>
+ </div>
+ <!-- Control -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_2
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ {{ $t('BMC.ControlTitle') }}
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_2" visible class="nav-item__nav">
+ <b-m-c-configuration-control />
+ </b-collapse>
+ </div>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import BMCConfigurationTable from './BMCConfigurationTable';
+import BMCConfigurationControl from './BMCConfigurationControl';
+import PageSection from '@/components/Global/PageSection';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+
+export default {
+ components: {
+ PageTitle,
+ BMCConfigurationControl,
+ BMCConfigurationTable,
+ PageSection,
+ },
+ mixins: [LoadingBarMixin],
+ data() {
+ return {
+ text: '',
+ iconChevronUp: iconChevronUp,
+ };
+ },
+ created() {
+ this.startLoader();
+ const bmcManagerTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-bmc-manager-complete', () => resolve());
+ });
+ Promise.all([bmcManagerTablePromise]).finally(() => this.endLoader());
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+
+.nav-item {
+ list-style-type: none;
+}
+
+.semi-bold-12px {
+ display: inline-block;
+ padding: 16px 0 0 2rem;
+}
+
+.bmc-configuration__bios-version {
+ display: inline-block;
+ color: #0c1c29;
+ padding: 8px 2px 2rem 2rem;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+</style>
diff --git a/src/views/_sila/BMC/Configuration/BMCConfigurationControl.vue b/src/views/_sila/BMC/Configuration/BMCConfigurationControl.vue
new file mode 100644
index 00000000..e75b5f7d
--- /dev/null
+++ b/src/views/_sila/BMC/Configuration/BMCConfigurationControl.vue
@@ -0,0 +1,121 @@
+<template>
+ <page-section class="bmc-control-section">
+ <div class="bmc-control__table">
+ <div class="bmc-control__table__cell">
+ <div>
+ <span class="semi-bold-12px"> {{ $t('BMC.ControlBmc') }} </span>
+ </div>
+ <popover
+ id="popover-reactive-1"
+ description="BMC.ReloadBmc"
+ popup="BMC.ReloadBmc_popup"
+ button="BMC.ReloadBmc"
+ :action="rebootBmc"
+ />
+ <settings-import-popup
+ id="popover-reactive-2"
+ description="BMC.ExportImport"
+ popup="BMC.ExportImport"
+ button="BMC.ExportImport_button"
+ />
+ <div>
+ <span
+ class="regular-12px underline"
+ @click="redirectNetworkParametrs"
+ >{{ $t('BMC.Parametrs') }}</span
+ >
+ </div>
+ </div>
+
+ <div class="bmc-control__table__cell">
+ <div>
+ <span class="semi-bold-12px">{{ $t('BMC.microcode') }}</span>
+ </div>
+ <b-button variant="unstyled" class="p-0" @click="redirectUpdateBmc">
+ <img src="@/assets/images/icon-reload-red.svg" />
+ <span style="margin-left: 5px" class="regular-12px red">{{
+ $t('BMC.ReloadMicrocodeBios')
+ }}</span>
+ </b-button>
+ </div>
+ </div>
+ </page-section>
+</template>
+
+<script>
+import SettingsImportPopup from './SettingsImportPopup';
+import PageSection from '@/components/Global/PageSection';
+import Popover from '@/components/Global/Popover';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+export default {
+ components: {
+ PageSection,
+ Popover,
+ SettingsImportPopup,
+ },
+ mixins: [BVToastMixin],
+ data() {
+ return {
+ timeOption: 'resetBios',
+ picked: '',
+ options: [
+ { text: 'Toggle this custom radio', value: 'first' },
+ { text: 'Or toggle this other custom radio', value: 'second' },
+ ],
+ progress1: {
+ value: 90,
+ },
+ progress2: {
+ value: null,
+ },
+ };
+ },
+ methods: {
+ redirectNetworkParametrs() {
+ this.$router.push('/network-parametrs');
+ },
+ redirectUpdateBmc() {
+ this.$router.push('/operations/firmware');
+ },
+ rebootBmc() {
+ this.$store
+ .dispatch('controls/rebootBmc')
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+a {
+ list-style-type: none;
+}
+
+.bmc-control-section {
+ position: relative;
+ margin: 16px 2rem 2rem;
+ width: 70%;
+}
+
+.bmc-control__table {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ width: 85%;
+}
+
+.bmc-control__table__cell {
+ display: flex;
+ flex-flow: column nowrap;
+ align-items: flex-start;
+ row-gap: 6px;
+}
+
+.semi-bold-12px {
+ display: inline-block;
+}
+
+label {
+ padding-top: 5px;
+}
+</style>
diff --git a/src/views/_sila/BMC/Configuration/BMCConfigurationTable.vue b/src/views/_sila/BMC/Configuration/BMCConfigurationTable.vue
new file mode 100644
index 00000000..f7b6d951
--- /dev/null
+++ b/src/views/_sila/BMC/Configuration/BMCConfigurationTable.vue
@@ -0,0 +1,91 @@
+<template>
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :busy="isBusy"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import PageSection from '@/components/Global/PageSection';
+
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { PageSection },
+ mixins: [BVToastMixin, TableRowExpandMixin],
+ data() {
+ return {
+ isBusy: true,
+ isAddersСolon: false,
+ fields: [
+ {
+ key: 'param',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ items: null,
+ };
+ },
+ computed: {
+ bmc() {
+ return this.$store.getters['bmc/bmc'];
+ },
+ },
+ watch: {
+ bmc() {
+ this.items = [
+ {
+ param: 'Время сервера',
+ value: this.bmc.dateTime,
+ },
+ {
+ param: 'uuid',
+ value: this.bmc.uuid,
+ },
+ {
+ param: 'Версия прошивки',
+ value: this.bmc.firmwareVersion,
+ },
+ {
+ param: 'Модель',
+ value: this.bmc.model,
+ },
+ {
+ param: 'Описание',
+ value: this.bmc.description,
+ },
+ {
+ param: 'Максимальное количество сессий',
+ value: this.bmc.graphicalConsoleMaxSessions,
+ },
+ ];
+ },
+ },
+ created() {
+ this.$store.dispatch('bmc/getBmcInfo').finally(() => {
+ this.$root.$emit('hardware-status-bmc-manager-complete');
+ this.isBusy = false;
+ });
+ },
+};
+</script>
diff --git a/src/views/_sila/BMC/Configuration/SettingsImportPopup.vue b/src/views/_sila/BMC/Configuration/SettingsImportPopup.vue
new file mode 100644
index 00000000..3807a694
--- /dev/null
+++ b/src/views/_sila/BMC/Configuration/SettingsImportPopup.vue
@@ -0,0 +1,291 @@
+<template>
+ <div id="my-container">
+ <span
+ :id="id"
+ ref="button"
+ class="regular-12px underline"
+ variant="primary"
+ >
+ {{ $t(description) }}
+ </span>
+ <!-- Our popover title and content render container -->
+ <b-popover
+ id="export-popup"
+ ref="popover"
+ :target="id"
+ triggers="click"
+ :show.sync="popoverShow"
+ placement="auto"
+ container="my-container"
+ @show="onShow"
+ @shown="onShown"
+ @hidden="onHidden"
+ >
+ <template #title>
+ <div class="popup-title">
+ <span class="semi-bold-20px">{{ $t(popup) }}</span>
+ <b-button class="popup-title__button_close" @click="onClose">
+ <img src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-button>
+ </div>
+ </template>
+ <div class="popup-switch">
+ <span
+ class="medium-16px popup-item"
+ :class="{ 'switch-active': isExport }"
+ @click="switchExport"
+ >{{ $t('global.action.export') }}</span
+ >
+ <span
+ class="medium-16px popup-item"
+ :class="{ 'switch-active': !isExport }"
+ @click="switchImport"
+ >{{ $t('global.action.import') }}</span
+ >
+ <div class="slider" />
+ </div>
+ <div v-if="isExport" class="popup-body">
+ <div class="ip-container">
+ <span class="regular-16px"
+ >Оставить IP адрес из настроек сервера</span
+ >
+ <b-form-checkbox switch> </b-form-checkbox>
+ </div>
+ <b-button class="popover-button" variant="primary" @click="onClose">
+ {{ $t(button) }}
+ </b-button>
+ </div>
+ <div v-else class="settings-import_container">
+ <b-form-file
+ id="settings-import__file-input"
+ placeholder="Нажмите на область или перетащите в нее файл с настройками"
+ ></b-form-file>
+ </div>
+ </b-popover>
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ description: {
+ type: String,
+ default: '',
+ },
+ id: {
+ type: String,
+ default: '',
+ },
+ button: {
+ type: String,
+ default: 'global.action.reload',
+ },
+ popup: {
+ type: String,
+ default: '',
+ },
+ },
+ data() {
+ return {
+ input1: '',
+ input1state: null,
+ input1Return: '',
+ popoverShow: false,
+ isExport: true,
+ };
+ },
+ watch: {
+ input1(val) {
+ if (val) {
+ this.input1state = true;
+ }
+ },
+ },
+ methods: {
+ onClose() {
+ this.popoverShow = false;
+ },
+ onOk() {
+ if (!this.input1) {
+ this.input1state = false;
+ }
+ if (this.input1) {
+ this.onClose();
+ // Return our popover form results
+ this.input1Return = this.input1;
+ }
+ },
+ onShow() {
+ this.$root.$emit('bv::hide::popover');
+ // This is called just before the popover is shown
+ // Reset our popover form variables
+ this.input1 = '';
+ this.input1state = null;
+ this.input1Return = '';
+ },
+ onShown() {
+ // Called just after the popover has been shown
+ // Transfer focus to the first input
+ this.focusRef(this.$refs.input1);
+ },
+ onHidden() {
+ // Called just after the popover has finished hiding
+ // Bring focus back to the button
+ this.focusRef(this.$refs.button);
+ },
+ focusRef(ref) {
+ // Some references may be a component, functional component, or plain element
+ // This handles that check before focusing, assuming a `focus()` method exists
+ // We do this in a double `$nextTick()` to ensure components have
+ // updated & popover positioned first
+ this.$nextTick(() => {
+ this.$nextTick(() => {
+ (ref.$el || ref).focus();
+ });
+ });
+ },
+ switchExport() {
+ this.isExport = true;
+ },
+ switchImport() {
+ this.isExport = false;
+ },
+ },
+};
+</script>
+<style lang="scss">
+.custom-file {
+ width: 432px;
+ height: 108px;
+}
+
+#settings-import__file-input ~ .custom-file-label {
+ background-color: transparent;
+ border: 1px dashed rgba(12, 28, 41, 0.6);
+ box-sizing: border-box;
+ border-radius: 8px;
+ width: 432px;
+ height: 108px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ white-space: normal;
+ padding: 0 65px;
+}
+
+#settings-import__file-input ~ .custom-file-label::after {
+ display: none;
+}
+</style>
+<style lang="scss" scoped>
+#export-popup {
+ flex-direction: column;
+ align-items: flex-start;
+ background: #ffffff;
+ box-shadow: 0px -4px 12px rgb(0 0 0 / 5%);
+ border-radius: 16px !important;
+ border-radius: 4px;
+ max-width: 480px;
+ width: 480px;
+ height: auto;
+}
+
+.form-group {
+ margin: 0;
+}
+
+.popup-title {
+ display: flex;
+ align-items: baseline;
+ width: 465px;
+}
+
+.popup-title__button_close {
+ margin: 0 28px 0 auto;
+ background: none;
+ border: none;
+ &:active {
+ background-color: $faint-secondary-primary-5-hover !important;
+ box-shadow: none !important;
+ border-radius: 8px;
+ }
+ &:focus-visible {
+ border: none !important;
+ border-radius: 8px;
+ }
+ &:focus {
+ box-shadow: none;
+ border-radius: 8px;
+ }
+}
+
+.popup-body {
+ display: flex;
+ flex-direction: column;
+ align-content: center;
+ justify-content: center;
+}
+
+.medium-16px {
+ display: inline-block;
+ height: 45px;
+ margin: 10px;
+ cursor: pointer;
+}
+
+.popup-switch {
+ position: relative;
+ display: flex;
+ flex-flow: row nowrap;
+ border-bottom: 1px solid #f3f4f5;
+}
+
+.switch-active {
+ color: $red-brand-primary;
+ transition: ease-in 0.15s;
+}
+
+.slider {
+ position: absolute;
+ width: 130px;
+ height: 0px;
+ border-bottom: 4px solid $red-brand-primary;
+ transition: ease-in 0.2s;
+ bottom: 14px;
+ left: 10px;
+}
+
+.popup-item:nth-child(1).switch-active ~ .slider {
+ left: 10px;
+}
+
+.popup-item:nth-child(2).switch-active ~ .slider {
+ left: 160px;
+}
+
+.ip-container {
+ display: flex;
+ width: 461px;
+ height: 75px;
+ padding: 30px 15px 25px 15px;
+}
+
+.popover-button {
+ width: 432px;
+ height: 52px;
+ margin: 0 auto 10px;
+}
+
+.settings-import_container {
+ width: 478px;
+ height: 160px;
+ background-color: $surface-secondary;
+ margin: -15px -15px -8px -12px;
+ border-radius: 0 0 16px 16px;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+</style>
diff --git a/src/views/_sila/BMC/Configuration/index.js b/src/views/_sila/BMC/Configuration/index.js
new file mode 100644
index 00000000..da796489
--- /dev/null
+++ b/src/views/_sila/BMC/Configuration/index.js
@@ -0,0 +1,2 @@
+import BMCConfiguration from './BMCConfiguration.vue';
+export default BMCConfiguration;
diff --git a/src/views/_sila/BMC/Firmware/FirmwarePage.vue b/src/views/_sila/BMC/Firmware/FirmwarePage.vue
new file mode 100644
index 00000000..8ffd9db1
--- /dev/null
+++ b/src/views/_sila/BMC/Firmware/FirmwarePage.vue
@@ -0,0 +1,273 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.deviceFirmware')" />
+ <!-- BMC table -->
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ sort-by="id"
+ class="table-firmware"
+ no-border-collapse
+ sort-icon-left
+ no-sort-reset
+ :sort-desc="sortDesc"
+ :items="items"
+ :fields="fields"
+ >
+ <template #cell(name)="{ value }">
+ <span class="regular-12px tretiatry">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minSpeedDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxSpeedDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ </b-table>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
+import BVPaginationMixin from '@/components/Mixins/BVPaginationMixin';
+import BVTableSelectableMixin from '@/components/Mixins/BVTableSelectableMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import TableRowExpandMixin from '@/components/Mixins/TableRowExpandMixin';
+
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ },
+ mixins: [
+ BVPaginationMixin,
+ BVTableSelectableMixin,
+ BVToastMixin,
+ LoadingBarMixin,
+ TableFilterMixin,
+ DataFormatterMixin,
+ TableSortMixin,
+ TableRowExpandMixin,
+ ],
+ data() {
+ return {
+ text: '',
+ iconChevronUp: iconChevronUp,
+ sortDesc: true,
+ fields: [
+ {
+ key: 'name',
+ label: 'Устройство',
+ sortable: true,
+ formatter: this.dataFormatter,
+ thStyle: { paddingLeft: 'calc(1.2rem + 0.65em) !important' },
+ },
+ {
+ key: 'version',
+ label: 'Версия прошивки',
+ sortable: false,
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'date',
+ label: 'Дата прошивки',
+ sortable: true,
+ formatter: this.dataFormatter,
+ thStyle: { paddingLeft: '12px' },
+ },
+ ],
+ items: [
+ {
+ name: 'Встроенный контроллер Порт 1|Бокс 1|Вау 1',
+ version: 'HGP1',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Встроенный девайс',
+ version: '2.5',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Встроенный ALOM',
+ version: '10.52.7',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Встроенный RAID',
+ version: '3.00',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '2.30 Aug 24 2020',
+ date: '03.11.2021',
+ },
+
+ {
+ name: 'Системная плата',
+ version: '11.0.0 Build 23',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '3.46.4',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '1.0.7',
+ date: '03.11.2021',
+ },
+ {
+ name: 'Встроенный контроллер Порт 1|Бокс 1|Вау 1',
+ version: 'HPG0.9',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Встроенный девайс',
+ version: '2.5',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Встроенный ALOM',
+ version: '10.52.7',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Встроенный RAID',
+ version: '3.00',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '2.30 Aug 24 2020',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '11.0.0 Build 23',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '3.46.4',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '1.0.7',
+ date: '02.11.2021',
+ },
+ {
+ name: 'Встроенный контроллер Порт 1|Бокс 1|Вау 1',
+ version: 'HPG0.8',
+ date: '01.11.2021',
+ },
+ {
+ name: 'Встроенный девайс',
+ version: '2.5',
+ date: '01.11.2021',
+ },
+ {
+ name: 'Встроенный ALOM',
+ version: '10.52.7',
+ date: '01.11.2021',
+ },
+ {
+ name: 'Встроенный RAID',
+ version: '3.00',
+ date: '01.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '2.30 Aug 24 2020',
+ date: '01.11.2021',
+ },
+
+ {
+ name: 'Системная плата',
+ version: '11.0.0 Build 23',
+ date: '01.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '3.46.4',
+ date: '01.11.2021',
+ },
+ {
+ name: 'Системная плата',
+ version: '1.0.7',
+ date: '01.11.2021',
+ },
+ ],
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+
+.nav-item {
+ list-style-type: none;
+}
+
+.semi-bold-12px {
+ display: inline-block;
+ padding: 16px 0 0 2rem;
+}
+
+.bmc-configuration__bios-version {
+ display: inline-block;
+ color: #0c1c29;
+ padding: 8px 2px 2rem 2rem;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+.medium-12px {
+ color: $text-primary !important;
+}
+</style>
diff --git a/src/views/_sila/BMC/Firmware/index.js b/src/views/_sila/BMC/Firmware/index.js
new file mode 100644
index 00000000..55a8c296
--- /dev/null
+++ b/src/views/_sila/BMC/Firmware/index.js
@@ -0,0 +1,2 @@
+import FirmwarePage from './FirmwarePage.vue';
+export default FirmwarePage;
diff --git a/src/views/_sila/BMC/Settings/SettingsPage.vue b/src/views/_sila/BMC/Settings/SettingsPage.vue
new file mode 100644
index 00000000..97b0ce9d
--- /dev/null
+++ b/src/views/_sila/BMC/Settings/SettingsPage.vue
@@ -0,0 +1,439 @@
+<template>
+ <b-container
+ id="page-bmc-settings"
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.broadcastSettings')" />
+ <!-- BMC table -->
+ <div class="bmc-settings-section">
+ <div class="smnp-settings-container">
+ <span class="bold-12px__caps section-label">{{ $t('BMC.smnp') }}</span>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{ $t('BMC.system') }}</label>
+ <b-form-input
+ v-model="system"
+ type="text"
+ class="form-control medium-16px"
+ >
+ </b-form-input>
+ <img class="clear-icon" src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{ $t('BMC.contacts') }}</label>
+ <b-form-input
+ type="text"
+ class="form-control medium-16px"
+ placeholder="Введите значение"
+ >
+ </b-form-input>
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{
+ $t('BMC.community')
+ }}</label>
+ <b-form-input
+ v-model="community"
+ type="text"
+ class="form-control medium-16px"
+ >
+ </b-form-input>
+ <img class="clear-icon" src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{
+ $t('global.status.status')
+ }}</label>
+ <b-form-select
+ v-model="smnpStatus"
+ :options="smnpStatuses"
+ class="select-connection medium-16px"
+ />
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{ $t('BMC.smnpIp') }}</label>
+ <b-form-input
+ v-model="smnpIp"
+ type="text"
+ class="form-control medium-16px"
+ >
+ </b-form-input>
+ <img class="clear-icon" src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{ $t('BMC.smnpPort') }}</label>
+ <b-form-input
+ v-model="smnpPort"
+ type="text"
+ class="form-control medium-16px"
+ >
+ </b-form-input>
+ <img class="clear-icon" src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-form-group>
+ <div class="accept-container">
+ <b-button variant="primary" class="accept-button">
+ {{ $t('global.action.acceptChanges') }}
+ </b-button>
+ </div>
+ </div>
+ </div>
+ <div class="bmc-settings-section">
+ <div class="smnp-settings-container">
+ <span class="bold-12px__caps section-label">{{
+ $t('BMC.smnpWarning')
+ }}</span>
+ <div class="table-section">
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ >
+ <template #cell(value)="{ index }">
+ <b-row>
+ <b-col>
+ <span v-if="items[index].value">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>
+ {{ $t('global.status.disabled') }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-form-checkbox v-model="items[index].value" switch>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </div>
+ <div class="accept-container">
+ <b-button variant="secondary" class="test-message-button">
+ {{ $t('BMC.testMessage') }}
+ </b-button>
+ <b-button variant="primary" class="accept-button">
+ {{ $t('global.action.acceptChanges') }}
+ </b-button>
+ </div>
+ </div>
+ </div>
+
+ <div class="bmc-settings-section">
+ <div class="smnp-settings-container">
+ <span class="bold-12px__caps section-label">{{
+ $t('BMC.smtpWarning')
+ }}</span>
+ <div class="table-section">
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="items2"
+ :fields="fields2"
+ >
+ <template #cell(value)="data">
+ <b-row v-if="data.index === 0">
+ <b-col>
+ <span v-if="items2[data.index].value">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>
+ {{ $t('global.status.disabled') }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-form-checkbox v-model="items2[data.index].value" switch>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ <b-row v-else-if="data.index === 4">
+ <b-col>
+ <span>
+ {{ data.value ? 'Да' : 'Нет' }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-button
+ :id="`popover-choice-${data.index}`"
+ class="popover-option-ractive"
+ variant="toogle-popover"
+ >
+ <img :is="iconChevron" class="icon-chevron" />
+ </b-button>
+ <two-chioce-popover
+ :id="data.index"
+ fitst-option="Да"
+ second-option="Нет"
+ :chosen-option="chosenOption"
+ :first-action="setYes"
+ :second-action="setNo"
+ placement="leftbottom"
+ />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img
+ src="@/assets/images/icon-edit.svg"
+ class="icon-chevron icon-edit"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </div>
+ </div>
+ </div>
+
+ <div class="bmc-settings-section last">
+ <div class="smnp-settings-container">
+ <span class="bold-12px__caps section-label">{{
+ $t('BMC.syslogSettings')
+ }}</span>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{
+ $t('global.status.status')
+ }}</label>
+ <b-form-select
+ v-model="syslogStatus"
+ :options="syslogStatuses"
+ class="select-connection medium-16px"
+ />
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{ $t('BMC.syslogIP') }}</label>
+ <b-form-input
+ v-model="syslogIp"
+ type="text"
+ class="form-control medium-16px"
+ >
+ </b-form-input>
+ <img class="clear-icon" src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-form-group>
+ <b-form-group class="form-group">
+ <label class="regular-12px tretiatry">{{
+ $t('BMC.syslogPort')
+ }}</label>
+ <b-form-input
+ v-model="syslogPort"
+ type="text"
+ class="form-control medium-16px"
+ >
+ </b-form-input>
+ <img class="clear-icon" src="@/assets/images/_sila/popups/x-icon.svg" />
+ </b-form-group>
+ <div class="accept-container">
+ <b-button variant="primary" class="accept-button">
+ {{ $t('global.action.acceptChanges') }}
+ </b-button>
+ </div>
+ </div>
+ </div>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import TwoChiocePopover from '@/components/Global/SilaComponents/TwoChiocePopover';
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+
+export default {
+ components: {
+ PageTitle,
+ TwoChiocePopover,
+ },
+ data() {
+ return {
+ iconChevron,
+ text: '',
+ system: '2КА04.02_г17',
+ community: 'public',
+ smnpIp: '0.0.0.0',
+ smnpPort: '161',
+ syslogIp: '0.0.0.0',
+ syslogPort: '161',
+ chosenOption: 'Да',
+ smnpStatus: true,
+ smnpStatuses: [
+ {
+ value: true,
+ text: 'Включена',
+ },
+ {
+ value: false,
+ text: 'Выключена',
+ },
+ ],
+ syslogStatus: true,
+ syslogStatuses: [
+ {
+ value: true,
+ text: 'Включена',
+ },
+ {
+ value: false,
+ text: 'Выключена',
+ },
+ ],
+ fields: [
+ {
+ key: 'name',
+ label: 'Тип предупреждения',
+ formatter: this.dataFormatter,
+ thStyle: { width: '70%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ fields2: [
+ {
+ key: 'attributes',
+ label: 'Атрибуты',
+ formatter: this.dataFormatter,
+ thStyle: { width: '70%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ name: 'SNMPv1',
+ value: true,
+ },
+ {
+ name: 'SNMPv3',
+ value: true,
+ },
+ {
+ name: 'Постоянные запросы и предупреждения SNMPv1',
+ value: true,
+ },
+ ],
+ items2: [
+ {
+ attributes: 'Авторизация',
+ value: true,
+ },
+ {
+ attributes: 'Логин пользователя',
+ value: 'admin',
+ },
+ {
+ attributes: 'Пароль',
+ value: '******',
+ },
+ {
+ attributes: 'SMTP-сервер',
+ value: 'smtp.domian.ru',
+ },
+ {
+ attributes: 'Поддержка SSI',
+ value: true,
+ },
+ {
+ attributes: 'SMTP-порт',
+ value: 465,
+ },
+ ],
+ };
+ },
+ methods: {
+ setYes() {
+ this.chosenOption = 'Да';
+ this.items2[4].value = true;
+ },
+ setNo() {
+ this.chosenOption = 'Нет';
+ this.items2[4].value = false;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.main-container {
+ margin-top: 16px;
+}
+
+.bmc-settings-section {
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ &.last {
+ margin-bottom: 40px;
+ }
+}
+.smnp-settings-container {
+ display: flex;
+ flex-flow: row wrap;
+ gap: 16px;
+ justify-content: flex-start;
+ align-items: flex-start;
+ margin: 16px 0 16px 28px;
+}
+
+.section-label {
+ display: block;
+ width: 100%;
+}
+.form-group {
+ width: 341px;
+ height: 35px;
+}
+.form-control {
+ margin: -31px 0px 0 -15px;
+ height: 52px;
+ width: 341px;
+ padding: 17px 0 0 15px;
+}
+.clear-icon {
+ margin: -80px 0px 0px 300px;
+}
+
+.select-connection {
+ height: 52px;
+ width: 341px;
+ padding-top: 30px;
+ border: none;
+ border-radius: 8px;
+ margin: -31px 0 18px -15px;
+ background-color: $faint-secondary-primary-5;
+ background-image: url('../../../../assets/images/_sila/icon-chevron.svg');
+}
+.accept-container {
+ width: 100%;
+ display: flex;
+ justify-content: flex-end;
+}
+
+.accept-button {
+ width: 245px;
+ height: 36px;
+ margin-right: 33px;
+}
+.test-message-button {
+ width: 245px;
+ height: 36px;
+ margin-right: 16px;
+ background-color: $faint-secondary-primary-5;
+}
+
+.table-section {
+ width: 100%;
+ margin: 0 20px 0 0;
+}
+
+.popover-option-ractive {
+ display: block;
+ margin: -6px 6px 0 auto;
+}
+</style>
diff --git a/src/views/_sila/BMC/Settings/index.js b/src/views/_sila/BMC/Settings/index.js
new file mode 100644
index 00000000..f74e1f4d
--- /dev/null
+++ b/src/views/_sila/BMC/Settings/index.js
@@ -0,0 +1,2 @@
+import SettingsPage from './SettingsPage.vue';
+export default SettingsPage;
diff --git a/src/views/_sila/Fans/DynamicInformation/FansDynamicPage.vue b/src/views/_sila/Fans/DynamicInformation/FansDynamicPage.vue
new file mode 100644
index 00000000..fe997c58
--- /dev/null
+++ b/src/views/_sila/Fans/DynamicInformation/FansDynamicPage.vue
@@ -0,0 +1,118 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('SystemDescription.FansDynamicInformation')" />
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <div class="speed-description">
+ <img src="@/assets/images/fans-page/fans-icon.svg" />
+ <span class="bold-16px">{{ $t('fansPage.speedDescription') }}</span>
+ </div>
+ <div class="limit-speed-container">
+ <div class="speed-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{ $t('fansPage.speedWarhihg') }}</span>
+ <b-form-input
+ v-model="fanSpeedWarninigInput"
+ type="number"
+ :min="0"
+ :max="fanSpeedShutdownInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="speed-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{ $t('fansPage.speedShutdown') }}</span>
+ <b-form-input
+ v-model="fanSpeedShutdownInput"
+ :min="fanSpeedWarninigInput"
+ :max="4000"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updateFansSpeed">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+
+ <fans-dynamic-table
+ :speed-warninig="fanSpeedWarninig"
+ :speed-shutdown="fanSpeedShutdown"
+ :time-scale="timeScale"
+ />
+ <indicators-table />
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import FansDynamicTable from './FansDynamicTable';
+import IndicatorsTable from './IndicatorsTable';
+
+export default {
+ components: { PageTitle, DateSwitch, FansDynamicTable, IndicatorsTable },
+ data() {
+ return {
+ timeScale: 'hour',
+ fanSpeedWarninigInput: 2450,
+ fanSpeedShutdownInput: 3150,
+ fanSpeedWarninig: 2450,
+ fanSpeedShutdown: 3150,
+ };
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateFansSpeed() {
+ this.fanSpeedWarninig = +this.fanSpeedWarninigInput;
+ this.fanSpeedShutdown = +this.fanSpeedShutdownInput;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.speed-description {
+ height: 56px;
+ padding-left: 36px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.limit-speed-container {
+ height: 85px;
+ padding: 0 0 10px 32px;
+ display: flex;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.speed-limt {
+ height: 60px;
+ max-width: 312px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+
+.form-control {
+ height: 36px;
+}
+
+.main-container {
+ overflow: auto;
+}
+</style>
diff --git a/src/views/_sila/Fans/DynamicInformation/FansDynamicTable.vue b/src/views/_sila/Fans/DynamicInformation/FansDynamicTable.vue
new file mode 100644
index 00000000..b0818255
--- /dev/null
+++ b/src/views/_sila/Fans/DynamicInformation/FansDynamicTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setSpeed } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ speedWarninig: {
+ type: Number,
+ default: 2450,
+ },
+ speedShutdown: {
+ type: Number,
+ default: 3150,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, this.timeScale),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setSpeed(4000),
+ min: 0,
+ title: null,
+ minRange: 4000,
+ minTickInterval: 1000,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.speedWarninig,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значения предупреждение',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ {
+ color: '#1A3E5B',
+ dashStyle: 'solid',
+ value: this.speedShutdown,
+ width: 2,
+ label: {
+ text: 'Пороговое значения отказ',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series[this.timeScale].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/Fans/DynamicInformation/IndicatorsTable.vue b/src/views/_sila/Fans/DynamicInformation/IndicatorsTable.vue
new file mode 100644
index 00000000..4da9a556
--- /dev/null
+++ b/src/views/_sila/Fans/DynamicInformation/IndicatorsTable.vue
@@ -0,0 +1,167 @@
+<template>
+ <page-section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-accessory"
+ no-border-collapse
+ :items="filteredSensors"
+ :busy="isBusy"
+ :fields="fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="regular-12px tretiatry">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(middleSpeed)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(minSpeedDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxSpeedDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import { colors } from './helpers';
+
+import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+
+export default {
+ components: { PageSection },
+ mixins: [TableFilterMixin, DataFormatterMixin, LoadingBarMixin],
+ data() {
+ return {
+ isBusy: true,
+ colors,
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'currentValue',
+ label: 'Текущая',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'middleSpeed',
+ label: 'Средняя',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'lowerCaution',
+ label: 'Минимальная',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'minSpeedDate',
+ label: 'Дата минимальной',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'upperCaution',
+ label: 'Максимальная',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'maxSpeedDate',
+ label: 'Дата максимальной',
+ formatter: this.dataFormatter,
+ },
+ ],
+ };
+ },
+
+ computed: {
+ allSensors() {
+ let sensors = this.$store.getters['sensors/fanSensors'];
+ if (this.isSensorsExist) {
+ sensors.forEach((sensor) => {
+ sensor.type = sensor.name.toLowerCase().includes('cpu')
+ ? this.$t('tablesDescription.cpu')
+ : this.$t('tablesDescription.system');
+ });
+ }
+ return sensors;
+ },
+
+ isSensorsExist() {
+ return (
+ this.$store.getters['sensors/fanSensors'] &&
+ this.$store.getters['sensors/fanSensors'].length > 0
+ );
+ },
+
+ filteredSensors() {
+ return this.getFilteredTableData(this.allSensors, this.activeFilters);
+ },
+ },
+
+ watch: {
+ filteredSensors(value) {
+ if (value && value.length > 0) {
+ this.colors = this.$randomColor({
+ count: value.length,
+ hue: 'random',
+ luminosity: 'random',
+ });
+ }
+ },
+ },
+
+ created() {
+ this.startLoader();
+ this.$store.dispatch('sensors/getFanSensors').finally(() => {
+ this.endLoader();
+ this.isBusy = false;
+ });
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+.medium-12px {
+ color: $text-primary !important;
+}
+</style>
diff --git a/src/views/_sila/Fans/DynamicInformation/helpers.js b/src/views/_sila/Fans/DynamicInformation/helpers.js
new file mode 100644
index 00000000..1268d34a
--- /dev/null
+++ b/src/views/_sila/Fans/DynamicInformation/helpers.js
@@ -0,0 +1,820 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ hour: [
+ {
+ name: 'Sean',
+ data: [
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 1100,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 2100,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 1526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 1526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 1315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 2200,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 1100,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 1600,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 1400,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 1359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 2000,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 2100,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 1400,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 1350,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 1590,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 1490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1487,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 794,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1924,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1924,
+ 467,
+ 467,
+ 794,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1924,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 794,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 410,
+ 410,
+ 410,
+ 410,
+ 1300,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 2110,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ ],
+ color: '#139BB9',
+ },
+ ],
+ day: [
+ {
+ name: 'Sean',
+ data: [
+ 526,
+ 526,
+ 526,
+ 526,
+ 626,
+ 626,
+ 626,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 726,
+ 1026,
+ 726,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 1326,
+ 1526,
+ 1326,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ 526,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 815,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 1100,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 800,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 900,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 900,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ 315,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 1500,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 1500,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 500,
+ 1200,
+ 500,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ 359,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 950,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 890,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 990,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ 490,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1087,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 794,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1424,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1424,
+ 467,
+ 467,
+ 794,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 1224,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 794,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ 467,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 410,
+ 1410,
+ 410,
+ 410,
+ 1300,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 2110,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ 410,
+ 1410,
+ 410,
+ 410,
+ ],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setSpeed = (count) => {
+ const arr = [...new Array(count)].map((i, k) => `${k}`);
+ return arr;
+};
diff --git a/src/views/_sila/Fans/DynamicInformation/index.js b/src/views/_sila/Fans/DynamicInformation/index.js
new file mode 100644
index 00000000..a3dadd5a
--- /dev/null
+++ b/src/views/_sila/Fans/DynamicInformation/index.js
@@ -0,0 +1,2 @@
+import FansDynamicPage from './FansDynamicPage.vue';
+export default FansDynamicPage;
diff --git a/src/views/_sila/Fans/StaticInformation/FansStaticPage.vue b/src/views/_sila/Fans/StaticInformation/FansStaticPage.vue
new file mode 100644
index 00000000..b661bfdf
--- /dev/null
+++ b/src/views/_sila/Fans/StaticInformation/FansStaticPage.vue
@@ -0,0 +1,152 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.specification')" />
+ <span class="bold-16px">{{ $t('tablesDescription.installedFans') }}</span>
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :busy="isBusy"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(status)="{ value }">
+ <div v-if="value" class="fans-table-col-first__cell">
+ <img class="status__img" src="@/assets/images/status/on.svg" />
+ <span>
+ {{ $t('global.status.inWork') }}
+ </span>
+ </div>
+ <div v-else class="fans-table-col-first__cell">
+ <img class="status__img" src="@/assets/images/_sila/status/off.svg" />
+ <span>
+ {{ $t('global.status.outWorking') }}
+ </span>
+ </div>
+ </template>
+ <template #cell(currentValue)="data">
+ {{ data.value }}
+ </template>
+ </b-table>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+
+import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+
+export default {
+ components: { PageTitle, PageSection },
+ mixins: [TableFilterMixin, DataFormatterMixin, LoadingBarMixin],
+ data() {
+ return {
+ isBusy: true,
+ isAddersСolon: false,
+ fields: [
+ {
+ key: 'status',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ thStyle: { width: '25%' },
+ },
+ {
+ key: 'name',
+ label: 'Имя',
+ formatter: this.dataFormatter,
+ thStyle: { width: '25%' },
+ },
+ {
+ key: 'type',
+ label: 'Тип',
+ formatter: this.dataFormatter,
+ thStyle: { width: '25%' },
+ },
+ {
+ key: 'currentValue',
+ label: 'Текущая скорость, об/мин',
+ formatter: this.dataFormatter,
+ thStyle: { width: '25%' },
+ },
+ ],
+ items: [
+ {
+ status: true,
+ name: 'Венититор 1',
+ type: 'Системная плата',
+ value: '2100',
+ },
+ {
+ status: true,
+ name: 'Венититор 2',
+ type: 'Системная плата',
+ value: '2300',
+ },
+ {
+ status: false,
+ name: 'Венититор 3',
+ type: 'Системная плата',
+ value: '2400',
+ },
+ ],
+ activeFilters: [],
+ };
+ },
+
+ computed: {
+ allSensors() {
+ let sensors = this.$store.getters['sensors/fanSensors'];
+ if (this.isSensorsExist) {
+ sensors.forEach((sensor) => {
+ sensor.type = sensor.name.toLowerCase().includes('cpu')
+ ? this.$t('tablesDescription.cpu')
+ : this.$t('tablesDescription.system');
+ });
+ }
+ return sensors;
+ },
+
+ isSensorsExist() {
+ return (
+ this.$store.getters['sensors/fanSensors'] &&
+ this.$store.getters['sensors/fanSensors'].length > 0
+ );
+ },
+
+ filteredSensors() {
+ return this.getFilteredTableData(this.allSensors, this.activeFilters);
+ },
+ },
+
+ created() {
+ this.startLoader();
+ this.$store.dispatch('sensors/getFanSensors').finally(() => {
+ this.endLoader();
+ this.isBusy = false;
+ });
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ margin: 0px;
+}
+
+.status__img {
+ margin-right: 7px;
+}
+
+.bold-16px {
+ margin: 24px 0 0 2rem;
+}
+</style>
diff --git a/src/views/_sila/Fans/StaticInformation/index.js b/src/views/_sila/Fans/StaticInformation/index.js
new file mode 100644
index 00000000..9a5d913d
--- /dev/null
+++ b/src/views/_sila/Fans/StaticInformation/index.js
@@ -0,0 +1,2 @@
+import FansStaticPage from './FansStaticPage.vue';
+export default FansStaticPage;
diff --git a/src/views/_sila/HardwareStatus/Inventory/Inventory.vue b/src/views/_sila/HardwareStatus/Inventory/Inventory.vue
new file mode 100644
index 00000000..dac395c5
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/Inventory.vue
@@ -0,0 +1,196 @@
+<template>
+ <b-container id="page-inventory" fluid class="p-0 m-0">
+ <page-title :description="$t('appNavigation.overviewInfo')" />
+ <!-- Service indicators -->
+ <service-indicator />
+
+ <!-- Quicklinks section -->
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.quicklinkTitle')"
+ >
+ <b-row>
+ <b-col v-for="column in quicklinkColumns" :key="column.id">
+ <div v-for="item in column" :key="item.id">
+ <b-link
+ :href="item.href"
+ :data-ref="item.dataRef"
+ @click.prevent="scrollToOffset"
+ >
+ {{ item.linkText }}
+ </b-link>
+ </div>
+ </b-col>
+ </b-row>
+ </page-section>
+
+ <!-- System table -->
+ <table-system ref="system" />
+
+ <!-- BMC manager table -->
+ <table-bmc-manager ref="bmc" />
+
+ <!-- Chassis table -->
+ <table-chassis ref="chassis" />
+
+ <!-- DIMM slot table -->
+ <table-dimm-slot ref="dimms" />
+
+ <!-- Fans table -->
+ <table-fans ref="fans" />
+
+ <!-- Power supplies table -->
+ <table-power-supplies ref="powerSupply" />
+
+ <!-- Processors table -->
+ <table-processors ref="processors" />
+
+ <!-- Assembly table -->
+ <table-assembly ref="assembly" />
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import ServiceIndicator from './InventoryServiceIndicator';
+import TableSystem from './InventoryTableSystem';
+import TablePowerSupplies from './InventoryTablePowerSupplies';
+import TableDimmSlot from './InventoryTableDimmSlot';
+import TableFans from './InventoryTableFans';
+import TableBmcManager from './InventoryTableBmcManager';
+import TableChassis from './InventoryTableChassis';
+import TableProcessors from './InventoryTableProcessors';
+import TableAssembly from './InventoryTableAssembly';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+import PageSection from '@/components/Global/PageSection';
+import JumpLinkMixin from '@/components/Mixins/JumpLinkMixin';
+import { chunk } from 'lodash';
+
+export default {
+ components: {
+ PageTitle,
+ ServiceIndicator,
+ TableDimmSlot,
+ TablePowerSupplies,
+ TableSystem,
+ TableFans,
+ TableBmcManager,
+ TableChassis,
+ TableProcessors,
+ TableAssembly,
+ PageSection,
+ },
+ mixins: [LoadingBarMixin, JumpLinkMixin],
+ beforeRouteLeave(to, from, next) {
+ // Hide loader if user navigates away from page
+ // before requests complete
+ this.hideLoader();
+ next();
+ },
+ data() {
+ return {
+ links: [
+ {
+ id: 'system',
+ dataRef: 'system',
+ href: '#system',
+ linkText: this.$t('pageInventory.system'),
+ },
+ {
+ id: 'bmc',
+ dataRef: 'bmc',
+ href: '#bmc',
+ linkText: this.$t('pageInventory.bmcManager'),
+ },
+ {
+ id: 'chassis',
+ dataRef: 'chassis',
+ href: '#chassis',
+ linkText: this.$t('pageInventory.chassis'),
+ },
+ {
+ id: 'dimms',
+ dataRef: 'dimms',
+ href: '#dimms',
+ linkText: this.$t('pageInventory.dimmSlot'),
+ },
+ {
+ id: 'fans',
+ dataRef: 'fans',
+ href: '#fans',
+ linkText: this.$t('pageInventory.fans'),
+ },
+ {
+ id: 'powerSupply',
+ dataRef: 'powerSupply',
+ href: '#powerSupply',
+ linkText: this.$t('pageInventory.powerSupplies'),
+ },
+ {
+ id: 'processors',
+ dataRef: 'processors',
+ href: '#processors',
+ linkText: this.$t('pageInventory.processors'),
+ },
+ {
+ id: 'assembly',
+ dataRef: 'assembly',
+ href: '#assembly',
+ linkText: this.$t('pageInventory.assemblies'),
+ },
+ ],
+ };
+ },
+ computed: {
+ quicklinkColumns() {
+ // Chunk links array to 3 array's to display 3 items per column
+ return chunk(this.links, 3);
+ },
+ },
+ created() {
+ this.startLoader();
+ const bmcManagerTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-bmc-manager-complete', () => resolve());
+ });
+ const chassisTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-chassis-complete', () => resolve());
+ });
+ const dimmSlotTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-dimm-slot-complete', () => resolve());
+ });
+ const fansTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-fans-complete', () => resolve());
+ });
+ const powerSuppliesTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-power-supplies-complete', () =>
+ resolve()
+ );
+ });
+ const processorsTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-processors-complete', () => resolve());
+ });
+ const serviceIndicatorPromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-service-complete', () => resolve());
+ });
+ const systemTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-system-complete', () => resolve());
+ });
+ const assemblyTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-assembly-complete', () => resolve());
+ });
+ // Combine all child component Promises to indicate
+ // when page data load complete
+ Promise.all([
+ bmcManagerTablePromise,
+ chassisTablePromise,
+ dimmSlotTablePromise,
+ fansTablePromise,
+ powerSuppliesTablePromise,
+ processorsTablePromise,
+ serviceIndicatorPromise,
+ systemTablePromise,
+ assemblyTablePromise,
+ ]).finally(() => this.endLoader());
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryServiceIndicator.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryServiceIndicator.vue
new file mode 100644
index 00000000..0589aed8
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryServiceIndicator.vue
@@ -0,0 +1,82 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.systemIndicator.sectionTitle')"
+ >
+ <div class="form-background">
+ <b-row>
+ <b-col md="4">
+ <dl>
+ <dt>{{ $t('pageInventory.systemIndicator.powerStatus') }}</dt>
+ <dd>
+ {{ $t(powerStatus) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col md="6">
+ <dl>
+ <dt>
+ {{ $t('pageInventory.systemIndicator.identifyLed') }}
+ </dt>
+ <dd>
+ <b-form-checkbox
+ id="identifyLedSwitchService"
+ v-model="systems.locationIndicatorActive"
+ data-test-id="inventoryService-toggle-identifyLed"
+ switch
+ @change="toggleIdentifyLedSwitch"
+ >
+ <span v-if="systems.locationIndicatorActive">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else>{{ $t('global.status.off') }}</span>
+ </b-form-checkbox>
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </div>
+ </page-section>
+</template>
+<script>
+import PageSection from '@/components/Global/PageSection';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+
+export default {
+ components: { PageSection },
+ mixins: [BVToastMixin],
+ computed: {
+ systems() {
+ let systemData = this.$store.getters['system/systems'][0];
+ return systemData ? systemData : {};
+ },
+ serverStatus() {
+ return this.$store.getters['global/serverStatus'];
+ },
+ powerStatus() {
+ if (this.serverStatus === 'unreachable') {
+ return `global.status.off`;
+ }
+ return `global.status.${this.serverStatus}`;
+ },
+ },
+ created() {
+ this.$store.dispatch('system/getSystem').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-service-complete');
+ });
+ },
+ methods: {
+ toggleIdentifyLedSwitch(state) {
+ this.$store
+ .dispatch('system/changeIdentifyLedState', state)
+ .catch(({ message }) => this.errorToast(message));
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.custom-switch {
+ margin: 0;
+}
+</style>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableAssembly.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableAssembly.vue
new file mode 100644
index 00000000..7683ef93
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableAssembly.vue
@@ -0,0 +1,160 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.assemblies')"
+ >
+ <b-table
+ sort-icon-left
+ no-sort-reset
+ no-border-collapse
+ responsive="md"
+ :items="items"
+ :fields="fields"
+ :fixed="true"
+ show-empty
+ :empty-text="$t('global.table.emptyMessage')"
+ :busy="isBusy"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandAssembly"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Toggle identify LED -->
+ <template #cell(identifyLed)="row">
+ <b-form-checkbox
+ v-if="hasIdentifyLed(row.item.identifyLed)"
+ v-model="row.item.identifyLed"
+ name="switch"
+ switch
+ @change="toggleIdentifyLedValue(row.item)"
+ >
+ <span v-if="row.item.identifyLed">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else> {{ $t('global.status.off') }} </span>
+ </b-form-checkbox>
+ <div v-else>--</div>
+ </template>
+
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col class="mt-2" sm="6" xl="6">
+ <!-- Nmae -->
+ <dt>{{ $t('pageInventory.table.name') }}:</dt>
+ <dd>{{ dataFormatter(item.name) }}</dd>
+ <!-- Serial number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ </b-col>
+ <b-col class="mt-2" sm="6" xl="6">
+ <!-- Model-->
+ <dt>Model</dt>
+ <dd>{{ dataFormatter(item.model) }}</dd>
+ <!-- Spare Part Number -->
+ <dt>Spare Part Number</dt>
+ <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+
+export default {
+ components: { IconChevron, PageSection },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '4%' },
+ },
+ {
+ key: 'name',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'partNumber',
+ label: this.$t('pageInventory.table.partNumber'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'identifyLed',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ assemblies() {
+ return this.$store.getters['assemblies/assemblies'];
+ },
+ items() {
+ if (this.assemblies) {
+ return this.assemblies;
+ } else {
+ return [];
+ }
+ },
+ },
+ created() {
+ this.$store.dispatch('assemblies/getAssemblyInfo').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-assembly-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ toggleIdentifyLedValue(row) {
+ this.$store
+ .dispatch('assemblies/updateIdentifyLedValue', {
+ uri: row.uri,
+ memberId: row.id,
+ identifyLed: row.identifyLed,
+ })
+ .catch(({ message }) => this.errorToast(message));
+ },
+ hasIdentifyLed(identifyLed) {
+ return typeof identifyLed === 'boolean';
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableBmcManager.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableBmcManager.vue
new file mode 100644
index 00000000..f3cd1f05
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableBmcManager.vue
@@ -0,0 +1,254 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.bmcManager')"
+ >
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :fixed="true"
+ :empty-text="$t('global.table.emptyMessage')"
+ :busy="isBusy"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandBmc"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ value }}
+ </template>
+
+ <!-- Toggle identify LED -->
+ <template #cell(identifyLed)="row">
+ <b-form-checkbox
+ v-if="hasIdentifyLed(row.item.identifyLed)"
+ v-model="row.item.identifyLed"
+ name="switch"
+ switch
+ @change="toggleIdentifyLedValue(row.item)"
+ >
+ <span v-if="row.item.identifyLed">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else> {{ $t('global.status.off') }} </span>
+ </b-form-checkbox>
+ <div v-else>--</div>
+ </template>
+
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Name -->
+ <dt>{{ $t('pageInventory.table.name') }}:</dt>
+ <dd>{{ dataFormatter(item.name) }}</dd>
+ <!-- Part number -->
+ <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.partNumber) }}</dd>
+ <!-- Serial number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ <!-- Spare part number -->
+ <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
+ <!-- Model -->
+ <dt>{{ $t('pageInventory.table.model') }}:</dt>
+ <dd>{{ dataFormatter(item.model) }}</dd>
+ <!-- UUID -->
+ <dt>{{ $t('pageInventory.table.uuid') }}:</dt>
+ <dd>{{ dataFormatter(item.uuid) }}</dd>
+ <!-- Service entry point UUID -->
+ <dt>{{ $t('pageInventory.table.serviceEntryPointUuid') }}:</dt>
+ <dd>{{ dataFormatter(item.serviceEntryPointUuid) }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ <!-- Power state -->
+ <dt>{{ $t('pageInventory.table.power') }}:</dt>
+ <dd>{{ dataFormatter(item.powerState) }}</dd>
+ <!-- Health rollup -->
+ <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.healthRollup) }}</dd>
+ <!-- BMC date and time -->
+ <dt>{{ $t('pageInventory.table.bmcDateTime') }}:</dt>
+ <dd>
+ {{ item.dateTime | formatDate }}
+ {{ item.dateTime | formatTime }}
+ </dd>
+ <!-- Reset date and time -->
+ <dt>{{ $t('pageInventory.table.lastResetTime') }}:</dt>
+ <dd>
+ {{ item.lastResetTime | formatDate }}
+ {{ item.lastResetTime | formatTime }}
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <div class="section-divider mb-3 mt-3"></div>
+ <b-row>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Manufacturer -->
+ <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
+ <dd>{{ dataFormatter(item.manufacturer) }}</dd>
+ <!-- Description -->
+ <dt>{{ $t('pageInventory.table.description') }}:</dt>
+ <dd>{{ dataFormatter(item.description) }}</dd>
+ <!-- Manager type -->
+ <dt>{{ $t('pageInventory.table.managerType') }}:</dt>
+ <dd>{{ dataFormatter(item.managerType) }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2" sm="6" xl="6">
+ <!-- Firmware Version -->
+ <dl>
+ <dt>{{ $t('pageInventory.table.firmwareVersion') }}:</dt>
+ <dd>{{ item.firmwareVersion }}</dd>
+ </dl>
+ <!-- Graphical console -->
+ <p class="mt-1 mb-2 h6 float-none m-0">
+ {{ $t('pageInventory.table.graphicalConsole') }}
+ </p>
+ <dl class="ml-4">
+ <dt>{{ $t('pageInventory.table.connectTypesSupported') }}:</dt>
+ <dd>
+ {{ dataFormatterArray(item.graphicalConsoleConnectTypes) }}
+ </dd>
+ <dt>{{ $t('pageInventory.table.maxConcurrentSessions') }}:</dt>
+ <dd>
+ {{ dataFormatter(item.graphicalConsoleMaxSessions) }}
+ </dd>
+ <dt>{{ $t('pageInventory.table.serviceEnabled') }}:</dt>
+ <dd>
+ {{ dataFormatter(item.graphicalConsoleEnabled) }}
+ </dd>
+ </dl>
+ <!-- Serial console -->
+ <p class="mt-1 mb-2 h6 float-none m-0">
+ {{ $t('pageInventory.table.serialConsole') }}
+ </p>
+ <dl class="ml-4">
+ <dt>{{ $t('pageInventory.table.connectTypesSupported') }}:</dt>
+ <dd>
+ {{ dataFormatterArray(item.serialConsoleConnectTypes) }}
+ </dd>
+ <dt>{{ $t('pageInventory.table.maxConcurrentSessions') }}:</dt>
+ <dd>{{ dataFormatter(item.serialConsoleMaxSessions) }}</dd>
+ <dt>{{ $t('pageInventory.table.serviceEnabled') }}:</dt>
+ <dd>{{ dataFormatter(item.serialConsoleEnabled) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import StatusIcon from '@/components/Global/StatusIcon';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand ',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ tdClass: 'regular-12px ',
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'identifyLed',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ bmc() {
+ return this.$store.getters['bmc/bmc'];
+ },
+ items() {
+ if (this.bmc) {
+ return [this.bmc];
+ } else {
+ return [];
+ }
+ },
+ },
+ created() {
+ this.$store.dispatch('bmc/getBmcInfo').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-bmc-manager-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ toggleIdentifyLedValue(row) {
+ this.$store
+ .dispatch('bmc/updateIdentifyLedValue', {
+ uri: row.uri,
+ identifyLed: row.identifyLed,
+ })
+ .catch(({ message }) => this.errorToast(message));
+ },
+ // TO DO: remove hasIdentifyLed method once the following story is merged:
+ // https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/43179
+ hasIdentifyLed(identifyLed) {
+ return typeof identifyLed === 'boolean';
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableChassis.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableChassis.vue
new file mode 100644
index 00000000..ed8787f9
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableChassis.vue
@@ -0,0 +1,199 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.chassis')"
+ >
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="chassis"
+ :fields="fields"
+ :fixed="true"
+ :empty-text="$t('global.table.emptyMessage')"
+ :busy="isBusy"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandChassis"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ value }}
+ </template>
+ <!-- Toggle identify LED -->
+ <template #cell(identifyLed)="row">
+ <b-form-checkbox
+ v-if="hasIdentifyLed(row.item.identifyLed)"
+ v-model="row.item.identifyLed"
+ name="switch"
+ switch
+ @change="toggleIdentifyLedValue(row.item)"
+ >
+ <span v-if="row.item.identifyLed">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else> {{ $t('global.status.off') }} </span>
+ </b-form-checkbox>
+ <div v-else>--</div>
+ </template>
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Name -->
+ <dt>{{ $t('pageInventory.table.name') }}:</dt>
+ <dd>{{ dataFormatter(item.name) }}</dd>
+ <!-- Part number -->
+ <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.partNumber) }}</dd>
+ <!-- Serial Number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ <!-- Model -->
+ <dt>{{ $t('pageInventory.table.model') }}:</dt>
+ <dd class="mb-2">
+ {{ dataFormatter(item.model) }}
+ </dd>
+ <!-- Asset tag -->
+ <dt>{{ $t('pageInventory.table.assetTag') }}:</dt>
+ <dd class="mb-2">
+ {{ dataFormatter(item.assetTag) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ <!-- Power state -->
+ <dt>{{ $t('pageInventory.table.power') }}:</dt>
+ <dd>{{ dataFormatter(item.power) }}</dd>
+ <!-- Health rollup -->
+ <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.healthRollup) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <div class="section-divider mb-3 mt-3"></div>
+ <b-row>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Manufacturer -->
+ <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
+ <dd>{{ dataFormatter(item.manufacturer) }}</dd>
+ <!-- Chassis Type -->
+ <dt>{{ $t('pageInventory.table.chassisType') }}:</dt>
+ <dd>{{ dataFormatter(item.chassisType) }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Min power -->
+ <dt>{{ $t('pageInventory.table.minPowerWatts') }}:</dt>
+ <dd>{{ dataFormatter(item.minPowerWatts) }}</dd>
+ <!-- Max power -->
+ <dt>{{ $t('pageInventory.table.maxPowerWatts') }}:</dt>
+ <dd>{{ dataFormatter(item.maxPowerWatts) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import StatusIcon from '@/components/Global/StatusIcon';
+
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ tdClass: 'text-nowrap',
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'identifyLed',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ chassis() {
+ return this.$store.getters['chassis/chassis'];
+ },
+ },
+ created() {
+ this.$store.dispatch('chassis/getChassisInfo').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-chassis-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ toggleIdentifyLedValue(row) {
+ this.$store
+ .dispatch('chassis/updateIdentifyLedValue', {
+ uri: row.uri,
+ identifyLed: row.identifyLed,
+ })
+ .catch(({ message }) => this.errorToast(message));
+ },
+ // TO DO: Remove this method when the LocationIndicatorActive is added from backend.
+ hasIdentifyLed(identifyLed) {
+ return typeof identifyLed === 'boolean';
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableDimmSlot.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
new file mode 100644
index 00000000..fa25919f
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
@@ -0,0 +1,263 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.dimmSlot')"
+ >
+ <b-row class="align-items-end">
+ <b-col sm="6" md="5" xl="4">
+ <search
+ @change-search="onChangeSearchInput"
+ @clear-search="onClearSearchInput"
+ />
+ </b-col>
+ <b-col sm="6" md="3" xl="2">
+ <table-cell-count
+ :filtered-items-count="filteredRows"
+ :total-number-of-cells="dimms.length"
+ ></table-cell-count>
+ </b-col>
+ </b-row>
+ <b-table
+ sort-icon-left
+ no-sort-reset
+ sort-by="health"
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="dimms"
+ :fields="fields"
+ :sort-desc="true"
+ :fixed="true"
+ :sort-compare="sortCompare"
+ :filter="searchFilter"
+ :empty-text="$t('global.table.emptyMessage')"
+ :empty-filtered-text="$t('global.table.emptySearchMessage')"
+ :busy="isBusy"
+ @filtered="onFiltered"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandDimms"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ value }}
+ </template>
+ <!-- Toggle identify LED -->
+ <template #cell(identifyLed)="row">
+ <b-form-checkbox
+ v-model="row.item.identifyLed"
+ name="switch"
+ switch
+ @change="toggleIdentifyLedValue(row.item)"
+ >
+ <span v-if="row.item.identifyLed">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else> {{ $t('global.status.off') }} </span>
+ </b-form-checkbox>
+ </template>
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col sm="6" xl="6">
+ <dl>
+ <!-- Part Number -->
+ <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.partNumber) }}</dd>
+ </dl>
+ <dl>
+ <!-- Serial Number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ </dl>
+ <dl>
+ <!-- Spare Part Number -->
+ <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
+ </dl>
+ <dl>
+ <!-- Model -->
+ <dt>{{ $t('pageInventory.table.model') }}:</dt>
+ <dd>{{ dataFormatter(item.model) }}</dd>
+ </dl>
+ </b-col>
+ <b-col sm="6" xl="6">
+ <dl>
+ <!-- Memory Size in kb -->
+ <dt>{{ $t('pageInventory.table.memorySize') }}:</dt>
+ <dd>{{ dataFormatter(item.memorySize) }} KB</dd>
+ </dl>
+ <dl>
+ <!-- Status-->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ </dl>
+ <dl>
+ <!-- Enabled-->
+ <dt>{{ $t('pageInventory.table.enabled') }}:</dt>
+ <dd>{{ dataFormatter(item.enabled) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <div class="section-divider mb-3 mt-3"></div>
+ <b-row>
+ <b-col sm="6" xl="6">
+ <dl>
+ <!-- Description -->
+ <dt>{{ $t('pageInventory.table.description') }}:</dt>
+ <dd>{{ dataFormatter(item.description) }}</dd>
+ </dl>
+ <dl>
+ <!-- Memory Type -->
+ <dt>{{ $t('pageInventory.table.memoryType') }}:</dt>
+ <dd>{{ dataFormatter(item.memoryType) }}</dd>
+ </dl>
+ <dl>
+ <!-- Base Module Type -->
+ <dt>{{ $t('pageInventory.table.baseModuleType') }}:</dt>
+ <dd>{{ dataFormatter(item.baseModuleType) }}</dd>
+ </dl>
+ <dl>
+ <!-- Capacity MiB -->
+ <dt>{{ $t('pageInventory.table.capacityMiB') }}:</dt>
+ <dd>{{ dataFormatter(item.capacityMiB) }}</dd>
+ </dl>
+ </b-col>
+ <b-col sm="6" xl="6">
+ <dl>
+ <!-- Bus Width Bits -->
+ <dt>{{ $t('pageInventory.table.busWidthBits') }}:</dt>
+ <dd>{{ dataFormatter(item.busWidthBits) }}</dd>
+ </dl>
+ <dl>
+ <!-- Data Width Bits -->
+ <dt>{{ $t('pageInventory.table.dataWidthBits') }}:</dt>
+ <dd>{{ dataFormatter(item.dataWidthBits) }}</dd>
+ </dl>
+ <dl>
+ <!-- Operating Speed Mhz -->
+ <dt>{{ $t('pageInventory.table.operatingSpeedMhz') }}:</dt>
+ <dd>{{ dataFormatter(item.operatingSpeedMhz) }} MHz</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+
+import StatusIcon from '@/components/Global/StatusIcon';
+import TableCellCount from '@/components/Global/TableCellCount';
+
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
+import Search from '@/components/Global/Search';
+import SearchFilterMixin, {
+ searchFilter,
+} from '@/components/Mixins/SearchFilterMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
+ mixins: [
+ TableRowExpandMixin,
+ DataFormatterMixin,
+ TableSortMixin,
+ SearchFilterMixin,
+ ],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ tdClass: 'text-nowrap ',
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'identifyLed',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ searchFilter: searchFilter,
+ searchTotalFilteredRows: 0,
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ filteredRows() {
+ return this.searchFilter
+ ? this.searchTotalFilteredRows
+ : this.dimms.length;
+ },
+ dimms() {
+ return this.$store.getters['memory/dimms'];
+ },
+ },
+ created() {
+ this.$store.dispatch('memory/getDimms').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-dimm-slot-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ sortCompare(a, b, key) {
+ if (key === 'health') {
+ return this.sortStatus(a, b, key);
+ }
+ },
+ onFiltered(filteredItems) {
+ this.searchTotalFilteredRows = filteredItems.length;
+ },
+ toggleIdentifyLedValue(row) {
+ this.$store
+ .dispatch('memory/updateIdentifyLedValue', {
+ uri: row.uri,
+ identifyLed: row.identifyLed,
+ })
+ .catch(({ message }) => this.errorToast(message));
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableFans.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableFans.vue
new file mode 100644
index 00000000..d110ad3f
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableFans.vue
@@ -0,0 +1,198 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.fans')"
+ >
+ <b-row class="align-items-end">
+ <b-col sm="6" md="5" xl="4">
+ <search
+ @change-search="onChangeSearchInput"
+ @clear-search="onClearSearchInput"
+ />
+ </b-col>
+ <b-col sm="6" md="3" xl="2">
+ <table-cell-count
+ :filtered-items-count="filteredRows"
+ :total-number-of-cells="fans.length"
+ ></table-cell-count>
+ </b-col>
+ </b-row>
+ <b-table
+ sort-icon-left
+ no-sort-reset
+ responsive="md"
+ sort-by="health"
+ show-empty
+ no-border-collapse
+ :items="fans"
+ :fields="fields"
+ :sort-desc="true"
+ :fixed="true"
+ :sort-compare="sortCompare"
+ :filter="searchFilter"
+ :empty-text="$t('global.table.emptyMessage')"
+ :empty-filtered-text="$t('global.table.emptySearchMessage')"
+ :busy="isBusy"
+ @filtered="onFiltered"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandFans"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ value }}
+ </template>
+
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col sm="6" xl="4">
+ <dl>
+ <!-- Name -->
+ <dt>{{ $t('pageInventory.table.name') }}:</dt>
+ <dd>{{ dataFormatter(item.name) }}</dd>
+ </dl>
+ <dl>
+ <!-- Serial number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ </dl>
+ <dl>
+ <!-- Part number -->
+ <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.partNumber) }}</dd>
+ </dl>
+ <dl>
+ <!-- Fan speed -->
+ <dt>{{ $t('pageInventory.table.fanSpeed') }}:</dt>
+ <dd>{{ dataFormatter(item.speed) }}</dd>
+ </dl>
+ </b-col>
+ <b-col sm="6" xl="4">
+ <dl>
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ </dl>
+ <dl>
+ <!-- Health Rollup state -->
+ <dt>{{ $t('pageInventory.table.statusHealthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.healthRollup) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import TableCellCount from '@/components/Global/TableCellCount';
+
+import StatusIcon from '@/components/Global/StatusIcon';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
+import Search from '@/components/Global/Search';
+import SearchFilterMixin, {
+ searchFilter,
+} from '@/components/Mixins/SearchFilterMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
+ mixins: [
+ TableRowExpandMixin,
+ DataFormatterMixin,
+ TableSortMixin,
+ SearchFilterMixin,
+ ],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ sortable: false,
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ tdClass: 'text-nowrap',
+ },
+ {
+ key: 'partNumber',
+ label: this.$t('pageInventory.table.partNumber'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'serialNumber',
+ label: this.$t('pageInventory.table.serialNumber'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ searchFilter: searchFilter,
+ searchTotalFilteredRows: 0,
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ filteredRows() {
+ return this.searchFilter
+ ? this.searchTotalFilteredRows
+ : this.fans.length;
+ },
+ fans() {
+ return this.$store.getters['fan/fans'];
+ },
+ },
+ created() {
+ this.$store.dispatch('fan/getFanInfo').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-fans-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ sortCompare(a, b, key) {
+ if (key === 'health') {
+ return this.sortStatus(a, b, key);
+ }
+ },
+ onFiltered(filteredItems) {
+ this.searchTotalFilteredRows = filteredItems.length;
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
new file mode 100644
index 00000000..35e6e14d
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
@@ -0,0 +1,216 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.powerSupplies')"
+ >
+ <b-row class="align-items-end">
+ <b-col sm="6" md="5" xl="4">
+ <search
+ @change-search="onChangeSearchInput"
+ @clear-search="onClearSearchInput"
+ />
+ </b-col>
+ <b-col sm="6" md="3" xl="2">
+ <table-cell-count
+ :filtered-items-count="filteredRows"
+ :total-number-of-cells="powerSupplies.length"
+ ></table-cell-count>
+ </b-col>
+ </b-row>
+ <b-table
+ sort-icon-left
+ no-sort-reset
+ hover
+ responsive="md"
+ sort-by="health"
+ show-empty
+ no-border-collapse
+ :items="powerSupplies"
+ :fields="fields"
+ :sort-desc="true"
+ :sort-compare="sortCompare"
+ :filter="searchFilter"
+ :empty-text="$t('global.table.emptyMessage')"
+ :empty-filtered-text="$t('global.table.emptySearchMessage')"
+ :busy="isBusy"
+ @filtered="onFiltered"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandPowerSupplies"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ value }}
+ </template>
+
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col sm="6" xl="4">
+ <dl>
+ <!-- Name -->
+ <dt>{{ $t('pageInventory.table.name') }}:</dt>
+ <dd>{{ dataFormatter(item.name) }}</dd>
+ <!-- Part number -->
+ <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.partNumber) }}</dd>
+ <!-- Serial number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ <!-- Spare part number -->
+ <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
+ <!-- Model -->
+ <dt>{{ $t('pageInventory.table.model') }}:</dt>
+ <dd>{{ dataFormatter(item.model) }}</dd>
+ </dl>
+ </b-col>
+ <b-col sm="6" xl="4">
+ <dl>
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ <!-- Status Health rollup state -->
+ <dt>{{ $t('pageInventory.table.statusHealthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.statusHealth) }}</dd>
+ <!-- Efficiency percent -->
+ <dt>{{ $t('pageInventory.table.efficiencyPercent') }}:</dt>
+ <dd>{{ dataFormatter(item.efficiencyPercent) }}</dd>
+ <!-- Power input watts -->
+ <dt>{{ $t('pageInventory.table.powerInputWatts') }}:</dt>
+ <dd>{{ dataFormatter(item.powerInputWatts) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <div class="section-divider mb-3 mt-3"></div>
+ <b-row>
+ <b-col sm="6" xl="4">
+ <dl>
+ <!-- Manufacturer -->
+ <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
+ <dd>{{ dataFormatter(item.manufacturer) }}</dd>
+ </dl>
+ </b-col>
+ <b-col sm="6" xl="4">
+ <dl>
+ <!-- Firmware version -->
+ <dt>{{ $t('pageInventory.table.firmwareVersion') }}:</dt>
+ <dd>{{ dataFormatter(item.firmwareVersion) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+
+import StatusIcon from '@/components/Global/StatusIcon';
+import TableCellCount from '@/components/Global/TableCellCount';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
+import Search from '@/components/Global/Search';
+import SearchFilterMixin, {
+ searchFilter,
+} from '@/components/Mixins/SearchFilterMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
+ mixins: [
+ TableRowExpandMixin,
+ DataFormatterMixin,
+ TableSortMixin,
+ SearchFilterMixin,
+ ],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ sortable: false,
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ tdClass: 'text-nowrap',
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'identifyLed',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ searchFilter: searchFilter,
+ searchTotalFilteredRows: 0,
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ filteredRows() {
+ return this.searchFilter
+ ? this.searchTotalFilteredRows
+ : this.powerSupplies.length;
+ },
+ powerSupplies() {
+ return this.$store.getters['powerSupply/powerSupplies'];
+ },
+ },
+ created() {
+ this.$store.dispatch('powerSupply/getAllPowerSupplies').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-power-supplies-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ sortCompare(a, b, key) {
+ if (key === 'health') {
+ return this.sortStatus(a, b, key);
+ }
+ },
+ onFiltered(filteredItems) {
+ this.searchTotalFilteredRows = filteredItems.length;
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableProcessors.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableProcessors.vue
new file mode 100644
index 00000000..08128da4
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableProcessors.vue
@@ -0,0 +1,275 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.processors')"
+ >
+ <!-- Search -->
+ <b-row class="align-items-end">
+ <b-col sm="6" md="5" xl="4">
+ <search
+ @change-search="onChangeSearchInput"
+ @clear-search="onClearSearchInput"
+ />
+ </b-col>
+ <b-col sm="6" md="3" xl="2">
+ <table-cell-count
+ :filtered-items-count="filteredRows"
+ :total-number-of-cells="processors.length"
+ >
+ </table-cell-count>
+ </b-col>
+ </b-row>
+ <b-table
+ sort-icon-left
+ no-sort-reset
+ hover
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="processors"
+ :fields="fields"
+ :sort-desc="true"
+ :fixed="true"
+ :filter="searchFilter"
+ :empty-text="$t('global.table.emptyMessage')"
+ :empty-filtered-text="$t('global.table.emptySearchMessage')"
+ :busy="isBusy"
+ @filtered="onFiltered"
+ >
+ <!-- Expand button -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandProcessors"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ value }}
+ </template>
+
+ <!-- Toggle identify LED -->
+ <template #cell(identifyLed)="row">
+ <b-form-checkbox
+ v-if="hasIdentifyLed(row.item.identifyLed)"
+ v-model="row.item.identifyLed"
+ name="switch"
+ switch
+ @change="toggleIdentifyLedValue(row.item)"
+ >
+ <span v-if="row.item.identifyLed">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else> {{ $t('global.status.off') }} </span>
+ </b-form-checkbox>
+ <div v-else>--</div>
+ </template>
+
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Name -->
+ <dt>{{ $t('pageInventory.table.name') }}:</dt>
+ <dd>{{ dataFormatter(item.name) }}</dd>
+ <!-- Part Number -->
+ <dt>{{ $t('pageInventory.table.partNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.partNumber) }}</dd>
+ <!-- Serial Number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ <!-- Spare Part Number -->
+ <dt>{{ $t('pageInventory.table.sparePartNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.sparePartNumber) }}</dd>
+ <!-- Model -->
+ <dt>{{ $t('pageInventory.table.model') }}:</dt>
+ <dd>{{ dataFormatter(item.model) }}</dd>
+ <!-- Asset Tag -->
+ <dt>{{ $t('pageInventory.table.assetTag') }}:</dt>
+ <dd>{{ dataFormatter(item.assetTag) }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2" sm="6" xl="6">
+ <dl>
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ <!-- Health Rollup -->
+ <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.healthRollup) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <div class="section-divider mb-3 mt-3"></div>
+ <b-row>
+ <b-col class="mt-1" sm="6" xl="6">
+ <dl>
+ <!-- Manufacturer -->
+ <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
+ <dd>{{ dataFormatter(item.manufacturer) }}</dd>
+ <!-- Processor Type -->
+ <dt>{{ $t('pageInventory.table.processorType') }}:</dt>
+ <dd>{{ dataFormatter(item.processorType) }}</dd>
+ <!-- Processor Architecture -->
+ <dt>{{ $t('pageInventory.table.processorArchitecture') }}:</dt>
+ <dd>{{ dataFormatter(item.processorArchitecture) }}</dd>
+ <!-- Instruction Set -->
+ <dt>{{ $t('pageInventory.table.instructionSet') }}:</dt>
+ <dd>{{ dataFormatter(item.instructionSet) }}</dd>
+ <!-- Version -->
+ <dt>{{ $t('pageInventory.table.version') }}:</dt>
+ <dd>{{ dataFormatter(item.version) }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-1" sm="6" xl="6">
+ <dl>
+ <!-- Min Speed MHz -->
+ <dt>{{ $t('pageInventory.table.minSpeedMHz') }}:</dt>
+ <dd>{{ dataFormatter(item.minSpeedMHz) }}</dd>
+ <!-- Max Speed MHz -->
+ <dt>{{ $t('pageInventory.table.maxSpeedMHz') }}:</dt>
+ <dd>{{ dataFormatter(item.maxSpeedMHz) }}</dd>
+ <!-- Total Cores -->
+ <dt>{{ $t('pageInventory.table.totalCores') }}:</dt>
+ <dd>{{ dataFormatter(item.totalCores) }}</dd>
+ <!-- Total Threads -->
+ <dt>{{ $t('pageInventory.table.totalThreads') }}:</dt>
+ <dd>{{ dataFormatter(item.totalThreads) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import StatusIcon from '@/components/Global/StatusIcon';
+import TableCellCount from '@/components/Global/TableCellCount';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import Search from '@/components/Global/Search';
+import SearchFilterMixin, {
+ searchFilter,
+} from '@/components/Mixins/SearchFilterMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
+ mixins: [
+ BVToastMixin,
+ TableRowExpandMixin,
+ DataFormatterMixin,
+ TableSortMixin,
+ SearchFilterMixin,
+ ],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ sortable: false,
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand ',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ tdClass: 'text-nowrap',
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ sortable: true,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'identifyLed',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ sortable: false,
+ thStyle: { width: '20%' },
+ },
+ ],
+ processors: [
+ {
+ id: 'Процессор №1',
+ health: 'v3.1.5',
+ locationNumber: '2.4',
+ identifyLed: '4',
+ },
+ {
+ id: 'Процессор №1',
+ health: 'v3.1.5',
+ locationNumber: '2.4',
+ identifyLed: '4',
+ },
+ ],
+ searchFilter: searchFilter,
+ searchTotalFilteredRows: 0,
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ filteredRows() {
+ return this.searchFilter
+ ? this.searchTotalFilteredRows
+ : this.processors.length;
+ },
+ // processors() {
+ // return this.$store.getters['processors/processors'];
+ // },
+ },
+ created() {
+ this.$store.dispatch('processors/getProcessorsInfo').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-processors-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ onFiltered(filteredItems) {
+ this.searchTotalFilteredRows = filteredItems.length;
+ },
+ toggleIdentifyLedValue(row) {
+ this.$store
+ .dispatch('processors/updateIdentifyLedValue', {
+ uri: row.uri,
+ identifyLed: row.identifyLed,
+ })
+ .catch(({ message }) => this.errorToast(message));
+ },
+ // TO DO: remove hasIdentifyLed when the following is merged:
+ // https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/37045
+ hasIdentifyLed(identifyLed) {
+ return typeof identifyLed === 'boolean';
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/HardwareStatus/Inventory/InventoryTableSystem.vue b/src/views/_sila/HardwareStatus/Inventory/InventoryTableSystem.vue
new file mode 100644
index 00000000..c3b7bd87
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/InventoryTableSystem.vue
@@ -0,0 +1,236 @@
+<template>
+ <page-section
+ class="bootstrap-table__section"
+ :section-small-title="$t('pageInventory.system')"
+ >
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="systems"
+ :fields="fields"
+ :fixed="true"
+ :empty-text="$t('global.table.emptyMessage')"
+ :busy="isBusy"
+ >
+ <!-- Expand chevron icon -->
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandSystem"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+
+ <!-- Health -->
+ <template #cell(health)="{ value }">
+ <status-icon :status="statusIcon(value)" />
+ {{ statusIcon(value) }}
+ </template>
+
+ <template #cell(locationIndicatorActive)="{ item }">
+ <b-form-checkbox
+ id="identifyLedSwitchSystem"
+ v-model="item.locationIndicatorActive"
+ data-test-id="inventorySystem-toggle-identifyLed"
+ switch
+ @change="toggleIdentifyLedSwitch"
+ >
+ <span v-if="item.locationIndicatorActive">
+ {{ $t('global.status.on') }}
+ </span>
+ <span v-else>{{ $t('global.status.off') }}</span>
+ </b-form-checkbox>
+ </template>
+
+ <template #row-details="{ item }">
+ <b-container fluid>
+ <b-row>
+ <b-col class="mt-2" sm="6">
+ <dl>
+ <!-- Serial number -->
+ <dt>{{ $t('pageInventory.table.serialNumber') }}:</dt>
+ <dd>{{ dataFormatter(item.serialNumber) }}</dd>
+ <!-- Model -->
+ <dt>{{ $t('pageInventory.table.model') }}:</dt>
+ <dd>{{ dataFormatter(item.model) }}</dd>
+ <!-- Asset tag -->
+ <dt>{{ $t('pageInventory.table.assetTag') }}:</dt>
+ <dd class="mb-2">
+ {{ dataFormatter(item.assetTag) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2" sm="6">
+ <dl>
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.statusState) }}</dd>
+ <!-- Power state -->
+ <dt>{{ $t('pageInventory.table.power') }}:</dt>
+ <dd>{{ dataFormatter(item.powerState) }}</dd>
+ <!-- Health rollup -->
+ <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.healthRollup) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <div class="section-divider mb-3 mt-3"></div>
+ <b-row>
+ <b-col class="mt-1" sm="6">
+ <dl>
+ <!-- Manufacturer -->
+ <dt>{{ $t('pageInventory.table.manufacturer') }}:</dt>
+ <dd>{{ dataFormatter(item.manufacturer) }}</dd>
+ <!-- Description -->
+ <dt>{{ $t('pageInventory.table.description') }}:</dt>
+ <dd>{{ dataFormatter(item.description) }}</dd>
+ <!-- Sub Model -->
+ <dt>{{ $t('pageInventory.table.subModel') }}:</dt>
+ <dd>
+ {{ dataFormatter(item.subModel) }}
+ </dd>
+ <!-- System Type -->
+ <dt>{{ $t('pageInventory.table.systemType') }}:</dt>
+ <dd>
+ {{ dataFormatter(item.systemType) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col sm="6">
+ <!-- Memory Summary -->
+ <p class="mt-1 mb-2 h6 float-none m-0">
+ {{ $t('pageInventory.table.memorySummary') }}
+ </p>
+ <dl class="ml-4">
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.memorySummaryState) }}</dd>
+ <!-- Health -->
+ <dt>{{ $t('pageInventory.table.health') }}:</dt>
+ <dd>{{ dataFormatter(item.memorySummaryHealth) }}</dd>
+ <!-- Health Roll -->
+ <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.memorySummaryHealthRollup) }}</dd>
+ <!-- Total system memory -->
+ <dt>{{ $t('pageInventory.table.totalSystemMemoryGiB') }}:</dt>
+ <dd>{{ dataFormatter(item.totalSystemMemoryGiB) }}GB</dd>
+ </dl>
+ <!-- Processor Summary -->
+ <p class="mt-1 mb-2 h6 float-none m-0">
+ {{ $t('pageInventory.table.processorSummary') }}
+ </p>
+ <dl class="ml-4">
+ <!-- Status state -->
+ <dt>{{ $t('pageInventory.table.statusState') }}:</dt>
+ <dd>{{ dataFormatter(item.processorSummaryState) }}</dd>
+ <!-- Health -->
+ <dt>{{ $t('pageInventory.table.health') }}:</dt>
+ <dd>{{ dataFormatter(item.processorSummaryHealth) }}</dd>
+ <!-- Health Rollup -->
+ <dt>{{ $t('pageInventory.table.healthRollup') }}:</dt>
+ <dd>{{ dataFormatter(item.processorSummaryHealthRoll) }}</dd>
+ <!-- Count -->
+ <dt>{{ $t('pageInventory.table.count') }}:</dt>
+ <dd>{{ dataFormatter(item.processorSummaryCount) }}</dd>
+ <!-- Core Count -->
+ <dt>{{ $t('pageInventory.table.coreCount') }}:</dt>
+ <dd>{{ dataFormatter(item.processorSummaryCoreCount) }}</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+
+import StatusIcon from '@/components/Global/StatusIcon';
+
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+
+export default {
+ components: { IconChevron, PageSection, StatusIcon },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '4%' },
+ tdClass: 'table-row-expand',
+ },
+ {
+ key: 'id',
+ label: this.$t('pageInventory.table.id'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'hardwareType',
+ label: this.$t('pageInventory.table.hardwareType'),
+ formatter: this.dataFormatter,
+ tdClass: 'text-nowrap ',
+ },
+ {
+ key: 'health',
+ label: this.$t('pageInventory.table.health'),
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'locationNumber',
+ label: this.$t('pageInventory.table.locationNumber'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'locationIndicatorActive',
+ label: this.$t('pageInventory.table.identifyLed'),
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ };
+ },
+ computed: {
+ systems() {
+ return this.$store.getters['system/systems'];
+ },
+ },
+ created() {
+ this.$store.dispatch('system/getSystem').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-system-complete');
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ toggleIdentifyLedSwitch(state) {
+ this.$store
+ .dispatch('system/changeIdentifyLedState', state)
+ .catch(({ message }) => this.errorToast(message));
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.custom-switch {
+ margin: 0;
+}
+</style>
diff --git a/src/views/_sila/HardwareStatus/Inventory/index.js b/src/views/_sila/HardwareStatus/Inventory/index.js
new file mode 100644
index 00000000..c9fde8d2
--- /dev/null
+++ b/src/views/_sila/HardwareStatus/Inventory/index.js
@@ -0,0 +1,2 @@
+import Inventory from './Inventory.vue';
+export default Inventory;
diff --git a/src/views/_sila/HardwareStatus/Sensors/Sensors.vue b/src/views/_sila/HardwareStatus/Sensors/Sensors.vue
index 347efd6c..b98e023d 100644
--- a/src/views/_sila/HardwareStatus/Sensors/Sensors.vue
+++ b/src/views/_sila/HardwareStatus/Sensors/Sensors.vue
@@ -1,5 +1,5 @@
<template>
- <b-container fluid="xl">
+ <b-container>
<page-title />
<b-row class="align-items-end">
<b-col sm="6" md="5" xl="4">
@@ -254,3 +254,8 @@ export default {
},
};
</script>
+<style lang="scss">
+.container > .page-title > .text-title {
+ margin-left: 0 !important;
+}
+</style>
diff --git a/src/views/_sila/InformationAndFAQ/InformationAndFAQ.vue b/src/views/_sila/InformationAndFAQ/InformationAndFAQ.vue
new file mode 100644
index 00000000..ede7b3d8
--- /dev/null
+++ b/src/views/_sila/InformationAndFAQ/InformationAndFAQ.vue
@@ -0,0 +1,9 @@
+<template>
+ <span>This Page (Information And FAQ) In develop</span>
+</template>
+
+<script>
+export default {
+ name: 'InformationAndFAQ',
+};
+</script>
diff --git a/src/views/_sila/InformationAndFAQ/index.js b/src/views/_sila/InformationAndFAQ/index.js
new file mode 100644
index 00000000..6bbeaba6
--- /dev/null
+++ b/src/views/_sila/InformationAndFAQ/index.js
@@ -0,0 +1 @@
+export { default } from './InformationAndFAQ.vue';
diff --git a/src/views/_sila/Login/Login.vue b/src/views/_sila/Login/Login.vue
index 3c330362..1b8715c9 100644
--- a/src/views/_sila/Login/Login.vue
+++ b/src/views/_sila/Login/Login.vue
@@ -5,15 +5,30 @@
{{ $t('pageLogin.alert.message') }}
</p>
</alert>
- <b-form-group label-for="language" :label="$t('pageLogin.language')">
+ <!-- <b-form-group label-for="language" :label="$t('pageLogin.language')">
<b-form-select
id="language"
v-model="$i18n.locale"
:options="languages"
data-test-id="login-select-language"
></b-form-select>
- </b-form-group>
- <b-form-group label-for="username" :label="$t('pageLogin.username')">
+ </b-form-group> -->
+ <b-form-group
+ class="bold-24px"
+ label-for="auth"
+ :label="$t('pageLogin.auth')"
+ ></b-form-group>
+
+ <b-form-group
+ label-for="auth"
+ class="auth-description"
+ :label="$t('pageLogin.authDescription')"
+ ></b-form-group>
+
+ <b-form-group>
+ <label class="regular-12px tretiatry" for="username">{{
+ $t('pageLogin.username')
+ }}</label>
<b-form-input
id="username"
v-model="userInfo.username"
@@ -22,6 +37,7 @@
type="text"
autofocus="autofocus"
data-test-id="login-input-username"
+ class="form-control-with-button username-input"
@input="$v.userInfo.username.$touch()"
>
</b-form-input>
@@ -31,9 +47,12 @@
</template>
</b-form-invalid-feedback>
</b-form-group>
- <div class="login-form__section mb-3">
- <label for="password">{{ $t('pageLogin.password') }}</label>
+
+ <b-form-group>
<input-password-toggle>
+ <label class="regular-12px tretiatry" for="password">{{
+ $t('pageLogin.password')
+ }}</label>
<b-form-input
id="password"
v-model="userInfo.password"
@@ -41,19 +60,20 @@
:state="getValidationState($v.userInfo.password)"
type="password"
data-test-id="login-input-password"
- class="form-control-with-button"
+ class="form-control-with-button password-input"
@input="$v.userInfo.password.$touch()"
>
</b-form-input>
+ <b-form-invalid-feedback id="password-required" role="alert">
+ <template v-if="!$v.userInfo.password.required">
+ {{ $t('global.form.fieldRequired') }}
+ </template>
+ </b-form-invalid-feedback>
</input-password-toggle>
- <b-form-invalid-feedback id="password-required" role="alert">
- <template v-if="!$v.userInfo.password.required">
- {{ $t('global.form.fieldRequired') }}
- </template>
- </b-form-invalid-feedback>
- </div>
+ </b-form-group>
+
<b-button
- class="mt-3"
+ class="login-button"
type="submit"
variant="primary"
data-test-id="login-button-submit"
@@ -83,6 +103,10 @@ export default {
disableSubmitButton: false,
languages: [
{
+ value: 'ru-RU',
+ text: 'Русский',
+ },
+ {
value: 'en-US',
text: 'English',
},
@@ -90,10 +114,6 @@ export default {
value: 'es',
text: 'Español',
},
- {
- value: 'ru-RU',
- text: 'Русский',
- },
],
};
},
@@ -144,3 +164,35 @@ export default {
},
};
</script>
+<style scoped>
+.regular-12px {
+ margin-left: 10px;
+}
+.username-input,
+.password-input {
+ height: 56px;
+ margin: -30px 0 0 0;
+ padding-top: 30px;
+ font-family: 'Inter', sans-serif;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0em;
+}
+
+.text-input {
+ margin: 0 0 0 50px;
+ padding: 0 0 0 5px;
+}
+
+.login-button {
+ height: 36px;
+ width: 380px;
+}
+
+@media (max-width: 576px) {
+ .login-button {
+ width: 100%;
+ }
+}
+</style>
diff --git a/src/views/_sila/Login/index.js b/src/views/_sila/Login/index.js
index 8fe0250d..3eac6cc0 100644
--- a/src/views/_sila/Login/index.js
+++ b/src/views/_sila/Login/index.js
@@ -1,2 +1 @@
-import Login from './Login.vue';
-export default Login;
+export { default } from './Login.vue';
diff --git a/src/views/_sila/Logs/Dumps/DumpsForm.vue b/src/views/_sila/Logs/Dumps/DumpsForm.vue
index acd755c7..07f4a060 100644
--- a/src/views/_sila/Logs/Dumps/DumpsForm.vue
+++ b/src/views/_sila/Logs/Dumps/DumpsForm.vue
@@ -35,9 +35,9 @@
<script>
import { required } from 'vuelidate/lib/validators';
import ModalConfirmation from './DumpsModalConfirmation';
-import Alert from '@/components/_sila/Global/Alert';
-import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
-import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js';
+import Alert from '@/components/Global/Alert';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
export default {
components: { Alert, ModalConfirmation },
diff --git a/src/views/_sila/Logs/Dumps/DumpsModalConfirmation.vue b/src/views/_sila/Logs/Dumps/DumpsModalConfirmation.vue
index 49ef960e..f8e20cfd 100644
--- a/src/views/_sila/Logs/Dumps/DumpsModalConfirmation.vue
+++ b/src/views/_sila/Logs/Dumps/DumpsModalConfirmation.vue
@@ -38,8 +38,8 @@
</template>
<script>
-import StatusIcon from '@/components/_sila/Global/StatusIcon';
-import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js';
+import StatusIcon from '@/components/Global/StatusIcon';
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
export default {
components: { StatusIcon },
diff --git a/src/views/_sila/Logs/EventLogs/EventLogs.vue b/src/views/_sila/Logs/EventLogs/EventLogs.vue
index adaa2e9e..dda42c6c 100644
--- a/src/views/_sila/Logs/EventLogs/EventLogs.vue
+++ b/src/views/_sila/Logs/EventLogs/EventLogs.vue
@@ -1,63 +1,93 @@
<template>
- <b-container fluid="xl">
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ class="logs-section"
+ >
<page-title />
+ <div class="logs-head-container">
+ <table-cell-count
+ :filtered-items-count="filteredRows"
+ :total-number-of-cells="allLogs.length"
+ ></table-cell-count>
+ <search
+ :placeholder="$t('pageEventLogs.table.searchLogs')"
+ data-test-id="eventLogs-input-searchLogs"
+ style="margin: 13px; width: 35%"
+ @change-search="onChangeSearchInput"
+ @clear-search="onClearSearchInput"
+ />
+ </div>
<b-row class="align-items-start">
- <b-col sm="8" xl="6" class="d-sm-flex align-items-end mb-4">
- <search
- :placeholder="$t('pageEventLogs.table.searchLogs')"
- data-test-id="eventLogs-input-searchLogs"
- @change-search="onChangeSearchInput"
- @clear-search="onClearSearchInput"
- />
- <div class="ml-sm-4">
- <table-cell-count
- :filtered-items-count="filteredRows"
- :total-number-of-cells="allLogs.length"
- ></table-cell-count>
- </div>
- </b-col>
- <b-col sm="8" md="7" xl="6">
+ <b-col md="12" xl="6">
<table-date-filter @change="onChangeDateTimeFilter" />
</b-col>
- </b-row>
- <b-row>
- <b-col class="text-right">
+ <b-col
+ md="12"
+ xl="6"
+ class="d-flex align-items-end justify-content-between mt-3"
+ >
<table-filter :filters="tableFilters" @filter-change="onFilterChange" />
- <b-button
- variant="link"
- :disabled="allLogs.length === 0"
- @click="deleteAllLogs"
+ <popover-with-slot
+ id="popover-delete"
+ :button-label="$t('pageEventLogs.clear')"
+ :popup-label="$t('pageEventLogs.clearLogs_popup')"
+ placement="left"
+ :action="deleteAllLogs"
>
- <icon-delete /> {{ $t('global.action.deleteAll') }}
- </b-button>
+ <b-button
+ id="popover-delete"
+ ref="button"
+ variant="link"
+ style="color: $red-brand-primary"
+ :disabled="allLogs.length === 0"
+ >
+ <icon-delete /> {{ $t('pageEventLogs.clearLogs') }}
+ </b-button>
+ </popover-with-slot>
<b-button
variant="primary"
+ size="md"
:class="{ disabled: allLogs.length === 0 }"
:download="exportFileNameByDate()"
:href="href"
>
- <icon-export /> {{ $t('global.action.exportAll') }}
+ <icon-download /> {{ $t('global.action.exportAll') }}
</b-button>
</b-col>
</b-row>
<b-row>
- <b-col>
+ <b-col id="logs-table-wrapper" class="m-0 p-0">
<table-toolbar
ref="toolbar"
:selected-items-count="selectedRows.length"
:actions="batchActions"
@clear-selected="clearSelectedRows($refs.table)"
- @batch-action="onBatchAction"
>
<template #toolbar-buttons>
- <b-button variant="primary" @click="resolveLogs">
+ <b-button
+ size="md"
+ variant="secondary"
+ style="margin-right: 1rem"
+ @click="resolveLogs"
+ >
+ <img
+ class="sourse__img"
+ src="@/assets/images/_sila/event-logs/resolved-button.svg"
+ />
{{ $t('pageEventLogs.resolve') }}
</b-button>
- <b-button variant="primary" @click="unresolveLogs">
+ <b-button
+ size="md"
+ variant="primary"
+ style="margin-right: 1rem"
+ @click="unresolveLogs"
+ >
{{ $t('pageEventLogs.unresolve') }}
</b-button>
<table-toolbar-export
:data="batchExportData"
+ style="margin-right: 1rem"
:file-name="exportFileNameByDate()"
/>
</template>
@@ -66,6 +96,7 @@
id="table-event-logs"
ref="table"
responsive="md"
+ class="logs-table"
selectable
no-select-on-click
sort-icon-left
@@ -73,7 +104,9 @@
no-sort-reset
sort-desc
show-empty
+ no-border-collapse
sort-by="id"
+ :sticky-header="true"
:fields="fields"
:items="filteredLogs"
:sort-compare="onSortCompare"
@@ -106,126 +139,123 @@
<span class="sr-only">{{ $t('global.table.selectItem') }}</span>
</b-form-checkbox>
</template>
-
- <!-- Expand chevron icon -->
- <template #cell(expandRow)="row">
- <b-button
- variant="link"
- :aria-label="expandRowLabel"
- :title="expandRowLabel"
- class="btn-icon-only"
- @click="toggleRowDetails(row)"
+ <!-- Description column -->
+ <template #cell(description)="data">
+ <b-row class="semi-bold-16px tretiatry">
+ {{ filteredLogs[data.index].name }}
+ </b-row>
+ <b-row
+ class="regular-12px tretiatry pointer"
+ @click="toggleRowDetails(data)"
>
- <icon-chevron />
- </b-button>
+ {{ data.value }}
+ </b-row>
</template>
<template #row-details="{ item }">
- <b-container fluid>
+ <b-container
+ fluid
+ style="border-bottom: 1px solid rgba(26, 62, 91, 0.1)"
+ >
<b-row>
- <b-col>
+ <b-col class="mt-1">
<dl>
<!-- Name -->
- <dt>{{ $t('pageEventLogs.table.name') }}:</dt>
- <dd>{{ dataFormatter(item.name) }}</dd>
+ <dt class="semi-bold-12px">
+ {{ $t('pageEventLogs.table.name') }}:
+ </dt>
+ <dd class="regular-12px">{{ dataFormatter(item.name) }}</dd>
</dl>
<dl>
- <!-- Type -->
- <dt>{{ $t('pageEventLogs.table.type') }}:</dt>
- <dd>{{ dataFormatter(item.type) }}</dd>
+ <!-- Description -->
+ <dt class="semi-bold-12px">
+ {{ $t('pageEventLogs.table.description') }}:
+ </dt>
+ <dd class="regular-12px tretiatry">
+ {{ dataFormatter(item.description) }}
+ </dd>
</dl>
- </b-col>
- <b-col>
<dl>
- <!-- Modified date -->
- <dt>{{ $t('pageEventLogs.table.modifiedDate') }}:</dt>
- <dd v-if="item.modifiedDate">
- {{ item.modifiedDate | formatDate }}
- {{ item.modifiedDate | formatTime }}
+ <!-- Type -->
+ <dt class="semi-bold-12px">
+ {{ $t('pageEventLogs.table.type') }}:
+ </dt>
+ <dd class="regular-12px tretiatry">
+ {{ dataFormatter(item.type) }}
</dd>
- <dd v-else>--</dd>
</dl>
</b-col>
- <b-col class="text-nowrap">
- <b-button
- class="btn btn-secondary float-right"
- :href="item.additionalDataUri"
- target="_blank"
- >
- <icon-download />{{ $t('pageEventLogs.additionalDataUri') }}
- </b-button>
- </b-col>
</b-row>
</b-container>
</template>
<!-- Severity column -->
<template #cell(severity)="{ value }">
- <status-icon v-if="value" :status="statusIcon(value)" />
- {{ value }}
+ <span
+ :class="`indicators-${value}`"
+ class="bold-12px__caps"
+ style="text-overflow: ellipsis; white-space: nowrap"
+ >
+ {{ value }}</span
+ >
</template>
<!-- Date column -->
<template #cell(date)="{ value }">
- <p class="mb-0">{{ value | formatDate }}</p>
- <p class="mb-0">{{ value | formatTime }}</p>
+ <img
+ src="@/assets/images/_sila/event-logs/time.svg"
+ class="sourse__img"
+ />
+ <span v-if="value" class="regular-12px quaternary">
+ {{ value | formatDate }}
+ </span>
+ <span v-if="value" class="regular-12px quaternary">
+ в {{ value | formatTimeShort }}
+ </span>
</template>
<!-- Status column -->
- <template #cell(status)="row">
- <b-form-checkbox
- v-model="row.item.status"
- name="switch"
- switch
- @change="changelogStatus(row.item)"
- >
- <span v-if="row.item.status">
+ <template #cell(status)="{ value }">
+ <b-row v-if="value === true">
+ <img
+ class="sourse__img"
+ src="@/assets/images/_sila/event-logs/resolved.svg"
+ />
+ <span class="semi-bold-12px__caps resolved">
{{ $t('pageEventLogs.resolved') }}
</span>
- <span v-else> {{ $t('pageEventLogs.unresolved') }} </span>
- </b-form-checkbox>
- </template>
- <template #cell(filterByStatus)="{ value }">
- {{ value }}
- </template>
-
- <!-- Actions column -->
- <template #cell(actions)="row">
- <table-row-action
- v-for="(action, index) in row.item.actions"
- :key="index"
- :value="action.value"
- :title="action.title"
- :row-data="row.item"
- :export-name="exportFileNameByDate('export')"
- :data-test-id="`eventLogs-button-deleteRow-${row.index}`"
- @click-table-action="onTableRowAction($event, row.item)"
- >
- <template #icon>
- <icon-export v-if="action.value === 'export'" />
- <icon-trashcan v-if="action.value === 'delete'" />
- </template>
- </table-row-action>
+ </b-row>
+ <b-row v-else>
+ <img
+ class="sourse__img"
+ src="@/assets/images/_sila/event-logs/not-resolved.svg"
+ />
+ <span class="semi-bold-12px__caps not-resolved">
+ {{ $t('pageEventLogs.unresolved') }}</span
+ >
+ </b-row>
</template>
</b-table>
</b-col>
</b-row>
-
<!-- Table pagination -->
- <b-row>
- <b-col sm="6">
+ <b-row class="logs-pagination-container">
+ <b-col sm="6" class="d-flex align-items-center justify-content-start">
<b-form-group
class="table-pagination-select"
:label="$t('global.table.itemsPerPage')"
- label-for="pagination-items-per-page"
+ label-class="semi-bold-16px mb-0"
+ label-for="pagination"
>
<b-form-select
- id="pagination-items-per-page"
+ id="pagination"
v-model="perPage"
+ class="select-per-page semi-bold-16px mb-0"
:options="itemsPerPageOptions"
/>
</b-form-group>
</b-col>
- <b-col sm="6">
+ <b-col sm="6" class="d-flex align-items-center justify-content-end">
+ <span class="semi-bold-16px"> Страницы </span>
<b-pagination
v-model="currentPage"
first-number
@@ -241,21 +271,17 @@
<script>
import IconDelete from '@carbon/icons-vue/es/trash-can/20';
-import IconTrashcan from '@carbon/icons-vue/es/trash-can/20';
-import IconExport from '@carbon/icons-vue/es/document--export/20';
-import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
import IconDownload from '@carbon/icons-vue/es/download/20';
import { omit } from 'lodash';
import PageTitle from '@/components/_sila/Global/PageTitle';
-import StatusIcon from '@/components/_sila/Global/StatusIcon';
import Search from '@/components/_sila/Global/Search';
import TableCellCount from '@/components/_sila/Global/TableCellCount';
import TableDateFilter from '@/components/_sila/Global/TableDateFilter';
import TableFilter from '@/components/_sila/Global/TableFilter';
-import TableRowAction from '@/components/_sila/Global/TableRowAction';
import TableToolbar from '@/components/_sila/Global/TableToolbar';
import TableToolbarExport from '@/components/_sila/Global/TableToolbarExport';
+import PopoverWithSlot from '@/components/_sila/Global/SilaComponents/PopoverWithSlot';
import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin';
@@ -282,19 +308,15 @@ import SearchFilterMixin, {
export default {
components: {
IconDelete,
- IconExport,
- IconTrashcan,
- IconChevron,
IconDownload,
PageTitle,
Search,
- StatusIcon,
TableCellCount,
TableFilter,
- TableRowAction,
TableToolbar,
TableToolbarExport,
TableDateFilter,
+ PopoverWithSlot,
},
mixins: [
BVPaginationMixin,
@@ -316,47 +338,52 @@ export default {
data() {
return {
isBusy: true,
+ sortDesc: true,
fields: [
{
- key: 'expandRow',
- label: '',
- tdClass: 'table-row-expand',
- },
- {
key: 'checkbox',
sortable: false,
+ thClass: ' logs-table__th',
+ tdClass: 'logs-table__td',
},
{
key: 'id',
label: this.$t('pageEventLogs.table.id'),
sortable: true,
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'semi-bold-12px logs-table__td',
+ },
+ {
+ key: 'description',
+ label: this.$t('pageEventLogs.table.about_event'),
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td',
},
{
key: 'severity',
label: this.$t('pageEventLogs.table.severity'),
- sortable: true,
- tdClass: 'text-nowrap',
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td',
+ },
+ {
+ key: 'source',
+ label: this.$t('pageEventLogs.table.source'),
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td semi-bold-12px__caps tretiatry ',
},
{
key: 'date',
label: this.$t('pageEventLogs.table.date'),
sortable: true,
- tdClass: 'text-nowrap',
- },
- {
- key: 'description',
- label: this.$t('pageEventLogs.table.description'),
- tdClass: 'text-break',
+ thClass: `bold-12px__caps logs-table__th`,
+ tdClass: 'logs-table__td',
},
{
key: 'status',
+ sortable: true,
label: this.$t('pageEventLogs.table.status'),
- },
- {
- key: 'actions',
- sortable: false,
- label: '',
- tdClass: 'text-right text-nowrap',
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td',
},
],
tableFilters: [
@@ -431,7 +458,7 @@ export default {
return this.getFilteredTableData(
this.filteredLogsByDate,
this.activeFilters
- );
+ ).filter((el) => el.description);
},
},
created() {
@@ -454,21 +481,10 @@ export default {
.catch(({ message }) => this.errorToast(message));
},
deleteAllLogs() {
- this.$bvModal
- .msgBoxConfirm(this.$t('pageEventLogs.modal.deleteAllMessage'), {
- title: this.$t('pageEventLogs.modal.deleteAllTitle'),
- okTitle: this.$t('global.action.delete'),
- okVariant: 'danger',
- cancelTitle: this.$t('global.action.cancel'),
- })
- .then((deleteConfirmed) => {
- if (deleteConfirmed) {
- this.$store
- .dispatch('eventLog/deleteAllEventLogs', this.allLogs)
- .then((message) => this.successToast(message))
- .catch(({ message }) => this.errorToast(message));
- }
- });
+ this.$store
+ .dispatch('eventLog/deleteAllEventLogs', this.allLogs)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
},
deleteLogs(uris) {
this.$store
@@ -602,3 +618,20 @@ export default {
},
};
</script>
+<style lang="scss" scoped>
+.semi-bold-14px {
+ margin: auto 0;
+}
+.row {
+ margin: 0px;
+}
+
+.not-resolved {
+ color: $text-quaternary;
+}
+
+.form-group,
+.b-pagination {
+ margin: 0px !important;
+}
+</style>
diff --git a/src/views/_sila/Logs/PostCodeLogs/PostCodeLogs.vue b/src/views/_sila/Logs/PostCodeLogs/PostCodeLogs.vue
index e05ef639..14359dfb 100644
--- a/src/views/_sila/Logs/PostCodeLogs/PostCodeLogs.vue
+++ b/src/views/_sila/Logs/PostCodeLogs/PostCodeLogs.vue
@@ -1,26 +1,27 @@
<template>
- <b-container fluid="xl">
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ class="logs-section"
+ >
<page-title />
- <b-row class="align-items-start">
- <b-col sm="8" xl="6" class="d-sm-flex align-items-end mb-4">
- <search
- :placeholder="$t('pagePostCodeLogs.table.searchLogs')"
- @change-search="onChangeSearchInput"
- @clear-search="onClearSearchInput"
- />
- <div class="ml-sm-4">
- <table-cell-count
- :filtered-items-count="filteredRows"
- :total-number-of-cells="allLogs.length"
- ></table-cell-count>
- </div>
- </b-col>
- <b-col sm="8" md="7" xl="6">
+ <div class="logs-head-container">
+ <table-cell-count
+ :filtered-items-count="filteredRows"
+ :total-number-of-cells="allLogs.length"
+ ></table-cell-count>
+ <search
+ :placeholder="$t('pagePostCodeLogs.table.searchLogs')"
+ style="margin: 13px; width: 35%"
+ @change-search="onChangeSearchInput"
+ @clear-search="onClearSearchInput"
+ />
+ </div>
+ <b-row class="align-items-start m-0 p-0">
+ <b-col sm="7" md="6" xl="5">
<table-date-filter @change="onChangeDateTimeFilter" />
</b-col>
- </b-row>
- <b-row>
- <b-col xl="12" class="text-right">
+ <b-col class="d-flex justify-content-end mt-3">
<b-button
variant="primary"
:disabled="allLogs.length === 0"
@@ -31,8 +32,8 @@
</b-button>
</b-col>
</b-row>
- <b-row>
- <b-col>
+ <b-row class="m-0 p-0">
+ <b-col class="p-0">
<table-toolbar
ref="toolbar"
:selected-items-count="selectedRows.length"
@@ -40,107 +41,116 @@
>
<template #toolbar-buttons>
<table-toolbar-export
+ style="margin-right: 1rem"
:data="batchExportData"
:file-name="exportFileNameByDate()"
/>
</template>
</table-toolbar>
- <b-table
- id="table-post-code-logs"
- ref="table"
- responsive="md"
- selectable
- no-select-on-click
- sort-icon-left
- hover
- no-sort-reset
- sort-desc
- show-empty
- sort-by="id"
- :fields="fields"
- :items="filteredLogs"
- :empty-text="$t('global.table.emptyMessage')"
- :empty-filtered-text="$t('global.table.emptySearchMessage')"
- :per-page="perPage"
- :current-page="currentPage"
- :filter="searchFilter"
- :busy="isBusy"
- @filtered="onFiltered"
- @row-selected="onRowSelected($event, filteredLogs.length)"
- >
- <!-- Checkbox column -->
- <template #head(checkbox)>
- <b-form-checkbox
- v-model="tableHeaderCheckboxModel"
- data-test-id="postCode-checkbox-selectAll"
- :indeterminate="tableHeaderCheckboxIndeterminate"
- @change="onChangeHeaderCheckbox($refs.table)"
- >
- <span class="sr-only">{{ $t('global.table.selectAll') }}</span>
- </b-form-checkbox>
- </template>
- <template #cell(checkbox)="row">
- <b-form-checkbox
- v-model="row.rowSelected"
- :data-test-id="`postCode-checkbox-selectRow-${row.index}`"
- @change="toggleSelectRow($refs.table, row.index)"
- >
- <span class="sr-only">{{ $t('global.table.selectItem') }}</span>
- </b-form-checkbox>
- </template>
- <!-- Date column -->
- <template #cell(date)="{ value }">
- <p class="mb-0">{{ value | formatDate }}</p>
- <p class="mb-0">{{ value | formatTime }}</p>
- </template>
+ <div id="logs-table-wrapper">
+ <b-table
+ id="logs-table"
+ ref="table"
+ responsive="md"
+ class="logs-table"
+ selectable
+ no-select-on-click
+ sort-icon-left
+ hover
+ no-sort-reset
+ sort-desc
+ show-empty
+ sort-by="id"
+ :no-border-collapse="true"
+ :sticky-header="true"
+ :fields="fields"
+ :items="filteredLogs"
+ :empty-text="$t('global.table.emptyMessage')"
+ :empty-filtered-text="$t('global.table.emptySearchMessage')"
+ :per-page="perPage"
+ :current-page="currentPage"
+ :filter="searchFilter"
+ :busy="isBusy"
+ @filtered="onFiltered"
+ @row-selected="onRowSelected($event, filteredLogs.length)"
+ >
+ <!-- Checkbox column -->
+ <template #head(checkbox)>
+ <b-form-checkbox
+ v-model="tableHeaderCheckboxModel"
+ data-test-id="postCode-checkbox-selectAll"
+ :indeterminate="tableHeaderCheckboxIndeterminate"
+ @change="onChangeHeaderCheckbox($refs.table)"
+ >
+ <span class="sr-only">{{ $t('global.table.selectAll') }}</span>
+ </b-form-checkbox>
+ </template>
+ <template #cell(checkbox)="row">
+ <b-form-checkbox
+ v-model="row.rowSelected"
+ :data-test-id="`postCode-checkbox-selectRow-${row.index}`"
+ @change="toggleSelectRow($refs.table, row.index)"
+ >
+ <span class="sr-only">{{ $t('global.table.selectItem') }}</span>
+ </b-form-checkbox>
+ </template>
+ <!-- Date column -->
+ <template #cell(date)="{ value }">
+ <p class="mb-0">{{ value | formatDate }}</p>
+ <p class="mb-0">{{ value | formatTime }}</p>
+ </template>
- <!-- Actions column -->
- <template #cell(actions)="row">
- <table-row-action
- v-for="(action, index) in row.item.actions"
- :key="index"
- :value="action.value"
- :title="action.title"
- :row-data="row.item"
- :btn-icon-only="true"
- :export-name="exportFileNameByDate(action.value)"
- :download-location="row.item.uri"
- :download-in-new-tab="true"
- :show-button="false"
- >
- <template #icon>
- <icon-export v-if="action.value === 'export'" />
- <icon-download v-if="action.value === 'download'" />
- </template>
- </table-row-action>
- </template>
- </b-table>
+ <!-- Actions column -->
+ <template #cell(actions)="row">
+ <table-row-action
+ v-for="(action, index) in row.item.actions"
+ :key="index"
+ :value="action.value"
+ :title="action.title"
+ :row-data="row.item"
+ :btn-icon-only="true"
+ :export-name="exportFileNameByDate(action.value)"
+ :download-location="row.item.uri"
+ :download-in-new-tab="true"
+ :show-button="false"
+ >
+ <template #icon>
+ <icon-export v-if="action.value === 'export'" />
+ <icon-download v-if="action.value === 'download'" />
+ </template>
+ </table-row-action>
+ </template>
+ </b-table>
+ </div>
</b-col>
</b-row>
<!-- Table pagination -->
- <b-row>
- <b-col sm="6">
+ <b-row class="logs-pagination-container m-0">
+ <b-col sm="6" class="d-flex align-items-center justify-content-start">
<b-form-group
class="table-pagination-select"
:label="$t('global.table.itemsPerPage')"
+ label-class="semi-bold-16px mb-0"
label-for="pagination-items-per-page"
>
<b-form-select
id="pagination-items-per-page"
v-model="perPage"
+ class="select-per-page semi-bold-16px mb-0"
:options="itemsPerPageOptions"
/>
</b-form-group>
</b-col>
- <b-col sm="6">
+ <b-col sm="6" class="d-flex align-items-center justify-content-end">
+ <span class="semi-bold-16px"> Страницы </span>
<b-pagination
v-model="currentPage"
first-number
last-number
:per-page="perPage"
:total-rows="getTotalRowCount(filteredRows)"
- aria-controls="table-post-code-logs"
+ aria-controls="table-event-logs"
/>
</b-col>
</b-row>
@@ -151,33 +161,33 @@
import IconDownload from '@carbon/icons-vue/es/download/20';
import IconExport from '@carbon/icons-vue/es/document--export/20';
import { omit } from 'lodash';
-import PageTitle from '@/components/_sila/Global/PageTitle';
-import Search from '@/components/_sila/Global/Search';
-import TableCellCount from '@/components/_sila/Global/TableCellCount';
-import TableDateFilter from '@/components/_sila/Global/TableDateFilter';
-import TableRowAction from '@/components/_sila/Global/TableRowAction';
-import TableToolbar from '@/components/_sila/Global/TableToolbar';
-import TableToolbarExport from '@/components/_sila/Global/TableToolbarExport';
-import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
-import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin';
+import PageTitle from '@/components/Global/PageTitle';
+import Search from '@/components/Global/Search';
+import TableCellCount from '@/components/Global/TableCellCount';
+import TableDateFilter from '@/components/Global/TableDateFilter';
+import TableRowAction from '@/components/Global/TableRowAction';
+import TableToolbar from '@/components/Global/TableToolbar';
+import TableToolbarExport from '@/components/Global/TableToolbarExport';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
import BVPaginationMixin, {
currentPage,
perPage,
itemsPerPageOptions,
-} from '@/components/_sila/Mixins/BVPaginationMixin';
+} from '@/components/Mixins/BVPaginationMixin';
import BVTableSelectableMixin, {
selectedRows,
tableHeaderCheckboxModel,
tableHeaderCheckboxIndeterminate,
-} from '@/components/_sila/Mixins/BVTableSelectableMixin';
-import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
-import TableSortMixin from '@/components/_sila/Mixins/TableSortMixin';
+} from '@/components/Mixins/BVTableSelectableMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
import TableRowExpandMixin, {
expandRowLabel,
-} from '@/components/_sila/Mixins/TableRowExpandMixin';
+} from '@/components/Mixins/TableRowExpandMixin';
import SearchFilterMixin, {
searchFilter,
-} from '@/components/_sila/Mixins/SearchFilterMixin';
+} from '@/components/Mixins/SearchFilterMixin';
export default {
components: {
@@ -210,32 +220,44 @@ export default {
data() {
return {
isBusy: true,
+ // stickyHeader: 'calc(100vh - 307px)',
fields: [
{
key: 'checkbox',
sortable: false,
+ thClass: ' logs-table__th',
+ tdClass: 'logs-table__td',
},
{
key: 'date',
label: this.$t('pagePostCodeLogs.table.created'),
sortable: true,
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'semi-bold-12px logs-table__td',
},
{
key: 'timeStampOffset',
label: this.$t('pagePostCodeLogs.table.timeStampOffset'),
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td',
},
{
key: 'bootCount',
label: this.$t('pagePostCodeLogs.table.bootCount'),
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td',
},
{
key: 'postCode',
label: this.$t('pagePostCodeLogs.table.postCode'),
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'logs-table__td semi-bold-12px__caps',
},
{
key: 'actions',
label: '',
- tdClass: 'text-right text-nowrap',
+ thClass: 'bold-12px__caps logs-table__th',
+ tdClass: 'text-right logs-table__td',
},
],
expandRowLabel,
@@ -345,3 +367,17 @@ export default {
},
};
</script>
+<style lang="scss" scoped>
+.form-group,
+.b-pagination {
+ margin: 0px !important;
+}
+.items-per-page {
+ padding: 0 0 0 5px;
+ width: 55px;
+ height: 24px;
+ background-color: transparent;
+ border: 1px solid $on-surface-tretiatry;
+ border-radius: 4px;
+}
+</style>
diff --git a/src/views/_sila/MemoryModules/DynamicInfo/MemoryDynamicPage.vue b/src/views/_sila/MemoryModules/DynamicInfo/MemoryDynamicPage.vue
new file mode 100644
index 00000000..489784e2
--- /dev/null
+++ b/src/views/_sila/MemoryModules/DynamicInfo/MemoryDynamicPage.vue
@@ -0,0 +1,224 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.analyticalPanel')" />
+ <div class="notification__container">
+ <span class="semi-bold-12px">{{
+ $t('global.ariaLabel.notificationTime')
+ }}</span>
+ <div class="form-control notification">
+ <b-form-input
+ v-model="notificationInput"
+ type="number"
+ class="notification__input"
+ >
+ </b-form-input>
+ <button class="notification_button">
+ <img class="notification__icon" src="@/assets/images/refresh.svg" />
+ </button>
+ </div>
+ </div>
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/non-normal.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.nonNormalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureNonNormalInput"
+ type="number"
+ :min="0"
+ :max="temperatureCritical"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/critical.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.criticalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureCritical"
+ type="number"
+ :min="temperatureNonNormalInput"
+ :max="temperatureWarningInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.temperatureWarning')
+ }}</span>
+ <b-form-input
+ v-model="temperatureWarningInput"
+ type="number"
+ :min="temperatureCritical"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateTemperatureLimits"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Temperature Table -->
+ <temperature-table
+ :time-scale="timeScale"
+ :warning="temperatureWarning"
+ :non-normal="temperatureNonNormal"
+ :critical-start="temperatureCriticalStart"
+ />
+ <accessory-table :records="accessoryData.temperatureTable" />
+ </b-container>
+</template>
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import TemperatureTable from './TemperatureTable';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTableWithLabel';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+
+import { AccessoryData } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ DateSwitch,
+ TemperatureTable,
+ AccessoryTable,
+ },
+ mixins: [TableFilterMixin, LoadingBarMixin],
+ data() {
+ return {
+ isBusy: true,
+ timeScale: 'hour',
+ temperatureWarning: 72,
+ temperatureWarningInput: 72,
+ temperatureNonNormal: 44,
+ temperatureNonNormalInput: 44,
+ temperatureCriticalStart: 55,
+ temperatureCritical: 55,
+ notificationInput: 42,
+ accessoryData: AccessoryData,
+ iconChevronUp: iconChevronUp,
+ activeFilters: [],
+ };
+ },
+ computed: {
+ allSensors() {
+ let sensors = this.$store.getters['sensors/memorySensors'];
+ return sensors;
+ },
+ },
+ created() {
+ this.startLoader();
+ this.$store.dispatch('sensors/getMemorySensors').finally(() => {
+ this.endLoader();
+ this.accessoryData.temperatureTable.items = this.getFilteredTableData(
+ this.allSensors,
+ this.activeFilters
+ );
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateTemperatureLimits() {
+ this.temperatureWarning = +this.temperatureWarningInput;
+ this.temperatureNonNormal = +this.temperatureNonNormalInput;
+ this.temperatureCriticalStart = +this.temperatureCritical;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.notification__container {
+ position: absolute;
+ top: calc(#{$header-height});
+ right: 0px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.notification {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ border: none;
+ box-shadow: none;
+ border-radius: 8px;
+ margin: 12px 32px 12px 8px;
+ width: 236px;
+ height: 40px;
+ z-index: 1001;
+}
+
+.notification__icon {
+ width: 20px;
+ height: 20px;
+}
+
+.notification__input {
+ border: none;
+ background: none;
+ box-shadow: none;
+}
+
+.notification_button {
+ border: none;
+ background: none;
+}
+
+.semi-bold-12px {
+ z-index: 1001;
+}
+
+// temperature limit comtainer
+.limit-container {
+ height: 85px;
+ width: 100%;
+ padding: 0 32px 10px 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.trmperature-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 270px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.form-control {
+ height: 36px;
+}
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+</style>
diff --git a/src/views/_sila/MemoryModules/DynamicInfo/TemperatureTable.vue b/src/views/_sila/MemoryModules/DynamicInfo/TemperatureTable.vue
new file mode 100644
index 00000000..f9c149c3
--- /dev/null
+++ b/src/views/_sila/MemoryModules/DynamicInfo/TemperatureTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ plotBands: [
+ {
+ color: '#F0AC0C1A',
+ dashStyle: 'solid',
+ from: this.nonNormal,
+ to: this.criticalStart,
+ },
+ {
+ color: '#FF41411A',
+ dashStyle: 'solid',
+ from: this.criticalStart,
+ to: this.warning,
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/MemoryModules/DynamicInfo/helpers.js b/src/views/_sila/MemoryModules/DynamicInfo/helpers.js
new file mode 100644
index 00000000..3cbca867
--- /dev/null
+++ b/src/views/_sila/MemoryModules/DynamicInfo/helpers.js
@@ -0,0 +1,458 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ temperature: [
+ {
+ name: 'Sean',
+ data: [
+ 15,
+ 15,
+ 45,
+ 15,
+ 65,
+ 15,
+ 75,
+ 15,
+ 15,
+ 15,
+ 55,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 55,
+ 15,
+ 75,
+ 15,
+ 35,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 65,
+ 15,
+ 45,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 65,
+ 15,
+ 35,
+ 35,
+ 35,
+ 15,
+ 55,
+ 15,
+ 15,
+ 35,
+ 15,
+ 25,
+ 15,
+ 35,
+ 15,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 62,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 52,
+ 12,
+ 72,
+ 12,
+ 52,
+ 12,
+ 62,
+ 12,
+ 72,
+ 12,
+ 82,
+ 12,
+ 12,
+ 42,
+ 12,
+ 12,
+ 52,
+ 12,
+ 42,
+ 12,
+ 12,
+ 62,
+ 12,
+ 42,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 62,
+ 12,
+ 12,
+ 32,
+ 12,
+ 62,
+ 12,
+ 52,
+ 12,
+ 32,
+ 12,
+ 22,
+ 12,
+ 32,
+ 12,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 13,
+ 13,
+ 33,
+ 13,
+ 23,
+ 13,
+ 33,
+ 13,
+ 63,
+ 13,
+ 63,
+ 13,
+ 13,
+ 13,
+ 43,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 53,
+ 13,
+ 63,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 43,
+ 13,
+ 13,
+ 63,
+ 13,
+ 43,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 63,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 53,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 24,
+ 14,
+ 44,
+ 14,
+ 64,
+ 14,
+ 64,
+ 14,
+ 34,
+ 14,
+ 54,
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 64,
+ 14,
+ 64,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 64,
+ 14,
+ 14,
+ 14,
+ 84,
+ 14,
+ 94,
+ 14,
+ 54,
+ 4,
+ 54,
+ 14,
+ 44,
+ 14,
+ 44,
+ 64,
+ 14,
+ 44,
+ 14,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 16,
+ 46,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 66,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 16,
+ 36,
+ 16,
+ 26,
+ 16,
+ 36,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 56,
+ 16,
+ 76,
+ 16,
+ 56,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 96,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 46,
+ 16,
+ 46,
+ 16,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 49,
+ 19,
+ 19,
+ 69,
+ 19,
+ 49,
+ 19,
+ 29,
+ 19,
+ 49,
+ 19,
+ 69,
+ 19,
+ 39,
+ 39,
+ 39,
+ 19,
+ 59,
+ 19,
+ 19,
+ 39,
+ 19,
+ 29,
+ 19,
+ 39,
+ 19,
+ 69,
+ 19,
+ 69,
+ 19,
+ 19,
+ 19,
+ 49,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 29,
+ 19,
+ 49,
+ 19,
+ 59,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ ],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [...new Array(count)].map((i, k) => `${k} ${desc}`);
+ return arr;
+};
+
+export const AccessoryData = {
+ temperatureTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentValue',
+ label: 'Текущее, С°',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, С°',
+ },
+ {
+ key: 'lowerCaution',
+ label: 'Минимальное, С°',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'upperCaution',
+ label: 'Максимальное, С°',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [],
+ },
+};
diff --git a/src/views/_sila/MemoryModules/DynamicInfo/index.js b/src/views/_sila/MemoryModules/DynamicInfo/index.js
new file mode 100644
index 00000000..b840772c
--- /dev/null
+++ b/src/views/_sila/MemoryModules/DynamicInfo/index.js
@@ -0,0 +1,2 @@
+import MemoryDynamicPage from './MemoryDynamicPage.vue';
+export default MemoryDynamicPage;
diff --git a/src/views/_sila/MemoryModules/Specification/MemoryStaticPage.vue b/src/views/_sila/MemoryModules/Specification/MemoryStaticPage.vue
new file mode 100644
index 00000000..5e544868
--- /dev/null
+++ b/src/views/_sila/MemoryModules/Specification/MemoryStaticPage.vue
@@ -0,0 +1,228 @@
+<template>
+ <b-container
+ id="page-memory-specification"
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.specification')" />
+ <page-section class="bootstrap-table__section info_section">
+ <span class="bold-16px">{{ $t('global.table.info') }}</span>
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ <span class="bold-16px">{{ $t('global.table.memorySlots') }}</span>
+ </page-section>
+ <data-tabs
+ :slots="memorySlots"
+ :switch-tab="switchMemorySlot"
+ :current-tab="currentMemorySlot"
+ :slot-width="120"
+ :slider-width="97"
+ />
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="items_slots"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="{ index, value }">
+ <b-row v-if="index === 0">
+ <b-col cols="11">
+ <span>
+ {{ 'Работоспособность' }}
+ </span>
+ </b-col>
+ <b-col cols="1">
+ <img src="@/assets/images/status/on.svg" class="icon-chevron" />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>{{ value }}</span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ <page-section class="bootstrap-table__section">
+ <span class="bold-16px">{{ $t('global.table.memoryModules') }}</span>
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="items_modules"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="{ index, value }">
+ <b-row v-if="index === 0">
+ <b-col cols="11">
+ <span>
+ {{ 'Работоспособность' }}
+ </span>
+ </b-col>
+ <b-col cols="1">
+ <img src="@/assets/images/status/on.svg" class="icon-chevron" />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>{{ value }}</span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+export default {
+ components: { PageTitle, PageSection, DataTabs },
+ data() {
+ return {
+ currentMemorySlot: 1,
+ memorySlots: [
+ { id: 1, name: 'CPU_1-DIMM_A1' },
+ { id: 2, name: 'CPU_1-DIMM_A2' },
+ { id: 3, name: 'CPU_1-DIMM_A3' },
+ { id: 4, name: 'CPU_1-DIMM_B1' },
+ { id: 5, name: 'CPU_1-DIMM_B2' },
+ { id: 6, name: 'CPU_1-DIMM_B3' },
+ { id: 7, name: 'CPU_1-DIMM_C1' },
+ { id: 8, name: 'CPU_1-DIMM_C2' },
+ { id: 9, name: 'CPU_1-DIMM_C3' },
+ { id: 10, name: 'CPU_1-DIMM_D1' },
+ { id: 11, name: 'CPU_1-DIMM_D2' },
+ { id: 12, name: 'CPU_1-DIMM_D3' },
+ { id: 13, name: 'CPU_1-DIMM_E1' },
+ { id: 14, name: 'CPU_1-DIMM_E2' },
+ { id: 15, name: 'CPU_1-DIMM_E3' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ parametr: 'Установленный объем памяти',
+ value: '8096 мб',
+ },
+ {
+ parametr: 'Максимальный объем',
+ value: '4048 мб',
+ },
+ {
+ parametr: 'Общее количество слотов',
+ value: '10',
+ },
+ {
+ parametr: 'Используемое количество слотов',
+ value: '10',
+ },
+ ],
+ items_slots: [
+ {
+ parametr: 'Статус',
+ value: true,
+ },
+ {
+ parametr: 'Имя слота',
+ value: 'Cлот 2',
+ },
+ {
+ parametr: 'Технология',
+ value: 'Название технологии',
+ },
+ {
+ parametr: 'Тип памяти',
+ value: 'Оперативная',
+ },
+ {
+ parametr: 'Объем',
+ value: '2024',
+ },
+ {
+ parametr: 'Состояние',
+ value: 'Отлично',
+ },
+ {
+ parametr: 'Класс',
+ value: '1',
+ },
+ {
+ parametr: 'Скорость',
+ value: '2000 МТ/сек',
+ },
+ ],
+ items_modules: [
+ {
+ parametr: 'Статус',
+ value: true,
+ },
+ {
+ parametr: 'Имя коннектора',
+ value: 'DIMM A2',
+ },
+ {
+ parametr: 'Тип памяти',
+ value: 'DDR-4',
+ },
+ {
+ parametr: 'Объем',
+ value: '32 GB',
+ },
+ {
+ parametr: 'Состояние',
+ value: 'Presence Detected',
+ },
+ {
+ parametr: 'Ранг',
+ value: 'Dual Rank',
+ },
+ {
+ parametr: 'Скорость',
+ value: '2400 MHz',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchMemorySlot(period) {
+ this.currentMemorySlot = period;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.info_section {
+ margin-bottom: 0px;
+}
+
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+</style>
diff --git a/src/views/_sila/MemoryModules/Specification/index.js b/src/views/_sila/MemoryModules/Specification/index.js
new file mode 100644
index 00000000..4916f58a
--- /dev/null
+++ b/src/views/_sila/MemoryModules/Specification/index.js
@@ -0,0 +1,2 @@
+import MemoryStaticPage from './MemoryStaticPage.vue';
+export default MemoryStaticPage;
diff --git a/src/views/_sila/Motherboard/DynamicInfo/MotherboardDynamicPage.vue b/src/views/_sila/Motherboard/DynamicInfo/MotherboardDynamicPage.vue
new file mode 100644
index 00000000..c2c88ab6
--- /dev/null
+++ b/src/views/_sila/Motherboard/DynamicInfo/MotherboardDynamicPage.vue
@@ -0,0 +1,159 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title />
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.temperatureWarning')
+ }}</span>
+ <b-form-input
+ v-model="temperatureWarningInput"
+ type="number"
+ :min="0"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateTemperature"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Temperature Table -->
+ <temperature-table
+ :time-scale="timeScale"
+ :warning="temperatureWarning"
+ :non-normal="temperatureNonNormal"
+ :critical-start="temperatureCriticalStart"
+ />
+ <accessory-table :records="accessoryData.temperatureTable" />
+ </b-container>
+</template>
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import TemperatureTable from './TemperatureTable';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTableWithLabel';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+
+import { AccessoryData } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ DateSwitch,
+ TemperatureTable,
+ AccessoryTable,
+ },
+ mixins: [TableFilterMixin, LoadingBarMixin],
+ data() {
+ return {
+ isBusy: true,
+ timeScale: 'hour',
+ temperatureWarning: 72,
+ temperatureWarningInput: 72,
+ notificationInput: 42,
+ accessoryData: AccessoryData,
+ iconChevronUp: iconChevronUp,
+ activeFilters: [],
+ };
+ },
+
+ computed: {
+ allSensors() {
+ let sensors = this.$store.getters['sensors/tempSensors'];
+ return sensors;
+ },
+ },
+ created() {
+ this.startLoader();
+ this.$store.dispatch('sensors/getTempSensors').finally(() => {
+ this.endLoader();
+ this.accessoryData.temperatureTable.items = this.getFilteredTableData(
+ this.allSensors,
+ this.activeFilters
+ );
+ this.isBusy = false;
+ });
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateTemperature() {
+ this.temperatureWarning = +this.temperatureWarningInput;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+.nav-item {
+ list-style-type: none;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+
+.notification-button {
+ border: none;
+ background: none;
+}
+
+.semi-bold-12px {
+ z-index: 1001;
+}
+
+// temperature limit comtainer
+.limit-container {
+ height: 85px;
+ width: 100%;
+ padding: 0 32px 10px 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.trmperature-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 270px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.form-control {
+ height: 36px;
+ &.non-normal {
+ width: 125px;
+ }
+}
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+</style>
diff --git a/src/views/_sila/Motherboard/DynamicInfo/TemperatureTable.vue b/src/views/_sila/Motherboard/DynamicInfo/TemperatureTable.vue
new file mode 100644
index 00000000..1bbf7e08
--- /dev/null
+++ b/src/views/_sila/Motherboard/DynamicInfo/TemperatureTable.vue
@@ -0,0 +1,112 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/Motherboard/DynamicInfo/helpers.js b/src/views/_sila/Motherboard/DynamicInfo/helpers.js
new file mode 100644
index 00000000..890482ee
--- /dev/null
+++ b/src/views/_sila/Motherboard/DynamicInfo/helpers.js
@@ -0,0 +1,458 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ temperature: [
+ {
+ name: 'Sean',
+ data: [
+ 7,
+ 7,
+ 7,
+ 17,
+ 7,
+ 27,
+ 7,
+ 7,
+ 47,
+ 7,
+ 7,
+ 7,
+ 37,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 47,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 37,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 20,
+ 10,
+ 10,
+ 30,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 50,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 20,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 30,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 19,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 13,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 33,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 43,
+ 13,
+ 13,
+ 63,
+ 13,
+ 43,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 24,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 34,
+ 14,
+ 14,
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 84,
+ 14,
+ 94,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 44,
+ 14,
+ 44,
+ 14,
+ 14,
+ 44,
+ 14,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 66,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 36,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 96,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 29,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 39,
+ 39,
+ 39,
+ 19,
+ 59,
+ 19,
+ 19,
+ 39,
+ 19,
+ 29,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 29,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ ],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [...new Array(count)].map((i, k) => `${k} ${desc}`);
+ return arr;
+};
+
+export const AccessoryData = {
+ temperatureTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentValue',
+ label: 'Текущее, С°',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, С°',
+ },
+ {
+ key: 'lowerCaution',
+ label: 'Минимальное, С°',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'upperCaution',
+ label: 'Максимальное, С°',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [],
+ },
+};
diff --git a/src/views/_sila/Motherboard/DynamicInfo/index.js b/src/views/_sila/Motherboard/DynamicInfo/index.js
new file mode 100644
index 00000000..bd155997
--- /dev/null
+++ b/src/views/_sila/Motherboard/DynamicInfo/index.js
@@ -0,0 +1,2 @@
+import MotherboardDynamicPage from './MotherboardDynamicPage.vue';
+export default MotherboardDynamicPage;
diff --git a/src/views/_sila/Motherboard/Specification/MotherboardSpecificationPage.vue b/src/views/_sila/Motherboard/Specification/MotherboardSpecificationPage.vue
new file mode 100644
index 00000000..56586dcf
--- /dev/null
+++ b/src/views/_sila/Motherboard/Specification/MotherboardSpecificationPage.vue
@@ -0,0 +1,83 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.specification')" />
+ <page-section class="bootstrap-table__section">
+ <span class="bold-16px">{{ $t('global.table.info') }}</span>
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ <span class="bold-16px">{{ $t('appNavigation.motherboardParam') }}</span>
+ <popover
+ id="popover-reactive-1"
+ description="SystemDescription.onBootRom"
+ popup="SystemDescription.onBootRom_popup"
+ button="global.action.refresh"
+ />
+ <popover
+ id="popover-reactive-2"
+ description="SystemDescription.offBootRom"
+ popup="SystemDescription.offBootRom_popup"
+ button="global.action.refresh"
+ />
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+
+import Popover from '@/components/Global/Popover';
+
+export default {
+ components: { PageTitle, PageSection, Popover },
+ data() {
+ return {
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ parametr: 'Модель',
+ value: 'R2132',
+ },
+ {
+ parametr: 'Производитель',
+ value: 'Asus',
+ },
+ {
+ parametr: 'Версия',
+ value: '4.2',
+ },
+ {
+ parametr: 'Серийный номер',
+ value: '231232132133',
+ },
+ {
+ parametr: 'Версия BIOS',
+ value: '2',
+ },
+ ],
+ };
+ },
+};
+</script>
diff --git a/src/views/_sila/Motherboard/Specification/index.js b/src/views/_sila/Motherboard/Specification/index.js
new file mode 100644
index 00000000..5458039a
--- /dev/null
+++ b/src/views/_sila/Motherboard/Specification/index.js
@@ -0,0 +1,2 @@
+import MotherboardSpecificationPage from './MotherboardSpecificationPage.vue';
+export default MotherboardSpecificationPage;
diff --git a/src/views/_sila/Operations/ConsoleSettings/ConsoleSettings.vue b/src/views/_sila/Operations/ConsoleSettings/ConsoleSettings.vue
new file mode 100644
index 00000000..ecc2150f
--- /dev/null
+++ b/src/views/_sila/Operations/ConsoleSettings/ConsoleSettings.vue
@@ -0,0 +1,154 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title />
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="systems"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="data">
+ <b-row v-if="typeof data.value === 'boolean'">
+ <b-col>
+ <span v-if="systems[data.index].value">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>
+ {{ $t('global.status.disabled') }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-form-checkbox v-model="systems[data.index].value" switch>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ <b-row
+ v-else-if="data.index === 1 || data.index === 6 || data.index === 8"
+ >
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img :is="iconChevron" class="icon-chevron" />
+ </b-col>
+ </b-row>
+ <b-row v-else-if="data.index === 3">
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img src="@/assets/images/icon-edit.svg" class="icon-chevron" />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <span>{{ data.value }}</span></b-row
+ >
+ </template>
+ </b-table>
+ <div class="save-button">
+ <b-button variant="primary" class="console-settings__save-button">
+ {{ $t('global.action.saveChanges') }}
+ </b-button>
+ </div>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ },
+ mixins: [BVToastMixin, TableRowExpandMixin],
+ data() {
+ return {
+ text: '',
+ isBusy: true,
+ fields: [
+ {
+ key: 'attributes',
+ label: 'Атрибуты',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ thStyle: { width: '30%' },
+ },
+ ],
+ iconChevron,
+ expandRowLabel: expandRowLabel,
+ systems: [
+ { attributes: 'Состояние', value: true },
+ { attributes: 'Максимальное количество сеансов', value: '6' },
+ { attributes: 'Активные сеансы', value: '0' },
+ { attributes: 'Порт удаленного доступа', value: '5900' },
+ { attributes: 'Статус шифрования видео', value: true },
+ { attributes: 'Видео с локального сервера', value: true },
+ {
+ attributes:
+ 'Действие по умолчанию при истечении времени ожидания запроса на общий доступ к сеансу',
+ value: 'Полный доступ',
+ },
+ {
+ attributes: 'Автоматическая блокировка системы',
+ value: false,
+ },
+ {
+ attributes: 'Состояние подключения клавиатуры/мыши',
+ value: 'Автоматическое',
+ },
+ ],
+ // iconChevronUp: iconChevronUp,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ margin: 0px;
+ height: 15px;
+ flex-wrap: nowrap;
+ align-items: center;
+}
+.col {
+ padding: 0;
+}
+
+.icon-chevron {
+ margin: 0 0 0 85%;
+ cursor: pointer;
+}
+
+.save-button {
+ display: flex;
+ justify-content: flex-end;
+}
+
+.console-settings__save-button {
+ width: 241px;
+ height: 36px;
+ margin-right: 0.5rem;
+}
+</style>
diff --git a/src/views/_sila/Operations/ConsoleSettings/index.js b/src/views/_sila/Operations/ConsoleSettings/index.js
new file mode 100644
index 00000000..860ee595
--- /dev/null
+++ b/src/views/_sila/Operations/ConsoleSettings/index.js
@@ -0,0 +1,2 @@
+import ConsoleSettings from './ConsoleSettings.vue';
+export default ConsoleSettings;
diff --git a/src/views/_sila/Operations/FactoryReset/FactoryReset.vue b/src/views/_sila/Operations/FactoryReset/FactoryReset.vue
index 4e315619..d1ab187e 100644
--- a/src/views/_sila/Operations/FactoryReset/FactoryReset.vue
+++ b/src/views/_sila/Operations/FactoryReset/FactoryReset.vue
@@ -1,12 +1,19 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid class="m-0 p-0">
<page-title :description="$t('pageFactoryReset.description')" />
<!-- Reset Form -->
- <b-form id="factory-reset" @submit.prevent="onResetSubmit">
+ <b-form
+ id="factory-reset"
+ class="bootstrap-table__section"
+ @submit.prevent="onResetSubmit"
+ >
<b-row>
<b-col md="8">
- <b-form-group :label="$t('pageFactoryReset.form.resetOptionsLabel')">
+ <b-form-group
+ :label="$t('pageFactoryReset.form.resetOptionsLabel')"
+ label-class="semi-bold-16px"
+ >
<b-form-radio-group
id="factory-reset-options"
v-model="resetOption"
diff --git a/src/views/_sila/Operations/Firmware/Firmware.vue b/src/views/_sila/Operations/Firmware/Firmware.vue
index 0497376d..c4006b7f 100644
--- a/src/views/_sila/Operations/Firmware/Firmware.vue
+++ b/src/views/_sila/Operations/Firmware/Firmware.vue
@@ -1,5 +1,5 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid class="m-0 p-0">
<page-title />
<alerts-server-power
v-if="isServerPowerOffRequired"
@@ -7,7 +7,7 @@
/>
<!-- Firmware cards -->
- <b-row>
+ <b-row class="bootstrap-table__section">
<b-col xl="10">
<!-- BMC Firmware -->
<bmc-cards :is-page-disabled="isPageDisabled" />
@@ -19,6 +19,7 @@
<!-- Update firmware-->
<page-section
+ class="bootstrap-table__section"
:section-title="$t('pageFirmware.sectionTitleUpdateFirmware')"
>
<b-row>
@@ -39,12 +40,10 @@ import AlertsServerPower from './FirmwareAlertServerPower';
import BmcCards from './FirmwareCardsBmc';
import FormUpdate from './FirmwareFormUpdate';
import HostCards from './FirmwareCardsHost';
-import PageSection from '@/components/_sila/Global/PageSection';
-import PageTitle from '@/components/_sila/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import PageTitle from '@/components/Global/PageTitle';
-import LoadingBarMixin, {
- loading,
-} from '@/components/_sila/Mixins/LoadingBarMixin';
+import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
export default {
name: 'FirmwareSingleImage',
diff --git a/src/views/_sila/Operations/Firmware/FirmwareAlertServerPower.vue b/src/views/_sila/Operations/Firmware/FirmwareAlertServerPower.vue
index 471ccfac..24aa1d69 100644
--- a/src/views/_sila/Operations/Firmware/FirmwareAlertServerPower.vue
+++ b/src/views/_sila/Operations/Firmware/FirmwareAlertServerPower.vue
@@ -31,7 +31,7 @@
</template>
<script>
-import Alert from '@/components/_sila/Global/Alert';
+import Alert from '@/components/Global/Alert';
export default {
components: { Alert },
diff --git a/src/views/_sila/Operations/Firmware/FirmwareCardsBmc.vue b/src/views/_sila/Operations/Firmware/FirmwareCardsBmc.vue
index 23c263d9..d79a8769 100644
--- a/src/views/_sila/Operations/Firmware/FirmwareCardsBmc.vue
+++ b/src/views/_sila/Operations/Firmware/FirmwareCardsBmc.vue
@@ -53,11 +53,9 @@
<script>
import IconSwitch from '@carbon/icons-vue/es/arrows--horizontal/20';
-import PageSection from '@/components/_sila/Global/PageSection';
-import LoadingBarMixin, {
- loading,
-} from '@/components/_sila/Mixins/LoadingBarMixin';
-import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
+import PageSection from '@/components/Global/PageSection';
+import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
import ModalSwitchToRunning from './FirmwareModalSwitchToRunning';
diff --git a/src/views/_sila/Operations/Firmware/FirmwareCardsHost.vue b/src/views/_sila/Operations/Firmware/FirmwareCardsHost.vue
index 03a25ee5..b4a8e90d 100644
--- a/src/views/_sila/Operations/Firmware/FirmwareCardsHost.vue
+++ b/src/views/_sila/Operations/Firmware/FirmwareCardsHost.vue
@@ -37,7 +37,7 @@
</template>
<script>
-import PageSection from '@/components/_sila/Global/PageSection';
+import PageSection from '@/components/Global/PageSection';
export default {
components: { PageSection },
diff --git a/src/views/_sila/Operations/Firmware/FirmwareFormUpdate.vue b/src/views/_sila/Operations/Firmware/FirmwareFormUpdate.vue
index 23fe90f2..a5e5ba97 100644
--- a/src/views/_sila/Operations/Firmware/FirmwareFormUpdate.vue
+++ b/src/views/_sila/Operations/Firmware/FirmwareFormUpdate.vue
@@ -59,6 +59,7 @@
<b-btn
data-test-id="firmware-button-startUpdate"
type="submit"
+ size="md"
variant="primary"
:disabled="isPageDisabled"
>
@@ -75,13 +76,11 @@
<script>
import { requiredIf } from 'vuelidate/lib/validators';
-import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
-import LoadingBarMixin, {
- loading,
-} from '@/components/_sila/Mixins/LoadingBarMixin';
-import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
-import FormFile from '@/components/_sila/Global/FormFile';
+import FormFile from '@/components/Global/FormFile';
import ModalUpdateFirmware from './FirmwareModalUpdateFirmware';
export default {
diff --git a/src/views/_sila/Operations/KeyClear/KeyClear.vue b/src/views/_sila/Operations/KeyClear/KeyClear.vue
index 8955f6cd..fd6468fa 100644
--- a/src/views/_sila/Operations/KeyClear/KeyClear.vue
+++ b/src/views/_sila/Operations/KeyClear/KeyClear.vue
@@ -1,9 +1,9 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid class="m-0 p-0">
<page-title :description="$t('pageKeyClear.description')" />
- <b-row>
+ <b-row class="bootstrap-table__section">
<b-col md="8" xl="6">
- <alert variant="info" class="mb-4">
+ <alert variant="info" class="mb-0">
<div class="font-weight-bold">
{{ $t('pageKeyClear.alert.title') }}
</div>
@@ -14,10 +14,17 @@
</b-col>
</b-row>
<!-- Reset Form -->
- <b-form id="key-clear" @submit.prevent="onKeyClearSubmit(keyOption)">
+ <b-form
+ id="key-clear"
+ class="bootstrap-table__section"
+ @submit.prevent="onKeyClearSubmit(keyOption)"
+ >
<b-row>
<b-col md="8">
- <b-form-group :label="$t('pageKeyClear.form.keyClearOptionsLabel')">
+ <b-form-group
+ :label="$t('pageKeyClear.form.keyClearOptionsLabel')"
+ label-class="semi-bold-16px"
+ >
<b-form-radio-group
id="key-clear-options"
v-model="keyOption"
diff --git a/src/views/_sila/Operations/Kvm/Kvm.vue b/src/views/_sila/Operations/Kvm/Kvm.vue
index ede24608..a3103453 100644
--- a/src/views/_sila/Operations/Kvm/Kvm.vue
+++ b/src/views/_sila/Operations/Kvm/Kvm.vue
@@ -1,5 +1,5 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid>
<page-title />
<div class="terminal-container">
<kvm-console :is-full-window="false" />
@@ -8,7 +8,7 @@
</template>
<script>
-import PageTitle from '@/components/_sila/Global/PageTitle';
+import PageTitle from '@/components/Global/PageTitle';
import KvmConsole from './KvmConsole';
export default {
diff --git a/src/views/_sila/Operations/Kvm/KvmConsole.vue b/src/views/_sila/Operations/Kvm/KvmConsole.vue
index 50cbff7f..d06e2824 100644
--- a/src/views/_sila/Operations/Kvm/KvmConsole.vue
+++ b/src/views/_sila/Operations/Kvm/KvmConsole.vue
@@ -1,8 +1,12 @@
<template>
<div :class="marginClass">
<div ref="toolbar" class="kvm-toolbar">
- <b-row class="d-flex">
- <b-col class="d-flex flex-column justify-content-end" cols="4">
+ <b-row class="d-flex flex-column flex-sm-row">
+ <b-col
+ class="d-flex flex-column justify-content-end console-title"
+ style="min-width: 105px"
+ cols="3"
+ >
<dl class="mb-2" sm="2" md="2">
<dt class="d-inline font-weight-bold mr-1">
{{ $t('pageKvm.status') }}:
@@ -14,9 +18,10 @@
</dl>
</b-col>
- <b-col class="d-flex justify-content-end pr-1">
+ <b-col class="d-flex justify-content-end pr-1 flex-column flex-sm-row">
<b-button
v-if="isConnected"
+ class="console-title console-button"
variant="link"
type="button"
@click="sendCtrlAltDel"
@@ -26,6 +31,7 @@
</b-button>
<b-button
v-if="!isFullWindow"
+ class="console-title console-button"
variant="link"
type="button"
@click="openConsoleWindow()"
@@ -42,7 +48,7 @@
<script>
import RFB from '@novnc/novnc/core/rfb';
-import StatusIcon from '@/components/_sila/Global/StatusIcon';
+import StatusIcon from '@/components/Global/StatusIcon';
import IconLaunch from '@carbon/icons-vue/es/launch/20';
import IconArrowDown from '@carbon/icons-vue/es/arrow--down/16';
import { throttle } from 'lodash';
@@ -167,4 +173,16 @@ export default {
.margin-left-full-window {
margin-left: 5px;
}
+
+@media (max-width: 1200px) {
+ .console-title {
+ font-size: 0.7rem;
+ }
+}
+
+@media (max-width: 576px) {
+ .console-button {
+ justify-content: flex-end;
+ }
+}
</style>
diff --git a/src/views/_sila/Operations/RebootBmc/RebootBmc.vue b/src/views/_sila/Operations/RebootBmc/RebootBmc.vue
index fa16f55e..71b9b123 100644
--- a/src/views/_sila/Operations/RebootBmc/RebootBmc.vue
+++ b/src/views/_sila/Operations/RebootBmc/RebootBmc.vue
@@ -1,7 +1,7 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid class="m-0 p-0">
<page-title />
- <b-row>
+ <b-row class="bootstrap-table__section">
<b-col md="8" lg="8" xl="6">
<page-section>
<b-row>
@@ -19,14 +19,22 @@
</b-col>
</b-row>
{{ $t('pageRebootBmc.rebootInformation') }}
- <b-button
- variant="primary"
- class="d-block mt-5"
- data-test-id="rebootBmc-button-reboot"
- @click="onClick"
+ <popover-with-slot
+ id="popover-reboot"
+ :button-label="$t('global.action.reload')"
+ :popup-label="$t('BMC.ReloadBmc_popup')"
+ placement="left"
+ :action="rebootBmc"
>
- {{ $t('pageRebootBmc.rebootBmc') }}
- </b-button>
+ <b-button
+ id="popover-reboot"
+ variant="primary"
+ class="d-block mt-5"
+ data-test-id="rebootBmc-button-reboot"
+ >
+ {{ $t('pageRebootBmc.rebootBmc') }}
+ </b-button>
+ </popover-with-slot>
</page-section>
</b-col>
</b-row>
@@ -38,10 +46,11 @@ import PageTitle from '@/components/_sila/Global/PageTitle';
import PageSection from '@/components/_sila/Global/PageSection';
import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
+import PopoverWithSlot from '@/components/_sila/Global/SilaComponents/PopoverWithSlot';
export default {
name: 'RebootBmc',
- components: { PageTitle, PageSection },
+ components: { PageTitle, PageSection, PopoverWithSlot },
mixins: [BVToastMixin, LoadingBarMixin],
beforeRouteLeave(to, from, next) {
this.hideLoader();
@@ -59,17 +68,6 @@ export default {
.finally(() => this.endLoader());
},
methods: {
- onClick() {
- this.$bvModal
- .msgBoxConfirm(this.$t('pageRebootBmc.modal.confirmMessage'), {
- title: this.$t('pageRebootBmc.modal.confirmTitle'),
- okTitle: this.$t('global.action.confirm'),
- cancelTitle: this.$t('global.action.cancel'),
- })
- .then((confirmed) => {
- if (confirmed) this.rebootBmc();
- });
- },
rebootBmc() {
this.$store
.dispatch('controls/rebootBmc')
diff --git a/src/views/_sila/Operations/SerialOverLan/SerialOverLanConsole.vue b/src/views/_sila/Operations/SerialOverLan/SerialOverLanConsole.vue
index bf974b51..2a9a2f4a 100644
--- a/src/views/_sila/Operations/SerialOverLan/SerialOverLanConsole.vue
+++ b/src/views/_sila/Operations/SerialOverLan/SerialOverLanConsole.vue
@@ -9,7 +9,7 @@
class="mt-4"
>
<p class="col-form-label">
- {{ $t('pageSerialOverLan.alert.disconnectedAlertMessage') }}
+ {{ $t('pageSerialOverLan.disconnectedAlertMessage') }}
</p>
</alert>
</b-col>
diff --git a/src/views/_sila/Operations/ServerPowerOperations/BootSettings.vue b/src/views/_sila/Operations/ServerPowerOperations/BootSettings.vue
index 8d74e381..7f56c36a 100644
--- a/src/views/_sila/Operations/ServerPowerOperations/BootSettings.vue
+++ b/src/views/_sila/Operations/ServerPowerOperations/BootSettings.vue
@@ -1,16 +1,14 @@
<template>
- <div class="form-background p-3">
+ <page-section class="m-0">
<b-form novalidate @submit.prevent="handleSubmit">
- <b-form-group
- :label="
+ <b-form-group label-for="boot-option" class="mb-3 regular-12px">
+ <label class="semi-bold-12px">{{
$t('pageServerPowerOperations.bootSettings.bootSettingsOverride')
- "
- label-for="boot-option"
- class="mb-3"
- >
+ }}</label>
<b-form-select
id="boot-option"
v-model="form.bootOption"
+ class="boot-select regular-14px"
:disabled="bootSourceOptions.length === 0"
:options="bootSourceOptions"
@change="onChangeSelect"
@@ -19,43 +17,47 @@
</b-form-group>
<b-form-checkbox
v-model="form.oneTimeBoot"
- class="mb-4"
+ class="mb-4 regular-12px cb"
:disabled="form.bootOption === 'None'"
@change="$v.form.oneTimeBoot.$touch()"
>
{{ $t('pageServerPowerOperations.bootSettings.enableOneTimeBoot') }}
</b-form-checkbox>
- <b-form-group
- :label="$t('pageServerPowerOperations.bootSettings.tpmRequiredPolicy')"
- >
- <b-form-text id="tpm-required-policy-help-block">
+ <b-form-group>
+ <label class="semi-bold-12px">{{
+ $t('pageServerPowerOperations.bootSettings.tpmRequiredPolicy')
+ }}</label>
+ <label id="tpm-required-policy-help-block" class="regular-12px">
{{
$t('pageServerPowerOperations.bootSettings.tpmRequiredPolicyHelper')
}}
- </b-form-text>
+ </label>
<b-form-checkbox
id="tpm-required-policy"
v-model="form.tpmPolicyOn"
+ class="regular-12px cb"
aria-describedby="tpm-required-policy-help-block"
@change="$v.form.tpmPolicyOn.$touch()"
>
{{ $t('global.status.enabled') }}
</b-form-checkbox>
</b-form-group>
- <b-button variant="primary" type="submit" class="mb-3">
+ <b-button variant="primary" size="md" type="submit" class="mb-3">
{{ $t('global.action.save') }}
</b-button>
</b-form>
- </div>
+ </page-section>
</template>
<script>
import { mapState } from 'vuex';
import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
+import PageSection from '@/components/_sila/Global/PageSection';
export default {
name: 'BootSettings',
+ components: { PageSection },
mixins: [BVToastMixin, LoadingBarMixin],
data() {
return {
@@ -130,3 +132,12 @@ export default {
},
};
</script>
+<style lang="scss" scoped>
+.boot-select {
+ height: 40px;
+ max-width: 270px;
+ border: none;
+ border-radius: 8px;
+ background-image: url('../../../../assets/images/_sila/icon-chevron.svg');
+}
+</style>
diff --git a/src/views/_sila/Operations/ServerPowerOperations/ServerPowerOperations.vue b/src/views/_sila/Operations/ServerPowerOperations/ServerPowerOperations.vue
index e848215f..1ba90b83 100644
--- a/src/views/_sila/Operations/ServerPowerOperations/ServerPowerOperations.vue
+++ b/src/views/_sila/Operations/ServerPowerOperations/ServerPowerOperations.vue
@@ -1,28 +1,40 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid="xxl pt-0 m-0">
<page-title />
- <b-row class="mb-4">
+ <page-section
+ :section-title="$t('pageServerPowerOperations.serverStatus')"
+ class="m-4"
+ >
<b-col md="8" xl="6">
- <page-section
- :section-title="$t('pageServerPowerOperations.currentStatus')"
- >
+ <page-section class="pt-2 mb-0">
<b-row>
<b-col>
<dl>
- <dt>{{ $t('pageServerPowerOperations.serverStatus') }}</dt>
<dd
v-if="serverStatus === 'on'"
+ style="margin-top: 10px"
+ class="regular-12px"
data-test-id="powerServerOps-text-hostStatus"
>
- {{ $t('global.status.on') }}
+ <img
+ style="margin-right: 5px"
+ src="@/assets/images/_sila/status/on.svg"
+ />
+ {{ $t('global.status.on_full') }}
</dd>
<dd
v-else-if="serverStatus === 'off'"
+ style="margin-top: 10px"
+ class="regular-12px"
data-test-id="powerServerOps-text-hostStatus"
>
- {{ $t('global.status.off') }}
+ <img
+ style="margin-right: 5px"
+ src="@/assets/images/_sila/status/off.svg"
+ />
+ {{ $t('global.status.off_full') }}
</dd>
- <dd v-else>
+ <dd v-else class="regular-12px">
{{ $t('global.status.notAvailable') }}
</dd>
</dl>
@@ -31,11 +43,12 @@
<b-row>
<b-col>
<dl>
- <dt>
+ <dt class="semi-bold-12px">
{{ $t('pageServerPowerOperations.lastPowerOperation') }}
</dt>
<dd
v-if="lastPowerOperationTime"
+ class="regular-12px"
data-test-id="powerServerOps-text-lastPowerOp"
>
{{ lastPowerOperationTime | formatDate }}
@@ -47,19 +60,13 @@
</b-row>
</page-section>
</b-col>
- </b-row>
- <b-row>
- <b-col v-if="hasBootSourceOptions" sm="8" md="6" xl="4">
- <page-section
- :section-title="$t('pageServerPowerOperations.serverBootSettings')"
- >
- <boot-settings />
- </page-section>
- </b-col>
+ </page-section>
+ <page-section
+ :section-title="$t('SystemDescription.title.Control')"
+ class="ml-4 mb-0"
+ >
<b-col sm="8" md="6" xl="7">
- <page-section
- :section-title="$t('pageServerPowerOperations.operations')"
- >
+ <page-section>
<alert :show="oneTimeBootEnabled" variant="warning">
{{ $t('pageServerPowerOperations.oneTimeBootWarning') }}
</alert>
@@ -69,20 +76,30 @@
</alert>
</template>
<template v-else-if="serverStatus === 'off'">
- <b-button
- variant="primary"
- data-test-id="serverPowerOperations-button-powerOn"
- @click="powerOn"
+ <popover-with-slot
+ id="popover-powerOn"
+ :button-label="$t('pageServerPowerOperations.powerOn')"
+ :popup-label="$t('pageServerPowerOperations.powerOnServer')"
+ placement="right"
+ :action="powerOn"
>
- {{ $t('pageServerPowerOperations.powerOn') }}
- </b-button>
+ <b-button
+ id="popover-powerOn"
+ ref="button"
+ size="md"
+ variant="primary"
+ >
+ {{ $t('pageServerPowerOperations.powerOn') }}
+ </b-button>
+ </popover-with-slot>
</template>
<template v-else>
<!-- Reboot server options -->
- <b-form novalidate class="mb-5" @submit.prevent="rebootServer">
- <b-form-group
- :label="$t('pageServerPowerOperations.rebootServer')"
- >
+ <b-form novalidate class="mb-2">
+ <b-form-group class="regular-12px cb">
+ <label class="semi-bold-12px">{{
+ $t('pageServerPowerOperations.rebootServer')
+ }}</label>
<b-form-radio
v-model="form.rebootOption"
name="reboot-option"
@@ -100,19 +117,29 @@
{{ $t('pageServerPowerOperations.immediateReboot') }}
</b-form-radio>
</b-form-group>
- <b-button
- variant="primary"
- type="submit"
- data-test-id="serverPowerOperations-button-reboot"
+ <popover-with-slot
+ id="popover-reboot"
+ :button-label="$t('pageServerPowerOperations.reboot')"
+ :popup-label="$t('pageServerPowerOperations.rebootServer')"
+ placement="right"
+ :action="rebootServer"
>
- {{ $t('pageServerPowerOperations.reboot') }}
- </b-button>
+ <b-button
+ id="popover-reboot"
+ ref="button"
+ size="md"
+ variant="primary"
+ >
+ {{ $t('pageServerPowerOperations.reboot') }}
+ </b-button>
+ </popover-with-slot>
</b-form>
<!-- Shutdown server options -->
- <b-form novalidate @submit.prevent="shutdownServer">
- <b-form-group
- :label="$t('pageServerPowerOperations.shutdownServer')"
- >
+ <b-form>
+ <b-form-group class="regular-12px cb">
+ <label class="semi-bold-12px">{{
+ $t('pageServerPowerOperations.shutdownServer')
+ }}</label>
<b-form-radio
v-model="form.shutdownOption"
name="shutdown-option"
@@ -130,18 +157,35 @@
{{ $t('pageServerPowerOperations.immediateShutdown') }}
</b-form-radio>
</b-form-group>
- <b-button
- variant="primary"
- type="submit"
- data-test-id="serverPowerOperations-button-shutDown"
+ <popover-with-slot
+ id="popover-shutDown"
+ :button-label="$t('pageServerPowerOperations.shutDown')"
+ :popup-label="$t('pageServerPowerOperations.shutdownServer')"
+ placement="right"
+ :action="shutdownServer"
>
- {{ $t('pageServerPowerOperations.shutDown') }}
- </b-button>
+ <b-button
+ id="popover-shutDown"
+ ref="button"
+ size="md"
+ variant="secondary"
+ >
+ {{ $t('pageServerPowerOperations.shutDown') }}
+ </b-button>
+ </popover-with-slot>
</b-form>
</template>
</page-section>
</b-col>
- </b-row>
+ </page-section>
+ <page-section
+ :section-title="$t('pageServerPowerOperations.serverBootSettings')"
+ class="m-4"
+ >
+ <b-col v-if="hasBootSourceOptions" sm="8" md="6" xl="4">
+ <boot-settings />
+ </b-col>
+ </page-section>
</b-container>
</template>
@@ -152,10 +196,17 @@ import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
import BootSettings from './BootSettings';
import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
import Alert from '@/components/_sila/Global/Alert';
+import PopoverWithSlot from '@/components/_sila/Global/SilaComponents/PopoverWithSlot';
export default {
name: 'ServerPowerOperations',
- components: { PageTitle, PageSection, BootSettings, Alert },
+ components: {
+ PageTitle,
+ PageSection,
+ BootSettings,
+ Alert,
+ PopoverWithSlot,
+ },
mixins: [BVToastMixin, LoadingBarMixin],
beforeRouteLeave(to, from, next) {
this.hideLoader();
@@ -207,52 +258,18 @@ export default {
this.$store.dispatch('controls/serverPowerOn');
},
rebootServer() {
- const modalMessage = this.$t(
- 'pageServerPowerOperations.modal.confirmRebootMessage'
- );
- const modalOptions = {
- title: this.$t('pageServerPowerOperations.modal.confirmRebootTitle'),
- okTitle: this.$t('global.action.confirm'),
- cancelTitle: this.$t('global.action.cancel'),
- };
-
if (this.form.rebootOption === 'orderly') {
- this.$bvModal
- .msgBoxConfirm(modalMessage, modalOptions)
- .then((confirmed) => {
- if (confirmed) this.$store.dispatch('controls/serverSoftReboot');
- });
+ this.$store.dispatch('controls/serverSoftReboot');
} else if (this.form.rebootOption === 'immediate') {
- this.$bvModal
- .msgBoxConfirm(modalMessage, modalOptions)
- .then((confirmed) => {
- if (confirmed) this.$store.dispatch('controls/serverHardReboot');
- });
+ this.$store.dispatch('controls/serverHardReboot');
}
},
shutdownServer() {
- const modalMessage = this.$t(
- 'pageServerPowerOperations.modal.confirmShutdownMessage'
- );
- const modalOptions = {
- title: this.$t('pageServerPowerOperations.modal.confirmShutdownTitle'),
- okTitle: this.$t('global.action.confirm'),
- cancelTitle: this.$t('global.action.cancel'),
- };
-
if (this.form.shutdownOption === 'orderly') {
- this.$bvModal
- .msgBoxConfirm(modalMessage, modalOptions)
- .then((confirmed) => {
- if (confirmed) this.$store.dispatch('controls/serverSoftPowerOff');
- });
+ this.$store.dispatch('controls/serverSoftPowerOff');
}
if (this.form.shutdownOption === 'immediate') {
- this.$bvModal
- .msgBoxConfirm(modalMessage, modalOptions)
- .then((confirmed) => {
- if (confirmed) this.$store.dispatch('controls/serverHardPowerOff');
- });
+ this.$store.dispatch('controls/serverHardPowerOff');
}
},
},
diff --git a/src/views/_sila/Operations/VirtualMedia/ModalConfigureConnection.vue b/src/views/_sila/Operations/VirtualMedia/ModalConfigureConnection.vue
index 9886eff5..9ba90d57 100644
--- a/src/views/_sila/Operations/VirtualMedia/ModalConfigureConnection.vue
+++ b/src/views/_sila/Operations/VirtualMedia/ModalConfigureConnection.vue
@@ -9,14 +9,17 @@
<template #modal-title>
{{ $t('pageVirtualMedia.modal.title') }}
</template>
- <b-form>
+ <b-form style="width: 100%">
<b-form-group
- :label="$t('pageVirtualMedia.modal.serverUri')"
+ :label="
+ $t('pageVirtualMedia.modal.serverUri') + ' (http, ftp, smb, nfs)'
+ "
label-for="serverUri"
>
<b-form-input
id="serverUri"
v-model="form.serverUri"
+ placeholder="https://"
type="text"
:state="getValidationState($v.form.serverUri)"
data-test-id="configureConnection-input-serverUri"
@@ -43,12 +46,14 @@
:label="$t('pageVirtualMedia.modal.password')"
label-for="password"
>
- <b-form-input
- id="password"
- v-model="form.password"
- type="password"
- data-test-id="configureConnection-input-password"
- />
+ <input-password-toggle>
+ <b-form-input
+ id="password"
+ v-model="form.password"
+ type="password"
+ data-test-id="configureConnection-input-password"
+ />
+ </input-password-toggle>
</b-form-group>
<b-form-group>
<b-form-checkbox
@@ -72,8 +77,12 @@
<script>
import { required } from 'vuelidate/lib/validators';
import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js';
+import InputPasswordToggle from '@/components/_sila/Global/InputPasswordToggle';
export default {
+ components: {
+ InputPasswordToggle,
+ },
mixins: [VuelidateMixin],
props: {
connection: {
diff --git a/src/views/_sila/Operations/VirtualMedia/VirtualMedia.vue b/src/views/_sila/Operations/VirtualMedia/VirtualMedia.vue
index 0f75bbd7..e508e06f 100644
--- a/src/views/_sila/Operations/VirtualMedia/VirtualMedia.vue
+++ b/src/views/_sila/Operations/VirtualMedia/VirtualMedia.vue
@@ -1,14 +1,18 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid class="m-0 p-0">
<page-title />
- <b-row class="mb-4">
+ <b-row class="bootstrap-table__section">
<b-col md="12">
<page-section
:section-title="$t('pageVirtualMedia.virtualMediaSubTitleFirst')"
>
<b-row>
<b-col v-for="(dev, $index) in proxyDevices" :key="$index" md="6">
- <b-form-group :label="dev.id" label-class="bold">
+ <b-form-group
+ :label="dev.id"
+ label-class="regular-14px"
+ :style="{ 'margin-bottom': dev.isActive ? '0' : '1rem' }"
+ >
<form-file
v-if="!dev.isActive"
:id="concatId(dev.id)"
@@ -21,8 +25,18 @@
</template>
</form-file>
</b-form-group>
+
+ <div
+ v-if="dev.isActive && dev.file && dev.file.name"
+ class="clear-selected-file px-3"
+ :style="{ 'margin-bottom': '1rem' }"
+ >
+ {{ dev.file.name }}
+ </div>
+
<b-button
v-if="!dev.isActive"
+ size="md"
variant="primary"
:disabled="!dev.file"
@click="startVM(dev)"
@@ -42,7 +56,7 @@
</page-section>
</b-col>
</b-row>
- <b-row v-if="loadImageFromExternalServer" class="mb-4">
+ <b-row v-if="loadImageFromExternalServer" class="bootstrap-table__section">
<b-col md="12">
<page-section
:section-title="$t('pageVirtualMedia.virtualMediaSubTitleSecond')"
@@ -56,34 +70,35 @@
<b-form-group
:label="device.id"
:label-for="device.id"
- label-class="bold"
+ label-class="regular-14px"
>
<b-button
variant="primary"
+ size="lg"
:disabled="device.isActive"
@click="configureConnection(device)"
>
{{ $t('pageVirtualMedia.configureConnection') }}
</b-button>
-
- <b-button
- v-if="!device.isActive"
- variant="primary"
- class="float-right"
- :disabled="!device.serverUri"
- @click="startLegacy(device)"
- >
- {{ $t('pageVirtualMedia.start') }}
- </b-button>
- <b-button
- v-if="device.isActive"
- variant="primary"
- class="float-right"
- @click="stopLegacy(device)"
- >
- {{ $t('pageVirtualMedia.stop') }}
- </b-button>
</b-form-group>
+
+ <b-button
+ v-if="!device.isActive"
+ variant="primary"
+ size="md"
+ :disabled="!device.serverUri"
+ @click="startLegacy(device)"
+ >
+ {{ $t('pageVirtualMedia.start') }}
+ </b-button>
+ <b-button
+ v-if="device.isActive"
+ size="md"
+ variant="primary"
+ @click="stopLegacy(device)"
+ >
+ {{ $t('pageVirtualMedia.stop') }}
+ </b-button>
</b-col>
</b-row>
</page-section>
@@ -107,7 +122,12 @@ import FormFile from '@/components/_sila/Global/FormFile';
export default {
name: 'VirtualMedia',
- components: { PageTitle, PageSection, ModalConfigureConnection, FormFile },
+ components: {
+ PageTitle,
+ PageSection,
+ ModalConfigureConnection,
+ FormFile,
+ },
mixins: [BVToastMixin, LoadingBarMixin],
data() {
return {
diff --git a/src/views/_sila/Overview/Inventory/index.js b/src/views/_sila/Overview/Inventory/index.js
index c9fde8d2..e69de29b 100644
--- a/src/views/_sila/Overview/Inventory/index.js
+++ b/src/views/_sila/Overview/Inventory/index.js
@@ -1,2 +0,0 @@
-import Inventory from './Inventory.vue';
-export default Inventory;
diff --git a/src/views/_sila/Overview/Network/index.js b/src/views/_sila/Overview/Network/index.js
index 97bf0397..e69de29b 100644
--- a/src/views/_sila/Overview/Network/index.js
+++ b/src/views/_sila/Overview/Network/index.js
@@ -1,2 +0,0 @@
-import Network from './Network.vue';
-export default Network;
diff --git a/src/views/_sila/Overview/Overview.vue b/src/views/_sila/Overview/Overview.vue
index 9f97fb3e..9960f373 100644
--- a/src/views/_sila/Overview/Overview.vue
+++ b/src/views/_sila/Overview/Overview.vue
@@ -26,7 +26,7 @@
</template>
<script>
-import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
import OverviewDumps from './OverviewDumps.vue';
import OverviewEvents from './OverviewEvents.vue';
import OverviewFirmware from './OverviewFirmware.vue';
@@ -35,8 +35,8 @@ import OverviewNetwork from './OverviewNetwork';
import OverviewPower from './OverviewPower';
import OverviewQuickLinks from './OverviewQuickLinks';
import OverviewServer from './OverviewServer';
-import PageSection from '@/components/_sila/Global/PageSection';
-import PageTitle from '@/components/_sila/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import PageTitle from '@/components/Global/PageTitle';
export default {
name: 'Overview',
diff --git a/src/views/_sila/Overview/OverviewDumps.vue b/src/views/_sila/Overview/OverviewDumps.vue
index 27f5067d..a2ae4e4e 100644
--- a/src/views/_sila/Overview/OverviewDumps.vue
+++ b/src/views/_sila/Overview/OverviewDumps.vue
@@ -20,7 +20,7 @@
<script>
import OverviewCard from './OverviewCard';
-import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
export default {
name: 'Dumps',
diff --git a/src/views/_sila/Overview/OverviewEvents.vue b/src/views/_sila/Overview/OverviewEvents.vue
index c54bc5b9..b73c0b48 100644
--- a/src/views/_sila/Overview/OverviewEvents.vue
+++ b/src/views/_sila/Overview/OverviewEvents.vue
@@ -32,8 +32,8 @@
<script>
import OverviewCard from './OverviewCard';
-import StatusIcon from '@/components/_sila/Global/StatusIcon';
-import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import StatusIcon from '@/components/Global/StatusIcon';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
export default {
name: 'Events',
diff --git a/src/views/_sila/Overview/OverviewFirmware.vue b/src/views/_sila/Overview/OverviewFirmware.vue
index 9167c75c..f1f9ce53 100644
--- a/src/views/_sila/Overview/OverviewFirmware.vue
+++ b/src/views/_sila/Overview/OverviewFirmware.vue
@@ -18,7 +18,7 @@
<script>
import OverviewCard from './OverviewCard';
-import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
export default {
name: 'Firmware',
diff --git a/src/views/_sila/Overview/OverviewNetwork.vue b/src/views/_sila/Overview/OverviewNetwork.vue
index 7010b991..b81e5c73 100644
--- a/src/views/_sila/Overview/OverviewNetwork.vue
+++ b/src/views/_sila/Overview/OverviewNetwork.vue
@@ -49,7 +49,7 @@
<script>
import OverviewCard from './OverviewCard';
-import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
export default {
name: 'Network',
diff --git a/src/views/_sila/Overview/OverviewPower.vue b/src/views/_sila/Overview/OverviewPower.vue
index ffda495f..0d84c76c 100644
--- a/src/views/_sila/Overview/OverviewPower.vue
+++ b/src/views/_sila/Overview/OverviewPower.vue
@@ -24,7 +24,7 @@
<script>
import OverviewCard from './OverviewCard';
-import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
import { mapGetters } from 'vuex';
export default {
diff --git a/src/views/_sila/Overview/OverviewQuickLinks.vue b/src/views/_sila/Overview/OverviewQuickLinks.vue
index 6f74fd91..bc579b03 100644
--- a/src/views/_sila/Overview/OverviewQuickLinks.vue
+++ b/src/views/_sila/Overview/OverviewQuickLinks.vue
@@ -27,7 +27,7 @@
<script>
import ArrowRight16 from '@carbon/icons-vue/es/arrow--right/16';
-import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
export default {
name: 'QuickLinks',
diff --git a/src/views/_sila/Overview/OverviewServer.vue b/src/views/_sila/Overview/OverviewServer.vue
index 7dded5ba..d066d391 100644
--- a/src/views/_sila/Overview/OverviewServer.vue
+++ b/src/views/_sila/Overview/OverviewServer.vue
@@ -1,7 +1,7 @@
<template>
<overview-card
:title="$t('pageOverview.serverInformation')"
- :to="`/hardware-inventory`"
+ :to="`/hardware-status/inventory`"
>
<b-row class="mt-3">
<b-col lg="6">
@@ -18,7 +18,7 @@
<script>
import OverviewCard from './OverviewCard';
-import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
import { mapState } from 'vuex';
export default {
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/PowerDynamicPage.vue b/src/views/_sila/PowerSupplies/DynamicInfo/PowerDynamicPage.vue
new file mode 100644
index 00000000..223570bf
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/PowerDynamicPage.vue
@@ -0,0 +1,592 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.analyticalPanel')" />
+ <div class="notification-time__container">
+ <span class="semi-bold-12px">{{
+ $t('global.ariaLabel.notificationTime')
+ }}</span>
+ <div class="form-control notification-time">
+ <b-form-input
+ v-model="notificationInput"
+ type="number"
+ class="notification-time__input"
+ >
+ </b-form-input>
+ <button class="notification-button">
+ <img
+ class="notification-time__icon"
+ src="@/assets/images/refresh.svg"
+ />
+ </button>
+ </div>
+ </div>
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <!-- Temperature Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_1
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/temperature-icon.svg" />
+ <span class="bold-16px">{{ $t('subHeader.temperature') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_1" class="nav-item__nav">
+ <!-- Temperature Limit Inputs -->
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/non-normal.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.nonNormalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureNonNormalInput"
+ type="number"
+ :min="0"
+ :max="temperatureCritical"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/critical.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.criticalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureCritical"
+ type="number"
+ :min="temperatureNonNormalInput"
+ :max="temperatureWarningInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.temperatureWarning')
+ }}</span>
+ <b-form-input
+ v-model="temperatureWarningInput"
+ type="number"
+ :min="temperatureCritical"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateTemperature"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Temperature Tables -->
+ <temperature-table
+ :time-scale="timeScale"
+ :warning="temperatureWarning"
+ :non-normal="temperatureNonNormal"
+ :critical="temperatureCritical"
+ />
+ <accessory-table :records="accessoryData.temperatureTable" />
+ </b-collapse>
+ </div>
+ <!-- using Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_2
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/usage-icon.svg" />
+ <span class="bold-16px">{{ $t('pagePower.usingPercent') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_2" class="nav-item__nav">
+ <!-- using Limit Inputs -->
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.warningPercent')
+ }}</span>
+ <b-form-input
+ v-model="usingNonNormalInput"
+ type="number"
+ :min="0"
+ :max="usingCritical"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/non-normal.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.nonNormalModePercent')
+ }}</span>
+ <b-form-input
+ v-model="usingCritical"
+ type="number"
+ :min="usingNonNormalInput"
+ :max="usingWarningInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/critical.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.criticalModePercent')
+ }}</span>
+ <b-form-input
+ v-model="usingWarningInput"
+ type="number"
+ :min="usingCritical"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updateUsage">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- using Tables -->
+ <using-table
+ :time-scale="timeScale"
+ :warning="usingWarning"
+ :non-normal="usingNonNormal"
+ :critical-start="usingCritical"
+ />
+ <accessory-table :records="accessoryData.usingTable" />
+ </b-collapse>
+ </div>
+ <!-- Input Voltage Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_3
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/voltage-icon.svg" />
+ <span class="bold-16px">{{
+ $t('tablesDescription.inputVoltage')
+ }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_3" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.voltageWarning')
+ }}</span>
+ <b-form-input
+ v-model="powerWarningInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.voltageShutdown')
+ }}</span>
+ <b-form-input
+ v-model="powerShutdownInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updatePower">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Input Voltage Tables -->
+ <voltage-table :time-scale="timeScale" :warning="frequencyWarning" />
+ <accessory-table :records="accessoryData.voltageTable" />
+ </b-collapse>
+ </div>
+ <!-- Input Power Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_4
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/power-icon.svg" />
+ <span class="bold-16px">{{ $t('tablesDescription.inputPower') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_4" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.powerWarning')
+ }}</span>
+ <b-form-input
+ v-model="powerWarningInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.powerShutdown')
+ }}</span>
+ <b-form-input
+ v-model="powerShutdownInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updatePower">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Input Power Table -->
+ <power-table
+ :time-scale="timeScale"
+ :warning="powerWarning"
+ :shutdown="powerShutdown"
+ />
+ <accessory-table :records="accessoryData.powerTable" />
+ </b-collapse>
+ </div>
+ <!-- Output Voltage Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_5
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/voltage-icon.svg" />
+ <span class="bold-16px">{{
+ $t('tablesDescription.outputVoltage')
+ }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_5" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.voltageWarning')
+ }}</span>
+ <b-form-input
+ v-model="powerWarningInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.voltageShutdown')
+ }}</span>
+ <b-form-input
+ v-model="powerShutdownInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updatePower">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Output Voltage Tables -->
+ <voltage-table :time-scale="timeScale" :warning="frequencyWarning" />
+ <accessory-table :records="accessoryData.voltageTable" />
+ </b-collapse>
+ </div>
+ <!-- Output Power Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_6
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/power-icon.svg" />
+ <span class="bold-16px">{{ $t('tablesDescription.outputPower') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_6" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.powerWarning')
+ }}</span>
+ <b-form-input
+ v-model="powerWarningInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.powerShutdown')
+ }}</span>
+ <b-form-input
+ v-model="powerShutdownInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updatePower">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Output Power Table -->
+ <power-table
+ :time-scale="timeScale"
+ :warning="powerWarning"
+ :shutdown="powerShutdown"
+ />
+ <accessory-table :records="accessoryData.powerTable" />
+ </b-collapse>
+ </div>
+ <!-- Amperage Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_7
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/amperage-icon.svg" />
+ <span class="bold-16px">{{ $t('tablesDescription.amperage') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_7" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.voltageWarning')
+ }}</span>
+ <b-form-input
+ v-model="powerWarningInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.voltageShutdown')
+ }}</span>
+ <b-form-input
+ v-model="powerShutdownInput"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updatePower">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Amperage Table -->
+ <voltage-table :time-scale="timeScale" :warning="frequencyWarning" />
+ <accessory-table :records="accessoryData.voltageTable" />
+ </b-collapse>
+ </div>
+ </b-container>
+</template>
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+
+import TemperatureTable from './TemperatureTable';
+import UsingTable from './UsingTable';
+import PowerTable from './PowerTable';
+import VoltageTable from './VoltageTable';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTablePower';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+import { AccessoryData } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ DateSwitch,
+ TemperatureTable,
+ UsingTable,
+ PowerTable,
+ VoltageTable,
+ AccessoryTable,
+ },
+ data() {
+ return {
+ timeScale: 'hour',
+ temperatureNonNormalInput: 44,
+ temperatureNonNormal: 44,
+ temperatureCriticalInput: 55,
+ temperatureCritical: 55,
+ temperatureWarningInput: 72,
+ temperatureWarning: 72,
+ usingNonNormalInput: 50,
+ usingNonNormal: 50,
+ usingCriticalInput: 55,
+ usingCritical: 55,
+ usingWarningInput: 72,
+ usingWarning: 72,
+ // frequencyWarning: 660,
+ // frequencyWarningInput: 660,
+ powerWarning: 66,
+ powerWarningInput: 66,
+ powerShutdown: 88,
+ powerShutdownInput: 88,
+ notificationInput: 42,
+ accessoryData: AccessoryData,
+ iconChevronUp: iconChevronUp,
+ };
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateTemperature() {
+ this.temperatureNonNormal = +this.temperatureNonNormalInput;
+ this.temperatureCritical = +this.temperatureCriticalInput;
+ this.temperatureWarning = +this.temperatureWarningInput;
+ },
+ updateUsage() {
+ this.usingNonNormal = +this.usingNonNormalInput;
+ this.usingCritical = +this.usingCriticalInput;
+ this.usingWarning = +this.usingWarningInput;
+ },
+ updateFrequency() {
+ this.frequencyWarning = +this.frequencyWarningInput;
+ },
+ updatePower() {
+ this.powerWarning = +this.powerWarningInput;
+ this.powerShutdown = +this.powerShutdownInput;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+.nav-item {
+ list-style-type: none;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+
+.notification-time__container {
+ position: absolute;
+ top: calc(#{$header-height});
+ right: 0px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.notification-time {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ border: none;
+ box-shadow: none;
+ border-radius: 8px;
+ margin: 12px 32px 12px 8px;
+ width: 236px;
+ height: 40px;
+ z-index: 1001;
+}
+
+.notification-time__icon {
+ width: 20px;
+ height: 20px;
+}
+
+.notification-time__input {
+ border: none;
+ background: none;
+ box-shadow: none;
+}
+
+.notification-button {
+ border: none;
+ background: none;
+}
+
+.semi-bold-12px {
+ z-index: 1001;
+}
+// temperature limit comtainer
+.limit-container {
+ height: 85px;
+ width: 100%;
+ padding: 0 32px 10px 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.trmperature-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 270px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.form-control {
+ height: 36px;
+ &.non-normal {
+ width: 125px;
+ }
+}
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+
+.frequency-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 288px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+</style>
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/PowerTable.vue b/src/views/_sila/PowerSupplies/DynamicInfo/PowerTable.vue
new file mode 100644
index 00000000..4ccb8aac
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/PowerTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 66,
+ },
+ shutdown: {
+ type: Number,
+ default: 88,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, this.timeScale),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'Вт'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значения предупреждение',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ {
+ color: '#1A3E5B',
+ dashStyle: 'solid',
+ value: this.shutdown,
+ width: 2,
+ label: {
+ text: 'Пороговое значения отказ',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['power'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/TemperatureTable.vue b/src/views/_sila/PowerSupplies/DynamicInfo/TemperatureTable.vue
new file mode 100644
index 00000000..9ae92c06
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/TemperatureTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ critical: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ plotBands: [
+ {
+ color: '#F0AC0C1A',
+ dashStyle: 'solid',
+ from: this.nonNormal,
+ to: this.criticalStart,
+ },
+ {
+ color: '#FF41411A',
+ dashStyle: 'solid',
+ from: this.criticalStart,
+ to: this.warning,
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/UsingTable.vue b/src/views/_sila/PowerSupplies/DynamicInfo/UsingTable.vue
new file mode 100644
index 00000000..322a7f7b
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/UsingTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, '%'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, %',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ plotBands: [
+ {
+ color: '#F0AC0C1A',
+ dashStyle: 'solid',
+ from: this.nonNormal,
+ to: this.criticalStart,
+ },
+ {
+ color: '#FF41411A',
+ dashStyle: 'solid',
+ from: this.criticalStart,
+ to: this.warning,
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/VoltageTable.vue b/src/views/_sila/PowerSupplies/DynamicInfo/VoltageTable.vue
new file mode 100644
index 00000000..b7b2a973
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/VoltageTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 66,
+ },
+ shutdown: {
+ type: Number,
+ default: 88,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, this.timeScale),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'В'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значения предупреждение',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ {
+ color: '#1A3E5B',
+ dashStyle: 'solid',
+ value: this.shutdown,
+ width: 2,
+ label: {
+ text: 'Пороговое значения отказ',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['voltage'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/helpers.js b/src/views/_sila/PowerSupplies/DynamicInfo/helpers.js
new file mode 100644
index 00000000..1418411a
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/helpers.js
@@ -0,0 +1,1526 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ temperature: [
+ {
+ name: 'Sean',
+ data: [
+ 10,
+ 10,
+ 10,
+ 30,
+ 10,
+ 10,
+ 10,
+ 37,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 25,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 35,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 45,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 50,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 11,
+ 11,
+ 11,
+ 30,
+ 11,
+ 11,
+ 11,
+ 11,
+ 57,
+ 11,
+ 11,
+ 11,
+ 11,
+ 25,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 61,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 31,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 21,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 51,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 15,
+ 15,
+ 15,
+ 35,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 25,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 45,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 35,
+ 15,
+ 15,
+ 55,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 21,
+ 21,
+ 21,
+ 51,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 40,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 35,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 53,
+ 21,
+ 21,
+ 30,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 29,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ ],
+ color: '#139BB9',
+ },
+ ],
+ //////////////////////////////voltage////////////////
+ voltage: [
+ {
+ name: 'Sean',
+ data: [
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 26,
+ 16,
+ 16,
+ 36,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 36,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 11,
+ 11,
+ 11,
+ 44,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 21,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 21,
+ 11,
+ 31,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 55,
+ 11,
+ 21,
+ 11,
+ 11,
+ 31,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 31,
+ 11,
+ 11,
+ 41,
+ 11,
+ 11,
+ 11,
+ 21,
+ 11,
+ 11,
+ 11,
+ 35,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 31,
+ 31,
+ 31,
+ 51,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 90,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 50,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 35,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 40,
+ 31,
+ 31,
+ 31,
+ 31,
+ 53,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ 31,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 21,
+ 21,
+ 21,
+ 51,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 40,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 50,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 35,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 60,
+ 21,
+ 21,
+ 21,
+ 10,
+ 53,
+ 21,
+ 21,
+ 30,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 29,
+ 19,
+ 19,
+ 59,
+ 19,
+ 19,
+ 69,
+ 19,
+ 19,
+ 19,
+ 19,
+ 29,
+ 19,
+ 19,
+ 49,
+ 19,
+ 19,
+ 59,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 17,
+ 17,
+ 17,
+ 15,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 27,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 21,
+ 17,
+ 17,
+ 17,
+ 59,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 59,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 57,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 77,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ ],
+ color: '#139BB9',
+ },
+ ],
+ //////////////////////////////power////////////////
+ power: [
+ {
+ name: 'Sean',
+ data: [
+ 15,
+ 15,
+ 45,
+ 15,
+ 65,
+ 15,
+ 75,
+ 15,
+ 15,
+ 15,
+ 55,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 55,
+ 15,
+ 75,
+ 15,
+ 35,
+ 15,
+ 55,
+ 15,
+ 75,
+ 15,
+ 85,
+ 15,
+ 15,
+ 45,
+ 15,
+ 15,
+ 45,
+ 15,
+ 45,
+ 15,
+ 15,
+ 65,
+ 15,
+ 45,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 65,
+ 15,
+ 35,
+ 35,
+ 35,
+ 15,
+ 55,
+ 15,
+ 15,
+ 35,
+ 15,
+ 25,
+ 15,
+ 35,
+ 15,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 62,
+ 12,
+ 72,
+ 12,
+ 12,
+ 12,
+ 42,
+ 12,
+ 12,
+ 12,
+ 52,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 52,
+ 12,
+ 72,
+ 12,
+ 52,
+ 12,
+ 62,
+ 12,
+ 72,
+ 12,
+ 82,
+ 12,
+ 12,
+ 42,
+ 12,
+ 12,
+ 52,
+ 12,
+ 42,
+ 12,
+ 12,
+ 62,
+ 12,
+ 42,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 62,
+ 12,
+ 12,
+ 32,
+ 12,
+ 62,
+ 12,
+ 52,
+ 12,
+ 32,
+ 12,
+ 22,
+ 12,
+ 32,
+ 12,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 24,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 74,
+ 14,
+ 54,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 84,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 54,
+ 14,
+ 44,
+ 14,
+ 14,
+ 64,
+ 14,
+ 44,
+ 14,
+ 24,
+ 14,
+ 44,
+ 14,
+ 64,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 54,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 24,
+ 14,
+ 44,
+ 14,
+ 64,
+ 14,
+ 64,
+ 14,
+ 34,
+ 14,
+ 54,
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 74,
+ 14,
+ 54,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 84,
+ 14,
+ 94,
+ 14,
+ 54,
+ 4,
+ 54,
+ 14,
+ 44,
+ 14,
+ 44,
+ 64,
+ 14,
+ 44,
+ 14,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 16,
+ 46,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 66,
+ 16,
+ 16,
+ 16,
+ 36,
+ 16,
+ 56,
+ 16,
+ 16,
+ 36,
+ 16,
+ 26,
+ 16,
+ 36,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 56,
+ 16,
+ 76,
+ 16,
+ 56,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 86,
+ 16,
+ 96,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 46,
+ 16,
+ 46,
+ 16,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 49,
+ 19,
+ 19,
+ 69,
+ 19,
+ 49,
+ 19,
+ 29,
+ 19,
+ 49,
+ 19,
+ 69,
+ 19,
+ 39,
+ 39,
+ 39,
+ 19,
+ 59,
+ 19,
+ 19,
+ 39,
+ 19,
+ 29,
+ 19,
+ 39,
+ 19,
+ 69,
+ 19,
+ 79,
+ 19,
+ 19,
+ 19,
+ 49,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 29,
+ 19,
+ 49,
+ 19,
+ 59,
+ 19,
+ 79,
+ 19,
+ 59,
+ 19,
+ 69,
+ 19,
+ 79,
+ 19,
+ 89,
+ 19,
+ 99,
+ 19,
+ 19,
+ 69,
+ 59,
+ 19,
+ ],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [...new Array(count)].map((i, k) => `${k} ${desc}`);
+ return arr;
+};
+
+export const AccessoryData = {
+ temperatureTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentTemperature',
+ label: 'Текущее, С°',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, С°',
+ },
+ {
+ key: 'minTemperature',
+ label: 'Минимальное, С°',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'maxTemperature',
+ label: 'Максимальное, С°',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [
+ {
+ name: 'Источник 1',
+ currentTemperature: 19,
+ middleTemperature: 40,
+ minTemperature: 31,
+ minDate: { time: '15:15', date: '11.11.2021' },
+ maxTemperature: 88,
+ maxDate: { time: '10:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Источник 2',
+ currentTemperature: 29,
+ middleTemperature: 40,
+ minTemperature: 20,
+ minDate: { time: '15:45', date: '11.11.2021' },
+ maxTemperature: 76,
+ maxDate: { time: '16:59', date: '16.11.2021' },
+ },
+ {
+ name: 'Источник 3',
+ currentTemperature: 48,
+ middleTemperature: 46,
+ minTemperature: 31,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 69,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Источник 4',
+ currentTemperature: 48,
+ middleTemperature: 45,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 75,
+ maxDate: { time: '11:26', date: '16.11.2021' },
+ },
+ {
+ name: 'Источник 5',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 30,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '17.11.2021' },
+ },
+ {
+ name: 'Источник 6',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ ],
+ },
+ usingTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentTemperature',
+ label: 'Текущее, %',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, %',
+ },
+ {
+ key: 'minTemperature',
+ label: 'Минимальное, %',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'maxTemperature',
+ label: 'Максимальное, %',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [
+ {
+ name: 'Источник 1',
+ currentTemperature: 19,
+ middleTemperature: 40,
+ minTemperature: 31,
+ minDate: { time: '15:15', date: '11.11.2021' },
+ maxTemperature: 88,
+ maxDate: { time: '10:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Источник 2',
+ currentTemperature: 29,
+ middleTemperature: 40,
+ minTemperature: 20,
+ minDate: { time: '15:45', date: '11.11.2021' },
+ maxTemperature: 76,
+ maxDate: { time: '16:59', date: '16.11.2021' },
+ },
+ {
+ name: 'Источник 3',
+ currentTemperature: 48,
+ middleTemperature: 46,
+ minTemperature: 31,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 69,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Источник 4',
+ currentTemperature: 48,
+ middleTemperature: 45,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 75,
+ maxDate: { time: '11:26', date: '16.11.2021' },
+ },
+ {
+ name: 'Источник 5',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 30,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '17.11.2021' },
+ },
+ {
+ name: 'Источник 6',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ ],
+ },
+ voltageTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentTemperature',
+ label: 'Текущее, В',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, В',
+ },
+ {
+ key: 'minTemperature',
+ label: 'Минимальное, В',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'maxTemperature',
+ label: 'Максимальное, В',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [
+ {
+ name: 'Источник 1',
+ currentTemperature: 19,
+ middleTemperature: 40,
+ minTemperature: 31,
+ minDate: { time: '15:15', date: '11.11.2021' },
+ maxTemperature: 88,
+ maxDate: { time: '10:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Источник 2',
+ currentTemperature: 29,
+ middleTemperature: 40,
+ minTemperature: 20,
+ minDate: { time: '15:45', date: '11.11.2021' },
+ maxTemperature: 76,
+ maxDate: { time: '16:59', date: '16.11.2021' },
+ },
+ {
+ name: 'Источник 3',
+ currentTemperature: 48,
+ middleTemperature: 46,
+ minTemperature: 31,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 69,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Источник 4',
+ currentTemperature: 48,
+ middleTemperature: 45,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 75,
+ maxDate: { time: '11:26', date: '16.11.2021' },
+ },
+ {
+ name: 'Источник 5',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 30,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '17.11.2021' },
+ },
+ {
+ name: 'Источник 6',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ ],
+ },
+ powerTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentPower',
+ label: 'Текущее, Вт',
+ label2: '',
+ },
+ ],
+ items: [
+ {
+ name: 'Источник 1',
+ currentPower: 91,
+ },
+ {
+ name: 'Источник 2',
+ currentPower: 77,
+ },
+ {
+ name: 'Источник 3',
+ currentPower: 76,
+ },
+ {
+ name: 'Источник 4',
+ currentPower: 74,
+ },
+ {
+ name: 'Источник 5',
+ currentPower: 73,
+ },
+ {
+ name: 'Источник 6',
+ currentPower: 71,
+ },
+ ],
+ },
+};
diff --git a/src/views/_sila/PowerSupplies/DynamicInfo/index.js b/src/views/_sila/PowerSupplies/DynamicInfo/index.js
new file mode 100644
index 00000000..c45d5c89
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/DynamicInfo/index.js
@@ -0,0 +1,2 @@
+import PowerDynamicPage from './PowerDynamicPage.vue';
+export default PowerDynamicPage;
diff --git a/src/views/_sila/PowerSupplies/Specification/PowerStaticPage.vue b/src/views/_sila/PowerSupplies/Specification/PowerStaticPage.vue
new file mode 100644
index 00000000..10bf1457
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/Specification/PowerStaticPage.vue
@@ -0,0 +1,137 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.specification')" />
+ <page-section class="bootstrap-table__section info_section">
+ <span class="bold-16px">{{ $t('pageInventory.powerSources') }}</span>
+ </page-section>
+ <data-tabs
+ :slots="sourceSlots"
+ :switch-tab="switchSourceSlot"
+ :current-tab="currentSourceSlot"
+ :slot-width="100"
+ :slider-width="68"
+ />
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items_slots"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="{ index, value }">
+ <b-row v-if="index === 0">
+ <b-col cols="11">
+ <span>
+ {{ 'Работоспособность' }}
+ </span>
+ </b-col>
+ <b-col cols="1">
+ <img src="@/assets/images/status/on.svg" class="icon-chevron" />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>{{ value }}</span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+export default {
+ components: { PageTitle, PageSection, DataTabs },
+ data() {
+ return {
+ currentSourceSlot: 1,
+ sourceSlots: [
+ { id: 1, name: 'Источник 1' },
+ { id: 2, name: 'Источник 2' },
+ { id: 3, name: 'Источник 3' },
+ { id: 4, name: 'Источник 4' },
+ { id: 5, name: 'Источник 5' },
+ { id: 6, name: 'Источник 6' },
+ { id: 7, name: 'Источник 7' },
+ { id: 8, name: 'Источник 8' },
+ { id: 9, name: 'Источник 9' },
+ { id: 10, name: 'Источник 10' },
+ { id: 11, name: 'Источник 11' },
+ { id: 12, name: 'Источник 12' },
+ { id: 13, name: 'Источник 13' },
+ { id: 14, name: 'Источник 14' },
+ { id: 15, name: 'Источник 15' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items_slots: [
+ {
+ parametr: 'Статус',
+ value: true,
+ },
+ {
+ parametr: 'Название',
+ value: 'Источник 1',
+ },
+ {
+ parametr: 'Версия прошивки',
+ value: '1.1.2257',
+ },
+ {
+ parametr: 'Серийный номер',
+ value: '4789564478551',
+ },
+ {
+ parametr: 'Номинальное напряжение',
+ value: '220 В',
+ },
+ {
+ parametr: 'Номинальная мощность',
+ value: '400 Вт',
+ },
+ {
+ parametr: 'Поддержка горячей замены',
+ value: 'Есть',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchSourceSlot(period) {
+ this.currentSourceSlot = period;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.info_section {
+ margin-bottom: 0px;
+}
+
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+</style>
diff --git a/src/views/_sila/PowerSupplies/Specification/index.js b/src/views/_sila/PowerSupplies/Specification/index.js
new file mode 100644
index 00000000..14c4ef64
--- /dev/null
+++ b/src/views/_sila/PowerSupplies/Specification/index.js
@@ -0,0 +1,2 @@
+import PowerStaticPage from './PowerStaticPage.vue';
+export default PowerStaticPage;
diff --git a/src/views/_sila/Processors/DynamicInfo/FrequencyTable.vue b/src/views/_sila/Processors/DynamicInfo/FrequencyTable.vue
new file mode 100644
index 00000000..c749905d
--- /dev/null
+++ b/src/views/_sila/Processors/DynamicInfo/FrequencyTable.vue
@@ -0,0 +1,107 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(1001, 'Hz'),
+ min: 0,
+ max: 1000,
+ title: null,
+ minTickInterval: 250,
+ minorGridLineColor: '#1A3E5B1A',
+ labels: {
+ padding: 4,
+ },
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['frequency'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/Processors/DynamicInfo/PowerTable.vue b/src/views/_sila/Processors/DynamicInfo/PowerTable.vue
new file mode 100644
index 00000000..4ccb8aac
--- /dev/null
+++ b/src/views/_sila/Processors/DynamicInfo/PowerTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 66,
+ },
+ shutdown: {
+ type: Number,
+ default: 88,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, this.timeScale),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'Вт'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значения предупреждение',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ {
+ color: '#1A3E5B',
+ dashStyle: 'solid',
+ value: this.shutdown,
+ width: 2,
+ label: {
+ text: 'Пороговое значения отказ',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['power'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/Processors/DynamicInfo/ProcessorsDynamicPage.vue b/src/views/_sila/Processors/DynamicInfo/ProcessorsDynamicPage.vue
new file mode 100644
index 00000000..7e0b16a4
--- /dev/null
+++ b/src/views/_sila/Processors/DynamicInfo/ProcessorsDynamicPage.vue
@@ -0,0 +1,361 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.analyticalPanel')" />
+ <div class="notification-time__container">
+ <span class="semi-bold-12px">{{
+ $t('global.ariaLabel.notificationTime')
+ }}</span>
+ <div class="form-control notification-time">
+ <b-form-input
+ v-model="notificationInput"
+ type="number"
+ class="notification-time__input"
+ >
+ </b-form-input>
+ <button class="notification-button">
+ <img
+ class="notification-time__icon"
+ src="@/assets/images/refresh.svg"
+ />
+ </button>
+ </div>
+ </div>
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <!-- Temperature Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_1
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/temperature-icon.svg" />
+ <span class="bold-16px">{{ $t('subHeader.temperature') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_1" class="nav-item__nav">
+ <!-- Temperature Limit Inputs -->
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/non-normal.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.nonNormalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureNonNormalInput"
+ type="number"
+ :min="0"
+ :max="temperatureCriticalInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/critical.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.criticalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureCriticalInput"
+ type="number"
+ :min="temperatureNonNormalInput"
+ :max="temperatureWarningInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.temperatureWarning')
+ }}</span>
+ <b-form-input
+ v-model="temperatureWarningInput"
+ type="number"
+ :min="temperatureCriticalInput"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateTemperature"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Temperature Tables -->
+ <temperature-table
+ :time-scale="timeScale"
+ :warning="temperatureWarning"
+ :non-normal="temperatureNonNormal"
+ :critical-start="temperatureCritical"
+ />
+ <accessory-table :records="accessoryData.temperatureTable" />
+ </b-collapse>
+ </div>
+ <!-- Frequency Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_2
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/frequency-icon.svg" />
+ <span class="bold-16px">{{ $t('subHeader.frequency') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_2" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.frequencyWarning')
+ }}</span>
+ <b-form-input
+ v-model="frequencyWarningInput"
+ :min="0"
+ :max="1000"
+ type="number"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateFrequency"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Frequency Table -->
+ <frequency-table :time-scale="timeScale" :warning="frequencyWarning" />
+ <accessory-table :records="accessoryData.frequencyTable" />
+ <!-- <frequency-table /> -->
+ </b-collapse>
+ </div>
+ <!-- Power Consumption Section -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_3
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <img src="@/assets/images/power-icon.svg" />
+ <span class="bold-16px">{{ $t('subHeader.powerConsumption') }}</span>
+ <component :is="iconChevronUp" class="icon-expand" />
+ </b-button>
+ <b-collapse id="toggle-collapse_3" class="nav-item__nav">
+ <div class="limit-container">
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.powerWarning')
+ }}</span>
+ <b-form-input
+ v-model="powerWarningInput"
+ type="number"
+ :min="0"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="frequency-limt">
+ <img src="@/assets/images/labels/shutdown.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.powerShutdown')
+ }}</span>
+ <b-form-input
+ v-model="powerShutdownInput"
+ type="number"
+ :min="0"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button class="save-button" variant="primary" @click="updatePower">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Power Consumption Table -->
+ <power-table
+ :time-scale="timeScale"
+ :warning="powerWarning"
+ :shutdown="powerShutdown"
+ />
+ <!-- <power-table /> -->
+ <accessory-table :records="accessoryData.powerTable" />
+ </b-collapse>
+ </div>
+ <!-- <page-section class="bootstrap-table__section"> </page-section> -->
+ </b-container>
+</template>
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import FrequencyTable from './FrequencyTable';
+import PowerTable from './PowerTable';
+import TemperatureTable from './TemperatureTable';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTablePower';
+
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+import { AccessoryData } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ DateSwitch,
+ FrequencyTable,
+ TemperatureTable,
+ PowerTable,
+ AccessoryTable,
+ },
+ data() {
+ return {
+ timeScale: 'hour',
+ temperatureWarning: 72,
+ temperatureWarningInput: 72,
+ temperatureNonNormal: 44,
+ temperatureNonNormalInput: 44,
+ temperatureCritical: 55,
+ temperatureCriticalInput: 55,
+ frequencyWarning: 660,
+ frequencyWarningInput: 660,
+ powerWarning: 66,
+ powerWarningInput: 66,
+ powerShutdown: 88,
+ powerShutdownInput: 88,
+ notificationInput: 42,
+ accessoryData: AccessoryData,
+ iconChevronUp: iconChevronUp,
+ };
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateTemperature() {
+ this.temperatureWarning = +this.temperatureWarningInput;
+ this.temperatureNonNormal = +this.temperatureNonNormalInput;
+ this.temperatureCritical = +this.temperatureCriticalInput;
+ },
+ updateFrequency() {
+ this.frequencyWarning = +this.frequencyWarningInput;
+ },
+ updatePower() {
+ this.powerWarning = +this.powerWarningInput;
+ this.powerShutdown = +this.powerShutdownInput;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+.nav-item {
+ list-style-type: none;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+
+.notification-time__container {
+ position: absolute;
+ top: calc(#{$header-height});
+ right: 0px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.notification-time {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ border: none;
+ box-shadow: none;
+ border-radius: 8px;
+ margin: 12px 32px 12px 8px;
+ width: 236px;
+ height: 40px;
+ z-index: 1001;
+}
+
+.notification-time__icon {
+ width: 20px;
+ height: 20px;
+}
+
+.notification-time__input {
+ border: none;
+ background: none;
+ box-shadow: none;
+}
+
+.notification-button {
+ border: none;
+ background: none;
+}
+
+.semi-bold-12px {
+ z-index: 1001;
+}
+// temperature limit comtainer
+.limit-container {
+ height: 85px;
+ width: 100%;
+ padding: 0 32px 10px 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.trmperature-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 270px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.form-control {
+ height: 36px;
+}
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+
+.frequency-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 288px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+</style>
diff --git a/src/views/_sila/Processors/DynamicInfo/TemperatureTable.vue b/src/views/_sila/Processors/DynamicInfo/TemperatureTable.vue
new file mode 100644
index 00000000..f9c149c3
--- /dev/null
+++ b/src/views/_sila/Processors/DynamicInfo/TemperatureTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ plotBands: [
+ {
+ color: '#F0AC0C1A',
+ dashStyle: 'solid',
+ from: this.nonNormal,
+ to: this.criticalStart,
+ },
+ {
+ color: '#FF41411A',
+ dashStyle: 'solid',
+ from: this.criticalStart,
+ to: this.warning,
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/Processors/DynamicInfo/helpers.js b/src/views/_sila/Processors/DynamicInfo/helpers.js
new file mode 100644
index 00000000..82e23544
--- /dev/null
+++ b/src/views/_sila/Processors/DynamicInfo/helpers.js
@@ -0,0 +1,1398 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ temperature: [
+ {
+ name: 'Sean',
+ data: [
+ 10,
+ 10,
+ 10,
+ 30,
+ 10,
+ 10,
+ 10,
+ 37,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 25,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 35,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 45,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 50,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 11,
+ 11,
+ 11,
+ 30,
+ 11,
+ 11,
+ 11,
+ 11,
+ 57,
+ 11,
+ 11,
+ 11,
+ 11,
+ 25,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 61,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 31,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 21,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 51,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 15,
+ 15,
+ 15,
+ 35,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 25,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 45,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 35,
+ 15,
+ 15,
+ 55,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 21,
+ 21,
+ 21,
+ 51,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 40,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 35,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 53,
+ 21,
+ 21,
+ 30,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 29,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 39,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ ],
+ color: '#139BB9',
+ },
+ ],
+ //////////////////////////////frequency////////////////
+ frequency: [
+ {
+ name: 'Sean',
+ data: [
+ 100,
+ 100,
+ 450,
+ 100,
+ 100,
+ 100,
+ 100,
+ 137,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 125,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 135,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 145,
+ 100,
+ 100,
+ 360,
+ 100,
+ 100,
+ 450,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 100,
+ 150,
+ 100,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 120,
+ 120,
+ 120,
+ 140,
+ 120,
+ 157,
+ 120,
+ 120,
+ 120,
+ 210,
+ 120,
+ 125,
+ 120,
+ 120,
+ 120,
+ 350,
+ 120,
+ 120,
+ 120,
+ 120,
+ 120,
+ 590,
+ 120,
+ 120,
+ 120,
+ 120,
+ 450,
+ 120,
+ 120,
+ 120,
+ 120,
+ 120,
+ 125,
+ 120,
+ 120,
+ 120,
+ 120,
+ 120,
+ 162,
+ 120,
+ 120,
+ 120,
+ 120,
+ 120,
+ 220,
+ 120,
+ 120,
+ 120,
+ 120,
+ 120,
+ 360,
+ 120,
+ 210,
+ 120,
+ 200,
+ 120,
+ 120,
+ 120,
+ 120,
+ 120,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 110,
+ 110,
+ 110,
+ 450,
+ 110,
+ 110,
+ 110,
+ 157,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 165,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 310,
+ 110,
+ 110,
+ 110,
+ 590,
+ 110,
+ 110,
+ 175,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 152,
+ 110,
+ 310,
+ 110,
+ 110,
+ 210,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 110,
+ 360,
+ 110,
+ 110,
+ 110,
+ 210,
+ 110,
+ 110,
+ 110,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 221,
+ 221,
+ 221,
+ 251,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 590,
+ 221,
+ 221,
+ 421,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 450,
+ 221,
+ 221,
+ 221,
+ 221,
+ 421,
+ 221,
+ 235,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 421,
+ 221,
+ 360,
+ 221,
+ 221,
+ 221,
+ 210,
+ 253,
+ 221,
+ 221,
+ 230,
+ 221,
+ 221,
+ 221,
+ 590,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ 221,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 590,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 590,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ 159,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 176,
+ 176,
+ 176,
+ 156,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 276,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 210,
+ 176,
+ 176,
+ 176,
+ 590,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 590,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 570,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 770,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ 176,
+ ],
+ color: '#139BB9',
+ },
+ ],
+ //////////////////////////////power////////////////
+ power: [
+ {
+ name: 'Sean',
+ data: [
+ 15,
+ 15,
+ 45,
+ 15,
+ 65,
+ 15,
+ 75,
+ 15,
+ 15,
+ 15,
+ 55,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 55,
+ 15,
+ 75,
+ 15,
+ 35,
+ 15,
+ 55,
+ 15,
+ 75,
+ 15,
+ 85,
+ 15,
+ 15,
+ 45,
+ 15,
+ 15,
+ 45,
+ 15,
+ 45,
+ 15,
+ 15,
+ 65,
+ 15,
+ 45,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 65,
+ 15,
+ 35,
+ 35,
+ 35,
+ 15,
+ 55,
+ 15,
+ 15,
+ 35,
+ 15,
+ 25,
+ 15,
+ 35,
+ 15,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 62,
+ 12,
+ 72,
+ 12,
+ 12,
+ 12,
+ 42,
+ 12,
+ 12,
+ 12,
+ 52,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 52,
+ 12,
+ 72,
+ 12,
+ 52,
+ 12,
+ 62,
+ 12,
+ 72,
+ 12,
+ 82,
+ 12,
+ 12,
+ 42,
+ 12,
+ 12,
+ 52,
+ 12,
+ 42,
+ 12,
+ 12,
+ 62,
+ 12,
+ 42,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 62,
+ 12,
+ 12,
+ 32,
+ 12,
+ 62,
+ 12,
+ 52,
+ 12,
+ 32,
+ 12,
+ 22,
+ 12,
+ 32,
+ 12,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 24,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 74,
+ 14,
+ 54,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 84,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 54,
+ 14,
+ 44,
+ 14,
+ 14,
+ 64,
+ 14,
+ 44,
+ 14,
+ 24,
+ 14,
+ 44,
+ 14,
+ 64,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 54,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 24,
+ 14,
+ 44,
+ 14,
+ 64,
+ 14,
+ 64,
+ 14,
+ 34,
+ 14,
+ 54,
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 74,
+ 14,
+ 54,
+ 14,
+ 64,
+ 14,
+ 74,
+ 14,
+ 84,
+ 14,
+ 94,
+ 14,
+ 54,
+ 4,
+ 54,
+ 14,
+ 44,
+ 14,
+ 44,
+ 64,
+ 14,
+ 44,
+ 14,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 16,
+ 46,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 66,
+ 16,
+ 16,
+ 16,
+ 36,
+ 16,
+ 56,
+ 16,
+ 16,
+ 36,
+ 16,
+ 26,
+ 16,
+ 36,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 56,
+ 16,
+ 76,
+ 16,
+ 56,
+ 16,
+ 66,
+ 16,
+ 76,
+ 16,
+ 86,
+ 16,
+ 96,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 46,
+ 16,
+ 46,
+ 16,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 49,
+ 19,
+ 19,
+ 69,
+ 19,
+ 49,
+ 19,
+ 29,
+ 19,
+ 49,
+ 19,
+ 69,
+ 19,
+ 39,
+ 39,
+ 39,
+ 19,
+ 59,
+ 19,
+ 19,
+ 39,
+ 19,
+ 29,
+ 19,
+ 39,
+ 19,
+ 69,
+ 19,
+ 79,
+ 19,
+ 19,
+ 19,
+ 49,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 29,
+ 19,
+ 49,
+ 19,
+ 59,
+ 19,
+ 79,
+ 19,
+ 59,
+ 19,
+ 69,
+ 19,
+ 79,
+ 19,
+ 89,
+ 19,
+ 99,
+ 19,
+ 19,
+ 69,
+ 59,
+ 19,
+ ],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [...new Array(count)].map((i, k) => `${k} ${desc}`);
+ return arr;
+};
+
+export const AccessoryData = {
+ temperatureTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentTemperature',
+ label: 'Текущее, С°',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, С°',
+ },
+ {
+ key: 'minTemperature',
+ label: 'Минимальное, С°',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'maxTemperature',
+ label: 'Максимальное, С°',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [
+ {
+ name: 'Процессор 1',
+ currentTemperature: 19,
+ middleTemperature: 40,
+ minTemperature: 31,
+ minDate: { time: '15:15', date: '11.11.2021' },
+ maxTemperature: 88,
+ maxDate: { time: '10:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Процессор 2',
+ currentTemperature: 29,
+ middleTemperature: 40,
+ minTemperature: 20,
+ minDate: { time: '15:45', date: '11.11.2021' },
+ maxTemperature: 76,
+ maxDate: { time: '16:59', date: '16.11.2021' },
+ },
+ {
+ name: 'Процессор 3',
+ currentTemperature: 48,
+ middleTemperature: 46,
+ minTemperature: 31,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 69,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Процессор 4',
+ currentTemperature: 48,
+ middleTemperature: 45,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 75,
+ maxDate: { time: '11:26', date: '16.11.2021' },
+ },
+ {
+ name: 'Процессор 5',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 30,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '17.11.2021' },
+ },
+ {
+ name: 'Процессор 6',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ ],
+ },
+ frequencyTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentFrequency',
+ label: 'Текущее, Hz',
+ },
+ {
+ key: 'baseFrequency',
+ label: 'Базовое, Hz',
+ },
+ ],
+ items: [
+ {
+ name: 'Процессор 1',
+ currentFrequency: 600,
+ baseFrequency: 400,
+ },
+ {
+ name: 'Процессор 2',
+ currentFrequency: 500,
+ baseFrequency: 470,
+ },
+ {
+ name: 'Процессор 3',
+ currentFrequency: 500,
+ baseFrequency: 450,
+ },
+ {
+ name: 'Процессор 4',
+ currentFrequency: 500,
+ baseFrequency: 470,
+ },
+ {
+ name: 'Процессор 5',
+ currentFrequency: 600,
+ baseFrequency: 470,
+ },
+ {
+ name: 'Процессор 6',
+ currentFrequency: 500,
+ baseFrequency: 400,
+ },
+ ],
+ },
+ powerTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentPower',
+ label: 'Текущее, Вт',
+ label2: '',
+ },
+ ],
+ items: [
+ {
+ name: 'Процессор 1',
+ currentPower: 91,
+ },
+ {
+ name: 'Процессор 2',
+ currentPower: 77,
+ },
+ {
+ name: 'Процессор 3',
+ currentPower: 76,
+ },
+ {
+ name: 'Процессор 4',
+ currentPower: 74,
+ },
+ {
+ name: 'Процессор 5',
+ currentPower: 73,
+ },
+ {
+ name: 'Процессор 6',
+ currentPower: 71,
+ },
+ ],
+ },
+};
diff --git a/src/views/_sila/Processors/DynamicInfo/index.js b/src/views/_sila/Processors/DynamicInfo/index.js
new file mode 100644
index 00000000..121c0316
--- /dev/null
+++ b/src/views/_sila/Processors/DynamicInfo/index.js
@@ -0,0 +1,2 @@
+import ProcessorsDynamicPage from './ProcessorsDynamicPage.vue';
+export default ProcessorsDynamicPage;
diff --git a/src/views/_sila/Processors/Specification/AcceleratorSpecificationTable.vue b/src/views/_sila/Processors/Specification/AcceleratorSpecificationTable.vue
new file mode 100644
index 00000000..53b31d8b
--- /dev/null
+++ b/src/views/_sila/Processors/Specification/AcceleratorSpecificationTable.vue
@@ -0,0 +1,146 @@
+<template>
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="accelerators"
+ :fields="fields"
+ >
+ <template #cell(expandRow)="">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandAccelerators"
+ :title="expandRowLabel"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+ <template #cell(status)="{ value }">
+ <div v-if="value" class="fans-table-col-first__cell">
+ <img class="status__img" src="@/assets/images/status/on.svg" />
+ <span>
+ {{ $t('global.status.inWork') }}
+ </span>
+ </div>
+ <div v-else class="fans-table-col-first__cell">
+ <img class="status__img" src="@/assets/images/_sila/status/off.svg" />
+ <span>
+ {{ $t('global.status.outWorking') }}
+ </span>
+ </div>
+ </template>
+ </b-table>
+</template>
+
+<script>
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+
+import { Accelerators } from './helpers';
+export default {
+ components: { IconChevron },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ isAddersСolon: false,
+ accelerators: Accelerators,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '3%' },
+ sortable: false,
+ },
+ {
+ key: 'status',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ thStyle: { width: '15%' },
+ },
+ {
+ key: 'name',
+ label: 'Имя',
+ formatter: this.dataFormatter,
+ thStyle: { width: '10%' },
+ },
+ {
+ key: 'slot_number',
+ label: '№ Слота',
+ formatter: this.dataFormatter,
+ thStyle: { width: '8%' },
+ },
+ {
+ key: 'board_number',
+ label: '№ Платы',
+ formatter: this.dataFormatter,
+ thStyle: { width: '8%' },
+ },
+ {
+ key: 'serial_number',
+ label: 'Серийный номер',
+ formatter: this.dataFormatter,
+ thStyle: { width: '15%' },
+ },
+ {
+ key: 'frequency',
+ label: '№ Детали',
+ formatter: this.dataFormatter,
+ thStyle: { width: '8%' },
+ },
+ {
+ key: 'cores',
+ label: 'Версия прошивки',
+ formatter: this.dataFormatter,
+ thStyle: { width: '10%' },
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ margin: 0px;
+ flex-wrap: nowrap;
+}
+.fans-table-col-first__cell {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.status__img {
+ margin-right: 7px;
+}
+
+.bold-16px {
+ margin: 24px 0 0 2rem;
+}
+
+.bold-12px__caps {
+ color: $text-secondary;
+}
+
+.attrib-names {
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ color: $text-secondary !important;
+ font-weight: 600;
+}
+
+.custom-switch {
+ margin: 0;
+}
+
+.btn-link {
+ width: 30px !important;
+ height: 20px !important;
+}
+</style>
diff --git a/src/views/_sila/Processors/Specification/ProcessorsSpecificationPage.vue b/src/views/_sila/Processors/Specification/ProcessorsSpecificationPage.vue
new file mode 100644
index 00000000..50362ac2
--- /dev/null
+++ b/src/views/_sila/Processors/Specification/ProcessorsSpecificationPage.vue
@@ -0,0 +1,117 @@
+<template>
+ <b-container
+ id="page-processors"
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.specification')" />
+ <page-section class="bootstrap-table__section">
+ <span class="bold-16px">{{
+ $t('pageInventory.installedProcessors')
+ }}</span>
+ <!-- Processors Specification Table -->
+ <div class="capability-info">
+ <b-row>
+ <b-col class="mt-0 mb-2 p-0 bold-12px__caps">
+ {{ $t('pageInventory.table.processorCapabilityInfo') }}
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <dd class="attrib-names">
+ {{ $t('global.table.attributes') }}
+ </dd>
+ <dd>{{ 'Многопоточность' }}</dd>
+ <dd>{{ 'Виртуализация' }}</dd>
+ <dd>{{ 'Турбо режим' }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <dd class="attrib-names">{{ 'Состояние присутсвия' }}</dd>
+ <dd
+ v-for="item in processors[0].presence_status"
+ :key="item.presence_status"
+ >
+ {{ item }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <!-- Status state -->
+ <dd class="attrib-names">{{ 'Включен' }}</dd>
+ <dd>
+ <b-form-checkbox
+ v-model="processors[0].statuses.multithreading"
+ switch
+ >
+ </b-form-checkbox>
+ </dd>
+ <dd>
+ <b-form-checkbox
+ v-model="processors[0].statuses.virtualization"
+ switch
+ >
+ </b-form-checkbox>
+ </dd>
+ <dd>
+ <b-form-checkbox v-model="processors[0].statuses.turbo" switch>
+ </b-form-checkbox>
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </div>
+ <processors-specification-table />
+ <span class="bold-16px">{{
+ $t('pageInventory.installedAccelerator')
+ }}</span>
+ <!-- Accelerators Specification Table -->
+ <accelerator-specification-table />
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import { processors } from './helpers';
+
+import ProcessorsSpecificationTable from './ProcessorsSpecificationTable';
+import AcceleratorSpecificationTable from './AcceleratorSpecificationTable';
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ ProcessorsSpecificationTable,
+ AcceleratorSpecificationTable,
+ },
+ data() {
+ return {
+ processors,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.capability-info {
+ padding-left: 1rem;
+}
+
+.attrib-names {
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ color: $text-secondary !important;
+ font-weight: 600;
+}
+
+.custom-switch {
+ margin: 0;
+}
+</style>
diff --git a/src/views/_sila/Processors/Specification/ProcessorsSpecificationTable.vue b/src/views/_sila/Processors/Specification/ProcessorsSpecificationTable.vue
new file mode 100644
index 00000000..c872eefc
--- /dev/null
+++ b/src/views/_sila/Processors/Specification/ProcessorsSpecificationTable.vue
@@ -0,0 +1,251 @@
+<template>
+ <b-table
+ sort-icon-left
+ no-sort-reset
+ :sort-desc="true"
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="processors"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ :empty-filtered-text="$t('global.table.emptySearchMessage')"
+ >
+ <template #cell(expandRow)="row">
+ <b-button
+ variant="link"
+ data-test-id="hardwareStatus-button-expandProcessors"
+ :title="expandRowLabel"
+ class="btn-icon-only"
+ @click="toggleRowDetails(row)"
+ >
+ <icon-chevron />
+ <span class="sr-only">{{ expandRowLabel }}</span>
+ </b-button>
+ </template>
+ <template #cell(status)="{ value }">
+ <div v-if="value" class="fans-table-col-first__cell">
+ <img class="status__img" src="@/assets/images/status/on.svg" />
+ <span>
+ {{ $t('global.status.inWork') }}
+ </span>
+ </div>
+ <div v-else class="fans-table-col-first__cell">
+ <img class="status__img" src="@/assets/images/_sila/status/off.svg" />
+ <span>
+ {{ $t('global.status.outWorking') }}
+ </span>
+ </div>
+ </template>
+
+ <template #row-details="{ index }">
+ <b-container fluid>
+ <!-- ProcessorCapabilityInfo -->
+ <b-row>
+ <b-col class="mt-3 mb-2 p-0 bold-12px__caps">
+ {{ $t('pageInventory.table.processorCacheInfo') }}
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <!-- Attributes Names -->
+ <dd class="attrib-names">{{ $t('global.table.attributes') }}</dd>
+ <dd>{{ 'Уровень кеша' }}</dd>
+ <dd>{{ 'Максимальный объем' }}</dd>
+ <dd>{{ 'Установленный объем' }}</dd>
+ <dd>{{ 'Тип кэша' }}</dd>
+ <dd>{{ 'Локализация' }}</dd>
+ <dd>{{ 'Политика записи' }}</dd>
+ <dd>{{ 'Ассоциативность' }}</dd>
+ <dd>{{ 'Тип исправления ошибки' }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <!-- Status КЭШ-1 -->
+ <dd class="attrib-names">{{ 'КЭШ-1' }}</dd>
+ <dd v-for="item in processors[index].cache_1" :key="item.cache_1">
+ {{ dataFormatter(item) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <!-- Status state -->
+ <dd class="attrib-names">{{ 'КЭШ-2' }}</dd>
+ <dd v-for="item in processors[index].cache_2" :key="item.cache_2">
+ {{ dataFormatter(item) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2 p-0" sm="3" xl="3">
+ <dl class="light-12px">
+ <dd class="attrib-names">{{ 'КЭШ-3' }}</dd>
+ <dd v-for="item in processors[index].cache_3" :key="item.cache_3">
+ {{ dataFormatter(item) }}
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col class="mt-3 mb-2 p-0 bold-12px__caps">
+ {{ $t('pageInventory.table.SupportedTechnologies') }}
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col class="mt-2 p-0" sm="6" xl="6">
+ <dl class="light-12px">
+ <dd class="attrib-names">{{ $t('global.table.attributes') }}</dd>
+ <dd></dd>
+ <dd>{{ 'processor' }}</dd>
+ <dd>{{ 'vendor_id' }}</dd>
+ <dd>{{ 'cpu family' }}</dd>
+ <dd>{{ 'model' }}</dd>
+ <dd>{{ 'model name' }}</dd>
+ <dd>{{ 'stepping' }}</dd>
+ <dd>{{ 'microcode' }}</dd>
+ <dd>{{ 'cpu MHz' }}</dd>
+ <dd>{{ 'cache size' }}</dd>
+ <dd>{{ 'physical id' }}</dd>
+ <dd>{{ 'siblings' }}</dd>
+ <dd>{{ 'core id' }}</dd>
+ <dd>{{ 'cpu cores' }}</dd>
+ <dd>{{ 'apicid' }}</dd>
+ <dd>{{ 'initial apicid' }}</dd>
+ <dd>{{ 'fpu' }}</dd>
+ <dd>{{ 'fpu_exception' }}</dd>
+ <dd>{{ 'cpuid level' }}</dd>
+ <dd>{{ 'wp' }}</dd>
+ <dd>{{ 'flags' }}</dd>
+ <dd>{{ 'bugs' }}</dd>
+ </dl>
+ </b-col>
+ <b-col class="mt-2 p-0" sm="6" xl="6">
+ <dl class="light-12px">
+ <dd class="attrib-names">{{ $t('global.table.value') }}</dd>
+ <dd
+ v-for="item in processors[index].description"
+ :key="item.description"
+ >
+ {{ dataFormatter(item) }}
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </b-container>
+ </template>
+ </b-table>
+</template>
+
+<script>
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+
+import { processors } from './helpers';
+export default {
+ components: { IconChevron },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ isAddersСolon: false,
+ processors,
+ fields: [
+ {
+ key: 'expandRow',
+ label: '',
+ thStyle: { width: '3%' },
+ sortable: false,
+ },
+ {
+ key: 'status',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ thStyle: { width: '17%' },
+ },
+ {
+ key: 'name',
+ label: 'Имя',
+ formatter: this.dataFormatter,
+ thStyle: { width: '15%' },
+ },
+ {
+ key: 'model',
+ label: 'Модель',
+ formatter: this.dataFormatter,
+ thStyle: { width: '12%' },
+ },
+ {
+ key: 'serialNumber',
+ label: 'Серийный номер',
+ formatter: this.dataFormatter,
+ thStyle: { width: '15%' },
+ },
+ {
+ key: 'version',
+ label: 'Версия',
+ formatter: this.dataFormatter,
+ thStyle: { width: '10%' },
+ },
+ {
+ key: 'frequency',
+ label: 'Частота',
+ formatter: this.dataFormatter,
+ thStyle: { width: '10%' },
+ },
+ {
+ key: 'cores',
+ label: 'Ядра',
+ formatter: this.dataFormatter,
+ thStyle: { width: '10%' },
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ margin: 0px;
+ flex-wrap: nowrap;
+}
+.fans-table-col-first__cell {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.status__img {
+ margin-right: 7px;
+}
+
+.bold-16px {
+ margin: 24px 0 0 2rem;
+}
+
+.bold-12px__caps {
+ color: $text-secondary;
+}
+
+.attrib-names {
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ color: $text-secondary !important;
+ font-weight: 600;
+}
+
+.custom-switch {
+ margin: 0;
+}
+
+.btn-link {
+ width: 30px !important;
+ height: 20px !important;
+}
+</style>
diff --git a/src/views/_sila/Processors/Specification/helpers.js b/src/views/_sila/Processors/Specification/helpers.js
new file mode 100644
index 00000000..6227e4b8
--- /dev/null
+++ b/src/views/_sila/Processors/Specification/helpers.js
@@ -0,0 +1,254 @@
+export const processors = [
+ {
+ expandRow: false,
+ status: true,
+ name: 'Процессор №1',
+ model: 'Core i5',
+ serialNumber: '789578456698',
+ version: 'v3.1.5',
+ frequency: '2.4',
+ cores: '4',
+ presence_status: {
+ multithreading: 'Нет',
+ virtualization: 'Да',
+ turbo: 'Да',
+ },
+ statuses: {
+ multithreading: false,
+ virtualization: true,
+ turbo: true,
+ },
+ cache_1: {
+ level: 'L1',
+ max_value: '1MB',
+ current_value: '1MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Parity',
+ },
+ cache_2: {
+ level: 'L2',
+ max_value: '32MB',
+ current_value: '32MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Multiple-bit ECC',
+ },
+ cache_3: {
+ level: 'L3',
+ max_value: '64MB',
+ current_value: '64MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Multiple-bit ECC',
+ },
+ description: {
+ processor: '79',
+ vendor_id: 'GenuineIntel',
+ cpu_family: '6',
+ model: '85',
+ model_name: 'Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz',
+ stepping: '7',
+ microcode: '0x5002f00',
+ cpu_MHz: '2955.939',
+ cache_size: '36608 KB',
+ physical_id: '1',
+ siblings: '40',
+ core_id: '29',
+ cpu_cores: '20',
+ apicid: '123',
+ initial_apicid: '123',
+ fpu: 'yes',
+ fpu_exception: 'yes',
+ cpuid_level: '22',
+ wp: 'yes',
+ flags: 'fpu, vme, de, pse, tsc, pat, pse36....',
+ bugs: 'spectre_v1 spectre_v2, spec_store_bypass',
+ },
+ },
+ {
+ expandRow: false,
+ status: true,
+ name: 'Процессор №2',
+ model: 'Core i3',
+ serialNumber: '425546788976',
+ version: 'v2.1.5',
+ frequency: '1.4',
+ cores: '2',
+ presence_status: {
+ multithreading: 'Нет',
+ virtualization: 'Да',
+ turbo: 'Да',
+ },
+ statuses: {
+ multithreading: false,
+ virtualization: true,
+ turbo: true,
+ },
+ cache_1: {
+ level: 'L1',
+ max_value: '1MB',
+ current_value: '1MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Parity',
+ },
+ cache_2: {
+ level: 'L2',
+ max_value: '32MB',
+ current_value: '32MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Multiple-bit ECC',
+ },
+ cache_3: {
+ level: 'L3',
+ max_value: '64MB',
+ current_value: '64MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Multiple-bit ECC',
+ },
+ description: {
+ processor: '79',
+ vendor_id: 'GenuineIntel',
+ cpu_family: '6',
+ model: '85',
+ model_name: 'Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz',
+ stepping: '7',
+ microcode: '0x5002f00',
+ cpu_MHz: '2955.939',
+ cache_size: '36608 KB',
+ physical_id: '1',
+ siblings: '40',
+ core_id: '29',
+ cpu_cores: '20',
+ apicid: '123',
+ initial_apicid: '123',
+ fpu: 'yes',
+ fpu_exception: 'yes',
+ cpuid_level: '22',
+ wp: 'yes',
+ flags: 'fpu, vme, de, pse, tsc, pat, pse36....',
+ bugs: 'spectre_v1 spectre_v2, spec_store_bypass',
+ },
+ },
+ {
+ expandRow: false,
+ status: false,
+ name: 'Процессор №3',
+ model: 'Core i7',
+ serialNumber: '454555556698',
+ version: 'v6.1.5',
+ frequency: '3.4',
+ cores: '6',
+ presence_status: {
+ multithreading: 'Нет',
+ virtualization: 'Да',
+ turbo: 'Да',
+ },
+ statuses: {
+ multithreading: false,
+ virtualization: true,
+ turbo: true,
+ },
+ cache_1: {
+ level: 'L1',
+ max_value: '1MB',
+ current_value: '1MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Parity',
+ },
+ cache_2: {
+ level: 'L2',
+ max_value: '32MB',
+ current_value: '32MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Multiple-bit ECC',
+ },
+ cache_3: {
+ level: 'L3',
+ max_value: '64MB',
+ current_value: '64MB',
+ cache_type: 'Unified',
+ localization: 'Internal',
+ politics: 'Write Back',
+ associativity: '8-Way Set-Associativity',
+ fix_type: 'Multiple-bit ECC',
+ },
+ description: {
+ processor: '79',
+ vendor_id: 'GenuineIntel',
+ cpu_family: '6',
+ model: '85',
+ model_name: 'Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz',
+ stepping: '7',
+ microcode: '0x5002f00',
+ cpu_MHz: '2955.939',
+ cache_size: '36608 KB',
+ physical_id: '1',
+ siblings: '40',
+ core_id: '29',
+ cpu_cores: '20',
+ apicid: '123',
+ initial_apicid: '123',
+ fpu: 'yes',
+ fpu_exception: 'yes',
+ cpuid_level: '22',
+ wp: 'yes',
+ flags: 'fpu, vme, de, pse, tsc, pat, pse36....',
+ bugs: 'spectre_v1 spectre_v2, spec_store_bypass',
+ },
+ },
+];
+
+export const Accelerators = [
+ {
+ expandRow: false,
+ status: true,
+ name: 'Процессор №1',
+ slot_number: '789578456698',
+ board_number: '789578456698',
+ serial_number: '425546788976',
+ frequency: '2213',
+ cores: '4',
+ },
+ {
+ expandRow: false,
+ status: true,
+ name: 'Процессор №2',
+ slot_number: '425546788976',
+ board_number: '425546788976',
+ serial_number: '425546788976',
+ frequency: '1332',
+ cores: '2',
+ },
+ {
+ expandRow: false,
+ status: false,
+ name: 'Процессор №3',
+ slot_number: '454555556698',
+ board_number: '454555556698',
+ serial_number: '425546788976',
+ frequency: '3213',
+ cores: '6',
+ },
+];
diff --git a/src/views/_sila/Processors/Specification/index.js b/src/views/_sila/Processors/Specification/index.js
new file mode 100644
index 00000000..93bbbf10
--- /dev/null
+++ b/src/views/_sila/Processors/Specification/index.js
@@ -0,0 +1,2 @@
+import ProcessorsSpecificationPage from './ProcessorsSpecificationPage.vue';
+export default ProcessorsSpecificationPage;
diff --git a/src/views/_sila/SILA/AnalyticalPanel/AnalyticalPanelPage.vue b/src/views/_sila/SILA/AnalyticalPanel/AnalyticalPanelPage.vue
new file mode 100644
index 00000000..533fbfa1
--- /dev/null
+++ b/src/views/_sila/SILA/AnalyticalPanel/AnalyticalPanelPage.vue
@@ -0,0 +1,272 @@
+<template>
+ <b-container fluid="xxl pt-0 m-0">
+ <page-title :description="$t('appNavigation.analyticalPanel')" />
+ <div class="tables-container">
+ <div class="server-table">
+ <span class="semi-bold-16px">{{
+ $t('global.status.serverStatus')
+ }}</span>
+ <b-table
+ show-empty
+ responsive="md"
+ class="table-analytical"
+ no-border-collapse
+ :items="serverItems"
+ :fields="server_fields"
+ >
+ <template #cell(value)="{ value }">
+ <b-col v-if="value">
+ <img
+ src="@/assets/images/icon-ok.svg"
+ class="system-network-table__icon"
+ />
+ </b-col>
+ <b-col v-else>
+ <img
+ src="@/assets/images/icon-no.svg"
+ class="system-network-table__icon"
+ />
+ </b-col>
+ </template>
+ </b-table>
+ </div>
+ <div class="events-table">
+ <span class="semi-bold-16px">{{ $t('global.action.events') }}</span>
+ <div id="events-table-wrapper">
+ <b-table
+ show-empty
+ :sticky-header="stickyHeader"
+ responsive="md"
+ class="table-analytical"
+ no-border-collapse
+ :items="eventsItems"
+ :fields="events_fields"
+ >
+ <template #cell(date)="{ value }">
+ <img
+ src="@/assets/images/_sila/event-logs/time.svg"
+ class="sourse__img"
+ />
+ <span class="regular-12px quaternary"> {{ value }} </span>
+ </template>
+ <template #cell(type)="{ value }">
+ <span
+ v-if="value === 'Критические'"
+ class="bold-12px__caps errors"
+ >{{ value }}</span
+ >
+ <span
+ v-else-if="value === 'Предупреждения'"
+ class="bold-12px__caps warning"
+ >
+ {{ value }}
+ </span>
+ <span v-else class="bold-12px__caps information">{{
+ value
+ }}</span>
+ </template>
+ <template #cell(description)="data">
+ <b-row class="semi-bold-16px tretiatry">
+ {{ data.item.description.name }}
+ </b-row>
+ <b-row
+ class="regular-12px tretiatry pointer"
+ @click="toggleRowDetails(data)"
+ >
+ {{ data.item.description.description }}</b-row
+ >
+ </template>
+ <template #row-details="{ index }">
+ <b-container fluid>
+ <b-col class="mt-1 mb-2 regular-12px tretiatry">
+ <span class="row-details">
+ {{
+ `Краткое описание ошибки или сообщение которое состоит из текста указывающего на предмет ошибки.Краткое описание ошибки или сообщение которое состоит из текста указывающего на предмет ошибки.
+ Краткое описание ошибки или сообщение которое состоит из текста указывающего на предмет ошибки.Краткое описание ошибки или сообщение которое состоит из текста указывающего на предмет ошибки.`
+ }}
+ {{ $t(eventsItems[index].description.description) }}
+ </span>
+ </b-col>
+ </b-container>
+ </template>
+ </b-table>
+ </div>
+ </div>
+ </div>
+ <div class="indicators-container">
+ <span class="bold-16px">{{ $t('global.status.indicators') }}</span>
+ <span class="indicators-units regular-12px tretiatry">
+ {{ $t('global.units.unit') }}</span
+ >
+ <b-button id="popover-choice-1" variant="unstyled">
+ <span class="regular-12px units-label">
+ {{
+ $t(`global.units.${unit === 'Ампераж' ? 'amper' : 'volt'}`)
+ }}</span
+ >
+ <img class="units__icon" src="@/assets/images/_sila/icon-chevron-red.svg" />
+ </b-button>
+ </div>
+ <two-chioce-popover
+ :id="1"
+ fitst-option="Ампераж"
+ second-option="Вольтаж"
+ :chosen-option="unit"
+ :first-action="selectAmper"
+ :second-action="selectVolt"
+ />
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <accessory-table :records="accessoryData.power" />
+ <power-table :time-scale="timeScale" />
+ <div class="tables-container">
+ <span class="semi-bold-16px">Управление</span>
+ </div>
+ <control-system />
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import TableRowExpandMixin from '@/components/Mixins/TableRowExpandMixin';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTableWithLabel';
+import ControlSystem from '@/components/Global/SilaComponents/InventoryControlSystem';
+import TwoChiocePopover from '@/components/Global/SilaComponents/TwoChiocePopover';
+
+import PowerTable from './PowerTable';
+import { AccessoryData, ServerItems, EventsItems } from './helpers';
+export default {
+ components: {
+ PageTitle,
+ DateSwitch,
+ AccessoryTable,
+ PowerTable,
+ ControlSystem,
+ TwoChiocePopover,
+ },
+ mixins: [TableRowExpandMixin],
+ data() {
+ return {
+ unit: 'Ампераж',
+ isActive: false,
+ timeScale: 'hour',
+ stickyHeader: '511px',
+ accessoryData: AccessoryData,
+ serverItems: ServerItems,
+ eventsItems: EventsItems,
+ server_fields: [
+ {
+ key: 'param',
+ label: 'Раздел',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'value',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ thStyle: { width: '10%' },
+ },
+ ],
+ events_fields: [
+ {
+ key: 'date',
+ label: 'Время',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'type',
+ label: 'Тип события',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'description',
+ label: 'О событии',
+ formatter: this.dataFormatter,
+ },
+ ],
+ };
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ selectAmper() {
+ this.unit = 'Ампераж';
+ },
+ selectVolt() {
+ this.unit = 'Вольтаж';
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.tables-container {
+ display: flex;
+ flex-flow: row nowrap;
+ margin: 16px 32px;
+ gap: 24px;
+}
+
+.server-table {
+ width: 35%;
+}
+
+.events-table {
+ width: 65%;
+}
+
+#events-table-wrapper div {
+ overflow-y: overlay;
+ overflow-x: hidden;
+ &::-webkit-scrollbar {
+ position: absolute;
+ width: 10px;
+ }
+ &::-webkit-scrollbar-thumb {
+ border: 4px solid transparent;
+ border-top: 43px solid transparent;
+ background: $faint-secondary-primary-20;
+ border-radius: 16px;
+ background-clip: content-box;
+ }
+}
+
+.row-details {
+ display: block;
+ height: auto;
+ width: 30vw;
+}
+
+.errors {
+ color: $indicators-errors !important;
+}
+
+.warning {
+ color: $indicators-warning !important;
+}
+
+.information {
+ color: $indicators-complementary !important;
+}
+
+.indicators-container {
+ margin-left: 2rem;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.indicators-units {
+ margin-left: auto;
+}
+
+.units__icon {
+ margin: 0 32px 0 5px;
+ cursor: pointer;
+}
+
+.units-label {
+ cursor: pointer;
+ color: $red-brand-primary;
+}
+</style>
diff --git a/src/views/_sila/SILA/AnalyticalPanel/PowerTable.vue b/src/views/_sila/SILA/AnalyticalPanel/PowerTable.vue
new file mode 100644
index 00000000..27bb4efa
--- /dev/null
+++ b/src/views/_sila/SILA/AnalyticalPanel/PowerTable.vue
@@ -0,0 +1,82 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'areaspline',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(6, this.timeScale),
+ title: null,
+ labels: {
+ step: 1,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(2.5, 'A'),
+ min: 0,
+ max: 4,
+ title: null,
+ tickInterval: 1,
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ series: Series['power'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ areaspline: {
+ fillOpacity: 0,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/SILA/AnalyticalPanel/TemperatureTable.vue b/src/views/_sila/SILA/AnalyticalPanel/TemperatureTable.vue
new file mode 100644
index 00000000..ae52062a
--- /dev/null
+++ b/src/views/_sila/SILA/AnalyticalPanel/TemperatureTable.vue
@@ -0,0 +1,115 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'areaspline',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ areaspline: {
+ fillOpacity: 0,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/SILA/AnalyticalPanel/helpers.js b/src/views/_sila/SILA/AnalyticalPanel/helpers.js
new file mode 100644
index 00000000..d1ffd728
--- /dev/null
+++ b/src/views/_sila/SILA/AnalyticalPanel/helpers.js
@@ -0,0 +1,196 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ power: [
+ {
+ name: 'Sean',
+ data: [1, 1, 2.7, 0.5, 0.2, 1],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [0.4, 0.3, 1, 1.4, 2, 0.4],
+ color: '#F18638',
+ },
+ {
+ name: 'Brendan',
+ data: [0.5, 2.5, 1, 0.4, 1, 3],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${i}0`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [];
+ for (let i = 0; i < count; i += 0.5) {
+ arr.push(`${i} ${desc}`);
+ }
+ return arr;
+};
+
+export const AccessoryData = {
+ power: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Наименование',
+ },
+ {
+ key: 'power',
+ label: 'Текущее значение тока, А',
+ },
+ ],
+ items: [
+ {
+ name: 'Источникк питания 1',
+ power: '1,3 A',
+ },
+ {
+ name: 'Источникк питания 2',
+ power: '1,8 A',
+ },
+ {
+ name: 'Источникк питания 3',
+ power: '1,6 A',
+ },
+ ],
+ },
+};
+
+export const ServerItems = [
+ { param: 'Сервер №1', value: true },
+ { param: 'ВМС', value: true },
+ { param: 'Аналитическая панель', value: true },
+ { param: 'RAID-контроллеры', value: false },
+ { param: 'Модули памяти', value: true },
+ { param: 'Процессоры', value: true },
+ { param: 'Источники питания', value: true },
+ { param: 'Вентиляторы', value: true },
+ { param: 'Физические накопители', value: true },
+ { param: 'Виртуальные накопители', value: true },
+ { param: 'Материнская плата', value: true },
+ { param: 'Сетевые адаптеры', value: true },
+ { param: 'PCI устройства', value: true },
+];
+
+export const EventsItems = [
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+ {
+ date: '23.11.2021 в 13.36',
+ type: 'Критические',
+ description: {
+ name: 'Имя источника событий',
+ description: 'Краткое описание ошибки или сообщени....',
+ },
+ },
+];
diff --git a/src/views/_sila/SILA/AnalyticalPanel/index.js b/src/views/_sila/SILA/AnalyticalPanel/index.js
new file mode 100644
index 00000000..7da2938e
--- /dev/null
+++ b/src/views/_sila/SILA/AnalyticalPanel/index.js
@@ -0,0 +1,2 @@
+import AnalyticalPanelPage from './AnalyticalPanelPage.vue';
+export default AnalyticalPanelPage;
diff --git a/src/views/_sila/SILA/NetworkAdapters/Dynamic/NetworkDynamicPage.vue b/src/views/_sila/SILA/NetworkAdapters/Dynamic/NetworkDynamicPage.vue
new file mode 100644
index 00000000..3745a71f
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/Dynamic/NetworkDynamicPage.vue
@@ -0,0 +1,135 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.analyticalPanel')" />
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.temperatureWarning')
+ }}</span>
+ <b-form-input
+ v-model="temperatureWarningInput"
+ type="number"
+ :min="0"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateTemperature"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Temperature Table -->
+ <temperature-table
+ :time-scale="timeScale"
+ :warning="temperatureWarning"
+ :non-normal="temperatureNonNormal"
+ :critical-start="temperatureCriticalStart"
+ />
+ <accessory-table :records="accessoryData.temperatureTable" />
+ </b-container>
+</template>
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import TemperatureTable from './TemperatureTable';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTableWithLabel';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+import { AccessoryData } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ DateSwitch,
+ TemperatureTable,
+ AccessoryTable,
+ },
+ data() {
+ return {
+ timeScale: 'hour',
+ temperatureWarning: 72,
+ temperatureWarningInput: 72,
+ notificationInput: 42,
+ accessoryData: AccessoryData,
+ iconChevronUp: iconChevronUp,
+ };
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateTemperature() {
+ this.temperatureWarning = +this.temperatureWarningInput;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+.nav-item {
+ list-style-type: none;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+
+.notification-button {
+ border: none;
+ background: none;
+}
+
+.semi-bold-12px {
+ z-index: 1001;
+}
+
+// temperature limit comtainer
+.limit-container {
+ height: 85px;
+ width: 100%;
+ padding: 0 32px 10px 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.trmperature-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 270px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.form-control {
+ height: 36px;
+ &.non-normal {
+ width: 125px;
+ }
+}
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+</style>
diff --git a/src/views/_sila/SILA/NetworkAdapters/Dynamic/TemperatureTable.vue b/src/views/_sila/SILA/NetworkAdapters/Dynamic/TemperatureTable.vue
new file mode 100644
index 00000000..1bbf7e08
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/Dynamic/TemperatureTable.vue
@@ -0,0 +1,112 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/SILA/NetworkAdapters/Dynamic/helpers.js b/src/views/_sila/SILA/NetworkAdapters/Dynamic/helpers.js
new file mode 100644
index 00000000..65046d01
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/Dynamic/helpers.js
@@ -0,0 +1,356 @@
+export const colors = ['#CB32F1', '#F18638', '#139BB9', '#E1AB17'];
+
+export const Series = {
+ temperature: [
+ {
+ name: 'Sean',
+ data: [
+ 7,
+ 7,
+ 7,
+ 17,
+ 7,
+ 27,
+ 7,
+ 7,
+ 47,
+ 7,
+ 7,
+ 7,
+ 37,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 47,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 27,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 37,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ 7,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 20,
+ 10,
+ 10,
+ 30,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 50,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 20,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 30,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 19,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 13,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 33,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 43,
+ 13,
+ 13,
+ 63,
+ 13,
+ 43,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ ],
+ color: '#139BB9',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 24,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 34,
+ 14,
+ 14,
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 34,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 84,
+ 14,
+ 94,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 44,
+ 14,
+ 44,
+ 14,
+ 14,
+ 44,
+ 14,
+ ],
+ color: '#E1AB17',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [...new Array(count)].map((i, k) => `${k} ${desc}`);
+ return arr;
+};
+
+export const AccessoryData = {
+ temperatureTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentTemperature',
+ label: 'Текущее, С°',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, С°',
+ },
+ {
+ key: 'minTemperature',
+ label: 'Минимальное, С°',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'maxTemperature',
+ label: 'Максимальное, С°',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [
+ {
+ name: 'Приемопередитчик 1',
+ currentTemperature: 19,
+ middleTemperature: 40,
+ minTemperature: 31,
+ minDate: { time: '15:15', date: '11.11.2021' },
+ maxTemperature: 88,
+ maxDate: { time: '10:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Приемопередитчик 2',
+ currentTemperature: 29,
+ middleTemperature: 40,
+ minTemperature: 20,
+ minDate: { time: '15:45', date: '11.11.2021' },
+ maxTemperature: 76,
+ maxDate: { time: '16:59', date: '16.11.2021' },
+ },
+ {
+ name: 'Приемопередитчик 3',
+ currentTemperature: 48,
+ middleTemperature: 46,
+ minTemperature: 31,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 69,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Приемопередитчик 4',
+ currentTemperature: 48,
+ middleTemperature: 45,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 75,
+ maxDate: { time: '11:26', date: '16.11.2021' },
+ },
+ ],
+ },
+};
diff --git a/src/views/_sila/SILA/NetworkAdapters/Dynamic/index.js b/src/views/_sila/SILA/NetworkAdapters/Dynamic/index.js
new file mode 100644
index 00000000..081b5560
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/Dynamic/index.js
@@ -0,0 +1 @@
+export { default } from './NetworkDynamicPage.vue';
diff --git a/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/EthernetAdaptersPage.vue b/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/EthernetAdaptersPage.vue
new file mode 100644
index 00000000..62a4bcab
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/EthernetAdaptersPage.vue
@@ -0,0 +1,399 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.ethernetAdapters')" />
+ <data-tabs
+ :slots="adaptersSlots"
+ :switch-tab="switchAdapterSlot"
+ :current-tab="currentAdapterSlot"
+ :slot-width="85"
+ :slider-width="60"
+ style="margin-top: 16px"
+ />
+ <page-section class="bootstrap-table__section">
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('appNavigation.settings') }}</span>
+ <apply-settings-popover
+ :appaly-on-reload="appalyOnReload"
+ :appaly-option1="appalyOption1"
+ :appaly-option2="appalyOption2"
+ :apply-type="applyType"
+ />
+ <b-button variant="primary" class="apply-button">
+ {{ $t('global.action.acceptChanges') }}
+ </b-button>
+ </div>
+ <span class="bold-12px__caps">
+ {{ $t('pageNetwork.macAddress') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ >
+ <template #cell(value)="data">
+ <b-row>
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img
+ src="@/assets/images/icon-edit.svg"
+ class="icon-chevron icon-edit"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <span class="bold-12px__caps">
+ {{ $t('adapters.settings') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items_2"
+ :fields="fields"
+ >
+ <template #cell(value)="data">
+ <b-row v-if="data.index === 3" class="multiple-select-container">
+ <b-col v-if="selected.length" class="chip-column">
+ <b-row class="chip-container">
+ <div
+ v-for="item in selected"
+ :key="item.value"
+ class="custom-chip"
+ >
+ <span> {{ item.text }} </span>
+ <img
+ class="clear-icon"
+ src="@/assets/images/_sila/popups/x-icon.svg"
+ @click="optionRemove(item.value)"
+ />
+ </div>
+ </b-row>
+ </b-col>
+ <b-col v-else>
+ {{ 'Не выбрано ' }}
+ </b-col>
+ <b-col class="icon-container">
+ <b-button id="popover-boot" variant="toogle-popover">
+ <img :is="iconChevron" class="icon-chevron" />
+ </b-button>
+ <b-popover
+ placement="left"
+ triggers="focus"
+ :show.sync="show"
+ custom-class="boot-popover"
+ target="popover-boot"
+ >
+ <b-form-group
+ v-slot="{ ariaDescribedby }"
+ class="checkbox-group"
+ >
+ <b-form-checkbox-group
+ v-model="selected"
+ :options="options"
+ :aria-describedby="ariaDescribedby"
+ class="regular-14px checkbox-container"
+ stacked
+ ></b-form-checkbox-group>
+ </b-form-group>
+ </b-popover>
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>
+ {{ data.value ? 'Возможно' : 'Не возможно' }}
+ </span>
+ </b-col>
+ <b-col>
+ <img :is="iconChevron" class="icon-chevron icon-options" />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <span class="bold-12px__caps">
+ {{ $t('adapters.propherties') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items_3"
+ :fields="fields"
+ >
+ </b-table>
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('adapters.PXE') }}</span>
+ <apply-settings-popover
+ :id="2"
+ :appaly-on-reload="appalyOnReload"
+ :appaly-option1="appalyOption1"
+ :appaly-option2="appalyOption2"
+ :apply-type="applyType"
+ />
+ </div>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items_4"
+ :fields="fields"
+ >
+ <template #cell(value)="data">
+ <b-row class="flex-row">
+ <b-col>
+ <span>
+ {{ data.value ? 'Включено' : 'Выключено' }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-form-checkbox v-model="items_4[data.index].value" switch>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('adapters.links') }}</span>
+ </div>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items_5"
+ :fields="fields"
+ >
+ </b-table>
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('adapters.transceivers') }}</span>
+ </div>
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items_6"
+ :fields="fields_2"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ <div class="microcode-container">
+ <span class="bold-16px">{{
+ $t('SystemDescription.microcodeAdapter')
+ }}</span>
+ <popover
+ id="popover-reactive-1"
+ description="adapters.microcodeUpdate"
+ popup="adapters.microcodeUpdate_popup"
+ button="global.action.refresh"
+ :is-microcode-drivers="true"
+ />
+ </div>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import Popover from '@/components/Global/Popover';
+import ApplySettingsPopover from '@/components/Global/SilaComponents/ApplySettingsPopover';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+import { items, items_2, items_3, items_4, items_5, items_6 } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ DataTabs,
+ Popover,
+ ApplySettingsPopover,
+ },
+ data() {
+ return {
+ items,
+ items_2,
+ items_3,
+ items_4,
+ items_5,
+ items_6,
+ iconChevron,
+ selected: [],
+ show: false,
+ options: [
+ { text: 'PXE', value: { text: 'PXE', value: 'pxe' } },
+ { text: 'ISCSI-PXE', value: { text: 'ISCSI-PXE', value: 'iscsi-pxe' } },
+ { text: 'ISCSI', value: { text: 'ISCSI', value: 'iscsi' } },
+ { text: 'PXE2', value: { text: 'PXE2', value: 'pxe2' } },
+ { text: 'ISCSI 2', value: { text: 'ISCSI 2', value: 'iscsi2' } },
+ {
+ text: 'ISCSI-PXE 2',
+ value: { text: 'ISCSI-PXE 2', value: 'iscsi-pxe2' },
+ },
+ ],
+ applyType: 'reload',
+ currentAdapterSlot: 1,
+ adaptersSlots: [
+ { id: 1, name: 'Адаптер 1' },
+ { id: 2, name: 'Адаптер 2' },
+ { id: 3, name: 'Адаптер 3' },
+ ],
+ fields: [
+ {
+ key: 'param',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'value',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ ],
+ fields_2: [
+ {
+ key: 'name',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'model',
+ label: 'Модель',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'number',
+ label: 'Серийный номер',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'type',
+ label: 'Тип устройства',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'firmware',
+ label: 'Прошивка',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'status',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ },
+ ],
+ };
+ },
+ methods: {
+ switchAdapterSlot(period) {
+ this.currentAdapterSlot = period;
+ },
+ appalyOnReload() {
+ this.applyType = 'reload';
+ },
+ appalyOption1() {
+ this.applyType = 'option1';
+ },
+ appalyOption2() {
+ this.applyType = 'option2';
+ },
+ optionRemove(value) {
+ this.selected.splice(
+ this.selected.findIndex((el) => el.value === value),
+ 1
+ );
+ console.log(value);
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.settings-container {
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.apply-button {
+ width: 245px;
+ height: 36px;
+}
+
+.microcode-container {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+}
+
+.bold-12px__caps {
+ display: block;
+ margin: 20px 0 8px 0;
+}
+
+.flex-row {
+ align-items: center;
+}
+
+.multiple-select-container {
+ justify-content: flex-end;
+}
+
+.chip-column {
+ padding-right: 0px;
+}
+
+.chip-container {
+ margin-left: -5px;
+}
+
+.custom-chip {
+ display: flex;
+ align-items: center;
+ height: 24px;
+ margin: 2px 3px;
+ padding: 0 10px;
+ background-color: $faint-secondary-primary-10;
+ border-radius: 94px;
+}
+
+.icon-container {
+ flex-grow: 0;
+ padding: 0px;
+ margin: 0 11px 0 5px;
+}
+
+.clear-icon {
+ width: 10px;
+ margin-left: 6px;
+ cursor: pointer;
+}
+
+.checkbox-group {
+ margin: 0;
+}
+
+.checkbox-container {
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap;
+ gap: 7px;
+}
+</style>
diff --git a/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/helpers.js b/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/helpers.js
new file mode 100644
index 00000000..918f5b4e
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/helpers.js
@@ -0,0 +1,99 @@
+export const items = [
+ {
+ param: 'MAC адрес',
+ value: 'D0:94:66:2A:77:33',
+ },
+ {
+ param: 'Виртуальный MAC адрес',
+ value: 'D0:94:66:2A:77:33',
+ },
+];
+export const items_2 = [
+ {
+ param: 'Пробуждение по локальной сети',
+ value: true,
+ },
+ {
+ param: 'Менеджмент проходит через',
+ value: true,
+ },
+ {
+ param: 'Энергоэффективный Ethernet',
+ value: true,
+ },
+ {
+ param: 'Поддерживаемый boot протокол',
+ value: true,
+ },
+ {
+ param: 'Способность политики сохранения',
+ value: true,
+ },
+];
+export const items_3 = [
+ {
+ param: 'Версия прошивки',
+ value: '20.6.6.2',
+ },
+ {
+ param: 'Версия драйвера',
+ value: '3.134',
+ },
+ {
+ param: 'PCI device ID',
+ value: '165F',
+ },
+];
+
+export const items_4 = [
+ {
+ param: 'Встроенные порты PXE',
+ value: true,
+ },
+];
+
+export const items_5 = [
+ {
+ param: 'Статус',
+ value: 'Подключено',
+ },
+ {
+ param: 'Скорость',
+ value: '1000 Mbps',
+ },
+];
+
+export const items_6 = [
+ {
+ name: 'Приемопередатчик 1',
+ model: 'A0507',
+ number: '789578456698',
+ type: 'Плата',
+ firmware: 'v 21.6.0',
+ status: 'Link',
+ },
+ {
+ name: 'Приемопередатчик 2',
+ model: 'A0507',
+ number: '543636577755',
+ type: 'Плата',
+ firmware: 'v 21.6.0',
+ status: 'Receiver Signal Averange Optical Power',
+ },
+ {
+ name: 'Приемопередатчик 3',
+ model: 'A0408',
+ number: '789578456698',
+ type: 'Плата',
+ firmware: 'v 21.6.0',
+ status: 'Laser Output Power',
+ },
+ {
+ name: 'Приемопередатчик 4',
+ model: 'A0408',
+ number: '123456789087',
+ type: 'Плата',
+ firmware: 'v 21.6.0',
+ status: 'Laser Output Power',
+ },
+];
diff --git a/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/index.js b/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/index.js
new file mode 100644
index 00000000..47f49789
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/EthernetAdapters/index.js
@@ -0,0 +1 @@
+export { default } from './EthernetAdaptersPage.vue';
diff --git a/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/FcHbaAdaptersPage.vue b/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/FcHbaAdaptersPage.vue
new file mode 100644
index 00000000..9ccc0509
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/FcHbaAdaptersPage.vue
@@ -0,0 +1,211 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.fcHbaAdapters')" />
+ <data-tabs
+ :slots="adaptersSlots"
+ :switch-tab="switchAdapterSlot"
+ :current-tab="currentAdapterSlot"
+ :slot-width="85"
+ :slider-width="60"
+ style="margin-top: 16px"
+ />
+ <page-section class="bootstrap-table__section">
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('appNavigation.settings') }}</span>
+ <apply-settings-popover
+ :appaly-on-reload="appalyOnReload"
+ :appaly-option1="appalyOption1"
+ :appaly-option2="appalyOption2"
+ :apply-type="applyType"
+ />
+ <b-button variant="primary" class="apply-button">
+ {{ $t('global.action.acceptChanges') }}
+ </b-button>
+ </div>
+ <span class="bold-12px__caps">
+ {{ $t('adapters.wwnAddres') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ >
+ <template #cell(value)="data">
+ <b-row>
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img
+ src="@/assets/images/icon-edit.svg"
+ class="icon-chevron icon-edit"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <span class="bold-12px__caps">
+ {{ $t('adapters.settings') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items_2"
+ :fields="fields"
+ >
+ <template #cell(value)="data">
+ <b-row v-if="data.index === 0 || data.index === 3">
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ </b-row>
+ <b-row v-else-if="data.index === 4">
+ <b-col>
+ <span>
+ {{ data.value ? 'Включено' : 'Выключено' }}
+ </span>
+ </b-col>
+ <b-col>
+ <img :is="iconChevron" class="icon-chevron icon-options" />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img :is="iconChevron" class="icon-chevron icon-options" />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <span class="bold-12px__caps">
+ {{ $t('adapters.propherties') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ no-border-collapse
+ :items="items_3"
+ :fields="fields"
+ >
+ </b-table>
+ <div class="microcode-container">
+ <span class="bold-16px">{{
+ $t('SystemDescription.microcodeAdapter')
+ }}</span>
+ <popover
+ id="popover-reactive-1"
+ description="adapters.microcodeUpdate"
+ popup="adapters.microcodeUpdate_popup"
+ button="global.action.refresh"
+ :is-microcode-drivers="true"
+ />
+ </div>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import Popover from '@/components/Global/Popover';
+import ApplySettingsPopover from '@/components/Global/SilaComponents/ApplySettingsPopover';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+import { items, items_2, items_3 } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ DataTabs,
+ Popover,
+ ApplySettingsPopover,
+ },
+ data() {
+ return {
+ items,
+ items_2,
+ items_3,
+ iconChevron,
+ applyType: 'reload',
+ currentAdapterSlot: 1,
+ adaptersSlots: [
+ { id: 1, name: 'Адаптер 1' },
+ { id: 2, name: 'Адаптер 2' },
+ { id: 3, name: 'Адаптер 3' },
+ ],
+ fields: [
+ {
+ key: 'param',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'value',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ ],
+ };
+ },
+ methods: {
+ switchAdapterSlot(period) {
+ this.currentAdapterSlot = period;
+ },
+ appalyOnReload() {
+ this.applyType = 'reload';
+ },
+ appalyOption1() {
+ this.applyType = 'option1';
+ },
+ appalyOption2() {
+ this.applyType = 'option2';
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.settings-container {
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.apply-button {
+ width: 245px;
+ height: 36px;
+}
+
+.microcode-container {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+}
+
+.bold-12px__caps {
+ display: block;
+ margin: 20px 0 8px 0;
+}
+</style>
diff --git a/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/helpers.js b/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/helpers.js
new file mode 100644
index 00000000..a2ace22f
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/helpers.js
@@ -0,0 +1,42 @@
+export const items = [
+ {
+ param: 'WWN адрес',
+ value: 'D0:94:66:2A:77:33',
+ },
+];
+export const items_2 = [
+ {
+ param: 'Boot WWPN',
+ value: 'Имя порта контроллера (WWPN)',
+ },
+ {
+ param: 'Select Boot Enable',
+ value: 'Boot Lun',
+ },
+ {
+ param: 'Boot LUN',
+ value: 'Том 1',
+ },
+ {
+ param: 'WWPN',
+ value: 'Имя порта HBA (WWPN)',
+ },
+ {
+ param: 'Host Adapter Bios Enable',
+ value: false,
+ },
+];
+export const items_3 = [
+ {
+ param: 'Версия прошивки',
+ value: '20.6.6.2',
+ },
+ {
+ param: 'Версия драйвера',
+ value: '3.134',
+ },
+ {
+ param: 'PCI device ID',
+ value: '165F',
+ },
+];
diff --git a/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/index.js b/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/index.js
new file mode 100644
index 00000000..8f5636c3
--- /dev/null
+++ b/src/views/_sila/SILA/NetworkAdapters/FcHbaAdapters/index.js
@@ -0,0 +1 @@
+export { default } from './FcHbaAdaptersPage.vue';
diff --git a/src/views/_sila/SILA/PciDevices/PciDevicesPage.vue b/src/views/_sila/SILA/PciDevices/PciDevicesPage.vue
new file mode 100644
index 00000000..3bc45ca2
--- /dev/null
+++ b/src/views/_sila/SILA/PciDevices/PciDevicesPage.vue
@@ -0,0 +1,115 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title />
+ <page-section
+ :section-title="$t('appNavigation.pciDevicesTitle')"
+ class="bootstrap-table__section"
+ >
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(status)>
+ <b-row>
+ <b-col>
+ <img src="@/assets/images/status/on.svg" class="icon-chevron" />
+ <span>
+ {{ 'Работоспособен' }}
+ </span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+
+export default {
+ components: { PageTitle, PageSection },
+ data() {
+ return {
+ fields: [
+ {
+ key: 'status',
+ label: 'Статус',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'name',
+ label: 'Имя',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'type',
+ label: 'Тип устройства',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'model',
+ label: 'Модель',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'serial_number',
+ label: 'Серийный номер',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'producer',
+ label: 'Производитель',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ status: true,
+ name: 'PCI-устройство 1',
+ type: 'Плата',
+ model: 'A0407',
+ serial_number: '789578456698',
+ producer: 'ASUS',
+ },
+ {
+ status: true,
+ name: 'PCI-устройство 2',
+ type: 'Плата',
+ model: 'A4897',
+ serial_number: '758496877563',
+ producer: 'ASUS',
+ },
+ {
+ status: true,
+ name: 'PCI-устройство 3',
+ type: 'Плата',
+ model: 'A0147',
+ serial_number: '247856889654',
+ producer: 'ASUS',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchMemorySlot(period) {
+ this.currentMemorySlot = period;
+ },
+ redirectDrivers() {
+ this.$router.push('/drivers-static');
+ },
+ redirectVirtual() {
+ this.$router.push('/virtual-drivers');
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/SILA/PciDevices/index.js b/src/views/_sila/SILA/PciDevices/index.js
new file mode 100644
index 00000000..20092914
--- /dev/null
+++ b/src/views/_sila/SILA/PciDevices/index.js
@@ -0,0 +1 @@
+export { default } from './PciDevicesPage.vue';
diff --git a/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/DriversDynamicPage.vue b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/DriversDynamicPage.vue
new file mode 100644
index 00000000..fadbf2b2
--- /dev/null
+++ b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/DriversDynamicPage.vue
@@ -0,0 +1,204 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.dynamicInformation')" />
+ <div class="notification__container">
+ <span class="semi-bold-12px">{{
+ $t('global.ariaLabel.notificationTime')
+ }}</span>
+ <div class="form-control notification">
+ <b-form-input
+ v-model="notificationInput"
+ type="number"
+ class="notification__input"
+ >
+ </b-form-input>
+ <button class="notification_button">
+ <img class="notification__icon" src="@/assets/images/refresh.svg" />
+ </button>
+ </div>
+ </div>
+ <date-switch :switch-time-scale="switchTimeScale" :time-scale="timeScale" />
+ <div class="limit-container">
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/non-normal.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.nonNormalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureNonNormalInput"
+ type="number"
+ :min="0"
+ :max="temperatureCritical"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/critical.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.criticalMode')
+ }}</span>
+ <b-form-input
+ v-model="temperatureCritical"
+ type="number"
+ :min="temperatureNonNormalInput"
+ :max="temperatureWarningInput"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <div class="trmperature-limt">
+ <img src="@/assets/images/labels/warning.svg" />
+ <span class="semi-bold-12px">{{
+ $t('tablesDescription.temperatureWarning')
+ }}</span>
+ <b-form-input
+ v-model="temperatureWarningInput"
+ type="number"
+ :min="temperatureCritical"
+ :max="100"
+ class="form-control medium-12px"
+ >
+ </b-form-input>
+ </div>
+ <b-button
+ class="save-button"
+ variant="primary"
+ @click="updateTemperatureLimits"
+ >
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ <!-- Temperature Table -->
+ <temperature-table
+ :time-scale="timeScale"
+ :warning="temperatureWarning"
+ :non-normal="temperatureNonNormal"
+ :critical-start="temperatureCriticalStart"
+ />
+ <accessory-table-drivers :records="accessoryData.table" />
+ <accessory-table :records="accessoryData.temperatureTable" />
+ </b-container>
+</template>
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import DateSwitch from '@/components/Global/SilaComponents/DateSwitch';
+import TemperatureTable from './TemperatureTable';
+import AccessoryTable from '@/components/Global/SilaComponents/Tables/AccessoryTable';
+import AccessoryTableDrivers from '@/components/Global/SilaComponents/Tables/AccessoryTableDrivers';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+import { AccessoryData } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ DateSwitch,
+ TemperatureTable,
+ AccessoryTable,
+ AccessoryTableDrivers,
+ },
+ data() {
+ return {
+ timeScale: 'hour',
+ temperatureWarning: 72,
+ temperatureWarningInput: 72,
+ temperatureNonNormal: 44,
+ temperatureNonNormalInput: 44,
+ temperatureCriticalStart: 55,
+ temperatureCritical: 55,
+ notificationInput: 42,
+ accessoryData: AccessoryData,
+ iconChevronUp: iconChevronUp,
+ };
+ },
+ methods: {
+ switchTimeScale(period) {
+ this.timeScale = period;
+ },
+ updateTemperatureLimits() {
+ this.temperatureWarning = +this.temperatureWarningInput;
+ this.temperatureNonNormal = +this.temperatureNonNormalInput;
+ this.temperatureCriticalStart = +this.temperatureCritical;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.notification__container {
+ position: absolute;
+ top: calc(#{$header-height});
+ right: 0px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.notification {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ border: none;
+ box-shadow: none;
+ border-radius: 8px;
+ margin: 12px 32px 12px 8px;
+ width: 236px;
+ height: 40px;
+ z-index: 1001;
+}
+
+.notification__icon {
+ width: 20px;
+ height: 20px;
+}
+
+.notification__input {
+ border: none;
+ background: none;
+ box-shadow: none;
+}
+
+.notification_button {
+ border: none;
+ background: none;
+}
+
+.semi-bold-12px {
+ z-index: 1001;
+}
+
+// temperature limit comtainer
+.limit-container {
+ height: 85px;
+ width: 100%;
+ padding: 0 32px 10px 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: flex-end;
+ gap: 24px;
+}
+
+.trmperature-limt {
+ height: 60px;
+ width: 100%;
+ max-width: 270px;
+ display: flex;
+ align-items: baseline;
+ flex-flow: row wrap;
+ gap: 8px;
+}
+
+.form-control {
+ height: 36px;
+}
+.save-button {
+ width: 151px;
+ height: 36px;
+}
+</style>
diff --git a/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/TemperatureTable.vue b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/TemperatureTable.vue
new file mode 100644
index 00000000..f9c149c3
--- /dev/null
+++ b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/TemperatureTable.vue
@@ -0,0 +1,126 @@
+<template>
+ <div>
+ <highcharts :options="chartOptions.line" />
+ </div>
+</template>
+
+<script>
+import { setTime, Series, setCategories } from './helpers';
+import { Chart } from 'highcharts-vue';
+
+export default {
+ components: {
+ highcharts: Chart,
+ },
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ warning: {
+ type: Number,
+ default: 70,
+ },
+ nonNormal: {
+ type: Number,
+ default: 70,
+ },
+ criticalStart: {
+ type: Number,
+ default: 70,
+ },
+ },
+ computed: {
+ chartOptions() {
+ return {
+ line: {
+ chart: {
+ type: 'line',
+ margin: [12, 50, 32, 60],
+ height: '320px',
+ },
+ title: null,
+ xAxis: {
+ categories: setTime(60, 'hour'),
+ title: null,
+ labels: {
+ step: 6,
+ },
+ minorGridLineColor: '#1A3E5B1A',
+ },
+ yAxis: {
+ categories: setCategories(101, 'С°'),
+ min: 0,
+ max: 100,
+ title: null,
+ minTickInterval: 25,
+ minorGridLineColor: '#1A3E5B1A',
+ plotLines: [
+ {
+ color: '#E11717',
+ dashStyle: 'solid',
+ value: this.warning,
+ zIndex: '1000',
+ width: 2,
+ label: {
+ text: 'Пороговое значение предупреждения, С°',
+ align: 'right',
+ style: {
+ fontFamily: 'Inter, sans-serif',
+ fontSize: '12px',
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: '16px',
+ color: '#0C1C2999',
+ },
+ },
+ },
+ ],
+ plotBands: [
+ {
+ color: '#F0AC0C1A',
+ dashStyle: 'solid',
+ from: this.nonNormal,
+ to: this.criticalStart,
+ },
+ {
+ color: '#FF41411A',
+ dashStyle: 'solid',
+ from: this.criticalStart,
+ to: this.warning,
+ },
+ ],
+ },
+ series: Series['temperature'].map((item) => ({
+ ...item,
+ marker: {
+ enabled: false,
+ },
+ })),
+ legend: {
+ enabled: false,
+ },
+ tooltip: {
+ enabled: false,
+ crosshairs: false,
+ },
+ plotOptions: {
+ series: {
+ showInLegend: true,
+ },
+ },
+ },
+ };
+ },
+ },
+};
+</script>
+<style lang="scss">
+.highcharts-credits {
+ display: none;
+}
+
+.highcharts-plot-line-label {
+ transform: translate(-15px, 0) !important;
+}
+</style>
diff --git a/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/helpers.js b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/helpers.js
new file mode 100644
index 00000000..9115f9e5
--- /dev/null
+++ b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/helpers.js
@@ -0,0 +1,564 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];
+
+export const Series = {
+ temperature: [
+ {
+ name: 'Sean',
+ data: [
+ 15,
+ 15,
+ 45,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 55,
+ 15,
+ 25,
+ 15,
+ 15,
+ 15,
+ 55,
+ 15,
+ 75,
+ 15,
+ 35,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 45,
+ 15,
+ 25,
+ 15,
+ 45,
+ 15,
+ 15,
+ 15,
+ 35,
+ 35,
+ 35,
+ 15,
+ 55,
+ 15,
+ 15,
+ 35,
+ 15,
+ 25,
+ 15,
+ 35,
+ 15,
+ ],
+ color: '#CB32F1',
+ },
+ {
+ name: 'Ivan',
+ data: [
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 12,
+ 12,
+ 72,
+ 12,
+ 52,
+ 12,
+ 62,
+ 12,
+ 72,
+ 12,
+ 12,
+ 12,
+ 12,
+ 42,
+ 12,
+ 12,
+ 52,
+ 12,
+ 42,
+ 12,
+ 12,
+ 62,
+ 12,
+ 12,
+ 12,
+ 22,
+ 12,
+ 42,
+ 12,
+ 62,
+ 12,
+ 12,
+ 32,
+ 12,
+ 12,
+ 12,
+ 52,
+ 12,
+ 32,
+ 12,
+ 22,
+ 12,
+ 12,
+ 12,
+ ],
+ color: '#175AE1',
+ },
+ {
+ name: 'Brendan',
+ data: [
+ 13,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 33,
+ 13,
+ 63,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 43,
+ 13,
+ 13,
+ 63,
+ 13,
+ 13,
+ 13,
+ 23,
+ 13,
+ 43,
+ 13,
+ 63,
+ 13,
+ 13,
+ 13,
+ 53,
+ 13,
+ 53,
+ ],
+ color: '#B98D13',
+ },
+ {
+ name: 'Matteo',
+ data: [
+ 24,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 64,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 14,
+ 34,
+ 14,
+ 24,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 84,
+ 14,
+ 14,
+ 14,
+ 54,
+ 14,
+ 14,
+ 14,
+ 44,
+ 14,
+ 44,
+ 64,
+ 14,
+ 44,
+ 14,
+ ],
+ color: '#13B937',
+ },
+ {
+ name: 'Joan',
+ data: [
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 36,
+ 16,
+ 26,
+ 16,
+ 36,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 26,
+ 16,
+ 46,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 96,
+ 16,
+ 16,
+ 16,
+ 56,
+ 16,
+ 16,
+ 16,
+ 46,
+ 16,
+ ],
+ color: '#F18638',
+ },
+ {
+ name: 'Avinash',
+ data: [
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 69,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 19,
+ 39,
+ 19,
+ 29,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 49,
+ 19,
+ 19,
+ 19,
+ 59,
+ 19,
+ 29,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ ],
+ color: '#139BB9',
+ },
+ ],
+};
+
+export const setTime = (count) => {
+ const arr = [...new Array(count)].map(() => '');
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = `15:${String(i).padStart(2, '0')}`;
+ }
+ return arr;
+};
+
+export const setCategories = (count, desc) => {
+ const arr = [...new Array(count)].map((i, k) => `${k} ${desc}`);
+ return arr;
+};
+
+export const AccessoryData = {
+ temperatureTable: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ },
+ {
+ key: 'currentTemperature',
+ label: 'Текущее, С°',
+ },
+ {
+ key: 'middleTemperature',
+ label: 'Среднее, С°',
+ },
+ {
+ key: 'minTemperature',
+ label: 'Минимальное, С°',
+ },
+ {
+ key: 'minDate',
+ label: 'Дата минимального',
+ },
+ {
+ key: 'maxTemperature',
+ label: 'Максимальное, С°',
+ },
+ {
+ key: 'maxDate',
+ label: 'Дата максимального',
+ },
+ ],
+ items: [
+ {
+ name: 'Накопитель 1',
+ currentTemperature: 19,
+ middleTemperature: 40,
+ minTemperature: 31,
+ minDate: { time: '15:15', date: '11.11.2021' },
+ maxTemperature: 88,
+ maxDate: { time: '10:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Накопитель 2',
+ currentTemperature: 29,
+ middleTemperature: 40,
+ minTemperature: 20,
+ minDate: { time: '15:45', date: '11.11.2021' },
+ maxTemperature: 76,
+ maxDate: { time: '16:59', date: '16.11.2021' },
+ },
+ {
+ name: 'Накопитель 3',
+ currentTemperature: 48,
+ middleTemperature: 46,
+ minTemperature: 31,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 69,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ {
+ name: 'Накопитель 4',
+ currentTemperature: 48,
+ middleTemperature: 45,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 75,
+ maxDate: { time: '11:26', date: '16.11.2021' },
+ },
+ {
+ name: 'Накопитель 5',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 30,
+ minDate: { time: '15:23', date: '11.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '17.11.2021' },
+ },
+ {
+ name: 'Накопитель 6',
+ currentTemperature: 39,
+ middleTemperature: 44,
+ minTemperature: 5,
+ minDate: { time: '16:45', date: '25.11.2021' },
+ maxTemperature: 80,
+ maxDate: { time: '15:26', date: '15.11.2021' },
+ },
+ ],
+ },
+ table: {
+ fields: [
+ {
+ key: 'name',
+ label: 'Имя модуля',
+ thStyle: { width: '34%' },
+ },
+ {
+ key: 'SMART',
+ label: 'Текущие значения атрибутов SMART',
+ thStyle: { width: '32%' },
+ },
+ {
+ key: 'resource',
+ label: 'Оставшийся ресурс для SSD, Мб',
+ thStyle: { width: '39%' },
+ },
+ ],
+ items: [
+ {
+ name: 'Накопитель 1',
+ SMART: 88,
+ resource: '1 024 000',
+ },
+ {
+ name: 'Накопитель 2',
+ SMART: 76,
+ resource: '512 000',
+ },
+ {
+ name: 'Накопитель 3',
+ SMART: 69,
+ resource: '256 000',
+ },
+ {
+ name: 'Накопитель 4',
+ SMART: 75,
+ resource: '128 000',
+ },
+ {
+ name: 'Накопитель 5',
+ SMART: 69,
+ resource: '256 000',
+ },
+ {
+ name: 'Накопитель 6',
+ SMART: 75,
+ resource: '128 000',
+ },
+ ],
+ },
+};
diff --git a/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/index.js b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/index.js
new file mode 100644
index 00000000..ed9033ab
--- /dev/null
+++ b/src/views/_sila/SILA/PhysicalDrivers/DynamicInfo/index.js
@@ -0,0 +1 @@
+export { default } from './DriversDynamicPage.vue';
diff --git a/src/views/_sila/SILA/PhysicalDrivers/StaticInfo/DriversStaticPage.vue b/src/views/_sila/SILA/PhysicalDrivers/StaticInfo/DriversStaticPage.vue
new file mode 100644
index 00000000..d6f31985
--- /dev/null
+++ b/src/views/_sila/SILA/PhysicalDrivers/StaticInfo/DriversStaticPage.vue
@@ -0,0 +1,133 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.statisticInformation')" />
+ <page-section class="bootstrap-table__section info_section">
+ <span class="bold-16px">{{ $t('global.table.info') }}</span>
+ </page-section>
+ <data-tabs
+ :slots="memorySlots"
+ :switch-tab="switchMemorySlot"
+ :current-tab="currentMemorySlot"
+ :slot-width="100"
+ :slider-width="81"
+ />
+ <page-section class="bootstrap-table__section info_section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ <div class="microcode-container">
+ <span class="bold-16px">{{
+ $t('SystemDescription.microcodeDrivers')
+ }}</span>
+ <popover
+ id="popover-reactive-1"
+ description="SystemDescription.reloadMicrocodeDrivers"
+ popup="SystemDescription.reloadMicrocodeDrivers"
+ button="global.action.refresh"
+ :is-microcode-drivers="true"
+ />
+ </div>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+import Popover from '@/components/Global/Popover';
+
+export default {
+ components: { PageTitle, PageSection, DataTabs, Popover },
+ data() {
+ return {
+ currentMemorySlot: 1,
+ memorySlots: [
+ { id: 1, name: 'Накопитель 1' },
+ { id: 2, name: 'Накопитель 2' },
+ { id: 3, name: 'Накопитель 3' },
+ { id: 4, name: 'Накопитель 4' },
+ { id: 5, name: 'Накопитель 5' },
+ { id: 6, name: 'Накопитель 6' },
+ { id: 7, name: 'Накопитель 7' },
+ { id: 8, name: 'Накопитель 8' },
+ { id: 9, name: 'Накопитель 9' },
+ { id: 10, name: 'Накопитель 10' },
+ { id: 11, name: 'Накопитель 11' },
+ { id: 12, name: 'Накопитель 12' },
+ { id: 13, name: 'Накопитель 13' },
+ { id: 14, name: 'Накопитель 14' },
+ { id: 15, name: 'Накопитель 15' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ parametr: 'Протокол',
+ value: '4590',
+ },
+ {
+ parametr: 'Номинальная ёмкость',
+ value: '1 024 000 Мб',
+ },
+ {
+ parametr: 'Номинальная скорость вращения HDD',
+ value: '2000 об./мин.',
+ },
+ {
+ parametr: 'Номинальный ресурс для SDD',
+ value: '10 000',
+ },
+ {
+ parametr: 'Слот в бэкплейне или номер порта',
+ value: '25',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchMemorySlot(period) {
+ this.currentMemorySlot = period;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.info_section {
+ margin-bottom: 0px;
+}
+
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.microcode-container {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/_sila/SILA/PhysicalDrivers/StaticInfo/index.js b/src/views/_sila/SILA/PhysicalDrivers/StaticInfo/index.js
new file mode 100644
index 00000000..2c06b5a2
--- /dev/null
+++ b/src/views/_sila/SILA/PhysicalDrivers/StaticInfo/index.js
@@ -0,0 +1 @@
+export { default } from './DriversStaticPage.vue';
diff --git a/src/views/_sila/SILA/RAID/Cache/RAIDCachePage.vue b/src/views/_sila/SILA/RAID/Cache/RAIDCachePage.vue
new file mode 100644
index 00000000..54efa48f
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Cache/RAIDCachePage.vue
@@ -0,0 +1,107 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('RAID.cache')" />
+ <data-tabs
+ :slots="raidSlots"
+ :switch-tab="switchRaidSlot"
+ :current-tab="currentRaidSlot"
+ :slot-width="100"
+ :slider-width="79"
+ style="margin-top: 16px"
+ />
+ <page-section class="bootstrap-table__section info_section">
+ <span class="bold-16px">{{ $t('RAID.cache_info') }}</span>
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+export default {
+ components: { PageTitle, PageSection, DataTabs },
+ data() {
+ return {
+ currentRaidSlot: 1,
+ raidSlots: [
+ { id: 1, name: 'Контроллер 1' },
+ { id: 2, name: 'Контроллер 2' },
+ { id: 3, name: 'Контроллер 3' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ parametr: 'Статус наличия',
+ value: 'Есть',
+ },
+ {
+ parametr: 'Текущее значение занятой емкости',
+ value: '1 024 000 Мб',
+ },
+ {
+ parametr: 'Текущее значение свободной емкости',
+ value: '1 004 256 Мб',
+ },
+ {
+ parametr: 'Статус наличия BBU',
+ value: 'Есть',
+ },
+ {
+ parametr: 'Статус наличия FBU',
+ value: 'Нет',
+ },
+ {
+ parametr: 'Состояние BBU',
+ value: 'Готов',
+ },
+ {
+ parametr: 'Состояние FBU',
+ value: 'Заряжается',
+ },
+ {
+ parametr: 'Номинальная емкость',
+ value: '1 004 256 Мб',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchRaidSlot(period) {
+ this.currentRaidSlot = period;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.bold-16px {
+ display: block;
+ margin: 0 0 16px 0;
+}
+</style>
diff --git a/src/views/_sila/SILA/RAID/Cache/index.js b/src/views/_sila/SILA/RAID/Cache/index.js
new file mode 100644
index 00000000..76acfcbe
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Cache/index.js
@@ -0,0 +1 @@
+export { default } from './RAIDCachePage.vue';
diff --git a/src/views/_sila/SILA/RAID/Settings/ActionSettingsPopover.vue b/src/views/_sila/SILA/RAID/Settings/ActionSettingsPopover.vue
new file mode 100644
index 00000000..2f3093ab
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Settings/ActionSettingsPopover.vue
@@ -0,0 +1,131 @@
+<template>
+ <b-popover
+ placement="left"
+ triggers="focus"
+ :show.sync="show"
+ custom-class="apply-reload-popover"
+ :target="`popover-action-${id}`"
+ @hidden="onHidden"
+ >
+ <b-button
+ id="popover-apply-button"
+ variant="popover"
+ :class="{ 'hovered-apply-button': scale === topPosition }"
+ @mouseover="scale = topPosition"
+ @click="
+ () => {
+ show = false;
+ appalyOnReload();
+ }
+ "
+ >
+ При перезагрузке
+ </b-button>
+ <b-button
+ id="popover-apply-button"
+ variant="popover"
+ :class="{ 'hovered-apply-button': scale === middlePosition }"
+ @mouseover="scale = middlePosition"
+ @click="
+ () => {
+ show = false;
+ appalyOption1();
+ }
+ "
+ >
+ Опция 1
+ </b-button>
+ <b-button
+ id="popover-apply-button"
+ variant="popover"
+ :class="{ 'hovered-apply-button': scale === bottomPosition }"
+ @mouseover="scale = bottomPosition"
+ @click="
+ () => {
+ show = false;
+ appalyOption2();
+ }
+ "
+ >
+ Опция 2
+ </b-button>
+ <div class="slider" :style="`left: 5px; top: ${scale}px;`"></div>
+ </b-popover>
+</template>
+
+<script>
+export default {
+ props: {
+ id: {
+ type: Number,
+ default: null,
+ },
+ appalyOnReload: {
+ type: Function,
+ default: null,
+ },
+ appalyOption1: {
+ type: Function,
+ default: null,
+ },
+ appalyOption2: {
+ type: Function,
+ default: null,
+ },
+ applyType: {
+ type: String,
+ default: 'reload',
+ },
+ },
+ data() {
+ return {
+ topPosition: 5,
+ middlePosition: 33,
+ bottomPosition: 60,
+ show: false,
+ scale: 5,
+ };
+ },
+ methods: {
+ onHidden() {
+ if (this.applyType === 'reload') {
+ this.scale = this.topPosition;
+ } else if (this.applyType === 'option1') {
+ this.scale = this.middlePosition;
+ } else {
+ this.scale = this.bottomPosition;
+ }
+ },
+ },
+};
+</script>
+<style lang="scss">
+.analytical-table__status {
+ width: 10%;
+}
+
+#popover-apply-ractive {
+ padding-left: 5px;
+}
+
+.hovered-apply-button {
+ color: $white;
+}
+</style>
+<style lang="scss" scoped>
+#popover-apply-button {
+ justify-content: flex-start;
+ width: 240px;
+}
+
+.slider {
+ width: 240px;
+ height: 28px;
+ border-radius: 8px;
+ background-color: $red-brand-primary;
+ box-shadow: 1px 2px 4px -1px rgb(79 37 37 / 40%) inset;
+ position: absolute;
+ transition: ease-in 0.2s;
+ z-index: -1;
+}
+</style>
diff --git a/src/views/_sila/SILA/RAID/Settings/OptionsPopover.vue b/src/views/_sila/SILA/RAID/Settings/OptionsPopover.vue
new file mode 100644
index 00000000..d1b85754
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Settings/OptionsPopover.vue
@@ -0,0 +1,87 @@
+<template>
+ <b-popover
+ placement="left"
+ triggers="focus"
+ :show.sync="show"
+ custom-class="popover-heigth-100"
+ :target="`popover-option-${id}`"
+ >
+ <b-button
+ id="popover-option-button"
+ variant="popover"
+ @click="
+ () => {
+ show = false;
+ openModal();
+ }
+ "
+ >
+ <img
+ src="@/assets/images/icon-settings-red.svg"
+ class="icon-chevron icon-settings"
+ />
+ Настройки
+ </b-button>
+ <b-button
+ id="popover-option-button"
+ class="delete"
+ variant="popover"
+ @click="show = false"
+ >
+ <img
+ src="@/assets/images/icon-clear-red.svg"
+ class="icon-chevron icon-delete"
+ />
+ Удалить
+ </b-button>
+ </b-popover>
+</template>
+
+<script>
+export default {
+ props: {
+ id: {
+ type: Number,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ show: false,
+ };
+ },
+ methods: {
+ openModal() {
+ this.$bvModal.show(`edit-tome${this.id}`);
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.popover-heigth-100 {
+ max-width: 120px;
+}
+
+#popover-option-button {
+ padding: 0 9px 0 10px;
+ font-size: 12px;
+ &:hover {
+ color: $red-brand-primary;
+ box-shadow: 1px 2px 4px -1px rgb(79 37 37 / 25%) inset;
+ }
+ &:active {
+ box-shadow: 1px 2px 4px -1px rgb(79 37 37 / 50%) inset;
+ }
+ &.delete {
+ padding: 0 26px 0 13px;
+ }
+}
+
+.icon-settings {
+ padding-right: 5px;
+}
+
+.icon-delete {
+ padding-right: 10px;
+}
+</style>
diff --git a/src/views/_sila/SILA/RAID/Settings/RAIDSettingsPage.vue b/src/views/_sila/SILA/RAID/Settings/RAIDSettingsPage.vue
new file mode 100644
index 00000000..19caafe0
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Settings/RAIDSettingsPage.vue
@@ -0,0 +1,288 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.settings')" />
+ <data-tabs
+ :slots="raidSlots"
+ :switch-tab="switchRaidSlot"
+ :current-tab="currentRaidSlot"
+ :slot-width="100"
+ :slider-width="79"
+ style="margin-top: 16px"
+ />
+ <page-section class="bootstrap-table__section" style="margin-top: 0px">
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('appNavigation.settings') }}</span>
+ <apply-settings-popover
+ :appaly-on-reload="appalyOnReload"
+ :appaly-option1="appalyOption1"
+ :appaly-option2="appalyOption2"
+ :apply-type="applyType"
+ />
+ <b-button variant="primary" class="apply-button">
+ {{ $t('global.action.acceptChanges') }}
+ </b-button>
+ </div>
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(action)="data">
+ <b-row v-if="data.index <= 5">
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-button
+ :id="`popover-action-${data.index}`"
+ class="popover-action-ractive"
+ variant="toogle-popover"
+ >
+ <img :is="iconChevron" class="icon-chevron" />
+ </b-button>
+ <action-settings-popover
+ :id="data.index"
+ :appaly-on-reload="appalyOnReload"
+ :appaly-option1="appalyOption1"
+ :appaly-option2="appalyOption2"
+ :apply-type="applyType"
+ />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <img
+ src="@/assets/images/icon-edit.svg"
+ class="icon-chevron icon-edit"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ <page-section class="bootstrap-table__section">
+ <div class="settings-container">
+ <span class="bold-16px">{{ $t('RAID.lun') }}</span>
+ <b-button
+ variant="primary"
+ class="apply-button apply-button__lun"
+ @click="$bvModal.show('add-tome-images')"
+ >
+ {{ $t('global.action.addNew') }}
+ </b-button>
+ </div>
+ <b-table
+ id="table-raid-settings"
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items_2"
+ :fields="fields_2"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(action)="data">
+ <b-row>
+ <b-col>
+ <span>
+ {{ data.value }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-button
+ :id="`popover-option-${data.index}`"
+ class="popover-option-ractive"
+ variant="toogle-popover"
+ >
+ <img
+ src="@/assets/images/icon-options.svg"
+ class="icon-chevron icon-options"
+ />
+ </b-button>
+ <options-popover :id="data.index" />
+ <tome-modal
+ :id="`edit-tome${data.index}`"
+ :title="'Настройка виртуального тома'"
+ :action="editTome"
+ :index="data.index"
+ :item="items_2[data.index]"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <div class="microcode-container">
+ <span class="bold-16px">{{ $t('RAID.microcode') }}</span>
+ <popover
+ id="popover-reactive-1"
+ description="RAID.microcode_update"
+ popup="RAID.microcode_popoveer"
+ button="global.action.refresh"
+ :is-microcode-drivers="true"
+ />
+ </div>
+ </page-section>
+ <tome-modal
+ :id="'add-tome-images'"
+ :title="'Новый виртуальный том'"
+ :action="createTome"
+ />
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import Popover from '@/components/Global/Popover';
+import ApplySettingsPopover from '@/components/Global/SilaComponents/ApplySettingsPopover';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+import ActionSettingsPopover from './ActionSettingsPopover';
+import OptionsPopover from './OptionsPopover';
+import TomeModal from './TomeModal';
+import { items, items_2 } from './helpers';
+
+export default {
+ components: {
+ PageTitle,
+ PageSection,
+ DataTabs,
+ Popover,
+ ApplySettingsPopover,
+ ActionSettingsPopover,
+ OptionsPopover,
+ TomeModal,
+ },
+ data() {
+ return {
+ items,
+ items_2,
+ iconChevron,
+ applyType: 'reload',
+ currentRaidSlot: 1,
+ titleModal: '',
+ editIndex: null,
+ raidSlots: [
+ { id: 1, name: 'Контроллер 1' },
+ { id: 2, name: 'Контроллер 2' },
+ { id: 3, name: 'Контроллер 3' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Имя',
+ formatter: this.dataFormatter,
+ thStyle: { width: '35%' },
+ },
+ {
+ key: 'value',
+ label: 'Текущее значение',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'action',
+ label: 'Действие',
+ formatter: this.dataFormatter,
+ },
+ ],
+ fields_2: [
+ {
+ key: 'name',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'type',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'size',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'action',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ };
+ },
+ methods: {
+ switchRaidSlot(period) {
+ this.currentRaidSlot = period;
+ },
+ appalyOnReload() {
+ this.applyType = 'reload';
+ },
+ appalyOption1() {
+ this.applyType = 'option1';
+ },
+ appalyOption2() {
+ this.applyType = 'option2';
+ },
+ createTome() {
+ console.log('Новый том создан');
+ },
+ editTome(index) {
+ console.log('Том изменен');
+ console.log(index);
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.settings-container {
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+}
+
+.apply-button {
+ width: 245px;
+ height: 36px;
+}
+
+.popover-action-ractive {
+ margin: 0 0 0 83%;
+}
+
+.popover-option-ractive {
+ margin: 0 0 0 70%;
+}
+
+.apply-button__lun {
+ width: 245px;
+ height: 36px;
+ margin-left: auto;
+}
+
+.microcode-container {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/_sila/SILA/RAID/Settings/TomeModal.vue b/src/views/_sila/SILA/RAID/Settings/TomeModal.vue
new file mode 100644
index 00000000..c245bd1b
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Settings/TomeModal.vue
@@ -0,0 +1,179 @@
+<template>
+ <b-modal :id="id" class="modal-images" hide-footer>
+ <template #modal-title>
+ <span class="semi-bold-20px">{{ title }}</span>
+ </template>
+ <div class="modal-body">
+ <label class="regular-12px tretiatry" for="name"> Имя </label>
+ <b-form-input
+ id="name"
+ v-model="tomeName"
+ placeholder="Название тома"
+ type="text"
+ class="form-control form-input"
+ >
+ </b-form-input>
+
+ <form-control>
+ <label class="regular-12px tretiatry type-select-label" for="type"
+ >Тип</label
+ >
+ <b-form-select
+ id="type"
+ v-model="tomeType"
+ :options="tomeTypes"
+ class="select-connection regular-14px"
+ />
+ </form-control>
+
+ <form-control>
+ <label class="regular-12px tretiatry driver-select-label" for="driver"
+ >Физический накопитель</label
+ >
+ <b-form-select
+ id="driver"
+ v-model="tomeDriver"
+ :options="tomeDrivers"
+ class="select-connection regular-14px"
+ />
+ </form-control>
+
+ <label class="regular-12px tretiatry" for="size"> Размер Мб </label>
+ <b-form-input
+ id="size"
+ v-model="tomeSize"
+ placeholder="Размер Тома"
+ type="text"
+ class="form-control form-input"
+ >
+ </b-form-input>
+ <b-button class="upload-button" variant="primary" @click="action(index)">
+ {{ item ? $t('global.action.save') : $t('global.action.addTome') }}
+ </b-button>
+ </div>
+ </b-modal>
+</template>
+<script>
+import { required } from 'vuelidate/lib/validators';
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+
+export default {
+ mixins: [VuelidateMixin],
+ props: {
+ id: {
+ type: String,
+ default: null,
+ },
+ title: {
+ type: String,
+ default: null,
+ },
+ index: {
+ type: Number,
+ default: null,
+ },
+ action: {
+ type: Function,
+ default: null,
+ },
+ item: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ tomeName: '',
+ tomeSize: '',
+ tomeType: 1,
+ tomeTypes: [
+ { value: 1, text: 'RAID-0' },
+ { value: 2, text: 'RAID-1' },
+ ],
+ tomeDriver: 1,
+ tomeDrivers: [
+ { value: 1, text: 'Накопитель 1' },
+ { value: 2, text: 'Накопитель 2' },
+ ],
+ };
+ },
+ mounted() {
+ this.tomeName = this.item.name;
+ this.tomeSize = this.item.size;
+ },
+ validations: {
+ userInfo: {
+ username: {
+ required,
+ },
+ password: {
+ required,
+ },
+ },
+ },
+};
+</script>
+<style lang="scss">
+.modal-content {
+ border-radius: 16px;
+ width: 480px;
+}
+.modal-header {
+ border-bottom: none;
+}
+</style>
+<style lang="scss" scoped>
+.form-input {
+ height: 56px;
+ padding-top: 30px;
+ font-family: 'Inter', sans-serif;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0em;
+ margin: -30px 0 20px 0;
+}
+
+.modal-body {
+ width: 446px;
+}
+
+.caption-12px,
+.regular-12px {
+ padding-left: 10px;
+}
+
+.select-connection {
+ height: 56px;
+ padding-top: 30px;
+ border: none;
+ border-radius: 8px;
+ margin: -0px 0 18px 0;
+ background-color: $surface-secondary;
+ background-image: url('../../../../../assets/images/_sila/icon-chevron.svg');
+}
+
+.type-select-label {
+ position: absolute;
+ top: 25%;
+}
+
+.driver-select-label {
+ position: absolute;
+ top: 44%;
+ left: 4%;
+}
+
+.form-background .custom-select,
+.form-background .form-control {
+ border-radius: 8px;
+ border: none;
+ background-color: rgba(26, 62, 91, 0.05);
+}
+
+.upload-button {
+ width: 100%;
+ height: 40px;
+ margin: 0 auto 10px;
+}
+</style>
diff --git a/src/views/_sila/SILA/RAID/Settings/helpers.js b/src/views/_sila/SILA/RAID/Settings/helpers.js
new file mode 100644
index 00000000..5727102a
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Settings/helpers.js
@@ -0,0 +1,62 @@
+export const items = [
+ {
+ parametr: 'Режим контроллера',
+ value: 'RAID',
+ action: 'Автоматически',
+ },
+ {
+ parametr: 'Режим чтения патруля',
+ value: 'Автоматически',
+ action: 'Действие',
+ },
+ {
+ parametr: 'Действие в режиме ручного патрулирования',
+ value: 'Запущен',
+ action: 'Действие',
+ },
+ {
+ parametr: 'Название атрибута',
+ value: 'Запущен',
+ action: 'Действие',
+ },
+ {
+ parametr: 'Название атрибута',
+ value: 'Запущен',
+ action: 'Действие',
+ },
+ {
+ parametr: 'Название атрибута',
+ value: 'Запущен',
+ action: 'Действие',
+ },
+ {
+ parametr: 'Название атрибута',
+ value: '30%',
+ action: '30',
+ },
+ {
+ parametr: 'Название атрибута',
+ value: '30%',
+ action: '30',
+ },
+ {
+ parametr: 'Название атрибута',
+ value: '30%',
+ action: '30',
+ },
+];
+
+export const items_2 = [
+ {
+ name: 'Том 1',
+ type: 'RAID-0',
+ size: '100 125 Мб',
+ action: 'Загружен',
+ },
+ {
+ name: 'Том 2',
+ type: 'RAID-1',
+ size: '200 250 Мб',
+ action: 'Загружен',
+ },
+];
diff --git a/src/views/_sila/SILA/RAID/Settings/index.js b/src/views/_sila/SILA/RAID/Settings/index.js
new file mode 100644
index 00000000..535dbe3a
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Settings/index.js
@@ -0,0 +1 @@
+export { default } from './RAIDSettingsPage.vue';
diff --git a/src/views/_sila/SILA/RAID/Specification/RAIDSpecificationPage.vue b/src/views/_sila/SILA/RAID/Specification/RAIDSpecificationPage.vue
new file mode 100644
index 00000000..239a41e4
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Specification/RAIDSpecificationPage.vue
@@ -0,0 +1,221 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.specification')" />
+ <data-tabs
+ :slots="raidSlots"
+ :switch-tab="switchRaidSlot"
+ :current-tab="currentRaidSlot"
+ :slot-width="100"
+ :slider-width="79"
+ style="margin-top: 16px"
+ />
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="{ index, value }">
+ <b-row v-if="index === 0">
+ <b-col>
+ <img src="@/assets/images/status/on.svg" class="icon-chevron" />
+ <span>
+ {{ 'Работоспособен' }}
+ </span>
+ </b-col>
+ </b-row>
+ <b-row v-else-if="index === 7">
+ <b-col>
+ <span class="regular-12px pointer" @click="redirectDrivers">
+ {{ value }}
+ </span>
+ </b-col>
+ </b-row>
+ <b-row v-else-if="index === 8">
+ <b-col>
+ <span class="regular-12px pointer" @click="redirectVirtual">
+ {{ value }}
+ </span>
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>{{ value }}</span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ <b-button
+ v-b-toggle.toggle-collapse
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ >
+ <component :is="iconChevronUp" class="icon-expand-right" />
+ {{ $t('RAID.extraParam') }}
+ </b-button>
+ <b-collapse id="toggle-collapse" class="nav-item__nav">
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ :items="items_2"
+ :fields="fields_2"
+ >
+ <template #cell(value)="{ index, value }">
+ <b-row v-if="index === 0">
+ <b-col>
+ <img src="@/assets/images/status/on.svg" class="icon-chevron" />
+ <span>
+ {{ 'Работоспособен' }}
+ </span>
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>{{ value }}</span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ </b-collapse>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+export default {
+ components: { PageTitle, PageSection, DataTabs },
+ data() {
+ return {
+ iconChevronUp: iconChevronUp,
+ currentRaidSlot: 1,
+ raidSlots: [
+ { id: 1, name: 'Контроллер 1' },
+ { id: 2, name: 'Контроллер 2' },
+ { id: 3, name: 'Контроллер 3' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ parametr: 'Статус',
+ value: true,
+ },
+ {
+ parametr: 'Имя',
+ value: 'RAID-контроллер 1',
+ },
+ {
+ parametr: 'Описание',
+ value: 'Встроенный',
+ },
+ {
+ parametr: 'PCI слот',
+ value: 'Информация недоступна',
+ },
+ {
+ parametr: 'Версия прошивки',
+ value: 'Информация недоступна',
+ },
+ {
+ parametr: 'Версия драйвера',
+ value: 'Информация недоступна',
+ },
+ {
+ parametr: 'Объем cache памяти, Мб',
+ value: '8 096',
+ },
+ {
+ parametr: 'Виртуальные накопители',
+ value: 'Перейти к накопителям',
+ },
+ {
+ parametr: 'Физические накопители',
+ value: 'Перейти к накопителям',
+ },
+ ],
+ fields_2: [
+ {
+ key: 'param',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'value',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items_2: [
+ {
+ param: 'Статус',
+ value: true,
+ },
+ {
+ param: 'Скорость',
+ value: 'Информация недоступна',
+ },
+ {
+ param: 'PCI Vendor ID',
+ value: 'Информация недоступна',
+ },
+ {
+ param: 'Скорость',
+ value: 'Информация недоступна',
+ },
+ {
+ param: 'PCI Vendor ID',
+ value: 'Информация недоступна',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchRaidSlot(period) {
+ this.currentRaidSlot = period;
+ },
+ redirectDrivers() {
+ this.$router.push('/drivers-static');
+ },
+ redirectVirtual() {
+ this.$router.push('/virtual-drivers');
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.pointer {
+ color: $red-brand-primary;
+ cursor: pointer;
+}
+</style>
diff --git a/src/views/_sila/SILA/RAID/Specification/index.js b/src/views/_sila/SILA/RAID/Specification/index.js
new file mode 100644
index 00000000..a040cff4
--- /dev/null
+++ b/src/views/_sila/SILA/RAID/Specification/index.js
@@ -0,0 +1 @@
+export { default } from './RAIDSpecificationPage.vue';
diff --git a/src/views/_sila/SILA/VirtualDrivers/VirtualDriversPage.vue b/src/views/_sila/SILA/VirtualDrivers/VirtualDriversPage.vue
new file mode 100644
index 00000000..73633901
--- /dev/null
+++ b/src/views/_sila/SILA/VirtualDrivers/VirtualDriversPage.vue
@@ -0,0 +1,122 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title />
+ <page-section class="bootstrap-table__section info_section">
+ <span class="bold-16px">{{ $t('global.table.info') }}</span>
+ </page-section>
+ <data-tabs
+ :slots="memorySlots"
+ :switch-tab="switchMemorySlot"
+ :current-tab="currentMemorySlot"
+ :slot-width="180"
+ :slider-width="156"
+ />
+ <page-section class="bootstrap-table__section info_section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ <div class="microcode-container">
+ <span class="bold-16px">{{
+ $t('SystemDescription.microcodeDrivers')
+ }}</span>
+ <popover
+ id="popover-reactive-1"
+ description="SystemDescription.reloadMicrocodeDrivers"
+ popup="SystemDescription.reloadMicrocodeDrivers"
+ button="global.action.refresh"
+ :is-microcode-drivers="true"
+ />
+ </div>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import DataTabs from '@/components/Global/SilaComponents/DataTabs';
+import Popover from '@/components/Global/Popover';
+
+export default {
+ components: { PageTitle, PageSection, DataTabs, Popover },
+ data() {
+ return {
+ currentMemorySlot: 1,
+ memorySlots: [
+ { id: 1, name: 'Виртуальный накопитель 1' },
+ { id: 2, name: 'Виртуальный накопитель 2' },
+ { id: 3, name: 'Виртуальный накопитель 3' },
+ { id: 4, name: 'Виртуальный накопитель 4' },
+ { id: 5, name: 'Виртуальный накопитель 5' },
+ { id: 6, name: 'Виртуальный накопитель 6' },
+ { id: 7, name: 'Виртуальный накопитель 7' },
+ { id: 8, name: 'Виртуальный накопитель 8' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ items: [
+ {
+ parametr: 'Текущий статус',
+ value: 'Готов',
+ },
+ {
+ parametr: 'Номинальная емкость',
+ value: '1 024 000 Мб',
+ },
+ {
+ parametr: 'Тип избыточности',
+ value: 'RAID',
+ },
+ {
+ parametr: 'Входящие в состав физические накопители',
+ value: 'Накопитель 1, Накопитель 2, Накопитель 3',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchMemorySlot(period) {
+ this.currentMemorySlot = period;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.info_section {
+ margin-bottom: 0px;
+}
+
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+
+.microcode-container {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/_sila/SILA/VirtualDrivers/index.js b/src/views/_sila/SILA/VirtualDrivers/index.js
new file mode 100644
index 00000000..23cd6fe1
--- /dev/null
+++ b/src/views/_sila/SILA/VirtualDrivers/index.js
@@ -0,0 +1 @@
+export { default } from './VirtualDriversPage.vue';
diff --git a/src/views/_sila/SecurityAndAccess/Certificates/Certificates.vue b/src/views/_sila/SecurityAndAccess/Certificates/Certificates.vue
index 27950b76..8aee85cf 100644
--- a/src/views/_sila/SecurityAndAccess/Certificates/Certificates.vue
+++ b/src/views/_sila/SecurityAndAccess/Certificates/Certificates.vue
@@ -1,98 +1,101 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid="pt-0 m-0">
<page-title />
- <b-row>
- <b-col xl="11">
- <!-- Expired certificates banner -->
- <alert :show="expiredCertificateTypes.length > 0" variant="danger">
- <template v-if="expiredCertificateTypes.length > 1">
- {{ $t('pageCertificates.alert.certificatesExpiredMessage') }}
- </template>
- <template v-else>
- {{
- $t('pageCertificates.alert.certificateExpiredMessage', {
- certificate: expiredCertificateTypes[0],
- })
- }}
- </template>
- </alert>
- <!-- Expiring certificates banner -->
- <alert :show="expiringCertificateTypes.length > 0" variant="warning">
- <template v-if="expiringCertificateTypes.length > 1">
- {{ $t('pageCertificates.alert.certificatesExpiringMessage') }}
- </template>
- <template v-else>
- {{
- $t('pageCertificates.alert.certificateExpiringMessage', {
- certificate: expiringCertificateTypes[0],
- })
- }}
- </template>
- </alert>
- </b-col>
- </b-row>
- <b-row>
- <b-col xl="11" class="text-right">
- <b-button
- v-b-modal.generate-csr
- data-test-id="certificates-button-generateCsr"
- variant="link"
- >
- <icon-add />
- {{ $t('pageCertificates.generateCsr') }}
- </b-button>
- <b-button
- variant="primary"
- :disabled="certificatesForUpload.length === 0"
- @click="initModalUploadCertificate(null)"
- >
- <icon-add />
- {{ $t('pageCertificates.addNewCertificate') }}
- </b-button>
- </b-col>
- </b-row>
- <b-row>
- <b-col xl="11">
- <b-table
- responsive="md"
- show-empty
- hover
- :busy="isBusy"
- :fields="fields"
- :items="tableItems"
- :empty-text="$t('global.table.emptyMessage')"
- >
- <template #cell(validFrom)="{ value }">
- {{ value | formatDate }}
- </template>
+ <page-section class="bootstrap-table__section">
+ <b-row class="margin-bottom--16px">
+ <b-col xl="11">
+ <!-- Expired certificates banner -->
+ <alert :show="expiredCertificateTypes.length > 0" variant="danger">
+ <template v-if="expiredCertificateTypes.length > 1">
+ {{ $t('pageCertificates.alert.certificatesExpiredMessage') }}
+ </template>
+ <template v-else>
+ {{
+ $t('pageCertificates.alert.certificateExpiredMessage', {
+ certificate: expiredCertificateTypes[0],
+ })
+ }}
+ </template>
+ </alert>
+ <!-- Expiring certificates banner -->
+ <alert :show="expiringCertificateTypes.length > 0" variant="warning">
+ <template v-if="expiringCertificateTypes.length > 1">
+ {{ $t('pageCertificates.alert.certificatesExpiringMessage') }}
+ </template>
+ <template v-else>
+ {{
+ $t('pageCertificates.alert.certificateExpiringMessage', {
+ certificate: expiringCertificateTypes[0],
+ })
+ }}
+ </template>
+ </alert>
+ </b-col>
+ </b-row>
+ <b-row class="margin-bottom--16px">
+ <b-col xl="11" class="text-right">
+ <b-button
+ v-b-modal.generate-csr
+ data-test-id="certificates-button-generateCsr"
+ variant="link"
+ >
+ <icon-add />
+ {{ $t('pageCertificates.generateCsr') }}
+ </b-button>
+ <b-button
+ variant="primary"
+ :disabled="certificatesForUpload.length === 0"
+ @click="initModalUploadCertificate(null)"
+ >
+ <icon-add />
+ {{ $t('pageCertificates.addNewCertificate') }}
+ </b-button>
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col xl="11">
+ <b-table
+ responsive="md"
+ show-empty
+ hover
+ class="table-rounded"
+ no-border-collapse
+ :busy="isBusy"
+ :fields="fields"
+ :items="tableItems"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(validFrom)="{ value }">
+ {{ value | formatDate }}
+ </template>
- <template #cell(validUntil)="{ value }">
- <status-icon
- v-if="getDaysUntilExpired(value) < 31"
- :status="getIconStatus(value)"
- />
- {{ value | formatDate }}
- </template>
-
- <template #cell(actions)="{ value, item }">
- <table-row-action
- v-for="(action, index) in value"
- :key="index"
- :value="action.value"
- :title="action.title"
- :enabled="action.enabled"
- @click-table-action="onTableRowAction($event, item)"
- >
- <template #icon>
- <icon-replace v-if="action.value === 'replace'" />
- <icon-trashcan v-if="action.value === 'delete'" />
- </template>
- </table-row-action>
- </template>
- </b-table>
- </b-col>
- </b-row>
+ <template #cell(validUntil)="{ value }">
+ <status-icon
+ v-if="getDaysUntilExpired(value) < 31"
+ :status="getIconStatus(value)"
+ />
+ {{ value | formatDate }}
+ </template>
+ <template #cell(actions)="{ value, item }">
+ <table-row-action
+ v-for="(action, index) in value"
+ :key="index"
+ :value="action.value"
+ :title="action.title"
+ :enabled="action.enabled"
+ @click-table-action="onTableRowAction($event, item)"
+ >
+ <template #icon>
+ <icon-replace v-if="action.value === 'replace'" />
+ <icon-trashcan v-if="action.value === 'delete'" />
+ </template>
+ </table-row-action>
+ </template>
+ </b-table>
+ </b-col>
+ </b-row>
+ </page-section>
<!-- Modals -->
<modal-upload-certificate :certificate="modalCertificate" @ok="onModalOk" />
<modal-generate-csr />
@@ -107,6 +110,7 @@ import IconTrashcan from '@carbon/icons-vue/es/trash-can/20';
import ModalGenerateCsr from './ModalGenerateCsr';
import ModalUploadCertificate from './ModalUploadCertificate';
import PageTitle from '@/components/_sila/Global/PageTitle';
+import PageSection from '@/components/_sila/Global/PageSection';
import TableRowAction from '@/components/_sila/Global/TableRowAction';
import StatusIcon from '@/components/_sila/Global/StatusIcon';
import Alert from '@/components/_sila/Global/Alert';
@@ -124,6 +128,7 @@ export default {
ModalGenerateCsr,
ModalUploadCertificate,
PageTitle,
+ PageSection,
StatusIcon,
TableRowAction,
},
@@ -320,3 +325,8 @@ export default {
},
};
</script>
+<style lang="scss" scoped>
+.margin-bottom--16px {
+ margin-bottom: 16px;
+}
+</style>
diff --git a/src/views/_sila/SecurityAndAccess/Certificates/ModalGenerateCsr.vue b/src/views/_sila/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
index 5bfb81b4..63258a40 100644
--- a/src/views/_sila/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
+++ b/src/views/_sila/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
@@ -3,7 +3,6 @@
<b-modal
id="generate-csr"
ref="modal"
- size="lg"
no-stacking
:title="$t('pageCertificates.modal.generateACertificateSigningRequest')"
@ok="onOkGenerateCsrModal"
@@ -13,7 +12,88 @@
<b-form id="generate-csr-form" novalidate @submit.prevent="handleSubmit">
<b-container fluid>
<b-row>
- <b-col lg="9">
+ <b-col lg="12">
+ <b-row>
+ <b-col lg="12">
+ <p class="col-form-label">
+ {{ $t('pageCertificates.modal.privateKey') }}
+ </p>
+ <b-form-group
+ :label="$t('pageCertificates.modal.keyPairAlgorithm')"
+ label-for="key-pair-algorithm"
+ >
+ <b-form-select
+ id="key-pair-algorithm"
+ v-model="form.keyPairAlgorithm"
+ data-test-id="modalGenerateCsr-select-keyPairAlgorithm"
+ :options="keyPairAlgorithmOptions"
+ :state="getValidationState($v.form.keyPairAlgorithm)"
+ @input="$v.form.keyPairAlgorithm.$touch()"
+ >
+ <template #first>
+ <b-form-select-option :value="null" disabled>
+ {{ $t('global.form.selectAnOption') }}
+ </b-form-select-option>
+ </template>
+ </b-form-select>
+ <b-form-invalid-feedback role="alert">
+ {{ $t('global.form.fieldRequired') }}
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col lg="12">
+ <template v-if="$v.form.keyPairAlgorithm.$model === 'EC'">
+ <b-form-group
+ :label="$t('pageCertificates.modal.keyCurveId')"
+ label-for="key-curve-id"
+ >
+ <b-form-select
+ id="key-curve-id"
+ v-model="form.keyCurveId"
+ data-test-id="modalGenerateCsr-select-keyCurveId"
+ :options="keyCurveIdOptions"
+ :state="getValidationState($v.form.keyCurveId)"
+ @input="$v.form.keyCurveId.$touch()"
+ >
+ <template #first>
+ <b-form-select-option :value="null" disabled>
+ {{ $t('global.form.selectAnOption') }}
+ </b-form-select-option>
+ </template>
+ </b-form-select>
+ <b-form-invalid-feedback role="alert">
+ {{ $t('global.form.fieldRequired') }}
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </template>
+ <template v-if="$v.form.keyPairAlgorithm.$model === 'RSA'">
+ <b-form-group
+ :label="$t('pageCertificates.modal.keyBitLength')"
+ label-for="key-bit-length"
+ >
+ <b-form-select
+ id="key-bit-length"
+ v-model="form.keyBitLength"
+ data-test-id="modalGenerateCsr-select-keyBitLength"
+ :options="keyBitLengthOptions"
+ :state="getValidationState($v.form.keyBitLength)"
+ @input="$v.form.keyBitLength.$touch()"
+ >
+ <template #first>
+ <b-form-select-option :value="null" disabled>
+ {{ $t('global.form.selectAnOption') }}
+ </b-form-select-option>
+ </template>
+ </b-form-select>
+ <b-form-invalid-feedback role="alert">
+ {{ $t('global.form.fieldRequired') }}
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </template>
+ </b-col>
+ </b-row>
<b-row>
<b-col lg="6">
<b-form-group
@@ -241,89 +321,6 @@
</b-col>
</b-row>
</b-col>
- <b-col lg="3">
- <b-row>
- <b-col lg="12">
- <p class="col-form-label">
- {{ $t('pageCertificates.modal.privateKey') }}
- </p>
- <b-form-group
- :label="$t('pageCertificates.modal.keyPairAlgorithm')"
- label-for="key-pair-algorithm"
- >
- <b-form-select
- id="key-pair-algorithm"
- v-model="form.keyPairAlgorithm"
- data-test-id="modalGenerateCsr-select-keyPairAlgorithm"
- :options="keyPairAlgorithmOptions"
- :state="getValidationState($v.form.keyPairAlgorithm)"
- @input="$v.form.keyPairAlgorithm.$touch()"
- >
- <template #first>
- <b-form-select-option :value="null" disabled>
- {{ $t('global.form.selectAnOption') }}
- </b-form-select-option>
- </template>
- </b-form-select>
- <b-form-invalid-feedback role="alert">
- {{ $t('global.form.fieldRequired') }}
- </b-form-invalid-feedback>
- </b-form-group>
- </b-col>
- </b-row>
- <b-row>
- <b-col lg="12">
- <template v-if="$v.form.keyPairAlgorithm.$model === 'EC'">
- <b-form-group
- :label="$t('pageCertificates.modal.keyCurveId')"
- label-for="key-curve-id"
- >
- <b-form-select
- id="key-curve-id"
- v-model="form.keyCurveId"
- data-test-id="modalGenerateCsr-select-keyCurveId"
- :options="keyCurveIdOptions"
- :state="getValidationState($v.form.keyCurveId)"
- @input="$v.form.keyCurveId.$touch()"
- >
- <template #first>
- <b-form-select-option :value="null" disabled>
- {{ $t('global.form.selectAnOption') }}
- </b-form-select-option>
- </template>
- </b-form-select>
- <b-form-invalid-feedback role="alert">
- {{ $t('global.form.fieldRequired') }}
- </b-form-invalid-feedback>
- </b-form-group>
- </template>
- <template v-if="$v.form.keyPairAlgorithm.$model === 'RSA'">
- <b-form-group
- :label="$t('pageCertificates.modal.keyBitLength')"
- label-for="key-bit-length"
- >
- <b-form-select
- id="key-bit-length"
- v-model="form.keyBitLength"
- data-test-id="modalGenerateCsr-select-keyBitLength"
- :options="keyBitLengthOptions"
- :state="getValidationState($v.form.keyBitLength)"
- @input="$v.form.keyBitLength.$touch()"
- >
- <template #first>
- <b-form-select-option :value="null" disabled>
- {{ $t('global.form.selectAnOption') }}
- </b-form-select-option>
- </template>
- </b-form-select>
- <b-form-invalid-feedback role="alert">
- {{ $t('global.form.fieldRequired') }}
- </b-form-invalid-feedback>
- </b-form-group>
- </template>
- </b-col>
- </b-row>
- </b-col>
</b-row>
</b-container>
</b-form>
diff --git a/src/views/_sila/SecurityAndAccess/Policies/Policies.vue b/src/views/_sila/SecurityAndAccess/Policies/Policies.vue
index c594bde5..44493882 100644
--- a/src/views/_sila/SecurityAndAccess/Policies/Policies.vue
+++ b/src/views/_sila/SecurityAndAccess/Policies/Policies.vue
@@ -1,122 +1,125 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid="pt-0 m-0">
<page-title />
- <b-row>
- <b-col md="8">
- <b-row v-if="!modifySSHPolicyDisabled" class="setting-section">
- <b-col class="d-flex align-items-center justify-content-between">
- <dl class="mr-3 w-75">
- <dt>{{ $t('pagePolicies.ssh') }}</dt>
- <dd>
- {{ $t('pagePolicies.sshDescription') }}
- </dd>
- </dl>
- <b-form-checkbox
- id="sshSwitch"
- v-model="sshProtocolState"
- data-test-id="policies-toggle-bmcShell"
- switch
- @change="changeSshProtocolState"
- >
- <span class="sr-only">
- {{ $t('pagePolicies.ssh') }}
- </span>
- <span v-if="sshProtocolState">
- {{ $t('global.status.enabled') }}
- </span>
- <span v-else>{{ $t('global.status.disabled') }}</span>
- </b-form-checkbox>
- </b-col>
- </b-row>
- <b-row class="setting-section">
- <b-col class="d-flex align-items-center justify-content-between">
- <dl class="mt-3 mr-3 w-75">
- <dt>{{ $t('pagePolicies.ipmi') }}</dt>
- <dd>
- {{ $t('pagePolicies.ipmiDescription') }}
- </dd>
- </dl>
- <b-form-checkbox
- id="ipmiSwitch"
- v-model="ipmiProtocolState"
- data-test-id="polices-toggle-networkIpmi"
- switch
- @change="changeIpmiProtocolState"
- >
- <span class="sr-only">
- {{ $t('pagePolicies.ipmi') }}
- </span>
- <span v-if="ipmiProtocolState">
- {{ $t('global.status.enabled') }}
- </span>
- <span v-else>{{ $t('global.status.disabled') }}</span>
- </b-form-checkbox>
- </b-col>
- </b-row>
- <b-row class="setting-section">
- <b-col class="d-flex align-items-center justify-content-between">
- <dl class="mt-3 mr-3 w-75">
- <dt>{{ $t('pagePolicies.vtpm') }}</dt>
- <dd>
- {{ $t('pagePolicies.vtpmDescription') }}
- </dd>
- </dl>
- <b-form-checkbox
- id="vtpmSwitch"
- v-model="vtpmState"
- data-test-id="policies-toggle-vtpm"
- switch
- @change="changeVtpmState"
- >
- <span class="sr-only">
- {{ $t('pagePolicies.vtpm') }}
- </span>
- <span v-if="vtpmState">
- {{ $t('global.status.enabled') }}
- </span>
- <span v-else>{{ $t('global.status.disabled') }}</span>
- </b-form-checkbox>
- </b-col>
- </b-row>
- <b-row class="setting-section">
- <b-col class="d-flex align-items-center justify-content-between">
- <dl class="mt-3 mr-3 w-75">
- <dt>{{ $t('pagePolicies.rtad') }}</dt>
- <dd>
- {{ $t('pagePolicies.rtadDescription') }}
- </dd>
- </dl>
- <b-form-checkbox
- id="rtadSwitch"
- v-model="rtadState"
- data-test-id="policies-toggle-rtad"
- switch
- @change="changeRtadState"
- >
- <span class="sr-only">
- {{ $t('pagePolicies.rtad') }}
- </span>
- <span v-if="rtadState">
- {{ $t('global.status.enabled') }}
- </span>
- <span v-else>{{ $t('global.status.disabled') }}</span>
- </b-form-checkbox>
- </b-col>
- </b-row>
- </b-col>
- </b-row>
+ <page-section class="bootstrap-table__section">
+ <b-row>
+ <b-col md="8">
+ <b-row v-if="!modifySSHPolicyDisabled" class="setting-section">
+ <b-col class="d-flex align-items-center justify-content-between">
+ <dl class="mr-3 w-75">
+ <dt>{{ $t('pagePolicies.ssh') }}</dt>
+ <dd>
+ {{ $t('pagePolicies.sshDescription') }}
+ </dd>
+ </dl>
+ <b-form-checkbox
+ id="sshSwitch"
+ v-model="sshProtocolState"
+ data-test-id="policies-toggle-bmcShell"
+ switch
+ @change="changeSshProtocolState"
+ >
+ <span class="sr-only">
+ {{ $t('pagePolicies.ssh') }}
+ </span>
+ <span v-if="sshProtocolState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ <b-row class="setting-section">
+ <b-col class="d-flex align-items-center justify-content-between">
+ <dl class="mt-3 mr-3 w-75">
+ <dt>{{ $t('pagePolicies.ipmi') }}</dt>
+ <dd>
+ {{ $t('pagePolicies.ipmiDescription') }}
+ </dd>
+ </dl>
+ <b-form-checkbox
+ id="ipmiSwitch"
+ v-model="ipmiProtocolState"
+ data-test-id="polices-toggle-networkIpmi"
+ switch
+ @change="changeIpmiProtocolState"
+ >
+ <span class="sr-only">
+ {{ $t('pagePolicies.ipmi') }}
+ </span>
+ <span v-if="ipmiProtocolState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ <b-row class="setting-section">
+ <b-col class="d-flex align-items-center justify-content-between">
+ <dl class="mt-3 mr-3 w-75">
+ <dt>{{ $t('pagePolicies.vtpm') }}</dt>
+ <dd>
+ {{ $t('pagePolicies.vtpmDescription') }}
+ </dd>
+ </dl>
+ <b-form-checkbox
+ id="vtpmSwitch"
+ v-model="vtpmState"
+ data-test-id="policies-toggle-vtpm"
+ switch
+ @change="changeVtpmState"
+ >
+ <span class="sr-only">
+ {{ $t('pagePolicies.vtpm') }}
+ </span>
+ <span v-if="vtpmState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ <b-row class="setting-section">
+ <b-col class="d-flex align-items-center justify-content-between">
+ <dl class="mt-3 mr-3 w-75">
+ <dt>{{ $t('pagePolicies.rtad') }}</dt>
+ <dd>
+ {{ $t('pagePolicies.rtadDescription') }}
+ </dd>
+ </dl>
+ <b-form-checkbox
+ id="rtadSwitch"
+ v-model="rtadState"
+ data-test-id="policies-toggle-rtad"
+ switch
+ @change="changeRtadState"
+ >
+ <span class="sr-only">
+ {{ $t('pagePolicies.rtad') }}
+ </span>
+ <span v-if="rtadState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ </b-col>
+ </b-row>
+ </page-section>
</b-container>
</template>
<script>
import PageTitle from '@/components/_sila/Global/PageTitle';
+import PageSection from '@/components/_sila/Global/PageSection';
import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
export default {
name: 'Policies',
- components: { PageTitle },
+ components: { PageTitle, PageSection },
mixins: [LoadingBarMixin, BVToastMixin],
beforeRouteLeave(to, from, next) {
this.hideLoader();
diff --git a/src/views/_sila/SecurityAndAccess/Sessions/Sessions.vue b/src/views/_sila/SecurityAndAccess/Sessions/Sessions.vue
index d922c241..5178b180 100644
--- a/src/views/_sila/SecurityAndAccess/Sessions/Sessions.vue
+++ b/src/views/_sila/SecurityAndAccess/Sessions/Sessions.vue
@@ -35,6 +35,7 @@
no-select-on-click
hover
show-empty
+ class="table-rounded"
no-border-collapse
sort-by="clientID"
:busy="isBusy"
@@ -289,10 +290,3 @@ export default {
},
};
</script>
-<style lang="scss">
-#table-session-logs {
- td .btn-link {
- width: auto !important;
- }
-}
-</style>
diff --git a/src/views/_sila/SecurityAndAccess/UserManagement/UserManagement.vue b/src/views/_sila/SecurityAndAccess/UserManagement/UserManagement.vue
index 423ce4c1..f5179d46 100644
--- a/src/views/_sila/SecurityAndAccess/UserManagement/UserManagement.vue
+++ b/src/views/_sila/SecurityAndAccess/UserManagement/UserManagement.vue
@@ -1,7 +1,7 @@
<template>
- <b-container fluid="xl">
+ <b-container fluid class="m-0 p-0">
<page-title />
- <b-row>
+ <b-row class="bootstrap-table__section">
<b-col xl="9" class="text-right">
<b-button variant="link" @click="initModalSettings">
<icon-settings />
@@ -17,7 +17,7 @@
</b-button>
</b-col>
</b-row>
- <b-row>
+ <b-row class="bootstrap-table__section">
<b-col xl="9">
<table-toolbar
ref="toolbar"
@@ -31,8 +31,10 @@
responsive="md"
selectable
show-empty
+ class="table-rounded"
no-select-on-click
hover
+ no-border-collapse
:busy="isBusy"
:fields="fields"
:items="tableItems"
@@ -85,7 +87,7 @@
</b-table>
</b-col>
</b-row>
- <b-row>
+ <b-row class="bootstrap-table__section">
<b-col xl="8">
<b-button
v-b-toggle.collapse-role-table
@@ -381,7 +383,6 @@ export default {
},
};
</script>
-
<style lang="scss" scoped>
.btn.collapsed {
svg {
diff --git a/src/views/_sila/Settings/DateTime/DateTime.vue b/src/views/_sila/Settings/DateTime/DateTime.vue
new file mode 100644
index 00000000..63570c39
--- /dev/null
+++ b/src/views/_sila/Settings/DateTime/DateTime.vue
@@ -0,0 +1,435 @@
+<template>
+ <b-container id="date-time" fluid="xxl" class="pt-0 m-0">
+ <page-title />
+ <b-row class="bootstrap-table__section">
+ <b-col md="8" xl="6">
+ <alert variant="info" class="mb-4">
+ <span>
+ {{ $t('pageDateTime.alert.message') }}
+ <b-link to="/profile-settings">
+ {{ $t('pageDateTime.alert.link') }}</b-link
+ >
+ </span>
+ </alert>
+ </b-col>
+ </b-row>
+ <page-section class="bootstrap-table__section">
+ <b-row>
+ <b-col lg="3">
+ <dl>
+ <dt>{{ $t('pageDateTime.form.date') }}</dt>
+ <dd v-if="bmcTime">{{ bmcTime | formatDate }}</dd>
+ <dd v-else>--</dd>
+ </dl>
+ </b-col>
+ <b-col lg="3">
+ <dl>
+ <dt>{{ $t('pageDateTime.form.time.label') }}</dt>
+ <dd v-if="bmcTime">{{ bmcTime | formatTime }}</dd>
+ <dd v-else>--</dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </page-section>
+ <page-section
+ class="bootstrap-table__section"
+ :section-title="$t('pageDateTime.configureSettings')"
+ >
+ <b-form novalidate @submit.prevent="submitForm">
+ <b-form-group
+ label="Configure date and time"
+ :disabled="loading"
+ label-sr-only
+ >
+ <b-form-radio
+ v-model="form.configurationSelected"
+ value="manual"
+ data-test-id="dateTime-radio-configureManual"
+ >
+ {{ $t('pageDateTime.form.manual') }}
+ </b-form-radio>
+ <b-row class="mt-3 ml-3">
+ <b-col sm="6" lg="4" xl="3">
+ <b-form-group
+ :label="$t('pageDateTime.form.date')"
+ label-for="input-manual-date"
+ label-class="regular-14px"
+ >
+ <b-form-text id="date-format-help">YYYY-MM-DD</b-form-text>
+ <b-input-group>
+ <b-form-input
+ id="input-manual-date"
+ v-model="form.manual.date"
+ :state="getValidationState($v.form.manual.date)"
+ :disabled="ntpOptionSelected"
+ data-test-id="dateTime-input-manualDate"
+ class="form-control-with-button"
+ @blur="$v.form.manual.date.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <div v-if="!$v.form.manual.date.pattern">
+ {{ $t('global.form.invalidFormat') }}
+ </div>
+ <div v-if="!$v.form.manual.date.required">
+ {{ $t('global.form.fieldRequired') }}
+ </div>
+ </b-form-invalid-feedback>
+ <b-form-datepicker
+ v-model="form.manual.date"
+ class="btn-datepicker btn-icon-only"
+ button-only
+ right
+ :hide-header="true"
+ :locale="locale"
+ :label-help="
+ $t('global.calendar.useCursorKeysToNavigateCalendarDates')
+ "
+ :title="$t('global.calendar.selectDate')"
+ :disabled="ntpOptionSelected"
+ button-variant="link"
+ aria-controls="input-manual-date"
+ >
+ <template #button-content>
+ <icon-calendar />
+ <span class="sr-only">
+ {{ $t('global.calendar.selectDate') }}
+ </span>
+ </template>
+ </b-form-datepicker>
+ </b-input-group>
+ </b-form-group>
+ </b-col>
+ <b-col sm="6" lg="4" xl="3">
+ <b-form-group
+ :label="$t('pageDateTime.form.time.timezone', { timezone })"
+ label-for="input-manual-time"
+ label-class="regular-14px"
+ >
+ <b-form-text id="time-format-help">HH:MM</b-form-text>
+ <b-input-group>
+ <b-form-input
+ id="input-manual-time"
+ v-model="form.manual.time"
+ :state="getValidationState($v.form.manual.time)"
+ :disabled="ntpOptionSelected"
+ data-test-id="dateTime-input-manualTime"
+ @blur="$v.form.manual.time.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <div v-if="!$v.form.manual.time.pattern">
+ {{ $t('global.form.invalidFormat') }}
+ </div>
+ <div v-if="!$v.form.manual.time.required">
+ {{ $t('global.form.fieldRequired') }}
+ </div>
+ </b-form-invalid-feedback>
+ </b-input-group>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ <b-form-radio
+ v-model="form.configurationSelected"
+ value="ntp"
+ data-test-id="dateTime-radio-configureNTP"
+ >
+ {{ $t('SystemDescription.GetNtpFromServer') }}
+ </b-form-radio>
+ <b-row class="mt-3 ml-3">
+ <b-col sm="6" lg="4" xl="3">
+ <b-form-group
+ :label="$t('pageDateTime.form.ntpServers.server1')"
+ label-for="input-ntp-1"
+ label-class="regular-14px"
+ >
+ <b-input-group>
+ <b-form-input
+ id="input-ntp-1"
+ v-model="form.ntp.firstAddress"
+ :state="getValidationState($v.form.ntp.firstAddress)"
+ :disabled="manualOptionSelected"
+ data-test-id="dateTime-input-ntpServer1"
+ @blur="$v.form.ntp.firstAddress.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <div v-if="!$v.form.ntp.firstAddress.required">
+ {{ $t('global.form.fieldRequired') }}
+ </div>
+ </b-form-invalid-feedback>
+ </b-input-group>
+ </b-form-group>
+ </b-col>
+ <b-col sm="6" lg="4" xl="3">
+ <b-form-group
+ :label="$t('pageDateTime.form.ntpServers.server2')"
+ label-for="input-ntp-2"
+ label-class="regular-14px"
+ >
+ <b-input-group>
+ <b-form-input
+ id="input-ntp-2"
+ v-model="form.ntp.secondAddress"
+ :disabled="manualOptionSelected"
+ data-test-id="dateTime-input-ntpServer2"
+ />
+ </b-input-group>
+ </b-form-group>
+ </b-col>
+ <b-col sm="6" lg="4" xl="3">
+ <b-form-group
+ :label="$t('pageDateTime.form.ntpServers.server3')"
+ label-for="input-ntp-3"
+ label-class="regular-14px"
+ >
+ <b-input-group>
+ <b-form-input
+ id="input-ntp-3"
+ v-model="form.ntp.thirdAddress"
+ :disabled="manualOptionSelected"
+ data-test-id="dateTime-input-ntpServer3"
+ />
+ </b-input-group>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ <b-button
+ variant="primary"
+ type="submit"
+ data-test-id="dateTime-button-saveSettings"
+ >
+ {{ $t('global.action.saveSettings') }}
+ </b-button>
+ </b-form-group>
+ </b-form>
+ </page-section>
+ </b-container>
+</template>
+
+<script>
+import Alert from '@/components/Global/Alert';
+import IconCalendar from '@carbon/icons-vue/es/calendar/20';
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
+import LocalTimezoneLabelMixin from '@/components/Mixins/LocalTimezoneLabelMixin';
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+
+import { mapState } from 'vuex';
+import { requiredIf, helpers } from 'vuelidate/lib/validators';
+
+const isoDateRegex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/;
+const isoTimeRegex = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/;
+
+export default {
+ name: 'DateTime',
+ components: { Alert, IconCalendar, PageTitle, PageSection },
+ mixins: [
+ BVToastMixin,
+ LoadingBarMixin,
+ LocalTimezoneLabelMixin,
+ VuelidateMixin,
+ ],
+ beforeRouteLeave(to, from, next) {
+ this.hideLoader();
+ next();
+ },
+ data() {
+ return {
+ locale: this.$store.getters['global/languagePreference'],
+ form: {
+ configurationSelected: 'manual',
+ manual: {
+ date: '',
+ time: '',
+ },
+ ntp: { firstAddress: '', secondAddress: '', thirdAddress: '' },
+ },
+ loading,
+ };
+ },
+ validations() {
+ return {
+ form: {
+ manual: {
+ date: {
+ required: requiredIf(function () {
+ return this.form.configurationSelected === 'manual';
+ }),
+ pattern: helpers.regex('pattern', isoDateRegex),
+ },
+ time: {
+ required: requiredIf(function () {
+ return this.form.configurationSelected === 'manual';
+ }),
+ pattern: helpers.regex('pattern', isoTimeRegex),
+ },
+ },
+ ntp: {
+ firstAddress: {
+ required: requiredIf(function () {
+ return this.form.configurationSelected === 'ntp';
+ }),
+ },
+ },
+ },
+ };
+ },
+ computed: {
+ ...mapState('dateTime', ['ntpServers', 'isNtpProtocolEnabled']),
+ bmcTime() {
+ return this.$store.getters['global/bmcTime'];
+ },
+ ntpOptionSelected() {
+ return this.form.configurationSelected === 'ntp';
+ },
+ manualOptionSelected() {
+ return this.form.configurationSelected === 'manual';
+ },
+ isUtcDisplay() {
+ return this.$store.getters['global/isUtcDisplay'];
+ },
+ timezone() {
+ if (this.isUtcDisplay) {
+ return 'UTC';
+ }
+ return this.localOffset();
+ },
+ },
+ watch: {
+ ntpServers() {
+ this.setNtpValues();
+ },
+ manualDate() {
+ this.emitChange();
+ },
+ bmcTime() {
+ this.form.manual.date = this.$options.filters.formatDate(
+ this.$store.getters['global/bmcTime']
+ );
+ this.form.manual.time = this.$options.filters
+ .formatTime(this.$store.getters['global/bmcTime'])
+ .slice(0, 5);
+ },
+ },
+ created() {
+ this.startLoader();
+ this.setNtpValues();
+ Promise.all([
+ this.$store.dispatch('global/getBmcTime'),
+ this.$store.dispatch('dateTime/getNtpData'),
+ ]).finally(() => this.endLoader());
+ },
+ methods: {
+ emitChange() {
+ if (this.$v.$invalid) return;
+ this.$v.$reset(); //reset to re-validate on blur
+ this.$emit('change', {
+ manualDate: this.manualDate ? new Date(this.manualDate) : null,
+ });
+ },
+ setNtpValues() {
+ this.form.configurationSelected = this.isNtpProtocolEnabled
+ ? 'ntp'
+ : 'manual';
+ [
+ this.form.ntp.firstAddress = '',
+ this.form.ntp.secondAddress = '',
+ this.form.ntp.thirdAddress = '',
+ ] = [this.ntpServers[0], this.ntpServers[1], this.ntpServers[2]];
+ },
+ submitForm() {
+ this.$v.$touch();
+ if (this.$v.$invalid) return;
+ this.startLoader();
+
+ let dateTimeForm = {};
+ let isNTPEnabled = this.form.configurationSelected === 'ntp';
+
+ if (!isNTPEnabled) {
+ const isUtcDisplay = this.$store.getters['global/isUtcDisplay'];
+ let date;
+
+ dateTimeForm.ntpProtocolEnabled = false;
+
+ if (isUtcDisplay) {
+ // Create UTC Date
+ date = this.getUtcDate(this.form.manual.date, this.form.manual.time);
+ } else {
+ // Create local Date
+ date = new Date(`${this.form.manual.date} ${this.form.manual.time}`);
+ }
+
+ dateTimeForm.updatedDateTime = date.toISOString();
+ } else {
+ dateTimeForm.ntpProtocolEnabled = true;
+
+ const ntpArray = [
+ this.form.ntp.firstAddress,
+ this.form.ntp.secondAddress,
+ this.form.ntp.thirdAddress,
+ ];
+
+ // Filter the ntpArray to remove empty strings,
+ // per Redfish spec there should be no empty strings or null on the ntp array.
+ const ntpArrayFiltered = ntpArray.filter((x) => x);
+
+ dateTimeForm.ntpServersArray = [...ntpArrayFiltered];
+
+ [this.ntpServers[0], this.ntpServers[1], this.ntpServers[2]] = [
+ ...dateTimeForm.ntpServersArray,
+ ];
+
+ this.setNtpValues();
+ }
+
+ this.$store
+ .dispatch('dateTime/updateDateTime', dateTimeForm)
+ .then((success) => {
+ this.successToast(success);
+ if (!isNTPEnabled) return;
+ // Shift address up if second address is empty
+ // to avoid refreshing after delay when updating NTP
+ if (!this.form.ntp.secondAddress && this.form.ntp.thirdAddres) {
+ this.form.ntp.secondAddress = this.form.ntp.thirdAddres;
+ this.form.ntp.thirdAddress = '';
+ }
+ })
+ .then(() => {
+ this.$store.dispatch('global/getBmcTime');
+ })
+ .catch(({ message }) => this.errorToast(message))
+ .finally(() => {
+ this.$v.form.$reset();
+ this.endLoader();
+ });
+ },
+ getUtcDate(date, time) {
+ // Split user input string values to create
+ // a UTC Date object
+ const datesArray = date.split('-');
+ const timeArray = time.split(':');
+ let utcDate = Date.UTC(
+ datesArray[0], // User input year
+ //UTC expects zero-index month value 0-11 (January-December)
+ //for reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC#Parameters
+ parseInt(datesArray[1]) - 1, // User input month
+ datesArray[2], // User input day
+ timeArray[0], // User input hour
+ timeArray[1] // User input minute
+ );
+ return new Date(utcDate);
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.form-control {
+ height: 40px;
+ max-width: 270px;
+}
+
+.input-group {
+ max-width: 270px;
+}
+</style>
diff --git a/src/views/_sila/Settings/DateTime/index.js b/src/views/_sila/Settings/DateTime/index.js
new file mode 100644
index 00000000..2df21eae
--- /dev/null
+++ b/src/views/_sila/Settings/DateTime/index.js
@@ -0,0 +1,2 @@
+import DateTime from './DateTime.vue';
+export default DateTime;
diff --git a/src/views/_sila/Settings/Network/ModalDns.vue b/src/views/_sila/Settings/Network/ModalDns.vue
new file mode 100644
index 00000000..a1dc9cec
--- /dev/null
+++ b/src/views/_sila/Settings/Network/ModalDns.vue
@@ -0,0 +1,92 @@
+<template>
+ <b-modal
+ id="modal-dns"
+ ref="modal"
+ :title="$t('pageNetwork.table.addDnsAddress')"
+ @hidden="resetForm"
+ >
+ <b-form id="form-dns" style="width: 100%" @submit.prevent="handleSubmit">
+ <b-row>
+ <b-col>
+ <b-form-group
+ :label="$t('pageNetwork.modal.staticDns')"
+ label-for="staticDns"
+ >
+ <b-form-input
+ id="staticDns"
+ v-model="form.staticDns"
+ type="text"
+ :state="getValidationState($v.form.staticDns)"
+ @input="$v.form.staticDns.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <template v-if="!$v.form.staticDns.required">
+ {{ $t('global.form.fieldRequired') }}
+ </template>
+ <template v-if="!$v.form.staticDns.ipAddress">
+ {{ $t('global.form.invalidFormat') }}
+ </template>
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ </b-form>
+ <template #modal-footer="{ cancel }">
+ <b-button variant="secondary" @click="cancel()">
+ {{ $t('global.action.cancel') }}
+ </b-button>
+ <b-button form="form-dns" type="submit" variant="primary" @click="onOk">
+ {{ $t('global.action.add') }}
+ </b-button>
+ </template>
+ </b-modal>
+</template>
+
+<script>
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { ipAddress, required } from 'vuelidate/lib/validators';
+
+export default {
+ mixins: [VuelidateMixin],
+ data() {
+ return {
+ form: {
+ staticDns: null,
+ },
+ };
+ },
+ validations() {
+ return {
+ form: {
+ staticDns: {
+ required,
+ ipAddress,
+ },
+ },
+ };
+ },
+ methods: {
+ handleSubmit() {
+ this.$v.$touch();
+ if (this.$v.$invalid) return;
+ this.$emit('ok', [this.form.staticDns]);
+ this.closeModal();
+ },
+ closeModal() {
+ this.$nextTick(() => {
+ this.$refs.modal.hide();
+ });
+ },
+ resetForm() {
+ this.form.staticDns = null;
+ this.$v.$reset();
+ this.$emit('hidden');
+ },
+ onOk(bvModalEvt) {
+ // prevent modal close
+ bvModalEvt.preventDefault();
+ this.handleSubmit();
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/ModalHostname.vue b/src/views/_sila/Settings/Network/ModalHostname.vue
new file mode 100644
index 00000000..f3221ec7
--- /dev/null
+++ b/src/views/_sila/Settings/Network/ModalHostname.vue
@@ -0,0 +1,110 @@
+<template>
+ <b-modal
+ id="modal-hostname"
+ ref="modal"
+ :title="$t('pageNetwork.modal.editHostnameTitle')"
+ @hidden="resetForm"
+ >
+ <b-form id="hostname-settings" @submit.prevent="handleSubmit">
+ <b-row>
+ <b-col sm="6">
+ <b-form-group
+ :label="$t('pageNetwork.hostname')"
+ label-for="hostname"
+ >
+ <b-form-input
+ id="hostname"
+ v-model="form.hostname"
+ type="text"
+ :state="getValidationState($v.form.hostname)"
+ @input="$v.form.hostname.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <template v-if="!$v.form.hostname.required">
+ {{ $t('global.form.fieldRequired') }}
+ </template>
+ <template v-if="!$v.form.hostname.validateHostname">
+ {{ $t('global.form.lengthMustBeBetween', { min: 1, max: 64 }) }}
+ </template>
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ </b-form>
+ <template #modal-footer="{ cancel }">
+ <b-button variant="secondary" @click="cancel()">
+ {{ $t('global.action.cancel') }}
+ </b-button>
+ <b-button
+ form="hostname-settings"
+ type="submit"
+ variant="primary"
+ @click="onOk"
+ >
+ {{ $t('global.action.add') }}
+ </b-button>
+ </template>
+ </b-modal>
+</template>
+
+<script>
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { required, helpers } from 'vuelidate/lib/validators';
+
+const validateHostname = helpers.regex('validateHostname', /^\S{0,64}$/);
+
+export default {
+ mixins: [VuelidateMixin],
+ props: {
+ hostname: {
+ type: String,
+ default: '',
+ },
+ },
+ data() {
+ return {
+ form: {
+ hostname: '',
+ },
+ };
+ },
+ watch: {
+ hostname() {
+ this.form.hostname = this.hostname;
+ },
+ },
+ validations() {
+ return {
+ form: {
+ hostname: {
+ required,
+ validateHostname,
+ },
+ },
+ };
+ },
+ methods: {
+ handleSubmit() {
+ this.$v.$touch();
+ if (this.$v.$invalid) return;
+ this.$emit('ok', { HostName: this.form.hostname });
+ this.closeModal();
+ },
+ closeModal() {
+ this.$nextTick(() => {
+ this.$refs.modal.hide();
+ });
+ },
+ resetForm() {
+ this.form.hostname = this.hostname;
+ this.$v.$reset();
+ this.$emit('hidden');
+ },
+ onOk(bvModalEvt) {
+ // prevent modal close
+ bvModalEvt.preventDefault();
+ this.handleSubmit();
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/ModalIpv4.vue b/src/views/_sila/Settings/Network/ModalIpv4.vue
new file mode 100644
index 00000000..dcf4a579
--- /dev/null
+++ b/src/views/_sila/Settings/Network/ModalIpv4.vue
@@ -0,0 +1,165 @@
+<template>
+ <b-modal
+ id="modal-add-ipv4"
+ ref="modal"
+ :title="$t('pageNetwork.table.addIpv4Address')"
+ @hidden="resetForm"
+ >
+ <b-form id="form-ipv4" @submit.prevent="handleSubmit">
+ <b-row>
+ <b-col sm="6">
+ <b-form-group
+ :label="$t('pageNetwork.modal.ipAddress')"
+ label-for="ipAddress"
+ >
+ <b-form-input
+ id="ipAddress"
+ v-model="form.ipAddress"
+ type="text"
+ :state="getValidationState($v.form.ipAddress)"
+ @input="$v.form.ipAddress.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <template v-if="!$v.form.ipAddress.required">
+ {{ $t('global.form.fieldRequired') }}
+ </template>
+ <template v-if="!$v.form.ipAddress.ipAddress">
+ {{ $t('global.form.invalidFormat') }}
+ </template>
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ <b-col sm="6">
+ <b-form-group
+ :label="$t('pageNetwork.modal.gateway')"
+ label-for="gateway"
+ >
+ <b-form-input
+ id="gateway"
+ v-model="form.gateway"
+ type="text"
+ :state="getValidationState($v.form.gateway)"
+ @input="$v.form.gateway.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <template v-if="!$v.form.gateway.required">
+ {{ $t('global.form.fieldRequired') }}
+ </template>
+ <template v-if="!$v.form.gateway.ipAddress">
+ {{ $t('global.form.invalidFormat') }}
+ </template>
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ <b-row>
+ <b-col sm="6">
+ <b-form-group
+ :label="$t('pageNetwork.modal.subnetMask')"
+ label-for="subnetMask"
+ >
+ <b-form-input
+ id="subnetMask"
+ v-model="form.subnetMask"
+ type="text"
+ :state="getValidationState($v.form.subnetMask)"
+ @input="$v.form.subnetMask.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <template v-if="!$v.form.subnetMask.required">
+ {{ $t('global.form.fieldRequired') }}
+ </template>
+ <template v-if="!$v.form.subnetMask.ipAddress">
+ {{ $t('global.form.invalidFormat') }}
+ </template>
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ </b-form>
+ <template #modal-footer="{ cancel }">
+ <b-button variant="secondary" @click="cancel()">
+ {{ $t('global.action.cancel') }}
+ </b-button>
+ <b-button form="form-ipv4" type="submit" variant="primary" @click="onOk">
+ {{ $t('global.action.add') }}
+ </b-button>
+ </template>
+ </b-modal>
+</template>
+
+<script>
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { ipAddress, required } from 'vuelidate/lib/validators';
+
+export default {
+ mixins: [VuelidateMixin],
+ props: {
+ defaultGateway: {
+ type: String,
+ default: '',
+ },
+ },
+ data() {
+ return {
+ form: {
+ ipAddress: '',
+ gateway: '',
+ subnetMask: '',
+ },
+ };
+ },
+ watch: {
+ defaultGateway() {
+ this.form.gateway = this.defaultGateway;
+ },
+ },
+ validations() {
+ return {
+ form: {
+ ipAddress: {
+ required,
+ ipAddress,
+ },
+ gateway: {
+ required,
+ ipAddress,
+ },
+ subnetMask: {
+ required,
+ ipAddress,
+ },
+ },
+ };
+ },
+ methods: {
+ handleSubmit() {
+ this.$v.$touch();
+ if (this.$v.$invalid) return;
+ this.$emit('ok', {
+ Address: this.form.ipAddress,
+ Gateway: this.form.gateway,
+ SubnetMask: this.form.subnetMask,
+ });
+ this.closeModal();
+ },
+ closeModal() {
+ this.$nextTick(() => {
+ this.$refs.modal.hide();
+ });
+ },
+ resetForm() {
+ this.form.ipAddress = null;
+ this.form.gateway = this.defaultGateway;
+ this.form.subnetMask = null;
+ this.$v.$reset();
+ this.$emit('hidden');
+ },
+ onOk(bvModalEvt) {
+ // prevent modal close
+ bvModalEvt.preventDefault();
+ this.handleSubmit();
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/ModalMacAddress.vue b/src/views/_sila/Settings/Network/ModalMacAddress.vue
new file mode 100644
index 00000000..d563f4ce
--- /dev/null
+++ b/src/views/_sila/Settings/Network/ModalMacAddress.vue
@@ -0,0 +1,109 @@
+<template>
+ <b-modal
+ id="modal-mac-address"
+ ref="modal"
+ :title="$t('pageNetwork.modal.editMacAddressTitle')"
+ @hidden="resetForm"
+ >
+ <b-form id="mac-settings" @submit.prevent="handleSubmit">
+ <b-row>
+ <b-col sm="6">
+ <b-form-group
+ :label="$t('pageNetwork.macAddress')"
+ label-for="macAddress"
+ >
+ <b-form-input
+ id="mac-address"
+ v-model.trim="form.macAddress"
+ data-test-id="network-input-macAddress"
+ type="text"
+ :state="getValidationState($v.form.macAddress)"
+ @change="$v.form.macAddress.$touch()"
+ />
+ <b-form-invalid-feedback role="alert">
+ <div v-if="!$v.form.macAddress.required">
+ {{ $t('global.form.fieldRequired') }}
+ </div>
+ <div v-if="!$v.form.macAddress.macAddress">
+ {{ $t('global.form.invalidFormat') }}
+ </div>
+ </b-form-invalid-feedback>
+ </b-form-group>
+ </b-col>
+ </b-row>
+ </b-form>
+ <template #modal-footer="{ cancel }">
+ <b-button variant="secondary" @click="cancel()">
+ {{ $t('global.action.cancel') }}
+ </b-button>
+ <b-button
+ form="mac-settings"
+ type="submit"
+ variant="primary"
+ @click="onOk"
+ >
+ {{ $t('global.action.add') }}
+ </b-button>
+ </template>
+ </b-modal>
+</template>
+
+<script>
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { macAddress, required } from 'vuelidate/lib/validators';
+
+export default {
+ mixins: [VuelidateMixin],
+ props: {
+ macAddress: {
+ type: String,
+ default: '',
+ },
+ },
+ data() {
+ return {
+ form: {
+ macAddress: '',
+ },
+ };
+ },
+ watch: {
+ macAddress() {
+ this.form.macAddress = this.macAddress;
+ },
+ },
+ validations() {
+ return {
+ form: {
+ macAddress: {
+ required,
+ macAddress: macAddress(),
+ },
+ },
+ };
+ },
+ methods: {
+ handleSubmit() {
+ this.$v.$touch();
+ if (this.$v.$invalid) return;
+ this.$emit('ok', { MACAddress: this.form.macAddress });
+ this.closeModal();
+ },
+ closeModal() {
+ this.$nextTick(() => {
+ this.$refs.modal.hide();
+ });
+ },
+ resetForm() {
+ this.form.macAddress = this.macAddress;
+ this.$v.$reset();
+ this.$emit('hidden');
+ },
+ onOk(bvModalEvt) {
+ // prevent modal close
+ bvModalEvt.preventDefault();
+ this.handleSubmit();
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/Network.vue b/src/views/_sila/Settings/Network/Network.vue
new file mode 100644
index 00000000..50442be4
--- /dev/null
+++ b/src/views/_sila/Settings/Network/Network.vue
@@ -0,0 +1,166 @@
+<template>
+ <b-container id="page-network" fluid="m-0 p-0">
+ <page-title :description="$t('pageNetwork.pageDescription')" />
+
+ <page-section v-show="ethernetData" class="m-4">
+ <network-global-settings class="m-4" />
+ <b-row>
+ <b-col>
+ <b-card no-body>
+ <b-tabs
+ active-nav-item-class="font-weight-bold"
+ card
+ content-class="mt-3"
+ >
+ <b-tab
+ v-for="(data, index) in ethernetData"
+ :key="data.Id"
+ :title="data.Id"
+ @click="getTabIndex(index)"
+ >
+ <!-- Interface settings -->
+ <network-interface-settings :tab-index="tabIndex" />
+ <!-- IPV4 table -->
+ <table-ipv-4 :tab-index="tabIndex" />
+ <!-- Static DNS table -->
+ <table-dns :tab-index="tabIndex" />
+ </b-tab>
+ </b-tabs>
+ </b-card>
+ </b-col>
+ </b-row>
+ </page-section>
+ <!-- Modals -->
+ <modal-ipv4 :default-gateway="defaultGateway" @ok="saveIpv4Address" />
+ <modal-dns @ok="saveDnsAddress" />
+ <modal-hostname :hostname="currentHostname" @ok="saveSettings" />
+ <modal-mac-address :mac-address="currentMacAddress" @ok="saveSettings" />
+ </b-container>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
+import ModalMacAddress from './ModalMacAddress.vue';
+import ModalHostname from './ModalHostname.vue';
+import ModalIpv4 from './ModalIpv4.vue';
+import ModalDns from './ModalDns.vue';
+import NetworkGlobalSettings from './NetworkGlobalSettings.vue';
+import NetworkInterfaceSettings from './NetworkInterfaceSettings.vue';
+import PageSection from '@/components/Global/PageSection';
+import PageTitle from '@/components/Global/PageTitle';
+import TableIpv4 from './TableIpv4.vue';
+import TableDns from './TableDns.vue';
+import { mapState } from 'vuex';
+
+export default {
+ name: 'Network',
+ components: {
+ ModalHostname,
+ ModalMacAddress,
+ ModalIpv4,
+ ModalDns,
+ NetworkGlobalSettings,
+ NetworkInterfaceSettings,
+ PageSection,
+ PageTitle,
+ TableDns,
+ TableIpv4,
+ },
+ mixins: [BVToastMixin, DataFormatterMixin, LoadingBarMixin],
+ beforeRouteLeave(to, from, next) {
+ this.hideLoader();
+ next();
+ },
+ data() {
+ return {
+ currentHostname: '',
+ currentMacAddress: '',
+ defaultGateway: '',
+ loading,
+ tabIndex: 0,
+ };
+ },
+ computed: {
+ ...mapState('network', ['ethernetData']),
+ },
+ watch: {
+ ethernetData() {
+ this.getModalInfo();
+ },
+ },
+ created() {
+ this.startLoader();
+ const globalSettings = new Promise((resolve) => {
+ this.$root.$on('network-global-settings-complete', () => resolve());
+ });
+ const interfaceSettings = new Promise((resolve) => {
+ this.$root.$on('network-interface-settings-complete', () => resolve());
+ });
+ const networkTableDns = new Promise((resolve) => {
+ this.$root.$on('network-table-dns-complete', () => resolve());
+ });
+ const networkTableIpv4 = new Promise((resolve) => {
+ this.$root.$on('network-table-ipv4-complete', () => resolve());
+ });
+ // Combine all child component Promises to indicate
+ // when page data load complete
+ Promise.all([
+ this.$store.dispatch('network/getEthernetData'),
+ globalSettings,
+ interfaceSettings,
+ networkTableDns,
+ networkTableIpv4,
+ ]).finally(() => this.endLoader());
+ },
+ methods: {
+ getModalInfo() {
+ this.defaultGateway = this.$store.getters[
+ 'network/globalNetworkSettings'
+ ][this.tabIndex].defaultGateway;
+
+ this.currentHostname = this.$store.getters[
+ 'network/globalNetworkSettings'
+ ][this.tabIndex].hostname;
+
+ this.currentMacAddress = this.$store.getters[
+ 'network/globalNetworkSettings'
+ ][this.tabIndex].macAddress;
+ },
+ getTabIndex(selectedIndex) {
+ this.tabIndex = selectedIndex;
+ this.$store.dispatch('network/setSelectedTabIndex', this.tabIndex);
+ this.$store.dispatch(
+ 'network/setSelectedTabId',
+ this.ethernetData[selectedIndex].Id
+ );
+ this.getModalInfo();
+ },
+ saveIpv4Address(modalFormData) {
+ this.startLoader();
+ this.$store
+ .dispatch('network/saveIpv4Address', modalFormData)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message))
+ .finally(() => this.endLoader());
+ },
+ saveDnsAddress(modalFormData) {
+ this.startLoader();
+ this.$store
+ .dispatch('network/saveDnsAddress', modalFormData)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message))
+ .finally(() => this.endLoader());
+ },
+ saveSettings(modalFormData) {
+ this.startLoader();
+ this.$store
+ .dispatch('network/saveSettings', modalFormData)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message))
+ .finally(() => this.endLoader());
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/NetworkGlobalSettings.vue b/src/views/_sila/Settings/Network/NetworkGlobalSettings.vue
new file mode 100644
index 00000000..30287673
--- /dev/null
+++ b/src/views/_sila/Settings/Network/NetworkGlobalSettings.vue
@@ -0,0 +1,161 @@
+<template>
+ <page-section
+ v-if="firstInterface"
+ :section-title="$t('pageNetwork.networkSettings')"
+ >
+ <b-row>
+ <b-col md="3">
+ <dl>
+ <dt>
+ {{ $t('pageNetwork.hostname') }}
+ <b-button variant="link" class="p-1" @click="initSettingsModal()">
+ <icon-edit :title="$t('pageNetwork.modal.editHostnameTitle')" />
+ </b-button>
+ </dt>
+ <dd>{{ dataFormatter(firstInterface.hostname) }}</dd>
+ </dl>
+ </b-col>
+ <b-col md="3">
+ <dl>
+ <dt>{{ $t('pageNetwork.useDomainName') }}</dt>
+ <dd>
+ <b-form-checkbox
+ id="useDomainNameSwitch"
+ v-model="useDomainNameState"
+ data-test-id="networkSettings-switch-useDomainName"
+ switch
+ @change="changeDomainNameState"
+ >
+ <span v-if="useDomainNameState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </dd>
+ </dl>
+ </b-col>
+ <b-col md="3">
+ <dl>
+ <dt>{{ $t('pageNetwork.useDns') }}</dt>
+ <dd>
+ <b-form-checkbox
+ id="useDnsSwitch"
+ v-model="useDnsState"
+ data-test-id="networkSettings-switch-useDns"
+ switch
+ @change="changeDnsState"
+ >
+ <span v-if="useDnsState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </dd>
+ </dl>
+ </b-col>
+ <b-col md="3">
+ <dl>
+ <dt>{{ $t('pageNetwork.useNtp') }}</dt>
+ <dd>
+ <b-form-checkbox
+ id="useNtpSwitch"
+ v-model="useNtpState"
+ data-test-id="networkSettings-switch-useNtp"
+ switch
+ @change="changeNtpState"
+ >
+ <span v-if="useNtpState">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>{{ $t('global.status.disabled') }}</span>
+ </b-form-checkbox>
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </page-section>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import IconEdit from '@carbon/icons-vue/es/edit/16';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import PageSection from '@/components/Global/PageSection';
+import { mapState } from 'vuex';
+
+export default {
+ name: 'GlobalNetworkSettings',
+ components: { IconEdit, PageSection },
+ mixins: [BVToastMixin, DataFormatterMixin],
+
+ data() {
+ return {
+ hostname: '',
+ };
+ },
+ computed: {
+ ...mapState('network', ['ethernetData']),
+ firstInterface() {
+ return this.$store.getters['network/globalNetworkSettings'][0];
+ },
+ useDomainNameState: {
+ get() {
+ return this.$store.getters['network/globalNetworkSettings'][0]
+ .useDomainNameEnabled;
+ },
+ set(newValue) {
+ return newValue;
+ },
+ },
+ useDnsState: {
+ get() {
+ return this.$store.getters['network/globalNetworkSettings'][0]
+ .useDnsEnabled;
+ },
+ set(newValue) {
+ return newValue;
+ },
+ },
+ useNtpState: {
+ get() {
+ return this.$store.getters['network/globalNetworkSettings'][0]
+ .useNtpEnabled;
+ },
+ set(newValue) {
+ return newValue;
+ },
+ },
+ },
+ created() {
+ this.$store.dispatch('network/getEthernetData').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('network-global-settings-complete');
+ });
+ },
+ methods: {
+ changeDomainNameState(state) {
+ this.$store
+ .dispatch('network/saveDomainNameState', state)
+ .then((success) => {
+ this.successToast(success);
+ })
+ .catch(({ message }) => this.errorToast(message));
+ },
+ changeDnsState(state) {
+ this.$store
+ .dispatch('network/saveDnsState', state)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
+ },
+ changeNtpState(state) {
+ this.$store
+ .dispatch('network/saveNtpState', state)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
+ },
+ initSettingsModal() {
+ this.$bvModal.show('modal-hostname');
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/NetworkInterfaceSettings.vue b/src/views/_sila/Settings/Network/NetworkInterfaceSettings.vue
new file mode 100644
index 00000000..023d29bc
--- /dev/null
+++ b/src/views/_sila/Settings/Network/NetworkInterfaceSettings.vue
@@ -0,0 +1,117 @@
+<template>
+ <div>
+ <page-section>
+ <b-row>
+ <b-col md="3">
+ <dl>
+ <dt>{{ $t('pageNetwork.linkStatus') }}</dt>
+ <dd>
+ {{ dataFormatter(linkStatus) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col md="3">
+ <dl>
+ <dt>{{ $t('pageNetwork.speed') }}</dt>
+ <dd>
+ {{ dataFormatter(linkSpeed) }}
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </page-section>
+ <page-section :section-title="$t('pageNetwork.interfaceSection')">
+ <b-row>
+ <b-col md="3">
+ <dl>
+ <dt>
+ {{ $t('pageNetwork.fqdn') }}
+ </dt>
+ <dd>
+ {{ dataFormatter(fqdn) }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col md="3">
+ <dl class="text-nowrap">
+ <dt>
+ {{ $t('pageNetwork.macAddress') }}
+ <b-button
+ variant="link"
+ class="p-1"
+ @click="initMacAddressModal()"
+ >
+ <icon-edit
+ :title="$t('pageNetwork.modal.editMacAddressTitle')"
+ />
+ </b-button>
+ </dt>
+ <dd>
+ {{ dataFormatter(macAddress) }}
+ </dd>
+ </dl>
+ </b-col>
+ </b-row>
+ </page-section>
+ </div>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import IconEdit from '@carbon/icons-vue/es/edit/16';
+import PageSection from '@/components/Global/PageSection';
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import { mapState } from 'vuex';
+
+export default {
+ name: 'Ipv4Table',
+ components: {
+ IconEdit,
+ PageSection,
+ },
+ mixins: [BVToastMixin, DataFormatterMixin],
+ props: {
+ tabIndex: {
+ type: Number,
+ default: 0,
+ },
+ },
+ data() {
+ return {
+ selectedInterface: '',
+ linkStatus: '',
+ linkSpeed: '',
+ fqdn: '',
+ macAddress: '',
+ };
+ },
+ computed: {
+ ...mapState('network', ['ethernetData']),
+ },
+ watch: {
+ // Watch for change in tab index
+ tabIndex() {
+ this.getSettings();
+ },
+ },
+ created() {
+ this.getSettings();
+ this.$store.dispatch('network/getEthernetData').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('network-interface-settings-complete');
+ });
+ },
+ methods: {
+ getSettings() {
+ this.selectedInterface = this.tabIndex;
+ this.linkStatus = this.ethernetData[this.selectedInterface].LinkStatus;
+ this.linkSpeed = this.ethernetData[this.selectedInterface].SpeedMbps;
+ this.fqdn = this.ethernetData[this.selectedInterface].FQDN;
+ this.macAddress = this.ethernetData[this.selectedInterface].MACAddress;
+ },
+ initMacAddressModal() {
+ this.$bvModal.show('modal-mac-address');
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/TableDns.vue b/src/views/_sila/Settings/Network/TableDns.vue
new file mode 100644
index 00000000..c37c6e9f
--- /dev/null
+++ b/src/views/_sila/Settings/Network/TableDns.vue
@@ -0,0 +1,156 @@
+<template>
+ <page-section :section-title="$t('pageNetwork.staticDns')">
+ <b-row>
+ <b-col lg="6">
+ <div class="text-right">
+ <b-button variant="primary" class="mb-2" @click="initDnsModal()">
+ <icon-add />
+ {{ $t('pageNetwork.table.addDnsAddress') }}
+ </b-button>
+ </div>
+ <b-table
+ responsive="md"
+ hover
+ no-border-collapse
+ :fields="dnsTableFields"
+ :items="form.dnsStaticTableItems"
+ :empty-text="$t('global.table.emptyMessage')"
+ class="mb-0"
+ show-empty
+ >
+ <template #cell(actions)="{ item, index }">
+ <table-row-action
+ v-for="(action, actionIndex) in item.actions"
+ :key="actionIndex"
+ :value="action.value"
+ :title="action.title"
+ :enabled="action.enabled"
+ @click-table-action="onDnsTableAction(action, $event, index)"
+ >
+ <template #icon>
+ <icon-edit v-if="action.value === 'edit'" />
+ <icon-trashcan v-if="action.value === 'delete'" />
+ </template>
+ </table-row-action>
+ </template>
+ </b-table>
+ </b-col>
+ </b-row>
+ </page-section>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import IconAdd from '@carbon/icons-vue/es/add--alt/20';
+import IconEdit from '@carbon/icons-vue/es/edit/20';
+import IconTrashcan from '@carbon/icons-vue/es/trash-can/20';
+import PageSection from '@/components/Global/PageSection';
+import TableRowAction from '@/components/Global/TableRowAction';
+import { mapState } from 'vuex';
+
+export default {
+ name: 'DNSTable',
+ components: {
+ IconAdd,
+ IconEdit,
+ IconTrashcan,
+ PageSection,
+ TableRowAction,
+ },
+ mixins: [BVToastMixin],
+ props: {
+ tabIndex: {
+ type: Number,
+ default: 0,
+ },
+ },
+ data() {
+ return {
+ form: {
+ dnsStaticTableItems: [],
+ },
+ actions: [
+ {
+ value: 'edit',
+ title: this.$t('global.action.edit'),
+ },
+ {
+ value: 'delete',
+ title: this.$t('global.action.delete'),
+ },
+ ],
+ dnsTableFields: [
+ {
+ key: 'address',
+ label: this.$t('pageNetwork.table.ipAddress'),
+ },
+ {
+ key: 'actions',
+ thStyle: { width: '30%' },
+ label: this.$t('pageNetwork.table.actions'),
+ thClass: 'text-right',
+ tdClass: 'text-right',
+ },
+ ],
+ };
+ },
+ computed: {
+ ...mapState('network', ['ethernetData']),
+ },
+ watch: {
+ // Watch for change in tab index
+ tabIndex() {
+ this.getStaticDnsItems();
+ },
+ ethernetData() {
+ this.getStaticDnsItems();
+ },
+ },
+ created() {
+ this.getStaticDnsItems();
+ this.$store.dispatch('network/getEthernetData').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('network-table-dns-complete');
+ });
+ },
+ methods: {
+ getStaticDnsItems() {
+ const index = this.tabIndex;
+ const dns = this.ethernetData[index].StaticNameServers || [];
+ this.form.dnsStaticTableItems = dns.map((server) => {
+ return {
+ address: server,
+ actions: [
+ {
+ value: 'edit',
+ title: this.$t('global.action.edit'),
+ },
+ {
+ value: 'delete',
+ title: this.$t('pageNetwork.table.deleteDns'),
+ },
+ ],
+ };
+ });
+ },
+ onDnsTableAction(action, $event, index) {
+ if ($event === 'delete') {
+ this.deleteDnsTableRow(index);
+ }
+ },
+ deleteDnsTableRow(index) {
+ this.form.dnsStaticTableItems.splice(index, 1);
+ const newDnsArray = this.form.dnsStaticTableItems.map((dns) => {
+ return dns.address;
+ });
+ this.$store
+ .dispatch('network/editDnsAddress', newDnsArray)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
+ },
+ initDnsModal() {
+ this.$bvModal.show('modal-dns');
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/TableIpv4.vue b/src/views/_sila/Settings/Network/TableIpv4.vue
new file mode 100644
index 00000000..6514a59c
--- /dev/null
+++ b/src/views/_sila/Settings/Network/TableIpv4.vue
@@ -0,0 +1,183 @@
+<template>
+ <page-section :section-title="$t('pageNetwork.ipv4')">
+ <b-row>
+ <b-col>
+ <h3 class="h5">
+ {{ $t('pageNetwork.ipv4Addresses') }}
+ </h3>
+ </b-col>
+ <b-col class="text-right">
+ <b-button variant="primary" class="mb-2" @click="initAddIpv4Address()">
+ <icon-add />
+ {{ $t('pageNetwork.table.addIpv4Address') }}
+ </b-button>
+ </b-col>
+ </b-row>
+ <b-table
+ responsive="md"
+ hover
+ class="mb-0"
+ show-empty
+ no-border-collapse
+ :fields="ipv4TableFields"
+ :items="form.ipv4TableItems"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(actions)="{ item, index }">
+ <table-row-action
+ v-for="(action, actionIndex) in item.actions"
+ :key="actionIndex"
+ :value="action.value"
+ :title="action.title"
+ :enabled="action.enabled"
+ @click-table-action="onIpv4TableAction(action, $event, index)"
+ >
+ <template #icon>
+ <icon-edit v-if="action.value === 'edit'" />
+ <icon-trashcan v-if="action.value === 'delete'" />
+ </template>
+ </table-row-action>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import IconAdd from '@carbon/icons-vue/es/add--alt/20';
+import IconEdit from '@carbon/icons-vue/es/edit/20';
+import IconTrashcan from '@carbon/icons-vue/es/trash-can/20';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+import PageSection from '@/components/Global/PageSection';
+import TableRowAction from '@/components/Global/TableRowAction';
+import { mapState } from 'vuex';
+
+export default {
+ name: 'Ipv4Table',
+ components: {
+ IconAdd,
+ IconEdit,
+ IconTrashcan,
+ PageSection,
+ TableRowAction,
+ },
+ mixins: [BVToastMixin, LoadingBarMixin],
+ props: {
+ tabIndex: {
+ type: Number,
+ default: 0,
+ },
+ },
+ data() {
+ return {
+ form: {
+ ipv4TableItems: [],
+ },
+ actions: [
+ {
+ value: 'edit',
+ title: this.$t('global.action.edit'),
+ },
+ {
+ value: 'delete',
+ title: this.$t('global.action.delete'),
+ },
+ ],
+ ipv4TableFields: [
+ {
+ key: 'Address',
+ label: this.$t('pageNetwork.table.ipAddress'),
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'Gateway',
+ label: this.$t('pageNetwork.table.gateway'),
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'SubnetMask',
+ label: this.$t('pageNetwork.table.subnet'),
+ },
+ {
+ key: 'AddressOrigin',
+ label: this.$t('pageNetwork.table.addressOrigin'),
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'actions',
+ label: this.$t('pageNetwork.table.actions'),
+ thStyle: { width: '10%' },
+ thClass: 'text-right',
+ tdClass: 'text-right',
+ },
+ ],
+ };
+ },
+ computed: {
+ ...mapState('network', ['ethernetData']),
+ },
+ watch: {
+ // Watch for change in tab index
+ tabIndex() {
+ this.getIpv4TableItems();
+ },
+ ethernetData() {
+ this.getIpv4TableItems();
+ },
+ },
+ created() {
+ this.getIpv4TableItems();
+ this.$store.dispatch('network/getEthernetData').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('network-table-ipv4-complete');
+ });
+ },
+ methods: {
+ getIpv4TableItems() {
+ const index = this.tabIndex;
+ const addresses = this.ethernetData[index].IPv4Addresses || [];
+ this.form.ipv4TableItems = addresses.map((ipv4) => {
+ return {
+ Address: ipv4.Address,
+ SubnetMask: ipv4.SubnetMask,
+ Gateway: ipv4.Gateway,
+ AddressOrigin: ipv4.AddressOrigin,
+ actions: [
+ {
+ value: 'edit',
+ title: this.$t('pageNetwork.table.edit'),
+ },
+ {
+ value: 'delete',
+ title: this.$t('pageNetwork.table.deleteIpv4'),
+ },
+ ],
+ };
+ });
+ },
+ onIpv4TableAction(action, $event, index) {
+ if ($event === 'delete') {
+ this.deleteIpv4TableRow(index);
+ }
+ },
+ deleteIpv4TableRow(index) {
+ this.form.ipv4TableItems.splice(index, 1);
+ const newIpv4Array = this.form.ipv4TableItems.map((ipv4) => {
+ const { Address, SubnetMask, Gateway } = ipv4;
+ return {
+ Address,
+ SubnetMask,
+ Gateway,
+ };
+ });
+ this.$store
+ .dispatch('network/editIpv4Address', newIpv4Array)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
+ },
+ initAddIpv4Address() {
+ this.$bvModal.show('modal-add-ipv4');
+ },
+ },
+};
+</script>
diff --git a/src/views/_sila/Settings/Network/index.js b/src/views/_sila/Settings/Network/index.js
new file mode 100644
index 00000000..97bf0397
--- /dev/null
+++ b/src/views/_sila/Settings/Network/index.js
@@ -0,0 +1,2 @@
+import Network from './Network.vue';
+export default Network;
diff --git a/src/views/_sila/Settings/PowerRestorePolicy/PowerRestorePolicy.vue b/src/views/_sila/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
index c357d47a..06e30f3e 100644
--- a/src/views/_sila/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
+++ b/src/views/_sila/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
@@ -21,10 +21,10 @@
</template>
<script>
-import PageTitle from '@/components/_sila/Global/PageTitle';
-import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
-import VuelidateMixin from '@/components/_sila/Mixins/VuelidateMixin.js';
-import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin';
+import PageTitle from '@/components/Global/PageTitle';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
export default {
name: 'PowerRestorePolicy',
diff --git a/src/views/_sila/Support/Support.vue b/src/views/_sila/Support/Support.vue
new file mode 100644
index 00000000..a23ad55f
--- /dev/null
+++ b/src/views/_sila/Support/Support.vue
@@ -0,0 +1,9 @@
+<template>
+ <span>This Page (Support) In develop</span>
+</template>
+
+<script>
+export default {
+ name: 'Support',
+};
+</script>
diff --git a/src/views/_sila/Support/index.js b/src/views/_sila/Support/index.js
new file mode 100644
index 00000000..80b31621
--- /dev/null
+++ b/src/views/_sila/Support/index.js
@@ -0,0 +1 @@
+export { default } from './Support.vue';
diff --git a/src/views/_sila/SystemDescription/Info/InventoryTableSystem.vue b/src/views/_sila/SystemDescription/Info/InventoryTableSystem.vue
new file mode 100644
index 00000000..0c32d2c0
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Info/InventoryTableSystem.vue
@@ -0,0 +1,81 @@
+<template>
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="table-rounded"
+ no-border-collapse
+ :items="items"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import PageSection from '@/components/Global/PageSection';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { PageSection },
+ mixins: [BVToastMixin, TableRowExpandMixin, LoadingBarMixin],
+ data() {
+ return {
+ fields: [
+ {
+ key: 'param',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '50%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ items: null,
+ };
+ },
+ computed: {
+ systems() {
+ return this.$store.getters['system/systems'];
+ },
+ },
+ watch: {
+ systems() {
+ this.items = [
+ {
+ param: 'id',
+ value: this.id,
+ },
+ { param: 'Модель', value: this.systems[0].model },
+ { param: 'Производитель', value: '' },
+ { param: 'Операционная система', value: '' },
+ { param: 'Серийный номер', value: this.systems[0].serialNumber },
+ {
+ param: 'Свободное место на Flash-накопителе',
+ value: '1 024 000 Мб',
+ },
+ ];
+ },
+ },
+ created() {
+ this.$store.dispatch('system/getSystem').finally(() => {
+ // Emit initial data fetch complete to parent component
+ this.$root.$emit('hardware-status-system-complete');
+ });
+ this.startLoader();
+ const systemTablePromise = new Promise((resolve) => {
+ this.$root.$on('hardware-status-system-complete', () => resolve());
+ });
+ Promise.all([systemTablePromise]).finally(() => this.endLoader());
+ },
+};
+</script>
diff --git a/src/views/_sila/SystemDescription/Info/SystemDescription.vue b/src/views/_sila/SystemDescription/Info/SystemDescription.vue
new file mode 100644
index 00000000..0a2bb305
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Info/SystemDescription.vue
@@ -0,0 +1,148 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title />
+ <!-- System table -->
+ <table-system />
+ <!-- Notes Administration -->
+ <section class="notes-section">
+ <div class="semi-bold-12px textarea-description">
+ <span>{{ $t('SystemDescription.title.Notes') }}</span>
+ </div>
+ <div class="textarea-container">
+ <div class="buttons-container">
+ <button class="notes-button">
+ <img src="@/assets/images/textarea-buttons/button-icon-bold.svg" />
+ </button>
+ <button class="notes-button">
+ <img
+ src="@/assets/images/textarea-buttons/button-icon-cursive.svg"
+ />
+ </button>
+ <button class="notes-button">
+ <img
+ src="@/assets/images/textarea-buttons/button-icon-underline.svg"
+ />
+ </button>
+ <button class="notes-button">
+ <img
+ src="@/assets/images/textarea-buttons/button-icon-crossline.svg"
+ />
+ </button>
+ <button class="notes-button">
+ <img src="@/assets/images/textarea-buttons/button-icon-link.svg" />
+ </button>
+ <div class="line"></div>
+ <button class="notes-button">
+ <img src="@/assets/images/textarea-buttons/button-icon-list.svg" />
+ </button>
+ <button class="notes-button">
+ <img
+ src="@/assets/images/textarea-buttons/button-icon-number-list.svg"
+ />
+ </button>
+ </div>
+ <textarea
+ id=""
+ name="area"
+ placeholder="Тут будет текст который ввел администратор и работать в качестве блокнота"
+ cols="30"
+ rows="10"
+ class="notes-textarea"
+ ></textarea>
+ </div>
+ </section>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import TableSystem from './InventoryTableSystem';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+export default {
+ components: {
+ PageTitle,
+ TableSystem,
+ },
+ data() {
+ return {
+ text: '',
+ iconChevronUp: iconChevronUp,
+ };
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+
+.nav-item {
+ list-style-type: none;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+//section style
+.notes-section {
+ display: flex;
+ flex-direction: column;
+}
+
+.textarea-description {
+ margin: 5px 0 10px 2rem;
+}
+
+.buttons-container {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.notes-button {
+ width: 2rem;
+ height: 2rem;
+ margin: 22px 0 22px 25px;
+ background-color: $surface-secondary;
+ border: none;
+ &:hover {
+ border-radius: 8px;
+ background-color: $faint-secondary-primary-5-hover;
+ }
+}
+
+.line {
+ display: inline-block;
+ width: 1px;
+ height: 2rem;
+ margin: 22px 0 22px 25px;
+ border-left: 1px solid rgba(26, 62, 91, 0.2);
+}
+
+.textarea-container {
+ display: flex;
+ flex-direction: column;
+ border-radius: 8px;
+ margin: 0 1rem 1rem 1rem;
+ background-color: $surface-secondary;
+}
+
+.notes-textarea {
+ resize: none;
+ border: none;
+ flex: 0 0 auto;
+ margin: 0 1rem 1rem 1rem;
+ border-radius: 8px;
+ background-color: $white;
+}
+</style>
diff --git a/src/views/_sila/SystemDescription/Info/index.js b/src/views/_sila/SystemDescription/Info/index.js
new file mode 100644
index 00000000..8b483f2d
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Info/index.js
@@ -0,0 +1,2 @@
+import SystemDescription from './SystemDescription.vue';
+export default SystemDescription;
diff --git a/src/views/_sila/SystemDescription/Network/InventoryIPv4Settings.vue b/src/views/_sila/SystemDescription/Network/InventoryIPv4Settings.vue
new file mode 100644
index 00000000..980aee5a
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Network/InventoryIPv4Settings.vue
@@ -0,0 +1,277 @@
+<template>
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="systems"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="data">
+ <b-row v-if="data.index === 0">
+ <b-col>
+ <span>
+ {{ data.value ? 'Включен' : 'Выключен' }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-button
+ :id="`popover-choice-${data.index}`"
+ class="popover-option-ractive"
+ variant="toogle-popover"
+ >
+ <img :is="iconChevron" class="icon-chevron" />
+ </b-button>
+ <two-chioce-popover
+ :id="data.index"
+ fitst-option="Включен"
+ second-option="Выключен"
+ :chosen-option="chosenOption"
+ :first-action="setOn"
+ :second-action="setOff"
+ placement="leftbottom"
+ />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-form-input
+ v-if="systems[data.index].isEdit"
+ ref="input"
+ v-model="selectedCell"
+ class="regular-12px"
+ :class="{ validateIP: isIpInvalid }"
+ type="text"
+ @keydown.enter="clickOk(data)"
+ @keydown.escape="clickCancel(data)"
+ ></b-form-input>
+ <b-col v-else>{{ data.value }}</b-col>
+ <b-col class="table-network__icon">
+ <b-row v-if="systems[data.index].isEdit">
+ <img
+ src="@/assets/images/edit-ok.svg"
+ class="system-network-table__icon pointer"
+ @click="clickOk(data)"
+ />
+ <img
+ src="@/assets/images/edit-no.svg"
+ class="system-network-table__icon close_icon pointer"
+ @click="clickCancel(data)"
+ />
+ </b-row>
+ <img
+ v-else
+ src="@/assets/images/icon-edit.svg"
+ class="system-network-table__icon icon-edit pointer"
+ @click="editCellHandler(data)"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import PageSection from '@/components/Global/PageSection';
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+import TwoChiocePopover from '@/components/Global/SilaComponents/TwoChiocePopover';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { PageSection, TwoChiocePopover },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ selectedCell: null,
+ isActive: false,
+ isIpInvalid: false,
+ chosenOption: 'Выключен',
+ fields: [
+ {
+ key: 'param',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '30%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'comment',
+ label: 'Комментарий',
+ formatter: this.dataFormatter,
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ iconChevron,
+ systems: [
+ {
+ param: 'DHCP Server (откуда получен IP)',
+ value: false,
+ comment: 'Когда DHPC Server включен параметры вводятся автоматически',
+ },
+ {
+ param: 'IP-адрес',
+ value: '192.168.1.1',
+ comment: 'Введите IP адрес',
+ },
+ {
+ param: 'Маска',
+ value: '192.168.0.1',
+ comment: 'Введите маску сети',
+ },
+ {
+ param: 'Сетевой шлюз',
+ value: '192.168.0.1',
+ comment: 'Введите сетевой шлюз',
+ },
+ {
+ param: 'DNS',
+ value: '8.8.8.8',
+ comment: 'Введите DNS',
+ },
+ ],
+ };
+ },
+ methods: {
+ editCellHandler(data) {
+ this.systems = this.systems.map((item) => ({ ...item, isEdit: false }));
+ this.systems[data.index].isEdit = true;
+ this.selectedCell = this.systems[data.index].value;
+ this.$nextTick(() => this.$refs.input.focus());
+ },
+ clickOk(data) {
+ const EDIT_VALUE = this.selectedCell.trim();
+ if (this.validateIP(EDIT_VALUE)) {
+ this.systems[data.index].value = EDIT_VALUE;
+ this.isIpInvalid = false;
+ this.selectedCell = null;
+ this.systems[data.index].isEdit = false;
+ } else {
+ this.isIpInvalid = true;
+ }
+ },
+ clickCancel(data) {
+ this.isIpInvalid = false;
+ this.selectedCell = null;
+ this.systems[data.index].isEdit = false;
+ },
+ validateIP(ipCheck) {
+ return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(
+ ipCheck
+ );
+ },
+ setOn() {
+ this.chosenOption = 'Включен';
+ this.systems[0].value = true;
+ },
+ setOff() {
+ this.chosenOption = 'Выключен';
+ this.systems[0].value = false;
+ },
+ DHCPoff() {
+ this.systems[0].value = false;
+ this.isActive = false;
+ },
+ DHCPon() {
+ this.systems[0].value = true;
+ this.isActive = false;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ align-items: baseline;
+ flex-wrap: nowrap;
+}
+.icon-expand {
+ margin: 0 !important;
+}
+
+.close_icon {
+ margin-left: 5px;
+}
+
+.form-control {
+ max-height: 16px;
+ width: 60%;
+ background-color: transparent;
+ &:focus {
+ box-shadow: none;
+ }
+ &.validateIP {
+ color: $red-brand-primary;
+ }
+}
+.popup-container {
+ position: relative;
+}
+
+.popup {
+ position: absolute;
+ top: -12px;
+ left: 3px;
+ width: 97%;
+ background: $white;
+ z-index: 1000;
+ border: 1px solid rgba(26, 62, 91, 0.1);
+ box-sizing: border-box;
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
+ border-radius: 8px;
+ visibility: hidden;
+}
+
+.popup-button {
+ width: 96%;
+ height: 50px;
+ margin: 4px;
+ border-radius: 8px;
+ border: none;
+
+ display: flex;
+ align-items: center;
+ &.popup-on {
+ color: $red-brand-primary;
+ border-radius: 8px;
+ &:hover {
+ background-color: $faint-secondary-primary-5-hover;
+ }
+ &:active {
+ background-color: $faint-secondary-primary-20;
+ }
+ }
+
+ &.popup-off {
+ background-color: $red-brand-primary;
+ color: $white;
+ &:hover {
+ background-color: $red-brand-primary-hover;
+ }
+ &:active {
+ background-color: $red-brand-primary-active;
+ }
+ }
+}
+
+.popup-text {
+ margin-left: 20px;
+}
+
+.popup_active {
+ visibility: visible;
+}
+
+.popover-option-ractive {
+ display: block;
+ margin: -6px 9px 0 auto;
+}
+</style>
diff --git a/src/views/_sila/SystemDescription/Network/InventoryIPv6Settings.vue b/src/views/_sila/SystemDescription/Network/InventoryIPv6Settings.vue
new file mode 100644
index 00000000..a8c590b1
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Network/InventoryIPv6Settings.vue
@@ -0,0 +1,263 @@
+<template>
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ no-border-collapse
+ :items="systems"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="data">
+ <b-row v-if="!(typeof data.value === 'boolean')">
+ <b-form-input
+ v-if="systems[data.index].isEdit"
+ ref="input"
+ v-model="selectedCell"
+ class="regular-12px"
+ :class="{ validateIP: isIpInvalid }"
+ type="text"
+ @keydown.enter="clickOk(data)"
+ @keydown.escape="clickCancel(data)"
+ ></b-form-input>
+ <b-col v-else>{{ data.value }}</b-col>
+ <b-col class="table-network__icon">
+ <b-row v-if="systems[data.index].isEdit">
+ <img
+ src="@/assets/images/edit-ok.svg"
+ class="system-network-table__icon pointer"
+ @click="clickOk(data)"
+ />
+ <img
+ src="@/assets/images/edit-no.svg"
+ class="system-network-table__icon close_icon pointer"
+ @click="clickCancel(data)"
+ />
+ </b-row>
+ <img
+ v-else
+ src="@/assets/images/icon-edit.svg"
+ class="system-network-table__icon pointer"
+ @click="editCellHandler(data)"
+ />
+ </b-col>
+ </b-row>
+ <b-row v-else class="popup-container">
+ <b-col v-if="data.value">{{ 'Включен' }}</b-col>
+ <b-col v-else>{{ 'Выключен' }}</b-col>
+ <div
+ v-if="isActive"
+ class="popup"
+ :class="{ popup_active: isActive }"
+ >
+ <button class="popup-button popup-on medium-12px" @click="DHCPon">
+ <span class="popup-text">Включен</span>
+ </button>
+ <button class="popup-button popup-off medium-12px" @click="DHCPoff">
+ <span class="popup-text">Выключен</span>
+ </button>
+ </div>
+ <b-col class="table-network__icon">
+ <img
+ :is="iconChevron"
+ class="pointer"
+ @click="isActive = !isActive"
+ />
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import PageSection from '@/components/Global/PageSection';
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+import TableRowExpandMixin, {
+ expandRowLabel,
+} from '@/components/Mixins/TableRowExpandMixin';
+
+export default {
+ components: { PageSection },
+ mixins: [BVToastMixin, TableRowExpandMixin, DataFormatterMixin],
+ data() {
+ return {
+ isBusy: true,
+ selectedCell: null,
+ isIpInvalid: false,
+ isActive: false,
+ fields: [
+ {
+ key: 'param',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thStyle: { width: '30%' },
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ thStyle: { width: '20%' },
+ },
+ {
+ key: 'comment',
+ label: 'Комментарий',
+ formatter: this.dataFormatter,
+ },
+ ],
+ expandRowLabel: expandRowLabel,
+ iconChevron,
+ systems: [
+ {
+ param: 'DHCP Server (откуда получен IP)',
+ value: false,
+ comment: 'Когда DHPC Server включен параметры вводятся автоматически',
+ },
+ {
+ param: 'IP-адрес',
+ value: 'fe80::1ff:fe23:4567:890a',
+ comment: 'Введите IP адрес',
+ },
+ {
+ param: 'Маска',
+ value: 'fe80::1ff:fe23:4567:890a',
+ comment: 'Введите маску сети',
+ },
+ {
+ param: 'Сетевой шлюз',
+ value: 'fe80::1ff:fe23:4567:890a',
+ comment: 'Введите сетевой шлюз',
+ },
+ {
+ param: 'DNS',
+ value: 'fe80::1ff:fe23:4567:890a',
+ comment: 'Введите DNS',
+ },
+ ],
+ };
+ },
+ methods: {
+ editCellHandler(data) {
+ this.systems = this.systems.map((item) => ({ ...item, isEdit: false }));
+ this.systems[data.index].isEdit = true;
+ this.selectedCell = this.systems[data.index].value;
+ this.$nextTick(() => this.$refs.input.focus());
+ },
+ clickOk(data) {
+ const EDIT_VALUE = this.selectedCell.trim();
+ if (this.validateIP(EDIT_VALUE)) {
+ this.systems[data.index].value = EDIT_VALUE;
+ this.isIpInvalid = false;
+ this.selectedCell = null;
+ this.systems[data.index].isEdit = false;
+ } else {
+ this.isIpInvalid = true;
+ }
+ },
+ clickCancel(data) {
+ this.isIpInvalid = false;
+ this.selectedCell = null;
+ this.systems[data.index].isEdit = false;
+ },
+ validateIP(ipCheck) {
+ return /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/gi.test(
+ ipCheck
+ );
+ },
+ DHCPoff() {
+ this.systems[0].value = false;
+ this.isActive = false;
+ },
+ DHCPon() {
+ this.systems[0].value = true;
+ this.isActive = false;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ align-items: baseline;
+ flex-wrap: nowrap;
+}
+.icon-expand {
+ margin: 0 !important;
+}
+
+.close_icon {
+ margin-left: 5px;
+}
+
+.form-control {
+ max-height: 16px;
+ width: 60%;
+ background-color: transparent;
+ &:focus {
+ box-shadow: none;
+ }
+ &.validateIP {
+ color: $red-brand-primary;
+ }
+}
+
+.popup-container {
+ position: relative;
+}
+
+.popup {
+ position: absolute;
+ top: -12px;
+ left: 3px;
+ width: 97%;
+ background: $white;
+ z-index: 1000;
+ border: 1px solid rgba(26, 62, 91, 0.1);
+ box-sizing: border-box;
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
+ border-radius: 8px;
+ visibility: hidden;
+}
+
+.popup-button {
+ width: 96%;
+ height: 50px;
+ margin: 4px;
+ border-radius: 8px;
+ border: none;
+ cursor: pointer;
+
+ display: flex;
+ align-items: center;
+ &.popup-on {
+ color: $red-brand-primary;
+ border-radius: 8px;
+ &:hover {
+ background-color: $faint-secondary-primary-5-hover;
+ }
+ &:active {
+ background-color: $faint-secondary-primary-20;
+ }
+ }
+
+ &.popup-off {
+ background-color: $red-brand-primary;
+ color: $white;
+ &:hover {
+ background-color: $red-brand-primary-hover;
+ }
+ &:active {
+ background-color: $red-brand-primary-active;
+ }
+ }
+}
+
+.popup-text {
+ margin-left: 20px;
+}
+
+.popup_active {
+ visibility: visible;
+}
+</style>
diff --git a/src/views/_sila/SystemDescription/Network/SystemNetwork.vue b/src/views/_sila/SystemDescription/Network/SystemNetwork.vue
new file mode 100644
index 00000000..19243493
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Network/SystemNetwork.vue
@@ -0,0 +1,101 @@
+<template>
+ <b-container
+ id="page-system-network"
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.networkParametrs')" />
+ <!-- IPv4 -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_1
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ @click="ipv4Handler"
+ >
+ {{ $t('SystemDescription.title.Ipv4Settings') }}
+ <b-form-checkbox
+ id="checkbox-1"
+ v-model="ipv4"
+ @click.native.prevent
+ ></b-form-checkbox>
+ </b-button>
+ <b-collapse id="toggle-collapse_1" class="nav-item__nav">
+ <i-pv4-settings ref="system" />
+ </b-collapse>
+ </div>
+ <!-- IPv6 -->
+ <div class="page-collapse-decorator">
+ <b-button
+ v-b-toggle.toggle-collapse_2
+ variant="link"
+ class="collapse-button semi-bold-16px"
+ @click="ipv6Handler"
+ >
+ {{ $t('SystemDescription.title.Ipv6Settings') }}
+ <b-form-checkbox
+ id="checkbox-2"
+ v-model="ipv6"
+ @click.native.prevent
+ ></b-form-checkbox>
+ </b-button>
+ <b-collapse id="toggle-collapse_2" class="nav-item__nav">
+ <i-pv6-settings ref="system" />
+ </b-collapse>
+ </div>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import IPv4Settings from './InventoryIPv4Settings';
+import IPv6Settings from './InventoryIPv6Settings';
+import iconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
+
+export default {
+ components: {
+ PageTitle,
+ IPv4Settings,
+ IPv6Settings,
+ },
+ data() {
+ return {
+ text: '',
+ iconChevronUp: iconChevronUp,
+ ipv4: false,
+ ipv6: false,
+ };
+ },
+ methods: {
+ ipv4Handler() {
+ this.ipv4 = !this.ipv4;
+ },
+ ipv6Handler() {
+ this.ipv6 = !this.ipv6;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+//nav items style
+.nav-item,
+.nav-link {
+ padding: 0;
+}
+
+.nav-item {
+ list-style-type: none;
+}
+
+a {
+ color: $text-primary !important;
+ &:hover {
+ color: $text-primary !important;
+ }
+}
+
+.custom-checkbox {
+ background-color: none;
+ margin: 0 20px 0 auto;
+}
+</style>
diff --git a/src/views/_sila/SystemDescription/Network/index.js b/src/views/_sila/SystemDescription/Network/index.js
new file mode 100644
index 00000000..25f85f3c
--- /dev/null
+++ b/src/views/_sila/SystemDescription/Network/index.js
@@ -0,0 +1,2 @@
+import SystemNetwork from './SystemNetwork.vue';
+export default SystemNetwork;
diff --git a/src/views/_sila/SystemDescription/ServerParametrs/ServerParametrs.vue b/src/views/_sila/SystemDescription/ServerParametrs/ServerParametrs.vue
new file mode 100644
index 00000000..9eb57301
--- /dev/null
+++ b/src/views/_sila/SystemDescription/ServerParametrs/ServerParametrs.vue
@@ -0,0 +1,21 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title :description="$t('appNavigation.serverParam')" />
+ <servere-parametrs-section />
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import ServereParametrsSection from './ServereParametrsSection';
+
+export default {
+ components: {
+ PageTitle,
+ ServereParametrsSection,
+ },
+};
+</script>
diff --git a/src/views/_sila/SystemDescription/ServerParametrs/ServereParametrsSection.vue b/src/views/_sila/SystemDescription/ServerParametrs/ServereParametrsSection.vue
new file mode 100644
index 00000000..f8aebeb6
--- /dev/null
+++ b/src/views/_sila/SystemDescription/ServerParametrs/ServereParametrsSection.vue
@@ -0,0 +1,128 @@
+<template>
+ <page-section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('SystemDescription.LoadingQueue') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ :items="queueItems"
+ :fields="fields"
+ >
+ <template #cell(active)="data">
+ <b-row>
+ <b-col>
+ <span v-if="queueItems[data.index].active">
+ {{ $t('global.status.enabled') }}
+ </span>
+ <span v-else>
+ {{ $t('global.status.disabled') }}
+ </span>
+ </b-col>
+ <b-col>
+ <b-form-checkbox
+ v-model="queueItems[data.index].active"
+ switch
+ @change="toggleLoad"
+ >
+ </b-form-checkbox>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ <span class="bold-12px__caps">
+ {{ $t('SystemDescription.DiskParametrs') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="table-stripes"
+ :items="diskItems"
+ :fields="fields"
+ >
+ </b-table>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import iconChevron from '@carbon/icons-vue/es/chevron--down/16';
+
+export default {
+ components: { PageSection },
+ data() {
+ return {
+ selectedCell: null,
+ fields: [
+ {
+ key: 'param',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ {
+ key: 'active',
+ label: '',
+ formatter: this.dataFormatter,
+ },
+ ],
+ iconChevron,
+ queueItems: [
+ {
+ param: 'Hard Drive C:',
+ active: false,
+ },
+ {
+ param:
+ 'Embedded NIC 2 Port 1 Partition 1: BRCM MBA Slot E101 v21.6.0',
+ active: false,
+ },
+ {
+ param: 'Virtual Floppy Drive',
+ active: false,
+ },
+ {
+ param: 'Virtual Optical Drive',
+ active: false,
+ },
+ ],
+ diskItems: [
+ {
+ param: 'Internal SD',
+ active: 'IDSM',
+ },
+ {
+ param: 'ACHI Controller in SL7',
+ active: 'A0S0 MTFDDAV480TDS',
+ },
+ {
+ param: 'ACHI Controller in SL7',
+ active: 'A0S1 MTFDDAV480TDS',
+ },
+ {
+ param: 'RAID Controller in SL8',
+ active: 'PERC H755 Front (bus 01 dev 00)',
+ },
+ ],
+ };
+ },
+ methods: {
+ toggleLoad(data, value) {
+ this.queueItems[data.index].value = !value;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+.icon-expand {
+ margin: 0 !important;
+}
+
+.bold-12px__caps {
+ display: block;
+ margin: 16px 0 7px 0;
+}
+</style>
diff --git a/src/views/_sila/SystemDescription/ServerParametrs/index.js b/src/views/_sila/SystemDescription/ServerParametrs/index.js
new file mode 100644
index 00000000..5ce6ca74
--- /dev/null
+++ b/src/views/_sila/SystemDescription/ServerParametrs/index.js
@@ -0,0 +1,2 @@
+import ServerParametrs from './ServerParametrs.vue';
+export default ServerParametrs;