Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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 () => {
Expand Down Expand Up @@ -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: [],
},
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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>
</>
);
}
Expand All @@ -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,
};

Expand Down
18 changes: 1 addition & 17 deletions src/pages-and-resources/discussions/app-config-form/messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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: {
Expand Down