MDL-65671 calendar: add event listener to three month block
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
define(["jquery","core/notification","core_calendar/selectors","core_calendar/events","core/templates","core_calendar/view_manager"],function(a,b,c,d,e,f){var g=function(e){var g=a("body");g.on(d.monthChanged,function(a,c,d,f,g){e.queue(function(e){return h(a,c,d,f,g).then(function(){return e()}).fail(b.exception)})});var h=function(b,d,g,h,i){var j=e.find('[data-year="'+d+'"][data-month="'+g+'"]'),k=j.closest(c.calendarPeriods.month),l=e.find(c.calendarPeriods.month),m=a(l[0]),n=a(l[2]),o=a("<span>");o.attr("data-template","core_calendar/threemonth_month"),o.attr("data-includenavigation",!1),o.attr("data-mini",!0);var p=a("<div>");p.hide(),p.append(o);var q,r,s;return k.is(m)?(p.insertBefore(m),q=m.data("previousYear"),r=m.data("previousMonth"),s=n):k.is(n)&&(p.insertAfter(n),q=n.data("nextYear"),r=n.data("nextMonth"),s=m),f.refreshMonthContent(o,q,r,h,i,o).then(function(){var b=a.Deferred(),c=a.Deferred();return s.slideUp("fast",function(){a(this).remove(),b.resolve()}),p.slideDown("fast",function(){c.resolve()}),a.when(b,c)})}};return{init:function(b){b=a(b),g(b)}}});
|
||||
define(["jquery","core/notification","core_calendar/selectors","core_calendar/events","core/templates","core_calendar/view_manager"],function(a,b,c,d,e,f){var g=function(e){var g=a("body");g.on([d.monthChanged,d.dayChanged],function(a,c,d,f,g){e.queue(function(e){return h(a,c,d,f,g).then(function(){return e()}).fail(b.exception)})});var h=function(b,d,g,h,i){var j=e.find('[data-year="'+d+'"][data-month="'+g+'"]'),k=j.closest(c.calendarPeriods.month),l=e.find(c.calendarPeriods.month),m=a(l[0]),n=a(l[2]),o=a("<span>");o.attr("data-template","core_calendar/threemonth_month"),o.attr("data-includenavigation",!1),o.attr("data-mini",!0);var p=a("<div>");p.hide(),p.append(o);var q,r,s;return k.is(m)?(p.insertBefore(m),q=m.data("previousYear"),r=m.data("previousMonth"),s=n):k.is(n)&&(p.insertAfter(n),q=n.data("nextYear"),r=n.data("nextMonth"),s=m),f.refreshMonthContent(o,q,r,h,i,o).then(function(){var b=a.Deferred(),c=a.Deferred();return s.slideUp("fast",function(){a(this).remove(),b.resolve()}),p.slideDown("fast",function(){c.resolve()}),a.when(b,c)})};e.on("click",c.links.miniDayLink,function(b){var d=a(b.target),e=d.data("year"),g=d.data("month"),h=d.text(),i=d.data("courseid"),j=d.data("categoryid"),k=a("body").find(c.calendarMain);f.refreshDayContent(k,e,g,h,i,j,k,"core_calendar/calendar_day"),b.preventDefault(),window.history.pushState({},"","?view=day")})};return{init:function(b){b=a(b),g(b)}}});
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
define([],function(){return{eventFilterItem:"[data-action='filter-event-type']",eventType:{site:"[data-eventtype-site]",category:"[data-eventtype-category]",course:"[data-eventtype-course]",group:"[data-eventtype-group]",user:"[data-eventtype-user]"},popoverType:{site:"[data-popover-eventtype-site]",category:"[data-popover-eventtype-category]",course:"[data-popover-eventtype-course]",group:"[data-popover-eventtype-group]",user:"[data-popover-eventtype-user]"},calendarPeriods:{month:"[data-period='month']"},courseSelector:'select[name="course"]',viewSelector:'div[data-region="view-selector"]',actions:{create:'[data-action="new-event-button"]',edit:'[data-action="edit"]',remove:'[data-action="delete"]',viewEvent:'[data-action="view-event"]'},elements:{courseSelector:'select[name="course"]'},today:".today",day:'[data-region="day"]',wrapper:".calendarwrapper",eventItem:'[data-type="event"]',links:{navLink:".calendarwrapper .arrow_link",eventLink:"[data-region='event-item']"},containers:{loadingIcon:'[data-region="overlay-icon-container"]'}}});
|
||||
define([],function(){return{eventFilterItem:"[data-action='filter-event-type']",eventType:{site:"[data-eventtype-site]",category:"[data-eventtype-category]",course:"[data-eventtype-course]",group:"[data-eventtype-group]",user:"[data-eventtype-user]"},popoverType:{site:"[data-popover-eventtype-site]",category:"[data-popover-eventtype-category]",course:"[data-popover-eventtype-course]",group:"[data-popover-eventtype-group]",user:"[data-popover-eventtype-user]"},calendarPeriods:{month:"[data-period='month']"},courseSelector:'select[name="course"]',viewSelector:'div[data-region="view-selector"]',actions:{create:'[data-action="new-event-button"]',edit:'[data-action="edit"]',remove:'[data-action="delete"]',viewEvent:'[data-action="view-event"]'},elements:{courseSelector:'select[name="course"]'},today:".today",day:'[data-region="day"]',calendarMain:'[data-region="calendar"]',wrapper:".calendarwrapper",eventItem:'[data-type="event"]',links:{navLink:".calendarwrapper .arrow_link",eventLink:"[data-region='event-item']",miniDayLink:"[data-region='mini-day-link']"},containers:{loadingIcon:'[data-region="overlay-icon-container"]'}}});
|
||||
@@ -47,7 +47,7 @@ function(
|
||||
*/
|
||||
var registerCalendarEventListeners = function(root) {
|
||||
var body = $('body');
|
||||
body.on(CalendarEvents.monthChanged, function(e, year, month, courseId, categoryId) {
|
||||
body.on([CalendarEvents.monthChanged, CalendarEvents.dayChanged], function(e, year, month, courseId, categoryId) {
|
||||
// We have to use a queue here because the calling code is decoupled from these listeners.
|
||||
// It's possible for the event to be called multiple times before one call is fully resolved.
|
||||
root.queue(function(next) {
|
||||
@@ -117,6 +117,22 @@ function(
|
||||
return $.when(slideUpPromise, slideDownPromise);
|
||||
});
|
||||
};
|
||||
|
||||
// Listen for a click on the day link in the three month block to load the day view.
|
||||
root.on('click', CalendarSelectors.links.miniDayLink, function(e) {
|
||||
|
||||
var miniDayLink = $(e.target);
|
||||
var year = miniDayLink.data('year'),
|
||||
month = miniDayLink.data('month'),
|
||||
day = miniDayLink.text(),
|
||||
courseId = miniDayLink.data('courseid'),
|
||||
categoryId = miniDayLink.data('categoryid'),
|
||||
calendarRoot = $('body').find(CalendarSelectors.calendarMain);
|
||||
CalendarViewManager.refreshDayContent(calendarRoot, year, month, day, courseId, categoryId,
|
||||
calendarRoot, 'core_calendar/calendar_day');
|
||||
e.preventDefault();
|
||||
window.history.pushState({}, '', '?view=day');
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
@@ -54,11 +54,13 @@ define([], function() {
|
||||
},
|
||||
today: '.today',
|
||||
day: '[data-region="day"]',
|
||||
calendarMain: '[data-region="calendar"]',
|
||||
wrapper: '.calendarwrapper',
|
||||
eventItem: '[data-type="event"]',
|
||||
links: {
|
||||
navLink: '.calendarwrapper .arrow_link',
|
||||
eventLink: "[data-region='event-item']",
|
||||
miniDayLink: "[data-region='mini-day-link']",
|
||||
},
|
||||
containers: {
|
||||
loadingIcon: '[data-region="overlay-icon-container"]',
|
||||
|
||||
@@ -33,8 +33,13 @@
|
||||
}} data-container="body"{{!
|
||||
}} data-toggle="popover"{{!
|
||||
}} data-html="true"{{!
|
||||
}} data-region="mini-day-link"{{!
|
||||
}} data-trigger="hover"{{!
|
||||
}} data-placement="top"{{!
|
||||
}} data-year="{{year}}"{{!
|
||||
}} data-month="{{date.mon}}"{{!
|
||||
}} data-courseid="{{courseid}}"{{!
|
||||
}} data-categoryid="{{categoryid}}"{{!
|
||||
}} data-title="{{$title}}{{title}}{{/title}}"{{!
|
||||
}} data-alternate="{{$nocontent}}{{/nocontent}}"{{!
|
||||
}}>{{$day}}{{day}}{{/day}}</a>
|
||||
|
||||
Reference in New Issue
Block a user