/* eslint-disable camelcase */ import React from 'react'; import { foremanUrl } from 'foremanReact/common/helpers'; import { translate as __ } from 'foremanReact/common/I18n'; import { useForemanHostDetailsPageUrl } from 'foremanReact/Root/Context/ForemanContext'; import JobStatusIcon from '../react_app/components/RecentJobsCard/JobStatusIcon'; export const JOB_INVOCATION_KEY = 'JOB_INVOCATION_KEY'; export const CURRENT_PERMISSIONS = 'CURRENT_PERMISSIONS'; export const UPDATE_JOB = 'UPDATE_JOB'; export const CANCEL_JOB = 'CANCEL_JOB'; export const GET_TASK = 'GET_TASK'; export const GET_TEMPLATE_INVOCATIONS = 'GET_TEMPLATE_INVOCATIONS'; export const CHANGE_ENABLED_RECURRING_LOGIC = 'CHANGE_ENABLED_RECURRING_LOGIC'; export const CANCEL_RECURRING_LOGIC = 'CANCEL_RECURRING_LOGIC'; export const GET_REPORT_TEMPLATES = 'GET_REPORT_TEMPLATES'; export const GET_REPORT_TEMPLATE_INPUTS = 'GET_REPORT_TEMPLATE_INPUTS'; export const JOB_INVOCATION_HOSTS = 'JOB_INVOCATION_HOSTS'; export const currentPermissionsUrl = foremanUrl( '/api/v2/permissions/current_permissions' ); export const STATUS = { PENDING: 'pending', SUCCEEDED: 'succeeded', FAILED: 'failed', CANCELLED: 'cancelled', }; export const STATUS_UPPERCASE = { RESOLVED: 'RESOLVED', ERROR: 'ERROR', PENDING: 'PENDING', }; export const DATE_OPTIONS = { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit', hour12: false, timeZoneName: 'short', }; const Columns = () => { const getColumnsStatus = ({ hostJobStatus }) => { switch (hostJobStatus) { case 'success': return { title: __('Succeeded'), status: 0 }; case 'error': return { title: __('Failed'), status: 1 }; case 'planned': return { title: __('Scheduled'), status: 2 }; case 'running': return { title: __('Pending'), status: 3 }; case 'cancelled': return { title: __('Cancelled'), status: 4 }; case 'N/A': return { title: __('Awaiting start'), status: 5 }; default: return { title: hostJobStatus, status: 6 }; } }; const hostDetailsPageUrl = useForemanHostDetailsPageUrl(); return { name: { title: __('Name'), wrapper: ({ name }) => ( {name} ), weight: 1, }, groups: { title: __('Host group'), wrapper: ({ hostgroup_id, hostgroup_name }) => ( {hostgroup_name} ), weight: 2, }, os: { title: __('OS'), wrapper: ({ operatingsystem_id, operatingsystem_name }) => ( {operatingsystem_name} ), weight: 3, }, smart_proxy: { title: __('Smart proxy'), wrapper: ({ smart_proxy_name, smart_proxy_id }) => ( {smart_proxy_name} ), weight: 4, }, status: { title: __('Status'), wrapper: ({ job_status }) => { const { title, status } = getColumnsStatus({ hostJobStatus: job_status, }); return ( {title || __('Unknown')} ); }, weight: 5, }, }; }; export default Columns;