diff --git a/libs/i18n/locales/en/translation.json b/libs/i18n/locales/en/translation.json index 24aab16b..83d56c15 100644 --- a/libs/i18n/locales/en/translation.json +++ b/libs/i18n/locales/en/translation.json @@ -1107,5 +1107,27 @@ "Out-of-date": "Out-of-date", "Updating": "Updating", "Up-to-date": "Up-to-date", + "Masked": "Masked", + "Enabled runtime": "Enabled runtime", + "Masked runtime": "Masked runtime", + "Linked": "Linked", + "Linked runtime": "Linked runtime", + "Generated": "Generated", + "Transient": "Transient", + "Indirect": "Indirect", + "Bad": "Bad", + "Empty": "Empty", + "Loaded": "Loaded", + "Not found": "Not found", + "Bad setting": "Bad setting", + "Merged": "Merged", + "Stub": "Stub", + "Active": "Active", + "Inactive": "Inactive", + "Activating": "Activating", + "Deactivating": "Deactivating", + "Reloading": "Reloading", + "Refreshing": "Refreshing", + "Maintenance": "Maintenance", "{{ count }} devices matching the labels were selected._zero": "There are no devices matching these labels." } diff --git a/libs/ui-components/src/components/DetailsPage/Tables/SystemdUnitsTable.tsx b/libs/ui-components/src/components/DetailsPage/Tables/SystemdUnitsTable.tsx index 75d0989b..9a1e1b88 100644 --- a/libs/ui-components/src/components/DetailsPage/Tables/SystemdUnitsTable.tsx +++ b/libs/ui-components/src/components/DetailsPage/Tables/SystemdUnitsTable.tsx @@ -10,6 +10,11 @@ import { DatabaseIcon } from '@patternfly/react-icons/dist/js/icons/database-ico import { NetworkIcon } from '@patternfly/react-icons/dist/js/icons/network-icon'; import { ConnectedIcon } from '@patternfly/react-icons/dist/js/icons/connected-icon'; import { useTranslation } from '../../../hooks/useTranslation'; +import { + getSystemdActiveStateLabel, + getSystemdEnableStateLabel, + getSystemdLoadStateLabel, +} from '../../../utils/status/systemd'; const unitTypeIconMap: Record> = { service: CogIcon, @@ -45,17 +50,17 @@ const SystemdUnitRow = ({ unitStatus }: { unitStatus: SystemdUnitStatus }) => { diff --git a/libs/ui-components/src/utils/status/systemd.ts b/libs/ui-components/src/utils/status/systemd.ts new file mode 100644 index 00000000..541d0bfa --- /dev/null +++ b/libs/ui-components/src/utils/status/systemd.ts @@ -0,0 +1,88 @@ +import { TFunction } from 'react-i18next'; + +import { SystemdActiveStateType, SystemdEnableStateType, SystemdLoadStateType } from '@flightctl/types'; + +export const getSystemdEnableStateLabel = (enableState: SystemdEnableStateType, t: TFunction): string => { + switch (enableState) { + case SystemdEnableStateType.SystemdEnableStateEnabled: + return t('Enabled'); + case SystemdEnableStateType.SystemdEnableStateDisabled: + return t('Disabled'); + case SystemdEnableStateType.SystemdEnableStateStatic: + return t('Static'); + case SystemdEnableStateType.SystemdEnableStateMasked: + return t('Masked'); + case SystemdEnableStateType.SystemdEnableStateEnabledRuntime: + return t('Enabled runtime'); + case SystemdEnableStateType.SystemdEnableStateMaskedRuntime: + return t('Masked runtime'); + case SystemdEnableStateType.SystemdEnableStateLinked: + return t('Linked'); + case SystemdEnableStateType.SystemdEnableStateLinkedRuntime: + return t('Linked runtime'); + case SystemdEnableStateType.SystemdEnableStateGenerated: + return t('Generated'); + case SystemdEnableStateType.SystemdEnableStateTransient: + return t('Transient'); + case SystemdEnableStateType.SystemdEnableStateIndirect: + return t('Indirect'); + case SystemdEnableStateType.SystemdEnableStateAlias: + return t('Alias'); + case SystemdEnableStateType.SystemdEnableStateBad: + return t('Bad'); + case SystemdEnableStateType.SystemdEnableStateUnknown: + return t('Unknown'); + case SystemdEnableStateType.SystemdEnableStateEmpty: + return t('Empty'); + default: + return enableState; + } +}; + +export const getSystemdLoadStateLabel = (loadState: SystemdLoadStateType, t: TFunction): string => { + switch (loadState) { + case SystemdLoadStateType.SystemdLoadStateLoaded: + return t('Loaded'); + case SystemdLoadStateType.SystemdLoadStateNotFound: + return t('Not found'); + case SystemdLoadStateType.SystemdLoadStateError: + return t('Error'); + case SystemdLoadStateType.SystemdLoadStateBadSetting: + return t('Bad setting'); + case SystemdLoadStateType.SystemdLoadStateMasked: + return t('Masked'); + case SystemdLoadStateType.SystemdLoadStateMerged: + return t('Merged'); + case SystemdLoadStateType.SystemdLoadStateStub: + return t('Stub'); + case SystemdLoadStateType.SystemdLoadStateUnknown: + return t('Unknown'); + default: + return loadState; + } +}; + +export const getSystemdActiveStateLabel = (activeState: SystemdActiveStateType, t: TFunction): string => { + switch (activeState) { + case SystemdActiveStateType.SystemdActiveStateActive: + return t('Active'); + case SystemdActiveStateType.SystemdActiveStateInactive: + return t('Inactive'); + case SystemdActiveStateType.SystemdActiveStateFailed: + return t('Failed'); + case SystemdActiveStateType.SystemdActiveStateActivating: + return t('Activating'); + case SystemdActiveStateType.SystemdActiveStateDeactivating: + return t('Deactivating'); + case SystemdActiveStateType.SystemdActiveStateReloading: + return t('Reloading'); + case SystemdActiveStateType.SystemdActiveStateRefreshing: + return t('Refreshing'); + case SystemdActiveStateType.SystemdActiveStateMaintenance: + return t('Maintenance'); + case SystemdActiveStateType.SystemdActiveStateUnknown: + return t('Unknown'); + default: + return activeState; + } +};