diff --git a/src/users/data/test/entitlements.js b/src/users/data/test/entitlements.js index 7ba0d2d77..c070d4f09 100644 --- a/src/users/data/test/entitlements.js +++ b/src/users/data/test/entitlements.js @@ -14,9 +14,17 @@ const entitlementsData = { supportDetails: [{ supportUser: 'admin', action: 'CREATE', + actionCreated: Date().toLocaleString(), comments: 'creating entitlement', unenrolledRun: null, }, + { + supportUser: 'admin', + action: 'EXPIRE', + actionCreated: Date().toLocaleString(), + comments: 'expiring entitlement', + unenrolledRun: null, + }, ], }, { diff --git a/src/users/entitlements/Entitlements.jsx b/src/users/entitlements/Entitlements.jsx index 3403b6039..48b7aff8f 100644 --- a/src/users/entitlements/Entitlements.jsx +++ b/src/users/entitlements/Entitlements.jsx @@ -4,7 +4,7 @@ import React, { import PropTypes from 'prop-types'; import { - Button, Collapsible, TransitionReplace, + Button, Collapsible, Modal, TransitionReplace, } from '@edx/paragon'; import { camelCaseObject, getConfig } from '@edx/frontend-platform'; import EntitlementForm from './EntitlementForm'; @@ -27,6 +27,9 @@ export default function Entitlements({ const [courseSummaryUUID, setCourseSummaryUUID] = useState(null); const [courseSummaryData, setCourseSummaryData] = useState(null); const [courseSummaryErrors, setCourseSummaryErrors] = useState(false); + const [entitlementDetailModalIsOpen, setEntitlementDetailModalIsOpen] = useState(false); + const [entitlementSupportDetailsTitle, setEntitlementSupportDetailsTitle] = useState(''); + const [entitlementSupportDetails, setEntitlementSupportDetails] = useState([]); const formRef = useRef(null); const summaryRef = useRef(null); @@ -45,6 +48,20 @@ export default function Entitlements({ setCourseSummaryErrors(false); } + // Modal to display Support Details for each Entitlement + const openEntitlementsSupportDetailsModal = (title, supportDetails) => { + const tableData = supportDetails.map(supportDetail => ({ + action: supportDetail.action, + comments: supportDetail.comments, + actionCreated: formatDate(supportDetail.created), + supportUser: supportDetail.supportUser, + unenrolledRun: supportDetail.unenrolledRun, + })); + setEntitlementSupportDetails(tableData); + setEntitlementSupportDetailsTitle(title); + setEntitlementDetailModalIsOpen(true); + }; + const handleCourseSummaryDataGet = useCallback((courseUUID) => { if (courseUUID !== null && courseUUID !== undefined) { setCourseSummaryData(null); @@ -126,8 +143,19 @@ export default function Entitlements({ displayValue: (
+