MDL-39964 report_progress: don't browser sniff for SVG support
authorDan Poltawski <dan@moodle.com>
Fri, 31 May 2013 06:33:59 +0000 (14:33 +0800)
committerDan Poltawski <dan@moodle.com>
Fri, 31 May 2013 06:43:00 +0000 (14:43 +0800)
Use feature detection, its more robust and better practice.

report/progress/index.php
report/progress/textrotate.js

index 6bae97a..3df14ed 100644 (file)
@@ -146,8 +146,6 @@ if ($csv && $grandtotal && count($activities)>0) { // Only show CSV if there are
         $line="\n";
     }
 } else {
-    // Use SVG to draw sideways text if supported
-    $svgcleverness = can_use_rotated_text();
 
     // Navigation and header
     $strreports = get_string("reports");
@@ -156,11 +154,8 @@ if ($csv && $grandtotal && count($activities)>0) { // Only show CSV if there are
     $PAGE->set_title($strcompletion);
     $PAGE->set_heading($course->fullname);
     echo $OUTPUT->header();
-
-    if ($svgcleverness) {
-        $PAGE->requires->js('/report/progress/textrotate.js');
-        $PAGE->requires->js_function_call('textrotate_init', null, true);
-    }
+    $PAGE->requires->js('/report/progress/textrotate.js');
+    $PAGE->requires->js_function_call('textrotate_init', null, true);
 
     // Handle groups (if enabled)
     groups_print_course_menu($course,$CFG->wwwroot.'/report/progress/?course='.$course->id);
index 7414ec4..56ee2d7 100644 (file)
@@ -48,7 +48,16 @@ function textrotate_make_svg(el)
   el.parentNode.removeChild(el);
 }
 
+function browser_supports_svg() {
+    return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1");
+}
+
 function textrotate_init() {
+    if (!browser_supports_svg()) {
+        // Feature detect, else bail.
+        return;
+    }
+
 YUI().use('yui2-dom', function(Y) {
   var elements= Y.YUI2.util.Dom.getElementsByClassName('completion-activityname', 'span');
   for(var i=0;i<elements.length;i++)