diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100755 new mode 100644 diff --git a/app/assets/css/app.css b/app/assets/css/app.css index f97dc4c15..e9d88106c 100644 --- a/app/assets/css/app.css +++ b/app/assets/css/app.css @@ -905,3 +905,7 @@ json-tree .branch-preview { .form-check.radio { margin-left: 15px; } + +.inner-datatable thead { + background-color: var(--bg-inner-datatable-thead) !important; +} diff --git a/app/assets/css/theme.css b/app/assets/css/theme.css index de8d16ee1..25897fd42 100644 --- a/app/assets/css/theme.css +++ b/app/assets/css/theme.css @@ -264,6 +264,7 @@ html { --bg-multiselect-helpercontainer: var(--white-color); --text-input-textarea: var(--white-color); --bg-service-datatable-thead: var(--grey-23); + --bg-inner-datatable-thead: var(--grey-23); --bg-service-datatable-tbody: var(--grey-24); } @@ -435,6 +436,7 @@ html { --bg-multiselect-helpercontainer: var(--grey-1); --text-input-textarea: var(--grey-1); --bg-service-datatable-thead: var(--grey-1); + --bg-inner-datatable-thead: var(--grey-1); --bg-service-datatable-tbody: var(--grey-1); } @@ -472,6 +474,7 @@ html { --bg-input-sm-color: var(--black-color); --bg-item-highlighted-color: var(--black-color); --bg-service-datatable-thead: var(--black-color); + --bg-inner-datatable-thead: var(--black-color); --bg-service-datatable-tbody: var(--black-color); --bg-pagination-color: var(--grey-3); --bg-pagination-span-color: var(--grey-3); diff --git a/app/docker/containers/components/ContainersDatatable/ContainersDatatableContainer.tsx b/app/docker/containers/components/ContainersDatatable/ContainersDatatableContainer.tsx index 3f036856e..58dc99d7d 100644 --- a/app/docker/containers/components/ContainersDatatable/ContainersDatatableContainer.tsx +++ b/app/docker/containers/components/ContainersDatatable/ContainersDatatableContainer.tsx @@ -23,9 +23,6 @@ export function ContainersDatatableContainer({ endpoint, ...props }: Props) { sortBy: { id: 'state', desc: false }, }; - console.log("ContainersDatatableContainer"); - console.log(endpoint); - return ( diff --git a/app/edge/devices/components/AMTDevicesDatatable/AMTDevicesDatatable.tsx b/app/edge/devices/components/AMTDevicesDatatable/AMTDevicesDatatable.tsx index 90e1d210c..ae53bbbc2 100644 --- a/app/edge/devices/components/AMTDevicesDatatable/AMTDevicesDatatable.tsx +++ b/app/edge/devices/components/AMTDevicesDatatable/AMTDevicesDatatable.tsx @@ -24,11 +24,7 @@ export function AMTDevicesDatatable({ dataset, }: AMTDevicesTableProps) { - - console.log("AMTDevicesDatatable props:"); console.log(environmentId); - console.log(dataset); - const columns = useColumns(); const { @@ -59,12 +55,13 @@ export function AMTDevicesDatatable({ {headerGroups.map((headerGroup) => { + // TODO apply styles const { key, className, role, style } = headerGroup.getHeaderGroupProps(); return ( diff --git a/app/edge/devices/components/AMTDevicesDatatable/columns/power-state.tsx b/app/edge/devices/components/AMTDevicesDatatable/columns/power-state.tsx index 395ecd5cc..60db5c9e4 100644 --- a/app/edge/devices/components/AMTDevicesDatatable/columns/power-state.tsx +++ b/app/edge/devices/components/AMTDevicesDatatable/columns/power-state.tsx @@ -3,7 +3,7 @@ import { Device } from "Portainer/hostmanagement/open-amt/model"; export const powerState: Column = { Header: 'Power State', - accessor: (row) => row.powerState || '-', // TODO mrydel parse + accessor: (row) => parsePowerState(row.powerState), id: 'powerstate', disableFilters: true, canHide: true, @@ -11,3 +11,23 @@ export const powerState: Column = { Filter: () => null, }; +function parsePowerState(value : number) { + // https://app.swaggerhub.com/apis-docs/rbheopenamt/mps/1.4.0#/AMT/get_api_v1_amt_power_state__guid_ + switch (value) { + case 2: + return 'Running'; + case 3: + case 4: + return 'Sleep'; + case 6: + case 8: + case 13: + return 'Off'; + case 7: + return 'Hibernate'; + case 9: + return 'Power Cycle'; + default: + return '-'; + } +}; diff --git a/app/edge/devices/components/AMTDevicesDatatable/columns/status.tsx b/app/edge/devices/components/AMTDevicesDatatable/columns/status.tsx index a0b80467b..834e5b409 100644 --- a/app/edge/devices/components/AMTDevicesDatatable/columns/status.tsx +++ b/app/edge/devices/components/AMTDevicesDatatable/columns/status.tsx @@ -3,7 +3,7 @@ import { Device } from "Portainer/hostmanagement/open-amt/model"; export const status: Column = { Header: 'MPS Status', - accessor: (row) => row.connectionStatus || '-', // TODO mrydel parse + accessor: (row) => row.connectionStatus ? 'Connected' : 'Disconnected', id: 'status', disableFilters: true, canHide: true, diff --git a/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatable.tsx b/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatable.tsx index 337f70510..716585eed 100644 --- a/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatable.tsx +++ b/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatable.tsx @@ -6,7 +6,6 @@ import { useFilters, useGlobalFilter, usePagination, - Row, } from 'react-table'; import { useRowSelectColumn } from '@lineup-lite/hooks'; import { Environment } from 'Portainer/environments/types'; @@ -58,10 +57,8 @@ export function EdgeDevicesDatatable({ onRefresh, setLoadingMessage, }: EdgeDevicesTableProps) { - console.log('EdgeDevicesDatatableContainer props:'); - const { settings, setTableSettings } = - useTableSettings(); + const { settings, setTableSettings } = useTableSettings(); const [searchBarValue, setSearchBarValue] = useSearchBarContext(); const columns = useColumns(); @@ -93,9 +90,8 @@ export function EdgeDevicesDatatable({ sortBy: [settings.sortBy], globalFilter: searchBarValue, }, - isRowSelectable(row: Row) { - // return !row.original.IsPortainer; TODO mrydel - return row.original.Name !== ''; + isRowSelectable() { + return true; }, selectCheckboxComponent: Checkbox, }, @@ -200,9 +196,9 @@ export function EdgeDevicesDatatable({ environmentId={row.original.Id} dataset={[ { - hostname: 'hostname', // TODO load from service + hostname: 'hostname', // TODO mrydel load from service guid: 'guid', - powerState: 1, + powerState: 2, connectionStatus: true, }, ]} diff --git a/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableActions.tsx b/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableActions.tsx index fe16c3bd4..b846cf2be 100644 --- a/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableActions.tsx +++ b/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableActions.tsx @@ -20,7 +20,6 @@ export function EdgeDevicesDatatableActions({ setLoadingMessage, }: Props) { const hasSelectedItem = selectedItems.length === 1; - console.log("EdgeDevicesDatatableActions props:"); const router = useRouter(); @@ -48,8 +47,6 @@ export function EdgeDevicesDatatableActions({ ); function onAddNewDeviceClick() { - console.log("onAddNewDeviceClick triggered"); - prompt({ title: 'How would you like to add an Edge Device?', inputType: 'radio', @@ -70,8 +67,6 @@ export function EdgeDevicesDatatableActions({ }, }, callback: async (result: string) => { - console.log(result); - switch (result) { case "1": router.stateService.go('portainer.endpoints.importdevice'); @@ -88,7 +83,6 @@ export function EdgeDevicesDatatableActions({ } function onAssociateOpenAMTClick(selectedItems: Environment[]) { - console.log("onAssociateOpenAMTClick triggered"); const selectedEnvironment = selectedItems[0]; confirm({ diff --git a/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableContainer.tsx b/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableContainer.tsx index 6241f0556..a3e11757b 100644 --- a/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableContainer.tsx +++ b/app/edge/devices/components/EdgeDevicesDatatable/EdgeDevicesDatatableContainer.tsx @@ -9,9 +9,6 @@ import { } from './EdgeDevicesDatatable'; export function EdgeDevicesDatatableContainer({ ...props }: EdgeDevicesTableProps) { - - console.log("EdgeDevicesDatatableContainer props:"); - const defaultSettings = { autoRefreshRate: 0, hiddenQuickActions: [], diff --git a/app/edge/devices/components/EdgeDevicesDatatable/columns/name.tsx b/app/edge/devices/components/EdgeDevicesDatatable/columns/name.tsx index b4296e760..23768a0a1 100644 --- a/app/edge/devices/components/EdgeDevicesDatatable/columns/name.tsx +++ b/app/edge/devices/components/EdgeDevicesDatatable/columns/name.tsx @@ -10,7 +10,7 @@ export const name: Column = { Cell: NameCell, disableFilters: true, Filter: () => null, - canHide: true, + canHide: false, sortType: 'string', }; diff --git a/app/edge/views/edge-devices/edgeDevicesView/edgeDevicesViewController.js b/app/edge/views/edge-devices/edgeDevicesView/edgeDevicesViewController.js index 8f7485e7e..f18c76a8b 100644 --- a/app/edge/views/edge-devices/edgeDevicesView/edgeDevicesViewController.js +++ b/app/edge/views/edge-devices/edgeDevicesView/edgeDevicesViewController.js @@ -2,16 +2,13 @@ angular.module('portainer.edge').controller('EdgeDevicesViewController', EdgeDev /* @ngInject */ export function EdgeDevicesViewController($async, EndpointService, SettingsService, ModalService, Notifications) { - console.log("EdgeDevicesViewController"); - var ctrl = this; + var ctrl = this; this.getEnvironments = function() { - console.log("getEnvironments triggered"); return $async(async () => { EndpointService.endpoints() .then(function success(data) { ctrl.edgeDevices = data.value; - console.log(data.value); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to retrieve edge devices'); @@ -21,11 +18,10 @@ export function EdgeDevicesViewController($async, EndpointService, SettingsServi } this.getSettings = function() { - console.log("getSettings triggered"); - return $async(async () => { + + return $async(async () => { try { const settings = await SettingsService.settings(); - console.log(settings) const openAMTFeatureFlagValue = settings && settings.FeatureFlagSettings && settings.FeatureFlagSettings['open-amt']; const openAMTFeatureEnabled = settings && settings.EnableEdgeComputeFeatures && settings.openAMTConfiguration && settings.openAMTConfiguration.enabled; diff --git a/app/portainer/components/datatables/components/ColumnVisibilityMenu.tsx b/app/portainer/components/datatables/components/ColumnVisibilityMenu.tsx index 46021ff9b..67b8c49ad 100644 --- a/app/portainer/components/datatables/components/ColumnVisibilityMenu.tsx +++ b/app/portainer/components/datatables/components/ColumnVisibilityMenu.tsx @@ -8,7 +8,7 @@ import { useTableContext } from './TableContainer'; interface Props { // eslint-disable-next-line @typescript-eslint/no-explicit-any - columns: ColumnInstance[]; // TODO mrydel + columns: ColumnInstance[]; onChange: (value: string[]) => void; value: string[]; }