A couple bugfixes related to instructor defined tools
authorChris Scribner <scriby@gmail.com>
Mon, 19 Sep 2011 22:45:41 +0000 (18:45 -0400)
committerChris Scribner <scriby@gmail.com>
Mon, 7 Nov 2011 01:41:51 +0000 (20:41 -0500)
mod/lti/locallib.php
mod/lti/mod_form.js

index d2e1c89..c4790e9 100644 (file)
@@ -74,7 +74,7 @@ function lti_view($instance, $makeobject=false) {
     global $PAGE, $CFG;
 
     if(empty($instance->typeid)){
-        $tool = lti_get_tool_by_url_match($instance->toolurl);
+        $tool = lti_get_tool_by_url_match($instance->toolurl, $instance->course);
         if($tool){
             $typeid = $tool->id;
         } else {
@@ -401,9 +401,10 @@ function lti_get_types_for_add_instance(){
             WHERE
                 coursevisible = 1
             AND (course = :siteid OR course = :courseid)
+            AND state = :active
 QUERY;
     
-    $admintypes = $DB->get_records_sql($query, array('siteid' => $SITE->id, 'courseid' => $COURSE->id));
+    $admintypes = $DB->get_records_sql($query, array('siteid' => $SITE->id, 'courseid' => $COURSE->id, 'active' => LTI_TOOL_STATE_CONFIGURED));
     
     $types = array();
     $types[0] = (object)array('name' => get_string('automatic', 'lti'), 'course' => $SITE->id);
index 79fad16..7569629 100644 (file)
@@ -19,6 +19,8 @@
 
             var typeSelector = Y.one('#id_typeid');
             typeSelector.on('change', function(e){
+                self.updateAutomaticToolMatch();
+                
                 self.toggleEditButtons();
             });
 
@@ -47,6 +49,7 @@
 
         updateAutomaticToolMatch: function(){
             var toolurl = Y.one('#id_toolurl');
+            var typeSelector = Y.one('#id_typeid');
             var automatchToolDisplay = Y.one('#lti_automatch_tool');
 
             if(!automatchToolDisplay){
@@ -59,7 +62,7 @@
 
             var url = toolurl.get('value');
 
-            if(!url){
+            if(!url || typeSelector.get('value') > 0){
                 automatchToolDisplay.setStyle('display', 'none');
                 return;
             }
                                     .set('id', 'course_tool_group')
                                     .set('label', M.str.lti.course_tool_types);
 
-                typeSelector.all('option[globalTool=1]').remove().each(function(node){
+                var globalOptions = typeSelector.all('option[globalTool=1]').remove().each(function(node){
                     globalGroup.append(node);
                 });
 
-                typeSelector.all('option[courseTool=1]').remove().each(function(node){
+                var courseOptions = typeSelector.all('option[courseTool=1]').remove().each(function(node){
                     courseGroup.append(node);
                 });
 
-                typeSelector.append(globalGroup);
-                typeSelector.append(courseGroup);
+                if(globalOptions.size() > 0){
+                    typeSelector.append(globalGroup);
+                }
+                
+                if(courseOptions.size() > 0){
+                    typeSelector.append(courseGroup);
+                }
             }
         },