feat: add card in Pages and Resources to allow hiding the dates tab (#2834)
This commit is contained in:
21
package-lock.json
generated
21
package-lock.json
generated
@@ -27,6 +27,7 @@
|
|||||||
"@edx/frontend-platform": "^8.4.0",
|
"@edx/frontend-platform": "^8.4.0",
|
||||||
"@edx/openedx-atlas": "^0.7.0",
|
"@edx/openedx-atlas": "^0.7.0",
|
||||||
"@openedx-plugins/course-app-calculator": "file:plugins/course-apps/calculator",
|
"@openedx-plugins/course-app-calculator": "file:plugins/course-apps/calculator",
|
||||||
|
"@openedx-plugins/course-app-dates": "file:plugins/course-apps/dates",
|
||||||
"@openedx-plugins/course-app-edxnotes": "file:plugins/course-apps/edxnotes",
|
"@openedx-plugins/course-app-edxnotes": "file:plugins/course-apps/edxnotes",
|
||||||
"@openedx-plugins/course-app-learning_assistant": "file:plugins/course-apps/learning_assistant",
|
"@openedx-plugins/course-app-learning_assistant": "file:plugins/course-apps/learning_assistant",
|
||||||
"@openedx-plugins/course-app-live": "file:plugins/course-apps/live",
|
"@openedx-plugins/course-app-live": "file:plugins/course-apps/live",
|
||||||
@@ -5159,6 +5160,10 @@
|
|||||||
"resolved": "plugins/course-apps/calculator",
|
"resolved": "plugins/course-apps/calculator",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@openedx-plugins/course-app-dates": {
|
||||||
|
"resolved": "plugins/course-apps/dates",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
"node_modules/@openedx-plugins/course-app-edxnotes": {
|
"node_modules/@openedx-plugins/course-app-edxnotes": {
|
||||||
"resolved": "plugins/course-apps/edxnotes",
|
"resolved": "plugins/course-apps/edxnotes",
|
||||||
"link": true
|
"link": true
|
||||||
@@ -24716,6 +24721,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"plugins/course-apps/dates": {
|
||||||
|
"name": "@openedx-plugins/course-app-dates",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@edx/frontend-app-authoring": "*",
|
||||||
|
"@edx/frontend-platform": "*",
|
||||||
|
"@openedx/paragon": "*",
|
||||||
|
"prop-types": "*",
|
||||||
|
"react": "*"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@edx/frontend-app-authoring": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"plugins/course-apps/edxnotes": {
|
"plugins/course-apps/edxnotes": {
|
||||||
"name": "@openedx-plugins/course-app-edxnotes",
|
"name": "@openedx-plugins/course-app-edxnotes",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
"@edx/frontend-platform": "^8.4.0",
|
"@edx/frontend-platform": "^8.4.0",
|
||||||
"@edx/openedx-atlas": "^0.7.0",
|
"@edx/openedx-atlas": "^0.7.0",
|
||||||
"@openedx-plugins/course-app-calculator": "file:plugins/course-apps/calculator",
|
"@openedx-plugins/course-app-calculator": "file:plugins/course-apps/calculator",
|
||||||
|
"@openedx-plugins/course-app-dates": "file:plugins/course-apps/dates",
|
||||||
"@openedx-plugins/course-app-edxnotes": "file:plugins/course-apps/edxnotes",
|
"@openedx-plugins/course-app-edxnotes": "file:plugins/course-apps/edxnotes",
|
||||||
"@openedx-plugins/course-app-learning_assistant": "file:plugins/course-apps/learning_assistant",
|
"@openedx-plugins/course-app-learning_assistant": "file:plugins/course-apps/learning_assistant",
|
||||||
"@openedx-plugins/course-app-live": "file:plugins/course-apps/live",
|
"@openedx-plugins/course-app-live": "file:plugins/course-apps/live",
|
||||||
|
|||||||
29
plugins/course-apps/dates/Settings.tsx
Normal file
29
plugins/course-apps/dates/Settings.tsx
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||||
|
|
||||||
|
import AppSettingsModal from 'CourseAuthoring/pages-and-resources/app-settings-modal/AppSettingsModal';
|
||||||
|
import messages from './messages';
|
||||||
|
|
||||||
|
type DatesSettingsProps = {
|
||||||
|
onClose: () => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
const DatesSettings: React.FC<DatesSettingsProps> = ({ onClose }) => {
|
||||||
|
const intl = useIntl();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<AppSettingsModal
|
||||||
|
appId="dates"
|
||||||
|
title={intl.formatMessage(messages.heading)}
|
||||||
|
enableAppHelp={intl.formatMessage(messages.enableAppHelp)}
|
||||||
|
enableAppLabel={intl.formatMessage(messages.enableAppLabel)}
|
||||||
|
learnMoreText={intl.formatMessage(messages.learnMore)}
|
||||||
|
onClose={onClose}
|
||||||
|
validationSchema={{}}
|
||||||
|
initialValues={{}}
|
||||||
|
onSettingsSave={async () => true}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DatesSettings;
|
||||||
26
plugins/course-apps/dates/messages.ts
Normal file
26
plugins/course-apps/dates/messages.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
heading: {
|
||||||
|
id: 'course-authoring.pages-resources.dates.heading',
|
||||||
|
defaultMessage: 'Configure dates',
|
||||||
|
description: 'Heading for the Dates settings modal shown in Pages & Resources.',
|
||||||
|
},
|
||||||
|
enableAppLabel: {
|
||||||
|
id: 'course-authoring.pages-resources.dates.enable-app.label',
|
||||||
|
defaultMessage: 'Dates',
|
||||||
|
description: 'Label for the toggle that enables the Dates experience.',
|
||||||
|
},
|
||||||
|
enableAppHelp: {
|
||||||
|
id: 'course-authoring.pages-resources.dates.enable-app.help',
|
||||||
|
defaultMessage: 'Show the Dates tab in course navigation, where learners can view important course dates.',
|
||||||
|
description: 'Helper text explaining what enabling the Dates experience does.',
|
||||||
|
},
|
||||||
|
learnMore: {
|
||||||
|
id: 'course-authoring.pages-resources.dates.learn-more',
|
||||||
|
defaultMessage: 'Learn more about dates',
|
||||||
|
description: 'Link text that leads to documentation about the Dates experience.',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default messages;
|
||||||
17
plugins/course-apps/dates/package.json
Normal file
17
plugins/course-apps/dates/package.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "@openedx-plugins/course-app-dates",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"description": "Dates configuration for courses using it",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@edx/frontend-app-authoring": "*",
|
||||||
|
"@edx/frontend-platform": "*",
|
||||||
|
"@openedx/paragon": "*",
|
||||||
|
"prop-types": "*",
|
||||||
|
"react": "*"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@edx/frontend-app-authoring": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@ const SettingsComponent = ({ url }) => {
|
|||||||
|
|
||||||
const LazyLoadedComponent = React.useMemo(
|
const LazyLoadedComponent = React.useMemo(
|
||||||
() => React.lazy(() =>
|
() => React.lazy(() =>
|
||||||
import(`@openedx-plugins/course-app-${appId}/Settings.jsx`).catch((err) => { // eslint-disable-line
|
import(`@openedx-plugins/course-app-${appId}/Settings`).catch((err) => { // eslint-disable-line
|
||||||
// If we couldn't load this plugin, log the details to the console.
|
// If we couldn't load this plugin, log the details to the console.
|
||||||
console.trace(err); // eslint-disable-line no-console
|
console.trace(err); // eslint-disable-line no-console
|
||||||
return { default: PluginLoadFailedError };
|
return { default: PluginLoadFailedError };
|
||||||
|
|||||||
Reference in New Issue
Block a user