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

completed form for save rule actions

parent 6386432c
No related branches found
No related tags found
No related merge requests found
......@@ -131,5 +131,21 @@ class CRM_Civirules_BAO_Rule extends CRM_Civirules_DAO_Rule {
$rule->find(true);
return $rule->label;
}
/**
* Function to check if a label already exists in the rule table
*
* @param $labelToBeChecked
* @return bool
* @access public
* @static
*/
public static function labelExists($labelToBeChecked) {
$rule = new CRM_Civirules_BAO_Rule();
$rule->label = $labelToBeChecked;
if ($rule->count() > 0) {
return TRUE;
}
return FALSE;
}
}
\ No newline at end of file
......@@ -57,7 +57,7 @@ class CRM_Civirules_DAO_Event extends CRM_Core_DAO {
'class_name' => array(
'name' => 'class_name',
'type' => CRM_Utils_Type::T_STRING,
maxlength => 128
'maxlength' => 128
),
'is_active' => array(
'name' => 'is_active',
......
......@@ -61,7 +61,14 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
* @access public
*/
function postProcess() {
$values = $this->getVar('_submitValues');
$session = CRM_Core_Session::singleton();
$userId = $session->get('userID');
/*
* always save
*/
$this->saveRule($this->_submitValues, $userId);
$saveMessage = 'Rule ';
$session->setStatus($saveMessage. ' saved succesfully', 'CiviRule saved', 'success');
parent::postProcess();
}
......@@ -134,6 +141,9 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$this->add('checkbox', 'rule_is_active', ts('Enabled'));
$this->add('text', 'rule_created_date', ts('Created Date'));
$this->add('text', 'rule_created_contact', ts('Created By'));
$eventList = array_merge(array(' - select - '), CRM_Civirules_Utils::buildEventList());
asort($eventList);
$this->add('select', 'rule_event_select', ts('Select Event'), $eventList, TRUE);
if ($this->_action == CRM_Core_Action::UPDATE) {
$this->createUpdateFormElements();
}
......@@ -188,7 +198,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$defaults['rule_created_date'] = date('d-m-Y',
strtotime($ruleData[$this->ruleId]['created_date']));
$defaults['rule_created_contact'] = CRM_Civirules_Utils::
getContactName($ruleData[$this->ruleId]['created_contact_id']);
getContactName($ruleData[$this->ruleId]['created_user_id']);
if (!empty($ruleData[$this->ruleId]['event_id'])) {
$this->setEventDefaults($ruleData[$this->ruleId]['event_id'], $defaults);
}
......@@ -298,4 +308,28 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$actionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>';
return $actionActions;
}
/**
* Function to save rule
*
* @param array $formValues
* @param int $userId
* @access protected
*/
protected function saveRule($formValues, $userId) {
if ($this->_action == CRM_Core_Action::ADD) {
$ruleParams = array(
'created_date' => date('Ymd'),
'created_user_id' => $userId);
} else {
$ruleParams = array(
'modified_date' => date('Ymd'),
'modified_user_id' => $userId,
'id' => $formValues['id']);
}
$ruleParams['label'] = $formValues['rule_label'];
$ruleParams['name'] = CRM_Civirules_Utils::buildNameFromLabel($formValues['rule_label']);
$ruleParams['is_active'] = $formValues['rule_is_active'];
CRM_Civirules_BAO_Rule::add($ruleParams);
}
}
......@@ -30,8 +30,10 @@ class CRM_Civirules_Page_Rule extends CRM_Core_Page {
$rules = CRM_Civirules_BAO_Rule::getValues(array());
foreach ($rules as $ruleId => $rule) {
$rules[$ruleId]['actions'] = $this->setRowActions($rule);
$rules[$ruleId]['event_label'] = CRM_Civirules_BAO_Event::getEventLabelWithId($rule['event_id']);
$rules[$ruleId]['created_contact_name'] = CRM_Civirules_Utils::getContactName($rule['created_contact_id']);
if (isset($rule['event_id']) && !empty($rule['event_id'])) {
$rules[$ruleId]['event_label'] = CRM_Civirules_BAO_Event::getEventLabelWithId($rule['event_id']);
}
$rules[$ruleId]['created_contact_name'] = CRM_Civirules_Utils::getContactName($rule['created_user_id']);
$rules[$ruleId]['is_active'] = CRM_Civirules_Utils::formatIsActive($rule['is_active']);
}
return $rules;
......
......@@ -45,5 +45,35 @@ class CRM_Civirules_Utils {
return ts('No');
}
}
/**
* Public function to generate name from label
*
* @param $label
* @return string
* @access public
* @static
*/
public static function buildNameFromLabel($label) {
$labelParts = explode(' ', strtolower($label));
$nameString = implode('_', $labelParts);
return substr($nameString, 0, 80);
}
/**
* Function to build the event list
*
* @return array $eventList
* @access public
* @static
*/
public static function buildEventList() {
$eventList = array();
$events = CRM_Civirules_BAO_Event::getValues(array());
foreach ($events as $eventId => $event) {
$eventList[$eventId] = $event['label'];
}
return $eventList;
}
}
......@@ -5,9 +5,9 @@ CREATE TABLE IF NOT EXISTS civirule_rule (
event_id INT UNSIGNED NULL,
is_active TINYINT NULL DEFAULT 1,
created_date DATE NULL,
created_contact_id INT NULL,
created_user_id INT NULL,
modified_date DATE NULL,
modified_contact_id INT NULL,
modified_user_id INT NULL,
PRIMARY KEY (id),
UNIQUE INDEX id_UNIQUE (id ASC),
INDEX fk_rule_event_idx (event_id ASC),
......
......@@ -3,10 +3,10 @@
<h3>Linked Event</h3>
<div class="crm-block crm-form-block crm-civirule-event-block">
{if empty($form.rule_event_label.value)}
<div class="crm-submit-buttons">
<span class="crm-button crm-button-type-next crm-button_qf_Rule_next">
<input id="_qf_Rule_next-bottom" class="validate form-submit" type="submit" value="Add Event" name="_qf_Rule_next">
</span>
<div class="crm-section">
<div class="label">{$form.rule_event_select.label}</div>
<div class="content">{$form.rule_event_select.html}</div>
<div class="clear"></div>
</div>
{else}
<div class="crm-section">
......
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