MDL-28471 make the question flag smaller, and give it a label.
authorWale Olujide <a.s.olujide@open.ac.uk>
Tue, 26 Jul 2011 11:07:24 +0000 (12:07 +0100)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Tue, 26 Jul 2011 15:38:07 +0000 (16:38 +0100)
lang/en/question.php
question/engine/lib.php
question/flags.js

index 13e17ec..c1c7947 100644 (file)
@@ -399,3 +399,5 @@ $string['whethercorrect'] = 'Whether correct';
 $string['withselected'] = 'With selected';
 $string['xoutofmax'] = '{$a->mark} out of {$a->max}';
 $string['yougotnright'] = 'You have correctly selected {$a->num}.';
+$string['clickflag'] = 'Flag question';
+$string['clickunflag'] = 'Unflag question';
index 0461297..17d3c1f 100644 (file)
@@ -632,20 +632,24 @@ abstract class question_flags {
             'requires' => array('base', 'dom', 'event-delegate', 'io-base'),
         );
         $actionurl = $CFG->wwwroot . '/question/toggleflag.php';
+        $fltext = array(0 => get_string('clickflag', 'question'),
+                        1 => get_string('clickunflag', 'question'));
         $flagattributes = array(
             0 => array(
                 'src' => $OUTPUT->pix_url('i/unflagged') . '',
                 'title' => get_string('clicktoflag', 'question'),
                 'alt' => get_string('notflagged', 'question'),
+              //  'text' => get_string('clickflag', 'question'),
             ),
             1 => array(
                 'src' => $OUTPUT->pix_url('i/flagged') . '',
                 'title' => get_string('clicktounflag', 'question'),
                 'alt' => get_string('flagged', 'question'),
+               // 'text' => get_string('clickunflag', 'question'),
             ),
         );
         $PAGE->requires->js_init_call('M.core_question_flags.init',
-                array($actionurl, $flagattributes), false, $module);
+                array($actionurl, $flagattributes, $fltext), false, $module);
         $done = true;
     }
 }
index 25edaa5..d587a7d 100644 (file)
 M.core_question_flags = {
     flagattributes: null,
     actionurl: null,
+    fltext: null,
     listeners: [],
 
-    init: function(Y, actionurl, flagattributes) {
+    init: function(Y, actionurl, flagattributes, fltext) {
         M.core_question_flags.flagattributes = flagattributes;
         M.core_question_flags.actionurl = actionurl;
+        M.core_question_flags.fltext = fltext;
 
         Y.all('div.questionflag').each(function(flagdiv, i) {
             var checkbox = flagdiv.one('input[type=checkbox]');
@@ -49,10 +51,18 @@ M.core_question_flags = {
             var image = Y.Node.create('<input type="image" class="questionflagimage" />');
             M.core_question_flags.update_flag(input, image);
 
+            // Create flag text
+            var flstatus = input.get('value');
+            var txt = M.core_question_flags.fltext[flstatus];
+            var flagtext = Y.Node.create('<span class="flag-text">');
+            flagtext.addClass(txt);
+            flagtext.append(txt);
+
             checkbox.remove();
             flagdiv.one('label').remove();
             flagdiv.append(input);
             flagdiv.append(image);
+            flagdiv.append(flagtext);
         });
 
         Y.delegate('click', function(e) {
@@ -69,7 +79,17 @@ M.core_question_flags = {
     },
 
     update_flag: function(input, image) {
-        image.setAttrs(M.core_question_flags.flagattributes[input.get('value')]);
+
+        YUI().use('node', function (Y) {
+            image.setAttrs(M.core_question_flags.flagattributes[input.get('value')]);
+            // get flag text which is next to image element
+            var element = image.next();
+           // if element update its text
+           if(element){
+              element.set('innerText', M.core_question_flags.fltext[input.get('value')]);
+          }
+      });
+
     },
 
     add_listener: function(listener) {