Added an administrator setting to set the visibility of the course category for the my overview
block on the users dashboard to support usage scenarios where displaying the course categories will
clutter course overviews.
return {
display: courseRegion.attr('data-display'),
grouping: courseRegion.attr('data-grouping'),
- sort: courseRegion.attr('data-sort')
+ sort: courseRegion.attr('data-sort'),
+ displaycategories: courseRegion.attr('data-displaycategories'),
};
};
currentTemplate = TEMPLATES.COURSES_SUMMARY;
}
+ // Delete the course category if it is not to be displayed
+ if (filters.displaycategories != 'on') {
+ coursesData.courses = coursesData.courses.map(function(course) {
+ delete course.coursecategory;
+ return course;
+ });
+ }
+
if (coursesData.courses.length) {
return Templates.render(currentTemplate, {
- courses: coursesData.courses
+ courses: coursesData.courses,
});
} else {
var nocoursesimg = root.find(Selectors.courseView.region).attr('data-nocoursesimg');
public function applicable_formats() {
return array('my' => true);
}
+
+ /**
+ * Allow the block to have a configuration page
+ *
+ * @return boolean
+ */
+ public function has_config() {
+ return true;
+ }
}
+
*/
private $paging;
+ /**
+ * Store the display categories config setting
+ *
+ * @var boolean
+ */
+ private $displaycategories;
+
/**
* main constructor.
* Initialize the user preferences
$this->sort = $sort ? $sort : BLOCK_MYOVERVIEW_SORTING_TITLE;
$this->view = $view ? $view : BLOCK_MYOVERVIEW_VIEW_CARD;
$this->paging = $paging ? $paging : BLOCK_MYOVERVIEW_PAGING_12;
+ $config = get_config('block_myoverview');
+ if (!$config->displaycategories) {
+ $this->displaycategories = BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_OFF;
+ } else {
+ $this->displaycategories = BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_ON;
+ }
}
/**
'grouping' => $this->grouping,
'sort' => $this->sort == BLOCK_MYOVERVIEW_SORTING_TITLE ? 'fullname' : 'ul.timeaccess desc',
'view' => $this->view,
- 'paging' => $this->paging
+ 'paging' => $this->paging,
+ 'displaycategories' => $this->displaycategories,
];
$preferences = $this->get_preferences_as_booleans();
$string['cards'] = 'Cards';
$string['courseprogress'] = 'Course progress:';
$string['completepercent'] = '{$a}% complete';
+$string['displaycategories'] = 'Display Categories';
+$string['displaycategories_help'] = 'Display the Course Category on dashboard course items including cards, list items and summary items';
$string['favourites'] = 'Starred';
$string['future'] = 'Future';
$string['inprogress'] = 'In progress';
define('BLOCK_MYOVERVIEW_PAGING_24', 24);
define('BLOCK_MYOVERVIEW_PAGING_48', 48);
+/**
+ * Constants for the admin category display setting
+ */
+define('BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_ON', 'on');
+define('BLOCK_MYOVERVIEW_DISPLAY_CATEGORIES_OFF', 'off');
+
/**
* Get the current user preferences that are available
*
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Settings for the myoverview block
+ *
+ * @package block_myoverview
+ * @copyright 2019 Tom Dickman <tomdickman@catalyst-au.net>
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+if ($ADMIN->fulltree) {
+ require_once($CFG->dirroot . '/blocks/myoverview/lib.php');
+
+ // Display Course Categories on Dashboard course items (cards, lists, summary items).
+ $settings->add(new admin_setting_configcheckbox(
+ 'block_myoverview/displaycategories',
+ get_string('displaycategories', 'block_myoverview'),
+ get_string('displaycategories_help', 'block_myoverview'),
+ 1));
+
+}
data-sort="{{sort}}"
data-prev-display="{{view}}"
data-paging="{{paging}}"
- data-nocoursesimg="{{nocoursesimg}}">
+ data-nocoursesimg="{{nocoursesimg}}"
+ data-displaycategories="{{displaycategories}}">
<div data-region="course-view-content">
{{> block_myoverview/placeholders }}
</div>
<span class="sr-only">
{{#str}}aria:coursecategory, core_course{{/str}}
</span>
- <div>{{{coursecategory}}}</div>
+ {{#displaycategories}}
+ <div>{{{coursecategory}}}</div>
+ {{/displaycategories}}
{{#showshortname}}
<div class="pl-1 pr-1">|</div>
<span class="sr-only">
<span class="sr-only">
{{#str}}aria:coursecategory, core_course{{/str}}
</span>
- <div>{{{coursecategory}}}</div>
+ {{#displaycategories}}
+ <div>{{{coursecategory}}}</div>
+ {{/displaycategories}}
{{#showshortname}}
<div class="pl-1 pr-1">|</div>
<span class="sr-only">