Skip to content
Snippets Groups Projects
Commit 09a2b152 authored by Erik Hommel's avatar Erik Hommel
Browse files

added events and conditions to rule form

parent a8742e0d
No related branches found
No related tags found
No related merge requests found
Showing
with 221 additions and 52 deletions
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action { class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action {
} }
return $result; return $result;
} }
/** /**
* Function to add or update action * Function to add or update action
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action {
self::storeValues($action, $result); self::storeValues($action, $result);
return $result; return $result;
} }
/** /**
* Function to delete an action with id * Function to delete an action with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action {
$action->delete(); $action->delete();
return; return;
} }
/** /**
* Function to disable an action * Function to disable an action
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Action extends CRM_Civirules_DAO_Action {
$action->find(true); $action->find(true);
self::add(array('id' => $action->id, 'is_active' => 0)); self::add(array('id' => $action->id, 'is_active' => 0));
} }
/** /**
* Function to enable an action * Function to enable an action
* *
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison { class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison {
} }
return $result; return $result;
} }
/** /**
* Function to add or update comparison * Function to add or update comparison
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison {
self::storeValues($comparison, $result); self::storeValues($comparison, $result);
return $result; return $result;
} }
/** /**
* Function to delete a comparison with id * Function to delete a comparison with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison {
$comparison->delete(); $comparison->delete();
return; return;
} }
/** /**
* Function to disable a comparison * Function to disable a comparison
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison {
$comparison->find(true); $comparison->find(true);
self::add(array('id' => $comparison->id, 'is_active' => 0)); self::add(array('id' => $comparison->id, 'is_active' => 0));
} }
/** /**
* Function to enable a comparison * Function to enable a comparison
* *
...@@ -108,4 +113,22 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison { ...@@ -108,4 +113,22 @@ class CRM_Civirules_BAO_Comparison extends CRM_Civirules_DAO_Comparison {
$comparison->find(true); $comparison->find(true);
self::add(array('id' => $comparison->id, 'is_active' => 1)); self::add(array('id' => $comparison->id, 'is_active' => 1));
} }
/**
* Function to retrieve the label of a comparison with comparisonId
*
* @param int $comparisonId
* @return string $comparison->label
* @access public
* @static
*/
public static function getComparisonLabelWithId($comparisonId) {
if (empty($comparisonId)) {
return '';
}
$comparison = new CRM_Civirules_BAO_Comparison();
$comparison->id = $comparisonId;
$comparison->find(true);
return $comparison->label;
}
} }
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition { class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition {
} }
return $result; return $result;
} }
/** /**
* Function to add or update condition * Function to add or update condition
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition {
self::storeValues($condition, $result); self::storeValues($condition, $result);
return $result; return $result;
} }
/** /**
* Function to delete a condition with id * Function to delete a condition with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition {
$condition->delete(); $condition->delete();
return; return;
} }
/** /**
* Function to disable a condition * Function to disable a condition
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition {
$condition->find(true); $condition->find(true);
self::add(array('id' => $condition->id, 'is_active' => 0)); self::add(array('id' => $condition->id, 'is_active' => 0));
} }
/** /**
* Function to enable a condition * Function to enable a condition
* *
...@@ -108,4 +113,22 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition { ...@@ -108,4 +113,22 @@ class CRM_Civirules_BAO_Condition extends CRM_Civirules_DAO_Condition {
$condition->find(true); $condition->find(true);
self::add(array('id' => $condition->id, 'is_active' => 1)); self::add(array('id' => $condition->id, 'is_active' => 1));
} }
/**
* Function to retrieve the label of a condition with conditionId
*
* @param int $conditionId
* @return string $condition->label
* @access public
* @static
*/
public static function getConditionLabelWithId($conditionId) {
if (empty($conditionId)) {
return '';
}
$condition = new CRM_Civirules_BAO_Condition();
$condition->id = $conditionId;
$condition->find(true);
return $condition->label;
}
} }
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector { class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector {
} }
return $result; return $result;
} }
/** /**
* Function to add or update data selector * Function to add or update data selector
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector {
self::storeValues($dataSelector, $result); self::storeValues($dataSelector, $result);
return $result; return $result;
} }
/** /**
* Function to delete a data selector with id * Function to delete a data selector with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector {
$dataSelector->delete(); $dataSelector->delete();
return; return;
} }
/** /**
* Function to disable a data selector * Function to disable a data selector
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_DataSelector extends CRM_Civirules_DAO_DataSelector {
$dataSelector->find(true); $dataSelector->find(true);
self::add(array('id' => $dataSelector->id, 'is_active' => 0)); self::add(array('id' => $dataSelector->id, 'is_active' => 0));
} }
/** /**
* Function to enable a data selector * Function to enable a data selector
* *
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event { class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event {
} }
return $result; return $result;
} }
/** /**
* Function to add or update event * Function to add or update event
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event {
self::storeValues($event, $result); self::storeValues($event, $result);
return $result; return $result;
} }
/** /**
* Function to delete an event with id * Function to delete an event with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event {
$event->delete(); $event->delete();
return; return;
} }
/** /**
* Function to disable an event * Function to disable an event
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event {
$event->find(true); $event->find(true);
self::add(array('id' => $event->id, 'is_active' => 0)); self::add(array('id' => $event->id, 'is_active' => 0));
} }
/** /**
* Function to enable an event * Function to enable an event
* *
...@@ -108,6 +113,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event { ...@@ -108,6 +113,7 @@ class CRM_Civirules_BAO_Event extends CRM_Civirules_DAO_Event {
$event->find(true); $event->find(true);
self::add(array('id' => $event->id, 'is_active' => 1)); self::add(array('id' => $event->id, 'is_active' => 1));
} }
/** /**
* Function to retrieve the label of an event with eventId * Function to retrieve the label of an event with eventId
* *
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule { class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
} }
return $result; return $result;
} }
/** /**
* Function to add or update rule * Function to add or update rule
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
self::storeValues($rule, $result); self::storeValues($rule, $result);
return $result; return $result;
} }
/** /**
* Function to delete a rule with id * Function to delete a rule with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
$rule->delete(); $rule->delete();
return; return;
} }
/** /**
* Function to disable a rule * Function to disable a rule
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
$rule->find(true); $rule->find(true);
self::add(array('id' => $rule->id, 'is_active' => 0)); self::add(array('id' => $rule->id, 'is_active' => 0));
} }
/** /**
* Function to enable an rule * Function to enable an rule
* *
...@@ -108,6 +113,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule { ...@@ -108,6 +113,7 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
$rule->find(true); $rule->find(true);
self::add(array('id' => $rule->id, 'is_active' => 1)); self::add(array('id' => $rule->id, 'is_active' => 1));
} }
/** /**
* Function to retrieve the label of a rule with ruleId * Function to retrieve the label of a rule with ruleId
* *
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction { class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction {
} }
return $result; return $result;
} }
/** /**
* Function to add or update rule action * Function to add or update rule action
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction {
self::storeValues($ruleAction, $result); self::storeValues($ruleAction, $result);
return $result; return $result;
} }
/** /**
* Function to delete a rule action with id * Function to delete a rule action with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction {
$ruleAction->delete(); $ruleAction->delete();
return; return;
} }
/** /**
* Function to disable a rule action * Function to disable a rule action
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_RuleAction extends CRM_Civirules_DAO_RuleAction {
$ruleAction->find(true); $ruleAction->find(true);
self::add(array('id' => $ruleAction->id, 'is_active' => 0)); self::add(array('id' => $ruleAction->id, 'is_active' => 0));
} }
/** /**
* Function to enable a rule action * Function to enable a rule action
* *
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition { class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition {
/** /**
* Function to get values * Function to get values
* *
...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition { ...@@ -32,6 +33,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition {
} }
return $result; return $result;
} }
/** /**
* Function to add or update rule condition * Function to add or update rule condition
* *
...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition { ...@@ -57,6 +59,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition {
self::storeValues($ruleCondition, $result); self::storeValues($ruleCondition, $result);
return $result; return $result;
} }
/** /**
* Function to delete a rule condition with id * Function to delete a rule condition with id
* *
...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition { ...@@ -74,6 +77,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition {
$ruleCondition->delete(); $ruleCondition->delete();
return; return;
} }
/** /**
* Function to disable a rule condition * Function to disable a rule condition
* *
...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition { ...@@ -91,6 +95,7 @@ class CRM_Civirules_BAO_RuleCondition extends CRM_Civirules_DAO_RuleCondition {
$ruleCondition->find(true); $ruleCondition->find(true);
self::add(array('id' => $ruleCondition->id, 'is_active' => 0)); self::add(array('id' => $ruleCondition->id, 'is_active' => 0));
} }
/** /**
* Function to enable a rule condition * Function to enable a rule condition
* *
......
...@@ -52,7 +52,7 @@ class CRM_Civirules_DAO_Condition extends CRM_Core_DAO { ...@@ -52,7 +52,7 @@ class CRM_Civirules_DAO_Condition extends CRM_Core_DAO {
'civicrm_form_class' => array( 'civicrm_form_class' => array(
'name' => 'civicrm_form_class', 'name' => 'civicrm_form_class',
'type' => CRM_Utils_Type::T_STRING, 'type' => CRM_Utils_Type::T_STRING,
'maxlength' => 128, 'maxlength' => 256,
), ),
'is_active' => array( 'is_active' => array(
'name' => 'is_active', 'name' => 'is_active',
......
...@@ -42,8 +42,8 @@ class CRM_Civirules_DAO_RuleAction extends CRM_Core_DAO { ...@@ -42,8 +42,8 @@ class CRM_Civirules_DAO_RuleAction extends CRM_Core_DAO {
'name' => 'action_id', 'name' => 'action_id',
'type' => CRM_Utils_Type::T_INT 'type' => CRM_Utils_Type::T_INT
), ),
'value' => array( 'action_value' => array(
'name' => 'value', 'name' => 'action_value',
'type' => CRM_Utils_Type::T_STRING, 'type' => CRM_Utils_Type::T_STRING,
'maxlength' => 128, 'maxlength' => 128,
), ),
...@@ -58,7 +58,7 @@ class CRM_Civirules_DAO_RuleAction extends CRM_Core_DAO { ...@@ -58,7 +58,7 @@ class CRM_Civirules_DAO_RuleAction extends CRM_Core_DAO {
'civicrm_form_class' => array( 'civicrm_form_class' => array(
'name' => 'civicrm_form_class', 'name' => 'civicrm_form_class',
'type' => CRM_Utils_Type::T_STRING, 'type' => CRM_Utils_Type::T_STRING,
'maxlength' => 128 'maxlength' => 256
), ),
'is_active' => array( 'is_active' => array(
'name' => 'is_active', 'name' => 'is_active',
...@@ -81,7 +81,7 @@ class CRM_Civirules_DAO_RuleAction extends CRM_Core_DAO { ...@@ -81,7 +81,7 @@ class CRM_Civirules_DAO_RuleAction extends CRM_Core_DAO {
'id' => 'id', 'id' => 'id',
'rule_id' => 'rule_id', 'rule_id' => 'rule_id',
'action_id' => 'action_id', 'action_id' => 'action_id',
'value' => 'value', 'action_value' => 'action_value',
'comparison_id' => 'comparison_id', 'comparison_id' => 'comparison_id',
'params' => 'params', 'params' => 'params',
'civicrm_form_class' => 'civicrm_form_class', 'civicrm_form_class' => 'civicrm_form_class',
......
...@@ -42,8 +42,13 @@ class CRM_Civirules_DAO_RuleCondition extends CRM_Core_DAO { ...@@ -42,8 +42,13 @@ class CRM_Civirules_DAO_RuleCondition extends CRM_Core_DAO {
'name' => 'condition_id', 'name' => 'condition_id',
'type' => CRM_Utils_Type::T_INT 'type' => CRM_Utils_Type::T_INT
), ),
'value' => array( 'condition_operator' => array(
'name' => 'value', 'name' => 'condtion_operator',
'type' => CRM_Utils_Type::T_STRING,
'maxlength' => 25,
),
'condition_value' => array(
'name' => 'condtion_value',
'type' => CRM_Utils_Type::T_STRING, 'type' => CRM_Utils_Type::T_STRING,
'maxlength' => 128, 'maxlength' => 128,
), ),
...@@ -72,7 +77,8 @@ class CRM_Civirules_DAO_RuleCondition extends CRM_Core_DAO { ...@@ -72,7 +77,8 @@ class CRM_Civirules_DAO_RuleCondition extends CRM_Core_DAO {
'id' => 'id', 'id' => 'id',
'rule_id' => 'rule_id', 'rule_id' => 'rule_id',
'condition_id' => 'condition_id', 'condition_id' => 'condition_id',
'value' => 'value', 'condition_operator' => 'condition_operator',
'condition_value' => 'condition_value',
'comparison_id' => 'comparison_id', 'comparison_id' => 'comparison_id',
'is_active' => 'is_active' 'is_active' => 'is_active'
); );
......
...@@ -12,16 +12,18 @@ require_once 'CRM/Core/Form.php'; ...@@ -12,16 +12,18 @@ require_once 'CRM/Core/Form.php';
class CRM_Civirules_Form_Rule extends CRM_Core_Form { class CRM_Civirules_Form_Rule extends CRM_Core_Form {
protected $ruleId = NULL; protected $ruleId = NULL;
/** /**
* Function to buildQuickForm (extends parent function) * Function to buildQuickForm (extends parent function)
* *
* @access public * @access public
*/ */
function buildQuickForm() { function buildQuickForm() {
$this->set_page_title(); $this->setPageTitle();
$this->add_form_elements(); $this->createFormElements();
parent::buildQuickForm(); parent::buildQuickForm();
} }
/** /**
* Function to perform processing before displaying form (overrides parent function) * Function to perform processing before displaying form (overrides parent function)
* *
...@@ -52,6 +54,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -52,6 +54,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
break; break;
} }
} }
/** /**
* Function to perform post save processing (extends parent function) * Function to perform post save processing (extends parent function)
* *
...@@ -61,6 +64,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -61,6 +64,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$values = $this->getVar('_submitValues'); $values = $this->getVar('_submitValues');
parent::postProcess(); parent::postProcess();
} }
/** /**
* Function to set default values (overrides parent function) * Function to set default values (overrides parent function)
* *
...@@ -80,6 +84,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -80,6 +84,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
} }
return $defaults; return $defaults;
} }
/** /**
* Function to add validation rules (overrides parent function) * Function to add validation rules (overrides parent function)
* *
...@@ -88,6 +93,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -88,6 +93,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
function addRules() { function addRules() {
$this->addFormRule(array('CRM_Civirules_Form_Rule', 'validateRuleLabelExists')); $this->addFormRule(array('CRM_Civirules_Form_Rule', 'validateRuleLabelExists'));
} }
/** /**
* Function to validate if rule label already exists * Function to validate if rule label already exists
* *
...@@ -99,7 +105,11 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -99,7 +105,11 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
* if id not empty, edit mode. Check if changed before check if exists * if id not empty, edit mode. Check if changed before check if exists
*/ */
if (!empty($fields['id'])) { if (!empty($fields['id'])) {
if ($this->checkRuleLabelChanged($fields) == TRUE && /*
* check if values have changed against database label
*/
$currentLabel = CRM_Civirules_BAO_Rule::getRuleLabelWithId($fields['id']);
if ($fields['rule_label'] != $currentLabel &&
CRM_Civirules_BAO_Rule::labelExists($fields['rule_label']) == TRUE) { CRM_Civirules_BAO_Rule::labelExists($fields['rule_label']) == TRUE) {
$errors['rule_label'] = 'There is already a rule with this name'; $errors['rule_label'] = 'There is already a rule with this name';
return $errors; return $errors;
...@@ -112,27 +122,35 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -112,27 +122,35 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
} }
return TRUE; return TRUE;
} }
/** /**
* Function to add the form elements * Function to add the form elements
* *
* @access protected * @access protected
*/ */
protected function addFormElements() { protected function createFormElements() {
$this->add('hidden', 'id'); $this->add('hidden', 'id');
$this->add('text', 'rule_label', ts('Name'), array('size' => CRM_Utils_Type::HUGE), TRUE); $this->add('text', 'rule_label', ts('Name'), array('size' => CRM_Utils_Type::HUGE), TRUE);
$this->add('checkbox', 'rule_is_active', ts('Enabled')); $this->add('checkbox', 'rule_is_active', ts('Enabled'));
$this->add('text', 'rule_created_date', ts('Created Date')); $this->add('text', 'rule_created_date', ts('Created Date'));
$this->add('text', 'rule_created_contact', ts('Created By')); $this->add('text', 'rule_created_contact', ts('Created By'));
if ($this->_action == CRM_Core_Action::UPDATE) { if ($this->_action == CRM_Core_Action::UPDATE) {
$this->addUpdateFormElements(); $this->createUpdateFormElements();
} }
$this->addButtons(array( $this->addButtons(array(
array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,), array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
array('type' => 'cancel', 'name' => ts('Cancel')))); array('type' => 'cancel', 'name' => ts('Cancel'))));
} }
protected function addUpdateFormElements() {
/**
* Function to add the form elements specific for the update action
*/
protected function createUpdateFormElements() {
$this->add('text', 'rule_event_label', '', array('size' => CRM_Utils_Type::HUGE)); $this->add('text', 'rule_event_label', '', array('size' => CRM_Utils_Type::HUGE));
$this->assign('ruleConditions', $this->getRuleConditions());
//$this->assign('ruleActions', $this->getRuleActions());
} }
/** /**
* Function to set the page title based on action and data coming in * Function to set the page title based on action and data coming in
* *
...@@ -142,6 +160,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -142,6 +160,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$title = 'CiviRules '. ucfirst(CRM_Core_Action::description($this->_action)).' Rule'; $title = 'CiviRules '. ucfirst(CRM_Core_Action::description($this->_action)).' Rule';
CRM_Utils_System::setTitle($title); CRM_Utils_System::setTitle($title);
} }
/** /**
* Function to set default values if action is add * Function to set default values if action is add
* *
...@@ -154,6 +173,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -154,6 +173,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$session = CRM_Core_Session::singleton(); $session = CRM_Core_Session::singleton();
$defaults['rule_created_contact'] = CRM_Civirules_Utils::getContactName($session->get('userID')); $defaults['rule_created_contact'] = CRM_Civirules_Utils::getContactName($session->get('userID'));
} }
/** /**
* Function to set default values if action is update * Function to set default values if action is update
* *
...@@ -169,9 +189,12 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -169,9 +189,12 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
strtotime($ruleData[$this->ruleId]['created_date'])); strtotime($ruleData[$this->ruleId]['created_date']));
$defaults['rule_created_contact'] = CRM_Civirules_Utils:: $defaults['rule_created_contact'] = CRM_Civirules_Utils::
getContactName($ruleData[$this->ruleId]['created_contact_id']); getContactName($ruleData[$this->ruleId]['created_contact_id']);
$this->setEventDefaults($ruleData[$this->ruleId]['event_id'], $defaults); if (!empty($ruleData[$this->ruleId]['event_id'])) {
$this->setEventDefaults($ruleData[$this->ruleId]['event_id'], $defaults);
}
} }
} }
/** /**
* Function to get event defaults * Function to get event defaults
* *
...@@ -182,6 +205,60 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -182,6 +205,60 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
protected function setEventDefaults($eventId, &$defaults) { protected function setEventDefaults($eventId, &$defaults) {
if (!empty($eventId)) { if (!empty($eventId)) {
$defaults['rule_event_label'] = CRM_Civirules_BAO_Event::getEventLabelWithId($eventId); $defaults['rule_event_label'] = CRM_Civirules_BAO_Event::getEventLabelWithId($eventId);
$this->assign('deleteEventUrl', $this->setEventDeleteAction($eventId));
} }
} }
/**
* Function to get the rule conditions for the rule
*
* @return array $ruleConditions
* @access protected
*/
protected function getRuleConditions() {
$conditionParams = array(
'is_active' => 1,
'rule_id' => $this->ruleId);
$ruleConditions = CRM_Civirules_BAO_RuleCondition::getValues($conditionParams);
foreach ($ruleConditions as $ruleConditionId => $ruleCondition) {
$ruleConditions[$ruleConditionId]['name'] =
CRM_Civirules_BAO_Condition::getConditionLabelWithId($ruleCondition['condition_id']);
$ruleConditions[$ruleConditionId]['comparison'] =
CRM_Civirules_BAO_Comparison::getComparisonLabelWithId($ruleCondition['comparison_id']);
$ruleConditions[$ruleConditionId]['actions'] = $this->setRuleConditionActions($ruleConditionId);
}
return $ruleConditions;
}
/**
* Function to set the actions for each rule condition
*
* @param int $ruleConditionId
* @return array
* @access protected
*/
protected function setRuleConditionActions($ruleConditionId) {
$conditionActions = array();
$updateUrl = CRM_Utils_System::url('civicrm/civirule/form/rulecondition', 'action=update&id='.
$ruleConditionId);
$deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/rulecondition', 'action=delete&id='.
$ruleConditionId);
$conditionActions[] = '<a class="action-item" title="Update" href="'.$updateUrl.'">Edit</a>';
$conditionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>';
return $conditionActions;
}
/**
* Function to set the html for the delete event action
*
* @param int $eventId
* @return string $deleteHtml
* @access protected
*/
protected function setEventDeleteAction($eventId) {
$deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/event', 'action=delete&id='.
$eventId);
$deleteHtml = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>';
return $deleteHtml;
}
} }
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
require_once 'CRM/Core/Page.php'; require_once 'CRM/Core/Page.php';
class CRM_Civirules_Page_Rule extends CRM_Core_Page { class CRM_Civirules_Page_Rule extends CRM_Core_Page {
/** /**
* Standard run function created when generating page with Civix * Standard run function created when generating page with Civix
* *
...@@ -18,6 +19,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page { ...@@ -18,6 +19,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page {
$this->assign('rules', $this->getRules()); $this->assign('rules', $this->getRules());
parent::run(); parent::run();
} }
/** /**
* Function to get the data * Function to get the data
* *
...@@ -34,6 +36,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page { ...@@ -34,6 +36,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page {
} }
return $rules; return $rules;
} }
/** /**
* Function to set the row action urls and links for each row * Function to set the row action urls and links for each row
* *
...@@ -51,7 +54,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page { ...@@ -51,7 +54,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page {
$rule['id']); $rule['id']);
$enableUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=enable&id='. $enableUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=enable&id='.
$rule['id']); $rule['id']);
$rowActions[] = '<a class="action-item" title="Update" href="'.$updateUrl.'">Update</a>'; $rowActions[] = '<a class="action-item" title="Update" href="'.$updateUrl.'">Edit</a>';
$rowActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>'; $rowActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>';
if ($rule['is_active'] == 1) { if ($rule['is_active'] == 1) {
$rowActions[] = '<a class="action-item" title="Disable" href="'.$disableUrl.'">Disable</a>'; $rowActions[] = '<a class="action-item" title="Disable" href="'.$disableUrl.'">Disable</a>';
...@@ -60,6 +63,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page { ...@@ -60,6 +63,7 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page {
} }
return $rowActions; return $rowActions;
} }
/** /**
* Function to set the page configuration * Function to set the page configuration
* *
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
* Licensed to CiviCRM under the AGPL-3.0 * Licensed to CiviCRM under the AGPL-3.0
*/ */
class CRM_Civirules_Upgrader extends CRM_Civirules_Upgrader_Base { class CRM_Civirules_Upgrader extends CRM_Civirules_Upgrader_Base {
/** /**
* Create CiviRules tables on extension install. Do not change the * Create CiviRules tables on extension install. Do not change the
* sequence as there will be dependencies in the foreign keys * sequence as there will be dependencies in the foreign keys
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/agpl-3.0.html * @license http://www.gnu.org/licenses/agpl-3.0.html
*/ */
class CRM_Civirules_Utils { class CRM_Civirules_Utils {
/** /**
* Function return display name of contact retrieved with contact_id * Function return display name of contact retrieved with contact_id
* *
...@@ -28,6 +29,7 @@ class CRM_Civirules_Utils { ...@@ -28,6 +29,7 @@ class CRM_Civirules_Utils {
} }
return $contactName; return $contactName;
} }
/** /**
* Function to format is_active to yes/no * Function to format is_active to yes/no
* *
......
...@@ -106,6 +106,7 @@ function civirules_civicrm_caseTypes(&$caseTypes) { ...@@ -106,6 +106,7 @@ function civirules_civicrm_caseTypes(&$caseTypes) {
function civirules_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) { function civirules_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) {
_civirules_civix_civicrm_alterSettingsFolders($metaDataFolders); _civirules_civix_civicrm_alterSettingsFolders($metaDataFolders);
} }
/** /**
* Implementation of hook civicrm_navigationMenu * Implementation of hook civicrm_navigationMenu
* to create a CiviRules menu item in the Administer menu * to create a CiviRules menu item in the Administer menu
......
CREATE TABLE IF NOT EXISTS `civirule_action` ( CREATE TABLE IF NOT EXISTS civirule_action (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, id INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) NULL, name VARCHAR(64) NULL,
`label` VARCHAR(128) NULL, label VARCHAR(128) NULL,
`data_selector_id` INT UNSIGNED NULL, data_selector_id INT UNSIGNED NULL,
`is_active` TINYINT NULL DEFAULT 1, is_active TINYINT NULL DEFAULT 1,
PRIMARY KEY (`id`), PRIMARY KEY (id),
UNIQUE INDEX `id_UNIQUE` (`id` ASC), UNIQUE INDEX id_UNIQUE (id ASC),
INDEX `fk_data_selector_idx` (`data_selector_id` ASC), INDEX fk_data_selector_idx (data_selector_id ASC),
CONSTRAINT `fk_data_selector` CONSTRAINT fk_data_selector
FOREIGN KEY (`data_selector_id`) FOREIGN KEY (data_selector_id)
REFERENCES `civirule_data_selector` (`id`) REFERENCES civirule_data_selector (id)
ON DELETE NO ACTION ON DELETE NO ACTION
ON UPDATE NO ACTION) ON UPDATE NO ACTION)
ENGINE = InnoDB ENGINE = InnoDB
......
CREATE TABLE IF NOT EXISTS `civirule_comparison` ( CREATE TABLE IF NOT EXISTS civirule_comparison (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, id INT UNSIGNED NOT NULL AUTO_INCREMENT,
`label` VARCHAR(45) NULL, label VARCHAR(45) NULL,
`operator` VARCHAR(45) NULL, operator VARCHAR(45) NULL,
PRIMARY KEY (`id`), PRIMARY KEY (id),
UNIQUE INDEX `id_UNIQUE` (`id` ASC)) UNIQUE INDEX id_UNIQUE (id ASC))
ENGINE = InnoDB ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci COLLATE = utf8_general_ci
CREATE TABLE IF NOT EXISTS `civirule_condition` ( CREATE TABLE IF NOT EXISTS civirule_condition (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, id INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) NULL, name VARCHAR(64) NULL,
`label` VARCHAR(128) NULL, label VARCHAR(128) NULL,
`function_name` VARCHAR(256) NULL, function_name VARCHAR(256) NULL,
`civicrm_form_class` VARCHAR(128) NULL, civicrm_form_class VARCHAR(256) NULL,
`is_active` TINYINT NULL DEFAULT 1, is_active TINYINT NULL DEFAULT 1,
PRIMARY KEY (`id`), PRIMARY KEY (id),
UNIQUE INDEX `id_UNIQUE` (`id` ASC)) UNIQUE INDEX id_UNIQUE (id ASC))
ENGINE = InnoDB ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci COLLATE = utf8_general_ci
CREATE TABLE IF NOT EXISTS `civirule_data_selector` ( CREATE TABLE IF NOT EXISTS civirule_data_selector (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, id INT UNSIGNED NOT NULL AUTO_INCREMENT,
`entity` VARCHAR(64) NULL, entity VARCHAR(64) NULL,
`column` VARCHAR(128) NULL, column VARCHAR(128) NULL,
`label` VARCHAR(68) NULL, label VARCHAR(68) NULL,
`description` TEXT NULL, description TEXT NULL,
`is_active` TINYINT NULL DEFAULT 1, is_active TINYINT NULL DEFAULT 1,
PRIMARY KEY (`id`), PRIMARY KEY (id),
UNIQUE INDEX `id_UNIQUE` (`id` ASC)) UNIQUE INDEX id_UNIQUE (id ASC))
ENGINE = InnoDB ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci COLLATE = utf8_general_ci
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment