From cc8d4b1358bba8a53b1b3dcb22d035c6a0f2377f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikel=20Mart=C3=ADn?= Date: Mon, 4 Dec 2023 12:40:36 +0100 Subject: [PATCH] MDL-74778 course: Final removal of format.js The format.js files in format weeks and format topic were deprecated since 4.0. Removing those files and code occurrences. --- course/format/topics/format.js | 90 ---------------- course/format/topics/format.php | 3 - course/format/topics/lib.php | 2 +- .../topics/tests/format_topics_test.php | 2 +- course/format/weeks/format.js | 101 ------------------ course/format/weeks/format.php | 2 - course/format/weeks/lib.php | 2 +- .../format/weeks/tests/format_weeks_test.php | 2 +- lib/tests/outputrequirementslib_test.php | 10 -- 9 files changed, 4 insertions(+), 210 deletions(-) delete mode 100644 course/format/topics/format.js delete mode 100644 course/format/weeks/format.js diff --git a/course/format/topics/format.js b/course/format/topics/format.js deleted file mode 100644 index ff122a81a40..00000000000 --- a/course/format/topics/format.js +++ /dev/null @@ -1,90 +0,0 @@ -// Javascript functions for Topics course format. - -M.course = M.course || {}; - -M.course.format = M.course.format || {}; - -/** - * Get sections config for this format. - * - * The section structure is: - * - * - * @return {object} section list configuration - */ -M.course.format.get_config = function() { - return { - container_node: 'ul', - container_class: 'topics', - section_node: 'li', - section_class: 'section' - }; -}; - -/** - * Swap section. - * - * @param {YUI} Y YUI3 instance - * @param {string} node1 node to swap to - * @param {string} node2 node to swap with - */ -M.course.format.swap_sections = function(Y, node1, node2) { - var CSS = { - COURSECONTENT: 'course-content', - SECTIONADDMENUS: 'section_add_menus' - }; - - var sectionlist = Y.Node.all('.' + CSS.COURSECONTENT + ' ' + M.course.format.get_section_selector(Y)); - // Swap the non-ajax menus, noting these are not always present (depends on theme and user prefs). - if (sectionlist.item(node1).one('.' + CSS.SECTIONADDMENUS)) { - sectionlist.item(node1).one('.' + CSS.SECTIONADDMENUS).swap(sectionlist.item(node2).one('.' + CSS.SECTIONADDMENUS)); - } -}; - -/** - * Process sections after ajax response. - * - * @param {YUI} Y YUI3 instance - * @param {NodeList} sectionlist of sections - * @param {array} response ajax response - * @param {string} sectionfrom first affected section - * @param {string} sectionto last affected section - */ -M.course.format.process_sections = function(Y, sectionlist, response, sectionfrom, sectionto) { - var CSS = { - SECTIONNAME: 'sectionname' - }, - SELECTORS = { - SECTIONLEFTSIDE: '.left .section-handle .icon' - }; - - if (response.action == 'move') { - // If moving up swap around 'sectionfrom' and 'sectionto' so the that loop operates. - if (sectionfrom > sectionto) { - var temp = sectionto; - sectionto = sectionfrom; - sectionfrom = temp; - } - - // Update titles and move icons in all affected sections. - var ele, str, stridx, newstr; - - for (var i = sectionfrom; i <= sectionto; i++) { - // Update section title. - var content = Y.Node.create('' + response.sectiontitles[i] + ''); - sectionlist.item(i).all('.' + CSS.SECTIONNAME).setHTML(content); - // Update the drag handle. - ele = sectionlist.item(i).one(SELECTORS.SECTIONLEFTSIDE).ancestor('.section-handle'); - str = ele.getAttribute('title'); - stridx = str.lastIndexOf(' '); - newstr = str.substr(0, stridx + 1) + i; - ele.setAttribute('title', newstr); - // Update the aria-label for the section. - sectionlist.item(i).setAttribute('aria-label', content.get('innerText').trim()); - } - } -}; diff --git a/course/format/topics/format.php b/course/format/topics/format.php index b766f7ebaa9..03cef340939 100644 --- a/course/format/topics/format.php +++ b/course/format/topics/format.php @@ -58,6 +58,3 @@ if (!empty($displaysection)) { $outputclass = $format->get_output_classname('content'); $widget = new $outputclass($format); echo $renderer->render($widget); - -// Include course format js module. -$PAGE->requires->js('/course/format/topics/format.js'); diff --git a/course/format/topics/lib.php b/course/format/topics/lib.php index c3a6181751c..096b3a2e2ab 100644 --- a/course/format/topics/lib.php +++ b/course/format/topics/lib.php @@ -445,7 +445,7 @@ class format_topics extends core_courseformat\base { * @return array The list of javascript files required by the course format. */ public function get_required_jsfiles(): array { - return ['/course/format/topics/format.js']; + return []; } } diff --git a/course/format/topics/tests/format_topics_test.php b/course/format/topics/tests/format_topics_test.php index 8581f9083ef..d28b5ecc4e9 100644 --- a/course/format/topics/tests/format_topics_test.php +++ b/course/format/topics/tests/format_topics_test.php @@ -279,6 +279,6 @@ class format_topics_test extends \advanced_testcase { $course = $generator->create_course(['format' => 'topics']); $format = course_get_format($course); - $this->assertNotEmpty($format->get_required_jsfiles()); + $this->assertEmpty($format->get_required_jsfiles()); } } diff --git a/course/format/weeks/format.js b/course/format/weeks/format.js deleted file mode 100644 index 0ad69b8affe..00000000000 --- a/course/format/weeks/format.js +++ /dev/null @@ -1,101 +0,0 @@ -// Javascript functions for Weeks course format - -M.course = M.course || {}; - -M.course.format = M.course.format || {}; - -/** - * Get sections config for this format - * - * The section structure is: - * - * - * @return {object} section list configuration - */ -M.course.format.get_config = function() { - return { - container_node : 'ul', - container_class : 'weeks', - section_node : 'li', - section_class : 'section' - }; -} - -/** - * Swap section - * - * @param {YUI} Y YUI3 instance - * @param {string} node1 node to swap to - * @param {string} node2 node to swap with - * @return {NodeList} section list - */ -M.course.format.swap_sections = function(Y, node1, node2) { - var CSS = { - COURSECONTENT : 'course-content', - SECTIONADDMENUS : 'section_add_menus' - }; - - var sectionlist = Y.Node.all('.'+CSS.COURSECONTENT+' '+M.course.format.get_section_selector(Y)); - // Swap the non-ajax menus, noting these are not always present (depends on theme and user prefs). - if (sectionlist.item(node1).one('.'+CSS.SECTIONADDMENUS)) { - sectionlist.item(node1).one('.' + CSS.SECTIONADDMENUS).swap(sectionlist.item(node2).one('.' + CSS.SECTIONADDMENUS)); - } -} - -/** - * Process sections after ajax response - * - * @param {YUI} Y YUI3 instance - * @param {NodeList} sectionlist of sections - * @param {array} response ajax response - * @param {string} sectionfrom first affected section - * @param {string} sectionto last affected section - * @return void - */ -M.course.format.process_sections = function(Y, sectionlist, response, sectionfrom, sectionto) { - var CSS = { - SECTIONNAME : 'sectionname' - }, - SELECTORS = { - SECTIONLEFTSIDE : '.left .section-handle .icon' - }; - - if (response.action == 'move') { - // If moving up swap around 'sectionfrom' and 'sectionto' so the that loop operates. - if (sectionfrom > sectionto) { - var temp = sectionto; - sectionto = sectionfrom; - sectionfrom = temp; - } - - // Update titles and move icons in all affected sections. - var ele, str, stridx, newstr; - - for (var i = sectionfrom; i <= sectionto; i++) { - // Update section title. - var content = Y.Node.create('' + response.sectiontitles[i] + ''); - sectionlist.item(i).all('.'+CSS.SECTIONNAME).setHTML(content); - - // Update the drag handle. - ele = sectionlist.item(i).one(SELECTORS.SECTIONLEFTSIDE).ancestor('.section-handle'); - str = ele.getAttribute('title'); - stridx = str.lastIndexOf(' '); - newstr = str.substr(0, stridx +1) + i; - ele.setAttribute('title', newstr); - // Update the aria-label for the section. - sectionlist.item(i).setAttribute('aria-label', content.get('innerText').trim()); - - // Remove the current class as section has been moved. - sectionlist.item(i).removeClass('current'); - } - // If there is a current section, apply corresponding class in order to highlight it. - if (response.current !== -1) { - // Add current class to the required section. - sectionlist.item(response.current).addClass('current'); - } - } -} diff --git a/course/format/weeks/format.php b/course/format/weeks/format.php index b0b512d9c27..8a603c880d0 100644 --- a/course/format/weeks/format.php +++ b/course/format/weeks/format.php @@ -51,5 +51,3 @@ if (!empty($displaysection)) { $outputclass = $format->get_output_classname('content'); $output = new $outputclass($format); echo $renderer->render($output); - -$PAGE->requires->js('/course/format/weeks/format.js'); diff --git a/course/format/weeks/lib.php b/course/format/weeks/lib.php index 89529917993..d54e0cf82ee 100644 --- a/course/format/weeks/lib.php +++ b/course/format/weeks/lib.php @@ -619,7 +619,7 @@ class format_weeks extends core_courseformat\base { * @return array The list of javascript files required by the course format. */ public function get_required_jsfiles(): array { - return ['/course/format/weeks/format.js']; + return []; } } diff --git a/course/format/weeks/tests/format_weeks_test.php b/course/format/weeks/tests/format_weeks_test.php index 9daaacff752..49979ce6959 100644 --- a/course/format/weeks/tests/format_weeks_test.php +++ b/course/format/weeks/tests/format_weeks_test.php @@ -276,6 +276,6 @@ class format_weeks_test extends \advanced_testcase { $course = $generator->create_course(['format' => 'weeks']); $format = course_get_format($course); - $this->assertNotEmpty($format->get_required_jsfiles()); + $this->assertEmpty($format->get_required_jsfiles()); } } diff --git a/lib/tests/outputrequirementslib_test.php b/lib/tests/outputrequirementslib_test.php index e4bdccf17df..28e8bced8db 100644 --- a/lib/tests/outputrequirementslib_test.php +++ b/lib/tests/outputrequirementslib_test.php @@ -265,16 +265,6 @@ class outputrequirementslib_test extends \advanced_testcase { 0, $wwwroot . $admin . 'environment.xml' ], - 'Course Format JS (slasharguments on)' => [ - '/course/format/topics/format.js', - 1, - $wwwroot . '/lib/javascript.php/1/course/format/topics/format.js' - ], - 'Course Format JS (slasharguments off)' => [ - '/course/format/topics/format.js', - 0, - $wwwroot . '/lib/javascript.php?rev=1&jsfile=%2Fcourse%2Fformat%2Ftopics%2Fformat.js' - ], 'Data JS' => [ '/mod/data/data.js', 1,