add option to select a case to start for event initiator
This commit is contained in:
parent
19ddbb4ec4
commit
b1dd134d27
2 changed files with 68 additions and 20 deletions
|
@ -20,8 +20,16 @@ class CRM_TwingleCampaign_Form_Settings extends CRM_Core_Form {
|
||||||
|
|
||||||
$this->addElement('select',
|
$this->addElement('select',
|
||||||
'twinglecampaign_xcm_profile',
|
'twinglecampaign_xcm_profile',
|
||||||
E::ts('XCM Profile'),
|
E::ts('XCM Profile to match event initiator'),
|
||||||
$this->getXCMProfiles()
|
$this->getXCMProfiles(),
|
||||||
|
['class' => 'crm-select2 huge']
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('select',
|
||||||
|
'twinglecampaign_start_case',
|
||||||
|
E::ts('Start a case for event initiator'),
|
||||||
|
$this->getCaseTypes(),
|
||||||
|
['class' => 'crm-select2 huge']
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->addButtons([
|
$this->addButtons([
|
||||||
|
@ -29,7 +37,7 @@ class CRM_TwingleCampaign_Form_Settings extends CRM_Core_Form {
|
||||||
'type' => 'submit',
|
'type' => 'submit',
|
||||||
'name' => E::ts('Save'),
|
'name' => E::ts('Save'),
|
||||||
'isDefault' => TRUE,
|
'isDefault' => TRUE,
|
||||||
]
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
parent::buildQuickForm();
|
parent::buildQuickForm();
|
||||||
|
@ -40,6 +48,8 @@ class CRM_TwingleCampaign_Form_Settings extends CRM_Core_Form {
|
||||||
Civi::settings()->get('twingle_api_key');
|
Civi::settings()->get('twingle_api_key');
|
||||||
$defaultValues['twinglecampaign_xcm_profile'] =
|
$defaultValues['twinglecampaign_xcm_profile'] =
|
||||||
Civi::settings()->get('twinglecampaign_xcm_profile');
|
Civi::settings()->get('twinglecampaign_xcm_profile');
|
||||||
|
$defaultValues['twinglecampaign_start_case'] =
|
||||||
|
Civi::settings()->get('twinglecampaign_start_case');
|
||||||
return $defaultValues;
|
return $defaultValues;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +58,10 @@ class CRM_TwingleCampaign_Form_Settings extends CRM_Core_Form {
|
||||||
public function postProcess() {
|
public function postProcess() {
|
||||||
$values = $this->exportValues();
|
$values = $this->exportValues();
|
||||||
Civi::settings()->set('twingle_api_key', $values['twingle_api_key']);
|
Civi::settings()->set('twingle_api_key', $values['twingle_api_key']);
|
||||||
Civi::settings()->set('twinglecampaign_xcm_profile', $values['twinglecampaign_xcm_profile']);
|
Civi::settings()
|
||||||
|
->set('twinglecampaign_xcm_profile', $values['twinglecampaign_xcm_profile']);
|
||||||
|
Civi::settings()
|
||||||
|
->set('twinglecampaign_start_case', $values['twinglecampaign_start_case']);
|
||||||
parent::postProcess();
|
parent::postProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,16 +71,40 @@ class CRM_TwingleCampaign_Form_Settings extends CRM_Core_Form {
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getXCMProfiles() {
|
private function getXCMProfiles() {
|
||||||
$xcmProfiles = [];
|
$xcmProfiles = [];
|
||||||
if (!isset($this->_settings['twinglecampaign_xcm_profile'])) {
|
|
||||||
if (method_exists('CRM_Xcm_Configuration', 'getProfileList')) {
|
if (method_exists('CRM_Xcm_Configuration', 'getProfileList')) {
|
||||||
$profiles = CRM_Xcm_Configuration::getProfileList();
|
$profiles = CRM_Xcm_Configuration::getProfileList();
|
||||||
foreach ($profiles as $profile_key => $profile_name) {
|
foreach ($profiles as $profile_key => $profile_name) {
|
||||||
$xcmProfiles[$profile_key] = $profile_name;
|
$xcmProfiles[$profile_key] = $profile_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return $xcmProfiles;
|
return $xcmProfiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves all case types
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function getCaseTypes() {
|
||||||
|
$caseTypes = [NULL => E::ts('none')];
|
||||||
|
try {
|
||||||
|
$result = civicrm_api3('CaseType', 'get', [
|
||||||
|
'sequential' => 1,
|
||||||
|
]);
|
||||||
|
if (is_array($result['values'])) {
|
||||||
|
foreach ($result['values'] as $case) {
|
||||||
|
$caseTypes[$case['name']] = $case['title'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (CiviCRM_API3_Exception $e) {
|
||||||
|
Civi::log()->error(
|
||||||
|
'TwingleCampaign could not retrieve case types: ' .
|
||||||
|
$e->getMessage());
|
||||||
|
}
|
||||||
|
return $caseTypes;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,26 @@
|
||||||
{* HEADER *}
|
{* HEADER *}
|
||||||
|
|
||||||
<div class="crm-section">
|
<div>
|
||||||
|
<h3>{ts domain="de.forumzfd.de"}General Settings{/ts}</h3>
|
||||||
|
<div class="crm-section">
|
||||||
<div class="label">{$form.twingle_api_key.label}</div>
|
<div class="label">{$form.twingle_api_key.label}</div>
|
||||||
<div class="content">{$form.twingle_api_key.html}</div>
|
<div class="content">{$form.twingle_api_key.html}</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="crm-section">
|
<div>
|
||||||
|
<h3>{ts domain="de.forumzfd.de"}Twingle Event Settings{/ts}</h3>
|
||||||
|
<div class="crm-section">
|
||||||
<div class="label">{$form.twinglecampaign_xcm_profile.label}</div>
|
<div class="label">{$form.twinglecampaign_xcm_profile.label}</div>
|
||||||
<div class="content">{$form.twinglecampaign_xcm_profile.html}</div>
|
<div class="content">{$form.twinglecampaign_xcm_profile.html}</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<div class="crm-section">
|
||||||
|
<div class="label">{$form.twinglecampaign_start_case.label}</div>
|
||||||
|
<div class="content">{$form.twinglecampaign_start_case.html}</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue