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:
Arunmozhi
2022-09-07 17:11:48 +05:30
committed by GitHub
parent 7922ceb711
commit 38f9f689c9
4 changed files with 20 additions and 70 deletions

View File

@@ -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(

View File

@@ -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: [],
},

View File

@@ -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,
};

View File

@@ -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: {