diff --git a/question/preview.php b/question/preview.php
index f8de4eeb31e..5212b5e2ca4 100644
--- a/question/preview.php
+++ b/question/preview.php
@@ -275,12 +275,6 @@ print_collapsible_region_end();
// Display the settings form.
$optionsform->display();
-$PAGE->requires->js_init_call('M.core_question_preview.init', null, false, array(
- 'name' => 'core_question_preview',
- 'fullpath' => '/question/preview.js',
- 'requires' => array('base', 'dom', 'event-delegate', 'event-key', 'core_question_engine'),
- 'strings' => array(
- array('closepreview', 'question'),
- )));
+$PAGE->requires->yui_module('moodle-question-preview', 'M.question.preview.init');
echo $OUTPUT->footer();
diff --git a/question/yui/build/moodle-question-preview/moodle-question-preview-debug.js b/question/yui/build/moodle-question-preview/moodle-question-preview-debug.js
new file mode 100644
index 00000000000..79222869160
--- /dev/null
+++ b/question/yui/build/moodle-question-preview/moodle-question-preview-debug.js
@@ -0,0 +1,45 @@
+YUI.add('moodle-question-preview', function (Y, NAME) {
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see .
+
+/**
+ * JavaScript required by the question preview pop-up.
+ *
+ * @module moodle-question-preview
+ * @copyright 2014 The Open University
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+M.question = M.question || {};
+
+/**
+ * Initialise JavaScript-specific parts of the question preview popup.
+ */
+M.question.preview.init = function(Y) {
+ M.core_question_engine.init_form(Y, '#responseform');
+
+ // Add a close button to the window.
+ var closebutton = Y.Node.create('');
+ closebutton.set('value', M.str.question.closepreview);
+ Y.one('#previewcontrols').append(closebutton);
+ Y.on('click', function() { window.close(); }, closebutton);
+
+ // Stop a question form being submitted more than once.
+ Y.on('submit', M.core_question_engine.prevent_repeat_submission, '#mform1', null, Y);
+};
+
+
+}, '@VERSION@', {"requires": ["base", "dom", "event-delegate", "event-key", "core_question_engine"]});
diff --git a/question/yui/build/moodle-question-preview/moodle-question-preview-min.js b/question/yui/build/moodle-question-preview/moodle-question-preview-min.js
new file mode 100644
index 00000000000..4f8598dde48
--- /dev/null
+++ b/question/yui/build/moodle-question-preview/moodle-question-preview-min.js
@@ -0,0 +1 @@
+YUI.add("moodle-question-preview",function(e,t){M.question=M.question||{},M.question.preview.init=function(e){M.core_question_engine.init_form(e,"#responseform");var t=e.Node.create('');t.set("value",M.str.question.closepreview),e.one("#previewcontrols").append(t),e.on("click",function(){window.close()},t),e.on("submit",M.core_question_engine.prevent_repeat_submission,"#mform1",null,e)}},"@VERSION@",{requires:["base","dom","event-delegate","event-key","core_question_engine"]});
diff --git a/question/yui/build/moodle-question-preview/moodle-question-preview.js b/question/yui/build/moodle-question-preview/moodle-question-preview.js
new file mode 100644
index 00000000000..79222869160
--- /dev/null
+++ b/question/yui/build/moodle-question-preview/moodle-question-preview.js
@@ -0,0 +1,45 @@
+YUI.add('moodle-question-preview', function (Y, NAME) {
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see .
+
+/**
+ * JavaScript required by the question preview pop-up.
+ *
+ * @module moodle-question-preview
+ * @copyright 2014 The Open University
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+M.question = M.question || {};
+
+/**
+ * Initialise JavaScript-specific parts of the question preview popup.
+ */
+M.question.preview.init = function(Y) {
+ M.core_question_engine.init_form(Y, '#responseform');
+
+ // Add a close button to the window.
+ var closebutton = Y.Node.create('');
+ closebutton.set('value', M.str.question.closepreview);
+ Y.one('#previewcontrols').append(closebutton);
+ Y.on('click', function() { window.close(); }, closebutton);
+
+ // Stop a question form being submitted more than once.
+ Y.on('submit', M.core_question_engine.prevent_repeat_submission, '#mform1', null, Y);
+};
+
+
+}, '@VERSION@', {"requires": ["base", "dom", "event-delegate", "event-key", "core_question_engine"]});
diff --git a/question/yui/src/preview/build.json b/question/yui/src/preview/build.json
new file mode 100644
index 00000000000..ace36838476
--- /dev/null
+++ b/question/yui/src/preview/build.json
@@ -0,0 +1,10 @@
+{
+ "name": "moodle-question-preview",
+ "builds": {
+ "moodle-question-preview": {
+ "jsfiles": [
+ "preview.js"
+ ]
+ }
+ }
+}
diff --git a/question/preview.js b/question/yui/src/preview/js/preview.js
similarity index 70%
rename from question/preview.js
rename to question/yui/src/preview/js/preview.js
index 9cd4e59a960..744253a29c9 100644
--- a/question/preview.js
+++ b/question/yui/src/preview/js/preview.js
@@ -16,29 +16,25 @@
/**
* JavaScript required by the question preview pop-up.
*
- * @package moodlecore
- * @subpackage questionengine
- * @copyright 2009 The Open University
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @module moodle-question-preview
+ * @copyright 2014 The Open University
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
-
-M.core_question_preview = M.core_question_preview || {};
-
+M.question = M.question || {};
/**
* Initialise JavaScript-specific parts of the question preview popup.
*/
-M.core_question_preview.init = function(Y) {
+M.question.preview.init = function(Y) {
M.core_question_engine.init_form(Y, '#responseform');
// Add a close button to the window.
var closebutton = Y.Node.create('');
closebutton.set('value', M.str.question.closepreview);
Y.one('#previewcontrols').append(closebutton);
- Y.on('click', function() { window.close() }, closebutton);
+ Y.on('click', function() { window.close(); }, closebutton);
- // Make changing the settings disable all submit buttons, like clicking one
- // of the question buttons does.
- Y.on('submit', M.core_question_engine.prevent_repeat_submission, '#mform1', null, Y)
-}
+ // Stop a question form being submitted more than once.
+ Y.on('submit', M.core_question_engine.prevent_repeat_submission, '#mform1', null, Y);
+};
diff --git a/question/yui/src/preview/meta/preview.json b/question/yui/src/preview/meta/preview.json
new file mode 100644
index 00000000000..9291a133c20
--- /dev/null
+++ b/question/yui/src/preview/meta/preview.json
@@ -0,0 +1,11 @@
+{
+ "moodle-question-preview": {
+ "requires": [
+ "base",
+ "dom",
+ "event-delegate",
+ "event-key",
+ "core_question_engine"
+ ]
+ }
+}