Index: popups.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/popups/popups.js,v retrieving revision 1.9.8.15 diff -u -p -r1.9.8.15 popups.js --- popups.js 26 Mar 2009 17:30:54 -0000 1.9.8.15 +++ popups.js 8 Jun 2009 22:12:09 -0000 @@ -1147,3 +1147,18 @@ Drupal.theme.prototype.popupTemplate = f return template; }; +/** + * Capture any confirmation dialogue and give the cancel link a class of + * popups-cancel so that it will close the popup instead of going to the + * destination url. + */ +Drupal.behaviors.popupsClose = function() { + $('form.confirmation input[type~=submit]').next().click(function() { + Popups.close(); + return false; + }); + $('form.confirmation a.cancel').click(function() { + Popups.close(); + return false; + }); +}; Index: popups.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/popups/popups.module,v retrieving revision 1.11.8.11 diff -u -p -r1.11.8.11 popups.module --- popups.module 26 Mar 2009 17:25:19 -0000 1.11.8.11 +++ popups.module 8 Jun 2009 22:12:09 -0000 @@ -119,6 +119,14 @@ function popups_form_alter(&$form, $form ); $form['#submit'][] = 'popups_theme_settings_form_submit'; } + + // detect drupal_confirm()s + if (strpos($form['#attributes']['class'], 'confirmation') !== FALSE && isset($form['actions']['cancel'])) { + // Modify the href. + // Because this is a #type => 'markup' have to do some substr magik. + $new_value = substr($form['actions']['cancel']['#value'], 0, 3) . ' id="cancel" ' . substr($form['actions']['cancel']['#value'], 3); + $form['actions']['cancel']['#value'] = $new_value; + } } // **************************************************************************