import MailPoet from 'mailpoet';
import PropTypes from 'prop-types';
import React from 'react';
import KeyValueTable from 'common/key_value_table.jsx';
import PrintBoolean from 'common/print_boolean.jsx';
const CronStatus = (props) => {
const status = props.status_data;
const activeStatusMapping = {
active: MailPoet.I18n.t('running'),
inactive: MailPoet.I18n.t('cronWaiting'),
};
return (
{MailPoet.I18n.t('systemStatusCronStatusTitle')}
{status.accessible},
},
{
key: MailPoet.I18n.t('status'),
value: activeStatusMapping[status.status] ? activeStatusMapping[status.status] : MailPoet.I18n.t('unknown'),
},
{
key: MailPoet.I18n.t('lastUpdated'),
value: status.updated_at ? MailPoet.Date.full(status.updated_at * 1000) : MailPoet.I18n.t('unknown'),
},
{
key: MailPoet.I18n.t('lastRunStarted'),
value: status.run_accessed_at ? MailPoet.Date.full(status.run_started_at * 1000) : MailPoet.I18n.t('unknown'),
},
{
key: MailPoet.I18n.t('lastRunCompleted'),
value: status.run_completed_at ? MailPoet.Date.full(status.run_completed_at * 1000) : MailPoet.I18n.t('unknown'),
},
{
key: MailPoet.I18n.t('lastSeenError'),
value: status.last_error || MailPoet.I18n.t('none'),
},
]}
/>
);
};
CronStatus.propTypes = {
status_data: PropTypes.shape({
accessible: PropTypes.bool,
status: PropTypes.string,
updated_at: PropTypes.number,
run_accessed_at: PropTypes.number,
run_completed_at: PropTypes.number,
}).isRequired,
};
CronStatus.defaultProps = {
status_data: {
accessible: null,
status: null,
updated_at: null,
run_accessed_at: null,
run_completed_at: null,
},
};
module.exports = CronStatus;