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

added basic action form

parent a171055f
No related branches found
No related tags found
No related merge requests found
...@@ -31,8 +31,10 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -31,8 +31,10 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
*/ */
function preProcess() { function preProcess() {
$this->ruleId = CRM_Utils_Request::retrieve('id', 'Integer'); $this->ruleId = CRM_Utils_Request::retrieve('id', 'Integer');
$ruleConditionAddUrl = CRM_Utils_System::url('civicrm/civirule/form/rule_condition', 'action=add&rid='.$this->ruleId, TRUE); $ruleConditionAddUrl = CRM_Utils_System::url('civicrm/civirule/form/rule_condition', 'reset=1&action=add&rid='.$this->ruleId, TRUE);
$ruleActionAddUrl = CRM_Utils_System::url('civicrm/civirule/form/rule_action', 'reset=1&action=add&rid='.$this->ruleId, TRUE);
$this->assign('ruleConditionAddUrl', $ruleConditionAddUrl); $this->assign('ruleConditionAddUrl', $ruleConditionAddUrl);
$this->assign('ruleActionAddUrl', $ruleActionAddUrl);
$session = CRM_Core_Session::singleton(); $session = CRM_Core_Session::singleton();
switch($this->_action) { switch($this->_action) {
case CRM_Core_Action::DELETE: case CRM_Core_Action::DELETE:
...@@ -282,7 +284,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -282,7 +284,7 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
$conditionActions = array(); $conditionActions = array();
$deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/rulecondition', 'reset=1&action=delete&id='. $deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/rulecondition', 'reset=1&action=delete&id='.
$ruleConditionId); $ruleConditionId);
$conditionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>'; $conditionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Remove</a>';
return $conditionActions; return $conditionActions;
} }
...@@ -295,12 +297,9 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form { ...@@ -295,12 +297,9 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
*/ */
protected function setRuleActionActions($ruleActionId) { protected function setRuleActionActions($ruleActionId) {
$actionActions = array(); $actionActions = array();
$updateUrl = CRM_Utils_System::url('civicrm/civirule/form/ruleaction', 'reset=1&action=update&id='.
$ruleActionId);
$deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/ruleaction', 'reset=1&action=delete&id='. $deleteUrl = CRM_Utils_System::url('civicrm/civirule/form/ruleaction', 'reset=1&action=delete&id='.
$ruleActionId); $ruleActionId);
$actionActions[] = '<a class="action-item" title="Update" href="'.$updateUrl.'">Edit</a>'; $actionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Remove</a>';
$actionActions[] = '<a class="action-item" title="Delete" href="'.$deleteUrl.'">Delete</a>';
return $actionActions; return $actionActions;
} }
......
<?php
/**
* Form controller class to manage CiviRule/RuleAction
*
* @see http://wiki.civicrm.org/confluence/display/CRMDOC43/QuickForm+Reference
*
* @author Erik Hommel (CiviCooP) <erik.hommel@civicoop.org>
* @license http://www.gnu.org/licenses/agpl-3.0.html
*/
require_once 'CRM/Core/Form.php';
class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
protected $ruleId = NULL;
/**
* Function to buildQuickForm (extends parent function)
*
* @access public
*/
function buildQuickForm() {
$this->setFormTitle();
$this->createFormElements();
parent::buildQuickForm();
}
/**
* Function to perform processing before displaying form (overrides parent function)
*
* @access public
*/
function preProcess() {
$this->ruleId = CRM_Utils_Request::retrieve('rid', 'Integer');
}
/**
* Function to perform post save processing (extends parent function)
*
* @access public
*/
function postProcess() {
$session = CRM_Core_Session::singleton();
$saveParams = array(
'rule_id' => $this->_submitValues['rule_id'],
'action_id' => $this->_submitValues['rule_action_select']
);
CRM_Civirules_BAO_RuleAction::add($saveParams);
$redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id='.$this->_submitValues['rule_id'], TRUE);
$session->setStatus('Action added to CiviRule '.CRM_Civirules_BAO_Rule::getRuleLabelWithId($this->_submitValues['rule_id']),
'Action added', 'success');
CRM_Utils_System::redirect($redirectUrl);
}
/**
* Function to add the form elements
*
* @access protected
*/
protected function createFormElements() {
$this->add('hidden', 'rule_id');
$actionList = array_merge(array(' - select - '), CRM_Civirules_Utils::buildActionList());
asort($actionList);
$this->add('select', 'rule_action_select', ts('Select Action'), $actionList, TRUE);
$this->addButtons(array(
array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
array('type' => 'cancel', 'name' => ts('Cancel'))));
}
public function setDefaultValues() {
$defaults['rule_id'] = $this->ruleId;
return $defaults;
}
/**
* Function to set the form title based on action and data coming in
*
* @access protected
*/
protected function setFormTitle() {
$title = 'CiviRules Add Action';
$this->assign('ruleActionHeader', 'Add Action to CiviRule '.CRM_Civirules_BAO_Rule::getRuleLabelWithId($this->ruleId));
CRM_Utils_System::setTitle($title);
}
}
...@@ -12,7 +12,6 @@ require_once 'CRM/Core/Form.php'; ...@@ -12,7 +12,6 @@ require_once 'CRM/Core/Form.php';
class CRM_Civirules_Form_RuleCondition extends CRM_Core_Form { class CRM_Civirules_Form_RuleCondition extends CRM_Core_Form {
protected $ruleId = NULL; protected $ruleId = NULL;
protected $redirectUrl = NULL;
/** /**
* Function to buildQuickForm (extends parent function) * Function to buildQuickForm (extends parent function)
...@@ -49,9 +48,10 @@ class CRM_Civirules_Form_RuleCondition extends CRM_Core_Form { ...@@ -49,9 +48,10 @@ class CRM_Civirules_Form_RuleCondition extends CRM_Core_Form {
$saveParams['condition_link'] = $this->_submitValues['rule_condition_link_select']; $saveParams['condition_link'] = $this->_submitValues['rule_condition_link_select'];
} }
CRM_Civirules_BAO_RuleCondition::add($saveParams); CRM_Civirules_BAO_RuleCondition::add($saveParams);
$this->redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id='.$this->_submitValues['rule_id'], TRUE); $redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id='.$this->_submitValues['rule_id'], TRUE);
$session->setStatus('Condition added to CiviRule', 'Condition added', 'success'); $session->setStatus('Condition added to CiviRule '.CRM_Civirules_BAO_Rule::getRuleLabelWithId($this->_submitValues['rule_id']),
CRM_Utils_System::redirect($this->redirectUrl); 'Condition added', 'success');
CRM_Utils_System::redirect($redirectUrl);
} }
/** /**
......
...@@ -91,5 +91,21 @@ class CRM_Civirules_Utils { ...@@ -91,5 +91,21 @@ class CRM_Civirules_Utils {
} }
return $conditionList; return $conditionList;
} }
/**
* Function to build the action list
*
* @return array $actionList
* @access public
* @static
*/
public static function buildActionList() {
$actionList = array();
$actions = CRM_Civirules_BAO_Action::getValues(array());
foreach ($actions as $actionId => $action) {
$actionList[$actionId] = $action['label'];
}
return $actionList;
}
} }
{* block for rule condition data *}
<h3>{$ruleActionHeader}</h3>
<div class="crm-block crm-form-block crm-civirule-rule_condition-block">
<div class="crm-section">
<div class="label">{$form.rule_action_select.label}</div>
<div class="content">{$form.rule_action_select.html}</div>
<div class="clear"></div>
</div>
</div>
<div class="crm-submit-buttons">
{include file="CRM/common/formButtons.tpl" location="bottom"}
</div>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<table id="civirule-table" class="display"> <table id="civirule-table" class="display">
<thead> <thead>
<tr> <tr>
<th>{ts}Description{/ts}</th> <th>{ts}Name{/ts}</th>
<th>{ts}Extra parameters{/ts}</th> <th>{ts}Extra parameters{/ts}</th>
<th id="nosort">&nbsp;</th> <th id="nosort">&nbsp;</th>
</tr> </tr>
...@@ -16,9 +16,9 @@ ...@@ -16,9 +16,9 @@
{assign var="row_class" value="odd-row"} {assign var="row_class" value="odd-row"}
{foreach from=$ruleActions key=action_id item=ruleAction} {foreach from=$ruleActions key=action_id item=ruleAction}
<tr id="row1" class={$row_class}> <tr id="row1" class={$row_class}>
<td>{$ruleAction.label}&nbsp;{$ruleAction.action_value}</td> <td>{$ruleAction.label}</td>
{if !empty($ruleAction.extra_params)} {if !empty($ruleAction.action_params)}
<td>{$ruleAction.extra_params}</td> <td>{$ruleAction.action_params}</td>
{else} {else}
<td>&nbsp;</td> <td>&nbsp;</td>
{/if} {/if}
...@@ -40,11 +40,8 @@ ...@@ -40,11 +40,8 @@
</table> </table>
</div> </div>
</div> </div>
{if $action eq 1} <div class="crm-submit-buttons">
<div class="crm-submit-buttons"> <a class="add button" title="Add Action" href="{$ruleActionAddUrl}">
<span class="crm-button crm-button-type-next crm-button_qf_Rule_next"> <span><div class="icon add-icon"></div>Add Action</span></a>
<input id="_qf_Rule_next-bottom" class="validate form-submit" type="submit" value="Add Action" name="_qf_Rule_next"> </div>
</span>
</div>
{/if}
</div> </div>
...@@ -18,4 +18,10 @@ ...@@ -18,4 +18,10 @@
<title>RuleCondition</title> <title>RuleCondition</title>
<access_arguments>access CiviCRM</access_arguments> <access_arguments>access CiviCRM</access_arguments>
</item> </item>
<item>
<path>civicrm/civirule/form/rule_action</path>
<page_callback>CRM_Civirules_Form_RuleAction</page_callback>
<title>RuleAction</title>
<access_arguments>access CiviCRM</access_arguments>
</item>
</menu> </menu>
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