summaryrefslogtreecommitdiff
path: root/src/components/app/sidebars/topology/machine/UnitComponent.js
blob: 10a310e8cf9ddb16f9f890ba2317d63c8d2443e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import React from "react";
import jQuery from "../../../../../util/jquery";

class UnitComponent extends React.Component {
  componentDidMount() {
    jQuery(".unit-info-popover").popover({
      trigger: "focus"
    });
  }

  render() {
    let unitInfo;
    if (this.props.unitType === "cpu" || this.props.unitType === "gpu") {
      unitInfo =
        "<strong>Clockrate:</strong> <code>" +
        this.props.unit.clockRateMhz +
        " MHz</code><br/>" +
        "<strong>Num. Cores:</strong> <code>" +
        this.props.unit.numberOfCores +
        "</code><br/>" +
        "<strong>Energy Cons.:</strong> <code>" +
        this.props.unit.energyConsumptionW +
        " W</code>";
    } else if (
      this.props.unitType === "memory" ||
      this.props.unitType === "storage"
    ) {
      unitInfo =
        "<strong>Speed:</strong> <code>" +
        this.props.unit.speedMbPerS +
        " Mb/s</code><br/>" +
        "<strong>Size:</strong> <code>" +
        this.props.unit.sizeMb +
        " MB</code><br/>" +
        "<strong>Energy Cons.:</strong> <code> " +
        this.props.unit.energyConsumptionW +
        " W</code>";
    }

    return (
      <li className="d-flex list-group-item justify-content-between align-items-center">
        <span style={{ maxWidth: "60%" }}>
          {this.props.unit.manufacturer +
            " " +
            this.props.unit.family +
            " " +
            this.props.unit.model +
            " " +
            this.props.unit.generation}
        </span>
        <span>
          <a
            tabIndex="0"
            className="unit-info-popover btn btn-outline-info mr-1"
            role="button"
            data-toggle="popover"
            data-trigger="focus"
            title="Unit information"
            data-content={unitInfo}
            data-html="true"
          >
            <span className="fa fa-info-circle" />
          </a>
          {this.props.inSimulation ? (
            undefined
          ) : (
            <span
              className="btn btn-outline-danger"
              onClick={this.props.onDelete}
            >
              <span className="fa fa-trash" />
            </span>
          )}
        </span>
      </li>
    );
  }
}

export default UnitComponent;