From d3d95d5dc2a8fa4895cf432109b52e58848911dc Mon Sep 17 00:00:00 2001 From: Ryan Wyllie Date: Fri, 16 Nov 2018 14:10:10 +0800 Subject: [PATCH] MDL-63303 message: fix bugs in message drawer part 4 * Add clarification to delete messages lang strings * Stop message polling when sending a message to fix UI bug * Publish update last message event when polling finds more messages * Remove logged in user from group conversation participants list * Use user object to fetch user preferences to reduce DB calls * Remove animated slide transitions because the browser breaks when showing some conversations --- lang/en/message.php | 5 ++- .../message_drawer_view_conversation.min.js | 2 +- .../message_drawer_view_group_info.min.js | 2 +- .../src/message_drawer_view_conversation.js | 11 +++++- .../amd/src/message_drawer_view_group_info.js | 5 ++- message/classes/api.php | 9 ++++- message/lib.php | 8 ++-- ...awer_view_group_info_body_content.mustache | 2 +- theme/boost/scss/moodle/message.scss | 36 ----------------- theme/boost/style/moodle.css | 30 +------------- theme/bootstrapbase/less/moodle/message.less | 36 ----------------- theme/bootstrapbase/style/moodle.css | 39 ------------------- 12 files changed, 32 insertions(+), 153 deletions(-) diff --git a/lang/en/message.php b/lang/en/message.php index 77a748ee70a1e..af530f7190027 100644 --- a/lang/en/message.php +++ b/lang/en/message.php @@ -49,11 +49,11 @@ $string['decline'] = 'Decline'; $string['defaultmessageoutputs'] = 'Default message outputs'; $string['defaults'] = 'Defaults'; -$string['deleteallconfirm'] = "Are you sure you would like to delete this entire conversation?"; +$string['deleteallconfirm'] = "Are you sure you would like to delete this entire conversation? This will not delete it for other conversation participants."; $string['deleteallmessages'] = "Delete all messages"; $string['deleteconversation'] = "Delete conversation"; $string['deleteselectedmessages'] = 'Delete selected messages'; -$string['deleteselectedmessagesconfirm'] = 'Are you sure you would like to delete the selected messages?'; +$string['deleteselectedmessagesconfirm'] = 'Are you sure you would like to delete the selected messages? This will not delete them for other conversation participants.'; $string['disableall'] = 'Disable notifications'; $string['disabled'] = 'Messaging is disabled on this site'; $string['disallowed'] = 'Disallowed'; @@ -132,6 +132,7 @@ $string['offline'] = 'Offline'; $string['on'] = 'On'; $string['online'] = 'Online'; +$string['otherparticipants'] = 'Other participants'; $string['outputdisabled'] = 'Output disabled'; $string['outputdoesnotexist'] = 'Message output does not exists'; $string['outputenabled'] = 'Output enabled'; diff --git a/message/amd/build/message_drawer_view_conversation.min.js b/message/amd/build/message_drawer_view_conversation.min.js index f10d100f52091..b8b42f3857e07 100644 --- a/message/amd/build/message_drawer_view_conversation.min.js +++ b/message/amd/build/message_drawer_view_conversation.min.js @@ -1 +1 @@ -define(["jquery","core/auto_rows","core/backoff_timer","core/custom_interaction_events","core/notification","core/pubsub","core/str","core_message/message_repository","core_message/message_drawer_events","core_message/message_drawer_view_conversation_constants","core_message/message_drawer_view_conversation_patcher","core_message/message_drawer_view_conversation_renderer","core_message/message_drawer_view_conversation_state_manager","core_message/message_drawer_router","core_message/message_drawer_routes"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p={},q=null,r=!1,s=0,t=null,u=!0,v=null,w=j.NEWEST_MESSAGES_FIRST,x=j.LOAD_MESSAGE_LIMIT,y=j.INITIAL_NEW_MESSAGE_POLL_TIMEOUT,z=j.SELECTORS,A=j.CONVERSATION_TYPES,B=function(){if(!q||q.type!=A.PRIVATE)return null;var a=q.loggedInUserId,b=Object.keys(q.members).filter(function(b){return a!=b});return b.length?b[0]:null},C=function(a){return Object.keys(p).reduce(function(b,c){if(!b){var d=p[c].state;d.type==A.PRIVATE&&a in d.members&&(b=d.id)}return b},null)},D=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:[]}},E=function(){return s},F=function(a){s=a,p[q.id].messagesOffset=a},G=function(){return r},H=function(a){r=a,p[q.id].loadedAllMessages=a},I=function(a){return a.find(z.MESSAGES_CONTAINER)},J=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},{})}},K=function(a,b){var c=a.id,d=m.setLoadingMembers(q,!0);return d=m.setLoadingMessages(d,!0),v(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),v(c).then(function(){return b})})["catch"](function(a){var b=m.setLoadingMembers(q,!1);v(b),e.exception(a)})},L=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==A.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)},M=function(a,b,c,d,f){var g=b.id,i=m.setLoadingMembers(q,!0);return i=m.setLoadingMessages(i,!0),v(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):H(!0),F(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=L(a,b.id);return d=m.setLoadingMembers(d,!1),d=m.setLoadingMessages(d,!1),v(d).then(function(){return a})}).then(function(){return Q(a)})["catch"](function(a){var b=m.setLoadingMembers(q,!1);b=m.setLoadingMessages(b,!1),v(b),e.exception(a)})},N=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=L(a,b.id);g=m.setLoadingMembers(g,!1),g=m.setLoadingMessages(g,!0);var h=a.messages.length;return v(g).then(function(){if(hb?a.messages=a.messages.slice(0,-1):H(!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),v(c).then(function(){return a})})["catch"](function(a){var b=m.setLoadingMessages(q,!1);throw v(b),a})},P=function(b,c){return function(){var d=q.messages,e=d.length?d[d.length-1]:null;if(e&&!u){for(var f=[],g=d.length-1;g>=0;g--){var h=d[g];if(h.timeCreated!==e.timeCreated)break;f.push(h.id)}return O(b,0,0,c,f,e.timeCreated).then(function(a){return a.messages.length?(t.restart(),Q(b)):a})}return a.Deferred().resolve().promise()}},Q=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),v(b)})},R=function(a){return da(a).then(function(){var b=m.addPendingBlockUsersById(q,[a]);return v(b)})},S=function(a){var b=m.setLoadingConfirmAction(q,!0);return v(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),v(c)})},T=function(a){return da(a).then(function(){var b=m.addPendingUnblockUsersById(q,[a]);return v(b)})},U=function(a){var b=m.setLoadingConfirmAction(q,!0);return v(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),v(c)})},V=function(a){return da(a).then(function(){var b=m.addPendingRemoveContactsById(q,[a]);return v(b)})},W=function(a){var b=m.setLoadingConfirmAction(q,!0);return v(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),v(c)})},X=function(a){return da(a).then(function(){var b=m.addPendingAddContactsById(q,[a]);return v(b)})},Y=function(a){var b=m.setLoadingConfirmAction(q,!0);return v(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),v(c)})},Z=function(){var a=q.loggedInUserId,b=q.id;return h.setFavouriteConversations(a,[b]).then(function(){var a=m.setIsFavourite(q,!0);return v(a)}).then(function(){return f.publish(i.CONVERSATION_SET_FAVOURITE,J(q))})},$=function(){var a=q.loggedInUserId,b=q.id;return h.unsetFavouriteConversations(a,[b]).then(function(){var a=m.setIsFavourite(q,!1);return v(a)}).then(function(){return f.publish(i.CONVERSATION_UNSET_FAVOURITE,J(q))})},_=function(a){var b=q.selectedMessageIds;return da(a).then(function(){var a=m.addPendingDeleteMessagesById(q,b);return v(a)})},aa=function(){var a=q.pendingDeleteMessageIds,b=m.setLoadingConfirmAction(q,!0);return v(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=J(b);f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,e)}else b.messages.length||f.publish(i.CONVERSATION_DELETED,b.id);return v(b)})},ba=function(a){return da(a).then(function(){var a=m.setPendingDeleteConversation(q,!0);return v(a)})},ca=function(){var a=m.setLoadingConfirmAction(q,!0);return v(a).then(function(){return h.deleteCoversation(q.loggedInUserId,B())}).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),v(a)})},da=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),v(c)},ea=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 v(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),v(b)}).then(function(){f.publish(i.CONTACT_ADDED,q.members[a]),f.publish(i.CONTACT_REQUEST_ACCEPTED,d)})},fa=function(a){var b=q.loggedInUserId,c=q.members[b].contactrequests.filter(function(b){return b.userid==a}),d=c[0],e=m.setLoadingConfirmAction(q,!0);return v(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),v(b)}).then(function(){f.publish(i.CONTACT_REQUEST_DECLINED,d)})},ga=function(a,b){var c=m.setSendingMessage(q,!0),d=null;return v(c).then(function(){if(a||q.type!=A.PRIVATE)return h.sendMessageToConversation(a,b);var c=B();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=J(b);return b.id||(b=m.setId(b,d),c.id=d,wa(d),f.publish(i.CONVERSATION_CREATED,c)),v(b).then(function(){f.publish(i.CONVERSATION_NEW_LAST_MESSAGE,c)})})["catch"](function(a){var b=m.setSendingMessage(q,!1);v(b),e.exception(a)})},ha=function(a){var b=q;return b=q.selectedMessageIds.indexOf(a)>-1?m.removeSelectedMessagesById(q,[a]):m.addSelectedMessagesById(q,[a]),v(b)},ia=function(){return da(B()).then(function(){var a=m.removeSelectedMessagesById(q,q.selectedMessageIds);return v(a)})},ja=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:E(),loadedAllMessages:G()})})}},ka=function(a){return function(b,c){q.loadingConfirmAction||a(B())["catch"](function(a){var b=m.setLoadingConfirmAction(q,!1);v(b),e.exception(a)}),c.originalEvent.preventDefault()}},la=function(b,c){var d=a(b.target),e=d.closest(z.FOOTER_CONTAINER),f=e.find(z.MESSAGE_TEXT_AREA),g=f.val().trim();""!==g&&ga(q.id,g),c.originalEvent.preventDefault()},ma=function(b,c){var d=window.getSelection(),f=a(b.target);if(""==d.toString()&&!f.is("a")){var g=f.closest(z.MESSAGE),h=parseInt(g.attr("data-message-id"),10);ha(h)["catch"](e.exception),c.originalEvent.preventDefault()}},na=function(a,b){ia()["catch"](e.exception),b.originalEvent.preventDefault()},oa=function(a,b){var c=B(),d=q.members[c];n.go(o.VIEW_CONTACT,d),b.originalEvent.preventDefault()},pa=function(a,b){Z()["catch"](e.exception),b.originalEvent.preventDefault()},qa=function(a,b){$()["catch"](e.exception),b.originalEvent.preventDefault()},ra=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()},sa=[[z.ACTION_REQUEST_BLOCK,ka(R)],[z.ACTION_REQUEST_UNBLOCK,ka(T)],[z.ACTION_REQUEST_ADD_CONTACT,ka(X)],[z.ACTION_REQUEST_REMOVE_CONTACT,ka(V)],[z.ACTION_REQUEST_DELETE_CONVERSATION,ka(ba)],[z.ACTION_CANCEL_EDIT_MODE,na],[z.ACTION_VIEW_CONTACT,oa],[z.ACTION_VIEW_GROUP_INFO,ra],[z.ACTION_CONFIRM_FAVOURITE,pa],[z.ACTION_CONFIRM_UNFAVOURITE,qa]],ta=[[z.ACTION_CANCEL_CONFIRM,ka(da)],[z.ACTION_CONFIRM_BLOCK,ka(S)],[z.ACTION_CONFIRM_UNBLOCK,ka(U)],[z.ACTION_CONFIRM_ADD_CONTACT,ka(Y)],[z.ACTION_CONFIRM_REMOVE_CONTACT,ka(W)],[z.ACTION_CONFIRM_DELETE_SELECTED_MESSAGES,ka(aa)],[z.ACTION_CONFIRM_DELETE_CONVERSATION,ka(ca)],[z.ACTION_REQUEST_ADD_CONTACT,ka(X)],[z.ACTION_ACCEPT_CONTACT_REQUEST,ka(ea)],[z.ACTION_DECLINE_CONTACT_REQUEST,ka(fa)],[z.MESSAGE,ma]],ua=[[z.SEND_MESSAGE_BUTTON,la],[z.ACTION_REQUEST_DELETE_SELECTED_MESSAGES,ka(_)],[z.ACTION_REQUEST_ADD_CONTACT,ka(X)],[z.ACTION_REQUEST_UNBLOCK,ka(T)]],va=function(a,c,g){var h=!1,j=I(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&&!G()&&c){h=!0;var d=m.setLoadingMessages(q,!0);v(d).then(function(){return O(q.id,x,E(),w,[])}).then(function(){h=!1,F(E()+x)})["catch"](function(a){h=!1,e.exception(a)})}b.originalEvent.preventDefault()}),sa.forEach(function(b){var c=b[0],e=b[1];a.on(d.events.activate,c,e)}),ta.forEach(function(a){var b=a[0],e=a[1];c.on(d.events.activate,b,e)}),ua.forEach(function(a){var b=a[0],c=a[1];g.on(d.events.activate,b,c)}),g.on(d.events.enter,z.MESSAGE_TEXT_AREA,function(a,b){var c=g.attr("data-enter-to-send");c&&"false"!=c&&"0"!=c&&la(a,b)}),f.subscribe(i.ROUTE_CHANGED,function(a){t&&a.route!=o.VIEW_CONVERSATION&&t.stop()})},wa=function(a){t&&t.stop(),t=new c(P(a,w),function(a){return a?2*a:y}),t.start()},xa=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(),v(f)},ya=function(a,b,c){return xa(a,null,b).then(function(){return h.getConversationBetweenUsers(b.id,c,!0,!0,0,0,x,0,w).then(function(c){return Aa(a,c,b)})["catch"](function(){return K(b,c)})})},za=function(a,b,c){var d=null;return b in p&&(d=p[b]),xa(a,b,c).then(function(){if(d){var a=d.state;return a=m.setLoadingMessages(a,!1),a=m.setLoadingMembers(a,!1),F(d.messagesOffset),H(d.loadedAllMessages),v(a)}return M(b,c,x,0,w)}).then(function(){return wa(b)})},Aa=function(a,b,c){var d=null;return b.id in p&&(d=p[b.id]),xa(a,b.id,c).then(function(){if(d){var a=d.state;return a=m.setLoadingMessages(a,!1),a=m.setLoadingMembers(a,!1),F(d.messagesOffset),H(d.loadedAllMessages),v(a)}return N(b,c,x,w)}).then(function(){return wa(b.id)})},Ba=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=C(h)),c.attr("data-init")||(v=ja(b,c,d),va(b,c,d),c.attr("data-init",!0));var l=!q||q.id!=k||h&&h!=B();if(l){u=!0;var m=null,n=D(c);return m=i?Aa(c,i,n,h):k?za(c,k,n,h):ya(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(wa(k),q.type==A.PRIVATE&&g){var o=B();switch(g){case"block":return R(o);case"unblock":return T(o);case"add-contact":return X(o);case"remove-contact":return V(o)}}return a.Deferred().resolve().promise()},Ca=function(){return g.get_string("messagedrawerviewconversation","core_message",q.name)};return{show:Ba,description:Ca}}); \ 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.deleteCoversation(q.loggedInUserId,C())}).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[b].contactrequests.filter(function(b){return b.userid==a}),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 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 ad2eba3aa1610..7493b9295bf16 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})}},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){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 diff --git a/message/amd/src/message_drawer_view_conversation.js b/message/amd/src/message_drawer_view_conversation.js index 4cb650e11f7f9..277cf3167426c 100644 --- a/message/amd/src/message_drawer_view_conversation.js +++ b/message/amd/src/message_drawer_view_conversation.js @@ -99,6 +99,8 @@ function( var newMessagesPollTimer = null; // If the UI is currently resetting. var isResetting = true; + // If the UI is currently sending a message. + var isSendingMessage = false; // This is the render function which will be generated when this module is // first called. See generateRenderFunction for details. var render = null; @@ -523,7 +525,7 @@ function( var messages = viewState.messages; var mostRecentMessage = messages.length ? messages[messages.length - 1] : null; - if (mostRecentMessage && !isResetting) { + if (mostRecentMessage && !isResetting && !isSendingMessage) { // There may be multiple messages with the same time created value since // the accuracy is only down to the second. The server will include these // messages in the result (since it does a >= comparison on time from) so @@ -555,6 +557,10 @@ function( // If we found some results then restart the polling timer // because the other user might be sending messages. newMessagesPollTimer.restart(); + // We've also got a new last message so publish that for other + // components to update. + var conversation = formatConversationForEvent(viewState); + PubSub.publish(MessageDrawerEvents.CONVERSATION_NEW_LAST_MESSAGE, conversation); return markConversationAsRead(conversationId); } else { return result; @@ -950,6 +956,7 @@ function( * @return {Promise} Renderer promise. */ var sendMessage = function(conversationId, text) { + isSendingMessage = true; var newState = StateManager.setSendingMessage(viewState, true); var newConversationId = null; return render(newState) @@ -983,11 +990,13 @@ function( return render(newState) .then(function() { + isSendingMessage = false; PubSub.publish(MessageDrawerEvents.CONVERSATION_NEW_LAST_MESSAGE, conversation); return; }); }) .catch(function(error) { + isSendingMessage = false; var newState = StateManager.setSendingMessage(viewState, false); render(newState); Notification.exception(error); diff --git a/message/amd/src/message_drawer_view_group_info.js b/message/amd/src/message_drawer_view_group_info.js index d14cd9bc28aa7..a9e721a9eda15 100644 --- a/message/amd/src/message_drawer_view_group_info.js +++ b/message/amd/src/message_drawer_view_group_info.js @@ -108,7 +108,10 @@ function( offset = offset + limit; - return members; + // Filter out the logged in user so that they don't appear in the list. + return members.filter(function(member) { + return member.id != userId; + }); }); }; }; diff --git a/message/classes/api.php b/message/classes/api.php index 8cd324866724b..de7e08e9edda7 100644 --- a/message/classes/api.php +++ b/message/classes/api.php @@ -1797,7 +1797,7 @@ public static function send_message_to_conversation(int $userid, int $conversati * @return int The default messaging preference. */ public static function get_user_privacy_messaging_preference(int $userid) : int { - global $CFG; + global $CFG, $USER; // When $CFG->messagingallusers is enabled, default value for the messaging preference will be "Anyone on the site"; // otherwise, the default value will be "My contacts and anyone in my courses". @@ -1806,7 +1806,12 @@ public static function get_user_privacy_messaging_preference(int $userid) : int } else { $defaultprefvalue = self::MESSAGE_PRIVACY_SITE; } - $privacypreference = get_user_preferences('message_blocknoncontacts', $defaultprefvalue, $userid); + if ($userid == $USER->id) { + $user = $USER; + } else { + $user = $userid; + } + $privacypreference = get_user_preferences('message_blocknoncontacts', $defaultprefvalue, $user); // When the $CFG->messagingallusers privacy setting is disabled, MESSAGE_PRIVACY_SITE is // also disabled, so it has to be replaced to MESSAGE_PRIVACY_COURSEMEMBER. diff --git a/message/lib.php b/message/lib.php index 87c2680d2c246..eb0dffbbd217c 100644 --- a/message/lib.php +++ b/message/lib.php @@ -859,12 +859,12 @@ function core_message_standard_after_main_region_html() { ]; } // Email settings. - $emailloggedin = get_user_preferences('message_provider_moodle_instantmessage_loggedin', 'none', $USER->id); - $emailloggedoff = get_user_preferences('message_provider_moodle_instantmessage_loggedoff', 'none', $USER->id); - $emailenabled = $emailloggedin == 'email' && $emailloggedoff == 'email'; + $emailloggedin = get_user_preferences('message_provider_moodle_instantmessage_loggedin', 'none', $USER); + $emailloggedoff = get_user_preferences('message_provider_moodle_instantmessage_loggedoff', 'none', $USER); + $emailenabled = $emailloggedin == 'email' || $emailloggedoff == 'email'; // Enter to send. - $entertosend = get_user_preferences('message_entertosend', false, $USER->id); + $entertosend = get_user_preferences('message_entertosend', false, $USER); return $renderer->render_from_template('core_message/message_drawer', [ 'contactrequestcount' => $requestcount, diff --git a/message/templates/message_drawer_view_group_info_body_content.mustache b/message/templates/message_drawer_view_group_info_body_content.mustache index 1c2bd8930cd44..1e484abd82d53 100644 --- a/message/templates/message_drawer_view_group_info_body_content.mustache +++ b/message/templates/message_drawer_view_group_info_body_content.mustache @@ -54,7 +54,7 @@

{{name}}

{{#subname}}

{{.}}

{{/subname}} -

{{#str}} participants, core_message {{/str}}

+

{{#str}} otherparticipants, core_message {{/str}}

{{< core_message/message_drawer_lazy_load_list }} {{$rootattributes}} diff --git a/theme/boost/scss/moodle/message.scss b/theme/boost/scss/moodle/message.scss index 9afd874b9b8e8..dc695527263a2 100644 --- a/theme/boost/scss/moodle/message.scss +++ b/theme/boost/scss/moodle/message.scss @@ -1225,48 +1225,12 @@ $message-drawer-width: 320px; left: 0; top: 0; bottom: 0; - opacity: 1; - @include transition(); - - &.hidden { - display: block; - left: $message-drawer-width; - right: $message-drawer-width * -1; - opacity: 0; - visibility: hidden; - - &.previous { - left: $message-drawer-width * -1; - right: $message-drawer-width; - } - } } } .footer-container { flex-shrink: 0; overflow-x: hidden; - - & > * { - max-height: 2000px; - opacity: 1; - @include transition(); - - &.hidden { - display: block; - max-height: 0; - opacity: 0; - padding: 0 !important; /* stylelint-disable-line declaration-no-important */ - border: 0 !important; /* stylelint-disable-line declaration-no-important */ - visibility: hidden; - transform: translate(#{$message-drawer-width}); - transition: all .2s ease-in-out, max-height .2s .2s ease-in-out; - - &.previous { - transform: translate(#{($message-drawer-width * -1)}); - } - } - } } .matchtext { diff --git a/theme/boost/style/moodle.css b/theme/boost/style/moodle.css index 58768bc7ca1e8..4fed1409481d9 100644 --- a/theme/boost/style/moodle.css +++ b/theme/boost/style/moodle.css @@ -14095,38 +14095,10 @@ a.ygtvspacer:hover { right: 0; left: 0; top: 0; - bottom: 0; - opacity: 1; - transition: all 0.2s ease-in-out; } - .message-drawer .body-container > *.hidden { - display: block; - left: 320px; - right: -320px; - opacity: 0; - visibility: hidden; } - .message-drawer .body-container > *.hidden.previous { - left: -320px; - right: 320px; } + bottom: 0; } .message-drawer .footer-container { flex-shrink: 0; overflow-x: hidden; } - .message-drawer .footer-container > * { - max-height: 2000px; - opacity: 1; - transition: all 0.2s ease-in-out; } - .message-drawer .footer-container > *.hidden { - display: block; - max-height: 0; - opacity: 0; - padding: 0 !important; - /* stylelint-disable-line declaration-no-important */ - border: 0 !important; - /* stylelint-disable-line declaration-no-important */ - visibility: hidden; - transform: translate(320px); - transition: all .2s ease-in-out, max-height .2s .2s ease-in-out; } - .message-drawer .footer-container > *.hidden.previous { - transform: translate(-320px); } .message-drawer .matchtext { background-color: #b5d9f9; color: #373a3c; diff --git a/theme/bootstrapbase/less/moodle/message.less b/theme/bootstrapbase/less/moodle/message.less index 961ff64403336..1e500b71d88c3 100644 --- a/theme/bootstrapbase/less/moodle/message.less +++ b/theme/bootstrapbase/less/moodle/message.less @@ -1236,48 +1236,12 @@ left: 0; top: 0; bottom: 0; - opacity: 1; - .transition(all .2s ease-in-out); - - &.hidden { - display: block; - left: @message-drawer-width; - right: @message-drawer-width * -1; - opacity: 0; - visibility: hidden; - - &.previous { - left: @message-drawer-width * -1; - right: @message-drawer-width; - } - } } } .footer-container { flex-shrink: 0; overflow-x: hidden; - - & > * { - max-height: 2000px; - opacity: 1; - .transition(all .2s ease-in-out); - - &.hidden { - display: block; - max-height: 0; - opacity: 0; - padding: 0 !important; /* stylelint-disable-line declaration-no-important */ - border: 0 !important; /* stylelint-disable-line declaration-no-important */ - visibility: hidden; - transform: translate(@message-drawer-width); - transition: all .2s ease-in-out, max-height .2s .2s ease-in-out; - - &.previous { - transform: translate(@message-drawer-width * -1); - } - } - } } .matchtext { diff --git a/theme/bootstrapbase/style/moodle.css b/theme/bootstrapbase/style/moodle.css index 2261b8a3f7243..cee585b080afa 100644 --- a/theme/bootstrapbase/style/moodle.css +++ b/theme/bootstrapbase/style/moodle.css @@ -9149,50 +9149,11 @@ a.ygtvspacer:hover { left: 0; top: 0; bottom: 0; - opacity: 1; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} -.message-drawer .body-container > *.hidden { - display: block; - left: 320px; - right: -320px; - opacity: 0; - visibility: hidden; -} -.message-drawer .body-container > *.hidden.previous { - left: -320px; - right: 320px; } .message-drawer .footer-container { flex-shrink: 0; overflow-x: hidden; } -.message-drawer .footer-container > * { - max-height: 2000px; - opacity: 1; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} -.message-drawer .footer-container > *.hidden { - display: block; - max-height: 0; - opacity: 0; - padding: 0 !important; - /* stylelint-disable-line declaration-no-important */ - border: 0 !important; - /* stylelint-disable-line declaration-no-important */ - visibility: hidden; - transform: translate(320px); - transition: all 0.2s ease-in-out, max-height 0.2s 0.2s ease-in-out; -} -.message-drawer .footer-container > *.hidden.previous { - transform: translate(-320px); -} .message-drawer .matchtext { background-color: #ade6fe; color: #333;