Files
edx-platform/cms/static/js/index.js
Syed Ali Abbas Zaidi 228180b1ef fix: all auto fixable eslint issues (#31900)
* fix: eslint operator-linebreak issue

* fix: eslint quotes issue

* fix: react jsx indent and props issues

* fix: eslint trailing spaces issues

* fix: eslint line around directives issue

* fix: eslint prefer template issue

* fix: eslint semi rule

* fix: eslint newline per chain rule

* fix: eslint space infix ops rule

* fix: eslint space-in-parens issue

* fix: eslint space before function paren issue

* fix: eslint space before blocks issue

* fix: eslint arrow body style issue

* fix: eslint dot-location issue

* fix: eslint quotes issue

* fix: eslint quote props issue

* fix: eslint operator assignment issue

* fix: eslint new line after import issue

* fix: indent issues

* fix: operator assignment issue
2023-05-09 11:57:15 +05:00

212 lines
8.2 KiB
JavaScript

define(['domReady', 'jquery', 'underscore', 'js/utils/cancel_on_escape', 'js/views/utils/create_course_utils',
'js/views/utils/create_library_utils', 'common/js/components/utils/view_utils'],
function(domReady, $, _, CancelOnEscape, CreateCourseUtilsFactory, CreateLibraryUtilsFactory, ViewUtils) {
'use strict';
var CreateCourseUtils = new CreateCourseUtilsFactory({
name: '.new-course-name',
org: '.new-course-org',
number: '.new-course-number',
run: '.new-course-run',
save: '.new-course-save',
errorWrapper: '.create-course .wrap-error',
errorMessage: '#course_creation_error',
tipError: '.create-course span.tip-error',
error: '.create-course .error',
allowUnicode: '.allow-unicode-course-id'
}, {
shown: 'is-shown',
showing: 'is-showing',
hiding: 'is-hiding',
disabled: 'is-disabled',
error: 'error'
});
var CreateLibraryUtils = new CreateLibraryUtilsFactory({
name: '.new-library-name',
org: '.new-library-org',
number: '.new-library-number',
save: '.new-library-save',
errorWrapper: '.create-library .wrap-error',
errorMessage: '#library_creation_error',
tipError: '.create-library span.tip-error',
error: '.create-library .error',
allowUnicode: '.allow-unicode-library-id'
}, {
shown: 'is-shown',
showing: 'is-showing',
hiding: 'is-hiding',
disabled: 'is-disabled',
error: 'error'
});
var saveNewCourse = function(e) {
e.preventDefault();
if (CreateCourseUtils.hasInvalidRequiredFields()) {
return;
}
var $newCourseForm = $(this).closest('#create-course-form');
var display_name = $newCourseForm.find('.new-course-name').val();
var org = $newCourseForm.find('.new-course-org').val();
var number = $newCourseForm.find('.new-course-number').val();
var run = $newCourseForm.find('.new-course-run').val();
var course_info = {
org: org,
number: number,
display_name: display_name,
run: run
};
analytics.track('Created a Course', course_info);
CreateCourseUtils.create(course_info, function(errorMessage) {
var msg = edx.HtmlUtils.joinHtml(edx.HtmlUtils.HTML('<p>'), errorMessage, edx.HtmlUtils.HTML('</p>'));
$('.create-course .wrap-error').addClass('is-shown');
edx.HtmlUtils.setHtml($('#course_creation_error'), msg);
$('.new-course-save').addClass('is-disabled').attr('aria-disabled', true);
});
};
var rtlTextDirection = function() {
var Selectors = {
new_course_run: '#new-course-run'
};
if ($('body').hasClass('rtl')) {
$(Selectors.new_course_run).addClass('course-run-text-direction placeholder-text-direction');
$(Selectors.new_course_run).on('input', function() {
if (this.value === '') {
$(Selectors.new_course_run).addClass('placeholder-text-direction');
} else {
$(Selectors.new_course_run).removeClass('placeholder-text-direction');
}
});
}
};
var makeCancelHandler = function(addType) {
return function(e) {
e.preventDefault();
$(`.new-${addType}-button`).removeClass('is-disabled').attr('aria-disabled', false);
$(`.wrapper-create-${addType}`).removeClass('is-shown');
// Clear out existing fields and errors
$(`#create-${addType}-form input[type=text]`).val('');
$(`#${addType}_creation_error`).html('');
$(`.create-${addType} .wrap-error`).removeClass('is-shown');
$(`.new-${addType}-save`).off('click');
};
};
var addNewCourse = function(e) {
var $newCourse,
$cancelButton,
$courseName;
e.preventDefault();
$('.new-course-button').addClass('is-disabled').attr('aria-disabled', true);
$('.new-course-save').addClass('is-disabled').attr('aria-disabled', true);
$newCourse = $('.wrapper-create-course').addClass('is-shown');
$cancelButton = $newCourse.find('.new-course-cancel');
$courseName = $('.new-course-name');
$courseName.focus().select();
$('.new-course-save').on('click', saveNewCourse);
$cancelButton.bind('click', makeCancelHandler('course'));
CancelOnEscape($cancelButton);
CreateCourseUtils.setupOrgAutocomplete();
CreateCourseUtils.configureHandlers();
rtlTextDirection();
};
var saveNewLibrary = function(e) {
e.preventDefault();
if (CreateLibraryUtils.hasInvalidRequiredFields()) {
return;
}
var $newLibraryForm = $(this).closest('#create-library-form');
var display_name = $newLibraryForm.find('.new-library-name').val();
var org = $newLibraryForm.find('.new-library-org').val();
var number = $newLibraryForm.find('.new-library-number').val();
var lib_info = {
org: org,
number: number,
display_name: display_name
};
analytics.track('Created a Library', lib_info);
CreateLibraryUtils.create(lib_info, function(errorMessage) {
var msg = edx.HtmlUtils.joinHtml(edx.HtmlUtils.HTML('<p>'), errorMessage, edx.HtmlUtils.HTML('</p>'));
$('.create-library .wrap-error').addClass('is-shown');
edx.HtmlUtils.setHtml($('#library_creation_error'), msg);
$('.new-library-save').addClass('is-disabled').attr('aria-disabled', true);
});
};
var addNewLibrary = function(e) {
e.preventDefault();
$('.new-library-button').addClass('is-disabled').attr('aria-disabled', true);
$('.new-library-save').addClass('is-disabled').attr('aria-disabled', true);
var $newLibrary = $('.wrapper-create-library').addClass('is-shown');
var $cancelButton = $newLibrary.find('.new-library-cancel');
var $libraryName = $('.new-library-name');
$libraryName.focus().select();
$('.new-library-save').on('click', saveNewLibrary);
$cancelButton.bind('click', makeCancelHandler('library'));
CancelOnEscape($cancelButton);
CreateLibraryUtils.configureHandlers();
};
var showTab = function(tab) {
return function(e) {
e.preventDefault();
window.location.hash = tab;
$('.courses-tab').toggleClass('active', tab === 'courses-tab');
$('.archived-courses-tab').toggleClass('active', tab === 'archived-courses-tab');
$('.libraries-tab').toggleClass('active', tab === 'libraries-tab');
// Also toggle this course-related notice shown below the course tab, if it is present:
$('.wrapper-creationrights').toggleClass('is-hidden', tab !== 'courses-tab');
};
};
var onReady = function() {
var courseTabHref = $('#course-index-tabs .courses-tab a').attr('href');
var libraryTabHref = $('#course-index-tabs .libraries-tab a').attr('href');
var ArchivedTabHref = $('#course-index-tabs .archived-courses-tab a').attr('href');
$('.new-course-button').bind('click', addNewCourse);
$('.new-library-button').bind('click', addNewLibrary);
$('.dismiss-button').bind('click', ViewUtils.deleteNotificationHandler(function() {
ViewUtils.reload();
}));
$('.action-reload').bind('click', ViewUtils.reload);
if (courseTabHref === '#') {
$('#course-index-tabs .courses-tab').bind('click', showTab('courses-tab'));
}
if (libraryTabHref === '#') {
$('#course-index-tabs .libraries-tab').bind('click', showTab('libraries-tab'));
}
if (ArchivedTabHref === '#') {
$('#course-index-tabs .archived-courses-tab').bind('click', showTab('archived-courses-tab'));
}
if (window.location.hash) {
$(window.location.hash.replace('#', '.')).first('a').trigger('click');
}
};
domReady(onReady);
return {
onReady: onReady
};
});