From 7da1d94956bfefdf1da495fa220efa7876457eaf Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Tue, 8 Mar 2022 11:18:08 +0800 Subject: [PATCH] MDL-74112 course: Support multiple mforms in format chooser The format chooser JS assumes that it is the only mform on the page. If it is not, and another mform appears before it, then the jump will not work. --- .../moodle-course-formatchooser-debug.js | 9 +++++---- .../moodle-course-formatchooser-min.js | 2 +- .../moodle-course-formatchooser.js | 9 +++++---- course/yui/src/formatchooser/js/formatchooser.js | 9 +++++---- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-debug.js b/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-debug.js index aa2633ea7eb..f8393f1aeb6 100644 --- a/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-debug.js +++ b/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-debug.js @@ -7,14 +7,15 @@ var FORMATCHOOSER = function() { Y.extend(FORMATCHOOSER, Y.Base, { initializer: function(params) { if (params && params.formid) { - var updatebut = Y.one('#' + params.formid + ' #id_updatecourseformat'); - var formatselect = Y.one('#' + params.formid + ' #id_format'); + var form = Y.one('#' + params.formid); + var updatebut = form.one('#id_updatecourseformat'); + var formatselect = form.one('#id_format'); var ancestor = updatebut.ancestor('fieldset'); - var action = Y.one('form.mform').get('action'); + var action = form.get('action'); if (updatebut && formatselect) { updatebut.setStyle('display', 'none'); formatselect.on('change', function() { - Y.one('form.mform').set('action', action + '#' + ancestor.get('id')); + form.set('action', action + '#' + ancestor.get('id')); updatebut.simulate('click'); }); } diff --git a/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-min.js b/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-min.js index 3170899d8a4..f9317108842 100644 --- a/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-min.js +++ b/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser-min.js @@ -1 +1 @@ -YUI.add("moodle-course-formatchooser",function(t,o){var e=function(){e.superclass.constructor.apply(this,arguments)};t.extend(e,t.Base,{initializer:function(o){var e,n,r;o&&o.formid&&(e=t.one("#"+o.formid+" #id_updatecourseformat"),o=t.one("#"+o.formid+" #id_format"),n=e.ancestor("fieldset"),r=t.one("form.mform").get("action"),e&&o&&(e.setStyle("display","none"),o.on("change",function(){t.one("form.mform").set("action",r+"#"+n.get("id")),e.simulate("click")})))}}),M.course=M.course||{},M.course.init_formatchooser=function(o){return new e(o)}},"@VERSION@",{requires:["base","node","node-event-simulate"]}); \ No newline at end of file +YUI.add("moodle-course-formatchooser",function(r,e){var o=function(){o.superclass.constructor.apply(this,arguments)};r.extend(o,r.Base,{initializer:function(e){var o,n,t,i;e&&e.formid&&(o=r.one("#"+e.formid),n=o.one("#id_updatecourseformat"),e=o.one("#id_format"),t=n.ancestor("fieldset"),i=o.get("action"),n&&e&&(n.setStyle("display","none"),e.on("change",function(){o.set("action",i+"#"+t.get("id")),n.simulate("click")})))}}),M.course=M.course||{},M.course.init_formatchooser=function(e){return new o(e)}},"@VERSION@",{requires:["base","node","node-event-simulate"]}); \ No newline at end of file diff --git a/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser.js b/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser.js index aa2633ea7eb..f8393f1aeb6 100644 --- a/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser.js +++ b/course/yui/build/moodle-course-formatchooser/moodle-course-formatchooser.js @@ -7,14 +7,15 @@ var FORMATCHOOSER = function() { Y.extend(FORMATCHOOSER, Y.Base, { initializer: function(params) { if (params && params.formid) { - var updatebut = Y.one('#' + params.formid + ' #id_updatecourseformat'); - var formatselect = Y.one('#' + params.formid + ' #id_format'); + var form = Y.one('#' + params.formid); + var updatebut = form.one('#id_updatecourseformat'); + var formatselect = form.one('#id_format'); var ancestor = updatebut.ancestor('fieldset'); - var action = Y.one('form.mform').get('action'); + var action = form.get('action'); if (updatebut && formatselect) { updatebut.setStyle('display', 'none'); formatselect.on('change', function() { - Y.one('form.mform').set('action', action + '#' + ancestor.get('id')); + form.set('action', action + '#' + ancestor.get('id')); updatebut.simulate('click'); }); } diff --git a/course/yui/src/formatchooser/js/formatchooser.js b/course/yui/src/formatchooser/js/formatchooser.js index c74b66ae744..22c81cf540e 100644 --- a/course/yui/src/formatchooser/js/formatchooser.js +++ b/course/yui/src/formatchooser/js/formatchooser.js @@ -5,14 +5,15 @@ var FORMATCHOOSER = function() { Y.extend(FORMATCHOOSER, Y.Base, { initializer: function(params) { if (params && params.formid) { - var updatebut = Y.one('#' + params.formid + ' #id_updatecourseformat'); - var formatselect = Y.one('#' + params.formid + ' #id_format'); + var form = Y.one('#' + params.formid); + var updatebut = form.one('#id_updatecourseformat'); + var formatselect = form.one('#id_format'); var ancestor = updatebut.ancestor('fieldset'); - var action = Y.one('form.mform').get('action'); + var action = form.get('action'); if (updatebut && formatselect) { updatebut.setStyle('display', 'none'); formatselect.on('change', function() { - Y.one('form.mform').set('action', action + '#' + ancestor.get('id')); + form.set('action', action + '#' + ancestor.get('id')); updatebut.simulate('click'); }); }