diff --git a/calendar/classes/external/footer_options_exporter.php b/calendar/classes/external/footer_options_exporter.php
index cc9ae2276cc..a5e6e4df798 100644
--- a/calendar/classes/external/footer_options_exporter.php
+++ b/calendar/classes/external/footer_options_exporter.php
@@ -69,12 +69,11 @@ class footer_options_exporter extends exporter {
/**
* Get the export calendar button.
*
- * @param renderer_base $output
- * @return string The export calendar button html.
+ * @return \single_button The export calendar button html.
*/
- protected function get_export_calendar_button(renderer_base $output) {
+ protected function get_export_calendar_button() {
$exportcalendarurl = new moodle_url('/calendar/export.php', ['course' => $this->calendar->course->id]);
- return $output->single_button($exportcalendarurl->out(false), get_string('exportcalendar', 'calendar'));
+ return new \single_button($exportcalendarurl, get_string('exportcalendar', 'calendar'));
}
/**
@@ -115,7 +114,8 @@ class footer_options_exporter extends exporter {
$values = new stdClass();
if (!empty($CFG->enablecalendarexport)) {
- $values->exportcalendarbutton = $this->get_export_calendar_button($output);
+ $exportbutton = $this->get_export_calendar_button();
+ $values->exportcalendarbutton = $exportbutton->export_for_template($output);
$values->managesubscriptionbutton = $this->get_manage_subscriptions_button($output);
$values->icalurl = $this->get_ical_url($output)->out(false);
}
diff --git a/calendar/templates/footer_options.mustache b/calendar/templates/footer_options.mustache
index d5371505caf..67e302e84d7 100644
--- a/calendar/templates/footer_options.mustache
+++ b/calendar/templates/footer_options.mustache
@@ -27,7 +27,9 @@
}
}}
- {{{exportcalendarbutton}}}
+ {{#exportcalendarbutton}}
+ {{> core/single_button }}
+ {{/exportcalendarbutton}}
{{{managesubscriptionbutton}}}
iCal
diff --git a/lib/templates/single_button.mustache b/lib/templates/single_button.mustache
new file mode 100644
index 00000000000..9eca305943e
--- /dev/null
+++ b/lib/templates/single_button.mustache
@@ -0,0 +1,61 @@
+{{!
+ 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 .
+}}
+{{!
+ @template core/single_button
+
+ Moodle template for a single button submit form.
+
+ Classes required for JS:
+ * none
+
+ Data attributes required for JS:
+ * none
+
+ Context variables required for this template:
+ * classes - a list of classes to wrap the form.
+ * method - get or post
+ * url - the action url to submit to
+ * formid - optional id value for the form
+ * params - array of params with name and value attributes
+ * primary - true if this is a primary action button
+ * id - id for the element
+ * tooltip - tooltip text for the button
+ * disabled - true if this element is disabled
+ * label - text to show on the button
+
+ Example context (json):
+ { "method" : "get",
+ "url" : "#",
+ "primary" : true,
+ "tooltip" : "This is a tooltip",
+ "label" : "This is a the button text"
+ }
+}}
+
+
+
+{{#hasactions}}
+ {{> core/actions }}
+{{/hasactions}}