\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n 'jquery',\n 'core_calendar/selectors',\n 'core_calendar/events',\n 'core/str',\n 'core/templates',\n],\nfunction(\n $,\n CalendarSelectors,\n CalendarEvents,\n Str,\n Templates\n) {\n\n var registerEventListeners = function(root) {\n root.on('click', CalendarSelectors.eventFilterItem, function(e) {\n var target = $(e.currentTarget);\n\n toggleFilter(target);\n\n e.preventDefault();\n });\n\n $('body').on(CalendarEvents.viewUpdated, function() {\n var filters = root.find(CalendarSelectors.eventFilterItem);\n\n filters.each(function(i, filter) {\n filter = $(filter);\n if (filter.data('eventtype-hidden')) {\n var data = getFilterData(filter);\n fireFilterChangedEvent(data);\n }\n });\n });\n };\n\n var toggleFilter = function(target) {\n var data = getFilterData(target);\n\n // Toggle the hidden. We need to render the template before we change the value.\n data.hidden = !data.hidden;\n\n return Str.get_string('eventtype' + data.eventtype, 'calendar')\n .then(function(nameStr) {\n data.name = nameStr;\n data.icon = true;\n data.key = 'i/' + data.eventtype + 'event';\n data.component = 'core';\n\n return data;\n })\n .then(function(context) {\n return Templates.render('core_calendar/event_filter_key', context);\n })\n .then(function(html, js) {\n return Templates.replaceNode(target, html, js);\n })\n .then(function() {\n fireFilterChangedEvent(data);\n return;\n });\n };\n\n /**\n * Fire the filterChanged event for the specified data.\n *\n * @param {object} data The data to include\n */\n var fireFilterChangedEvent = function(data) {\n M.util.js_pending(\"month-mini-filterChanged\");\n $('body').trigger(CalendarEvents.filterChanged, {\n type: data.eventtype,\n hidden: data.hidden,\n });\n M.util.js_complete(\"month-mini-filterChanged\");\n };\n\n /**\n * Get the filter data for the specified target.\n *\n * @param {jQuery} target The target node\n * @return {Object}\n */\n var getFilterData = function(target) {\n return {\n eventtype: target.data('eventtype'),\n hidden: target.data('eventtype-hidden'),\n };\n };\n\n return {\n init: function(root) {\n root = $(root);\n\n registerEventListeners(root);\n }\n };\n});\n"],"file":"calendar_filter.min.js"}
\ No newline at end of file
diff --git a/calendar/amd/src/calendar_filter.js b/calendar/amd/src/calendar_filter.js
index 622dafd890c..41dd4488e8b 100644
--- a/calendar/amd/src/calendar_filter.js
+++ b/calendar/amd/src/calendar_filter.js
@@ -67,6 +67,9 @@ function(
return Str.get_string('eventtype' + data.eventtype, 'calendar')
.then(function(nameStr) {
data.name = nameStr;
+ data.icon = true;
+ data.key = 'i/' + data.eventtype + 'event';
+ data.component = 'core';
return data;
})
diff --git a/calendar/lib.php b/calendar/lib.php
index 608bb6edbba..831c0cedd46 100644
--- a/calendar/lib.php
+++ b/calendar/lib.php
@@ -3672,6 +3672,9 @@ function calendar_get_filter_types() {
return [
'eventtype' => $type,
'name' => get_string("eventtype{$type}", "calendar"),
+ 'icon' => true,
+ 'key' => 'i/' . $type . 'event',
+ 'component' => 'core'
];
}, $types);
}
diff --git a/calendar/templates/event_icon.mustache b/calendar/templates/event_icon.mustache
index fb88bd6c6ea..ea61b32cf93 100644
--- a/calendar/templates/event_icon.mustache
+++ b/calendar/templates/event_icon.mustache
@@ -37,5 +37,5 @@
{{#pix}} icon, {{modulename}} {{/pix}}
{{/modulename}}
{{^modulename}}
- {{#pix}} i/{{eventtype}}event, core {{/pix}}
+ {{#icon}}{{#pix}} {{key}}, {{component}}, {{alttext}} {{/pix}}{{/icon}}
{{/modulename}}
diff --git a/calendar/templates/month_mini.mustache b/calendar/templates/month_mini.mustache
index b1aa06f1b14..cb3e22974c0 100644
--- a/calendar/templates/month_mini.mustache
+++ b/calendar/templates/month_mini.mustache
@@ -136,12 +136,7 @@
{{$content}}
{{#events}}
- {{#modulename}}
- {{#pix}} icon, {{modulename}} {{/pix}}
- {{/modulename}}
- {{^modulename}}
- {{#pix}} i/{{eventtype}}event, core {{/pix}}
- {{/modulename}}
+ {{> core_calendar/event_icon}}
{{{popupname}}}
{{/events}}