worked on CRM-12202, js code cleanup, move js call from php to js file
authorKurund Jalmi <kurund@civicrm.org>
Wed, 27 Mar 2013 11:16:30 +0000 (16:46 +0530)
committerKurund Jalmi <kurund@civicrm.org>
Wed, 27 Mar 2013 11:16:30 +0000 (16:46 +0530)
CRM/Case/BAO/Case.php
templates/CRM/Case/Form/ActivityChangeStatus.js

index 3ccbff8aa21d6c10f0de4c45dd4d60c0b4e04060..181c013dde5f5f1f361854df4a3925161b0088e4 100644 (file)
@@ -1287,7 +1287,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type
       }
 
       if ($allowEdit) {
-        $values[$dao->id]['status'] = '<a class="crm-activity-status crm-activity-status-' . $dao->id . ' ' . $values[$dao->id]['class'] . '" href="javascript:changeActivityStatus(' . $dao->id . ',' . $contactID . ',' . $dao->status . ', ' . $caseID . ');" title=\'' . $statusTitle . '\'>' . $values[$dao->id]['status'] . '</a>';
+        $values[$dao->id]['status'] = '<a class="crm-activity-status crm-activity-status-' . $dao->id . ' ' . $values[$dao->id]['class'] . ' crm-activity-change-status" activity_id='. $dao->id. ' contact_id=' . $contactID . ' current_status=' . $dao->status . ' case_id=' . $caseID . '" href="#" title=\'' . $statusTitle . '\'>' . $values[$dao->id]['status'] . '</a>';
       }
     }
     $dao->free();
index 2c2dce723020871ff7104ed0136870726c1601c0..3273b4905b6ef296f57416f187251c88776c51fe 100644 (file)
@@ -1,59 +1,72 @@
 // http://civicrm.org/licensing
-function changeActivityStatus(activityId, contactId, current_status_id, caseId) {
-  var data = 'snippet=1&reset=1';
-  cj('<div>')
-    .load(CRM.url('civicrm/case/changeactivitystatus'), data, function() {
-      cj("#activity_change_status").val(current_status_id);
-    })
-    .dialog({
-      modal: true,
-      title: ts('Change Activity Status'),
-      buttons: {
-        "Ok" : function() {
-          // update the status
-          var status_id = cj("#activity_change_status").val( );
+cj(function($) {
+  $('.crm-container').on('click', 'a.crm-activity-change-status', function() {
+    changeActivityStatus(
+      $(this).attr('activity_id'),
+      $(this).attr('contact_id'),
+      $(this).attr('current_status'),
+      $(this).attr('case_id')
+    );
+    return false;
+  });
 
-          if (status_id === current_status_id) {
-            return false;
-          }
+  function changeActivityStatus(activityId, contactId, current_status_id, caseId) {
+    var data = 'snippet=1&reset=1';
+    $('<div>')
+      .load(CRM.url('civicrm/case/changeactivitystatus'), data, function() {
+        cj("#activity_change_status").val(current_status_id);
+      })
+      .dialog({
+        modal: true,
+        title: ts('Change Activity Status'),
+        buttons: {
+          "Ok" : function() {
+            // update the status
+            var status_id = $("#activity_change_status").val( );
 
-          var dataUrl = CRM.url('civicrm/ajax/rest');
-          var data = 'json=1&version=3&entity=Activity&action=update&id=' + activityId + '&status_id=' + status_id
-            + '&case_id=' + caseId;
-          cj.ajax({
-            type     : "POST",
-            dataType : "json",
-            url      : dataUrl,
-            data     : data,
-            success  : function( values ) {
-              if ( values.is_error ) {
-                // seems to be some discrepancy as to which spelling it should be
-                var err_msg = values.error_msg ? values.error_msg : values.error_message;
-                CRM.alert(err_msg, ts('Unable to change status'), 'error');
-                return false;
-              }
-              else {
-                // just reload the page on success
-                window.location.reload();
-              }
-            },
-            error    : function( jqXHR, textStatus ) {
-              CRM.alert(jqXHR.responseText, jqXHR.statusText, 'error');
+            if (status_id === current_status_id) {
+              $(this).dialog('close').remove();
               return false;
             }
-          });
 
-          cj(this).dialog('close').remove();
+            var dataUrl = CRM.url('civicrm/ajax/rest');
+            var data = 'json=1&version=3&entity=Activity&action=update&id=' + activityId + '&status_id=' + status_id
+              + '&case_id=' + caseId;
+            $.ajax({
+              type     : "POST",
+              dataType : "json",
+              url      : dataUrl,
+              data     : data,
+              success  : function( values ) {
+                if ( values.is_error ) {
+                  // seems to be some discrepancy as to which spelling it should be
+                  var err_msg = values.error_msg ? values.error_msg : values.error_message;
+                  CRM.alert(err_msg, ts('Unable to change status'), 'error');
+                  return false;
+                }
+                else {
+                  // just reload the page on success
+                  window.location.reload();
+                }
+              },
+              error    : function( jqXHR, textStatus ) {
+                CRM.alert(jqXHR.responseText, jqXHR.statusText, 'error');
+                return false;
+              }
+            });
+
+            $(this).dialog('close').remove();
+          },
+          "Cancel": function() {
+            $(this).dialog('close').remove();
+          }
         },
-        "Cancel": function() {
-          cj(this).dialog('close').remove();
+        beforeClose: function() {
+          $(this).dialog("destroy");
         }
-      },
-      beforeClose: function() {
-        cj(this).dialog("destroy");
       }
-    }
-  );
-}
+    );
+  }
+});