Files
moodle/course/format/topics/format.js
T
Ruslan Kabalin 9f3015ecf8 MDL-32824: Make dragdrop work correctly with section titles/links
Initially, the default section title was swapped within the course format
javascript functions. Though some section titles may be custom and does not
require swapping, in addition they may have links to single section view. This
introduces some callback functions for define what needs to be done in
sections libs and js files.
2012-05-25 11:39:44 +01:00

68 lines
1.8 KiB
JavaScript

// 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
* @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 menus
sectionlist.item(node1).one('.'+CSS.SECTIONADDMENUS).swap(sectionlist.item(node2).one('.'+CSS.SECTIONADDMENUS));
}
/**
* Process sections after ajax response
*
* @param {YUI} Y YUI3 instance
* @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'
};
if (response.action == 'move') {
// update titles in all affected sections
for (var i = sectionfrom; i <= sectionto; i++) {
sectionlist.item(i).one('.'+CSS.SECTIONNAME).setContent(response.sectiontitles[i]);
}
}
}