Sha256: 7ece30def5cb28db55cf43e5ee3fd9820eb2006ba10dc49cc0f777993918a9cd

Contents?: true

Size: 1.62 KB

Versions: 1

Compression:

Stored size: 1.62 KB

Contents

import React from 'react';
import PropTypes from 'prop-types';
import { translate as __ } from 'foremanReact/common/I18n';

import IndexTable from '../../../components/IndexTable';
import withLoading from '../../../components/withLoading';
import withDeleteModal from '../../../components/withDeleteModal';

import { linkCell } from '../../../helpers/tableHelper';
import { ovalPoliciesPath, modelPath } from '../../../helpers/pathsHelper';

const OvalPoliciesTable = props => {
  const columns = [{ title: __('Name') }, { title: __('OVAL Content') }];

  const rows = props.policies.map(policy => ({
    cells: [
      { title: linkCell(modelPath(ovalPoliciesPath, policy), policy.name) },
      { title: policy.ovalContent.name },
    ],
    policy,
  }));

  const actionResolver = (rowData, rest) => {
    const actions = [];
    if (rowData.policy.meta.canDestroy) {
      actions.push({
        title: __('Delete OVAL Policy'),
        onClick: (event, rowId, rData, extra) => {
          props.toggleModal(rData.policy);
        },
      });
    }
    return actions;
  };

  return (
    <IndexTable
      columns={columns}
      rows={rows}
      actionResolver={actionResolver}
      pagination={props.pagination}
      totalCount={props.totalCount}
      history={props.history}
      ariaTableLabel={__('OVAL Policies Table')}
    />
  );
};

OvalPoliciesTable.propTypes = {
  policies: PropTypes.array.isRequired,
  pagination: PropTypes.object.isRequired,
  totalCount: PropTypes.number.isRequired,
  history: PropTypes.object.isRequired,
  toggleModal: PropTypes.func.isRequired,
};

export default withLoading(withDeleteModal(OvalPoliciesTable));

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foreman_openscap-5.1.0 webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js