From cb01c45c5d22c57bd0569c8a078784d6619a3e8b Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Fri, 18 Jan 2019 12:09:55 +0800 Subject: [PATCH] MDL-63915 core_message: add namespacing to messaging widget --- message/amd/build/message_drawer.min.js | 2 +- .../amd/build/message_drawer_router.min.js | 2 +- .../build/message_drawer_view_contact.min.js | 2 +- .../build/message_drawer_view_contacts.min.js | 2 +- .../message_drawer_view_conversation.min.js | 2 +- .../message_drawer_view_group_info.min.js | 2 +- .../build/message_drawer_view_overview.min.js | 2 +- ...essage_drawer_view_overview_section.min.js | 2 +- .../build/message_drawer_view_search.min.js | 2 +- .../build/message_drawer_view_settings.min.js | 2 +- message/amd/src/message_drawer.js | 55 ++++---- message/amd/src/message_drawer_router.js | 117 +++++++++++------ .../amd/src/message_drawer_view_contact.js | 9 +- .../amd/src/message_drawer_view_contacts.js | 3 +- .../src/message_drawer_view_conversation.js | 122 +++++++++--------- .../amd/src/message_drawer_view_group_info.js | 9 +- .../amd/src/message_drawer_view_overview.js | 15 ++- .../message_drawer_view_overview_section.js | 22 ++-- message/amd/src/message_drawer_view_search.js | 3 +- .../amd/src/message_drawer_view_settings.js | 4 +- message/templates/message_drawer.mustache | 2 +- .../core_message/message_drawer.mustache | 2 +- 22 files changed, 227 insertions(+), 156 deletions(-) diff --git a/message/amd/build/message_drawer.min.js b/message/amd/build/message_drawer.min.js index 3f571647bb5..70444552add 100644 --- a/message/amd/build/message_drawer.min.js +++ b/message/amd/build/message_drawer.min.js @@ -1 +1 @@ -define(["jquery","core/custom_interaction_events","core/pubsub","core_message/message_drawer_view_contact","core_message/message_drawer_view_contacts","core_message/message_drawer_view_conversation","core_message/message_drawer_view_group_info","core_message/message_drawer_view_overview","core_message/message_drawer_view_search","core_message/message_drawer_view_settings","core_message/message_drawer_router","core_message/message_drawer_routes","core_message/message_drawer_events"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n={VIEW_CONTACT:'[data-region="view-contact"]',VIEW_CONTACTS:'[data-region="view-contacts"]',VIEW_CONVERSATION:'[data-region="view-conversation"]',VIEW_GROUP_INFO:'[data-region="view-group-info"]',VIEW_OVERVIEW:'[data-region="view-overview"]',VIEW_SEARCH:'[data-region="view-search"]',VIEW_SETTINGS:'[data-region="view-settings"]',ROUTES:"[data-route]",ROUTES_BACK:"[data-route-back]",HEADER_CONTAINER:'[data-region="header-container"]',BODY_CONTAINER:'[data-region="body-container"]',FOOTER_CONTAINER:'[data-region="footer-container"]'},o=function(a,b){var c=a.children(),d=c.filter(n.HEADER_CONTAINER).find(b),e=c.filter(n.BODY_CONTAINER).find(b),f=c.filter(n.FOOTER_CONTAINER).find(b),g=[d,e,f].filter(function(a){return a.length});return g},p=[[l.VIEW_CONTACT,n.VIEW_CONTACT,d.show,d.description],[l.VIEW_CONTACTS,n.VIEW_CONTACTS,e.show,e.description],[l.VIEW_CONVERSATION,n.VIEW_CONVERSATION,f.show,f.description],[l.VIEW_GROUP_INFO,n.VIEW_GROUP_INFO,g.show,g.description],[l.VIEW_OVERVIEW,n.VIEW_OVERVIEW,h.show,h.description],[l.VIEW_SEARCH,n.VIEW_SEARCH,i.show,i.description],[l.VIEW_SETTINGS,n.VIEW_SETTINGS,j.show,j.description]],q=function(a){p.forEach(function(b){k.add(b[0],o(a,b[1]),b[2],b[3])})},r=function(a){a.attr("data-shown")||(k.go(l.VIEW_OVERVIEW),a.attr("data-shown",!0)),a.removeClass("hidden"),a.attr("aria-expanded",!0),a.attr("aria-hidden",!1)},s=function(a){a.addClass("hidden"),a.attr("aria-expanded",!1),a.attr("aria-hidden",!0)},t=function(a){return!a.hasClass("hidden")},u=function(d){b.define(d,[b.events.activate]);var e=/^data-route-param-?(\d*)$/;d.on(b.events.activate,n.ROUTES,function(b,c){for(var d=a(b.target).closest(n.ROUTES),f=d.attr("data-route"),g=[],h=0;h1?c[1]:0,g=d.length>1?d[1]:0;return f1?c[1]:0,g=d.length>1?d[1]:0;return ec?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.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).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},{})}},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,ua(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){return function(b,c){var d=C(),e=q.members[d];n.go(a,o.VIEW_CONTACT,e),c.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){return function(b,c){n.go(a,o.VIEW_GROUP_INFO,{id:q.id,name:q.name,subname:q.subname,imageUrl:q.imageUrl,totalMemberCount:q.totalMemberCount},q.loggedInUserId),c.originalEvent.preventDefault()}},ta=function(a,c,g,h){var j=!1,k=J(g),l=[[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)],[A.ACTION_VIEW_GROUP_INFO,sa(a)],[A.ACTION_CONFIRM_FAVOURITE,qa],[A.ACTION_CONFIRM_UNFAVOURITE,ra]],n=[[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]],p=[[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)]];b.init(h),d.define(c,[d.events.activate]),d.define(g,[d.events.activate]),d.define(h,[d.events.activate,d.events.enter]),d.define(k,[d.events.scrollTop,d.events.scrollLock]),k.on(d.events.scrollTop,function(a,b){var c=Object.keys(q.members).length>1;if(!u&&!j&&!H()&&c){j=!0;var d=m.setLoadingMessages(q,!0);w(d).then(function(){return P(q.id,y,F(),x,[])}).then(function(){j=!1,G(F()+y)})["catch"](function(a){j=!1,e.exception(a)})}b.originalEvent.preventDefault()}),l.forEach(function(a){var b=a[0],e=a[1];c.on(d.events.activate,b,e)}),n.forEach(function(a){var b=a[0],c=a[1];g.on(d.events.activate,b,c)}),p.forEach(function(a){var b=a[0],c=a[1];h.on(d.events.activate,b,c)}),h.on(d.events.enter,A.MESSAGE_TEXT_AREA,function(a,b){var c=h.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()})},ua=function(a){t&&t.stop(),t=new c(Q(a,x),function(a){return a?2*a:z}),t.start()},va=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)},wa=function(a,b,c){return va(a,null,b).then(function(){return h.getConversationBetweenUsers(b.id,c,!0,!0,0,0,y,0,x).then(function(c){return ya(a,c,b)})["catch"](function(){return L(b,c)})})},xa=function(a,b,c){var d=null;return b in p&&(d=p[b]),va(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 ua(b)})},ya=function(a,b,c){var d=null;return b.id in p&&(d=p[b.id]),va(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 ua(b.id)})},za=function(b,c,d,f,g,h,i){var k=null,l=null;g&&null!==g&&"object"==typeof g?(k=g,l=parseInt(k.id,10)):(k=null,l=parseInt(g,10),l=isNaN(l)?null:l),!l&&h&&i&&(l=D(i)),d.attr("data-init")||(w=ka(c,d,f),ta(b,c,d,f),d.attr("data-init",!0));var m=!q||q.id!=l||i&&i!=C();if(m){u=!0;var n=null,o=E(d);return n=k?ya(d,k,o,i):l?xa(d,l,o,i):wa(d,o,i),n.then(function(){u=!1,c.find(j.SELECTORS.CAN_RECEIVE_FOCUS).first().focus()})["catch"](function(a){u=!1,e.exception(a)})}if(ua(l),q.type==B.PRIVATE&&h){var p=C();switch(h){case"block":return S(p);case"unblock":return U(p);case"add-contact":return Y(p);case"remove-contact":return W(p)}}return a.Deferred().resolve().promise()},Aa=function(){return g.get_string("messagedrawerviewconversation","core_message",q.name)};return{show:za,description:Aa}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_group_info.min.js b/message/amd/build/message_drawer_view_group_info.min.js index 7493b9295bf..3669b746828 100644 --- a/message/amd/build/message_drawer_view_group_info.min.js +++ b/message/amd/build/message_drawer_view_group_info.min.js @@ -1 +1 @@ -define(["jquery","core/str","core/templates","core_message/message_repository","core_message/message_drawer_lazy_load_list"],function(a,b,c,d,e){var f=50,g={CONTENT_CONTAINER:'[data-region="group-info-content-container"]',MEMBERS_LIST:'[data-region="members-list"]'},h={CONTENT:"core_message/message_drawer_view_group_info_body_content",MEMBERS_LIST:"core_message/message_drawer_view_group_info_participants_list"},i=function(a){return a.find(g.CONTENT_CONTAINER)},j=function(a,b,d){var e=b.totalMemberCount>50?50:b.totalMemberCount,f=Array.apply(null,Array(e)).map(function(){return!0}),g={name:b.name,subname:b.subname,imageurl:b.imageUrl,placeholders:f,loggedinuser:{id:d}};return c.render(h.CONTENT,g).then(function(b){return i(a).append(b),b})},k=function(a,b,c){return function(f,g){return d.getConversationMembers(a.id,g,b+1,c).then(function(a){return a.length>b?a=a.slice(0,-1):e.setLoadedAll(f,!0),c+=b,a.filter(function(a){return a.id!=g})})}},l=function(a,b){return c.render(h.MEMBERS_LIST,{contacts:b}).then(function(b){return a.append(b),b})},m=function(b,c,d){return b=a(b),i(b).empty(),j(b,c,d).then(function(){var a=e.getRoot(b);e.show(a,k(c,f,0),l)})},n=function(a,c){return b.get_string("messagedrawerviewgroupinfo","core_message",c.name)};return{show:m,description:n}}); \ No newline at end of file +define(["jquery","core/str","core/templates","core_message/message_repository","core_message/message_drawer_lazy_load_list"],function(a,b,c,d,e){var f=50,g={CONTENT_CONTAINER:'[data-region="group-info-content-container"]',MEMBERS_LIST:'[data-region="members-list"]'},h={CONTENT:"core_message/message_drawer_view_group_info_body_content",MEMBERS_LIST:"core_message/message_drawer_view_group_info_participants_list"},i=function(a){return a.find(g.CONTENT_CONTAINER)},j=function(a,b,d){var e=b.totalMemberCount>50?50:b.totalMemberCount,f=Array.apply(null,Array(e)).map(function(){return!0}),g={name:b.name,subname:b.subname,imageurl:b.imageUrl,placeholders:f,loggedinuser:{id:d}};return c.render(h.CONTENT,g).then(function(b){return i(a).append(b),b})},k=function(a,b,c){return function(f,g){return d.getConversationMembers(a.id,g,b+1,c).then(function(a){return a.length>b?a=a.slice(0,-1):e.setLoadedAll(f,!0),c+=b,a.filter(function(a){return a.id!=g})})}},l=function(a,b){return c.render(h.MEMBERS_LIST,{contacts:b}).then(function(b){return a.append(b),b})},m=function(b,c,d,g,h,m){var n=a(d);return i(n).empty(),j(n,h,m).then(function(){var a=e.getRoot(n);e.show(a,k(h,f,0),l)})},n=function(a,c){return b.get_string("messagedrawerviewgroupinfo","core_message",c.name)};return{show:m,description:n}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_overview.min.js b/message/amd/build/message_drawer_view_overview.min.js index acaa28571ef..7ce1ee623f1 100644 --- a/message/amd/build/message_drawer_view_overview.min.js +++ b/message/amd/build/message_drawer_view_overview.min.js @@ -1 +1 @@ -define(["jquery","core/key_codes","core/pubsub","core/str","core_message/message_drawer_router","core_message/message_drawer_routes","core_message/message_drawer_events","core_message/message_drawer_view_overview_section","core_message/message_repository"],function(a,b,c,d,e,f,g,h,i){var j={CONTACT_REQUEST_COUNT:'[data-region="contact-request-count"]',FAVOURITES:'[data-region="view-overview-favourites"]',GROUP_MESSAGES:'[data-region="view-overview-group-messages"]',MESSAGES:'[data-region="view-overview-messages"]',SEARCH_INPUT:'[data-region="view-overview-search-input"]',SECTION_TOGGLE_BUTTON:"[data-toggle]"},k={PRIVATE:1,PUBLIC:2,FAVOURITE:null},l=null,m=function(a){return null===l&&(l=i.getAllConversationCounts(a)),l},n=function(a,b){return b===k.FAVOURITE?a.favourites:a.types[b]},o=function(a){var b=a.some(function(a){var b=a[0];return h.isVisible(b)});if(!b){a.sort(function(a,b){var c=a[1],d=a[2],e=b[1],f=b[2];return d>0&&0==f?-1:0==d&&f>0?1:c>0&&0==e?-1:0==c&&e>0?1:0});var c=a[0][0],d=c.find(j.SECTION_TOGGLE_BUTTON);d.click()}},p=function(a){return a.find(j.SEARCH_INPUT)},q=function(a){return a.attr("data-user-id")},r=function(a){return function(){var b=a.find(j.CONTACT_REQUEST_COUNT),c=parseInt(b.text(),10);c=isNaN(c)?0:c-1,c<=0?b.addClass("hidden"):b.text(c)}},s=function(a){var d=p(a),h=[b.tab,b.shift,b.ctrl,b.alt];d.on("click",function(){e.go(f.VIEW_SEARCH)}),d.on("keydown",function(a){h.indexOf(a.keyCode)<0&&"Meta"!=a.key&&e.go(f.VIEW_SEARCH)}),c.subscribe(g.CONTACT_REQUEST_ACCEPTED,r(a)),c.subscribe(g.CONTACT_REQUEST_DECLINED,r(a))},t=function(a,b){a.attr("data-init")||(s(a),a.attr("data-init",!0)),p(a).val("");var c=q(b),d=m(c),e=[[b.find(j.FAVOURITES),k.FAVOURITE,!0],[b.find(j.GROUP_MESSAGES),k.PUBLIC,!1],[b.find(j.MESSAGES),k.PRIVATE,!1]];return e.forEach(function(a){var b=a[0],c=a[1],e=a[2],f=d.then(function(a){return n(a.total,c)}),g=d.then(function(a){return n(a.unread,c)});h.show(b,c,e,f,g)}),d.then(function(a){var b=e.map(function(b){var c=b[0],d=b[1],e=n(a.total,d),f=n(a.unread,d);return[c,e,f]});return o(b)})},u=function(){return d.get_string("messagedrawerviewoverview","core_message")};return{show:t,description:u}}); \ No newline at end of file +define(["jquery","core/key_codes","core/pubsub","core/str","core_message/message_drawer_router","core_message/message_drawer_routes","core_message/message_drawer_events","core_message/message_drawer_view_overview_section","core_message/message_repository"],function(a,b,c,d,e,f,g,h,i){var j={CONTACT_REQUEST_COUNT:'[data-region="contact-request-count"]',FAVOURITES:'[data-region="view-overview-favourites"]',GROUP_MESSAGES:'[data-region="view-overview-group-messages"]',MESSAGES:'[data-region="view-overview-messages"]',SEARCH_INPUT:'[data-region="view-overview-search-input"]',SECTION_TOGGLE_BUTTON:"[data-toggle]"},k={PRIVATE:1,PUBLIC:2,FAVOURITE:null},l=null,m=function(a){return null===l&&(l=i.getAllConversationCounts(a)),l},n=function(a,b){return b===k.FAVOURITE?a.favourites:a.types[b]},o=function(a){var b=a.some(function(a){var b=a[0];return h.isVisible(b)});if(!b){a.sort(function(a,b){var c=a[1],d=a[2],e=b[1],f=b[2];return d>0&&0==f?-1:0==d&&f>0?1:c>0&&0==e?-1:0==c&&e>0?1:0});var c=a[0][0],d=c.find(j.SECTION_TOGGLE_BUTTON);d.click()}},p=function(a){return a.find(j.SEARCH_INPUT)},q=function(a){return a.attr("data-user-id")},r=function(a){return function(){var b=a.find(j.CONTACT_REQUEST_COUNT),c=parseInt(b.text(),10);c=isNaN(c)?0:c-1,c<=0?b.addClass("hidden"):b.text(c)}},s=function(a,d){var h=p(d),i=[b.tab,b.shift,b.ctrl,b.alt];h.on("click",function(){e.go(a,f.VIEW_SEARCH)}),h.on("keydown",function(b){i.indexOf(b.keyCode)<0&&"Meta"!=b.key&&e.go(a,f.VIEW_SEARCH)}),c.subscribe(g.CONTACT_REQUEST_ACCEPTED,r(d)),c.subscribe(g.CONTACT_REQUEST_DECLINED,r(d))},t=function(a,b,c){b.attr("data-init")||(s(a,b),b.attr("data-init",!0)),p(b).val("");var d=q(c),e=m(d),f=[[c.find(j.FAVOURITES),k.FAVOURITE,!0],[c.find(j.GROUP_MESSAGES),k.PUBLIC,!1],[c.find(j.MESSAGES),k.PRIVATE,!1]];return f.forEach(function(b){var c=b[0],d=b[1],f=b[2],g=e.then(function(a){return n(a.total,d)}),i=e.then(function(a){return n(a.unread,d)});h.show(a,null,c,null,d,f,g,i)}),e.then(function(a){var b=f.map(function(b){var c=b[0],d=b[1],e=n(a.total,d),f=n(a.unread,d);return[c,e,f]});return o(b)})},u=function(){return d.get_string("messagedrawerviewoverview","core_message")};return{show:t,description:u}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_overview_section.min.js b/message/amd/build/message_drawer_view_overview_section.min.js index 0535a9c9cc9..0154211b746 100644 --- a/message/amd/build/message_drawer_view_overview_section.min.js +++ b/message/amd/build/message_drawer_view_overview_section.min.js @@ -1 +1 @@ -define(["jquery","core/custom_interaction_events","core/notification","core/pubsub","core/str","core/templates","core/user_date","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_router","core_message/message_drawer_routes","core_message/message_drawer_lazy_load_list","core_message/message_drawer_view_conversation_constants"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n={TOGGLE:'[data-region="toggle"]',CONVERSATION:"[data-conversation-id]",BLOCKED_ICON_CONTAINER:'[data-region="contact-icon-blocked"]',LAST_MESSAGE:'[data-region="last-message"]',LAST_MESSAGE_DATE:'[data-region="last-message-date"]',UNREAD_COUNT:'[data-region="unread-count"]',SECTION_TOTAL_COUNT:'[data-region="section-total-count"]',SECTION_TOTAL_COUNT_CONTAINER:'[data-region="section-total-count-container"]',SECTION_UNREAD_COUNT:'[data-region="section-unread-count"]',PLACEHOLDER_CONTAINER:'[data-region="placeholder-container"]'},o={CONVERSATIONS_LIST:"core_message/message_drawer_conversations_list",CONVERSATIONS_LIST_ITEMS_PLACEHOLDER:"core_message/message_drawer_conversations_list_items_placeholder"},p=50,q={},r=!1,s=!1,t=function(a){return l.getRoot(a).hasClass("show")},u=function(a){a.addClass("expanded")},v=function(a){a.removeClass("expanded")},w=function(a,b){var c=a.find(n.SECTION_TOTAL_COUNT_CONTAINER),d=c.find(n.SECTION_TOTAL_COUNT);d.text(b),c.removeClass("hidden");var e=b>20?20:b,g=Array.apply(null,Array(e)).map(function(){return!0});f.render(o.CONVERSATIONS_LIST_ITEMS_PLACEHOLDER,{placeholders:g}).then(function(b){var c=a.find(n.PLACEHOLDER_CONTAINER);c.html(b)})["catch"](function(){})},x=function(a,b){var c=a.find(n.SECTION_UNREAD_COUNT);c.text(b),b>0&&c.removeClass("hidden")},y=function(b,d,e){var g=d.map(function(b){var c=b.messages.length?b.messages[b.messages.length-1]:null,d={id:b.id,imageurl:b.imageurl,name:b.name,subname:b.subname,unreadcount:b.unreadcount,lastmessagedate:c?c.timecreated:null,sentfromcurrentuser:c?c.useridfrom==e:null,lastmessage:c?a(c.text).text()||c.text:null};if(b.type==m.CONVERSATION_TYPES.PRIVATE){var f=b.members.reduce(function(a,b){return a||b.id==e||(a=b),a},null);d.userid=f.id,d.showonlinestatus=f.showonlinestatus,d.isonline=f.isonline,d.isblocked=f.isblocked}return b.type==m.CONVERSATION_TYPES.PUBLIC&&(d.lastsendername=b.members.reduce(function(a,b){return a||b.id!=c.useridfrom||(a=b.fullname),a},null)),d});return f.render(o.CONVERSATIONS_LIST,{conversations:g}).then(function(a){return b.append(a),a})["catch"](c.exception)},z=function(a,b,d){return function(e,f){return h.getConversations(f,a,p+1,d,b).then(function(a){var b=a.conversations;return b.length>p?b=b.slice(0,-1):l.setLoadedAll(e,!0),d+=p,b.forEach(function(a){q[a.id]=a}),b})["catch"](c.exception)}},A=function(a){return a.find(n.SECTION_TOTAL_COUNT)},B=function(a){return a.find(n.SECTION_UNREAD_COUNT)},C=function(a){if(r){var b=A(a),c=parseInt(b.text());c+=1,b.text(c)}},D=function(a){if(r){var b=A(a),c=parseInt(b.text());c-=1,b.text(c)}},E=function(a){if(s){var b=B(a),c=parseInt(b.text());c-=1,b.text(c),c<1&&b.addClass("hidden")}},F=function(a,b){return a.find('[data-conversation-id="'+b+'"]')},G=function(a,b){return a.find('[data-user-id="'+b+'"]')},H=function(a){a.find(n.BLOCKED_ICON_CONTAINER).removeClass("hidden")},I=function(a){a.find(n.BLOCKED_ICON_CONTAINER).addClass("hidden")},J=function(b,c){var d,f=c.messages[c.messages.length-1],h="";d=f.fromLoggedInUser?{key:"you",component:"core_message"}:{key:"sender",component:"core_message",param:f.userFrom.fullname};var i=[d,{key:"strftimetime24",component:"core_langconfig"}];return e.get_strings(i).then(function(a){return h=a[0],g.get([{timestamp:f.timeCreated,format:a[1]}])}).then(function(a){return a[0]}).then(function(d){b.find(n.LAST_MESSAGE_DATE).text(d).removeClass("hidden"),f.fromLoggedInUser||c.type!==m.CONVERSATION_TYPES.PRIVATE||(h="");var e=h+" "+a(f.text).text()+"";return b.find(n.LAST_MESSAGE).html(e)})},K=function(b,d){var e=b.find(n.CONVERSATION),g="";if(!e.length){var h=l.getRoot(b);l.showContent(h),l.hideEmptyMessage(h)}var i=d.messages.length,j=i?d.messages[i-1]:null;j&&(g=a(j.text).text()||j.text);var k={id:d.id,name:d.name,subname:d.subname,lastmessagedate:j?j.timeCreated:null,sentfromcurrentuser:j?j.fromLoggedInUser:null,lastmessage:g,imageurl:d.imageUrl};return q[d.id]=d,f.render(o.CONVERSATIONS_LIST,{conversations:[k]}).then(function(a){var c=l.getContentContainer(b);return c.prepend(a)}).then(function(){return C(b)})["catch"](c.exception)},L=function(a,b){b.remove(),D(a);var c=a.find(n.CONVERSATION);if(!c.length){var d=l.getRoot(a);l.hideContent(d),l.showEmptyMessage(d)}},M=function(a,b){var c=b.find(n.UNREAD_COUNT);c.text("0"),c.addClass("hidden"),E(a)},N=function(c,e,f,g){var h=l.getRoot(c),m=c.find(n.TOGGLE);c.css("min-height",m.outerHeight()),c.on("show.bs.collapse",function(){u(c),l.show(h,e,y)}),c.on("hidden.bs.collapse",function(){v(c)}),d.subscribe(i.CONTACT_BLOCKED,function(a){var b=G(c,a);b.length&&H(b)}),d.subscribe(i.CONTACT_UNBLOCKED,function(a){var b=G(c,a);b.length&&I(b)}),d.subscribe(i.CONVERSATION_NEW_LAST_MESSAGE,function(a){if(!(f&&a.type!=f||g&&!a.isFavourite||!g&&a.isFavourite)){var b=a.id,d=F(c,b);d.length?J(d,a):K(c,a)}}),d.subscribe(i.CONVERSATION_DELETED,function(a){var b=F(c,a);b.length&&L(c,b)}),d.subscribe(i.CONVERSATION_READ,function(a){var b=F(c,a);b.length&&M(c,b)}),d.subscribe(i.CONVERSATION_SET_FAVOURITE,function(a){var b=null;!g||f&&f!=a.type?f==a.type&&(b=F(c,a.id),b.length&&L(c,b)):(b=F(c,a.id),b.length||K(c,a))}),d.subscribe(i.CONVERSATION_UNSET_FAVOURITE,function(a){var b=null;g?(b=F(c,a.id),b.length&&L(c,b)):f==a.type&&(b=F(c,a.id),b.length||K(c,a))}),b.define(c,[b.events.activate]),c.on(b.events.activate,n.CONVERSATION,function(b,c){var d=a(b.target).closest(n.CONVERSATION),e=d.attr("data-conversation-id"),f=q[e];j.go(k.VIEW_CONVERSATION,f),c.originalEvent.preventDefault()})},O=function(b,c,d,e,f){if(b=a(b),!b.attr("data-init")){var g=z(c,d,0);if(N(b,g,c,d),t(b)){u(b);var h=l.getRoot(b);l.show(h,g,y)}e.then(function(a){w(b,a),r=!0})["catch"](function(){}),f.then(function(a){x(b,a),s=!0})["catch"](function(){}),b.attr("data-init",!0)}};return{show:O,isVisible:t}}); \ No newline at end of file +define(["jquery","core/custom_interaction_events","core/notification","core/pubsub","core/str","core/templates","core/user_date","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_router","core_message/message_drawer_routes","core_message/message_drawer_lazy_load_list","core_message/message_drawer_view_conversation_constants"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n={TOGGLE:'[data-region="toggle"]',CONVERSATION:"[data-conversation-id]",BLOCKED_ICON_CONTAINER:'[data-region="contact-icon-blocked"]',LAST_MESSAGE:'[data-region="last-message"]',LAST_MESSAGE_DATE:'[data-region="last-message-date"]',UNREAD_COUNT:'[data-region="unread-count"]',SECTION_TOTAL_COUNT:'[data-region="section-total-count"]',SECTION_TOTAL_COUNT_CONTAINER:'[data-region="section-total-count-container"]',SECTION_UNREAD_COUNT:'[data-region="section-unread-count"]',PLACEHOLDER_CONTAINER:'[data-region="placeholder-container"]'},o={CONVERSATIONS_LIST:"core_message/message_drawer_conversations_list",CONVERSATIONS_LIST_ITEMS_PLACEHOLDER:"core_message/message_drawer_conversations_list_items_placeholder"},p=50,q={},r=!1,s=!1,t=function(a){return l.getRoot(a).hasClass("show")},u=function(a){a.addClass("expanded")},v=function(a){a.removeClass("expanded")},w=function(a,b){var c=a.find(n.SECTION_TOTAL_COUNT_CONTAINER),d=c.find(n.SECTION_TOTAL_COUNT);d.text(b),c.removeClass("hidden");var e=b>20?20:b,g=Array.apply(null,Array(e)).map(function(){return!0});f.render(o.CONVERSATIONS_LIST_ITEMS_PLACEHOLDER,{placeholders:g}).then(function(b){var c=a.find(n.PLACEHOLDER_CONTAINER);c.html(b)})["catch"](function(){})},x=function(a,b){var c=a.find(n.SECTION_UNREAD_COUNT);c.text(b),b>0&&c.removeClass("hidden")},y=function(b,d,e){var g=d.map(function(b){var c=b.messages.length?b.messages[b.messages.length-1]:null,d={id:b.id,imageurl:b.imageurl,name:b.name,subname:b.subname,unreadcount:b.unreadcount,lastmessagedate:c?c.timecreated:null,sentfromcurrentuser:c?c.useridfrom==e:null,lastmessage:c?a(c.text).text()||c.text:null};if(b.type==m.CONVERSATION_TYPES.PRIVATE){var f=b.members.reduce(function(a,b){return a||b.id==e||(a=b),a},null);d.userid=f.id,d.showonlinestatus=f.showonlinestatus,d.isonline=f.isonline,d.isblocked=f.isblocked}return b.type==m.CONVERSATION_TYPES.PUBLIC&&(d.lastsendername=b.members.reduce(function(a,b){return a||b.id!=c.useridfrom||(a=b.fullname),a},null)),d});return f.render(o.CONVERSATIONS_LIST,{conversations:g}).then(function(a){return b.append(a),a})["catch"](c.exception)},z=function(a,b,d){return function(e,f){return h.getConversations(f,a,p+1,d,b).then(function(a){var b=a.conversations;return b.length>p?b=b.slice(0,-1):l.setLoadedAll(e,!0),d+=p,b.forEach(function(a){q[a.id]=a}),b})["catch"](c.exception)}},A=function(a){return a.find(n.SECTION_TOTAL_COUNT)},B=function(a){return a.find(n.SECTION_UNREAD_COUNT)},C=function(a){if(r){var b=A(a),c=parseInt(b.text());c+=1,b.text(c)}},D=function(a){if(r){var b=A(a),c=parseInt(b.text());c-=1,b.text(c)}},E=function(a){if(s){var b=B(a),c=parseInt(b.text());c-=1,b.text(c),c<1&&b.addClass("hidden")}},F=function(a,b){return a.find('[data-conversation-id="'+b+'"]')},G=function(a,b){return a.find('[data-user-id="'+b+'"]')},H=function(a){a.find(n.BLOCKED_ICON_CONTAINER).removeClass("hidden")},I=function(a){a.find(n.BLOCKED_ICON_CONTAINER).addClass("hidden")},J=function(b,c){var d,f=c.messages[c.messages.length-1],h="";d=f.fromLoggedInUser?{key:"you",component:"core_message"}:{key:"sender",component:"core_message",param:f.userFrom.fullname};var i=[d,{key:"strftimetime24",component:"core_langconfig"}];return e.get_strings(i).then(function(a){return h=a[0],g.get([{timestamp:f.timeCreated,format:a[1]}])}).then(function(a){return a[0]}).then(function(d){b.find(n.LAST_MESSAGE_DATE).text(d).removeClass("hidden"),f.fromLoggedInUser||c.type!==m.CONVERSATION_TYPES.PRIVATE||(h="");var e=h+" "+a(f.text).text()+"";return b.find(n.LAST_MESSAGE).html(e)})},K=function(b,d){var e=b.find(n.CONVERSATION),g="";if(!e.length){var h=l.getRoot(b);l.showContent(h),l.hideEmptyMessage(h)}var i=d.messages.length,j=i?d.messages[i-1]:null;j&&(g=a(j.text).text()||j.text);var k={id:d.id,name:d.name,subname:d.subname,lastmessagedate:j?j.timeCreated:null,sentfromcurrentuser:j?j.fromLoggedInUser:null,lastmessage:g,imageurl:d.imageUrl};return q[d.id]=d,f.render(o.CONVERSATIONS_LIST,{conversations:[k]}).then(function(a){var c=l.getContentContainer(b);return c.prepend(a)}).then(function(){return C(b)})["catch"](c.exception)},L=function(a,b){b.remove(),D(a);var c=a.find(n.CONVERSATION);if(!c.length){var d=l.getRoot(a);l.hideContent(d),l.showEmptyMessage(d)}},M=function(a,b){var c=b.find(n.UNREAD_COUNT);c.text("0"),c.addClass("hidden"),E(a)},N=function(c,e,f,g,h){var m=l.getRoot(e),o=e.find(n.TOGGLE);e.css("min-height",o.outerHeight()),e.on("show.bs.collapse",function(){u(e),l.show(m,f,y)}),e.on("hidden.bs.collapse",function(){v(e)}),d.subscribe(i.CONTACT_BLOCKED,function(a){var b=G(e,a);b.length&&H(b)}),d.subscribe(i.CONTACT_UNBLOCKED,function(a){var b=G(e,a);b.length&&I(b)}),d.subscribe(i.CONVERSATION_NEW_LAST_MESSAGE,function(a){if(!(g&&a.type!=g||h&&!a.isFavourite||!h&&a.isFavourite)){var b=a.id,c=F(e,b);c.length?J(c,a):K(e,a)}}),d.subscribe(i.CONVERSATION_DELETED,function(a){var b=F(e,a);b.length&&L(e,b)}),d.subscribe(i.CONVERSATION_READ,function(a){var b=F(e,a);b.length&&M(e,b)}),d.subscribe(i.CONVERSATION_SET_FAVOURITE,function(a){var b=null;!h||g&&g!=a.type?g==a.type&&(b=F(e,a.id),b.length&&L(e,b)):(b=F(e,a.id),b.length||K(e,a))}),d.subscribe(i.CONVERSATION_UNSET_FAVOURITE,function(a){var b=null;h?(b=F(e,a.id),b.length&&L(e,b)):g==a.type&&(b=F(e,a.id),b.length||K(e,a))}),b.define(e,[b.events.activate]),e.on(b.events.activate,n.CONVERSATION,function(b,d){var e=a(b.target).closest(n.CONVERSATION),f=e.attr("data-conversation-id"),g=q[f];j.go(c,k.VIEW_CONVERSATION,g),d.originalEvent.preventDefault()})},O=function(b,c,d,e,f,g,h,i){var j=a(d);if(!j.attr("data-init")){var k=z(f,g,0);if(N(b,j,k,f,g),t(j)){u(j);var m=l.getRoot(j);l.show(m,k,y)}h.then(function(a){w(j,a),r=!0})["catch"](function(){}),i.then(function(a){x(j,a),s=!0})["catch"](function(){}),j.attr("data-init",!0)}};return{show:O,isVisible:t}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_search.min.js b/message/amd/build/message_drawer_view_search.min.js index 3b3d047ce27..2f3881ebc4c 100644 --- a/message/amd/build/message_drawer_view_search.min.js +++ b/message/amd/build/message_drawer_view_search.min.js @@ -1 +1 @@ -define(["jquery","core/custom_interaction_events","core/notification","core/pubsub","core/str","core/templates","core_message/message_repository","core_message/message_drawer_events"],function(a,b,c,d,e,f,g,h){var i=50,j=50,k=3,l={BLOCK_ICON_CONTAINER:'[data-region="block-icon-container"]',CANCEL_SEARCH_BUTTON:'[data-action="cancel-search"]',CONTACTS_CONTAINER:'[data-region="contacts-container"]',CONTACTS_LIST:'[data-region="contacts-container"] [data-region="list"]',EMPTY_MESSAGE_CONTAINER:'[data-region="empty-message-container"]',LIST:'[data-region="list"]',LOADING_ICON_CONTAINER:'[data-region="loading-icon-container"]',LOADING_PLACEHOLDER:'[data-region="loading-placeholder"]',MESSAGES_LIST:'[data-region="messages-container"] [data-region="list"]',MESSAGES_CONTAINER:'[data-region="messages-container"]',NON_CONTACTS_CONTAINER:'[data-region="non-contacts-container"]',NON_CONTACTS_LIST:'[data-region="non-contacts-container"] [data-region="list"]',SEARCH_ICON_CONTAINER:'[data-region="search-icon-container"]',SEARCH_ACTION:'[data-action="search"]',SEARCH_INPUT:'[data-region="search-input"]',SEARCH_RESULTS_CONTAINER:'[data-region="search-results-container"]',LOAD_MORE_USERS:'[data-action="load-more-users"]',LOAD_MORE_MESSAGES:'[data-action="load-more-messages"]',BUTTON_TEXT:'[data-region="button-text"]',NO_RESULTS_CONTAINTER:'[data-region="no-results-container"]',ALL_CONTACTS_CONTAINER:'[data-region="all-contacts-container"]'},m={CONTACTS_LIST:"core_message/message_drawer_contacts_list",NON_CONTACTS_LIST:"core_message/message_drawer_non_contacts_list",MESSAGES_LIST:"core_message/message_drawer_messages_list"},n=function(a){return a.attr("data-user-id")},o=function(a){return a.find(l.EMPTY_MESSAGE_CONTAINER)},p=function(a){return a.find(l.LOADING_ICON_CONTAINER)},q=function(a){return a.find(l.LOADING_PLACEHOLDER)},r=function(a){return a.find(l.SEARCH_ICON_CONTAINER)},s=function(a){return a.find(l.SEARCH_INPUT)},t=function(a){return a.find(l.SEARCH_RESULTS_CONTAINER)},u=function(a){return a.find(l.CONTACTS_CONTAINER)},v=function(a){return a.find(l.NON_CONTACTS_CONTAINER)},w=function(a){return a.find(l.MESSAGES_CONTAINER)},x=function(a){o(a).removeClass("hidden")},y=function(a){o(a).addClass("hidden")},z=function(a){p(a).removeClass("hidden")},A=function(a){p(a).addClass("hidden")},B=function(a){q(a).removeClass("hidden")},C=function(a){q(a).addClass("hidden")},D=function(a){r(a).removeClass("hidden")},E=function(a){r(a).addClass("hidden")},F=function(a){t(a).removeClass("hidden")},G=function(a){t(a).addClass("hidden")},H=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).addClass("hidden"),b.find(l.MESSAGES_CONTAINER).addClass("hidden"),b.find(l.NO_RESULTS_CONTAINTER).removeClass("hidden")},I=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).removeClass("hidden"),b.find(l.MESSAGES_CONTAINER).removeClass("hidden"),b.find(l.NO_RESULTS_CONTAINTER).addClass("hidden")},J=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).removeClass("hidden")},K=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).addClass("hidden")},L=function(a){var b=t(a);b.find(l.CONTACTS_CONTAINER).removeClass("hidden")},M=function(a){var b=t(a);b.find(l.CONTACTS_CONTAINER).addClass("hidden")},N=function(a){var b=t(a);b.find(l.NON_CONTACTS_CONTAINER).removeClass("hidden")},O=function(a){var b=t(a);b.find(l.NON_CONTACTS_CONTAINER).addClass("hidden")},P=function(a){var b=t(a);b.find(l.MESSAGES_CONTAINER).removeClass("hidden")},Q=function(a){var b=t(a);b.find(l.MESSAGES_CONTAINER).addClass("hidden")},R=function(a){s(a).prop("disabled",!0)},S=function(a){s(a).prop("disabled",!1)},T=function(a){s(a).val("")},U=function(a){a.find(l.CONTACTS_LIST).empty(),a.find(l.NON_CONTACTS_LIST).empty(),a.find(l.MESSAGES_LIST).empty(),I(a),J(a),L(a),N(a),P(a),Z(a),ba(a)},V=function(a,b){E(a),y(b),G(b),z(a),B(b),R(a)},W=function(a,b){D(a),y(b),F(b),A(a),C(b),S(a)},X=function(a){var b=a.find(l.LOAD_MORE_USERS);b.prop("disabled",!0),b.find(l.BUTTON_TEXT).addClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).removeClass("hidden")},Y=function(a){var b=a.find(l.LOAD_MORE_USERS);b.prop("disabled",!1),b.find(l.BUTTON_TEXT).removeClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).addClass("hidden")},Z=function(a){a.find(l.LOAD_MORE_USERS).removeClass("hidden")},$=function(a){a.find(l.LOAD_MORE_USERS).addClass("hidden")},_=function(a){var b=a.find(l.LOAD_MORE_MESSAGES);b.prop("disabled",!0),b.find(l.BUTTON_TEXT).addClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).removeClass("hidden")},aa=function(a){var b=a.find(l.LOAD_MORE_MESSAGES);b.prop("disabled",!1),b.find(l.BUTTON_TEXT).removeClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).addClass("hidden")},ba=function(a){a.find(l.LOAD_MORE_MESSAGES).removeClass("hidden")},ca=function(a){a.find(l.LOAD_MORE_MESSAGES).addClass("hidden")},da=function(a,b){return a.find('[data-contact-user-id="'+b+'"]')},ea=function(a,b){var c=v(a),d=da(c,b.userid);if(d.length){d.remove();var e=u(a);e.removeClass("hidden"),e.find(l.LIST).append(d)}c.find(l.LIST).children().length||c.addClass("hidden")},fa=function(a,b){var c=u(a),d=da(c,b);if(d.length){d.remove();var e=v(a);e.removeClass("hidden"),e.find(l.LIST).append(d)}c.find(l.LIST).children().length||c.addClass("hidden")},ga=function(a,b){var c=da(a,b);c.length&&c.find(l.BLOCK_ICON_CONTAINER).removeClass("hidden")},ha=function(a,b){var c=da(a,b);c.length&&c.find(l.BLOCK_ICON_CONTAINER).addClass("hidden")},ia=function(a,b){var c=u(a),d=c.find(l.LIST);return f.render(m.CONTACTS_LIST,{contacts:b}).then(function(a){return d.append(a),a})},ja=function(a,b){var c=v(a),d=c.find(l.LIST);return f.render(m.NON_CONTACTS_LIST,{noncontacts:b}).then(function(a){return d.append(a),a})},ka=function(a,b){var c=w(a),d=c.find(l.LIST);return f.render(m.MESSAGES_LIST,{messages:b}).then(function(a){return d.append(a),a})},la=function(b,c,d,e,f){var h=!1;return X(b),g.searchUsers(c,d,e+1,f).then(function(a){var b=a.contacts,c=a.noncontacts;return b.length<=e&&c.length<=e?(h=!0,{contacts:b,noncontacts:c}):{contacts:b.slice(0,e),noncontacts:c.slice(0,e)}}).then(function(c){var d=c.contacts.length,e=c.noncontacts.length;return a.when(!d||ia(b,c.contacts),!e||ja(b,c.noncontacts)).then(function(){return{contactsCount:d,nonContactsCount:e}})}).then(function(a){return Y(b),h&&$(b),a})["catch"](function(a){throw Y(b),a})},ma=function(a,b,c,d,e){var f=!1;return _(a),g.searchMessages(b,c,d+1,e).then(function(a){var b=a.contacts;return b.length<=d?(f=!0,b):b.slice(0,d)}).then(function(b){return b.length?ka(a,b).then(function(){return b.length}):b.length}).then(function(b){return aa(a),f&&ca(a),b})["catch"](function(b){throw aa(a),b})},na=function(b,c,d,e,f,g,h){var i=n(c);return V(b,c),U(c),a.when(la(c,i,d,e,f),ma(c,i,d,g,h)).then(function(a,d){var e=a.contactsCount,f=a.nonContactsCount;W(b,c),e||f||d?(e||f?(e||M(c),f||O(c)):K(c),d||Q(c)):H(c)})},oa=function(a,e){var f=n(e),g=s(a),m="",o=0,p=0,q=function(b,d){m=g.val().trim(),""!==m&&(o=0,p=0,na(a,e,m,k,p,i,o).then(function(){g.focus(),p+=k,o+=i})["catch"](c.exception)),d.originalEvent.preventDefault()};b.define(g,[b.events.enter]),b.define(a,[b.events.activate]),b.define(e,[b.events.activate]),g.on(b.events.enter,q),a.on(b.events.activate,l.SEARCH_ACTION,q),e.on(b.events.activate,l.LOAD_MORE_MESSAGES,function(a,b){""!==m&&ma(e,f,m,i,o).then(function(){o+=i})["catch"](c.exception),b.originalEvent.preventDefault()}),e.on(b.events.activate,l.LOAD_MORE_USERS,function(a,b){""!==m&&la(e,f,m,j,p).then(function(){p+=j})["catch"](c.exception),b.originalEvent.preventDefault()}),a.on(b.events.activate,l.CANCEL_SEARCH_BUTTON,function(){T(a),x(e),D(a),G(e),A(a),C(e),p=0,o=0}),d.subscribe(h.CONTACT_ADDED,function(a){ea(e,a)}),d.subscribe(h.CONTACT_REMOVED,function(a){fa(e,a)}),d.subscribe(h.CONTACT_BLOCKED,function(a){ga(e,a)}),d.subscribe(h.CONTACT_UNBLOCKED,function(a){ha(e,a)})},pa=function(b,c){c.attr("data-init")||(oa(b,c),c.attr("data-init",!0));var d=s(b);return d.focus(),a.Deferred().resolve().promise()},qa=function(a){var b=s(a),c=b.val().trim();return e.get_string("messagedrawerviewsearch","core_message",c)};return{show:pa,description:qa}}); \ No newline at end of file +define(["jquery","core/custom_interaction_events","core/notification","core/pubsub","core/str","core/templates","core_message/message_repository","core_message/message_drawer_events"],function(a,b,c,d,e,f,g,h){var i=50,j=50,k=3,l={BLOCK_ICON_CONTAINER:'[data-region="block-icon-container"]',CANCEL_SEARCH_BUTTON:'[data-action="cancel-search"]',CONTACTS_CONTAINER:'[data-region="contacts-container"]',CONTACTS_LIST:'[data-region="contacts-container"] [data-region="list"]',EMPTY_MESSAGE_CONTAINER:'[data-region="empty-message-container"]',LIST:'[data-region="list"]',LOADING_ICON_CONTAINER:'[data-region="loading-icon-container"]',LOADING_PLACEHOLDER:'[data-region="loading-placeholder"]',MESSAGES_LIST:'[data-region="messages-container"] [data-region="list"]',MESSAGES_CONTAINER:'[data-region="messages-container"]',NON_CONTACTS_CONTAINER:'[data-region="non-contacts-container"]',NON_CONTACTS_LIST:'[data-region="non-contacts-container"] [data-region="list"]',SEARCH_ICON_CONTAINER:'[data-region="search-icon-container"]',SEARCH_ACTION:'[data-action="search"]',SEARCH_INPUT:'[data-region="search-input"]',SEARCH_RESULTS_CONTAINER:'[data-region="search-results-container"]',LOAD_MORE_USERS:'[data-action="load-more-users"]',LOAD_MORE_MESSAGES:'[data-action="load-more-messages"]',BUTTON_TEXT:'[data-region="button-text"]',NO_RESULTS_CONTAINTER:'[data-region="no-results-container"]',ALL_CONTACTS_CONTAINER:'[data-region="all-contacts-container"]'},m={CONTACTS_LIST:"core_message/message_drawer_contacts_list",NON_CONTACTS_LIST:"core_message/message_drawer_non_contacts_list",MESSAGES_LIST:"core_message/message_drawer_messages_list"},n=function(a){return a.attr("data-user-id")},o=function(a){return a.find(l.EMPTY_MESSAGE_CONTAINER)},p=function(a){return a.find(l.LOADING_ICON_CONTAINER)},q=function(a){return a.find(l.LOADING_PLACEHOLDER)},r=function(a){return a.find(l.SEARCH_ICON_CONTAINER)},s=function(a){return a.find(l.SEARCH_INPUT)},t=function(a){return a.find(l.SEARCH_RESULTS_CONTAINER)},u=function(a){return a.find(l.CONTACTS_CONTAINER)},v=function(a){return a.find(l.NON_CONTACTS_CONTAINER)},w=function(a){return a.find(l.MESSAGES_CONTAINER)},x=function(a){o(a).removeClass("hidden")},y=function(a){o(a).addClass("hidden")},z=function(a){p(a).removeClass("hidden")},A=function(a){p(a).addClass("hidden")},B=function(a){q(a).removeClass("hidden")},C=function(a){q(a).addClass("hidden")},D=function(a){r(a).removeClass("hidden")},E=function(a){r(a).addClass("hidden")},F=function(a){t(a).removeClass("hidden")},G=function(a){t(a).addClass("hidden")},H=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).addClass("hidden"),b.find(l.MESSAGES_CONTAINER).addClass("hidden"),b.find(l.NO_RESULTS_CONTAINTER).removeClass("hidden")},I=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).removeClass("hidden"),b.find(l.MESSAGES_CONTAINER).removeClass("hidden"),b.find(l.NO_RESULTS_CONTAINTER).addClass("hidden")},J=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).removeClass("hidden")},K=function(a){var b=t(a);b.find(l.ALL_CONTACTS_CONTAINER).addClass("hidden")},L=function(a){var b=t(a);b.find(l.CONTACTS_CONTAINER).removeClass("hidden")},M=function(a){var b=t(a);b.find(l.CONTACTS_CONTAINER).addClass("hidden")},N=function(a){var b=t(a);b.find(l.NON_CONTACTS_CONTAINER).removeClass("hidden")},O=function(a){var b=t(a);b.find(l.NON_CONTACTS_CONTAINER).addClass("hidden")},P=function(a){var b=t(a);b.find(l.MESSAGES_CONTAINER).removeClass("hidden")},Q=function(a){var b=t(a);b.find(l.MESSAGES_CONTAINER).addClass("hidden")},R=function(a){s(a).prop("disabled",!0)},S=function(a){s(a).prop("disabled",!1)},T=function(a){s(a).val("")},U=function(a){a.find(l.CONTACTS_LIST).empty(),a.find(l.NON_CONTACTS_LIST).empty(),a.find(l.MESSAGES_LIST).empty(),I(a),J(a),L(a),N(a),P(a),Z(a),ba(a)},V=function(a,b){E(a),y(b),G(b),z(a),B(b),R(a)},W=function(a,b){D(a),y(b),F(b),A(a),C(b),S(a)},X=function(a){var b=a.find(l.LOAD_MORE_USERS);b.prop("disabled",!0),b.find(l.BUTTON_TEXT).addClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).removeClass("hidden")},Y=function(a){var b=a.find(l.LOAD_MORE_USERS);b.prop("disabled",!1),b.find(l.BUTTON_TEXT).removeClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).addClass("hidden")},Z=function(a){a.find(l.LOAD_MORE_USERS).removeClass("hidden")},$=function(a){a.find(l.LOAD_MORE_USERS).addClass("hidden")},_=function(a){var b=a.find(l.LOAD_MORE_MESSAGES);b.prop("disabled",!0),b.find(l.BUTTON_TEXT).addClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).removeClass("hidden")},aa=function(a){var b=a.find(l.LOAD_MORE_MESSAGES);b.prop("disabled",!1),b.find(l.BUTTON_TEXT).removeClass("hidden"),b.find(l.LOADING_ICON_CONTAINER).addClass("hidden")},ba=function(a){a.find(l.LOAD_MORE_MESSAGES).removeClass("hidden")},ca=function(a){a.find(l.LOAD_MORE_MESSAGES).addClass("hidden")},da=function(a,b){return a.find('[data-contact-user-id="'+b+'"]')},ea=function(a,b){var c=v(a),d=da(c,b.userid);if(d.length){d.remove();var e=u(a);e.removeClass("hidden"),e.find(l.LIST).append(d)}c.find(l.LIST).children().length||c.addClass("hidden")},fa=function(a,b){var c=u(a),d=da(c,b);if(d.length){d.remove();var e=v(a);e.removeClass("hidden"),e.find(l.LIST).append(d)}c.find(l.LIST).children().length||c.addClass("hidden")},ga=function(a,b){var c=da(a,b);c.length&&c.find(l.BLOCK_ICON_CONTAINER).removeClass("hidden")},ha=function(a,b){var c=da(a,b);c.length&&c.find(l.BLOCK_ICON_CONTAINER).addClass("hidden")},ia=function(a,b){var c=u(a),d=c.find(l.LIST);return f.render(m.CONTACTS_LIST,{contacts:b}).then(function(a){return d.append(a),a})},ja=function(a,b){var c=v(a),d=c.find(l.LIST);return f.render(m.NON_CONTACTS_LIST,{noncontacts:b}).then(function(a){return d.append(a),a})},ka=function(a,b){var c=w(a),d=c.find(l.LIST);return f.render(m.MESSAGES_LIST,{messages:b}).then(function(a){return d.append(a),a})},la=function(b,c,d,e,f){var h=!1;return X(b),g.searchUsers(c,d,e+1,f).then(function(a){var b=a.contacts,c=a.noncontacts;return b.length<=e&&c.length<=e?(h=!0,{contacts:b,noncontacts:c}):{contacts:b.slice(0,e),noncontacts:c.slice(0,e)}}).then(function(c){var d=c.contacts.length,e=c.noncontacts.length;return a.when(!d||ia(b,c.contacts),!e||ja(b,c.noncontacts)).then(function(){return{contactsCount:d,nonContactsCount:e}})}).then(function(a){return Y(b),h&&$(b),a})["catch"](function(a){throw Y(b),a})},ma=function(a,b,c,d,e){var f=!1;return _(a),g.searchMessages(b,c,d+1,e).then(function(a){var b=a.contacts;return b.length<=d?(f=!0,b):b.slice(0,d)}).then(function(b){return b.length?ka(a,b).then(function(){return b.length}):b.length}).then(function(b){return aa(a),f&&ca(a),b})["catch"](function(b){throw aa(a),b})},na=function(b,c,d,e,f,g,h){var i=n(c);return V(b,c),U(c),a.when(la(c,i,d,e,f),ma(c,i,d,g,h)).then(function(a,d){var e=a.contactsCount,f=a.nonContactsCount;W(b,c),e||f||d?(e||f?(e||M(c),f||O(c)):K(c),d||Q(c)):H(c)})},oa=function(a,e){var f=n(e),g=s(a),m="",o=0,p=0,q=function(b,d){m=g.val().trim(),""!==m&&(o=0,p=0,na(a,e,m,k,p,i,o).then(function(){g.focus(),p+=k,o+=i})["catch"](c.exception)),d.originalEvent.preventDefault()};b.define(g,[b.events.enter]),b.define(a,[b.events.activate]),b.define(e,[b.events.activate]),g.on(b.events.enter,q),a.on(b.events.activate,l.SEARCH_ACTION,q),e.on(b.events.activate,l.LOAD_MORE_MESSAGES,function(a,b){""!==m&&ma(e,f,m,i,o).then(function(){o+=i})["catch"](c.exception),b.originalEvent.preventDefault()}),e.on(b.events.activate,l.LOAD_MORE_USERS,function(a,b){""!==m&&la(e,f,m,j,p).then(function(){p+=j})["catch"](c.exception),b.originalEvent.preventDefault()}),a.on(b.events.activate,l.CANCEL_SEARCH_BUTTON,function(){T(a),x(e),D(a),G(e),A(a),C(e),p=0,o=0}),d.subscribe(h.CONTACT_ADDED,function(a){ea(e,a)}),d.subscribe(h.CONTACT_REMOVED,function(a){fa(e,a)}),d.subscribe(h.CONTACT_BLOCKED,function(a){ga(e,a)}),d.subscribe(h.CONTACT_UNBLOCKED,function(a){ha(e,a)})},pa=function(b,c,d){d.attr("data-init")||(oa(c,d),d.attr("data-init",!0));var e=s(c);return e.focus(),a.Deferred().resolve().promise()},qa=function(a){var b=s(a),c=b.val().trim();return e.get_string("messagedrawerviewsearch","core_message",c)};return{show:pa,description:qa}}); \ No newline at end of file diff --git a/message/amd/build/message_drawer_view_settings.min.js b/message/amd/build/message_drawer_view_settings.min.js index 5fbcdb9032c..063d2f62bf7 100644 --- a/message/amd/build/message_drawer_view_settings.min.js +++ b/message/amd/build/message_drawer_view_settings.min.js @@ -1 +1 @@ -define(["jquery","core/notification","core/str","core/pubsub","core/templates","core_message/message_repository","core/custom_interaction_events","core_message/message_drawer_events"],function(a,b,c,d,e,f,g,h){var i={CHECKBOX:'input[type="checkbox"]',SETTINGS:'[data-region="settings"]',PRIVACY_PREFERENCE:'[data-preference="blocknoncontacts"] input[type="radio"]',NOTIFICATIONS_PREFERENCE:'[data-preference="notifications"] input[type="checkbox"]',ENTER_TO_SEND_PREFERENCE:'[data-preference="entertosend"] input[type="checkbox"]',NOTIFICATION_PREFERENCES_CONTAINER:'[data-region="notification-preference-container"]',CONTENT_CONTAINER:'[data-region="content-container"]',PLACEHOLDER_CONTAINER:'[data-region="placeholder-container"]'},j={NOTIFICATION_PREFERENCES:"core_message/message_drawer_view_settings_body_content_notification_preferences"},k="message_provider_moodle_instantmessage",l=function(b,c){var d=b.find(i.PRIVACY_PREFERENCE);d.each(function(b,d){d=a(d),d.val()==c?d.prop("checked",!0):d.prop("checked",!1)})},m=function(a,b){var c=a.find(i.ENTER_TO_SEND_PREFERENCE);b?c.prop("checked",!0):c.prop("checked",!1)},n=function(a,c){return f.savePreferences(a,c).then(function(){d.publish(h.PREFERENCES_UPDATED,c)})["catch"](b.exception)},o=function(b,c){var d=b.find(i.SETTINGS);g.define(d,[g.events.activate]),d.on(g.events.activate,i.NOTIFICATIONS_PREFERENCE,function(b){var d=a(b.target).closest(i.NOTIFICATION_PREFERENCES_CONTAINER),e=d.find(i.CHECKBOX);if(e.length){var f=e.toArray().reduce(function(b,c){return c=a(c),c.prop("checked")&&b.push(c.attr("data-name")),b},[]),g=f.length?f.join(","):"none",h=[{type:"message_provider_moodle_instantmessage_loggedoff",value:g},{type:"message_provider_moodle_instantmessage_loggedin",value:g}];n(c,h)}}),d.on(g.events.activate,i.PRIVACY_PREFERENCE,function(b){var d=a(b.target).val(),e=[{type:"message_blocknoncontacts",value:d}];n(c,e)}),d.on(g.events.activate,i.ENTER_TO_SEND_PREFERENCE,function(b){var d=a(b.target).prop("checked"),e=[{type:"message_entertosend",value:d}];n(c,e)})},p=function(a,c){f.getUserMessagePreferences(c).then(function(b){l(a,b.blocknoncontacts),m(a,b.entertosend);var c=[];b.preferences.components.length&&b.preferences.components.forEach(function(a){if(a.notifications.length){var b=a.notifications.filter(function(a){return a.preferencekey==k});if(b.length){var d=a.notifications[0];c=d.processors.map(function(a){var b=a.loggedin.checked||a.loggedoff.checked;return{displayname:a.displayname,name:a.name,checked:b,locked:a.locked,lockedmessage:a.lockedmessage||null}})}}});var d=a.find(i.NOTIFICATION_PREFERENCES_CONTAINER);return!c.length||(d.removeClass("hidden"),e.render(j.NOTIFICATION_PREFERENCES,{processors:c}).then(function(a){return d.append(a),a}))}).then(function(){a.find(i.CONTENT_CONTAINER).removeClass("hidden"),a.find(i.PLACEHOLDER_CONTAINER).addClass("hidden"),o(a,c)})["catch"](b.exception)},q=function(b,c,d){return c.attr("data-init")||(p(c,d),c.attr("data-init",!0)),a.Deferred().resolve().promise()},r=function(){return c.get_string("messagedrawerviewsettings","core_message")};return{show:q,description:r}}); \ No newline at end of file +define(["jquery","core/notification","core/str","core/pubsub","core/templates","core_message/message_repository","core/custom_interaction_events","core_message/message_drawer_events"],function(a,b,c,d,e,f,g,h){var i={CHECKBOX:'input[type="checkbox"]',SETTINGS:'[data-region="settings"]',PRIVACY_PREFERENCE:'[data-preference="blocknoncontacts"] input[type="radio"]',NOTIFICATIONS_PREFERENCE:'[data-preference="notifications"] input[type="checkbox"]',ENTER_TO_SEND_PREFERENCE:'[data-preference="entertosend"] input[type="checkbox"]',NOTIFICATION_PREFERENCES_CONTAINER:'[data-region="notification-preference-container"]',CONTENT_CONTAINER:'[data-region="content-container"]',PLACEHOLDER_CONTAINER:'[data-region="placeholder-container"]'},j={NOTIFICATION_PREFERENCES:"core_message/message_drawer_view_settings_body_content_notification_preferences"},k="message_provider_moodle_instantmessage",l=function(b,c){var d=b.find(i.PRIVACY_PREFERENCE);d.each(function(b,d){d=a(d),d.val()==c?d.prop("checked",!0):d.prop("checked",!1)})},m=function(a,b){var c=a.find(i.ENTER_TO_SEND_PREFERENCE);b?c.prop("checked",!0):c.prop("checked",!1)},n=function(a,c){return f.savePreferences(a,c).then(function(){d.publish(h.PREFERENCES_UPDATED,c)})["catch"](b.exception)},o=function(b,c){var d=b.find(i.SETTINGS);g.define(d,[g.events.activate]),d.on(g.events.activate,i.NOTIFICATIONS_PREFERENCE,function(b){var d=a(b.target).closest(i.NOTIFICATION_PREFERENCES_CONTAINER),e=d.find(i.CHECKBOX);if(e.length){var f=e.toArray().reduce(function(b,c){return c=a(c),c.prop("checked")&&b.push(c.attr("data-name")),b},[]),g=f.length?f.join(","):"none",h=[{type:"message_provider_moodle_instantmessage_loggedoff",value:g},{type:"message_provider_moodle_instantmessage_loggedin",value:g}];n(c,h)}}),d.on(g.events.activate,i.PRIVACY_PREFERENCE,function(b){var d=a(b.target).val(),e=[{type:"message_blocknoncontacts",value:d}];n(c,e)}),d.on(g.events.activate,i.ENTER_TO_SEND_PREFERENCE,function(b){var d=a(b.target).prop("checked"),e=[{type:"message_entertosend",value:d}];n(c,e)})},p=function(a,c){f.getUserMessagePreferences(c).then(function(b){l(a,b.blocknoncontacts),m(a,b.entertosend);var c=[];b.preferences.components.length&&b.preferences.components.forEach(function(a){if(a.notifications.length){var b=a.notifications.filter(function(a){return a.preferencekey==k});if(b.length){var d=a.notifications[0];c=d.processors.map(function(a){var b=a.loggedin.checked||a.loggedoff.checked;return{displayname:a.displayname,name:a.name,checked:b,locked:a.locked,lockedmessage:a.lockedmessage||null}})}}});var d=a.find(i.NOTIFICATION_PREFERENCES_CONTAINER);return!c.length||(d.removeClass("hidden"),e.render(j.NOTIFICATION_PREFERENCES,{processors:c}).then(function(a){return d.append(a),a}))}).then(function(){a.find(i.CONTENT_CONTAINER).removeClass("hidden"),a.find(i.PLACEHOLDER_CONTAINER).addClass("hidden"),o(a,c)})["catch"](b.exception)},q=function(b,c,d,e,f){return d.attr("data-init")||(p(d,f),d.attr("data-init",!0)),a.Deferred().resolve().promise()},r=function(){return c.get_string("messagedrawerviewsettings","core_message")};return{show:q,description:r}}); \ No newline at end of file diff --git a/message/amd/src/message_drawer.js b/message/amd/src/message_drawer.js index 7ea6a2d4dec..aa6af86a1a2 100644 --- a/message/amd/src/message_drawer.js +++ b/message/amd/src/message_drawer.js @@ -70,21 +70,24 @@ function( /** * Get elements for route. * + * @param {String} namespace Unique identifier for the Routes * @param {Object} root The message drawer container. * @param {string} selector The route container. * * @return {array} elements Found route container objects. */ - var getElementsForRoute = function(root, selector) { + var getParametersForRoute = function(namespace, root, selector) { var candidates = root.children(); var header = candidates.filter(SELECTORS.HEADER_CONTAINER).find(selector); var body = candidates.filter(SELECTORS.BODY_CONTAINER).find(selector); var footer = candidates.filter(SELECTORS.FOOTER_CONTAINER).find(selector); - var elements = [header, body, footer].filter(function(element) { - return element.length; - }); - return elements; + return [ + namespace, + header.length ? header : null, + body.length ? body : null, + footer.length ? footer : null + ]; }; var routes = [ @@ -94,28 +97,30 @@ function( [Routes.VIEW_GROUP_INFO, SELECTORS.VIEW_GROUP_INFO, ViewGroupInfo.show, ViewGroupInfo.description], [Routes.VIEW_OVERVIEW, SELECTORS.VIEW_OVERVIEW, ViewOverview.show, ViewOverview.description], [Routes.VIEW_SEARCH, SELECTORS.VIEW_SEARCH, ViewSearch.show, ViewSearch.description], - [Routes.VIEW_SETTINGS, SELECTORS.VIEW_SETTINGS, ViewSettings.show, ViewSettings.description], + [Routes.VIEW_SETTINGS, SELECTORS.VIEW_SETTINGS, ViewSettings.show, ViewSettings.description] ]; /** * Create routes. * + * @param {String} namespace Unique identifier for the Routes * @param {Object} root The message drawer container. */ - var createRoutes = function(root) { + var createRoutes = function(namespace, root) { routes.forEach(function(route) { - Router.add(route[0], getElementsForRoute(root, route[1]), route[2], route[3]); + Router.add(namespace, route[0], getParametersForRoute(namespace, root, route[1]), route[2], route[3]); }); }; /** * Show the message drawer. * + * @param {string} namespace The route namespace. * @param {Object} root The message drawer container. */ - var show = function(root) { + var show = function(namespace, root) { if (!root.attr('data-shown')) { - Router.go(Routes.VIEW_OVERVIEW); + Router.go(namespace, Routes.VIEW_OVERVIEW); root.attr('data-shown', true); } @@ -148,9 +153,10 @@ function( /** * Listen to and handle events for routing, showing and hiding the message drawer. * + * @param {string} namespace The route namespace. * @param {Object} root The message drawer container. */ - var registerEventListeners = function(root) { + var registerEventListeners = function(namespace, root) { CustomEvents.define(root, [CustomEvents.events.activate]); var paramRegex = /^data-route-param-?(\d*)$/; @@ -186,7 +192,7 @@ function( var params = paramAttributes.map(function(attribute) { return attribute.nodeValue; }); - var routeParams = [route].concat(params); + var routeParams = [namespace, route].concat(params); Router.go.apply(null, routeParams); @@ -194,13 +200,13 @@ function( }); root.on(CustomEvents.events.activate, SELECTORS.ROUTES_BACK, function(e, data) { - Router.back(); + Router.back(namespace); data.originalEvent.preventDefault(); }); PubSub.subscribe(Events.SHOW, function() { - show(root); + show(namespace, root); }); PubSub.subscribe(Events.HIDE, function() { @@ -211,23 +217,23 @@ function( if (isVisible(root)) { hide(root); } else { - show(root); + show(namespace, root); } }); PubSub.subscribe(Events.SHOW_CONVERSATION, function(conversationId) { - show(root); - Router.go(Routes.VIEW_CONVERSATION, conversationId); + show(namespace, root); + Router.go(namespace, Routes.VIEW_CONVERSATION, conversationId); }); PubSub.subscribe(Events.CREATE_CONVERSATION_WITH_USER, function(userId) { - show(root); - Router.go(Routes.VIEW_CONVERSATION, null, 'create', userId); + show(namespace, root); + Router.go(namespace, Routes.VIEW_CONVERSATION, null, 'create', userId); }); PubSub.subscribe(Events.SHOW_SETTINGS, function() { - show(root); - Router.go(Routes.VIEW_SETTINGS); + show(namespace, root); + Router.go(namespace, Routes.VIEW_SETTINGS); }); PubSub.subscribe(Events.PREFERENCES_UPDATED, function(preferences) { @@ -247,11 +253,12 @@ function( * Initialise the message drawer. * * @param {Object} root The message drawer container. + * @param {String} uniqueId Unique identifier for the Routes */ - var init = function(root) { + var init = function(root, uniqueId) { root = $(root); - createRoutes(root); - registerEventListeners(root); + createRoutes(uniqueId, root); + registerEventListeners(uniqueId, root); }; return { diff --git a/message/amd/src/message_drawer_router.js b/message/amd/src/message_drawer_router.js index a6be5abfd7c..5134ee6d037 100644 --- a/message/amd/src/message_drawer_router.js +++ b/message/amd/src/message_drawer_router.js @@ -41,8 +41,8 @@ function( /* @var {object} routes Message drawer route elements and callbacks. */ var routes = {}; - /* @var {array} history Store for route objects history. */ - var history = []; + /* @var {object} history Store for route objects history. */ + var history = {}; var SELECTORS = { CAN_RECEIVE_FOCUS: 'input:not([type="hidden"]), a[href], button, textarea, select, [tabindex]', @@ -52,40 +52,52 @@ function( /** * Add a route. * + * @param {String} namespace Unique identifier for the Routes * @param {string} route Route config name. - * @param {array} elements Route container objects. + * @param {array} parameters Route parameters. * @param {callback} onGo Route initialization function. * @param {callback} getDescription Route initialization function. */ - var add = function(route, elements, onGo, getDescription) { - routes[route] = { - elements: elements, - onGo: onGo, - getDescription: getDescription - }; + var add = function(namespace, route, parameters, onGo, getDescription) { + if (!routes[namespace]) { + routes[namespace] = []; + } + + routes[namespace][route] = + { + parameters: parameters, + onGo: onGo, + getDescription: getDescription + }; }; /** * Go to a defined route and run the route callbacks. * + * @param {String} namespace Unique identifier for the Routes * @param {string} newRoute Route config name. * @return {object} record Current route record with route config name and parameters. */ - var changeRoute = function(newRoute) { + var changeRoute = function(namespace, newRoute) { var newConfig; // Get the rest of the arguments, if any. - var args = [].slice.call(arguments, 1); + var args = [].slice.call(arguments, 2); var renderPromise = $.Deferred().resolve().promise(); - Object.keys(routes).forEach(function(route) { - var config = routes[route]; + Object.keys(routes[namespace]).forEach(function(route) { + var config = routes[namespace][route]; var isMatch = route === newRoute; if (isMatch) { newConfig = config; } - config.elements.forEach(function(element) { + config.parameters.forEach(function(element) { + // Some parameters may be null, or not an element. + if (typeof element !== 'object' || element === null) { + return; + } + element.removeClass('previous'); if (isMatch) { @@ -100,12 +112,23 @@ function( if (newConfig) { if (newConfig.onGo) { - renderPromise = newConfig.onGo.apply(undefined, newConfig.elements.concat(args)); + renderPromise = newConfig.onGo.apply(undefined, newConfig.parameters.concat(args)); var currentFocusElement = $(document.activeElement); var hasFocus = false; + var firstFocusable = null; - for (var i = 0; i < newConfig.elements.length; i++) { - var element = newConfig.elements[i]; + // No need to start at 0 as we know that is the namespace. + for (var i = 1; i < newConfig.parameters.length; i++) { + var element = newConfig.parameters[i]; + + // Some parameters may be null, or not an element. + if (typeof element !== 'object' || element === null) { + continue; + } + + if (!firstFocusable) { + firstFocusable = element; + } if (element.has(currentFocusElement).length) { hasFocus = true; @@ -116,7 +139,7 @@ function( if (!hasFocus) { // This page doesn't have focus yet so focus the first focusable // element in the new view. - newConfig.elements[0].find(SELECTORS.CAN_RECEIVE_FOCUS).filter(':visible').first().focus(); + firstFocusable.find(SELECTORS.CAN_RECEIVE_FOCUS).filter(':visible').first().focus(); } } } @@ -135,18 +158,23 @@ function( /** * Go to a defined route and store the route history. * - * @param {string} newRoute Route config name. + * @param {String} namespace Unique identifier for the Routes * @return {object} record Current route record with route config name and parameters. */ - var go = function() { + var go = function(namespace) { var currentFocusElement = $(document.activeElement); var record = changeRoute.apply(null, arguments); var inHistory = false; + + if (!history[namespace]) { + history[namespace] = []; + } + // History stores a unique list of routes. Check to see if the new route // is already in the history, if it is then forget all history after it. // This ensures there are no duplicate routes in history and that it represents - // a linear path of routes (it never stores something like [foo, bar, foo])/ - history = history.reduce(function(carry, previous) { + // a linear path of routes (it never stores something like [foo, bar, foo])). + history[namespace] = history[namespace].reduce(function(carry, previous) { if (previous.route === record.route) { inHistory = true; } @@ -158,20 +186,29 @@ function( return carry; }, []); - var previousRecord = history.length ? history[history.length - 1] : null; + var historylength = history[namespace].length; + var previousRecord = historylength ? history[namespace][historylength - 1] : null; if (previousRecord) { - var prevConfig = routes[previousRecord.route]; - prevConfig.elements.forEach(function(element) { - element.addClass('previous'); - }); + var prevConfig = routes[namespace][previousRecord.route]; + var elements = prevConfig.parameters; + + // The first one will be the namespace, skip it. + for (var i = 1; i < elements.length; i++) { + // Some parameters may be null, or not an element. + if (typeof elements[i] !== 'object' || elements[i] === null) { + continue; + } + + elements[i].addClass('previous'); + } previousRecord.focusElement = currentFocusElement; if (prevConfig.getDescription) { // If the route has a description then set it on the back button for // the new page we're displaying. - prevConfig.getDescription.apply(null, prevConfig.elements.concat(previousRecord.params)) + prevConfig.getDescription.apply(null, prevConfig.parameters.concat(previousRecord.params)) .then(function(description) { return Str.get_string('backto', 'core_message', description); }) @@ -180,12 +217,15 @@ function( // that the back button is visible. return record.renderPromise.then(function() { // Find the elements for the new route we displayed. - routes[record.route].elements.forEach(function(element) { + routes[namespace][record.route].parameters.forEach(function(element) { + // Some parameters may be null, or not an element. + if (typeof element !== 'object' || !element) { + return; + } + // Update the aria label for the back button. element.find(SELECTORS.ROUTES_BACK).attr('aria-label', label); }); - - return; }); }) .catch(function() { @@ -193,23 +233,24 @@ function( }); } } - - history.push(record); + history[namespace].push(record); return record; }; /** * Go back to the previous route record stored in history. + * + * @param {String} namespace Unique identifier for the Routes */ - var back = function() { - if (history.length) { + var back = function(namespace) { + if (history[namespace].length) { // Remove the current route. - history.pop(); - var previous = history.pop(); + history[namespace].pop(); + var previous = history[namespace].pop(); if (previous) { // If we have a previous route then show it. - go.apply(undefined, [previous.route].concat(previous.params)); + go.apply(undefined, [namespace, previous.route].concat(previous.params)); // Delay the focus 50 milliseconds otherwise it doesn't correctly // focus the element for some reason... window.setTimeout(function() { diff --git a/message/amd/src/message_drawer_view_contact.js b/message/amd/src/message_drawer_view_contact.js index ffae0dfe71d..141c56a34be 100644 --- a/message/amd/src/message_drawer_view_contact.js +++ b/message/amd/src/message_drawer_view_contact.js @@ -68,12 +68,15 @@ function( /** * Setup the contact page. * - * @param {Object} root Contact container element. + * @param {string} namespace The route namespace. + * @param {Object} header Contact header element. + * @param {Object} body Contact body container element. + * @param {Object} footer Contact footer container element. * @param {Object} contact The contact object. * @returns {Object} jQuery promise */ - var show = function(root, contact) { - root = $(root); + var show = function(namespace, header, body, footer, contact) { + var root = $(body); getContentContainer(root).empty(); return render(root, contact); diff --git a/message/amd/src/message_drawer_view_contacts.js b/message/amd/src/message_drawer_view_contacts.js index b3821ab5bd7..f64898a6ae5 100644 --- a/message/amd/src/message_drawer_view_contacts.js +++ b/message/amd/src/message_drawer_view_contacts.js @@ -123,11 +123,12 @@ function( /** * Setup the contact page. * + * @param {string} namespace The route namespace. * @param {Object} header Contacts header container element. * @param {Object} body Contacts body container element. * @return {Object} jQuery promise */ - var show = function(header, body) { + var show = function(namespace, header, body) { body = $(body); if (!body.attr('data-contacts-init')) { diff --git a/message/amd/src/message_drawer_view_conversation.js b/message/amd/src/message_drawer_view_conversation.js index 9c99ebabbf6..3ed06177e9c 100644 --- a/message/amd/src/message_drawer_view_conversation.js +++ b/message/amd/src/message_drawer_view_conversation.js @@ -1154,14 +1154,16 @@ function( /** * Show the view contact page. * - * @param {Object} e Element this event handler is called on. - * @param {Object} data Data for this event. + * @param {String} namespace Unique identifier for the Routes + * @return {Function} View contact handler. */ - var handleViewContact = function(e, data) { - var otherUserId = getOtherUserId(); - var otherUser = viewState.members[otherUserId]; - MessageDrawerRouter.go(MessageDrawerRoutes.VIEW_CONTACT, otherUser); - data.originalEvent.preventDefault(); + var generateHandleViewContact = function(namespace) { + return function(e, data) { + var otherUserId = getOtherUserId(); + var otherUser = viewState.members[otherUserId]; + MessageDrawerRouter.go(namespace, MessageDrawerRoutes.VIEW_CONTACT, otherUser); + data.originalEvent.preventDefault(); + }; }; /** @@ -1187,68 +1189,71 @@ function( }; /** - * Show the view contact page. + * Show the view group info page. * - * @param {Object} e Element this event handler is called on. - * @param {Object} data Data for this event. + * @param {String} namespace Unique identifier for the Routes + * @return {Function} View group info handler. */ - var handleViewGroupInfo = function(e, data) { - MessageDrawerRouter.go( - MessageDrawerRoutes.VIEW_GROUP_INFO, - { - id: viewState.id, - name: viewState.name, - subname: viewState.subname, - imageUrl: viewState.imageUrl, - totalMemberCount: viewState.totalMemberCount - }, - viewState.loggedInUserId - ); - data.originalEvent.preventDefault(); + var generateHandleViewGroupInfo = function(namespace) { + return function(e, data) { + MessageDrawerRouter.go( + namespace, + MessageDrawerRoutes.VIEW_GROUP_INFO, + { + id: viewState.id, + name: viewState.name, + subname: viewState.subname, + imageUrl: viewState.imageUrl, + totalMemberCount: viewState.totalMemberCount + }, + viewState.loggedInUserId + ); + data.originalEvent.preventDefault(); + }; }; - var headerActivateHandlers = [ - [SELECTORS.ACTION_REQUEST_BLOCK, generateConfirmActionHandler(requestBlockUser)], - [SELECTORS.ACTION_REQUEST_UNBLOCK, generateConfirmActionHandler(requestUnblockUser)], - [SELECTORS.ACTION_REQUEST_ADD_CONTACT, generateConfirmActionHandler(requestAddContact)], - [SELECTORS.ACTION_REQUEST_REMOVE_CONTACT, generateConfirmActionHandler(requestRemoveContact)], - [SELECTORS.ACTION_REQUEST_DELETE_CONVERSATION, generateConfirmActionHandler(requestDeleteConversation)], - [SELECTORS.ACTION_CANCEL_EDIT_MODE, handleCancelEditMode], - [SELECTORS.ACTION_VIEW_CONTACT, handleViewContact], - [SELECTORS.ACTION_VIEW_GROUP_INFO, handleViewGroupInfo], - [SELECTORS.ACTION_CONFIRM_FAVOURITE, handleSetFavourite], - [SELECTORS.ACTION_CONFIRM_UNFAVOURITE, handleUnsetFavourite], - ]; - var bodyActivateHandlers = [ - [SELECTORS.ACTION_CANCEL_CONFIRM, generateConfirmActionHandler(cancelRequest)], - [SELECTORS.ACTION_CONFIRM_BLOCK, generateConfirmActionHandler(blockUser)], - [SELECTORS.ACTION_CONFIRM_UNBLOCK, generateConfirmActionHandler(unblockUser)], - [SELECTORS.ACTION_CONFIRM_ADD_CONTACT, generateConfirmActionHandler(addContact)], - [SELECTORS.ACTION_CONFIRM_REMOVE_CONTACT, generateConfirmActionHandler(removeContact)], - [SELECTORS.ACTION_CONFIRM_DELETE_SELECTED_MESSAGES, generateConfirmActionHandler(deleteSelectedMessages)], - [SELECTORS.ACTION_CONFIRM_DELETE_CONVERSATION, generateConfirmActionHandler(deleteConversation)], - [SELECTORS.ACTION_REQUEST_ADD_CONTACT, generateConfirmActionHandler(requestAddContact)], - [SELECTORS.ACTION_ACCEPT_CONTACT_REQUEST, generateConfirmActionHandler(acceptContactRequest)], - [SELECTORS.ACTION_DECLINE_CONTACT_REQUEST, generateConfirmActionHandler(declineContactRequest)], - [SELECTORS.MESSAGE, handleSelectMessage] - ]; - var footerActivateHandlers = [ - [SELECTORS.SEND_MESSAGE_BUTTON, handleSendMessage], - [SELECTORS.ACTION_REQUEST_DELETE_SELECTED_MESSAGES, generateConfirmActionHandler(requestDeleteSelectedMessages)], - [SELECTORS.ACTION_REQUEST_ADD_CONTACT, generateConfirmActionHandler(requestAddContact)], - [SELECTORS.ACTION_REQUEST_UNBLOCK, generateConfirmActionHandler(requestUnblockUser)], - ]; - /** * Listen to, and handle events for conversations. * + * @param {string} namespace The route namespace. * @param {Object} header Conversation header container element. * @param {Object} body Conversation body container element. * @param {Object} footer Conversation footer container element. */ - var registerEventListeners = function(header, body, footer) { + var registerEventListeners = function(namespace, header, body, footer) { var isLoadingMoreMessages = false; var messagesContainer = getMessagesContainer(body); + var headerActivateHandlers = [ + [SELECTORS.ACTION_REQUEST_BLOCK, generateConfirmActionHandler(requestBlockUser)], + [SELECTORS.ACTION_REQUEST_UNBLOCK, generateConfirmActionHandler(requestUnblockUser)], + [SELECTORS.ACTION_REQUEST_ADD_CONTACT, generateConfirmActionHandler(requestAddContact)], + [SELECTORS.ACTION_REQUEST_REMOVE_CONTACT, generateConfirmActionHandler(requestRemoveContact)], + [SELECTORS.ACTION_REQUEST_DELETE_CONVERSATION, generateConfirmActionHandler(requestDeleteConversation)], + [SELECTORS.ACTION_CANCEL_EDIT_MODE, handleCancelEditMode], + [SELECTORS.ACTION_VIEW_CONTACT, generateHandleViewContact(namespace)], + [SELECTORS.ACTION_VIEW_GROUP_INFO, generateHandleViewGroupInfo(namespace)], + [SELECTORS.ACTION_CONFIRM_FAVOURITE, handleSetFavourite], + [SELECTORS.ACTION_CONFIRM_UNFAVOURITE, handleUnsetFavourite], + ]; + var bodyActivateHandlers = [ + [SELECTORS.ACTION_CANCEL_CONFIRM, generateConfirmActionHandler(cancelRequest)], + [SELECTORS.ACTION_CONFIRM_BLOCK, generateConfirmActionHandler(blockUser)], + [SELECTORS.ACTION_CONFIRM_UNBLOCK, generateConfirmActionHandler(unblockUser)], + [SELECTORS.ACTION_CONFIRM_ADD_CONTACT, generateConfirmActionHandler(addContact)], + [SELECTORS.ACTION_CONFIRM_REMOVE_CONTACT, generateConfirmActionHandler(removeContact)], + [SELECTORS.ACTION_CONFIRM_DELETE_SELECTED_MESSAGES, generateConfirmActionHandler(deleteSelectedMessages)], + [SELECTORS.ACTION_CONFIRM_DELETE_CONVERSATION, generateConfirmActionHandler(deleteConversation)], + [SELECTORS.ACTION_REQUEST_ADD_CONTACT, generateConfirmActionHandler(requestAddContact)], + [SELECTORS.ACTION_ACCEPT_CONTACT_REQUEST, generateConfirmActionHandler(acceptContactRequest)], + [SELECTORS.ACTION_DECLINE_CONTACT_REQUEST, generateConfirmActionHandler(declineContactRequest)], + [SELECTORS.MESSAGE, handleSelectMessage] + ]; + var footerActivateHandlers = [ + [SELECTORS.SEND_MESSAGE_BUTTON, handleSendMessage], + [SELECTORS.ACTION_REQUEST_DELETE_SELECTED_MESSAGES, generateConfirmActionHandler(requestDeleteSelectedMessages)], + [SELECTORS.ACTION_REQUEST_ADD_CONTACT, generateConfirmActionHandler(requestAddContact)], + [SELECTORS.ACTION_REQUEST_UNBLOCK, generateConfirmActionHandler(requestUnblockUser)], + ]; AutoRows.init(footer); @@ -1503,6 +1508,7 @@ function( * 2.) A conversation id with no action or other user id (e.g. from the contacts page) * 3.) No conversation/id with an action and other other user id. (e.g. from contact page) * + * @param {string} namespace The route namespace. * @param {Object} header Conversation header container element. * @param {Object} body Conversation body container element. * @param {Object} footer Conversation footer container element. @@ -1511,7 +1517,7 @@ function( * @param {Number} otherUserId The other user id for a private conversation * @return {Object} jQuery promise */ - var show = function(header, body, footer, conversationOrId, action, otherUserId) { + var show = function(namespace, header, body, footer, conversationOrId, action, otherUserId) { var conversation = null; var conversationId = null; @@ -1535,7 +1541,7 @@ function( // Generate the render function to bind the header, body, and footer // elements to it so that we don't need to pass them around this module. render = generateRenderFunction(header, body, footer); - registerEventListeners(header, body, footer); + registerEventListeners(namespace, header, body, footer); body.attr('data-init', true); } diff --git a/message/amd/src/message_drawer_view_group_info.js b/message/amd/src/message_drawer_view_group_info.js index a9e721a9eda..3fd9215a7a8 100644 --- a/message/amd/src/message_drawer_view_group_info.js +++ b/message/amd/src/message_drawer_view_group_info.js @@ -134,13 +134,16 @@ function( /** * Setup the contact page. * - * @param {Object} root Contact container element. + * @param {string} namespace The route namespace. + * @param {Object} header Contact header container element. + * @param {Object} body Contact body container element. + * @param {Object} footer Contact body container element. * @param {Number} conversation The conversation * @param {Number} loggedInUserId The logged in user id * @return {Object} jQuery promise */ - var show = function(root, conversation, loggedInUserId) { - root = $(root); + var show = function(namespace, header, body, footer, conversation, loggedInUserId) { + var root = $(body); getContentContainer(root).empty(); return render(root, conversation, loggedInUserId) diff --git a/message/amd/src/message_drawer_view_overview.js b/message/amd/src/message_drawer_view_overview.js index e214fca1308..74f4d71d4d6 100644 --- a/message/amd/src/message_drawer_view_overview.js +++ b/message/amd/src/message_drawer_view_overview.js @@ -186,18 +186,19 @@ function( /** * Listen to, and handle event in the overview header. * + * @param {String} namespace Unique identifier for the Routes * @param {Object} header Conversation header container element. */ - var registerEventListeners = function(header) { + var registerEventListeners = function(namespace, header) { var searchInput = getSearchInput(header); var ignoredKeys = [KeyCodes.tab, KeyCodes.shift, KeyCodes.ctrl, KeyCodes.alt]; searchInput.on('click', function() { - Router.go(Routes.VIEW_SEARCH); + Router.go(namespace, Routes.VIEW_SEARCH); }); searchInput.on('keydown', function(e) { if (ignoredKeys.indexOf(e.keyCode) < 0 && e.key != 'Meta') { - Router.go(Routes.VIEW_SEARCH); + Router.go(namespace, Routes.VIEW_SEARCH); } }); @@ -208,13 +209,14 @@ function( /** * Setup the overview page. * + * @param {String} namespace Unique identifier for the Routes * @param {Object} header Overview header container element. * @param {Object} body Overview body container element. * @return {Object} jQuery promise */ - var show = function(header, body) { + var show = function(namespace, header, body) { if (!header.attr('data-init')) { - registerEventListeners(header); + registerEventListeners(namespace, header); header.attr('data-init', true); } @@ -242,7 +244,8 @@ function( return filterCountsByType(result.unread, sectionType); }); - Section.show(sectionRoot, sectionType, includeFavourites, totalCountPromise, unreadCountPromise); + Section.show(namespace, null, sectionRoot, null, sectionType, includeFavourites, + totalCountPromise, unreadCountPromise); }); return allCounts.then(function(result) { diff --git a/message/amd/src/message_drawer_view_overview_section.js b/message/amd/src/message_drawer_view_overview_section.js index 45e5f767ccd..8e39af3f7fe 100644 --- a/message/amd/src/message_drawer_view_overview_section.js +++ b/message/amd/src/message_drawer_view_overview_section.js @@ -212,7 +212,7 @@ function( * Build the callback to load conversations. * * @param {Number} type The conversation type. - * @param {Bool} includeFavourites Include/exclude favourites. + * @param {bool} includeFavourites Include/exclude favourites. * @param {Number} offset Result offset * @return {Function} */ @@ -483,12 +483,13 @@ function( /** * Listen to, and handle events in this section. * + * @param {String} namespace Unique identifier for the Routes * @param {Object} root The section container element. * @param {Function} loadCallback The callback to load items. * @param {Number} type The conversation type for this section - * @param {Bool} includeFavourites If this section includes favourites + * @param {bool} includeFavourites If this section includes favourites */ - var registerEventListeners = function(root, loadCallback, type, includeFavourites) { + var registerEventListeners = function(namespace, root, loadCallback, type, includeFavourites) { var listRoot = LazyLoadList.getRoot(root); // Set the minimum height of the section to the height of the toggle. This @@ -586,7 +587,7 @@ function( var conversationElement = $(e.target).closest(SELECTORS.CONVERSATION); var conversationId = conversationElement.attr('data-conversation-id'); var conversation = loadedConversationsById[conversationId]; - MessageDrawerRouter.go(MessageDrawerRoutes.VIEW_CONVERSATION, conversation); + MessageDrawerRouter.go(namespace, MessageDrawerRoutes.VIEW_CONVERSATION, conversation); data.originalEvent.preventDefault(); }); @@ -595,18 +596,21 @@ function( /** * Setup the section. * - * @param {Object} root The section container element. + * @param {String} namespace Unique identifier for the Routes + * @param {Object} header The header container element. + * @param {Object} body The section container element. + * @param {Object} footer The footer container element. * @param {Number} type The conversation type for this section - * @param {Bool} includeFavourites If this section includes favourites + * @param {bool} includeFavourites If this section includes favourites * @param {Object} totalCountPromise Resolves wth the total conversations count * @param {Object} unreadCountPromise Resolves wth the unread conversations count */ - var show = function(root, type, includeFavourites, totalCountPromise, unreadCountPromise) { - root = $(root); + var show = function(namespace, header, body, footer, type, includeFavourites, totalCountPromise, unreadCountPromise) { + var root = $(body); if (!root.attr('data-init')) { var loadCallback = getLoadCallback(type, includeFavourites, 0); - registerEventListeners(root, loadCallback, type, includeFavourites); + registerEventListeners(namespace, root, loadCallback, type, includeFavourites); if (isVisible(root)) { setExpanded(root); diff --git a/message/amd/src/message_drawer_view_search.js b/message/amd/src/message_drawer_view_search.js index 8293d66443e..8db0aa77f0e 100644 --- a/message/amd/src/message_drawer_view_search.js +++ b/message/amd/src/message_drawer_view_search.js @@ -935,11 +935,12 @@ function( /** * Setup the search page. * + * @param {string} namespace The route namespace. * @param {Object} header Contacts header container element. * @param {Object} body Contacts body container element. * @return {Object} jQuery promise */ - var show = function(header, body) { + var show = function(namespace, header, body) { if (!body.attr('data-init')) { registerEventListeners(header, body); body.attr('data-init', true); diff --git a/message/amd/src/message_drawer_view_settings.js b/message/amd/src/message_drawer_view_settings.js index 8146bbd3696..6abe7ef938c 100644 --- a/message/amd/src/message_drawer_view_settings.js +++ b/message/amd/src/message_drawer_view_settings.js @@ -264,12 +264,14 @@ function( * Initialise the settings page by adding event listeners to * the checkboxes. * + * @param {string} namespace The route namespace. * @param {Object} header The settings header element. * @param {Object} body The settings body element. + * @param {Object} footer The footer body element. * @param {Number} loggedInUserId The logged in user id. * @return {Object} jQuery promise */ - var show = function(header, body, loggedInUserId) { + var show = function(namespace, header, body, footer, loggedInUserId) { if (!body.attr('data-init')) { init(body, loggedInUserId); body.attr('data-init', true); diff --git a/message/templates/message_drawer.mustache b/message/templates/message_drawer.mustache index a75d721a3fe..51036da0fc6 100644 --- a/message/templates/message_drawer.mustache +++ b/message/templates/message_drawer.mustache @@ -65,6 +65,6 @@ {{#js}} require(['jquery', 'core_message/message_drawer'], function($, MessageDrawer) { var root = $('#message-drawer-{{uniqid}}'); - MessageDrawer.init(root); + MessageDrawer.init(root, '{{uniqid}}'); }); {{/js}} diff --git a/theme/bootstrapbase/templates/core_message/message_drawer.mustache b/theme/bootstrapbase/templates/core_message/message_drawer.mustache index f2b5168dfb4..7eca4604fe9 100644 --- a/theme/bootstrapbase/templates/core_message/message_drawer.mustache +++ b/theme/bootstrapbase/templates/core_message/message_drawer.mustache @@ -85,7 +85,7 @@ function( ) { var root = $('#message-drawer-{{uniqid}}'); - MessageDrawer.init(root); + MessageDrawer.init(root, '{{uniqid}}'); var toggle = $('#message-drawer-close-{{uniqid}}'); Popover.init(toggle);