0 => ts('Email-to-Activity Processing'),
);
$this->add('select', 'is_default', ts('Used For?'), $usedfor);
+ $this->addField('activity_status', array('placeholder' => FALSE));
}
/**
$this->addFormRule(array('CRM_Admin_Form_MailSettings', 'formRule'));
}
+ public function getDefaultEntity() {
+ return 'MailSettings';
+ }
+
+ /**
+ * Add local and global form rules.
+ */
+ public function setDefaultValues() {
+ $defaults = parent::setDefaultValues();
+
+ // Set activity status to "Completed" by default.
+ if ($this->_action != CRM_Core_Action::DELETE &&
+ (!$this->_id || !CRM_Core_DAO::getFieldValue('CRM_Core_BAO_MailSettings', $this->_id, 'activity_status'))
+ ) {
+ $defaults['activity_status'] = 'Completed';
+ }
+
+ return $defaults;
+ }
+
/**
* Global validation rules for the form.
*
'source',
'is_ssl',
'is_default',
+ 'activity_status',
);
$params = array();
*
* Generated from xml/schema/CRM/Core/MailSettings.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:739e36d6ca1f8572f5f9eff77975765e)
+ * (GenCodeChecksum:86515d7cb55425fbad3a71d5aa000af0)
*/
require_once 'CRM/Core/DAO.php';
require_once 'CRM/Utils/Type.php';
* @var string
*/
public $source;
+ /**
+ * Name of status to use when creating email to activity.
+ *
+ * @var string
+ */
+ public $activity_status;
/**
* Class constructor.
*/
'bao' => 'CRM_Core_BAO_MailSettings',
'localizable' => 0,
) ,
+ 'activity_status' => array(
+ 'name' => 'activity_status',
+ 'type' => CRM_Utils_Type::T_STRING,
+ 'title' => ts('Activity Status') ,
+ 'description' => 'Name of status to use when creating email to activity.',
+ 'maxlength' => 255,
+ 'size' => CRM_Utils_Type::HUGE,
+ 'table_name' => 'civicrm_mail_settings',
+ 'entity' => 'MailSettings',
+ 'bao' => 'CRM_Core_BAO_MailSettings',
+ 'localizable' => 0,
+ 'html' => array(
+ 'type' => 'Select',
+ ) ,
+ 'pseudoconstant' => array(
+ 'optionGroupName' => 'activity_status',
+ 'keyColumn' => 'name',
+ 'optionEditPath' => 'civicrm/admin/options/activity_status',
+ )
+ ) ,
);
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
}
* @param string $rev
*/
public function upgrade_4_7_19($rev) {
- $query = "SELECT id FROM civicrm_financial_account WHERE opening_balance <> 0 OR current_period_opening_balance <> 0";
- $result = CRM_Core_DAO::executeQuery($query);
- if (!$result->N) {
- $this->addTask('Drop Column current_period_opening_balance From civicrm_financial_account table.', 'dropColumn', 'civicrm_financial_account', 'current_period_opening_balance');
- $this->addTask('Drop Column opening_balance From civicrm_financial_account table.', 'dropColumn', 'civicrm_financial_account', 'opening_balance');
+ if (CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_financial_account', 'opening_balance')) {
+ $query = "SELECT id FROM civicrm_financial_account WHERE opening_balance <> 0 OR current_period_opening_balance <> 0";
+ $result = CRM_Core_DAO::executeQuery($query);
+ if (!$result->N) {
+ $this->addTask('Drop Column current_period_opening_balance From civicrm_financial_account table.', 'dropColumn', 'civicrm_financial_account', 'current_period_opening_balance');
+ $this->addTask('Drop Column opening_balance From civicrm_financial_account table.', 'dropColumn', 'civicrm_financial_account', 'opening_balance');
+ }
}
$this->addTask('CRM-19961 - Add domain_id column to civicrm_sms_provider', 'addColumn',
'civicrm_sms_provider', 'domain_id', 'int(10) unsigned', "Which Domain is this sms provier for");
public function upgrade_4_7_20($rev) {
$this->addtask('Fix Schema on civicrm_action_schedule', 'fixSchemaOnCiviCRMActionSchedule');
$this->addTask(ts('Upgrade DB to %1: SQL', array(1 => $rev)), 'runSql', $rev);
+ $this->addTask('Add activity_status column to civicrm_mail_settings', 'addColumn',
+ 'civicrm_mail_settings', 'activity_status', "varchar (255) DEFAULT NULL COMMENT 'Name of status to use when creating email to activity.'");
}
/*
$params['activity_type_id'] = $activityTypeID;
- $params['status_id'] = 2;
+ $params['status_id'] = 'Completed';
if (!empty($result['from']['id'])) {
$params['source_contact_id'] = $params['assignee_contact_id'] = $result['from']['id'];
}
/**
* @param $civiMail
- * @param CRM_Core_DAO $dao
+ * @param CRM_Core_DAO_MailSettings $dao
* @param bool $is_create_activities
* Create activities.
*
$params = _civicrm_api3_deprecated_activity_buildmailparams($mailParams, $emailActivityTypeId);
$params['version'] = 3;
+ if (!empty($dao->activity_status)) {
+ $params['status_id'] = $dao->activity_status;
+ }
$result = civicrm_api('activity', 'create', $params);
if ($result['is_error']) {
<tr class="crm-mail-settings-form-block-is_default"><td class="label">{$form.is_default.label}</td><td>{$form.is_default.html}</td></tr>
<tr><td class="label"> </td><td class="description">{ts}How this mail account will be used. Only one box may be used for bounce processing. It will also be used as the envelope email when sending mass mailings.{/ts}</td></tr>
+
+ <tr class="crm-mail-settings-form-block-activity_status"><td class="label">{$form.activity_status.label}</td><td>{$form.activity_status.html}</td></tr>
</table>
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
{/if}
</div>
+{literal}
+<script type="text/javascript">
+ CRM.$(function($) {
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
+ function showActivityStatus() {
+ $('.crm-mail-settings-form-block-activity_status', $form).toggle($(this).val() === '0');
+ }
+ $('select[name=is_default]').each(showActivityStatus).change(showActivityStatus);
+ });
+</script>
+{/literal}
<comment>folder to poll from when using IMAP, path to poll from when using Maildir, etc.</comment>
<add>2.2</add>
</field>
+ <field>
+ <name>activity_status</name>
+ <title>Activity Status</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Name of status to use when creating email to activity.</comment>
+ <add>4.7</add>
+ <pseudoconstant>
+ <optionGroupName>activity_status</optionGroupName>
+ <keyColumn>name</keyColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
</table>