MDL-39209 badges: Fix course badges page access and navigation when course badges...
authorYuliya Bozhko <yuliya.bozhko@totaralms.com>
Mon, 29 Apr 2013 02:36:14 +0000 (14:36 +1200)
committerYuliya Bozhko <yuliya.bozhko@totaralms.com>
Thu, 9 May 2013 20:41:22 +0000 (08:41 +1200)
badges/backpack.js
badges/criteria.php
badges/edit.php
badges/index.php
badges/newbadge.php
badges/overview.php
badges/recipients.php
badges/view.php
lang/en/badges.php
lib/navigationlib.php

index b0caec4..68e736b 100644 (file)
@@ -10,19 +10,23 @@ function addtobackpack(event, args) {
  */
 function check_site_access() {
     var add = Y.one('#check_connection');
+
     var callback = {
-        success: function(o) {
-            var data = Y.JSON.parse(o.responseText);
-            if (data.code == 'http-unreachable') {
-                add.setHTML(data.response);
-                add.removeClass('hide');
+            method: "GET",
+            on: {
+                success: function(id, o, args) {
+                            var data = Y.JSON.parse(o.responseText);
+                            if (data.code == 'http-unreachable') {
+                                add.setHTML(data.response);
+                                add.removeClass('hide');
+                            }
+                        },
+                failure: function(o) { }
             }
-        },
-        failure: function(o) { }
-    };
+        };
 
-    YUI().use('yui2-connection', function (Y) {
-        Y.YUI2.util.Connect.asyncRequest('GET', 'ajax.php', callback, null);
+    Y.use('io-base', function(Y) {
+        Y.io('ajax.php', callback);
     });
 
     return false;
index 7844499..9bfd389 100644 (file)
@@ -41,6 +41,9 @@ $context = $badge->get_context();
 $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type));
 
 if ($badge->type == BADGE_TYPE_COURSE) {
+    if (empty($CFG->badges_allowcoursebadges)) {
+        print_error('coursebadgesdisabled', 'badges');
+    }
     require_login($badge->courseid);
     $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid));
 }
index 9093040..1c91562 100644 (file)
@@ -44,6 +44,9 @@ $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type));
 require_capability('moodle/badges:configuredetails', $context);
 
 if ($badge->type == BADGE_TYPE_COURSE) {
+    if (empty($CFG->badges_allowcoursebadges)) {
+        print_error('coursebadgesdisabled', 'badges');
+    }
     require_login($badge->courseid);
     $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid));
 }
index 56176fb..8a30471 100644 (file)
@@ -56,6 +56,10 @@ if (empty($CFG->enablebadges)) {
     print_error('badgesdisabled', 'badges');
 }
 
+if (empty($CFG->badges_allowcoursebadges) && ($type == BADGE_TYPE_COURSE)) {
+    print_error('coursebadgesdisabled', 'badges');
+}
+
 $err = '';
 $urlparams = array('sort' => $sortby, 'dir' => $sorthow, 'page' => $page);
 
index fa3c2c6..413e56c 100644 (file)
@@ -37,6 +37,10 @@ if (empty($CFG->enablebadges)) {
     print_error('badgesdisabled', 'badges');
 }
 
+if (empty($CFG->badges_allowcoursebadges) && ($type == BADGE_TYPE_COURSE)) {
+    print_error('coursebadgesdisabled', 'badges');
+}
+
 $title = get_string('create', 'badges');
 
 if (($type == BADGE_TYPE_COURSE) && ($course = $DB->get_record('course', array('id' => $courseid)))) {
index b658558..e2dec7f 100644 (file)
@@ -41,6 +41,9 @@ $context = $badge->get_context();
 $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type));
 
 if ($badge->type == BADGE_TYPE_COURSE) {
+    if (empty($CFG->badges_allowcoursebadges)) {
+        print_error('coursebadgesdisabled', 'badges');
+    }
     require_login($badge->courseid);
     $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid));
 }
index 8105863..539696b 100644 (file)
@@ -56,6 +56,9 @@ $context = $badge->get_context();
 $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type));
 
 if ($badge->type == BADGE_TYPE_COURSE) {
+    if (empty($CFG->badges_allowcoursebadges)) {
+        print_error('coursebadgesdisabled', 'badges');
+    }
     require_login($badge->courseid);
     $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid));
 }
index b4a5c2a..33f2b91 100644 (file)
@@ -39,6 +39,10 @@ if (empty($CFG->enablebadges)) {
     print_error('badgesdisabled', 'badges');
 }
 
+if (empty($CFG->badges_allowcoursebadges) && $courseid != 0) {
+    print_error('coursebadgesdisabled', 'badges');
+}
+
 if (!in_array($sortby, array('name', 'dateissued'))) {
     $sortby = 'name';
 }
index 9d26764..551f7da 100644 (file)
@@ -131,6 +131,7 @@ $string['connected'] = 'Connected';
 $string['contact'] = 'Contact';
 $string['contact_help'] = 'An email address associated with the badge issuer.';
 $string['copyof'] = 'Copy of {$a}';
+$string['coursebadgesdisabled'] = 'Course badges are not enabled on this site.';
 $string['coursecompletion'] = 'Learners must complete this course. ';
 $string['coursebadges'] = 'Badges';
 $string['create'] = 'New badge';
index fe4bceb..35d4523 100644 (file)
@@ -2498,7 +2498,7 @@ class global_navigation extends navigation_node {
         }
 
         //Badges
-        if (!empty($CFG->enablebadges) && has_capability('moodle/badges:viewbadges', $this->page->context)) {
+        if (!empty($CFG->enablebadges) && !empty($CFG->badges_allowcoursebadges) && has_capability('moodle/badges:viewbadges', $this->page->context)) {
             $url = new moodle_url($CFG->wwwroot . '/badges/view.php', array('type' => 1));
             $coursenode->add(get_string('sitebadges', 'badges'), $url, navigation_node::TYPE_CUSTOM);
         }