diff --git a/calendar/amd/build/repository.min.js b/calendar/amd/build/repository.min.js index b9a54860cb4..fff1bc93448 100644 --- a/calendar/amd/build/repository.min.js +++ b/calendar/amd/build/repository.min.js @@ -1 +1 @@ -define(["jquery","core/ajax"],function(a,b){var c=function(a){var c={methodname:"core_calendar_delete_calendar_events",args:{events:[{eventid:a,repeat:1}]}};return b.call([c])[0]},d=function(a){var c={methodname:"core_calendar_get_calendar_event_by_id",args:{eventid:a}};return b.call([c])[0]},e=function(a){var c={methodname:"core_calendar_submit_create_update_form",args:{formdata:a}};return b.call([c])[0]},f=function(a,c,d){var e={methodname:"core_calendar_get_calendar_monthly_view",args:{year:a,month:c,courseid:d}};return b.call([e])[0]},g=function(a,c){var d={methodname:"core_calendar_update_event_start_day",args:{eventid:a,daytimestamp:c}};return b.call([d])[0]};return{getEventById:d,deleteEvent:c,updateEventStartDay:g,submitCreateUpdateForm:e,getCalendarMonthData:f}}); \ No newline at end of file +define(["jquery","core/ajax"],function(a,b){var c=function(a){var c={methodname:"core_calendar_delete_calendar_events",args:{events:[{eventid:a,repeat:1}]}};return b.call([c])[0]},d=function(a){var c={methodname:"core_calendar_get_calendar_event_by_id",args:{eventid:a}};return b.call([c])[0]},e=function(a){var c={methodname:"core_calendar_submit_create_update_form",args:{formdata:a}};return b.call([c])[0]},f=function(a,c,d,e){var f={methodname:"core_calendar_get_calendar_monthly_view",args:{year:a,month:c,courseid:d,includenavigation:e}};return b.call([f])[0]},g=function(a,c){var d={methodname:"core_calendar_update_event_start_day",args:{eventid:a,daytimestamp:c}};return b.call([d])[0]};return{getEventById:d,deleteEvent:c,updateEventStartDay:g,submitCreateUpdateForm:e,getCalendarMonthData:f}}); \ No newline at end of file diff --git a/calendar/amd/build/view_manager.min.js b/calendar/amd/build/view_manager.min.js index 2258f31954c..5ebd083aefe 100644 --- a/calendar/amd/build/view_manager.min.js +++ b/calendar/amd/build/view_manager.min.js @@ -1 +1 @@ -define(["jquery","core/templates","core/notification","core_calendar/repository","core_calendar/events"],function(a,b,c,d,e){var f={ROOT:"[data-region='calendar']",CALENDAR_NAV_LINK:".calendarwrapper .arrow_link",CALENDAR_MONTH_WRAPPER:".calendarwrapper",LOADING_ICON_CONTAINER:'[data-region="overlay-icon-container"]'},g=function(b){b=a(b),b.on("click",f.CALENDAR_NAV_LINK,function(c){var d=a(b).find(f.CALENDAR_MONTH_WRAPPER).data("courseid"),e=a(c.currentTarget);i(b,e.attr("href"),e.data("year"),e.data("month"),d),c.preventDefault()})},h=function(g,h,i,j){return k(g),d.getCalendarMonthData(h,i,j).then(function(a){return b.render(g.attr("data-template"),a)}).then(function(a,c){return b.replaceNode(g.find(f.CALENDAR_MONTH_WRAPPER),a,c)}).then(function(){a("body").trigger(e.viewUpdated)}).always(function(){return l(g)}).fail(c.exception)},i=function(b,c,d,f,g){return h(b,d,f,g).then(function(){return c.length&&"#"!==c&&window.history.pushState({},"",c),arguments}).then(function(){return a("body").trigger(e.monthChanged,[d,f,g]),arguments})},j=function(a,b){var c=a.find(f.CALENDAR_MONTH_WRAPPER).data("year"),d=a.find(f.CALENDAR_MONTH_WRAPPER).data("month");return b||(b=a.find(f.CALENDAR_MONTH_WRAPPER).data("courseid")),h(a,c,d,b)},k=function(a){var b=a.find(f.LOADING_ICON_CONTAINER);b.removeClass("hidden")},l=function(a){var b=a.find(f.LOADING_ICON_CONTAINER);b.addClass("hidden")};return{init:function(a){g(a)},reloadCurrentMonth:j,changeMonth:i,refreshMonthContent:h}}); \ No newline at end of file +define(["jquery","core/templates","core/notification","core_calendar/repository","core_calendar/events"],function(a,b,c,d,e){var f={ROOT:"[data-region='calendar']",CALENDAR_NAV_LINK:".calendarwrapper .arrow_link",CALENDAR_MONTH_WRAPPER:".calendarwrapper",LOADING_ICON_CONTAINER:'[data-region="overlay-icon-container"]'},g=function(b){b=a(b),b.on("click",f.CALENDAR_NAV_LINK,function(c){var d=a(b).find(f.CALENDAR_MONTH_WRAPPER).data("courseid"),e=a(c.currentTarget);i(b,e.attr("href"),e.data("year"),e.data("month"),d),c.preventDefault()})},h=function(g,h,i,j){k(g);var m=g.data("includenavigation");return d.getCalendarMonthData(h,i,j,m).then(function(a){return b.render(g.attr("data-template"),a)}).then(function(a,c){return b.replaceNode(g.find(f.CALENDAR_MONTH_WRAPPER),a,c)}).then(function(){a("body").trigger(e.viewUpdated)}).always(function(){return l(g)}).fail(c.exception)},i=function(b,c,d,f,g){return h(b,d,f,g).then(function(){return c.length&&"#"!==c&&window.history.pushState({},"",c),arguments}).then(function(){return a("body").trigger(e.monthChanged,[d,f,g]),arguments})},j=function(a,b){var c=a.find(f.CALENDAR_MONTH_WRAPPER).data("year"),d=a.find(f.CALENDAR_MONTH_WRAPPER).data("month");return b||(b=a.find(f.CALENDAR_MONTH_WRAPPER).data("courseid")),h(a,c,d,b)},k=function(a){var b=a.find(f.LOADING_ICON_CONTAINER);b.removeClass("hidden")},l=function(a){var b=a.find(f.LOADING_ICON_CONTAINER);b.addClass("hidden")};return{init:function(a){g(a)},reloadCurrentMonth:j,changeMonth:i,refreshMonthContent:h}}); \ No newline at end of file diff --git a/calendar/amd/src/repository.js b/calendar/amd/src/repository.js index ef35f4f6099..56c876428ab 100644 --- a/calendar/amd/src/repository.js +++ b/calendar/amd/src/repository.js @@ -90,15 +90,17 @@ define(['jquery', 'core/ajax'], function($, Ajax) { * @param {Number} year Year * @param {Number} month Month * @param {Number} courseid The course id. + * @param {Bool} includenavigation Whether to include navigation. * @return {promise} Resolved with the month view data. */ - var getCalendarMonthData = function(year, month, courseid) { + var getCalendarMonthData = function(year, month, courseid, includenavigation) { var request = { methodname: 'core_calendar_get_calendar_monthly_view', args: { year: year, month: month, courseid: courseid, + includenavigation: includenavigation, } }; diff --git a/calendar/amd/src/view_manager.js b/calendar/amd/src/view_manager.js index a9e3eafa8a9..98f73700f09 100644 --- a/calendar/amd/src/view_manager.js +++ b/calendar/amd/src/view_manager.js @@ -60,7 +60,8 @@ define(['jquery', 'core/templates', 'core/notification', 'core_calendar/reposito var refreshMonthContent = function(root, year, month, courseid) { startLoading(root); - return CalendarRepository.getCalendarMonthData(year, month, courseid) + var includenavigation = root.data('includenavigation'); + return CalendarRepository.getCalendarMonthData(year, month, courseid, includenavigation) .then(function(context) { return Templates.render(root.attr('data-template'), context); }) diff --git a/calendar/classes/external/month_exporter.php b/calendar/classes/external/month_exporter.php index 94298bf2bec..3bed31f1079 100644 --- a/calendar/classes/external/month_exporter.php +++ b/calendar/classes/external/month_exporter.php @@ -54,6 +54,10 @@ class month_exporter extends exporter { */ protected $url; + /** + */ + protected $includenavigation = true; + /** * Constructor for month_exporter. * @@ -123,6 +127,10 @@ class month_exporter extends exporter { // calendar format. 'type' => PARAM_RAW, ], + 'includenavigation' => [ + 'type' => PARAM_BOOL, + 'default' => true, + ], 'previousperiod' => [ 'type' => date_exporter::read_properties_definition(), ], @@ -189,6 +197,7 @@ class month_exporter extends exporter { 'nextperiodlink' => $nextperiodlink->out(false), 'larrow' => $output->larrow(), 'rarrow' => $output->rarrow(), + 'includenavigation' => $this->includenavigation, ]; } @@ -339,4 +348,10 @@ class month_exporter extends exporter { return $type->timestamp_to_date_array($time); } + + public function set_includenavigation($include) { + $this->includenavigation = $include; + + return $this; + } } diff --git a/calendar/externallib.php b/calendar/externallib.php index 8f6d44b5712..336c0f0916f 100644 --- a/calendar/externallib.php +++ b/calendar/externallib.php @@ -882,9 +882,10 @@ class core_calendar_external extends external_api { * @param int $year The year to be shown * @param int $month The month to be shown * @param int $courseid The course to be included + * @param bool $includenavigation Whether to include navigation * @return array */ - public static function get_calendar_monthly_view($year, $month, $courseid) { + public static function get_calendar_monthly_view($year, $month, $courseid, $includenavigation) { global $CFG, $DB, $USER, $PAGE; require_once($CFG->dirroot."/calendar/lib.php"); @@ -893,6 +894,7 @@ class core_calendar_external extends external_api { 'year' => $year, 'month' => $month, 'courseid' => $courseid, + 'includenavigation' => $includenavigation, ]); if ($courseid != SITEID && !empty($courseid)) { @@ -914,7 +916,7 @@ class core_calendar_external extends external_api { $calendar = new calendar_information(0, 0, 0, $time); $calendar->prepare_for_view($course, $courses); - list($data, $template) = calendar_get_view($calendar, 'month'); + list($data, $template) = calendar_get_view($calendar, 'month', $params['includenavigation']); return $data; } @@ -930,6 +932,13 @@ class core_calendar_external extends external_api { 'year' => new external_value(PARAM_INT, 'Month to be viewed', VALUE_REQUIRED), 'month' => new external_value(PARAM_INT, 'Year to be viewed', VALUE_REQUIRED), 'courseid' => new external_value(PARAM_INT, 'Course being viewed', VALUE_DEFAULT, SITEID, NULL_ALLOWED), + 'includenavigation' => new external_value( + PARAM_BOOL, + 'Whether to show course navigation', + VALUE_DEFAULT, + true, + NULL_ALLOWED + ), ] ); } diff --git a/calendar/lib.php b/calendar/lib.php index 0c168ba7fa4..1b8d9135f7d 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -3354,10 +3354,11 @@ function calendar_get_legacy_events($tstart, $tend, $users, $groups, $courses, $ * Get the calendar view output. * * @param \calendar_information $calendar The calendar being represented - * @param string $view The type of calendar to have displayed + * @param string $view The type of calendar to have displayed + * @param bool $includenavigation Whether to include navigation * @return array[array, string] */ -function calendar_get_view(\calendar_information $calendar, $view) { +function calendar_get_view(\calendar_information $calendar, $view, $includenavigation = true) { global $PAGE, $CFG; $renderer = $PAGE->get_renderer('core_calendar'); @@ -3440,6 +3441,9 @@ function calendar_get_view(\calendar_information $calendar, $view) { ]; $month = new \core_calendar\external\month_exporter($calendar, $type, $related); + + $month->set_includenavigation($includenavigation); + $data = $month->export($renderer); return [$data, $template]; diff --git a/calendar/templates/calendar_mini.mustache b/calendar/templates/calendar_mini.mustache index 4ae79e4bafa..8f639ed1dae 100644 --- a/calendar/templates/calendar_mini.mustache +++ b/calendar/templates/calendar_mini.mustache @@ -32,7 +32,7 @@ } }} {{> core_calendar/month_mini}} diff --git a/calendar/templates/month_mini.mustache b/calendar/templates/month_mini.mustache index ae738bae2df..bc180c7802f 100644 --- a/calendar/templates/month_mini.mustache +++ b/calendar/templates/month_mini.mustache @@ -41,29 +41,36 @@ {{> core/overlay_loading}}
- - {{{larrow}}} - - | - - {{periodname}} - - | - - {{{rarrow}}} - + {{#includenavigation}} + + {{{larrow}}} + + | + + {{periodname}} + + | + + {{{rarrow}}} + + {{/includenavigation}} + {{^includenavigation}} +

+ {{periodname}} +

+ {{/includenavigation}}