CRM-14843 - fixes for upgrade script including INSERT IGNORE usage.
[civicrm-core.git] / js / Common.js
index 7918a9596d59a105df51adb4dc021094add8c1d5..abc5cae3919372b766bb09156a5cef8341ce8d66 100644 (file)
@@ -245,7 +245,7 @@ CRM.validate = CRM.validate || {
  */
   CRM.utils.initialValueChanged = function(el) {
     var isDirty = false;
-    $(':input:visible, :input.select2-offscreen', el).not('[type=submit], [type=button], .crm-action-menu').each(function () {
+    $(':input:visible, .select2-container:visible+:input.select2-offscreen', el).not('[type=submit], [type=button], .crm-action-menu').each(function () {
       var initialValue = $(this).data('crm-initial-value');
       // skip change of value for submit buttons
       if (initialValue !== undefined && !_.isEqual(initialValue, $(this).val())) {
@@ -510,16 +510,17 @@ CRM.validate = CRM.validate || {
       }
     })
     .on('submit', function(e) {
-      // CRM-14353 - disable changes warn when submitting the form
-      $('[data-warn-changes]').removeAttr('data-warn-changes');
+      // CRM-14353 - disable changes warn when submitting a form
+      $('[data-warn-changes]').attr('data-warn-changes', 'false');
     })
-    ;
-    
-    window.onbeforeunload = function() {
-      if (CRM.utils.initialValueChanged($('form[data-warn-changes=true]'))) {
-        return ts('You have unsaved changes.');
-       }
-    };
+   ;
+
+  // CRM-14353 - Warn of unsaved changes for forms which have opted in
+  window.onbeforeunload = function() {
+    if (CRM.utils.initialValueChanged($('form[data-warn-changes=true]:visible'))) {
+      return ts('You have unsaved changes.');
+     }
+  };
 
   /**
    * Function to make multiselect boxes behave as fields in small screens