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.
This commit is contained in:
Andrew Nicols
2022-03-17 10:55:43 +08:00
parent ed0dacbb5d
commit 7da1d94956
4 changed files with 16 additions and 13 deletions
@@ -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');
});
}
@@ -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"]});
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"]});
@@ -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');
});
}
+5 -4
View File
@@ -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');
});
}