From c1583b5a203487824d964ef0b6ec34046d46fe40 Mon Sep 17 00:00:00 2001
From: Erik Hommel <hommel@ee-atwork.nl>
Date: Wed, 11 Mar 2015 12:14:41 +0100
Subject: [PATCH] added condition_params in DAO & BAO and removes for Action
 and Condition

---
 CRM/Civirules/DAO/RuleCondition.php              |  5 +++++
 CRM/Civirules/Form/Rule.php                      | 14 +++++++-------
 CRM/Civirules/Form/RuleAction.php                |  6 ++++++
 CRM/Civirules/Form/RuleCondition.php             |  6 ++++++
 sql/createCiviruleRuleCondition.sql              |  1 +
 .../Civirules/Form/RuleBlocks/ActionBlock.tpl    | 16 ++++++++++------
 6 files changed, 35 insertions(+), 13 deletions(-)

diff --git a/CRM/Civirules/DAO/RuleCondition.php b/CRM/Civirules/DAO/RuleCondition.php
index 7efc0e8..48ff27a 100755
--- a/CRM/Civirules/DAO/RuleCondition.php
+++ b/CRM/Civirules/DAO/RuleCondition.php
@@ -47,6 +47,10 @@ class CRM_Civirules_DAO_RuleCondition extends CRM_Core_DAO {
           'name' => 'condition_id',
           'type' => CRM_Utils_Type::T_INT
         ),
+        'condition_params' => array(
+          'name' => 'condition_params',
+          'type' => CRM_Utils_Type::T_BLOB
+        ),
         'is_active' => array(
           'name' => 'is_active',
           'type' => CRM_Utils_Type::T_INT,
@@ -69,6 +73,7 @@ class CRM_Civirules_DAO_RuleCondition extends CRM_Core_DAO {
         'rule_id' => 'rule_id',
         'condition_link' => 'condition_link',
         'condition_id' => 'condition_id',
+        'condition_params' => 'condition_params',
         'is_active' => 'is_active'
       );
     }
diff --git a/CRM/Civirules/Form/Rule.php b/CRM/Civirules/Form/Rule.php
index 8f7fb42..c77b023 100755
--- a/CRM/Civirules/Form/Rule.php
+++ b/CRM/Civirules/Form/Rule.php
@@ -160,7 +160,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
    * @access protected
    */
   protected function createFormElements() {
-    $this->add('hidden', 'id', ts('RuleId'));
+    $this->add('hidden', 'id', ts('RuleId'), array('id' => 'ruleId'));
     $this->add('text', 'rule_label', ts('Name'), array('size' => CRM_Utils_Type::HUGE), TRUE);
     $this->add('checkbox', 'rule_is_active', ts('Enabled'));
     $this->add('text', 'rule_created_date', ts('Created Date'));
@@ -282,9 +282,9 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
    */
   protected function setRuleConditionActions($ruleConditionId) {
     $conditionActions = array();
-    $deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/rulecondition', 'reset=1&action=delete&id='.
-      $ruleConditionId);
-    $conditionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Remove</a>';
+    $removeUrl = CRM_Utils_System::url('civicrm/civirule/form/rule_condition', 'reset=1&action=delete&rid='
+      .$this->ruleId.'&id='.$ruleConditionId);
+    $conditionActions[] = '<a class="action-item" title="Remove" href="'.$removeUrl.'">Remove</a>';
     return $conditionActions;
   }
 
@@ -297,9 +297,9 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
    */
   protected function setRuleActionActions($ruleActionId) {
     $actionActions = array();
-    $deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/ruleaction', 'reset=1&action=delete&id='.
-      $ruleActionId);
-    $actionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Remove</a>';
+    $removeUrl = CRM_Utils_System::url('civicrm/civirule/form/rule_action', 'reset=1&action=delete&rid='
+      .$this->ruleId.'&id='.$ruleActionId);
+    $actionActions[] = '<a class="action-item" title="Remove" href="'.$removeUrl.'">Remove</a>';
     return $actionActions;
   }
 
diff --git a/CRM/Civirules/Form/RuleAction.php b/CRM/Civirules/Form/RuleAction.php
index d1917d2..cd74179 100644
--- a/CRM/Civirules/Form/RuleAction.php
+++ b/CRM/Civirules/Form/RuleAction.php
@@ -31,6 +31,12 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
    */
   function preProcess() {
     $this->ruleId = CRM_Utils_Request::retrieve('rid', 'Integer');
+    if ($this->_action == CRM_Core_Action::DELETE) {
+      $ruleActionId = CRM_Utils_Request::retrieve('id', 'Integer');
+      CRM_Civirules_BAO_RuleAction::deleteWithId($ruleActionId);
+      $redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id='.$this->ruleId, TRUE);
+      CRM_Utils_System::redirect($redirectUrl);
+    }
   }
 
   /**
diff --git a/CRM/Civirules/Form/RuleCondition.php b/CRM/Civirules/Form/RuleCondition.php
index 4b8e146..1fe93aa 100755
--- a/CRM/Civirules/Form/RuleCondition.php
+++ b/CRM/Civirules/Form/RuleCondition.php
@@ -31,6 +31,12 @@ class CRM_Civirules_Form_RuleCondition extends CRM_Core_Form {
    */
   function preProcess() {
     $this->ruleId = CRM_Utils_Request::retrieve('rid', 'Integer');
+    if ($this->_action == CRM_Core_Action::DELETE) {
+      $ruleConditionId = CRM_Utils_Request::retrieve('id', 'Integer');
+      CRM_Civirules_BAO_RuleCondition::deleteWithId($ruleConditionId);
+      $redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id='.$this->ruleId, TRUE);
+      CRM_Utils_System::redirect($redirectUrl);
+    }
   }
 
   /**
diff --git a/sql/createCiviruleRuleCondition.sql b/sql/createCiviruleRuleCondition.sql
index 9991493..f98d515 100755
--- a/sql/createCiviruleRuleCondition.sql
+++ b/sql/createCiviruleRuleCondition.sql
@@ -3,6 +3,7 @@ CREATE TABLE IF NOT EXISTS civirule_rule_condition (
   rule_id INT UNSIGNED NULL,
   condition_link VARCHAR(3) NULL,
   condition_id INT UNSIGNED NULL,
+  condition_params BLOB,
   is_active TINYINT NULL DEFAULT 1,
   PRIMARY KEY (id),
   UNIQUE INDEX id_UNIQUE (id ASC),
diff --git a/templates/CRM/Civirules/Form/RuleBlocks/ActionBlock.tpl b/templates/CRM/Civirules/Form/RuleBlocks/ActionBlock.tpl
index ed4ef47..10b57d9 100755
--- a/templates/CRM/Civirules/Form/RuleBlocks/ActionBlock.tpl
+++ b/templates/CRM/Civirules/Form/RuleBlocks/ActionBlock.tpl
@@ -13,9 +13,11 @@
           </tr>
         </thead>
         <tbody>
-          {assign var="row_class" value="odd-row"}
+          {assign var="rowClass" value="odd_row"}
+          {assign var="rowNumber" value=1}
           {foreach from=$ruleActions key=action_id item=ruleAction}
-            <tr id="row1" class={$row_class}>
+            <tr id="row_{$rowNumber}" class={$rowClass}>
+              <td hidden="1" id="ruleActionId">{$ruleAction.id}</td>
               <td>{$ruleAction.label}</td>
               {if !empty($ruleAction.action_params)}
                 <td>{$ruleAction.action_params}</td>
@@ -24,17 +26,18 @@
               {/if}
               <td>
                 <span>
-                  {foreach from=$ruleAction.actions item=action_link}
-                    {$action_link}
+                  {foreach from=$ruleAction.actions item=actionLink}
+                    {$actionLink}
                   {/foreach}
                 </span>
               </td>
             </tr>
-            {if $row_class eq "odd-row"}
-              {assign var="row_class" value="even-row"}
+            {if $row_class eq "odd_row"}
+              {assign var="rowClass" value="even-row"}
             {else}
               {assign var="row_class" value="odd-row"}
             {/if}
+            {assign var="rowNumber" value=$rowNumber+1}
           {/foreach}
         </tbody>
       </table>
@@ -45,3 +48,4 @@
       <span><div class="icon add-icon"></div>Add Action</span></a>
   </div>
 </div>
+
-- 
GitLab