Merge branch 'MDL-59663-master' of git://github.com/junpataleta/moodle

This commit is contained in:
Eloy Lafuente (stronk7)
2017-08-22 21:03:32 +02:00
+21 -2
View File
@@ -49,6 +49,14 @@ class core_course_renderer extends plugin_renderer_base {
*/
protected $strings;
/**
* Whether a category content is being initially rendered with children. This is mainly used by the
* core_course_renderer::corsecat_tree() to render the appropriate action for the Expand/Collapse all link on
* page load.
* @var bool
*/
protected $categoryexpandedonload = false;
/**
* Override the constructor so that we can initialise the string cache
*
@@ -1511,6 +1519,8 @@ class core_course_renderer extends plugin_renderer_base {
$classes[] = 'loaded';
if (!empty($categorycontent)) {
$classes[] = 'with_children';
// Category content loaded with children.
$this->categoryexpandedonload = true;
}
}
@@ -1557,6 +1567,8 @@ class core_course_renderer extends plugin_renderer_base {
* @return string
*/
protected function coursecat_tree(coursecat_helper $chelper, $coursecat) {
// Reset the category expanded flag for this course category tree first.
$this->categoryexpandedonload = false;
$categorycontent = $this->coursecat_category_content($chelper, $coursecat, 0);
if (empty($categorycontent)) {
return '';
@@ -1572,10 +1584,17 @@ class core_course_renderer extends plugin_renderer_base {
'collapseexpand',
);
// Check if the category content contains subcategories with children's content loaded.
if ($this->categoryexpandedonload) {
$classes[] = 'collapse-all';
$linkname = get_string('collapseall');
} else {
$linkname = get_string('expandall');
}
// Only show the collapse/expand if there are children to expand.
$content .= html_writer::start_tag('div', array('class' => 'collapsible-actions'));
$content .= html_writer::link('#', get_string('expandall'),
array('class' => implode(' ', $classes)));
$content .= html_writer::link('#', $linkname, array('class' => implode(' ', $classes)));
$content .= html_writer::end_tag('div');
$this->page->requires->strings_for_js(array('collapseall', 'expandall'), 'moodle');
}