From 1372b5d2cf6d47ef1066018bd8bdcbb61e37cecb Mon Sep 17 00:00:00 2001 From: tjhunt Date: Tue, 25 Nov 2008 12:31:59 +0000 Subject: [PATCH] quiz editing: MDL-17298 We should not add JavaScript to the YAHOO namespace Also, use the newer methods for including required JavaScript. --- mod/quiz/edit.js | 27 ++++++++++++--------------- mod/quiz/edit.php | 46 +++++++++++++++++----------------------------- 2 files changed, 29 insertions(+), 44 deletions(-) diff --git a/mod/quiz/edit.js b/mod/quiz/edit.js index c6e422aca8..daef410ec3 100644 --- a/mod/quiz/edit.js +++ b/mod/quiz/edit.js @@ -1,12 +1,10 @@ /** JavaScript for /mod/quiz/edit.php */ - -YAHOO.namespace("cats.container"); -YAHOO.namespace("quiz.container"); -function init() { +var quiz_edit = {}; +function quiz_edit_init() { YAHOO.util.Dom.setStyle('randomquestiondialog', 'display', 'block'); /* zIndex must be way above 99 to be above the active quiz tab*/ - YAHOO.quiz.container.randomquestiondialog = new YAHOO.widget.Dialog("randomquestiondialog", + quiz_edit.randomquestiondialog = new YAHOO.widget.Dialog("randomquestiondialog", { constraintoviewport : true, visible : false, @@ -19,12 +17,11 @@ function init() { draggable: true, dragOnly: true, postmethod: "form" - } ); //show the dialog and depending on from which form (corresponding // a specific quiz page) it was triggered, set the value of the form's // rqpage input element to the form number - YAHOO.util.Event.addListener(this.dialog_listeners, "click", + YAHOO.util.Event.addListener(this.dialoglisteners, "click", function(e){ this.show(); var rbutton = YAHOO.util.Event.getTarget(e); @@ -43,12 +40,12 @@ function init() { } } YAHOO.util.Event.stopEvent(e); - }, YAHOO.quiz.container.randomquestiondialog, - YAHOO.quiz.container.randomquestiondialog, true); - YAHOO.quiz.container.randomquestiondialog.render(); + }, quiz_edit.randomquestiondialog, + quiz_edit.randomquestiondialog, true); + quiz_edit.randomquestiondialog.render(); - YAHOO.quiz.container.repaginatedialog = new YAHOO.widget.Dialog("repaginatedialog", + quiz_edit.repaginatedialog = new YAHOO.widget.Dialog("repaginatedialog", { modal:true, width : "100%", @@ -66,11 +63,11 @@ function init() { function(e){ YAHOO.util.Dom.setStyle('repaginatedialog', 'display', 'block'); this.show(); - }, YAHOO.quiz.container.repaginatedialog, - YAHOO.quiz.container.repaginatedialog, true); - YAHOO.quiz.container.repaginatedialog.render(); + }, quiz_edit.repaginatedialog, + quiz_edit.repaginatedialog, true); + quiz_edit.repaginatedialog.render(); } -YAHOO.util.Event.onDOMReady(init,phpGenerated,true); +YAHOO.util.Event.onDOMReady(quiz_edit_init, quiz_edit_config, true); YAHOO.util.Dom.setStyle('repaginatedialog', 'display', 'block'); \ No newline at end of file diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index c3af13356c..50014e62c4 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -542,51 +542,39 @@ if ($significantchangemade) { question_showbank_actions($thispageurl, $cm); /// all commands have been dealt with, now print the page -$questionbankmanagement=''. - get_string("questionbankmanagement","quiz").' '; if (isset($quiz->instance) and $DB->record_exists_select('quiz_attempts', "quiz = ? AND preview = '0'", array($quiz->instance))){ $quiz_has_attempts=true; } +// Print the header. +$questionbankmanagement=''. + get_string("questionbankmanagement","quiz").' '; $strupdatemodule = has_capability('moodle/course:manageactivities', $contexts->lowest()) ? update_module_button($cm->id, $course->id, get_string('modulename', 'quiz')) : ""; $navigation = build_navigation($pagetitle, $cm); - -$quiz_randomquestion_dialog_listeners='this.dialog_listeners=['; -if(($numberoflisteners=quiz_number_of_pages($quiz->questions))==0){ - $numberoflisteners=1; -} -for($page_iter=1;$page_iter<=$numberoflisteners;$page_iter++){ - if($page_iter!=1){ - $quiz_randomquestion_dialog_listeners.= ','; - } - $quiz_randomquestion_dialog_listeners.= '"addrandomdialoglaunch_'. - $page_iter.'"'; -} -$quiz_randomquestion_dialog_listeners.='];'; -$surl=$thispageurl->out(false,array('qbanktool'=>'0')); -$surl_js="this.sUrl=\"$surl\";"; -$localjs= ' - -'; $localcss= ''; print_header_simple($pagetitle, '', $navigation, "", $localcss,true, $questionbankmanagement.$strupdatemodule); -echo $localjs; + +// Initialise the JavaScript. +$quizeditconfig = new stdClass; +$quizeditconfig->url = $thispageurl->out(false, array('qbanktool' => '0')); +$quizeditconfig->dialoglisteners =array(); +$numberoflisteners = max(quiz_number_of_pages($quiz->questions), 1); +for ($pageiter = 1; $pageiter <= $numberoflisteners; $pageiter++) { + $quizeditconfig->dialoglisteners[] = 'addrandomdialoglaunch_' . $pageiter; +} +print_js_config($quizeditconfig, 'quiz_edit_config'); +require_js('mod/quiz/edit.js'); + +// Print the tabs. $mode = 'editq'; $currenttab="edit"; if($quiz_reordertool){ -- 2.39.5