Simplify in-context discussion toggles [BD-38] (#339)
* refactor: remove unit level visibility toggle * refactor: remove the in-context discussion settings toggle * refactor: rename graded units label of in-context discussion setting
This commit is contained in:
@@ -25,16 +25,16 @@ function OpenedXConfigForm({
|
||||
onSubmit, formRef, intl, legacy,
|
||||
}) {
|
||||
const {
|
||||
selectedAppId, enableInContext, enableGradedUnits, unitLevelVisibility, discussionTopicIds, divideDiscussionIds,
|
||||
selectedAppId, enableGradedUnits, discussionTopicIds, divideDiscussionIds,
|
||||
} = useSelector(state => state.discussions);
|
||||
const appConfigObj = useModel('appConfigs', selectedAppId);
|
||||
const discussionTopicsModel = useModels('discussionTopics', discussionTopicIds);
|
||||
const legacyAppConfig = {
|
||||
...(appConfigObj || {}),
|
||||
divideDiscussionIds,
|
||||
enableInContext,
|
||||
enableInContext: true,
|
||||
enableGradedUnits,
|
||||
unitLevelVisibility,
|
||||
unitLevelVisibility: true,
|
||||
allowAnonymousPostsPeers: appConfigObj?.allowAnonymousPostsPeers || false,
|
||||
reportedContentEmailNotifications: appConfigObj?.reportedContentEmailNotifications || false,
|
||||
enableReportedContentEmailNotifications: appConfigObj?.enableReportedContentEmailNotifications || false,
|
||||
@@ -48,10 +48,8 @@ function OpenedXConfigForm({
|
||||
const [validDiscussionTopics, setValidDiscussionTopics] = useState(discussionTopicsModel);
|
||||
// These fields are only used for the new provider and aren't supported for legacy.
|
||||
const additionalFields = legacy ? {} : {
|
||||
enableInContext: Yup.bool().default(true),
|
||||
enabledGradedUnits: Yup.bool().default(false),
|
||||
groupAtSubsection: Yup.bool().default(false),
|
||||
unitLevelVisibility: Yup.bool().default(false),
|
||||
};
|
||||
const validationSchema = Yup.object().shape({
|
||||
blackoutDates: Yup.array(
|
||||
|
||||
@@ -41,9 +41,9 @@ const defaultAppConfig = (divideDiscussionIds = []) => ({
|
||||
],
|
||||
divideDiscussionIds,
|
||||
enableGradedUnits: undefined,
|
||||
enableInContext: undefined,
|
||||
enableInContext: true,
|
||||
groupAtSubsection: false,
|
||||
unitLevelVisibility: undefined,
|
||||
unitLevelVisibility: true,
|
||||
allowAnonymousPosts: false,
|
||||
allowAnonymousPostsPeers: false,
|
||||
reportedContentEmailNotifications: false,
|
||||
@@ -109,7 +109,6 @@ describe('OpenedXConfigForm', () => {
|
||||
expect(queryByText(container, messages.visibilityInContext.defaultMessage)).toBeInTheDocument();
|
||||
expect(queryByText(container, messages.gradedUnitPagesLabel.defaultMessage)).toBeInTheDocument();
|
||||
expect(queryByText(container, messages.groupInContextSubsectionLabel.defaultMessage)).toBeInTheDocument();
|
||||
expect(queryByText(container, messages.allowUnitLevelVisibilityLabel.defaultMessage)).toBeInTheDocument();
|
||||
});
|
||||
|
||||
test('calls onSubmit when the formRef is submitted', async () => {
|
||||
@@ -139,7 +138,7 @@ describe('OpenedXConfigForm', () => {
|
||||
await mockStore({
|
||||
...legacyApiResponse,
|
||||
plugin_configuration: {
|
||||
...legacyApiResponse.plugin_configuration,
|
||||
...legacyApiResponse.plugin_configuration,
|
||||
reported_content_email_notifications_flag: true,
|
||||
divided_course_wide_discussions: [],
|
||||
},
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { TransitionReplace } from '@edx/paragon';
|
||||
import FormSwitchGroup from '../../../../../generic/FormSwitchGroup';
|
||||
import messages from '../../messages';
|
||||
import AppConfigFormDivider from './AppConfigFormDivider';
|
||||
@@ -18,48 +17,20 @@ function InContextDiscussionFields({
|
||||
<FormSwitchGroup
|
||||
onChange={onChange}
|
||||
onBlur={onBlur}
|
||||
id="enableInContext"
|
||||
checked={values.enableInContext}
|
||||
label={intl.formatMessage(messages.inContextDiscussionLabel)}
|
||||
helpText={intl.formatMessage(messages.inContextDiscussionHelp)}
|
||||
id="enableGradedUnits"
|
||||
checked={values.enableGradedUnits}
|
||||
label={intl.formatMessage(messages.gradedUnitPagesLabel)}
|
||||
helpText={intl.formatMessage(messages.gradedUnitPagesHelp)}
|
||||
/>
|
||||
<AppConfigFormDivider />
|
||||
<FormSwitchGroup
|
||||
onChange={onChange}
|
||||
onBlur={onBlur}
|
||||
id="groupAtSubsection"
|
||||
checked={values.groupAtSubsection}
|
||||
label={intl.formatMessage(messages.groupInContextSubsectionLabel)}
|
||||
helpText={intl.formatMessage(messages.groupInContextSubsectionHelp)}
|
||||
/>
|
||||
<TransitionReplace>
|
||||
{values.enableInContext ? (
|
||||
<React.Fragment key="open">
|
||||
<AppConfigFormDivider />
|
||||
<FormSwitchGroup
|
||||
onChange={onChange}
|
||||
onBlur={onBlur}
|
||||
className="ml-4"
|
||||
id="enableGradedUnits"
|
||||
checked={values.enableGradedUnits}
|
||||
label={intl.formatMessage(messages.gradedUnitPagesLabel)}
|
||||
helpText={intl.formatMessage(messages.gradedUnitPagesHelp)}
|
||||
/>
|
||||
<AppConfigFormDivider />
|
||||
<FormSwitchGroup
|
||||
onChange={onChange}
|
||||
onBlur={onBlur}
|
||||
className="ml-4"
|
||||
id="groupAtSubsection"
|
||||
checked={values.groupAtSubsection}
|
||||
label={intl.formatMessage(messages.groupInContextSubsectionLabel)}
|
||||
helpText={intl.formatMessage(messages.groupInContextSubsectionHelp)}
|
||||
/>
|
||||
<AppConfigFormDivider />
|
||||
<FormSwitchGroup
|
||||
onChange={onChange}
|
||||
onBlur={onBlur}
|
||||
className="ml-4"
|
||||
id="unitLevelVisibility"
|
||||
checked={values.unitLevelVisibility}
|
||||
label={intl.formatMessage(messages.allowUnitLevelVisibilityLabel)}
|
||||
helpText={intl.formatMessage(messages.allowUnitLevelVisibilityHelp)}
|
||||
/>
|
||||
</React.Fragment>
|
||||
) : <React.Fragment key="closed" />}
|
||||
|
||||
</TransitionReplace>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -69,10 +40,8 @@ InContextDiscussionFields.propTypes = {
|
||||
onChange: PropTypes.func.isRequired,
|
||||
intl: intlShape.isRequired,
|
||||
values: PropTypes.shape({
|
||||
enableInContext: PropTypes.bool,
|
||||
enableGradedUnits: PropTypes.bool,
|
||||
groupAtSubsection: PropTypes.bool,
|
||||
unitLevelVisibility: PropTypes.bool,
|
||||
}).isRequired,
|
||||
};
|
||||
|
||||
|
||||
@@ -130,17 +130,9 @@ const messages = defineMessages({
|
||||
id: 'authoring.discussions.builtIn.visibilityInContext',
|
||||
defaultMessage: 'Visibility of in-context discussions',
|
||||
},
|
||||
inContextDiscussionLabel: {
|
||||
id: 'authoring.discussions.builtIn.inContextDiscussion.label',
|
||||
defaultMessage: 'In-context discussion',
|
||||
},
|
||||
inContextDiscussionHelp: {
|
||||
id: 'authoring.discussions.builtIn.inContextDiscussion.help',
|
||||
defaultMessage: 'Learners will be able to view or hide a discussion side panel to engage with discussion on the course unit page.',
|
||||
},
|
||||
gradedUnitPagesLabel: {
|
||||
id: 'authoring.discussions.builtIn.gradedUnitPages.label',
|
||||
defaultMessage: 'Graded unit pages',
|
||||
defaultMessage: 'Enable discussions on units in graded subsections',
|
||||
},
|
||||
gradedUnitPagesHelp: {
|
||||
id: 'authoring.discussions.builtIn.gradedUnitPages.help',
|
||||
@@ -154,14 +146,6 @@ const messages = defineMessages({
|
||||
id: 'authoring.discussions.builtIn.groupInContextSubsection.help',
|
||||
defaultMessage: 'Learners will be able to view any post in the sub-section no matter which unit page they are viewing. While this is not recommended, if your course has short learning sequences or low enrollment grouping may increase engagement.',
|
||||
},
|
||||
allowUnitLevelVisibilityLabel: {
|
||||
id: 'authoring.discussions.builtIn.allowUnitLevelVisibility.label',
|
||||
defaultMessage: 'Allow visibility configuration for each course unit',
|
||||
},
|
||||
allowUnitLevelVisibilityHelp: {
|
||||
id: 'authoring.discussions.builtIn.allowUnitLevelVisibility.help',
|
||||
defaultMessage: 'With this advanced setting enabled you will be able to override the global visibility setting and turn discussions on or off for each unit from the course outline view..',
|
||||
},
|
||||
|
||||
// Anonymous posting fields
|
||||
anonymousPosting: {
|
||||
|
||||
Reference in New Issue
Block a user