diff --git a/.eslintrc.json b/.eslintrc.json index 9cc8eb1a57..22dbc24aab 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -49,7 +49,6 @@ "import/no-dynamic-require": "off", "import/no-unresolved": "off", "max-len": "off", - "newline-per-chained-call": "off", "no-console": "off", "no-lonely-if": "off", "no-param-reassign": "off", @@ -73,7 +72,6 @@ "radix": "off", "react/jsx-indent-props": ["error", 4], "react/prop-types": "off", - "semi": "off", "vars-on-top": "off" } } diff --git a/cms/static/cms/js/spec/main_webpack.js b/cms/static/cms/js/spec/main_webpack.js index 020b4d313f..f7440c3876 100644 --- a/cms/static/cms/js/spec/main_webpack.js +++ b/cms/static/cms/js/spec/main_webpack.js @@ -1,5 +1,3 @@ -jasmine.getFixtures().fixturesPath = '/base/templates'; - import 'common/js/spec_helpers/jasmine-extensions'; import 'common/js/spec_helpers/jasmine-stealth'; import 'common/js/spec_helpers/jasmine-waituntil'; @@ -12,11 +10,6 @@ import _ from 'underscore'; import str from 'underscore.string'; import HtmlUtils from 'edx-ui-toolkit/js/utils/html-utils'; import StringUtils from 'edx-ui-toolkit/js/utils/string-utils'; -window._ = _; -window._.str = str; -window.edx = window.edx || {}; -window.edx.HtmlUtils = HtmlUtils; -window.edx.StringUtils = StringUtils; // These are the tests that will be run import './xblock/cms.runtime.v1_spec.js'; @@ -31,4 +24,12 @@ import '../../../js/spec/views/pages/course_outline_spec.js'; import '../../../js/spec/views/xblock_editor_spec.js'; import '../../../js/spec/views/xblock_string_field_editor_spec.js'; +jasmine.getFixtures().fixturesPath = '/base/templates'; + +window._ = _; +window._.str = str; +window.edx = window.edx || {}; +window.edx.HtmlUtils = HtmlUtils; +window.edx.StringUtils = StringUtils; + window.__karma__.start(); // eslint-disable-line no-underscore-dangle diff --git a/cms/static/js/certificates/spec/custom_matchers.js b/cms/static/js/certificates/spec/custom_matchers.js index 18062476b8..32e19dec6a 100644 --- a/cms/static/js/certificates/spec/custom_matchers.js +++ b/cms/static/js/certificates/spec/custom_matchers.js @@ -2,8 +2,8 @@ // http://tobyho.com/2012/01/30/write-a-jasmine-matcher/ define(['jquery'], function($) { // eslint-disable-line no-unused-vars - -'use strict'; + + 'use strict'; return function() { jasmine.addMatchers({ diff --git a/cms/static/js/certificates/spec/views/certificate_preview_spec.js b/cms/static/js/certificates/spec/views/certificate_preview_spec.js index 741c7c5996..ed7f078951 100644 --- a/cms/static/js/certificates/spec/views/certificate_preview_spec.js +++ b/cms/static/js/certificates/spec/views/certificate_preview_spec.js @@ -64,16 +64,16 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel it('course mode selection updating the link successfully', function() { selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test1'); - expect(this.view.$(SELECTORS.preview_certificate).attr('href')). - toEqual('/users/1/courses/orgX/009/2016?preview=test1'); + expect(this.view.$(SELECTORS.preview_certificate).attr('href')) + .toEqual('/users/1/courses/orgX/009/2016?preview=test1'); selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test2'); - expect(this.view.$(SELECTORS.preview_certificate).attr('href')). - toEqual('/users/1/courses/orgX/009/2016?preview=test2'); + expect(this.view.$(SELECTORS.preview_certificate).attr('href')) + .toEqual('/users/1/courses/orgX/009/2016?preview=test2'); selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test3'); - expect(this.view.$(SELECTORS.preview_certificate).attr('href')). - toEqual('/users/1/courses/orgX/009/2016?preview=test3'); + expect(this.view.$(SELECTORS.preview_certificate).attr('href')) + .toEqual('/users/1/courses/orgX/009/2016?preview=test3'); }); it('toggle certificate activation event works fine', function() { diff --git a/cms/static/js/factories/container.js b/cms/static/js/factories/container.js index cfca298851..b98e0f99f2 100644 --- a/cms/static/js/factories/container.js +++ b/cms/static/js/factories/container.js @@ -21,6 +21,6 @@ export default function ContainerFactory(componentTemplates, XBlockInfoJson, act var view = new ContainerPage(_.extend(main_options, options)); view.render(); }); -}; +} -export {ContainerFactory} +export {ContainerFactory}; diff --git a/cms/static/js/factories/context_course.js b/cms/static/js/factories/context_course.js index 475e5a6282..24745295ec 100644 --- a/cms/static/js/factories/context_course.js +++ b/cms/static/js/factories/context_course.js @@ -1,3 +1,3 @@ import * as ContextCourse from 'js/models/course'; -export {ContextCourse} +export {ContextCourse}; diff --git a/cms/static/js/factories/edit_tabs.js b/cms/static/js/factories/edit_tabs.js index 51688bf6a1..cd82fd2d91 100644 --- a/cms/static/js/factories/edit_tabs.js +++ b/cms/static/js/factories/edit_tabs.js @@ -21,6 +21,6 @@ export default function EditTabsFactory(courseLocation, explicitUrl) { mast: $('.wrapper-mast') }); }); -}; +} -export {EditTabsFactory} +export {EditTabsFactory}; diff --git a/cms/static/js/factories/library.js b/cms/static/js/factories/library.js index 7f8d458502..c104b3b049 100644 --- a/cms/static/js/factories/library.js +++ b/cms/static/js/factories/library.js @@ -24,6 +24,6 @@ export default function LibraryFactory(componentTemplates, XBlockInfoJson, optio var view = new PagedContainerPage(_.extend(main_options, options)); view.render(); }); -}; +} -export {LibraryFactory} +export {LibraryFactory}; diff --git a/cms/static/js/factories/settings.js b/cms/static/js/factories/settings.js index b170731397..34faec2eb1 100644 --- a/cms/static/js/factories/settings.js +++ b/cms/static/js/factories/settings.js @@ -16,9 +16,9 @@ define([ // Toggle collapsibles when trigger is clicked $('.collapsible .collapsible-trigger').click(function() { - const contentId = this.id.replace('-trigger', '-content') - $(`#${contentId}`).toggleClass('collapsed') - }) + const contentId = this.id.replace('-trigger', '-content'); + $(`#${contentId}`).toggleClass('collapsed'); + }); model = new CourseDetailsModel(); model.urlRoot = detailsUrl; diff --git a/cms/static/js/factories/textbooks.js b/cms/static/js/factories/textbooks.js index 01950f867f..4c2cec3130 100644 --- a/cms/static/js/factories/textbooks.js +++ b/cms/static/js/factories/textbooks.js @@ -19,6 +19,6 @@ export default function TextbooksFactory(textbooksJson) { return gettext('You have unsaved changes. Do you really want to leave this page?'); } }); -}; +} -export {TextbooksFactory} +export {TextbooksFactory}; diff --git a/cms/static/js/factories/xblock_validation.js b/cms/static/js/factories/xblock_validation.js index 0411dc9150..9936208626 100644 --- a/cms/static/js/factories/xblock_validation.js +++ b/cms/static/js/factories/xblock_validation.js @@ -16,6 +16,6 @@ export default function XBlockValidationFactory(validationMessages, hasEditingUr if (!model.get('empty')) { new XBlockValidationView({el: validationEle, model: model, root: isRoot}).render(); } -}; +} -export {XBlockValidationFactory} +export {XBlockValidationFactory}; diff --git a/cms/static/js/models/settings/course_grading_policy.js b/cms/static/js/models/settings/course_grading_policy.js index 498815cf13..4ed105c7ee 100644 --- a/cms/static/js/models/settings/course_grading_policy.js +++ b/cms/static/js/models/settings/course_grading_policy.js @@ -10,7 +10,7 @@ define(['backbone', 'js/models/location', 'js/collections/course_grader', 'edx-u grace_period: null, // either null or { hours: n, minutes: m, ...} minimum_grade_credit: null, // either null or percentage assignment_count_info: [], // Object with keys mapping assignment type names to a list of - //assignment display names + // assignment display names }, parse: function(attributes) { if (attributes.graders) { diff --git a/cms/static/js/sock.js b/cms/static/js/sock.js index 43c41ba254..1512ec51bc 100644 --- a/cms/static/js/sock.js +++ b/cms/static/js/sock.js @@ -4,7 +4,7 @@ import 'jquery.smoothScroll'; 'use strict'; -var toggleSock = function (e) { +var toggleSock = function(e) { e.preventDefault(); var $btnShowSockLabel = $(this).find('.copy-show'); @@ -33,9 +33,9 @@ var toggleSock = function (e) { }); }; -domReady(function () { +domReady(function() { // toggling footer additional support $('.cta-show-sock').bind('click', toggleSock); }); -export {toggleSock} +export {toggleSock}; diff --git a/cms/static/js/spec/views/license_spec.js b/cms/static/js/spec/views/license_spec.js index 54eb5e2afb..193d267263 100644 --- a/cms/static/js/spec/views/license_spec.js +++ b/cms/static/js/spec/views/license_spec.js @@ -147,7 +147,7 @@ define(['js/views/license', 'js/models/license', 'common/js/spec_helpers/templat this.view = new LicenseView({model: this.model, showPreview: true}); this.view.render(); expect(this.view.$('.license-preview').length).toEqual(1); - // Expect default text to be "All Rights Reserved" + // Expect default text to be "All Rights Reserved" expect(this.view.$('.license-preview')).toContainText('All Rights Reserved'); this.view.$('li[data-license=creative-commons] button').click(); expect(this.view.$('.license-preview').length).toEqual(1); diff --git a/cms/static/js/spec/views/module_edit_spec.js b/cms/static/js/spec/views/module_edit_spec.js index c46cb2b873..a96bbad995 100644 --- a/cms/static/js/spec/views/module_edit_spec.js +++ b/cms/static/js/spec/views/module_edit_spec.js @@ -64,7 +64,7 @@ describe('ModuleEdit', function() { }); }); describe('render', function() { - beforeEach(function () { + beforeEach(function() { edit_helpers.installEditTemplates(true); spyOn(this.moduleEdit, 'loadDisplay'); spyOn(this.moduleEdit, 'delegateEvents'); diff --git a/cms/static/js/spec/views/pages/container_subviews_spec.js b/cms/static/js/spec/views/pages/container_subviews_spec.js index d3860e8530..cde0b42d81 100644 --- a/cms/static/js/spec/views/pages/container_subviews_spec.js +++ b/cms/static/js/spec/views/pages/container_subviews_spec.js @@ -343,15 +343,15 @@ describe('Container Subviews', function() { it('renders the last published date and user when there are no changes', function() { renderContainerPage(this, mockContainerXBlockHtml); fetch({published_on: 'Jul 01, 2014 at 12:45 UTC', published_by: 'amako'}); - expect(containerPage.$(lastDraftCss).text()). - toContain('Last published Jul 01, 2014 at 12:45 UTC by amako'); + expect(containerPage.$(lastDraftCss).text()) + .toContain('Last published Jul 01, 2014 at 12:45 UTC by amako'); }); it('renders the last saved date and user when there are changes', function() { renderContainerPage(this, mockContainerXBlockHtml); fetch({has_changes: true, edited_on: 'Jul 02, 2014 at 14:20 UTC', edited_by: 'joe'}); - expect(containerPage.$(lastDraftCss).text()). - toContain('Draft saved on Jul 02, 2014 at 14:20 UTC by joe'); + expect(containerPage.$(lastDraftCss).text()) + .toContain('Draft saved on Jul 02, 2014 at 14:20 UTC by joe'); }); describe('Release Date', function() { @@ -596,8 +596,8 @@ describe('Container Subviews', function() { fetch({ published: true, published_on: 'Jul 01, 2014 at 12:45 UTC', published_by: 'amako' }); - expect(containerPage.$(lastPublishCss).text()). - toContain('Last published Jul 01, 2014 at 12:45 UTC by amako'); + expect(containerPage.$(lastPublishCss).text()) + .toContain('Last published Jul 01, 2014 at 12:45 UTC by amako'); }); it('renders correctly when the block is published without publish info', function() { diff --git a/cms/static/js/spec/views/pages/course_outline_spec.js b/cms/static/js/spec/views/pages/course_outline_spec.js index 6f49ade213..195e5702d0 100644 --- a/cms/static/js/spec/views/pages/course_outline_spec.js +++ b/cms/static/js/spec/views/pages/course_outline_spec.js @@ -14,7 +14,7 @@ describe('CourseOutlinePage', function() { selectVisibilitySettings, selectDiscussionSettings, selectAdvancedSettings, createMockCourseJSON, createMockSectionJSON, createMockSubsectionJSON, verifyTypePublishable, mockCourseJSON, mockEmptyCourseJSON, setSelfPaced, setSelfPacedCustomPLS, mockSingleSectionCourseJSON, createMockVerticalJSON, createMockIndexJSON, mockCourseEntranceExamJSON, - selectOnboardingExam, createMockCourseJSONWithReviewRules,mockCourseJSONWithReviewRules, + selectOnboardingExam, createMockCourseJSONWithReviewRules, mockCourseJSONWithReviewRules, mockOutlinePage = readFixtures('templates/mock/mock-course-outline-page.underscore'), mockRerunNotification = readFixtures('templates/mock/mock-course-rerun-notification.underscore'); @@ -210,7 +210,7 @@ describe('CourseOutlinePage', function() { setSelfPacedCustomPLS = function() { setSelfPaced(); course.set('is_custom_relative_dates_active', true); - } + }; createCourseOutlinePage = function(test, courseJSON, createOnly) { requests = AjaxHelpers.requests(test); @@ -1458,7 +1458,7 @@ describe('CourseOutlinePage', function() { $('.wrapper-modal-window .action-save').click(); }); - it('can select the onboarding exam when a course supports onboarding', function () { + it('can select the onboarding exam when a course supports onboarding', function() { var mockCourseWithSpecialExamJSON = createMockCourseJSON({}, [ createMockSectionJSON({ has_changes: true, @@ -2191,7 +2191,7 @@ describe('CourseOutlinePage', function() { expect($modalWindow.find('.outline-subsection')).not.toExist(); }); - describe('Self Paced with Custom Personalized Learner Schedules (PLS)', function () { + describe('Self Paced with Custom Personalized Learner Schedules (PLS)', function() { beforeEach(function() { var mockCourseJSON = createMockCourseJSON({}, [ createMockSectionJSON({}, [ @@ -2210,7 +2210,7 @@ describe('CourseOutlinePage', function() { selectRelativeWeeksSubsection = function(weeks) { $('#due_in').val(weeks).trigger('keyup'); - } + }; mockCustomPacingServerValuesJson = createMockSectionJSON({ release_date: 'Jan 01, 2970 at 05:00 UTC' @@ -2235,7 +2235,7 @@ describe('CourseOutlinePage', function() { ]) ]); - it('can show correct editors for self_paced course with custom pacing', function (){ + it('can show correct editors for self_paced course with custom pacing', function() { outlinePage.$('.outline-subsection .configure-button').click(); expect($('.edit-settings-release').length).toBe(0); // Due date input exists for custom pacing self paced courses @@ -2295,7 +2295,7 @@ describe('CourseOutlinePage', function() { expectShowCorrectness('never'); }); - it ('does not show relative date input when assignment is not graded', function() { + it('does not show relative date input when assignment is not graded', function() { outlinePage.$('.outline-subsection .configure-button').click(); $('#grading_type').val('Lab').trigger('change'); $('#due_in').val('').trigger('change'); @@ -2304,7 +2304,7 @@ describe('CourseOutlinePage', function() { $('#grading_type').val('notgraded').trigger('change'); $('#due_in').val('').trigger('change'); expect($('#relative_date_input').css('display')).toBe('none'); - }) + }); it('shows validation error on relative date', function() { outlinePage.$('.outline-subsection .configure-button').click(); @@ -2371,7 +2371,7 @@ describe('CourseOutlinePage', function() { 'Contains staff only content' ); }); - }) + }); }); // Note: most tests for units can be found in Bok Choy @@ -2470,13 +2470,12 @@ describe('CourseOutlinePage', function() { expect(messages).toContainText('Contains staff only content'); }); - describe('discussion settings', function () { + describe('discussion settings', function() { it('hides discussion settings if unit level discussions are disabled', function() { getUnitStatus({}, {unit_level_discussions: false}); outlinePage.$('.outline-unit .configure-button').click(); expect($('.modal-section .edit-discussion')).not.toExist(); }); - }); verifyTypePublishable('unit', function(options) { diff --git a/cms/static/js/spec/views/xblock_validation_spec.js b/cms/static/js/spec/views/xblock_validation_spec.js index 577f16eeb6..16473b9deb 100644 --- a/cms/static/js/spec/views/xblock_validation_spec.js +++ b/cms/static/js/spec/views/xblock_validation_spec.js @@ -110,8 +110,8 @@ define(['jquery', 'js/models/xblock_validation', 'js/views/xblock_validation', ' it('renders action info', function() { expect(view.$('a.edit-button .action-button-text').text()).toContain('Summary Action'); - expect(view.$('a.notification-action-button .action-button-text').text()). - toContain('First Message Action'); + expect(view.$('a.notification-action-button .action-button-text').text()) + .toContain('First Message Action'); expect(view.$('a.notification-action-button').data('notification-action')).toBe('fix-up'); }); diff --git a/cms/static/js/spec_helpers/edit_helpers.js b/cms/static/js/spec_helpers/edit_helpers.js index 217a067e87..0fa81b1e5a 100644 --- a/cms/static/js/spec_helpers/edit_helpers.js +++ b/cms/static/js/spec_helpers/edit_helpers.js @@ -138,4 +138,4 @@ export { installEditTemplates, showEditModal, verifyXBlockRequest, -} +}; diff --git a/cms/static/js/views/course_video_sharing_enable.js b/cms/static/js/views/course_video_sharing_enable.js index 8104141a1a..46bc7ba759 100644 --- a/cms/static/js/views/course_video_sharing_enable.js +++ b/cms/static/js/views/course_video_sharing_enable.js @@ -1,66 +1,67 @@ define([ - "jquery", - "underscore", - "backbone", - "js/views/utils/xblock_utils", - "js/utils/templates", - "js/views/modals/course_outline_modals", - "edx-ui-toolkit/js/utils/html-utils", -], function ($, _, Backbone, XBlockViewUtils, TemplateUtils, CourseOutlineModalsFactory, HtmlUtils) { - "use strict"; - var CourseVideoSharingEnableView = Backbone.View.extend({ - events: { - "change #video-sharing-configuration-options": "handleVideoSharingConfigurationChange", - }, + 'jquery', + 'underscore', + 'backbone', + 'js/views/utils/xblock_utils', + 'js/utils/templates', + 'js/views/modals/course_outline_modals', + 'edx-ui-toolkit/js/utils/html-utils', +], function($, _, Backbone, XBlockViewUtils, TemplateUtils, CourseOutlineModalsFactory, HtmlUtils) { + 'use strict'; - initialize: function () { - this.template = TemplateUtils.loadTemplate("course-video-sharing-enable"); - }, - - getRequestData: function (value) { - return { - metadata: { - 'video_sharing_options': value, + var CourseVideoSharingEnableView = Backbone.View.extend({ + events: { + 'change #video-sharing-configuration-options': 'handleVideoSharingConfigurationChange', }, - }; - }, - handleVideoSharingConfigurationChange: function (event) { - if (event.type === "change") { - event.preventDefault(); - this.updateVideoSharingConfiguration(event.target.value); - this.trackVideoSharingConfigurationChange(event.target.value); - } - }, + initialize: function() { + this.template = TemplateUtils.loadTemplate('course-video-sharing-enable'); + }, - updateVideoSharingConfiguration: function (value) { - XBlockViewUtils.updateXBlockFields(this.model, this.getRequestData(value), { - success: this.refresh.bind(this) - }); - }, + getRequestData: function(value) { + return { + metadata: { + video_sharing_options: value, + }, + }; + }, - trackVideoSharingConfigurationChange: function (value) { - window.analytics.track( - 'edx.social.video_sharing_options.changed', - { - course_id: this.model.id, - video_sharing_options: value - } - ); - }, + handleVideoSharingConfigurationChange: function(event) { + if (event.type === 'change') { + event.preventDefault(); + this.updateVideoSharingConfiguration(event.target.value); + this.trackVideoSharingConfigurationChange(event.target.value); + } + }, - refresh: function () { - this.model.fetch({ - success: this.render.bind(this), - }); - }, + updateVideoSharingConfiguration: function(value) { + XBlockViewUtils.updateXBlockFields(this.model, this.getRequestData(value), { + success: this.refresh.bind(this) + }); + }, - render: function () { - var html = this.template(this.model.attributes); - HtmlUtils.setHtml(this.$el, HtmlUtils.HTML(html)); - return this; - }, - }); + trackVideoSharingConfigurationChange: function(value) { + window.analytics.track( + 'edx.social.video_sharing_options.changed', + { + course_id: this.model.id, + video_sharing_options: value + } + ); + }, - return CourseVideoSharingEnableView; + refresh: function() { + this.model.fetch({ + success: this.render.bind(this), + }); + }, + + render: function() { + var html = this.template(this.model.attributes); + HtmlUtils.setHtml(this.$el, HtmlUtils.HTML(html)); + return this; + }, + }); + + return CourseVideoSharingEnableView; }); diff --git a/cms/static/js/views/metadata.js b/cms/static/js/views/metadata.js index c56363ef7c..3c5fa59811 100644 --- a/cms/static/js/views/metadata.js +++ b/cms/static/js/views/metadata.js @@ -313,7 +313,7 @@ define( updateUrlFieldVisibility: function() { const urlContainer = this.$el.find('.public-access-block-url-container'); - if(this.getValueFromEditor()) { + if (this.getValueFromEditor()) { urlContainer.removeClass('is-hidden'); } else { urlContainer.addClass('is-hidden'); diff --git a/cms/static/js/views/modals/course_outline_modals.js b/cms/static/js/views/modals/course_outline_modals.js index aefb13d286..492bd4b7d0 100644 --- a/cms/static/js/views/modals/course_outline_modals.js +++ b/cms/static/js/views/modals/course_outline_modals.js @@ -408,11 +408,11 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview', if (!this.getValue() || !course.get('start')) { return; } var startDate = new Date(course.get('start')); // The value returned by toUTCString() is a string in the form Www, dd Mmm yyyy hh:mm:ss GMT - var startDateList = startDate.toUTCString().split(' ') + var startDateList = startDate.toUTCString().split(' '); // This text will look like Mmm dd, yyyy (i.e. Jul 26, 2021) this.$('#relative_weeks_due_start_date').text(startDateList[2] + ' ' + startDateList[1] + ', ' + startDateList[3]); - var projectedDate = new Date(startDate) - projectedDate.setDate(projectedDate.getDate() + this.getValue()*7); + var projectedDate = new Date(startDate); + projectedDate.setDate(projectedDate.getDate() + this.getValue() * 7); var projectedDateList = projectedDate.toUTCString().split(' '); this.$('#relative_weeks_due_projected_due_in').text(projectedDateList[2] + ' ' + projectedDateList[1] + ', ' + projectedDateList[3]); this.$('#relative_weeks_due_projected').show(); @@ -433,9 +433,9 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview', afterRender: function() { AbstractEditor.prototype.afterRender.call(this); if (this.model.get('graded')) { - this.$('#relative_date_input').show() + this.$('#relative_date_input').show(); } else { - this.$('#relative_date_input').hide() + this.$('#relative_date_input').hide(); } this.$('.field-due-in input').val(this.model.get('relative_weeks_due')); this.$('#relative_weeks_due_projected').hide(); @@ -444,12 +444,12 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview', getRequestData: function() { // Grab all the sections, map them to their block_ids, then return as an Array - var sectionIds = $('.outline-section').map(function(){ return this.id; }).get() + var sectionIds = $('.outline-section').map(function() { return this.id; }).get(); // Grab all the subsections, map them to their block_ids, then return as an Array - var subsectionIds = $('.outline-subsection').map(function(){ return this.id; }).get() + var subsectionIds = $('.outline-subsection').map(function() { return this.id; }).get(); var relative_weeks_due = null; if (this.getValue() > 0 && $('#grading_type').val() !== 'notgraded') { - relative_weeks_due = this.getValue() + relative_weeks_due = this.getValue(); } window.analytics.track('edx.bi.studio.relative_date.saved', { block_id: this.model.get('id'), @@ -944,16 +944,16 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview', showTipText: function() { if (this.model.get('published')) { - $('.un-published-tip').hide() + $('.un-published-tip').hide(); } else { - $('.un-published-tip').show() + $('.un-published-tip').show(); } - let enabledForGraded = course.get('discussions_settings').enable_graded_units + let enabledForGraded = course.get('discussions_settings').enable_graded_units; if (this.model.get('graded') && !enabledForGraded) { $('#discussion_enabled').prop('disabled', true); - $('.graded-tip').show() + $('.graded-tip').show(); } else { - $('.graded-tip').hide() + $('.graded-tip').hide(); } }, diff --git a/cms/static/js/views/paged_container.js b/cms/static/js/views/paged_container.js index 31c123ad12..87f8605c4b 100644 --- a/cms/static/js/views/paged_container.js +++ b/cms/static/js/views/paged_container.js @@ -109,7 +109,7 @@ function($, _, ViewUtils, ContainerView, ModuleUtils, gettext, NotificationView, if (originalDone) { originalDone(); } - } + }; self.handleXBlockFragment(fragment, options); } }); diff --git a/cms/static/js/views/pages/container.js b/cms/static/js/views/pages/container.js index 1793f28e75..b6afcd4b11 100644 --- a/cms/static/js/views/pages/container.js +++ b/cms/static/js/views/pages/container.js @@ -265,15 +265,15 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView editXBlock: function(event, options) { event.preventDefault(); - if(!options || options.view !== 'visibility_view' ){ - const primaryHeader = $(event.target).closest('.xblock-header-primary') + if (!options || options.view !== 'visibility_view') { + const primaryHeader = $(event.target).closest('.xblock-header-primary'); var useNewTextEditor = primaryHeader.attr('use-new-editor-text'), useNewVideoEditor = primaryHeader.attr('use-new-editor-video'), useNewProblemEditor = primaryHeader.attr('use-new-editor-problem'), blockType = primaryHeader.attr('data-block-type'); - if( (useNewTextEditor === 'True' && blockType === 'html') + if((useNewTextEditor === 'True' && blockType === 'html') || (useNewVideoEditor === 'True' && blockType === 'video') || (useNewProblemEditor === 'True' && blockType === 'problem') ) { @@ -476,13 +476,13 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView useNewProblemEditor = this.$('.xblock-header-primary').attr('use-new-editor-problem'); // find the block type in the locator if availible - if(data.hasOwnProperty('locator')){ + if(data.hasOwnProperty('locator')) { var matchBlockTypeFromLocator = /\@(.*?)\+/; var blockType = data.locator.match(matchBlockTypeFromLocator); } if((useNewTextEditor === 'True' && blockType.includes('html')) || (useNewVideoEditor === 'True' && blockType.includes('video')) - ||(useNewProblemEditor === 'True' && blockType.includes('problem')) + || (useNewProblemEditor === 'True' && blockType.includes('problem')) ){ var destinationUrl = this.$('.xblock-header-primary').attr('authoring_MFE_base_url') + '/' + blockType[1] + '/' + encodeURI(data.locator); window.location.href = destinationUrl; diff --git a/cms/static/js/views/pages/course_outline.js b/cms/static/js/views/pages/course_outline.js index 78a69baa9a..31227f4aa1 100644 --- a/cms/static/js/views/pages/course_outline.js +++ b/cms/static/js/views/pages/course_outline.js @@ -125,7 +125,7 @@ function($, _, gettext, BasePage, XBlockViewUtils, CourseOutlineView, ViewUtils, * at 100 millisecond intervals until element is found or * Polling is reached */ - scrollToElement: function () { + scrollToElement: function() { this.findElementPollingTimeout -= this.pollingDelay; const elementID = window.location.hash.replace('#', ''); diff --git a/cms/static/js/views/settings/grading.js b/cms/static/js/views/settings/grading.js index fea7dd78e0..2148466a0e 100644 --- a/cms/static/js/views/settings/grading.js +++ b/cms/static/js/views/settings/grading.js @@ -75,7 +75,7 @@ function(ValidatingView, _, $, ui, GraderView, StringUtils, HtmlUtils) { this); gradeCollection.each(function(gradeModel) { var graderType = gradeModel.get('type'); - var graderTypeAssignmentList = self.courseAssignmentLists[graderType] + var graderTypeAssignmentList = self.courseAssignmentLists[graderType]; if (graderTypeAssignmentList === undefined) { graderTypeAssignmentList = []; } diff --git a/cms/static/js/views/settings/main.js b/cms/static/js/views/settings/main.js index 4f5b358cdc..ef728b616c 100644 --- a/cms/static/js/views/settings/main.js +++ b/cms/static/js/views/settings/main.js @@ -388,7 +388,7 @@ function(ValidatingView, CodeMirror, _, $, ui, DateUtils, FileUploadModel, Hides and clears the certificate available date field if a display behavior that doesn't use it is chosen. Because we are clearing it, toggling back to "end_with_date" will require re-entering the date */ - if (!this.useV2CertDisplaySettings){ + if (!this.useV2CertDisplaySettings) { return; } let showDatepicker = this.model.get('certificates_display_behavior') == 'end_with_date'; @@ -402,7 +402,7 @@ function(ValidatingView, CodeMirror, _, $, ui, DateUtils, FileUploadModel, datepicker.prop('disabled', true); datepicker.val(null); this.clearValidationErrors(); - this.setAndValidate('certificate_available_date', null) + this.setAndValidate('certificate_available_date', null); certificateAvailableDateField.addClass('hidden'); } }, diff --git a/cms/static/karma_cms.conf.js b/cms/static/karma_cms.conf.js index 16d2cc6f4c..6d6451ebd4 100644 --- a/cms/static/karma_cms.conf.js +++ b/cms/static/karma_cms.conf.js @@ -6,6 +6,7 @@ 'use strict'; var path = require('path'); + var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js')); var options = { diff --git a/cms/static/karma_cms_squire.conf.js b/cms/static/karma_cms_squire.conf.js index f8c0260fde..9a83a189be 100644 --- a/cms/static/karma_cms_squire.conf.js +++ b/cms/static/karma_cms_squire.conf.js @@ -6,6 +6,7 @@ 'use strict'; var path = require('path'); + var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js')); var options = { diff --git a/cms/static/karma_cms_webpack.conf.js b/cms/static/karma_cms_webpack.conf.js index 91650cc5b1..60c228e36c 100644 --- a/cms/static/karma_cms_webpack.conf.js +++ b/cms/static/karma_cms_webpack.conf.js @@ -6,6 +6,7 @@ 'use strict'; var path = require('path'); + var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js')); var options = { diff --git a/common/static/common/js/components/BlockBrowser/components/BlockBrowser/BlockBrowser.jsx b/common/static/common/js/components/BlockBrowser/components/BlockBrowser/BlockBrowser.jsx index 1a7d81f336..9012703ce8 100644 --- a/common/static/common/js/components/BlockBrowser/components/BlockBrowser/BlockBrowser.jsx +++ b/common/static/common/js/components/BlockBrowser/components/BlockBrowser/BlockBrowser.jsx @@ -34,7 +34,7 @@ const BlockType = PropTypes.shape({ }); export const BlockList = ({ - blocks, selectedBlock, onSelectBlock, onChangeRoot + blocks, selectedBlock, onSelectBlock, onChangeRoot, }) => ( @@ -71,7 +72,7 @@ BlockList.defaultProps = { }; export const BlockBrowser = ({ - blocks, selectedBlock, onSelectBlock, onChangeRoot, className + blocks, selectedBlock, onSelectBlock, onChangeRoot, className, }) => !!blocks && (
diff --git a/common/static/common/js/components/BlockBrowser/data/api/client.js b/common/static/common/js/components/BlockBrowser/data/api/client.js index fd96ef3d12..2f00eaa08c 100644 --- a/common/static/common/js/components/BlockBrowser/data/api/client.js +++ b/common/static/common/js/components/BlockBrowser/data/api/client.js @@ -29,4 +29,4 @@ export const getCourseBlocks = courseId => fetch(`${COURSE_BLOCKS_API}?${buildQu credentials: 'same-origin', method: 'get', headers: HEADERS, -},); +}); diff --git a/common/static/common/js/components/ExperimentalCarousel.jsx b/common/static/common/js/components/ExperimentalCarousel.jsx index 1f954d3206..6d99d6d468 100644 --- a/common/static/common/js/components/ExperimentalCarousel.jsx +++ b/common/static/common/js/components/ExperimentalCarousel.jsx @@ -11,7 +11,7 @@ function NextArrow(props) { } = props; const showArrow = slideCount - currentSlide > displayedSlides; const opts = { - className: classNames('js-carousel-nav', 'carousel-arrow', 'next', 'btn btn-secondary', {'active': showArrow}), + className: classNames('js-carousel-nav', 'carousel-arrow', 'next', 'btn btn-secondary', {active: showArrow}), onClick }; @@ -22,8 +22,8 @@ function NextArrow(props) { return ( ); } @@ -32,7 +32,7 @@ function PrevArrow(props) { const {currentSlide, onClick} = props; const showArrow = currentSlide > 0; const opts = { - className: classNames('js-carousel-nav', 'carousel-arrow', 'prev', 'btn btn-secondary', {'active': showArrow}), + className: classNames('js-carousel-nav', 'carousel-arrow', 'prev', 'btn btn-secondary', {active: showArrow}), onClick }; @@ -41,10 +41,10 @@ function PrevArrow(props) { } return ( - ); } @@ -87,7 +87,7 @@ export default class ExperimentalCarousel extends React.Component { }, tabIndex: tabIndex, className: 'carousel-item' - } + }; return (
@@ -113,7 +113,7 @@ export default class ExperimentalCarousel extends React.Component { }; return ( - + {this.getCarouselContent()} ); @@ -122,4 +122,4 @@ export default class ExperimentalCarousel extends React.Component { ExperimentalCarousel.propTypes = { slides: PropTypes.array.isRequired -}; \ No newline at end of file +}; diff --git a/common/static/common/js/discussion/content.js b/common/static/common/js/discussion/content.js index 905271358f..71bc08f0db 100644 --- a/common/static/common/js/discussion/content.js +++ b/common/static/common/js/discussion/content.js @@ -208,7 +208,7 @@ Content.prototype.incrementVote = function(increment) { var newVotes; newVotes = _.clone(this.get('votes')); - newVotes.up_count = newVotes.up_count + increment; + newVotes.up_count += increment; return this.set('votes', newVotes); }; diff --git a/common/static/common/js/discussion/utils.js b/common/static/common/js/discussion/utils.js index bc9a99f14f..6be86b1462 100644 --- a/common/static/common/js/discussion/utils.js +++ b/common/static/common/js/discussion/utils.js @@ -32,8 +32,8 @@ if (_.isUndefined(userId)) { userId = this.user ? this.user.id : void 0; } - if(_.isUndefined(this.roleIds)) { - this.roleIds = {} + if (_.isUndefined(this.roleIds)) { + this.roleIds = {}; } staff = _.union(this.roleIds.Moderator, this.roleIds.Administrator); return _.include(staff, parseInt(userId)); @@ -77,7 +77,9 @@ DiscussionUtil.generateDiscussionLink = function(cls, txt, handler) { return $('') .addClass('discussion-link').attr('href', '#') - .addClass(cls).text(txt).click(function() { return handler(this); }); + .addClass(cls) + .text(txt) + .click(function() { return handler(this); }); }; DiscussionUtil.urlFor = function(name, param, param1, param2) { @@ -484,7 +486,6 @@ element, this.postMathJaxProcessor(this.markdownWithHighlight(element.text())) ); - }; DiscussionUtil.typesetMathJax = function(element) { diff --git a/common/static/common/js/jasmine.common.conf.js b/common/static/common/js/jasmine.common.conf.js index c190bf94b3..d6d7f79773 100644 --- a/common/static/common/js/jasmine.common.conf.js +++ b/common/static/common/js/jasmine.common.conf.js @@ -9,4 +9,4 @@ jasmine.getFixtures().fixturesPath = '/base/'; // Stub out modal dialog alerts, which will prevent // us from accessing the test results in the DOM window.confirm = function() { return true; }; -window.alert = function() { return; }; +window.alert = function() { }; diff --git a/common/static/common/js/jasmine_stack_trace.js b/common/static/common/js/jasmine_stack_trace.js index 5cd73ff287..f61d591f0a 100644 --- a/common/static/common/js/jasmine_stack_trace.js +++ b/common/static/common/js/jasmine_stack_trace.js @@ -3,8 +3,8 @@ initialized we can't override the ExceptionFormatter as Jasmine then uses the stored reference to the function */ (function() { /* globals jasmineRequire */ - -'use strict'; + + 'use strict'; var OldExceptionFormatter = jasmineRequire.ExceptionFormatter(), oldExceptionFormatter = new OldExceptionFormatter(), diff --git a/common/static/common/js/karma.common.conf.js b/common/static/common/js/karma.common.conf.js index 41936aeb9b..6123b5a99d 100644 --- a/common/static/common/js/karma.common.conf.js +++ b/common/static/common/js/karma.common.conf.js @@ -40,9 +40,11 @@ var path = require('path'); var _ = require('underscore'); + var appRoot = path.join(__dirname, '../../../../'); var webdriver = require('selenium-webdriver'); var firefox = require('selenium-webdriver/firefox'); + var webpackConfig = require(path.join(appRoot, 'webpack.dev.config.js')); // The following crazy bit is to work around the webpack.optimize.CommonsChunkPlugin diff --git a/common/static/common/js/spec/discussion/view/discussion_thread_profile_view_spec.js b/common/static/common/js/spec/discussion/view/discussion_thread_profile_view_spec.js index fa1079c747..70810dacbf 100644 --- a/common/static/common/js/spec/discussion/view/discussion_thread_profile_view_spec.js +++ b/common/static/common/js/spec/discussion/view/discussion_thread_profile_view_spec.js @@ -57,11 +57,11 @@ _ref >= 0 ? _i <= _ref : _i >= _ref; i = _ref >= 0 ? ++_i : --_i ) { - threadData.body = threadData.body + imageTag; + threadData.body += imageTag; if (i === 0) { - expectedHtml = expectedHtml + imageTag; + expectedHtml += imageTag; } else { - expectedHtml = expectedHtml + 'image omitted'; + expectedHtml += 'image omitted'; } } } diff --git a/common/static/js/capa/drag_and_drop/draggables.js b/common/static/js/capa/drag_and_drop/draggables.js index bd2d312617..13e26c28de 100644 --- a/common/static/js/capa/drag_and_drop/draggables.js +++ b/common/static/js/capa/drag_and_drop/draggables.js @@ -80,8 +80,6 @@ callbackFunc(draggableObj); }, 0); }); - - return; } else { if (draggableObj.originalConfigObj.label.length > 0) { draggableObj.iconEl = $(HtmlUtils.joinHtml( @@ -101,8 +99,6 @@ setTimeout(function() { callbackFunc(draggableObj); }, 0); - - return; } } } diff --git a/common/static/js/spec/string_utils_spec.js b/common/static/js/spec/string_utils_spec.js index 81b4d9fa3a..8d4e7c5181 100644 --- a/common/static/js/spec/string_utils_spec.js +++ b/common/static/js/spec/string_utils_spec.js @@ -1,15 +1,15 @@ describe('interpolate_ntext', function() { it('replaces placeholder values', function() { - expect(interpolate_ntext('contains {count} student', 'contains {count} students', 1, {count: 1})). - toBe('contains 1 student'); - expect(interpolate_ntext('contains {count} student', 'contains {count} students', 5, {count: 2})). - toBe('contains 2 students'); + expect(interpolate_ntext('contains {count} student', 'contains {count} students', 1, {count: 1})) + .toBe('contains 1 student'); + expect(interpolate_ntext('contains {count} student', 'contains {count} students', 5, {count: 2})) + .toBe('contains 2 students'); }); }); describe('interpolate_text', function() { it('replaces placeholder values', function() { - expect(interpolate_text('contains {adjective} students', {adjective: 'awesome'})). - toBe('contains awesome students'); + expect(interpolate_text('contains {adjective} students', {adjective: 'awesome'})) + .toBe('contains awesome students'); }); }); diff --git a/common/static/js/src/CookiePolicyBanner.jsx b/common/static/js/src/CookiePolicyBanner.jsx index 7e6ec6ce71..a570e1cc95 100644 --- a/common/static/js/src/CookiePolicyBanner.jsx +++ b/common/static/js/src/CookiePolicyBanner.jsx @@ -1,4 +1,5 @@ import React from 'react'; import CookieBanner from '@edx/frontend-component-cookie-policy-banner'; -export function CookiePolicyBanner() { return ; }; +// eslint-disable-next-line import/prefer-default-export +export function CookiePolicyBanner() { return ; } diff --git a/common/static/js/src/accessibility_tools.js b/common/static/js/src/accessibility_tools.js index 54f9997d19..5c2392c352 100644 --- a/common/static/js/src/accessibility_tools.js +++ b/common/static/js/src/accessibility_tools.js @@ -151,7 +151,7 @@ var accessible_modal = function(trigger, closeButtonId, modalId, mainPageId) { // see http://accessibility.oit.ncsu.edu/blog/2013/09/13/the-incredible-accessible-modal-dialog/ // for more information on managing modals // - var initialFocus + var initialFocus; $(trigger).click(function() { $focusedElementBeforeModal = $(trigger); diff --git a/common/static/karma_common.conf.js b/common/static/karma_common.conf.js index ef8244ff78..93dbc183bd 100644 --- a/common/static/karma_common.conf.js +++ b/common/static/karma_common.conf.js @@ -6,6 +6,7 @@ 'use strict'; var path = require('path'); + var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js')); var options = { diff --git a/common/static/karma_common_requirejs.conf.js b/common/static/karma_common_requirejs.conf.js index f407a548d0..4a0a18b785 100644 --- a/common/static/karma_common_requirejs.conf.js +++ b/common/static/karma_common_requirejs.conf.js @@ -6,6 +6,7 @@ 'use strict'; var path = require('path'); + var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js')); var options = { diff --git a/jest.config.js b/jest.config.js index e9e014bd1d..a4e84c2350 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,17 +1,17 @@ module.exports = { - 'globals': { - 'gettext': (t) => { return t; }, + globals: { + gettext: (t) => t, }, - 'modulePaths': [ + modulePaths: [ 'common/static/common/js/components', ], - 'setupFilesAfterEnv': ['/setupTests.js'], - 'testMatch': [ + setupFilesAfterEnv: ['/setupTests.js'], + testMatch: [ '/**/*.test.jsx', 'common/static/common/js/components/**/?(*.)+(spec|test).js?(x)', ], - 'testEnvironment': 'jsdom', - 'transform': { + testEnvironment: 'jsdom', + transform: { '^.+\\.jsx$': 'babel-jest', '^.+\\.js$': 'babel-jest', }, diff --git a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.jsx b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.jsx index e649c64dc2..d921f90441 100644 --- a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.jsx +++ b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.jsx @@ -29,7 +29,7 @@ export default class Main extends React.Component { this.props.problemResponsesEndpoint, this.props.taskStatusEndpoint, this.props.reportDownloadEndpoint, - this.props.selectedBlock + this.props.selectedBlock, ); } diff --git a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.test.jsx b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.test.jsx index 00c6620dbc..4cdcf049ca 100644 --- a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.test.jsx +++ b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/Main.test.jsx @@ -44,7 +44,7 @@ describe('ProblemBrowser Main component', () => { fetchCourseBlocks={jest.fn()} problemResponsesEndpoint={problemResponsesEndpoint} onSelectBlock={jest.fn()} - selectedBlock={'some-selected-block'} + selectedBlock="some-selected-block" taskStatusEndpoint={taskStatusEndpoint} /> , @@ -64,7 +64,7 @@ describe('ProblemBrowser Main component', () => { fetchCourseBlocks={fetchCourseBlocksMock} problemResponsesEndpoint={problemResponsesEndpoint} onSelectBlock={jest.fn()} - selectedBlock={'some-selected-block'} + selectedBlock="some-selected-block" taskStatusEndpoint={taskStatusEndpoint} /> , @@ -83,7 +83,7 @@ describe('ProblemBrowser Main component', () => { fetchCourseBlocks={jest.fn()} problemResponsesEndpoint={problemResponsesEndpoint} onSelectBlock={jest.fn()} - selectedBlock={'some-selected-block'} + selectedBlock="some-selected-block" taskStatusEndpoint={taskStatusEndpoint} />, ); diff --git a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/MainContainer.jsx b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/MainContainer.jsx index e4affc695f..459588a447 100644 --- a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/MainContainer.jsx +++ b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/Main/MainContainer.jsx @@ -13,7 +13,7 @@ const mapDispatchToProps = dispatch => ({ (courseId, excludeBlockTypes) => dispatch(fetchCourseBlocks(courseId, excludeBlockTypes)), createProblemResponsesReportTask: (problemResponsesEndpoint, taskStatusEndpoint, reportDownloadEndpoint, problemLocation) => dispatch( - createProblemResponsesReportTask(problemResponsesEndpoint, taskStatusEndpoint, reportDownloadEndpoint, problemLocation,), + createProblemResponsesReportTask(problemResponsesEndpoint, taskStatusEndpoint, reportDownloadEndpoint, problemLocation), ), }); diff --git a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.jsx b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.jsx index 99db4d2984..49fbb3a034 100644 --- a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.jsx +++ b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.jsx @@ -5,7 +5,7 @@ import * as PropTypes from 'prop-types'; import * as React from 'react'; const ReportStatus = ({ - error, succeeded, inProgress, reportPath + error, succeeded, inProgress, reportPath, }) => { const progressMessage = (
diff --git a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.test.jsx b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.test.jsx index fd5b247b92..a3d9e06356 100644 --- a/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.test.jsx +++ b/lms/djangoapps/instructor/static/instructor/ProblemBrowser/components/ReportStatus/ReportStatus.test.jsx @@ -23,8 +23,8 @@ describe('ReportStatus component', () => { , ); @@ -35,7 +35,7 @@ describe('ReportStatus component', () => { test('render error status', () => { const component = renderer.create( fetch(`${endpoint}/?task_id=${taskId}`, { credentials: 'same-origin', method: 'get', headers: HEADERS, -},); +}); const fetchDownloadsList = (endpoint, reportName) => { const formData = new FormData(); @@ -33,7 +33,7 @@ const fetchDownloadsList = (endpoint, reportName) => { method: 'POST', headers: HEADERS, body: formData, - },); + }); }; export { diff --git a/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/container.jsx b/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/container.jsx index 905058b85a..f403be16b2 100644 --- a/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/container.jsx +++ b/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/container.jsx @@ -13,9 +13,9 @@ const mapStateToProps = state => ({ const mapDispatchToProps = dispatch => ({ createEntitlement: ({ - username, courseUuid, mode, comments + username, courseUuid, mode, comments, }) => dispatch(createEntitlement({ - username, courseUuid, mode, comments + username, courseUuid, mode, comments, })), reissueEntitlement: ({ entitlement, comments }) => dispatch(reissueEntitlement({ entitlement, comments })), closeForm: () => dispatch(closeForm()), diff --git a/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/index.jsx b/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/index.jsx index e06911c3ad..ceea7134df 100644 --- a/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/index.jsx +++ b/lms/djangoapps/support/static/support/jsx/entitlements/components/EntitlementForm/index.jsx @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { - Button, InputSelect, InputText, TextArea + Button, InputSelect, InputText, TextArea, } from '@edx/paragon'; import { formTypes } from '../../data/constants/formTypes'; @@ -57,21 +57,21 @@ class EntitlementForm extends React.Component { submitForm() { const { - courseUuid, username, mode, comments + courseUuid, username, mode, comments, } = this.state; const { formType, entitlement } = this.props; if (formType === formTypes.REISSUE) { // if there is an active entitlement we are updating an entitlement this.props.reissueEntitlement({ entitlement, comments }); } else { // if there is no active entitlement we are creating a new entitlement this.props.createEntitlement({ - courseUuid, username, mode, comments + courseUuid, username, mode, comments, }); } } render() { const { - courseUuid, username, mode, comments + courseUuid, username, mode, comments, } = this.state; const isReissue = this.props.formType === formTypes.REISSUE; const title = isReissue ? 'Re-issue Entitlement' : 'Create Entitlement'; diff --git a/lms/djangoapps/support/static/support/jsx/entitlements/components/Table/EntitlementSupportTable.jsx b/lms/djangoapps/support/static/support/jsx/entitlements/components/Table/EntitlementSupportTable.jsx index 5cf7bab59c..aec8c5896b 100644 --- a/lms/djangoapps/support/static/support/jsx/entitlements/components/Table/EntitlementSupportTable.jsx +++ b/lms/djangoapps/support/static/support/jsx/entitlements/components/Table/EntitlementSupportTable.jsx @@ -47,7 +47,7 @@ const entitlementColumns = [ const parseEntitlementData = (entitlements, ecommerceUrl, openReissueForm) => entitlements.map((entitlement) => { const { - expiredAt, created, modified, orderNumber, enrollmentCourseRun + expiredAt, created, modified, orderNumber, enrollmentCourseRun, } = entitlement; return Object.assign({}, entitlement, { expiredAt: expiredAt ? moment(expiredAt).format('lll') : '', diff --git a/lms/djangoapps/support/static/support/jsx/entitlements/data/actions/entitlement.js b/lms/djangoapps/support/static/support/jsx/entitlements/data/actions/entitlement.js index 3173c85da3..d7aceb6328 100644 --- a/lms/djangoapps/support/static/support/jsx/entitlements/data/actions/entitlement.js +++ b/lms/djangoapps/support/static/support/jsx/entitlements/data/actions/entitlement.js @@ -67,7 +67,7 @@ const createEntitlementSuccess = entitlement => ({ const createEntitlementFailure = error => dispatch => dispatch(displayError('Error Creating Entitlement', error)); const createEntitlement = ({ - username, courseUuid, mode, comments + username, courseUuid, mode, comments, }) => (dispatch) => { postEntitlement({ username, diff --git a/lms/djangoapps/support/static/support/jsx/entitlements/data/api/client.js b/lms/djangoapps/support/static/support/jsx/entitlements/data/api/client.js index 747d71642f..0431298041 100644 --- a/lms/djangoapps/support/static/support/jsx/entitlements/data/api/client.js +++ b/lms/djangoapps/support/static/support/jsx/entitlements/data/api/client.js @@ -12,10 +12,10 @@ const HEADERS = { const getEntitlements = username => fetch(`${entitlementApi}?user=${username}`, { credentials: 'same-origin', method: 'get', -},); +}); const postEntitlement = ({ - username, courseUuid, mode, action, comments = null + username, courseUuid, mode, action, comments = null, }) => fetch(`${entitlementApi}`, { credentials: 'same-origin', method: 'post', @@ -30,10 +30,10 @@ const postEntitlement = ({ comments, }], }), -},); +}); const patchEntitlement = ({ - uuid, action, unenrolledRun = null, comments = null + uuid, action, unenrolledRun = null, comments = null, }) => fetch(`${entitlementApi}${uuid}`, { credentials: 'same-origin', method: 'patch', @@ -46,7 +46,7 @@ const patchEntitlement = ({ comments, }], }), -},); +}); export { getEntitlements, diff --git a/lms/djangoapps/support/static/support/jsx/entitlements/data/reducers/form.js b/lms/djangoapps/support/static/support/jsx/entitlements/data/reducers/form.js index b195b4ff02..11394eb0b8 100644 --- a/lms/djangoapps/support/static/support/jsx/entitlements/data/reducers/form.js +++ b/lms/djangoapps/support/static/support/jsx/entitlements/data/reducers/form.js @@ -1,5 +1,6 @@ import { formActions, entitlementActions } from '../constants/actionTypes'; import { formTypes } from '../constants/formTypes'; + const clearFormState = { formType: '', isOpen: false, @@ -10,11 +11,11 @@ const form = (state = {}, action) => { switch (action.type) { case formActions.OPEN_REISSUE_FORM: return { - ...state, formType: formTypes.REISSUE, isOpen: true, activeEntitlement: action.entitlement + ...state, formType: formTypes.REISSUE, isOpen: true, activeEntitlement: action.entitlement, }; case formActions.OPEN_CREATION_FORM: return { - ...state, formType: formTypes.CREATE, isOpen: true, activeEntitlement: null + ...state, formType: formTypes.CREATE, isOpen: true, activeEntitlement: null, }; case formActions.CLOSE_FORM: case entitlementActions.reissue.SUCCESS: diff --git a/lms/djangoapps/support/static/support/jsx/file_upload.jsx b/lms/djangoapps/support/static/support/jsx/file_upload.jsx index 57ba417f80..ec9cb91b41 100644 --- a/lms/djangoapps/support/static/support/jsx/file_upload.jsx +++ b/lms/djangoapps/support/static/support/jsx/file_upload.jsx @@ -141,8 +141,7 @@ class FileUpload extends React.Component { fileName={this.state.fileInProgress} request={this.state.currentRequest} /> - ) - } + )}
{ diff --git a/lms/djangoapps/support/static/support/jsx/program_enrollments/index.jsx b/lms/djangoapps/support/static/support/jsx/program_enrollments/index.jsx index aa137ac4b2..9d7ce4ec32 100644 --- a/lms/djangoapps/support/static/support/jsx/program_enrollments/index.jsx +++ b/lms/djangoapps/support/static/support/jsx/program_enrollments/index.jsx @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import Cookies from 'js-cookie'; import { - Button, InputText, TextArea, StatusAlert + Button, InputText, TextArea, StatusAlert, } from '@edx/paragon'; export const LinkProgramEnrollmentsSupportPage = props => ( diff --git a/lms/djangoapps/support/static/support/jsx/program_enrollments/inspector.jsx b/lms/djangoapps/support/static/support/jsx/program_enrollments/inspector.jsx index 3f8f6fda57..0996b12050 100644 --- a/lms/djangoapps/support/static/support/jsx/program_enrollments/inspector.jsx +++ b/lms/djangoapps/support/static/support/jsx/program_enrollments/inspector.jsx @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { - Button, InputText, StatusAlert, InputSelect + Button, InputText, StatusAlert, InputSelect, } from '@edx/paragon'; /* @@ -112,7 +112,7 @@ const renderEnrollmentsSection = enrollments => (
)}
- ) + ), )}
))} @@ -152,7 +152,7 @@ export const ProgramEnrollmentsInspectorPage = props => ( dialog={props.error} /> )} -