From 6d6058459612c8ed773e61058045a08f3b537731 Mon Sep 17 00:00:00 2001 From: stvn Date: Tue, 7 Apr 2020 13:20:59 -0700 Subject: [PATCH] Add audit access locked banner when Content Type Gating, aka Feature Based Enrollment is enabled. --- src/courseware/course/sequence/Sequence.jsx | 1 + src/courseware/course/sequence/Unit.jsx | 38 ++++++++++- .../sequence/lock-paywall/LockPaywall.jsx | 61 ++++++++++++++++++ .../assets/edx-verified-mini-cert.png | Bin 0 -> 9120 bytes .../course/sequence/lock-paywall/index.js | 1 + .../course/sequence/lock-paywall/messages.js | 26 ++++++++ src/data/api.js | 4 +- 7 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 src/courseware/course/sequence/lock-paywall/LockPaywall.jsx create mode 100644 src/courseware/course/sequence/lock-paywall/assets/edx-verified-mini-cert.png create mode 100644 src/courseware/course/sequence/lock-paywall/index.js create mode 100644 src/courseware/course/sequence/lock-paywall/messages.js diff --git a/src/courseware/course/sequence/Sequence.jsx b/src/courseware/course/sequence/Sequence.jsx index 310a695b..8befcbb6 100644 --- a/src/courseware/course/sequence/Sequence.jsx +++ b/src/courseware/course/sequence/Sequence.jsx @@ -150,6 +150,7 @@ function Sequence({ )} {!gated && unitId !== null && ( import('./lock-paywall')); + +function Unit({ + courseId, onLoaded, id, + intl, }) { const iframeRef = useRef(null); const iframeUrl = `${getConfig().LMS_BASE_URL}/xblock/${id}?show_title=0&show_bookmark_button=0`; @@ -15,6 +27,11 @@ export default function Unit({ const [hasLoaded, setHasLoaded] = useState(false); const unit = useModel('units', id); + const course = useModel('courses', courseId); + const { + contentTypeGatingEnabled, + enrollmentMode, + } = course; useEffect(() => { global.onmessage = (event) => { @@ -40,6 +57,19 @@ export default function Unit({ isBookmarked={unit.bookmarked} isProcessing={unit.bookmarkedUpdateState === 'loading'} /> + { contentTypeGatingEnabled && unit.graded && enrollmentMode === 'audit' && ( + + )} + > + + + )}