diff --git a/assets/src/js/front/course/_spotlight.js b/assets/src/js/front/course/_spotlight.js index c2268d0459..5229890323 100644 --- a/assets/src/js/front/course/_spotlight.js +++ b/assets/src/js/front/course/_spotlight.js @@ -275,6 +275,7 @@ document.addEventListener('DOMContentLoaded', (event) => { parseInt(document.querySelector('input[name="tutor_assignment_upload_limit"]')?.value) || 0; let message = ''; const maxAllowedFiles = window._tutorobject.assignment_max_file_allowed; + const allowedFileTypes = window._tutorobject.assignment_allowed_file_types; let alreadyUploaded = document.querySelectorAll( '#tutor-student-assignment-edit-file-preview .tutor-instructor-card' ).length; @@ -315,6 +316,15 @@ document.addEventListener('DOMContentLoaded', (event) => { if (!file) { continue; } + let extension = file.name.split('.').pop().toLowerCase(); + if (!allowedFileTypes.includes(`${extension}`)) { + tutor_toast( + __('Warning', 'tutor'), + __(`File type .${extension} is not allowed.`, 'tutor'), + 'error' + ); + continue; + } let editWrapClass = assignmentEditFilePreview ? 'tutor-col-sm-5 tutor-py-16 tutor-mr-16' : ''; fileCard += `
diff --git a/classes/Assets.php b/classes/Assets.php index 69337faa94..7bda4a6123 100644 --- a/classes/Assets.php +++ b/classes/Assets.php @@ -200,7 +200,6 @@ function ( $file ) { 'current_user' => $current_user, 'content_change_event' => 'tutor_content_changed_event', 'is_tutor_course_edit' => isset( $_GET['action'] ) && 'edit' === $_GET['action'] && tutor()->course_post_type === get_post_type( get_the_ID() ) ? true : false, - 'assignment_max_file_allowed' => 'tutor_assignments' === $post_type ? (int) tutor_utils()->get_assignment_option( $post_id, 'upload_files_limit' ) : 0, 'current_page' => $current_page, 'quiz_answer_display_time' => 1000 * (int) tutor_utils()->get_option( 'quiz_answer_display_time' ), 'is_ssl' => is_ssl(),