Sha256: c6495190af2d69101a2837ff47bc953004a64085c65bc1920200f5de8fc9313e

Contents?: true

Size: 1.59 KB

Versions: 62

Compression:

Stored size: 1.59 KB

Contents

import React from 'react';
import PropTypes from 'prop-types';
import { orderBy } from 'lodash';
import { Grid, ListView } from 'patternfly-react';
import { noop } from 'foremanReact/common/helpers';
import { translate as __ } from 'foremanReact/common/I18n';
import ListItem from './components/ListItem';
import './InsightsTab.scss';

class InsightsHostDetailsTab extends React.Component {
  componentDidMount() {
    const { fetchHits, hostID } = this.props;
    fetchHits(hostID);
  }

  render() {
    const { hits } = this.props;

    if (!hits.length) {
      return <h2>{__('No recommendations were found for this host!')}</h2>;
    }
    const hitsSorted = orderBy(hits, ['total_risk'], ['desc']);
    const items = hitsSorted.map(
      (
        {
          title,
          total_risk: totalRisk,
          results_url: resultsUrl,
          solution_url: solutionUrl,
        },
        index
      ) => (
        <ListItem
          key={index}
          title={title}
          totalRisk={totalRisk}
          resultsUrl={resultsUrl}
          solutionUrl={solutionUrl}
        />
      )
    );
    return (
      <div id="host_details_insights_tab">
        <Grid.Row>
          <Grid.Col xs={12}>
            <h2>{__('Recommendations')}</h2>
            <ListView id="hits_list">{items}</ListView>
          </Grid.Col>
        </Grid.Row>
      </div>
    );
  }
}

InsightsHostDetailsTab.propTypes = {
  hostID: PropTypes.number.isRequired,
  fetchHits: PropTypes.func,
  hits: PropTypes.array,
};

InsightsHostDetailsTab.defaultProps = {
  fetchHits: noop,
  hits: [],
};

export default InsightsHostDetailsTab;

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
foreman_rh_cloud-7.0.47 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-8.0.50 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-8.0.49 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-8.0.48 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-8.0.47 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-8.0.46 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-6.0.45 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-5.0.46 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-5.0.45 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-7.0.46 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-5.0.44 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-7.0.45 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-6.0.44 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-5.0.43 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-4.0.36 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-6.0.42.2 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-6.0.42.1 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-6.0.43 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-5.0.42 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-6.0.42 webpack/InsightsHostDetailsTab/InsightsTab.js