Skip to content
Snippets Groups Projects
Commit 3fd3dad3 authored by jaapjansma's avatar jaapjansma
Browse files

issue #30 contact ref is changed in 4.6

parent d3a6d733
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,18 @@
class CRM_CivirulesActions_Activity_Form_Activity extends CRM_CivirulesActions_Form_Form {
protected $use_old_contact_ref_fields = false;
public function preProcess()
{
$version = CRM_Core_BAO_Domain::version();
if($version <= 4.4) {
$this->use_old_contact_ref_fields = true;
}
parent::preProcess(); // TODO: Change the autogenerated stub
}
/**
* Overridden parent method to build the form
......@@ -16,21 +28,32 @@ class CRM_CivirulesActions_Activity_Form_Activity extends CRM_CivirulesActions_F
*/
public function buildQuickForm() {
$this->add('hidden', 'rule_action_id');
$this->add('select', 'activity_type_id', ts('Activity type'), array('' => ts('-- please select --')) + CRM_Core_OptionGroup::values('activity_type'), true);
$this->add('select', 'status_id', ts('Status'), array('' => ts('-- please select --')) + CRM_Core_OptionGroup::values('activity_status'), true);
$this->add('text', 'subject', ts('Subject'));
$data = unserialize($this->ruleAction->action_params);
$assignees = array();
if (!empty($data['assignee_contact_id'])) {
$assignees[] = $data['assignee_contact_id'];
}
$this->assign('selectedContacts', implode(",", $assignees));
CRM_Contact_Form_NewContact::buildQuickForm($this);
$this->assign('use_old_contact_ref_fields', $this->use_old_contact_ref_fields);
if ($this->use_old_contact_ref_fields) {
$data = unserialize($this->ruleAction->action_params);
$assignees = array();
if (!empty($data['assignee_contact_id'])) {
if (is_array($data['assignee_contact_id'])) {
$assignees = $data['assignee_contact_id'];
} else {
$assignees[] = $data['assignee_contact_id'];
}
}
$this->assign('selectedContacts', implode(",", $assignees));
CRM_Contact_Form_NewContact::buildQuickForm($this);
} else {
$attributes = array(
'multiple' => TRUE,
'create' => TRUE,
'api' => array('params' => array('is_deceased' => 0))
);
$this->addEntityRef('assignee_contact_id', ts('Assigned to'), $attributes, false);
}
$this->addButtons(array(
array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
......@@ -55,6 +78,9 @@ class CRM_CivirulesActions_Activity_Form_Activity extends CRM_CivirulesActions_F
if (!empty($data['subject'])) {
$defaultValues['subject'] = $data['subject'];
}
if (!empty($data['assignee_contact_id'])) {
$defaults['assignee_contact_id'] = $data['assignee_contact_id'];
}
return $defaultValues;
}
......@@ -69,9 +95,13 @@ class CRM_CivirulesActions_Activity_Form_Activity extends CRM_CivirulesActions_F
$data['subject'] = $this->_submitValues['subject'];
$data['assignee_contact_id'] = false;
$values = $this->controller->exportValues();
if (!empty($values['contact_select_id']) && count($values['contact_select_id']) > 0) {
$data['assignee_contact_id'] = reset($values['contact_select_id']);
if ($this->use_old_contact_ref_fields) {
$values = $this->controller->exportValues();
if (!empty($values['contact_select_id']) && count($values['contact_select_id']) > 0) {
$data['assignee_contact_id'] = $values['contact_select_id'];
}
} else {
$data["assignee_contact_id"] = explode(',', $this->_submitValues["assignee_contact_id"]);
}
$this->ruleAction->action_params = serialize($data);
......
......@@ -16,13 +16,21 @@
<div class="clear"></div>
</div>
<div class="crm-section">
<div class="label">{ts}Assignee{/ts}</div>
<div class="content">
{include file="CRM/Contact/Form/NewContact.tpl" noLabel=true skipBreak=true multiClient=false showNewSelect=false}
{if ($use_old_contact_ref_fields)}
<div class="crm-section">
<div class="label">{ts}Assignee{/ts}</div>
<div class="content">
{include file="CRM/Contact/Form/NewContact.tpl" noLabel=true skipBreak=true multiClient=false showNewSelect=false}
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
{else}
<div class="crm-section">
<div class="label">{$form.assignee_contact_id.label}</div>
<div class="content">{$form.assignee_contact_id.html}</div>
<div class="clear"></div>
</div>
{/if}
</div>
<div class="crm-submit-buttons">
{include file="CRM/common/formButtons.tpl" location="bottom"}
......
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