CRM-13863 - Ajax improvements for changelog tab.
authorColeman Watts <coleman@civicrm.org>
Tue, 7 Jan 2014 04:10:25 +0000 (20:10 -0800)
committerColeman Watts <coleman@civicrm.org>
Tue, 7 Jan 2014 04:10:25 +0000 (20:10 -0800)
CRM/Report/Form.php
templates/CRM/Admin/Form/Setting/Miscellaneous.tpl
templates/CRM/Contact/Page/View/Log.tpl
templates/CRM/Contact/Page/View/Summary.js
templates/CRM/Contact/Page/View/Summary.tpl
templates/CRM/Tag/Form/Tag.tpl
templates/CRM/common/TabHeader.js

index 02ba61149ea1c719311cacdc87834d64d3705681..f91dba75ed065cd55e4e100aaebf0cce52982749 100644 (file)
@@ -2689,6 +2689,7 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
 
       $pager = new CRM_Utils_Pager($params);
       $this->assign_by_ref('pager', $pager);
+      $this->ajaxResponse['totalRows'] = $this->_rowsFound;
     }
   }
 
index 7916508a6090cc383cd67ea77e712d0d5e2a0128..f4a924f1f0d1541871a5df9a1855b45c50953e33 100644 (file)
@@ -54,8 +54,7 @@
           <td>
             {$form.logging.html}<br />
           {if $validTriggerPermission}
-            <p class="description">{ts}If enabled, all actions performed on non-cache tables will be logged (in the respective log_* tables).{/ts}</p>
-            <div class="status message">{ts}Logging functionality is currently in beta. Please test this feature on a copy of your database prior to using it on a production site.{/ts}</div>
+            <p class="description">{ts}If enabled, all actions will be logged with a complete record of changes.{/ts}</p>
           {else}
             <p class="description">{ts}In order to use this functionality, the installation's database user must have privileges to create triggers (in MySQL 5.0 – and in MySQL 5.1 if binary logging is enabled – this means the SUPER privilege). This install either does not seem to have the required privilege enabled.{/ts}&nbsp;{ts}This functionality cannot be enabled on multilingual installations.{/ts}</p>
            {/if}
index c3a636364951f02512e9e2c95a62d568d1ecb1ce..7949821751521cb27af6d8ea45ba42a939272249 100644 (file)
@@ -28,7 +28,7 @@
    <div class="bold">{ts}Change Log:{/ts} {$displayName}</div>
    {if $useLogging}
      <br />
-     <div id='instance_data'><div class="crm-loading-element"></div></div>
+     <div class='instance_data'><div class="crm-loading-element"></div></div>
    {else}
     <div class="form-item">
      {if $logCount > 0 }
 {if $useLogging}
 {literal}
   <script type="text/javascript">
-  CRM.reloadChangeLogTab = function() {
-    cj('#changeLog #instance_data').load({/literal}"{$instanceUrl}"{literal});
-  };
-  cj(function () {
-    CRM.reloadChangeLogTab();
+  cj(function ($) {
+    $('#changeLog .instance_data').on('crmLoad', function(e, data) {
+      CRM.tabHeader.updateCount('#tab_log', data.totalRows);
+    });
+    CRM.reloadChangeLogTab = function(url) {
+      if (url) {
+        $('#changeLog .instance_data').crmSnippet({url: url});
+      }
+      $('#changeLog .instance_data').crmSnippet('refresh');
+    };
+    CRM.reloadChangeLogTab({/literal}"{$instanceUrl}"{literal});
 
-    cj('#changeLog').on('click', '.report-pager .crm-pager-nav a', function(e) {
-      cj('#changeLog #instance_data').block().load(this.href + '&snippet=4&section=2');
+    $('#changeLog').on('click', '.report-pager .crm-pager-nav a', function(e) {
+      CRM.reloadChangeLogTab(this.href + '&section=2');
       return false;
     });
 
-    cj('#changeLog').on('click', 'input[name="PagerBottomButton"], input[name="PagerTopButton"]', function(e) {
-      var url  = cj('#changeLog #instance_data .report-pager .crm-pager-nav a:first').attr('href') + '&snippet=4&section=2';
-      cj('#changeLog #instance_data').block().load(url + '&crmPID=' + cj(this).siblings('input[type=text]').val());
+    $('#changeLog').on('click', 'input[name="PagerBottomButton"], input[name="PagerTopButton"]', function(e) {
+      var url  = $('#changeLog .instance_data .report-pager .crm-pager-nav a:first').attr('href') + '&section=2';
+      CRM.reloadChangeLogTab(url + '&crmPID=' + $(this).siblings('input[type=text]').val());
       return false;
     });
   });
index 282825cfe0d49472746c8e24ffacf29da33f07e0..4b6d48b1d36ea069197396651647eecad48831be 100644 (file)
         CRM.tabHeader.updateCount('#tab_log', response.changeLog.count);
       }
       $("#crm-record-log").replaceWith(response.changeLog.markup);
-      // Refresh tab contents - Advanced logging
-      if (CRM.reloadChangeLogTab) {
-        CRM.reloadChangeLogTab();
-      }
-      // Refresh tab contents - Simple logging
-      else if ($('#changeLog').closest('.ui-tabs-panel').data('civiCrmSnippet')) {
+      // Refresh tab contents - Simple
+      if (!CRM.reloadChangeLogTab && $('#changeLog').closest('.ui-tabs-panel').data('civiCrmSnippet')) {
         $('#changeLog').closest('.ui-tabs-panel').crmSnippet('destroy');
       }
     }
           });
         return false;
       });
-    // Actions menu
-    $(document).on('click', function(e) {
-      if ($(e.target).is('#crm-contact-actions-link, #crm-contact-actions-link *')) {
-        $('#crm-contact-actions-list').show();
-        return false;
-      }
-      $('#crm-contact-actions-list').hide();
-    });
+    $(document)
+      // Actions menu
+      .on('click', function(e) {
+        if ($(e.target).is('#crm-contact-actions-link, #crm-contact-actions-link *')) {
+          $('#crm-contact-actions-list').show();
+          return false;
+        }
+        $('#crm-contact-actions-list').hide();
+      })
+      .on('crmFormSuccess', function(e) {
+        CRM.reloadChangeLogTab && CRM.reloadChangeLogTab();
+      });
     $().crmAccordions();
   });
 })(cj);
index 27eef2bc6dff3f605d4cc80deff86882b7b06404..136420db28626c9c8652bf91b965735b9851d0d1 100644 (file)
   <div class="crm-block crm-content-block crm-contact-page crm-inline-edit-container">
     <div id="mainTabContainer">
       <ul class="crm-contact-tabs-list">
-        <li id="tab_summary" class="crm-tab-button">
+        <li id="tab_summary" class="crm-tab-button ui-corner-all">
           <a href="#contact-summary" title="{ts}Summary{/ts}">
             <span> </span> {ts}Summary{/ts}
-            <em>&nbsp;</em>
+            <em></em>
           </a>
         </li>
         {foreach from=$allTabs key=tabName item=tabValue}
index 4a59e37afbd31ce496b7610da3527d112a1154c7..13f53462950d8334ce0065ec7936590eb68a7b48 100644 (file)
@@ -73,6 +73,7 @@
       });
       // showing count of tags in summary tab
       CRM.tabHeader && CRM.tabHeader.updateCount('#tab_tag', tags.length);
+      CRM.reloadChangeLogTab && CRM.reloadChangeLogTab();
       // update summary tab
       $("#tags").html(tags.join(', '));
     };
index 37fb70f2f5c8329dfa4ad4de51a197517fdae6ae..3f9e5e3798097e049f17a68f73a004aa2cabd2a9 100644 (file)
@@ -67,8 +67,11 @@ cj(function($) {
   // Utility functions
   CRM.tabHeader = CRM.tabHeader || {};
   CRM.tabHeader.updateCount = function(tab, count) {
+    var oldClass = $(tab).attr('class').match(/(crm-count-\d+)/);
+    if (oldClass) {
+      $(tab).removeClass(oldClass[0]);
+    }
     $(tab)
-      .removeClass($(tab).attr('class').match(/(crm-count-\d+)/)[0] || 'null')
       .addClass('crm-count-' + count)
       .find('a em').html('' + count);
   }