MDL-29360 quiz comment.php has broken JS for the Cancel button.
authorTim Hunt <T.J.Hunt@open.ac.uk>
Wed, 14 Sep 2011 19:25:31 +0000 (20:25 +0100)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 16 Sep 2011 11:03:46 +0000 (12:03 +0100)
This swtichest it to more modern YUI3 approach.

mod/quiz/comment.php
mod/quiz/locallib.php
mod/quiz/module.js

index 515e08f..4736946 100644 (file)
@@ -85,14 +85,13 @@ echo $attemptobj->render_question_for_commenting($slot);
             <fieldset class="felement fgroup">
                 <input id="id_submitbutton" type="submit" name="submit" value="<?php
                         print_string('save', 'quiz'); ?>"/>
-                <input id="id_cancel" type="button" value="<?php
-                        print_string('cancel'); ?>" onclick="close_window()"/>
             </fieldset>
         </div>
     </div>
 </fieldset>
 <?php
 echo '</form>';
+$PAGE->requires->js_init_call('M.mod_quiz.init_comment_popup', null, false, quiz_get_js_module());
 
 // End of the page.
 echo $OUTPUT->footer();
index 0e1ea24..ae956d5 100644 (file)
@@ -1294,12 +1294,14 @@ function quiz_check_safe_browser() {
 
 function quiz_get_js_module() {
     global $PAGE;
+
     return array(
         'name' => 'mod_quiz',
         'fullpath' => '/mod/quiz/module.js',
         'requires' => array('base', 'dom', 'event-delegate', 'event-key',
                 'core_question_engine'),
         'strings' => array(
+            array('cancel', 'moodle'),
             array('timesup', 'quiz'),
             array('functiondisabledbysecuremode', 'quiz'),
             array('flagged', 'question'),
index 7c11547..457810b 100644 (file)
@@ -34,6 +34,14 @@ M.mod_quiz.init_review_form = function(Y) {
     Y.on('submit', function(e) { e.halt(); }, '.questionflagsaveform');
 };
 
+M.mod_quiz.init_comment_popup = function(Y) {
+    // Add a close button to the window.
+    var closebutton = Y.Node.create('<input type="button" />');
+    closebutton.set('value', M.util.get_string('cancel', 'moodle'));
+    Y.one('#id_submitbutton').ancestor().append(closebutton);
+    Y.on('click', function() { window.close() }, closebutton);
+}
+
 // Code for updating the countdown timer that is used on timed quizzes.
 M.mod_quiz.timer = {
     // YUI object.