Change the conversation logic to render using a buffer so that we can
immediately save state. The render patches are based on the state so
the UI will always reach eventual consistency with the state since the
patches are processed in order.
* When a new last message we need to reorder the messages within the
message list. Call render for this.
* Standardize the cached items
* Delete cached entries on clear
Add aria-label to the unread message and notification icons.
Add aria-label to the total conversations, unread conversations
and unread messages in the overview.
Add aria-label to the pending contact requests in the overview
and also in the contacts tab.
Add aria-hidden to the last message date.
Passing the last message (which can virtually contain any character) as
a parameter for the {{#str}} mustache helper can break the JSON parsing
which eventually leads to the breakage of the messaging UI.
So for simplicity, revert the addition of the 'conversationlastmessage'
language string and render the sender and the last message as separate
elements.
Changed the settings page in the message drawer to display all message
notification processors (e.g. email, mobile, jabber) for the user to
configure based on which processors are enabled on the site.
* 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
* Fix bug for newly created conversations being added to overview page
* Fixed bug with use enter to send preference not updating correctly
* Fix unit tests
* Fix race condition loading new messages while conversation resetting
* Fix ordering and rendering of messages with same timestamp
* Fix missing privacy info in get_conversation web service
* Fix linting errors
* Improve bulk message rendering
* Added missing icon mappings for font-awesome
* Fixed focus on dialogue button when it opens
* Fixed UI updates on user block / unblock
* Fix jQuery syntax error when sending message with quotes
* Fix message/index.php opening drawer when no conversation found
* Fix placeholders rendered for new requests
* Fix navigation from view_contact to view_conversation on an action
such as blocking
* Fix default open message section on overview page depending on which
section has conversations
* Fix message/index.php for users who haven't yet started a
conversation
Add new messaging profile preferences to allow users to choose who
can message them:
- By default, users can select between 'My contacts only' and 'My
contacts and anyone in my courses'
- When $CFG->messagingallusers is enabled, a new option is displayed
also: 'Anyone on the site'. For users who have selected this option,
if $CFG->messagingallusers is disabled, the behaviour will be changed
to 'My contacts and anyone in my courses'
Previously there were a few issues with the code
* We were capturing a promise without then then .then() that came after
it, so our promise wouldn't always be completely resolved by the time
then next piece of code was operating on it
* We weren't catching all errors with .catch()