From aec2a725a80c60e681387b5dfb57624b05863979 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 9 Oct 2014 17:22:22 +0100 Subject: [PATCH] MDL-43089 quiz editing: fix some qbank popup JS issues. --- .../moodle-mod_quiz-quizquestionbank-debug.js | 17 ++++++++++++++++- .../moodle-mod_quiz-quizquestionbank-min.js | 2 +- .../moodle-mod_quiz-quizquestionbank.js | 17 ++++++++++++++++- .../src/quizquestionbank/js/quizquestionbank.js | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-debug.js b/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-debug.js index db716633e69..d71d5f2d3ea 100644 --- a/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-debug.js +++ b/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-debug.js @@ -60,7 +60,8 @@ Y.extend(POPUP, Y.Base, { extraClasses: ['mod_quiz_qbank_dialogue'] }; this.dialogue = new M.core.dialogue(config); - this.dialogue.bodyNode.delegate('click', this.link_clicked, 'a[href]', this); + this.dialogue.bodyNode.delegate('click', this.link_clicked, + '.paging a[href], thead tr a[href]', this); this.dialogue.hide(); this.loadingDiv = this.dialogue.bodyNode.getHTML(); @@ -133,6 +134,20 @@ Y.extend(POPUP, Y.Base, { Y.later(0, this.dialogue, this.dialogue.centerDialogue); } M.question.qbankmanager.init(); + + if (Y.one('#advancedsearch')) { + M.util.init_collapsible_region(Y, "advancedsearch", "question_bank_advanced_search", + M.util.get_string('clicktohideshow')); + } + + this.dialogue.fire('widget:contentUpdate'); + // TODO MDL-47602 really, the base class should listen for the even fired + // on the previous line, and fix things like makeResponsive. + // However, it does not. So the next two lines are a hack to fix up + // display issues (e.g. overall scrollbars on the page). Once the base class + // is fixed, this comment and the following two lines should be deleted. + this.dialogue.hide(); + this.dialogue.show(); }, load_failed: function() { diff --git a/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-min.js b/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-min.js index 83c5ba2cd33..4de9b38e30e 100644 --- a/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-min.js +++ b/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank-min.js @@ -1 +1 @@ -YUI.add("moodle-mod_quiz-quizquestionbank",function(e,t){var n={QBANKLOADING:"div.questionbankloading",ADDQUESTIONLINKS:"ul.menu a.questionbank",ADDTOQUIZCONTAINER:"td.addtoquizaction"},r={PAGE:"addonpage",HEADER:"header"},i=function(){i.superclass.constructor.apply(this,arguments)};e.extend(i,e.Base,{loadingDiv:"",dialogue:null,addonpage:0,create_dialogue:function(){config={headerContent:"",bodyContent:e.one(n.QBANKLOADING),draggable:!0,modal:!0,centered:!0,width:null,visible:!1,postmethod:"form",footerContent:null,extraClasses:["mod_quiz_qbank_dialogue"]},this.dialogue=new M.core.dialogue(config),this.dialogue.bodyNode.delegate("click",this.link_clicked,"a[href]",this),this.dialogue.hide(),this.loadingDiv=this.dialogue.bodyNode.getHTML(),e.later(100,this,function(){this.load_content(window.location.search)})},initializer:function(){if(!e.one(n.QBANKLOADING))return;this.create_dialogue(),e.one("body").delegate("click",this.display_dialogue,n.ADDQUESTIONLINKS,this)},display_dialogue:function(e){e.preventDefault(),this.dialogue.set("headerContent",e.currentTarget.getData(r.HEADER)),this.addonpage=e.currentTarget.getData(r.PAGE);var t=this.dialogue.bodyNode.one(".modulespecificbuttonscontainer");if(t){var n=t.one("input[name=addonpage]");n||(n=t.appendChild('')),n.set("value",this.addonpage)}this.dialogue.show()},load_content:function(t){this.dialogue.bodyNode.append(this.loadingDiv),window.history.replaceState&&window.history.replaceState(null,"",M.cfg.wwwroot+"/mod/quiz/edit.php"+t),e.io(M.cfg.wwwroot+"/mod/quiz/questionbank.ajax.php"+t,{method:"GET",on:{success:this.load_done,failure:this.load_failed},context:this})},load_done:function(t,n){var r=JSON.parse(n.responseText);if(!r.status||r.status!=="OK"){this.load_failed(t,n);return}this.dialogue.bodyNode.setHTML(r.contents),e.use("moodle-question-chooser",function(){M.question.init_chooser({})}),this.dialogue.bodyNode.one("form").delegate("change",this.options_changed,".searchoptions",this),this.dialogue.visible&&e.later(0,this.dialogue,this.dialogue.centerDialogue),M.question.qbankmanager.init()},load_failed:function(){},link_clicked:function(e){if(e.currentTarget.ancestor(n.ADDTOQUIZCONTAINER)){e.currentTarget.set("href",e.currentTarget.get("href")+"&addonpage="+this.addonpage);return}e.preventDefault(),this.load_content(e.currentTarget.get("search"))},options_changed:function(t){t.preventDefault(),this.load_content("?"+e.IO.stringify(t.currentTarget.get("form")))}}),M.mod_quiz=M.mod_quiz||{},M.mod_quiz.quizquestionbank=M.mod_quiz.quizquestionbank||{},M.mod_quiz.quizquestionbank.init=function(){return new i}},"@VERSION@",{requires:["base","event","node","io","io-form","yui-later","moodle-question-qbankmanager","moodle-core-notification-dialogue"]}); +YUI.add("moodle-mod_quiz-quizquestionbank",function(e,t){var n={QBANKLOADING:"div.questionbankloading",ADDQUESTIONLINKS:"ul.menu a.questionbank",ADDTOQUIZCONTAINER:"td.addtoquizaction"},r={PAGE:"addonpage",HEADER:"header"},i=function(){i.superclass.constructor.apply(this,arguments)};e.extend(i,e.Base,{loadingDiv:"",dialogue:null,addonpage:0,create_dialogue:function(){config={headerContent:"",bodyContent:e.one(n.QBANKLOADING),draggable:!0,modal:!0,centered:!0,width:null,visible:!1,postmethod:"form",footerContent:null,extraClasses:["mod_quiz_qbank_dialogue"]},this.dialogue=new M.core.dialogue(config),this.dialogue.bodyNode.delegate("click",this.link_clicked,".paging a[href], thead tr a[href]",this),this.dialogue.hide(),this.loadingDiv=this.dialogue.bodyNode.getHTML(),e.later(100,this,function(){this.load_content(window.location.search)})},initializer:function(){if(!e.one(n.QBANKLOADING))return;this.create_dialogue(),e.one("body").delegate("click",this.display_dialogue,n.ADDQUESTIONLINKS,this)},display_dialogue:function(e){e.preventDefault(),this.dialogue.set("headerContent",e.currentTarget.getData(r.HEADER)),this.addonpage=e.currentTarget.getData(r.PAGE);var t=this.dialogue.bodyNode.one(".modulespecificbuttonscontainer");if(t){var n=t.one("input[name=addonpage]");n||(n=t.appendChild('')),n.set("value",this.addonpage)}this.dialogue.show()},load_content:function(t){this.dialogue.bodyNode.append(this.loadingDiv),window.history.replaceState&&window.history.replaceState(null,"",M.cfg.wwwroot+"/mod/quiz/edit.php"+t),e.io(M.cfg.wwwroot+"/mod/quiz/questionbank.ajax.php"+t,{method:"GET",on:{success:this.load_done,failure:this.load_failed},context:this})},load_done:function(t,n){var r=JSON.parse(n.responseText);if(!r.status||r.status!=="OK"){this.load_failed(t,n);return}this.dialogue.bodyNode.setHTML(r.contents),e.use("moodle-question-chooser",function(){M.question.init_chooser({})}),this.dialogue.bodyNode.one("form").delegate("change",this.options_changed,".searchoptions",this),this.dialogue.visible&&e.later(0,this.dialogue,this.dialogue.centerDialogue),M.question.qbankmanager.init(),e.one("#advancedsearch")&&M.util.init_collapsible_region(e,"advancedsearch","question_bank_advanced_search",M.util.get_string("clicktohideshow")),this.dialogue.fire("widget:contentUpdate"),this.dialogue.hide(),this.dialogue.show()},load_failed:function(){},link_clicked:function(e){if(e.currentTarget.ancestor(n.ADDTOQUIZCONTAINER)){e.currentTarget.set("href",e.currentTarget.get("href")+"&addonpage="+this.addonpage);return}e.preventDefault(),this.load_content(e.currentTarget.get("search"))},options_changed:function(t){t.preventDefault(),this.load_content("?"+e.IO.stringify(t.currentTarget.get("form")))}}),M.mod_quiz=M.mod_quiz||{},M.mod_quiz.quizquestionbank=M.mod_quiz.quizquestionbank||{},M.mod_quiz.quizquestionbank.init=function(){return new i}},"@VERSION@",{requires:["base","event","node","io","io-form","yui-later","moodle-question-qbankmanager","moodle-core-notification-dialogue"]}); diff --git a/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank.js b/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank.js index 951a2d1e7bf..b6e30df6411 100644 --- a/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank.js +++ b/mod/quiz/yui/build/moodle-mod_quiz-quizquestionbank/moodle-mod_quiz-quizquestionbank.js @@ -60,7 +60,8 @@ Y.extend(POPUP, Y.Base, { extraClasses: ['mod_quiz_qbank_dialogue'] }; this.dialogue = new M.core.dialogue(config); - this.dialogue.bodyNode.delegate('click', this.link_clicked, 'a[href]', this); + this.dialogue.bodyNode.delegate('click', this.link_clicked, + '.paging a[href], thead tr a[href]', this); this.dialogue.hide(); this.loadingDiv = this.dialogue.bodyNode.getHTML(); @@ -130,6 +131,20 @@ Y.extend(POPUP, Y.Base, { Y.later(0, this.dialogue, this.dialogue.centerDialogue); } M.question.qbankmanager.init(); + + if (Y.one('#advancedsearch')) { + M.util.init_collapsible_region(Y, "advancedsearch", "question_bank_advanced_search", + M.util.get_string('clicktohideshow')); + } + + this.dialogue.fire('widget:contentUpdate'); + // TODO MDL-47602 really, the base class should listen for the even fired + // on the previous line, and fix things like makeResponsive. + // However, it does not. So the next two lines are a hack to fix up + // display issues (e.g. overall scrollbars on the page). Once the base class + // is fixed, this comment and the following two lines should be deleted. + this.dialogue.hide(); + this.dialogue.show(); }, load_failed: function() { diff --git a/mod/quiz/yui/src/quizquestionbank/js/quizquestionbank.js b/mod/quiz/yui/src/quizquestionbank/js/quizquestionbank.js index 8c6841e5d44..d921045b5eb 100644 --- a/mod/quiz/yui/src/quizquestionbank/js/quizquestionbank.js +++ b/mod/quiz/yui/src/quizquestionbank/js/quizquestionbank.js @@ -58,7 +58,8 @@ Y.extend(POPUP, Y.Base, { extraClasses: ['mod_quiz_qbank_dialogue'] }; this.dialogue = new M.core.dialogue(config); - this.dialogue.bodyNode.delegate('click', this.link_clicked, 'a[href]', this); + this.dialogue.bodyNode.delegate('click', this.link_clicked, + '.paging a[href], thead tr a[href]', this); this.dialogue.hide(); this.loadingDiv = this.dialogue.bodyNode.getHTML(); @@ -131,6 +132,20 @@ Y.extend(POPUP, Y.Base, { Y.later(0, this.dialogue, this.dialogue.centerDialogue); } M.question.qbankmanager.init(); + + if (Y.one('#advancedsearch')) { + M.util.init_collapsible_region(Y, "advancedsearch", "question_bank_advanced_search", + M.util.get_string('clicktohideshow')); + } + + this.dialogue.fire('widget:contentUpdate'); + // TODO MDL-47602 really, the base class should listen for the even fired + // on the previous line, and fix things like makeResponsive. + // However, it does not. So the next two lines are a hack to fix up + // display issues (e.g. overall scrollbars on the page). Once the base class + // is fixed, this comment and the following two lines should be deleted. + this.dialogue.hide(); + this.dialogue.show(); }, load_failed: function() {