Fix JS for input buttons that are now button buttons
[civicrm-core.git] / templates / CRM / common / TabHeader.js
index 429ec7660fa399349a44d94bddeec4a59464b323..ba514b81268fb2719b1485a598b685f1240a61c7 100644 (file)
@@ -23,9 +23,9 @@ CRM.$(function($) {
           params.autoClose = params.openInline = params.cancelButton = params.refreshAction = false;
           ui.panel.on('crmFormLoad', function() {
             // Hack: "Save and done" and "Cancel" buttons submit without ajax
-            $('.cancel.crm-form-submit, input[name$=upload_done]', this).on('click', function(e) {
+            $('.cancel.crm-form-submit, button[name$=upload_done]', this).on('click', function(e) {
               $(this).closest('form').ajaxFormUnbind();
-            })
+            });
           });
         }
         if (ui.tab.hasClass('livePage') && CRM.config.ajaxPopupsEnabled) {
@@ -124,14 +124,24 @@ CRM.$(function($) {
   };
 
   /**
-   * Refresh tab immediately if it is active, otherwise ensure it will be refreshed next time the user clicks on it
+   * Refresh tab immediately if it is active (or force=true)
+   * otherwise ensure it will be refreshed next time the user clicks on it
+   *
    * @param tab
+   * @param force
    */
-  CRM.tabHeader.resetTab = function(tab) {
+  CRM.tabHeader.resetTab = function(tab, force) {
     var $panel = CRM.tabHeader.getTabPanel(tab);
     if ($(tab).hasClass('ui-tabs-active')) {
       $panel.crmSnippet('refresh');
     }
+    else if (force) {
+      if ($panel.data("civiCrmSnippet")) {
+        $panel.crmSnippet('refresh');
+      } else {
+        $("#mainTabContainer").trigger('tabsbeforeload', [{panel: $panel, tab: $(tab)}]);
+      }
+    }
     else if ($panel.data("civiCrmSnippet")) {
       $panel.crmSnippet('destroy');
     }