Merge branch 'MDL-30660' of git://github.com/timhunt/moodle
[moodle.git] / lib / javascript-static.js
index 5bbc9c3..cb92452 100644 (file)
@@ -263,15 +263,28 @@ M.util.show_confirm_dialog = function(e, args) {
 
             if (target.test('a')) {
                 window.location = target.get('href');
+
             } else if ((targetancestor = target.ancestor('a')) !== null) {
                 window.location = targetancestor.get('href');
+
             } else if (target.test('input')) {
                 targetform = target.ancestor('form');
-                if (targetform && targetform.submit) {
-                    targetform.submit();
+                if (!targetform) {
+                    return;
                 }
+                if (target.get('name') && target.get('value')) {
+                    targetform.append('<input type="hidden" name="' + target.get('name') +
+                                    '" value="' + target.get('value') + '">');
+                }
+                targetform.submit();
+
+            } else if (target.get('tagName').toLowerCase() == 'form') {
+                // We cannot use target.test('form') on the previous line because of
+                // http://yuilibrary.com/projects/yui3/ticket/2531561
+                target.submit();
+
             } else if (M.cfg.developerdebug) {
-                alert("Element of type " + target.get('tagName') + " is not supported by the M.util.show_confirm_dialog function. Use A or INPUT");
+                alert("Element of type " + target.get('tagName') + " is not supported by the M.util.show_confirm_dialog function. Use A, INPUT, or FORM");
             }
         };