From 4c74b7d17ba7f8fa7bcabb04090db7e837735e76 Mon Sep 17 00:00:00 2001 From: Ryan Wyllie Date: Tue, 21 May 2019 11:40:36 +0800 Subject: [PATCH] MDL-65657 message: revert polling timeout back to old algorithm --- .../message_drawer_view_conversation.min.js | 2 +- ..._drawer_view_conversation_constants.min.js | 2 +- ...wer_view_conversation_state_manager.min.js | 2 +- .../src/message_drawer_view_conversation.js | 27 ++++++++++++------- ...sage_drawer_view_conversation_constants.js | 2 +- ..._drawer_view_conversation_state_manager.js | 15 ++++++++++- message/lib.php | 6 +++++ ...age_drawer_view_conversation_body.mustache | 3 +++ 8 files changed, 45 insertions(+), 14 deletions(-) diff --git a/message/amd/build/message_drawer_view_conversation.min.js b/message/amd/build/message_drawer_view_conversation.min.js index 3412c9efa2f..8c4e36b7be7 100644 --- a/message/amd/build/message_drawer_view_conversation.min.js +++ b/message/amd/build/message_drawer_view_conversation.min.js @@ -1 +1 @@ -define(["jquery","core/auto_rows","core/backoff_timer","core/custom_interaction_events","core/notification","core/pubsub","core/str","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_view_conversation_constants","core_message/message_drawer_view_conversation_patcher","core_message/message_drawer_view_conversation_renderer","core_message/message_drawer_view_conversation_state_manager","core_message/message_drawer_router","core_message/message_drawer_routes"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p={},q=null,r=!1,s=0,t=null,u=!0,v=!1,w=null,x=j.NEWEST_MESSAGES_FIRST,y=j.LOAD_MESSAGE_LIMIT,z=j.INITIAL_NEW_MESSAGE_POLL_TIMEOUT,A=j.SELECTORS,B=j.CONVERSATION_TYPES,C=function(){if(!q||q.type!=B.PRIVATE)return null;var a=q.loggedInUserId,b=Object.keys(q.members).filter(function(b){return a!=b});return b.length?b[0]:null},D=function(a){return Object.keys(p).reduce(function(b,c){if(!b){var d=p[c].state;d.type==B.PRIVATE&&a in d.members&&(b=d.id)}return b},null)},E=function(a){return{id:parseInt(a.attr("data-user-id"),10),fullname:null,profileimageurl:null,profileimageurlsmall:null,isonline:null,showonlinestatus:null,isblocked:null,iscontact:null,isdeleted:null,canmessage:null,requirescontact:null,contactrequests:[]}},F=function(){return s},G=function(a){s=a,p[q.id].messagesOffset=a},H=function(){return r},I=function(a){r=a,p[q.id].loadedAllMessages=a},J=function(a){return a.find(A.MESSAGES_CONTAINER)},K=function(b){return{id:b.id,name:b.name,subname:b.subname,imageUrl:b.imageUrl,isFavourite:b.isFavourite,type:b.type,totalMemberCount:b.totalMemberCount,loggedInUserId:b.loggedInUserId,messages:b.messages.map(function(b){return a.extend({},b)}),members:Object.keys(b.members).map(function(c){var d=a.extend({},b.members[c]);return d.contactrequests=b.members[c].contactrequests.map(function(b){return a.extend({},b)}),d})}},L=function(a,b){var c=a.id,d=m.setLoadingMembers(q,!0);return d=m.setLoadingMessages(d,!0),w(d).then(function(){return h.getMemberInfo(c,[b],!0,!0)}).then(function(a){if(a.length)return a[0];throw new Error("Unable to load other user profile")}).then(function(b){var c=m.addMembers(q,[b,a]);return c=m.setLoadingMembers(c,!1),c=m.setLoadingMessages(c,!1),c=m.setName(c,b.fullname),c=m.setType(c,1),c=m.setImageUrl(c,b.profileimageurl),c=m.setTotalMemberCount(c,2),w(c).then(function(){return b})})["catch"](function(a){var b=m.setLoadingMembers(q,!1);w(b),e.exception(a)})},M=function(a,b){var c=a.members.filter(function(a){return a.id!=b}),d=c.length?c[0]:null,e=a.name,f=a.imageurl;a.type==B.PRIVATE&&(e=e||d?d.fullname:"",f=f||d?d.profileimageurl:"");var g=m.addMembers(q,a.members);return g=m.setName(g,e),g=m.setSubname(g,a.subname),g=m.setType(g,a.type),g=m.setImageUrl(g,f),g=m.setTotalMemberCount(g,a.membercount),g=m.setIsFavourite(g,a.isfavourite),g=m.addMessages(g,a.messages)},N=function(a,b,c,d,f){var g=b.id,i=m.setLoadingMembers(q,!0);return i=m.setLoadingMessages(i,!0),w(i).then(function(){return h.getConversation(g,a,!0,!0,0,0,c+1,d,f)}).then(function(a){return a.messages.length>c?a.messages=a.messages.slice(1):I(!0),G(d+c),a}).then(function(a){var c=a.members.filter(function(a){return a.id==b.id});c.length<1&&(a.members=a.members.concat([b]));var d=M(a,b.id);return d=m.setLoadingMembers(d,!1),d=m.setLoadingMessages(d,!1),w(d).then(function(){return a})}).then(function(){return R(a)})["catch"](function(a){var b=m.setLoadingMembers(q,!1);b=m.setLoadingMessages(b,!1),w(b),e.exception(a)})},O=function(a,b,c,d){var f=a.members.filter(function(a){return a.id==b.id});f.length<1&&(a.members=a.members.concat([b]));var g=M(a,b.id);g=m.setLoadingMembers(g,!1),g=m.setLoadingMessages(g,!0);var h=a.messages.length;return w(g).then(function(){if(hb?a.messages=a.messages.slice(0,-1):I(!0),a):a}).then(function(a){var b=a.members.filter(function(a){return!(a.id in q.members)}),c=m.addMembers(q,b);return c=m.addMessages(c,a.messages),c=m.setLoadingMessages(c,!1),w(c).then(function(){return a})})["catch"](function(a){var b=m.setLoadingMessages(q,!1);throw w(b),a})},Q=function(b,c){return function(){var d=q.messages,e=d.length?d[d.length-1]:null;if(e&&!u&&!v){for(var g=[],h=d.length-1;h>=0;h--){var j=d[h];if(j.timeCreated!==e.timeCreated)break;g.push(j.id)}return P(b,0,0,c,g,e.timeCreated).then(function(a){if(a.messages.length){t.restart();var c=K(q);return f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,c),R(b)}return a})}return a.Deferred().resolve().promise()}},R=function(a){var b=q.loggedInUserId;return h.markAllConversationMessagesAsRead(b,a).then(function(){var b=m.markMessagesAsRead(q,q.messages);return f.publish(i.CONVERSATION_READ,a),w(b)})},S=function(a){return ea(a).then(function(){var b=m.addPendingBlockUsersById(q,[a]);return w(b)})},T=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.blockUser(q.loggedInUserId,a)}).then(function(b){var c=m.addMembers(q,[b]);return c=m.removePendingBlockUsersById(c,[a]),c=m.setLoadingConfirmAction(c,!1),f.publish(i.CONTACT_BLOCKED,a),w(c)})},U=function(a){return ea(a).then(function(){var b=m.addPendingUnblockUsersById(q,[a]);return w(b)})},V=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.unblockUser(q.loggedInUserId,a)}).then(function(b){var c=m.addMembers(q,[b]);return c=m.removePendingUnblockUsersById(c,[a]),c=m.setLoadingConfirmAction(c,!1),f.publish(i.CONTACT_UNBLOCKED,a),w(c)})},W=function(a){return ea(a).then(function(){var b=m.addPendingRemoveContactsById(q,[a]);return w(b)})},X=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.deleteContacts(q.loggedInUserId,[a])}).then(function(b){var c=m.addMembers(q,b);return c=m.removePendingRemoveContactsById(c,[a]),c=m.setLoadingConfirmAction(c,!1),f.publish(i.CONTACT_REMOVED,a),w(c)})},Y=function(a){return ea(a).then(function(){var b=m.addPendingAddContactsById(q,[a]);return w(b)})},Z=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.createContactRequest(q.loggedInUserId,a)}).then(function(a){if(!a.request)throw new Error(a.warnings[0].message);return a.request}).then(function(b){var c=m.removePendingAddContactsById(q,[a]);return c=m.addContactRequests(c,[b]),c=m.setLoadingConfirmAction(c,!1),w(c)})},$=function(){var a=q.loggedInUserId,b=q.id;return h.setFavouriteConversations(a,[b]).then(function(){var a=m.setIsFavourite(q,!0);return w(a)}).then(function(){return f.publish(i.CONVERSATION_SET_FAVOURITE,K(q))})},_=function(){var a=q.loggedInUserId,b=q.id;return h.unsetFavouriteConversations(a,[b]).then(function(){var a=m.setIsFavourite(q,!1);return w(a)}).then(function(){return f.publish(i.CONVERSATION_UNSET_FAVOURITE,K(q))})},aa=function(a){var b=q.selectedMessageIds;return ea(a).then(function(){var a=m.addPendingDeleteMessagesById(q,b);return w(a)})},ba=function(){var a=q.pendingDeleteMessageIds,b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.deleteMessages(q.loggedInUserId,a)}).then(function(){var b=m.removeMessagesById(q,a);b=m.removePendingDeleteMessagesById(b,a),b=m.removeSelectedMessagesById(b,a),b=m.setLoadingConfirmAction(b,!1);var c=q.messages[q.messages.length-1],d=b.messages.length?b.messages[b.messages.length-1]:null;if(d&&d.id!=c.id){var e=K(b);f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,e)}else b.messages.length||f.publish(i.CONVERSATION_DELETED,b.id);return w(b)})},ca=function(a){return ea(a).then(function(){var a=m.setPendingDeleteConversation(q,!0);return w(a)})},da=function(){var a=m.setLoadingConfirmAction(q,!0);return w(a).then(function(){return h.deleteConversation(q.loggedInUserId,q.id)}).then(function(){var a=m.removeMessages(q,q.messages);return a=m.removeSelectedMessagesById(a,q.selectedMessageIds),a=m.setPendingDeleteConversation(a,!1),a=m.setLoadingConfirmAction(a,!1),f.publish(i.CONVERSATION_DELETED,a.id),w(a)})},ea=function(a){var b=q.pendingDeleteMessageIds,c=m.removePendingAddContactsById(q,[a]);return c=m.removePendingRemoveContactsById(c,[a]),c=m.removePendingUnblockUsersById(c,[a]),c=m.removePendingBlockUsersById(c,[a]),c=m.removePendingDeleteMessagesById(c,b),c=m.setPendingDeleteConversation(c,!1),w(c)},fa=function(a){var b=q.loggedInUserId,c=q.members[a].contactrequests.filter(function(a){return a.requesteduserid==b}),d=c[0],e=m.setLoadingConfirmAction(q,!0);return w(e).then(function(){return h.acceptContactRequest(a,b)}).then(function(a){var b=m.removeContactRequests(q,[d]);return b=m.addMembers(q,[a]),b=m.setLoadingConfirmAction(b,!1),w(b)}).then(function(){f.publish(i.CONTACT_ADDED,q.members[a]),f.publish(i.CONTACT_REQUEST_ACCEPTED,d)})},ga=function(a){var b=q.loggedInUserId,c=q.members[a].contactrequests.filter(function(a){return a.requesteduserid==b}),d=c[0],e=m.setLoadingConfirmAction(q,!0);return w(e).then(function(){return h.declineContactRequest(a,b)}).then(function(a){var b=m.removeContactRequests(q,[d]);return b=m.addMembers(q,[a]),b=m.setLoadingConfirmAction(b,!1),w(b)}).then(function(){f.publish(i.CONTACT_REQUEST_DECLINED,d)})},ha=function(a,b){v=!0;var c=m.setSendingMessage(q,!0),d=null;return w(c).then(function(){if(a||q.type!=B.PRIVATE)return h.sendMessageToConversation(a,b);var c=C();return h.sendMessageToUser(c,b).then(function(a){return d=parseInt(a.conversationid,10),a})}).then(function(a){var b=m.addMessages(q,[a]);b=m.setSendingMessage(b,!1);var c=K(b);return b.id||(b=m.setId(b,d),c.id=d,xa(d),f.publish(i.CONVERSATION_CREATED,c)),w(b).then(function(){v=!1,f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,c)})})["catch"](function(a){v=!1;var b=m.setSendingMessage(q,!1);w(b),e.exception(a)})},ia=function(a){var b=q;return b=q.selectedMessageIds.indexOf(a)>-1?m.removeSelectedMessagesById(q,[a]):m.addSelectedMessagesById(q,[a]),w(b)},ja=function(){return ea(C()).then(function(){var a=m.removeSelectedMessagesById(q,q.selectedMessageIds);return w(a)})},ka=function(a,b,c){return function(d){var e=k.buildPatch(q,d);return l.render(a,b,c,e).then(function(){q=d,d.id&&(p[d.id]={state:d,messagesOffset:F(),loadedAllMessages:H()})})}},la=function(a){return function(b,c){q.loadingConfirmAction||a(C())["catch"](function(a){var b=m.setLoadingConfirmAction(q,!1);w(b),e.exception(a)}),c.originalEvent.preventDefault()}},ma=function(b,c){var d=a(b.target),e=d.closest(A.FOOTER_CONTAINER),f=e.find(A.MESSAGE_TEXT_AREA),g=f.val().trim();""!==g&&ha(q.id,g),c.originalEvent.preventDefault()},na=function(b,c){var d=window.getSelection(),f=a(b.target);if(""==d.toString()&&!f.is("a")){var g=f.closest(A.MESSAGE),h=parseInt(g.attr("data-message-id"),10);ia(h)["catch"](e.exception),c.originalEvent.preventDefault()}},oa=function(a,b){ja()["catch"](e.exception),b.originalEvent.preventDefault()},pa=function(a,b){var c=C(),d=q.members[c];n.go(o.VIEW_CONTACT,d),b.originalEvent.preventDefault()},qa=function(a,b){$()["catch"](e.exception),b.originalEvent.preventDefault()},ra=function(a,b){_()["catch"](e.exception),b.originalEvent.preventDefault()},sa=function(a,b){n.go(o.VIEW_GROUP_INFO,{id:q.id,name:q.name,subname:q.subname,imageUrl:q.imageUrl,totalMemberCount:q.totalMemberCount},q.loggedInUserId),b.originalEvent.preventDefault()},ta=[[A.ACTION_REQUEST_BLOCK,la(S)],[A.ACTION_REQUEST_UNBLOCK,la(U)],[A.ACTION_REQUEST_ADD_CONTACT,la(Y)],[A.ACTION_REQUEST_REMOVE_CONTACT,la(W)],[A.ACTION_REQUEST_DELETE_CONVERSATION,la(ca)],[A.ACTION_CANCEL_EDIT_MODE,oa],[A.ACTION_VIEW_CONTACT,pa],[A.ACTION_VIEW_GROUP_INFO,sa],[A.ACTION_CONFIRM_FAVOURITE,qa],[A.ACTION_CONFIRM_UNFAVOURITE,ra]],ua=[[A.ACTION_CANCEL_CONFIRM,la(ea)],[A.ACTION_CONFIRM_BLOCK,la(T)],[A.ACTION_CONFIRM_UNBLOCK,la(V)],[A.ACTION_CONFIRM_ADD_CONTACT,la(Z)],[A.ACTION_CONFIRM_REMOVE_CONTACT,la(X)],[A.ACTION_CONFIRM_DELETE_SELECTED_MESSAGES,la(ba)],[A.ACTION_CONFIRM_DELETE_CONVERSATION,la(da)],[A.ACTION_REQUEST_ADD_CONTACT,la(Y)],[A.ACTION_ACCEPT_CONTACT_REQUEST,la(fa)],[A.ACTION_DECLINE_CONTACT_REQUEST,la(ga)],[A.MESSAGE,na]],va=[[A.SEND_MESSAGE_BUTTON,ma],[A.ACTION_REQUEST_DELETE_SELECTED_MESSAGES,la(aa)],[A.ACTION_REQUEST_ADD_CONTACT,la(Y)],[A.ACTION_REQUEST_UNBLOCK,la(U)]],wa=function(a,c,g){var h=!1,j=J(c);b.init(g),d.define(a,[d.events.activate]),d.define(c,[d.events.activate]),d.define(g,[d.events.activate,d.events.enter]),d.define(j,[d.events.scrollTop,d.events.scrollLock]),j.on(d.events.scrollTop,function(a,b){var c=Object.keys(q.members).length>1;if(!u&&!h&&!H()&&c){h=!0;var d=m.setLoadingMessages(q,!0);w(d).then(function(){return P(q.id,y,F(),x,[])}).then(function(){h=!1,G(F()+y)})["catch"](function(a){h=!1,e.exception(a)})}b.originalEvent.preventDefault()}),ta.forEach(function(b){var c=b[0],e=b[1];a.on(d.events.activate,c,e)}),ua.forEach(function(a){var b=a[0],e=a[1];c.on(d.events.activate,b,e)}),va.forEach(function(a){var b=a[0],c=a[1];g.on(d.events.activate,b,c)}),g.on(d.events.enter,A.MESSAGE_TEXT_AREA,function(a,b){var c=g.attr("data-enter-to-send");c&&"false"!=c&&"0"!=c&&ma(a,b)}),f.subscribe(i.ROUTE_CHANGED,function(a){t&&a.route!=o.VIEW_CONVERSATION&&t.stop()})},xa=function(a){t&&t.stop(),t=new c(Q(a,x),function(a){return a?2*a:z}),t.start()},ya=function(a,b,c){var d=c.id,e=parseInt(a.attr("data-midnight"),10),f=m.buildInitialState(e,d,b);return q||(q=f),t&&t.stop(),w(f)},za=function(a,b,c){return ya(a,null,b).then(function(){return h.getConversationBetweenUsers(b.id,c,!0,!0,0,0,y,0,x).then(function(c){return Ba(a,c,b)})["catch"](function(){return L(b,c)})})},Aa=function(a,b,c){var d=null;return b in p&&(d=p[b]),ya(a,b,c).then(function(){if(d){var a=d.state;return a=m.setLoadingMessages(a,!1),a=m.setLoadingMembers(a,!1),G(d.messagesOffset),I(d.loadedAllMessages),w(a)}return N(b,c,y,0,x)}).then(function(){return xa(b)})},Ba=function(a,b,c){var d=null;return b.id in p&&(d=p[b.id]),ya(a,b.id,c).then(function(){if(d){var a=d.state;return a=m.setLoadingMessages(a,!1),a=m.setLoadingMembers(a,!1),G(d.messagesOffset),I(d.loadedAllMessages),w(a)}return O(b,c,y,x)}).then(function(){return xa(b.id)})},Ca=function(b,c,d,f,g,h){var i=null,k=null;f&&null!==f&&"object"==typeof f?(i=f,k=parseInt(i.id,10)):(i=null,k=parseInt(f,10),k=isNaN(k)?null:k),!k&&g&&h&&(k=D(h)),c.attr("data-init")||(w=ka(b,c,d),wa(b,c,d),c.attr("data-init",!0));var l=!q||q.id!=k||h&&h!=C();if(l){u=!0;var m=null,n=E(c);return m=i?Ba(c,i,n,h):k?Aa(c,k,n,h):za(c,n,h),m.then(function(){u=!1,b.find(j.SELECTORS.CAN_RECEIVE_FOCUS).first().focus()})["catch"](function(a){u=!1,e.exception(a)})}if(xa(k),q.type==B.PRIVATE&&g){var o=C();switch(g){case"block":return S(o);case"unblock":return U(o);case"add-contact":return Y(o);case"remove-contact":return W(o)}}return a.Deferred().resolve().promise()},Da=function(){return g.get_string("messagedrawerviewconversation","core_message",q.name)};return{show:Ca,description:Da}}); \ No newline at end of file +define(["jquery","core/auto_rows","core/backoff_timer","core/custom_interaction_events","core/notification","core/pubsub","core/str","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_view_conversation_constants","core_message/message_drawer_view_conversation_patcher","core_message/message_drawer_view_conversation_renderer","core_message/message_drawer_view_conversation_state_manager","core_message/message_drawer_router","core_message/message_drawer_routes"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p={},q=null,r=!1,s=0,t=null,u=!0,v=!1,w=null,x=j.NEWEST_MESSAGES_FIRST,y=j.LOAD_MESSAGE_LIMIT,z=j.MILLISECONDS_IN_SEC,A=j.SELECTORS,B=j.CONVERSATION_TYPES,C=function(){if(!q||q.type!=B.PRIVATE)return null;var a=q.loggedInUserId,b=Object.keys(q.members).filter(function(b){return a!=b});return b.length?b[0]:null},D=function(a){return Object.keys(p).reduce(function(b,c){if(!b){var d=p[c].state;d.type==B.PRIVATE&&a in d.members&&(b=d.id)}return b},null)},E=function(a){return{id:parseInt(a.attr("data-user-id"),10),fullname:null,profileimageurl:null,profileimageurlsmall:null,isonline:null,showonlinestatus:null,isblocked:null,iscontact:null,isdeleted:null,canmessage:null,requirescontact:null,contactrequests:[]}},F=function(){return s},G=function(a){s=a,p[q.id].messagesOffset=a},H=function(){return r},I=function(a){r=a,p[q.id].loadedAllMessages=a},J=function(a){return a.find(A.MESSAGES_CONTAINER)},K=function(b){return{id:b.id,name:b.name,subname:b.subname,imageUrl:b.imageUrl,isFavourite:b.isFavourite,type:b.type,totalMemberCount:b.totalMemberCount,loggedInUserId:b.loggedInUserId,messages:b.messages.map(function(b){return a.extend({},b)}),members:Object.keys(b.members).map(function(c){var d=a.extend({},b.members[c]);return d.contactrequests=b.members[c].contactrequests.map(function(b){return a.extend({},b)}),d})}},L=function(a,b){var c=a.id,d=m.setLoadingMembers(q,!0);return d=m.setLoadingMessages(d,!0),w(d).then(function(){return h.getMemberInfo(c,[b],!0,!0)}).then(function(a){if(a.length)return a[0];throw new Error("Unable to load other user profile")}).then(function(b){var c=m.addMembers(q,[b,a]);return c=m.setLoadingMembers(c,!1),c=m.setLoadingMessages(c,!1),c=m.setName(c,b.fullname),c=m.setType(c,1),c=m.setImageUrl(c,b.profileimageurl),c=m.setTotalMemberCount(c,2),w(c).then(function(){return b})})["catch"](function(a){var b=m.setLoadingMembers(q,!1);w(b),e.exception(a)})},M=function(a,b){var c=a.members.filter(function(a){return a.id!=b}),d=c.length?c[0]:null,e=a.name,f=a.imageurl;a.type==B.PRIVATE&&(e=e||d?d.fullname:"",f=f||d?d.profileimageurl:"");var g=m.addMembers(q,a.members);return g=m.setName(g,e),g=m.setSubname(g,a.subname),g=m.setType(g,a.type),g=m.setImageUrl(g,f),g=m.setTotalMemberCount(g,a.membercount),g=m.setIsFavourite(g,a.isfavourite),g=m.addMessages(g,a.messages)},N=function(a,b,c,d,f){var g=b.id,i=m.setLoadingMembers(q,!0);return i=m.setLoadingMessages(i,!0),w(i).then(function(){return h.getConversation(g,a,!0,!0,0,0,c+1,d,f)}).then(function(a){return a.messages.length>c?a.messages=a.messages.slice(1):I(!0),G(d+c),a}).then(function(a){var c=a.members.filter(function(a){return a.id==b.id});c.length<1&&(a.members=a.members.concat([b]));var d=M(a,b.id);return d=m.setLoadingMembers(d,!1),d=m.setLoadingMessages(d,!1),w(d).then(function(){return a})}).then(function(){return R(a)})["catch"](function(a){var b=m.setLoadingMembers(q,!1);b=m.setLoadingMessages(b,!1),w(b),e.exception(a)})},O=function(a,b,c,d){var f=a.members.filter(function(a){return a.id==b.id});f.length<1&&(a.members=a.members.concat([b]));var g=M(a,b.id);g=m.setLoadingMembers(g,!1),g=m.setLoadingMessages(g,!0);var h=a.messages.length;return w(g).then(function(){if(hb?a.messages=a.messages.slice(0,-1):I(!0),a):a}).then(function(a){var b=a.members.filter(function(a){return!(a.id in q.members)}),c=m.addMembers(q,b);return c=m.addMessages(c,a.messages),c=m.setLoadingMessages(c,!1),w(c).then(function(){return a})})["catch"](function(a){var b=m.setLoadingMessages(q,!1);throw w(b),a})},Q=function(b,c){return function(){var d=q.messages,e=d.length?d[d.length-1]:null;if(e&&!u&&!v){for(var g=[],h=d.length-1;h>=0;h--){var j=d[h];if(j.timeCreated!==e.timeCreated)break;g.push(j.id)}return P(b,0,0,c,g,e.timeCreated).then(function(a){if(a.messages.length){t.restart();var c=K(q);return f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,c),R(b)}return a})}return a.Deferred().resolve().promise()}},R=function(a){var b=q.loggedInUserId;return h.markAllConversationMessagesAsRead(b,a).then(function(){var b=m.markMessagesAsRead(q,q.messages);return f.publish(i.CONVERSATION_READ,a),w(b)})},S=function(a){return ea(a).then(function(){var b=m.addPendingBlockUsersById(q,[a]);return w(b)})},T=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.blockUser(q.loggedInUserId,a)}).then(function(b){var c=m.addMembers(q,[b]);return c=m.removePendingBlockUsersById(c,[a]),c=m.setLoadingConfirmAction(c,!1),f.publish(i.CONTACT_BLOCKED,a),w(c)})},U=function(a){return ea(a).then(function(){var b=m.addPendingUnblockUsersById(q,[a]);return w(b)})},V=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.unblockUser(q.loggedInUserId,a)}).then(function(b){var c=m.addMembers(q,[b]);return c=m.removePendingUnblockUsersById(c,[a]),c=m.setLoadingConfirmAction(c,!1),f.publish(i.CONTACT_UNBLOCKED,a),w(c)})},W=function(a){return ea(a).then(function(){var b=m.addPendingRemoveContactsById(q,[a]);return w(b)})},X=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.deleteContacts(q.loggedInUserId,[a])}).then(function(b){var c=m.addMembers(q,b);return c=m.removePendingRemoveContactsById(c,[a]),c=m.setLoadingConfirmAction(c,!1),f.publish(i.CONTACT_REMOVED,a),w(c)})},Y=function(a){return ea(a).then(function(){var b=m.addPendingAddContactsById(q,[a]);return w(b)})},Z=function(a){var b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.createContactRequest(q.loggedInUserId,a)}).then(function(a){if(!a.request)throw new Error(a.warnings[0].message);return a.request}).then(function(b){var c=m.removePendingAddContactsById(q,[a]);return c=m.addContactRequests(c,[b]),c=m.setLoadingConfirmAction(c,!1),w(c)})},$=function(){var a=q.loggedInUserId,b=q.id;return h.setFavouriteConversations(a,[b]).then(function(){var a=m.setIsFavourite(q,!0);return w(a)}).then(function(){return f.publish(i.CONVERSATION_SET_FAVOURITE,K(q))})},_=function(){var a=q.loggedInUserId,b=q.id;return h.unsetFavouriteConversations(a,[b]).then(function(){var a=m.setIsFavourite(q,!1);return w(a)}).then(function(){return f.publish(i.CONVERSATION_UNSET_FAVOURITE,K(q))})},aa=function(a){var b=q.selectedMessageIds;return ea(a).then(function(){var a=m.addPendingDeleteMessagesById(q,b);return w(a)})},ba=function(){var a=q.pendingDeleteMessageIds,b=m.setLoadingConfirmAction(q,!0);return w(b).then(function(){return h.deleteMessages(q.loggedInUserId,a)}).then(function(){var b=m.removeMessagesById(q,a);b=m.removePendingDeleteMessagesById(b,a),b=m.removeSelectedMessagesById(b,a),b=m.setLoadingConfirmAction(b,!1);var c=q.messages[q.messages.length-1],d=b.messages.length?b.messages[b.messages.length-1]:null;if(d&&d.id!=c.id){var e=K(b);f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,e)}else b.messages.length||f.publish(i.CONVERSATION_DELETED,b.id);return w(b)})},ca=function(a){return ea(a).then(function(){var a=m.setPendingDeleteConversation(q,!0);return w(a)})},da=function(){var a=m.setLoadingConfirmAction(q,!0);return w(a).then(function(){return h.deleteConversation(q.loggedInUserId,q.id)}).then(function(){var a=m.removeMessages(q,q.messages);return a=m.removeSelectedMessagesById(a,q.selectedMessageIds),a=m.setPendingDeleteConversation(a,!1),a=m.setLoadingConfirmAction(a,!1),f.publish(i.CONVERSATION_DELETED,a.id),w(a)})},ea=function(a){var b=q.pendingDeleteMessageIds,c=m.removePendingAddContactsById(q,[a]);return c=m.removePendingRemoveContactsById(c,[a]),c=m.removePendingUnblockUsersById(c,[a]),c=m.removePendingBlockUsersById(c,[a]),c=m.removePendingDeleteMessagesById(c,b),c=m.setPendingDeleteConversation(c,!1),w(c)},fa=function(a){var b=q.loggedInUserId,c=q.members[a].contactrequests.filter(function(a){return a.requesteduserid==b}),d=c[0],e=m.setLoadingConfirmAction(q,!0);return w(e).then(function(){return h.acceptContactRequest(a,b)}).then(function(a){var b=m.removeContactRequests(q,[d]);return b=m.addMembers(q,[a]),b=m.setLoadingConfirmAction(b,!1),w(b)}).then(function(){f.publish(i.CONTACT_ADDED,q.members[a]),f.publish(i.CONTACT_REQUEST_ACCEPTED,d)})},ga=function(a){var b=q.loggedInUserId,c=q.members[a].contactrequests.filter(function(a){return a.requesteduserid==b}),d=c[0],e=m.setLoadingConfirmAction(q,!0);return w(e).then(function(){return h.declineContactRequest(a,b)}).then(function(a){var b=m.removeContactRequests(q,[d]);return b=m.addMembers(q,[a]),b=m.setLoadingConfirmAction(b,!1),w(b)}).then(function(){f.publish(i.CONTACT_REQUEST_DECLINED,d)})},ha=function(a,b){v=!0;var c=m.setSendingMessage(q,!0),d=null;return w(c).then(function(){if(a||q.type!=B.PRIVATE)return h.sendMessageToConversation(a,b);var c=C();return h.sendMessageToUser(c,b).then(function(a){return d=parseInt(a.conversationid,10),a})}).then(function(a){var b=m.addMessages(q,[a]);b=m.setSendingMessage(b,!1);var c=K(b);return b.id||(b=m.setId(b,d),c.id=d,xa(d),f.publish(i.CONVERSATION_CREATED,c)),w(b).then(function(){v=!1,f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,c)})})["catch"](function(a){v=!1;var b=m.setSendingMessage(q,!1);w(b),e.exception(a)})},ia=function(a){var b=q;return b=q.selectedMessageIds.indexOf(a)>-1?m.removeSelectedMessagesById(q,[a]):m.addSelectedMessagesById(q,[a]),w(b)},ja=function(){return ea(C()).then(function(){var a=m.removeSelectedMessagesById(q,q.selectedMessageIds);return w(a)})},ka=function(a,b,c){return function(d){var e=k.buildPatch(q,d);return l.render(a,b,c,e).then(function(){q=d,d.id&&(p[d.id]={state:d,messagesOffset:F(),loadedAllMessages:H()})})}},la=function(a){return function(b,c){q.loadingConfirmAction||a(C())["catch"](function(a){var b=m.setLoadingConfirmAction(q,!1);w(b),e.exception(a)}),c.originalEvent.preventDefault()}},ma=function(b,c){var d=a(b.target),e=d.closest(A.FOOTER_CONTAINER),f=e.find(A.MESSAGE_TEXT_AREA),g=f.val().trim();""!==g&&ha(q.id,g),c.originalEvent.preventDefault()},na=function(b,c){var d=window.getSelection(),f=a(b.target);if(""==d.toString()&&!f.is("a")){var g=f.closest(A.MESSAGE),h=parseInt(g.attr("data-message-id"),10);ia(h)["catch"](e.exception),c.originalEvent.preventDefault()}},oa=function(a,b){ja()["catch"](e.exception),b.originalEvent.preventDefault()},pa=function(a,b){var c=C(),d=q.members[c];n.go(o.VIEW_CONTACT,d),b.originalEvent.preventDefault()},qa=function(a,b){$()["catch"](e.exception),b.originalEvent.preventDefault()},ra=function(a,b){_()["catch"](e.exception),b.originalEvent.preventDefault()},sa=function(a,b){n.go(o.VIEW_GROUP_INFO,{id:q.id,name:q.name,subname:q.subname,imageUrl:q.imageUrl,totalMemberCount:q.totalMemberCount},q.loggedInUserId),b.originalEvent.preventDefault()},ta=[[A.ACTION_REQUEST_BLOCK,la(S)],[A.ACTION_REQUEST_UNBLOCK,la(U)],[A.ACTION_REQUEST_ADD_CONTACT,la(Y)],[A.ACTION_REQUEST_REMOVE_CONTACT,la(W)],[A.ACTION_REQUEST_DELETE_CONVERSATION,la(ca)],[A.ACTION_CANCEL_EDIT_MODE,oa],[A.ACTION_VIEW_CONTACT,pa],[A.ACTION_VIEW_GROUP_INFO,sa],[A.ACTION_CONFIRM_FAVOURITE,qa],[A.ACTION_CONFIRM_UNFAVOURITE,ra]],ua=[[A.ACTION_CANCEL_CONFIRM,la(ea)],[A.ACTION_CONFIRM_BLOCK,la(T)],[A.ACTION_CONFIRM_UNBLOCK,la(V)],[A.ACTION_CONFIRM_ADD_CONTACT,la(Z)],[A.ACTION_CONFIRM_REMOVE_CONTACT,la(X)],[A.ACTION_CONFIRM_DELETE_SELECTED_MESSAGES,la(ba)],[A.ACTION_CONFIRM_DELETE_CONVERSATION,la(da)],[A.ACTION_REQUEST_ADD_CONTACT,la(Y)],[A.ACTION_ACCEPT_CONTACT_REQUEST,la(fa)],[A.ACTION_DECLINE_CONTACT_REQUEST,la(ga)],[A.MESSAGE,na]],va=[[A.SEND_MESSAGE_BUTTON,ma],[A.ACTION_REQUEST_DELETE_SELECTED_MESSAGES,la(aa)],[A.ACTION_REQUEST_ADD_CONTACT,la(Y)],[A.ACTION_REQUEST_UNBLOCK,la(U)]],wa=function(a,c,g){var h=!1,j=J(c);b.init(g),d.define(a,[d.events.activate]),d.define(c,[d.events.activate]),d.define(g,[d.events.activate,d.events.enter]),d.define(j,[d.events.scrollTop,d.events.scrollLock]),j.on(d.events.scrollTop,function(a,b){var c=Object.keys(q.members).length>1;if(!u&&!h&&!H()&&c){h=!0;var d=m.setLoadingMessages(q,!0);w(d).then(function(){return P(q.id,y,F(),x,[])}).then(function(){h=!1,G(F()+y)})["catch"](function(a){h=!1,e.exception(a)})}b.originalEvent.preventDefault()}),ta.forEach(function(b){var c=b[0],e=b[1];a.on(d.events.activate,c,e)}),ua.forEach(function(a){var b=a[0],e=a[1];c.on(d.events.activate,b,e)}),va.forEach(function(a){var b=a[0],c=a[1];g.on(d.events.activate,b,c)}),g.on(d.events.enter,A.MESSAGE_TEXT_AREA,function(a,b){var c=g.attr("data-enter-to-send");c&&"false"!=c&&"0"!=c&&ma(a,b)}),f.subscribe(i.ROUTE_CHANGED,function(a){t&&a.route!=o.VIEW_CONVERSATION&&t.stop()})},xa=function(a){t&&t.stop(),t=new c(Q(a,x),c.getIncrementalCallback(q.messagePollMin*z,z,q.messagePollMax*z,q.messagePollAfterMax*z)),t.start()},ya=function(a,b,c){var d=c.id,e=parseInt(a.attr("data-midnight"),10),f=parseInt(a.attr("data-message-poll-min"),10),g=parseInt(a.attr("data-message-poll-max"),10),h=parseInt(a.attr("data-message-poll-after-max"),10),i=m.buildInitialState(e,d,b,f,g,h);return q||(q=i),t&&t.stop(),w(i)},za=function(a,b,c){return ya(a,null,b).then(function(){return h.getConversationBetweenUsers(b.id,c,!0,!0,0,0,y,0,x).then(function(c){return Ba(a,c,b)})["catch"](function(){return L(b,c)})})},Aa=function(a,b,c){var d=null;return b in p&&(d=p[b]),ya(a,b,c).then(function(){if(d){var a=d.state;return a=m.setLoadingMessages(a,!1),a=m.setLoadingMembers(a,!1),G(d.messagesOffset),I(d.loadedAllMessages),w(a)}return N(b,c,y,0,x)}).then(function(){return xa(b)})},Ba=function(a,b,c){var d=null;return b.id in p&&(d=p[b.id]),ya(a,b.id,c).then(function(){if(d){var a=d.state;return a=m.setLoadingMessages(a,!1),a=m.setLoadingMembers(a,!1),G(d.messagesOffset),I(d.loadedAllMessages),w(a)}return O(b,c,y,x)}).then(function(){return xa(b.id)})},Ca=function(b,c,d,f,g,h){var i=null,k=null;f&&null!==f&&"object"==typeof f?(i=f,k=parseInt(i.id,10)):(i=null,k=parseInt(f,10),k=isNaN(k)?null:k),!k&&g&&h&&(k=D(h)),c.attr("data-init")||(w=ka(b,c,d),wa(b,c,d),c.attr("data-init",!0));var l=!q||q.id!=k||h&&h!=C();if(l){u=!0;var m=null,n=E(c);return m=i?Ba(c,i,n,h):k?Aa(c,k,n,h):za(c,n,h),m.then(function(){u=!1,b.find(j.SELECTORS.CAN_RECEIVE_FOCUS).first().focus()})["catch"](function(a){u=!1,e.exception(a)})}if(xa(k),q.type==B.PRIVATE&&g){var o=C();switch(g){case"block":return S(o);case"unblock":return U(o);case"add-contact":return Y(o);case"remove-contact":return W(o)}}return a.Deferred().resolve().promise()},Da=function(){return g.get_string("messagedrawerviewconversation","core_message",q.name)};return{show:Ca,description:Da}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_conversation_constants.min.js b/message/amd/build/message_drawer_view_conversation_constants.min.js index afd8fe09422..20c49159787 100644 --- a/message/amd/build/message_drawer_view_conversation_constants.min.js +++ b/message/amd/build/message_drawer_view_conversation_constants.min.js @@ -1 +1 @@ -define([],function(){var a={ACTION_ACCEPT_CONTACT_REQUEST:'[data-action="accept-contact-request"]',ACTION_CANCEL_CONFIRM:'[data-action="cancel-confirm"]',ACTION_CANCEL_EDIT_MODE:'[data-action="cancel-edit-mode"]',ACTION_CONFIRM_ADD_CONTACT:'[data-action="confirm-add-contact"]',ACTION_CONFIRM_BLOCK:'[data-action="confirm-block"]',ACTION_CONFIRM_DELETE_SELECTED_MESSAGES:'[data-action="confirm-delete-selected-messages"]',ACTION_CONFIRM_DELETE_CONVERSATION:'[data-action="confirm-delete-conversation"]',ACTION_CONFIRM_FAVOURITE:'[data-action="confirm-favourite"]',ACTION_CONFIRM_UNFAVOURITE:'[data-action="confirm-unfavourite"]',ACTION_CONFIRM_REMOVE_CONTACT:'[data-action="confirm-remove-contact"]',ACTION_CONFIRM_UNBLOCK:'[data-action="confirm-unblock"]',ACTION_DECLINE_CONTACT_REQUEST:'[data-action="decline-contact-request"]',ACTION_REQUEST_ADD_CONTACT:'[data-action="request-add-contact"]',ACTION_REQUEST_BLOCK:'[data-action="request-block"]',ACTION_REQUEST_DELETE_CONVERSATION:'[data-action="request-delete-conversation"]',ACTION_REQUEST_DELETE_SELECTED_MESSAGES:'[data-action="delete-selected-messages"]',ACTION_REQUEST_REMOVE_CONTACT:'[data-action="request-remove-contact"]',ACTION_REQUEST_UNBLOCK:'[data-action="request-unblock"]',ACTION_VIEW_CONTACT:'[data-action="view-contact"]',ACTION_VIEW_GROUP_INFO:'[data-action="view-group-info"]',CAN_RECEIVE_FOCUS:'input:not([type="hidden"]), a[href], button, textarea, select, [tabindex]',CONFIRM_DIALOGUE_BUTTON_TEXT:'[data-region="dialogue-button-text"]',CONFIRM_DIALOGUE_CANCEL_BUTTON:'[data-action="cancel-confirm"]',CONFIRM_DIALOGUE_CONTAINER:'[data-region="confirm-dialogue-container"]',CONFIRM_DIALOGUE_HEADER:'[data-region="dialogue-header"]',CONFIRM_DIALOGUE_TEXT:'[data-region="dialogue-text"]',CONTACT_REQUEST_SENT_MESSAGE_CONTAINER:'[data-region="contact-request-sent-message-container"]',CONTENT_PLACEHOLDER_CONTAINER:'[data-region="content-placeholder"]',CONTENT_CONTAINER:'[data-region="content-container"]',CONTENT_MESSAGES_CONTAINER:'[data-region="content-message-container"]',CONTENT_MESSAGES_FOOTER_CONTAINER:'[data-region="content-messages-footer-container"]',CONTENT_MESSAGES_FOOTER_EDIT_MODE_CONTAINER:'[data-region="content-messages-footer-edit-mode-container"]',CONTENT_MESSAGES_FOOTER_REQUIRE_CONTACT_CONTAINER:'[data-region="content-messages-footer-require-contact-container"]',CONTENT_MESSAGES_FOOTER_REQUIRE_UNBLOCK_CONTAINER:'[data-region="content-messages-footer-require-unblock-container"]',CONTENT_MESSAGES_FOOTER_UNABLE_TO_MESSAGE_CONTAINER:'[data-region="content-messages-footer-unable-to-message"]',DAY_MESSAGES_CONTAINER:'[data-region="day-messages-container"]',FAVOURITE_ICON_CONTAINER:'[data-region="favourite-icon-container"]',FOOTER_CONTAINER:'[data-region="content-messages-footer-container"]',HEADER:'[data-region="header-content"]',HEADER_EDIT_MODE:'[data-region="header-edit-mode"]',HEADER_PLACEHOLDER_CONTAINER:'[data-region="header-placeholder"]',LOADING_ICON_CONTAINER:'[data-region="loading-icon-container"]',MESSAGE:'[data-region="message"]',MESSAGE_NOT_SELECTED:'[data-region="message"][aria-checked="false"]',MESSAGE_NOT_SELECTED_ICON:'[data-region="not-selected-icon"]',MESSAGE_SELECTED_ICON:'[data-region="selected-icon"]',MESSAGES:'[data-region="content-message-container"]',MESSAGES_CONTAINER:'[data-region="content-message-container"]',MESSAGES_SELECTED_COUNT:'[data-region="message-selected-court"]',MESSAGE_TEXT_AREA:'[data-region="send-message-txt"]',MORE_MESSAGES_LOADING_ICON_CONTAINER:'[data-region="more-messages-loading-icon-container"]',PLACEHOLDER_CONTAINER:'[data-region="placeholder-container"]',SEND_MESSAGE_BUTTON:'[data-action="send-message"]',SEND_MESSAGE_ICON_CONTAINER:'[data-region="send-icon-container"]',TEXT:'[data-region="text"]',TITLE:'[data-region="title"]'},b={HEADER_PRIVATE:"core_message/message_drawer_view_conversation_header_content_type_private",HEADER_PRIVATE_NO_CONTROLS:"core_message/message_drawer_view_conversation_header_content_type_private_no_controls",HEADER_PUBLIC:"core_message/message_drawer_view_conversation_header_content_type_public",DAY:"core_message/message_drawer_view_conversation_body_day",MESSAGE:"core_message/message_drawer_view_conversation_body_message",MESSAGES:"core_message/message_drawer_view_conversation_body_messages"},c={PRIVATE:1,PUBLIC:2};return{SELECTORS:a,TEMPLATES:b,CONVERSATION_TYPES:c,NEWEST_MESSAGES_FIRST:!0,LOAD_MESSAGE_LIMIT:100,INITIAL_NEW_MESSAGE_POLL_TIMEOUT:1e3}}); \ No newline at end of file +define([],function(){var a={ACTION_ACCEPT_CONTACT_REQUEST:'[data-action="accept-contact-request"]',ACTION_CANCEL_CONFIRM:'[data-action="cancel-confirm"]',ACTION_CANCEL_EDIT_MODE:'[data-action="cancel-edit-mode"]',ACTION_CONFIRM_ADD_CONTACT:'[data-action="confirm-add-contact"]',ACTION_CONFIRM_BLOCK:'[data-action="confirm-block"]',ACTION_CONFIRM_DELETE_SELECTED_MESSAGES:'[data-action="confirm-delete-selected-messages"]',ACTION_CONFIRM_DELETE_CONVERSATION:'[data-action="confirm-delete-conversation"]',ACTION_CONFIRM_FAVOURITE:'[data-action="confirm-favourite"]',ACTION_CONFIRM_UNFAVOURITE:'[data-action="confirm-unfavourite"]',ACTION_CONFIRM_REMOVE_CONTACT:'[data-action="confirm-remove-contact"]',ACTION_CONFIRM_UNBLOCK:'[data-action="confirm-unblock"]',ACTION_DECLINE_CONTACT_REQUEST:'[data-action="decline-contact-request"]',ACTION_REQUEST_ADD_CONTACT:'[data-action="request-add-contact"]',ACTION_REQUEST_BLOCK:'[data-action="request-block"]',ACTION_REQUEST_DELETE_CONVERSATION:'[data-action="request-delete-conversation"]',ACTION_REQUEST_DELETE_SELECTED_MESSAGES:'[data-action="delete-selected-messages"]',ACTION_REQUEST_REMOVE_CONTACT:'[data-action="request-remove-contact"]',ACTION_REQUEST_UNBLOCK:'[data-action="request-unblock"]',ACTION_VIEW_CONTACT:'[data-action="view-contact"]',ACTION_VIEW_GROUP_INFO:'[data-action="view-group-info"]',CAN_RECEIVE_FOCUS:'input:not([type="hidden"]), a[href], button, textarea, select, [tabindex]',CONFIRM_DIALOGUE_BUTTON_TEXT:'[data-region="dialogue-button-text"]',CONFIRM_DIALOGUE_CANCEL_BUTTON:'[data-action="cancel-confirm"]',CONFIRM_DIALOGUE_CONTAINER:'[data-region="confirm-dialogue-container"]',CONFIRM_DIALOGUE_HEADER:'[data-region="dialogue-header"]',CONFIRM_DIALOGUE_TEXT:'[data-region="dialogue-text"]',CONTACT_REQUEST_SENT_MESSAGE_CONTAINER:'[data-region="contact-request-sent-message-container"]',CONTENT_PLACEHOLDER_CONTAINER:'[data-region="content-placeholder"]',CONTENT_CONTAINER:'[data-region="content-container"]',CONTENT_MESSAGES_CONTAINER:'[data-region="content-message-container"]',CONTENT_MESSAGES_FOOTER_CONTAINER:'[data-region="content-messages-footer-container"]',CONTENT_MESSAGES_FOOTER_EDIT_MODE_CONTAINER:'[data-region="content-messages-footer-edit-mode-container"]',CONTENT_MESSAGES_FOOTER_REQUIRE_CONTACT_CONTAINER:'[data-region="content-messages-footer-require-contact-container"]',CONTENT_MESSAGES_FOOTER_REQUIRE_UNBLOCK_CONTAINER:'[data-region="content-messages-footer-require-unblock-container"]',CONTENT_MESSAGES_FOOTER_UNABLE_TO_MESSAGE_CONTAINER:'[data-region="content-messages-footer-unable-to-message"]',DAY_MESSAGES_CONTAINER:'[data-region="day-messages-container"]',FAVOURITE_ICON_CONTAINER:'[data-region="favourite-icon-container"]',FOOTER_CONTAINER:'[data-region="content-messages-footer-container"]',HEADER:'[data-region="header-content"]',HEADER_EDIT_MODE:'[data-region="header-edit-mode"]',HEADER_PLACEHOLDER_CONTAINER:'[data-region="header-placeholder"]',LOADING_ICON_CONTAINER:'[data-region="loading-icon-container"]',MESSAGE:'[data-region="message"]',MESSAGE_NOT_SELECTED:'[data-region="message"][aria-checked="false"]',MESSAGE_NOT_SELECTED_ICON:'[data-region="not-selected-icon"]',MESSAGE_SELECTED_ICON:'[data-region="selected-icon"]',MESSAGES:'[data-region="content-message-container"]',MESSAGES_CONTAINER:'[data-region="content-message-container"]',MESSAGES_SELECTED_COUNT:'[data-region="message-selected-court"]',MESSAGE_TEXT_AREA:'[data-region="send-message-txt"]',MORE_MESSAGES_LOADING_ICON_CONTAINER:'[data-region="more-messages-loading-icon-container"]',PLACEHOLDER_CONTAINER:'[data-region="placeholder-container"]',SEND_MESSAGE_BUTTON:'[data-action="send-message"]',SEND_MESSAGE_ICON_CONTAINER:'[data-region="send-icon-container"]',TEXT:'[data-region="text"]',TITLE:'[data-region="title"]'},b={HEADER_PRIVATE:"core_message/message_drawer_view_conversation_header_content_type_private",HEADER_PRIVATE_NO_CONTROLS:"core_message/message_drawer_view_conversation_header_content_type_private_no_controls",HEADER_PUBLIC:"core_message/message_drawer_view_conversation_header_content_type_public",DAY:"core_message/message_drawer_view_conversation_body_day",MESSAGE:"core_message/message_drawer_view_conversation_body_message",MESSAGES:"core_message/message_drawer_view_conversation_body_messages"},c={PRIVATE:1,PUBLIC:2};return{SELECTORS:a,TEMPLATES:b,CONVERSATION_TYPES:c,NEWEST_MESSAGES_FIRST:!0,LOAD_MESSAGE_LIMIT:100,MILLISECONDS_IN_SEC:1e3}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_conversation_state_manager.min.js b/message/amd/build/message_drawer_view_conversation_state_manager.min.js index 313aa09423d..60ddff68e07 100644 --- a/message/amd/build/message_drawer_view_conversation_state_manager.min.js +++ b/message/amd/build/message_drawer_view_conversation_state_manager.min.js @@ -1 +1 @@ -define(["jquery"],function(a){var b=function(b){var c=a.extend({},b);return c.messages=b.messages.map(function(b){return a.extend({},b)}),c.members=Object.keys(b.members).reduce(function(c,d){return c[d]=a.extend({},b.members[d]),c[d].contactrequests=b.members[d].contactrequests.map(function(b){return a.extend({},b)}),c},{}),c},c=function(a,b,c){return a.map(function(a){var d=a.useridfrom==b;return{id:parseInt(a.id,10),isRead:a.isread,fromLoggedInUser:d,userFrom:c[a.useridfrom],text:a.text,timeCreated:parseInt(a.timecreated,10)}})},d=function(a){return a.map(function(a){return{id:a.id,fullname:a.fullname,profileurl:a.profileurl,profileimageurl:a.profileimageurl,profileimageurlsmall:a.profileimageurlsmall,isonline:a.isonline,showonlinestatus:a.showonlinestatus,isblocked:a.isblocked,iscontact:a.iscontact,isdeleted:a.isdeleted,canmessage:a.canmessage,requirescontact:a.requirescontact,contactrequests:a.contactrequests||[]}})},e=function(a,b,c){return{midnight:a,loggedInUserId:b,id:c,name:null,subname:null,type:null,totalMemberCount:null,imageUrl:null,isFavourite:null,members:{},messages:[],hasTriedToLoadMessages:!1,loadingMessages:!0,sendingMessage:!1,loadingMembers:!0,loadingConfirmAction:!1,pendingBlockUserIds:[],pendingUnblockUserIds:[],pendingRemoveContactIds:[],pendingAddContactIds:[],pendingDeleteMessageIds:[],pendingDeleteConversation:!1,selectedMessageIds:[]}},f=function(a,d){var e=b(a),f=c(d,a.loggedInUserId,a.members),g=a.messages.concat(f);return g.sort(function(a,b){return a.timeCreatedb.timeCreated?1:a.idb.id?1:0}),e.messages=g.filter(function(a,b,c){return!b||a.id!==c[b-1].id}),e},g=function(a,c){var d=b(a),e=c.map(function(a){return a.id});return d.messages=d.messages.filter(function(a){return e.indexOf(a.id)<0}),d},h=function(a,c){var d=b(a);return d.messages=d.messages.filter(function(a){return c.indexOf(a.id)<0}),d},i=function(a,c){var e=b(a),f=d(c);return f.forEach(function(a){e.members[a.id]=a}),e},j=function(a,c){var d=b(a);return c.forEach(function(a){delete d.members[a.id]}),d},k=function(a,c){var d=b(a);return d.loadingMessages=c,a.loadingMessages&&!c&&(d.hasTriedToLoadMessages=!0),d},l=function(a,c){var d=b(a);return d.sendingMessage=c,d},m=function(a,c){var d=b(a);return d.loadingMembers=c,d},n=function(a,c){var d=b(a);return d.id=c,d},o=function(a,c){var d=b(a);return d.name=c,d},p=function(a,c){var d=b(a);return d.subname=c,d},q=function(a,c){var d=b(a);return d.type=c,d},r=function(a,c){var d=b(a);return d.isFavourite=c,d},s=function(a,c){var d=b(a);return d.totalMemberCount=c,d},t=function(a,c){var d=b(a);return d.imageUrl=c,d},u=function(a,c){var d=b(a);return d.loadingConfirmAction=c,d},v=function(a,c){var d=b(a);return d.pendingDeleteConversation=c,d},w=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingBlockUserIds.push(a)}),d},x=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingRemoveContactIds.push(a)}),d},y=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingUnblockUserIds.push(a)}),d},z=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingAddContactIds.push(a)}),d},A=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingDeleteMessageIds.push(a)}),d},B=function(a,c){var d=b(a);return d.pendingBlockUserIds=d.pendingBlockUserIds.filter(function(a){return c.indexOf(a)<0}),d},C=function(a,c){var d=b(a);return d.pendingRemoveContactIds=d.pendingRemoveContactIds.filter(function(a){return c.indexOf(a)<0}),d},D=function(a,c){var d=b(a);return d.pendingUnblockUserIds=d.pendingUnblockUserIds.filter(function(a){return c.indexOf(a)<0}),d},E=function(a,c){var d=b(a);return d.pendingAddContactIds=d.pendingAddContactIds.filter(function(a){return c.indexOf(a)<0}),d},F=function(a,c){var d=b(a);return d.pendingDeleteMessageIds=d.pendingDeleteMessageIds.filter(function(a){return c.indexOf(a)<0}),d},G=function(a,c){var d=b(a);return d.selectedMessageIds=d.selectedMessageIds.concat(c),d},H=function(a,c){var d=b(a);return d.selectedMessageIds=d.selectedMessageIds.filter(function(a){return c.indexOf(a)<0}),d},I=function(a,c){var d=b(a),e=c.map(function(a){return a.id});return d.messages=d.messages.map(function(a){return e.indexOf(a.id)>=0&&(a.isRead=!0),a}),d},J=function(a,c){var d=b(a);return c.forEach(function(a){var b=a.userid,c=a.requesteduserid;d.members[b].contactrequests.push(a),d.members[c].contactrequests.push(a)}),d},K=function(a,c){var d=b(a);return c.forEach(function(a){var b=a.userid,c=a.requesteduserid;d.members[b].contactrequests=d.members[b].contactrequests.filter(function(a){return a.userid!=b}),d.members[c].contactrequests=d.members[c].contactrequests.filter(function(a){return a.requesteduserid!=c})}),d};return{buildInitialState:e,addMessages:f,removeMessages:g,removeMessagesById:h,addMembers:i,removeMembers:j,setLoadingMessages:k,setSendingMessage:l,setLoadingMembers:m,setId:n,setName:o,setSubname:p,setType:q,setIsFavourite:r,setTotalMemberCount:s,setImageUrl:t,setLoadingConfirmAction:u,setPendingDeleteConversation:v,addPendingBlockUsersById:w,addPendingRemoveContactsById:x,addPendingUnblockUsersById:y,addPendingAddContactsById:z,addPendingDeleteMessagesById:A,removePendingBlockUsersById:B,removePendingRemoveContactsById:C,removePendingUnblockUsersById:D,removePendingAddContactsById:E,removePendingDeleteMessagesById:F,addSelectedMessagesById:G,removeSelectedMessagesById:H,markMessagesAsRead:I,addContactRequests:J,removeContactRequests:K}}); \ No newline at end of file +define(["jquery"],function(a){var b=function(b){var c=a.extend({},b);return c.messages=b.messages.map(function(b){return a.extend({},b)}),c.members=Object.keys(b.members).reduce(function(c,d){return c[d]=a.extend({},b.members[d]),c[d].contactrequests=b.members[d].contactrequests.map(function(b){return a.extend({},b)}),c},{}),c},c=function(a,b,c){return a.map(function(a){var d=a.useridfrom==b;return{id:parseInt(a.id,10),isRead:a.isread,fromLoggedInUser:d,userFrom:c[a.useridfrom],text:a.text,timeCreated:parseInt(a.timecreated,10)}})},d=function(a){return a.map(function(a){return{id:a.id,fullname:a.fullname,profileurl:a.profileurl,profileimageurl:a.profileimageurl,profileimageurlsmall:a.profileimageurlsmall,isonline:a.isonline,showonlinestatus:a.showonlinestatus,isblocked:a.isblocked,iscontact:a.iscontact,isdeleted:a.isdeleted,canmessage:a.canmessage,requirescontact:a.requirescontact,contactrequests:a.contactrequests||[]}})},e=function(a,b,c,d,e,f){return{midnight:a,loggedInUserId:b,id:c,messagePollMin:d,messagePollMax:e,messagePollAfterMax:f,name:null,subname:null,type:null,totalMemberCount:null,imageUrl:null,isFavourite:null,members:{},messages:[],hasTriedToLoadMessages:!1,loadingMessages:!0,sendingMessage:!1,loadingMembers:!0,loadingConfirmAction:!1,pendingBlockUserIds:[],pendingUnblockUserIds:[],pendingRemoveContactIds:[],pendingAddContactIds:[],pendingDeleteMessageIds:[],pendingDeleteConversation:!1,selectedMessageIds:[]}},f=function(a,d){var e=b(a),f=c(d,a.loggedInUserId,a.members),g=a.messages.concat(f);return g.sort(function(a,b){return a.timeCreatedb.timeCreated?1:a.idb.id?1:0}),e.messages=g.filter(function(a,b,c){return!b||a.id!==c[b-1].id}),e},g=function(a,c){var d=b(a),e=c.map(function(a){return a.id});return d.messages=d.messages.filter(function(a){return e.indexOf(a.id)<0}),d},h=function(a,c){var d=b(a);return d.messages=d.messages.filter(function(a){return c.indexOf(a.id)<0}),d},i=function(a,c){var e=b(a),f=d(c);return f.forEach(function(a){e.members[a.id]=a}),e},j=function(a,c){var d=b(a);return c.forEach(function(a){delete d.members[a.id]}),d},k=function(a,c){var d=b(a);return d.loadingMessages=c,a.loadingMessages&&!c&&(d.hasTriedToLoadMessages=!0),d},l=function(a,c){var d=b(a);return d.sendingMessage=c,d},m=function(a,c){var d=b(a);return d.loadingMembers=c,d},n=function(a,c){var d=b(a);return d.id=c,d},o=function(a,c){var d=b(a);return d.name=c,d},p=function(a,c){var d=b(a);return d.subname=c,d},q=function(a,c){var d=b(a);return d.type=c,d},r=function(a,c){var d=b(a);return d.isFavourite=c,d},s=function(a,c){var d=b(a);return d.totalMemberCount=c,d},t=function(a,c){var d=b(a);return d.imageUrl=c,d},u=function(a,c){var d=b(a);return d.loadingConfirmAction=c,d},v=function(a,c){var d=b(a);return d.pendingDeleteConversation=c,d},w=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingBlockUserIds.push(a)}),d},x=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingRemoveContactIds.push(a)}),d},y=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingUnblockUserIds.push(a)}),d},z=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingAddContactIds.push(a)}),d},A=function(a,c){var d=b(a);return c.forEach(function(a){d.pendingDeleteMessageIds.push(a)}),d},B=function(a,c){var d=b(a);return d.pendingBlockUserIds=d.pendingBlockUserIds.filter(function(a){return c.indexOf(a)<0}),d},C=function(a,c){var d=b(a);return d.pendingRemoveContactIds=d.pendingRemoveContactIds.filter(function(a){return c.indexOf(a)<0}),d},D=function(a,c){var d=b(a);return d.pendingUnblockUserIds=d.pendingUnblockUserIds.filter(function(a){return c.indexOf(a)<0}),d},E=function(a,c){var d=b(a);return d.pendingAddContactIds=d.pendingAddContactIds.filter(function(a){return c.indexOf(a)<0}),d},F=function(a,c){var d=b(a);return d.pendingDeleteMessageIds=d.pendingDeleteMessageIds.filter(function(a){return c.indexOf(a)<0}),d},G=function(a,c){var d=b(a);return d.selectedMessageIds=d.selectedMessageIds.concat(c),d},H=function(a,c){var d=b(a);return d.selectedMessageIds=d.selectedMessageIds.filter(function(a){return c.indexOf(a)<0}),d},I=function(a,c){var d=b(a),e=c.map(function(a){return a.id});return d.messages=d.messages.map(function(a){return e.indexOf(a.id)>=0&&(a.isRead=!0),a}),d},J=function(a,c){var d=b(a);return c.forEach(function(a){var b=a.userid,c=a.requesteduserid;d.members[b].contactrequests.push(a),d.members[c].contactrequests.push(a)}),d},K=function(a,c){var d=b(a);return c.forEach(function(a){var b=a.userid,c=a.requesteduserid;d.members[b].contactrequests=d.members[b].contactrequests.filter(function(a){return a.userid!=b}),d.members[c].contactrequests=d.members[c].contactrequests.filter(function(a){return a.requesteduserid!=c})}),d};return{buildInitialState:e,addMessages:f,removeMessages:g,removeMessagesById:h,addMembers:i,removeMembers:j,setLoadingMessages:k,setSendingMessage:l,setLoadingMembers:m,setId:n,setName:o,setSubname:p,setType:q,setIsFavourite:r,setTotalMemberCount:s,setImageUrl:t,setLoadingConfirmAction:u,setPendingDeleteConversation:v,addPendingBlockUsersById:w,addPendingRemoveContactsById:x,addPendingUnblockUsersById:y,addPendingAddContactsById:z,addPendingDeleteMessagesById:A,removePendingBlockUsersById:B,removePendingRemoveContactsById:C,removePendingUnblockUsersById:D,removePendingAddContactsById:E,removePendingDeleteMessagesById:F,addSelectedMessagesById:G,removeSelectedMessagesById:H,markMessagesAsRead:I,addContactRequests:J,removeContactRequests:K}}); \ No newline at end of file diff --git a/message/amd/src/message_drawer_view_conversation.js b/message/amd/src/message_drawer_view_conversation.js index 1eafb1473a7..81824cbfac6 100644 --- a/message/amd/src/message_drawer_view_conversation.js +++ b/message/amd/src/message_drawer_view_conversation.js @@ -107,7 +107,7 @@ function( var NEWEST_FIRST = Constants.NEWEST_MESSAGES_FIRST; var LOAD_MESSAGE_LIMIT = Constants.LOAD_MESSAGE_LIMIT; - var INITIAL_NEW_MESSAGE_POLL_TIMEOUT = Constants.INITIAL_NEW_MESSAGE_POLL_TIMEOUT; + var MILLISECONDS_IN_SEC = Constants.MILLISECONDS_IN_SEC; var SELECTORS = Constants.SELECTORS; var CONVERSATION_TYPES = Constants.CONVERSATION_TYPES; @@ -1337,13 +1337,12 @@ function( newMessagesPollTimer = new BackOffTimer( getLoadNewMessagesCallback(conversationId, NEWEST_FIRST), - function(time) { - if (!time) { - return INITIAL_NEW_MESSAGE_POLL_TIMEOUT; - } - - return time * 2; - } + BackOffTimer.getIncrementalCallback( + viewState.messagePollMin * MILLISECONDS_IN_SEC, + MILLISECONDS_IN_SEC, + viewState.messagePollMax * MILLISECONDS_IN_SEC, + viewState.messagePollAfterMax * MILLISECONDS_IN_SEC + ) ); newMessagesPollTimer.start(); @@ -1360,7 +1359,17 @@ function( var resetState = function(body, conversationId, loggedInUserProfile) { var loggedInUserId = loggedInUserProfile.id; var midnight = parseInt(body.attr('data-midnight'), 10); - var initialState = StateManager.buildInitialState(midnight, loggedInUserId, conversationId); + var messagePollMin = parseInt(body.attr('data-message-poll-min'), 10); + var messagePollMax = parseInt(body.attr('data-message-poll-max'), 10); + var messagePollAfterMax = parseInt(body.attr('data-message-poll-after-max'), 10); + var initialState = StateManager.buildInitialState( + midnight, + loggedInUserId, + conversationId, + messagePollMin, + messagePollMax, + messagePollAfterMax + ); if (!viewState) { viewState = initialState; diff --git a/message/amd/src/message_drawer_view_conversation_constants.js b/message/amd/src/message_drawer_view_conversation_constants.js index 83507c00528..692e4945426 100644 --- a/message/amd/src/message_drawer_view_conversation_constants.js +++ b/message/amd/src/message_drawer_view_conversation_constants.js @@ -101,6 +101,6 @@ define([], function() { CONVERSATION_TYPES: CONVERSATION_TYPES, NEWEST_MESSAGES_FIRST: true, LOAD_MESSAGE_LIMIT: 100, - INITIAL_NEW_MESSAGE_POLL_TIMEOUT: 1000 + MILLISECONDS_IN_SEC: 1000 }; }); diff --git a/message/amd/src/message_drawer_view_conversation_state_manager.js b/message/amd/src/message_drawer_view_conversation_state_manager.js index 0340b452dba..fda508e9b60 100644 --- a/message/amd/src/message_drawer_view_conversation_state_manager.js +++ b/message/amd/src/message_drawer_view_conversation_state_manager.js @@ -108,13 +108,26 @@ define(['jquery'], function($) { * @param {Number} midnight Midnight time. * @param {Number} loggedInUserId The logged in user id. * @param {Number} id The conversation id. + * @param {Number} messagePollMin The message poll start timeout in seconds. + * @param {Number} messagePollMax The message poll max timeout limit in seconds. + * @param {Number} messagePollAfterMax The message poll frequency in seconds to reset to after max limit is reached. * @return {Object} Initial state. */ - var buildInitialState = function(midnight, loggedInUserId, id) { + var buildInitialState = function( + midnight, + loggedInUserId, + id, + messagePollMin, + messagePollMax, + messagePollAfterMax + ) { return { midnight: midnight, loggedInUserId: loggedInUserId, id: id, + messagePollMin: messagePollMin, + messagePollMax: messagePollMax, + messagePollAfterMax: messagePollAfterMax, name: null, subname: null, type: null, diff --git a/message/lib.php b/message/lib.php index 1e2228a39ca..0fafa330ede 100644 --- a/message/lib.php +++ b/message/lib.php @@ -855,6 +855,12 @@ function core_message_standard_after_main_region_html() { 'id' => $USER->id, 'midnight' => usergetmidnight(time()) ], + // The starting timeout value for message polling. + 'messagepollmin' => $CFG->messagingminpoll ?? MESSAGE_DEFAULT_MIN_POLL_IN_SECONDS, + // The maximum value that message polling timeout can reach. + 'messagepollmax' => $CFG->messagingmaxpoll ?? MESSAGE_DEFAULT_MAX_POLL_IN_SECONDS, + // The timeout to reset back to after the max polling time has been reached. + 'messagepollaftermax' => $CFG->messagingtimeoutpoll ?? MESSAGE_DEFAULT_TIMEOUT_POLL_IN_SECONDS, 'contacts' => [ 'sectioncontacts' => [ 'placeholders' => array_fill(0, $contactscount > 50 ? 50 : $contactscount, true) diff --git a/message/templates/message_drawer_view_conversation_body.mustache b/message/templates/message_drawer_view_conversation_body.mustache index 79f231ddb1f..e6a28d2e85c 100644 --- a/message/templates/message_drawer_view_conversation_body.mustache +++ b/message/templates/message_drawer_view_conversation_body.mustache @@ -40,6 +40,9 @@ data-region="view-conversation" data-user-id="{{loggedinuser.id}}" data-midnight="{{loggedinuser.midnight}}" + data-message-poll-min="{{messagepollmin}}" + data-message-poll-max="{{messagepollmax}}" + data-message-poll-after-max="{{messagepollaftermax}}" style="overflow-y: auto; overflow-x: hidden" >