MDL-45758 tool_monitor: Update navigation nodes
authorAnkit Agarwal <ankit@moodle.com>
Mon, 13 Oct 2014 06:24:55 +0000 (11:54 +0530)
committerAnkit Agarwal <ankit@moodle.com>
Wed, 15 Oct 2014 06:03:31 +0000 (11:33 +0530)
admin/tool/monitor/lang/en/tool_monitor.php
admin/tool/monitor/lib.php
admin/tool/monitor/settings.php

index cae3db7..50ba36e 100644 (file)
@@ -47,8 +47,8 @@ $string['norules'] = 'There are no rules you can subscribe to.';
 $string['manageruleslink'] = 'You can manage rules from {$a} page.';
 $string['moduleinstance'] = 'Module instance';
 $string['manage'] = 'Manage';
-$string['managesubscriptions'] = 'Manage subscriptions';
-$string['managerules'] = 'Manage rules';
+$string['managesubscriptions'] = 'Event monitoring';
+$string['managerules'] = 'Event monitoring rules';
 $string['messageheader'] = 'Customise your notification message';
 $string['messageprovider:notification'] = 'Notifications of rule subscriptions';
 $string['messagetemplate'] = 'Message template';
index e562f82..88d2df9 100644 (file)
@@ -32,36 +32,37 @@ defined('MOODLE_INTERNAL') || die;
  * @param context         $context    The context of the course
  */
 function tool_monitor_extend_navigation_course($navigation, $course, $context) {
-    $node = navigation_node::create(get_string('pluginname', 'tool_monitor'), null, navigation_node::TYPE_CONTAINER, null,
-        'eventmonitor', new pix_icon('i/tool', ''));
 
     if (has_capability('tool/monitor:managerules', $context)) {
         $url = new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => $course->id));
         $settingsnode = navigation_node::create(get_string('managerules', 'tool_monitor'), $url, navigation_node::TYPE_SETTING,
-            null, null, new pix_icon('i/settings', ''));
+                null, null, new pix_icon('i/settings', ''));
+        $reportnode = $navigation->get('coursereports');
+
+        if (isset($settingsnode) && !empty($reportnode)) {
+            $reportnode->add_node($settingsnode);
+        }
     }
+}
 
-    if (has_capability('tool/monitor:subscribe', $context)) {
+/**
+ * This function extends the navigation with the tool items for user settings node.
+ *
+ * @param navigation_node $navigation  The navigation node to extend
+ * @param stdClass        $user        The user object
+ * @param context         $usercontext The context of the user
+ * @param stdClass        $course      The course to object for the tool
+ * @param context         $coursecontext     The context of the course
+ */
+function tool_monitor_extend_navigation_user_settings($navigation, $user, $usercontext, $course, $coursecontext) {
+    global $USER;
+    if (($USER->id == $user->id)) {
         $url = new moodle_url('/admin/tool/monitor/index.php', array('courseid' => $course->id));
         $subsnode = navigation_node::create(get_string('managesubscriptions', 'tool_monitor'), $url,
-            navigation_node::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
-    }
+                navigation_node::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
 
-    $reportnode = $navigation->get('coursereports');
-
-    if ((isset($subsnode) || isset($settingsnode)) && !empty($reportnode)) {
-        // Add the node only if there are sub pages.
-        $node = $reportnode->add_node($node);
-
-        // Our navigation lib can not handle nodes that have active child, so we need to always add parent first without
-        // children. Refer MDL-45872 .
-
-        if (isset($settingsnode)) {
-            $node->add_node($settingsnode);
-        }
-
-        if (isset($subsnode)) {
-            $node->add_node($subsnode);
+        if (isset($subsnode) && !empty($navigation)) {
+            $navigation->add_node($subsnode, 'changepassword');
         }
     }
-}
+}
\ No newline at end of file
index 9bfc301..9e32468 100644 (file)
 defined('MOODLE_INTERNAL') || die;
 
 if ($hassiteconfig) {
-    $ADMIN->add('reports', new admin_category('toolmonitor', new lang_string('pluginname', 'tool_monitor')));
 
     // Manage rules page.
     $url = new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => 0));
     $temp = new admin_externalpage('toolmonitorrules', get_string('managerules', 'tool_monitor'), $url,
         'tool/monitor:managerules');
-    $ADMIN->add('toolmonitor', $temp);
-
-    // Manage subscriptions page.
-    $url = new moodle_url('/admin/tool/monitor/index.php', array('courseid' => 0));
-    $temp = new admin_externalpage('toolmonitorsubscriptions', get_string('managesubscriptions', 'tool_monitor'), $url,
-        'tool/monitor:subscribe');
-    $ADMIN->add('toolmonitor', $temp);
-
-    $settings = null;
+    $ADMIN->add('reports', $temp);
 }