MDL-57446 block_myoverview: make event list module filter by course

Part of MDL-55611 epic.
This commit is contained in:
Simey Lameze
2017-04-03 11:35:38 +08:00
committed by Damyon Wiese
parent 4f580aa7a9
commit cfc57eec1b
4 changed files with 25 additions and 8 deletions
+1 -1
View File
@@ -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}});
+13 -3
View File
@@ -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}}