MDL-63915 core_message: fix view contacts loading only on one app

This commit is contained in:
Ryan Wyllie
2019-02-27 11:35:36 +08:00
committed by Mark Nelson
parent 6f9d34bd46
commit 3e79a7bbe8
2 changed files with 25 additions and 24 deletions
@@ -1 +1 @@
define(["jquery","core/notification","core/pubsub","core/templates","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_lazy_load_list"],function(a,b,c,d,e,f,g){var h=100,i=0,j={BLOCK_ICON_CONTAINER:'[data-region="block-icon-container"]',CONTACT:'[data-region="contact"]',CONTENT_CONTAINER:'[data-region="contacts-content-container"]'},k={CONTACTS_LIST:"core_message/message_drawer_contacts_list"},l=function(a,b){return a.find('[data-contact-user-id="'+b+'"]')},m=function(c,e){var f=e.map(function(b){return a.extend(b,{id:b.userid})});return d.render(k.CONTACTS_LIST,{contacts:f}).then(function(a){return c.append(a),a})["catch"](b.exception)},n=function(a,c){return e.getContacts(c,h+1,i).then(function(a){return a}).then(function(b){return b.length>h?b.pop():g.setLoadedAll(a,!0),b}).then(function(a){return i+=h,a})["catch"](b.exception)},o=function(a,b){l(a,b).remove()},p=function(a,b){var c=l(a,b);c.length&&c.find(j.BLOCK_ICON_CONTAINER).removeClass("hidden")},q=function(a,b){var c=l(a,b);c.length&&c.find(j.BLOCK_ICON_CONTAINER).addClass("hidden")},r=function(a){c.subscribe(f.CONTACT_ADDED,function(b){var c=g.getContentContainer(a);m(c,[b]),g.hideEmptyMessage(a),g.showContent(a)}),c.subscribe(f.CONTACT_REMOVED,function(b){o(a,b);var c=a.find(j.CONTACT);c.length||(g.hideContent(a),g.showEmptyMessage(a))}),c.subscribe(f.CONTACT_BLOCKED,function(b){p(a,b)}),c.subscribe(f.CONTACT_UNBLOCKED,function(b){q(a,b)})},s=function(a){a.attr("data-contacts-init")||(r(a),a.attr("data-contacts-init",!0)),g.show(a,n,m)};return{show:s}});
define(["jquery","core/notification","core/pubsub","core/templates","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_lazy_load_list"],function(a,b,c,d,e,f,g){var h=100,i=0,j={BLOCK_ICON_CONTAINER:'[data-region="block-icon-container"]',CONTACT:'[data-region="contact"]',CONTENT_CONTAINER:'[data-region="contacts-content-container"]'},k={CONTACTS_LIST:"core_message/message_drawer_contacts_list"},l=function(a,b){return a.find('[data-contact-user-id="'+b+'"]')},m=function(c,e){var f=e.map(function(b){return a.extend(b,{id:b.userid})});return d.render(k.CONTACTS_LIST,{contacts:f}).then(function(a){return c.append(a),a})["catch"](b.exception)},n=function(a){return function(c,d){return e.getContacts(d,h+1,a).then(function(a){return a}).then(function(a){return a.length>h?a.pop():g.setLoadedAll(c,!0),a}).then(function(b){return a+=h,b})["catch"](b.exception)}},o=function(a,b){l(a,b).remove()},p=function(a,b){var c=l(a,b);c.length&&c.find(j.BLOCK_ICON_CONTAINER).removeClass("hidden")},q=function(a,b){var c=l(a,b);c.length&&c.find(j.BLOCK_ICON_CONTAINER).addClass("hidden")},r=function(a){c.subscribe(f.CONTACT_ADDED,function(b){var c=g.getContentContainer(a);m(c,[b]),g.hideEmptyMessage(a),g.showContent(a)}),c.subscribe(f.CONTACT_REMOVED,function(b){o(a,b);var c=a.find(j.CONTACT);c.length||(g.hideContent(a),g.showEmptyMessage(a))}),c.subscribe(f.CONTACT_BLOCKED,function(b){p(a,b)}),c.subscribe(f.CONTACT_UNBLOCKED,function(b){q(a,b)})},s=function(a){a.attr("data-contacts-init")||(r(a),a.attr("data-contacts-init",!0)),g.show(a,n(i),m)};return{show:s}});
@@ -42,7 +42,7 @@ function(
) {
var limit = 100;
var offset = 0;
var initialOffset = 0;
var SELECTORS = {
BLOCK_ICON_CONTAINER: '[data-region="block-icon-container"]',
@@ -87,28 +87,29 @@ function(
/**
* Load the user contacts and call the renderer.
*
* @param {Object} listRoot The lazy loaded list root element
* @param {Integer} userId The logged in user id.
* @return {Object} jQuery promise
* @param {Number} offset The offset to use for loading contacts
* @return {Function} the callback.
*/
var load = function(listRoot, userId) {
return MessageRepository.getContacts(userId, (limit + 1), offset)
.then(function(result) {
return result;
})
.then(function(contacts) {
if (contacts.length > limit) {
contacts.pop();
} else {
LazyLoadList.setLoadedAll(listRoot, true);
}
return contacts;
})
.then(function(contacts) {
offset = offset + limit;
return contacts;
})
.catch(Notification.exception);
var getLoadFunction = function(offset) {
return function(listRoot, userId) {
return MessageRepository.getContacts(userId, (limit + 1), offset)
.then(function(result) {
return result;
})
.then(function(contacts) {
if (contacts.length > limit) {
contacts.pop();
} else {
LazyLoadList.setLoadedAll(listRoot, true);
}
return contacts;
})
.then(function(contacts) {
offset = offset + limit;
return contacts;
})
.catch(Notification.exception);
};
};
/**
@@ -191,7 +192,7 @@ function(
}
// The root element is already the lazy loaded list root.
LazyLoadList.show(root, load, render);
LazyLoadList.show(root, getLoadFunction(initialOffset), render);
};
return {