mirror of
https://github.com/moodle/moodle.git
synced 2025-08-10 19:36:41 +02:00
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.
This commit is contained in:
parent
dd723bae71
commit
cc8d4b1358
9 changed files with 4 additions and 210 deletions
|
@ -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:
|
|
||||||
* <ul class="topics">
|
|
||||||
* <li class="section">...</li>
|
|
||||||
* <li class="section">...</li>
|
|
||||||
* ...
|
|
||||||
* </ul>
|
|
||||||
*
|
|
||||||
* @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('<span>' + response.sectiontitles[i] + '</span>');
|
|
||||||
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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -58,6 +58,3 @@ if (!empty($displaysection)) {
|
||||||
$outputclass = $format->get_output_classname('content');
|
$outputclass = $format->get_output_classname('content');
|
||||||
$widget = new $outputclass($format);
|
$widget = new $outputclass($format);
|
||||||
echo $renderer->render($widget);
|
echo $renderer->render($widget);
|
||||||
|
|
||||||
// Include course format js module.
|
|
||||||
$PAGE->requires->js('/course/format/topics/format.js');
|
|
||||||
|
|
|
@ -445,7 +445,7 @@ class format_topics extends core_courseformat\base {
|
||||||
* @return array The list of javascript files required by the course format.
|
* @return array The list of javascript files required by the course format.
|
||||||
*/
|
*/
|
||||||
public function get_required_jsfiles(): array {
|
public function get_required_jsfiles(): array {
|
||||||
return ['/course/format/topics/format.js'];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -279,6 +279,6 @@ class format_topics_test extends \advanced_testcase {
|
||||||
|
|
||||||
$course = $generator->create_course(['format' => 'topics']);
|
$course = $generator->create_course(['format' => 'topics']);
|
||||||
$format = course_get_format($course);
|
$format = course_get_format($course);
|
||||||
$this->assertNotEmpty($format->get_required_jsfiles());
|
$this->assertEmpty($format->get_required_jsfiles());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
|
||||||
* <ul class="weeks">
|
|
||||||
* <li class="section">...</li>
|
|
||||||
* <li class="section">...</li>
|
|
||||||
* ...
|
|
||||||
* </ul>
|
|
||||||
*
|
|
||||||
* @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('<span>' + response.sectiontitles[i] + '</span>');
|
|
||||||
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');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -51,5 +51,3 @@ if (!empty($displaysection)) {
|
||||||
$outputclass = $format->get_output_classname('content');
|
$outputclass = $format->get_output_classname('content');
|
||||||
$output = new $outputclass($format);
|
$output = new $outputclass($format);
|
||||||
echo $renderer->render($output);
|
echo $renderer->render($output);
|
||||||
|
|
||||||
$PAGE->requires->js('/course/format/weeks/format.js');
|
|
||||||
|
|
|
@ -619,7 +619,7 @@ class format_weeks extends core_courseformat\base {
|
||||||
* @return array The list of javascript files required by the course format.
|
* @return array The list of javascript files required by the course format.
|
||||||
*/
|
*/
|
||||||
public function get_required_jsfiles(): array {
|
public function get_required_jsfiles(): array {
|
||||||
return ['/course/format/weeks/format.js'];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -276,6 +276,6 @@ class format_weeks_test extends \advanced_testcase {
|
||||||
|
|
||||||
$course = $generator->create_course(['format' => 'weeks']);
|
$course = $generator->create_course(['format' => 'weeks']);
|
||||||
$format = course_get_format($course);
|
$format = course_get_format($course);
|
||||||
$this->assertNotEmpty($format->get_required_jsfiles());
|
$this->assertEmpty($format->get_required_jsfiles());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,16 +265,6 @@ class outputrequirementslib_test extends \advanced_testcase {
|
||||||
0,
|
0,
|
||||||
$wwwroot . $admin . 'environment.xml'
|
$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' => [
|
'Data JS' => [
|
||||||
'/mod/data/data.js',
|
'/mod/data/data.js',
|
||||||
1,
|
1,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue