MDL-57446 block_myoverview: make event list module filter by course
Part of MDL-55611 epic.
This commit is contained in:
committed by
Damyon Wiese
parent
4f580aa7a9
commit
cfc57eec1b
+1
-1
@@ -1 +1 @@
|
||||
define(["jquery","core/notification","core/templates","core/custom_interaction_events","block_myoverview/calendar_events_repository"],function(a,b,c,d,e){var f=86400,g={EVENT_LIST:'[data-region="event-list"]',EVENT_LIST_GROUP_CONTAINER:'[data-region="event-list-group-container"]',LOADING_ICON_CONTAINER:'[data-region="loading-icon-container"]',VIEW_MORE_BUTTON:'[data-action="view-more"]'},h=function(a){a.attr("data-loaded-all",!0)},i=function(a){return!!a.attr("data-loaded-all")},j=function(a){var b=a.find(g.LOADING_ICON_CONTAINER),c=a.find(g.VIEW_MORE_BUTTON);a.addClass("loading"),b.removeClass("hidden"),c.prop("disabled",!0)},k=function(a){var b=a.find(g.LOADING_ICON_CONTAINER),c=a.find(g.VIEW_MORE_BUTTON);a.removeClass("loading"),b.addClass("hidden"),i(a)||c.prop("disabled",!1)},l=function(a){return a.hasClass("loading")},m=function(a,b){return a.removeClass("hidden"),c.render("block_myoverview/event-list-items",{events:b}).done(function(b,d){c.appendNodeContents(a.find(g.EVENT_LIST),b,d)})},n=function(a,b){var c=b.orderTime||0;return c-a},o=function(a,b){var c=Math.floor((new Date).setHours(0,0,0,0)/1e3),d=+b.attr("data-start-day")*f,e=+b.attr("data-end-day")*f,g=n(c,a);return e?d<=g&&g<e:d<=g},p=function(b){return function(c){return o(c,a(b))}},q=function(b,c){var d=0;return a.when.apply(a,a.map(b.find(g.EVENT_LIST_GROUP_CONTAINER),function(b){var e=c.filter(p(b));return e.length?(d+=e.length,m(a(b),e)):null})).then(function(){return d})},r=function(c){c=a(c);var d=+c.attr("data-limit"),f=+c.attr("data-offset"),g=new Date,i=Math.floor(g.setHours(0,0,0,0)/1e3);return l(c)?a.Deferred().resolve():(j(c),e.queryFromTime(i,d,f).then(function(a){if((!a.length||a.length<d)&&h(c),a.length)return c.attr("data-offset",f+a.length),q(c,a).then(function(b){b<a.length&&h(c)})}).fail(b.exception).always(function(){k(c)}))},s=function(a){d.define(a,[d.events.activate]),a.on(d.events.activate,g.VIEW_MORE_BUTTON,function(){r(a)})};return{init:function(b){b=a(b),r(b),s(b)}}});
|
||||
define(["jquery","core/notification","core/templates","core/custom_interaction_events","block_myoverview/calendar_events_repository"],function(a,b,c,d,e){var f=86400,g={EVENT_LIST:'[data-region="event-list"]',EVENT_LIST_GROUP_CONTAINER:'[data-region="event-list-group-container"]',LOADING_ICON_CONTAINER:'[data-region="loading-icon-container"]',VIEW_MORE_BUTTON:'[data-action="view-more"]'},h=function(a){a.attr("data-loaded-all",!0)},i=function(a){return!!a.attr("data-loaded-all")},j=function(a){var b=a.find(g.LOADING_ICON_CONTAINER),c=a.find(g.VIEW_MORE_BUTTON);a.addClass("loading"),b.removeClass("hidden"),c.prop("disabled",!0)},k=function(a){var b=a.find(g.LOADING_ICON_CONTAINER),c=a.find(g.VIEW_MORE_BUTTON);a.removeClass("loading"),b.addClass("hidden"),i(a)||c.prop("disabled",!1)},l=function(a){return a.hasClass("loading")},m=function(a,b){return a.removeClass("hidden"),c.render("block_myoverview/event-list-items",{events:b}).done(function(b,d){c.appendNodeContents(a.find(g.EVENT_LIST),b,d)})},n=function(a,b){var c=b.orderTime||0;return c-a},o=function(a,b){var c=Math.floor((new Date).setHours(0,0,0,0)/1e3),d=+b.attr("data-start-day")*f,e=+b.attr("data-end-day")*f,g=n(c,a);return e?d<=g&&g<e:d<=g},p=function(b){return function(c){return o(c,a(b))}},q=function(b,c){var d=0;return a.when.apply(a,a.map(b.find(g.EVENT_LIST_GROUP_CONTAINER),function(b){var e=c.filter(p(b));return e.length?(d+=e.length,m(a(b),e)):null})).then(function(){return d})},r=function(c){c=a(c);var d=+c.attr("data-limit"),f=+c.attr("data-offset"),g=+c.attr("data-course-id"),i=new Date,m=Math.floor(i.setHours(0,0,0,0)/1e3);if(l(c))return a.Deferred().resolve();j(c);var n=null;return n=g?e.queryFromTimeByCourse(g,m,d,f):e.queryFromTime(m,d,f),n.then(function(a){if((!a.length||a.length<d)&&h(c),a.length)return c.attr("data-offset",f+a.length),q(c,a).then(function(b){b<a.length&&h(c)})}).fail(b.exception).always(function(){k(c)})},s=function(a){d.define(a,[d.events.activate]),a.one(d.events.activate,g.VIEW_MORE_BUTTON,function(){r(a)})};return{init:function(b){b=a(b),r(b),s(b)},registerEventListeners:s,load:r}});
|
||||
@@ -230,6 +230,7 @@ define(['jquery', 'core/notification', 'core/templates',
|
||||
root = $(root);
|
||||
var limit = +root.attr('data-limit'),
|
||||
offset = +root.attr('data-offset'),
|
||||
courseId = +root.attr('data-course-id'),
|
||||
date = new Date(),
|
||||
todayTime = Math.floor(date.setHours(0, 0, 0, 0) / 1000);
|
||||
|
||||
@@ -240,8 +241,15 @@ define(['jquery', 'core/notification', 'core/templates',
|
||||
|
||||
startLoading(root);
|
||||
|
||||
var promise = null;
|
||||
if (courseId) {
|
||||
promise = CalendarEventsRepository.queryFromTimeByCourse(courseId, todayTime, limit, offset);
|
||||
} else {
|
||||
promise = CalendarEventsRepository.queryFromTime(todayTime, limit, offset);
|
||||
}
|
||||
|
||||
// Request data from the server.
|
||||
return CalendarEventsRepository.queryFromTime(todayTime, limit, offset).then(function(calendarEvents) {
|
||||
return promise.then(function(calendarEvents) {
|
||||
if (!calendarEvents.length || (calendarEvents.length < limit)) {
|
||||
// We have no more events so mark the list as done.
|
||||
setLoadedAll(root);
|
||||
@@ -280,7 +288,7 @@ define(['jquery', 'core/notification', 'core/templates',
|
||||
*/
|
||||
var registerEventListeners = function(root) {
|
||||
CustomEvents.define(root, [CustomEvents.events.activate]);
|
||||
root.on(CustomEvents.events.activate, SELECTORS.VIEW_MORE_BUTTON, function() {
|
||||
root.one(CustomEvents.events.activate, SELECTORS.VIEW_MORE_BUTTON, function() {
|
||||
load(root);
|
||||
});
|
||||
};
|
||||
@@ -290,6 +298,8 @@ define(['jquery', 'core/notification', 'core/templates',
|
||||
root = $(root);
|
||||
load(root);
|
||||
registerEventListeners(root);
|
||||
}
|
||||
},
|
||||
registerEventListeners: registerEventListeners,
|
||||
load: load
|
||||
};
|
||||
});
|
||||
|
||||
@@ -25,8 +25,9 @@
|
||||
}}
|
||||
<div data-region="event-list-container"
|
||||
data-limit="{{$limit}}20{{/limit}}"
|
||||
data-course-id="{{$courseid}}{{/courseid}}"
|
||||
data-offset="{{$offset}}0{{/offset}}"
|
||||
id="event-list-container-{{uniqid}}">
|
||||
id="event-list-container-{{$courseid}}{{/courseid}}">
|
||||
|
||||
{{< block_myoverview/event-list-group }}
|
||||
{{$title}}{{#str}} today {{/str}}{{/title}}
|
||||
@@ -60,7 +61,7 @@
|
||||
</div>
|
||||
{{#js}}
|
||||
require(['jquery', 'block_myoverview/event_list'], function($, EventList) {
|
||||
var root = $("#event-list-container-{{uniqid}}");
|
||||
EventList.init(root);
|
||||
var root = $("#event-list-container-{{$courseid}}{{/courseid}}");
|
||||
EventList.registerEventListeners(root);
|
||||
});
|
||||
{{/js}}
|
||||
|
||||
@@ -22,9 +22,15 @@
|
||||
Example context (json):
|
||||
{}
|
||||
}}
|
||||
<div data-region="timeline-view-dates">
|
||||
<div data-region="timeline-view-dates" id="timeline-view-dates-{{uniqid}}">
|
||||
{{< block_myoverview/event-list }}
|
||||
{{$limit}}20{{/limit}}
|
||||
{{$offset}}0{{/offset}}
|
||||
{{/ block_myoverview/event-list }}
|
||||
</div>
|
||||
{{#js}}
|
||||
require(['jquery', 'block_myoverview/event_list'], function($, EventList) {
|
||||
var root = $("#timeline-view-dates-{{uniqid}}").find('[data-region="event-list-container"]');
|
||||
EventList.load(root);
|
||||
});
|
||||
{{/js}}
|
||||
Reference in New Issue
Block a user