From 3cc4cc68e4c6678799b3ce96e50aa3f9735da90b Mon Sep 17 00:00:00 2001 From: Ankit Agarwal Date: Wed, 2 Oct 2013 16:47:49 +0800 Subject: [PATCH] MDL-40053 events: write events for core_notes Following events were added in this commit :- core\event\note_created core\event\note_deleted core\event\note_updated core\event\notes_viewed --- lang/en/notes.php | 4 ++ lib/classes/event/note_created.php | 87 ++++++++++++++++++++++++++++++ lib/classes/event/note_deleted.php | 77 ++++++++++++++++++++++++++ lib/classes/event/note_updated.php | 87 ++++++++++++++++++++++++++++++ lib/classes/event/notes_viewed.php | 83 ++++++++++++++++++++++++++++ 5 files changed, 338 insertions(+) create mode 100644 lib/classes/event/note_created.php create mode 100644 lib/classes/event/note_deleted.php create mode 100644 lib/classes/event/note_updated.php create mode 100644 lib/classes/event/notes_viewed.php diff --git a/lang/en/notes.php b/lang/en/notes.php index 63306f60063..84b8489b5ff 100644 --- a/lang/en/notes.php +++ b/lang/en/notes.php @@ -36,6 +36,10 @@ $string['deleteconfirm'] = 'Delete this note?'; $string['deletenotes'] = 'Delete all notes'; $string['editnote'] = 'Edit note'; $string['enablenotes'] = 'Enable notes'; +$string['eventnotecreated'] = 'Note created'; +$string['eventnoteupdate'] = 'Note updated'; +$string['eventnotedeleted'] = 'Note deleted'; +$string['eventnotesviewed'] = 'Notes viewed'; $string['groupaddnewnote'] = 'Add a common note'; $string['invalidid'] = 'Invalid note ID specified'; $string['invaliduserid'] = 'Invalid user id: {$a}'; diff --git a/lib/classes/event/note_created.php b/lib/classes/event/note_created.php new file mode 100644 index 00000000000..838ba8c4429 --- /dev/null +++ b/lib/classes/event/note_created.php @@ -0,0 +1,87 @@ +. + +namespace core\event; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when a new note entry is added. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Class note_created + * + * Class for event to be triggered when a note is created. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class note_created extends \core\event\base { + + /** + * Set basic properties for the event. + */ + protected function init() { + $this->data['objecttable'] = 'post'; + $this->data['crud'] = 'c'; + $this->data['level'] = self::LEVEL_OTHER; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string("eventnotecreated", "core_notes"); + } + + /** + * Returns non-localised event description with id's for admin use only. + * + * @return string + */ + public function get_description() { + return 'Note for user with id "'. $this->relateduserid . '" was created by user with id "' . $this->userid . '"'; + } + + /** + * Returns relevant URL. + * @return \moodle_url + */ + public function get_url() { + $logurl = new \moodle_url('/note/index.php', array('course' => $this->courseid, 'user' => $this->relateduserid)); + $logurl->set_anchor('note-' . $this->objectid); + return $logurl; + } + + /** + * replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + $logurl = new \moodle_url('index.php', array('course' => $this->courseid, 'user' => $this->relateduserid)); + $logurl->set_anchor('note-' . $this->objectid); + return array($this->courseid, 'notes', 'add', $logurl, 'add note'); + } +} diff --git a/lib/classes/event/note_deleted.php b/lib/classes/event/note_deleted.php new file mode 100644 index 00000000000..45249fe6258 --- /dev/null +++ b/lib/classes/event/note_deleted.php @@ -0,0 +1,77 @@ +. + +namespace core\event; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when a new note entry deleted. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Class note_deleted + * + * Class for event to be triggered when a note is deleted. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class note_deleted extends \core\event\base { + + /** + * Set basic properties for the event. + */ + protected function init() { + $this->data['objecttable'] = 'post'; + $this->data['crud'] = 'd'; + $this->data['level'] = self::LEVEL_OTHER; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string("eventnotedeleted", "core_notes"); + } + + /** + * Returns non-localised event description with id's for admin use only. + * + * @return string + */ + public function get_description() { + return 'Note for user with id "'. $this->relateduserid . '" was deleted by user with id "' . $this->userid . '"'; + } + + /** + * replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + $logurl = new \moodle_url('index.php', array('course' => $this->courseid, 'user' => $this->relateduserid)); + $logurl->set_anchor('note-' . $this->objectid); + return array($this->courseid, 'notes', 'delete', $logurl, 'delete note'); + } +} diff --git a/lib/classes/event/note_updated.php b/lib/classes/event/note_updated.php new file mode 100644 index 00000000000..19d967d6e15 --- /dev/null +++ b/lib/classes/event/note_updated.php @@ -0,0 +1,87 @@ +. + +namespace core\event; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when a new note entry is updated. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Class note_updated + * + * Class for event to be triggered when a note is updated. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class note_updated extends \core\event\base { + + /** + * Set basic properties for the event. + */ + protected function init() { + $this->data['objecttable'] = 'post'; + $this->data['crud'] = 'c'; + $this->data['level'] = self::LEVEL_OTHER; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string("eventnoteupdated", "core_notes"); + } + + /** + * Returns non-localised event description with id's for admin use only. + * + * @return string + */ + public function get_description() { + return 'Note for user with id "'. $this->relateduserid . '" was updated by user with id "'. $this->userid . '"'; + } + + /** + * Returns relevant URL. + * @return \moodle_url + */ + public function get_url() { + $logurl = new \moodle_url('/note/index.php', array('course' => $this->courseid, 'user' => $this->relateduserid)); + $logurl->set_anchor('note-' . $this->objectid); + return $logurl; + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + $logurl = new \moodle_url('index.php', array('course' => $this->courseid, 'user' => $this->relateduserid)); + $logurl->set_anchor('note-' . $this->objectid); + return array($this->courseid, 'notes', 'update', $logurl, 'update note'); + } +} diff --git a/lib/classes/event/notes_viewed.php b/lib/classes/event/notes_viewed.php new file mode 100644 index 00000000000..3680fc45fde --- /dev/null +++ b/lib/classes/event/notes_viewed.php @@ -0,0 +1,83 @@ +. + +namespace core\event; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when a new note entry viewed. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Class note_viewed + * + * Class for event to be triggered when a note is viewed. + * + * @package core + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class notes_viewed extends \core\event\content_viewed { + + /** + * Set basic properties for the event. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['level'] = self::LEVEL_OTHER; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string("eventnotesviewed", "core_notes"); + } + + /** + * Returns non-localised event description with id's for admin use only. + * + * @return string + */ + public function get_description() { + return 'Note for user with id "'. $this->relateduserid . '" was viewed by user with id "'. $this->userid . '"'; + } + + /** + * Returns relevant URL. + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/note/index.php', array('course' => $this->courseid, 'user' => $this->relateduserid)); + } + + /** + * replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'notes', 'view', 'index.php?course=' . $this->courseid.'&user=' . $this->relateduserid, + 'view notes'); + } +}