Commit Graph

90 Commits

Author SHA1 Message Date
Mark Nelson cd9ecbd81c MDL-62709 core_message: convert NULL format types in task 2018-06-14 13:18:46 +08:00
David M Penner 8791c50d64 MDL-62709 core_message: fix for silently ignored errors in task 2018-06-14 12:20:42 +08:00
Mark Nelson 04cd1b3f31 MDL-61919 core_message: implement privacy provider 2018-05-03 20:44:05 +08:00
Mark Nelson 78348dfc4e MDL-61255 core_message: added helper function to detect legacy messages 2018-04-10 17:28:52 +08:00
Mark Nelson 84f6a716b2 MDL-61255 core_message: migrate data from the 'message_popup' table 2018-04-10 17:26:43 +08:00
Mark Nelson 41bc5aa587 MDL-61255 core_message: created task to handle migration of data 2018-04-10 15:17:01 +08:00
Mark Nelson 5aac33c785 MDL-36941 core_message: dont query DB unnecessarily checking read status 2018-03-23 12:30:31 +08:00
Mark Nelson 99248f6177 MDL-36941 core_message: fixed minor CiBoT complaints 2018-03-23 12:30:31 +08:00
Mark Nelson e159b53b5b MDL-36941 core_message: improved performance of helper::get_messages()
Improved the query to use the 'convhash' field as well as adding an index.

Also fixed issue where 'timeread' was hardcoded as 0.
2018-03-23 12:30:30 +08:00
Mark Nelson 74ad60bfbe MDL-36941 core_message: deprecated 'api::mark_all_read_for_user' 2018-03-23 12:30:30 +08:00
Mark Nelson b2cd17e6a9 MDL-36941 core: added 'convhash' field to quickly get conversations 2018-03-23 12:30:28 +08:00
Mark Nelson 376a79c242 MDL-36941 core: added events for notifications 2018-03-23 12:30:27 +08:00
Mark Nelson 548936a6c9 MDL-36941 core_message: mark notification/messages takes stdClass
This avoid unnecessary DB calls.
2018-03-23 12:30:27 +08:00
Mark Nelson 883ce42127 MDL-36941 core: convert existing api to use new table structure
Also deprecated the following functions -

1. message_move_userfrom_unread2read - It is not necessary
   for us to mark a message as read on user deletion.
2. message_get_blocked_users - Horrible logic used to
   determine if a user is blocked via reference on some
   randomly chosen 'isblocked' variable.
3. message_get_contacts - The same as above. This can be
   done in a much nicer way.
4. message_mark_message_read - We want two functions to do
   this to avoid confusing messages and notifications.
5. message_can_delete_message - This assumed the variable
   $message contained the 'useridto' property, which
   was present in the old table structure. We do not want
   future usages where a query is done on the new table
   and is simply passed as this won't contain this property.
6. message_delete_message - Same as above.
2018-03-23 12:30:27 +08:00
sam marshall 66e3702680 MDL-55356 core_search: Change existing search areas to new API
This change considers all existing search areas in Moodle and makes
necessary changes.

Custom change to course search, supported by helper in base.php:

* course/classes/search/mycourse.php

Custom change to message search:

* message/classes/search/message_received.php
* message/classes/search/message_sent.php

Custom change to user search:

* user/classes/search/user.php

Custom changes to module areas, supported by helper in base_mod.php:

* mod/book/classes/search/chapter.php
* mod/data/classes/search/entry.php
* mod/forum/classes/search/post.php
* mod/glossary/classes/search/entry.php
* mod/survey/classes/search/activity.php
* mod/wiki/classes/search/collaborative_page.php

(Note: the unit tests do not exhaustively check every context type
for these, given that's mainly handled by the helper function
which was already tested in the base_activity test.)

Handled by block base class (no change):

* blocks/html/classes/search/content.php

Handled by activity base class (no change):

* mod/assign/classes/search/activity.php
* mod/book/classes/search/activity.php
* mod/chat/classes/search/activity.php
* mod/choice/classes/search/activity.php
* mod/data/classes/search/activity.php
* mod/feedback/classes/search/activity.php
* mod/folder/classes/search/activity.php
* mod/forum/classes/search/activity.php
* mod/glossary/classes/search/activity.php
* mod/imscp/classes/search/activity.php
* mod/label/classes/search/activity.php
* mod/lesson/classes/search/activity.php
* mod/lti/classes/search/activity.php
* mod/page/classes/search/activity.php
* mod/quiz/classes/search/activity.php
* mod/resource/classes/search/activity.php
* mod/scorm/classes/search/activity.php
* mod/url/classes/search/activity.php
* mod/wiki/classes/search/activity.php
* mod/workshop/classes/search/activity.php
2017-10-11 17:17:09 +01:00
Dan Poltawski 77d2c7b937 Merge branch 'MDL-60039_master' of git://github.com/dmonllao/moodle 2017-09-12 11:28:59 +01:00
Mark Nelson 93b47710ac MDL-59977 core: do not directly check 'viewparticipant' capability 2017-09-11 12:44:27 +08:00
David Monllao 8744db903b MDL-60039 messaging: global search index using timeread 2017-09-07 12:16:42 +02:00
Matt Porritt bc60052d83 MDL-59834 Global Search: Indexing user messages
Make indexing of user messages tolerant to user deletion.
When creating the search document for user messages,
add a check to see if the user has been deleted in the
system. If they have been deleted abort creating the search
document.
This is to avoid rasining an error when trying to get the
user context for a deleted user.
2017-09-04 09:09:48 +10:00
Neill Magill 22481f3d89 MDL-59317 message: Message page taking long time to load
The OR clause in these queries used different sets of columns to select
userid which meant that the indexes that included user id could not be
used.

This change splits the query so that each individual part can use one of
the indexes that includes a userid which speeds them up considerably.
2017-07-06 15:24:02 +01:00
Dan Poltawski 83a6b8c48c Merge branch 'MDL-58050-master-msgtrans' of git://github.com/mudrd8mz/moodle 2017-03-20 13:19:22 +00:00
David Mudrák bb2924d018 MDL-58050 message: Commit the transaction before the early return
If there was no conversation found and the method returned early, the
active transaction was not marked as committable and the error was
reported by the request shutdown handler.

Attaching a unit test for the case just because it did not seem to be
covered. I was trying to reproduce the thrown error in the unit test but
it can't be used in this case. The shutdown handler puts the warning
directly into the error_log and it is not guaranteed where such messages
go (depending on the PHP configuration). And we do not even raise it
during the unit test execution (presumably due to noise it would
produce) anyway.
2017-02-22 13:56:02 +01:00
David Mudrák 0c44da7887 MDL-58050 message: Fix the DB transaction handling
Consumer code is not supposed to call commit_delegated_transaction()
method directly, this was incorrect usage of the delegated transactions.
2017-02-22 13:42:05 +01:00
Mark Nelson f512355b31 MDL-57967 core_message: do not process conversations from deleted users 2017-02-16 13:01:06 +08:00
Ryan Wyllie c9b82e402e MDL-57370 message: improve message union sql 2017-02-09 03:39:09 +00:00
Ryan Wyllie 42e2f6c0e9 MDL-57370 message: fix duplicate ids 2017-02-08 07:40:07 +00:00
Ryan Wyllie 349f426197 MDL-57370 message: remove joins from get_conversations
I have broken up the single query that was doing multiple joins on the
messaging and user tables. It no longer does any joins and will instead
query each data set individually.

This may cost more in terms of PHP processing but it will mean that
standard database tunings should be able to handle larger data sets.

For example this function was taking a long time to run on moodle.org
and was causing the MySQL join buffer to overflow.
2017-02-07 01:04:11 +00:00
David Monllao ff8b71ef7b Merge branch 'MDL-56871_master' of git://github.com/markn86/moodle 2016-11-24 09:53:45 +08:00
Mark Nelson cb8057531f MDL-56871 core_message: fix inconsistent online status between panels 2016-11-23 16:32:46 +08:00
Ankit Agarwal 7597ab0b99 MDL-56656 messages: Proper multilang formating in messaging pages 2016-11-22 14:51:12 +05:30
Andrew Nicols d10ca75b8c Merge branch 'MDL-56407-master-2' of git://github.com/junpataleta/moodle 2016-11-22 09:06:09 +08:00
David Monllao dfe7cbe4cf Merge branch 'MDL-57036_master' of git://github.com/markn86/moodle 2016-11-21 10:51:29 +08:00
Mark Nelson f4c39cb983 MDL-57036 core_message: always show profile picture on messaging UI 2016-11-18 11:13:36 +08:00
Jun Pataleta 26dca05d02 MDL-56407 message: Indicate user is blocked in message area 2016-11-17 09:11:37 +08:00
Adrian Greeve 8151761378 MDL-56603 messaging: Add a new message link to popup.
Added a link to create a new message from the message
popup menu.
2016-11-16 14:51:17 +08:00
Mark Nelson ffd7798c96 MDL-56139 core: changes after peer review
- No longer use the Fibonacci sequence for delaying the timeout.
  It is too aggressive.
- The backoff_timer AMD module now expects the callback AND the
  backoff function to be passed to the constructor.
- Added ability to specify polling frequency in config.php.
- Added helper function to return the cache key.
- Reworded the parameters for clarity.
2016-11-16 10:22:52 +08:00
Ryan Wyllie fb1469d84f MDL-56139 message: ajax poll for new messages in message area 2016-11-16 10:22:33 +08:00
Ankit Agarwal 20ab51fdbc MDL-56409 messages: Save one db query per page load 2016-11-08 12:50:30 +05:30
Adrian Greeve f324957724 MDL-56138 messaging: Limit course search to enrolled courses. 2016-10-31 10:52:05 +08:00
Andrew Nicols ebc746dcc2 MDL-56090 message: Make key in union unique
This also fixes the unit test to use the correct indices.
2016-10-26 15:43:56 +08:00
David Monllao 055cc7d037 Merge branch 'MDL-56252-master' of git://github.com/ryanwyllie/moodle 2016-10-24 10:25:32 +08:00
Mark Nelson 1f64514def MDL-56090 core_message: added API unit tests 2016-10-21 16:22:03 +08:00
Ryan Wyllie 54d83992b4 MDL-56252 message: clean message text in message area
Remove the HTML tags from any message in the message area when updating
the last message on the contact otherwise the styling breaks and also
allows <script> tags to be added to the page.
2016-10-20 06:49:26 +00:00
Ryan Wyllie f5a174f451 MDL-56411 message: dont render message area without other user
Stop the message area header and footer from being rendered if there is
no other user being messaged, otherwise notices are generated and the
messages fail to send.
2016-10-18 02:00:09 +00:00
Ryan Wyllie 703ab16475 MDL-56411 message: new message to user renders message area
When messaging a user for the first time from the message button on
their profile page the message area should still be rendered.
2016-10-14 07:13:58 +00:00
Ryan Wyllie 7d69958e6b MDL-56292 message: move popover code into output plugin 2016-10-11 14:39:23 +08:00
Ryan Wyllie 5cdebf2d7e MDL-56292 message: simplify get_popup_notifications function 2016-10-10 12:48:51 +08:00
Ryan Wyllie dff7c82ecb MDL-56292 message: fix sql query in mark_all_read_for_user 2016-10-10 12:48:51 +08:00
Mark Nelson de55cb1b53 MDL-56089 core_message: modified API so it is not tied to renderables
Also did some minor refactoring/tidying of the code.
2016-10-07 16:37:56 +08:00
Mark Nelson 48e8bdba13 MDL-55942 core_message: renamed the term 'people' to 'user' 2016-10-07 16:37:56 +08:00