Skip to content

Commit a67d79c

Browse files
committed
Merge branch 'master' into chris/FAL-4268-import-course-details
2 parents 3729431 + 0c1554b commit a67d79c

36 files changed

Lines changed: 773 additions & 221 deletions

File tree

.github/workflows/validate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212

1313
steps:
14-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v6
1515
- uses: actions/setup-node@v6
1616
with:
1717
node-version-file: '.nvmrc'
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: ubuntu-latest
2626
needs: tests
2727
steps:
28-
- uses: actions/checkout@v5
28+
- uses: actions/checkout@v6
2929
- name: Download code coverage results
3030
uses: actions/download-artifact@v6
3131
with:

package-lock.json

Lines changed: 79 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
"email-validator": "2.0.4",
7272
"fast-xml-parser": "^5.0.0",
7373
"file-saver": "^2.0.5",
74-
"formik": "2.4.6",
74+
"formik": "2.4.9",
7575
"frontend-components-tinymce-advanced-plugins": "^1.0.3",
7676
"jszip": "^3.10.1",
7777
"lodash": "4.17.21",
@@ -80,7 +80,7 @@
8080
"moment-shortformat": "^2.1.0",
8181
"prop-types": "^15.8.1",
8282
"react": "^18.3.1",
83-
"react-datepicker": "^4.13.0",
83+
"react-datepicker": "^8.0.0",
8484
"react-dom": "^18.3.1",
8585
"react-error-boundary": "^4.0.13",
8686
"react-helmet": "^6.1.0",

plugins/course-apps/proctoring/Settings.jsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ const ProctoringSettings = ({ onClose }) => {
4141
const [loadingPermissionError, setLoadingPermissionError] = useState(false);
4242
const [allowLtiProviders, setAllowLtiProviders] = useState(false);
4343
const [availableProctoringProviders, setAvailableProctoringProviders] = useState([]);
44+
const [requiresEscalationEmailProviders, setRequiresEscalationEmailProviders] = useState([]);
4445
const [ltiProctoringProviders, setLtiProctoringProviders] = useState([]);
4546
const [courseStartDate, setCourseStartDate] = useState('');
4647
const [saveSuccess, setSaveSuccess] = useState(false);
@@ -84,12 +85,9 @@ const ProctoringSettings = ({ onClose }) => {
8485
} else if (name === 'proctoringProvider') {
8586
const newFormValues = { ...formValues, proctoringProvider: value };
8687

87-
if (value === 'proctortrack') {
88-
setFormValues({ ...newFormValues, createZendeskTickets: false });
88+
if (requiresEscalationEmailProviders.includes(value)) {
89+
setFormValues({ ...newFormValues });
8990
setShowEscalationEmail(true);
90-
} else if (value === 'software_secure') {
91-
setFormValues({ ...newFormValues, createZendeskTickets: true });
92-
setShowEscalationEmail(false);
9391
} else if (isLtiProvider(value)) {
9492
setFormValues(newFormValues);
9593
setShowEscalationEmail(true);
@@ -123,7 +121,7 @@ const ProctoringSettings = ({ onClose }) => {
123121
studioDataToPostBack.proctored_exam_settings.allow_proctoring_opt_out = formValues.allowOptingOut;
124122
}
125123

126-
if (formValues.proctoringProvider === 'proctortrack') {
124+
if (requiresEscalationEmailProviders.includes(formValues.proctoringProvider)) {
127125
studioDataToPostBack.proctored_exam_settings.proctoring_escalation_email = formValues.escalationEmail === '' ? null : formValues.escalationEmail;
128126
}
129127

@@ -160,7 +158,7 @@ const ProctoringSettings = ({ onClose }) => {
160158
event.preventDefault();
161159
const isLtiProviderSelected = isLtiProvider(formValues.proctoringProvider);
162160
if (
163-
(formValues.proctoringProvider === 'proctortrack' || isLtiProviderSelected)
161+
(requiresEscalationEmailProviders.includes(formValues.proctoringProvider) || isLtiProviderSelected)
164162
&& !EmailValidator.validate(formValues.escalationEmail)
165163
&& !(formValues.escalationEmail === '' && !formValues.enableProctoredExams)
166164
) {
@@ -527,6 +525,7 @@ const ProctoringSettings = ({ onClose }) => {
527525
setSubmissionInProgress(false);
528526
setCourseStartDate(settingsResponse.data.course_start_date);
529527
setAvailableProctoringProviders(settingsResponse.data.available_proctoring_providers);
528+
setRequiresEscalationEmailProviders(settingsResponse.data.requires_escalation_email_providers);
530529

531530
// The list of providers returned by studio settings are the default behavior. If lti_external
532531
// is available as an option display the list of LTI providers returned by the exam service.
@@ -554,10 +553,11 @@ const ProctoringSettings = ({ onClose }) => {
554553
selectedProvider = proctoredExamSettings.proctoring_provider;
555554
}
556555

557-
const isProctortrack = selectedProvider === 'proctortrack';
556+
const requiresEscalationEmailProvidersList = settingsResponse.data.requires_escalation_email_providers;
557+
const isEscalationEmailRequired = requiresEscalationEmailProvidersList.includes(selectedProvider);
558558
const ltiProviderSelected = proctoringProvidersLti.some(p => p.name === selectedProvider);
559559

560-
if (isProctortrack || ltiProviderSelected) {
560+
if (isEscalationEmailRequired || ltiProviderSelected) {
561561
setShowEscalationEmail(true);
562562
}
563563

0 commit comments

Comments
 (0)