diff --git a/components/frontend/src/issue/IssueStatus.js b/components/frontend/src/issue/IssueStatus.js index a31ec09b40..c9bce9fe96 100644 --- a/components/frontend/src/issue/IssueStatus.js +++ b/components/frontend/src/issue/IssueStatus.js @@ -1,7 +1,8 @@ +import { Tooltip } from "@mui/material" import { bool, string } from "prop-types" import TimeAgo from "react-timeago" -import { Label, Popup } from "../semantic_ui_react_wrappers" +import { Label } from "../semantic_ui_react_wrappers" import { issueStatusPropType, metricPropType, settingsPropType, stringsPropType } from "../sharedPropTypes" import { getMetricIssueIds, ISSUE_STATUS_COLORS } from "../utils" import { HyperLink } from "../widgets/HyperLink" @@ -9,13 +10,21 @@ import { TimeAgoWithDate } from "../widgets/TimeAgoWithDate" function IssueWithoutTracker({ issueId }) { return ( - +

No issue tracker configured

+

+ Please configure an issue tracker by expanding the report title, selecting the ‘Issue + tracker’ tab, and configuring an issue tracker. +

+ } - header={"No issue tracker configured"} - trigger={} - /> + > + + + + ) } IssueWithoutTracker.propTypes = { @@ -160,7 +169,18 @@ function IssueWithTracker({ issueStatus, settings }) { popupContent = issuePopupContent(issueStatus) } if (popupContent) { - label = + label = ( + +

{popupHeader}

+

{popupContent}

+ + } + > + {label} +
+ ) } return label } diff --git a/components/frontend/src/measurement/MeasurementTarget.js b/components/frontend/src/measurement/MeasurementTarget.js index 134e21d7dc..160cda74b2 100644 --- a/components/frontend/src/measurement/MeasurementTarget.js +++ b/components/frontend/src/measurement/MeasurementTarget.js @@ -1,7 +1,8 @@ +import { Tooltip } from "@mui/material" import { useContext } from "react" import { DataModel } from "../context/DataModel" -import { Label, Popup } from "../semantic_ui_react_wrappers" +import { Label } from "../semantic_ui_react_wrappers" import { metricPropType } from "../sharedPropTypes" import { formatMetricDirection, @@ -59,11 +60,11 @@ export function MeasurementTarget({ metric }) { const today = new Date() debtEndDateInThePast = endDate.toISOString().split("T")[0] < today.toISOString().split("T")[0] } - const label = allIssuesDone || debtEndDateInThePast ? : {target} + const label = allIssuesDone || debtEndDateInThePast ? : target return ( - - {popupText(metric, debtEndDateInThePast, allIssuesDone, dataModel)} - + {popupText(metric, debtEndDateInThePast, allIssuesDone, dataModel)}}> + {label} + ) } MeasurementTarget.propTypes = { diff --git a/components/frontend/src/measurement/Overrun.js b/components/frontend/src/measurement/Overrun.js index 4f29c6016d..81e73fd63e 100644 --- a/components/frontend/src/measurement/Overrun.js +++ b/components/frontend/src/measurement/Overrun.js @@ -1,8 +1,18 @@ +import { + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Tooltip, + Typography, +} from "@mui/material" import { string } from "prop-types" import { useContext } from "react" import { DataModel } from "../context/DataModel" -import { Header, Popup, Table } from "../semantic_ui_react_wrappers" import { datesPropType, measurementsPropType, metricPropType, reportPropType } from "../sharedPropTypes" import { getMetricResponseOverrun, pluralize } from "../utils" import { StatusIcon } from "./StatusIcon" @@ -23,59 +33,60 @@ export function Overrun({ metric_uuid, metric, report, measurements, dates }) { const period = `${sortedDates.at(0).toLocaleDateString()} - ${sortedDates.at(-1).toLocaleDateString()}` const content = ( <> -
- - Metric reaction time overruns - In the period {period} - -
- - - - - When did the metric need action? - - - How long did it take to react? - - - - Status - Start - End - Actual - Desired - Overrun - - - - {overruns.map((overrun) => ( - - - - - {overrun.start.split("T")[0]} - {overrun.end.split("T")[0]} - {formatDays(overrun.actual_response_time)} - {formatDays(overrun.desired_response_time)} - {formatDays(overrun.overrun)} - - ))} - - - - - Total - - - {triggerText} - - - -
+ Metric reaction time overruns in the period {period} + + + + + + When did the metric need action? + + + How long did it take to react? + + + + Status + Start + End + Actual + Desired + Overrun + + + + {overruns.map((overrun) => ( + + + + + {overrun.start.split("T")[0]} + {overrun.end.split("T")[0]} + {formatDays(overrun.actual_response_time)} + {formatDays(overrun.desired_response_time)} + {formatDays(overrun.overrun)} + + ))} + + + + + Total + + + {triggerText} + + + +
+
) - return + return ( + + {trigger} + + ) } Overrun.propTypes = { dates: datesPropType,