diff --git a/question/yui/build/moodle-question-chooser/moodle-question-chooser-debug.js b/question/yui/build/moodle-question-chooser/moodle-question-chooser-debug.js index 6e269b9e429..dc9bac7a839 100644 --- a/question/yui/build/moodle-question-chooser/moodle-question-chooser-debug.js +++ b/question/yui/build/moodle-question-chooser/moodle-question-chooser-debug.js @@ -4,8 +4,7 @@ var SELECTORS = { CREATENEWQUESTION: 'div.createnewquestion', CREATENEWQUESTIONFORM: 'div.createnewquestion form', CHOOSERDIALOGUE: 'div.chooserdialogue', - CHOOSERHEADER: 'div.choosertitle', - QBANKCATEGORY: '#qbankcategory' + CHOOSERHEADER: 'div.choosertitle' }; function Chooser() { @@ -30,10 +29,17 @@ Y.extend(Chooser, M.core.chooserdialogue, { this.prepare_chooser(); } - // Set the category ID in the form - this may have been updated since the dialogue - // was previously displayed so we must update it here. - this.container.one(SELECTORS.QBANKCATEGORY).set('value', - Y.one(SELECTORS.CREATENEWQUESTIONFORM).get('category').get('value')); + // Update all of the hidden fields within the questionbank form. + var originForm = e.target.ancestor('form', true), + targetForm = this.container.one('form'), + hiddenElements = originForm.all('input[type="hidden"]'); + + targetForm.all('input.customfield').remove(); + hiddenElements.each(function(field) { + targetForm.appendChild(field.cloneNode()) + .removeAttribute('id') + .addClass('customfield'); + }); // Display the chooser dialogue. this.display_chooser(e); diff --git a/question/yui/build/moodle-question-chooser/moodle-question-chooser-min.js b/question/yui/build/moodle-question-chooser/moodle-question-chooser-min.js index ae8a99de4b7..e80bd32f936 100644 --- a/question/yui/build/moodle-question-chooser/moodle-question-chooser-min.js +++ b/question/yui/build/moodle-question-chooser/moodle-question-chooser-min.js @@ -1 +1 @@ -YUI.add("moodle-question-chooser",function(e,t){function r(){r.superclass.constructor.apply(this,arguments)}var n={CREATENEWQUESTION:"div.createnewquestion",CREATENEWQUESTIONFORM:"div.createnewquestion form",CHOOSERDIALOGUE:"div.chooserdialogue",CHOOSERHEADER:"div.choosertitle",QBANKCATEGORY:"#qbankcategory"};e.extend(r,M.core.chooserdialogue,{initializer:function(){e.all("form").each(function(e){/question\/addquestion\.php/.test(e.getAttribute("action"))&&e.on("submit",this.displayQuestionChooser,this)},this)},displayQuestionChooser:function(t){var r=e.one(n.CREATENEWQUESTION+" "+n.CHOOSERDIALOGUE),i=e.one(n.CREATENEWQUESTION+" "+n.CHOOSERHEADER);this.container===null&&(this.setup_chooser_dialogue(r,i,{}),this.prepare_chooser()),this.container.one(n.QBANKCATEGORY).set("value",e.one(n.CREATENEWQUESTIONFORM).get("category").get("value")),this.display_chooser(t)}},{NAME:"questionChooser"}),M.question=M.question||{},M.question.init_chooser=function(e){return new r(e)}},"@VERSION@",{requires:["moodle-core-chooserdialogue"]}); +YUI.add("moodle-question-chooser",function(e,t){function r(){r.superclass.constructor.apply(this,arguments)}var n={CREATENEWQUESTION:"div.createnewquestion",CREATENEWQUESTIONFORM:"div.createnewquestion form",CHOOSERDIALOGUE:"div.chooserdialogue",CHOOSERHEADER:"div.choosertitle"};e.extend(r,M.core.chooserdialogue,{initializer:function(){e.all("form").each(function(e){/question\/addquestion\.php/.test(e.getAttribute("action"))&&e.on("submit",this.displayQuestionChooser,this)},this)},displayQuestionChooser:function(t){var r=e.one(n.CREATENEWQUESTION+" "+n.CHOOSERDIALOGUE),i=e.one(n.CREATENEWQUESTION+" "+n.CHOOSERHEADER);this.container===null&&(this.setup_chooser_dialogue(r,i,{}),this.prepare_chooser());var s=t.target.ancestor("form",!0),o=this.container.one("form"),u=s.all('input[type="hidden"]');o.all("input.customfield").remove(),u.each(function(e){o.appendChild(e.cloneNode()).removeAttribute("id").addClass("customfield")}),this.display_chooser(t)}},{NAME:"questionChooser"}),M.question=M.question||{},M.question.init_chooser=function(e){return new r(e)}},"@VERSION@",{requires:["moodle-core-chooserdialogue"]}); diff --git a/question/yui/build/moodle-question-chooser/moodle-question-chooser.js b/question/yui/build/moodle-question-chooser/moodle-question-chooser.js index 6e269b9e429..dc9bac7a839 100644 --- a/question/yui/build/moodle-question-chooser/moodle-question-chooser.js +++ b/question/yui/build/moodle-question-chooser/moodle-question-chooser.js @@ -4,8 +4,7 @@ var SELECTORS = { CREATENEWQUESTION: 'div.createnewquestion', CREATENEWQUESTIONFORM: 'div.createnewquestion form', CHOOSERDIALOGUE: 'div.chooserdialogue', - CHOOSERHEADER: 'div.choosertitle', - QBANKCATEGORY: '#qbankcategory' + CHOOSERHEADER: 'div.choosertitle' }; function Chooser() { @@ -30,10 +29,17 @@ Y.extend(Chooser, M.core.chooserdialogue, { this.prepare_chooser(); } - // Set the category ID in the form - this may have been updated since the dialogue - // was previously displayed so we must update it here. - this.container.one(SELECTORS.QBANKCATEGORY).set('value', - Y.one(SELECTORS.CREATENEWQUESTIONFORM).get('category').get('value')); + // Update all of the hidden fields within the questionbank form. + var originForm = e.target.ancestor('form', true), + targetForm = this.container.one('form'), + hiddenElements = originForm.all('input[type="hidden"]'); + + targetForm.all('input.customfield').remove(); + hiddenElements.each(function(field) { + targetForm.appendChild(field.cloneNode()) + .removeAttribute('id') + .addClass('customfield'); + }); // Display the chooser dialogue. this.display_chooser(e); diff --git a/question/yui/src/chooser/js/chooser.js b/question/yui/src/chooser/js/chooser.js index db75e581faf..8ab920006cd 100644 --- a/question/yui/src/chooser/js/chooser.js +++ b/question/yui/src/chooser/js/chooser.js @@ -2,8 +2,7 @@ var SELECTORS = { CREATENEWQUESTION: 'div.createnewquestion', CREATENEWQUESTIONFORM: 'div.createnewquestion form', CHOOSERDIALOGUE: 'div.chooserdialogue', - CHOOSERHEADER: 'div.choosertitle', - QBANKCATEGORY: '#qbankcategory' + CHOOSERHEADER: 'div.choosertitle' }; function Chooser() { @@ -28,10 +27,17 @@ Y.extend(Chooser, M.core.chooserdialogue, { this.prepare_chooser(); } - // Set the category ID in the form - this may have been updated since the dialogue - // was previously displayed so we must update it here. - this.container.one(SELECTORS.QBANKCATEGORY).set('value', - Y.one(SELECTORS.CREATENEWQUESTIONFORM).get('category').get('value')); + // Update all of the hidden fields within the questionbank form. + var originForm = e.target.ancestor('form', true), + targetForm = this.container.one('form'), + hiddenElements = originForm.all('input[type="hidden"]'); + + targetForm.all('input.customfield').remove(); + hiddenElements.each(function(field) { + targetForm.appendChild(field.cloneNode()) + .removeAttribute('id') + .addClass('customfield'); + }); // Display the chooser dialogue. this.display_chooser(e);