Files
edx-platform/lms/static/js/edxnotes/views/tabs/course_structure.js
Syed Ali Abbas Zaidi 8480dbc228 chore: apply amnesty on existing not fixable issues (#32215)
* 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 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

* fix: all autofixable eslint issues

* fix: all react related fixable issues

* fix: autofixable eslint issues

* chore: remove all template literals

* fix: remaining autofixable issues

* chore: apply amnesty on all existing issues

* fix: failing xss-lint issues

* refactor: apply amnesty on remaining issues

* refactor: apply amnesty on new issues

* fix: remove file level suppressions

* refactor: apply amnesty on new issues
2023-08-07 19:13:19 +05:00

62 lines
2.6 KiB
JavaScript

// eslint-disable-next-line no-shadow-restricted-names
(function(define, undefined) {
'use strict';
define([
'gettext', 'underscore', 'js/edxnotes/views/note_group', 'js/edxnotes/views/tab_panel',
'js/edxnotes/views/tab_view', 'edx-ui-toolkit/js/utils/html-utils'
], function(gettext, _, NoteGroupView, TabPanelView, TabView, HtmlUtils) {
var view = 'Location in Course';
var CourseStructureView = TabView.extend({
PanelConstructor: TabPanelView.extend({
id: 'structure-panel',
title: view,
renderContent: function() {
var courseStructure = this.collection.getCourseStructure(),
container = document.createDocumentFragment();
_.each(courseStructure.chapters, function(chapterInfo) {
var chapterView = this.getChapterGroupView(chapterInfo);
_.each(chapterInfo.children, function(location) {
var sectionInfo = courseStructure.sections[location],
sectionView;
if (sectionInfo) {
sectionView = chapterView.addChild(sectionInfo);
// eslint-disable-next-line no-shadow
_.each(sectionInfo.children, function(location) {
var notes = courseStructure.units[location];
if (notes) {
sectionView.addChild(this.getNotes(notes));
}
}, this);
}
}, this);
container.appendChild(chapterView.render().el);
}, this);
this.$el.append(HtmlUtils.HTML(container).toString());
return this;
},
getChapterGroupView: function(chapter, section) {
var group = new NoteGroupView.ChapterView({
chapter: chapter,
section: section
});
this.children.push(group);
return group;
}
}),
tabInfo: {
name: gettext('Location in Course'),
identifier: 'view-course-structure',
icon: 'fa fa-list-ul',
view: view
}
});
return CourseStructureView;
});
}).call(this, define || RequireJS.define);