Sha256: f38ee491c6efcc598e12191d20de9b8b2a62f042f4d98c27538900d0738a5335

Contents?: true

Size: 1.53 KB

Versions: 8

Compression:

Stored size: 1.53 KB

Contents

import React from 'react';
import PropTypes from 'prop-types';
import { orderBy } from 'lodash';
import { Grid, ListView, noop } from 'patternfly-react';
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, ['insights_hit.total_risk'], ['desc']);
    const items = hitsSorted.map(
      (
        {
          insights_hit: {
            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

8 entries across 8 versions & 1 rubygems

Version Path
foreman_rh_cloud-2.0.18.1 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.18 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.17 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.16 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.15 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.14 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.13.1 webpack/InsightsHostDetailsTab/InsightsTab.js
foreman_rh_cloud-2.0.13 webpack/InsightsHostDetailsTab/InsightsTab.js