public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('ACL'));
+
if ($this->_action & CRM_Core_Action::DELETE) {
return;
}
CRM_ACL_BAO_ACL::create($params);
}
}
+
}
}
// Fixme: why are we getting the wrong keys from upstream?
- $defaults['target_contact_id'] = $defaults['target_contact'];
- $defaults['assignee_contact_id'] = $defaults['assignee_contact'];
+ $defaults['target_contact_id'] = CRM_Utils_Array::value('target_contact', $defaults);
+ $defaults['assignee_contact_id'] = CRM_Utils_Array::value('assignee_contact', $defaults);
// set default tags if exists
$defaults['tag'] = CRM_Core_BAO_EntityTag::getTag($this->_activityId, 'civicrm_activity');
);
$fields = array_merge($fields, array(
+ 'source_contact_id' => array(
+ 'title' => ts('Source Contact'),
+ 'headerPattern' => '/Source.Contact?/i',
+ ),
'activity_label' => array(
'title' => ts('Activity Type Label'),
'headerPattern' => '/(activity.)?type label?/i',
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
-
$this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE, 'browse');
$this->assign('action', $this->_action);
}
/**
- * This function sets the default values for the form. MobileProvider that in edit/view mode
+ * This function sets the default values for the form. Note that in edit/view mode
* the default values are retrieved from the database
*
* @access public
* @access public
*/
public function buildQuickForm() {
- if ($this->_action & CRM_Core_Action::VIEW) {
+ if ($this->_action & CRM_Core_Action::VIEW || $this->_action & CRM_Core_Action::PREVIEW) {
$this->addButtons(array(
array(
'type' => 'cancel',
*/
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('Contact Type'));
+
if ($this->_action & CRM_Core_Action::DELETE) {
return;
}
array(1 => $contactType->label)
), ts('Saved'), 'success');
}
+
}
* @access public
*/
public function buildQuickForm() {
-
parent::buildQuickForm();
+ $this->setPageTitle(ts('Location Type'));
if ($this->_action & CRM_Core_Action::DELETE) {
return;
'variable'
);
- $this->add('text', 'display_name', ts('Display Name'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_LocationType', 'display_name'));
+ $this->add('text', 'display_name', ts('Display Name'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_LocationType', 'display_name'), TRUE);
$this->add('text', 'vcard_name', ts('vCard Name'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_LocationType', 'vcard_name'));
$this->add('text', 'description', ts('Description'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_LocationType', 'description'));
array(1 => $locationType->name)
), ts('Saved'), 'success');
}
+
}
*/
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('Mail Account'));
if ($this->_action & CRM_Core_Action::DELETE) {
return;
CRM_Core_Session::setStatus("", ts('Changes Not Saved.'), "info");
}
}
+
}
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('Field Mapping'));
+
if ($this->_action == CRM_Core_Action::DELETE) {
return;
}
CRM_Core_BAO_Mapping::add($params);
}
}
- //end of function
+
}
*/
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('%1 Option', array(1 => $this->_gLabel)));
+
if ($this->_action & CRM_Core_Action::DELETE) {
return;
}
(($this->_action & CRM_Core_Action::ADD) || !$isReserved)
) {
$caseID = CRM_Core_Component::getComponentID('CiviCase');
- $components = array('' => ts('Contacts OR Cases'), $caseID => ts('Cases Only'));
+ $components = array('' => ts('Contacts AND Cases'), $caseID => ts('Cases Only'));
$this->add('select',
'component_id',
ts('Component'),
CRM_Core_Session::setStatus(ts('The %1 \'%2\' has been saved.', array(1 => $this->_gLabel, 2 => $optionValue->label)), ts('Saved'), 'success');
}
}
+
}
*/
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('Relationship Type'));
if ($this->_action & CRM_Core_Action::DELETE) {
-
return;
}
CRM_Core_Session::setStatus(ts('The Relationship Type has been saved.'), ts('Saved'), 'success');
}
}
- //end of function
+
}
die("Cannot open $dsn: " . $db->getMessage());
}
+ $domain = new CRM_Core_DAO_Domain();
+ $domain->find(TRUE);
+ $multiLingual = (bool) $domain->locales;
+ $smarty = CRM_Core_Smarty::singleton();
+ $smarty->assign('multilingual', $multiLingual);
+ $smarty->assign('locales', explode(CRM_Core_DAO::VALUE_SEPARATOR, $domain->locales));
+
if (!$lineMode) {
- $string = file_get_contents($fileName);
+ $string = $smarty->fetch($fileName);
// change \r\n to fix windows issues
$string = str_replace("\r\n", "\n", $string);
class CRM_Admin_Form_Setting_Debugging extends CRM_Admin_Form_Setting {
protected $_settings = array(
- 'debug_enabled' => CRM_Core_BAO_Setting::DIRECTORY_PREFERENCES_NAME,
- 'backtrace' => CRM_Core_BAO_Setting::DIRECTORY_PREFERENCES_NAME,
- 'fatalErrorTemplate' => CRM_Core_BAO_Setting::DIRECTORY_PREFERENCES_NAME,
- 'fatalErrorHandler' => CRM_Core_BAO_Setting::DIRECTORY_PREFERENCES_NAME,
+ 'debug_enabled' => CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME,
+ 'backtrace' => CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME,
+ 'fatalErrorTemplate' => CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME,
+ 'fatalErrorHandler' => CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME,
);
/**
* Function to build the form
public function buildQuickForm() {
CRM_Utils_System::setTitle(ts(' Settings - Debugging and Error Handling '));
if (CRM_Core_Config::singleton()->userSystem->supports_UF_Logging == '1') {
- $this->_settings['userFrameworkLogging'] = CRM_Core_BAO_Setting::DIRECTORY_PREFERENCES_NAME;
+ $this->_settings['userFrameworkLogging'] = CRM_Core_BAO_Setting::DEVELOPER_PREFERENCES_NAME;
}
parent::buildQuickForm();
$map = CRM_Core_SelectValues::mapProvider();
$geo = CRM_Core_SelectValues::geoProvider();
- $this->addElement('select', 'mapProvider', ts('Mapping Provider'), array('' => '- select -') + $map, array('onChange' => 'showHideMapAPIkey( this.value );'));
+ $this->addElement('select', 'mapProvider', ts('Mapping Provider'), array('' => '- select -') + $map, array('class' => 'crm-select2'));
$this->add('text', 'mapAPIKey', ts('Map Provider Key'), NULL);
- $this->addElement('select', 'geoProvider', ts('Geocoding Provider'), array('' => '- select -') + $geo);
+ $this->addElement('select', 'geoProvider', ts('Geocoding Provider'), array('' => '- select -') + $geo, array('class' => 'crm-select2'));
$this->add('text', 'geoAPIKey', ts('Geo Provider Key'), NULL);
parent::buildQuickForm();
$this->addElement(
'submit', $this->getButtonName('next', 'cleanup'), 'Cleanup Caches',
- array('class' => 'form-submit', 'id' => 'cleanup-cache')
+ array('class' => 'crm-form-submit', 'id' => 'cleanup-cache')
);
$this->add('text', 'newBaseURL', ts('New Base URL'), NULL, TRUE);
* @access public
*/
public function buildQuickForm() {
+ $this->setPageTitle($this->_isTagSet ? ts('Tag Set') : ts('Tag'));
+
if ($this->_action == CRM_Core_Action::DELETE) {
if ($this->_id && $tag = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Tag', $this->_id, 'name', 'parent_id')) {
- CRM_Core_Session::setStatus(ts("This tag cannot be deleted. You must delete all its child tags ('%1', etc) prior to deleting this tag.", array(1 => $tag)), ts('Sorry'), 'error');
$url = CRM_Utils_System::url('civicrm/admin/tag', "reset=1");
- CRM_Utils_System::redirect($url);
- return TRUE;
+ CRM_Core_Error::statusBounce(ts("This tag cannot be deleted. You must delete all its child tags ('%1', etc) prior to deleting this tag.", array(1 => $tag)), $url);
}
}
else {
$this->_isTagSet = TRUE;
}
- $allTag = array('' => '- ' . ts('select') . ' -') + CRM_Core_BAO_Tag::getTagsNotInTagset();
+ $allTag = array('' => ts('- select -')) + CRM_Core_BAO_Tag::getTagsNotInTagset();
if ($this->_id) {
unset($allTag[$this->_id]);
);
//@lobo haven't a clue why the checkbox isn't displayed (it should be checked by default
- $this->add('checkbox', 'is_selectable', ts("If it's a tag or a category"));
+ $this->add('checkbox', 'is_selectable');
$isReserved = $this->add('checkbox', 'is_reserved', ts('Reserved?'));
CRM_Core_Session::setStatus(ts('The tag \'%1\' has been saved.', array(1 => $tag->name)), ts('Saved'), 'success');
}
}
- //end of function
+
}
*/
class CRM_Admin_Page_Mapping extends CRM_Core_Page_Basic {
+ public $useLivePageJS = TRUE;
+
/**
* The action links that we need to display for the browse screen
*
$dao = CRM_Core_DAO::executeQuery($queryString);
$rows = array();
while ($dao->fetch()) {
+ if (!empty($dao->country_id)) {
+ $dao->country = CRM_Core_PseudoConstant::country($dao->country_id);
+ }
+ if (!empty($dao->state_province_id)) {
+ $dao->state_province = CRM_Core_PseudoConstant::stateProvince($dao->state_province_id);
+ }
$rows[$dao->participant_id] = array();
foreach ($returnProperties as $key => $dontCare) {
$rows[$dao->participant_id][$key] = isset($dao->$key) ? $dao->$key : NULL;
$form->add('select', 'contact_type', ts('Contact Type(s)'), $contactTypes, FALSE,
array('id' => 'contact_type', 'multiple' => 'multiple', 'class' => 'crm-select2')
);
- $groups = CRM_Core_PseudoConstant::group();
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
$form->add('select', 'group', ts('Groups'), $groups, FALSE,
- array('id' => 'group', 'multiple' => 'multiple', 'class' => 'crm-select2')
+ array('multiple' => 'multiple', 'class' => 'crm-select2')
);
$showInterviewer = FALSE;
);
}
}
-
- return $activityTypes[$cacheKey];
+ if (!empty($activityTypes[$cacheKey])) {
+ return $activityTypes[$cacheKey];
+ }
+ else {
+ return;
+ }
}
/**
*
* @return array success message
*/
- public function releaseRespondent($params) {
+ public static function releaseRespondent($params) {
$activityStatus = CRM_Core_PseudoConstant::activityStatus('name');
$reserveStatusId = array_search('Scheduled', $activityStatus);
$surveyActivityTypes = CRM_Campaign_BAO_Survey::getSurveyActivityType();
- $surveyActivityTypesIds = array_keys($surveyActivityTypes);
+ if (!empty($surveyActivityTypes) && is_array($surveyActivityTypes)) {
+ $surveyActivityTypesIds = array_keys($surveyActivityTypes);
+ }
//retrieve all survey activities related to reserve action.
$releasedCount = 0;
*
* @access public
*
- * @return void
+ * @return array
*/
function setDefaultValues() {
$defaults = $this->_values;
// add campaign status
$this->addSelect('status_id');
- // add External Identifire Element
- $this->add('text', 'external_identifier', ts('External Id'),
+ // add External Identifier Element
+ $this->add('text', 'external_identifier', ts('External ID'),
CRM_Core_DAO::getAttribute('CRM_Campaign_DAO_Campaign', 'external_identifier'), FALSE
);
// add Campaign Parent Id
- $campaigns = CRM_Campaign_BAO_Campaign::getCampaigns(CRM_Utils_Array::value('parent_id', $this->_values),
- $this->_campaignId
- );
+ $campaigns = CRM_Campaign_BAO_Campaign::getCampaigns(CRM_Utils_Array::value('parent_id', $this->_values), $this->_campaignId);
if (!empty($campaigns)) {
- $this->addElement('select', 'parent_id', ts('Parent Id'),
- array(
- '' => ts('- select Parent -')) + $campaigns
+ $this->addElement('select', 'parent_id', ts('Parent ID'),
+ array('' => ts('- select Parent -')) + $campaigns,
+ array('class' => 'crm-select2')
);
}
-
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
//get the campaign groups.
- $groups = CRM_Core_PseudoConstant::group();
-
$this->add('select', 'includeGroups',
ts('Include Group(s)'),
$groups,
* @param $files
* @param $errors
*
- * @return void
+ * @return bool|array
* @access public
* @see valid_date
*/
$this->addElement('text', 'ActivityType', ts('Activity Type'));
$this->addElement('text', 'newGroupName', ts('Name for new group'));
$this->addElement('text', 'newGroupDesc', ts('Description of new group'));
- $groups = CRM_Core_PseudoConstant::group();
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
$hasExistingGroups = FALSE;
if (is_array($groups) && !empty($groups)) {
$hasExistingGroups = TRUE;
$this->addElement('select', 'groups', ts('Add respondent(s) to existing group(s)'),
- $groups, array('multiple' => "multiple", 'size' => 5)
+ $groups, array('multiple' => "multiple", 'class' => 'crm-select2')
);
}
$this->assign('hasExistingGroups', $hasExistingGroups);
if (!$nameParam && empty($params['id'])) {
$params['name'] = CRM_Utils_String::titleToVar($params['title']);
}
- if (!empty($params['name']) && !CRM_Case_BAO_CaseType::isValidName($params['name'])) {
- throw new CRM_Core_Exception("Cannot create caseType with malformed name [{$params['name']}]");
+
+ // Old case-types (pre-4.5) may keep their ucky names, but new case-types must satisfy isValidName()
+ if (empty($params['id']) && !empty($params['name']) && !CRM_Case_BAO_CaseType::isValidName($params['name'])) {
+ throw new CRM_Core_Exception("Cannot create new case-type with malformed name [{$params['name']}]");
}
+ $caseTypeName = (isset($params['name'])) ? $params['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $params['id'], 'name', 'id', TRUE);
+
// function to format definition column
if (isset($params['definition']) && is_array($params['definition'])) {
- $params['definition'] = self::convertDefinitionToXML($params['name'], $params['definition']);
+ $params['definition'] = self::convertDefinitionToXML($caseTypeName, $params['definition']);
CRM_Core_ManagedEntities::scheduleReconcilation();
}
$xmlFile = '<?xml version="1.0" encoding="iso-8859-1" ?>' . "\n\n<CaseType>\n";
$xmlFile .= "<name>{$name}</name>\n";
+ if (array_key_exists('forkable', $definition)) {
+ $xmlFile .= "<forkable>" . ((int) $definition['forkable']) . "</forkable>\n";
+ }
+
if (isset($definition['activityTypes'])) {
$xmlFile .= "<ActivityTypes>\n";
foreach ($definition['activityTypes'] as $values) {
// build PHP array based on definition
$definition = array();
+ if (isset($xml->forkable)) {
+ $definition['forkable'] = (int) $xml->forkable;
+ }
+
// set activity types
if (isset($xml->ActivityTypes)) {
$definition['activityTypes'] = array();
static function isValidName($caseType) {
return preg_match('/^[a-zA-Z0-9_]+$/', $caseType);
}
+
+ /**
+ * Determine if the case-type has *both* DB and file-based definitions.
+ *
+ * @param int $caseTypeId
+ * @return bool|null TRUE if there are *both* DB and file-based definitions
+ */
+ static function isForked($caseTypeId) {
+ $caseTypeName = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseTypeId, 'name', 'id', TRUE);
+ if ($caseTypeName) {
+ $dbDefinition = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseTypeId, 'definition', 'id', TRUE);
+ $fileDefinition = CRM_Case_XMLRepository::singleton()->retrieveFile($caseTypeName);
+ return $fileDefinition && $dbDefinition;
+ }
+ return NULL;
+ }
+
+ /**
+ * Determine if modifications are allowed on the case-type
+ *
+ * @param int $caseTypeId
+ * @return bool TRUE if the definition can be modified
+ */
+ static function isForkable($caseTypeId) {
+ $caseTypeName = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseTypeId, 'name', 'id', TRUE);
+ if ($caseTypeName) {
+ // if file-based definition explicitly disables "forkable" option, then don't allow changes to definition
+ $fileDefinition = CRM_Case_XMLRepository::singleton()->retrieveFile($caseTypeName);
+ if ($fileDefinition && isset($fileDefinition->forkable)) {
+ return CRM_Utils_String::strtobool((string)$fileDefinition->forkable);
+ }
+ }
+ return TRUE;
+ }
}
$defaults['file_on_case_activity_subject'] = $defaults['subject'];
$defaults['file_on_case_target_contact_id'] = $defaults['target_contact'];
+ // If this contact has an open case, supply it as a default
$cid = CRM_Utils_Request::retrieve('cid', 'Integer');
if ($cid) {
$cases = CRM_Case_BAO_Case::getUnclosedCases(array('contact_id' => $cid), $this->_currentCaseId);
foreach ($cases as $id => $details) {
$defaults['file_on_case_unclosed_case_id'] = $id;
- $value = array('label' => $details['sort_name'] . ' - ' . $details['case_type']);
+ $value = array(
+ 'label' => $details['sort_name'] . ' - ' . $details['case_type'],
+ 'extra' => array('contact_id' => $cid),
+ );
$this->updateElementAttr('file_on_case_unclosed_case_id', array('data-value' => json_encode($value)));
break;
}
$this->getButtonName('next', 'merge_case'),
ts('Merge'),
array(
- 'class' => 'form-submit-inline hiddenElement',
+ 'class' => 'crm-form-submit-inline hiddenElement',
)
);
}
&&
(!$oldValue || !in_array('CiviCase', $oldValue))
) {
+ $pathToCaseSampleTpl = __DIR__ . '/xml/configuration.sample/';
$config = CRM_Core_Config::singleton();
- CRM_Admin_Form_Setting_Component::loadCaseSampleData($config->dsn, $config->sqlDir . 'case_sample.mysql');
+ CRM_Admin_Form_Setting_Component::loadCaseSampleData($config->dsn, $pathToCaseSampleTpl . 'case_sample.mysql.tpl');
if (!CRM_Case_BAO_Case::createCaseViews()) {
$msg = ts("Could not create the MySQL views for CiviCase. Your mysql user needs to have the 'CREATE VIEW' permission");
CRM_Core_Error::fatal($msg);
else {
CRM_Contact_Page_View::checkUserPermission($this);
}
-
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
}
else {
if ($this->_action & CRM_Core_Action::VIEW) {
return simplexml_load_string($definition);
}
- if (!CRM_Case_BAO_CaseType::isValidName($caseType)) {
- // perhaps caller provider a the label instead of the name?
- throw new CRM_Core_Exception("Cannot load caseType with malformed name [$caseType]");
- }
+ // TODO In 4.6 or 5.0, remove support for weird machine-names
+ //if (!CRM_Case_BAO_CaseType::isValidName($caseType)) {
+ // // perhaps caller provider a the label instead of the name?
+ // throw new CRM_Core_Exception("Cannot load caseType with malformed name [$caseType]");
+ //}
if (!CRM_Utils_Array::value($caseType, $this->xml)) {
+ $fileXml = $this->retrieveFile($caseType);
+ if ($fileXml) {
+ $this->xml[$caseType] = $fileXml;
+ } else {
+ return FALSE;
+ }
+ }
+ return $this->xml[$caseType];
+ }
+
+ /**
+ * @param string $caseType
+ * @return SimpleXMLElement|FALSE
+ */
+ public function retrieveFile($caseType) {
+ $fileName = NULL;
+ $fileXml = NULL;
+
+ if (CRM_Case_BAO_CaseType::isValidName($caseType)) {
// Search for a file based directly on the $caseType name
$fileName = $this->findXmlFile($caseType);
+ }
- // For backward compatibility, also search for double-mungd file names
- // TODO In 4.6 or 5.0, remove support for loading double-munged file names
- if (!$fileName || !file_exists($fileName)) {
- $fileName = $this->findXmlFile(CRM_Case_XMLProcessor::mungeCaseType($caseType));
- }
-
- if (!$fileName || !file_exists($fileName)) {
- return FALSE;
- }
+ // For backward compatibility, also search for double-munged file names
+ // TODO In 4.6 or 5.0, remove support for loading double-munged file names
+ if (!$fileName || !file_exists($fileName)) {
+ $fileName = $this->findXmlFile(CRM_Case_XMLProcessor::mungeCaseType($caseType));
+ }
+ if ($fileName && file_exists($fileName)) {
// read xml file
$dom = new DomDocument();
$dom->load($fileName);
$dom->xinclude();
- $this->xml[$caseType] = simplexml_import_dom($dom);
+ $fileXml = simplexml_import_dom($dom);
}
- return $this->xml[$caseType];
+
+ return $fileXml;
}
/**
--- /dev/null
+-- /**********************************************************************
+-- *
+-- * Configuration Data for CiviCase Component
+-- * For: Sample Case Types - Housing Support and Adult Day Care Referral
+-- *
+-- **********************************************************************/
+
+SELECT @caseCompId := id FROM `civicrm_component` where `name` like 'CiviCase';
+
+-- /*******************************************************
+-- *
+-- * Case Types
+-- *
+-- *******************************************************/
+SELECT @max_wt := COALESCE ( max(weight), 0 ) from civicrm_case_type;
+
+INSERT IGNORE INTO `civicrm_case_type` ( {localize field='title'}`title`{/localize}, `name`, {localize field='description'}`description`{/localize}, `weight`, `is_reserved`, `is_active`) VALUES
+ ({localize}'{ts escape="sql"}Housing Support{/ts}'{/localize}, 'housing_support', {localize}'{ts escape="sql"}Help homeless individuals obtain temporary and long-term housing{/ts}'{/localize}, @max_wt + 1, 0, 1),
+ ({localize}'{ts escape="sql"}Adult Day Care Referral{/ts}'{/localize}, 'adult_day_care_referral', {localize}'{ts escape="sql"}Arranging adult day care for senior individuals{/ts}'{/localize}, @max_wt + 2, 0, 1);
+
+-- /*******************************************************
+-- *
+-- * Case Status - Set names for Open and Closed
+-- *
+-- *******************************************************/
+SELECT @csgId := max(id) from civicrm_option_group where name = 'case_status';
+{if $multilingual}
+ {foreach from=$locales item=locale}
+ UPDATE civicrm_option_value SET name = 'Open' where option_group_id = @csgId AND label_{$locale} = 'Ongoing';
+ UPDATE civicrm_option_value SET name = 'Closed' where option_group_id = @csgId AND label_{$locale} = 'Resolved';
+ {/foreach}
+{else}
+ UPDATE civicrm_option_value SET name = 'Open' where option_group_id = @csgId AND label = 'Ongoing';
+ UPDATE civicrm_option_value SET name = 'Closed' where option_group_id = @csgId AND label = 'Resolved';
+{/if}
+
+-- /*******************************************************
+-- *
+-- * Activity Types
+-- *
+-- *******************************************************/
+SELECT @option_group_id_activity_type := max(id) from civicrm_option_group where name = 'activity_type';
+
+SELECT @max_val := MAX(ROUND(op.value)) FROM civicrm_option_value op WHERE op.option_group_id = @option_group_id_activity_type;
+
+INSERT INTO `civicrm_option_value` ( `option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id` )
+(SELECT @option_group_id_activity_type, {localize}'{ts escape="sql"}Medical evaluation{/ts}'{/localize}, (SELECT @max_val := @max_val+1), 'Medical evaluation', NULL, 0, 0, (SELECT @max_val := @max_val+1), 0, 0, 1, @caseCompId
+ FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_option_value` WHERE `name` = 'Medical evaluation'));
+
+INSERT INTO `civicrm_option_value` ( `option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id` )
+(SELECT @option_group_id_activity_type, {localize}'{ts escape="sql"}Mental health evaluation{/ts}'{/localize}, (SELECT @max_val := @max_val+1), 'Mental health evaluation', NULL, 0, 0, (SELECT @max_val := @max_val+1), 0, 0, 1, @caseCompId
+ FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_option_value` WHERE `name` = 'Mental health evaluation'));
+
+INSERT INTO `civicrm_option_value` ( `option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id` )
+(SELECT @option_group_id_activity_type, {localize}'{ts escape="sql"}Secure temporary housing{/ts}'{/localize}, (SELECT @max_val := @max_val+1), 'Secure temporary housing', NULL, 0, 0, (SELECT @max_val := @max_val+1), 0, 0, 1, @caseCompId
+ FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_option_value` WHERE `name` = 'Secure temporary housing'));
+
+INSERT INTO `civicrm_option_value` ( `option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id` )
+(SELECT @option_group_id_activity_type, {localize}'{ts escape="sql"}Income and benefits stabilization{/ts}'{/localize}, (SELECT @max_val := @max_val+1), 'Income and benefits stabilization', NULL, 0, 0, (SELECT @max_val := @max_val+1), 0, 0, 1, @caseCompId
+ FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_option_value` WHERE `name` = 'Income and benefits stabilization'));
+
+INSERT INTO `civicrm_option_value` ( `option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id` )
+(SELECT @option_group_id_activity_type, {localize}'{ts escape="sql"}Long-term housing plan{/ts}'{/localize}, (SELECT @max_val := @max_val+1), 'Long-term housing plan', NULL, 0, 0, (SELECT @max_val := @max_val+1), 0, 0, 1, @caseCompId
+ FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_option_value` WHERE `name` = 'Long-term housing plan'));
+
+INSERT INTO `civicrm_option_value` ( `option_group_id`, {localize field='label'}`label`{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id` )
+(SELECT @option_group_id_activity_type, {localize}'{ts escape="sql"}ADC referral{/ts}'{/localize}, (SELECT @max_val := @max_val+1), 'ADC referral', NULL, 0, 0, (SELECT @max_val := @max_val+1), 0, 0, 1, @caseCompId
+ FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_option_value` WHERE `name` = 'ADC referral'));
+
+-- /*******************************************************
+-- *
+-- * Relationship Types
+-- *
+-- *******************************************************/
+INSERT INTO `civicrm_relationship_type` ( `name_a_b`, `label_a_b`, `name_b_a`, `label_b_a`, `description`, `contact_type_a`, `contact_type_b`, `is_reserved`, `is_active` ) (SELECT 'Homeless Services Coordinator is', 'Homeless Services Coordinator is', 'Homeless Services Coordinator', 'Homeless Services Coordinator', 'Homeless Services Coordinator', 'Individual', 'Individual', 0, 1 FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_relationship_type` WHERE `name_a_b` = 'Homeless Services Coordinator is'));
+
+
+INSERT INTO `civicrm_relationship_type` ( `name_a_b`, `label_a_b`, `name_b_a`, `label_b_a`, `description`, `contact_type_a`, `contact_type_b`, `is_reserved`, `is_active` ) (
+SELECT 'Health Services Coordinator is', 'Health Services Coordinator is', 'Health Services Coordinator', 'Health Services Coordinator', 'Health Services Coordinator', 'Individual', 'Individual', 0, 1 FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_relationship_type` WHERE `name_a_b` = 'Health Services Coordinator is'));
+
+
+INSERT INTO `civicrm_relationship_type` ( `name_a_b`, `label_a_b`, `name_b_a`, `label_b_a`, `description`, `contact_type_a`, `contact_type_b`, `is_reserved`, `is_active` ) (
+SELECT 'Senior Services Coordinator is', 'Senior Services Coordinator is', 'Senior Services Coordinator', 'Senior Services Coordinator', 'Senior Services Coordinator', 'Individual', 'Individual', 0, 1 FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_relationship_type` WHERE `name_a_b` = 'Senior Services Coordinator is'));
+
+INSERT INTO `civicrm_relationship_type` ( `name_a_b`, `label_a_b`, `name_b_a`, `label_b_a`, `description`, `contact_type_a`, `contact_type_b`, `is_reserved`, `is_active` ) (
+SELECT 'Benefits Specialist is', 'Benefits Specialist is', 'Benefits Specialist', 'Benefits Specialist', 'Benefits Specialist', 'Individual', 'Individual', 0, 1 FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_relationship_type` WHERE `name_a_b` = 'Benefits Specialist is'));
+
+-- /*******************************************************
+-- *
+-- * Case Resources Group
+-- *
+-- *******************************************************/
+
+INSERT INTO `civicrm_group` ( `name`, {localize field='title'}`title`{/localize}, `description`, `source`, `saved_search_id`, `is_active`, `visibility`, `where_clause`, `select_tables`, `where_tables`, `group_type`, `cache_date`, `parents`, `children`, `is_hidden` ) (SELECT 'Case_Resources', {localize}'{ts escape="sql"}Case Resources{/ts}'{/localize}, 'Contacts in this group are listed with their phone number and email when viewing case. You also can send copies of case activities to these contacts.', NULL, NULL, 1, 'User and User Admin Only', ' ( `civicrm_group_contact-5`.group_id IN ( 5 ) AND `civicrm_group_contact-5`.status IN ("Added") ) ', '{literal}a:10:{s:15:"civicrm_contact";i:1;s:15:"civicrm_address";i:1;s:22:"civicrm_state_province";i:1;s:15:"civicrm_country";i:1;s:13:"civicrm_email";i:1;s:13:"civicrm_phone";i:1;s:10:"civicrm_im";i:1;s:19:"civicrm_worldregion";i:1;s:25:"`civicrm_group_contact-5`";s:114:" LEFT JOIN civicrm_group_contact `civicrm_group_contact-5` ON contact_a.id = `civicrm_group_contact-5`.contact_id ";s:6:"gender";i:1;}{/literal}', '{literal}a:2:{s:15:"civicrm_contact";i:1;s:25:"`civicrm_group_contact-5`";s:114:" LEFT JOIN civicrm_group_contact `civicrm_group_contact-5` ON contact_a.id = `civicrm_group_contact-5`.contact_id ";}{/literal}', '2', NULL, NULL, NULL, 0 FROM dual WHERE NOT EXISTS (SELECT * FROM `civicrm_group` WHERE `name` = 'Case_Resources'));
*
* @param int $contactId contact id.
*
- * @return true if present else false.
+ * @return bool true if present else false.
* @access public
* @static
*/
if (!empty($groups)) {
foreach ($groups as $id => $value) {
$groupList[$id]['group_id'] = $value['id'];
+ $groupList[$id]['count'] = $value['count'];
$groupList[$id]['group_name'] = $value['title'];
- $groupList[$id]['class'] = implode(' ', $value['class']);
// append parent names if in search mode
if (empty($params['parent_id']) && !empty($value['parents'])) {
$title[] = $allGroups[$gId];
}
$groupList[$id]['group_name'] .= '<div class="crm-row-parent-name"><em>'.ts('Child of').'</em>: ' . implode(', ', $title) . '</div>';
- $groupList[$id]['class'] = in_array('disabled', $value['class']) ? 'disabled' : '';
+ $value['class'] = array_diff($value['class'], array('crm-row-parent'));
}
+ $value['class'][] = 'crm-entity';
+ $groupList[$id]['class'] = $value['id'] . ',' . implode(' ', $value['class']);
$groupList[$id]['group_description'] = CRM_Utils_Array::value('description', $value);
if (!empty($value['group_type'])) {
}
$query = "
- SELECT groups.*, createdBy.sort_name as created_by {$select}
+ SELECT groups.*, createdBy.sort_name as created_by, IF(groups.saved_search_id, COUNT(smart_contacts.id), COUNT(contacts.id)) as `count` {$select}
FROM civicrm_group groups
- LEFT JOIN civicrm_contact createdBy
- ON createdBy.id = groups.created_id
- {$from}
+ LEFT JOIN civicrm_group_contact contacts
+ ON contacts.group_id = groups.id AND contacts.status = 'Added'
+ LEFT JOIN civicrm_group_contact_cache smart_contacts
+ ON smart_contacts.group_id = groups.id
+ LEFT JOIN civicrm_contact createdBy
+ ON createdBy.id = groups.created_id
+ {$from}
WHERE $whereClause {$where}
+ GROUP BY groups.id
{$orderBy}
{$limit}";
$values[$object->id]['visibility'] = $visibility[$values[$object->id]['visibility']];
+ $values[$object->id]['count'] = $object->count;
+
if (isset($values[$object->id]['group_type'])) {
$groupTypes = explode(CRM_Core_DAO::VALUE_SEPARATOR,
substr($values[$object->id]['group_type'], 1, -1)
}
}
+ /**
+ * FIXME: This function should not be needed, because the cache table should not be getting truncated
+ */
+ static function fillIfEmpty() {
+ if (!CRM_Core_DAO::singleValueQuery("SELECT COUNT(id) FROM civicrm_group_contact_cache")) {
+ self::loadAll();
+ }
+ }
+
/**
* @param $groupID
*/
if (!isset($proximityAddress['country_id'])) {
// get it from state if state is present
if (isset($proximityAddress['state_province_id'])) {
- $proximityAddress['country_id'] = CRM_Core_PseudoConstant::countryForState($proximityAddress['state_province_id']);
+ $proximityAddress['country_id'] = CRM_Core_PseudoConstant::countryIDForStateID($proximityAddress['state_province_id']);
}
elseif (isset($config->defaultContactCountry)) {
$proximityAddress['country_id'] = $config->defaultContactCountry;
if (!array_key_exists($cfID, $this->_cfIDs)) {
$this->_cfIDs[$cfID] = array();
}
+ // Set wildcard value based on "and/or" selection
+ foreach ($this->_params as $key => $param) {
+ if ($param[0] == $value[0] . '_operator') {
+ $value[4] = $param[2] == 'or';
+ break;
+ }
+ }
$this->_cfIDs[$cfID][] = $value;
}
list($name, $op, $value, $grouping, $wildcard) = $values;
if (is_array($value)) {
- $this->_where[$grouping][] = 'civicrm_address.location_type_id IN (' . implode(',', array_keys($value)) . ')';
+ $this->_where[$grouping][] = 'civicrm_address.location_type_id IN (' . implode(',', $value) . ')';
$this->_tables['civicrm_address'] = 1;
$this->_whereTables['civicrm_address'] = 1;
$locationType = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id');
$names = array();
- foreach (array_keys($value) as $id) {
+ foreach ($value as $id) {
$names[] = $locationType[$id];
}
}
$stateClause = "civicrm_address.state_province_id $op (" . implode(',', $value) . ')';
- $stateProvince = CRM_Core_PseudoConstant::stateProvince();
foreach ($value as $id) {
- $names[] = CRM_Utils_Array::value($id, $stateProvince);
+ $names[] = CRM_Core_PseudoConstant::stateProvince($id, FALSE);
}
}
else {
}
$toggleValues = $this->getWhereValues('privacy_toggle', $grouping);
- $compareOP = '!=';
+ $compareOP = '!';
if ($toggleValues &&
$toggleValues[2] == 2
) {
- $compareOP = '=';
+ $compareOP = '';
}
$clauses = array();
$qill = array();
foreach ($value as $dontCare => $pOption) {
- $clauses[] = " ( contact_a.{$pOption} $compareOP 1 ) ";
+ $clauses[] = " ( contact_a.{$pOption} = 1 ) ";
$field = CRM_Utils_Array::value($pOption, $this->_fields);
$title = $field ? $field['title'] : $pOption;
- $qill[] = " $title $compareOP 1 ";
+ $qill[] = " $title = 1 ";
}
- $this->_where[$grouping][] = '( ' . implode($operator, $clauses) . ' )';
- $this->_qill[$grouping][] = implode($operator, $qill);
+ $this->_where[$grouping][] = $compareOP . '( ' . implode($operator, $clauses) . ' )';
+ $this->_qill[$grouping][] = $compareOP . '( ' . implode($operator, $qill) . ' )';
}
/**
*/
public function buildQuickForm() {
- $groupList = CRM_Core_PseudoConstant::group();
- $groupList[''] = ts('- All Contacts -');
- asort($groupList);
+ $groupList = array('' => ts('- All Contacts -')) + CRM_Core_PseudoConstant::nestedGroup();
$this->add('select', 'group_id', ts('Select Group'), $groupList, FALSE, array('class' => 'crm-select2 huge'));
$this->addButtons(array(
}
if ( !$inlineEditMode ) {
- $form->add('text', 'external_identifier', ts('External Id'), $attributes['external_identifier'], FALSE);
+ $form->add('text', 'external_identifier', ts('External ID'), $attributes['external_identifier'], FALSE);
$form->addRule('external_identifier',
ts('External ID already exists in Database.'),
'objectExists',
$form->assign('checkSimilar', $checkSimilar);
//External Identifier Element
- $form->add('text', 'external_identifier', ts('External Id'),
+ $form->add('text', 'external_identifier', ts('External ID'),
CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'external_identifier'), FALSE
);
}
if ( !$inlineEditMode ) {
- $form->add('text', 'external_identifier', ts('External Id'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'external_identifier'), FALSE);
+ $form->add('text', 'external_identifier', ts('External ID'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'external_identifier'), FALSE);
$form->addRule('external_identifier',
ts('External ID already exists in Database.'),
'objectExists',
// build tag widget
$parentNames = CRM_Core_BAO_Tag::getTagSet('civicrm_contact');
- CRM_Core_Form_Tag::buildQuickForm($form, $parentNames, 'civicrm_contact', $contactId, TRUE, TRUE);
+ CRM_Core_Form_Tag::buildQuickForm($form, $parentNames, 'civicrm_contact', $contactId, FALSE, TRUE);
}
$form->assign('tagGroup', $form->_tagGroup);
}
$this->_gid = $gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this, FALSE);
$this->_mergeId = CRM_Utils_Request::retrieve('mergeId', 'Positive', $this, FALSE);
+ // Sanity check
+ if ($cid == $oid) {
+ CRM_Core_Error::statusBounce(ts('Cannot merge a contact with itself.'));
+ }
+
if (!CRM_Dedupe_BAO_Rule::validateContacts($cid, $oid)) {
CRM_Core_Error::statusBounce(ts('The selected pair of contacts are marked as non duplicates. If these records should be merged, you can remove this exception on the <a href=\'%1\'>Dedupe Exceptions</a> page.', array(1 => CRM_Utils_System::url('civicrm/dedupe/exception', 'reset=1'))));
}
CRM_Dedupe_Merger::moveAllBelongings($this->_cid, $this->_oid, $formValues);
- CRM_Core_Session::setStatus(ts('Contact id %1 has been updated and contact id %2 has been deleted.', array(1 => $this->_cid, 2 => $this->_oid)), ts('Contacts Merged'), 'success');
+ $name = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_cid, 'display_name');
+ $message = '<ul><li>' . ts('%1 has been updated.', array(1 => $name)) . '</li><li>' . ts('Contact ID %1 has been deleted.', array(1 => $this->_oid)) . '</li></ul>';
+ CRM_Core_Session::setStatus($message, ts('Contacts Merged'), 'success');
+
$url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid={$this->_cid}");
if (!empty($formValues['_qf_Merge_submit'])) {
$listParamsURL = "reset=1&action=update&rgid={$this->_rgid}";
*/
function buildQuickForm() {
parent::buildQuickForm();
- $this->setAttribute('class', 'crm-search-form crm-ajax-selection-form');
+ $this->addClass('crm-ajax-selection-form');
CRM_Core_Resources::singleton()
// jsTree is needed for tags popup
->addScriptFile('civicrm', 'packages/jquery/plugins/jstree/jquery.jstree.js', 0, 'html-header', FALSE)
$this->assign_by_ref('group', $groupValues);
$this->add('submit', $this->_actionButtonName, ts('Add Contacts to %1', array(1 => $this->_group[$this->_amtgID])),
array(
- 'class' => 'form-submit',
+ 'class' => 'crm-form-submit',
)
);
$this->add('hidden', 'task', CRM_Contact_Task::GROUP_CONTACTS);
+ $selectedRowsRadio = $this->addElement('radio', 'radio_ts', NULL, '', 'ts_sel', array('checked' => 'checked'));
+ $allRowsRadio = $this->addElement('radio', 'radio_ts', NULL, '', 'ts_all');
+ $this->assign('ts_sel_id', $selectedRowsRadio->_attributes['id']);
+ $this->assign('ts_all_id', $allRowsRadio->_attributes['id']);
}
else {
$this->addTaskMenu($tasks);
foreach ($fields['values'] as $field => $info) {
if (!empty($info['options']) || !empty($info['pseudoconstant']) || !empty($info['option_group_id'])) {
$options[$field] = $entity;
+ // Hack for when search field doesn't match db field - e.g. "country" instead of "country_id"
if (substr($field, -3) == '_id') {
$options[substr($field, 0, -3)] = $entity;
}
}
+ elseif (!empty($info['data_type']) && in_array($info['data_type'], array('StateProvince', 'Country'))) {
+ $options[$field] = $entity;
+ }
elseif (in_array(substr($field, 0, 3), array('is_', 'do_')) || CRM_Utils_Array::value('data_type', $info) == 'Boolean') {
$options[$field] = 'yesno';
if ($entity != 'contact') {
/**
- * @param $form
+ * @param CRM_Core_Form $form
*/
static function location(&$form) {
+ $config = CRM_Core_Config::singleton();
// Build location criteria based on _submitValues if
// available; otherwise, use $form->_formValues.
$formValues = $form->_submitValues;
$parseStreetAddress = CRM_Utils_Array::value('street_address_parsing', $addressOptions, 0);
$form->assign('parseStreetAddress', $parseStreetAddress);
+ $stateCountryMap = NULL;
foreach ($elements as $name => $v) {
list($title, $attributes, $select, $multiSelect) = $v;
}
if ($select) {
- $stateCountryMap[] = array(
+ $stateCountryMap = array(array(
'state_province' => 'state_province',
'country' => 'country',
'county' => 'county',
- );
+ ));
if ($select == 'stateProvince') {
if (!empty($formValues['country'])) {
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($formValues['country']);
//if not setdefault any country
$selectElements = CRM_Core_PseudoConstant::$select();
}
- $element = $form->add('select', $name, $title, $selectElements, FALSE, array('class' => 'crm-select2'));
+ $element = $form->add('select', $name, $title, $selectElements);
}
elseif ($select == 'country') {
$selectElements = array('' => ts('- any -')) + CRM_Core_PseudoConstant::$select();
- $element = $form->add('select', $name, $title, $selectElements, FALSE, array('class' => 'crm-select2'));
+ $element = $form->add('select', $name, $title, $selectElements);
}
elseif ($select == 'county') {
if ( array_key_exists('state_province', $formValues) && !CRM_Utils_System::isNull($formValues['state_province'])) {
else {
$selectElements = array('' => ts('- any -'));
}
- $element = $form->add('select', $name, $title, $selectElements, FALSE, array('class' => 'crm-select2'));
+ $element = $form->add('select', $name, $title, $selectElements);
}
else {
$selectElements = array('' => ts('- any -')) + CRM_Core_PseudoConstant::$select();
}
if ($addressOptions['postal_code']) {
- $form->addElement('text', 'postal_code_low', ts('Range-From'),
- CRM_Utils_Array::value('postal_code', $attributes)
- );
- $form->addElement('text', 'postal_code_high', ts('To'),
- CRM_Utils_Array::value('postal_code', $attributes)
- );
+ $attr = array('class' => 'six') + (array) CRM_Utils_Array::value('postal_code', $attributes);
+ $form->addElement('text', 'postal_code_low', NULL, $attr + array('placeholder' => ts('From')));
+ $form->addElement('text', 'postal_code_high', NULL, $attr + array('placeholder' => ts('To')));
}
}
CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap);
// extend addresses with proximity search
- $form->addElement('text', 'prox_distance', ts('Find contacts within'), array('class' => 'six'));
- $form->addElement('select', 'prox_distance_unit', NULL, array('miles' => ts('Miles'), 'kilos' => ts('Kilometers')));
-
- // is there another form rule that does decimals besides money ? ...
- $form->addRule('prox_distance', ts('Please enter positive number as a distance'), 'numeric');
+ if (!empty($config->geocodeMethod)) {
+ $form->addElement('text', 'prox_distance', ts('Find contacts within'), array('class' => 'six'));
+ $form->addElement('select', 'prox_distance_unit', NULL, array(
+ 'miles' => ts('Miles'),
+ 'kilos' => ts('Kilometers')
+ ));
+ $form->addRule('prox_distance', ts('Please enter positive number as a distance'), 'numeric');
+ }
- $worldRegions = array('' => '') + CRM_Core_PseudoConstant::worldRegion();
$form->addSelect('world_region', array('entity' => 'address', 'placeholder' => ts('- any -'), 'option_url' => NULL));
- // checkboxes for location type
- $location_type = array();
+ // select for location type
$locationType = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id');
- foreach ($locationType as $locationTypeID => $locationTypeName) {
- $location_type[] = $form->createElement('checkbox', $locationTypeID, NULL, $locationTypeName);
- }
- $form->addGroup($location_type, 'location_type', ts('Location Types'), ' ');
+ $form->add('select', 'location_type', ts('Address Location'), $locationType, FALSE, array(
+ 'multiple' => TRUE,
+ 'class' => 'crm-select2',
+ 'placeholder' => ts('Primary'),
+ ));
// custom data extending addresses -
$extends = array('Address');
// this is loaded onto then replace with something like '__' & test
$separator = CRM_Core_DAO::VALUE_SEPARATOR;
$contactTypes = array('' => ts('- any contact type -')) + CRM_Contact_BAO_ContactType::getSelectElements(FALSE, TRUE, $separator);
- $form->add('select', 'contact_type', ts('Find...'), $contactTypes);
+ $form->add('select', 'contact_type', ts('Find...'), $contactTypes, FALSE, array('class' => 'crm-select2 huge'));
// add select for groups
- $group = array('' => ts('- any group -')) + CRM_Core_PseudoConstant::group();
- $form->addElement('select', 'group', ts('in'), $group);
+ $group = array('' => ts('- any group -')) + CRM_Core_PseudoConstant::nestedGroup();
+ $form->addElement('select', 'group', ts('in'), $group, array('class' => 'crm-select2 huge'));
// add select for categories
$tag = array('' => ts('- any tag -')) + CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
- $form->addElement('select', 'tag', ts('Tagged'), $tag);
+ $form->addElement('select', 'tag', ts('Tagged'), $tag, array('class' => 'crm-select2 huge'));
// text for sort_name
$form->add('text', 'sort_name', ts('Name'));
$this->_permissionedComponent = 'CiviContribute';
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Name') => 'display_name',
ts('Donation Count') => 'donation_count',
ts('Donation Amount') => 'donation_amount',
*/
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Name') => 'sort_name',
ts('Donation Count') => 'donation_count',
ts('Donation Amount') => 'donation_amount',
$this->_excludeGroups = CRM_Utils_Array::value('excludeGroups', $formValues, array());
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
ts('Date Added') => 'date_added',
$form->addDate('start_date', ts('Start Date'), FALSE, array('formatType' => 'custom'));
$form->addDate('end_date', ts('End Date'), FALSE, array('formatType' => 'custom'));
- $groups = CRM_Core_PseudoConstant::group();
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
$select2style = array(
'multiple' => TRUE,
* Define the columns for search result rows
*/
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Individual Name') => 'sort_name',
ts('Individual State') => 'indState',
ts('Employer') => 'employer',
*/
function &columns() {
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Name') => 'sort_name',
);
function __construct(&$formValues) {
$this->_formValues = $formValues;
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
ts('Group Name') => 'gname',
$this->setTitle(ts('Include / Exclude Search'));
- $groups = CRM_Core_PseudoConstant::group();
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
$tags = CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
if (count($groups) == 0 || count($tags) == 0) {
$this->_tag = CRM_Utils_Array::value('tag', $this->_formValues);
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
);
// this is loaded onto then replace with something like '__' & test
$separator = CRM_Core_DAO::VALUE_SEPARATOR;
$contactTypes = array('' => ts('- any contact type -')) + CRM_Contact_BAO_ContactType::getSelectElements(FALSE, TRUE, $separator);
- $form->add('select', 'contact_type', ts('Find...'), $contactTypes);
+ $form->add('select', 'contact_type', ts('Find...'), $contactTypes, array('class' => 'crm-select2 huge'));
// add select for groups
$group = array('' => ts('- any group -')) + CRM_Core_PseudoConstant::group();
- $form->addElement('select', 'group', ts('in'), $group);
+ $form->addElement('select', 'group', ts('in'), $group, array('class' => 'crm-select2 huge'));
// add select for tags
$tag = array('' => ts('- any tag -')) + CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
- $form->addElement('select', 'tag', ts('Tagged'), $tag);
+ $form->addElement('select', 'tag', ts('Tagged'), $tag, array('class' => 'crm-select2 huge'));
if (empty($this->_groupTree)) {
CRM_Core_Error::statusBounce(ts("Atleast one Custom Group must be present, for Custom Group search."),
parent::__construct($formValues);
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Address') => 'address',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
* @param $form
*/
function buildForm(&$form) {
- $groups = array('' => ts('- select group -')) + CRM_Core_PseudoConstant::allGroup();
- $form->addElement('select', 'group_id', ts('Group'), $groups);
+ $groups = array('' => ts('- select group -')) + CRM_Core_PseudoConstant::nestedGroup(FALSE);
+ $form->addElement('select', 'group_id', ts('Group'), $groups, array('class' => 'crm-select2 huge'));
/**
* if you are using the standard template, this array tells the template what elements
function setColumns() {
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Participant Id') => 'participant_id',
ts('Name') => 'display_name',
);
else {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvince();
}
- $form->addElement('select', 'state_province_id', ts('State/Province'), $stateProvince);
+ $form->add('select', 'state_province_id', ts('State/Province'), $stateProvince, FALSE, array('class' => 'crm-select2 huge'));
$country = array('' => ts('- select -')) + CRM_Core_PseudoConstant::country();
- $form->add('select', 'country_id', ts('Country'), $country, TRUE);
+ $form->add('select', 'country_id', ts('Country'), $country, TRUE, array('class' => 'crm-select2 huge'));
- $group = array('' => ts('- any group -')) + CRM_Core_PseudoConstant::group();
- $form->addElement('select', 'group', ts('Group'), $group);
+ $group = array('' => ts('- any group -')) + CRM_Core_PseudoConstant::nestedGroup();
+ $form->addElement('select', 'group', ts('Group'), $group, array('class' => 'crm-select2 huge'));
$tag = array('' => ts('- any tag -')) + CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
- $form->addElement('select', 'tag', ts('Tag'), $tag);
+ $form->addElement('select', 'tag', ts('Tag'), $tag, array('class' => 'crm-select2 huge'));
// state country js, CRM-5233
parent::__construct($formValues);
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
ts('Email') => 'email',
TRUE
);
- $groups = CRM_Core_PseudoConstant::group();
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
$select2style = array(
'multiple' => TRUE,
}
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
ts('State') => 'state_province',
* Define the columns for search result rows
*/
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Full Name') => 'sort_name',
ts('First Name') => 'first_name',
ts('Last Name') => 'last_name',
parent::__construct($formValues);
$this->_columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Name') => 'sort_name',
ts('Email') => 'email',
ts('Zip') => 'postal_code',
*
* @access public
*
- * @return void
+ * @return array
*/
function setDefaultValues() {
$defaults = array();
}
// add select for groups
- $group = array('' => ts('- select group -')) + CRM_Core_PseudoConstant::group();
+ $group = array('' => ts('- select group -')) + CRM_Core_PseudoConstant::nestedGroup();
$groupElement = $this->add('select', 'group_id', ts('Select Group'), $group, FALSE, array('class' => 'crm-select2 huge'));
}
$status = '<ul><li>' . implode('</li><li>', $status) . '</li></ul>';
CRM_Core_Session::setStatus($status, ts('Added Contact to %1', array(1 => $groupName, 'count' => $added, 'plural' => 'Added Contacts to %1')), 'success', array('expires' => 0));
+
+ if ($this->_context === 'amtg') {
+ CRM_Core_Session::singleton()->pushUserContext(CRM_Utils_System::url('civicrm/group/search', "reset=1&force=1&context=smog&gid=$groupID"));
+ }
}
//end of function
}
$this->assign('searchCount', $searchCount);
$this->assign('searchDone', $this->get('searchDone'));
$this->assign('contact_type_display', ts('Household'));
- $this->addElement('submit', $this->getButtonName('refresh'), ts('Search'), array('class' => 'form-submit'));
- $this->addElement('submit', $this->getButtonName('cancel'), ts('Cancel'), array('class' => 'form-submit'));
+ $this->addElement('submit', $this->getButtonName('refresh'), ts('Search'), array('class' => 'crm-form-submit'));
+ $this->addElement('submit', $this->getButtonName('cancel'), ts('Cancel'), array('class' => 'crm-form-submit'));
$this->addButtons(array(
array(
$this->assign('searchCount', $searchCount);
$this->assign('searchDone', $this->get('searchDone'));
$this->assign('contact_type_display', ts('Organization'));
- $this->addElement('submit', $this->getButtonName('refresh'), ts('Search'), array('class' => 'form-submit'));
- $this->addElement('submit', $this->getButtonName('cancel'), ts('Cancel'), array('class' => 'form-submit'));
+ $this->addElement('submit', $this->getButtonName('refresh'), ts('Search'), array('class' => 'crm-form-submit'));
+ $this->addElement('submit', $this->getButtonName('cancel'), ts('Cancel'), array('class' => 'crm-form-submit'));
$this->addButtons(array(
foreach ($field as $fieldName => $fieldValue) {
if ($fieldName == 'external_identifier') {
if (in_array($fieldValue, $externalIdentifiers)) {
- $errors["field[$componentId][external_identifier]"] = ts('Duplicate value for External Identifier.');
+ $errors["field[$componentId][external_identifier]"] = ts('Duplicate value for External ID.');
}
else {
$externalIdentifiers[$componentId] = $fieldValue;
}
//build the returnproperties
- $returnProperties = array('display_name' => 1, 'contact_type' => 1);
+ $returnProperties = array('display_name' => 1, 'contact_type' => 1, 'prefix_id' => 1);
$mailingFormat = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
'mailing_format'
);
else {
$name = $rows[$rowID]['display_name'];
}
+
+ // CRM-15120
+ $formatted = array(
+ 'first_name' => $rows[$rowID]['first_name'],
+ 'individual_prefix' => $rows[$rowID]['individual_prefix']
+ );
+ $format = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'display_name_format');
+ $firstNameWithPrefix = CRM_Utils_Address::format($formatted, $format, FALSE, FALSE, TRUE);
+ $firstNameWithPrefix = trim($firstNameWithPrefix);
+
// fill uniqueAddress array with last/first name tree
if (isset($uniqueAddress[$address])) {
- $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['first_name'] = $rows[$rowID]['first_name'];
- $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['addressee_display'] = $rows[$rowID]['addressee_display'];
+ $uniqueAddress[$address]['names'][$name][$firstNameWithPrefix]['first_name'] = $rows[$rowID]['first_name'];
+ $uniqueAddress[$address]['names'][$name][$firstNameWithPrefix]['addressee_display'] = $rows[$rowID]['addressee_display'];
// drop unnecessary rows
unset($rows[$rowID]);
// this is the first listing at this address
}
else {
$uniqueAddress[$address]['ID'] = $rowID;
- $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['first_name'] = $rows[$rowID]['first_name'];
- $uniqueAddress[$address]['names'][$name][$rows[$rowID]['first_name']]['addressee_display'] = $rows[$rowID]['addressee_display'];
+ $uniqueAddress[$address]['names'][$name][$firstNameWithPrefix]['first_name'] = $rows[$rowID]['first_name'];
+ $uniqueAddress[$address]['names'][$name][$firstNameWithPrefix]['addressee_display'] = $rows[$rowID]['addressee_display'];
}
}
foreach ($uniqueAddress as $address => $data) {
CRM_Core_Session::setStatus(ts("The contact type selected for Batch Update does not have a corresponding profile. Please set up a profile for %1s and try again.", array(1 => $types)), ts('No Profile Available'), 'error');
CRM_Utils_System::redirect($this->_userContext);
}
- $ufGroupElement = $this->add('select', 'uf_group_id', ts('Select Profile'), array('' => ts('- select profile -')) + $profiles, TRUE);
+ $ufGroupElement = $this->add('select', 'uf_group_id', ts('Select Profile'), array('' => ts('- select profile -')) + $profiles, TRUE, array('class' => 'crm-select2 huge'));
$this->addDefaultButtons(ts('Continue >>'));
}
*/
function buildQuickForm() {
// add select for groups
- $group = array('' => ts('- select group -')) + CRM_Core_PseudoConstant::group();
+ $group = array('' => ts('- select group -')) + CRM_Core_PseudoConstant::nestedGroup();
$groupElement = $this->add('select', 'group_id', ts('Select Group'), $group, TRUE, array('class' => 'crm-select2 huge'));
CRM_Utils_System::setTitle(ts('Remove Contacts from Group'));
$this->_context = CRM_Utils_Request::retrieve('context', 'String', $this);
$cid = CRM_Utils_Request::retrieve('cid', 'Positive', $this, FALSE);
- if ($cid) {
- CRM_Contact_Page_View::setTitle($cid);
- }
CRM_Contact_Form_Task_SMSCommon::preProcessProvider($this);
$this->assign('rowDisplayCount', 2);
- $groups = CRM_Core_PseudoConstant::group();
+ $groups = CRM_Core_PseudoConstant::nestedGroup();
$this->set('groups', $groups);
$tag = CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
$groups = $this->get('groups');
if (!empty($groups)) {
- $this->addElement('select', 'groups', ts('Add imported records to existing group(s)'), $groups, array('multiple' => "multiple", 'size' => 5));
+ $this->addElement('select', 'groups', ts('Add imported records to existing group(s)'), $groups, array('multiple' => "multiple", 'class' => 'crm-select2'));
}
//display new tag
/* If it's a dupe,external Identifier */
if ($externalDupe = CRM_Utils_Array::value($externalID, $this->_allExternalIdentifiers)) {
- $errorMessage = ts('External Identifier conflicts with record %1', array(1 => $externalDupe));
+ $errorMessage = ts('External ID conflicts with record %1', array(1 => $externalDupe));
array_unshift($values, $errorMessage);
$importRecordParams = array(
$statusFieldName => 'ERROR',
if ($internalCid = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $params['external_identifier'], 'id', 'external_identifier')) {
if ($internalCid != CRM_Utils_Array::value('id', $params)) {
- $errorMessage = ts('External Identifier already exists in database.');
+ $errorMessage = ts('External ID already exists in Database.');
array_unshift($values, $errorMessage);
$importRecordParams = array(
$statusFieldName => 'ERROR',
$this->assign('title', $title);
// Check if this is default domain contact CRM-10482
- if (CRM_Contact_BAO_Contact::checkDomainContact($contactId)) {
- $this->assign('domainContact', TRUE);
- } else {
- $this->assign('domainContact', FALSE);
- }
+ $this->assign('domainContact', CRM_Contact_BAO_Contact::checkDomainContact($contactId));
// check logged in user permission
CRM_Contact_Page_View::checkUserPermission($this, $contactId);
'style'
);
- if ($displayStyle === 'Tab with table' && $this->_multiRecordDisplay != 'single') {
+ if ($this->_multiRecordDisplay != 'single') {
$id = "custom_{$this->_groupId}";
$this->ajaxResponse['tabCount'] = CRM_Contact_BAO_Contact::getCountComponent($id, $this->_contactId, $groupTree[$this->_groupId]['table_name']);
+ }
+
+ if ($displayStyle === 'Tab with table' && $this->_multiRecordDisplay != 'single') {
$ctype = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact',
$this->_contactId,
'contact_type'
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
-
$displayName = CRM_Contact_BAO_Contact::displayName($this->_contactId);
CRM_Utils_System::setTitle(ts('Notes for') . ' ' . $displayName);
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
-
$this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE, 'browse');
$this->assign('action', $this->_action);
}
'title' => $group['title'],
'weight' => $weight,
'count' => CRM_Contact_BAO_Contact::getCountComponent($id, $this->_contactId, $group['table_name']),
+ 'hideCount' => !$group['is_multiple'],
'class' => 'livePage'
);
$weight += 10;
}
if ($output == CRM_Core_Selector_Controller::EXPORT) {
- $csvHeaders = array(ts('Contact Id'), ts('Contact Type'));
+ $csvHeaders = array(ts('Contact ID'), ts('Contact Type'));
foreach ($this->getColHeads($action, $output) as $column) {
if (array_key_exists('name', $column)) {
$csvHeaders[] = $column['name'];
// contribution status is missing, choose Completed as default status
// do this for create mode only
- if (empty($ids['contribution']) && empty($params['contribution_status_id'])) {
+ if (!$contributionID && empty($params['contribution_status_id'])) {
$params['contribution_status_id'] = CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name');
}
$setPrevContribution = TRUE;
return $params;
}
- /**
- * update the is_active flag in the db
- *
- * @param int $id id of the database record
- * @param boolean $is_active value we want to set the is_active field
- *
- * @return Object DAO object on success, null otherwise
- * @static
- */
- static function setIsActive($id, $is_active) {
- if (!$is_active) {
- return self::cancelRecurContribution($id, CRM_Core_DAO::$_nullObject);
- }
- return FALSE;
- }
-
/**
* @param $entityID
* @param string $entity
}
}
}
-
*/
/**
- * This class generates form components generic to Mobile provider
+ * This class generates form components generic to Contribution admin
*
*/
-class CRM_Contribute_Form extends CRM_Core_Form {
+class CRM_Contribute_Form extends CRM_Admin_Form {
/**
- * The id of the object being edited / created
- *
- * @var int
- */
- protected $_id;
-
- /**
- * The name of the BAO object for this form
- *
- * @var string
- */
- protected $_BAOName;
-
- function preProcess() {
- $this->_id = $this->get('id');
- $this->_BAOName = $this->get('BAOName');
- }
-
- /**
- * This function sets the default values for the form. MobileProvider that in edit/view mode
+ * This function sets the default values for the form. Note that in edit/view mode
* the default values are retrieved from the database
*
* @access public
*
- * @return void
+ * @return array
*/
function setDefaultValues() {
$defaults = array();
- $params = array();
if (isset($this->_id)) {
$params = array('id' => $this->_id);
return $defaults;
}
- /**
- * Function to actually build the form
- *
- * @return void
- * @access public
- */
- public function buildQuickForm() {
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Save'),
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
- )
- );
-
- if ($this->_action & CRM_Core_Action::DELETE) {
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Delete'),
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
- )
- );
- }
- }
}
$this->assign('paymentType', $this->_paymentType);
$this->assign('paymentAmt', abs($paymentAmt));
- $this->_paymentProcessor = array('billing_mode' => 1);
+ $this->setPageTitle($this->_refund ? ts('Refund') : ts('Payment'));
- $title = ($this->_refund) ? "Refund for {$this->_contributorDisplayName}" : "Payment from {$this->_contributorDisplayName}";
- if ($title) {
- CRM_Utils_System::setTitle(ts('%1', array(1 => $title)));
- }
+ $this->_paymentProcessor = array('billing_mode' => 1);
}
/**
);
$this->add('text', 'check_number', ts('Check Number'), $attributes['financial_trxn_check_number']);
- $trxnId = $this->add('text', 'trxn_id', ts('Transaction ID'), $attributes['trxn_id']);
+ $this->add('text', 'trxn_id', ts('Transaction ID'), array('class' => 'twelve') + $attributes['trxn_id']);
//add receipt for offline contribution
$this->addElement('checkbox', 'is_email_receipt', ts('Send Receipt?'));
$this->assign('lineItem', empty($this->_lineItems) ? FALSE : $this->_lineItems);
// Set title
- if ($this->_contactID) {
- $displayName = CRM_Contact_BAO_Contact::displayName($this->_contactID);
-
- // Check if this is default domain contact CRM-10482
- if (CRM_Contact_BAO_Contact::checkDomainContact($this->_contactID)) {
- $displayName .= ' (' . ts('default organization') . ')';
- }
-
- // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container
- CRM_Utils_System::setTitle(ts('Contribution from') . ' ' . $displayName);
+ if ($this->_mode) {
+ $this->setPageTitle($this->_ppID ? ts('Credit Card Pledge Payment') : ts('Credit Card Contribution'));
+ }
+ else {
+ $this->setPageTitle($this->_ppID ? ts('Pledge Payment') : ts('Contribution'));
}
if ($this->_id) {
$this->assign('entityID', $this->_id);
if ($this->_context == 'standalone') {
- $this->addEntityRef('contact_id', ts('Contact'), array('create' => TRUE), TRUE);
+ $this->addEntityRef('contact_id', ts('Contact'), array('create' => TRUE, 'api' => array('extra' => array('email'))), TRUE);
}
$attributes = CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_Contribution');
);
}
- $trxnId = $this->add('text', 'trxn_id', ts('Transaction ID'), $attributes['trxn_id']);
+ $trxnId = $this->add('text', 'trxn_id', ts('Transaction ID'), array('class' => 'twelve') + $attributes['trxn_id']);
//add receipt for offline contribution
$this->addElement('checkbox', 'is_email_receipt', ts('Send Receipt?'));
$softErrors = CRM_Contribute_Form_SoftCredit::formRule($fields, $errors, $self);
- // If we have a net amount or fee amount that is NOT set to 0.00, then ensure
- // that the net_amount + the fee_amount is equal to the total amount.
- $total_amount = NULL;
- if(!empty($fields['total_amount']) && $fields['total_amount'] != '0.00') {
- $total_amount = $fields['total_amount'];
- }
- $fee_amount = NULL;
- if(!empty($fields['fee_amount']) && $fields['fee_amount'] != '0.00') {
- $fee_amount = $fields['fee_amount'];
- }
- $net_amount = NULL;
- if(!empty($fields['net_amount']) && $fields['net_amount'] != '0.00') {
- $net_amount = $fields['net_amount'];
- }
- if ($total_amount && ($net_amount || $fee_amount)) {
- $sum = CRM_Utils_Rule::cleanMoney($net_amount) + CRM_Utils_Rule::cleanMoney($fee_amount);
- if (CRM_Utils_Rule::cleanMoney($total_amount) != $sum) {
+ if (!empty($fields['total_amount']) && (!empty($fields['net_amount']) || !empty($fields['fee_amount']))) {
+ $sum = CRM_Utils_Rule::cleanMoney($fields['net_amount']) + CRM_Utils_Rule::cleanMoney($fields['fee_amount']);
+ if (CRM_Utils_Rule::cleanMoney($fields['total_amount']) != $sum) {
$errors['total_amount'] = ts('The sum of fee amount and net amount must be equal to total amount');
}
}
$this->add('image',
$this->_checkoutButtonName,
$this->_paymentProcessor['url_button'],
- array('class' => 'form-submit')
+ array('class' => 'crm-form-submit')
);
$this->addButtons(array(
// CRM-6243 says to pick the first org even if more than one match
if (count($dupeIDs) >= 1) {
- $behalfOrganization['contact_id'] = $dupeIDs[0];
+ $behalfOrganization['contact_id'] = $orgID = $dupeIDs[0];
// don't allow name edit
unset($behalfOrganization['organization_name']);
}
* @access public
*/
public function buildQuickForm() {
- //parent::buildQuickForm( );
+ parent::buildQuickForm( );
+ $this->setPageTitle(ts('Premium Product'));
if ($this->_action & CRM_Core_Action::PREVIEW) {
CRM_Contribute_BAO_Premium::buildPremiumPreviewBlock($this, $this->_id);
-
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Done with Preview'),
- 'isDefault' => TRUE,
- ),
- )
- );
-
return;
}
if ($this->_action & CRM_Core_Action::DELETE) {
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Delete'),
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
- )
- );
return;
}
$this->addFormRule(array('CRM_Contribute_Form_ManagePremiums', 'formRule'));
- $this->addButtons(array(
- array(
- 'type' => 'upload',
- 'name' => ts('Save'),
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
- )
- );
-
$this->assign('productId', $this->_id);
}
$config = CRM_Core_Config::singleton();
return $config->imageUploadURL.basename($newFilename);
}
+
}
)
);
- $this->_group = CRM_Core_PseudoConstant::group();
+ $this->_group = CRM_Core_PseudoConstant::nestedGroup();
// multiselect for groups
if ($this->_group) {
$fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
$softCreditFields['contact_id'] = ts('Contact ID');
- $softCreditFields['external_identifier'] = ts('External Identifier');
+ $softCreditFields['external_identifier'] = ts('External ID');
$softCreditFields['email'] = ts('Email');
$sel2['soft_credit'] = $softCreditFields;
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
-
$this->assign('action', $this->_action);
if ($this->_permission == CRM_Core_Permission::EDIT && !CRM_Core_Permission::check('edit contributions')) {
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
-
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
}
$this->assign('action', $this->_action);
* @param $stateCountryMap
* @param null $defaults
*/
- static function addStateCountryMap(&$stateCountryMap, $defaults = NULL) {
+ static function addStateCountryMap($stateCountryMap, $defaults = NULL) {
// first fix the statecountry map if needed
if (empty($stateCountryMap)) {
return;
// make sure all values are present in the object for further processing
$customField->find(TRUE);
+ $triggerRebuild = CRM_Utils_Array::value('triggerRebuild', $params, TRUE);
//create/drop the index when we toggle the is_searchable flag
if (!empty($params['id'])) {
- self::createField($customField, 'modify', $indexExist);
+ self::createField($customField, 'modify', $indexExist, $triggerRebuild);
}
else {
if (!isset($origParams['column_name'])) {
// make sure all values are present in the object
$customField->find(TRUE);
- self::createField($customField, 'add');
+ $indexExist = FALSE;
+ self::createField($customField, 'add', $indexExist, $triggerRebuild);
}
// complete transaction
* @param CRM_Core_Form $qf form object (reference)
* @param string $elementName name of the custom field
* @param $fieldId
- * @param boolean $inactiveNeeded
+ * @param boolean $inactiveNeeded -deprecated
* @param bool $useRequired
* @param boolean $search true if used for search else false
* @param string $label label for custom field
$label = NULL
) {
$field = self::getFieldObject($fieldId);
+ $widget = $field->html_type;
// Custom field HTML should indicate group+field name
$groupName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $field->custom_group_id);
$field->attributes .= $dataCrmCustomAttr;
// Fixed for Issue CRM-2183
- if ($field->html_type == 'TextArea' && $search) {
- $field->html_type = 'Text';
+ if ($widget == 'TextArea' && $search) {
+ $widget = 'Text';
+ }
+
+ if ($widget == 'Select State/Province' || $widget == 'Select Country') {
+ $qf->_stateCountryMap[$widget == 'Select Country' ? 'country' : 'state_province'][] = $elementName;
}
$placeholder = $search ? ts('- any -') : ($useRequired ? ts('- select -') : ts('- none -'));
// FIXME: Why are select state/country separate widget types?
- if (in_array($field->html_type, array('Select', 'Multi-Select', 'Select State/Province', 'Multi-Select State/Province', 'Select Country', 'Multi-Select Country'))) {
+ $isSelect = (in_array($widget, array('Select', 'Multi-Select', 'Select State/Province', 'Multi-Select State/Province', 'Select Country', 'Multi-Select Country', 'AdvMulti-Select', 'CheckBox', 'Radio')));
+
+ if ($isSelect) {
+ $options = CRM_Utils_Array::value('values', civicrm_api3('contact', 'getoptions', array('field' => "custom_$fieldId", 'context' => $search ? 'search' : 'create'), array()));
+
+ // Consolidate widget types to simplify the below switch statement
+ if ($search || ($widget !== 'AdvMulti-Select' && strpos($widget, 'Select') !== FALSE)) {
+ $widget = 'Select';
+ }
$selectAttributes = array(
'data-crm-custom' => $dataCrmCustomVal,
'class' => 'crm-select2',
);
- if (strpos($field->html_type, 'Multi') === 0) {
+ // Search field is always multi-select
+ if ($search || strpos($field->html_type, 'Multi') !== FALSE) {
+ $selectAttributes['class'] .= ' huge';
$selectAttributes['multiple'] = 'multiple';
+ $selectAttributes['placeholder'] = $placeholder;
+ }
+ // Add data for popup link. Normally this is handled by CRM_Core_Form->addSelect
+ if ($field->option_group_id && !$search && $widget == 'Select' && CRM_Core_Permission::check('administer CiviCRM')) {
+ $selectAttributes += array(
+ 'data-api-entity' => 'contact', // FIXME: This works because the getoptions api isn't picky about custom fields, but it's WRONG
+ 'data-api-field' => 'custom_' . $field->id,
+ 'data-option-edit-path' => 'civicrm/admin/options/' . CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', $field->option_group_id),
+ );
}
- }
- // Add data so popup link. Normally this is handled by CRM_Core_Form->addSelect
- if ($field->option_group_id && !$search && in_array($field->html_type, array('Select', 'Multi-Select')) && CRM_Core_Permission::check('administer CiviCRM')) {
- $selectAttributes += array(
- 'data-api-entity' => 'contact', // FIXME: This works because the getoptions api isn't picky about custom fields, but it's WRONG
- 'data-api-field' => 'custom_' . $field->id,
- 'data-option-edit-path' => 'civicrm/admin/options/' . CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', $field->option_group_id),
- );
}
if (!isset($label)) {
* at some point in time we might want to split the below into small functions
**/
- switch ($field->html_type) {
+ switch ($widget) {
case 'Text':
+ case 'Link':
if ($field->is_search_range && $search) {
$qf->add('text', $elementName . '_from', $label . ' ' . ts('From'), $field->attributes);
$qf->add('text', $elementName . '_to', ts('To'), $field->attributes);
}
else {
- $element = &$qf->add(strtolower($field->html_type), $elementName, $label,
+ $element = &$qf->add('text', $elementName, $label,
$field->attributes,
$useRequired && !$search
);
if ($field->text_length) {
$attributes .= ' maxlength=' . $field->text_length;
}
- $element = &$qf->add(strtolower($field->html_type),
+ $element = &$qf->add('textarea',
$elementName,
$label,
$attributes,
case 'Radio':
$choice = array();
- if ($field->data_type != 'Boolean') {
- $customOption = CRM_Core_BAO_CustomOption::valuesByID($field->id,
- $field->option_group_id
- );
- foreach ($customOption as $v => $l) {
- $choice[] = $qf->createElement('radio', NULL, '', $l, (string)$v, $field->attributes);
- }
- $group = $qf->addGroup($choice, $elementName, $label);
- }
- else {
- $choice[] = $qf->createElement('radio', NULL, '', ts('Yes'), '1', $field->attributes);
- $choice[] = $qf->createElement('radio', NULL, '', ts('No'), '0', $field->attributes);
- $group = $qf->addGroup($choice, $elementName, $label);
+ foreach ($options as $v => $l) {
+ $choice[] = $qf->createElement('radio', NULL, '', $l, (string)$v, $field->attributes);
}
+ $group = $qf->addGroup($choice, $elementName, $label);
if ($useRequired && !$search) {
$qf->addRule($elementName, ts('%1 is a required field.', array(1 => $label)), 'required');
}
}
break;
+ // For all select elements
case 'Select':
- $selectOption = CRM_Core_BAO_CustomOption::valuesByID($field->id,
- $field->option_group_id
- );
-
- $qf->add('select', $elementName, $label,
- array('' => $placeholder) + $selectOption,
- $useRequired && !$search,
- $selectAttributes
- );
- break;
+ if (empty($selectAttributes['multiple'])) {
+ $options = array('' => $placeholder) + $options;
+ }
+ $qf->add('select', $elementName, $label, $options, $useRequired && !$search, $selectAttributes);
- //added for select multiple
+ // Add and/or option for fields that store multiple values
+ if ($search && self::isSerialized($field)) {
- case 'AdvMulti-Select':
- $selectOption = CRM_Core_BAO_CustomOption::valuesByID($field->id,
- $field->option_group_id
- );
- if ($search &&
- count($selectOption) > 1
- ) {
- $selectOption['CiviCRM_OP_OR'] = ts('Select to match ANY; unselect to match ALL');
+ $operators = array(
+ $qf->createElement('radio', NULL, '', ts('Any'), 'or', array('title' => ts('Results may contain any of the selected options'))),
+ $qf->createElement('radio', NULL, '', ts('All'), 'and', array('title' => ts('Results must have all of the selected options'))),
+ );
+ $qf->addGroup($operators, $elementName . '_operator');
+ $qf->setDefaults(array($elementName . '_operator' => 'or'));
}
+ break;
+ case 'AdvMulti-Select':
$include =& $qf->addElement(
'advmultiselect',
$elementName,
- $label, $selectOption,
+ $label, $options,
array(
'size' => 5,
'style' => '',
}
break;
- case 'Multi-Select':
- $selectOption = CRM_Core_BAO_CustomOption::valuesByID($field->id,
- $field->option_group_id
- );
- if ($search &&
- count($selectOption) > 1
- ) {
- $selectOption['CiviCRM_OP_OR'] = ts('Select to match ANY; unselect to match ALL');
- }
- $qf->addElement('select', $elementName, $label, $selectOption, $selectAttributes);
-
- if ($useRequired && !$search) {
- $qf->addRule($elementName, ts('%1 is a required field.', array(1 => $label)), 'required');
- }
- break;
-
case 'CheckBox':
- $customOption = CRM_Core_BAO_CustomOption::valuesByID($field->id,
- $field->option_group_id
- );
$check = array();
- foreach ($customOption as $v => $l) {
+ foreach ($options as $v => $l) {
$check[] = &$qf->addElement('advcheckbox', $v, NULL, $l, array('data-crm-custom' => $dataCrmCustomVal));
}
- if ($search &&
- count($check) > 1
- ) {
- $check[] = &$qf->addElement('advcheckbox', 'CiviCRM_OP_OR', NULL, ts('Check to match ANY; uncheck to match ALL'), array('data-crm-custom' => $dataCrmCustomVal));
- }
$qf->addGroup($check, $elementName, $label);
if ($useRequired && !$search) {
$qf->addRule($elementName, ts('%1 is a required field.', array(1 => $label)), 'required');
$qf->addUploadElement($elementName);
break;
- case 'Select State/Province':
- //Add State
- $stateOption = array('' => $placeholder) + CRM_Core_PseudoConstant::stateProvince();
- $qf->add('select', $elementName, $label, $stateOption,
- $useRequired && !$search,
- $selectAttributes
- );
- $qf->_stateCountryMap['state_province'][] = $elementName;
- break;
-
- case 'Multi-Select State/Province':
- //Add Multi-select State/Province
- $stateOption = CRM_Core_PseudoConstant::stateProvince();
-
- $qf->addElement('select', $elementName, $label, $stateOption, $selectAttributes);
- if ($useRequired && !$search) {
- $qf->addRule($elementName, ts('%1 is a required field.', array(1 => $label)), 'required');
- }
- break;
-
- case 'Select Country':
- //Add Country
- $countryOption = array('' => $placeholder) + CRM_Core_PseudoConstant::country();
- $qf->add('select', $elementName, $label, $countryOption,
- $useRequired && !$search,
- $selectAttributes
- );
- $qf->_stateCountryMap['country'][] = $elementName;
- break;
-
- case 'Multi-Select Country':
- //Add Country
- $countryOption = CRM_Core_PseudoConstant::country();
- $qf->addElement('select', $elementName, $label, $countryOption, $selectAttributes);
- if ($useRequired && !$search) {
- $qf->addRule($elementName, ts('%1 is a required field.', array(1 => $label)), 'required');
- }
- break;
-
case 'RichTextEditor':
$attributes = array('rows' => $field->note_rows, 'cols' => $field->note_columns, 'data-crm-custom' => $dataCrmCustomVal);
if ($field->text_length) {
$attributes += array(
'entity' => 'option_value',
'placeholder' => $placeholder,
+ 'multiple' => $search,
'api' => array(
'params' => array('option_group_id' => $field->option_group_id),
),
$qf->addRule($elementName . '_from', ts('%1 From must be an integer (whole number).', array(1 => $label)), 'integer');
$qf->addRule($elementName . '_to', ts('%1 To must be an integer (whole number).', array(1 => $label)), 'integer');
}
- else {
+ elseif ($widget == 'Text') {
$qf->addRule($elementName, ts('%1 must be an integer (whole number).', array(1 => $label)), 'integer');
}
break;
$qf->addRule($elementName . '_from', ts('%1 From must be a number (with or without decimal point).', array(1 => $label)), 'numeric');
$qf->addRule($elementName . '_to', ts('%1 To must be a number (with or without decimal point).', array(1 => $label)), 'numeric');
}
- else {
+ elseif ($widget == 'Text') {
$qf->addRule($elementName, ts('%1 must be a number (with or without decimal point).', array(1 => $label)), 'numeric');
}
break;
$qf->addRule($elementName . '_from', ts('%1 From must in proper money format. (decimal point/comma/space is allowed).', array(1 => $label)), 'money');
$qf->addRule($elementName . '_to', ts('%1 To must in proper money format. (decimal point/comma/space is allowed).', array(1 => $label)), 'money');
}
- else {
+ elseif ($widget == 'Text') {
$qf->addRule($elementName, ts('%1 must be in proper money format. (decimal point/comma/space is allowed).', array(1 => $label)), 'money');
}
break;
case 'Link':
- $qf->add(
- 'text',
- $elementName,
- $label,
- array(
- 'onfocus' => "if (!this.value) { this.value='http://';} else return false",
- 'onblur' => "if ( this.value == 'http://') { this.value='';} else return false",
- 'data-crm-custom' => $dataCrmCustomVal,
- ),
- $useRequired && !$search
- );
+ $element->setAttribute('onfocus', "if (!this.value) {this.value='http://';}");
+ $element->setAttribute('onblur', "if (this.value == 'http://') {this.value='';}");
+ $element->setAttribute('class', "url");
$qf->addRule($elementName, ts('Enter a valid Website.'), 'wikiURL');
break;
}
$v = array();
$p = array();
foreach ($checkedData as $key => $val) {
- if ($key === 'CiviCRM_OP_OR') {
- continue;
- }
-
if ($html_type == 'CheckBox') {
if ($val) {
$p[] = $key;
return $isMultipleWithGid;
}
+
+ /**
+ * Does this field store a serialized string?
+ * @param CRM_Core_DAO_CustomField|array $field
+ * @return bool
+ */
+ static function isSerialized($field) {
+ // Fields retrieved via api are an array, or from the dao are an object. We'll accept either.
+ $field = (array) $field;
+ // FIXME: Currently the only way to know if data is serialized is by looking at the html_type. It would be cleaner to decouple this.
+ return ($field['html_type'] == 'CheckBox' || strpos($field['html_type'], 'Multi') !== FALSE);
+ }
}
$group['query'] = "reset=1&gid={$customGroupDAO->id}&cid={$cidToken}";
$group['extra'] = array('gid' => $customGroupDAO->id);
$group['table_name'] = $customGroupDAO->table_name;
+ $group['is_multiple'] = $customGroupDAO->is_multiple;
$groups[] = $group;
}
if (!isset($group['fields'])) {
continue;
}
- $groupId = CRM_Utils_Array::value('id', $group);
foreach ($group['fields'] as $field) {
if (CRM_Utils_Array::value('element_value', $field) !== NULL) {
$value = $field['element_value'];
continue;
}
- $fieldId = $field['id'];
if (!empty($field['element_name'])) {
$elementName = $field['element_name'];
}
foreach ($values as $tuple) {
list($name, $op, $value, $grouping, $wildcard) = $tuple;
- // fix $value here to escape sql injection attacks
$field = $this->_fields[$id];
- $qillValue = CRM_Core_BAO_CustomField::getDisplayValue($value, $id, $this->_options);
+ $fieldName = "{$field['table_name']}.{$field['column_name']}";
+
+ // Autocomplete comes back as a string not an array
+ if ($field['data_type'] == 'String' && $field['html_type'] == 'Autocomplete-Select' && $op == '=') {
+ $value = explode(',', $value);
+ }
+
+ // Handle multi-select search for any data type
+ if (is_array($value) && !$field['is_search_range']) {
+ $isSerialized = CRM_Core_BAO_CustomField::isSerialized($field);
+ $wildcard = $isSerialized ? $wildcard : TRUE;
+ $options = CRM_Utils_Array::value('values', civicrm_api3('contact', 'getoptions', array('field' => $name, 'context' => 'search'), array()));
+ $qillValue = '';
+ $sqlOP = $wildcard ? ' OR ' : ' AND ';
+ $sqlValue = array();
+ foreach ($value as $num => &$v) {
+ $sep = count($value) > (1 + $num) ? ', ' : (' ' . ($wildcard ? ts('OR') : ts('AND')) . ' ');
+ $qillValue .= ($num ? $sep : '') . $options[$v];
+ $v = CRM_Core_DAO::escapeString($v);
+ if ($isSerialized) {
+ $sqlValue[] = "( $fieldName like '%" . CRM_Core_DAO::VALUE_SEPARATOR . $v . CRM_Core_DAO::VALUE_SEPARATOR . "%' ) ";
+ }
+ else {
+ $v = "'$v'";
+ }
+ }
+ if (!$isSerialized) {
+ $sqlValue = array("$fieldName IN (" . implode(',', $value) . ")");
+ }
+ $this->_where[$grouping][] = ' ( ' . implode($sqlOP, $sqlValue) . ' ) ';
+ $this->_qill[$grouping][] = "$field[label] $op $qillValue";
+ continue;
+ }
+
+ // fix $value here to escape sql injection attacks
if (!is_array($value)) {
$value = CRM_Core_DAO::escapeString(trim($value));
}
- $fieldName = "{$field['table_name']}.{$field['column_name']}";
+ $qillValue = CRM_Core_BAO_CustomField::getDisplayValue($value, $id, $this->_options);
+
switch ($field['data_type']) {
case 'String':
$sql = "$fieldName";
- // if we are coming in from listings,
- // for checkboxes the value is already in the right format and is NOT an array
- if (is_array($value)) {
-
- //ignoring $op value for checkbox and multi select
- $sqlValue = array();
- $sqlOP = ' AND ';
- $sqlOPlabel = ts('match ALL');
- if ($field['html_type'] == 'CheckBox') {
- foreach ($value as $k => $v) {
- if ($v) {
- if ($k == 'CiviCRM_OP_OR') {
- $sqlOP = ' OR ';
- $sqlOPlabel = ts('match ANY');
- continue;
- }
-
- $sqlValue[] = "( $sql like '%" . CRM_Core_DAO::VALUE_SEPARATOR . $k . CRM_Core_DAO::VALUE_SEPARATOR . "%' ) ";
- }
- }
- //if user check only 'CiviCRM_OP_OR' check box
- //of custom checkbox field, then ignore this field.
- if (!empty($sqlValue)) {
- $this->_where[$grouping][] = ' ( ' . implode($sqlOP, $sqlValue) . ' ) ';
- $this->_qill[$grouping][] = "{$field['label']} $op $qillValue ( $sqlOPlabel )";
- }
- // for multi select
- }
- else {
- foreach ($value as $k => $v) {
- if ($v == 'CiviCRM_OP_OR') {
- $sqlOP = ' OR ';
- $sqlOPlabel = ts('match ANY');
- continue;
- }
- $v = CRM_Core_DAO::escapeString($v);
- $sqlValue[] = "( $sql like '%" . CRM_Core_DAO::VALUE_SEPARATOR . $v . CRM_Core_DAO::VALUE_SEPARATOR . "%' ) ";
- }
- //if user select only 'CiviCRM_OP_OR' value
- //of custom multi select field, then ignore this field.
- if (!empty($sqlValue)) {
- $this->_where[$grouping][] = ' ( ' . implode($sqlOP, $sqlValue) . ' ) ';
- $this->_qill[$grouping][] = "$field[label] $op $qillValue ( $sqlOPlabel )";
- }
- }
+
+ if ($field['is_search_range'] && is_array($value)) {
+ $this->searchRange($field['id'],
+ $field['label'],
+ $field['data_type'],
+ $fieldName,
+ $value,
+ $grouping
+ );
}
else {
- if ($field['is_search_range'] && is_array($value)) {
- $this->searchRange($field['id'],
- $field['label'],
- $field['data_type'],
- $fieldName,
- $value,
- $grouping
- );
- }
- else {
- if (in_array($field['html_type'], array('Select', 'Radio', 'Autocomplete-Select'))) {
- $wildcard = FALSE;
- $val = CRM_Utils_Type::escape($value, 'String');
- }
- else {
- $val = CRM_Utils_Type::escape($strtolower(trim($value)), 'String');
- }
-
- if ($wildcard) {
- $val = $strtolower(CRM_Core_DAO::escapeString($val));
- $val = "%$val%";
- $op = 'LIKE';
- }
-
- //FIX for custom data query fired against no value(NULL/NOT NULL)
- $this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($sql, $op, $val, $field['data_type']);
- $this->_qill[$grouping][] = "$field[label] $op $qillValue";
+ $val = CRM_Utils_Type::escape($strtolower(trim($value)), 'String');
+
+ if ($wildcard) {
+ $val = $strtolower(CRM_Core_DAO::escapeString($val));
+ $val = "%$val%";
+ $op = 'LIKE';
}
+
+ //FIX for custom data query fired against no value(NULL/NOT NULL)
+ $this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($sql, $op, $val, $field['data_type']);
+ $this->_qill[$grouping][] = "$field[label] $op $qillValue";
}
- continue;
+ break;
case 'ContactReference':
$label = $value ? CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $value, 'sort_name') : '';
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'String');
$this->_qill[$grouping][] = $field['label'] . " $op $label";
- continue;
+ break;
case 'Int':
if ($field['is_search_range'] && is_array($value)) {
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'Integer');
$this->_qill[$grouping][] = $field['label'] . " $op $value";
}
- continue;
+ break;
case 'Boolean':
if (strtolower($value) == 'yes' || strtolower($value) == strtolower(ts('Yes'))) {
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'Integer');
$value = $value ? ts('Yes') : ts('No');
$this->_qill[$grouping][] = $field['label'] . " {$op} {$value}";
- continue;
+ break;
case 'Link':
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'String');
$this->_qill[$grouping][] = $field['label'] . " $op $value";
- continue;
+ break;
case 'Float':
if ($field['is_search_range'] && is_array($value)) {
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'Float');
$this->_qill[$grouping][] = $field['label'] . " {$op} {$value}";
}
- continue;
+ break;
case 'Money':
if ($field['is_search_range'] && is_array($value)) {
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'Float');
$this->_qill[$grouping][] = $field['label'] . " {$op} {$value}";
}
- continue;
+ break;
case 'Memo':
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op, $value, 'String');
$this->_qill[$grouping][] = "$field[label] $op $value";
- continue;
+ break;
case 'Date':
$fromValue = CRM_Utils_Array::value('from', $value);
$this->_qill[$grouping][] = $field['label'] . ' <= ' . CRM_Utils_Date::customFormat($toDate);
}
}
- continue;
+ break;
case 'StateProvince':
case 'Country':
- if (!is_array($value)) {
- $this->_where[$grouping][] = "$fieldName {$op} " . CRM_Utils_Type::escape($value, 'Int');
- $this->_qill[$grouping][] = $field['label'] . " {$op} {$qillValue}";
- }
- else {
- $sqlOP = ' AND ';
- $sqlOPlabel = ts('match ALL');
- foreach ($value as $k => $v) {
- if ($v == 'CiviCRM_OP_OR') {
- $sqlOP = ' OR ';
- $sqlOPlabel = ts('match ANY');
- continue;
- }
- $sqlValue[] = "( $fieldName like '%" . CRM_Core_DAO::VALUE_SEPARATOR . $v . CRM_Core_DAO::VALUE_SEPARATOR . "%' ) ";
- }
-
- //if user select only 'CiviCRM_OP_OR' value
- //of custom multi select field, then ignore this field.
- if (!empty($sqlValue)) {
- $this->_where[$grouping][] = " ( " . implode($sqlOP, $sqlValue) . " ) ";
- $this->_qill[$grouping][] = "$field[label] $op $qillValue ( $sqlOPlabel )";
- }
- }
- continue;
+ $this->_where[$grouping][] = "$fieldName {$op} " . CRM_Utils_Type::escape($value, 'Int');
+ $this->_qill[$grouping][] = $field['label'] . " {$op} {$qillValue}";
+ break;
case 'File':
if ( $op == 'IS NULL' || $op == 'IS NOT NULL' || $op == 'IS EMPTY' || $op == 'IS NOT EMPTY' ) {
$this->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($fieldName, $op);
$this->_qill[$grouping][] = $field['label'] . " {$op} ";
}
- continue;
+ break;
}
}
}
* Class contains Contact dashboard related functions
*/
class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
+ /**
+ * function to add Dashboard
+ *
+ * @param array $params values
+ *
+ * @access public
+ * @static
+ *
+ * @return object
+ */
+ static function create($params) {
+ $hook = empty($params['id']) ? 'create' : 'edit';
+ CRM_Utils_Hook::pre($hook, 'Dashboard', CRM_Utils_Array::value('id', $params), $params);
+ $dao = self::addDashlet($params);
+ CRM_Utils_Hook::post($hook, 'Dashboard', $dao->id, $dao);
+ return $dao;
+ }
/**
* Get the list of dashlets enabled by admin
*/
static function addDashlet(&$params) {
- // special case to handle duplicate entires for report instances
+ // special case to handle duplicate entries for report instances
$dashboardID = CRM_Utils_Array::value('id', $params);
if (!empty($params['instanceURL'])) {
$dashlet->url = CRM_Utils_Array::value('url', $params);
$dashlet->find(TRUE);
}
+ if (empty($params['domain_id'])) {
+ $dashlet->domain_id = CRM_Core_Config::domainID();
+ }
}
else {
$dashlet->id = $dashboardID;
$params['permission'] = implode(',', $params['permission']);
}
$dashlet->copyValues($params);
-
- $dashlet->domain_id = CRM_Core_Config::domainID();
-
$dashlet->save();
// now we need to make dashlet entries for each contact
* @return array Nested associative array beginning with direct children of given note.
* @static
*/
- private static function buildNoteTree($parentId, $maxDepth = 0, $snippet = FALSE, &$tree = array(
- ), $depth = 0) {
+ private static function buildNoteTree($parentId, $maxDepth = 0, $snippet = FALSE, &$tree = array(), $depth = 0) {
if ($maxDepth && $depth > $maxDepth) {
return false;
}
// paper icon view for attachments part
$paperIconAttachmentInfo = CRM_Core_BAO_File::paperIconAttachment('civicrm_note', $note->id);
- $tree[$note->id]['attachment'] = implode('', $paperIconAttachmentInfo);
+ $tree[$note->id]['attachment'] = $paperIconAttachmentInfo ? implode('', $paperIconAttachmentInfo) : '';
if ($snippet) {
$tree[$note->id]['note'] = nl2br($tree[$note->id]['note']);
CONST
ADDRESS_STANDARDIZATION_PREFERENCES_NAME = 'Address Standardization Preferences',
CAMPAIGN_PREFERENCES_NAME = 'Campaign Preferences',
+ DEVELOPER_PREFERENCES_NAME = 'Developer Preferences',
DIRECTORY_PREFERENCES_NAME = 'Directory Preferences',
EVENT_PREFERENCES_NAME = 'Event Preferences',
MAILING_PREFERENCES_NAME = 'Mailing Preferences',
}
/**
+ * Build a nested array from hierarchical tags. Supports infinite levels of nesting.
* @param null $usedFor
* @param bool $excludeHidden
*/
function buildTree($usedFor = NULL, $excludeHidden = FALSE) {
- $sql = "SELECT civicrm_tag.id, civicrm_tag.parent_id,civicrm_tag.name FROM civicrm_tag ";
+ $sql = "SELECT id, parent_id, name, description FROM civicrm_tag";
$whereClause = array();
if ($usedFor) {
$dao = CRM_Core_DAO::executeQuery($sql, CRM_Core_DAO::$_nullArray, TRUE, NULL, FALSE, FALSE);
- $orphan = array();
+ $refs = array();
while ($dao->fetch()) {
+ $thisref = &$refs[$dao->id];
+
+ $thisref['parent_id'] = $dao->parent_id;
+ $thisref['name'] = $dao->name;
+ $thisref['description'] = $dao->description;
+
if (!$dao->parent_id) {
- $this->tree[$dao->id]['name'] = $dao->name;
+ $this->tree[$dao->id] = &$thisref;
}
else {
- if (array_key_exists($dao->parent_id, $this->tree)) {
- $parent = &$this->tree[$dao->parent_id];
- if (!isset($this->tree[$dao->parent_id]['children'])) {
- $this->tree[$dao->parent_id]['children'] = array();
- }
- }
- else {
- //3rd level tag
- if (!array_key_exists($dao->parent_id, $orphan)) {
- $orphan[$dao->parent_id] = array('children' => array());
- }
- $parent = &$orphan[$dao->parent_id];
- }
- $parent['children'][$dao->id] = array('name' => $dao->name);
+ $refs[$dao->parent_id]['children'][$dao->id] = &$thisref;
}
}
- if (sizeof($orphan)) {
- //hang the 3rd level lists at the right place
- foreach ($this->tree as & $level1) {
- if (!isset($level1['children'])) {
- continue;
- }
- foreach ($level1['children'] as $key => & $level2) {
- if (array_key_exists($key, $orphan)) {
- $level2['children'] = $orphan[$key]['children'];
- }
- }
- }
- }
}
/**
* @param array $profileAddressFields array of profile fields that relate to address fields
* @param array $profileFilter filter to apply to profile fields - expected usage is to only fill based on
* the bottom profile per CRM-13726
+ *
+ * @return bool Can the address block be hidden safe in the knowledge all fields are elsewhere collected (see CRM-15118)
*/
static function assignAddressField($key, &$profileAddressFields, $profileFilter) {
$billing_id = CRM_Core_BAO_LocationType::getBilling();
list($prefixName, $index) = CRM_Utils_System::explode('-', $key, 2);
$profileFields = civicrm_api3('uf_field', 'get', array_merge($profileFilter,
- array('is_active' => 1, 'return' => 'field_name', 'options' => array(
+ array('is_active' => 1, 'return' => 'field_name, is_required', 'options' => array(
'limit' => 0,
))
));
'postal_code',
'country'
);
+ $requiredBillingFields = array_diff($validBillingFields, array('middle_name','supplemental_address_1'));
$validProfileFields = array();
+ $requiredProfileFields = array();
foreach ($profileFields['values'] as $field) {
if(in_array($field['field_name'], $validBillingFields)) {
$validProfileFields[] = $field['field_name'];
}
+ if ($field['is_required']) {
+ $requiredProfileFields[] = $field['field_name'];
+ }
}
if (!in_array($prefixName, $validProfileFields) ) {
) {
$profileAddressFields[$prefixName] = $index;
}
+
+ $potentiallyMissingRequiredFields = array_diff($requiredBillingFields, $requiredProfileFields);
+ CRM_Core_Resources::singleton()->addSetting(array('billing' => array('billingProfileIsHideable' => empty($potentiallyMissingRequiredFields))));
}
/**
elseif (substr($fieldName, 0, 6) === 'county') {
if ($addressOptions['county']) {
$form->add('select', $name, $title,
- array(
- '' => ts('(choose state first)')), $required
+ array('' => ts('Choose state first')), $required
);
}
}
}
}
}
+ elseif ($name == 'contact_sub_type') {
+ $defaults[$fldName] = explode(CRM_Core_DAO::VALUE_SEPARATOR, trim($details[$name], CRM_Core_DAO::VALUE_SEPARATOR));
+ }
elseif ($name == 'world_region') {
$defaults[$fldName] = $details['worldregion_id'];
}
*/
static function getComponentID($componentName) {
$info = self::_info();
-
- return $info[$componentName]->componentID;
+ if (!empty($info[$componentName])) {
+ return $info[$componentName]->componentID;
+ }
+ else {
+ return;
+ }
}
/**
$this->_name = $name;
}
else {
+ // CRM-15153 - FIXME this name translates to a DOM id and is not always unique!
$this->_name = CRM_Utils_String::getClassName(CRM_Utils_System::getClassName($this));
}
if (!isset(self::$_template)) {
self::$_template = CRM_Core_Smarty::singleton();
}
+ // Workaround for CRM-15153 - give each form a reasonably unique css class
+ $this->addClass(CRM_Utils_System::getClassName($this));
$this->assign('snippet', CRM_Utils_Array::value('snippet', $_GET));
}
static function generateID() {
}
+ /**
+ * Add one or more css classes to the form
+ * @param $className
+ */
+ public function addClass($className) {
+ $classes = $this->getAttribute('class');
+ $this->setAttribute('class', ($classes ? "$classes " : '') . $className);
+ }
+
/**
* register all the standard rules that most forms potentially use
*
$js = CRM_Utils_Array::value('js', $button);
$isDefault = CRM_Utils_Array::value('isDefault', $button, FALSE);
if ($isDefault) {
- $attrs = array('class' => 'form-submit default');
+ $attrs = array('class' => 'crm-form-submit default');
}
else {
- $attrs = array('class' => 'form-submit');
+ $attrs = array('class' => 'crm-form-submit');
}
if ($js) {
$this->accept($renderer);
$content = $renderer->toArray();
$content['formName'] = $this->getName();
+ // CRM-15153
+ $content['formClass'] = CRM_Utils_System::getClassName($this);
return $content;
}
function allowAjaxSubmit() {
$this->removeAttribute('data-no-ajax-submit');
}
+
+ /**
+ * Sets page title based on entity and action
+ * @param string $entityLabel
+ */
+ function setPageTitle($entityLabel) {
+ switch ($this->_action) {
+ case CRM_Core_Action::ADD:
+ CRM_Utils_System::setTitle(ts('New %1', array(1 => $entityLabel)));
+ break;
+ case CRM_Core_Action::UPDATE:
+ CRM_Utils_System::setTitle(ts('Edit %1', array(1 => $entityLabel)));
+ break;
+ case CRM_Core_Action::VIEW:
+ case CRM_Core_Action::PREVIEW:
+ CRM_Utils_System::setTitle(ts('View %1', array(1 => $entityLabel)));
+ break;
+ case CRM_Core_Action::DELETE:
+ CRM_Utils_System::setTitle(ts('Delete %1', array(1 => $entityLabel)));
+ break;
+ }
+ }
}
),
));
- $this->setAttribute('class', 'crm-search-form');
+ $this->addClass('crm-search-form');
}
/**
// are deleted we will have to set $params[tagset id] = '' which is done by above logic
foreach ($params as $parentId => $value) {
$newTagIds = array();
- $realTagIds = array();
+ $tagIds = array();
if ($value) {
- $tagsIDs = explode(',', $value);
- foreach ($tagsIDs as $tagId) {
- if (!is_numeric($tagId)) {
- // check if user has selected existing tag or is creating new tag
- // this is done to allow numeric tags etc.
- $tagValue = explode(':::', $tagId);
-
- if (isset($tagValue[1]) && $tagValue[1] == 'value') {
- $tagParams = array(
- 'name' => $tagValue[0],
- 'parent_id' => $parentId,
- );
- $tagObject = CRM_Core_BAO_Tag::add($tagParams, CRM_Core_DAO::$_nullArray);
- $tagId = $tagObject->id;
- }
- }
-
- $realTagIds[] = $tagId;
- if ($form && $form->_action != CRM_Core_Action::UPDATE) {
- $newTagIds[] = $tagId;
- }
- elseif (!array_key_exists($tagId, $existingTags)) {
+ $tagIds = explode(',', $value);
+ foreach ($tagIds as $tagId) {
+ if ($form && $form->_action != CRM_Core_Action::UPDATE || !array_key_exists($tagId, $existingTags)) {
$newTagIds[] = $tagId;
}
}
WHERE civicrm_tag.id=civicrm_entity_tag.tag_id
AND civicrm_entity_tag.entity_table='{$entityTable}'
AND entity_id={$entityId} AND parent_id={$parentId}";
- if (!empty($realTagIds)) {
- $deleteSQL .= " AND tag_id NOT IN (" . implode(', ', $realTagIds) . ");";
+ if (!empty($tagIds)) {
+ $deleteSQL .= " AND tag_id NOT IN (" . implode(', ', $tagIds) . ");";
}
CRM_Core_DAO::executeQuery($deleteSQL);
if (empty($_GET['_value'])) {
CRM_Utils_System::civiExit();
}
+ $countries = (array) $_GET['_value'];
+ $elements = array();
+ $list = &$elements;
+ foreach ($countries as $val) {
+ $result = CRM_Core_PseudoConstant::stateProvinceForCountry($val);
- $result = CRM_Core_PseudoConstant::stateProvinceForCountry($_GET['_value']);
-
- $elements = array(array(
- 'name' => $result ? ts('- select a state -') : ts('- N/A -'),
- 'value' => '',
- ));
- foreach ($result as $id => $name) {
- $elements[] = array(
- 'name' => $name,
- 'value' => $id,
- );
+ // Option-groups for multiple countries
+ if ($result && count($countries) > 1) {
+ $elements[] = array(
+ 'name' => CRM_Core_PseudoConstant::country($val, FALSE),
+ 'children' => array(),
+ );
+ $list = &$elements[count($elements)-1]['children'];
+ }
+ foreach ($result as $id => $name) {
+ $list[] = array(
+ 'name' => $name,
+ 'value' => $id,
+ );
+ }
}
-
- echo json_encode($elements);
+ $placeholder = array(array('value' => '', 'name' => $elements ? ts('- select -') : ts('- N/A -')));
+ echo json_encode(array_merge($placeholder, $elements));
CRM_Utils_System::civiExit();
}
static function jqCounty() {
+ $elements = array();
if (!isset($_GET['_value']) || CRM_Utils_System::isNull($_GET['_value'])) {
$elements = array(
- array('name' => ts('(choose state first)'), 'value' => '')
+ array('name' => ts('Choose state first'), 'value' => '')
);
}
else {
- $result = CRM_Core_PseudoConstant::countyForState($_GET['_value']);
+ $states = (array) $_GET['_value'];
+ $list = &$elements;
+ foreach ($states as $val) {
+ $result = CRM_Core_PseudoConstant::countyForState($val);
- $elements = array(array(
- 'name' => $result ? ts('- select -') : ts('- N/A -'),
- 'value' => '',
- ));
- foreach ($result as $id => $name) {
- $elements[] = array(
- 'name' => $name,
- 'value' => $id,
- );
+ // Option-groups for multiple countries
+ if ($result && count($states) > 1) {
+ $elements[] = array(
+ 'name' => CRM_Core_PseudoConstant::stateProvince($val, FALSE),
+ 'children' => array(),
+ );
+ $list = &$elements[count($elements)-1]['children'];
+ }
+ foreach ($result as $id => $name) {
+ $list[] = array(
+ 'name' => $name,
+ 'value' => $id,
+ );
+ }
}
+ $placeholder = array(array('value' => '', 'name' => $elements ? ts('- select -') : ts('- N/A -')));
+ $elements = array_merge($placeholder, $elements);
}
echo json_encode($elements);
$input['subscription_id'] = self::retrieve('x_subscription_id', 'Integer');
$input['response_code'] = self::retrieve('x_response_code', 'Integer');
$input['MD5_Hash'] = self::retrieve('x_MD5_Hash', 'String', FALSE, '');
- $input['fee_amount'] = self::retrieve('x_fee_amount', 'Money', FALSE, NULL);
- $input['net_amount'] = self::retrieve('x_net_amount', 'Money', FALSE, NULL);
$input['response_reason_code'] = self::retrieve('x_response_reason_code', 'String', FALSE);
$input['response_reason_text'] = self::retrieve('x_response_reason_text', 'String', FALSE);
$input['subscription_paynum'] = self::retrieve('x_subscription_paynum', 'Integer', FALSE, 0);
$form->add('image',
$form->_expressButtonName,
$form->_paymentProcessor['url_button'],
- array('class' => 'form-submit')
+ array('class' => 'crm-form-submit')
);
}
}
$form->add('image',
$form->_expressButtonName,
$form->_paymentProcessor['url_button'],
- array('class' => 'form-submit')
+ array('class' => 'crm-form-submit')
);
}
}
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
- *
* Get all permissioned groups from database
*
* The static array group is returned, and if it's
* Note: any database errors will be trapped by the DAO.
*
* @param string $groupType type of group(Access/Mailing)
- * @param bool|\boolen $excludeHidden exclude hidden groups.
+ * @param bool $excludeHidden exclude hidden groups.
*
* @access public
* @static
return CRM_Core_Permission::group($groupType, $excludeHidden);
}
+ /**
+ * Fetch groups in a nested format suitable for use in select form element
+ * @param bool $checkPermissions
+ * @param string|null $groupType
+ * @param bool $excludeHidden
+ * @return array
+ */
+ public static function nestedGroup($checkPermissions = TRUE, $groupType = NULL, $excludeHidden = TRUE) {
+ $groups = $checkPermissions ? self::group($groupType, $excludeHidden) : self::allGroup($groupType, $excludeHidden);
+ return CRM_Contact_BAO_Group::getGroupsHierarchy($groups, NULL, ' ', TRUE);
+ }
+
/**
* Get all permissioned groups from database
*
* @access public
*/
function smarty_modifier_crmReplace($string, $attribute, $value) {
- static $endOfElement = '/>';
-
- // if we know what attribute we need to replace
// we need to search and replace the string: $attribute=XXX or $attribute="XXX"
// with $attribute=\"$value\"
$pattern = '/' . $attribute . '="([^"]+?)"/';
CRM_Core_BAO_CustomField::retrieve($params, $defaults);
$this->_title = CRM_Utils_Array::value('label', $defaults);
- $this->assign('title', $this->_title);
- CRM_Utils_System::setTitle(ts('Confirm Custom Field Delete'));
+ CRM_Utils_System::setTitle(ts('Delete %1', array(1 => $this->_title)));
}
/**
public function buildQuickForm() {
if ($this->_gid) {
$this->_title = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $this->_gid, 'title');
- CRM_Utils_System::setTitle($this->_title . ' - ' . ($this->_id ? ts('Edit Field') : ts('Add Field')));
+ CRM_Utils_System::setTitle($this->_title . ' - ' . ($this->_id ? ts('Edit Field') : ts('New Field')));
$this->assign('gid', $this->_gid);
}
CRM_Core_Session::setStatus(ts('Your custom field set \'%1 \' has been saved.', array(1 => $group->title)), ts('Saved'), 'success');
}
else {
- $url = CRM_Utils_System::url('civicrm/admin/custom/group/field/add', 'reset=1&action=add&gid=' . $group->id);
+ // Jump directly to adding a field if popups are disabled
+ $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? '' : '/add';
+ $url = CRM_Utils_System::url("civicrm/admin/custom/group/field$action", 'reset=1&gid=' . $group->id . '&action=' . ($action ? 'add' : 'browse'));
CRM_Core_Session::setStatus(ts("Your custom field set '%1' has been added. You can add custom fields now.",
array(1 => $group->title)
), ts('Saved'), 'success');
$this->addElement('button',
'done',
ts('Done'),
- array('onclick' => "location.href='$url'", 'class' => 'form-submit')
+ array('onclick' => "location.href='$url'", 'class' => 'crm-form-submit')
);
}
}
CRM_Core_Action::EXPORT => array(
'name' => ts('Move'),
'url' => 'civicrm/admin/custom/group/field/move',
+ 'class' => 'small-popup',
'qs' => 'reset=1&fid=%%id%%',
'title' => ts('Move Custom Field'),
),
$groupTitle = CRM_Core_BAO_CustomGroup::getTitle($this->_gid);
$this->assign('gid', $this->_gid);
$this->assign('groupTitle', $groupTitle);
- CRM_Utils_System::setTitle(ts('%1 - Custom Fields', array(1 => $groupTitle)));
+ if ($action & CRM_Core_Action::BROWSE) {
+ CRM_Utils_System::setTitle(ts('%1 - Custom Fields', array(1 => $groupTitle)));
+ }
}
// assign vars to templates
'name' => 'participant_role',
));
+ //CRM-13595 add event id to participant export
+ $eventid = array(
+ 'event_id' => array('title' => 'Event ID',
+ 'name' => 'event_id',
+ ));
+ $eventtitle = array(
+ 'event_title' => array('title' => 'Event Title',
+ 'name' => 'event_title',
+ ));
+
$discountFields = CRM_Core_DAO_Discount::export();
- $fields = array_merge($participantFields, $participantStatus, $participantRole, $noteField, $discountFields);
+ $fields = array_merge($participantFields, $participantStatus, $participantRole, $eventid, $eventtitle, $noteField, $discountFields);
// add custom data
$fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Participant'));
if ((substr($eventLevel, 0, 1) == CRM_Core_DAO::VALUE_SEPARATOR) &&
(substr($eventLevel, -1, 1) == CRM_Core_DAO::VALUE_SEPARATOR)
) {
- $eventLevel = implode(', ', explode(CRM_Core_DAO::VALUE_SEPARATOR,
- substr($eventLevel, 1, -1)
- ));
- if ($pos = strrpos($eventLevel, '(multiple participants)', 0)) {
+ $eventLevel = implode(', ', explode(CRM_Core_DAO::VALUE_SEPARATOR, substr($eventLevel, 1, -1)));
+ $pos = strrpos($eventLevel, '(multiple participants)', 0);
+ if ($pos) {
$eventLevel = substr_replace($eventLevel, "", $pos - 3, 1);
}
}
) {
return $mailSent;
}
-
- if ($toEmail = CRM_Utils_Array::value('email', $contactDetails)) {
+ $toEmail = CRM_Utils_Array::value('email', $contactDetails);
+ if ($toEmail) {
$contactId = $participantValues['contact_id'];
$participantName = $contactDetails['display_name'];
$checksumValue = NULL;
if ($mailType == 'Confirm' && !$participantValues['registered_by_id']) {
$checksumLife = 'inf';
- if ($endDate = CRM_Utils_Array::value('end_date', $eventDetails)) {
+ $endDate = CRM_Utils_Array::value('end_date', $eventDetails);
+ if ($endDate) {
$checksumLife = (CRM_Utils_Date::unixTime($endDate) - time()) / (60 * 60);
}
$checksumValue = CRM_Contact_BAO_Contact_Utils::generateChecksum($contactId, NULL, $checksumLife);
*
* @return array
*/
- public function process($params) {
+ public static function process($params) {
$returnMessages = array();
}
$_showHide->addToTemplate();
$this->addElement('submit', $this->getButtonName('submit'), ts('Add Discount Set to Fee Table'),
- array('class' => 'form-submit cancel')
+ array('class' => 'crm-form-submit cancel')
);
$this->buildAmountLabel();
$this->addEntityRef('recipient_manual_id', ts('Manual Recipients'), array('multiple' => true));
+ $groups = CRM_Contact_BAO_Group::getGroupsHierarchy(CRM_Core_PseudoConstant::staticGroup(), NULL, ' ', TRUE);
$this->add('select', 'group_id', ts('Group'),
- CRM_Core_PseudoConstant::staticGroup(), FALSE, array('class' => 'crm-select2 huge')
+ $groups, FALSE, array('class' => 'crm-select2 huge')
);
CRM_Mailing_BAO_Mailing::commonCompose($this);
if ($this->_contactId) {
$displayName = CRM_Contact_BAO_Contact::displayName($this->_contactId);
$this->assign('displayName', $displayName);
- // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container
- CRM_Utils_System::setTitle(ts('Event Registration for') . ' ' . $displayName);
+ $this->setPageTitle(ts('Event Registration for %1', array(1 => $displayName)));
+ }
+ else {
+ $this->setPageTitle(ts('Event Registration'));
}
// check the current path, if search based, then dont get participantID
$this->add('image',
$this->_checkoutButtonName,
$this->_paymentProcessor['url_button'],
- array('class' => 'form-submit')
+ array('class' => 'crm-form-submit')
);
$this->addButtons(array(
}
else {
$errors['_qf_default'] .= ts('Missing required contact matching fields.') . " $fieldMessage " . ts('(Sum of all weights should be greater than or equal to threshold: %1).', array(
- 1 => $threshold)) . ' ' . ts('Or Provide Contact Id or External Identifier.') . '<br />';
+ 1 => $threshold)) . ' ' . ts('Or Provide Contact ID or External ID.') . '<br />';
}
}
elseif (!in_array('event_title', $importKeys)) {
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
-
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
}
$this->assign('action', $this->_action);
}
else {
//hack to fix component fields
+ //revert mix of event_id and title
if ($fieldName == 'event_id') {
- $returnProperties['event_title'] = 1;
+ $returnProperties['event_id'] = 1;
}
else if (
$exportMode == CRM_Export_Form_Select::EVENT_EXPORT &&
$this->addGroup($postalMailing, 'postal_mailing_export', ts('Postal Mailing Export'), '<br/>');
$this->addElement('select', 'additional_group', ts('Additional Group for Export'),
- array('' => ts('- select group -')) + CRM_Core_PseudoConstant::group()
+ array('' => ts('- select group -')) + CRM_Core_PseudoConstant::nestedGroup(),
+ array('class' => 'crm-select2 huge')
);
}
)
);
- $this->_group = CRM_Core_PseudoConstant::group();
+ $this->_group = CRM_Core_PseudoConstant::nestedGroup();
// multiselect for groups
if ($this->_group) {
$this->add('submit','rSubmit', ts('Go'),
array(
- 'class' => 'form-submit',
+ 'class' => 'crm-form-submit',
'id' => 'GoRemove',
));
$this->add('submit','submit', ts('Go'),
array(
- 'class' => 'form-submit',
+ 'class' => 'crm-form-submit',
'id' => 'Go',
));
$this->applyFilter('__ALL__', 'trim');
$this->_isARFlag = TRUE;
if ($this->_action & CRM_Core_Action::DELETE) {
$msg = ts("The selected financial account cannot be deleted because at least one Accounts Receivable type account is required (to ensure that accounting transactions are in balance).");
- if (CRM_Utils_Array::value('snippet', $_REQUEST) == 'json') {
- CRM_Core_Page_AJAX::returnJsonResponse($msg);
- }
- CRM_Core_Session::setStatus($msg, '', 'error');
- CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/financial/financialAccount',
- "reset=1&action=browse"));
+ CRM_Core_Error::statusBounce($msg);
}
}
}
*/
public function buildQuickForm( ) {
parent::buildQuickForm( );
+ $this->setPageTitle(ts('Financial Account'));
if ($this->_action & CRM_Core_Action::DELETE) {
return;
$financialAccountType = CRM_Core_PseudoConstant::get('CRM_Financial_DAO_FinancialAccount', 'financial_account_type_id');
if (!empty($financialAccountType)) {
$element = $this->add('select', 'financial_account_type_id', ts('Financial Account Type'),
- array('' => '- select -') + $financialAccountType, TRUE);
+ array('' => '- select -') + $financialAccountType, TRUE, array('class' => 'crm-select2 huge'));
if ($this->_isARFlag) {
$element->freeze();
$elementAccounting->freeze();
CRM_Core_Session::setStatus(ts('The Financial Account \'%1\' has been saved.', array(1 => $contributionType->name)));
}
}
+
}
*/
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('Financial Batch'));
+
if (isset( $this->_id)) {
$this->_title = CRM_Core_DAO::getFieldValue('CRM_Batch_DAO_Batch', $this->_id, 'title');
CRM_Utils_System::setTitle($this->_title .' - '.ts( 'Accounting Batch'));
CRM_Core_Error::statusBounce(ts('You dont have permission to %1 this batch'), array(1 => $actionName));
}
}
+
}
*/
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->setPageTitle(ts('Financial Type'));
$this->_id = CRM_Utils_Request::retrieve('id' , 'Positive', $this);
if ($this->_id) {
$this->_title = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialType', $this->_id, 'name');
- CRM_Utils_System::setTitle($this->_title . ' - ' . ts( 'Financial Type'));
}
if ($this->_action & CRM_Core_Action::DELETE) {
return;
$session->replaceUserContext($url);
}
}
+
}
* @access public
*/
public function buildQuickForm() {
+ parent::buildQuickForm();
+ $this->setPageTitle(ts('Financial Type Account'));
+
if ($this->_action & CRM_Core_Action::DELETE) {
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Delete Financial Account Type'),
- 'spacing' => ' ',
- 'isDefault' => TRUE
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'))
- )
- );
return;
}
- parent::buildQuickForm();
-
if (isset($this->_id)) {
$params = array('id' => $this->_id);
CRM_Financial_BAO_FinancialTypeAccount::retrieve($params, $defaults);
"reset=1&action=browse&aid={$this->_aid}"));
}
}
+
}
$this->add('submit','submit', ts('Go'),
array(
- 'class' => 'form-submit',
+ 'class' => 'crm-form-submit',
'id' => 'Go',
));
CRM_Core_Error::fatal(ts('You do not have permission to access this page'));
}
+ $this->setPageTitle(ts('Grant'));
+
if ($this->_action & CRM_Core_Action::DELETE) {
return;
}
return CRM_Custom_Form_CustomData::setDefaultValues($this);
}
- $defaults = array();
$defaults = parent::setDefaultValues();
if ($this->_action & CRM_Core_Action::DELETE) {
CRM_Core_BAO_CustomGroup::buildCustomDataView($this, $groupTree);
$this->assign('id', $this->_id);
+
+ $this->setPageTitle(ts('Grant'));
}
/**
*/
function buildQuickForm() {
parent::buildQuickForm();
- $this->addElement('text', 'sort_name', ts('Name or Email'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
+ $this->addElement('text', 'sort_name', ts('Name or Email'), array('class' => 'twenty') + CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
CRM_Grant_BAO_Query::buildSearchForm($this);
* @return void
* @access public
*/
- function addDefaultButtons($title, $nextType = 'next', $backType = 'back') {
+ function addDefaultButtons($title, $nextType = 'next', $backType = 'back', $submitOnce = FALSE) {
$this->addButtons(array(
array(
'type' => $nextType,
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
-
- // set page title
- CRM_Utils_System::setTitle(ts('Grant by') . ' ' . $displayName);
}
$this->assign('action', $this->_action);
);
if ($cid) {
- $deleteExtra = ts('Are you sure you want to delete this grant?');
-
$delLink = array(
CRM_Core_Action::DELETE => array('name' => ts('Delete'),
'url' => 'civicrm/contact/view/grant',
'qs' => 'action=delete&reset=1&cid=%%cid%%&id=%%id%%&selectedChild=grant' . $extraParams,
- 'extra' => 'onclick = "if (confirm(\'' . $deleteExtra . '\') ) this.href+=\'&confirmed=1\'; else return false;"',
'title' => ts('Delete Grant'),
),
);
}
return self::$_links;
}
- //end of function
/**
* getter for array of the parameters required for creating pager.
if (isset($params['parent_id'])) {
// requesting child groups for a given parent
$params['page'] = 1;
- $params['rp'] = 25;
+ $params['rp'] = 0;
$groups = CRM_Contact_BAO_Group::getGroupListSelector($params);
echo json_encode($groups);
}
else {
$sortMapper = array(
- 0 => 'groups.title', 1 => 'groups.id', 2 => 'createdBy.sort_name', 3 => '',
+ 0 => 'groups.title', 1 => 'count', 2 => 'createdBy.sort_name', 3 => '',
4 => 'groups.group_type', 5 => 'groups.visibility',
);
$iFilteredTotal = $iTotal = $params['total'];
$selectorElements = array(
- 'group_name', 'group_id', 'created_by', 'group_description',
+ 'group_name', 'count', 'created_by', 'group_description',
'group_type', 'visibility', 'org_info', 'links', 'class',
);
}
$this->assign('showOrgInfo', $showOrgInfo);
+ // Refresh smart group cache
+ if (!empty($_GET['update_smart_groups'])) {
+ CRM_Contact_BAO_GroupContactCache::loadAll();
+ }
+ else {
+ CRM_Contact_BAO_GroupContactCache::fillIfEmpty();
+ }
+
$this->search();
}
$this->addElement('checkbox', 'dedupe_email', ts('Remove duplicate emails?'));
//get the mailing groups.
- $groups = CRM_Core_PseudoConstant::group('Mailing');
+ $groups = CRM_Core_PseudoConstant::nestedGroup('Mailing');
if ($hiddenMailingGroup) {
$groups[$hiddenMailingGroup] =
CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $hiddenMailingGroup, 'title');
$this->add('select', 'baseGroup',
ts('Unsubscription Group'),
array(
- '' => ts('- select -')) + $staticGroups,
+ '' => ts('- select -')) + CRM_Contact_BAO_Group::getGroupsHierarchy($staticGroups, NULL, ' ', TRUE),
TRUE,
array('class' => 'crm-select2 huge')
);
* @throws Exception
* @return object mail store implementation for processing CiviMail-bound emails
*/
- function getStore($name = NULL) {
+ public static function getStore($name = NULL) {
$dao = new CRM_Core_DAO_MailSettings;
$dao->domain_id = CRM_Core_Config::domainID();
$name ? $dao->name = $name : $dao->is_default = 1;
* function to add the membership types
*
* @param array $params reference array contains the values submitted by the form
- * @param array $ids reference array contains the id
+ * @param array $ids array contains the id (deprecated)
*
* @access public
* @static
*
* @return object
*/
- static function add(&$params, &$ids) {
- $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE);
+ static function add(&$params, $ids = array()) {
+ $id = CRM_Utils_Array::value('id', $params, CRM_Utils_Array::value('membershipType', $ids));
+ if (!$id) {
+ if (!isset($params['is_active'])) {
+ // do we need this?
+ $params['is_active'] = FALSE;
+ }
+ if (!isset($params['domain_id'])) {
+ $params['domain_id'] = CRM_Core_Config::domainID();
+ }
+ }
// action is taken depending upon the mode
$membershipType = new CRM_Member_DAO_MembershipType();
-
$membershipType->copyValues($params);
-
- $membershipType->domain_id = CRM_Core_Config::domainID();
-
- $membershipType->id = CRM_Utils_Array::value('membershipType', $ids);
+ $membershipType->id = $id;
// $previousID is the old organization id for membership type i.e 'member_of_contact_id'. This is used when an oganization is changed.
$previousID = NULL;
self::createMembershipPriceField($params, $ids, $previousID, $membershipType->id);
// update all price field value for quick config when membership type is set CRM-11718
- if (!empty($ids['membershipType'])) {
- self::updateAllPriceFieldValue($ids['membershipType'], $params);
+ if ($id) {
+ self::updateAllPriceFieldValue($id, $params);
}
return $membershipType;
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this);
$this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this);
$this->_processors = array();
- CRM_Core_Resources::singleton()->addSetting(array('ids' => array('contact' => $this->_contactID)));
+ $this->assign('contactID', $this->_contactID);
// check for edit permission
if (!CRM_Core_Permission::checkActionPermission('CiviMember', $this->_action)) {
$this->assign('onlinePendingContributionId', $this->_onlinePendingContributionId);
$this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
- // Set title
- if ($this->_contactID) {
- $displayName = CRM_Contact_BAO_Contact::displayName($this->_contactID);
-
- // Check if this is default domain contact CRM-10482
- if (CRM_Contact_BAO_Contact::checkDomainContact($this->_contactID)) {
- $displayName .= ' (' . ts('default organization') . ')';
- }
+ $this->setPageTitle(ts('Membership'));
- // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container
- CRM_Utils_System::setTitle(ts('Membership for') . ' ' . $displayName);
- }
parent::preProcess();
}
}
$this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
+
+ CRM_Utils_System::setTitle(ts('Renew Membership'));
+
parent::preProcess();
}
CRM_Member_BAO_Membership::recordMembershipContribution(array_merge($formValues, array('membership_id' => $renewMembership->id)));
}
- if (!empty($formValues['send_receipt'])) {
- CRM_Core_DAO::setFieldValue('CRM_Member_DAO_MembershipType',
- $formValues['membership_type_id'][1],
- 'receipt_text_renewal',
- $formValues['receipt_text_renewal']
- );
- }
-
$receiptSend = FALSE;
if (!empty($formValues['send_receipt'])) {
$receiptSend = TRUE;
$session = CRM_Core_Session::singleton();
$url = CRM_Utils_System::url('civicrm/admin/member/membershipType', 'reset=1');
$session->pushUserContext($url);
+
+ $this->setPageTitle(ts('Membership Type'));
}
/**
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
-
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
}
$this->assign('action', $this->_action);
if ($this->_id && CRM_Core_BAO_Note::getNotePrivacyHidden($this->_id)) {
CRM_Core_Error::statusBounce(ts('You do not have access to this note.'));
}
-
- // set title to "Note - " + Contact Name
- $displayName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_entityId, 'display_name');
- $pageTitle = 'Note - ' . $displayName;
- $this->assign('pageTitle', $pageTitle);
+ $this->setPageTitle($this->_parentId ? ts('Comment') : ts('Note'));
}
/**
}
$this->_id = CRM_Utils_Request::retrieve('ppId', 'Positive', $this);
+
+ CRM_Utils_System::setTitle(ts('Edit Scheduled Pledge Payment'));
}
/**
$this->userEmail
) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactID);
$this->assign('displayName', $this->userDisplayName);
-
- // set title to "Pledge - "+Contact Name
- $displayName = $this->userDisplayName;
- $pageTitle = ts('Pledge by'). ' ' . $displayName;
- $this->assign('pageTitle', $pageTitle);
- CRM_Utils_System::setTitle($pageTitle);
}
+ $this->setPageTitle(ts('Pledge'));
+
//build custom data
CRM_Custom_Form_CustomData::preProcess($this, NULL, NULL, 1, 'Pledge', $this->_id);
$this->_values = array();
}
if ($this->_context == 'standalone') {
- $this->addEntityRef('contact_id', ts('Contact'), array('create' => TRUE), TRUE);
+ $this->addEntityRef('contact_id', ts('Contact'), array('create' => TRUE, 'api' => array('extra' => array('email'))), TRUE);
}
$showAdditionalInfo = FALSE;
if ($this->_action & CRM_Core_Action::UPDATE) {
$this->edit();
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
}
else {
$pledgeId = CRM_Utils_Request::retrieve('pledgeId', 'Positive', $this);
$controller->reset();
$controller->set('cid', $this->_contactId);
$controller->set('context', 'pledge');
+ $controller->set('limit', '25');
$controller->process();
$controller->run();
// check logged in url permission
CRM_Contact_Page_View::checkUserPermission($this);
-
- // set page title
- CRM_Contact_Page_View::setTitle($this->_contactId);
}
$this->assign('action', $this->_action);
if (!$this->_single) {
$pre = array(
- array('desc' => ts('Contact Id')),
+ array('desc' => ts('Contact ID')),
array(
'name' => ts('Name'),
'sort' => 'sort_name',
$this->_sid = CRM_Utils_Request::retrieve('sid', 'Positive', $this, FALSE, NULL, 'REQUEST');
$this->_fid = CRM_Utils_Request::retrieve('fid', 'Positive', $this, FALSE, NULL, 'REQUEST');
$url = CRM_Utils_System::url('civicrm/admin/price/field', "reset=1&action=browse&sid={$this->_sid}");
- $breadCrumb = array(array('title' => ts('Price Set Fields'),
- 'url' => $url,
- ));
+ $breadCrumb = array(array('title' => ts('Price Set Fields'), 'url' => $url));
$this->_extendComponentId = array();
$extendComponentId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_sid, 'extends', 'id');
}
CRM_Utils_System::appendBreadCrumb($breadCrumb);
+
+ $this->setPageTitle(ts('Price Field'));
}
/**
CRM_Core_Session::setStatus(ts('The Set \'%1\' has been saved.', array(1 => $set->title)), ts('Saved'), 'success');
}
else {
- $url = CRM_Utils_System::url('civicrm/admin/price/field', 'reset=1&action=add&sid=' . $set->id);
+ // Jump directly to adding a field if popups are disabled
+ $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? 'browse' : 'add';
+ $url = CRM_Utils_System::url('civicrm/admin/price/field', array('reset' => 1, 'action' => $action, 'sid' => $set->id));
CRM_Core_Session::setStatus(ts("Your Set '%1' has been added. You can add fields to this set now.",
array(1 => $set->title)
), ts('Saved'), 'success');
* @access public
*/ function &actionLinks() {
if (!isset(self::$_actionLinks)) {
- // helper variable for nicer formatting
- $deleteExtra = ts('Are you sure you want to delete this price field?');
self::$_actionLinks = array(
CRM_Core_Action::UPDATE => array(
'name' => ts('Edit Price Field'),
'url' => 'civicrm/admin/price/field',
'qs' => 'action=delete&reset=1&sid=%%sid%%&fid=%%fid%%',
'title' => ts('Delete Price'),
- 'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"',
),
);
}
foreach ($this->_fields as $name => $field) {
if ((substr($name, 0, 6) == 'custom') && !empty($field['is_search_range'])) {
- $from = CRM_Utils_Request::retrieve($name . '_from', 'String',
- $this, FALSE, NULL, 'REQUEST'
- );
- $to = CRM_Utils_Request::retrieve($name . '_to', 'String',
- $this, FALSE, NULL, 'REQUEST'
- );
+ $from = CRM_Utils_Request::retrieve($name . '_from', 'String', $this);
+ $to = CRM_Utils_Request::retrieve($name . '_to', 'String', $this);
$value = array();
if ($from && $to) {
$value['from'] = $from;
if (!is_array($value)) {
$value = trim($value);
}
+ $operator = CRM_Utils_Request::retrieve($name . '_operator', 'String', $this);
+ if ($operator) {
+ $this->_params[$name . '_operator'] = $operator;
+ }
$this->_params[$name] = $this->_fields[$name]['value'] = $value;
}
}
*
* @return int the total number of rows for this action
*/
- function &getRows($action, $offset, $rowCount, $sort, $output = NULL) {
+ function &getRows($action, $offset, $rowCount, $sort, $output = NULL, $extraWhereClause = NULL) {
$multipleFields = array('url');
//$sort object processing for location fields
}
$additionalWhereClause = 'contact_a.is_deleted = 0';
+
+ if ($extraWhereClause) {
+ $additionalWhereClause .= " AND {$extraWhereClause}";
+ }
+
$returnQuery = NULL;
if ($this->_multiRecordTableName) {
$returnQuery = TRUE;
return NULL;
}
- $config = CRM_Core_Config::singleton();
- $params['domain_id'] = CRM_Core_Config::domainID();
+ $instanceID = CRM_Utils_Array::value('id', $params, CRM_Utils_Array::value('instance_id', $params));
// convert roles array to string
if (isset($params['grouprole']) && is_array($params['grouprole'])) {
);
}
- if (!isset($params['id'])) {
+ if (!$instanceID) {
$params['is_reserved'] = CRM_Utils_Array::value('is_reserved', $params, FALSE);
- }
-
- $instanceID = CRM_Utils_Array::value('id', $params);
- if (!empty($params['instance_id'])) {
- $instanceID = CRM_Utils_Array::value('instance_id', $params);
+ $params['domain_id'] = CRM_Utils_Array::value('domain_id', $params, CRM_Core_Config::domainID());
}
if ($instanceID) {
$instance = new CRM_Report_DAO_ReportInstance();
$instance->copyValues($params);
- if ($config->userFramework == 'Joomla') {
+ if (CRM_Core_Config::singleton()->userFramework == 'Joomla') {
$instance->permission = 'null';
}
if (empty($params['id']) && empty($params['instance_id']) && !empty($navigationParams['id'])) {
unset($navigationParams['id']);
}
- $navigationParams['url'] = "civicrm/report/instance/{$instance->id}&reset=1";
+ $navigationParams['url'] = "civicrm/report/instance/{$instance->id}?reset=1";
$navigation = CRM_Core_BAO_Navigation::add($navigationParams);
if (!empty($navigationParams['is_active'])) {
if (CRM_Utils_Array::value('row_count', $params)) {
$limitResult = '&rowCount=' . $params['row_count'];
}
+ $dashletParams['name'] = "report/{$instance->id}";
$dashletParams['url'] = "civicrm/report/instance/{$instance->id}?reset=1§ion={$section}&snippet=5{$chart}&context=dashlet" . $limitResult;
$dashletParams['fullscreen_url'] = "civicrm/report/instance/{$instance->id}?reset=1§ion={$section}&snippet=5{$chart}&context=dashletFullscreen" . $limitResult;
$dashletParams['instanceURL'] = "civicrm/report/instance/{$instance->id}";
if (count($operations) <= 1) {
$element->freeze();
}
- $select = $this->addElement('select', "{$fieldName}_value", NULL,
- $field['options'], array(
- 'size' => 4,
- 'style' => 'min-width:250px',
- )
- );
- $select->setMultiple(TRUE);
+ $this->addElement('select', "{$fieldName}_value", NULL, $field['options'], array(
+ 'style' => 'min-width:250px',
+ 'class' => 'crm-select2',
+ 'multiple' => TRUE,
+ 'placeholder' => ts('- select -'),
+ ));
}
break;
if (CRM_Core_Permission::check('administer Reports') && $this->_add2groupSupported) {
$this->addElement('select', 'groups', ts('Group'),
- array('' => ts('- select group -')) + CRM_Core_PseudoConstant::staticGroup()
+ array('' => ts('Add Contacts to Group')) + CRM_Core_PseudoConstant::nestedGroup(),
+ array('class' => 'crm-select2 crm-action-menu action-icon-plus huge')
);
$this->assign('group', TRUE);
}
- $label = ts('Add These Contacts to Group');
- $this->addElement('submit', $this->_groupButtonName, $label, array('onclick' => 'return checkGroup();'));
+ $this->addElement('submit', $this->_groupButtonName, '', array('style' => 'display: none;'));
$this->addChartOptions();
$this->addButtons(array(
'title' => ts('Group'),
'operatorType' => CRM_Report_Form::OP_MULTISELECT,
'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
+ 'options' => CRM_Core_PseudoConstant::nestedGroup(),
),
);
if (empty($this->_columns['civicrm_group']['dao'])) {
array('title' => ts('Postal Code Suffix'),
'default' => CRM_Utils_Array::value('postal_code_suffix', $defaults, FALSE),
),
- 'county_id' =>
- array('title' => ts('County'),
- 'default' => CRM_Utils_Array::value('county_id', $defaults, FALSE),
- ),
+ 'country_id' =>
+ array('title' => ts('Country'),
+ 'default' => CRM_Utils_Array::value('country_id', $defaults, FALSE),
+ ),
'state_province_id' =>
array('title' => ts('State/Province'),
'default' => CRM_Utils_Array::value('state_province_id', $defaults, FALSE),
),
- 'country_id' =>
- array('title' => ts('Country'),
- 'default' => CRM_Utils_Array::value('country_id', $defaults, FALSE),
- ),
+ 'county_id' =>
+ array('title' => ts('County'),
+ 'default' => CRM_Utils_Array::value('county_id', $defaults, FALSE),
+ ),
),
'grouping' => 'location-fields',
),
'operator' => 'like',
'name' => 'city',
),
- 'county_id' => array(
- 'name' => 'county_id',
- 'title' => ts('County'),
+ 'country_id' => array(
+ 'name' => 'country_id',
+ 'title' => ts('Country'),
'type' => CRM_Utils_Type::T_INT,
'operatorType' =>
- CRM_Report_Form::OP_MULTISELECT,
+ CRM_Report_Form::OP_MULTISELECT,
'options' =>
- CRM_Core_PseudoConstant::county(),
+ CRM_Core_PseudoConstant::country(),
),
'state_province_id' => array(
'name' => 'state_province_id',
'title' => ts('State/Province'),
'type' => CRM_Utils_Type::T_INT,
'operatorType' =>
- CRM_Report_Form::OP_MULTISELECT,
+ CRM_Report_Form::OP_MULTISELECT,
'options' =>
- CRM_Core_PseudoConstant::stateProvince(),
+ CRM_Core_PseudoConstant::stateProvince(),
),
- 'country_id' => array(
- 'name' => 'country_id',
- 'title' => ts('Country'),
+ 'county_id' => array(
+ 'name' => 'county_id',
+ 'title' => ts('County'),
'type' => CRM_Utils_Type::T_INT,
'operatorType' =>
CRM_Report_Form::OP_MULTISELECT,
'options' =>
- CRM_Core_PseudoConstant::country(),
+ CRM_Core_PseudoConstant::county(),
),
);
}
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
$open_case_val = CRM_Core_OptionGroup::getValue('activity_type', 'Open Case', 'name');
),
'grouping' => 'activity-fields',
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
'civicrm_phone' =>
array(
'dao' => 'CRM_Core_DAO_Phone',
'grouping' => 'contact-fields',
),
);
-
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
'grouping' => 'contact-fields',
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
'grouping' => 'contact-fields',
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
array('title' => ts('Amount')),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- 'type' => CRM_Utils_Type::T_INT,
- ),
- ),
- ),
'civicrm_contribution_ordinality' =>
array(
'dao' => 'CRM_Contribute_DAO_Contribution',
),
) + $this->addAddressFields(FALSE);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
// Don't show Batch display column and filter unless batches are being used
),
),
),
- ) + array(
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
$this->_columns['civicrm_contribution']['fields']['civicrm_upto_' . $this->_yearStatisticsFrom] = array('title' => ts('Up To %1 Donation', array(1 => $this->_yearStatisticsFrom)),
'is_statistics' => TRUE,
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
// If we have a campaign, build out the relevant elements
);
}
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
'group_bys' => array('contribution_source' => NULL),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
),
'grouping' => 'softcredit-fields',
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Soft Credit Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
// If we have a campaign, build out the relevant elements
);
}
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
$this->_currencyColumn = 'civicrm_contribution_currency';
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- 'type' => CRM_Utils_Type::T_INT,
- ),
- ),
- ),
) + $this->addAddressFields();
// If we have a campaign, build out the relevant elements
- $this->_tagFilter = TRUE;
if ($campaignEnabled && !empty($this->activeCampaigns)) {
$this->_columns['civicrm_contribution']['fields']['campaign_id'] = array(
'title' => 'Campaign',
$this->_columns['civicrm_contribution']['group_bys']['campaign_id'] = array('title' => ts('Campaign'));
}
+ $this->_tagFilter = TRUE;
+ $this->_groupFilter = TRUE;
$this->_currencyColumn = 'civicrm_contribution_currency';
parent::__construct();
}
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
// If we have a campaign, build out the relevant elements
);
}
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
'grouping' => 'phone-fields',
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
$this->_currencyColumn = 'civicrm_contribution_currency';
parent::__construct();
$roleRows[$roleDAO->event_id][$participantRole[$roleId]]['total'] += $roleDAO->participant;
$roleRows[$roleDAO->event_id][$participantRole[$roleId]]['amount'] += $roleDAO->amount;
}
- $roleRows[$roleDAO->event_id][$participantRole[$roleId]]['amount'] = CRM_Utils_Money::format($roleRows[$roleDAO->event_id][$participantRole[$roleId]]['amount'], $currency[$roleDAO->event_id]);
}
foreach ($roleRows as $eventId => $roleInfo) {
if (isset($roleInfo[$roleName])) {
$roleRows[$eventId][$roleName]['round'] = round(($roleRows[$eventId][$roleName]['total'] / $count[$eventId]) * 100, 2);
}
+ if (!empty($roleRows[$eventId][$roleName])) {
+ $roleRows[$eventId][$roleName]['amount'] = CRM_Utils_Money::format($roleRows[$eventId][$roleName]['amount'], $currency[$eventId]);
+ }
}
}
}
}
//add blank column at the end
- if ($blankcols = CRM_Utils_Array::value('blank_column_end', $this->_params)) {
+ $blankcols = CRM_Utils_Array::value('blank_column_end', $this->_params);
+ if ($blankcols) {
for ($i = 1; $i <= $blankcols; $i++) {
$select[] = " '' as blankColumnEnd_{$i}";
$this->_columnHeaders["blank_{$i}"]['title'] = "_ _ _ _";
$this->endPostProcess($rows);
}
+ /**
+ * @param $rows
+ * @param $entryFound
+ * @param $row
+ * @param $rowId
+ * @param $rowNum
+ * @param $types
+ */
+ private function _initBasicRow(&$rows, &$entryFound, $row, $rowId, $rowNum, $types){
+ if (!array_key_exists($rowId, $row)) {
+ return FALSE;
+ }
+
+ $value = $row[$rowId];
+ if ($value) {
+ $rows[$rowNum][$rowId] = $types[$value];
+ }
+ $entryFound = TRUE;
+ }
+
/**
* @param $rows
*/
// make count columns point to detail report
// convert display name to links
if (array_key_exists('civicrm_participant_event_id', $row)) {
- if ($value = $row['civicrm_participant_event_id']) {
- $rows[$rowNum]['civicrm_participant_event_id'] = CRM_Event_PseudoConstant::event($value, FALSE);
+ $eventId = $row['civicrm_participant_event_id'];
+ if ($eventId) {
+ $rows[$rowNum]['civicrm_participant_event_id'] = CRM_Event_PseudoConstant::event($eventId, FALSE);
$url = CRM_Report_Utils_Report::getNextUrl('event/income',
- 'reset=1&force=1&id_op=in&id_value=' . $value,
+ 'reset=1&force=1&id_op=in&id_value=' . $eventId,
$this->_absoluteUrl, $this->_id, $this->_drilldownReport
);
$rows[$rowNum]['civicrm_participant_event_id_link'] = $url;
}
// handle event type id
- if (array_key_exists('civicrm_event_event_type_id', $row)) {
- if ($value = $row['civicrm_event_event_type_id']) {
- $rows[$rowNum]['civicrm_event_event_type_id'] = $eventType[$value];
- }
- $entryFound = TRUE;
- }
+ $this->_initBasicRow($rows, $entryFound, $row, 'civicrm_event_event_type_id', $rowNum, $eventType);
// handle participant status id
if (array_key_exists('civicrm_participant_status_id', $row)) {
- if ($value = $row['civicrm_participant_status_id']) {
- $rows[$rowNum]['civicrm_participant_status_id'] = CRM_Event_PseudoConstant::participantStatus($value, FALSE, 'label');
+ $statusId = $row['civicrm_participant_status_id'];
+ if ($statusId) {
+ $rows[$rowNum]['civicrm_participant_status_id'] = CRM_Event_PseudoConstant::participantStatus($statusId, FALSE, 'label');
}
$entryFound = TRUE;
}
// handle participant role id
if (array_key_exists('civicrm_participant_role_id', $row)) {
- if ($value = $row['civicrm_participant_role_id']) {
- $roles = explode(CRM_Core_DAO::VALUE_SEPARATOR, $value);
- $value = array();
+ $roleId = $row['civicrm_participant_role_id'];
+ if ($roleId) {
+ $roles = explode(CRM_Core_DAO::VALUE_SEPARATOR, $roleId);
+ $roleId = array();
foreach ($roles as $role) {
- $value[$role] = CRM_Event_PseudoConstant::participantRole($role, FALSE);
+ $roleId[$role] = CRM_Event_PseudoConstant::participantRole($role, FALSE);
}
- $rows[$rowNum]['civicrm_participant_role_id'] = implode(', ', $value);
+ $rows[$rowNum]['civicrm_participant_role_id'] = implode(', ', $roleId);
}
$entryFound = TRUE;
}
// Handel value seperator in Fee Level
if (array_key_exists('civicrm_participant_participant_fee_level', $row)) {
- if ($value = $row['civicrm_participant_participant_fee_level']) {
- CRM_Event_BAO_Participant::fixEventLevel($value);
- $rows[$rowNum]['civicrm_participant_participant_fee_level'] = $value;
+ $feeLevel = $row['civicrm_participant_participant_fee_level'];
+ if ($feeLevel) {
+ CRM_Event_BAO_Participant::fixEventLevel($feeLevel);
+ $rows[$rowNum]['civicrm_participant_participant_fee_level'] = $feeLevel;
}
$entryFound = TRUE;
}
// Convert display name to link
- if (($displayName = CRM_Utils_Array::value('civicrm_contact_sort_name_linked', $row)) &&
- ($cid = CRM_Utils_Array::value('civicrm_contact_id', $row)) &&
- ($id = CRM_Utils_Array::value('civicrm_participant_participant_record', $row))
- ) {
+ $displayName = CRM_Utils_Array::value('civicrm_contact_sort_name_linked', $row);
+ $cid = CRM_Utils_Array::value('civicrm_contact_id', $row);
+ $id = CRM_Utils_Array::value('civicrm_participant_participant_record', $row);
+
+ if ($displayName && $cid && $id) {
$url = CRM_Report_Utils_Report::getNextUrl('contact/detail',
"reset=1&force=1&id_op=eq&id_value=$cid",
$this->_absoluteUrl, $this->_id, $this->_drilldownReport
// Handle country id
if (array_key_exists('civicrm_address_country_id', $row)) {
- if ($value = $row['civicrm_address_country_id']) {
- $rows[$rowNum]['civicrm_address_country_id'] = CRM_Core_PseudoConstant::country($value, TRUE);
+ $countryId = $row['civicrm_address_country_id'];
+ if ($countryId) {
+ $rows[$rowNum]['civicrm_address_country_id'] = CRM_Core_PseudoConstant::country($countryId, TRUE);
}
$entryFound = TRUE;
- }
+ }
// Handle state/province id
if (array_key_exists('civicrm_address_state_province_id', $row)) {
- if ($value = $row['civicrm_address_state_province_id']) {
- $rows[$rowNum]['civicrm_address_state_province_id'] = CRM_Core_PseudoConstant::stateProvince($value, TRUE);
+ $provinceId = $row['civicrm_address_state_province_id'];
+ if ($provinceId) {
+ $rows[$rowNum]['civicrm_address_state_province_id'] = CRM_Core_PseudoConstant::stateProvince($provinceId, TRUE);
}
$entryFound = TRUE;
}
// Handle employer id
if (array_key_exists('civicrm_contact_employer_id', $row)) {
- if ($value = $row['civicrm_contact_employer_id']) {
- $rows[$rowNum]['civicrm_contact_employer_id'] = CRM_Contact_BAO_Contact::displayName($value);
+ $employerId = $row['civicrm_contact_employer_id'];
+ if ($employerId) {
+ $rows[$rowNum]['civicrm_contact_employer_id'] = CRM_Contact_BAO_Contact::displayName($employerId);
$url = CRM_Utils_System::url('civicrm/contact/view',
- 'reset=1&cid=' . $value, $this->_absoluteUrl
+ 'reset=1&cid=' . $employerId, $this->_absoluteUrl
);
$rows[$rowNum]['civicrm_contact_employer_id_link'] = $url;
$rows[$rowNum]['civicrm_contact_employer_id_hover'] = ts('View Contact Summary for this Contact.');
}
// Convert campaign_id to campaign title
- if (array_key_exists('civicrm_participant_campaign_id', $row)) {
- if ($value = $row['civicrm_participant_campaign_id']) {
- $rows[$rowNum]['civicrm_participant_campaign_id'] = $this->activeCampaigns[$value];
- $entryFound = TRUE;
- }
- }
+ $this->_initBasicRow($rows, $entryFound, 'civicrm_participant_campaign_id', $this->activeCampaigns, $row, $rowNum);
// handle contribution status
- if (array_key_exists('civicrm_contribution_contribution_status_id', $row)) {
- if ($value = $row['civicrm_contribution_contribution_status_id']) {
- $rows[$rowNum]['civicrm_contribution_contribution_status_id'] = $contributionStatus[$value];
- }
- $entryFound = TRUE;
- }
+ $this->_initBasicRow($rows, $entryFound, 'civicrm_contribution_contribution_status_id', $contributionStatus, $row, $rowNum);
// handle payment instrument
- if (array_key_exists('civicrm_contribution_payment_instrument_id', $row)) {
- if ($value = $row['civicrm_contribution_payment_instrument_id']) {
- $rows[$rowNum]['civicrm_contribution_payment_instrument_id'] = $paymentInstruments[$value];
- }
- $entryFound = TRUE;
- }
+ $this->_initBasicRow($rows, $entryFound, 'civicrm_contribution_payment_instrument_id', $paymentInstruments, $row, $rowNum);
// handle financial type
- if (array_key_exists('civicrm_contribution_financial_type_id', $row)) {
- if ($value = $row['civicrm_contribution_financial_type_id']) {
- $rows[$rowNum]['civicrm_contribution_financial_type_id'] = $financialTypes[$value];
- }
- $entryFound = TRUE;
- }
+ $this->_initBasicRow($rows, $entryFound, 'civicrm_contribution_financial_type_id', $financialTypes, $row, $rowNum);
- if (array_key_exists('civicrm_contact_gender_id', $row)) {
- if ($value = $row['civicrm_contact_gender_id']) {
- $rows[$rowNum]['civicrm_contact_gender_id'] = $genders[$value];
- }
- $entryFound = TRUE;
- }
+ // handle gender id
+ $this->_initBasicRow($rows, $entryFound, 'civicrm_contact_gender_id', $genders, $row, $rowNum);
// display birthday in the configured custom format
if (array_key_exists('civicrm_contact_birth_date', $row)) {
- if ($value = $row['civicrm_contact_birth_date']) {
- $rows[$rowNum]['civicrm_contact_birth_date'] = CRM_Utils_Date::customFormat($row['civicrm_contact_birth_date'], '%Y%m%d');
+ $birthDate = $row['civicrm_contact_birth_date'];
+ if ($birthDate) {
+ $rows[$rowNum]['civicrm_contact_birth_date'] = CRM_Utils_Date::customFormat($birthDate, '%Y%m%d');
}
$entryFound = TRUE;
}
'grouping' => 'contact-fields',
);
- $this->_columns['civicrm_group'] = array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' => array(
- 'gid' => array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- );
-
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
'grouping' => 'mailing-fields',
);
- $this->_columns['civicrm_group'] = array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' => array(
- 'gid' => array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- );
-
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
'grouping' => 'contact-fields',
);
- $this->_columns['civicrm_group'] = array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- );
+ $this->_groupFilter = TRUE;
+ $this->_tagFilter = TRUE;
parent::__construct();
}
'grouping' => 'contact-fields',
);
- $this->_columns['civicrm_group'] = array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' => array(
- 'gid' => array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- );
-
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
'civicrm_contribution_ordinality' =>
array(
'dao' => 'CRM_Contribute_DAO_Contribution',
),
) + $this->addAddressFields(FALSE);
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
// Don't show Batch display column and filter unless batches are being used
//used when contribution field is selected
if ($this->_contribField) {
$this->_from .= "
- LEFT JOIN (
- SELECT cc.*, cmp.membership_id as membership_id
- FROM civicrm_membership_payment cmp
- JOIN civicrm_contribution cc
- ON cc.id = cmp.contribution_id
- ORDER BY cc.receive_date DESC
- ) {$this->_aliases['civicrm_contribution']}
- ON {$this->_aliases['civicrm_membership']}.id =
- {$this->_aliases['civicrm_contribution']}.membership_id\n";
+ LEFT JOIN civicrm_membership_payment cmp
+ ON {$this->_aliases['civicrm_membership']}.id = cmp.membership_id
+ LEFT JOIN civicrm_contribution {$this->_aliases['civicrm_contribution']}
+ ON cmp.contribution_id={$this->_aliases['civicrm_contribution']}.id\n";
}
}
array('email' => NULL),
'grouping' => 'contact-fields',
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_GroupContact',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts('Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
);
// If we have a campaign, build out the relevant elements
);
}
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
parent::__construct();
}
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts(' Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- )
)
+ $this->getAddressColumns(array('group_by' => FALSE))
+ $this->getPhoneColumns();
}
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
$this->_currencyColumn = 'civicrm_pledge_currency';
parent::__construct();
),
),
),
- 'civicrm_group' =>
- array(
- 'dao' => 'CRM_Contact_DAO_Group',
- 'alias' => 'cgroup',
- 'filters' =>
- array(
- 'gid' =>
- array(
- 'name' => 'group_id',
- 'title' => ts(' Group'),
- 'operatorType' => CRM_Report_Form::OP_MULTISELECT,
- 'group' => TRUE,
- 'options' => CRM_Core_PseudoConstant::group(),
- ),
- ),
- ),
) + $this->addAddressFields();
+ $this->_groupFilter = TRUE;
$this->_tagFilter = TRUE;
$this->_currencyColumn = 'civicrm_pledge_currency';
parent::__construct();
);
//get the mailing groups.
- $groups = CRM_Core_PseudoConstant::group('Mailing');
+ $groups = CRM_Core_PseudoConstant::nestedGroup('Mailing');
//get the sms mailing list
$mailings = CRM_Mailing_PseudoConstant::completed('sms');
$this->_id = $this->get('id');
- CRM_Utils_System::setTitle(ts('Manage - SMS Providers'));
+ $this->setPageTitle(ts('SMS Provider'));
if ($this->_id) {
$refreshURL = CRM_Utils_System::url('civicrm/admin/sms/provider',
public function buildQuickForm() {
parent::buildQuickForm();
+ $this->addButtons(array(
+ array(
+ 'type' => 'next',
+ 'name' => $this->_action & CRM_Core_Action::DELETE ? ts('Delete') : ts('Save'),
+ 'isDefault' => TRUE,
+ ),
+ array(
+ 'type' => 'cancel',
+ 'name' => ts('Cancel'),
+ ),
+ )
+ );
+
if ($this->_action & CRM_Core_Action::DELETE) {
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Delete'),
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
- )
- );
return;
}
- else {
- $this->addButtons(array(
- array(
- 'type' => 'next',
- 'name' => ts('Save'),
- 'isDefault' => TRUE,
- ),
- array(
- 'type' => 'cancel',
- 'name' => ts('Cancel'),
- ),
- )
- );
- }
$attributes = CRM_Core_DAO::getAttribute('CRM_SMS_DAO_Provider');
$providerNames = CRM_Core_OptionGroup::values('sms_provider_name', FALSE, FALSE, FALSE, NULL, 'label');
$apiTypes = CRM_Core_OptionGroup::values('sms_api_type', FALSE, FALSE, FALSE, NULL, 'label');
- $this->add('select', 'name', ts('Name'), array('' => '- select -') + $providerNames, TRUE, array('onchange' => "reload(true)"));
+ $this->add('select', 'name', ts('Name'), array('' => '- select -') + $providerNames, TRUE);
$this->add('text', 'title', ts('Title'),
$attributes['title'], TRUE
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this);
if ($this->_gid) {
$this->_title = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $this->_gid, 'title');
- CRM_Utils_System::setTitle($this->_title . ' - ' . ts('CiviCRM Profile Fields'));
+
+ $this->setPageTitle(ts('Profile Field'));
$url = CRM_Utils_System::url('civicrm/admin/uf/group/field',
"reset=1&action=browse&gid={$this->_gid}"
CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been saved.", array(1 => $ufGroup->title)), ts('Profile Saved'), 'success');
}
else {
- $url = CRM_Utils_System::url('civicrm/admin/uf/group/field/add', 'reset=1&action=add&gid=' . $ufGroup->id);
+ // Jump directly to adding a field if popups are disabled
+ $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? '' : '/add';
+ $url = CRM_Utils_System::url("civicrm/admin/uf/group/field$action", 'reset=1&gid=' . $ufGroup->id . '&action=' . ($action ? 'add' : 'browse'));
CRM_Core_Session::setStatus(ts('Your CiviCRM Profile \'%1\' has been added. You can add fields to this profile now.',
array(1 => $ufGroup->title)
), ts('Profile Added'), 'success');
</tr>
<tr>
<td {$labelStyle}>
- {ts}Organization Contact Id{/ts}
+ {ts}Organization Contact ID{/ts}
</td>
<td {$valueStyle}>
{$onBehalfID}
{ts}Organization Name{/ts}: {$onBehalfName}
{ts}Organization Email{/ts}: {$onBehalfEmail}
-{ts}Organization Contact Id{/ts}: {$onBehalfID}
+{ts}Organization Contact ID{/ts}: {$onBehalfID}
{ts}If you think this may be a duplicate contact which should be merged with an existing record -
Go to "CiviCRM >> Administer CiviCRM >> Find and Merge Duplicate Contacts". Use the strict
</tr>
<tr>
<td {$labelStyle}>
- {ts}Organization Contact Id{/ts}
+ {ts}Organization Contact ID{/ts}
</td>
<td {$valueStyle}>
{$onBehalfID}
</tr>
<tr>
<td {$labelStyle}>
- {ts}Organization Contact Id{/ts}
+ {ts}Organization Contact ID{/ts}
</td>
<td {$valueStyle}>
{$onBehalfID}
{ts}Organization Name{/ts}: {$onBehalfName}
{ts}Organization Email{/ts}: {$onBehalfEmail}
-{ts}Organization Contact Id{/ts}: {$onBehalfID}
+{ts}Organization Contact ID{/ts}: {$onBehalfID}
{ts}If you think this may be a duplicate contact which should be merged with an existing record -
Go to "Contacts >> Find and Merge Duplicate Contacts". Use the strict
--- /dev/null
+{* file to handle db changes in 4.5.beta6 during upgrade *}
--- /dev/null
+{* file to handle db changes in 4.5.beta7 during upgrade *}
+UPDATE civicrm_contribution SET net_amount = total_amount - fee_amount WHERE net_amount = 0 OR net_amount IS NULL;
--- /dev/null
+{* file to handle db changes in 4.5.beta8 during upgrade *}
+
+-- CRM-15143 Add Postal Code to contact reference and quick search options
+SELECT @option_group_id_cao := max(id) from civicrm_option_group where name = 'contact_autocomplete_options';
+SELECT @option_val_id_cao_wt := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cao;
+SELECT @option_val_id_cao_val := MAX(ROUND(value)) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cao;
+INSERT INTO
+`civicrm_option_value` (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
+VALUES
+(@option_group_id_cao, {localize}'{ts escape="sql"}Postal Code{/ts}'{/localize}, @option_val_id_cao_val+1, 'postal_code', NULL, 0, NULL, @option_val_id_cao_wt+1, 0, 1, 1, NULL, NULL);
+
+SELECT @option_group_id_cro := max(id) from civicrm_option_group where name = 'contact_reference_options';
+SELECT @option_val_id_cro_wt := MAX(weight) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cro;
+SELECT @option_val_id_cro_val := MAX(ROUND(value)) FROM civicrm_option_value WHERE option_group_id = @option_group_id_cro;
+INSERT INTO
+`civicrm_option_value` (`option_group_id`, {localize field='label'}label{/localize}, `value`, `name`, `grouping`, `filter`, `is_default`, `weight`, `is_optgroup`, `is_reserved`, `is_active`, `component_id`, `visibility_id`)
+VALUES
+(@option_group_id_cro, {localize}'{ts escape="sql"}Postal Code{/ts}'{/localize}, @option_val_id_cro_val+1, 'postal_code', NULL, 0, NULL, @option_val_id_cro_wt+1, 0, 1, 1, NULL, NULL);
INSERT INTO civicrm_option_value
(option_group_id, {localize field='label'}label{/localize}, {localize field='description'}description{/localize}, value, name, weight, filter, component_id)
VALUES
- (@option_group_id_activity_type, {localize}'Change Custom Data'{/localize},{localize}''{/localize}, (SELECT @max_val := @max_val+1), 'Change Custom Data', (SELECT @max_wt := @max_wt+1), 0, @caseCompId);
+ (@option_group_id_activity_type, {localize}'{ts escape="sql"}Change Custom Data{/ts}'{/localize},{localize}''{/localize}, (SELECT @max_val := @max_val+1), 'Change Custom Data', (SELECT @max_wt := @max_wt+1), 0, @caseCompId);
------------------------------------------------------------------------------
+More details on the wiki: http://wiki.civicrm.org/confluence/display/CRMDOC/Internationalisation+for+Developers#InternationalisationforDevelopers-Localisedfieldsschemachanges
\ No newline at end of file
}
// end of hack
- $postUpgradeMessage = ts('CiviCRM upgrade was successful.');
+ $postUpgradeMessage = ts('Congratulations! Your upgrade was successful! (... wasn\'t that easy!)');
// lets drop all the triggers here
CRM_Core_DAO::dropTriggers();
$contact->external_identifier = $externalId;
$errorMsg = NULL;
if (!$contact->find(TRUE)) {
- $errorMsg = $contactId ? ts("Soft Credit ContactID - $contactId doesn't exist. Row was skipped.") : ts("Provided Soft Credit External Identifier - $externalIddoesn't exist. Row was skipped.");
+ $field = $contactId ? ts('Contact ID') : ts('External ID');
+ $errorMsg = ts("Soft Credit %1 - %2 doesn't exist. Row was skipped.",
+ array(1 => $field, 2 => $contactId ? $contactId : $externalId));
}
if ($errorMsg) {
* @return string
*/
static function absoluteDirectory($directory) {
- // Do nothing on windows - config will need to specify absolute path
- if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+ // check if directory is already absolute, if so return immediately
+ // Note: Windows PHP accepts any mix of "/" or "\", so "C:\htdocs" or "C:/htdocs" would be a valid absolute path
+ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' && preg_match(';^[a-zA-Z]:[/\\\\];', $directory)) {
return $directory;
}
static function dynamicResourcePath($fileName = NULL) {
$config = CRM_Core_Config::singleton();
// FIXME: Use self::baseFilePath once url issue has been resolved
- $path = self::addTrailingSlash(str_replace('/persist/contribute', '', $config->imageUploadDir)) . 'dynamic';
+ // Windows PHP accepts any mix of "/" or "\"; simpler if we only deal with one of those
+ $imageUploadDir = str_replace('\\', '/', $config->imageUploadDir);
+ $path = self::addTrailingSlash(str_replace('/persist/contribute', '', $imageUploadDir)) . 'dynamic';
if ($fileName !== NULL) {
$path .= "/$fileName";
}
static function dynamicResourceUrl($fileName) {
$config = CRM_Core_Config::singleton();
// FIXME: Need a better way of getting the url of the baseFilePath
- return self::addTrailingSlash(str_replace('/persist/contribute', '', $config->imageUploadURL)) . 'dynamic/' . $fileName;
+ return self::addTrailingSlash(str_replace('/persist/contribute', '', $config->imageUploadURL), '/') . 'dynamic/' . $fileName;
}
/**
$values['geo_code_1'] = $ret['latitude'];
$values['geo_code_2'] = $ret['longitude'];
- if ($ret['postal']) {
+ if (!empty($ret['postal'])) {
$current_pc = CRM_Utils_Array::value('postal_code', $values);
$skip_postal = FALSE;
$this->requireCiviModules($this->civiModules);
}
- $this->allModules = array_merge((array)$this->drupalModules, (array)$this->civiModules);
+ // CRM-12370
+ // we should add civicrm's module's just after main civicrm drupal module
+ // Note: Assume that drupalModules and civiModules may each be array() or NULL
+ if ($this->drupalModules !== NULL) {
+ foreach ($this->drupalModules as $moduleName) {
+ $this->allModules[$moduleName] = $moduleName;
+ if ($moduleName == 'civicrm') {
+ if (!empty($this->civiModules)) {
+ foreach ($this->civiModules as $civiModuleName) {
+ $this->allModules[$civiModuleName] = $civiModuleName;
+ }
+ }
+ }
+ }
+ }
+ else {
+ $this->allModules = (array) $this->civiModules;
+ }
+
if ($this->drupalModules !== NULL && $this->civiModules !== NULL) {
// both CRM and CMS have bootstrapped, so this is the final list
$this->isBuilt = TRUE;
* @return bool
*/
public function isRedirectSupported() {
- return (ini_get('open_basedir') == '') && (ini_get('safe_mode') == 'Off' || ini_get('safe_mode') === FALSE);
+ return (ini_get('open_basedir') == '') && (ini_get('safe_mode') == 'Off' || ini_get('safe_mode') == '' || ini_get('safe_mode') === FALSE);
}
}
if ($this->isFirstPage()) {
return '';
}
-
$href = $this->makeURL(self::PAGE_ID, 1);
- return sprintf('<a class="crm-pager-link" href="%s" title="%s">%s</a>',
- $href,
- str_replace('%d', 1, $this->_altFirst),
- $this->_firstPagePre . $this->_firstPageText . $this->_firstPagePost
- ) . $this->_spacesBefore . $this->_spacesAfter;
+ return $this->formatLink($href, str_replace('%d', 1, $this->_altFirst), $this->_firstPagePre . $this->_firstPageText . $this->_firstPagePost) .
+ $this->_spacesBefore . $this->_spacesAfter;
}
/**
if ($this->isLastPage()) {
return '';
}
-
$href = $this->makeURL(self::PAGE_ID, $this->_totalPages);
- return sprintf('<a class="crm-pager-link" href="%s" title="%s">%s</a>',
- $href,
- str_replace('%d', $this->_totalPages, $this->_altLast),
- $this->_lastPagePre . $this->_lastPageText . $this->_lastPagePost
- );
+ return $this->formatLink($href, str_replace('%d', $this->_totalPages, $this->_altLast), $this->_lastPagePre . $this->_lastPageText . $this->_lastPagePost);
}
/**
function getBackPageLink() {
if ($this->_currentPage > 1) {
$href = $this->makeURL(self::PAGE_ID, $this->getPreviousPageID());
- return sprintf('<a class="crm-pager-link" href="%s" title="%s">%s</a>',
- $href,
- $this->_altPrev, $this->_prevImg
- ) . $this->_spacesBefore . $this->_spacesAfter;
+ return $this->formatLink($href, $this->_altPrev, $this->_prevImg) . $this->_spacesBefore . $this->_spacesAfter;
}
return '';
}
function getNextPageLink() {
if ($this->_currentPage < $this->_totalPages) {
$href = $this->makeURL(self::PAGE_ID, $this->getNextPageID());
- return $this->_spacesAfter . sprintf('<a class="crm-pager-link" href="%s" title="%s">%s</a>',
- $href,
- $this->_altNext, $this->_nextImg
- ) . $this->_spacesBefore . $this->_spacesAfter;
+ return $this->_spacesAfter .
+ $this->formatLink($href, $this->_altNext, $this->_nextImg) .
+ $this->_spacesBefore . $this->_spacesAfter;
}
return '';
}
* Build a url for pager links
*/
function makeURL($key, $value) {
- $href = CRM_Utils_System::makeURL($key);
+ $href = CRM_Utils_System::makeURL($key, TRUE);
// CRM-12212 Remove alpha sort param
if (strpos($href, '&sortByCharacter=')) {
$href = preg_replace('#(.*)\&sortByCharacter=[^&]*(.*)#', '\1\2', $href);
}
return $href . $value;
}
+
+ /**
+ * Output the html pager link
+ * @param string $href
+ * @param string $title
+ * @param string $image
+ * @return string
+ */
+ private function formatLink($href, $title, $image) {
+ return sprintf('<a class="crm-pager-link action-item crm-hover-button" href="%s" title="%s">%s</a>', $href, $title, $image);
+ }
}
*/
public function newerVersion() {
if ($this->latestVersion) {
- if (version_compare($this->localVersion, $this->latestVersion) < 0) {
+ if ((version_compare($this->localVersion, $this->latestVersion) < 0)
+ && CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'versionAlert', NULL, TRUE)) {
return $this->latestVersion;
}
}
$nextID = $ids[$i + 1];
$links = array();
- $url = "{$baseURL}&src=$id";
+ $url = "{$baseURL}&src=$id";
if ($prevID != 0) {
$alt = ts('Move to top');
- $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$firstID}&dir=first\"><img src=\"{$imageURL}/first.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
+ $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$firstID}&dir=first\"><img src=\"{$imageURL}/first.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
$alt = ts('Move up one row');
- $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$prevID}&dir=swap\"><img src=\"{$imageURL}/up.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
+ $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$prevID}&dir=swap\"><img src=\"{$imageURL}/up.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
}
else {
$links[] = "<img src=\"{$imageURL}/spacer.gif\" class=\"order-icon\">";
if ($nextID != 0) {
$alt = ts('Move down one row');
- $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$nextID}&dir=swap\"><img src=\"{$imageURL}/down.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
+ $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$nextID}&dir=swap\"><img src=\"{$imageURL}/down.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
$alt = ts('Move to bottom');
- $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$lastID}&dir=last\"><img src=\"{$imageURL}/last.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
+ $links[] = "<a class=\"crm-weight-arrow\" href=\"{$url}&dst={$lastID}&dir=last\"><img src=\"{$imageURL}/last.gif\" title=\"$alt\" alt=\"$alt\" class=\"order-icon\"></a>";
}
else {
$links[] = "<img src=\"{$imageURL}/spacer.gif\" class=\"order-icon\">";
*/
function onApiRespond(\Civi\API\Event\RespondEvent $event) {
$apiRequest = $event->getApiRequest();
- unset($this->transactions[$apiRequest['id']]);
+ if (isset($this->transactions[$apiRequest['id']])) {
+ if (civicrm_error($event->getResponse())) {
+ $this->transactions[$apiRequest['id']]->rollback();
+ }
+ unset($this->transactions[$apiRequest['id']]);
+ }
}
/**
--- /dev/null
+<?php
+namespace Civi\CiUtil;
+
+class Arrays {
+ static function collect($arr, $col) {
+ $r = array();
+ foreach ($arr as $k => $item) {
+ $r[$k] = $item[$col];
+ }
+ return $r;
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php
+namespace Civi\CiUtil\Command;
+
+class AntagonistCommand {
+ static function main($argv) {
+ if (count($argv) != 3) {
+ print "usage: {$argv[0]} <TargetTest::testFunc> </path/to/suite>\n";
+ exit(1);
+ }
+ list ($program, $target, $suite) = $argv;
+
+ $candidateTests = \Civi\CiUtil\PHPUnitScanner::findTestsByPath(array($suite));
+// $candidateTests = array(
+// array('class' => 'CRM_Core_RegionTest', 'method' => 'testBlank'),
+// array('class' => 'CRM_Core_RegionTest', 'method' => 'testDefault'),
+// array('class' => 'CRM_Core_RegionTest', 'method' => 'testOverride'),
+// array('class' => 'CRM_Core_RegionTest', 'method' => 'testAllTypes'),
+// );
+ $antagonist = self::findAntagonist($target, $candidateTests);
+ if ($antagonist) {
+ print_r(array('found an antagonist' => $antagonist));
+ }
+ else {
+ print_r(array('found no antagonists'));
+ }
+ }
+
+ /**
+ * @param string $target e.g. "MyTest::testFoo"
+ * @param array $candidateTests list of strings (e.g. "MyTest::testFoo")
+ * @return array|null array contains keys:
+ * - antagonist: array
+ * - file: string
+ * - class: string
+ * - method: string
+ * - expectedResults: array
+ * - actualResults: array
+ */
+ static function findAntagonist($target, $candidateTests) {
+ //$phpUnit = new \Civi\CiUtil\EnvTestRunner('./scripts/phpunit', 'EnvTests');
+ $phpUnit = new \Civi\CiUtil\EnvTestRunner('phpunit', 'tests/phpunit/EnvTests.php');
+ $expectedResults = $phpUnit->run(array($target));
+ print_r(array('$expectedResults' => $expectedResults));
+
+ foreach ($candidateTests as $candidateTest) {
+ $candidateTestName = $candidateTest['class'] . '::' . $candidateTest['method'];
+ if ($candidateTestName == $target) {
+ continue;
+ }
+ $actualResults = $phpUnit->run(array(
+ $candidateTestName,
+ $target,
+ ));
+ print_r(array('$actualResults' => $actualResults));
+ foreach ($expectedResults as $testName => $expectedResult) {
+ if ($actualResults[$testName] != $expectedResult) {
+ return array(
+ 'antagonist' => $candidateTest,
+ 'expectedResults' => $expectedResults,
+ 'actualResults' => $actualResults,
+ );
+ }
+ }
+ }
+ return NULL;
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php
+namespace Civi\CiUtil\Command;
+
+class CompareCommand {
+ static function main($argv) {
+ if (empty($argv[1])) {
+ echo "summary: Compares the output of different test runs\n";
+ echo "usage: phpunit-compare <json-file1> [<json-file2>...]\n";
+ exit(1);
+ }
+
+
+ $suites = array(); // array('file' => string, 'results' => array)
+ for ($i = 1; $i < count($argv); $i++) {
+ $suites[$i] = array(
+ 'file' => $argv[$i],
+ 'results' => \Civi\CiUtil\PHPUnitParser::parseJsonResults(file_get_contents($argv[$i]))
+ );
+ }
+
+ $tests = array(); // array(string $name)
+ foreach ($suites as $suiteName => $suite) {
+ $tests = array_unique(array_merge(
+ $tests,
+ array_keys($suite['results'])
+ ));
+ }
+ sort($tests);
+
+ $printer = new \Civi\CiUtil\ComparisonPrinter(\Civi\CiUtil\Arrays::collect($suites, 'file'));
+ foreach ($tests as $test) {
+ $values = array();
+ foreach ($suites as $suiteName => $suite) {
+ $values[] = isset($suite['results'][$test]) ? $suite['results'][$test] : 'MISSING';
+ }
+
+ if (count(array_unique($values)) > 1) {
+ $printer->printRow($test, $values);
+ }
+ }
+ }
+}
--- /dev/null
+<?php
+namespace Civi\CiUtil\Command;
+
+class LsCommand {
+ static function main($argv) {
+ $paths = $argv;
+ array_shift($paths);
+ foreach (\Civi\CiUtil\PHPUnitScanner::findTestsByPath($paths) as $test) {
+ printf("%s %s %s\n", $test['file'], $test['class'], $test['method']);
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php
+namespace Civi\CiUtil;
+
+class ComparisonPrinter {
+ var $headers;
+ var $hasHeader = FALSE;
+
+ function __construct($headers) {
+ $this->headers = $headers;
+ }
+
+ function printHeader() {
+ if ($this->hasHeader) {
+ return;
+ }
+
+ ## LEGEND
+ print "LEGEND\n";
+ $i = 1;
+ foreach ($this->headers as $header) {
+ printf("% 2d: %s\n", $i, $header);
+ $i++;
+ }
+ print "\n";
+
+ ## HEADER
+ printf("%-90s ", 'TEST NAME');
+ $i = 1;
+ foreach ($this->headers as $header) {
+ printf("%-10d ", $i);
+ $i++;
+ }
+ print "\n";
+
+ $this->hasHeader = TRUE;
+ }
+
+ function printRow($test, $values) {
+ $this->printHeader();
+ printf("%-90s ", $test);
+ foreach ($values as $value) {
+ printf("%-10s ", $value);
+ }
+ print "\n";
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php
+namespace Civi\CiUtil;
+
+/**
+ * Parse phpunit result files
+ */
+class EnvTestRunner {
+ protected $phpunit;
+ protected $envTestSuite;
+
+ function __construct($phpunit = "phpunit", $envTestSuite = 'EnvTests') {
+ $this->phpunit = $phpunit;
+ $this->envTestSuite = $envTestSuite;
+ }
+
+ /**
+ * @param array $tests
+ * @return array (string $testName => string $status)
+ */
+ public function run($tests) {
+ $envTests = implode(' ', $tests);
+ $jsonFile = tempnam(sys_get_temp_dir(), 'phpunit-json-');
+ unlink($jsonFile);
+ $command = "env PHPUNIT_TESTS=\"$envTests\" {$this->phpunit} --log-json $jsonFile {$this->envTestSuite}";
+ echo "Running [$command]\n";
+ system($command);
+ $results = PHPUnitParser::parseJsonResults(file_get_contents($jsonFile));
+ unlink($jsonFile);
+ return $results;
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php
+namespace Civi\CiUtil;
+
+/**
+ * Parse phpunit result files
+ */
+class PHPUnitParser {
+ /**
+ * @param string $content phpunit streaming JSON
+ * @return array(string "$class::$func" => $status)
+ */
+ protected static function parseJsonStream($content) {
+ $content = '['
+ . strtr($content, array("}{" => "},{"))
+ . ']';
+ return json_decode($content, TRUE);
+ }
+
+ /**
+ * @param string $content json stream
+ * @return array (string $testName => string $status)
+ */
+ public static function parseJsonResults($content) {
+ $records = self::parseJsonStream($content);
+ $results = array();
+ foreach ($records as $r) {
+ if ($r['event'] == 'test') {
+ $results[$r['test']] = $r['status'];
+ }
+ }
+ return $results;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+<?php
+namespace Civi\CiUtil;
+use Symfony\Component\Finder\Finder;
+
+/**
+ * Search for PHPUnit test cases
+ */
+class PHPUnitScanner {
+ /**
+ * @return array<string> class names
+ */
+ static function _findTestClasses($path) {
+// print_r(array(
+// 'loading' => $path,
+// get_included_files()
+// ));
+
+ $origClasses = get_declared_classes();
+ require_once $path;
+ $newClasses = get_declared_classes();
+
+ return preg_grep('/Test$/', array_diff(
+ $newClasses,
+ $origClasses
+ ));
+ }
+
+ /**
+ * @return array (string $file => string $class)
+ */
+ static function findTestClasses($paths) {
+ $testClasses = array();
+ $finder = new Finder();
+
+ foreach ($paths as $path) {
+ if (is_dir($path)) {
+ foreach ($finder->files()->in($paths)->name('*Test.php') as $file) {
+ $testClass = self::_findTestClasses((string) $file);
+ if (count($testClass) == 1) {
+ $testClasses[(string) $file] = array_shift($testClass);
+ }
+ elseif (count($testClass) > 1) {
+ throw new \Exception("Too many classes in $file");
+ }
+ else {
+ throw new \Exception("Too few classes in $file");
+ }
+ }
+ }
+ elseif (is_file($path)) {
+ $testClass = self::_findTestClasses($path);
+ if (count($testClass) == 1) {
+ $testClasses[$path] = array_shift($testClass);
+ }
+ elseif (count($testClass) > 1) {
+ throw new \Exception("Too many classes in $path");
+ }
+ else {
+ throw new \Exception("Too few classes in $path");
+ }
+ }
+ }
+
+ return $testClasses;
+ }
+
+ /**
+ * @param array $testClasses
+ * @return array each element is an array with keys:
+ * - file: string
+ * - class: string
+ * - method: string
+ */
+ static function findTestsByPath($paths) {
+ $r = array();
+ $testClasses = self::findTestClasses($paths);
+ foreach ($testClasses as $testFile => $testClass) {
+ $clazz = new \ReflectionClass($testClass);
+ foreach ($clazz->getMethods() as $method) {
+ if (preg_match('/^test/', $method->name)) {
+ $r[] = array(
+ 'file' => $testFile,
+ 'class' => $testClass,
+ 'method' => $method->name
+ );
+ }
+ }
+ }
+ return $r;
+ }
+}
\ No newline at end of file
*/
function _civicrm_api3_activity_type_create_spec(&$params) {
$params['label']['api.required'] = 1;
+ $params['label']['title'] = 'Label';
$params['weight']['api.required'] = 1;
+ $params['weight']['title'] = 'Weight';
}
/**
// it is actually required)
$params['entity_table']['api.default'] = "civicrm_batch";
$params['entity_table']['type'] = CRM_Utils_Type::T_STRING;
+ $params['entity_table']['title'] = 'Batch Entity Table - remove?';
$params['modified_date']['api.default'] = "now";
$params['status_id']['api.required'] = 1;
$params['status_id']['api.default'] = 1;
$params['creator_id']['api.default'] = 'user_contact_id';
$params['creator_id']['type'] = CRM_Utils_Type::T_INT;
+ $params['creator_id']['title'] = 'Case Created By';
$params['start_date']['api.default'] = 'now';
$params['medium_id'] = array(
'name' => 'medium_id',
*/
function civicrm_api3_case_type_create($params) {
civicrm_api3_verify_mandatory($params, _civicrm_api3_get_DAO(__FUNCTION__));
+ unset($params['is_forkable']); // computed property
+ unset($params['is_forked']); // computed property
if (!array_key_exists('is_active', $params) && empty($params['id'])) {
$params['is_active'] = TRUE;
}
- return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'CaseType');
-
+ if (!empty($params['id']) // this is an existing case-type
+ && !CRM_Case_BAO_CaseType::isForked($params['id']) // which is not yet forked
+ && !CRM_Case_BAO_CaseType::isForkable($params['id']) // for which new forks are prohibited
+ ) {
+ unset($params['definition']);
+ }
+ $result = _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'CaseType');
+ return _civicrm_api3_case_type_get_formatResult($result);
}
/**
*/
function _civicrm_api3_case_type_get_formatResult(&$result) {
foreach ($result['values'] as $key => $caseType) {
- $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseType['name']);
+ $caseTypeName = (isset($caseType['name'])) ? $caseType['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseType['id'], 'name', 'id', TRUE);
+ $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseTypeName);
if ($xml) {
$result['values'][$key]['definition'] = CRM_Case_BAO_CaseType::convertXmlToDefinition($xml);
} else {
$result['values'][$key]['definition'] = array();
}
+ $result['values'][$key]['is_forkable'] = CRM_Case_BAO_CaseType::isForkable($result['values'][$key]['id']);
+ $result['values'][$key]['is_forked'] = CRM_Case_BAO_CaseType::isForked($result['values'][$key]['id']);
}
return $result;
}
return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
}
+/**
+ * Cancel a recurring contribution of existing contribution_recur.id
+ *
+ * @param array $params (reference) array containing id of the recurring contribution
+ *
+ * @return boolean returns true is successfully cancelled
+ */
+
+function civicrm_api3_contribution_recur_cancel($params) {
+ civicrm_api3_verify_one_mandatory($params, NULL, array('id'));
+ return CRM_Contribute_BAO_ContributionRecur::cancelRecurContribution($params['id'], CRM_Core_DAO::$_nullObject) ? civicrm_api3_create_success() : civicrm_api3_create_error(ts('Error while cancelling recurring contribution'));
+}
+
/**
* delete an existing contribution_recur
*
function civicrm_api3_contribution_recur_delete($params) {
return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params);
}
-
*/
function _civicrm_api3_custom_value_create_spec(&$params) {
$params['entity_id']['api.required'] = 1;
+ $params['entity_id']['title'] = 'Entity ID';
}
/**
/**
* Creates or updates an Dashlet.
*
- * @param array $params Associative array of property name/value
+ * @param array $params array of property name/value
* pairs for the Dashlet.
*
* @return array Array containing 'is_error' to denote success or failure and details of the created activity
*
*/
function civicrm_api3_dashboard_create($params) {
- if (empty($params['id'])) {
- civicrm_api3_verify_one_mandatory($params,
- NULL,
- array(
- 'name',
- 'label',
- 'url',
- 'fullscreen_url',
- )
- );
- }
- // create dashboard element
- $dashboardBAO = CRM_Core_BAO_Dashboard::addDashlet($params);
- if (isset($dashboardBAO->id)) {
- _civicrm_api3_object_to_array($dashboardBAO, $dashboardArray[$dashboardBAO->id]);
- return civicrm_api3_create_success($dashboardArray, $params, 'dashboard', 'create', $dashboardBAO);
- }
+ civicrm_api3_verify_one_mandatory($params, NULL, array(
+ 'name',
+ 'label',
+ 'url',
+ 'fullscreen_url',
+ )
+ );
+ return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Dashboard');
}
/**
// making required for simplicity
$params['created_id']['api.required'] = 1;
$params['api.mailing_job.create']['api.default'] = 1;
+ $params['api.mailing_job.create']['title'] = 'Schedule Mailing?';
}
/**
*/
function _civicrm_api3_mailing_event_confirm_create_spec(&$params) {
$params['contact_id']['api.required'] = 1;
+ $params['contact_id']['title'] = 'Contact ID';
$params['subscribe_id']['api.required'] = 1;
+ $params['subscribe_id']['title'] = 'Subscribe Event ID';
$params['hash']['api.required'] = 1;
+ $params['hash']['title'] = 'Hash';
}
*/
function _civicrm_api3_mailing_event_resubscribe_create_spec(&$params) {
$params['event_queue_id']['api.required'] = 1;
+ $params['event_queue_id']['title'] = 'Event Queue ID';
$params['job_id']['api.required'] = 1;
+ $params['job_id']['title'] = 'Job ID';
$params['hash']['api.required'] = 1;
+ $params['hash']['title'] = 'Hash';
}
*/
function _civicrm_api3_mailing_event_subscribe_create_spec(&$params) {
$params['email']['api.required'] = 1;
+ $params['email']['title'] = 'Unsubscribe Email';
$params['group_id']['api.required'] = 1;
+ $params['group_id']['title'] = 'Unsubscribe From Group';
}
*/
function _civicrm_api3_mailing_event_unsubscribe_create_spec(&$params) {
$params['job_id']['api.required'] = 1;
+ $params['job_id']['title'] = 'Mailing Job ID';
$params['hash']['api.required'] = 1;
+ $params['hash']['title'] = 'Mailing Hash';
$params['event_queue_id']['api.required'] = 1;
+ $params['event_queue_id']['title'] = 'Mailing Queue ID';
}
* Create a default participant line item
*/
function _civicrm_api3_participant_createlineitem(&$params, $participant){
- $sql = "
-SELECT ps.id AS setID, pf.id AS priceFieldID, pfv.id AS priceFieldValueID
-FROM civicrm_price_set_entity cpse
-LEFT JOIN civicrm_price_set ps ON cpse.price_set_id = ps.id AND cpse.entity_id = {$params['event_id']} AND cpse.entity_table = 'civicrm_event'
-LEFT JOIN civicrm_price_field pf ON pf.`price_set_id` = ps.id
-LEFT JOIN civicrm_price_field_value pfv ON pfv.price_field_id = pf.id and pfv.label = '{$params['fee_level']}'
-where ps.id is not null
-";
-
- $dao = CRM_Core_DAO::executeQuery($sql);
- if ($dao->fetch()) {
- $amount = CRM_Utils_Array::value('fee_amount', $params, 0);
- $lineItemparams = array(
- 'price_field_id' => $dao->priceFieldID,
- 'price_field_value_id' => $dao->priceFieldValueID,
- 'entity_table' => 'civicrm_participant',
- 'entity_id' => $participant->id,
- 'label' => $params['fee_level'],
- 'qty' => 1,
- 'participant_count' => 0,
- 'unit_price' => $amount,
- 'line_total' => $amount,
- 'version' => 3,
+ // it is possible that a fee level contains information about multiple
+ // price field values.
+
+ $priceFieldValueDetails = CRM_Utils_Array::explodePadded(
+ $params["fee_level"]);
+
+ foreach($priceFieldValueDetails as $detail) {
+ if (preg_match('/- ([0-9]+)$/', $detail, $matches)) {
+ // it is possible that a price field value is payd for multiple times.
+ // (FIXME: if the price field value ends in minus followed by whitespace
+ // and a number, things will go wrong.)
+
+ $qty = $matches[1];
+ preg_match('/^(.*) - [0-9]+$/', $detail, $matches);
+ $label = $matches[1];
+ }
+ else {
+ $label = $detail;
+ $qty = 1;
+ }
+
+ $sql = "
+ SELECT ps.id AS setID, pf.id AS priceFieldID, pfv.id AS priceFieldValueID, pfv.amount AS amount
+ FROM civicrm_price_set_entity cpse
+ LEFT JOIN civicrm_price_set ps ON cpse.price_set_id = ps.id AND cpse.entity_id = %1 AND cpse.entity_table = 'civicrm_event'
+ LEFT JOIN civicrm_price_field pf ON pf.`price_set_id` = ps.id
+ LEFT JOIN civicrm_price_field_value pfv ON pfv.price_field_id = pf.id
+ where ps.id is not null and pfv.label = %2
+ ";
+
+ $qParams = array(
+ 1 => array($params['event_id'], 'Integer'),
+ 2 => array($label, 'String'),
);
- civicrm_api('line_item', 'create', $lineItemparams);
+
+ $dao = CRM_Core_DAO::executeQuery($sql, $qParams);
+ if ($dao->fetch()) {
+ $lineItemparams = array(
+ 'price_field_id' => $dao->priceFieldID,
+ 'price_field_value_id' => $dao->priceFieldValueID,
+ 'entity_table' => 'civicrm_participant',
+ 'entity_id' => $participant->id,
+ 'label' => $label,
+ 'qty' => $qty,
+ 'participant_count' => 0,
+ 'unit_price' => $dao->amount,
+ 'line_total' => $qty*$dao->amount,
+ 'version' => 3,
+ );
+ civicrm_api('line_item', 'create', $lineItemparams);
+ }
+
}
}
'type' => CRM_Utils_Type::T_STRING),
'group' => array('title' => 'name of setting field',
'api.required' => 0,
+ 'title' => 'Setting Group',
'description' => 'Settings Group. This is required if the setting is not stored in config',
'type' => CRM_Utils_Type::T_STRING)
);
*/
function _civicrm_api3_setting_getdefaults_spec(&$params) {
$params['domain_id'] = array(
- 'api.default' => 'current_domain',
- 'description' => 'Defaults may differ by domain - if you do not pass in a domain id this will default to the current domain
- an array or "all" are acceptable values for multiple domains'
+ 'api.default' => 'current_domain',
+ 'description' => 'Defaults may differ by domain - if you do not pass in a domain id this will default to the current domain
+ an array or "all" are acceptable values for multiple domains',
+ 'title' => 'Setting Domain',
);
}
$params['domain_id'] = array(
'api.default' => 'current_domain',
'description' => 'Defaults may differ by domain - if you do not pass in a domain id this will default to the current domain
- an array or "all" are acceptable values for multiple domains'
+ an array or "all" are acceptable values for multiple domains',
+ 'title' => 'Setting Domain',
);
}
$params['name'] = array('title' => 'Setting Name belongs to');
$params['component_id'] = array('title' => 'id of relevant component');
$params['domain_id'] = array(
- 'api.default' => 'current_domain',
- 'description' => 'Defaults may differ by domain - if you do not pass in a domain id this will default to the current domain
- an array or "all" are acceptable values for multiple domains'
+ 'api.default' => 'current_domain',
+ 'title' => 'Setting Domain',
+ 'description' => 'Defaults may differ by domain - if you do not pass in a domain id this will default to the current domain
+ an array or "all" are acceptable values for multiple domains'
);
}
function _civicrm_api3_setting_create_spec(&$params) {
$params['domain_id'] = array(
'api.default' => 'current_domain',
+ 'title' => 'Setting Domain',
'description' => 'if you do not pass in a domain id this will default to the current domain
an array or "all" are acceptable values for multiple domains'
);
$params['group'] = array(
+ 'title' => 'Setting Group',
'description' => 'if you know the group defining it will make the api more efficient'
)
;
*/
function _civicrm_api3_setting_get_spec(&$params) {
$params['domain_id'] = array(
- 'api.default' => 'current_domain',
- 'description' => 'if you do not pass in a domain id this will default to the current domain'
+ 'api.default' => 'current_domain',
+ 'title' => 'Setting Domain',
+ 'description' => 'if you do not pass in a domain id this will default to the current domain'
);
$params['group'] = array(
- 'description' => 'if you know the group defining it will make the api more efficient'
+ 'title' => 'Setting Group',
+ 'description' => 'if you know the group defining it will make the api more efficient'
)
;
}
'title' => 'Contact Id',
);
$params['domain_id'] = array(
- 'description' => 'if you do not pass in a domain id this will default to the current domain'
+ 'title' => 'Setting Domain',
+ 'description' => 'if you do not pass in a domain id this will default to the current domain'
);
}
'api.default' => TRUE,
);
$params['created_id']['api.default'] = 'user_contact_id';
+ $params['created_id']['title'] = 'Created By';
$params['is_active']['api.default'] = TRUE;
}
$newParams = CRM_Contact_BAO_Query::convertFormValues($inputParams);
$query = new CRM_Contact_BAO_Query($newParams, $returnProperties, NULL,
- FALSE, FALSE, $mode
+ FALSE, FALSE, $mode,
+ empty($params['check_permissions'])
);
list($select, $from, $where, $having) = $query->query();
.crmCaseType table td select {
width: 10em;
+}
+
+tr.forked {
+ font-weight: bold;
}
\ No newline at end of file
font-weight: bold;
color: #9cf;
}
-#search .form-text, #search .form-submit {
+#search .form-text, #search .crm-form-submit {
border: 1px solid #369;
font-size: 1.1em;
}
padding: 0 0.5em 0 0.5em;
margin: 0 0 0.5em 0;
}
-#search .form-submit {
+#search .crm-form-submit {
height: 1.5em;
}
#mission {
* Other civi blocks outside the main container also have the class crm-container (but not the id)
* All styles should start with .crm-container unless they are specific to the main div only
*/
+.crm-container input,
+#civicrm-menu input {
+ box-sizing: content-box;
+}
div.crm-container label {
font-weight: normal;
font-size: 13px;
}
+.crm-container tr {
+ background: none transparent;
+}
+
.crm-container table.criteria-group {
margin-bottom: .1em;
}
border-top: none;
}
-.crm-container tr {
- font-size: .95em;
- background: none !important;
-}
-
.crm-container td {
padding: 4px;
vertical-align: top;
border-collapse: collapse;
}
-.crm-container .crm-row-selected {
- margin: 0px;
- padding: 3px 0px 3px 0px;
- clear: none;
- background-color: #FFFFCC !important;
-}
-
.crm-container .crm-row-child {
margin: 0px;
padding: 3px 0px 3px 0px;
clear: none;
- background-color: #F1F8EB !important;
-}
-
-.crm-container .row-highlighted {
- margin: 0px;
- padding: 3px 0px 3px 0px;
- clear: none;
- background-color: #FFFFCC;
+ background-color: #F1F8EB;
}
/*
background-image: linear-gradient(top, #eee 1%, #fff 15%);
}
-.crm-container .form-submit {
+.crm-container input.crm-form-text[disabled],
+.crm-container input.crm-form-text[readonly] {
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #ddd), color-stop(15%, #f2f2f2));
+ background-image: -webkit-linear-gradient(top, #ddd 1%, #f2f2f2 15%);
+ background-image: -moz-linear-gradient(top, #ddd 1%, #f2f2f2 15%);
+ background-image: linear-gradient(top, #ddd 1%, #f2f2f2 15%);
+}
+
+.crm-container .crm-form-submit {
margin: .25em 0.5em 0.25em 0;
}
-.crm-container .form-submit-inline {
+.crm-container .crm-form-submit-inline {
margin: 0em 0.5em 0.25em 0em;
}
}
.crm-container .crm-section,
+.crm-container div.crm-field-wrapper,
.crm-container-snippet .crm-section {
margin-bottom: 1em;
}
#crm-container input.submit-link {
color: #285286;
- background-color: transparent;
+ background: none transparent;
border: none;
cursor: pointer;
- cursor: hand;
margin: 0em -0.5em 0em -0.5em;
+ text-shadow: none;
}
.crm-container .underline-effect {
cursor: pointer;
}
-#crm-container table.nestedActivitySelector tr a {
- color: #0066CC;
-}
-
#crm-container #activities-selector tr:hover td,
#crm-container #activities-selector tr:hover td.sorted,
#crm-container #activities-selector tr.trOver td.sorted,
display: inline-block;
white-space: nowrap;
border: 1px solid transparent;
+ border-radius: 4px;
text-decoration: none;
- font-size: .8em;
+ font-size: .9em;
color: #000;
padding: 1px 2px 1px 0;
opacity: .7;
font-size: .95em;
padding: 3px 5px;
opacity: 1;
+ color: #2786c2;
}
.crm-container .btn-slide .action-item {
white-space: normal;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0);
background-image: linear-gradient(top, #eee 0%, #ccc 100%);
border: 1px solid #AAAAAA;
- border-radius: 4px;
opacity: 1;
color: #2786C2;
}
background-color: #2F2F2E;
}
-.crm-container .panel li a {
- color: #DFDFDF;
-}
-
-.crm-container .panel li a:hover,
+.crm-container .btn-slide .panel li a:hover,
.crm-container .crm-participant-list-inner li a:hover,
.crm-container .crm-event-links-list-inner li a:hover,
.crm-container .crm-contribpage-links-list-inner li a:hover {
z-index: 1;
}
-.crm-container .panel li a {
+.crm-container .btn-slide .panel li a {
text-decoration: none;
padding: 4px;
display: block;
cursor: pointer;
+ color: #DFDFDF;
}
/*class for CMS user name check used in profile*/
padding-top: 5px;
}
-#crm-container a.crm-link-action {
- cursor: pointer;
- cursor: hand;
-}
-
#crm-container span.crm-custom-greeting {
font-size: 9px;
}
.crm-container a.crm-invoiceButton:visited,
.crm-container a.button:link,
.crm-container a.button:visited,
-.crm-container input.form-submit,
+.crm-container input.crm-form-submit,
.crm-container .crm-button,
#crm-container input[type=button],
-#crm-container input.form-submit-inline,
+#crm-container input.crm-form-submit-inline,
#crm-container .crm-button {
text-shadow: 0 1px 0 black;
background: #70716B url(../i/crm-button-bg.gif) repeat-x top left;
color: #FFF;
font-size: 13px;
font-weight: normal;
- margin-right: 6px;
+ margin: 0 6px 0 0;
padding: 2px 6px;
text-decoration: none;
cursor: pointer;
border: 1px solid #3e3e3e;
}
-.crm-container input.form-submit[disabled],
+.crm-container input.crm-form-submit[disabled],
.crm-container .crm-button[disabled],
#crm-container input[type=button][disabled],
-#crm-container input.form-submit-inline[disabled],
+#crm-container input.crm-form-submit-inline[disabled],
#crm-container .crm-button[disabled] {
color: #999;
}
padding: 1px;
}
-.crm-container input.form-submit,
+.crm-container input.crm-form-submit,
#crm-container input[type=button],
-#crm-container input.form-submit-inline {
+#crm-container input.crm-form-submit-inline {
padding: 2px 6px;
}
.crm-container .crm-button input[type=button],
-.crm-container .crm-button input.form-submit,
-.crm-container .crm-button input.form-submit-inline,
+.crm-container .crm-button input.crm-form-submit,
+.crm-container .crm-button input.crm-form-submit-inline,
#crm-container .crm-button input[type=button],
-#crm-container .crm-button input.form-submit,
-#crm-container .crm-button input.form-submit-inline {
+#crm-container .crm-button input.crm-form-submit,
+#crm-container .crm-button input.crm-form-submit-inline {
padding: 2px 4px;
margin: 0px;
background: none;
opacity: .7;
position: relative;
top: 2px;
+ padding: 0;
}
div.crm-accordion-header a.helpicon {
}
#crm-container .crm-tooltip table,
#crm-container .crm-tooltip table tr td {
+ background-color: #2f2f2e;
border: none;
color: #FFF;
+ word-wrap: break-word;
}
.crm-container .crm-tooltip .crm-summary-group {
width: 700px;
margin-left: 41%;
}
+#crm-container .crm-tooltip table .crm-summary-col-1,
+.crm-container .crm-tooltip table .crm-summary-col-1 {
+ width: 350px;
+}
+
+#crm-container .crm-tooltip table .crm-summary-col-1 div,
+.crm-container .crm-tooltip table .crm-summary-col-1 div {
+ width: auto;
+}
+
/* Class for tokens and helpicon */
.crm-container .helpIcon {
float: right;
margin-right: 45px;
}
-#crm-container ul.token-input-list-facebook, ul.token-input-list-facebook li.leaf,
#crm-container ul li {
list-style-image: none;
}
}
/* Override Drupal .2em margin-bottom on forms (we don't want to give up that space) */
-div#crm-container form {
+div.crm-container form {
margin-bottom: 0em;
}
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * DataTables row classes
- */
-.crm-container table.display tr.odd.gradeA {
- background-color: #ddffdd;
-}
-
-.crm-container table.display tr.even.gradeA {
- background-color: #eeffee;
-}
-
-.crm-container table.display tr.odd.gradeC {
- background-color: #ddddff;
-}
-
-.crm-container table.display tr.even.gradeC {
- background-color: #eeeeff;
-}
-
-.crm-container table.display tr.odd.gradeX {
- background-color: #ffdddd;
-}
-
-.crm-container table.display tr.even.gradeX {
- background-color: #ffeeee;
-}
-
-.crm-container table.display tr.odd.gradeU {
- background-color: #ddd;
-}
-
-.crm-container table.display tr.even.gradeU {
- background-color: #eee;
-}
-
-
-.crm-container tr.odd {
- background-color: #E2E4FF;
-}
-
-.crm-container tr.even {
- background-color: white;
-}
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Misc
+ * Datatables misc
*/
.crm-container .dataTables_scroll {
clear: both;
color: #444;
}
-.crm-container tfoot input.search_init {
- color: #999;
-}
-
-.crm-container td.group {
- background-color: #d1cfd0;
- border-bottom: 2px solid #A19B9E;
- border-top: 2px solid #A19B9E;
-}
-
-.crm-container td.details {
- background-color: #d1cfd0;
- border: 2px solid #A19B9E;
-}
-
-
-.crm-container .example_alt_pagination div.dataTables_info {
- width: 40%;
-}
-
-.crm-container .paging_full_numbers {
- width: 400px;
- height: 22px;
- line-height: 22px;
-}
-
-.crm-container .paging_full_numbers a:active {
- outline: none
-}
-
-.crm-container .paging_full_numbers a:hover {
- text-decoration: none;
-}
-
-.crm-container .paging_full_numbers a.paginate_button,
-.crm-container .paging_full_numbers a.paginate_active {
- border: 1px solid #aaa;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- padding: 2px 5px;
- margin: 0 3px;
- cursor: pointer;
- *cursor: hand;
- color: #333 !important;
-}
-
-.crm-container .paging_full_numbers a.paginate_button {
- background-color: #ddd;
-}
-
-.crm-container .paging_full_numbers a.paginate_button:hover {
- background-color: #ccc;
- text-decoration: none !important;
-}
-
-.crm-container .paging_full_numbers a.paginate_active {
- background-color: #99B3FF;
-}
-
-.crm-container table.display tr.even.row_selected td {
- background-color: #B0BED9;
-}
-
-.crm-container table.display tr.odd.row_selected td {
- background-color: #9FAFD1;
-}
-
/* DataTables fixes */
.crm-container .crm-datatable-pager-top {
padding-top: 5px;
text-decoration: none !important;
}
-#crm-container table.selector td {
+.crm-container table.selector td {
border-right: 1px dotted #DDDDDD;
}
-#crm-container #customFields div.contact_panel td {
+.crm-container #customFields div.contact_panel td {
border-bottom: 1px solid #FFFFFF;
padding: 4px;
vertical-align: top;
}
-#crm-container div.contact_panel td,
+.crm-container div.contact_panel td,
.crm-container table.crm-info-panel td {
background-color: #f4f4ed;
}
-#crm-container div.contact_panel td.label,
-#crm-container #customFields div.contact_panel td.label,
+.crm-container div.contact_panel td.label,
+.crm-container #customFields div.contact_panel td.label,
.crm-container table.crm-info-panel td.label {
background-color: #fafafa;
width: 120px;
width: 150px;
}
-#crm-container .form-layout td.label,
-#crm-container .form-layout-compressed td.label {
+.crm-container .form-layout td.label,
+.crm-container .form-layout-compressed td.label {
width: 150px;
text-align: right;
color: #7a7a60;
}
-#crm-container .form-layout td.label,
-#crm-container form table.report .label,
-#crm-container form table label,
-#crm-container form table.report label {
+.crm-container .form-layout td.label,
+.crm-container form table.report .label,
+.crm-container form table label,
+.crm-container form table.report label {
color: #3e3e3e;
}
-#crm-container div.contact_panel td.grouplabel {
+.crm-container div.contact_panel td.grouplabel {
border-bottom: 2px solid #D7D7D0 !important;
}
.crm-container a.crm-invoiceButton,
.crm-container a.crm-invoiceButton:link,
.crm-container a.button:link,
-.crm-container input.form-submit,
+.crm-container input.crm-form-submit,
.crm-container input[type=button],
-.crm-container input.form-submit-inline {
+.crm-container input.crm-form-submit-inline {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-khtml-border-radius: 3px;
.crm-select2 {
width: 15em;
}
-.crm-container .select2-container {
- min-width: 6em !important;
+.crm-container div.select2-container {
+ min-width: 6em;
font-size: 11px;
}
/* Add arrow icon to multi-selects */
.crm-container .crm-action-menu.action-icon-clipboard .select2-default span.select2-chosen:before {
background-position: -160px -128px;
}
+/* Restore this property otherwise our css overrides it */
+.select2-search input {
+ box-sizing: border-box;
+}
/* Special styling for specific form buttons */
#crm-container span.crm-button_qf_Main_upload input,
}
/* Match font size on 'Continue' button on event participant form (no specific class) */
-#crm-container .crm-event-additionalparticipant-form-block span.crm-button input.form-submit.default {
+#crm-container .crm-event-additionalparticipant-form-block span.crm-button input.crm-form-submit.default {
font-size: 1.2em;
}
}
/* table row highlightng */
-.crm-container table.row-highlight tr:hover {
- background-color: #FFFFCC !important;
+.crm-container table.row-highlight tr:hover,
+.crm-container .crm-row-selected {
+ background-color: #FFFFCC;
}
+.crm-container table.row-highlight tr.even-row:hover,
+.crm-container table.row-highlight tr.even:hover,
+.crm-container .even-row.crm-row-selected,
+.crm-container .even.crm-row-selected {
+ background-color: #fffdb2;
+}
+
#crm-container .civicrm-drupal-wysiwyg .collapsed {
background: transparent;
padding-left: 0px;
}
/* classes related to batch entry operation */
-.crm-container span.batch-edit {
+.crm-container span.batch-edit,
+.crm-container span.batch-valid,
+.crm-container span.batch-invalid {
padding: 2px 9px 2px 3px;
margin: 2px 2px 3px 2px;
cursor: pointer;
- cursor: hand;
background-position: -66px -114px;
background-image: url("../i/icons/jquery-ui-3E3E3E.gif");
}
.crm-container span.batch-valid {
- padding: 2px 9px 2px 3px;
- margin: 2px 2px 3px 2px;
- cursor: pointer;
- cursor: hand;
background-position: -322px -143px;
- background-image: url("../i/icons/jquery-ui-3E3E3E.gif");
}
.crm-container span.batch-invalid {
- padding: 2px 9px 2px 3px;
- margin: 2px 2px 3px 2px;
- cursor: pointer;
- cursor: hand;
background-position: -258px -143px;
- background-image: url("../i/icons/jquery-ui-3E3E3E.gif");
}
.crm-container #Entry ul#errorList {
.container-inline div {
display: inline;
}
-.container-inline .form-submit {
+.container-inline .crm-form-submit {
margin: 0;
}
.error {
.form-item label.option {
font-weight: normal;
}
-.form-submit {
+.crm-form-submit {
margin: 0.5em 0;
}
.marker, .form-required {
.container-inline div {
display: inline;
}
-.container-inline .form-submit {
+.container-inline .crm-form-submit {
margin: 0;
}
.item-list .icon {
.form-item label.option {
font-weight: normal;
}
-.form-submit {
+.crm-form-submit {
margin: 0.5em 0;
}
.marker, .form-required {
font-weight: bold;
color: #9cf;
}
-#search .form-text, #search .form-submit {
+#search .form-text, #search .crm-form-submit {
border: 1px solid #369;
font-size: 1.1em;
}
padding: 0 0.5em 0 0.5em;
margin: 0 0 0.5em 0;
}
-#search .form-submit {
+#search .crm-form-submit {
height: 1.5em;
}
#main {
/* CiviCRM Print Media Stylesheet */
/* Hide any buttons or other form items when printing*/
-#crm-container .buttons, #crm-container .crm-submit-buttons, #crm-container .crm-actions-ribbon, #crm-container .form-submit {
+#crm-container .buttons, #crm-container .crm-submit-buttons, #crm-container .crm-actions-ribbon, #crm-container .crm-form-submit {
display: none;
}
// Workaround for https://github.com/ivaynberg/select2/issues/1246
$.ui.dialog.prototype._allowInteraction = function(e) {
- return !!$(e.target).closest('.ui-dialog, .ui-datepicker, .select2-drop').length;
+ return !!$(e.target).closest('.ui-dialog, .ui-datepicker, .select2-drop, .cke_dialog').length;
};
/**
return isDirty;
};
- /**
- * Wrapper for toggle function which is deprecated in from jQuery 1.8;
- * @param fn1,fn2 handlers
- */
-
- $.fn.toggleClick = function( fn1, fn2 ) {
- // Don't mess with animation or css toggles
- if ( !$.isFunction( fn1 ) || !$.isFunction( fn2 ) ) {
- return;
- }
- // migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
- // Save reference to arguments for access in closure
- var args = arguments,
- guid = fn1.guid || $.guid++,
- i = 0,
- toggler = function( event ) {
- // Figure out which function to execute
- var lastToggle = ( $._data( this, "lastToggle" + fn1.guid ) || 0 ) % i;
- $._data( this, "lastToggle" + fn1.guid, lastToggle + 1 );
- // Make sure that clicks stop
- event.preventDefault();
- // and execute the function
- return args[ lastToggle ].apply( this, arguments ) || false;
- };
- // link all the functions, so any of them can unbind this click handler
- toggler.guid = guid;
- while ( i < args.length ) {
- args[ i++ ].guid = guid;
- }
- return this.click( toggler );
- };
-
/**
* Wrapper for select2 initialization function; supplies defaults
* @param options object
}
})
.find('input.select-row:checked').parents('tr').addClass('crm-row-selected');
+ if ($("input:radio[name=radio_ts]").size() == 1) {
+ $("input:radio[name=radio_ts]").prop("checked", true);
+ }
$('.crm-select2:not(.select2-offscreen, .select2-container)', e.target).crmSelect2();
$('.crm-form-entityref:not(.select2-offscreen, .select2-container)', e.target).crmEntityRef();
// Cache Form Input initial values
*/
CRM.confirm = function (options) {
var dialog, settings = {
- title: ts('Confirm Action'),
+ title: ts('Confirm'),
message: ts('Are you sure you want to continue?'),
width: 'auto',
modal: true,
})
};
},
+ 'revert': function (options) {
+ return {
+ message: ts('Are you sure you want to revert this?'),
+ options: {no: ts('Cancel'), yes: ts('Revert')},
+ width: 300,
+ title: ts('Revert %1?', {
+ 1: options.obj.title || options.obj.label || options.obj.name || ts('the record')
+ })
+ };
+ },
'delete': function (options) {
return {
message: ts('Are you sure you want to delete this?'),
weight: "1",
definition: {
activityTypes: [
- {name: 'Open Case', max_instances: 1 }
+ {name: 'Open Case', max_instances: 1},
+ {name: 'Email'},
+ {name: 'Follow up'},
+ {name: 'Meeting'},
+ {name: 'Phone Call'}
],
activitySets: [
{
$scope.activityTypes = apiCalls.actTypes.values;
$scope.activityTypeNames = _.pluck(apiCalls.actTypes.values, 'name');
$scope.relationshipTypeNames = _.pluck(apiCalls.relTypes.values, CRM.crmCaseType.REL_TYPE_CNAME); // CRM_Case_XMLProcessor::REL_TYPE_CNAME
- $scope.locks = {caseTypeName: true};
+ $scope.locks = {caseTypeName: true, activitySetName: true};
$scope.workflows = {
'timeline': 'Timeline',
}
};
+ $scope.isForkable = function() {
+ return !$scope.caseType.id || $scope.caseType.is_forkable
+ };
+
$scope.isNewActivitySetAllowed = function(workflow) {
switch (workflow) {
case 'timeline':
}
};
+ $scope.isActivityRemovable = function(activitySet, activity) {
+ if (activitySet.name == 'standard_timeline' && activity.name == 'Open Case') {
+ return false;
+ } else {
+ return true;
+ }
+ };
+
+ $scope.isValidName = function(name) {
+ return !name || name.match(/^[a-zA-Z0-9_]+$/);
+ };
+
$scope.getWorkflowName = function(activitySet) {
var result = 'Unknown';
_.each($scope.workflows, function(value, key) {
};
$scope.$watch('locks.caseTypeName', updateCaseTypeName);
$scope.$watch('caseType.title', updateCaseTypeName);
+
+ if (!$scope.isForkable()) {
+ CRM.alert(ts('The CiviCase XML file for this case-type prohibits editing the definition.'));
+ }
});
crmCaseType.controller('CaseTypeListCtrl', function($scope, crmApi, caseTypes) {
}
});
};
+ $scope.revertCaseType = function (caseType) {
+ caseType.definition = 'null';
+ caseType.is_forked = '0';
+ crmApi('CaseType', 'create', caseType, true)
+ .then(function (data) {
+ if (data.is_error) {
+ caseType.is_forked = '1'; // restore
+ $scope.$digest();
+ }
+ });
+ };
});
})(angular, CRM.$, CRM._);
\ No newline at end of file
settings.dialog.height = parseInt($(window).height() * (parseFloat(settings.dialog.height)/100), 10);
}
$('<div id="'+ settings.target.substring(1) +'"><div class="crm-loading-element">' + ts('Loading') + '...</div></div>').dialog(settings.dialog);
- $(settings.target).on('dialogclose', function() {
- if ($(this).attr('data-unsaved-changes') !== 'true') {
- $(this).crmSnippet('destroy').dialog('destroy').remove();
- }
- });
- }
- if (settings.dialog && !settings.dialog.title) {
- $(settings.target).on('crmLoad', function(e, data) {
- if (e.target === $(settings.target)[0] && data && data.title) {
- $(this).dialog('option', 'title', data.title);
- }
- });
+ $(settings.target)
+ .on('dialogclose', function() {
+ if ($(this).attr('data-unsaved-changes') !== 'true') {
+ $(this).crmSnippet('destroy').dialog('destroy').remove();
+ }
+ })
+ .on('crmLoad', function(e, data) {
+ // Set title
+ if (e.target === $(settings.target)[0] && data && !settings.dialog.title && data.title) {
+ $(this).dialog('option', 'title', data.title);
+ }
+ // Adjust height to fit content (small delay to allow elements to render)
+ window.setTimeout(function() {
+ var currentHeight = $(settings.target).parent().height(),
+ padding = currentHeight - $(settings.target).height(),
+ newHeight = $(settings.target).prop('scrollHeight') + padding,
+ menuHeight = $('#civicrm-menu').height(),
+ maxHeight = $(window).height() - menuHeight;
+ newHeight = newHeight > maxHeight ? maxHeight : newHeight;
+ if (newHeight > (currentHeight + 15)) {
+ $(settings.target).dialog('option', {
+ position: {my: 'center', at: 'center center+' + (menuHeight / 2), of: window},
+ height: newHeight
+ });
+ }
+ }, 500);
+ });
}
$(settings.target).crmSnippet(settings).crmSnippet('refresh');
return $(settings.target);
};
CRM.loadForm = function(url, options) {
- var settings = {
+ var formErrors = [], settings = {
crmForm: {
ajaxForm: {},
autoClose: true,
response.url = data.url;
$el.html(response.content).trigger('crmLoad', response).trigger('crmFormLoad', response);
if (response.status === 'form_error') {
+ formErrors = [];
$el.trigger('crmFormError', response);
$.each(response.errors || [], function(formElement, msg) {
- $('[name="'+formElement+'"]', $el).crmError(msg);
+ formErrors.push($('[name="'+formElement+'"]', $el).crmError(msg));
});
}
}
}
},
beforeSubmit: function(submission) {
+ $.each(formErrors, function() {
+ this && this.close && this.close();
+ });
$el.crmSnippet('option', 'block') && $el.block();
$el.trigger('crmFormSubmit', submission);
}
return false;
});
}
- // Alow a button to prevent ajax submit
+ // Allow a button to prevent ajax submit
$('input[data-no-ajax-submit=true]').click(function() {
$(this).closest('form').ajaxFormUnbind();
});
return widget;
};
/**
- * Handler for jQuery click event e.g. $('a').click(CRM.popup)
+ * Handler for jQuery click event e.g. $('a').click(CRM.popup);
*/
CRM.popup = function(e) {
var $el = $(this).first(),
};
/**
* An event callback for CRM.popup or a standalone function to refresh the content around a given element
- * @param e event|selector
+ * @param e {event|selector}
*/
CRM.refreshParent = function(e) {
// Use e.target if input smells like an event, otherwise assume it's a jQuery selector
var $el = (e.stopPropagation && e.target) ? $(e.target) : $(e),
$table = $el.closest('.dataTable');
// Call native refresh method on ajax datatables
- if ($table && $.fn.DataTable.fnIsDataTable($table[0]) && $table.dataTable().fnSettings().sAjaxSource) {
+ if ($table.length && $.fn.DataTable.fnIsDataTable($table[0]) && $table.dataTable().fnSettings().sAjaxSource) {
// Refresh ALL datatables - needed for contact relationship tab
$.each($.fn.dataTable.fnTables(), function() {
$(this).dataTable().fnSettings().sAjaxSource && $(this).unblock().dataTable().fnDraw();
el = this[0],
ret = {},
$row = this.first().closest('.crm-entity');
- ret.entity = $row.data('entity') || $row[0].id.split('-')[0];
- ret.id = $row.data('id') || $row[0].id.split('-')[1];
+ ret.entity = $row.data('entity') || $row[0].id.split('-')[0];
+ ret.id = $row.data('id') || $row[0].id.split('-')[1];
+ ret.action = $row.data('action') || 'setvalue';
+
if (!ret.entity || !ret.id) {
return false;
}
field: info.field,
value: checked ? 1 : 0
};
- CRM.api(info.entity, 'setvalue', params, {
+ CRM.api(info.entity, info.action, params, {
context: this,
error: function(data) {
editableSettings.error.call(this, info.entity, info.field, checked, data);
var
info = $i.crmEditableEntity(),
params = {},
- action = $i.data('action') || 'setvalue';
+ action = $i.data('action') || info.action;
if (!info.field) {
return false;
}
<tr>
<td class="label">Name</td>
<td>
- <input type="text" name="name" ng-model="activitySet.name"/><!-- FIXME lock -->
+ <input type="text" name="name" ng-model="activitySet.name" ng-disabled="locks.activitySetName" />
+ <a crm-ui-lock binding="locks.activitySetName"></a>
+
</td>
</tr>
<tr>
name="caseTypeName"
ng-model="caseType.name"
ng-disabled="locks.caseTypeName"
- ng-pattern="/^[a-zA-Z0-9_]+$/"
required
class="big crm-form-text"/>
<a crm-ui-lock binding="locks.caseTypeName"></a>
+ <div ng-show="!isValidName(caseType.name)">
+ <em>WARNING: The case type name includes deprecated characters.</em>
+ </div>
<div ng-show="caseType.id && !locks.caseTypeName">
<em>WARNING: If any external files or programs reference the old "Name", then they must be updated manually.</em>
</div>
<div ng-include="partialUrl('caseTypeDetails.html')"></div>
- <h2>Roles</h2>
+ <h2 ng-show="isForkable()">Roles</h2>
- <div ng-include="partialUrl('rolesTable.html')"></div>
+ <div ng-show="isForkable()" ng-include="partialUrl('rolesTable.html')"></div>
- <h2>Activities</h2>
+ <h2 ng-show="isForkable()">Activities</h2>
- <div class="crmCaseType-acttab" ui-jq="tabs" ui-options="{show: true, hide: true}">
+ <div ng-show="isForkable()" class="crmCaseType-acttab" ui-jq="tabs" ui-options="{show: true, hide: true}">
<ul>
<li><a href="#acttab-actType">Activity Types</a></li>
<li ng-repeat="activitySet in caseType.definition.activitySets">
<a href="#acttab-{{$index}}">{{ activitySet.label }}</a>
<span class="ui-icon ui-icon-trash" title="Remove"
+ ng-hide="activitySet.name == 'standard_timeline'"
ng-click="removeItem(caseType.definition.activitySets, activitySet)">Remove</span>
<!-- Weird spacing:
<a class="crm-hover-button" ng-click="removeItem(caseType.definition.activitySets, activitySet)">
class="crm-entity"
ng-class-even="'even-row even'"
ng-class-odd="'odd-row odd'"
- ng-class="{disabled: 0==caseType.is_active}">
+ ng-class="{disabled: 0==caseType.is_active, forked: 1==caseType.is_forked}">
<td>{{caseType.title}}</td>
<td>{{caseType.name}}</td>
<td>{{caseType.description}}</td>
Disable
</a>
</li>
+ <li ng-show="caseType.is_forked">
+ <a class="action-item crm-hover-button"
+ crm-confirm="{type: 'revert', obj: caseType}"
+ on-yes="revertCaseType(caseType)">
+ Revert
+ </a>
+ </li>
<li>
<a class="action-item crm-hover-button"
crm-confirm="{type: 'delete', obj: caseType}"
<input
class="number"
type="text"
- ng-pattern="/^[0-9]*$/"
+ ng-pattern="/^-?[0-9]*$/"
ng-model="activity.reference_offset"
ng-hide="activity.name == 'Open Case'"
ng-required="activity.name != 'Open Case'"
</select>
</td>
<td>
- <a class="crm-hover-button" ng-click="removeItem(activitySet.activityTypes, activity)">
+ <a class="crm-hover-button"
+ ng-show="isActivityRemovable(activitySet, activity)"
+ ng-click="removeItem(activitySet.activityTypes, activity)">
<span class="icon delete-icon" title="Remove"></span>
</a>
</td>
--- /dev/null
+<phpunit backupGlobals="false"
+ backupStaticAttributes="false"
+ colors="true"
+ convertErrorsToExceptions="true"
+ convertNoticesToExceptions="true"
+ convertWarningsToExceptions="true"
+ processIsolation="false"
+ stopOnFailure="false"
+ syntaxCheck="false"
+ beStrictAboutTestsThatDoNotTestAnything="false"
+ bootstrap="tests/phpunit/CiviTest/bootstrap.php"
+>
+ <testsuites>
+ <testsuite name="CiviCRM Test Suite">
+ <directory>./tests/phpunit/</directory>
+ </testsuite>
+ </testsuites>
+
+ <filter>
+ <whitelist>
+ <directory suffix=".php">./CRM</directory>
+ <directory suffix=".php">./Civi</directory>
+ <directory suffix=".php">./api</directory>
+ </whitelist>
+ </filter>
+</phpunit>
+
'html_type' => 'Text',
'default' => '{contact.last_name}{, }{contact.first_name}',
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Sort Name Format',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'html_type' => 'Text',
'default' => null,
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Wysiwig Editor',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'html_type' => 'Text',
'default' => null,
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Ajax Check Similar',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'quick_form_type' => 'YesNo',
'default' => 1,
'add' => '4.5',
- 'title' => null,
+ 'title' => 'Ajax Popups Enabled',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
),
'default' => '\ 11\ 12\ 13\ 14\ 15\ 16\ 17\ 1',
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Contact Reference Options',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'quick_form_type' => 'YesNo',
'default' => 1,
'add' => '4.3',
- 'title' => '',
+ 'title' => 'Verify SSL?',
'is_domain' => 1,
'is_contact' => 0,
'description' => 'If disabled, backend HTTPS services will allow unverified, insecure connections',
'type' => 'String',
'quick_form_type' => 'Element',
'html_type' => 'text',
- 'default' => 'null',
+ 'default' => null,
'add' => '4.3',
'title' => 'Fatal Error Handler',
'is_domain' => 1,
'default' => null,
'add' => '4.1',
'prefetch' => 1,
- 'title' => null,
+ 'title' => 'Upload Directory',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
- 'help_text' => 'If set, new contacts that are created when signing a petition are assigned a tag of this name.',
+ 'help_text' => '',
),
'imageUploadDir' => array(
'group_name' => 'Directory Preferences',
'default' => null,
'add' => '4.1',
'prefetch' => 1,
- 'title' => null,
+ 'title' => 'Image Directory',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'default' => null,
'add' => '4.1',
'prefetch' => 1,
- 'title' => null,
+ 'title' => 'Custom Files Upload Directory',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'default' => null,
'add' => '4.1',
'prefetch' => 1,
- 'title' => null,
+ 'title' => 'Custom Template Directory',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'default' => null,
'add' => '4.1',
'prefetch' => 1,
- 'title' => null,
+ 'title' => 'Custom PHP Path',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'default' => null,
'add' => '4.1',
'prefetch' => 1,
- 'title' => null,
+ 'title' => 'Extensions Directory',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'html_type' => 'checkbox',
'default' => 0,
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Use CiviMail Workflow',
'is_domain' => 1,
'is_contact' => 0,
'description' => 'When CiviMail is enabled, users who "subscribe" to a group from a profile Group(s) checkbox will receive a confirmation email. They must respond (opt-in) before they are added to the group.',
'html_type' => 'checkbox',
'default' => 0,
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Lock Mails Server-Wide for Mail Sending',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'html_type' => 'checkbox',
'default' => 0,
'add' => '4.1',
- 'title' => null,
+ 'title' => 'Mailing Backend',
'is_domain' => 1,
'is_contact' => 0,
'description' => null,
'description' => 'If enabled, a randomized hash key will be used to reference the mailing URL in the mailing.viewUrl token, instead of the mailing ID',
'help_text' => null,
),
-);
\ No newline at end of file
+);
'group_name' => 'Multi Site Preferences',
'group' => 'multisite',
'name' => 'is_enabled',
+ 'title' => 'Multisite Is enabled',
'type' => 'Integer',
'default' => null,
'add' => '4.1',
'group_name' => 'Multi Site Preferences',
'group' => 'multisite',
'name' => 'domain_group_id',
+ 'title' => 'Multisite Domain Group',
'type' => 'Integer',
'default' => null,
'add' => '4.1',
'group_name' => 'Multi Site Preferences',
'group' => 'multisite',
'name' => 'event_price_set_domain_id',
+ 'title' => 'Domain Event Price Set',
'type' => 'Integer',
'default' => null,
'add' => '4.1',
'group' => 'multisite',
'name' => 'uniq_email_per_site',
'type' => 'Integer',
+ 'title' => 'Unique Email per Domain?',
'default' => null,
'add' => '4.1',
'is_domain' => 1,
'group' => 'url',
'group_name' => 'URL Preferences',
'name' => 'userFrameworkResourceURL',
+ 'title' => 'Script and CSS Resources URL',
'type' => 'String',
'default' => null,
'add' => '4.1',
'imageUploadURL' => array(
'group' => 'url',
'group_name' => 'URL Preferences',
+ 'title' => 'Image URL Prefix',
'name' => 'imageUploadURL',
'type' => 'String',
'default' => null,
'group' => 'url',
'group_name' => 'URL Preferences',
'name' => 'customCSSURL',
+ 'title' => 'Custom CSS',
'type' => 'String',
'default' => null,
'add' => '4.1',
'status_id' => 1,
'trxn_id' => $result->trxn_id,
'contribution_id' => $result->contribution_id,
- 'to_financial_account_id' => $result->payment_instrument_id ? $financialAccountId[$result->payment_instrument_id] : $defaultFinancialAccount,
+ 'to_financial_account_id' => empty($financialAccountId[$result->payment_instrument_id]) ? $defaultFinancialAccount : $financialAccountId[$result->payment_instrument_id],
'payment_instrument_id' => $result->payment_instrument_id,
'check_number' => $result->check_number
);
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing ACL *}
-<h3>{if $action eq 1}{ts}New ACL{/ts}{elseif $action eq 2}{ts}Edit ACL{/ts}{else}{ts}Delete ACL{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-acl-form-block">
{if $action eq 8}
<div class="messages status no-popup">
</thead>
<tbody>
{foreach from=$rows item=row}
- <tr id="acl_role-{$row.id}" class="{cycle values="odd-row,even-row"} {$row.class} crm-acl_entity_role crm-entity {if NOT $row.is_active} disabled{/if}">
- <td class="crm-acl_entity_role-acl_role">{$row.acl_role}</td>
- <td class="crm-acl_entity_role-entity">{$row.entity}</td>
- <td class="crm-acl_entity_role-is_active" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
- <td>{$row.action|replace:'xx':$row.id}</td>
- </tr>
+ <tr id="acl_role-{$row.id}" class="{cycle values="odd-row,even-row"} {$row.class} crm-acl_entity_role crm-entity {if NOT $row.is_active} disabled{/if}">
+ <td class="crm-acl_entity_role-acl_role">{$row.acl_role}</td>
+ <td class="crm-acl_entity_role-entity">{$row.entity}</td>
+ <td class="crm-acl_entity_role-is_active" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
+ <td>{$row.action|replace:'xx':$row.id}</td>
+ </tr>
{/foreach}
</tbody>
</table>
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('.crm-accordion-body').each( function() {
+ $('.crm-accordion-body').each( function() {
//open tab if form rule throws error
- if ( cj(this).children( ).find('span.crm-error').text( ).length > 0 ) {
- cj(this).parent('.collapsed').crmAccordionToggle();
+ if ( $(this).children( ).find('span.crm-error').text( ).length > 0 ) {
+ $(this).parent('.collapsed').crmAccordionToggle();
}
});
$('#swap_target_assignee').click(function() {
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var roleId = cj('input[name=activity_role]:checked', '#Search').val();
+ var $form = $('form.{/literal}{$form.formClass}{literal}'),
+ roleId = $('input[name=activity_role]:checked', $form).val();
if (roleId) {
- cj('.description .option-' + roleId).show();
+ $('.description .option-' + roleId).show();
}
+ $('[name=activity_role]:input').change(function() {
+ $('.description .contact-name-option').hide();
+ if ($(this).is(':checked')) {
+ $('.description .option-' + $(this).val()).show();
+ }
+ }).change();
});
- cj('[name=activity_role]:input').change(function () {
- cj('.description .contact-name-option').hide();
- if (cj(this).is(':checked')) {
- cj('.description .option-' + cj(this).val()).show();
- }
- }).change();
</script>
{/literal}
CRM.$(function($) {
//Searchable activity custom fields which extend ALL activity types are always displayed in the form
//hence hide remaining activity custom data
- cj('#activityCustom').children( ).each( function( ) {
- cj('#'+cj(this).attr('id')+' div').each( function( ) {
- if (cj(this).children( ).attr('id')) {
- var activityCustomdataGroup = cj(this).attr('id'); //div id
- var fieldsetId = cj(this).children( ).attr('id'); // fieldset id
+ $('#activityCustom').children( ).each( function( ) {
+ $('#'+$(this).attr('id')+' div').each( function( ) {
+ if ($(this).children( ).attr('id')) {
+ var activityCustomdataGroup = $(this).attr('id'); //div id
+ var fieldsetId = $(this).children( ).attr('id'); // fieldset id
var splitFieldsetId = fieldsetId.split("\ 1");
var splitFieldsetLength = splitFieldsetId.length; //length of fieldset
var show = 0;
//setdefault activity custom data group if corresponding activity type is checked
- cj('#Activity div').each(function( ) {
- var checkboxId = cj(this).children().attr('id'); //activity type element name
+ $('#Activity div').each(function( ) {
+ var checkboxId = $(this).children().attr('id'); //activity type element name
if (document.getElementById( checkboxId ).checked ) {
var element = checkboxId.split('[');
var splitElement = element[1].split(']'); // get activity type id
}
});
if (show < 1) {
- cj('#'+activityCustomdataGroup).hide( );
+ $('#'+activityCustomdataGroup).hide( );
}
}
});
});
});
-</script>
-
-
-<script type="text/javascript">
function showCustomData(chkbox) {
if (document.getElementById(chkbox).checked) {
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
$('input[name=unclosed_case_id]', $form).crmSelect2({
placeholder: {/literal}'{ts escape="js"}- select case -{/ts}'{literal},
minimumInputLength: 1,
*}
{* this template is used for adding/editing Contact Type *}
-<h3>{if $action eq 1}{ts}New Contact Type{/ts}{elseif $action eq 2}{ts}Edit Contact Type{/ts}{else}{ts}Delete Contact Type{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-contact-type-form-block">
{if $action eq 8}
<div class="messages status no-popup">
{/if}
</tr>
<tr class="crm-contact-type-form-block-image_URL">
- <td class="label">{$form.image_URL.label}</td>
- <td>{$form.image_URL.html|crmAddClass:'huge40'}{help id="id-image_URL"}</td>
+ <td class="label">{$form.image_URL.label} {help id="id-image_URL"}</td>
+ <td>{$form.image_URL.html|crmAddClass:'huge40'}</td>
</tr>
<tr class="crm-contact-type-form-block-description">
<td class="label">{$form.description.label}
<div class="description">{ts}Put in the API method name. You need to enter pieces of full API function name as described in the documentation.{/ts}</div>
<script>
{literal}
+CRM.$(function($) {
function assembleName( ) {
// dunno yet
var apiName = "";
// building prefix
- if( cj('#api_action').val() == '' ) {
- cj('#fname').html( "<em>API name will start appearing here as you type in fields below.</em>" );
+ if( $('#api_action').val() == '' ) {
+ $('#fname').html( "<em>API name will start appearing here as you type in fields below.</em>" );
return;
}
- apiPrefix = 'api'
+ var apiPrefix = 'api'
// building entity
- var apiEntity = cj('#api_entity').val().replace( /([A-Z])/g, function($1) {
- return $1.toLowerCase();
- });
+ var apiEntity = $('#api_entity').val().replace( /([A-Z])/g, function($1) {
+ return $1.toLowerCase();
+ });
// building action
- var apiAction = cj('#api_action').val().replace(/(\_[a-z])/g, function($1) {return $1.toUpperCase().replace('_','');});
+ var apiAction = $('#api_action').val().replace(/(\_[a-z])/g, function($1) {return $1.toUpperCase().replace('_','');});
apiName = apiPrefix + '.' + apiEntity + '.' + apiAction;
- cj('#fname').text( apiName );
+ $('#fname').text( apiName );
}
// bind to different events to build API name live
- cj(document).ready( function() { assembleName() } );
- cj('#api_entity').change( function() { assembleName() } );
- cj('#api_action').keyup( function() { assembleName() } );
+ $('#api_entity').change(assembleName)
+ $('#api_action').change(assembleName).keyup(assembleName);
+ assembleName();
+});
{/literal}
</script>
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing location type *}
-<h3>{if $action eq 1}{ts}New Location Type{/ts}{elseif $action eq 2}{ts}Edit Location Type{/ts}{else}{ts}Delete Location Type{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-location-type-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{if $action eq 8}
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing email settings. *}
-<h3>{if $action eq 1}{ts}New Email Settings{/ts}{elseif $action eq 2}{ts}Edit Email Settings{/ts}{else}{ts}Delete Email Settings{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-mail-settings-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{if $action eq 8}
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing a saved mapping *}
-<h3>{if $action eq 1}{ts}New Tag{/ts}{elseif $action eq 2}{ts}Edit Mapping{/ts}{else}{ts}Delete Mapping{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-mapping-form-block">
{if $action eq 1 or $action eq 2 }
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<input class="crm-token-selector big" data-field="msg_text" />
{help id="id-token-text" tplFile=$tplFile file="CRM/Contact/Form/Task/Email.hlp"}
</div>
+ <div class="clear"></div>
<div class='text'>
{$form.msg_text.html|crmAddClass:huge}
<div class="description">{ts}Text formatted message.{/ts} {ts 1=$tokenDocsRepeated}Tokens may be included (%1).{/ts}</div>
{help id="id-token-html" tplFile=$tplFile isAdmin=$isAdmin editor=$editor file="CRM/Contact/Form/Task/Email.hlp"}
</div>
<div class="clear"></div>
- <div class='html'>
+ <div class='html resizable-textarea'>
{$form.msg_html.html}
<div class="description">{ts}You may optionally create an HTML formatted version of this message. It will be sent to contacts whose Email Format preference is 'HTML' or 'Both'.{/ts} {ts 1=$tokenDocsRepeated}Tokens may be included (%1).{/ts}</div>
</div>
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-{* this template is used for adding/editing/deleting activity type *}
<h3>{if $action eq 1}{ts}New Option Group{/ts}{elseif $action eq 2}{ts}Edit Option Group{/ts}{else}{ts}Delete Option Group{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-admin-optiongroup-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing options *}
-<h3>{if $action eq 1}{ts 1=$gLabel}New %1 Option{/ts}{elseif $action eq 8}{ts 1=$gLabel}Delete %1 Option{/ts}{else}{ts 1=$gLabel}Edit %1 Option{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-admin-options-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{if $action eq 8}
</div>
{if $action eq 1 or $action eq 2}
-<script type="text/javascript" >
-{literal}
+ <script type="text/javascript">
+ {literal}
function reload(refresh) {
- var paymentProcessorType = document.getElementById("payment_processor_type_id");
- var url = {/literal}"{$refreshURL}"{literal}
- var post = url + "&pp=" + paymentProcessorType.value;
- if( refresh ) {
- window.location= post;
- }
+ var paymentProcessorType = cj("#payment_processor_type_id");
+ var url = {/literal}"{$refreshURL}"{literal} + "&pp=" + paymentProcessorType.val();
+ paymentProcessorType.closest('form').attr('data-warn-changes', 'false');
+ window.location.href = url;
}
-{/literal}
- </script>
+ {/literal}
+ </script>
{/if}
<td class="label">{$form.wysiwyg_input_format.label}</td>
<td>
{$form.wysiwyg_input_format.html}{literal}
- <script type="text/javascript">cj(document).ready(function () {
- if (cj('#editor_id').val() == 4) {
- cj('#crm-preferences-display-form-block-wysiwyg_input_format').show();
+ <script type="text/javascript">
+ CRM.$(function($) {
+ if ($('#editor_id').val() == 4) {
+ $('#crm-preferences-display-form-block-wysiwyg_input_format').show();
}
- });</script>
+ });
+ </script>
{/literal}
<br/>
<span class="description">
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj("#contactEditBlocks").sortable({
- placeholder: 'ui-state-highlight',
- update: getSorting
- });
- cj("#contactEditOptions").sortable({
- placeholder: 'ui-state-highlight',
- update: getSorting
- });
- });
-
- function getSorting(e, ui) {
- var params = new Array();
- var y = 0;
- var items = cj("#contactEditBlocks li");
- if (items.length > 0) {
- for (var y = 0; y < items.length; y++) {
- var idState = items[y].id.split('-');
- params[y + 1] = idState[1];
+ function getSorting(e, ui) {
+ var params = [];
+ var y = 0;
+ var items = $("#contactEditBlocks li");
+ if (items.length > 0) {
+ for (var y = 0; y < items.length; y++) {
+ var idState = items[y].id.split('-');
+ params[y + 1] = idState[1];
+ }
}
- }
- items = cj("#contactEditOptions li");
- if (items.length > 0) {
- for (var x = 0; x < items.length; x++) {
- var idState = items[x].id.split('-');
- params[x + y + 1] = idState[1];
+ items = $("#contactEditOptions li");
+ if (items.length > 0) {
+ for (var x = 0; x < items.length; x++) {
+ var idState = items[x].id.split('-');
+ params[x + y + 1] = idState[1];
+ }
}
+ $('#contact_edit_preferences').val(params.toString());
}
- cj('#contact_edit_preferences').val(params.toString());
- }
- cj(document).ready(function() {
+
var invoicesKey = '{/literal}{$invoicesKey}{literal}';
var invoicing = '{/literal}{$invoicing}{literal}';
if (!invoicing) {
- cj('#user_dashboard_options_' + invoicesKey).attr("disabled", true);
+ $('#user_dashboard_options_' + invoicesKey).attr("disabled", true);
}
- cj("#invoice_help").insertAfter("label[for='user_dashboard_options_" + invoicesKey + "']");
+ $("#invoice_help").insertAfter("label[for='user_dashboard_options_" + invoicesKey + "']");
+
+ $("#contactEditBlocks, #contactEditOptions").sortable({
+ placeholder: 'ui-state-highlight',
+ update: getSorting
+ });
});
</script>
{/literal}
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing relationship types *}
-<h3>{if $action eq 1}{ts}New Relationship Type{/ts}{elseif $action eq 2}{ts}Edit Relationship Type{/ts}{elseif $action eq 8}{ts}Delete Relationship Type{/ts}{else}{ts}View Relationship Type{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-relationship-type-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{if $action eq 8}
var entityMapping = eval({/literal}{$entityMapping}{literal});
var recipientMapping = eval({/literal}{$recipientMapping}{literal});
- cj('#absolute_date_display').change( function() {
- if(cj('#absolute_date_display').val()) {
- cj('#relativeDate').hide();
- cj('#relativeDateRepeat').hide();
- cj('#repeatFields').hide();
- } else {
- cj('#relativeDate').show();
- cj('#relativeDateRepeat').show();
- }
- });
CRM.$(function($) {
- if (cj('#absolute_date_display').val()) {
- cj('#relativeDate').hide();
- cj('#relativeDateRepeat').hide();
- cj('#repeatFields').hide();
- }
+ $('#absolute_date_display').change(function() {
+ if($('#absolute_date_display').val()) {
+ $('#relativeDate').hide();
+ $('#relativeDateRepeat').hide();
+ $('#repeatFields').hide();
+ } else {
+ $('#relativeDate').show();
+ $('#relativeDateRepeat').show();
+ }
+ });
+
+ if ($('#absolute_date_display').val()) {
+ $('#relativeDate, #relativeDateRepeat, #repeatFields').hide();
+ }
- cj('#entity_0').change( function( ) {
- buildSelect("start_action_date");
+ $('#entity_0').change( function( ) {
+ buildSelect("start_action_date");
buildSelect("end_date");
buildSelect1("recipient");
- });
- });
+ showHideLimitTo();
+ });
- CRM.$(function($) {
- loadMsgBox();
- cj('#mode').change(function () {
loadMsgBox();
- });
+ $('#mode').change(loadMsgBox);
- showHideLimitTo();
- cj('#entity_0').change(function () {
showHideLimitTo();
+
+ if ($('#is_recipient_listing').val()) {
+ $('#recipientList').show();
+ }
+ else {
+ $('#recipientList').hide();
+ }
+ $('#recipient').change(populateRecipient);
});
- });
function loadMsgBox() {
if (cj('#mode').val() == 'Email' || cj('#mode').val() == 0){
}
}
- CRM.$(function($) {
- if (cj('#is_recipient_listing').val()) {
- cj('#recipientList').show();
- }
- else {
- cj('#recipientList').hide();
- }
- cj('#recipient').change(function () {
- populateRecipient();
- });
- });
-
function populateRecipient( ) {
var recipient = cj("#recipient option:selected").val();
var entity = cj("#entity_0 option:selected").val();
{literal}
<script type="text/javascript">
CRM.$(function($) {
- showHideMapAPIkey( cj('#mapProvider').val( ) );
-});
-function showHideMapAPIkey( mapProvider ) {
- if ( mapProvider && ( mapProvider == 'OpenStreetMaps' ) ) {
- cj('#Mapping tr.crm-map-form-block-mapAPIKey').hide( );
- } else {
- cj('#Mapping tr.crm-map-form-block-mapAPIKey').show( );
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
+ function showHideMapAPIkey() {
+ var mapProvider = $(this).val();
+ if ( !mapProvider || ( mapProvider === 'OpenStreetMaps' ) ) {
+ $('tr.crm-map-form-block-mapAPIKey', $form).hide( );
+ } else {
+ $('tr.crm-map-form-block-mapAPIKey', $form).show( );
+ }
}
-}
+ $('#mapProvider').each(showHideMapAPIkey).change(showHideMapAPIkey);
+});
</script>
{/literal}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var mailSetting = cj("input[name='outBound_option']:checked").val( );
+ var mailSetting = $("input[name='outBound_option']:checked").val( );
var archiveWarning = "{/literal}{ts escape='js'}WARNING: You are switching from a testing mode (Redirect to Database) to a live mode. Check Mailings > Archived Mailings, and delete any test mailings that are not in Completed status prior to running the mailing cron job for the first time. This will ensure that test mailings are not actually sent out.{/ts}{literal}"
- showHideMailOptions( cj("input[name='outBound_option']:checked").val( ) ) ;
+ showHideMailOptions( $("input[name='outBound_option']:checked").val( ) ) ;
function showHideMailOptions( value ) {
switch( value ) {
case "0":
- cj("#bySMTP").show( );
- cj("#bySendmail").hide( );
- cj("#_qf_Smtp_refresh_test").show( );
+ $("#bySMTP").show( );
+ $("#bySendmail").hide( );
+ $("#_qf_Smtp_refresh_test").show( );
if (mailSetting == '5') {
alert(archiveWarning);
}
break;
case "1":
- cj("#bySMTP").hide( );
- cj("#bySendmail").show( );
- cj("#_qf_Smtp_refresh_test").show( );
+ $("#bySMTP").hide( );
+ $("#bySendmail").show( );
+ $("#_qf_Smtp_refresh_test").show( );
if (mailSetting == '5') {
alert(archiveWarning);
}
break;
case "3":
- cj('.mailoption').hide();
- cj("#_qf_Smtp_refresh_test").show( );
+ $('.mailoption').hide();
+ $("#_qf_Smtp_refresh_test").show( );
if (mailSetting == '5') {
alert(archiveWarning);
}
break;
default:
- cj("#bySMTP").hide( );
- cj("#bySendmail").hide( );
- cj("#_qf_Smtp_refresh_test").hide( );
+ $("#bySMTP").hide( );
+ $("#bySendmail").hide( );
+ $("#_qf_Smtp_refresh_test").hide( );
}
}
- cj("input[name='outBound_option']").click( function( ) {
- showHideMailOptions( cj(this).val( ) );
+ $("input[name='outBound_option']").click( function( ) {
+ showHideMailOptions( $(this).val( ) );
});
});
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing a tag (admin) *}
-<h3>{if $action eq 1}{ts}New Tag {if $isTagSet}Set{/if}{/ts}{elseif $action eq 2}{ts}Edit Tag {if $isTagSet}Set{/if}{/ts}{else}{ts}Delete Tag {if $isTagSet}Set{/if}{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-tag-form-block">
{if $action eq 1 or $action eq 2 }
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<tr><td>Javascript</td><td><pre class="prettyprint linenums" id="api-json" title='javascript syntax'></pre></td></tr>
</table>
</div>
- <input type="submit" value="{ts}Execute{/ts}" class="form-submit"/>
+ <input type="submit" value="{ts}Execute{/ts}" class="crm-form-submit"/>
<pre id="api-result" class="linenums">
{ts}The result of api calls are displayed in this area.{/ts}
</pre>
<div class="messages status no-popup">
<table>
<tr><td class="tasklist">
- {ts 1='http://civicrm.org/civicrm/profile/create?reset=1&gid=15'}Have you registered this site at CiviCRM.org? If not, please help strengthen the CiviCRM ecosystem by taking a few minutes to <a href="%1" target="_blank">fill out the site registration form</a>. The information collected will help us prioritize improvements, target our communications and build the community. If you have a technical role for this site, be sure to check "Keep in Touch" to receive technical updates (a low volume mailing list).{/ts}</td>
+ {ts 1='https://civicrm.org/register-site'}Have you registered this site at CiviCRM.org? If not, please help strengthen the CiviCRM ecosystem by taking a few minutes to <a href="%1" target="_blank">fill out the site registration form</a>. The information collected will help us prioritize improvements, target our communications and build the community. If you have a technical role for this site, be sure to check "Keep in Touch" to receive technical updates (a low volume mailing list).{/ts}</td>
</tr>
</table>
</div>
<table class="selector">
<tr class="columnheader">
- <td colspan="2">{ts}Site Configuration{/ts}</td>
+ <td colspan="2">{ts}Site Configuration and Registration{/ts}</td>
</tr>
<tr class="even">
<td class="tasklist nowrap"><a href="{crmURL p="civicrm/admin/setting/localization" q="reset=1&civicrmDestination=`$destination`"}" title="{$linkTitle}">{ts}Localization{/ts}</a></td>
{/ts}</a></td>
<td>{ts}Enable the required CiviCRM components.(CiviContribute, CiviEvent etc.){/ts}</td>
</tr>
+ <tr class="even">
+ <td class="tasklist nowrap"><a href="https://civicrm.org/register-site" title="{ts}Register your site at CiviCRM.org. Opens in a new window.{/ts}" target="_blank">{ts}Register your site{/ts}</a></td>
+ <td>{ts}Register your site, join the community, and help CiviCRM remain a leading CRM for organizations worldwide.{/ts}</td>
+ </tr>
<tr class="columnheader">
<td colspan="2">{ts}Viewing and Editing Contacts{/ts}</td>
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-<div id="help">
- {ts}CiviCRM comes with 3 basic (built-in) contact types: Individual, Household, and Organization. You can create additional contact types based on these types to further differentiate contacts (for example you might create Student, Parent, Staff, and /or Volunteer types from the basic Individual type...).{/ts} {help id="id-contactSubtype-intro"}
-</div>
-
{if $action eq 1 or $action eq 2 or $action eq 8}
{include file="CRM/Admin/Form/ContactType.tpl"}
{else}
+ <div id="help">
+ {ts}CiviCRM comes with 3 basic (built-in) contact types: Individual, Household, and Organization. You can create additional contact types based on these types to further differentiate contacts (for example you might create Student, Parent, Staff, and /or Volunteer types from the basic Individual type...).{/ts} {help id="id-contactSubtype-intro"}
+ </div>
{if $rows}
<div>
{strip}
{/foreach}
</table>
{/strip}
- {if $action ne 1 and $action ne 2}
- <div class="action-link">
- <a href="{crmURL q="action=add&reset=1"}" class="button"><span><div class="icon add-icon"></div>{ts}Add Contact Type{/ts}</span></a>
- </div>
- {/if}
-</div>
-{else}
+ </div>
+ {else}
<div class="messages status no-popup">
- <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
- {capture assign=crmURL}{crmURL p='civicrm/admin/ContactType' q="action=add&reset=1"}{/capture}
- {ts 1=$crmURL}There are currently no Contact Types entered. You can <a href='%1'>add one</a>.{/ts}
+ <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+ {ts}None found.{/ts}
</div>
-{/if}
+ {/if}
+ <div class="action-link">
+ <a href="{crmURL q="action=add&reset=1"}" class="button"><span><div class="icon add-icon"></div>{ts}Add Contact Type{/ts}</span></a>
+ </div>
{/if}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('.collapsed').click( function( ) {
- var currentObj = cj( this );
+ $('.collapsed').click( function( ) {
+ var currentObj = $( this );
if ( currentObj.hasClass( 'expanded') ) {
currentObj.removeClass( 'expanded' );
currentObj.parent( ).parent( ).next( ).hide( );
{literal}
CRM.$(function($) {
- var tabIndex = cj('#tab_' + selectedTab).prevAll().length;
- cj("#mainTabContainer").tabs({active: tabIndex});
- cj(".crm-tab-button").addClass("ui-corner-bottom");
+ var tabIndex = $('#tab_' + selectedTab).prevAll().length;
+ $("#mainTabContainer").tabs({active: tabIndex});
+ $(".crm-tab-button").addClass("ui-corner-bottom");
});
{/literal}
</script>
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('.crm-extensions-refresh').click(function(event){
+ $('.crm-extensions-refresh').click(function(event){
event.stopPropagation();
CRM.alert('', '{/literal}{ts escape="js"}Refreshing...{/ts}{literal}', 'crm-msg-loading', {expires: 0});
CRM.api('Extension', 'refresh', {}, {
{if $rows}
<div id="ltype">
{strip}
- {include file="CRM/common/jsortable.tpl"}
- <table id="labelFormats" class="display">
+ <table id="labelFormats" class="row-highlight">
<thead>
<tr class="columnheader">
- <th class="sortable">{ts}Name{/ts}</th>
- <th class="sortable">{ts}Used for{/ts}</th>
- <th class="sortable">{ts}Grouping{/ts}</th>
+ <th>{ts}Name{/ts}</th>
+ <th>{ts}Used for{/ts}</th>
+ <th>{ts}Order{/ts}</th>
+ <th>{ts}Grouping{/ts}</th>
<th>{ts}Default?{/ts}</th>
<th>{ts}Reserved?{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
- <th class="hiddenElement"></th>
<th></th>
</tr>
</thead>
<tr id="row_{$row.id}" class="crm-labelFormat {cycle values="odd-row,even-row"} {$row.class}">
<td class="crm-labelFormat-name">{$row.label}</td>
<td class="crm-labelFormat-name">{$row.groupName}</td>
+ <td class="crm-labelFormat-order nowrap">{$row.weight}</td>
<td class="crm-labelFormat-description">{$row.grouping}</td>
<td class="crm-labelFormat-is_default">{if $row.is_default eq 1}<img
src="{$config->resourceBase}i/check.gif" alt="{ts}Default{/ts}"/>{/if} </td>
<td class="crm-labelFormat-is_reserved">{if $row.is_reserved eq 1}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}
</td>
- <td class="crm-labelFormat-order nowrap">{$row.order}</td>
- <td class="order hiddenElement">{$row.weight}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
</tr>
{/foreach}
{ts}Location types provide convenient labels to differentiate contacts' location(s). Administrators may define as many additional types as appropriate for your constituents (examples might be Main Office, School, Vacation Home...).{/ts}
</div>
-{if $rows}
-<div id="ltype">
+ {if $rows}
+ <div id="ltype">
{strip}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
</thead>
{foreach from=$rows item=row}
<tr id="location_type-{$row.id}" class="{cycle values="odd-row,even-row"} {$row.class} crm-entity {if NOT $row.is_active} disabled{/if}">
- <td class="crm-locationType-name">{$row.name}</td>
- <td class="crm-locationType-display_name">{$row.display_name}</td>
- <td class="crm-locationType-vcard_name">{$row.vcard_name}</td>
- <td class="crm-locationType-description">{$row.description}</td>
- <td id="row_{$row.id}_status" class="crm-locationType-is_active">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
- <td class="crm-locationType-is_default" >{if $row.is_default eq 1}<img src="{$config->resourceBase}i/check.gif" alt="{ts}Default{/ts}" />{/if} </td>
+ <td class="crmf-name">{$row.name}</td>
+ <td class="crmf-display_name crm-editable">{$row.display_name}</td>
+ <td class="crmf-vcard_name">{$row.vcard_name}</td>
+ <td class="crmf-description crm-editable">{$row.description}</td>
+ <td id="row_{$row.id}_status" class="crmf-is_active">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
+ <td class="crmf-is_default" >{if $row.is_default eq 1}<img src="{$config->resourceBase}i/check.gif" alt="{ts}Default{/ts}" />{/if} </td>
<td>{$row.action|replace:'xx':$row.id}</td>
</tr>
{/foreach}
</table>
{/strip}
-
- {if $action ne 1 and $action ne 2}
- <div class="action-link">
- <a href="{crmURL q="action=add&reset=1"}" id="newLocationType" class="button"><span>» {ts}New Location Type{/ts}</span></a>
- </div>
- {/if}
-</div>
-{else}
+ </div>
+ {else}
<div class="messages status no-popup">
- <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
- {capture assign=crmURL}{crmURL p='civicrm/admin/locationType' q="action=add&reset=1"}{/capture}
- {ts 1=$crmURL}There are no Location Types entered for this Contact. You can <a href='%1'>add one</a>.{/ts}
+ <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+ {ts}None found.{/ts}
</div>
-{/if}
+ {/if}
+ <div class="action-link">
+ <a href="{crmURL q="action=add&reset=1"}" id="newLocationType" class="button"><span><div class="icon add-icon"></div>{ts}Add Location Type{/ts}</span></a>
+ </div>
{/if}
</table>
{/strip}
- {if $action ne 1 and $action ne 2}
- <div class="action-link">
- <a href="{crmURL q="action=add&reset=1"}" id="newMailSettings" class="button"><span><div class="icon add-icon"></div>{ts}Add Mail Account{/ts}</span></a>
- </div>
- {/if}
</div>
</div>
{else}
<div class="messages status no-popup">
- <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
- {capture assign=crmURL}{crmURL p='civicrm/admin/mailSettings' q="action=add&reset=1"}{/capture}
- {ts 1=$crmURL}There are no Mail Settings present. You can <a href='%1'>add one</a>.{/ts}
+ <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+ {ts}None found.{/ts}
</div>
{/if}
+ <div class="action-link">
+ <a href="{crmURL q="action=add&reset=1"}" id="newMailSettings" class="button"><span><div class="icon add-icon"></div>{ts}Add Mail Account{/ts}</span></a>
+ </div>
{/if}
{if $selectedChild}selectedTab = '{$selectedChild}';{/if}
{literal}
CRM.$(function($) {
- var tabIndex = cj('#tab_' + selectedTab).prevAll().length
- cj("#mainTabContainer").tabs( {active: tabIndex} );
+ var tabIndex = $('#tab_' + selectedTab).prevAll().length
+ $("#mainTabContainer").tabs( {active: tabIndex} );
});
{/literal}
</script>
}
</style>
<script type="text/javascript">
- CRM.$(function($) {
- cj("#navigation-tree").jstree({
- plugins : [ "themes", "json_data", "dnd","ui", "crrm","contextmenu" ],
- json_data : {
- ajax:{
- dataType : "json",
- url : {/literal}"{crmURL p='civicrm/ajax/menu' h=0 q='key='}{crmKey name='civicrm/ajax/menu'}"{literal}
- },
- progressive_render: true
- },
- themes: {
- "theme": 'classic',
- "dots": true,
- "icons": false,
- "url": CRM.config.resourceBase + 'packages/jquery/plugins/jstree/themes/classic/style.css'
- },
- rules : {
- droppable : [ "tree-drop" ],
- multiple : true,
- deletable : "all",
- draggable : "all"
- },
- crrm : {
- move: {
- check_move: function(m) {
- var homeMenuId = {/literal}"{$homeMenuId}"{literal};
- if ( cj( m.r[0] ).attr('id').replace("node_","") == homeMenuId ||
- cj( m.o[0] ).attr('id').replace("node_","") == homeMenuId ) {
- return false;
- } else {
- return true;
+ CRM.$(function($) {
+ $("#navigation-tree").jstree({
+ plugins: [ "themes", "json_data", "dnd","ui", "crrm","contextmenu" ],
+ json_data: {
+ ajax:{
+ dataType: "json",
+ url: {/literal}"{crmURL p='civicrm/ajax/menu' h=0 q='key='}{crmKey name='civicrm/ajax/menu'}"{literal}
+ },
+ progressive_render: true
+ },
+ themes: {
+ "theme": 'classic',
+ "dots": true,
+ "icons": false,
+ "url": CRM.config.resourceBase + 'packages/jquery/plugins/jstree/themes/classic/style.css'
+ },
+ rules: {
+ droppable: [ "tree-drop" ],
+ multiple: true,
+ deletable: "all",
+ draggable: "all"
+ },
+ crrm: {
+ move: {
+ check_move: function(m) {
+ var homeMenuId = {/literal}"{$homeMenuId}"{literal};
+ if ( $( m.r[0] ).attr('id').replace("node_","") == homeMenuId ||
+ $( m.o[0] ).attr('id').replace("node_","") == homeMenuId ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
}
- }
- }
- },
- contextmenu : {
- items: {
- create : false,
- ccp : {
- label : "{/literal}{ts escape='js'}Edit{/ts}{literal}",
- visible : function (node, obj) { if(node.length != 1) return false;
- return obj.check("renameable", node); },
- action : function (node, obj) {
- var nid = cj(node).prop('id');
- var nodeID = nid.substr( 5 );
- var editURL = {/literal}"{crmURL p='civicrm/admin/menu' h=0 q='action=update&reset=1&id='}"{literal} + nodeID;
- CRM.loadForm(editURL).on('crmFormSuccess', function() {
- cj("#navigation-tree").jstree('refresh');
- cj("#reset-menu").show( );
- });
- },
- submenu : false
+ },
+ contextmenu: {
+ items: {
+ create: false,
+ ccp: {
+ label : "{/literal}{ts escape='js'}Edit{/ts}{literal}",
+ visible: function (node, obj) { if(node.length != 1) return false;
+ return obj.check("renameable", node); },
+ action: function (node, obj) {
+ var nid = $(node).prop('id');
+ var nodeID = nid.substr( 5 );
+ var editURL = {/literal}"{crmURL p='civicrm/admin/menu' h=0 q='action=update&reset=1&id='}"{literal} + nodeID;
+ CRM.loadForm(editURL).on('crmFormSuccess', function() {
+ $("#navigation-tree").jstree('refresh');
+ $("#reset-menu").show( );
+ });
+ },
+ submenu: false
+ }
}
- }
- }
-
- }).bind("rename.jstree", function ( e,node ) {
- var nodeID = node.rslt.obj.attr('id').replace("node_","");
- var newName = node.rslt.new_name;
- var postURL = {/literal}"{crmURL p='civicrm/ajax/menutree' h=0 q='key='}{crmKey name='civicrm/ajax/menutree'}"{literal};
- cj.get( postURL + '&type=rename&id=' + nodeID + '&data=' + newName,
- function (data) {
- cj("#reset-menu").show( );
}
- );
-
- }).bind("remove.jstree", function ( e,node ) {
- var menuName = node.rslt.obj.find('a').first( ).text( );
- var nodeID = node.rslt.obj.attr('id').replace("node_","");
- // don't allow deleting of home
- var homeMenuId = {/literal}"{$homeMenuId}"{literal};
- if ( nodeID == homeMenuId ) {
- var cannotDeleteMsg = {/literal}"{ts escape='js'}You cannot delete this menu item:{/ts}" + " "{literal} + menuName;
- CRM.alert( cannotDeleteMsg, {/literal}"{ts escape='js'}Cannot Delete{/ts}"{literal} );
- cj("#navigation-tree").jstree('refresh');
- return false;
- }
- var deleteMsg = {/literal}"{ts escape='js'}Are you sure you want to delete this menu item:{/ts}" + " "{literal} + menuName + {/literal}" ? {ts}This action can not be undone.{/ts}"{literal};
- var isDelete = confirm( deleteMsg );
- if ( isDelete ) {
+ }).bind("rename.jstree", function ( e,node ) {
+ var nodeID = node.rslt.obj.attr('id').replace("node_","");
+ var newName = node.rslt.new_name;
var postURL = {/literal}"{crmURL p='civicrm/ajax/menutree' h=0 q='key='}{crmKey name='civicrm/ajax/menutree'}"{literal};
- cj.get( postURL + '&type=delete&id=' + nodeID,
+ $.get( postURL + '&type=rename&id=' + nodeID + '&data=' + newName,
function (data) {
- cj("#reset-menu").show( );
+ $("#reset-menu").show( );
}
);
- } else {
- cj("#navigation-tree").jstree('refresh');
- }
- }).bind("move_node.jstree", function ( e,node ) {
- node.rslt.o.each(function (i) {
- var nodeID = node.rslt.o.attr('id').replace("node_","");
- var refID = node.rslt.np.attr('id').replace("node_","");
- if (isNaN( refID ) ){ refID =''; }
- var ps = node.rslt.cp+i;
- var postURL = {/literal}"{crmURL p='civicrm/ajax/menutree' h=0 q='key='}{crmKey name='civicrm/ajax/menutree'}"{literal};
- cj.get( postURL + '&type=move&id=' + nodeID + '&ref_id=' + refID + '&ps='+ps,
- function (data) {
- cj("#reset-menu").show( );
- });
+ }).bind("remove.jstree", function( e,node ) {
+ var menuName = node.rslt.obj.find('a').first( ).text( );
+ var nodeID = node.rslt.obj.attr('id').replace("node_","");
+
+ // don't allow deleting of home
+ var homeMenuId = {/literal}"{$homeMenuId}"{literal};
+ if ( nodeID == homeMenuId ) {
+ var cannotDeleteMsg = {/literal}"{ts escape='js'}You cannot delete this menu item:{/ts}" + " "{literal} + menuName;
+ CRM.alert( cannotDeleteMsg, {/literal}"{ts escape='js'}Cannot Delete{/ts}"{literal} );
+ $("#navigation-tree").jstree('refresh');
+ return false;
+ }
+ var deleteMsg = {/literal}"{ts escape='js'}Are you sure you want to delete this menu item:{/ts}" + " "{literal} + menuName + {/literal}" ? {ts}This action can not be undone.{/ts}"{literal};
+ var isDelete = confirm( deleteMsg );
+ if ( isDelete ) {
+ var postURL = {/literal}"{crmURL p='civicrm/ajax/menutree' h=0 q='key='}{crmKey name='civicrm/ajax/menutree'}"{literal};
+ $.get( postURL + '&type=delete&id=' + nodeID,
+ function (data) {
+ $("#reset-menu").show( );
+ }
+ );
+ } else {
+ $("#navigation-tree").jstree('refresh');
+ }
+
+ }).bind("move_node.jstree", function ( e,node ) {
+ node.rslt.o.each(function (i) {
+ var nodeID = node.rslt.o.attr('id').replace("node_","");
+ var refID = node.rslt.np.attr('id').replace("node_","");
+ if (isNaN( refID ) ){ refID =''; }
+ var ps = node.rslt.cp+i;
+ var postURL = {/literal}"{crmURL p='civicrm/ajax/menutree' h=0 q='key='}{crmKey name='civicrm/ajax/menutree'}"{literal};
+ $.get( postURL + '&type=move&id=' + nodeID + '&ref_id=' + refID + '&ps='+ps,
+ function (data) {
+ $("#reset-menu").show( );
+ });
+ });
});
- });
- $('#new-menu-item a.button')
- .on('click', CRM.popup)
- .on('crmPopupFormSuccess', function() {
+ $('#new-menu-item a.button')
+ .on('click', CRM.popup)
+ .on('crmPopupFormSuccess', function() {
$("#navigation-tree").jstree('refresh');
$("#reset-menu").show();
- });
- });
+ });
+ });
</script>
{/literal}
{/if}
<div class="crm-content-block crm-block">
{if $rows}
-{if $action ne 1 and $action ne 2 and $isLocked ne 1}
+{if $isLocked ne 1}
<div class="action-link">
<a href="{crmURL p="civicrm/admin/options/$gName" q='action=add&reset=1'}" class="button new-option"><span><div class="icon add-icon"></div>{ts 1=$gLabel}Add %1{/ts}</span></a>
</div>
{strip}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
{if $showComponent}
{if $showCounted}<th>{ts}Counted?{/ts}</th>{/if}
{if $showVisibility}<th>{ts}Visibility{/ts}</th>{/if}
<th id="nosort">{ts}Description{/ts}</th>
- <th id="order">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
{if $showIsDefault}<th>{ts}Default{/ts}</th>{/if}
<th>{ts}Reserved{/ts}</th>
<th>{ts}Enabled?{/ts}</th>
- <th class="hiddenElement"></th>
<th></th>
</tr>
</thead>
{/if}
{if $showVisibility}<td class="crm-admin-visibility_label">{$row.visibility_label}</td>{/if}
<td class="crm-admin-options-description crm-editable" data-field="description" data-type="textarea">{$row.description}</td>
- <td class="nowrap crm-admin-options-order">{$row.order}</td>
+ <td class="nowrap crm-admin-options-order">{$row.weight}</td>
{if $showIsDefault}
<td class="crm-admin-options-is_default" align="center">{if $row.is_default eq 1}<img src="{$config->resourceBase}i/check.gif" alt="{ts}Default{/ts}" />{/if} </td>
{/if}
<td class="crm-admin-options-is_reserved">{if $row.is_reserved eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td class="crm-admin-options-is_active" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</tbody>
{include file="CRM/common/crmeditable.tpl"}
{/strip}
- {if $action ne 1 and $action ne 2 and $isLocked ne 1}
- <div class="action-link">
- <a href="{crmURL p="civicrm/admin/options/$gName" q='action=add&reset=1'}" class="button new-option"><span><div class="icon add-icon"></div>{ts 1=$gLabel}Add %1{/ts}</span></a>
- </div>
- {/if}
</div>
{else}
<div class="messages status no-popup">
- <div class="icon inform-icon"></div>
- {capture assign=link}class="action-item" href="{crmURL p="civicrm/admin/options/$gName" q='action=add&reset=1'}"{/capture}
- {ts 1=$link}There are no option values entered. You can <a %1>add one</a>.{/ts}
+ <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+ {ts}None found.{/ts}
</div>
{/if}
+ {if $isLocked ne 1}
+ <div class="action-link">
+ <a href="{crmURL p="civicrm/admin/options/$gName" q='action=add&reset=1'}" class="button new-option"><span><div class="icon add-icon"></div>{ts 1=$gLabel}Add %1{/ts}</span></a>
+ </div>
+ {/if}
</div>
{/if}
{if $rows}
<div id="ltype">
{strip}
- {include file="CRM/common/jsortable.tpl"}
- <table id="pdfFormats" class="display">
+ <table id="pdfFormats" class="row-highlight">
<thead>
<tr class="columnheader">
- <th class="sortable">{ts}Name{/ts}</th>
- <th id="nosort">{ts}Description{/ts}</th>
+ <th>{ts}Name{/ts}</th>
+ <th>{ts}Description{/ts}</th>
<th >{ts}Default?{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
- <th class="hiddenElement"></th>
+ <th>{ts}Order{/ts}</th>
<th ></th>
</tr>
</thead>
<td class="crm-pdfFormat-name">{$row.name}</td>
<td class="crm-pdfFormat-description">{$row.description}</td>
<td class="crm-pdfFormat-is_default">{if $row.is_default eq 1}<img src="{$config->resourceBase}i/check.gif" alt="{ts}Default{/ts}" />{/if} </td>
- <td class="crm-pdfFormat-order nowrap">{$row.order}</td>
- <td class="order hiddenElement">{$row.weight}</td>
+ <td class="crm-pdfFormat-order nowrap">{$row.weight}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
</tr>
{/foreach}
</table>
{/strip}
- {if !($action eq 1 and $action eq 2)}
- <div class="action-link">
- <a href="{crmURL q="action=add&reset=1"}" class="button newRelationshipType"><span><div class="icon add-icon"></div>{ts}Add Relationship Type{/ts}</span></a>
- </div>
- {/if}
</div>
{else}
<div class="messages status no-popup">
- <div class="icon inform-icon"></div>
- {capture assign=crmURL}{crmURL p='civicrm/admin/reltype' q="action=add&reset=1"}{/capture}
- {ts 1=$crmURL}There are no relationship types present. You can <a href='%1'>add one</a>.{/ts}
+ <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+ {ts}None found.{/ts}
</div>
{/if}
+ <div class="action-link">
+ <a href="{crmURL q="action=add&reset=1"}" class="button newRelationshipType"><span><div class="icon add-icon"></div>{ts}Add Relationship Type{/ts}</span></a>
+ </div>
{/if}
$("input[name=select_merge_tag]", this).crmError(ts('Select a tag'));
return false;
}
- /* send synchronous request so that disabling any actions for slow servers*/
var postUrl = {/literal}"{crmURL p='civicrm/ajax/mergeTags' h=0 }"{literal};
var data = {fromId: tag.id, toId: toId, key:{/literal}"{crmKey name='civicrm/ajax/mergeTags'}"{literal}};
- cj.ajax({
+ $.ajax({
type: "POST",
url: postUrl,
data: data,
//@todo functions partially moved from tpl but still need an enclosure / cleanup
// jslinting etc
CRM.$(function($) {
- cj('.selector-rows').change(function () {
+ $('.selector-rows').change(function () {
var options = {
'url': CRM.url('civicrm/ajax/batch')
};
- cj("#Entry").ajaxSubmit(options);
+ $("#Entry").ajaxSubmit(options);
// validate rows
- checkColumns(cj(this));
+ checkColumns($(this));
});
- cj('input[name^="soft_credit_contact["]').change(function(){
- var rowNum = cj(this).attr('id').replace('soft_credit_contact_','');
- var totalAmount = cj('#field_'+rowNum+'_total_amount').val();
+ $('input[name^="soft_credit_contact["]').change(function(){
+ var rowNum = $(this).attr('id').replace('soft_credit_contact_','');
+ var totalAmount = $('#field_'+rowNum+'_total_amount').val();
//assign total amount as default soft credit amount
- cj('#soft_credit_amount_'+ rowNum).val(totalAmount);
+ $('#soft_credit_amount_'+ rowNum).val(totalAmount);
//assign soft credit type default value if any
- cj('#field_'+rowNum+'_soft_credit_type').val(cj('#sct_default_id').val());
+ $('#field_'+rowNum+'_soft_credit_type').val($('#sct_default_id').val());
});
// validate rows
//calculate the actual total for the batch
calculateActualTotal();
- cj('input[id*="_total_amount"]').bind('keyup change', function () {
+ $('input[id*="_total_amount"]').bind('keyup change', function () {
calculateActualTotal();
});
hideSendReceipt();
// hide the receipt date if send receipt is checked
- cj('input[id*="][send_receipt]"]').change(function () {
- showHideReceipt(cj(this));
+ $('input[id*="][send_receipt]"]').change(function () {
+ showHideReceipt($(this));
});
}
else{
- cj('select[id^="member_option_"]').each(function () {
- if (cj(this).val() == 1) {
- cj(this).prop('disabled', true);
+ $('select[id^="member_option_"]').each(function () {
+ if ($(this).val() == 1) {
+ $(this).prop('disabled', true);
}
});
// set payment info accord to membership type
- cj('select[id*="_membership_type_0"]').change(function () {
- setPaymentBlock(cj(this), null);
+ $('select[id*="_membership_type_0"]').change(function () {
+ setPaymentBlock($(this), null);
});
- cj('select[id*="_membership_type_1"]').change(function () {
- setPaymentBlock(cj(this), cj(this).val());
+ $('select[id*="_membership_type_1"]').change(function () {
+ setPaymentBlock($(this), $(this).val());
});
}
// line breaks between radio buttons and checkboxes
- cj('input.form-radio').next().after('<br />');
- cj('input.form-checkbox').next().after('<br />');
+ $('input.form-radio').next().after('<br />');
+ $('input.form-checkbox').next().after('<br />');
//set the focus on first element
- cj('#primary_contact_1').focus();
+ $('#primary_contact_1').focus();
});
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('.selector-rows').change(function () {
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
+ $('.selector-rows').change(function () {
var options = {
'url': {/literal}"{crmURL p='civicrm/ajax/batch' h=0}"{literal}
};
- cj("#Entry").ajaxSubmit(options);
+ $($form).ajaxSubmit(options);
});
- cj('#crm-container').on('keyup change', '*.selector-rows', function () {
+ $('#crm-container').on('keyup change', '*.selector-rows', function () {
// validate rows
- checkColumns(cj(this));
+ checkColumns($(this));
});
// validate rows
//calculate the actual total for the batch
calculateActualTotal();
- cj('input[id*="_total_amount"]').bind('keyup change', function () {
+ $('input[id*="_total_amount"]').bind('keyup change', function () {
calculateActualTotal();
});
hideSendReceipt();
// hide the receipt date if send receipt is checked
- cj('input[id*="][send_receipt]"]').change(function () {
- showHideReceipt(cj(this));
+ $('input[id*="][send_receipt]"]').change(function () {
+ showHideReceipt($(this));
});
{/literal}{else}{literal}
- cj('select[id^="member_option_"]').each(function () {
- if (cj(this).val() == 1) {
- cj(this).prop('disabled', true);
+ $('select[id^="member_option_"]').each(function () {
+ if ($(this).val() == 1) {
+ $(this).prop('disabled', true);
}
});
// set payment info accord to membership type
- cj('select[id*="_membership_type_0"]').change(function () {
- setPaymentBlock(cj(this), null);
+ $('select[id*="_membership_type_0"]').change(function () {
+ setPaymentBlock($(this), null);
});
- cj('select[id*="_membership_type_1"]').change(function () {
- setPaymentBlock(cj(this), cj(this).val());
+ $('select[id*="_membership_type_1"]').change(function () {
+ setPaymentBlock($(this), $(this).val());
});
{/literal}{/if}{literal}
// line breaks between radio buttons and checkboxes
- cj('input.form-radio').next().after('<br />');
- cj('input.form-checkbox').next().after('<br />');
+ $('input.form-radio').next().after('<br />');
+ $('input.form-checkbox').next().after('<br />');
//set the focus on first element
- cj('#primary_contact_1').focus();
+ $('#primary_contact_1').focus();
});
var contactId = cj(contactHiddenElement).val();
var returnProperties = '';
- var profileFields = new Array();
+ var profileFields = [];
{/literal}
{if $contactFields}
{foreach from=$contactFields item=val key=fldName}
<label for="qa_email">{ts}Email:{/ts}</label>
</div>
<div>
- <input type="text" name="email[1][email]" id="qa_email" class="form-text" maxlength="64" />
+ <input type="email" name="email[1][email]" id="qa_email" class="form-text" maxlength="64" />
</div>
<input type="hidden" name="email[1][location_type_id]" value="{$primaryLocationType}" />
<input type="hidden" name="qfKey" value="{crmKey name='CRM_Contact_Form_Contact' addSequence=1}" />
</div>
-<div class="form-item"><input type="submit" name="_qf_Contact_next" value="{ts}Save{/ts}" class="form-submit" /></div>
+<div class="form-item"><input type="submit" name="_qf_Contact_next" value="{ts}Save{/ts}" class="crm-form-submit" /></div>
</form>
</div>
<div class="block-crm crm-container">
<form method="post" id="id_fulltext_search">
<div style="margin-bottom: 8px;">
- <input type="text" name="text" id='text' value="" style="width: 10em;" /> <input type="submit" name="submit" id="fulltext_submit" value="{ts}Go{/ts}" class="form-submit"/ onclick='submitForm();'>
+ <input type="text" name="text" id='text' value="" style="width: 10em;" /> <input type="submit" name="submit" id="fulltext_submit" value="{ts}Go{/ts}" class="crm-form-submit"/ onclick='submitForm();'>
<input type="hidden" name="qfKey" value="{crmKey name='CRM_Contact_Controller_Search' addSequence=1}" />
</div>
<select class="form-select" id="fulltext_table" name="fulltext_table">
{literal}
<script type="text/javascript">
CRM.$(function($) {
- if (cj('#crm-recently-viewed').offset().left > 150) {
- cj('#crm-recently-viewed').removeClass('left').addClass('right');
- }
+ if ($('#crm-recently-viewed').offset().left > 150) {
+ $('#crm-recently-viewed').removeClass('left').addClass('right');
+ }
});
</script>
{/literal}
{literal}
<script type="text/javascript">
-cj( document ).ready( function( ) {
+ CRM.$(function($) {
{/literal}{if $customDataSubType}
- CRM.buildCustomData( '{$customDataType}', {$customDataSubType} );
- {else}
- CRM.buildCustomData( '{$customDataType}' );
- {/if}
+ CRM.buildCustomData( '{$customDataType}', {$customDataSubType} );
+ {else}
+ CRM.buildCustomData( '{$customDataType}' );
+ {/if}
{literal}
-});
+ });
</script>
{/literal}
var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/rest' h=0 q='snippet=4&className=CRM_Campaign_Page_AJAX&fnName=voterList' }"{literal};
var searchVoterFor = {/literal}'{$searchVoterFor}'{literal};
- CRM.$( 'table.gotvVoterRecords', 'form#{/literal}{$form.formName}{literal}').dataTable({
+ CRM.$( 'table.gotvVoterRecords', 'form.{/literal}{$form.formClass}{literal}').dataTable({
"bFilter" : false,
"bAutoWidth" : false,
"bProcessing": true,
var dataLength = aoData.length;
var count = 1;
- var searchCriteria = new Array( 'campaign_search_voter_for' );
+ var searchCriteria = ['campaign_search_voter_for'];
//get the search criteria.
var searchParams = {/literal}{$searchParams}{literal};
//show edit profile field links
CRM.$(function($) {
// show edit for both contact and activity profile
- cj('select[id$="profile_id"]').change(function () {
- buildLinks(cj(this), cj(this).val());
+ $('select[id$="profile_id"]').change(function () {
+ buildLinks($(this), $(this).val());
});
// make sure we set edit links for both profiles when form loads
- cj('select[id$="profile_id"]').each(function (e) {
- buildLinks(cj(this), cj(this).val());
+ $('select[id$="profile_id"]').each(function (e) {
+ buildLinks($(this), $(this).val());
});
});
</script>
{literal}
<script type="text/javascript">
-cj(document).ready(function(){
- cj('#selector tr:even').addClass('odd-row ');
- cj('#selector tr:odd ').addClass('even-row');
+CRM.$(function($) {
+ $('#selector tr:even').addClass('odd-row ');
+ $('#selector tr:odd ').addClass('even-row');
});
</script>
</tr>
<script type="text/javascript">
- var showRows = new Array({$showBlocks});
- var hideBlocks = new Array({$hideBlocks});
+ var showRows = [{$showBlocks}];
+ var hideBlocks = [{$hideBlocks}];
var rowcounter = 0;
var surveyId = {if $surveyId}{$surveyId}{else}''{/if};
}, "json" );
}
- cj(document).ready( function( ) {
+ CRM.$(function($) {
showOptionSelect( );
});
noRecordFoundMsg += '<div class="qill">';
var count = 0;
- var searchQill = new Array();
+ var searchQill = [];
for (param in searchParams) {
if (val = CRM.$('#' + param).val()) {
if (param == 'status_id') {
var dataLength = aoData.length;
var count = 1;
- var searchCriteria = new Array();
+ var searchCriteria = [];
//get the search criteria.
var searchParams = {/literal}{$searchParams}{literal};
noRecordFoundMsg += '<div class="qill">';
var count = 0;
- var searchQill = new Array( );
+ var searchQill = [];
for ( param in searchParams ) {
if ( val = CRM.$( '#' + param ).val( ) ) {
if ( param == 'petition_campaign_id' ) val = campaigns[val];
var dataLength = aoData.length;
var count = 1;
- var searchCriteria = new Array( );
+ var searchCriteria = [];
//get the search criteria.
var searchParams = {/literal}{$searchParams}{literal};
noRecordFoundMsg += '<div class="qill">';
var count = 0;
- var searchQill = new Array( );
+ var searchQill = [];
for ( param in searchParams ) {
if ( val = CRM.$( '#' + param ).val( ) ) {
if ( param == 'activity_type_id' ) val = surveyTypes[val];
var dataLength = aoData.length;
var count = 1;
- var searchCriteria = new Array( );
+ var searchCriteria = [];
//get the search criteria.
var searchParams = {/literal}{$searchParams}{literal};
//show edit profile field links
CRM.$(function($) {
// show edit for profile
- cj('select[id="profile_id"]').change( function( ) {
- buildLinks( cj(this), cj(this).val());
+ $('select[id="profile_id"]').change( function( ) {
+ buildLinks( $(this), $(this).val());
});
// show edit links on form loads
- var profileField = cj('select[id="profile_id"]');
+ var profileField = $('select[id="profile_id"]');
buildLinks( profileField, profileField.val());
});
</script>
{include file="CRM/common/customData.tpl" includeWysiwygEditor=true}
{literal}
<script type="text/javascript">
- cj(document).ready(function() {
+ CRM.$(function($) {
{/literal}
CRM.buildCustomData( 'Survey' );
{literal}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table class="display">
+ <table class="row-highlight">
<thead>
<tr>
<th>
<th>
{ts}Value{/ts}
</th>
- <th id="nosort">{ts}Description{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Description{/ts}</th>
+ <th>{ts}Order{/ts}</th>
<th>{ts}Reserved{/ts}</th>
<th>{ts}Enabled?{/ts}</th>
<th></th>
- <th class="hiddenElement"></th>
</tr>
</thead>
{foreach from=$rows item=row}
<td class="crm-admin-options-label crm-editable" data-field="label">{$row.label}</td>
<td class="crm-admin-options-value">{$row.value}</td>
<td class="crm-admin-options-description">{$row.description}</td>
- <td class="nowrap crm-admin-options-order">{$row.order}</td>
+ <td class="nowrap crm-admin-options-order">{$row.weight}</td>
<td class="crm-admin-options-is_reserved">{if $row.is_reserved eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td class="crm-admin-options-is_active" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</table>
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('.crm-with-contact').click(function(){
- cj('#with-contacts-widget').toggle();
- cj('#with-clients').toggle();
+ $('.crm-with-contact').click(function() {
+ $('#with-contacts-widget').toggle();
+ $('#with-clients').toggle();
return false;
});
});
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
$('input[name=link_to_case_id]', $form).crmSelect2({
placeholder: {/literal}'{ts escape="js"}- select case -{/ts}'{literal},
minimumInputLength: 1,
$el.load(CRM.url('civicrm/case/changeactivitystatus'), data, function() {
$el.unblock().trigger('crmLoad');
- cj("#activity_change_status").val(current_status_id);
+ $("#activity_change_status").val(current_status_id);
});
CRM.confirm({
</td>
<td style="vertical-align: bottom;">
{assign var=caseid value=$caseID}
- <span class="crm-button"><input class="form-submit default" name="_qf_Basic_refresh" value="Search" type="button" onclick="buildCaseActivities( true,{$caseid} )"; /></span>
+ <span class="crm-button"><input class="crm-form-submit default" name="_qf_Basic_refresh" value="Search" type="button" onclick="buildCaseActivities( true,{$caseid} )"; /></span>
</td>
</tr>
<tr>
return {results: response};
}
}
- }).change(function() {
- if ($(this).val()) {
- selectedCaseId = $(this).val();
- contactId = $(this).select2('data').extra.contact_id;
- }
});
});
},
buttons: {
"{/literal}{ts escape='js'}Save{/ts}{literal}": function() {
+ var selectedCaseId = cj('input[name=file_on_case_unclosed_case_id]', '#fileOnCaseDialog').val();
+ var contactId = cj('input[name=file_on_case_unclosed_case_id]', '#fileOnCaseDialog').select2('data').extra.contact_id;
var subject = cj("#file_on_case_activity_subject").val( );
var targetContactId = cj("#file_on_case_target_contact_id").val( );
{include file="CRM/common/customData.tpl"}
{literal}
<script type="text/javascript">
- cj(document).ready(function() {
- var customDataSubType = cj('#case_type_id').val();
+ CRM.$(function($) {
+ var customDataSubType = $('#case_type_id').val();
if ( customDataSubType ) {
CRM.buildCustomData( {/literal}'{$customDataType}'{literal}, customDataSubType );
} else {
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-{if $context EQ 'Search'}
- {include file="CRM/common/pager.tpl" location="top"}
-{/if}
+{include file="CRM/common/pager.tpl" location="top"}
{strip}
<table class="caseSelector">
<tr class="columnheader">
<th scope="col" title="Select Rows">{$form.toggleSelect.html}</th>
{/if}
- {if $single}
- <th scope="col">{ts}ID{/ts}</th>
- {else}
- <th></th>
- {/if}
+ <th></th>
{foreach from=$columnHeaders item=header}
<th scope="col">
{assign var=cbName value=$row.checkbox}
<td>{$form.$cbName.html}</td>
{/if}
- {if $single }
- <td class="crm-case-id crm-case-id_{$row.case_id}">{$row.case_id}</td>
- {/if}
- {if $context != 'case'}
<td class="crm-case-id crm-case-id_{$row.case_id}">
<span id="{$list}{$row.case_id}_show">
<a href="#" onclick="cj('#caseDetails{$list}{$row.case_id}').show();
cj('#{$list}{$row.case_id}_show').hide();
cj('#minus{$list}{$row.case_id}_hide').show();
cj('#{$list}{$row.case_id}_hide').show();
- return false;"><img src="{$config->resourceBase}i/TreePlus.gif" class="action-icon" alt="{ts}open section{/ts}"/></a>
+ return false;"><img src="{$config->resourceBase}i/TreePlus.gif" class="action-icon" alt="{ts}Show recent activities{/ts}"/></a>
</span>
<span id="minus{$list}{$row.case_id}_hide">
<a href="#" onclick="cj('#caseDetails{$list}{$row.case_id}').hide();
cj('#{$list}{$row.case_id}_show').show();
cj('#{$list}{$row.case_id}_hide').hide();
cj('#minus{$list}{$row.case_id}_hide').hide();
- return false;"><img src="{$config->resourceBase}i/TreeMinus.gif" class="action-icon" alt="{ts}open section{/ts}"/></a>
+ return false;"><img src="{$config->resourceBase}i/TreeMinus.gif" class="action-icon" alt="{ts}Hide activities{/ts}"/></a>
</td>
- {/if}
{if !$single}
<td class="crm-case-id crm-case-id_{$row.case_id}"><a href="{crmURL p='civicrm/contact/view' q="reset=1&cid=`$row.contact_id`"}" title="{ts}view contact details{/ts}">{$row.sort_name}</a>{if $row.phone}<br /><span class="description">{$row.phone}</span>{/if}<br /><span class="description">{ts}Case ID{/ts}: {$row.case_id}</span></td>
{$row.case_scheduled_activity_type}<br />{$row.case_scheduled_activity_date|crmDate}{else}---{/if}</td>
<td>{$row.action|replace:'xx':$row.case_id}{$row.moreActions|replace:'xx':$row.case_id}</td>
</tr>
-{if $context != 'case'}
<tr id="{$list}{$row.case_id}_hide" class='{$rowClass}'>
<td>
</td>
cj('#{$list}{$row.case_id}_hide').hide();
cj('#minus{$list}{$row.case_id}_hide').hide();
</script>
-{/if}
{/foreach}
{* Dashboard only lists 10 most recent cases. *}
</table>
{/strip}
-{if $context EQ 'Search'}
- {include file="CRM/common/pager.tpl" location="bottom"}
-{/if}
+{include file="CRM/common/pager.tpl" location="bottom"}
{* Build case details*}
{literal}
<script type="text/javascript">
-function buildCaseDetails( caseId, contactId )
-{
- var dataUrl = {/literal}"{crmURL p='civicrm/case/details' h=0 q='snippet=4&caseId='}{literal}" + caseId +'&cid=' + contactId;
- cj.ajax({
- url : dataUrl,
- dataType: "html",
- timeout : 5000, //Time in milliseconds
- success : function( data ){
- cj( '#caseDetails' + caseId ).html( data );
- },
- error : function( XMLHttpRequest, textStatus, errorThrown ) {
- console.error( 'Error: '+ textStatus );
- }
- });
+function buildCaseDetails( caseId, contactId ) {
+ var dataUrl = {/literal}"{crmURL p='civicrm/case/details' h=0 q='caseId='}{literal}" + caseId +'&cid=' + contactId;
+ CRM.loadPage(dataUrl, {target: '#caseDetails' + caseId});
}
</script>
{/foreach}
{/foreach}
<div id="case_custom_edit"></div>
-
-{*currently delete is available only for tab custom data*}
-{if $groupId}
-<script type="text/javascript">
- {literal}
- function hideStatus(valueID, groupID) {
- cj('#statusmessg_' + groupID + '_' + valueID).hide( );
- }
-
- function showDelete(valueID, elementID, groupID, contactID) {
- var confirmMsg = '{/literal}{ts escape='js'}Are you sure you want to delete this record?{/ts}{literal} <a href="#" onclick="deleteCustomValue( ' + valueID + ',\'' + elementID + '\',' + groupID + ',' + contactID + ' ); return false;" style="text-decoration: underline;">{/literal}{ts escape='js'}Yes{/ts}{literal}</a> <a href="#" onclick="hideStatus( ' + valueID + ', ' + groupID + ' ); return false;" style="text-decoration: underline;">{/literal}{ts escape='js'}No{/ts}{literal}</a>';
- cj('tr#statusmessg_' + groupID + '_' + valueID).show( ).children().find('span').html( confirmMsg );
- }
-
- function deleteCustomValue( valueID, elementID, groupID, contactID ) {
- var postUrl = {/literal}"{crmURL p='civicrm/ajax/customvalue' h=0 }"{literal};
- var request = cj.ajax({
- type: "POST",
- data: "valueID=" + valueID + "&groupID=" + groupID +"&contactId=" + contactID + "&key={/literal}{crmKey name='civicrm/ajax/customvalue'}{literal}",
- url: postUrl,
- success: function(html){
- cj('#'+ elementID).hide();
- hideStatus(valueID, groupID);
- var element = cj( '.ui-tabs-nav #tab_custom_' + groupID + ' a' );
- cj(element).html(cj(element).attr('title') + ' ('+ html+') ');
- }
- });
- CRM.status({success: '{/literal}{ts escape="js"}Record Deleted{/ts}{literal}'}, request);
- }
- {/literal}
-</script>
-{/if}
-
{$form.external_identifier.html}
</td>
{if $contactId}
- <td><label for="internal_identifier_display">{ts}CiviCRM ID{/ts}{help id="id-internal-id"}</label><br /><input id="internal_identifier_display" type="text" class="form-text eight" size="8" disabled="disabled" value="{$contactId}"></td>
+ <td>
+ <label for="internal_identifier_display">{ts}CiviCRM ID{/ts} {help id="id-internal-id"}</label><br />
+ <input id="internal_identifier_display" type="text" class="crm-form-text six" size="6" readonly="readonly" value="{$contactId}">
+ </td>
{/if}
</tr>
</table>
<script type="text/javascript" >
CRM.$(function($) {
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
var action = "{/literal}{$action}{literal}";
$('.crm-accordion-body').each( function() {
return true;
});
{/literal}{/if}{literal}
+
+ // Handle delete of multi-record custom data
+ $form.on('click', '.crm-custom-value-del', function(e) {
+ e.preventDefault();
+ var $el = $(this),
+ msg = '{/literal}{ts escape="js"}The record will be deleted immediately. This action cannot be undone.{/ts}{literal}';
+ CRM.confirm({title: $el.attr('title'), message: msg})
+ .on('crmConfirm:yes', function() {
+ var url = CRM.url('civicrm/ajax/customvalue');
+ var request = $.post(url, $el.data('post'));
+ CRM.status({success: '{/literal}{ts escape="js"}Record Deleted{/ts}{literal}'}, request);
+ var addClass = '.add-more-link-' + $el.data('post').groupID;
+ $el.closest('div.crm-custom-accordion').remove();
+ $('div' + addClass).last().show();
+ });
+ });
});
</script>
CRM.$(function($) {
var fields = new Array( 'postal_greeting', 'addressee', 'email_greeting');
for ( var i = 0; i < 3; i++ ) {
- cj( "#" + fields[i] + "_id").change( function( ) {
- var fldName = cj(this).attr( 'id' );
- if ( cj(this).val( ) == 4 ) {
- cj("#greetings1").show( );
- cj("#greetings2").show( );
- cj( "#" + fldName + "_html").show( );
- cj( "#" + fldName + "_label").show( );
+ $( "#" + fields[i] + "_id").change( function( ) {
+ var fldName = $(this).attr( 'id' );
+ if ( $(this).val( ) == 4 ) {
+ $("#greetings1").show( );
+ $("#greetings2").show( );
+ $( "#" + fldName + "_html").show( );
+ $( "#" + fldName + "_label").show( );
} else {
- cj( "#" + fldName + "_html").hide( );
- cj( "#" + fldName + "_label").hide( );
- cj( "#" + fldName.slice(0, -3) + "_custom" ).val('');
+ $( "#" + fldName + "_html").hide( );
+ $( "#" + fldName + "_label").hide( );
+ $( "#" + fldName.slice(0, -3) + "_custom" ).val('');
}
});
}
});
function showGreeting( element ) {
- cj("#" + element ).show( );
- cj("#" + element + '_display' ).hide( );
+ $("#" + element ).show( );
+ $("#" + element + '_display' ).hide( );
// TO DO fix for custom greeting
var fldName = '#' + element + '_id';
- if ( cj( fldName ).val( ) == 4 ) {
- cj("#greetings1").show( );
- cj("#greetings2").show( );
- cj( fldName + "_html").show( );
- cj( fldName + "_label").show( );
+ if ( $( fldName ).val( ) == 4 ) {
+ $("#greetings1").show( );
+ $("#greetings2").show( );
+ $( fldName + "_html").show( );
+ $( fldName + "_label").show( );
}
}
+--------------------------------------------------------------------+
*}
-<script type="text/javascript">var showTab = Array();</script>
{foreach from=$groupTree item=cd_edit key=group_id}
{if $cd_edit.is_multiple eq 1}
{assign var=tableID value=$cd_edit.table_id}
{assign var=divName value=$group_id|cat:"_$tableID"}
<div></div>
- <div id="{$cd_edit.name|cat:'_$divName'}"
+ <div
class="crm-accordion-wrapper crm-custom-accordion {if $cd_edit.collapse_display and !$skipTitle}collapsed{/if}">
{else}
<div id="{$cd_edit.name}"
{if $cd_edit.is_multiple eq 1}
{if $cd_edit.table_id}
<table class="no-border">
- <tr id="statusmessg_{$group_id|cat:"_$tableID"}" class="hiddenElement">
- <td><span class="success-status"></span></td>
- </tr>
<tr>
- <div class="crm-submit-buttons">
- <a href="#"
- onclick="showDelete( {$tableID}, '{$cd_edit.name}_{$group_id|cat:"_$tableID"}', {$group_id}, {$contactId} ); return false;"
- class="button delete-button" title="{ts 1=$cv_edit.title}Delete this %1 record{/ts}">
- <span><div class="icon delete-icon"></div>{ts}Delete{/ts}</span>
- </a>
- </div>
+ <a href="#" class="crm-hover-button crm-custom-value-del" title="{ts 1=$cd_edit.title}Delete %1{/ts}"
+ data-post='{ldelim}"valueID": "{$tableID}", "groupID": "{$group_id}", "contactId": "{$contactId}", "key": "{crmKey name='civicrm/ajax/customvalue'}"{rdelim}'>
+ <span class="icon delete-icon"></span> {ts}Delete{/ts}
+ </a>
<!-- crm-submit-buttons -->
</tr>
</table>
{/foreach}
{include file="CRM/common/customData.tpl"}
- <script type="text/javascript">
- {literal}
-
- function hideStatus(valueID, groupID) {
- cj('#statusmessg_' + groupID + '_' + valueID).hide();
- }
-
- function showDelete(valueID, elementID, groupID, contactID) {
- var confirmMsg = '{/literal}{ts escape='js'}Are you sure you want to delete this record?{/ts}{literal} <a href="#" onclick="deleteCustomValue( ' + valueID + ',\'' + elementID + '\',' + groupID + ',' + contactID + ' ); return false;" style="text-decoration: underline;">{/literal}{ts escape='js'}Yes{/ts}{literal}</a> <a href="#" onclick="hideStatus( ' + valueID + ', ' + groupID + ' ); return false;" style="text-decoration: underline;">{/literal}{ts escape='js'}No{/ts}{literal}</a>';
- cj('tr#statusmessg_' + groupID + '_' + valueID).show().children().find('span').html(confirmMsg);
- }
-
- function deleteCustomValue(valueID, elementID, groupID, contactID) {
- var postUrl = {/literal}"{crmURL p='civicrm/ajax/customvalue' h=0 }"{literal},
- request = cj.ajax({
- type: "POST",
- data: "valueID=" + valueID + "&groupID=" + groupID + "&contactId=" + contactID + "&key={/literal}{crmKey name='civicrm/ajax/customvalue'}{literal}",
- url: postUrl,
- success: function (html) {
- cj('#' + elementID).hide();
- hideStatus(valueID, groupID);
- var element = cj('.ui-tabs-nav #tab_custom_' + groupID + ' a');
- cj(element).html(cj(element).attr('title') + ' (' + html + ') ');
- }
- });
- CRM.status({success: '{/literal}{ts escape="js"}Record Deleted{/ts}{literal}'}, request);
- }
-
- {/literal}
- </script>
{include file="CRM/Form/attachmentjs.tpl"}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- if (cj('#update_modified_date').length == 0) {
+ if ($('#update_modified_date').length == 0) {
return;
}
- cj('<br>')
- .appendTo(cj('#update_modified_date'));
- cj('<button>')
+ $('<br>')
+ .appendTo($('#update_modified_date'));
+ $('<button>')
.text("{/literal}{ts}Save Anyway{/ts}{literal}")
.click(function() {
- cj('input[name="modified_date"]').val(
- cj('#update_modified_date').attr('data:latest_modified_date')
+ $('input[name="modified_date"]').val(
+ $('#update_modified_date').attr('data:latest_modified_date')
);
- cj('.crm-form-block .form-submit.default').first().click();
+ $('.crm-form-block .crm-form-submit.default').first().click();
return false;
})
- .appendTo(cj('#update_modified_date'))
+ .appendTo($('#update_modified_date'))
;
- cj('<button>')
+ $('<button>')
.text("{/literal}{ts}Reload Page{/ts}{literal}")
.click(function() {
window.location.href = CRM.url('civicrm/contact/add', {
});
return false;
})
- .appendTo(cj('#update_modified_date'))
+ .appendTo($('#update_modified_date'))
;
});
</script>
}
});
{/literal}{* // Enforce unique is_primary fields *}{literal}
- cj(':checkbox[id*="[is_primary"]', 'form#Address_{/literal}{$blockId}{literal}').change(function() {
+ cj(':checkbox[id*="[is_primary"]', 'form[name=Address_{/literal}{$blockId}{literal}]').change(function() {
if (this.defaultChecked) {
cj(this).crmError("{/literal} {ts escape='js'}Please choose another address to be primary before changing this one.{/ts}{literal}");
cj(this).prop('checked', true);
}
});
{/literal}{* // Reset location_type_id when cancel button pressed *}{literal}
- cj(':submit[name$=cancel]', 'form#Address_{/literal}{$blockId}{literal}').click(function() {
+ cj(':submit[name$=cancel]', 'form[name=Address_{/literal}{$blockId}{literal}]').click(function() {
var container = cj(this).closest('div.crm-inline-edit.address');
var origValue = container.attr('data-location-type-id') || '';
container.data('location-type-id', origValue);
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var fields = new Array( 'postal_greeting', 'addressee', 'email_greeting');
+ var fields = ['postal_greeting', 'addressee', 'email_greeting'];
for ( var i = 0; i < 3; i++ ) {
- cj( "#" + fields[i] + "_id").change( function( ) {
- var fldName = cj(this).attr( 'id' );
- if ( cj(this).val( ) == 4 ) {
- cj("#greetings1").show( );
- cj("#greetings2").show( );
- cj( "#" + fldName + "_html").show( );
- cj( "#" + fldName + "_label").show( );
+ $( "#" + fields[i] + "_id").change( function( ) {
+ var fldName = $(this).attr( 'id' );
+ if ( $(this).val( ) == 4 ) {
+ $("#greetings1").show( );
+ $("#greetings2").show( );
+ $( "#" + fldName + "_html").show( );
+ $( "#" + fldName + "_label").show( );
} else {
- cj( "#" + fldName + "_html").hide( );
- cj( "#" + fldName + "_label").hide( );
- cj( "#" + fldName.slice(0, -3) + "_custom" ).val('');
+ $( "#" + fldName + "_html").hide( );
+ $( "#" + fldName + "_label").hide( );
+ $( "#" + fldName.slice(0, -3) + "_custom" ).val('');
}
});
}
<tr>
<td>{ts}Email{/ts}
{if $actualBlockCount lt 5 }
- <span id="add-more-email" title="{ts}click to add more{/ts}"><a class="crm-link-action add-more-inline">{ts}add{/ts}</a></span>
+ <span id="add-more-email" title="{ts}click to add more{/ts}"><a class="crm-hover-button action-item add-more-inline" href="#">{ts}add{/ts}</a></span>
{/if}
</td>
<td>{ts}On Hold?{/ts}</td>
<td align="center" class="crm-email-is_primary">{$form.email.$blockId.is_primary.1.html}</td>
<td>
{if $blockId gt 1}
- <a title="{ts}delete email block{/ts}" class="crm-delete-inline crm-link-action">{ts}delete{/ts}</a>
+ <a title="{ts}Delete Email{/ts}" class="crm-delete-inline crm-hover-button" href="#"><span class="icon delete-icon"></span></a>
{/if}
</td>
</tr>
<tr>
<td>{ts}Instant Messenger{/ts}
{if $actualBlockCount lt 5 }
- <span id="add-more-im" title="{ts}click to add more{/ts}"><a class="crm-link-action add-more-inline">{ts}add{/ts}</a></span>
+ <span id="add-more-im" title="{ts}click to add more{/ts}"><a class="crm-hover-button action-item add-more-inline" href="#">{ts}add{/ts}</a></span>
{/if}
</td>
<td>{ts}IM Location{/ts}</td>
<td align="center" class="crm-im-is_primary">{$form.im.$blockId.is_primary.1.html}</td>
<td>
{if $blockId gt 1}
- <a class="crm-delete-inline crm-link-action" title="{ts}delete im block{/ts}">{ts}delete{/ts}</a>
+ <a class="crm-delete-inline crm-hover-button" href="#" title="{ts}Delete IM{/ts}"><span class="icon delete-icon"></span></a>
{/if}
</td>
</tr>
<tr>
<td>{ts}Open ID{/ts}
{if $actualBlockCount lt 5 }
- <span id="add-more-openid" title="{ts}click to add more{/ts}"><a class="crm-link-action add-more-inline">{ts}add{/ts}</a></span>
+ <span id="add-more-openid" title="{ts}click to add more{/ts}"><a class="crm-hover-button action-item add-more-inline" href="#">{ts}add{/ts}</a></span>
{/if}
</td>
<td>{ts}Open ID Location{/ts}</td>
<td align="center" id="OpenID-Primary-html" class="crm-openid-is_primary">{$form.openid.$blockId.is_primary.1.html}</td>
<td>
{if $blockId gt 1}
- <a class="crm-delete-inline crm-link-action" title="{ts}Delete OpenID Block{/ts}">{ts}delete{/ts}</a>
+ <a class="crm-delete-inline crm-hover-button" href="#" title="{ts}Delete OpenID{/ts}"><span class="icon delete-icon"></span></a>
{/if}
</td>
</tr>
<tr>
<td>{ts}Phone{/ts}
{if $actualBlockCount lt 5 }
- <span id="add-more-phone" title="{ts}click to add more{/ts}"><a class="crm-link-action add-more-inline">{ts}add{/ts}</a></span>
+ <span id="add-more-phone" title="{ts}click to add more{/ts}"><a class="crm-hover-button action-item add-more-inline" href="#">{ts}add{/ts}</a></span>
{/if}
</td>
<td>{ts}Phone Location{/ts}</td>
<td align="center" class="crm-phone-is_primary">{$form.phone.$blockId.is_primary.1.html}</td>
<td>
{if $blockId gt 1}
- <a class="crm-delete-inline crm-link-action" title="{ts}delete phone block{/ts}">{ts}delete{/ts}</a>
+ <a class="crm-delete-inline crm-hover-button\" href="#" title="{ts}Delete phone{/ts}"><span class="icon delete-icon"></span></a>
{/if}
</td>
</tr>
<td>{ts}Website{/ts}
{help id="id-website" file="CRM/Contact/Form/Contact.hlp"}
{if $actualBlockCount lt 5 }
- <span id="add-more-website" title="{ts}click to add more{/ts}"><a class="crm-link-action add-more-inline">{ts}add{/ts}</a></span>
+ <span id="add-more-website" title="{ts}click to add more{/ts}"><a class="crm-hover-button action-item add-more-inline" href="#">{ts}add{/ts}</a></span>
{/if}
</td>
<td>{ts}Website Type{/ts}</td>
<td>{$form.website.$blockId.website_type_id.html}</td>
<td>
{if $blockId > 1}
- <a class="crm-delete-inline crm-link-action" title="{ts}delete website block{/ts}">{ts}delete{/ts}</a>
+ <a class="crm-delete-inline crm-hover-button action-item" href="#" title="{ts}Delete Website{/ts}"><span class="icon delete-icon"></span></a>
{/if}
</td>
</tr>
</div>
<div class="action-link">
- <a id='notDuplicate' href="#" title={ts}Mark this pair as not a duplicate.{/ts} onClick="processDupes( {$main_cid}, {$other_cid}, 'dupe-nondupe', 'merge-contact', '{crmURL p="civicrm/contact/dedupefind" q="reset=1&action=update&rgid=$rgid"}' );return false;">» {ts}Mark this pair as not a duplicate.{/ts}</a>
+ <a id='notDuplicate' href="#" title={ts}Mark this pair as not a duplicate.{/ts} onClick="processDupes( {$main_cid}, {$other_cid}, 'dupe-nondupe', 'merge-contact', '{if $rgid}{crmURL p="civicrm/contact/dedupefind" q="reset=1&action=update&rgid=$rgid"}{/if}' );return false;">» {ts}Mark this pair as not a duplicate.{/ts}</a>
</div>
<table class="row-highlight">
{literal}
<script type="text/javascript">
-cj(document).ready(function(){
- cj('table td input.form-checkbox').each(function() {
+ CRM.$(function($) {
+ $('table td input.form-checkbox').each(function() {
var ele = null;
- var element = cj(this).attr('id').split('_',3);
+ var element = $(this).attr('id').split('_',3);
switch ( element['1'] ) {
case 'addressee':
}
if( ele ) {
- cj(this).on('click', function() {
- var val = cj(this).prop('checked');
- cj('input' + ele + ', input' + ele + '_custom').prop('checked', val);
+ $(this).on('click', function() {
+ var val = $(this).prop('checked');
+ $('input' + ele + ', input' + ele + '_custom').prop('checked', val);
});
}
});
-});
+ });
</script>
{/literal}
{literal}
CRM.$(function($) {
var
- $form = $("form#{/literal}{$form.formName}{literal}"),
+ $form = $("form.{/literal}{$form.formClass}{literal}"),
relationshipData = {/literal}{$relationshipData|@json_encode}{literal};
$('[name=relationship_type_id]', $form).change(function() {
var
{include file="CRM/common/formButtons.tpl" location="top" buttonStyle="width:80px; text-align:center;"}
</div>
<div class="crm-submit-buttons reset-advanced-search">
- <a href="{crmURL p='civicrm/contact/search/advanced' q='reset=1'}" id="resetAdvancedSearch" class="button" style="width:70px; text-align:center;"><span>{ts}Reset Form{/ts}</span></a>
+ <a href="{crmURL p='civicrm/contact/search/advanced' q='reset=1'}" id="resetAdvancedSearch" class="crm-hover-button" title="{ts}Clear all search criteria{/ts}">
+ <span class="icon ui-icon-circle-close"></span>
+ {ts}Reset Form{/ts}
+ </a>
</div>
</td>
</tr>
{/if}
{if $form.group}
<td>
- <div id='groupselect'><label>{ts}Group(s){/ts} <span class="description">(<a id='searchbygrouptype'>{ts}search by group type{/ts}</a>)</span></label>
+ <div id='groupselect'><label>{ts}Group(s){/ts} <span class="description">(<a href="#" id='searchbygrouptype'>{ts}search by group type{/ts}</a>)</span></label>
{$form.group.html}
</div>
<div id='grouptypeselect'>
- <label>{ts}Group Type(s){/ts} <span class="description"> (<a id='searchbygroup'>{ts}search by group{/ts}</a>)</span></label>
+ <label>{ts}Group Type(s){/ts} <span class="description"> (<a href="#" id='searchbygroup'>{ts}search by group{/ts}</a>)</span></label>
{$form.group_type.html}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- function showGroupSearch(){
- cj('#grouptypeselect').hide();
- cj('#groupselect').show();
- cj('#group_type').select2('val', '');
+ function showGroupSearch() {
+ $('#grouptypeselect').hide();
+ $('#groupselect').show();
+ $('#group_type').select2('val', '');
+ return false;
}
- function showGroupTypeSearch(){
- cj('#groupselect').hide();
- cj('#grouptypeselect').show();
- cj('#group').select2('val', '');
+ function showGroupTypeSearch() {
+ $('#groupselect').hide();
+ $('#grouptypeselect').show();
+ $('#group').select2('val', '');
+ return false;
}
- cj('#searchbygrouptype').click(function() {
- showGroupTypeSearch();
- });
- cj('#searchbygroup').click(function() {
- showGroupSearch();
- });
+ $('#searchbygrouptype').click(showGroupTypeSearch);
+ $('#searchbygroup').click(showGroupSearch);
- if (cj('#group_type').val() ) {
+ if ($('#group_type').val() ) {
showGroupTypeSearch();
}
else {
{literal}
<script type="text/javascript">
CRM.$(function($) {
+ function updateChangeLogLabels() {
+ var changeType = $('input[name=log_date]:checked').val();
+ if (changeType == 2) {
+ $('.addedBy').hide();
+ $('.modifiedBy').show();
+ }
+ else {
+ if (changeType == 1) {
+ $('.addedBy').show();
+ $('.modifiedBy').hide();
+ }
+ }
+ }
+ $('[name=log_date]:input').change(updateChangeLogLabels);
updateChangeLogLabels();
});
- cj('[name=log_date]:input').change(function () {
- updateChangeLogLabels();
- });
- function updateChangeLogLabels() {
- var changeType = cj('input[name=log_date]:checked').val();
- if (changeType == 2) {
- cj('.addedBy').hide();
- cj('.modifiedBy').show();
- }
- else {
- if (changeType == 1) {
- cj('.addedBy').show();
- cj('.modifiedBy').hide();
- }
- }
- }
</script>
{/literal}
--- /dev/null
+{*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.5 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License and the CiviCRM Licensing Exception along |
+ | with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+*}
+
+{htxt id="location_type"}
+ <p>{ts}Location search uses the PRIMARY location for each contact by default.{/ts}</p>
+ <p>{ts}To search by specific location types (e.g. Home, Work...), select one or more options.{/ts}</p>
+{/htxt}
+--------------------------------------------------------------------+
*}
<div id="location" class="form-item">
- <table class="form-layout">
- <tr>
- <td>
- {$form.location_type.label}<br />
- {$form.location_type.html}
- <div class="description" >
- {ts}Location search uses the PRIMARY location for each contact by default.{/ts}<br />
- {ts}To search by specific location types (e.g. Home, Work...), check one or more boxes above.{/ts}
- </div>
- </td>
- <td colspan="2">
- <div id="streetAddress">
- {$form.street_address.label}<br />
- {$form.street_address.html|crmAddClass:big}
-{if $parseStreetAddress}
- <br /><a href="#" title="{ts}Use Address Elements{/ts}" onClick="processAddressFields( 'addressElements' , 1 );return false;">{ts}Use Address Elements{/ts}</a>
- </div>
- <div id="addressElements" class=hiddenElement>
- <table class="crm-block crm-form-block advanced-search-address-elements">
- <tr><td>{$form.street_number.label}<br />{$form.street_number.html}<br /><span class="description nowrap">{ts}or ODD / EVEN{/ts}</td>
+ <table class="form-layout">
+ <tr>
+ <td>
+ <div id="streetAddress" class="crm-field-wrapper">
+ {$form.street_address.label}<br />
+ {$form.street_address.html|crmAddClass:big}
+ {if $parseStreetAddress}
+ <div>
+ <a href="#" title="{ts}Use Address Elements{/ts}" rel="addressElements" class="address-elements-toggle">{ts}Use Address Elements{/ts}</a>
+ </div>
+ {/if}
+ </div>
+ {if $parseStreetAddress}
+ <div id="addressElements" class="crm-field-wrapper" style="display: none;">
+ <table class="crm-block crm-form-block advanced-search-address-elements">
+ <tr><td>{$form.street_number.label}<br />{$form.street_number.html}<br /><span class="description nowrap">{ts}or ODD / EVEN{/ts}</td>
<td>{$form.street_name.label}<br />{$form.street_name.html}</td>
<td>{$form.street_unit.label}<br />{$form.street_unit.html|crmAddClass:four}</td>
- </tr>
- <tr>
- <td colspan="3"><a href="#" title="{ts}Use Complete Address{/ts}" onClick="processAddressFields( 'streetAddress', 1 );return false;">{ts}Use Street Address{/ts}</a></td>
</tr>
- </table>
- </div>
-{/if}
- <br />
- {$form.city.label}<br />
- {$form.city.html}
- </td>
- </tr>
-
- <tr>
- <td>
- {if $form.postal_code.html}
- <table class="inner-table">
- <tr>
- <td>
- {$form.postal_code.label}<br />
- {$form.postal_code.html}
+ <tr>
+ <td colspan="3"><a href="#" title="{ts}Use Complete Address{/ts}" rel="streetAddress" class="address-elements-toggle">{ts}Use Street Address{/ts}</a></td>
+ </tr>
+ </table>
+ </div>
+ {/if}
+ <div class="crm-field-wrapper">
+ {$form.city.label}<br />
+ {$form.city.html}
+ </div>
+ <div class="crm-field-wrapper">
+ {$form.country.label}<br />
+ {$form.country.html}
+ </div>
+ <div class="crm-field-wrapper">
+ {$form.state_province.label}<br />
+ {$form.state_province.html}
+ </div>
+ <div class="crm-field-wrapper">
+ {$form.county.label}<br />
+ {$form.county.html}
+ </div>
+ <div class="crm-field-wrapper">
+ {$form.world_region.label}<br />
+ {$form.world_region.html}
+ </div>
</td>
+
<td>
-
- <label>{ts}OR{/ts}</label>
-
- </td>
- <td><label>{ts}Postal Code{/ts}</label>
- {$form.postal_code_low.label|replace:'-':'<br />'}
- {$form.postal_code_low.html|crmAddClass:six}
- {$form.postal_code_high.label}
- {$form.postal_code_high.html|crmAddClass:six}
- </td>
- </tr>
- <tr>
- <td colspan="2"> </td>
- <td>{$form.prox_distance.label}<br />{$form.prox_distance.html} {$form.prox_distance_unit.html}</td>
- </tr>
- <tr>
- <td colspan="2">{$form.address_name.label}<br />
- {$form.address_name.html|crmAddClass:medium}
- </td>
- <td>{$form.world_region.label}<br />
- {$form.world_region.html}
- </td>
- </tr>
- <tr>
- <td colspan="2">{$form.county.label}<br />
- {$form.county.html}
- </td>
- <td>{$form.country.label}<br />
- {$form.country.html}
+ <div class="crm-field-wrapper">
+ <div>{$form.location_type.label} {help id="location_type" title=$form.location_type.label}</div>
+ {$form.location_type.html}
+ </div>
+ {if $form.address_name.html}
+ <div class="crm-field-wrapper">
+ {$form.address_name.label}<br />
+ {$form.address_name.html}
+ </div>
+ {/if}
+ {if $form.postal_code.html}
+ <div class="crm-field-wrapper">
+ {$form.postal_code.label}
+ <input type="checkbox" id="postal-code-range-toggle" value="1"/>
+ <label for="postal-code-range-toggle">{ts}Range{/ts}</label><br />
+ <div class="postal_code-wrapper">
+ {$form.postal_code.html}
+ </div>
+ <div class="postal_code_range-wrapper" style="display: none;">
+ {$form.postal_code_low.html} - {$form.postal_code_high.html}
+ </div>
+ </div>
+ <script type="text/javascript">
+ {literal}
+ CRM.$(function($) {
+ $('#postal-code-range-toggle').change(function() {
+ if ($(this).is(':checked')) {
+ $('.postal_code_range-wrapper').show();
+ $('.postal_code-wrapper').hide().find('input').val('');
+ } else {
+ $('.postal_code-wrapper').show();
+ $('.postal_code_range-wrapper').hide().find('input').val('');
+ }
+ });
+ if ($('#postal_code_low').val() || $('#postal_code_high').val()) {
+ $('#postal-code-range-toggle').prop('checked', true).change();
+ }
+ });
+ {/literal}
+ </script>
+ {/if}
+ {if $form.prox_distance.html}
+ <div class="crm-field-wrapper">
+ {$form.prox_distance.label}<br />
+ {$form.prox_distance.html} {$form.prox_distance_unit.html}
+ </div>
+ {/if}
</td>
- </tr>
- </table>
- {/if}
- </td>
- <td>{$form.state_province.label}<br />
- {$form.state_province.html}
- </td>
</tr>
+
{if $addressGroupTree}
- <tr>
- <td colspan="2">
+ <tr>
+ <td colspan="2">
{include file="CRM/Custom/Form/Search.tpl" groupTree=$addressGroupTree showHideLinks=false}
- </td>
- </tr>
+ </td>
+ </tr>
{/if}
- </table>
+ </table>
</div>
-{if $parseStreetAddress eq 1}
-{literal}
-<script type="text/javascript">
-function processAddressFields( name, loadData ) {
- if ( name == 'addressElements' ) {
- if ( loadData ) {
- cj( '#street_address' ).val( '' );
- }
+{if $parseStreetAddress}
+ {literal}
+ <script type="text/javascript">
+ CRM.$(function($) {
+ function processAddressFields(name) {
+ $('#' + name).show();
+ if (name == 'addressElements') {
+ $('#streetAddress').hide().find('input').val('');
+ } else {
+ $('#addressElements').hide().find('input').val('');
+ }
- cj('#addressElements').show();
- cj('#streetAddress').hide();
- } else {
- if ( loadData ) {
- cj( '#street_name' ).val( '' );
- cj( '#street_unit' ).val( '' );
- cj( '#street_number' ).val( '' );
}
+ $("a.address-elements-toggle").click(function(e) {
+ e.preventDefault();
+ processAddressFields(this.rel);
+ });
+ if ($('#street_name').val() || $('#street_unit').val() || $('#street_number').val()) {
+ processAddressFields('addressElements');
+ }
+ }
+ );
- cj('#streetAddress').show();
- cj('#addressElements').hide();
- }
-
-}
-
-CRM.$(function($) {
- if ( cj('#street_name').val( ).length > 0 ||
- cj('#street_unit').val( ).length > 0 ||
- cj('#street_number').val( ).length > 0 ) {
- processAddressFields( 'addressElements', 1 );
- }
-}
-);
-
-</script>
-{/literal}
+ </script>
+ {/literal}
{/if}
{capture assign=editSmartGroupURL}{crmURL p="civicrm/contact/search/advanced" q="reset=1&force=1&ssID=`$ssID`"}{/capture}
{/if}
<div class="crm-submit-buttons">
- <a href="{$editSmartGroupURL}" class="button"><span><div class="icon edit-icon"></div> {ts 1=$group.title}Edit Smart Group Search Criteria for %1{/ts}</span></a>
+ <a href="{$editSmartGroupURL}" class="button no-popup"><span><div class="icon edit-icon"></div> {ts 1=$group.title}Edit Smart Group Search Criteria for %1{/ts}</span></a>
{help id="id-edit-smartGroup"}
</div>
{/if}
{if $permissionedForGroup}
{capture assign=addMembersURL}{crmURL q="context=amtg&amtgID=`$group.id`&reset=1"}{/capture}
<div class="crm-submit-buttons">
- <a href="{$addMembersURL}" class="button"><span><div class="icon add-icon"></div> {ts 1=$group.title}Add Contacts to %1{/ts}</span></a>
+ <a href="{$addMembersURL}" class="button no-popup"><span><div class="icon add-icon"></div> {ts 1=$group.title}Add Contacts to %1{/ts}</span></a>
{if $ssID}{help id="id-add-to-smartGroup"}{/if}
</div>
{/if}
{literal}
<script type="text/javascript">
- function showHideSharedAddress( blockNo, showSelect ) {
- // based on checkbox, show or hide
- if ( cj( '#address\\[' + blockNo + '\\]\\[use_shared_address\\]' ).prop('checked') ) {
- if ( showSelect && cj( '#shared-address-display-' + blockNo ).length == 0 ) {
- cj( '#shared-address-' + blockNo ).show( );
+ CRM.$(function($) {
+
+ function showHideSharedAddress( blockNo, showSelect ) {
+ // based on checkbox, show or hide
+ if ( $( '#address\\[' + blockNo + '\\]\\[use_shared_address\\]' ).prop('checked') ) {
+ if ( showSelect && $( '#shared-address-display-' + blockNo ).length == 0 ) {
+ $( '#shared-address-' + blockNo ).show( );
+ }
+ $( 'table#address_table_' + blockNo ).hide( );
+ $( '#shared-address-display-' + blockNo ).show( );
+ $( '#shared-address-display-name-' + blockNo ).show( );
+ $( '#shared-address-display-cancel-' + blockNo ).hide( );
+ $( '.crm-address-custom-set-block-' + blockNo).hide( );
+ } else {
+ $( '#shared-address-' + blockNo ).hide( );
+ $( 'table#address_table_' + blockNo ).show( );
+ $( '#shared-address-display-' + blockNo ).hide( );
+ $( '#shared-address-display-name-' + blockNo ).hide( );
+ $( '#shared-address-display-cancel-' + blockNo ).hide( );
+ $( '.crm-address-custom-set-block-' + blockNo).show( );
}
- cj( 'table#address_table_' + blockNo ).hide( );
- cj( '#shared-address-display-' + blockNo ).show( );
- cj( '#shared-address-display-name-' + blockNo ).show( );
- cj( '#shared-address-display-cancel-' + blockNo ).hide( );
- cj( '.crm-address-custom-set-block-' + blockNo).hide( );
- } else {
- cj( '#shared-address-' + blockNo ).hide( );
- cj( 'table#address_table_' + blockNo ).show( );
- cj( '#shared-address-display-' + blockNo ).hide( );
- cj( '#shared-address-display-name-' + blockNo ).hide( );
- cj( '#shared-address-display-cancel-' + blockNo ).hide( );
- cj( '.crm-address-custom-set-block-' + blockNo).show( );
}
- }
-
-CRM.$(function($) {
var blockNo = {/literal}{$blockId}{literal};
// call this when form loads
showHideSharedAddress( blockNo, true );
// handle check / uncheck of checkbox
- cj( '#address\\[' + blockNo + '\\]\\[use_shared_address\\]' ).click( function( ) {
+ $( '#address\\[' + blockNo + '\\]\\[use_shared_address\\]' ).click( function( ) {
showHideSharedAddress( blockNo, true );
});
var contactHiddenElement = 'input[name="address[' + blockNo +'][master_contact_id]"]';
// observe changes
- cj( contactHiddenElement ).change(function( ) {
- var sharedContactId = cj( this ).val( );
+ $( contactHiddenElement ).change(function( ) {
+ var sharedContactId = $( this ).val( );
if ( !sharedContactId || isNaN( sharedContactId ) ) {
return;
}
var addressHTML = '';
var postUrl = {/literal}"{crmURL p='civicrm/ajax/inline' h=0}"{literal};
- cj.post( postUrl, {
- 'contact_id': sharedContactId,
- 'type': 'method',
- 'async': false,
- 'class_name': 'CRM_Contact_Page_AJAX',
- 'fn_name': 'getAddressDisplay'
+ $.post( postUrl, {
+ 'contact_id': sharedContactId,
+ 'type': 'method',
+ 'async': false,
+ 'class_name': 'CRM_Contact_Page_AJAX',
+ 'fn_name': 'getAddressDisplay'
},
function( response ) {
if ( response ) {
var selected = 'checked';
var addressExists = false;
- cj.each( response, function( i, val ) {
+ $.each( response, function( i, val ) {
if ( i > 1 ) {
selected = '';
} else {
- cj( 'input[name="address[' + blockNo + '][master_id]"]' ).val( val.id );
+ $( 'input[name="address[' + blockNo + '][master_id]"]' ).val( val.id );
}
addressHTML = addressHTML + '<input type="radio" name="selected_shared_address-'+ blockNo +'" value=' + val.id + ' ' + selected +'>' + val.display_text + '<br/>';
});
if ( addressExists ) {
- cj( '#shared-address-' + blockNo + ' .shared-address-list' ).remove( );
- cj( '#shared-address-' + blockNo ).append( '<tr class="shared-address-list"><td></td><td>' + addressHTML + '</td></tr>');
- cj( 'input[name^=selected_shared_address-]' ).click( function( ) {
+ $( '#shared-address-' + blockNo + ' .shared-address-list' ).remove( );
+ $( '#shared-address-' + blockNo ).append( '<tr class="shared-address-list"><td></td><td>' + addressHTML + '</td></tr>');
+ $( 'input[name^=selected_shared_address-]' ).click( function( ) {
- // get the block id
- var elemId = cj(this).attr( 'name' ).split('-');
- cj( 'input[name="address[' + elemId[1] + '][master_id]"]' ).val( cj(this).val( ) );
+ // get the block id
+ var elemId = $(this).attr( 'name' ).split('-');
+ $( 'input[name="address[' + elemId[1] + '][master_id]"]' ).val( $(this).val( ) );
});
} else {
var helpText = {/literal}"{ts escape='js'}Selected contact does not have an address. Please edit that contact to add an address, or select a different contact.{/ts}"{literal};
- cj( '#shared-address-' + blockNo + ' .shared-address-list' ).remove( );
- cj( '#shared-address-' + blockNo ).append( '<tr class="shared-address-list"><td></td><td>' + helpText + '</td></tr>');
+ $( '#shared-address-' + blockNo + ' .shared-address-list' ).remove( );
+ $( '#shared-address-' + blockNo ).append( '<tr class="shared-address-list"><td></td><td>' + helpText + '</td></tr>');
}
}
},'json');
});
-});
+ });
</script>
{/literal}
CRM.$(function($) {
$("#popupContainer").css({
"background-color":"#E0E0E0",
- 'display':'none',
+ 'display':'none'
});
$("#popup-button").click(function() {
$("#popupContainer").dialog({
- title: "Selected Contacts",
+ title: {/literal}"{ts escape='js'}Selected Contacts{/ts}"{literal},
width:700,
height:500,
modal: true,
<td class="label">{if $single eq false}{ts}Recipient(s){/ts}{else}{$form.to.label}{/if}</td>
<td>
{$form.to.html}{if $noEmails eq true} {$form.emailAddress.html}{/if}
- <div>
- <a href="#" rel="cc_id" class="add-cc-link crm-hover-button" {if $form.cc_id.value}style="display:none;"{/if}>{ts}Add CC{/ts}</a>
- <a href="#" rel="bcc_id" class="add-cc-link crm-hover-button" {if $form.bcc_id.value}style="display:none;"{/if}>{ts}Add BCC{/ts}</a>
- </div>
</td>
</tr>
<tr class="crm-contactEmail-form-block-cc_id" {if !$form.cc_id.value}style="display:none;"{/if}>
<a class="crm-hover-button clear-cc-link" rel="bcc_id" title="{ts}Clear{/ts}" href="#"><span class="icon close-icon"></span></a>
</td>
</tr>
+ <tr>
+ <td></td>
+ <td>
+ <div>
+ <a href="#" rel="cc_id" class="add-cc-link crm-hover-button" {if $form.cc_id.value}style="display:none;"{/if}>{ts}Add CC{/ts}</a>
+ <a href="#" rel="bcc_id" class="add-cc-link crm-hover-button" {if $form.bcc_id.value}style="display:none;"{/if}>{ts}Add BCC{/ts}</a>
+ </div>
+ </td>
+ </tr>
{if $emailTask}
<tr class="crm-contactEmail-form-block-template">
{literal}
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
$('.add-cc-link', $form).click(function(e) {
e.preventDefault();
//do not copy & paste this - find a way to generalise it
'use strict';
// NOTE: Might be safer to say $('[name=_qf_Email_upload]')
- $('.form-submit').not('.cancel').on("click", function() {
- $('.form-submit').not('.cancel').attr({value: ts('Processing')});
+ $('.crm-form-submit').not('.cancel').on("click", function() {
+ $('.crm-form-submit').not('.cancel').attr({value: ts('Processing')});
// CRM-13449 : setting a 0 ms timeout is needed
// for some browsers like chrome. Used for purpose of
// submit the form and stop accidental multiple clicks
setTimeout(function(){
- $('.form-submit').not('.cancel').prop({disabled: true});
+ $('.crm-form-submit').not('.cancel').prop({disabled: true});
}, 0);
});
});
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var $form = $('form#{/literal}{$form.formName}{literal}');
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
$('#format_id', $form).on('change', function() {
selectFormat($(this).val());
});
{literal}
<script type="text/javascript">
- cj(document).ready(function() {
+ CRM.$(function($) {
//build data source form block
buildDataSourceFormBlock();
buildSubTypes();
CRM.$(function($) {
var defaultLocationType = "{/literal}{$defaultLocationType}{literal}";
if (defaultLocationType.length) {
- cj('#map-field').on('change', 'select[id^="mapper"][id$="_0"]', function() {
- var select = cj(this).next();
- cj('option', select).each(function() {
- if (cj(this).attr('value') == defaultLocationType
- && cj(this).text() == "{/literal}{$defaultLocationTypeLabel}{literal}") {
+ $('#map-field').on('change', 'select[id^="mapper"][id$="_0"]', function() {
+ var select = $(this).next();
+ $('option', select).each(function() {
+ if ($(this).attr('value') == defaultLocationType
+ && $(this).text() == "{/literal}{$defaultLocationTypeLabel}{literal}") {
select.val(defaultLocationType);
}
});
<script type="text/javascript">
CRM.$(function($) {
var currentReSortEvent;
- cj(".dash-column").sortable({
+ $(".dash-column").sortable({
connectWith: '.dash-column',
update: saveSorting
});
- cj(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
+ $(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
.find(".portlet-header")
.addClass("ui-widget-header ui-corner-all")
.end()
.find(".portlet-content");
- cj(".dash-column").disableSelection();
+ $(".dash-column").disableSelection();
function saveSorting(e, ui) {
// this is to prevent double post call
dashletColumns = Array();
// build post params
- cj('div[id^=existing-dashlets-col-]').each( function( i ) {
- cj(this).find('.portlet-header').each( function( j ) {
+ $('div[id^=existing-dashlets-col-]').each( function( i ) {
+ $(this).find('.portlet-header').each( function( j ) {
var elementID = this.id;
var idState = elementID.split('-');
params['columns[' + i + '][' + idState[0] + ']'] = idState[1];
var postUrl = {/literal}"{crmURL p='civicrm/ajax/dashboard' h=0 }"{literal};
params['op'] = 'save_columns';
params['key'] = {/literal}"{crmKey name='civicrm/ajax/dashboard'}"{literal};
- cj.post( postUrl, params, function(response, status) {
+ $.post( postUrl, params, function(response, status) {
// TO DO show done / disable escape action
});
}
}
- cj('.delete-dashlet').click( function( ) {
+ $('.delete-dashlet').click( function( ) {
var message = {/literal}'{ts escape="js"}Do you want to remove this dashlet as an "Available Dashlet", AND delete it from all user dashboards?{/ts}'{literal};
if ( confirm( message) ) {
- var dashletID = cj(this).parent().attr('id');
+ var dashletID = $(this).parent().attr('id');
var idState = dashletID.split('-')
// Build a list of params to post to the server.
var postUrl = {/literal}"{crmURL p='civicrm/ajax/dashboard' h=0 }"{literal};
params['op'] = 'delete_dashlet';
params['key'] = {/literal}"{crmKey name='civicrm/ajax/dashboard'}"{literal};
- cj.post( postUrl, params, function(response, status) {
+ $.post( postUrl, params, function(response, status) {
// delete dom object
- cj('#' + dashletID ).parent().remove();
+ $('#' + dashletID ).parent().remove();
});
}
});
<dt>{ts}To{/ts}</dt><dd>{$toName|escape}</dd>
<dt>{ts}Subject{/ts}</dt><dd>{$subject}</dd>
<dt>{ts}Message{/ts}</dt><dd>{$message}</dd>
-<dt> </dt><dd><a class="button cancel form-submit" href="{crmURL p='civicrm/contact/view' q="history=1&show=1&selectedChild=activity"}">{ts}Done{/ts}</a></dd>
+<dt> </dt><dd><a class="button cancel crm-form-submit" href="{crmURL p='civicrm/contact/view' q="history=1&show=1&selectedChild=activity"}">{ts}Done{/ts}</a></dd>
</dl>
</fieldset>
</div>
{/if}
{if $contactSmartGroupSettings neq 3}
+ <div class="spacer" style="height: 1.5em;"></div>
<div class="accordion ui-accordion ui-widget ui-helper-reset">
<div class="crm-accordion-wrapper crm-ajax-accordion crm-smartgroup-accordion {if $contactSmartGroupSettings eq 1}collapsed{/if}">
<div class="crm-accordion-header" id="crm-contact_smartgroup" contact_id="{$contactId}">
</div>
<!-- /.crm-accordion-header -->
<div class="crm-accordion-body">
- <div class="crm-contact_smartgroup"></div>
+ <div class="crm-contact_smartgroup" style="min-height: 3em;"></div>
</div>
<!-- /.crm-accordion-body -->
</div>
CRM.$(function($) {
// load panes function calls for snippet based on id of crm-accordion-header
function loadPanes() {
- var id = $(this).attr('id');
+ var $el = $(this).parent().find('div.crm-contact_smartgroup');
var contactId = $(this).attr('contact_id');
- if (!$('div.' + id).html()) {
- var loading = '<img src="{/literal}{$config->resourceBase}i/loading.gif{literal}" alt="{/literal}{ts escape='js'}loading{/ts}{literal}" /> {/literal}{ts escape='js'}Loading{/ts}{literal}...';
- $('div.' + id).html(loading).load(CRM.url('civicrm/contact/view/smartgroup', {snippet: 4, cid: contactId}));
+ if (!$el.html()) {
+ CRM.loadPage(CRM.url('civicrm/contact/view/smartgroup', {cid: contactId}), {target: $el});
}
}
// bind first click of accordion header to load crm-accordion-body with snippet
<div class="view-content">
{if $action eq 4}{* when action is view *}
{if $notes}
- <h3>{ts}View Note{/ts}</h3>
<div class="crm-block crm-content-block crm-note-view-block">
<table class="crm-info-panel">
<tr><td class="label">{ts}Subject{/ts}</td><td>{$note.subject}</td></tr>
{include file="CRM/Form/attachment.tpl"}
{/if}
</table>
- <div class="crm-submit-buttons"><input type="submit" class='cancel form-submit' value="{ts}Done{/ts}"/></div>
+ <div class="crm-submit-buttons">
+ <a class="button cancel" href="{crmURL p='civicrm/contact/view' q="selectedChild=note&reset=1&cid=`$contactId`"}">{ts}Done{/ts}</a>
+ </div>
{if $comments}
<fieldset>
</div>
{/if}
{elseif $action eq 1 or $action eq 2} {* action is add or update *}
- <h3>
- {if $parentId}
- {if $action eq 1}{ts}New Comment{/ts}{else}{ts}Edit Comment{/ts}{/if}
- {else}
- {if $action eq 1}{ts}New Note{/ts}{else}{ts}Edit Note{/ts}{/if}
- {/if}
- </h3>
<div class="crm-block crm-form-block crm-note-form-block">
<div class="content crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<table class="form-layout">
</div>
{/if}
{if ($action eq 8)}
-<fieldset><legend>{ts}Delete Note{/ts}</legend>
<div class=status>{ts 1=$notes.$id.note}Are you sure you want to delete the note '%1'?{/ts}</div>
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl"}</div>
-</fieldset>
{/if}
<script type="text/javascript">
{literal}
- cj(document).ready( function() {
- var tabId = cj.fn.dataTableSettings[0].sInstance;
+ CRM.$(function($) {
+ var tabId = $.fn.dataTableSettings[0].sInstance;
- cj('table#'+ tabId).dataTable().fnSettings().aoDrawCallback.push( {
- "fn": function () {
- cj('#'+ tabId +' tr').each( function() {
- drawCommentRows(this.id)
- });
- },
- "sName": "user"
- } );
- });
+ $('table#'+ tabId).dataTable().fnSettings().aoDrawCallback.push( {
+ "fn": function () {
+ $('#'+ tabId +' tr').each( function() {
+ drawCommentRows(this.id)
+ });
+ },
+ "sName": "user"
+ } );
+ });
{/literal}
</script>
{* Include '(more)' link to view entire note if it has been truncated *}
{assign var="noteSize" value=$note.note|count_characters:true}
{if $noteSize GT 80}
- <a href="{crmURL p='civicrm/contact/view/note' q="action=view&selectedChild=note&reset=1&cid=`$contactId`&id=`$note.id`"}">{ts}(more){/ts}</a>
+ <a class="crm-popup" href="{crmURL p='civicrm/contact/view/note' q="action=view&selectedChild=note&reset=1&cid=`$contactId`&id=`$note.id`"}">{ts}(more){/ts}</a>
{/if}
</td>
<td class="crm-note-subject">{$note.subject}</td>
{/literal}
<form action="{crmURL p='civicrm/contact/view' q="&cid=`$contactId`&reset=1"}" method="post" id="Print1" >
<div class="form-item">
- <span class="element-right"><input onclick="window.print(); return false" class="form-submit default" name="_qf_Print_next" value="{ts}Print{/ts}" type="submit" /> <input class="form-submit" name="_qf_Print_back" value="{ts}Done{/ts}" type="submit" /></span>
+ <span class="element-right"><input onclick="window.print(); return false" class="crm-form-submit default" name="_qf_Print_next" value="{ts}Print{/ts}" type="submit" /> <input class="crm-form-submit" name="_qf_Print_back" value="{ts}Done{/ts}" type="submit" /></span>
</div>
</form>
<br />
{include file="CRM/Contact/Page/View/Summary.tpl"}
<form action="{crmURL p='civicrm/contact/view' q="&cid=`$contactId`&reset=1"}" method="post" id="Print2" >
<div class="form-item">
- <span class="element-right"><input onclick="window.print(); return false" class="form-submit default" name="_qf_Print_next" value="{ts}Print{/ts}" type="submit" /> <input class="form-submit" name="_qf_Print_back" value="{ts}Done{/ts}" type="submit" /></span>
+ <span class="element-right"><input onclick="window.print(); return false" class="crm-form-submit default" name="_qf_Print_next" value="{ts}Print{/ts}" type="submit" /> <input class="crm-form-submit" name="_qf_Print_back" value="{ts}Done{/ts}" type="submit" /></span>
</div>
</form>
</div>
CRM.status(ts('Saved'));
}
// Update changelog tab and contact footer
- if (response.changeLog.count) {
+ if (response.changeLog && response.changeLog.count) {
CRM.tabHeader.updateCount('#tab_log', response.changeLog.count);
}
$("#crm-record-log").replaceWith(response.changeLog.markup);
.click(function() {
$(form).find('input[name=oplock_ts]').val(errorTag.attr('data:update_oplock_ts'));
errorTag.parent().hide();
- $(this).closest('form').find('.form-submit.default').first().click();
+ $(this).closest('form').find('.crm-form-submit.default').first().click();
return false;
})
.appendTo(buttonContainer)
$('.crm-inline-edit.form form').unblock();
}
- $('document').ready(function() {
+ $(function() {
// don't perform inline edit during print mode
if (CRM.summaryPrint.mode) {
$('div').removeClass('crm-inline-edit');
}
})
// handle delete link within blocks
- .on('click', '.crm-delete-inline', function() {
+ .on('click', '.crm-delete-inline', function(e) {
var row = $(this).closest('tr');
var form = $(this).closest('form');
- row.addClass('hiddenElement');
+ row.hide();
$('input', row).val('');
//if the primary is checked for deleted block
//unset and set first as primary
$('[class$=is_primary] input:first', form).prop('checked', true );
}
$('.add-more-inline', form).show();
+ e.preventDefault();
})
// Delete an address
.on('click', '.crm-inline-edit.address .delete-button', function() {
return false;
})
// add more and set focus to new row
- .on('click', '.add-more-inline', function() {
+ .on('click', '.add-more-inline', function(e) {
var form = $(this).closest('form');
var row = $('tr[class="hiddenElement"]:first', form);
row.removeClass('hiddenElement');
if ($('tr[class="hiddenElement"]').length < 1) {
$(this).hide();
}
+ e.preventDefault();
});
// Trigger cancel button on esc keypress
$(document).keydown(function(key) {
{foreach from=$allTabs key=tabName item=tabValue}
<li id="tab_{$tabValue.id}" class="crm-tab-button ui-corner-all crm-count-{$tabValue.count}{if isset($tabValue.class)} {$tabValue.class}{/if}">
<a href="{$tabValue.url}" title="{$tabValue.title}">
- <span> </span> {$tabValue.title}
- <em>{$tabValue.count}</em>
+ {$tabValue.title}
+ {if empty($tabValue.hideCount)}<em>{$tabValue.count}</em>{/if}
</a>
</li>
{/foreach}
var min_amount = document.getElementById("min_amount");
- var amount = new Array();
+ var amount = [];
amount[0] = '';
if( product_id > 0 ) {
{include file="CRM/Contribute/Form/AdditionalInfo/$formType.tpl"}
{else}
-{if $paymentType eq 'refund'}
-<h3>{ts}New Event Refund{/ts}</h3>
-{else}
-<h3>{if $component eq 'event'}{if $contributionMode}{ts}Credit Card Event Payment{/ts}{else}{ts}New Event Payment{/ts}{/if}{/if}</h3>
-{/if}
<div class="crm-block crm-form-block crm-payment-form-block">
{if $contributionMode == 'test'}
{if $showCheckNumber || !$isOnline}
<tr id="checkNumber" class="crm-payment-form-block-check_number">
<td class="label">{$form.check_number.label}</td>
- <td>{$form.check_number.html|crmReplace:class:six}</td>
+ <td>{$form.check_number.html}</td>
</tr>
{/if}
<tr class="crm-payment-form-block-trxn_id">
<td class="label">{$form.trxn_id.label}</td>
- <td {$valueStyle}>{$form.trxn_id.html|crmReplace:class:twelve} {help id="id-trans_id"}</td>
+ <td {$valueStyle}>{$form.trxn_id.html} {help id="id-trans_id"}</td>
</tr>
{if $email and $outBound_option != 2}
<tr class="crm-payment-form-block-is_email_receipt">
{include file="CRM/Contribute/Form/AdditionalInfo/$formType.tpl"}
{else}
- {if $contributionMode}
- <h3>{if $ppID}{ts}Credit Card Pledge Payment{/ts}{else}{ts}Credit Card Contribution{/ts}{/if}</h3>
- {elseif $context NEQ 'standalone'}
- <h3>{if $action eq 1 or $action eq 1024}{if $ppID}{ts}Pledge Payment{/ts}{else}{ts}New Contribution{/ts}{/if}{elseif $action eq 8}{ts}Delete Contribution{/ts}{else}{ts}Edit Contribution{/ts}{/if}</h3>
- {/if}
-
<div class="crm-block crm-form-block crm-contribution-form-block">
{if $contributionMode == 'test' }
{else}
{capture assign=ccModeLink}{crmURL p='civicrm/contact/view/contribution' q="reset=1&action=add&context=standalone&mode=live"}{/capture}
{/if}
- <span class="action-link crm-link-credit-card-mode"> <a class="open-inline crm-hover-button" href="{$ccModeLink}">» {ts}submit credit card contribution{/ts}</a></span>
+ <span class="action-link crm-link-credit-card-mode"> <a class="open-inline crm-hover-button action-item" href="{$ccModeLink}">» {ts}submit credit card contribution{/ts}</a></span>
{/if}
</div>
{if $isOnline}{assign var=valueStyle value=" class='view-value'"}{else}{assign var=valueStyle value=""}{/if}
<td class="font-size12pt label"><strong><strong>{ts}Contributor{/ts}</strong></td><td class="font-size12pt"><strong>{$displayName}</strong></td>
</tr>
{else}
- {if !$contributionMode and !$email and $outBound_option != 2}
- {assign var='profileCreateCallback' value=1 }
- {/if}
<td class="label">{$form.contact_id.label}</td>
<td>{$form.contact_id.html}</td>
{/if}
</tr>
<tr id="cancelReason">
<td class="label" style="vertical-align: top;">{$form.cancel_reason.label}</td>
- <td>{$form.cancel_reason.html|crmReplace:class:huge}</td>
+ <td>{$form.cancel_reason.html}</td>
</tr>
</table>
</fieldset>
{if $showCheckNumber || !$isOnline}
<tr id="checkNumber" class="crm-contribution-form-block-check_number">
<td class="label">{$form.check_number.label}</td>
- <td>{$form.check_number.html|crmReplace:class:six}</td>
+ <td>{$form.check_number.html}</td>
</tr>
{/if}
<tr class="crm-contribution-form-block-trxn_id">
<td class="label">{$form.trxn_id.label}</td>
- <td {$valueStyle}>{$form.trxn_id.html|crmReplace:class:twelve} {help id="id-trans_id"}</td>
+ <td {$valueStyle}>{$form.trxn_id.html} {help id="id-trans_id"}</td>
</tr>
{if $email and $outBound_option != 2}
<tr class="crm-contribution-form-block-is_email_receipt">
{if $context eq 'standalone' and $outBound_option != 2 }
{literal}
CRM.$(function($) {
- cj("#contact_id").change( function( ) {
- checkEmail( );
- });
+
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
+ $("#contact_id", $form).change(checkEmail);
checkEmail( );
+
+ function checkEmail( ) {
+ var data = $("#contact_id", $form).select2('data');
+ if (data && data.extra && data.extra.email && data.extra.email.length) {
+ $("#email-receipt", $form).show();
+ $("#email-address", $form).html(data.extra.email);
+ }
+ else {
+ $("#email-receipt", $form).hide();
+ }
+ }
+
showHideByValue( 'is_email_receipt', '', 'receiptDate', 'table-row', 'radio', true);
showHideByValue( 'is_email_receipt', '', 'fromEmail', 'table-row', 'radio', false );
});
- function checkEmail( ) {
- var contactID = cj("#contact_id").val();
- if (contactID) {
- var postUrl = "{/literal}{crmURL p='civicrm/ajax/checkemail' h=0}{literal}";
- cj.post( postUrl, {contact_id: contactID},
- function (response) {
- if (response) {
- cj("#email-receipt").show( );
- cj("#email-address").html(response);
- }
- else {
- cj("#email-receipt").hide( );
- }
- }
- );
- }
- else {
- cj("#email-receipt").hide( );
- }
- }
-
- function profileCreateCallback( blockNo ) {
- checkEmail( );
- }
{/literal}
{/if}
</script>
CRM.$(function($) {
//if price set is set we use below below code to show for showing auto renew
var autoRenewOption = {/literal}'{$autoRenewOption}'{literal};
- cj('#allow_auto_renew').hide();
+ $('#allow_auto_renew').hide();
if ( autoRenewOption == 1 ) {
- cj('#allow_auto_renew').show();
+ $('#allow_auto_renew').show();
} else if ( autoRenewOption == 2 ) {
- var autoRenew = cj("#auto_renew");
+ var autoRenew = $("#auto_renew");
autoRenew.prop('checked', true );
autoRenew.attr( 'readonly', true );
- cj('#allow_auto_renew').show();
+ $('#allow_auto_renew').show();
}
});
</script>
{if $membershipContactID}
{literal}
CRM.$(function($) {
- cj('#organization_id').val("{/literal}{$membershipContactName}{literal}");
- cj('#organization_name').val("{/literal}{$membershipContactName}{literal}");
- cj('#onbehalfof_id').val("{/literal}{$membershipContactID}{literal}");
+ $('#organization_id').val("{/literal}{$membershipContactName}{literal}");
+ $('#organization_name').val("{/literal}{$membershipContactName}{literal}");
+ $('#onbehalfof_id').val("{/literal}{$membershipContactID}{literal}");
setLocationDetails( "{/literal}{$membershipContactID}{literal}" );
});
{/literal}
// select a new premium
function select_premium(premium_id) {
- if(cj(premium_id).length) {
+ if($(premium_id).length) {
// hide other active premium
- cj('.premium-full').hide();
- cj('.premium-short').show();
+ $('.premium-full').hide();
+ $('.premium-short').show();
// show this one
- cj('.premium-short', cj(premium_id)).hide();
- cj('.premium-full', cj(premium_id)).show();
+ $('.premium-short', $(premium_id)).hide();
+ $('.premium-full', $(premium_id)).show();
// record this one
var id_parts = premium_id.split('-');
- cj('#selectProduct').val(id_parts[1]);
+ $('#selectProduct').val(id_parts[1]);
}
}
// click premium to select
- cj('.premium-short').click(function(){
- select_premium( '#'+cj(cj(this).parent()).attr('id') );
+ $('.premium-short').click(function(){
+ select_premium( '#'+$($(this).parent()).attr('id') );
});
// select the default premium
- var premium_id = cj('#selectProduct').val();
+ var premium_id = $('#selectProduct').val();
if(premium_id == '') premium_id = 'no_thanks';
select_premium('#premium_id-'+premium_id);
}
// see if other amount exists and has a value
- if(cj('.other_amount-content input').length) {
- amount = Number(cj('.other_amount-content input').val());
+ if($('.other_amount-content input').length) {
+ amount = Number($('.other_amount-content input').val());
if(isNaN(amount))
amount = 0;
}
function check_price_set(price_set_radio_buttons) {
if (!amount) {
- cj(price_set_radio_buttons).each(function(){
- if (cj(this).prop('checked')) {
- amount = cj(this).attr('data-amount');
+ $(price_set_radio_buttons).each(function(){
+ if ($(this).prop('checked')) {
+ amount = $(this).attr('data-amount');
if (typeof amount !== "undefined") {
amount = Number(amount);
}
function update_premiums() {
var amount = get_amount();
- cj('.premium').each(function(){
- var min_contribution = cj(this).attr('min_contribution');
+ $('.premium').each(function(){
+ var min_contribution = $(this).attr('min_contribution');
if(amount < min_contribution) {
- cj(this).addClass('premium-disabled');
+ $(this).addClass('premium-disabled');
} else {
- cj(this).removeClass('premium-disabled');
+ $(this).removeClass('premium-disabled');
}
});
}
- cj('.other_amount-content input').change(update_premiums);
- cj('input, #priceset').change(update_premiums);
+ $('.other_amount-content input').change(update_premiums);
+ $('input, #priceset').change(update_premiums);
update_premiums();
// build a list of price sets
var amounts = [];
var price_sets = {};
- cj('input, #priceset select,#priceset').each(function(){
+ $('input, #priceset select,#priceset').each(function(){
if (this.tagName == 'SELECT') {
- var selectID = cj(this).attr('id');
- var selectvalues = JSON.parse(cj(this).attr('price'));
+ var selectID = $(this).attr('id');
+ var selectvalues = JSON.parse($(this).attr('price'));
Object.keys(selectvalues).forEach(function (key) {
var option = selectvalues[key].split(optionSep);
amount = Number(option[0]);
});
}
else {
- var amount = Number(cj(this).attr('data-amount'));
+ var amount = Number($(this).attr('data-amount'));
if (!isNaN(amount)) {
amounts.push(amount);
- var id = cj(this).attr('id');
+ var id = $(this).attr('id');
price_sets[amount] = '#'+id;
}
}
amounts.sort(function(a,b){return a - b});
// make contribution instead buttons work
- cj('.premium-full-disabled input').click(function(){
- var amount = Number(cj(this).attr('amount'));
+ $('.premium-full-disabled input').click(function(){
+ var amount = Number($(this).attr('amount'));
if (price_sets[amount]) {
- if (!cj(price_sets[amount]).length) {
+ if (!$(price_sets[amount]).length) {
var option = price_sets[amount].split('-');
- cj(option[0]).val(option[1]);
- cj(option[0]).trigger('change');
+ $(option[0]).val(option[1]);
+ $(option[0]).trigger('change');
}
- else if (cj(price_sets[amount]).attr('type') == 'checkbox') {
- cj(price_sets[amount]).prop("checked",true);
+ else if ($(price_sets[amount]).attr('type') == 'checkbox') {
+ $(price_sets[amount]).prop("checked",true);
if ((typeof totalfee !== 'undefined') && (typeof display == 'function')) {
if (totalfee > 0) {
totalfee += amount;
}
}
else {
- cj(price_sets[amount]).click();
- cj(price_sets[amount]).trigger('click');
+ $(price_sets[amount]).click();
+ $(price_sets[amount]).trigger('click');
}
} else {
// is there an other amount input box?
- if(cj('.other_amount-section input').length) {
+ if($('.other_amount-section input').length) {
// is this a membership form with separate payment?
if(is_separate_payment) {
var current_amount = 0;
- if(cj('#priceset input[type="radio"]:checked').length) {
- current_amount = Number(cj('#priceset input[type="radio"]:checked').attr('data-amount'));
+ if($('#priceset input[type="radio"]:checked').length) {
+ current_amount = Number($('#priceset input[type="radio"]:checked').attr('data-amount'));
if(!current_amount) current_amount = 0;
}
var new_amount = amount - current_amount;
- cj('.other_amount-section input').val(new_amount.toFixed(2));
+ $('.other_amount-section input').val(new_amount.toFixed(2));
} else {
- cj('.other_amount-section input').click();
- cj('.other_amount-section input').val(cj(this).attr('amount'));
+ $('.other_amount-section input').click();
+ $('.other_amount-section input').val($(this).attr('amount'));
}
} else {
// find the next best price set
selected_price_set = amounts[amounts.length-1];
}
- if (!cj(price_sets[selected_price_set]).length) {
+ if (!$(price_sets[selected_price_set]).length) {
var option = price_sets[selected_price_set].split('-');
- cj(option[0]).val(option[1]);
- cj(option[0]).trigger('change');
+ $(option[0]).val(option[1]);
+ $(option[0]).trigger('change');
}
- else if (cj(price_sets[selected_price_set]).attr('type') == 'checkbox') {
- cj(price_sets[selected_price_set]).prop("checked",true);
+ else if ($(price_sets[selected_price_set]).attr('type') == 'checkbox') {
+ $(price_sets[selected_price_set]).prop("checked",true);
if ((typeof totalfee !== 'undefined') && (typeof display == 'function')) {
if (totalfee > 0) {
totalfee += amount;
}
}
else {
- cj(price_sets[selected_price_set]).click();
- cj(price_sets[selected_price_set]).trigger('click');
+ $(price_sets[selected_price_set]).click();
+ $(price_sets[selected_price_set]).trigger('click');
}
}
}
// validation of premiums
var error_message = '{/literal}{ts escape="js"}You must contribute more to get that item{/ts}{literal}';
- cj.validator.addMethod('premiums', function(value, element, params){
- var premium_id = cj('#selectProduct').val();
- var premium$ = cj('#premium_id-'+premium_id);
+ $.validator.addMethod('premiums', function(value, element, params){
+ var premium_id = $('#selectProduct').val();
+ var premium$ = $('#premium_id-'+premium_id);
if(premium$.length) {
if(premium$.hasClass('premium-disabled')) {
return false;
// add validation rules
CRM.validate.functions.push(function(){
- cj('#selectProduct').rules('add', 'premiums');
+ $('#selectProduct').rules('add', 'premiums');
});
// need to use jquery validate's ignore option, so that it will not ignore hidden fields
{/if} {* $action ne view *}
</div>
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
{literal}
-function getFinancialType()
-{
-{/literal}
- productID = "#product_id";
- financialTypeID = "#financial_type_id"
- callbackURL = "{crmURL p='civicrm/ajax/rest' h=0 q='className=CRM_Financial_Page_AJAX&fnName=jqFinancialType'}"
-{literal}
-
- var check = cj(productID).val();
- callbackURL = callbackURL+"&_value="+check;
- cj.ajax({
- url: callbackURL,
- context: document.body,
- success: function( data, textStatus ){
- data = eval(data);//get json array
- if ( data != null ) {
- cj(financialTypeID).val(data);
-
- }
-
- }
- });
- }
+ CRM.$(function($) {
-cj(document).ready(function(){
+ function getFinancialType() {
+ var callbackURL = CRM.url('civicrm/ajax/rest', {
+ className: 'CRM_Financial_Page_AJAX',
+ fnName: 'jqFinancialType',
+ _value: $("#product_id").val()
+ });
+ $.ajax({
+ url: callbackURL,
+ success: function( data, textStatus ){
+ data = eval(data);//get json array
+ if ( data != null ) {
+ $("#financial_type_id").val(data);
+
+ }
+
+ }
+ });
+
+ }
getFinancialType();
- cj("#product_id").change( function(){
- getFinancialType();
- });
+ $("#product_id").change(getFinancialType);
});
{/literal}
</script>
*}
{capture assign="adminPriceSets"}{crmURL p='civicrm/admin/price' q="reset=1"}{/capture}
<div class="crm-block crm-form-block crm-contribution-contributionpage-amount-form-block">
-{if $isQuick}
- <div id="popupContainer">
- {ts}Once you switch to using a Price Set, you won't be able to switch back to your existing settings below except by re-entering them. Are you sure you want to switch to a Price Set?{/ts}
- </div>
-{/if}
<div id="help">
{ts}Use this form to configure Contribution Amount options. You can give contributors the ability to enter their own contribution amounts - and/or provide a fixed list of amounts. For fixed amounts, you can enter a label for each 'level' of contribution (e.g. Friend, Sustainer, etc.). If you allow people to enter their own dollar amounts, you can also set minimum and maximum values. Depending on your choice of Payment Processor, you may be able to offer a recurring contribution option.{/ts} {docURL page="user/contributions/payment-processors"}
</div>
{literal}
<script type="text/javascript">
- var paymentProcessorMapper = new Array( );
+ var paymentProcessorMapper = [];
{/literal}
{if $recurringPaymentProcessor}
{foreach from=$recurringPaymentProcessor item="paymentProcessor" key="index"}{literal}
{/literal}{/foreach}
{/if}
{literal}
- cj( document ).ready( function( ) {
- cj("#popupContainer").hide();
- function checked_payment_processors() {
- var ids = [];
- cj('.crm-contribution-contributionpage-amount-form-block-payment_processor input[type="checkbox"]').each(function(){
- if(cj(this).prop('checked')) {
- var id = cj(this).attr('id').split('_')[2];
- ids.push(id);
- }
- });
- return ids;
- }
+ CRM.$(function($) {
+ function checked_payment_processors() {
+ var ids = [];
+ $('.crm-contribution-contributionpage-amount-form-block-payment_processor input[type="checkbox"]').each(function(){
+ if($(this).prop('checked')) {
+ var id = $(this).attr('id').split('_')[2];
+ ids.push(id);
+ }
+ });
+ return ids;
+ }
// show/hide recurring block
- cj('.crm-contribution-contributionpage-amount-form-block-payment_processor input[type="checkbox"]').change(function(){
- showRecurring( checked_payment_processors() )
+ $('.crm-contribution-contributionpage-amount-form-block-payment_processor input[type="checkbox"]').change(function(){
+ showRecurring( checked_payment_processors() );
});
- showRecurring( checked_payment_processors() )
+ showRecurring( checked_payment_processors() );
});
var element_other_amount = document.getElementsByName('is_allow_other_amount');
if (! element_other_amount[0].checked) {
{if $isQuick}
{literal}
<script type="text/javascript">
-cj("#quickconfig").click(function(){
-cj("#popupContainer").dialog({
- title: "Selected Price Set",
- width:400,
- height:220,
- modal: true,
- overlay: {
- opacity: 0.5,
- background: "black"
- },
- buttons: {
- "Ok": function() {
- var dataUrl = {/literal}'{crmURL p="civicrm/ajax/rest" h=0 q="className=CRM_Core_Page_AJAX&fnName=setIsQuickConfig&context=civicrm_contribution_page&id=$contributionPageID" }';
- var redirectUrl = '{crmURL p="civicrm/admin/price/field" h=0 q="reset=1&action=browse&sid=" }';
- {literal}
- cj.ajax({
- url: dataUrl,
- async: false,
- global: false,
- success: function ( result ) {
- if (result) {
- window.location= redirectUrl+eval(result);
- }
- }
- });
- },
- "Close": function() {
- cj(this).dialog("close");
- }
- }
-});
-return false;
-});
+ CRM.$(function($) {
+ $("#quickconfig").click(function(e) {
+ e.preventDefault();
+ CRM.confirm({
+ width: 400,
+ message: {/literal}"{ts escape='js'}Once you switch to using a Price Set, you won't be able to switch back to your existing settings below except by re-entering them. Are you sure you want to switch to a Price Set?{/ts}"{literal}
+ }).on('crmConfirm:yes', function() {
+ {/literal}
+ var dataUrl = '{crmURL p="civicrm/ajax/rest" h=0 q="className=CRM_Core_Page_AJAX&fnName=setIsQuickConfig&context=civicrm_contribution_page&id=$contributionPageID" }';
+ {literal}
+ $.getJSON(dataUrl).done(function(result) {window.location = CRM.url("civicrm/admin/price/field", {reset: 1, action: 'browse', sid: result});});
+ });
+ });
+ });
</script>
{/literal}
{/if}
CRM.$(function($) {
// bind click event to premiums_active checkbox
- cj('#premiums_active').click(function () {
+ $('#premiums_active').click(function () {
premiumBlock();
});
// hide premium setting if premium block is not enabled
- if (!cj('#premiums_active').prop('checked')) {
- cj('#premiumSettings').hide();
+ if (!$('#premiums_active').prop('checked')) {
+ $('#premiumSettings').hide();
}
});
+--------------------------------------------------------------------+
*}
<div class="crm-block crm-content-block crm-contribution-view-form-block">
-<h3>{ts}View Contribution{/ts}</h3>
-
<div class="action-link">
<div class="crm-submit-buttons">
{if call_user_func(array('CRM_Core_Permission','check'), 'edit contributions')}
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing/deleting premium *}
-<h3>{if $action eq 1}{ts}New Premium{/ts}{elseif $action eq 2}{ts}Edit Premium{/ts}{elseif $action eq 1024}{ts}Preview a Premium{/ts}{else}{ts}Delete Premium Product{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-contribution-manage_premiums-form-block">
-<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{if $action eq 8}
<div class="messages status no-popup">
<div class="icon inform-icon"></div>
{elseif $action eq 1024}
{include file="CRM/Contribute/Form/Contribution/PremiumBlock.tpl" context="previewPremium"}
{else}
+ <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<table class="form-layout-compressed">
<tr class="crm-contribution-form-block-name">
<td class="label">{$form.name.label} {if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_product' field='name' id=$productId}{/if}
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-{if $context EQ 'Search'}
- {include file="CRM/common/pager.tpl" location="top"}
-{/if}
+{include file="CRM/common/pager.tpl" location="top"}
{strip}
<table class="selector row-highlight">
</tr>
{/foreach}
-{* Link to "View all contributions" for Contact Summary selector display *}
-{if $limit and $pager->_totalItems GT $limit }
- {if $context eq 'dashboard' }
- <tr class="even-row">
- <td colspan="10"><a href="{crmURL p='civicrm/contribute/search' q='reset=1'}">» {ts}Find more contributions{/ts}... </a></td>
- </tr>
- {elseif $context eq 'contribution' }
- <tr class="even-row">
- <td colspan="8"><a href="{crmURL p='civicrm/contribute/search' q="reset=1&force=1&cid=$contactId"}">» {ts}View all contributions from this contact{/ts}... </a></td>
- </tr>
- {/if}
-{/if}
</table>
{/strip}
-
-
-{if $context EQ 'Search'}
- {include file="CRM/common/pager.tpl" location="bottom"}
-{/if}
+{include file="CRM/common/pager.tpl" location="bottom"}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
$('#showPCP, #showSoftCredit').click(function(){
return showHideSoftCreditAndPCP();
});
<tr><td class="label">{ts}Auto Renew?{/ts}</td><td>{if $recur.auto_renew}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}</td></tr>
{if $recur.payment_processor}<tr><td class="label">{ts}Payment Processor{/ts}</td><td>{$recur.payment_processor}</td></tr>{/if}
</table>
- <div class="crm-submit-buttons"><a class="button cancel form-submit" href="{crmURL p='civicrm/contact/view' q='action=browse&selectedChild=contribute'}">{ts}Done{/ts}</a></div>
+ <div class="crm-submit-buttons"><a class="button cancel crm-form-submit" href="{crmURL p='civicrm/contact/view' q='action=browse&selectedChild=contribute'}">{ts}Done{/ts}</a></div>
</div>
{/if}
{/if}
{foreach from=$recurRows item=row}
{assign var=id value=$row.id}
- <tr id="contribution_recur-{$row.id}" class="crm-entity {cycle values="even-row,odd-row"}{if NOT $row.is_active} disabled{/if}">
+ <tr id="contribution_recur-{$row.id}" data-action="cancel" class="crm-entity {cycle values="even-row,odd-row"}{if NOT $row.is_active} disabled{/if}">
<td>{$row.amount|crmMoney}{if $row.is_test} ({ts}test{/ts}){/if}</td>
<td>{ts}Every{/ts} {$row.frequency_interval} {$row.frequency_unit} </td>
<td>{$row.start_date|crmDate}</td>
// http://civicrm.org/licensing
/*jslint indent: 2 */
/*global CRM, cj */
-CRM.$(function($) {
+(function($) {
'use strict';
var load = {
}
};
- $('#chart_view, #table_view').click(function() {
- if ($(this).hasClass('ui-state-default')) {
- $('.ui-tabs-selected', '#mainTabContainer').removeClass('ui-state-active ui-tabs-selected').addClass('ui-state-default');
- $(this).removeClass('ui-state-default').addClass('ui-state-active ui-tabs-selected');
- load[this.id]();
+ $('#crm-container').on('crmLoad', function (e) {
+ if ($(e.target).is('#crm-main-content-wrapper, #crm-container')) {
+ $('#chart_view, #table_view').click(function () {
+ if ($(this).hasClass('ui-state-default')) {
+ $('.ui-tabs-selected', '#mainTabContainer').removeClass('ui-state-active ui-tabs-selected').addClass('ui-state-default');
+ $(this).removeClass('ui-state-default').addClass('ui-state-active ui-tabs-selected');
+ load[this.id]();
+ }
+ });
+
+ // Initialize chart or table based on url hash
+ if (window.location.hash === '#table_layout') {
+ $('#table_view').click();
+ }
+ else {
+ load.chart_view();
+ }
}
});
-
- // Initialize chart or table based on url hash
- if (window.location.hash === '#table_layout') {
- $('#table_view').click();
- }
- else {
- load.chart_view();
- }
-});
+})(CRM.$);
<div class="float-right">
<table class="form-layout-compressed">
-<tr>
+ <tr>
<td>
- <a href="{$configPagesURL}" class="button"><span>{ts}Manage Contribution Pages{/ts}
- </span></a>
+ <a href="{$configPagesURL}" class="button no-popup"><span>{ts}Manage Contribution Pages{/ts}</span></a>
</td>
- <td><a href="{$newPageURL}" class="button"><span><div class="icon add-icon"></div>{ts}Add Contribution Page{/ts}
- </span></a>
+ <td>
+ <a href="{$newPageURL}" class="button no-popup"><span><div class="icon add-icon"></div>{ts}Add Contribution Page{/ts}</span></a>
</td>
-</tr>
+ </tr>
</table>
</div>
{/if}
{literal}
<script type='text/javascript'>
CRM.$(function($) {
- if (cj("#payment-info").length) {
+ if ($("#payment-info").length) {
var dataUrl = {/literal}'{crmURL p="civicrm/payment/view" h=0 q="action=browse&id=$participantId&cid=`$contactId`&component=event&context=payment_info&snippet=4"}'{literal};
- cj.ajax({
+ $.ajax({
url: dataUrl,
async: false,
success: function(html) {
- cj("#payment-info").html(html).trigger('crmLoad');
+ $("#payment-info").html(html).trigger('crmLoad');
}
});
var taxAmount = "{$totalTaxAmount}";
if (taxAmount) {
- cj('.total_amount-section').show();
+ $('.total_amount-section').show();
}
else {
- cj('.total_amount-section').remove();
+ $('.total_amount-section').remove();
}
}
});
var address_fields = {/literal}{$profileAddressFields|@json_encode}{literal};
var input_ids = {};
var select_ids = {};
- var orig_id = field = field_name = null;
+ var orig_id, field, field_name;
// build input ids
- cj('.billing_name_address-section input').each(function(i){
- orig_id = cj(this).attr('id');
+ $('.billing_name_address-section input').each(function(i){
+ orig_id = $(this).attr('id');
field = orig_id.split('-');
field_name = field[0].replace('billing_', '');
if(field[1]) {
}
}
});
- if(cj('#first_name').length)
+ if($('#first_name').length)
input_ids['#first_name'] = '#billing_first_name';
- if(cj('#middle_name').length)
+ if($('#middle_name').length)
input_ids['#middle_name'] = '#billing_middle_name';
- if(cj('#last_name').length)
+ if($('#last_name').length)
input_ids['#last_name'] = '#billing_last_name';
// build select ids
- cj('.billing_name_address-section select').each(function(i){
- orig_id = cj(this).attr('id');
+ $('.billing_name_address-section select').each(function(i){
+ orig_id = $(this).attr('id');
field = orig_id.split('-');
field_name = field[0].replace('billing_', '').replace('_id', '');
if(field[1]) {
// detect if billing checkbox should default to checked
var checked = true;
for(var id in input_ids) {
- var orig_id = input_ids[id];
- if(cj(id).val() != cj(orig_id).val()) {
+ orig_id = input_ids[id];
+ if($(id).val() != $(orig_id).val()) {
checked = false;
break;
}
}
for(var id in select_ids) {
- var orig_id = select_ids[id];
- if(cj(id).val() != cj(orig_id).val()) {
+ orig_id = select_ids[id];
+ if($(id).val() != $(orig_id).val()) {
checked = false;
break;
}
}
if(checked) {
- cj('#billingcheckbox').prop('checked', true);
- cj('.billing_name_address-group').hide();
+ $('#billingcheckbox').prop('checked', true);
+ if (CRM.billing.billingProfileIsHideable) {
+ $('.billing_name_address-group').hide();
+ }
}
// onchange handlers for non-billing fields
for(var id in input_ids) {
- var orig_id = input_ids[id];
- cj(id).change(function(){
- var id = '#'+cj(this).attr('id');
+ orig_id = input_ids[id];
+ $(id).change(function(){
+ var id = '#'+$(this).attr('id');
var orig_id = input_ids[id];
// if billing checkbox is active, copy other field into billing field
- if(cj('#billingcheckbox').prop('checked')) {
- cj(orig_id).val( cj(id).val() );
- };
+ if($('#billingcheckbox').prop('checked')) {
+ $(orig_id).val( $(id).val() );
+ }
});
- };
+ }
for(var id in select_ids) {
- var orig_id = select_ids[id];
- cj(id).change(function(){
- var id = '#'+cj(this).attr('id');
+ orig_id = select_ids[id];
+ $(id).change(function(){
+ var id = '#'+$(this).attr('id');
var orig_id = select_ids[id];
// if billing checkbox is active, copy other field into billing field
- if(cj('#billingcheckbox').prop('checked')) {
- cj(orig_id+' option').prop('selected', false);
- cj(orig_id+' option[value="'+cj(id).val()+'"]').prop('selected', true);
- };
+ if($('#billingcheckbox').prop('checked')) {
+ $(orig_id+' option').prop('selected', false);
+ $(orig_id+' option[value="'+$(id).val()+'"]').prop('selected', true);
+ }
if(orig_id == '#billing_country_id-5') {
- cj(orig_id).change();
+ $(orig_id).change();
}
});
- };
+ }
// toggle show/hide
- cj('#billingcheckbox').click(function(){
+ $('#billingcheckbox').click(function(){
if(this.checked) {
- cj('.billing_name_address-group').hide(200);
+ if (CRM.billing.billingProfileIsHideable) {
+ $('.billing_name_address-group').hide(200);
+ }
// copy all values
for(var id in input_ids) {
- var orig_id = input_ids[id];
- cj(orig_id).val( cj(id).val() );
- };
+ orig_id = input_ids[id];
+ $(orig_id).val( $(id).val() );
+ }
for(var id in select_ids) {
- var orig_id = select_ids[id];
- cj(orig_id+' option').prop('selected', false);
- cj(orig_id+' option[value="'+cj(id).val()+'"]').prop('selected', true);
- };
+ orig_id = select_ids[id];
+ $(orig_id+' option').prop('selected', false);
+ $(orig_id+' option[value="'+$(id).val()+'"]').prop('selected', true);
+ }
} else {
- cj('.billing_name_address-group').show(200);
+ $('.billing_name_address-group').show(200);
}
});
// remove spaces, dashes from credit card number
- cj('#credit_card_number').change(function(){
- var cc = cj('#credit_card_number').val()
+ $('#credit_card_number').change(function(){
+ var cc = $('#credit_card_number').val()
.replace(/ /g, '')
.replace(/-/g, '');
- cj('#credit_card_number').val(cc);
+ $('#credit_card_number').val(cc);
});
});
{/literal}
<script type="text/javascript">
var fieldName = "{/literal}{$field}{literal}";
var tsLocale = "{/literal}{$tsLocale}{literal}";
-cj('#Form').submit(function() {
+var $form = $('form.{/literal}{$form.formClass}{literal}');
+cj($form).submit(function() {
cj(this).ajaxSubmit({
beforeSubmit: function (formData, jqForm, options) {
var queryString = cj.param(formData);
- var postUrl = cj('#Form').attr('action');
+ var postUrl = cj($form).attr('action');
cj.ajax({
type : "POST",
url : postUrl,
</div>
{literal}
<script type="text/Javascript">
- var srcHtmlType = '{/literal}{$srcHtmlType}{literal}';
- var singleValOps = new Array('Text', 'Select', 'Radio', 'Autocomplete-Select');
- var multiValOps = new Array('CheckBox', 'Multi-Select', 'AdvMulti-Select');
function checkCustomDataField( ) {
+ var srcHtmlType = '{/literal}{$srcHtmlType}{literal}';
+ var singleValOps = ['Text', 'Select', 'Radio', 'Autocomplete-Select'];
+ var multiValOps = ['CheckBox', 'Multi-Select', 'AdvMulti-Select'];
var dstHtmlType = cj('#dst_html_type').val( );
if ( !dstHtmlType ) {
return true;
<div class="messages help">{$cd_edit.help_post}</div>
{/if}
{if $cd_edit.is_multiple and ( ( $cd_edit.max_multiple eq '' ) or ( $cd_edit.max_multiple > 0 and $cd_edit.max_multiple > $cgCount ) ) }
- <div id="add-more-link-{$cgCount}" class="add-more-link-{$group_id}-{$cgCount}"><a href="#" onclick="CRM.buildCustomData('{$cd_edit.extends}',{if $cd_edit.subtype}'{$cd_edit.subtype}'{else}'{$cd_edit.extends_entity_column_id}'{/if}, '', {$cgCount}, {$group_id}, true ); return false;">{ts 1=$cd_edit.title}Add another %1 record{/ts}</a></div>
+ <div id="add-more-link-{$cgCount}" class="add-more-link-{$group_id} add-more-link-{$group_id}-{$cgCount}">
+ <a href="#" class="crm-hover-button" onclick="CRM.buildCustomData('{$cd_edit.extends}',{if $cd_edit.subtype}'{$cd_edit.subtype}'{else}'{$cd_edit.extends_entity_column_id}'{/if}, '', {$cgCount}, {$group_id}, true ); return false;">
+ <span class="icon ui-icon-circle-plus"></span>
+ {ts 1=$cd_edit.title}Another %1 record{/ts}
+ </a>
+ </div>
{/if}
{else}
{foreach from=$groupTree item=cd_edit key=group_id name=custom_sets}
<div class="custom-group custom-group-{$cd_edit.name} crm-accordion-wrapper {if $cd_edit.collapse_display and !$skipTitle}collapsed{/if}">
{if !$skipTitle}
<div class="crm-accordion-header">
- {$cd_edit.title}
+ {$cd_edit.title} {$cgCount}
</div><!-- /.crm-accordion-header -->
{/if}
<div class="crm-accordion-body">
<em>{ts 1=$cd_edit.title}Click "Edit Contact" to add more %1 records{/ts}</em>
</div>
{else}
- <div id="add-more-link-{$cgCount}"><a href="#" onclick="CRM.buildCustomData('{$cd_edit.extends}',{if $cd_edit.subtype}'{$cd_edit.subtype}'{else}'{$cd_edit.extends_entity_column_id}'{/if}, '', {$cgCount}, {$group_id}, true ); return false;">{ts 1=$cd_edit.title}Add another %1 record{/ts}</a></div>
+ <div id="add-more-link-{$cgCount}">
+ <a href="#" class="crm-hover-button" onclick="CRM.buildCustomData('{$cd_edit.extends}',{if $cd_edit.subtype}'{$cd_edit.subtype}'{else}'{$cd_edit.extends_entity_column_id}'{/if}, '', {$cgCount}, {$group_id}, true ); return false;">
+ <span class="icon ui-icon-circle-plus"></span>
+ {ts 1=$cd_edit.title}Another %1 record{/ts}
+ </a>
+ </div>
{/if}
{/if}
{/if}
+--------------------------------------------------------------------+
*}
{* this template is used for confirmation of delete for a Fields *}
-<h3>{ts}Delete Custom Field{/ts} - {$title}</h3>
<div class="crm-block crm-form-block crm-custom-deletefield-form-block">
<div class="messages status no-popup">
<div class="icon inform-icon"></div>
CRM.$(function($) {
showHideStyle();
- cj('#extends_0').change(function() {
+ $('#extends_0').change(function() {
showHideStyle();
});
if (isGroupEmpty) {
showRange(true);
}
- cj('#is_multiple').click(function() {
+ $('#is_multiple').click(function() {
showRange();
});
function showHideStyle() {
var isShow = false;
- var extend = cj('#extends_0').val();
+ var extend = $('#extends_0').val();
var contactTypes = {/literal}{$contactTypes}{literal};
var showStyle = "{/literal}{$showStyle}{literal}";
var showMultiple = "{/literal}{$showMultiple}{literal}";
var showMaxMultiple = "{/literal}{$showMaxMultiple}{literal}";
- if (cj.inArray(extend, contactTypes) >= 0) {
+ if ($.inArray(extend, contactTypes) >= 0) {
isShow = true;
}
if (isShow) {
- cj("tr#style").show();
- cj("tr#is_multiple").show();
- if (cj('#is_multiple :checked').length) {
- cj("tr#multiple").show();
+ $("tr#style").show();
+ $("tr#is_multiple").show();
+ if ($('#is_multiple :checked').length) {
+ $("tr#multiple").show();
}
}
else {
- cj("tr#style").hide();
- cj("tr#is_multiple").hide();
- cj("tr#multiple").hide();
+ $("tr#style").hide();
+ $("tr#is_multiple").hide();
+ $("tr#multiple").hide();
}
if (showStyle) {
- cj("tr#style").show();
+ $("tr#style").show();
}
if (showMultiple) {
- cj("tr#style").show();
- cj("tr#is_multiple").show();
+ $("tr#style").show();
+ $("tr#is_multiple").show();
}
if (!showMaxMultiple) {
- cj("tr#multiple").hide();
+ $("tr#multiple").hide();
}
- else if(cj( '#is_multiple').prop('checked')) {
- cj("tr#multiple").show();
+ else if($( '#is_multiple').prop('checked')) {
+ $("tr#multiple").show();
}
}
function showRange(onFormLoad) {
- if(cj("#is_multiple :checked").length) {
- cj("tr#multiple").show();
- cj('#collapse_display').prop('checked', '');
- cj("select#style option[value='Tab with table']").prop("selected", true);
+ if($("#is_multiple :checked").length) {
+ $("tr#multiple").show();
+ $('#collapse_display').prop('checked', '');
+ $("select#style option[value='Tab with table']").prop("selected", true);
}
else {
- cj('#collapse_display').prop('checked', 'checked');
- cj("tr#multiple").hide();
+ $('#collapse_display').prop('checked', 'checked');
+ $("tr#multiple").hide();
if (!onFormLoad) {
- cj("select#style option[value='Inline']").prop("selected", true);
+ $("select#style option[value='Inline']").prop("selected", true);
}
}
}
--- /dev/null
+{*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.5 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License and the CiviCRM Licensing Exception along |
+ | with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+*}
+{literal}
+ <script type="text/javascript">
+ CRM.$(function($) {
+ function showHideOperator() {
+ var val = $(this).val();
+ $(this).siblings("span.crm-multivalue-search-op").toggle(!!(val && val.length > 1));
+ }
+ $("span.crm-multivalue-search-op").siblings('select')
+ .off('.crmMultiValue')
+ .on('change.crmMultiValue', showHideOperator)
+ .each(showHideOperator);
+ });
+ </script>
+{/literal}
<div class="crm-accordion-body">
<table class="form-layout-compressed">
{foreach from=$cd_edit.fields item=element key=field_id}
- {assign var="element_name" value='custom_'|cat:$field_id}
- {if $element.options_per_line != 0}
- <tr>
- <td class="label">{$form.$element_name.label}</td>
- <td>
- {assign var="count" value="1"}
- {strip}
- <table class="form-layout-compressed">
- <tr>
- {* sort by fails for option per line. Added a variable to iterate through the element array*}
- {assign var="index" value="1"}
- {foreach name=outer key=key item=item from=$form.$element_name}
- {if $index < 10} {* Hack to skip QF field properties that are not checkbox elements. *}
- {assign var="index" value=`$index+1`}
- {else}
- {if $element.html_type EQ 'CheckBox' AND $smarty.foreach.outer.last EQ 1} {* Put 'match ANY / match ALL' checkbox in separate row. *}
- </tr>
- <tr>
- <td class="op-checkbox" colspan="{$element.options_per_line}" style="padding-top: 0px;">{$form.$element_name.$key.html}</td>
- {else}
- <td class="labels font-light">{$form.$element_name.$key.html}</td>
- {if $count EQ $element.options_per_line}
- </tr>
- <tr>
- {assign var="count" value="1"}
- {else}
- {assign var="count" value=`$count+1`}
- {/if}
- {/if}
- {/if}
- {/foreach}
- </tr>
- </table>
- {/strip}
- </td>
- </tr>
- {else}
{assign var="type" value=`$element.html_type`}
{assign var="element_name" value='custom_'|cat:$field_id}
+ {assign var="operator_name" value='custom_'|cat:$field_id|cat:'_operator'}
{if $element.is_search_range}
{assign var="element_name_from" value=$element_name|cat:"_from"}
{assign var="element_name_to" value=$element_name|cat:"_to"}
{elseif $element.skip_calendar NEQ true }
{include file="CRM/common/jcalendar.tpl" elementName=$element_name}
{/if}
+ {if !empty($form.$operator_name)}
+ <span class="crm-multivalue-search-op" for="{$element_name}">{$form.$operator_name.html}</span>
+ {assign var="add_multivalue_js" value=true}
+ {/if}
{/if}
{if $element.html_type eq 'Autocomplete-Select'}
{if $element.data_type eq 'ContactReference'}
{/if}
</td>
</tr>
- {/if}
{/foreach}
</table>
</div><!-- /.crm-accordion-body -->
</div><!-- /.crm-accordion-wrapper -->
{/foreach}
+ {if !empty($add_multivalue_js)}
+ {include file="CRM/Custom/Form/MultiValueSearch.js.tpl"}
+ {/if}
{/if}
*}
{* Custom Data view mode*}
{assign var="showEdit" value=1}
+{assign var="rowCount" value=1}
{foreach from=$viewCustomData item=customValues key=customGroupId}
{foreach from=$customValues item=cd_edit key=cvID}
{if $multiRecordDisplay neq 'single'}
<div class="crm-accordion-wrapper {if $cd_edit.collapse_display eq 0 or $skipTitle} {else}collapsed{/if}">
{if !$skipTitle}
<div class="crm-accordion-header">
- {$cd_edit.title}
+ {$cd_edit.title} {$rowCount}
</div>
{/if}
<div class="crm-accordion-body">
{if $groupId and $cvID and $editCustomData}
<div class="crm-submit-buttons">
- <a href="#"
- onclick="showDelete( {$cvID}, '{$cd_edit.name}_{$index}', {$customGroupId}, {$contactId} ); return false;"
- class="button delete-button" title="{ts 1=$cd_edit.title}Delete this %1 record{/ts}">
- <span><div class="icon delete-icon"></div>{ts}Delete{/ts}</span>
+ <a href="#" class="crm-hover-button crm-custom-value-del"
+ data-post='{ldelim}"valueID": "{$cvID}", "groupID": "{$customGroupId}", "contactId": "{$contactId}", "key": "{crmKey name='civicrm/ajax/customvalue'}"{rdelim}'
+ title="{ts 1=$cd_edit.title|cat:" `$rowCount`"}Delete %1{/ts}">
+ <span class="icon delete-icon"></span> {ts}Delete{/ts}
</a>
</div>
{/if}
</tr>
</table>
{/foreach}
+ {assign var="rowCount" value=$rowCount+1}
</div>
<!-- end of body -->
<div class="clear"></div>
{if $groupId}
<script type="text/javascript">
{literal}
- function hideStatus(valueID, groupID) {
- cj('#statusmessg_' + groupID + '_' + valueID).hide();
- }
- function showDelete(valueID, elementID, groupID, contactID) {
- var confirmMsg = '{/literal}{ts escape='js'}Are you sure you want to delete this record?{/ts}{literal} <a href="#" onclick="deleteCustomValue( ' + valueID + ',\'' + elementID + '\',' + groupID + ',' + contactID + ' ); return false;" style="text-decoration: underline;">{/literal}{ts escape='js'}Yes{/ts}{literal}</a> <a href="#" onclick="hideStatus( ' + valueID + ', ' + groupID + ' ); return false;" style="text-decoration: underline;">{/literal}{ts escape='js'}No{/ts}{literal}</a>';
- cj('tr#statusmessg_' + groupID + '_' + valueID).show().children().find('span').html(confirmMsg);
- }
- function deleteCustomValue(valueID, elementID, groupID, contactID) {
- var postUrl = {/literal}"{crmURL p='civicrm/ajax/customvalue' h=0 }"{literal},
- request = cj.ajax({
- type: "POST",
- data: "valueID=" + valueID + "&groupID=" + groupID + "&contactId=" + contactID + "&key={/literal}{crmKey name='civicrm/ajax/customvalue'}{literal}",
- url: postUrl,
- success: function (html) {
- cj('#' + elementID).hide();
- hideStatus(valueID, groupID);
- var element = cj('.ui-tabs-nav #tab_custom_' + groupID + ' a');
- cj(element).html(cj(element).attr('title') + ' (' + html + ') ');
- }
+ CRM.$(function($) {
+ // Handle delete of multi-record custom data
+ $('#crm-container')
+ .off('.customValueDel')
+ .on('click.customValueDel', '.crm-custom-value-del', function(e) {
+ e.preventDefault();
+ var $el = $(this),
+ msg = '{/literal}{ts escape="js"}The record will be deleted immediately. This action cannot be undone.{/ts}{literal}';
+ CRM.confirm({title: $el.attr('title'), message: msg})
+ .on('crmConfirm:yes', function() {
+ var url = CRM.url('civicrm/ajax/customvalue');
+ var request = $.post(url, $el.data('post'))
+ .done(CRM.refreshParent($el));
+ CRM.status({success: '{/literal}{ts escape="js"}Record Deleted{/ts}{literal}'}, request);
+ });
+ });
});
- CRM.status({success: '{/literal}{ts escape="js"}Record Deleted{/ts}{literal}'}, request);
- }
{/literal}
</script>
{/if}
{strip}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
<th>{ts}Field Label{/ts}</th>
<th>{ts}Data Type{/ts}</th>
<th>{ts}Field Type{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
<th>{ts}Req?{/ts}</th>
<th>{ts}Searchable?{/ts}</th>
<th>{ts}Enabled?{/ts}</th>
<th></th>
- <th class="hiddenElement"></th>
</tr>
</thead>
<tbody>
<td><span class="crm-editable crmf-label">{$row.label}</span></td>
<td>{$row.data_type}</td>
<td>{$row.html_type}</td>
- <td class="nowrap">{$row.order}</td>
+ <td class="nowrap">{$row.weight}</td>
<td>{if $row.is_required eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{if $row.is_searchable eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</tbody>
</table>
{/strip}
- <div class="action-link">
- <a href="{crmURL p='civicrm/admin/custom/group/field/add' q="reset=1&action=add&gid=$gid"}" id="newCustomField" class="button action-item"><span><div class="icon add-icon"></div>{ts}Add Custom Field{/ts}</span></a>
- </div>
</div>
{else}
{if $action eq 16}
<div class="messages status no-popup">
- <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
- {capture assign=crmURL}{crmURL p='civicrm/admin/custom/group/field/add' q="action=add&reset=1&gid=$gid"}{/capture}
- {ts 1=$groupTitle 2=$crmURL}There are no custom fields for custom group '%1', <a class="action-item" href='%2'>add one</a>.{/ts}
+ <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+ {ts 1=$groupTitle}There are no fields for custom group '%1'</a>.{/ts}
</div>
{/if}
{/if}
+ <div class="action-link">
+ <a href="{crmURL p='civicrm/admin/custom/group/field/add' q="reset=1&action=add&gid=$gid"}" id="newCustomField" class="button action-item"><span><div class="icon add-icon"></div>{ts}Add Custom Field{/ts}</span></a>
+ </div>
{/if}
{include file="CRM/common/crmeditable.tpl"}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
<th>{ts}Set{/ts}</th>
<th>{ts}Enabled?{/ts}</th>
<th>{ts}Used For{/ts}</th>
<th>{ts}Type{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
<th>{ts}Style{/ts}</th>
<th></th>
- <th class='hiddenElement'></th>
</tr>
</thead>
<tbody>
<td id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{if $row.extends eq 'Contact'}{ts}All Contact Types{/ts}{else}{$row.extends_display}{/if}</td>
<td>{$row.extends_entity_column_value}</td>
- <td class="nowrap">{$row.order}</td>
+ <td class="nowrap">{$row.weight}</td>
<td>{$row.style_display}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</tbody>
<script type="text/javascript">
var pay_later_sel = "input#{$form.is_pay_later.name}";
{literal}
-cj("document").ready(function() {
+CRM.$(function($) {
function refresh() {
- var is_pay_later = cj(pay_later_sel).prop("checked");
- cj(".credit_card_info-group").toggle(!is_pay_later);
- cj(".pay-later-instructions").toggle(is_pay_later);
- cj("div.billingNameInfo-section .description").html(is_pay_later ? "Enter the billing address at which you can be invoiced." : "Enter the name as shown on your credit or debit card, and the billing address for this card.");
+ var is_pay_later = $(pay_later_sel).prop("checked");
+ $(".credit_card_info-group").toggle(!is_pay_later);
+ $(".pay-later-instructions").toggle(is_pay_later);
+ $("div.billingNameInfo-section .description").html(is_pay_later ? "Enter the billing address at which you can be invoiced." : "Enter the name as shown on your credit or debit card, and the billing address for this card.");
}
- cj("input#source").prop('disabled', true);
+ $("input#source").prop('disabled', true);
- cj(pay_later_sel).change(function() {
+ $(pay_later_sel).change(function() {
refresh();
});
- cj(".payment_type-section :radio").change(function() {
- var sel = cj(this).attr("id");
- cj(".check_number-section").toggle(
- cj(this).is(":checked") &&
- cj("label[for="+sel+"]").html() == "{/literal}{ts escape='js'}Check{/ts}{literal}"
+ $(".payment_type-section :radio").change(function() {
+ var sel = $(this).attr("id");
+ $(".check_number-section").toggle(
+ $(this).is(":checked") &&
+ $("label[for="+sel+"]").html() == "{/literal}{ts escape='js'}Check{/ts}{literal}"
);
});
refresh();
<script type="text/javascript">
{literal}
CRM.$(function($) {
- cj("#contact_id").change( function( ) {
+ $("#contact_id").change( function( ) {
checkEmail( );
} );
checkEmail( );
{include file="CRM/common/customData.tpl"}
{literal}
<script type="text/javascript">
- cj(document).ready(function() {
+ CRM.$(function($) {
{/literal}
{if $customDataSubType}
CRM.buildCustomData( '{$customDataType}', {$customDataSubType} );
{literal}
<script type="text/javascript">
CRM.$(function($) {
- $('#template_id', '#EventInfo').change(function() {
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
+ $('#template_id', $form).change(function() {
$('#crm-main-content-wrapper')
.crmSnippet({url: CRM.url('civicrm/event/add', {action: 'add', reset: 1, template_id: $(this).val()})})
.crmSnippet('refresh');
</div>
{/if}
<div class="crm-block crm-form-block crm-event-manage-fee-form-block">
-{if $isQuick}
- <div id="popupContainer">
- {ts}Once you switch to using a Price Set, you won't be able to switch back to your existing settings below except by re-entering them. Are you sure you want to switch to a Price Set?{/ts}
- </div>
-{/if}
-<div class="crm-submit-buttons">
+ <div class="crm-submit-buttons">
{include file="CRM/common/formButtons.tpl" location="top"}
-</div>
+ </div>
<table class="form-layout">
<tr class="crm-event-manage-fee-form-block-title">
<script type="text/javascript">
{literal}
CRM.$(function($) {
- cj('#discounted_label_1').focus( );
+ $('#discounted_label_1').focus( );
});
{/literal}
</script>
{if $isQuick}
{literal}
<script type="text/javascript">
-cj( document ).ready( function( ) {
- cj("#popupContainer").hide();
-});
-cj("#quickconfig").click(function(){
-cj("#popupContainer").dialog({
- title: "Selected Price Set",
- width:400,
- height:220,
- modal: true,
- overlay: {
- opacity: 0.5,
- background: "black"
- },
- buttons: {
- "Ok": function() {
- var dataUrl = {/literal}'{crmURL p="civicrm/ajax/rest" h=0 q="className=CRM_Core_Page_AJAX&fnName=setIsQuickConfig&context=civicrm_event&id=$eventId" }';
- var redirectUrl = '{crmURL p="civicrm/admin/price/field" h=0 q="reset=1&action=browse&sid=" }';
- {literal}
- cj.ajax({
- url: dataUrl,
- async: false,
- global: false,
- success: function ( result ) {
- if (result) {
- window.location= redirectUrl+eval(result);
- }
- }
- });
- },
- "Close": function() {
- cj(this).dialog("close");
- }
- }
-});
-return false;
-});
+ CRM.$(function($) {
+ $("#quickconfig").click(function(e) {
+ e.preventDefault();
+ CRM.confirm({
+ width: 400.
+ message: {/literal}"{ts escape='js'}Once you switch to using a Price Set, you won't be able to switch back to your existing settings below except by re-entering them. Are you sure you want to switch to a Price Set?{/ts}"{literal}
+ }).on('crmConfirm:yes', function() {
+ {/literal}
+ var dataUrl = '{crmURL p="civicrm/ajax/rest" h=0 q="className=CRM_Core_Page_AJAX&fnName=setIsQuickConfig&context=civicrm_event&id=$eventId" }';
+ {literal}
+ $.getJSON(dataUrl).done(function(result) {window.location = CRM.url("civicrm/admin/price/field", {reset: 1, action: 'browse', sid: result});});
+ });
+ });
+ });
</script>
{/literal}
{/if}
displayMessage( true );
}
-cj(document).ready(function() {
+CRM.$(function($) {
//FIX ME: by default load 2 blocks and hide add and delete links
//we should make additional block function more flexible to set max block limit
buildBlocks('Email');
// build blocks only if it is not built
function buildBlocks(element) {
- if (!cj('[id='+ element +'_Block_2]').length) {
+ if (!$('[id='+ element +'_Block_2]').length) {
buildAdditionalBlocks(element, 'CRM_Event_Form_ManageEvent_Location');
}
}
hideAddDeleteLinks('Email');
hideAddDeleteLinks('Phone');
function hideAddDeleteLinks(element) {
- cj('#add'+ element).hide();
- cj('[id='+ element +'_Block_2] a:last').hide();
+ $('#add'+ element).hide();
+ $('[id='+ element +'_Block_2] a:last').hide();
}
- cj('#loc_event_id').change(function() {
- cj.ajax({
+ $('#loc_event_id').change(function() {
+ $.ajax({
url: CRM.url('civicrm/ajax/locBlock', 'reset=1'),
type: 'POST',
- data: {'lbid': cj(this).val()},
+ data: {'lbid': $(this).val()},
dataType: 'json',
success: function(data) {
- var selectLocBlockId = cj('#loc_event_id').val();
+ var selectLocBlockId = $('#loc_event_id').val();
for(i in data) {
if ( i == 'count_loc_used' ) {
if ( ((selectLocBlockId == locBlockId) && data['count_loc_used'] > 1) ||
}
} else {
if (i == 'phone_1_phone_type_id' || i == 'phone_2_phone_type_id') {
- cj('#'+i).select2('val', data[i]);
+ $('#'+i).select2('val', data[i]);
}
else {
- cj('#'+i).val(data[i]);
+ $('#'+i).val(data[i]);
}
}
}
});
function displayMessage( set ) {
- cj(document).ready(function() {
+ CRM.$(function($) {
if ( set ) {
- cj('#locUsedMsg').html( locUsedMsgTxt ).addClass('status');
+ $('#locUsedMsg').html( locUsedMsgTxt ).addClass('status');
} else {
- cj('#locUsedMsg').html( ' ' ).removeClass('status');
+ $('#locUsedMsg').html( ' ' ).removeClass('status');
}
});
}
<script type='text/javascript'>
CRM.$(function($) {
populateRecipient();
- cj('#recipient').click( function( ) {
+ $('#recipient').click( function( ) {
populateRecipient();
});
});
{literal}
<script type="text/javascript">
- var fieldOptionsFull = new Array( );
+ var fieldOptionsFull = [];
{/literal}
{foreach from=$priceSet.fields item=fldElement key=fldId}
{if $fldElement.options}
{foreach from=$fldElement.options item=fldOptions key=opId}
{if $fldOptions.is_full}
{literal}
- fieldOptionsFull[{/literal}{$fldId}{literal}] = new Array( );
+ fieldOptionsFull[{/literal}{$fldId}{literal}] = [];
fieldOptionsFull[{/literal}{$fldId}{literal}][{/literal}{$opId}{literal}] = 1;
{/literal}
{/if}
if ( fieldOptionsFull.length > 0 ) {
CRM.$(function($) {
- cj("input,#priceset select,#priceset").each(function () {
- if ( cj(this).attr('price') ) {
- switch( cj(this).attr('type') ) {
+ $("input,#priceset select,#priceset").each(function () {
+ if ( $(this).attr('price') ) {
+ switch( $(this).attr('type') ) {
case 'checkbox':
case 'radio':
- cj(this).click( function() {
+ $(this).click( function() {
validatePriceField(this);
});
break;
case 'select-one':
- cj(this).change( function() {
+ $(this).change( function() {
validatePriceField(this);
});
break;
case 'text':
- cj(this).bind( 'keyup', function() { validatePriceField(this) });
+ $(this).bind( 'keyup', function() { validatePriceField(this) });
break;
}
}
}
);
- cj('#Participant').on("click",'.validate',
+ cj('form[name=Participant]').on("click", '.validate',
function(e) {
var userSubmittedStatus = cj('#status_id').val();
var statusLabel = cj('#status_id option:selected').text();
{elseif $participantMode == 'live'}
{assign var=registerMode value="LIVE"}
{/if}
- <h3>{if $action eq 1}{ts}New Event Registration{/ts}{elseif $action eq 8}{ts}Delete Event Registration{/ts}{else}{ts}Edit Event Registration{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-participant-form-block">
<div class="view-content">
{if $participantMode}
{/if}
{if $action eq 8} {* If action is Delete *}
- <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<div class="crm-participant-form-block-delete messages status no-popup">
<div class="crm-content">
<div class="icon inform-icon"></div>
<td class="font-size12pt view-value">{$displayName} </td>
</tr>
{else}
- {if !$participantMode and !$email and $outBound_option != 2 }
- {assign var='profileCreateCallback' value=1}
- {/if}
<tr class="crm-participant-form-contact-id">
<td class="label">{$form.contact_id.label}</td>
<td>{$form.contact_id.html}</td>
{literal}
CRM.$(function($) {
- var $form = $('form#{/literal}{$form.formName}{literal}');
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
// don't show cart related statuses if it's disabled
{/literal}{if !$enableCart}{literal}
}
{/literal}
- {if $profileCreateCallback}
- {literal}
- function profileCreateCallback( blockNo ) {
- if( cj('#event_id').val( ) && cj('#email-receipt').length > 0 ) {
- checkEmail( );
- }
- }
- {/literal}
- {/if}
</script>
{/if} {* end of main event block*}
}
CRM.$(function($) {
- var updatedFeeUnFormatted = cj('#pricevalue').text();
+ var updatedFeeUnFormatted = $('#pricevalue').text();
var updatedAmt = parseFloat(updatedFeeUnFormatted.replace(/[^0-9-.]/g, ''));
populatebalanceFee(updatedAmt, true);
{literal}
<script type='text/javascript'>
CRM.$(function($) {
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
cj('.total_amount-section').remove();
- cj('#ParticipantFeeSelection').submit(function(e) {
+ cj($form).submit(function(e) {
var partiallyPaid = {/literal}{$partiallyPaid}{literal};
var pendingRefund = {/literal}{$pendingRefund}{literal};
var statusId = cj('#status_id').val();
*}
{* View existing event registration record. *}
<div class="crm-block crm-content-block crm-event-participant-view-form-block">
- <h3>{ts}View Participant{/ts}</h3>
<div class="action-link">
<div class="crm-submit-buttons">
{if call_user_func(array('CRM_Core_Permission','check'), 'edit event participants')}
function allowGroupOnWaitlist( participantCount, currentCount )
{
- var formId = {/literal}'{$formId}'{literal};
+ var formId = {/literal}'{$formName}'{literal};
var waitingMsg = {/literal}'{$waitingMsg}'{literal};
var confirmedMsg = {/literal}'{$confirmedMsg}'{literal};
var paymentBypassed = {/literal}'{$paymentBypassed}'{literal};
* Function to update participant status
*/
CRM.$(function($) {
- cj('#status_change').change( function() {
- if ( cj(this).val() ) {
- cj('.crm-copy-fields [name^="field["][name*="[participant_status]"]').val( cj(this).val() );
+ $('#status_change').change( function() {
+ if ( $(this).val() ) {
+ $('.crm-copy-fields [name^="field["][name*="[participant_status]"]').val( $(this).val() );
}
});
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('input[name="export_format"]').filter('[value=IIF]').prop('checked', true);
- cj('#_qf_Export_next').click(function(){
- cj(this).hide();
- cj('#_qf_Export_cancel').val('{/literal}{ts}Done{/ts}{literal}');
+ $('input[name="export_format"]').filter('[value=IIF]').prop('checked', true);
+ $('#_qf_Export_next').click(function(){
+ $(this).hide();
+ $('#_qf_Export_cancel').val('{/literal}{ts}Done{/ts}{literal}');
});
});
</script>
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing/deleting financial type *}
-<h3>{if $action eq 1}{ts}New Financial Account{/ts}{elseif $action eq 2}{ts}Edit Financial Account{/ts}{else}{ts}Delete Financial Account{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-contribution_type-form-block crm-financial_type-form-block">
{if $action eq 8}
<div class="messages status no-popup">
</tr>
<tr class="crm-contribution-form-block-financial_account_type_id">
<td class="label">{$form.financial_account_type_id.label}</td>
- <td class="html-adjust">{$form.financial_account_type_id.html|crmReplace:class:twenty}</td>
+ <td class="html-adjust">{$form.financial_account_type_id.html}</td>
</tr>
<tr class="crm-contribution-form-block-accounting_code">
<td class="label">{$form.accounting_code.label}</td>
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing/deleting financial batch *}
-<h3>{if $action eq 8}
- {ts}Delete Batch{/ts} - {$batchTitle}
- {elseif $action eq 1}
- {ts}Add New Batch{/ts}
- {elseif $action eq 2}
- {ts}Edit Batch{/ts} - {$batchTitle}
- {/if}
-</h3>
<div class="crm-block crm-form-block crm-financial_type-form-block">
{if $action eq 8}
<div class="messages status">
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing/deleting financial type *}
-<h3>{if $action eq 1}{ts}New Financial Type{/ts}{elseif $action eq 2}{ts}Edit Financial Type{/ts}{else}{ts}Delete Financial Type{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-financial_type-form-block">
{if $action eq 8}
<div class="messages status">
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing/deleting financial type *}
-<h3>{if $action eq 8}{ts}Delete Financial Type Account{/ts}{elseif $action eq 1}{ts}Add New Financial Type Account{/ts}{elseif $action eq 2}{ts}Edit Financial Type Account{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-financial_type-form-block">
{if $action eq 8}
<div class="messages status">
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
$form
.on('click', '.crm-clear-attachment', function(e) {
e.preventDefault();
*}
{* Initialize jQuery validate on a form *}
{* Extra params and functions may be added to the CRM.validate object before this template is loaded *}
-{if !$crm_form_validate_included and $smarty.get.snippet neq 'json' and $form and $form.formName}
+{if !$crm_form_validate_included and $smarty.get.snippet neq 'json' and $form and $form.formClass}
{assign var=crm_form_validate_included value=1}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- $("#{/literal}{$form.formName}{literal}").crmValidate();
+ $("form.{/literal}{$form.formClass}{literal}").crmValidate();
});
</script>
{/literal}
{include file="CRM/Custom/Form/CustomData.tpl"}
{else}
-{if $action eq 1 and $context ne 'standalone'}
- <h3>{ts}New Grant{/ts}</h3>
-{elseif $action eq 2}
- <h3>{ts}Edit Grant{/ts}</h3>
-{elseif $action eq 8}
- <h3>{ts}Delete Grant{/ts}</h3>
-{/if}
-
<div class="crm-block crm-form-block crm-grant-form-block">
{if $action eq 8}
<div class="messages status">
+--------------------------------------------------------------------+
*}
{* this template is used for viewing grants *}
-<h3>{ts}View Grant{/ts}</h3>
<div class="crm-block crm-content-block crm-grant-view-block">
<div class="crm-submit-buttons">
{if call_user_func(array('CRM_Core_Permission','check'), 'edit grants')}
<table class="form-layout">
<tr>
<td class="font-size12pt" colspan="3">
- {$form.sort_name.label} {$form.sort_name.html|crmReplace:class:'twenty'} {$form.buttons.html}<br />
+ {$form.sort_name.label} {$form.sort_name.html} {$form.buttons.html}<br />
</td>
</tr>
</tr>
</table>
</div>
-<br/>
+<div class="css_right">
+ <a class="crm-hover-button action-item" href="{crmURL q="reset=1&update_smart_groups=1"}">{ts}Update Smart Group Counts{/ts}</a> {help id="update_smart_groups"}
+</div>
<table class="crm-group-selector">
<thead>
<tr>
<th class='crm-group-name'>{ts}Name{/ts}</th>
- <th class='crm-group-group_id'>{ts}ID{/ts}</th>
+ <th class='crm-group-count'>{ts}Count{/ts}</th>
<th class='crm-group-created_by'>{ts}Created By{/ts}</th>
<th class='crm-group-description'>{ts}Description{/ts}</th>
<th class='crm-group-group_type'>{ts}Group Type{/ts}</th>
.on('click', 'a.button, a.action-item[href*="action=update"], a.action-item[href*="action=delete"]', CRM.popup)
.on('crmPopupFormSuccess', 'a.button, a.action-item[href*="action=update"], a.action-item[href*="action=delete"]', function() {
// Refresh datatable when form completes
- var $context = $('#crm-main-content-wrapper');
- $('table.crm-group-selector',$context ).dataTable().fnDraw();
+ var $context = $('#crm-main-content-wrapper');
+ $('table.crm-group-selector', $context).dataTable().fnDraw();
});
function buildGroupSelector( filterSearch, parentsOnlyArg ) {
"aaSorting" : [],
"aoColumns" : [
{sClass:'crm-group-name'},
- {sClass:'crm-group-group_id'},
+ {sClass:'crm-group-count'},
{sClass:'crm-group-created_by'},
{sClass:'crm-group-description', bSortable:false},
{sClass:'crm-group-group_type'},
}
},
"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
- var id = $('td:eq(1)', nRow).text();
- $(nRow).addClass('crm-entity').attr('data-entity', 'group').attr('data-id', id);
- $('td:eq(0)', nRow).wrapInner('<span class="crm-editable crmf-name" />');
+ var id = $('td:last', nRow).text().split(',')[0];
+ var cl = $('td:last', nRow).text().split(',')[1];
+ $(nRow).addClass(cl).attr({id: 'row_' + id, 'data-id': id, 'data-entity': 'group'});
+ $('td:eq(0)', nRow).wrapInner('<span class="crm-editable crmf-title" />');
+ $('td:eq(1)', nRow).addClass('right');
$('td:eq(3)', nRow).wrapInner('<span class="crm-editable crmf-description" data-type="textarea" />');
+ if (parentsOnly) {
+ if ($(nRow).hasClass('crm-group-parent')) {
+ $(nRow).find('td:first').prepend('{/literal}<span class="collapsed show-children" title="{ts}show child groups{/ts}"/></span>{literal}');
+ }
+ }
return nRow;
},
"fnDrawCallback": function() {
- setSelectorClass( parentsOnly, showOrgInfo );
$('.crm-editable').crmEditable();
},
"fnServerData": function ( sSource, aoData, fnCallback ) {
});
}
- function setSelectorClass( parentsOnly, showOrgInfo ) {
- var $context = $('#crm-main-content-wrapper');
- $('table.crm-group-selector tr', $context).each( function( ) {
- var className = $(this).find('td:last-child').text();
- $(this).addClass( className );
- var rowID = $(this).find('td:nth-child(2)').text();
- $(this).prop( 'id', 'row_' + rowID );
- if (parentsOnly) {
- if ( $(this).hasClass('crm-group-parent') ) {
- $(this).find('td:first').prepend('{/literal}<span class="collapsed show-children" title="{ts}show child groups{/ts}"/></span>{literal}');
- }
- }
- });
- }
// show hide children
var $context = $('#crm-main-content-wrapper');
$('table.crm-group-selector', $context).on( 'click', 'span.show-children', function(){
"success": function(response){
var appendHTML = '';
$.each( response, function( i, val ) {
- appendHTML += '<tr id="row_'+ val.group_id +'_'+parent_id+'" data-entity="group" data-id="'+ val.group_id +'" class="crm-entity parent_is_' + parent_id + ' crm-row-child ' + val.class + '">';
+ appendHTML += '<tr id="row_'+ val.group_id +'_'+parent_id+'" data-entity="group" data-id="'+ val.group_id +'" class="parent_is_' + parent_id + ' crm-row-child ' + val.class.split(',')[1] + '">';
if ( val.is_parent ) {
- appendHTML += '<td class="crm-group-name ' + levelClass + '">' + '{/literal}<span class="collapsed show-children" title="{ts}show child groups{/ts}"/></span>{literal}<span class="crm-editable crmf-name">' + val.group_name + '</span></td>';
+ appendHTML += '<td class="crm-group-name ' + levelClass + '">' + '{/literal}<span class="collapsed show-children" title="{ts}show child groups{/ts}"/></span>{literal}<span class="crm-editable crmf-title">' + val.group_name + '</span></td>';
}
else {
- appendHTML += '<td class="crm-group-name ' + levelClass + '"><span class="crm-no-children"></span><span class="crm-editable crmf-name">' + val.group_name + '</span></td>';
+ appendHTML += '<td class="crm-group-name ' + levelClass + '"><span class="crm-no-children"></span><span class="crm-editable crmf-title">' + val.group_name + '</span></td>';
}
- appendHTML += "<td>" + val.group_id + "</td>";
+ appendHTML += '<td class="right">' + val.count + "</td>";
appendHTML += "<td>" + val.created_by + "</td>";
appendHTML += '<td><span class="crm-editable crmf-description" data-type="textarea">' + (val.group_description || '') + "</span></td>";
appendHTML += "<td>" + val.group_type + "</td>";
appendHTML += "<td>" + val.visibility + "</td>";
- if (showOrgInfo) {
- appendHTML += "<td>" + val.org_info + "</td>";
- }
+ if (showOrgInfo) {
+ appendHTML += "<td>" + val.org_info + "</td>";
+ }
appendHTML += "<td>" + val.links + "</td>";
appendHTML += "</tr>";
});
{htxt id="id-group-organization"}
<p>{ts}Some organizations find it useful to be able to connect Organization contacts to Groups (one-to-one relationship) to represent a multi-org hierarchy. The org contact holds info about the org itself (name, location, etc.) and the group holds other sub-groups/contacts related to that group (employees, alumni, online activists, members, etc.).{/ts}</p>
{/htxt}
+
+{htxt id="update_smart_groups-title"}
+ {ts}Update Smart Group Counts{/ts}
+{/htxt}
+{htxt id="update_smart_groups"}
+ <p>
+ {ts}Update this page with current statistics on the number of contacts in each smart group.{/ts}
+ </p>
+{/htxt}
</div>
{literal}
<script type="text/javascript">
-cj("#popupContainer").hide();
-cj("#button").click(function(){
- cj("#popupContainer").dialog({
- title: "Selected Contacts",
- width:700,
- height:500,
- modal: true,
- overlay: {
- opacity: 0.5,
- background: "black"
- }
- });
- });
-
- CRM.$(function($) {
- var count = 0; var columns=''; var sortColumn = '';
- cj('#selectedRecords th').each( function( ) {
- if ( cj(this).attr('class') == 'contact_details' ) {
- sortColumn += '[' + count + ', "asc" ],';
- columns += '{"sClass": "contact_details"},';
- } else {
- columns += '{ "bSortable": false },';
- }
- count++;
- });
+ CRM.$(function($) {
+ $("#popupContainer").hide();
+ $("#button").click(function() {
+ $("#popupContainer").dialog({
+ title: {/literal}"{ts escape='js'}Selected Contacts{/ts}"{literal},
+ width:700,
+ height:500,
+ modal: true
+ });
+ });
+ var count = 0; var columns=''; var sortColumn = '';
- columns = columns.substring(0, columns.length - 1 );
- sortColumn = sortColumn.substring(0, sortColumn.length - 1 );
- eval('sortColumn =[' + sortColumn + ']');
- eval('columns =[' + columns + ']');
+ $('#selectedRecords th').each( function( ) {
+ if ( $(this).attr('class') == 'contact_details' ) {
+ sortColumn += '[' + count + ', "asc" ],';
+ columns += '{"sClass": "contact_details"},';
+ } else {
+ columns += '{ "bSortable": false },';
+ }
+ count++;
+ });
- //load jQuery data table.
- cj('#selectedRecords').dataTable( {
- "sPaginationType": "full_numbers",
- "bJQueryUI" : true,
- "aaSorting" : sortColumn,
- "aoColumns" : columns,
- "bFilter" : false
- });
+ columns = columns.substring(0, columns.length - 1 );
+ sortColumn = sortColumn.substring(0, sortColumn.length - 1 );
+ eval('sortColumn =[' + sortColumn + ']');
+ eval('columns =[' + columns + ']');
+ //load jQuery data table.
+ $('#selectedRecords').dataTable( {
+ "sPaginationType": "full_numbers",
+ "bJQueryUI" : true,
+ "aaSorting" : sortColumn,
+ "aoColumns" : columns,
+ "bFilter" : false
});
+ });
+
</script>
{/literal}
{/if}
<script type="text/javascript" src="{$config->resourceBase}packages/jquery/plugins/jquery-fieldselection.js"></script>
<script type="text/javascript">
-cj('form#{$form.formName}').data('tokens', {$tokens|@json_encode});
+cj('form.{$form.formClass}').data('tokens', {$tokens|@json_encode});
var text_message = null;
var html_message = null;
var isPDF = false;
{literal}
CRM.$(function($) {
if ( isMailing ) {
- cj('div.html').hover(
+ $('div.html').hover(
function( ) {
if ( tinyMCE.get(html_message) ) {
tinyMCE.get(html_message).onKeyUp.add(function() {
{literal}
CRM.$(function($) {
if ( isMailing ) {
- cj('div.html').hover(
+ $('div.html').hover(
verify,
verify
);
}
}
else {
- cj( "#"+ html_message ).replaceSelection( token );
+ $( "#"+ html_message ).replaceSelection( token );
}
}
// Initialize token selector widgets
- var form = $('#{/literal}{$form.formName}{literal}');
+ var form = $('form.{/literal}{$form.formClass}{literal}');
$('input.crm-token-selector', form)
.addClass('crm-action-menu')
.change(insertToken)
placeholder: '{/literal}{ts escape='js'}Insert Token{/ts}{literal}'
});
- cj('.accordion .head').addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ");
- cj('.resizable-textarea textarea').css( 'width', '99%' );
- cj('.grippie').css( 'margin-right', '3px');
- cj('.accordion .head').hover( function() { cj(this).addClass( "ui-state-hover");
- }, function() { cj(this).removeClass( "ui-state-hover");
+ $('.accordion .head').addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ");
+ $('.resizable-textarea textarea').css( 'width', '99%' );
+ $('.grippie').css( 'margin-right', '3px');
+ $('.accordion .head').hover( function() { $(this).addClass( "ui-state-hover");
+ }, function() { $(this).removeClass( "ui-state-hover");
}).bind('click', function() {
- var checkClass = cj(this).find('span').attr( 'class' );
+ var checkClass = $(this).find('span').attr( 'class' );
var len = checkClass.length;
if ( checkClass.substring( len - 1, len ) == 's' ) {
- cj(this).find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-e');
- cj("span#help"+cj(this).find('span').attr('id')).hide();
+ $(this).find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-e');
+ $("span#help"+$(this).find('span').attr('id')).hide();
}
else {
- cj(this).find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
- cj("span#help"+cj(this).find('span').attr('id')).show();
+ $(this).find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
+ $("span#help"+$(this).find('span').attr('id')).show();
}
- cj(this).next().toggle(); return false;
+ $(this).next().toggle(); return false;
}).next().hide();
- cj('span#html').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
- cj("div.html").show();
+ $('span#html').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
+ $("div.html").show();
if ( !isMailing ) {
- cj("div.text").show();
+ $("div.text").show();
}
function setSignature() {
}, 'json');
}
}
- if (!cj().find('div.crm-error').text()) {
- cj(window).load(function () {
+ if (!$().find('div.crm-error').text()) {
+ $(window).load(function () {
setSignature();
});
}
- cj("#fromEmailAddress").change( function( ) {
+ $("#fromEmailAddress").change( function( ) {
setSignature( );
});
});
<script type="text/javascript">
{literal}
CRM.$(function($) {
- cj('#start_date_display').change( function( ) {
- if ( cj(this).val( ) ) {
- cj('#now').prop('checked', false );
+ $('#start_date_display').change( function( ) {
+ if ( $(this).val( ) ) {
+ $('#now').prop('checked', false );
}
});
- cj('#now').change( function( ) {
- if ( cj('#now').prop('checked', true ) ) {
- cj('#start_date_display').val( '' );
- cj('#start_date').val( '' );
- cj('#start_date_time').val( '' );
+ $('#now').change( function( ) {
+ if ( $('#now').prop('checked', true ) ) {
+ $('#start_date_display').val( '' );
+ $('#start_date').val( '' );
+ $('#start_date_time').val( '' );
}
});
});
{literal}
<script type="text/javascript">
- cj(document).ready( function( ) {
- var archiveOption = cj("input[name^='is_archived']:radio");
- cj('#status_unscheduled').change(function() {
- if (cj(this).prop('checked') ) {
+ CRM.$(function($) {
+ var archiveOption = $("input[name^='is_archived']:radio");
+ $('#status_unscheduled').change(function() {
+ if ($(this).prop('checked') ) {
archiveOption.prop({checked: false, disabled: true}).change();
} else {
archiveOption.prop('disabled', false);
}
}).trigger('change');
archiveOption.change(function() {
- if (cj("input[name^='is_archived']:radio:checked").length) {
- cj('#status_unscheduled').prop({checked: false, disabled: true}).change();
+ if ($("input[name^='is_archived']:radio:checked").length) {
+ $('#status_unscheduled').prop({checked: false, disabled: true}).change();
} else {
- cj('#status_unscheduled').prop('disabled', false);
+ $('#status_unscheduled').prop('disabled', false);
}
}).trigger('change');
});
CRM.$(function($) {
// hide all the selects that contains only one option
- cj('.crm-message-select select').each(function (){
- if (cj(this).find('option').size() == 1) {
- cj(this).parent().parent().hide();
+ $('.crm-message-select select').each(function (){
+ if ($(this).find('option').size() == 1) {
+ $(this).parent().parent().hide();
}
});
- if (!cj('#override_verp').prop('checked')){
- cj('.crm-mailing-settings-form-block-forward_replies,.crm-mailing-settings-form-block-auto_responder').hide();
+ if (!$('#override_verp').prop('checked')){
+ $('.crm-mailing-settings-form-block-forward_replies,.crm-mailing-settings-form-block-auto_responder').hide();
}
- cj('#override_verp').click(function(){
- cj('.crm-mailing-settings-form-block-forward_replies,.crm-mailing-settings-form-block-auto_responder').toggle();
- if (!cj('#override_verp').prop('checked')) {
- cj('#forward_replies, #auto_responder').prop('checked', false);
+ $('#override_verp').click(function(){
+ $('.crm-mailing-settings-form-block-forward_replies,.crm-mailing-settings-form-block-auto_responder').toggle();
+ if (!$('#override_verp').prop('checked')) {
+ $('#forward_replies, #auto_responder').prop('checked', false);
}
});
<script type="text/javascript">
var totalPages = {/literal}{$pager->_totalPages}{literal};
CRM.$(function($) {
- cj("#crm-container .crm-pager input.form-submit").click(function () {
+ $("#crm-container .crm-pager input.crm-form-submit").click(function () {
submitPagerData(this);
});
});
{ts 1=$display_name 2=$email}Are you sure you want to resubscribe: %1 (%2){/ts}
<br/>
<center>
-<input type="submit" name="_qf_resubscribe_next" value="{ts}Resubscribe{/ts}" class="form-submit" />
+<input type="submit" name="_qf_resubscribe_next" value="{ts}Resubscribe{/ts}" class="crm-form-submit" />
-<input type="submit" name="_qf_resubscribe_cancel" value="{ts}Cancel{/ts}" class="form-submit" />
+<input type="submit" name="_qf_resubscribe_cancel" value="{ts}Cancel{/ts}" class="crm-form-submit" />
</center>
</form>
</div>
{literal}
<script type="text/javascript">
CRM.$(function($) {
- var membershipValues = new Array;
+ var membershipValues = [];
{/literal}{foreach from=$optionsMembershipTypes item=memType key=opId}{literal}
membershipValues[{/literal}{$opId}{literal}] = {/literal}{$memType}{literal};
{/literal}{/foreach}{literal}
<p>{ts}You will not be able to send an automatic email receipt for this Membership because there is no email address recorded for this contact. If you want a receipt to be sent when this Membership is recorded, click Cancel and then click Edit from the Summary tab to add an email address before recording the Membership.{/ts}</p>
</div>
{/if}
- {if $context NEQ 'standalone'}
- <h3>{if $action eq 1}{ts}New Membership{/ts}{elseif $action eq 2}{ts}Edit Membership{/ts}{else}{ts}Delete Membership{/ts}{/if}</h3>
- {/if}
{if $membershipMode}
<div id="help">
{ts 1=$displayName 2=$registerMode}Use this form to submit Membership Record on behalf of %1. <strong>A %2 transaction will be submitted</strong> using the selected payment processor.{/ts}
<td class="font-size12pt label"><strong>{ts}Member{/ts}</strong></td><td class="font-size12pt"><strong>{$displayName}</strong></td>
</tr>
{else}
- {if !$membershipMode and !$emailExists and $outBound_option != 2}
- {assign var='profileCreateCallback' value=1 }
- {/if}
<td class="label">{$form.contact_id.label}</td>
<td>{$form.contact_id.html}</td>
{/if}
{if $context eq 'standalone' and $outBound_option != 2 }
{literal}
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
$("#contact_id", $form).change(checkEmail);
checkEmail( );
{literal}
//keep read only always checked.
CRM.$(function($) {
- var $form = $("#{/literal}{$form.formName}{literal}");
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
var allowAutoRenew = {/literal}'{$allowAutoRenew}'{literal};
var alreadyAutoRenew = {/literal}'{$alreadyAutoRenew}'{literal};
if ( allowAutoRenew || alreadyAutoRenew ) {
if ((memType > 0) && (allMemberships[memType]['has_related'])) {
if (setDefault) cj('#max_related').val(allMemberships[memType]['max_related']);
cj('#maxRelated').show();
- if(CRM.ids.contact > 0) {
- CRM.api('relationship', 'getcount', {'contact_id' : CRM.ids.contact, 'membership_type_id' : memType}, {
+ var cid = {/literal}{if $contactID}{$contactID}{else}null{/if}{literal};
+ if (cid) {
+ CRM.api('relationship', 'getcount', {contact_id: cid, membership_type_id: memType}, {
success: function(result) {
var relatable = ' ' + result.result + ts(' contacts are ');
if(result.result === 0) {
}
}
- var lastMembershipTypes = new Array;
- var optionsMembershipTypes = new Array;
+ var lastMembershipTypes = [];
+ var optionsMembershipTypes = [];
// function to load custom data for selected membership types through priceset
function processMembershipPriceset( membershipValues, autoRenewOption, reload ) {
- var currentMembershipType = new Array;
+ var currentMembershipType = [];
var count = 0;
var loadCustomData = 0;
if ( membershipValues ) {
}
if ( reload ) {
- lastMembershipTypes = new Array;
+ lastMembershipTypes = [];
{/literal}{if $allowAutoRenew}{literal}
cj('#autoRenew').hide();
var autoRenew = cj("#auto_renew");
*}
{* Configure Membership signup/renewal block for an Online Contribution page *}
<div id="form" class="crm-block crm-form-block crm-member-membershipblock-form-block">
-{if $isQuick}
- <div id="memPopupContainer">
- {ts}Once you switch to using a Price Set, you won't be able to switch back to your existing settings below except by re-entering them. Are you sure you want to switch to a Price Set?{/ts}
- </div>
-{/if}
<div id="help">
{ts}Use this form to enable and configure a Membership Signup and Renewal section for this Online Contribution Page. If you're not using this page for membership signup, leave the <strong>Enabled</strong> box un-checked..{/ts} {docURL page="user/membership/setup"}
</div>
CRM.$(function($) {
//show/hide membership block
showHideMembershipBlock();
- cj('#member_is_active').click( function() {
+ $('#member_is_active').click( function() {
showHideMembershipBlock();
});
//show/ hide blocks if price set is selected
checkIfPriceSetIsSelected( );
- cj('#member_price_set_id').change( function(){
+ $('#member_price_set_id').change( function(){
checkIfPriceSetIsSelected( );
});
});
{if $isQuick}
{literal}
<script type="text/javascript">
-cj( document ).ready( function( ) {
- cj("#memPopupContainer").hide();
-});
-cj("#memQuickconfig").click(function(){
- cj("#memPopupContainer").dialog({
- title: "Selected Price Set",
- width:400,
- height:220,
- modal: true,
- overlay: {
- opacity: 0.5,
- background: "black"
- },
- buttons: {
- "Ok": function() {
- var dataUrl = {/literal}'{crmURL p="civicrm/ajax/rest" h=0 q="className=CRM_Core_Page_AJAX&fnName=setIsQuickConfig&context=civicrm_contribution_page&id=$contributionPageID" }';
- var redirectUrl = '{crmURL p="civicrm/admin/price/field" h=0 q="reset=1&action=browse&sid=" }'; {literal}
-
- cj.ajax({
- url: dataUrl,
- async: false,
- global: false,
- success: function ( result ) {
- if (result) {
- window.location= redirectUrl+eval(result);
- }
- }
- });
- },
- "Close": function() {
- cj(this).dialog("close");
- }
- }
+ CRM.$(function($) {
+ $("#memQuickconfig").click(function(e) {
+ e.preventDefault();
+ CRM.confirm({
+ width: 400,
+ message: {/literal}"{ts escape='js'}Once you switch to using a Price Set, you won't be able to switch back to your existing settings below except by re-entering them. Are you sure you want to switch to a Price Set?{/ts}"{literal}
+ }).on('crmConfirm:yes', function() {
+ {/literal}
+ var dataUrl = '{crmURL p="civicrm/ajax/rest" h=0 q="className=CRM_Core_Page_AJAX&fnName=setIsQuickConfig&context=civicrm_contribution_page&id=$contributionPageID" }';
+ {literal}
+ $.getJSON(dataUrl).done(function(result) {window.location = CRM.url("civicrm/admin/price/field", {reset: 1, action: 'browse', sid: result});});
+ });
+ });
});
-return false;
-});
</script>
{/literal}
{/if}
if you want to cancel the automatic renewal option.{/ts}</p>
</div>
{/if}
- <h3>{ts}Renew Membership{/ts}</h3>
{/if}
<div class="crm-block crm-form-block crm-member-membershiprenew-form-block">
<div id="help" class="description">
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('#membershipOrgType').hide();
- cj('#changeNumTerms').hide();
+ $('#membershipOrgType').hide();
+ $('#changeNumTerms').hide();
{/literal}
CRM.buildCustomData('{$customDataType}');
{if $customDataSubType}
+--------------------------------------------------------------------+
*}
{* this template is used for adding/editing/deleting membership type *}
-<h3>{if $action eq 1}{ts}New Membership Type{/ts}{elseif $action eq 2}{ts}Edit Membership Type{/ts}{else}{ts}Delete Membership Type{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-membership-type-form-block">
- <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<div class="form-item" id="membership_type_form">
{if $action eq 8}
<div class="messages status no-popup">
</div>
<div> {include file="CRM/common/formButtons.tpl"}</div>
{else}
+ <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<table class="form-layout-compressed">
<tr class="crm-membership-type-form-block-name">
<td class="label">{$form.name.label} {if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_membership_type' field='name' id=$membershipTypeId}{/if}
<script type="text/javascript">
CRM.$(function($) {
showHidePeriodSettings();
- cj('#duration_unit').change(function(){
+ $('#duration_unit').change(function(){
showHidePeriodSettings();
});
- cj('#period_type').change(function(){
+ $('#period_type').change(function(){
showHidePeriodSettings();
});
{/literal}
{if $action eq 2}
{literal}
- showHideMaxRelated(cj('#relationship_type_id').val());
- cj('#relationship_type_id').change(function(){
- showHideMaxRelated(cj('#relationship_type_id').val());
+ showHideMaxRelated($('#relationship_type_id').val());
+ $('#relationship_type_id').change(function(){
+ showHideMaxRelated($('#relationship_type_id').val());
});
{/literal}{else}{literal}
- showHideMaxRelated(cj('#relationship_type_id :selected').val());
- cj('#relationship_type_id').change(function(){
- showHideMaxRelated(cj('#relationship_type_id :selected').val());
+ showHideMaxRelated($('#relationship_type_id :selected').val());
+ $('#relationship_type_id').change(function(){
+ showHideMaxRelated($('#relationship_type_id :selected').val());
});
{/literal}{/if}{literal}
});
*}
{* View existing membership record. *}
<div class="crm-block crm-content-block crm-membership-view-form-block">
- <h3>{ts}View Membership{/ts}</h3>
<div class="crm-submit-buttons">
{* Check permissions and make sure this is not an inherited membership (edit and delete not allowed for inherited memberships) *}
{if ! $owner_contact_id AND call_user_func(array('CRM_Core_Permission','check'), 'edit memberships') }
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
<th>{ts}Membership{/ts}</th>
<th>{ts}Related{/ts}</th>
<th>{ts}Max{/ts}</th>
<th>{ts}Visibility{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
<th>{ts}Enabled?{/ts}</th>
<th></th>
- <th class="hiddenElement"></th>
</tr>
</thead>
{foreach from=$rows item=row}
<td class="crm-membership-type-relationship_type_name">{$row.relationshipTypeName}</td>
<td class="crm-membership-type-max_related" align="right">{$row.maxRelated}</td>
<td class="crm-membership-type-visibility">{$row.visibility}</td>
- <td class="nowrap crm-membership_type-order">{$row.order}</td>
+ <td class="nowrap crm-membership_type-order">{$row.weight}</td>
<td class="crm-membership-type-status_{$row.id}" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</table>
+--------------------------------------------------------------------+
*}
{* this template is used for updating pledge payment*}
-<h3>{ts}Edit Scheduled Pledge Payment{/ts}</h3>
<div class="crm-block crm-form-block crm-pledge-payment-form-block">
<table class="form-layout-compressed">
<tr><td class="label">{ts}Status{/ts}</td><td class="form-layout">{$status}</td></tr>
</div>
{literal}
<script type="text/javascript">
-cj(document).ready( function() {
- cj('#adjust-option-type').hide();
-});
-function adjustPayment( ) {
-cj('#adjust-option-type').show();
-cj("#scheduled_amount").removeAttr("READONLY");
-cj("#scheduled_amount").css('background-color', '#ffffff');
-}
+ CRM.$(function($) {
+ $('#adjust-option-type').hide();
+ });
+ function adjustPayment( ) {
+ cj('#adjust-option-type').show();
+ cj("#scheduled_amount").removeAttr("READONLY").css('background-color', '#ffffff');
+ }
</script>
{/literal}
<p>{ts}You will not be able to send an acknowledgment for this pledge because there is no email address recorded for this contact. If you want a acknowledgment to be sent when this pledge is recorded, click Cancel and then click Edit from the Summary tab to add an email address before recording the pledge.{/ts}</p>
</div>
{/if}
-{if $action EQ 1}
- <h3>{ts}New Pledge{/ts}</h3>
-{elseif $action EQ 2}
- <h3>{ts}Edit Pledge{/ts}</h3>
+{if $action EQ 2}
{* Check if current Total Pledge Amount is different from original pledge amount. *}
{math equation="x / y" x=$amount y=$installments format="%.2f" assign="currentInstallment"}
{* Check if current Total Pledge Amount is different from original pledge amount. *}
{if $currentInstallment NEQ $eachPaymentAmount}
{assign var=originalPledgeAmount value=`$installments*$eachPaymentAmount`}
{/if}
-{elseif $action EQ 8}
- <h3>{ts}Delete Pledge{/ts}</h3>
{/if}
<div class="crm-block crm-form-block crm-pledge-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{else}
<table class="form-layout-compressed">
{if $context eq 'standalone'}
- {if !$email and $outBound_option != 2}
- {assign var='profileCreateCallback' value=1 }
- {/if}
<tr class="crm-pledge-form-contact-id">
<td class="label">{$form.contact_id.label}</td>
<td>{$form.contact_id.html}</td>
{if $context eq 'standalone' and $outBound_option != 2 }
{literal}
CRM.$(function($) {
- cj("#contact_1").blur( function( ) {
- checkEmail( );
- });
- checkEmail( );
- showHideByValue( 'is_acknowledge', '', 'acknowledgeDate', 'table-row', 'radio', true);
- showHideByValue( 'is_acknowledge', '', 'fromEmail', 'table-row', 'radio', false );
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
+ $("#contact_id", $form).change(checkEmail);
+ checkEmail( );
+
+ function checkEmail( ) {
+ var data = $("#contact_id", $form).select2('data');
+ if (data && data.extra && data.extra.email && data.extra.email.length) {
+ $("#acknowledgment-receipt", $form).show();
+ $("#email-address", $form).html(data.extra.email);
+ }
+ else {
+ $("#acknowledgment-receipt", $form).hide();
+ }
+ }
+
+ showHideByValue( 'is_acknowledge', '', 'acknowledgeDate', 'table-row', 'radio', true);
+ showHideByValue( 'is_acknowledge', '', 'fromEmail', 'table-row', 'radio', false );
});
- function checkEmail( ) {
- var contactID = cj("input[name='contact_select_id[1]']").val();
- if ( contactID ) {
- var postUrl = "{/literal}{crmURL p='civicrm/ajax/checkemail' h=0}{literal}";
- cj.post( postUrl, {contact_id: contactID},
- function ( response ) {
- if ( response ) {
- cj("#acknowledgment-receipt").show( );
- cj("#email-address").html( response );
- } else {
- cj("#acknowledgment-receipt").hide( );
- }
- }
- );
- } else {
- cj("#acknowledgment-receipt").hide( );
- }
- }
- function profileCreateCallback( blockNo ) {
- checkEmail( );
- }
{/literal}
{/if}
</script>
{assign var=originalPledgeAmount value=`$installments*$original_installment_amount`}
{/if}
-<h3>{ts}View Pledge{/ts}</h3>
<div class="crm-block crm-content-block crm-pledge-view-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<table class="crm-info-panel">
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-{if $context EQ 'Search'}
{include file="CRM/common/pager.tpl" location="top"}
-{/if}
-{capture assign=iconURL}<img src="{$config->resourceBase}i/TreePlus.gif" alt="{ts}open section{/ts}"/>{/capture}
-{ts 1=$iconURL}Click %1 to view pledge payments.{/ts}
+<p class="description">
+ {ts}Click arrow to view pledge payments.{/ts}
+</p>
{strip}
<table class="selector row-highlight">
<thead class="sticky">
{if ! $single }
{$row.contact_type}<br/>
{/if}
- <span id="{$row.pledge_id}_show">
+ <span id="{$row.pledge_id}_show" title="{ts}Show payments{/ts}">
<a href="#" onclick="cj('#paymentDetails{$row.pledge_id},#minus{$row.pledge_id}_hide,#{$row.pledge_id}_hide').show();
buildPaymentDetails('{$row.pledge_id}','{$row.contact_id}');
cj('#{$row.pledge_id}_show').hide();
- return false;"><img src="{$config->resourceBase}i/TreePlus.gif" class="action-icon" alt="{ts}open section{/ts}"/></a>
+ return false;"><img src="{$config->resourceBase}i/TreePlus.gif" class="action-icon" alt=">"/></a>
</span>
- <span id="minus{$row.pledge_id}_hide">
+ <span id="minus{$row.pledge_id}_hide" title="{ts}Hide payments{/ts}">
<a href="#" onclick="cj('#paymentDetails{$row.pledge_id},#{$row.pledge_id}_hide,#minus{$row.pledge_id}_hide').hide();
cj('#{$row.pledge_id}_show').show();
- return false;"><img src="{$config->resourceBase}i/TreeMinus.gif" class="action-icon" alt="{ts}open section{/ts}"/></a>
+ return false;"><img src="{$config->resourceBase}i/TreeMinus.gif" class="action-icon" alt="^"/></a>
</span>
</td>
{if ! $single }
</table>
{/strip}
-{if $context EQ 'Search'}
{include file="CRM/common/pager.tpl" location="bottom"}
-{/if}
{* Build pledge payment details*}
{literal}
function buildPaymentDetails( pledgeId, contactId )
{
var dataUrl = {/literal}"{crmURL p='civicrm/pledge/payment' h=0 q="action=browse&snippet=4&context=`$context`&pledgeId="}"{literal} + pledgeId + '&cid=' + contactId;
-
- cj.ajax({
- url : dataUrl,
- dataType: "html",
- timeout : 5000, //Time in milliseconds
- success : function( data ){
- cj( '#paymentDetails' + pledgeId ).html( data ).trigger('crmLoad');
- },
- error : function( XMLHttpRequest, textStatus, errorThrown ) {
- console.error( 'Error: '+ textStatus );
- }
- });
+ CRM.loadPage(dataUrl, {target: '#paymentDetails' + pledgeId});
}
</script>
{/literal}
<td {if ! ($permission EQ 'edit' and ($row.status eq 'Pending' or $row.status eq 'Overdue' or $row.status eq 'Completed')) } colspan="2"{/if} >{$row.label}</td>
{if $context neq user}
{if $permission EQ 'edit' and ($row.status eq 'Pending' or $row.status eq 'Overdue' or $row.status eq 'Completed') }
- <td>
+ <td class="nowrap">
{if $row.status eq 'Completed'} {* Link to view contribution record for completed payment.*}
{capture assign=viewContribURL}{crmURL p="civicrm/contact/view/contribution" q="reset=1&id=`$row.contribution_id`&cid=`$contactId`&action=view&context=`$context`"}{/capture}
- {ts 1=$viewContribURL}<a href='%1'>View Payment</a>{/ts}
+ <a class="crm-hover-button action-item" href="{$viewContribURL}">{ts}View Payment{/ts}</a>
{else} {* Links to record / submit a payment. *}
{capture assign=newContribURL}{crmURL p="civicrm/contact/view/contribution" q="reset=1&action=add&cid=`$contactId`&context=`$context`&ppid=`$row.id`"}{/capture}
- {ts 1=$newContribURL}<a href='%1'>Record Payment (Check, Cash, EFT ...)</a>{/ts}
+ <a class="crm-hover-button action-item" href="{$newContribURL}">{ts}Record Payment{/ts}</a>
{if $newCredit}
- <br/>
{capture assign=newCreditURL}{crmURL p="civicrm/contact/view/contribution" q="reset=1&action=add&cid=`$contactId`&ppid=`$row.id`&context=`$context`&mode=live"}{/capture}
- {ts 1=$newCreditURL}<a href='%1'>Submit Credit Card Payment</a>{/ts}
+ <a class="crm-hover-button action-item" href="{$newCreditURL}">{ts}Credit Card Payment{/ts}</a>
{/if}
- <br/>
{capture assign=editURL}{crmURL p="civicrm/pledge/payment" q="reset=1&action=update&cid=`$contactId`&context=`$context`&ppId=`$row.id`"}{/capture}
- {ts 1=$editURL}<a href='%1'>Edit Scheduled Payment</a>{/ts}
+ <a class="crm-hover-button action-item" href="{$editURL}">{ts}Edit Scheduled Payment{/ts}</a>
{/if}
</td>
{/if}
}
</script>
{/literal}
-<h3>{if $action eq 1}{ts}Add Field{/ts}{elseif $action eq 2}{ts}Edit Field{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-price-field-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
<table class="form-layout">
<td class="left"><h5 class='editPayment'></h5>
{literal}
<script type="text/javascript">
-cj(document).ready(function(){
- cj(document).on('blur', '.distribute', function() {
+CRM.$(function($) {
+ $(document).on('blur', '.distribute', function() {
var totalAmount = 0;
- cj('.distribute').each(function (){
- if(cj(this).val( ).length > 0){
- totalAmount = parseFloat( totalAmount ) + parseFloat( cj(this).val( ) );
+ $('.distribute').each(function (){
+ if($(this).val( ).length > 0){
+ totalAmount = parseFloat( totalAmount ) + parseFloat( $(this).val( ) );
}
});
- cj('.editPayment').text('$ '+totalAmount);
+ $('.editPayment').text('$ '+totalAmount);
var unlocateAmount = '{/literal}{$total}{literal}';
- cj('.unlocateAmount').text('$ '+(unlocateAmount - totalAmount));
+ $('.unlocateAmount').text('$ '+(unlocateAmount - totalAmount));
});
});
</script>
var pPartiRef = Array( );
var optionSep = '|';
- cj(document).ready( function( ) {
+ CRM.$(function($) {
pricesetParticipantCount( );
allowGroupOnWaitlist(0, pPartiCount);
});
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
<th>{ts}Field Label{/ts}</th>
<th>{ts}Field Type{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
<th>{ts}Req?{/ts}</th>
<th>{ts}Enabled?{/ts}</th>
<th>{ts}Active On{/ts}</th>
<th>{ts}Expire On{/ts}</th>
- <th id="nosort">{ts}Price{/ts}</th>
+ <th>{ts}Price{/ts}</th>
{if $getTaxDetails}
<th>{ts}Tax Label{/ts}</th>
<th>{ts}Tax Amount{/ts}</th>
{/if}
<th></th>
- <th class="hiddenElement"></th>
</tr>
</thead>
{foreach from=$priceField key=fid item=row}
<tr id="price_field-{$row.id}" class="crm-entity {cycle values="odd-row,even-row"} {$row.class}{if NOT $row.is_active} disabled{/if}">
<td class="crm-editable" data-field="label">{$row.label}</td>
<td>{$row.html_type}</td>
- <td class="nowrap">{$row.order}</td>
+ <td class="nowrap">{$row.weight}</td>
<td>{if $row.is_required eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{if $row.active_on}{$row.active_on|date_format:"%Y-%m-%d %T"}{/if}</td>
<td>{if $row.html_type eq "Text / Numeric Quantity" }{$row.tax_amount|crmMoney}{/if}</td>
{/if}
<td class="field-action">{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</table>
{if $action eq 16}
<div class="messages status no-popup">
<div class="icon inform-icon"></div>
- {capture assign=crmURL}{crmURL p='civicrm/admin/price/field q="action=add&reset=1&sid=$sid"}{/capture}
- {ts 1=$groupTitle 2=$crmURL}There are no fields for price set '%1', <a href='%2'>add one</a>.{/ts}
+ {ts 1=$groupTitle 2=$crmURL}There are no fields for price set '%1'.{/ts}
+ </div>
+ <div class="action-link">
+ <a href="{crmURL q="reset=1&action=add&sid=$sid"}" id="newPriceField" class="button"><span><div class="icon add-icon"></div>{ts}Add Price Field{/ts}</span></a>
</div>
{/if}
{/if}
{/if}
{literal}
<script type="text/javascript">
-cj(document).ready(function($) {
+CRM.$(function($) {
{/literal}
var comma = '{$config->monetaryThousandSeparator}';
var dot = '{$config->monetaryDecimalPoint}';
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
- <th>{ts}Option Label{/ts}</th>
- <th>{ts}Option Amount{/ts}</th>
+ <th>{ts}Option Label{/ts}</th>
+ <th>{ts}Option Amount{/ts}</th>
<th>{ts}Default{/ts}</th>
<th>{ts}Financial Type{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
{if $getTaxDetails}
<th>{ts}Tax Label{/ts}</th>
<th>{ts}Tax Amount{/ts}</th>
{/if}
<th>{ts}Enabled?{/ts}</th>
- <th></th>
- <th class="hiddenElement"></th>
+ <th></th>
</tr>
</thead>
{foreach from=$customOption item=row}
{/if}
<td id="row_{$row.id}_status" class="crm-price-option-is_active">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</tbody>
{include file="CRM/Price/Form/DeleteSet.tpl"}
{else}
<div id="help">
- {ts}Price sets allow you to set up multiple event registration options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.{/ts}
+ {ts}Price sets allow you to set up flexible multi-option pricing schemes for your contribution, event and membership pages. Use a price set if the standard pricing options are insufficient for your needs.{/ts}
</div>
{if $usedBy}
{literal}
<script type="text/javascript">
-cj(document).ready(function(){
+CRM.$(function($) {
cj('#selector tr:even').addClass('odd-row ');
cj('#selector tr:odd ').addClass('even-row');
});
{continue}
{/if}
{assign var=n value=$field.name}
+ {assign var="operator_name" value=$n|cat:'_operator'}
{if $field.is_search_range}
{assign var=from value=$field.name|cat:'_from'}
{assign var=to value=$field.name|cat:'_to'}
{$form.$to.label} {include file="CRM/common/jcalendar.tpl" elementName=$to}</td>
</tr>
{/if}
- {elseif $field.options_per_line}
- <tr>
- <td class="option-label">{$form.$n.label}</td>
- <td>
- {assign var="count" value="1"}
- {strip}
- <table class="form-layout-compressed">
- <tr>
- {* sort by fails for option per line. Added a variable to iterate through the element array*}
- {assign var="index" value="1"}
- {foreach name=outer key=key item=item from=$form.$n}
- {if $index < 10} {* Hack to skip QF field properties that are not checkbox elements. *}
- {assign var="index" value=`$index+1`}
- {else}
- {if $field.html_type EQ 'CheckBox' AND $smarty.foreach.outer.last EQ 1} {* Put 'match ANY / match ALL' checkbox in separate row. *}
- </tr>
- <tr>
- <td class="op-checkbox" colspan="{$field.options_per_line}" style="padding-top: 0px;">{$form.$n.$key.html}</td>
- {else}
- <td class="labels font-light">{$form.$n.$key.html}</td>
- {if $count EQ $field.options_per_line}
- </tr>
- <tr>
- {assign var="count" value="1"}
- {else}
- {assign var="count" value=`$count+1`}
- {/if}
- {/if}
- {/if}
- {/foreach}
- </tr>
- </table>
- {/strip}
- </td>
- </tr>
{else}
<tr>
<td class="label">
{else}
{$form.$n.html}
{/if}
- {if $field.html_type eq 'Autocomplete-Select'}
- {if $field.data_type eq 'ContactReference'}
- {include file="CRM/Custom/Form/ContactReference.tpl" element_name = $n}
- {/if}
+ {if $field.html_type eq 'Autocomplete-Select' and $field.data_type eq 'ContactReference'}
+ {include file="CRM/Custom/Form/ContactReference.tpl" element_name = $n}
+ {/if}
+ {if !empty($form.$operator_name)}
+ <span class="crm-multivalue-search-op" for="{$n}">{$form.$operator_name.html}</span>
+ {assign var="add_multivalue_js" value=true}
{/if}
</td>
{/if}
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('#selector tr:even').addClass('odd-row ');
- cj('#selector tr:odd ').addClass('even-row');
+ $('#selector tr:even').addClass('odd-row ');
+ $('#selector tr:odd ').addClass('even-row');
});
</script>
{/literal}
+
+{if !empty($add_multivalue_js)}
+ {include file="CRM/Custom/Form/MultiValueSearch.js.tpl"}
+{/if}
}
var pct = 100 * queueRunnerData.completed / (queueRunnerData.completed + queueRunnerData.numberOfItems);
- cj("#crm-queue-runner-progress").progressbar({ value: pct });
+ $("#crm-queue-runner-progress").progressbar({ value: pct });
if (data.is_error) {
- cj("#crm-queue-runner-buttonset").show();
+ $("#crm-queue-runner-buttonset").show();
if (queueRunnerData.isEnded) {
- cj('#crm-queue-runner-skip').button('disable');
+ $('#crm-queue-runner-skip').button('disable');
}
- cj('#crm-queue-runner-title').text('Error: ' + data.last_task_title);
+ $('#crm-queue-runner-title').text('Error: ' + data.last_task_title);
} else if (!data.is_continue && queueRunnerData.numberOfItems == 0) {
- cj('#crm-queue-runner-title').text('Done');
+ $('#crm-queue-runner-title').text('Done');
} else {
- cj('#crm-queue-runner-title').text('Executed: ' + data.last_task_title);
+ $('#crm-queue-runner-title').text('Executed: ' + data.last_task_title);
}
if (data.exception) {
- cj('#crm-queue-runner-message').html('');
- cj('<div></div>').html(data.exception).prependTo('#crm-queue-runner-message');
+ $('#crm-queue-runner-message').html('');
+ $('<div></div>').html(data.exception).prependTo('#crm-queue-runner-message');
}
};
var handleError = function(jqXHR, textStatus, errorThrown) {
// Do this regardless of whether the response was well-formed
- cj("#crm-queue-runner-buttonset").show();
+ $("#crm-queue-runner-buttonset").show();
- var data = cj.parseJSON(jqXHR.responseText)
+ var data = $.parseJSON(jqXHR.responseText)
if (data) {
displayResponseData(data);
}
// Dequeue and execute the next item
var runNext = function() {
- cj.ajax({
+ $.ajax({
type: 'POST',
url: (queueRunnerData.isEnded ? queueRunnerData.onEndAjax : queueRunnerData.runNextAjax),
data: {
},
dataType: 'json',
beforeSend: function(jqXHR, settings) {
- cj("#crm-queue-runner-buttonset").hide();
+ $("#crm-queue-runner-buttonset").hide();
},
error: handleError,
success: handleSuccess
}
var retryNext = function() {
- cj('#crm-queue-runner-message').html('');
+ $('#crm-queue-runner-message').html('');
runNext();
}
// Dequeue and the next item, then move on to runNext for the subsequent items
var skipNext = function() {
- cj.ajax({
+ $.ajax({
type: 'POST',
url: queueRunnerData.skipNextAjax,
data: {
},
dataType: 'json',
beforeSend: function(jqXHR, settings) {
- cj('#crm-queue-runner-message').html('');
- cj("#crm-queue-runner-buttonset").hide();
+ $('#crm-queue-runner-message').html('');
+ $("#crm-queue-runner-buttonset").hide();
},
error: handleError,
success: handleSuccess
// Set up the UI
- cj("#crm-queue-runner-progress").progressbar({ value: 0 });
+ $("#crm-queue-runner-progress").progressbar({ value: 0 });
if (queueRunnerData.buttons.retry == 1) {
- cj("#crm-queue-runner-retry").button({
+ $("#crm-queue-runner-retry").button({
text: false,
icons: {primary: 'ui-icon-refresh'}
}).click(retryNext);
} else {
- cj("#crm-queue-runner-retry").remove();
+ $("#crm-queue-runner-retry").remove();
}
if (queueRunnerData.buttons.skip == 1) {
- cj("#crm-queue-runner-skip").button({
+ $("#crm-queue-runner-skip").button({
text: false,
icons: {primary: 'ui-icon-seek-next'}
}).click(skipNext);
} else {
- cj("#crm-queue-runner-skip").remove();
+ $("#crm-queue-runner-skip").remove();
}
- cj("#crm-queue-runner-buttonset").buttonset();
- cj("#crm-queue-runner-buttonset").hide();
+ $("#crm-queue-runner-buttonset").buttonset();
+ $("#crm-queue-runner-buttonset").hide();
window.setTimeout(runNext, 50);
});
{/if}
{if $form.groups}
<tr>
- <td>{$form.groups.html|crmAddClass:big}</td>
- <td align="right">{$form.$group.html}</td>
+ <td>
+ {$form.groups.html}{$form.$group.html}
+ <script type="text/javascript">
+ {literal}
+ (function($) {
+ $('#groups').val('').change(function() {
+ CRM.confirm({
+ message: ts({/literal}'{ts escape='js' 1='<em>%1</em>'}Add all contacts to %1 group?{/ts}'{literal}, {1: $('option:selected', '#groups').text()})
+ })
+ .on('crmConfirm:yes', function() {
+ $('#groups').siblings(':submit').click();
+ });
+ $('#groups').select2('val', '');
+ });
+ })(CRM.$);
+ {/literal}
+ </script>
+ </td>
</tr>
{/if}
</table>
}
}
- cj(document).ready(function(){
- cj('.crm-report-criteria-groupby input:checkbox').click(function() {
- cj('#fields_' + this.id.substr(10)).prop('checked', this.checked);
+ CRM.$(function($) {
+ $('.crm-report-criteria-groupby input:checkbox').click(function() {
+ $('#fields_' + this.id.substr(10)).prop('checked', this.checked);
});
{/literal}{if $displayToggleGroupByFields}{literal}
- cj('.crm-report-criteria-field input:checkbox').click(function() {
- cj('#group_bys_' + this.id.substr(7)).prop('checked', this.checked);
+ $('.crm-report-criteria-field input:checkbox').click(function() {
+ $('#group_bys_' + this.id.substr(7)).prop('checked', this.checked);
});
{/literal}{/if}{literal}
});
{literal}
<script type="text/javascript">
- cj(document).ready(function(){
- cj('#birth_date_from').attr('startOffset',200);
- cj('#birth_date_from').attr('endoffset',0);
- cj('#birth_date_to').attr('startOffset',200);
- cj('#birth_date_to').attr('endoffset',0);
+ CRM.$(function($) {
+ $('#birth_date_from, #birth_date_to').attr({startOffset: '200', endoffset: '0'});
});
</script>
{/literal}
{literal}
<script type="text/javascript">
- cj(document).ready(function() {
- cj('#title').data('initial_value', cj('#title').val());
- });
CRM.$(function($) {
var formName = {/literal}"{$form.formName}"{literal};
- cj('#_qf_' + formName + '_submit_save').click (
+ $('#title').data('initial_value', $('#title').val());
+ $('#_qf_' + formName + '_submit_save').click (
function(){
- if ( cj('#is_navigation').prop('checked') && cj('#parent_id').val() == '') {
+ if ( $('#is_navigation').prop('checked') && $('#parent_id').val() == '') {
var confirmMsg = {/literal}'{ts escape="js"}You have chosen to include this report in the Navigation Menu without selecting a Parent Menu item from the dropdown. This will add the report to the top level menu bar. Are you sure you want to continue?{/ts}'{literal}
return confirm(confirmMsg);
}
}
);
- cj('#_qf_' + formName + '_submit_next').click (
+ $('#_qf_' + formName + '_submit_next').click (
function(){
- if ( cj('#title').data('initial_value') == cj('#title').val() ) {
+ if ( $('#title').data('initial_value') == $('#title').val() ) {
var confirmMsg = {/literal}'{ts escape="js"}You are saving a copy of this report with the same report title. Are you sure you want to continue?{/ts}'{literal}
return confirm(confirmMsg);
}
CRM.$(function($) {
buildChart( );
- cj("input[id$='submit_print'],input[id$='submit_pdf']").bind('click', function(e){
+ $("input[id$='submit_print'],input[id$='submit_pdf']").bind('click', function(e){
// image creator php file path and append image name
var url = CRM.url('civicrm/report/chart', 'name=' + '{/literal}{$chartId}{literal}' + '.png');
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
<th>{ts}Label{/ts}</th>
<th>{ts}URL{/ts}</th>
- <th id="nosort">{ts}Description{/ts}</th>
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Description{/ts}</th>
+ <th>{ts}Order{/ts}</th>
{if $showIsDefault}
<th>{ts}Default{/ts}</th>
{/if}
<td class="crm-report-optionList-label crm-editable" data-field="label">{$row.label}</td>
<td class="crm-report-optionList-value">{$row.value}</td>
<td class="crm-report-optionList-description">{$row.description}</td>
- <td class="nowrap crm-report-optionList-order">{$row.order}</td>
+ <td class="nowrap crm-report-optionList-order">{$row.weight}</td>
{if $showIsDefault}
<td class="crm-report-optionList-default_value">{$row.default_value}</td>
{/if}
<td class="crm-report-optionList-is_active" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td class="crm-report-optionList-component_name">{$row.component_name}</td>
<td class="crm-report-optionList-action">{$row.action}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</table>
+--------------------------------------------------------------------+
*}
{* This template is used for adding/configuring SMS Providers *}
-<h3>{if $action eq 1}{ts}New Provider{/ts}{elseif $action eq 2}{ts}Edit Provider{/ts}{else}{ts}Delete Provider{/ts}{/if}</h3>
<div class="crm-block crm-form-block crm-job-form-block">
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
{if $action eq 1 or $action eq 2}
<script type="text/javascript" >
{literal}
- function reload(refresh) {
- var provider = document.getElementById("name");
- var url = {/literal}"{$refreshURL}"{literal}
- var post = url + "&key=" + provider.value;
- if( refresh ) {
- window.location.href = post;
- }
- }
+ CRM.$(function($) {
+ var $form = $("form.{/literal}{$form.formClass}{literal}");
+ $('select[name=name]', $form).change(function() {
+ var url = {/literal}"{$refreshURL}"{literal} + "&key=" + this.value;
+ $(this).closest('.crm-ajax-container, #crm-main-content-wrapper').crmSnippet({url: url}).crmSnippet('refresh');
+ });
+ });
{/literal}
</script>
{/if}
{literal}
CRM.$(function($) {
- cj('#start_date_display').change( function( ) {
- if ( cj(this).val( ) ) {
- cj('#now').prop('checked', false );
+ $('#start_date_display').change( function( ) {
+ if ( $(this).val( ) ) {
+ $('#now').prop('checked', false );
}
});
- cj('#now').change( function( ) {
- if ( cj('#now').prop('checked', true ) ) {
- cj('#start_date_display').val( '' );
- cj('#start_date').val( '' );
- cj('#start_date_time').val( '' );
+ $('#now').change( function( ) {
+ if ( $('#now').prop('checked', true ) ) {
+ $('#start_date_display').val( '' );
+ $('#start_date').val( '' );
+ $('#start_date_time').val( '' );
}
});
});
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-{capture assign=wikiLink}{docURL page="Setting up a SMS Provider for CiviSMS" text="(How to add a SMS Provider)" resource="wiki"}{/capture}
-<div id="help">
- {ts}You can configure one or more SMS Providers for your CiviCRM installation. To learn more about the procedure to install SMS extension and Provider, refer{/ts} {$wikiLink}
-</div>
{if $action eq 1 or $action eq 2 or $action eq 8}
{include file="CRM/SMS/Form/Provider.tpl"}
{else}
+ {capture assign=wikiLink}{docURL page="Setting up a SMS Provider for CiviSMS" text="(How to add a SMS Provider)" resource="wiki"}{/capture}
+ <div id="help">
+ {ts}You can configure one or more SMS Providers for your CiviCRM installation. To learn more about the procedure to install SMS extension and Provider, refer{/ts} {$wikiLink}
+ </div>
{if $rows}
- {if $action ne 1 and $action ne 2}
- <div class="action-link">
- <a href="{crmURL q="action=add&reset=1"}" id="newProvider" class="button"><span><div class="icon add-icon"></div>{ts}Add New Provider{/ts}</span></a>
- </div>
- {/if}
-
-<div id="ltype">
+ <div id="ltype">
{strip}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{/foreach}
</table>
{/strip}
-</div>
-{elseif $action ne 1}
+ </div>
+ {else}
<div class="messages status no-popup">
<div class="icon inform-icon"></div>
- {ts}There are no providers configured.{/ts}
- </div>
- <div class="action-link">
- <a href="{crmURL p='civicrm/admin/sms/provider' q="action=add&reset=1"}" class="button"><span><div class="icon add-icon"></div>{ts}Add SMS Provider{/ts}</span></a>
+ {ts}None found.{/ts}
</div>
-{/if}
+ {/if}
+ <div class="action-link">
+ <a href="{crmURL p='civicrm/admin/sms/provider' q="action=add&reset=1"}" class="button"><span><div class="icon add-icon"></div>{ts}Add SMS Provider{/ts}</span></a>
+ </div>
{/if}
{* this template is used for adding/editing tags *}
{literal}
<style>
- #tagtree .highlighted > label {
- background-color: #FEFD7B;
+ #tagtree .highlighted > span {
+ background-color: #fefca6;
+ }
+ #tagtree .helpicon ins {
+ display: none;
+ }
+ #tagtree ins.jstree-icon {
+ cursor: pointer;
}
</style>
<script type="text/javascript">
(function($, _){{/literal}
- var entityID={$entityID};
- var entityTable='{$entityTable}';
+ var entityID={$entityID},
+ entityTable='{$entityTable}',
+ $form = $('form.{$form.formClass}');
{literal}
CRM.updateContactSummaryTags = function() {
var tags = [];
- $('#tagtree input:checkbox:checked+label').each(function() {
+ $('#tagtree input:checkbox:checked+span label').each(function() {
tags.push($(this).text());
});
$('input.crm-contact-tagset').each(function() {
tags = tags.concat(setTags);
});
// contact summary tabs and search forms both listen for this event
- $('#Tag').closest('.crm-ajax-container').trigger('crmFormSuccess', {tabCount: tags.length});
+ $($form).closest('.crm-ajax-container').trigger('crmFormSuccess', {tabCount: tags.length});
// update summary tab
$("#contact-summary #tags").html(tags.join(', '));
};
$(function() {
- $("#tagtree ul input:checked").each (function(){
- $(this).closest("li").addClass('highlighted');
- });
+ function highlightSelected() {
+ $("ul input:not(:checked)", '#tagtree').each(function () {
+ $(this).closest("li").removeClass('highlighted');
+ });
+ $("ul input:checked", '#tagtree').each(function () {
+ $(this).parents("li[id^=tag]").addClass('highlighted');
+ });
+ }
+ highlightSelected();
$("#tagtree input").change(function(){
var tagid = this.id.replace("check_", "");
var op = (this.checked) ? 'create' : 'delete';
var api = CRM.api3('entity_tag', op, {entity_table: entityTable, entity_id: entityID, tag_id: tagid}, true);
- $(this).closest("li").toggleClass('highlighted');
+ highlightSelected();
CRM.updateContactSummaryTags();
});
//load js tree.
$("#tagtree").jstree({
- "plugins" : ["themes", "html_data"],
- "themes": {"url": CRM.config.resourceBase + 'packages/jquery/plugins/jstree/themes/default/style.css'}
+ plugins : ["themes", "html_data"],
+ themes: {
+ "theme": 'classic',
+ "dots": false,
+ "icons": false,
+ "url": CRM.config.resourceBase + 'packages/jquery/plugins/jstree/themes/classic/style.css'
+ }
});
{/literal}
<div id="Tag" class="view-content">
<h3>{if !$hideContext}{ts}Tags{/ts}{/if}</h3>
<div id="tagtree">
- <ul class="tree">
- {foreach from=$tree item="node" key="id"}
- <li id="tag_{$id}">
- {if ! $node.children}<input name="tagList[{$id}]" id="check_{$id}" type="checkbox" {if $tagged[$id]}checked="checked"{/if}/>{/if}
- {if $node.children}<input name="tagList[{$id}]" id="check_{$id}" type="checkbox" {if $tagged[$id]}checked="checked"{/if}/>{/if}
- {if $node.children} <span class="hit"></span> {/if} <label for="check_{$id}" id="tagLabel_{$id}">{$node.name}</label>
- {if $node.children}
- <ul>
- {foreach from=$node.children item="subnode" key="subid"}
- <li id="tag_{$subid}">
- <input id="check_{$subid}" name="tagList[{$subid}]" type="checkbox" {if $tagged[$subid]}checked="checked"{/if}/>
- {if $subnode.children} <span class="hit"></span> {/if} <label for="check_{$subid}" id="tagLabel_{$subid}">{$subnode.name}</label>
- {if $subnode.children}
- <ul>
- {foreach from=$subnode.children item="subsubnode" key="subsubid"}
- <li id="tag_{$subsubid}">
- <input id="check_{$subsubid}" name="tagList[{$subsubid}]" type="checkbox" {if $tagged[$subsubid]}checked="checked"{/if}/>
- <label for="check_{$subsubid}" id="tagLabel_{$subsubid}">{$subsubnode.name}</label>
- </li>
- {/foreach}
- </ul>
- {/if}
- </li>
- {/foreach}
- </ul>
- {/if}
- </li>
- {/foreach}
- </ul>
+ {include file="CRM/Tag/Form/Tagtree.tpl" level=1}
</div>
<br />
{include file="CRM/common/Tagset.tpl"}
--- /dev/null
+{*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.5 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License and the CiviCRM Licensing Exception along |
+ | with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+*}
+
+{htxt id=$id}
+ {crmAPI var='result' entity='tag' action='getsingle' return="description" id=$id}
+ {$result.description}
+{/htxt}
--- /dev/null
+{*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.5 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License and the CiviCRM Licensing Exception along |
+ | with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+*}
+{* This tpl runs recursively to build each level of the tag tree *}
+<ul class="tree-level-{$level}">
+ {foreach from=$tree item="node" key="id"}
+ <li id="tag_{$id}">
+ <input name="tagList[{$id}]" id="check_{$id}" type="checkbox" {if $tagged[$id]}checked="checked"{/if}/>
+ <span>
+ <label for="check_{$id}" id="tagLabel_{$id}">{$node.name}</label>
+ {if $node.description}{help id=$id title=$node.name file="CRM/Tag/Form/Tagtree"}{/if}
+ </span>
+ {if $node.children}
+ {* Recurse... *}
+ {include file="CRM/Tag/Form/Tagtree.tpl" tree=$node.children level=$level+1}
+ {/if}
+ </li>
+ {/foreach}
+</ul>
{literal}
<script type="text/javascript">
CRM.$(function($) {
- cj('#selector tr:even').addClass('odd-row ');
- cj('#selector tr:odd ').addClass('even-row');
+ $('#selector tr:even').addClass('odd-row');
+ $('#selector tr:odd ').addClass('even-row');
});
</script>
{/literal}
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-<h3>{if $action eq 8}{ts}Delete Field{/ts} - {$fieldTitle}{elseif $action eq 1}{ts}Add Field{/ts}{elseif $action eq 2}{ts}Edit Field{/ts} - {$fieldTitle}{/if}</h3>
<div class="crm-block crm-form-block crm-uf-field-form-block">
{if $action eq 8}
<div class="messages status no-popup">
{literal}
<script type="text/javascript">
-var otherModule = new Array( );
-{/literal}{foreach from=$otherModules item="mval" key="mkey"}{literal}
-otherModule[{/literal}{$mkey}{literal}] = '{/literal}{$mval}{literal}';
-{/literal}{/foreach}{literal}
CRM.$(function($) {
+ var otherModule = {/literal}{$otherModules|@json_encode}{literal};
if ( $.inArray( "Profile", otherModule ) > -1 && $.inArray( "Search Profile", otherModule ) == -1 ){
$('#profile_visibility').show();
}
{* handle enable/disable actions*}
{include file="CRM/common/enableDisableApi.tpl"}
{include file="CRM/common/crmeditable.tpl"}
- {include file="CRM/common/jsortable.tpl"}
- <table id="options" class="display">
+ <table id="options" class="row-highlight">
<thead>
<tr>
<th>{ts}Field Name{/ts}</th>
<th>{ts}Searchable?{/ts}</th>
<th>{ts}In Selector?{/ts}</th>
{/if}
- <th id="order" class="sortable">{ts}Order{/ts}</th>
+ <th>{ts}Order{/ts}</th>
<th>{ts}Required{/ts}</th>
<th>{ts}View Only{/ts}</th>
<th>{ts}Reserved{/ts}</th>
<th></th>
- <th class="hiddenElement"></th>
</tr>
</thead>
{foreach from=$ufField item=row}
<td class="crmf-is_searchable">{if $row.is_searchable eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td class="crmf-in_selector">{if $row.in_selector eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
{/if}
- <td class="nowrap">{$row.order}</td>
+ <td class="nowrap">{$row.weight}</td>
<td class="crmf-is_required">{if $row.is_required eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{if $row.is_view eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{if $row.is_reserved eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td>{$row.action|replace:'xx':$row.id}</td>
- <td class="order hiddenElement">{$row.weight}</td>
</tr>
{/foreach}
</table>
{if $action eq 16}
{capture assign=crmURL}{crmURL p="civicrm/admin/uf/group/field/add" q="reset=1&action=add&gid=$gid"}{/capture}
<div class="messages status no-popup">
- <div class="icon inform-icon"></div>
- {ts 1=$groupTitle 2=$crmURL}There are no CiviCRM Profile Fields for '%1', you can <a href='%2'>add one now</a>.{/ts}
+ <div class="icon inform-icon"></div>
+ {ts 1=$groupTitle 2=$crmURL}There are no CiviCRM Profile Fields for '%1'</a>.{/ts}
+ </div>
+ <div class="action-link">
+ <a href="{crmURL p="civicrm/admin/uf/group/field/add" q="reset=1&action=add&gid=$gid"}" class="button"><span><div class="icon add-icon"></div>{ts}Add Field{/ts}</span></a>
</div>
{/if}
{/if}
<script type='text/javascript'>
CRM.$(function($) {ldelim}
var selectedTab = '{if $selectedChild}{$selectedChild}{else}user-profiles{/if}';
- var tabIndex = cj('#tab_' + selectedTab).prevAll().length;
+ var tabIndex = $('#tab_' + selectedTab).prevAll().length;
{literal}
- cj("#mainTabContainer").tabs( {active: tabIndex} );
+ $("#mainTabContainer").tabs( {active: tabIndex} );
});
{/literal}
</script>
params.autoClose = params.openInline = params.cancelButton = params.refreshAction = false;
ui.panel.on('crmFormLoad', function() {
// Hack: "Save and done" and "Cancel" buttons submit without ajax
- $('.cancel.form-submit, input[name$=upload_done]', this).on('click', function(e) {
+ $('.cancel.crm-form-submit, input[name$=upload_done]', this).on('click', function(e) {
$(this).closest('form').ajaxFormUnbind();
})
});
CRM.$(function($) {
{/literal}
{foreach from=$trackingFields key=trackingFieldName item=dontCare}
- cj("#{$trackingFieldName}").parent().parent().hide( );
+ $("#{$trackingFieldName}").parent().parent().hide( );
{/foreach}
{literal}
}
}
function getAddressBlock( position ) {
- var addressBlockIds = new Array();
+ var addressBlockIds = [];
var i = 0;
switch ( position ) {
case 'last':
{literal}
<script type="text/javascript">
CRM.$(function($) {
- //bind the click event for action icon
- cj('.action-icon').click( function( ) {
- copyFieldValues( cj(this).attr('fname') );
- });
- });
-
- /**
- * This function use to copy fieldsi
- *
- * @param fname string field name
- * @return void
- */
- function copyFieldValues( fname ) {
- // this is the most common pattern for elements, so first check if it exits
- // this check field starting with "field[" and contains [fname] and is not
- // hidden ( for checkbox hidden element is created )
- var elementId = cj('.crm-copy-fields [name^="field["][name*="[' + fname +']"][type!=hidden]');
-
- // get the first element and it's value
- var firstElement = elementId.eq(0);
- var firstElementValue = firstElement.val();
-
- //console.log( elementId );
- //console.log( firstElement );
- //console.log( firstElementValue );
-
- //check if it is date element
- var isDateElement = elementId.attr('format');
-
- // check if it is wysiwyg element
- var editor = elementId.attr('editor');
-
- //get the element type
- var elementType = elementId.attr('type');
-
- // set the value for all the elements, elements needs to be handled are
- // select, checkbox, radio, date fields, text, textarea, multi-select
- // wysiwyg editor, advanced multi-select ( to do )
- if ( elementType == 'radio' ) {
- firstElementValue = elementId.filter(':checked').eq(0).val();
- elementId.filter("[value=" + firstElementValue + "]").prop("checked",true).change();
- }
- else if ( elementType == 'checkbox' ) {
- // handle checkbox
- // get the entity id of first element
- var firstEntityId = cj('.crm-copy-fields > tbody > tr');
-
- if ( firstEntityId.length == 0 ) {
- firstEntityId = firstElement.closest('div.crm-grid-row');
+ /**
+ * This function use to copy fields
+ *
+ * @param fname string field name
+ * @return void
+ */
+ function copyFieldValues( fname ) {
+ // this is the most common pattern for elements, so first check if it exits
+ // this check field starting with "field[" and contains [fname] and is not
+ // hidden ( for checkbox hidden element is created )
+ var elementId = $('.crm-copy-fields [name^="field["][name*="[' + fname +']"][type!=hidden]');
+
+ // get the first element and it's value
+ var firstElement = elementId.eq(0);
+ var firstElementValue = firstElement.val();
+
+ //check if it is date element
+ var isDateElement = elementId.attr('format');
+
+ // check if it is wysiwyg element
+ var editor = elementId.attr('editor');
+
+ //get the element type
+ var elementType = elementId.attr('type');
+
+ // set the value for all the elements, elements needs to be handled are
+ // select, checkbox, radio, date fields, text, textarea, multi-select
+ // wysiwyg editor, advanced multi-select ( to do )
+ if ( elementType == 'radio' ) {
+ firstElementValue = elementId.filter(':checked').eq(0).val();
+ elementId.filter("[value=" + firstElementValue + "]").prop("checked",true).change();
}
+ else if ( elementType == 'checkbox' ) {
+ // handle checkbox
+ // get the entity id of first element
+ var firstEntityId = $('.crm-copy-fields > tbody > tr');
- firstEntityId = firstEntityId.attr('entity_id');
+ if ( firstEntityId.length == 0 ) {
+ firstEntityId = firstElement.closest('div.crm-grid-row');
+ }
- var firstCheckElement = cj('.crm-copy-fields [type=checkbox][name^="field['+ firstEntityId +']['+ fname +']"][type!=hidden]');
+ firstEntityId = firstEntityId.attr('entity_id');
- if ( firstCheckElement.length > 1 ) {
- // lets uncheck all the checkbox except first one
- cj('.crm-copy-fields [type=checkbox][name^="field["][name*="[' + fname +']"][type=checkbox]:not([name^="field['+ firstEntityId +']['+ fname +']["])').prop('checked', false);
+ var firstCheckElement = $('.crm-copy-fields [type=checkbox][name^="field['+ firstEntityId +']['+ fname +']"][type!=hidden]');
- //here for each checkbox for first row, check if it is checked and set remaining checkboxes
- firstCheckElement.each(function() {
- if (cj(this).prop('checked') ) {
- var elementName = cj(this).attr('name');
- var correctIndex = elementName.split('field['+ firstEntityId +']['+ fname +'][');
- correctIndexValue = correctIndex[1].replace(']', '');
- cj('.crm-copy-fields [type=checkbox][name^="field["][name*="['+ fname +']['+ correctIndexValue+']"][type!=hidden]').prop('checked',true).change();
- }
- });
- }
- else {
- if ( firstCheckElement.prop('checked') ) {
- cj('.crm-copy-fields [type=checkbox][name^="field["][name*="['+ fname +']"][type!=hidden]').prop('checked',true).change();
+ if ( firstCheckElement.length > 1 ) {
+ // lets uncheck all the checkbox except first one
+ $('.crm-copy-fields [type=checkbox][name^="field["][name*="[' + fname +']"][type=checkbox]:not([name^="field['+ firstEntityId +']['+ fname +']["])').prop('checked', false);
+
+ //here for each checkbox for first row, check if it is checked and set remaining checkboxes
+ firstCheckElement.each(function() {
+ if ($(this).prop('checked') ) {
+ var elementName = $(this).attr('name');
+ var correctIndex = elementName.split('field['+ firstEntityId +']['+ fname +'][');
+ correctIndexValue = correctIndex[1].replace(']', '');
+ $('.crm-copy-fields [type=checkbox][name^="field["][name*="['+ fname +']['+ correctIndexValue+']"][type!=hidden]').prop('checked',true).change();
+ }
+ });
}
else {
- cj('.crm-copy-fields [type=checkbox][name^="field["][name*="['+ fname +']"][type!=hidden]').prop('checked', false).change();
+ if ( firstCheckElement.prop('checked') ) {
+ $('.crm-copy-fields [type=checkbox][name^="field["][name*="['+ fname +']"][type!=hidden]').prop('checked',true).change();
+ }
+ else {
+ $('.crm-copy-fields [type=checkbox][name^="field["][name*="['+ fname +']"][type!=hidden]').prop('checked', false).change();
+ }
}
}
- }
- else if ( editor ) {
+ else if ( editor ) {
var firstElementId = firstElement.attr('id');
switch ( editor ) {
case 'ckeditor':
// copy first element content to all the elements
elementId.each( function() {
- var elemtId = cj(this).attr('id');
+ var elemtId = $(this).attr('id');
oEditor = CKEDITOR.instances[elemtId];
oEditor.setData( htmlContent );
});
// copy first element content to all the elements
elementId.each( function() {
- var elemtId = cj(this).attr('id');
+ var elemtId = $(this).attr('id');
tinyMCE.get( elemtId ).setContent( htmlContent );
});
break;
if (elementId.is('select') === true && firstElement.parent().find(':input').select().index() >= 1 && firstElement.parent().find('select').select().index < 1) {
// its a multiselect case
firstElement.parent().find(':input').select().each( function(count) {
- var firstElementValue = cj(this).val();
- var elementId = cj('.crm-copy-fields [name^="field["][name*="[' + fname +'][' + count + '"][type!=hidden]');
+ var firstElementValue = $(this).val();
+ var elementId = $('.crm-copy-fields [name^="field["][name*="[' + fname +'][' + count + '"][type!=hidden]');
elementId.val(firstElementValue).not(":first").change();
});
}
}
}
- // since we use different display field for date we also need to set it.
- // also check for date time field and set the value correctly
- if ( isDateElement ) {
- copyValuesDate( fname );
+ // since we use different display field for date we also need to set it.
+ // also check for date time field and set the value correctly
+ if ( isDateElement ) {
+ copyValuesDate( fname );
+ }
+ }
+
+ /**
+ * Special function to handle setting values for date fields
+ *
+ * @param fname string field name
+ * @return void
+ */
+ function copyValuesDate(fname) {
+ var fnameDisplay = fname + '_display';
+ var fnameTime = fname + '_time';
+
+ var displayElement = $('.crm-copy-fields [name^="field_"][name$="_' + fnameDisplay +'"][type!=hidden]');
+ var timeElement = $('.crm-copy-fields [name^="field["][name*="[' + fnameTime +']"][type!=hidden]');
+
+ displayElement.val( displayElement.eq(0).val() );
+ timeElement.val( timeElement.eq(0).val() );
}
- }
-
- /**
- * Special function to handle setting values for date fields
- *
- * @param fname string field name
- * @return void
- */
- function copyValuesDate(fname) {
- var fnameDisplay = fname + '_display';
- var fnameTime = fname + '_time';
-
- var displayElement = cj('.crm-copy-fields [name^="field_"][name$="_' + fnameDisplay +'"][type!=hidden]');
- var timeElement = cj('.crm-copy-fields [name^="field["][name*="[' + fnameTime +']"][type!=hidden]');
-
- displayElement.val( displayElement.eq(0).val() );
- timeElement.val( timeElement.eq(0).val() );
- }
+
+ //bind the click event for action icon
+ $('.action-icon').click(function( ) {
+ copyFieldValues($(this).attr('fname'));
+ });
+ });
+
</script>
{/literal}
// redirect after a small delay
setTimeout("window.location.href = '" + reloadURL + "'", 500);
}
+ else {
+ //CRM-15113 this has the effect of causing the alert to display. Also, as they are already 'actioned' Civi sensibly returns the browser to the
+ //search screen
+ setTimeout(function(){
+ window.location.reload();
+ }, 500);
+ }
}
}
});
function save() {
$row.closest('table').block();
- CRM.api3(info.entity, 'setvalue', {id: info.id, field: 'is_active', value: enabled ? 0 : 1}, {success: successMsg}).done(refresh);
+ CRM.api3(info.entity, info.action, {id: info.id, field: 'is_active', value: enabled ? 0 : 1}, {success: successMsg}).done(refresh);
if (enabled) {
$(this).dialog('close');
}
conf.html(response.content);
if (!response.illegal) {
conf.dialog('option', 'buttons', [
- {text: {/literal}'{ts escape="js"}Disable{/ts}'{literal}, click: save},
- {text: {/literal}'{ts escape="js"}Cancel{/ts}'{literal}, click: function() {$(this).dialog('close');}}
+ {text: {/literal}'{ts escape="js"}Yes{/ts}'{literal}, click: save},
+ {text: {/literal}'{ts escape="js"}No{/ts}'{literal}, click: function() {$(this).dialog('close');}}
]);
}
});
function enableDisable() {
$row = $(this).closest('.crm-entity');
info = $(this).crmEditableEntity();
- fieldLabel = info.label || info.title || info.name || {/literal}'{ts escape="js"}Record{/ts}'{literal};
+ fieldLabel = info.label || info.title || info.display_name || info.name || {/literal}'{ts escape="js"}Record{/ts}'{literal};
enabled = !$row.hasClass('disabled');
if (enabled) {
CRM.confirm({{/literal}
var element_time = "#{$elementId}_time";
{if $timeElement}
element_time = "#{$timeElement}";
- var time_format = cj( element_time ).attr('timeFormat');
+ var time_format = $( element_time ).attr('timeFormat');
{literal}
- cj(element_time).timeEntry({ show24Hours : time_format, spinnerImage: '' });
+ $(element_time).timeEntry({ show24Hours : time_format, spinnerImage: '' });
{/literal}
{/if}
var currentYear = new Date().getFullYear();
var alt_field = '#{$elementId}';
- cj( alt_field ).hide();
- var date_format = cj( alt_field ).attr('format');
+ $( alt_field ).hide();
+ var date_format = $( alt_field ).attr('format');
var altDateFormat = 'mm/dd/yy';
{literal}
}
if ( !( ( date_format == 'M yy' ) || ( date_format == 'yy' ) || ( date_format == 'yy-mm' ) ) ) {
- cj( element_date ).addClass( 'dpDate' );
+ $( element_date ).addClass( 'dpDate' );
}
{/literal}
- var yearRange = currentYear - parseInt( cj( alt_field ).attr('startOffset') );
+ var yearRange = currentYear - parseInt( $( alt_field ).attr('startOffset') );
yearRange += ':';
- yearRange += currentYear + parseInt( cj( alt_field ).attr('endOffset' ) );
+ yearRange += currentYear + parseInt( $( alt_field ).attr('endOffset' ) );
{literal}
- var startRangeYr = currentYear - parseInt( cj( alt_field ).attr('startOffset') );
- var endRangeYr = currentYear + parseInt( cj( alt_field ).attr('endOffset' ) );
+ var startRangeYr = currentYear - parseInt( $( alt_field ).attr('startOffset') );
+ var endRangeYr = currentYear + parseInt( $( alt_field ).attr('endOffset' ) );
var lcMessage = {/literal}"{$config->lcMessages}"{literal};
var localisation = lcMessage.split('_');
- var dateValue = cj(alt_field).val( );
- cj(element_date).datepicker({
+ var dateValue = $(alt_field).val( );
+ $(element_date).datepicker({
closeAtTop : true,
dateFormat : date_format,
changeMonth : true,
// set default value to display field, setDefault param for datepicker
// is not working hence using below logic
// parse the date
- var displayDateValue = cj.datepicker.parseDate( altDateFormat, dateValue );
+ var displayDateValue = $.datepicker.parseDate( altDateFormat, dateValue );
// format date according to display field
- displayDateValue = cj.datepicker.formatDate( date_format, displayDateValue );
- cj( element_date).val( displayDateValue );
+ displayDateValue = $.datepicker.formatDate( date_format, displayDateValue );
+ $( element_date).val( displayDateValue );
//support unsaved-changes warning: CRM-14353
- cj( element_date).data('crm-initial-value', displayDateValue);
+ $( element_date).data('crm-initial-value', displayDateValue);
- cj(element_date).click( function( ) {
+ $(element_date).click( function( ) {
hideYear( this );
});
- cj('.ui-datepicker-trigger').click( function( ) {
- hideYear( cj(this).prev() );
+ $('.ui-datepicker-trigger').click( function( ) {
+ hideYear( $(this).prev() );
});
function hideYear( element ) {
- var format = cj( element ).attr('format');
+ var format = $( element ).attr('format');
if ( format == 'dd-mm' || format == 'mm/dd' ) {
- cj(".ui-datepicker-year").css('display', 'none');
+ $(".ui-datepicker-year").css('display', 'none');
}
}
- cj(alt_field + ',' + element_date + ',' + element_time).on('blur change', function() {
- var vis = cj(alt_field).val() || cj(element_time).val() ? '' : 'hidden';
- cj(this).siblings('.crm-clear-link').css('visibility', vis);
+ $(alt_field + ',' + element_date + ',' + element_time).on('blur change', function() {
+ var vis = $(alt_field).val() || $(element_time).val() ? '' : 'hidden';
+ $(this).siblings('.crm-clear-link').css('visibility', vis);
});
- cj(alt_field).change();
+ $(alt_field).change();
});
{/literal}
*}
{literal}
<script type="text/javascript">
-CRM.$(function($) {
-// for date sorting see http://wiki.civicrm.org/confluence/display/CRMDOC/Sorting+Date+Fields+in+dataTables+Widget
-var useAjax = {/literal}{if $useAjax}1{else}0{/if}{literal};
-var sortEnabled = true;
-var sourceUrl = '';
-var useClass = 'display';
+ CRM.$(function($) {
-var tcount =1;
-if ( useAjax ) {
- {/literal}{if isset($sourceUrl)}sourceUrl = "{$sourceUrl}";{/if}{literal}
- useClass = 'pagerDisplay';
- tcount =5;
-}
+ function getElementClass(element) {
+ return $(element).attr('class') || '';
+ }
-var tableId = '';
-var count = 1;
+ // fetch the occurrence of element
+ function getRowId(row, str) {
+ var optionId;
+ $.each(row, function(i, n) {
+ if (str === $(n).attr('class')) {
+ optionId = i;
+ }
+ });
+ return optionId;
+ }
+
+ // for date sorting see http://wiki.civicrm.org/confluence/display/CRMDOC/Sorting+Date+Fields+in+dataTables+Widget
+ var useAjax = {/literal}{if $useAjax}1{else}0{/if}{literal};
+ var sourceUrl = '';
+ var useClass = 'display';
-//rename id of table with sequence
-//and create the object for navigation
-cj('table.' + useClass).each(function(){
- cj(this).attr('id','option' + tcount + count);
- tableId += count + ',';
- count++;
-});
+ var tcount = 1;
+ if ( useAjax ) {
+ {/literal}{if isset($sourceUrl)}sourceUrl = "{$sourceUrl}";{/if}{literal}
+ useClass = 'pagerDisplay';
+ tcount = 5;
+ }
-//remove last comma
-tableId = tableId.substring(0, tableId.length - 1 );
-eval('tableId =[' + tableId + ']');
+ var tableId = [], count = 1;
- cj.each(tableId, function(i,n){
- tabId = '#option' + tcount + n;
- //get the object of first tr data row.
- tdObject = cj(tabId + ' tr:nth(1) td');
- var id = -1; var count = 0; var columns=''; var sortColumn = '';
- //build columns array for sorting or not sorting
- cj(tabId + ' th').each( function( ) {
- var option = cj(this).prop('id').split("_");
+ //rename id of table with sequence
+ //and create the object for navigation
+ $('table.' + useClass).each(function() {
+ $(this).attr('id','option' + tcount + count);
+ tableId.push(count);
+ count++;
+ });
+
+ $.each(tableId, function(i,n){
+ var tabId = '#option' + tcount + n;
+ //get the object of first tr data row.
+ var tdObject = $(tabId + ' tr:nth(1) td');
+ var id = -1; var count = 0; var columns=''; var sortColumn = '';
+ //build columns array for sorting or not sorting
+ $(tabId + ' th').each( function( ) {
+ var option = $(this).prop('id').split("_");
option = ( option.length > 1 ) ? option[1] : option[0];
- stype = 'numeric';
+ var stype = 'numeric';
switch( option ) {
- case 'sortable':
- sortColumn += '[' + count + ', "asc" ],';
- columns += '{"sClass": "'+ getElementClass( this ) +'"},';
+ case 'sortable':
+ sortColumn += '[' + count + ', "asc" ],';
+ columns += '{"sClass": "'+ getElementClass( this ) +'"},';
break;
- case 'date':
- stype = 'date';
- case 'order':
- if ( cj(this).attr('class') == 'sortable' ){
- sortColumn += '[' + count + ', "asc" ],';
- }
- sortId = getRowId(tdObject, cj(this).attr('id') +' hiddenElement' );
- sortEnabled = true;
- columns += '{ "render": function ( data, type, row ) { return "<div style=\'display:none\'>"+ data +"</div>" + row[sortId] ; }, "targets": sortColumn,"bUseRendered": false},';
+ case 'date':
+ stype = 'date';
+ case 'order':
+ if ( $(this).attr('class') == 'sortable' ){
+ sortColumn += '[' + count + ', "asc" ],';
+ }
+ var sortId = getRowId(tdObject, $(this).attr('id') +' hiddenElement' );
+ columns += '{ "render": function ( data, type, row ) { return "<div style=\'display:none\'>"+ data +"</div>" + row[sortId] ; }, "targets": sortColumn,"bUseRendered": false},';
break;
- case 'nosort':
- columns += '{ "bSortable": false, "sClass": "'+ getElementClass( this ) +'"},';
+ case 'nosort':
+ columns += '{ "bSortable": false, "sClass": "'+ getElementClass( this ) +'"},';
break;
- case 'currency':
- columns += '{ "sType": "currency" },';
+ case 'currency':
+ columns += '{ "sType": "currency" },';
break;
- case 'link':
- columns += '{"sType": "html"},';
+ case 'link':
+ columns += '{"sType": "html"},';
break;
- default:
- if ( cj(this).text() ) {
- columns += '{"sClass": "'+ getElementClass( this ) +'"},';
- } else {
- columns += '{ "bSortable": false },';
- }
+ default:
+ if ( $(this).text() ) {
+ columns += '{"sClass": "'+ getElementClass( this ) +'"},';
+ } else {
+ columns += '{ "bSortable": false },';
+ }
break;
}
count++;
- });
- columns = columns.substring(0, columns.length - 1 );
- sortColumn = sortColumn.substring(0, sortColumn.length - 1 );
- eval('sortColumn =[' + sortColumn + ']');
- eval('columns =[' + columns + ']');
+ });
+ // Fixme: this could be done without eval
+ columns = columns.substring(0, columns.length - 1 );
+ sortColumn = sortColumn.substring(0, sortColumn.length - 1 );
+ eval('sortColumn =[' + sortColumn + ']');
+ eval('columns =[' + columns + ']');
- var currTable = cj(tabId);
- if (currTable) {
- // contains the dataTables master records
- var s = cj(document).dataTableSettings;
- if (s != 'undefined') {
- var len = s.length;
- for (var i=0; i < len; i++) {
- // if already exists, remove from the array
- if (s[i].sInstance = tabId) {
- s.splice(i,1);
- }
- }
+ var currTable = $(tabId);
+ if (currTable) {
+ // contains the dataTables master records
+ var s = $(document).dataTableSettings;
+ if (s != 'undefined') {
+ var len = s.length;
+ for (var i=0; i < len; i++) {
+ // if already exists, remove from the array
+ if (s[i].sInstance = tabId) {
+ s.splice(i,1);
+ }
+ }
}
- }
+ }
- var noRecordFoundMsg = {/literal}'{ts escape="js"}There are no records.{/ts}'{literal};
-
- oTable = null;
- if ( useAjax ) {
- oTable = cj(tabId).dataTable({
- "bFilter" : false,
- "bAutoWidth" : false,
- "aaSorting" : sortColumn,
- "aoColumns" : columns,
- "bProcessing": true,
- "bJQueryUI" : true,
- "asStripClasses" : [ "odd-row", "even-row" ],
- "sPaginationType": "full_numbers",
- "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "sAjaxSource": sourceUrl,
- "oLanguage":{"sEmptyTable" : noRecordFoundMsg,
- "sZeroRecords" : noRecordFoundMsg },
-
- {/literal}{if !empty($callBack)}{literal}
- "fnDrawCallback": function() { checkSelected(); },
- {/literal}{/if}{literal}
-
- "fnServerData": function ( sSource, aoData, fnCallback ) {
- cj.ajax( {
- "dataType": 'json',
- "type": "POST",
- "url": sSource,
- "data": aoData,
- "success": fnCallback
- });
- }
- });
- } else {
- oTable = cj(tabId).dataTable({
- "aaSorting" : sortColumn,
- "bPaginate" : false,
- "bLengthChange": true,
- "bFilter" : false,
- "bInfo" : false,
- "asStripClasses" : [ "odd-row", "even-row" ],
- "bAutoWidth" : false,
- "aoColumns" : columns,
- "bSort" : sortEnabled,
- "oLanguage":{"sEmptyTable" : noRecordFoundMsg,
- "sZeroRecords" : noRecordFoundMsg }
- });
- }
- var object;
+ var noRecordFoundMsg = {/literal}'{ts escape="js"}There are no records.{/ts}'{literal};
+ var oTable;
+ if ( useAjax ) {
+ oTable = $(tabId).dataTable({
+ "bFilter": false,
+ "bAutoWidth": false,
+ "aaSorting": sortColumn,
+ "aoColumns": columns,
+ "bProcessing": true,
+ "bJQueryUI": true,
+ "asStripClasses": [ "odd-row", "even-row" ],
+ "sPaginationType": "full_numbers",
+ "sDom": '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
+ "bServerSide": true,
+ "sAjaxSource": sourceUrl,
+ "oLanguage":{
+ "sEmptyTable": noRecordFoundMsg,
+ "sZeroRecords": noRecordFoundMsg
+ },
+ "fnServerData": function ( sSource, aoData, fnCallback ) {
+ $.ajax( {
+ "dataType": 'json',
+ "type": "POST",
+ "url": sSource,
+ "data": aoData,
+ "success": fnCallback
+ });
+ }
+ });
+ } else {
+ oTable = $(tabId).dataTable({
+ "aaSorting": sortColumn,
+ "bPaginate": false,
+ "bLengthChange": true,
+ "bFilter": false,
+ "bInfo": false,
+ "asStripClasses": [ "odd-row", "even-row" ],
+ "bAutoWidth": false,
+ "aoColumns": columns,
+ "bSort": true,
+ "oLanguage":{
+ "sEmptyTable": noRecordFoundMsg,
+ "sZeroRecords": noRecordFoundMsg
+ }
+ });
+ }
});
-});
-
-function getElementClass( element ) {
-if( cj(element).attr('class') ) return cj(element).attr('class');
-return '';
-}
-
-//function to fetch the occurence of element
-function getRowId(row,str){
- cj.each( row, function(i, n) {
- if( str === cj(n).attr('class') ) {
- optionId = i;
- }
- });
-return optionId;
-}
+ });
-//plugin to sort on currency
-var symbol = "{/literal}{$config->defaultCurrencySymbol($config->defaultSymbol)}{literal}";
-cj.fn.dataTableExt.oSort['currency-asc'] = function(a,b) {
- var x = (a == "-") ? 0 : a.replace( symbol, "" );
- var y = (b == "-") ? 0 : b.replace( symbol, "" );
- x = parseFloat( x );
- y = parseFloat( y );
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
-};
+ //plugin to sort on currency
+ cj.fn.dataTableExt.oSort['currency-asc'] = function(a,b) {
+ var symbol = "{/literal}{$config->defaultCurrencySymbol($config->defaultSymbol)}{literal}";
+ var x = (a == "-") ? 0 : a.replace( symbol, "" );
+ var y = (b == "-") ? 0 : b.replace( symbol, "" );
+ x = parseFloat( x );
+ y = parseFloat( y );
+ return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+ };
-cj.fn.dataTableExt.oSort['currency-desc'] = function(a,b) {
- var x = (a == "-") ? 0 : a.replace( symbol, "" );
- var y = (b == "-") ? 0 : b.replace( symbol, "" );
- x = parseFloat( x );
- y = parseFloat( y );
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
-};
+ cj.fn.dataTableExt.oSort['currency-desc'] = function(a,b) {
+ var symbol = "{/literal}{$config->defaultCurrencySymbol($config->defaultSymbol)}{literal}";
+ var x = (a == "-") ? 0 : a.replace( symbol, "" );
+ var y = (b == "-") ? 0 : b.replace( symbol, "" );
+ x = parseFloat( x );
+ y = parseFloat( y );
+ return ((x < y) ? 1 : ((x > y) ? -1 : 0));
+ };
</script>
{/literal}
<input type="text" id="sort_contact_id" style="display: none" />
<input type="hidden" name="hidden_location" value="1" />
<input type="hidden" name="qfKey" value="{crmKey name='CRM_Contact_Controller_Search' addSequence=1}" />
- <div style="height:1px; overflow:hidden;"><input type="submit" value="{ts}Go{/ts}" name="_qf_Advanced_refresh" class="form-submit default" /></div>
+ <div style="height:1px; overflow:hidden;"><input type="submit" value="{ts}Go{/ts}" name="_qf_Advanced_refresh" class="crm-form-submit default" /></div>
</div>
</form>
<ul>
{* Controller for 'Rows Per Page' *}
{if $location eq 'bottom' and $pager->_totalItems > 25}
<div class="form-item float-right">
- <label for="{$form.formName}-rows-per-page-select">{ts}Rows per page:{/ts}</label>
- <input class="crm-rows-per-page-select" id="{$form.formName}-rows-per-page-select" type="text" size="3" value="{$pager->_perPage}"/>
+ <label for="{$form.formClass}-rows-per-page-select">{ts}Rows per page:{/ts}</label>
+ <input class="crm-rows-per-page-select" id="{$form.formClass}-rows-per-page-select" type="text" size="3" value="{$pager->_perPage}"/>
</div>
<div class="clear"></div>
{/if}
CRM.$(function($) {
{/literal}
var
- $form = $('#{$form.formName}'),
+ $form = $('form.{$form.formClass}'),
numPages = {$pager->_response.numPages},
currentPage = {$pager->_response.currentPage},
perPageCount = {$pager->_perPage},
}
}, 200);
})
- .on('click', 'a.crm-pager-link, #alpha-filter a', function() {
+ // Handle sorting, paging and alpha filtering links
+ .on('click', 'a.crm-pager-link, #alpha-filter a, th a.sorting, th a.sorting_desc, th a.sorting_asc', function(e) {
refresh($(this).attr('href'));
- return false;
+ e.preventDefault();
});
});
{/literal}
}
CRM.$(function($) {
- cj('.crm-group.payment_options-group').show();
+ $('.crm-group.payment_options-group').show();
- cj('input[name="payment_processor"]').change( function() {
- buildPaymentBlock( cj(this).val() );
+ $('input[name="payment_processor"]').change( function() {
+ buildPaymentBlock( $(this).val() );
});
});
<html>
-<head>
-<script type="text/javascript">
- window.location.href = "{$redirectURL}"
-</script>
-<title>{$title}</title>
-</head>
-<body>
-<h2>{$title}</h2>
-<p>
-{$message}
-</p>
-</body>
+ <head>
+ <script type="text/javascript">
+ window.location.href = "{$redirectURL}"
+ </script>
+ <title>{$title}</title>
+ </head>
+ <body>
+ <h2>{$title}</h2>
+ <p>{$message}</p>
+ </body>
</html>
<script type="text/javascript">
{literal}
CRM.$(function($) {
+ var $form = $('form.{/literal}{$form.formClass}{literal}');
function chainSelect(e) {
var info = $(this).data('chainSelect');
var val = info.target.val();
var multiple = info.target.attr('multiple');
var placeholder = $(this).val() ? "{/literal}{ts escape='js'}Loading{/ts}{literal}..." : info.placeholder;
- !multiple && info.target.html('<option value="">' + placeholder + '</option>');
+ if (multiple) {
+ info.target.html('').prop('disabled', true).crmSelect2({placeholder: placeholder});
+ }
+ else {
+ info.target.html('<option value="">' + placeholder + '</option>').prop('disabled', true).crmSelect2();
+ }
if ($(this).val()) {
- if (multiple) {
+ $.getJSON(info.callback, {_value: $(this).val()}, function(data) {
var options = '';
- $.each($(this).val(), function(index, value) {
- $.getJSON(info.callback, {_value: value}, function(data) {
- $.each(data, function() {
- if (this.value) {
- options += '<option value="' + this.value + '">' + this.name + '</option>';
- }
- });
- info.target.html(options).val(val).trigger('change');
- });
- });
- }
- else {
- $.getJSON(info.callback, {_value: $(this).val()}, function(data) {
- var options = '';
+ function buildOptions(data) {
$.each(data, function() {
- if (this.name) {
+ if (this.children) {
+ options += '<optgroup label="' + this.name + '">';
+ buildOptions(this.children);
+ options += '</optgroup>';
+ }
+ else if (this.value || !multiple) {
options += '<option value="' + this.value + '">' + this.name + '</option>';
}
+ else {
+ info.target.crmSelect2({placeholder: this.name});
+ }
});
- info.target.html(options).val(val).trigger('change');
- });
- }
+ }
+ buildOptions(data);
+ info.target.html(options).val(val).prop('disabled', false).trigger('change');
+ });
+ }
+ else {
+ info.target.trigger('change');
+ }
+ }
+ function initField(selector, removePlaceholder) {
+ var $el = $(selector, $form);
+ if (removePlaceholder !== false) {
+ $el.removeAttr('placeholder');
}
+ return $el.css('min-width', '20em').crmSelect2();
}
{/literal}
{foreach from=$config->stateCountryMap item=stateCountryMap}
- {if $stateCountryMap.country && $stateCountryMap.state_province}
- $('select[name="{$stateCountryMap.country}"], #{$stateCountryMap.country}').data('chainSelect', {ldelim}
- callback: CRM.url('civicrm/ajax/jqState'),
- target: $('select[name="{$stateCountryMap.state_province}"], #{$stateCountryMap.state_province}'),
- placeholder: "{ts escape='js'}(choose country first){/ts}"
- {rdelim}).on('change', chainSelect);
- {/if}
{if $stateCountryMap.state_province && $stateCountryMap.county}
- $('select[name="{$stateCountryMap.state_province}"], #{$stateCountryMap.state_province}').data('chainSelect', {ldelim}
+ $('select[name="{$stateCountryMap.state_province}"], select#{$stateCountryMap.state_province}', $form).data('chainSelect', {ldelim}
callback: CRM.url('civicrm/ajax/jqCounty'),
- target: $('select[name="{$stateCountryMap.county}"], #{$stateCountryMap.county}'),
- placeholder: "{ts escape='js'}(choose state first){/ts}"
+ target: initField('select[name="{$stateCountryMap.county}"], #{$stateCountryMap.county}'),
+ placeholder: "{ts escape='js'}Choose state first{/ts}"
{rdelim}).on('change', chainSelect);
{/if}
+ {if $stateCountryMap.country && $stateCountryMap.state_province}
+ initField('select[name="{$stateCountryMap.country}"], select#{$stateCountryMap.country}', false).data('chainSelect', {ldelim}
+ callback: CRM.url('civicrm/ajax/jqState'),
+ target: initField('select[name="{$stateCountryMap.state_province}"], #{$stateCountryMap.state_province}'),
+ placeholder: "{ts escape='js'}Choose country first{/ts}"
+ {rdelim}).on('change', chainSelect).change();
+ {/if}
{/foreach}
{literal}
});
<p>{ts}Click 'Upgrade Now' if you are ready to proceed. Otherwise click 'Cancel' to return to the CiviCRM home page.{/ts}</p>
<input type="hidden" name="action" value="begin" />
<input type="submit" value="{ts}Upgrade Now{/ts}" name="upgrade" onclick="return confirm('{ts escape="js"}Are you sure you are ready to upgrade now?{/ts}');" />
- <a class="button cancel form-submit" value="{ts}Cancel{/ts}" href="{$cancelURL}">{ts}Cancel{/ts}</a>
+ <a class="button cancel crm-form-submit" value="{ts}Cancel{/ts}" href="{$cancelURL}">{ts}Cancel{/ts}</a>
</form>
</div>
{else}
<div class="crm-container" style="margin-top: 2em; padding: 1em; background-color: #EEFFEE; border: 1px #070 solid; color: black;">
- <p><span class="crm-status-icon success"> </span><strong>{$message}</strong></p>
<div style="padding: 1em; background-color: rgba(255, 255, 255, 0.76);">
<p>
<img style="display:block; float:left; width:40px; margin-right:10px;" src="{$config->resourceBase}i/logo_lg.png">
- {ts 1='http://civicrm.org/civicrm/profile/create?reset=1&gid=15'}This release was made possible by contributions from people like <strong>you</strong>. <a href="%1" target="_blank">Register your site</a> to join the community.{/ts}
+ {ts 1='https://civicrm.org/membership'}If you feel that CiviCRM is valuable to your organization, consider that thousands of organizations worldwide also feel the same way. Protect your investment, and theirs, by <a href="%1" target="_blank">ensuring that CiviCRM remains stable, sustainable and consistently improving through membership</a>. ~Donald Lobo {/ts}
</p>
<p>
- {ts 1='http://civicrm.org/contribute' 2='http://civicrm.org/make-it-happen'}If CiviCRM is useful to your organization, consider making a <a href="%1" target="_blank">monthly contribution</a>, or helping to <a href="%2" target="_blank">fund a proposed improvement</a>.{/ts}
+ {ts 1='https://civicrm.org/register-site'}Not ready for a membership yet? You can still help us learn how to improve CiviCRM by <a href="%1" target="_blank">registering your site</a>.{/ts}
</p>
</div>
+ <p><span class="crm-status-icon success"> </span><strong>{$message}</strong></p>
{if $afterUpgradeMessage}
<h3>{ts}Important Notes{/ts}</h3>
<p>{$afterUpgradeMessage}</p>
function &columns() {
// return by reference
$columns = array(
- ts('Contact Id') => 'contact_id',
+ ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
ts('State') => 'state_province',
function testGetActivitiesCountforAdminDashboard() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesCountforNonAdminDashboard() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesCountforContactSummary() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesCountforContactSummaryWithNoActivities() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesforAdminDashboard() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesforNonAdminDashboard() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesforContactSummary() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function testGetActivitiesforContactSummaryWithNoActivities() {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/activities_for_dashboard_count.xml'
)
);
function setUp() {
parent::setUp();
+ $this->tablesToTruncate = array(
+ 'civicrm_activity',
+ 'civicrm_contact',
+ 'civicrm_custom_group',
+ 'civicrm_custom_field',
+ 'civicrm_case',
+ 'civicrm_case_contact',
+ 'civicrm_case_activity',
+ 'civicrm_case_type',
+ 'civicrm_activity_contact',
+ 'civicrm_managed',
+ 'civicrm_relationship',
+ 'civicrm_relationship_type',
+ );
+
+ $this->quickCleanup($this->tablesToTruncate);
+
$this->loadAllFixtures();
CRM_Core_BAO_ConfigSetting::enableComponent('CiviCase');
}
+ protected function tearDown() {
+ parent::tearDown();
+ $this->quickCleanup($this->tablesToTruncate, TRUE);
+ }
+
function testAddCaseToContact() {
$params = array(
'case_id' => 1,
--- /dev/null
+<?php
+
+require_once 'CiviTest/CiviCaseTestCase.php';
+
+/**
+ * Case Types support an optional forking mechanism wherein the local admin
+ * creates a custom DB-based definition that deviates from the file-based definition.
+ */
+class CRM_Case_BAO_CaseTypeForkTest extends CiviCaseTestCase {
+ public function setUp() {
+ parent::setUp();
+ CRM_Core_ManagedEntities::singleton(TRUE)->reconcile();
+ }
+
+ function tearDown() {
+ parent::tearDown();
+ CRM_Core_ManagedEntities::singleton(TRUE)->reconcile();
+ }
+
+
+ /**
+ * Edit the definition of ForkableCaseType
+ */
+ function testForkable() {
+ $caseTypeId = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', 'ForkableCaseType', 'id', 'name');
+ $this->assertTrue(is_numeric($caseTypeId) && $caseTypeId > 0);
+
+ $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
+ $this->assertTrue(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
+ $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
+
+ $this->callAPISuccess('CaseType', 'create', array(
+ 'id' => $caseTypeId,
+ 'definition' => array(
+ 'activityTypes' => array(
+ array('name' => 'First act'),
+ array('name' => 'Second act'),
+ ),
+ )
+ ));
+
+ $this->assertTrue(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
+ $this->assertTrue(CRM_Case_BAO_CaseType::isForked($caseTypeId));
+ $this->assertDBNotNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
+
+ $this->callAPISuccess('CaseType', 'create', array(
+ 'id' => $caseTypeId,
+ 'definition' => 'null',
+ ));
+
+ $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
+ $this->assertTrue(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
+ $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
+ }
+
+ /**
+ * Attempt to edit the definition of UnforkableCaseType. This fails.
+ */
+ function testUnforkable() {
+ $caseTypeId = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', 'UnforkableCaseType', 'id', 'name');
+ $this->assertTrue(is_numeric($caseTypeId) && $caseTypeId > 0);
+ $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
+
+ $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
+ $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
+
+ $this->callAPISuccess('CaseType', 'create', array(
+ 'id' => $caseTypeId,
+ 'definition' => array(
+ 'activityTypes' => array(
+ array('name' => 'First act'),
+ array('name' => 'Second act'),
+ ),
+ )
+ ));
+
+ $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
+ $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
+ $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
+ }
+
+ /**
+ * @param $caseTypes
+ * @see \CRM_Utils_Hook::caseTypes
+ */
+ function hook_caseTypes(&$caseTypes) {
+ $caseTypes['ForkableCaseType'] = array(
+ 'module' => 'civicrm',
+ 'name' => 'ForkableCaseType',
+ 'file' => __DIR__ . '/ForkableCaseType.xml',
+ );
+ $caseTypes['UnforkableCaseType'] = array(
+ 'module' => 'civicrm',
+ 'name' => 'UnforkableCaseType',
+ 'file' => __DIR__ . '/UnforkableCaseType.xml',
+ );
+ }
+
+}
\ No newline at end of file
',
);
+ $fixtures['forkable-0'] = array(
+ 'json' => json_encode(array(
+ 'forkable' => 0,
+ )),
+ 'xml' => '<?xml version="1.0" encoding="iso-8859-1" ?>
+<CaseType>
+ <name>Housing Support</name>
+ <forkable>0</forkable>
+</CaseType>
+ ',
+ );
+
+ $fixtures['forkable-1'] = array(
+ 'json' => json_encode(array(
+ 'forkable' => 1,
+ )),
+ 'xml' => '<?xml version="1.0" encoding="iso-8859-1" ?>
+<CaseType>
+ <name>Housing Support</name>
+ <forkable>1</forkable>
+</CaseType>
+ ',
+ );
+
$cases = array();
foreach (array(
'empty-defn',
'empty-lists',
'one-item-in-each',
'two-items-in-each',
+ 'forkable-0',
+ 'forkable-1',
) as $key) {
$cases[] = array($key, $fixtures[$key]['json'], $fixtures[$key]['xml']);
}
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1" ?>
+
+<CaseType>
+ <name>Forkable Case Type</name>
+ <ActivityTypes>
+ <ActivityType>
+ <name>Open Case</name>
+ <max_instances>1</max_instances>
+ </ActivityType>
+ <ActivityType>
+ <name>Change Case Type</name>
+ </ActivityType>
+ <ActivityType>
+ <name>Change Case Status</name>
+ </ActivityType>
+ <ActivityType>
+ <name>Change Case Start Date</name>
+ </ActivityType>
+ <ActivityType>
+ <name>Link Cases</name>
+ </ActivityType>
+ </ActivityTypes>
+ <ActivitySets>
+ <ActivitySet>
+ <name>standard_timeline</name>
+ <label>Standard Timeline</label>
+ <timeline>true</timeline>
+ <ActivityTypes>
+ <ActivityType>
+ <name>Open Case</name>
+ <status>Completed</status>
+ </ActivityType>
+ </ActivityTypes>
+ </ActivitySet>
+ </ActivitySets>
+ <CaseRoles>
+ <RelationshipType>
+ <name>Homeless Services Coordinator</name>
+ <creator>1</creator>
+ <manager>1</manager>
+ </RelationshipType>
+ </CaseRoles>
+</CaseType>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1" ?>
+
+<CaseType>
+ <name>Unforkable Case Type</name>
+ <forkable>0</forkable>
+ <ActivityTypes>
+ <ActivityType>
+ <name>Open Case</name>
+ <max_instances>1</max_instances>
+ </ActivityType>
+ <ActivityType>
+ <name>Change Case Type</name>
+ </ActivityType>
+ <ActivityType>
+ <name>Change Case Status</name>
+ </ActivityType>
+ <ActivityType>
+ <name>Change Case Start Date</name>
+ </ActivityType>
+ <ActivityType>
+ <name>Link Cases</name>
+ </ActivityType>
+ </ActivityTypes>
+ <ActivitySets>
+ <ActivitySet>
+ <name>standard_timeline</name>
+ <label>Standard Timeline</label>
+ <timeline>true</timeline>
+ <ActivityTypes>
+ <ActivityType>
+ <name>Open Case</name>
+ <status>Completed</status>
+ </ActivityType>
+ </ActivityTypes>
+ </ActivitySet>
+ </ActivitySets>
+ <CaseRoles>
+ <RelationshipType>
+ <name>Homeless Services Coordinator</name>
+ <creator>1</creator>
+ <manager>1</manager>
+ </RelationshipType>
+ </CaseRoles>
+</CaseType>
function testSearch($fv, $count, $ids, $full) {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/queryDataset.xml'
)
);
--- /dev/null
+#membership search from smart builder created before 4.4
+INSERT INTO `civicrm_mapping` (`id`, `name`, `description`, `mapping_type_id`) VALUES (554, NULL, NULL, NULL);
+INSERT INTO `civicrm_mapping_field` (`id`, `mapping_id`, `name`, `contact_type`, `column_number`, `location_type_id`, `phone_type_id`, `im_provider_id`, `website_type_id`, `relationship_type_id`, `relationship_direction`, `grouping`, `operator`, `value`) VALUES (13338, 554, 'street_address', 'Individual', 0, NULL, NULL, NULL, NULL, NULL, NULL, 1, '', '');
+INSERT INTO `civicrm_mapping_field` (`id`, `mapping_id`, `name`, `contact_type`, `column_number`, `location_type_id`, `phone_type_id`, `im_provider_id`, `website_type_id`, `relationship_type_id`, `relationship_direction`, `grouping`, `operator`, `value`) VALUES (13339, 554, 'state_province', 'Individual', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, '=', 'Maine');
+INSERT INTO `civicrm_mapping_field` (`id`, `mapping_id`, `name`, `contact_type`, `column_number`, `location_type_id`, `phone_type_id`, `im_provider_id`, `website_type_id`, `relationship_type_id`, `relationship_direction`, `grouping`, `operator`, `value`) VALUES (13340, 554, 'membership_status', 'Membership', 2, NULL, NULL, NULL, NULL, NULL, NULL, 1, '=', 'Current');
+INSERT INTO `civicrm_saved_search` (`id`, `form_values`, `mapping_id`, `search_custom_id`, `where_clause`, `select_tables`, `where_tables`) VALUES (794, 'a:8:{s:5:"qfKey";s:37:"a2a8452a4e966a5a8ec245264a5c4b5b_9671";s:6:"mapper";a:2:{i:1;a:3:{i:0;a:3:{i:0;s:10:"Individual";i:1;s:14:"street_address";i:2;s:1:" ";}i:1;a:3:{i:0;s:10:"Individual";i:1;s:14:"state_province";i:2;s:1:" ";}i:2;a:2:{i:0;s:10:"Membership";i:1;s:17:"membership_status";}}i:2;a:1:{i:0;a:1:{i:0;s:0:"";}}}s:8:"operator";a:2:{i:1;a:3:{i:0;s:7:"IS NULL";i:1;s:1:"=";i:2;s:1:"=";}i:2;a:1:{i:0;s:0:"";}}s:5:"value";a:2:{i:1;a:3:{i:0;s:0:"";i:1;s:5:"Maine";i:2;s:7:"Current";}i:2;a:1:{i:0;s:0:"";}}s:4:"task";s:2:"13";s:8:"radio_ts";s:6:"ts_all";s:11:"uf_group_id";s:0:"";s:14:"component_mode";i:1;}', 554, NULL, ' ( ( (civicrm_address.street_address IS NULL ) AND civicrm_state_province.name IN (\'Maine\') AND LOWER(civicrm_membership_status.name) = \'current\' AND contact_a.contact_type IN (\'Individual\') ) ) ', 'a:13:{s:15:"civicrm_contact";i:1;s:15:"civicrm_address";i:1;s:22:"civicrm_state_province";i:1;s:15:"civicrm_country";i:1;s:13:"civicrm_email";i:1;s:13:"civicrm_phone";i:1;s:10:"civicrm_im";i:1;s:19:"civicrm_worldregion";i:1;s:18:"civicrm_membership";i:1;s:25:"civicrm_membership_status";i:1;s:6:"gender";i:1;s:17:"individual_prefix";i:1;s:17:"individual_suffix";i:1;}', 'a:5:{s:15:"civicrm_contact";i:1;s:15:"civicrm_address";i:1;s:22:"civicrm_state_province";i:1;s:18:"civicrm_membership";i:1;s:25:"civicrm_membership_status";i:1;}');
+INSERT INTO `civicrm_group` (`id`, `name`, `title`, `description`, `source`, `saved_search_id`, `is_active`, `visibility`, `where_clause`, `select_tables`, `where_tables`, `group_type`, `cache_date`, `refresh_date`, `parents`, `children`, `is_hidden`, `is_reserved`, `created_id`, `modified_id`) VALUES (1854, 'Maine__Members_with_no_addre_1854', 'Maine - Members with no address', NULL, NULL, 794, 1, 'User and User Admin Only', ' ( `civicrm_group_contact_cache_1854`.group_id = 1854 ) ', 'a:12:{s:15:"civicrm_contact";i:1;s:15:"civicrm_address";i:1;s:22:"civicrm_state_province";i:1;s:15:"civicrm_country";i:1;s:13:"civicrm_email";i:1;s:13:"civicrm_phone";i:1;s:10:"civicrm_im";i:1;s:19:"civicrm_worldregion";i:1;s:34:"`civicrm_group_contact_cache_1854`";s:138:" LEFT JOIN civicrm_group_contact_cache `civicrm_group_contact_cache_1854` ON contact_a.id = `civicrm_group_contact_cache_1854`.contact_id ";s:6:"gender";i:1;s:17:"individual_prefix";i:1;s:17:"individual_suffix";i:1;}', 'a:2:{s:15:"civicrm_contact";i:1;s:34:"`civicrm_group_contact_cache_1854`";s:138:" LEFT JOIN civicrm_group_contact_cache `civicrm_group_contact_cache_1854` ON contact_a.id = `civicrm_group_contact_cache_1854`.contact_id ";}', '\ 12\ 1', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL);
+
+
+
// echo "testCount\n";
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/dataset.xml'
)
);
// echo "testAll\n";
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/dataset.xml'
)
);
// echo "testContactIDs\n";
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/dataset.xml'
)
);
$op = new PHPUnit_Extensions_Database_Operation_Insert;
$op->execute(
$this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(dirname(__FILE__) . '/dataset/im_test.xml')
+ $this->createFlatXMLDataSet(dirname(__FILE__) . '/dataset/im_test.xml')
);
$contactId = 69;
function testSearch($fv, $count, $ids, $full) {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/queryDataset.xml'
)
);
// Insert test data
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/dataset/data.xml'
)
);
// Insert a row in civicrm_contact creating individual contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/../../api/v3/dataset/contact_17.xml'
)
);
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/../../api/v3/dataset/email_contact_17.xml'
)
);
// Insert a row in civicrm_contact creating individual contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/../../api/v3/dataset/contact_17.xml'
)
);
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/../../api/v3/dataset/email_contact_17.xml'
)
);
$case = $this->callAPISuccess('case', 'create', $this->_params);
$analyzer = new \Civi\CCase\Analyzer($case['id']);
- $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']);
- $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Medical evaluation')['status_id']);
+ $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id'));
+ $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id'));
$this->assertFalse($analyzer->hasActivity('Mental health evaluation'));
$this->assertFalse($analyzer->hasActivity('Secure temporary housing'));
// Edit details of first activity -- but don't finish it yet!
\CRM_Utils_Time::setTime('2013-11-30 01:30:00');
$this->callApiSuccess('Activity', 'create', array(
- 'id' => $analyzer->getSingleActivity('Medical evaluation')['id'],
+ 'id' => self::ag($analyzer->getSingleActivity('Medical evaluation'), 'id'),
'subject' => 'This is the new subject',
));
$analyzer = new \Civi\CCase\Analyzer($case['id']);
- $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']);
- $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Medical evaluation')['status_id']);
+ $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id'));
+ $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id'));
$this->assertFalse($analyzer->hasActivity('Mental health evaluation'));
$this->assertFalse($analyzer->hasActivity('Secure temporary housing'));
// Complete first activity; schedule second
\CRM_Utils_Time::setTime('2013-11-30 02:00:00');
$this->callApiSuccess('Activity', 'create', array(
- 'id' => $analyzer->getSingleActivity('Medical evaluation')['id'],
+ 'id' => self::ag($analyzer->getSingleActivity('Medical evaluation'), 'id'),
'status_id' => $actStatuses['Completed'],
));
$analyzer->flush();
- $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']);
- $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Medical evaluation')['status_id']);
- $this->assertApproxTime('2013-11-30 02:00:00', $analyzer->getSingleActivity('Mental health evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Mental health evaluation')['status_id']);
+ $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id'));
+ $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id'));
+ $this->assertApproxTime('2013-11-30 02:00:00', self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'status_id'));
$this->assertFalse($analyzer->hasActivity('Secure temporary housing'));
// Complete second activity; schedule third
\CRM_Utils_Time::setTime('2013-11-30 03:00:00');
$this->callApiSuccess('Activity', 'create', array(
- 'id' => $analyzer->getSingleActivity('Mental health evaluation')['id'],
+ 'id' => self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'id'),
'status_id' => $actStatuses['Completed'],
));
$analyzer->flush();
- $this->assertEquals($caseStatuses['Open'], $analyzer->getCase()['status_id']);
- $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Medical evaluation')['status_id']);
- $this->assertApproxTime('2013-11-30 02:00:00', $analyzer->getSingleActivity('Mental health evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Mental health evaluation')['status_id']);
- $this->assertApproxTime('2013-11-30 03:00:00', $analyzer->getSingleActivity('Secure temporary housing')['activity_date_time']);
- $this->assertEquals($actStatuses['Scheduled'], $analyzer->getSingleActivity('Secure temporary housing')['status_id']);
+ $this->assertEquals($caseStatuses['Open'], self::ag($analyzer->getCase(), 'status_id'));
+ $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id'));
+ $this->assertApproxTime('2013-11-30 02:00:00', self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'status_id'));
+ $this->assertApproxTime('2013-11-30 03:00:00', self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Scheduled'], self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'status_id'));
// Complete third activity; close case
\CRM_Utils_Time::setTime('2013-11-30 04:00:00');
$this->callApiSuccess('Activity', 'create', array(
- 'id' => $analyzer->getSingleActivity('Secure temporary housing')['id'],
+ 'id' => self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'id'),
'status_id' => $actStatuses['Completed'],
));
$analyzer->flush();
- $this->assertApproxTime('2013-11-30 01:00:00', $analyzer->getSingleActivity('Medical evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Medical evaluation')['status_id']);
- $this->assertApproxTime('2013-11-30 02:00:00', $analyzer->getSingleActivity('Mental health evaluation')['activity_date_time']);
- $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Mental health evaluation')['status_id']);
- $this->assertApproxTime('2013-11-30 03:00:00', $analyzer->getSingleActivity('Secure temporary housing')['activity_date_time']);
- $this->assertEquals($actStatuses['Completed'], $analyzer->getSingleActivity('Secure temporary housing')['status_id']);
- $this->assertEquals($caseStatuses['Closed'], $analyzer->getCase()['status_id']);
+ $this->assertApproxTime('2013-11-30 01:00:00', self::ag($analyzer->getSingleActivity('Medical evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Medical evaluation'), 'status_id'));
+ $this->assertApproxTime('2013-11-30 02:00:00', self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Mental health evaluation'), 'status_id'));
+ $this->assertApproxTime('2013-11-30 03:00:00', self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'activity_date_time'));
+ $this->assertEquals($actStatuses['Completed'], self::ag($analyzer->getSingleActivity('Secure temporary housing'), 'status_id'));
+ $this->assertEquals($caseStatuses['Closed'], self::ag($analyzer->getCase(), 'status_id'));
+ // */
}
/**
$expected, $actual, $tolerance
));
}
+
+ /**
+ * Get a value from an array. This is syntactic-sugar to work-around PHP 5.3's limited syntax.
+ *
+ * @param $array
+ * @param $key
+ * @return mixed
+ */
+ static function ag($array, $key) {
+ return $array[$key];
+ }
}
\ No newline at end of file
$hooks = \CRM_Utils_Hook::singleton();
$hooks->setHook('civicrm_caseTypes', array($this, 'hook_caseTypes'));
\CRM_Case_XMLRepository::singleton(TRUE);
+ \CRM_Case_XMLProcessor::flushStaticCaches();
// CRM-9404 - set-up is a bit cumbersome but had to put something in place to set up activity types & case types
//. Using XML was causing breakage as id numbers were changing over time
+--------------------------------------------------------------------+
*/
-require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
-
/**
* Include configuration
*/
/**
* Include class definitions
*/
-require_once 'PHPUnit/Extensions/Database/TestCase.php';
-require_once 'PHPUnit/Framework/TestResult.php';
-require_once 'PHPUnit/Extensions/Database/DataSet/FlatXmlDataSet.php';
-require_once 'PHPUnit/Extensions/Database/DataSet/XmlDataSet.php';
-require_once 'PHPUnit/Extensions/Database/DataSet/QueryDataSet.php';
require_once 'tests/phpunit/Utils.php';
require_once 'api/api.php';
require_once 'CRM/Financial/BAO/FinancialType.php';
$xmlFiles = glob($fixturesDir . '/*.xml');
foreach ($xmlFiles as $xmlFixture) {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
- $dataset = new PHPUnit_Extensions_Database_DataSet_XMLDataSet($xmlFixture);
+ $dataset = $this->createXMLDataSet($xmlFixture);
$this->_tablesToTruncate = array_merge($this->_tablesToTruncate, $dataset->getTableNames());
$op->execute($this->_dbconn, $dataset);
}
*/
protected function tearDown() {
error_reporting(E_ALL & ~E_NOTICE);
+ $session = CRM_Core_Session::singleton();
+ $session->set('userID', NULL);
$tablesToTruncate = array('civicrm_contact');
$this->quickCleanup($tablesToTruncate);
$this->cleanTempDirs();
$params[$key] = $values[$seq % sizeof($values)];
}
if ($contact_type == 'Individual' ) {
- $employer = $this->sampleContact('Organization', $seq);
$params['email'] = strtolower(
$params['first_name'] . '_' . $params['last_name'] . '@civicrm.org'
);
function setupACL() {
global $_REQUEST;
$_REQUEST = $this->_params;
+
CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
$optionGroupID = $this->callAPISuccessGetValue('option_group', array('return' => 'id', 'name' => 'acl_role'));
$optionValue = $this->callAPISuccess('option_value', 'create', array('option_group_id' => $optionGroupID,
$this->callAPISuccess('price_field_value', 'create', $priceFieldValue);
$this->callAPISuccess('price_field_value', 'create', $priceFieldValue);
$this->callAPISuccess('price_field_value', 'create', array_merge($priceFieldValue, array('price_field_id' => $newPriceField['id'])));
-
}
/**
--- /dev/null
+<?php
+// ADAPTED FROM tools/scripts/phpunit
+
+$GLOBALS['base_dir'] = dirname(dirname(dirname(__DIR__)));
+$tests_dir = $GLOBALS['base_dir'] . DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR . 'phpunit';
+$civi_pkgs_dir = $GLOBALS['base_dir'] . DIRECTORY_SEPARATOR . 'packages';
+ini_set('safe_mode', 0);
+ini_set('include_path',
+ "{$GLOBALS['base_dir']}" . PATH_SEPARATOR .
+ "$tests_dir" . PATH_SEPARATOR .
+ "$civi_pkgs_dir" . PATH_SEPARATOR
+ . ini_get( 'include_path') );
+
+# Relying on system timezone setting produces a warning,
+# doing the following prevents the warning message
+if ( file_exists( '/etc/timezone' ) ) {
+ $timezone = trim( file_get_contents( '/etc/timezone' ) );
+ if ( ini_set('date.timezone', $timezone ) === false ) {
+ echo "ini_set( 'date.timezone', '$timezone' ) failed\n";
+ }
+}
+
+# Crank up the memory
+ini_set('memory_limit', '2G');
+
+require_once $GLOBALS['base_dir'] . '/packages/vendor/autoload.php';
+
+/*
+require $GLOBALS['base_dir'] . DIRECTORY_SEPARATOR .
+ 'packages' . DIRECTORY_SEPARATOR .
+ 'PHPUnit' . DIRECTORY_SEPARATOR .
+ 'Autoload.php';
+*/
\ No newline at end of file
--- /dev/null
+<?php
+
+/**
+ * The EnvTests suite allows you to specify an arbitrary mix of tests
+ * using an environment variable. For example:
+ *
+ * env PHPUNIT_TESTS="MyFirstTest MySecondTest" phpunit EnvTests
+ *
+ * The PHPUNIT_TESTS variable contains a space-delimited list of test
+ * names. Each name may be a class (eg "MyFirstTest") or a method
+ * (eg "MyFirstTest::testFoo").
+ */
+class EnvTests extends \PHPUnit_Framework_TestSuite {
+ public static function suite() {
+ require_once 'CRM/Core/ClassLoader.php';
+ CRM_Core_ClassLoader::singleton()->register();
+
+ $suite = new EnvTests();
+ $tests = getenv('PHPUNIT_TESTS');
+ foreach (explode(' ', $tests) as $test) {
+ if (strpos($test, '::') !== FALSE) {
+ list ($class, $method) = explode('::', $test);
+ $clazz = new \ReflectionClass($class);
+ $suite->addTestMethod($clazz, $clazz->getMethod($method));
+ } else {
+ $suite->addTestSuite($test);
+ }
+ }
+ return $suite;
+ }
+}
\ No newline at end of file
* UR DOIN IT RIGHT!
*/
-require_once 'PHPUnit/Framework/TestCase.php';
-
/**
* Class HelloTest
*/
$this->_testAddNewActivity($firstName, $subject, $customGroupTitle, $contactName);
}
+ function testLinkCases() {
+ $this->webtestLogin();
+
+ //Add Case 1
+ $this->openCiviPage('case/add', 'reset=1&action=add&atype=13&context=standalone', '_qf_Case_upload-bottom');
+
+ // Adding contact with randomized first name (so we can then select that contact when creating case)
+ // We're using pop-up New Contact dialog
+ $firstName = substr(sha1(rand()), 0, 7);
+ $lastName = "Fraser";
+ $contactName = "{$lastName}, {$firstName}";
+ $displayName = "{$firstName} {$lastName}";
+ $email = "{$lastName}.{$firstName}@example.org";
+ $this->webtestNewDialogContact($firstName, $lastName, $email, $type = 4, "s2id_client_id");
+
+ // Fill in other form values. We'll use a case type which is included in CiviCase sample data / xml files.
+ $caseTypeLabel = "Adult Day Care Referral";
+ $subject = "Safe daytime setting - senior female";
+ $this->select('medium_id', 'value=1');
+ $this->type('activity_location', 'Main offices');
+ $details = "65 year old female needs safe location during the day for herself and her dog. She is in good health but somewhat disoriented.";
+ $this->fillRichTextField("activity_details", $details, 'CKEditor');
+ $this->type('activity_subject', $subject);
+
+ $this->select('case_type_id', "label={$caseTypeLabel}");
+
+ // Choose Case Start Date.
+ // Using helper webtestFillDate function.
+ $this->webtestFillDate('start_date', 'now');
+ $today = date('F jS, Y', strtotime('now'));
+
+ $this->type('duration', "20");
+ $this->clickLink('_qf_Case_upload-bottom', '_qf_CaseView_cancel-bottom', FALSE);
+
+ // Is status message correct?
+ $this->waitForText('crm-notification-container', "Case opened successfully.");
+
+ //Add Case 2
+ $this->openCiviPage('case/add', 'reset=1&action=add&atype=13&context=standalone', '_qf_Case_upload-bottom');
+
+ // Adding contact with randomized first name (so we can then select that contact when creating case)
+ // We're using pop-up New Contact dialog
+ $firstName2 = substr(sha1(rand()), 0, 7);
+ $lastName2 = "Fraser";
+ $contactName2 = "{$lastName}, {$firstName}";
+ $displayName2 = "{$firstName} {$lastName}";
+ $email2 = "{$lastName2}.{$firstName2}@example.org";
+ $this->webtestNewDialogContact($firstName2, $lastName2, $email2, $type = 4, "s2id_client_id");
+
+ // Fill in other form values. We'll use a case type which is included in CiviCase sample data / xml files.
+ $caseTypeLabel2 = "Adult Day Care Referral";
+ $subject2 = "Subject For Case 2";
+ $this->select('medium_id', 'value=1');
+ $this->type('activity_location', 'Main offices');
+ $details2 = "Details For Case 2";
+ $this->fillRichTextField("activity_details", $details2, 'CKEditor');
+ $this->type('activity_subject', $subject2);
+
+ $this->select('case_type_id', "label={$caseTypeLabel2}");
+
+ // Choose Case Start Date.
+ // Using helper webtestFillDate function.
+ $this->webtestFillDate('start_date', 'now');
+ $today = date('F jS, Y', strtotime('now'));
+
+ $this->type('duration', "20");
+ $this->clickLink('_qf_Case_upload-bottom', '_qf_CaseView_cancel-bottom', FALSE);
+
+ // Is status message correct?
+ $this->waitForText('crm-notification-container', "Case opened successfully.");
+
+ //Add Link Case Activity
+ $this->select('add_activity_type_id', 'Link Cases');
+ $this->waitForElementPresent("_qf_Activity_cancel-bottom");
+ $this->select2('link_to_case_id', $firstName);
+ $activitydetails = 'Details of Link Case Activity';
+ $this->fillRichTextField("details", $activitydetails, 'CKEditor');
+ $this->click('activity-details');
+ $this->waitForElementPresent('subject');
+ $activitySubject = 'Link Case Activity between case 1 and case 2';
+ $activitylocation = 'Main Office Building';
+ $this->select2('source_contact_id', $firstName2);
+ $this->type('subject', $activitySubject);
+ $this->type('location', $activitylocation);
+ $this->click('_qf_Activity_upload-bottom');
+ $id = $this->urlArg('id');
+ $this->waitForText("case_id_$id", $activitySubject);
+ $this->click("xpath=//a[contains(text(),'$activitySubject')]");
+
+ $LinkCaseActivityData = array(
+ "Client" => $firstName2,
+ "Activity Type" => "Link Cases",
+ "Subject" => $activitySubject,
+ "Reported By" => "{$firstName2} {$lastName2}",
+ "Medium" => "Phone",
+ "Location" => $activitylocation,
+ "Date and Time" => $today,
+ "Details" => $activitydetails,
+ "Status" => "Scheduled",
+ "Priority" => "Normal",
+ );
+ $this->webtestVerifyTabularData($LinkCaseActivityData);
+ }
/**
* @param $firstName
* @param $caseSubject
$this->_testSearchbyDate($firstName, $lastName, "this.quarter");
$this->_testSearchbyDate($firstName, $lastName, "0");
$this->_testSearchbyDate($firstName, $lastName, "this.year");
+ $this->_testAssignToClient($firstName, $lastName, $caseTypeLabel);
}
function testAjaxCustomGroupLoad() {
* @param $creatorName
*/
function _testVerifyCaseRoles($caseRoles, $creatorName) {
- $this->waitForElementPresent("xpath=//table[@id='caseRoles-selector']/tbody/tr[4]/td[2]/a");
+ $id = $this->urlArg('id');
+ $this->waitForElementPresent("xpath=//table[@id='caseRoles-selector-$id']/tbody/tr[4]/td[2]/a");
// check that expected roles are listed in the Case Roles pane
foreach ($caseRoles as $role) {
$this->assertText("css=div.crm-case-roles-block", $role);
}
// check that case creator role has been assigned to logged in user
- $this->verifyText("xpath=//table[@id='caseRoles-selector']/tbody/tr[4]/td[2]", $creatorName);
+ $this->verifyText("xpath=//table[@id='caseRoles-selector-$id']/tbody/tr[4]/td[2]", $creatorName);
}
/**
$this->waitForPageToLoad($this->getTimeoutMsec());
$this->assertElementContainsText('Advanced', "$lastName, $firstName");
}
+
+ /**
+ * @param $firstName
+ * @param $lastName
+ * @param $caseTypeLabel
+ *
+ * test for assign case to another client
+ */
+ function _testAssignToClient($firstName, $lastName, $caseTypeLabel) {
+ $this->openCiviPage('case/search', 'reset=1', '_qf_Search_refresh-bottom');
+ $this->type('sort_name', $firstName);
+ $this->click('_qf_Search_refresh-bottom');
+ $this->waitForElementPresent("xpath=//table[@class='caseSelector']/tbody//tr/td[3]/a[text()='{$lastName}, {$firstName}']");
+
+ $this->click("xpath=//table[@class='caseSelector']/tbody//tr/td[3]/a[text()='{$lastName}, {$firstName}']/../../td[11]/span[2]/ul/li/a[contains(text(),'Assign to Another Client')]");
+ $clientFirstName = substr(sha1(rand()), 0, 7);
+ $clientLastName = "Fraser";
+ $clientEmail = "{$clientLastName}.{$clientFirstName}@example.org";
+ $this->waitForElementPresent('_qf_EditClient_done-bottom');
+ $this->webtestNewDialogContact($clientFirstName, $clientLastName, $clientEmail, $type = 4, "s2id_reassign_contact_id");
+ $this->clickLink('_qf_EditClient_done-bottom');
+ $this->assertElementContainsText('page-title', "$clientFirstName $clientLastName - $caseTypeLabel");
+ }
}
--- /dev/null
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.5 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License along with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+*/
+
+require_once 'CiviTest/CiviSeleniumTestCase.php';
+
+/**
+ * Class WebTest_Case_AddCaseTest
+ */
+class WebTest_Case_AddCaseTypeTest extends CiviSeleniumTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+ }
+
+ function testAddEditCaseType() {
+ $caseRoles = array(1 => 'Parent of', 2 => 'Spouse of', 3 => 'Partner of');
+ $activityTypes = array(1 => 'Meeting',2 => 'Contribution',3 => 'Event Registration');
+ $timelineActivityTypes = array(1 => 'Meeting',2 => 'Phone Call',3 => 'Email');
+ // Log in as admin first to verify permissions for CiviCase
+ $this->webtestLogin('admin');
+
+ // Enable CiviCase module if necessary
+ $this->enableComponents("CiviCase");
+
+ // let's give full CiviCase permissions to demo user (registered user).
+ $permission = array('edit-2-access-all-cases-and-activities', 'edit-2-access-my-cases-and-activities', 'edit-2-administer-civicase', 'edit-2-delete-in-civicase');
+ $this->changePermissions($permission);
+
+ // Log in as normal user
+ $this->webtestLogin();
+
+ $this->openCiviPage('a/#/caseType/new');
+
+ $caseTypeLabel = "Case Type". substr(sha1(rand()), 0, 7);
+ $this->waitForElementPresent('title');
+ $this->type('title', $caseTypeLabel);
+
+ foreach ($caseRoles as $cRoles) {
+ $this->select2("xpath=//tr[@class='addRow']/td/span/div/a", $cRoles, FALSE, TRUE);
+ }
+
+ foreach ($activityTypes as $aType) {
+ $this->select2("xpath=//tr[@class='addRow']/td[contains(text(),'Add activity type:')]/span/div/a", $aType, FALSE, TRUE);
+ }
+
+ $this->click("xpath=//a[text()='Standard Timeline']");
+ foreach ($timelineActivityTypes as $tActivityType) {
+ $this->select2("xpath=//tr[@class='addRow']/td[contains(text(),'Add activity:')]/span/div/a", $tActivityType, FALSE, TRUE);
+ }
+
+ $this->click("xpath=//div[@class='crm-submit-buttons']/span/input[@value='Save']");
+
+ $this->openCiviPage('case/add', 'reset=1&action=add&atype=13&context=standalone', '_qf_Case_upload-bottom');
+ $firstName = substr(sha1(rand()), 0, 7);
+ $lastName = "Fraser";
+ $contactName = "{$lastName}, {$firstName}";
+ $displayName = "{$firstName} {$lastName}";
+ $email = "{$lastName}.{$firstName}@example.org";
+ $this->webtestNewDialogContact($firstName, $lastName, $email, $type = 4, "s2id_client_id");
+
+ $caseStatusLabel = "Ongoing";
+ $subject = "Safe daytime setting - senior female";
+ $this->select("medium_id", "value=1");
+ $location = "Main offices";
+ $this->type("activity_location", $location);
+ $details = "65 year old female needs safe location during the day for herself and her dog. She is in good health but somewhat disoriented.";
+ $this->fireEvent('activity_details', 'focus');
+ $this->fillRichTextField("activity_details", $details, 'CKEditor');
+ $this->type("activity_subject", $subject);
+
+ $this->select("case_type_id", "label={$caseTypeLabel}");
+ $this->select("status_id", "label={$caseStatusLabel}");
+
+ $this->webtestFillDate('start_date', 'now');
+ $today = date('F jS, Y', strtotime('now'));
+
+ $this->type("duration", "20");
+ $this->clickLink("_qf_Case_upload-bottom", "_qf_CaseView_cancel-bottom");
+
+ // Is status message correct?
+ $this->waitForText('crm-notification-container', "Case opened successfully.");
+
+ foreach ($activityTypes as $aType) {
+ $this->assertText("add_activity_type_id", $aType);
+ }
+
+ $this->click("xpath=//div[contains(text(), 'Roles')]");
+
+ // check that expected roles are listed in the Case Roles pane
+ foreach ($caseRoles as $key => $role) {
+ $this->assertText("css=div.crm-case-roles-block", $role);
+ }
+
+ $id = $this->urlArg('id');
+ // check that expected activities are listed in the Case Activities table
+ foreach ($timelineActivityTypes as $tActivityType) {
+ $this->assertText("case_id_$id", $tActivityType);
+ }
+
+ // for edit case type
+ $this->openCiviPage('a/#/caseType');
+ $this->waitForElementPresent("xpath=//*[@id='crm-main-content-wrapper']/div/div/div[2]/a/span[contains(text(),'New Case Type')]");
+
+ $this->click("xpath=//table/tbody//tr/td[1][text()='{$caseTypeLabel}']/../td[5]/span/a[text()='Edit']");
+ $this->waitForElementPresent("xpath=//div[@class='crm-submit-buttons']/span/input[@value='Save']");
+
+ $editCaseTypeLabel = "Case Type Edit". substr(sha1(rand()), 0, 7);
+ $this->waitForElementPresent('title');
+ $this->type('title', $editCaseTypeLabel);
+
+ $this->select2("xpath=//tr[@class='addRow']/td/span/div/a", 'Sibling of', FALSE, TRUE);
+ $this->click("xpath=//*[@id='crm-main-content-wrapper']/div/div/form/div/div[3]/table/tbody/tr[4]/td[2]/input[@type='checkbox']");
+
+ $this->click("xpath=//a[text()='Standard Timeline']");
+ $this->select2("xpath=//tr[@class='addRow']/td[contains(text(),'Add activity:')]/span/div/a", 'SMS', FALSE, TRUE);
+
+ $this->click("xpath=//div[@class='crm-submit-buttons']/span/input[@value='Save']");
+ $this->waitForElementPresent("xpath=//*[@id='crm-main-content-wrapper']/div/div/div[2]/a/span[contains(text(),'New Case Type')]");
+
+ $this->verifyText("xpath=//table/tbody//tr/td[contains(text(),'$editCaseTypeLabel')]", $editCaseTypeLabel);
+ }
+}
$this->openCiviPage('case', 'reset=1', 'css=a.button');
// Click on find my cases and check if right radio is checked
- $this->clickLink("name=find_my_cases", "css=input.form-submit");
+ $this->clickLink("name=find_my_cases", "css=input.crm-form-submit");
$this->assertTrue($this->isChecked("name=case_owner value=2"), 'Find my cases button not properly setting search form value to my cases.');
// Go back to dashboard
$this->openCivipage('case', 'reset=1', 'css=a.button');
// Click on a drilldown cell and check if right radio is checked
- $this->clickLink("css=a.crm-case-summary-drilldown", "css=input.form-submit");
+ $this->clickLink("css=a.crm-case-summary-drilldown", "css=input.crm-form-submit");
$this->assertTrue($this->isChecked("name=case_owner value=1"), 'Drilldown on dashboard summary cells not properly setting search form value to all cases.');
// Go back to dashboard and reset to my cases
$this->clickLink("name=allupcoming value=0", "css=a.button");
// Click on a drilldown cell and check if right radio is checked
- $this->clickLink("css=a.crm-case-summary-drilldown", "css=input.form-submit");
+ $this->clickLink("css=a.crm-case-summary-drilldown", "css=input.crm-form-submit");
$this->assertTrue($this->isChecked("name=case_owner value=2"), 'Drilldown on dashboard summary cells not properly setting search form value to my cases.');
}
}
$this->click("edit-submit");
$this->waitForTextPresent("The role has been deleted.");
}
+
+ /**
+ * Webtest for add contact to group (CRM-15108)
+ */
+ function testAddContactToGroup() {
+ $this->webtestLogin();
+ $this->openCiviPage("contact/add", "reset=1&ct=Individual");
+ $this->waitForElementPresent('_qf_Contact_upload_view-bottom');
+
+ //Create contact.
+ $group = "Advisory Board";
+ $firstName = "Adams".substr(sha1(rand()), 0, 4);
+ $lastName = substr(sha1(rand()), 0, 4);
+ $email = "{$lastName}.{$firstName}@example.org";
+ $this->type('first_name', $firstName);
+ $this->type('last_name', $lastName);
+ $this->type('email_1_email', "{$firstName}.{$lastName}@example.com");
+ $this->click('_qf_Contact_upload_view-bottom');
+ $this->waitForText('crm-notification-container', "Contact Saved");
+
+ $this->openCiviPage('group', 'reset=1');
+ $this->waitForElementPresent("xpath=//a/span[text()='Add Group']");
+ $this->waitForElementPresent("xpath=//table[@id='DataTables_Table_0']/tbody//tr/td[1]/span[contains(text(), '{$group}')]");
+ $this->click("xpath=//table[@id='DataTables_Table_0']/tbody//tr/td[1]/span[text()='{$group}']/../../td[7]/span[1]/a[1]");
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+ $this->clickLink("xpath=//form[@id='Basic']/div[2]/a/span");
+ $this->waitForElementPresent("_qf_Basic_refresh");
+ $this->type('sort_name', $firstName);
+ $this->click('_qf_Basic_refresh');
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+ $this->waitForElementPresent("_qf_Basic_next_action");
+
+ $this->assertTrue($this->isElementPresent("xpath=//table/tbody//tr/td[3]/a[text()='{$lastName}, {$firstName}']"));
+ $this->click("xpath=//table/tbody//tr/td[1]/input[@type='checkbox']");
+ $this->click('_qf_Basic_next_action');
+ $this->waitForElementPresent("_qf_AddToGroup_back-bottom");
+ $this->click('_qf_AddToGroup_next-bottom');
+ $this->waitForText('crm-notification-container', "1 contact added to group");
+
+ $this->openCiviPage('contact/search', 'reset=1');
+ $this->waitForElementPresent("_qf_Basic_refresh");
+ $this->type('sort_name', $firstName);
+ $this->select('group',"Advisory Board");
+ $this->click('_qf_Basic_refresh');
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+ $this->assertTrue($this->isElementPresent("xpath=//table/tbody//tr/td[3]/a[text()='{$lastName}, {$firstName}']"));
+ }
}
break;
}
}
- $this->click("css=#$block input.form-submit");
+ $this->click("css=#$block input.crm-form-submit");
if ($valid !== 'error') {
// Verify the form saved
$this->waitForElementPresent("css=#$block > .crm-inline-block-content");
$this->assertChecked("check_3");
}
+ function testMergeContactSubType() {
+ $this->webtestLogin();
+ $this->openCiviPage("contact/add", "reset=1&ct=Individual");
+ $this->waitForElementPresent('_qf_Contact_cancel-bottom');
+ //fill in first name
+ $firstName = "Anderson".substr(sha1(rand()), 0, 4);
+ $this->type('first_name', $firstName);
+
+ //fill in last name
+ $lastName = substr(sha1(rand()), 0, 4);
+ $this->type('last_name', $lastName);
+
+ //fill in email id
+ $this->waitForElementPresent('email_1_email');
+ $this->type('email_1_email', "{$firstName}.{$lastName}@example.com");
+ $this->waitForElementPresent('contact_sub_type');
+ $this->select('contact_sub_type', "Parent");
+
+ // Clicking save.
+ $this->click("_qf_Contact_upload_view");
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+ $this->waitForText('crm-notification-container', "Contact Saved");
+
+ // contact2: contact with same email id as contact 1.
+ $this->openCiviPage("contact/add", "reset=1&ct=Individual");
+ $this->waitForElementPresent('_qf_Contact_cancel-bottom');
+
+ $fName = "John".substr(sha1(rand()), 0, 4);
+ $this->type('first_name', $fName);
+ $lName = substr(sha1(rand()), 0, 4);
+ $this->type('last_name', $lName);
+ $this->type('email_1_email', "{$firstName}.{$lastName}@example.com");
+ $this->waitForElementPresent('contact_sub_type');
+ $this->multiselect2('contact_sub_type', array("Student", "Staff"));
+ $this->click("_qf_Contact_upload_view");
+ $this->waitForText('crm-notification-container', "Contact Saved");
+ $this->openCiviPage("contact/deduperules", "reset=1");
+ $this->click("xpath=//*[@id='option12']/tbody/tr[3]/td[3]/span/a[1][contains(text(),'Use Rule')]");
+ $this->waitForElementPresent('_qf_DedupeFind_submit-bottom');
+ $this->click("_qf_DedupeFind_next-bottom");
+
+ $this->waitForElementPresent("xpath=//table[@id='option51']/tbody/tr[1]/td[4]/a[text()='merge']");
+ $this->waitForElementPresent("xpath=//*[@id='DedupeFind']/a[3]/span[contains(text(),'Done')]");
+ $this->isElementPresent("xpath=//table[@id='option51']/tbody/tr/td[1]/a[text()='{$firstName} {$lastName}']/../td[2]/a[text()='{$fName} {$lName}']");
+ $this->click("xpath=//table[@id='option51']/tbody/tr[1]/td[4]/a[text()='merge']");
+ $this->waitForElementPresent('_qf_Merge_cancel-bottom');
+ $this->click('toggleSelect');
+ $this->click('_qf_Merge_next-bottom');
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+ $this->assertTrue($this->isTextPresent("Staff, Student"));
+ }
/**
* @param $firstName
* @param $lastName
$this->_testOrganization($pageId, $cid, $pageTitle);
}
+ function testWithContactSubtypeDupe() {
+ $this->webtestLogin();
+
+ //create organisation
+ $orgName = "Org WebAccess ". substr(sha1(rand()), 0, 7);
+ $orgEmail = "org". substr(sha1(rand()), 0, 7) . "@web.com";
+ $contactSubType = 'Sponsor';
+ $this->webtestAddOrganization($orgName, $orgEmail, $contactSubType);
+
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+ $cid = $this->urlArg('cid');
+
+ $pageTitle = substr(sha1(rand()), 0, 7);
+ $rand = 100;
+ $hash = substr(sha1(rand()), 0, 7);
+ $amountSection = TRUE;
+ $payLater = TRUE;
+ $onBehalf = TRUE;
+ $pledges = FALSE;
+ $recurring = FALSE;
+ $memberships = FALSE;
+ $memPriceSetId = NULL;
+ $friend = FALSE;
+ $profilePreId = NULL;
+ $profilePostId = NULL;
+ $premiums = FALSE;
+ $widget = FALSE;
+ $pcp = FALSE;
+ $honoreeSection = FALSE;
+ $isAddPaymentProcessor = FALSE;
+ $isPcpApprovalNeeded = FALSE;
+ $isSeparatePayment = FALSE;
+
+ // create a new online contribution page
+ // create contribution page with randomized title and default params
+ $pageId = $this->webtestAddContributionPage($hash,
+ $rand,
+ $pageTitle,
+ null,
+ $amountSection,
+ $payLater,
+ $onBehalf,
+ $pledges,
+ $recurring,
+ $memberships,
+ $memPriceSetId,
+ $friend,
+ $profilePreId,
+ $profilePostId,
+ $premiums,
+ $widget,
+ $pcp,
+ $isAddPaymentProcessor,
+ $isPcpApprovalNeeded,
+ $isSeparatePayment,
+ $honoreeSection
+ );
+
+ //Open Live Contribution Page
+ $this->openCiviPage("contribute/transact", "reset=1&id=$pageId", "_qf_Main_upload-bottom");
+ $this->waitForElementPresent("onbehalf_state_province-3");
+
+ $this->type("onbehalf_organization_name", $orgName);
+ $this->waitForElementPresent("onbehalf_phone-3-1");
+ $this->type("onbehalf_phone-3-1", 9999999999);
+ $this->waitForElementPresent("onbehalf_email-3");
+ $this->type("onbehalf_email-3", "org@example.com");
+ $this->type("onbehalf_street_address-3", "Test Street Address");
+ $this->type("onbehalf_city-3", "Test City");
+ $this->type("onbehalf_postal_code-3", substr(sha1(rand()), 0, 6));
+ $this->click("onbehalf_country-3");
+ $this->select("onbehalf_country-3", "label=United States");
+ $this->click("onbehalf_state_province-3");
+ $this->select("onbehalf_state_province-3", "label=Alabama");
+
+ $this->waitForElementPresent("_qf_Main_upload-bottom");
+ $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next-bottom");
+
+ $this->click("_qf_Confirm_next-bottom");
+ $this->waitForPageToLoad($this->getTimeoutMsec());
+
+ $this->openCiviPage("contact/view", "reset=1&cid=$cid", "xpath=//div[@class='crm-content crm-contact_type_label']");
+
+ $this->verifyText("xpath=//div[@class='crm-content crm-contact_type_label']", $contactSubType);
+ }
+
/**
* @param $pageId
* @param $cid
$this->click("CIVICRM_QFID_0_is_monetary");
$this->clickLink("_qf_Fee_upload-bottom", "_qf_Fee_upload-bottom", FALSE);
- $this->waitForElementPresent("xpath=//div[@id='event-fees'][@style='display: none;']");
+ sleep(2);
//check if pay later option is disabled
$this->click('CIVICRM_QFID_1_is_monetary');
$this->waitForElementPresent('is_pay_later');
//check the delete for price field
$this->openCiviPage("admin/price/field", "reset=1&action=browse&sid={$sid}");
$this->click("xpath=//table[@id='option11']/tbody/tr/td[9]/span[2]/ul/li[2]/a");
- // Check confirmation alert.
- $this->assertTrue((bool)preg_match("/^Are you sure you want to delete this price field?/",
- $this->getConfirmation()
- ));
- $this->chooseOkOnNextConfirmation();
- $this->waitForPageToLoad($this->getTimeoutMsec());
//assert the message
$this->waitForText('price_set_used_by',
"it is currently in use by one or more active events or contribution pages or contributions or event templates.");
*/
require_once 'CiviTest/CiviSeleniumTestCase.php';
-require_once 'WebTest/Event/AddEventTest.php';
/**
* Class WebTest_Event_PCPAddTest
preg_quote("$lastName, $firstName")
);
- $this->verifyText("xpath=//table[@class='crm-info-panel']/tbody/tr[2]/td[2]/span/a[1]",
+ $this->verifyText("xpath=//table[@class='crm-info-panel']/tbody/tr[2]/td[2]/span",
preg_quote("$lastName1, $firstName1")
);
- $this->verifyText("xpath=//table[@class='crm-info-panel']/tbody/tr[2]/td[2]/span/a[2]",
+ $this->verifyText("xpath=//table[@class='crm-info-panel']/tbody/tr[2]/td[2]/span",
preg_quote("$lastName2, $firstName2")
);
- $this->verifyText("xpath=//table[@class='crm-info-panel']/tbody/tr[2]/td[2]/span/a[3]",
+ $this->verifyText("xpath=//table[@class='crm-info-panel']/tbody/tr[2]/td[2]/span",
preg_quote("$lastName3, $firstName3")
);
/**
* Class WebTest_Import_SavedMapping
*/
-class WebTest_Import_SavedMapping extends ImportCiviSeleniumTestCase {
+class WebTest_Import_SavedMappingTest extends ImportCiviSeleniumTestCase {
protected function setUp() {
parent::setUp();
$this->webtestVerifyTabularData($expected);
}
+ function testStandaloneGiftMembership() {
+
+ $this->webtestLogin();
+
+ // create contact
+ $firstName = substr(sha1(rand()), 0, 7);
+ $this->webtestAddContact($firstName, "Memberson", "Memberson{$firstName}@memberson.name");
+ $contactName = "Memberson, $firstName";
+
+ $giftMemberfirstName = substr(sha1(rand()), 0, 7);
+ $this->webtestAddContact($giftMemberfirstName, "Memberson", "Memberson{$giftMemberfirstName}@memberson.name");
+ $giftMembercontactName = "Memberson, $giftMemberfirstName";
+
+ // add membership type
+ $membershipTypes = $this->webtestAddMembershipType();
+
+ // now add membership
+ $this->openCiviPage("member/add", "reset=1&action=add&context=standalone", "_qf_Membership_upload");
+
+ // select contact
+ $this->webtestFillAutocomplete($firstName);
+
+ // fill in Membership Organization
+ $this->select("membership_type_id[0]", "label={$membershipTypes['member_of_contact']}");
+
+ // select membership type
+ $this->select("membership_type_id[1]", "label={$membershipTypes['membership_type']}");
+
+ // fill in Source
+ $this->type("source", "Membership StandaloneAddTest Webtest");
+
+ // fill in Start Date
+ $this->webtestFillDate('start_date');
+
+ // add softcredit details
+ $totalAmount = 100;
+ $financialType = 'Donation';
+ $this->clickLink('is_different_contribution_contact','total_amount',FALSE);
+
+ $this->select('soft_credit_type_id', 'Gift');
+ $this->select2('soft_credit_contact_id', $giftMembercontactName);
+ $this->select('financial_type_id','Donation');
+ $this->type('total_amount', $totalAmount);
+ $this->select('payment_instrument_id', 'Check');
+ $this->select('contribution_status_id', 'Completed');
+
+ $this->click("_qf_Membership_upload");
+
+ //View Membership
+ $this->waitForElementPresent("xpath=//div[@id='memberships']//table//tbody/tr[1]/td[9]/span/a[text()='View']");
+ $this->click("xpath=//div[@id='memberships']//table/tbody/tr[1]/td[9]/span/a[text()='View']");
+ $this->waitForElementPresent("_qf_MembershipView_cancel-bottom");
+
+ // verify soft credit data
+ $expected = array(
+ '1' => $giftMemberfirstName.' Memberson',
+ '2' => $totalAmount,
+ '3' => 'Gift',
+ '4' => 'Donation',
+ '6' => 'Completed',
+ );
+
+ foreach($expected as $key => $value) {
+ $this->verifyText("xpath=//div[@class='crm-accordion-wrapper']//table/tbody//tr/td[$key]", $value);
+ }
+
+ }
+
function testStandaloneMemberOverrideAdd() {
$this->webtestLogin();
// Justification for this instance: FIXME
sleep(3);
$this->click("//div[@id='custom--table-wrapper']/div/div/table/tbody/tr/td[3]/span/a[text()='Edit']");
- $this->waitForElementPresent("xpath=//div[@class='ui-dialog-content ui-widget-content modal-dialog crm-ajax-container']/form/div[2]//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate form-submit default crm-form-submit']");
+ $this->waitForElementPresent("xpath=//div[@class='ui-dialog-content ui-widget-content modal-dialog crm-ajax-container']/form/div[2]//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate crm-form-submit default crm-form-submit']");
$this->verifyText("//div[@id='custom--table-wrapper']/div/div/table/thead/tr/th[1]", preg_quote($params['textFieldLabel']));
$this->type("//div[@id='crm-profile-block']/div/div[2]/input[@class='crm-form-text required']", $recordNew['text'].'edit');
- $this->click("xpath=//div[@class='ui-dialog-content ui-widget-content modal-dialog crm-ajax-container']/form/div[2]//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate form-submit default crm-form-submit']");
+ $this->click("xpath=//div[@class='ui-dialog-content ui-widget-content modal-dialog crm-ajax-container']/form/div[2]//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate crm-form-submit default crm-form-submit']");
$this->waitForText("//div[@id='custom--table-wrapper']/div/div/table/tbody/tr[1]/td[1]", $recordNew['text'].'edit');
$editalertText = $this->getAlert();
$this->assertEquals("Thank you. Your information has been saved.", $editalertText);
$this->type('email-Primary', $params['email']);
$this->waitForElementPresent("//div[@id='crm-profile-block']//div/div[2]/select");
$this->select("//div[@id='crm-profile-block']//div/div[2]/select",'value=1');
- $this->click("xpath=//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate form-submit default crm-form-submit']");
+ $this->click("xpath=//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate crm-form-submit default crm-form-submit']");
}
else {
$this->waitForElementPresent("//div[@id='crm-profile-block']//div/div[2]/select");
$this->select("//div[@id='crm-profile-block']//div/div[2]/select",'value=1');
- $this->click("xpath=//div[@class='ui-dialog-content ui-widget-content modal-dialog crm-ajax-container']/form/div[2]//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate form-submit default crm-form-submit']");
+ $this->click("xpath=//div[@class='ui-dialog-content ui-widget-content modal-dialog crm-ajax-container']/form/div[2]//div[@id='crm-profile-block']//div[@class='crm-submit-buttons']/span/input[@class='validate crm-form-submit default crm-form-submit']");
}
return $params;
}
CRM_Utils_Hook::singleton()->reset();
$tablesToTruncate = array(
'civicrm_contact',
+ 'civicrm_group_contact',
+ 'civicrm_group',
+ 'civicrm_acl',
+ 'civicrm_acl_cache',
+ 'civicrm_acl_entity_role',
+ 'civicrm_acl_contact_cache',
+ 'civicrm_contribution',
+ 'civicrm_participant',
);
$this->quickCleanup($tablesToTruncate);
$config = CRM_Core_Config::singleton();
);
}
+ function setupCoreACL() {
+ $this->createLoggedInUser();
+ $this->_permissionedDisabledGroup = $this->groupCreate(array('title' => 'pick-me-disabled', 'is_active' => 0, 'name' => 'pick-me-disabled'));
+ $this->_permissionedGroup = $this->groupCreate(array('title' => 'pick-me-active', 'is_active' => 1, 'name' => 'pick-me-active'));
+ $this->setupACL();
+ }
+ /**
+ * @dataProvider entities
+ * confirm that without check permissions we still get 2 contacts returned
+ */
+ function testEntitiesGetHookLimitingHookNoCheck($entity) {
+ CRM_Core_Config::singleton()->userPermissionClass->permissions = array();
+ $this->setUpEntities($entity);
+ $this->hookClass->setHook('civicrm_aclWhereClause', array($this, 'aclWhereHookNoResults'));
+ $result = $this->callAPISuccess($entity, 'get', array(
+ 'check_permissions' => 0,
+ 'return' => 'contact_id',
+ ));
+ $this->assertEquals(2, $result['count']);
+ }
+
+ /**
+ * @dataProvider entities
+ * confirm that without check permissions we still get 2 entities returned
+ */
+ function testEntitiesGetCoreACLLimitingHookNoCheck($entity) {
+ $this->setupCoreACL();
+ //CRM_Core_Config::singleton()->userPermissionClass->permissions = array();
+ $this->setUpEntities($entity);
+ $this->hookClass->setHook('civicrm_aclWhereClause', array($this, 'aclWhereHookNoResults'));
+ $result = $this->callAPISuccess($entity, 'get', array(
+ 'check_permissions' => 0,
+ 'return' => 'contact_id',
+ ));
+ $this->assertEquals(2, $result['count']);
+ }
+ /**
+ * @dataProvider entities
+ * confirm that with check permissions we don't get entities
+ */
+ function testEntitiesGetCoreACLLimitingCheck($entity) {
+ $this->markTestIncomplete('this does not work in 4.4 but can be enabled in 4.5 or a security release of 4.4 including the important security fix CRM-14877');
+ $this->setupCoreACL();
+ $this->setUpEntities($entity);
+ $result = $this->callAPISuccess($entity, 'get', array(
+ 'check_permissions' => 1,
+ 'return' => 'contact_id',
+ ));
+ $this->assertEquals(0, $result['count']);
+ }
+
+
+ /**
+ * @dataProvider entities
+ * Function tests that an empty where hook returns no results
+ */
+ function testEntityGetNoResultsHook($entity) {
+ $this->markTestIncomplete('hook acls only work with contacts so far');
+ CRM_Core_Config::singleton()->userPermissionClass->permissions = array();
+ $this->setUpEntities($entity);
+ $this->hookClass->setHook('civicrm_aclWhereClause', array($this, 'aclWhereHookNoResults'));
+ $result = $this->callAPISuccess($entity, 'get', array(
+ 'check_permission' => 1,
+ ));
+ $this->assertEquals(0, $result['count']);
+ }
+
+ /**
+ * @return array
+ */
+ public static function entities() {
+ return array(array('contribution'), array('participant'),);// @todo array('pledge' => 'pledge')
+ }
+
+ /**
+ * Create 2 entities
+ */
+ public function setUpEntities($entity) {
+ $baoObj = new CRM_Core_DAO();
+ $baoObj->createTestObject( _civicrm_api3_get_BAO($entity), array(), 2, 0);
+ CRM_Core_Config::singleton()->userPermissionClass->permissions = array(
+ 'access CiviCRM',
+ 'access CiviContribute',
+ 'access CiviEvent',
+ 'view event participants',
+ );
+ }
+
/**
* no results returned
*/
$where = " contact_a.id > 1";
}
}
-
// Insert a row in civicrm_contact creating individual contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_ind.xml'
)
);
$this->assertEquals($value, $getResult['values'][23][$key]);
}
// Check updated civicrm_contact against expected
- $expected = new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $expected = $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_ind_upd.xml'
);
- $actual = new PHPUnit_Extensions_Database_DataSet_QueryDataset(
+ $actual = new PHPUnit_Extensions_Database_DataSet_QueryDataSet(
$this->_dbconn
);
$actual->addTable('civicrm_contact');
// Insert a row in civicrm_contact creating organization contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_org.xml'
)
);
$this->callAPISuccess('Contact', 'Update', $params);
// Check updated civicrm_contact against expected
- $expected = new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $expected = $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_org_upd.xml'
);
- $actual = new PHPUnit_Extensions_Database_DataSet_QueryDataset(
+ $actual = new PHPUnit_Extensions_Database_DataSet_QueryDataSet(
$this->_dbconn
);
$actual->addTable('civicrm_contact');
// Insert a row in civicrm_contact creating household contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_hld.xml'
)
);
// Insert a row in civicrm_contact creating individual contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_ind.xml'
)
);
// Insert a row in civicrm_contact creating individual contact
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_17.xml'
)
);
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/email_contact_17.xml'
)
);
// Insert a row in civicrm_contact creating contact 17
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_17.xml'
)
);
// Insert a row in civicrm_contact creating contact 17
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(dirname(__FILE__) . '/dataset/contact_17.xml'
+ $this->createXMLDataSet(dirname(__FILE__) . '/dataset/contact_17.xml'
)
);
// Insert a row in civicrm_contact creating contact 17
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/contact_17.xml'
)
);
$this->assertArrayHasKey('payment_instrument', $contribution['values'][0]);
$this->assertEquals('EFT', $contribution['values'][0]['payment_instrument']);
$this->assertEquals(1, $contribution['count']);
- $contribution = $this->callAPISuccess('contribution', 'update', array('id' => $contribution['id'], 'payment_instrument' => 'Credit Card'));
+ $contribution = $this->callAPISuccess('contribution', 'create', array('id' => $contribution['id'], 'payment_instrument' => 'Credit Card'));
$contribution = $this->callAPISuccess('contribution','get',array( 'sequential' => 1, 'id' => $contribution['id'], ));
$this->assertArrayHasKey('payment_instrument', $contribution['values'][0]);
$this->assertEquals('Credit Card',$contribution['values'][0]['payment_instrument']);
'id' => $contribution['id'],
'total_amount' => '125');
- $contribution = $this->callAPISuccess('contribution', 'update', $newParams);
+ $contribution = $this->callAPISuccess('contribution', 'create', $newParams);
$lineItems = $this->callAPISuccess('line_item','getvalue',array(
'id' => $contribution['id'],
'contribution_status_id' => 1,)
);
- $contribution = $this->callAPISuccess('contribution', 'update', $newParams);
+ $contribution = $this->callAPISuccess('contribution', 'create', $newParams);
$contribution = $contribution['values'][$contribution['id']];
$this->assertEquals($contribution['contribution_status_id'],'1');
$this->_checkFinancialItem($contribution['id'], 'paylater');
'id' => $contribution['id'],
'payment_instrument_id' => $instrumentId,)
);
- $contribution = $this->callAPISuccess('contribution', 'update', $newParams);
+ $contribution = $this->callAPISuccess('contribution', 'create', $newParams);
$this->assertAPISuccess($contribution);
$this->_checkFinancialTrxn($contribution, 'paymentInstrument', $instrumentId);
}
)
);
- $contribution = $this->callAPISuccess('contribution', 'update', $newParams);
+ $contribution = $this->callAPISuccess('contribution', 'create', $newParams);
$this->_checkFinancialTrxn($contribution, 'refund');
$this->_checkFinancialItem($contribution['id'], 'refund');
}
'contribution_status_id' => 2,
)
);
- $contribution = $this->callAPIFailure('contribution', 'update', $newParams,
+ $contribution = $this->callAPIFailure('contribution', 'create', $newParams,
ts('Cannot change contribution status from Completed to Pending.')
);
'contribution_status_id' => 3,
)
);
- $contribution = $this->callAPISuccess('contribution', 'update', $newParams);
+ $contribution = $this->callAPISuccess('contribution', 'create', $newParams);
$this->_checkFinancialTrxn($contribution, 'cancelPending');
$this->_checkFinancialItem($contribution['id'], 'cancelPending');
}
'financial_type_id' => 3,
)
);
- $contribution = $this->callAPISuccess('contribution', 'update', $newParams);
+ $contribution = $this->callAPISuccess('contribution', 'create', $newParams);
$this->_checkFinancialTrxn($contribution, 'changeFinancial');
$this->_checkFinancialItem($contribution['id'], 'changeFinancial');
}
+ /**
+ * test that update does not change status id CRM-15105
+ */
+ function testCreateUpdateWithoutChangingPendingStatus() {
+ $contribution = $this->callAPISuccess('contribution', 'create', array_merge($this->_params, array('contribution_status_id' => 2)));
+ $this->callAPISuccess('contribution', 'create', array('id' => $contribution['id'], 'source' => 'new source'));
+ $contribution = $this->callAPISuccess('contribution', 'getsingle', array('id' => $contribution['id'], 'api.contribution.delete' => 1));
+ $this->assertEquals(2, $contribution['contribution_status_id']);
+ }
//To Update Contribution
//CHANGE: we require the API to do an incremental update
function testCreateUpdateContribution() {
$this->callAPISuccess('line_item', 'create', array(
'entity_id' => $contribution['id'],
'entity_table' => 'civicrm_contribution',
+ 'contribution_id' => $contribution['id'],
'price_field_id' => $this->_ids['price_field'][0],
'qty' => 1,
'unit_price' => 20,
// from_email_address group
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/group_admins.xml'
)
);
// from_email_address group
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/group_subscribers.xml'
)
);
// from_email_address group
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/group_nesting.xml'
)
);
$op = new PHPUnit_Extensions_Database_Operation_Insert();
//Create the User
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/mailing_contact.xml'
)
);
//~ Create the Mailing and connections to the user
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/mailing_delivered.xml'
)
);
$op = new PHPUnit_Extensions_Database_Operation_Insert();
//Create the User
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/mailing_contact.xml'
)
);
//~ Create the Mailing and connections to the user
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_XMLDataSet(
+ $this->createXMLDataSet(
dirname(__FILE__) . '/dataset/mailing_bounced.xml'
)
);
'membership_type_id' => $membershipTypeId,
);
$result = $this->callAPISuccess('membership', 'get', $params);
- //exit;
// If it fails here CRM-14758 is not fixed
$this->assertEquals(1, $result['count']);
$result = $result['values'][$result['id']];
$this->assertEquals($OrganizationMembershipID, $result['owner_membership_id']);
// Create third employee
- $memberContactId[2] = $this->individualCreate(array('current_employer' => $employerId[0]), 2);
+ $memberContactId[2] = $this->individualCreate(array('employer_id' => $employerId[0]), 2);
// Check that employee does NOT inherit the membership (max_related = 2)
$params = array(
$this->callAPISuccess('participant', 'delete', array('id' => $participant['id']));
}
+
+ /**
+ * Test the line items for participant fee with multiple price field values.
+ */
+ function testCreateParticipantLineItems() {
+ // Create a price set for this event.
+
+ $priceset = $this->callAPISuccess('PriceSet', 'create', array(
+ 'name' => 'my_price_set',
+ 'title' => 'My Price Set',
+ 'is_active' => 1,
+ 'extends' => 1,
+ 'financial_type_id' => 4,
+ // 'entity' => array('civicrm_event' => array($this->_eventID)),
+ ));
+
+ // Add the price set to the event with another API call.
+ // I tried to do this at once, but it did not work.
+
+ $priceset = $this->callAPISuccess('PriceSet', 'create', array(
+ 'entity_table' => 'civicrm_event',
+ 'entity_id' => $this->_eventID,
+ 'id' => $priceset['id'],
+ ));
+
+ $pricefield = $this->callAPISuccess('PriceField', 'create', array(
+ 'price_set_id' => $priceset['id'],
+ 'name' => 'mypricefield',
+ 'label' => 'My Price Field',
+ 'html_type' => 'Text',
+ 'is_enter_qty' => 1,
+ 'is_display_amounts' => 1,
+ 'is_active' => 1,
+ ));
+
+ $pfv1 = $this->callAPISuccess('PriceFieldValue', 'create', array(
+ 'price_field_id' => $pricefield['id'],
+ 'name' => 'pricefieldvalue1',
+ 'label' => 'pricefieldvalue1',
+ 'amount' => 20,
+ 'is_active' => 1,
+ 'financial_type_id' => 4,
+ ));
+
+ $pfv2 = $this->callAPISuccess('PriceFieldValue', 'create', array(
+ 'price_field_id' => $pricefield['id'],
+ 'name' => 'pricefieldvalue2',
+ 'label' => 'pricefieldvalue2',
+ 'amount' => 5,
+ 'is_active' => 1,
+ 'financial_type_id' => 4,
+ ));
+
+ // pay 2 times price field value 1, and 2 times price field value 2.
+ $myParams = $this->_params + array('participant_fee_level' => CRM_Core_DAO::VALUE_SEPARATOR . "pricefieldvalue1 - 2" . CRM_Core_DAO::VALUE_SEPARATOR . "pricefieldvalue2 - 2" . CRM_Core_DAO::VALUE_SEPARATOR);
+ $participant = $this->callAPISuccess('participant', 'create', $myParams);
+
+ // expect 2 line items.
+ $lineItems = $this->callAPISuccess('LineItem', 'get', array(
+ 'entity_id' => $participant['id'],
+ 'entity_table' => 'civicrm_participant',
+ ));
+
+ $this->assertEquals(2, $lineItems['count']);
+
+ // Check quantity, label and unit price of lines.
+ // TODO: These assertions depend on the order of the line items, which is
+ // technically incorrect.
+
+ $lineItem = array_pop($lineItems['values']);
+ $this->assertEquals(2, $lineItem['qty']);
+ $this->assertEquals(5, $lineItem['unit_price']);
+ $this->assertEquals('pricefieldvalue2', $lineItem['label']);
+
+ $lineItem = array_pop($lineItems['values']);
+ $this->assertEquals(2, $lineItem['qty']);
+ $this->assertEquals(20, $lineItem['unit_price']);
+ $this->assertEquals('pricefieldvalue1', $lineItem['label']);
+
+ // Cleanup
+ $this->callAPISuccess('participant', 'delete', array('id' => $participant['id']));
+
+ // TODO: I think the price set should be removed, but I don't know how
+ // to decouple it properly from the event. For the moment, I'll just comment
+ // out the lines below.
+
+ /*
+ $this->callAPISuccess('PriceFieldValue', 'delete', array('id' => $pfv1['id']));
+ $this->callAPISuccess('PriceFieldValue', 'delete', array('id' => $pfv2['id']));
+ $this->callAPISuccess('PriceField', 'delete', array('id' => $pricefield['id']));
+ $this->callAPISuccess('PriceSet', 'delete', array('id' => $priceset['id']));
+ */
+ }
+
/**
* check with complete array
*/
// @TODO: Create profile with custom fields
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$op->execute($this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(
+ $this->createFlatXMLDataSet(
dirname(__FILE__) . '/dataset/uf_group_contact_activity_26.xml'
)
);
return static::entities(static::toBeSkipped_delete(TRUE));
}
+ /**
+ * @return array
+ */
+ public static function entities_getfields() {
+ return static::entities(static::toBeSkipped_getfields(TRUE));
+ }
/**
* @return array
*/
return $entities;
}
+ /**
+ * @param bool $sequential
+ *
+ * @return array
+ * @todo add metadata for ALL these entities
+ */
+ public static function toBeSkipped_getfields($sequential = FALSE) {
+ $entitiesWithMetadataNotYetFixed = array('ReportTemplate', 'CustomSearch');
+ if ($sequential === TRUE) {
+ return $entitiesWithMetadataNotYetFixed ;
+ }
+ $entities = array();
+ foreach ($entitiesWithMetadataNotYetFixed as $e) {
+ $entities[] = array($e);
+ }
+ return $entities;
+ }
/**
* Generate list of entities to test for get by id functions
* @param boolean $sequential
);
}
+ /**
+ * Create two entities and make sure delete action only deletes one!
+ *
+ * @dataProvider entities_getfields
+ *
+ */
+ public function testGetfieldsHasTitle($entity) {
+ $entities = $this->getEntitiesSupportingCustomFields();
+ if (in_array($entity, $entities)) {
+ $ids = $this->entityCustomGroupWithSingleFieldCreate(__FUNCTION__, $entity . 'Test.php');
+ }
+ $fields = $this->callAPISuccess($entity, 'getfields', array('action' => 'create'));
+ if (!empty($ids)) {
+ $this->assertArrayHasKey('custom_' . $ids['custom_field_id'], $fields['values']);
+ }
+
+ foreach ($fields['values'] as $fieldName => $fieldSpec) {
+ $this->assertArrayHasKey('title', $fieldSpec, "no title for $entity - $fieldName");
+ $this->assertNotEmpty($fieldSpec['title'], "empty title for $entity - $fieldName");
+ }
+
+ if (!empty($ids)) {
+ $this->customFieldDelete($ids['custom_field_id']);
+ $this->customGroupDelete($ids['custom_group_id']);
+ }
+ }
+
+ /**
+ * @return array
+ */
+ public function getEntitiesSupportingCustomFields() {
+ $entities = self::custom_data_entities_get();
+ $returnEntities = array();
+ foreach ($entities as $entityArray) {
+ $returnEntities[] = $entityArray[0];
+ }
+ return $returnEntities;
+ }
/**
* @param $entityName
* @param int $count
1 => array($eventId, 'Integer')
));
}
-
}
$op = new PHPUnit_Extensions_Database_Operation_Insert;
$op->execute(
$this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
+ $this->createFlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
);
$this->callAPISuccess('uf_field', 'getfields', array('cache_clear' => 1));
$op = new PHPUnit_Extensions_Database_Operation_Insert;
$op->execute(
$this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
+ $this->createFlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
);
}
$op = new PHPUnit_Extensions_Database_Operation_Insert;
$op->execute(
$this->_dbconn,
- new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
+ $this->createFlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
);
$this->_params = array(
{/if}
</div>
{/if}
-{literal}
-<script type="text/javascript">
-CRM.$(function($) {
- cj().crmaccordions();
-});
-</script>
-{/literal}
NULL, -1
);
- $this->_columns = array(ts('Contact Id') => 'contact_id',
+ $this->_columns = array(ts('Contact ID') => 'contact_id',
ts('Contact Type') => 'contact_type',
ts('Name') => 'sort_name',
);
+++ /dev/null
-<?php
-
-// AUTO-GENERATED FILE -- Civix may overwrite any changes made to this file
-
-/**
- * (Delegated) Implementation of hook_civicrm_config
- */
-function _clickatell_civix_civicrm_config(&$config = NULL) {
- static $configured = FALSE;
- if ($configured) return;
- $configured = TRUE;
-
- $template =& CRM_Core_Smarty::singleton();
-
- $extRoot = dirname( __FILE__ ) . DIRECTORY_SEPARATOR;
- $extDir = $extRoot . 'templates';
-
- if ( is_array( $template->template_dir ) ) {
- array_unshift( $template->template_dir, $extDir );
- } else {
- $template->template_dir = array( $extDir, $template->template_dir );
- }
-
- $include_path = $extRoot . PATH_SEPARATOR . get_include_path( );
- set_include_path( $include_path );
-}
-
-/**
- * (Delegated) Implementation of hook_civicrm_xmlMenu
- *
- * @param $files array(string)
- */
-function _clickatell_civix_civicrm_xmlMenu(&$files) {
- foreach (glob(__DIR__ . '/xml/Menu/*.xml') as $file) {
- $files[] = $file;
- }
-}
-
-/**
- * Implementation of hook_civicrm_install
- */
-function _clickatell_civix_civicrm_install() {
- _clickatell_civix_civicrm_config();
- if ($upgrader = _clickatell_civix_upgrader()) {
- return $upgrader->onInstall();
- }
-}
-
-/**
- * Implementation of hook_civicrm_uninstall
- */
-function _clickatell_civix_civicrm_uninstall() {
- _clickatell_civix_civicrm_config();
- if ($upgrader = _clickatell_civix_upgrader()) {
- return $upgrader->onUninstall();
- }
-}
-
-/**
- * (Delegated) Implementation of hook_civicrm_enable
- */
-function _clickatell_civix_civicrm_enable() {
- _clickatell_civix_civicrm_config();
- if ($upgrader = _clickatell_civix_upgrader()) {
- if (is_callable(array($upgrader, 'onEnable'))) {
- return $upgrader->onEnable();
- }
- }
-}
-
-/**
- * (Delegated) Implementation of hook_civicrm_disable
- */
-function _clickatell_civix_civicrm_disable() {
- _clickatell_civix_civicrm_config();
- if ($upgrader = _clickatell_civix_upgrader()) {
- if (is_callable(array($upgrader, 'onDisable'))) {
- return $upgrader->onDisable();
- }
- }
-}
-
-/**
- * (Delegated) Implementation of hook_civicrm_upgrade
- *
- * @param $op string, the type of operation being performed; 'check' or 'enqueue'
- * @param $queue CRM_Queue_Queue, (for 'enqueue') the modifiable list of pending up upgrade tasks
- *
- * @return mixed based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
- * for 'enqueue', returns void
- */
-function _clickatell_civix_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
- if ($upgrader = _clickatell_civix_upgrader()) {
- return $upgrader->onUpgrade($op, $queue);
- }
-}
-
-/**
- * @return null
- */
-function _clickatell_civix_upgrader() {
- if (!file_exists(__DIR__.'/CRM/Clickatell/Upgrader.php')) {
- return NULL;
- } else {
- return CRM_Clickatell_Upgrader_Base::instance();
- }
-}
-
-/**
- * Search directory tree for files which match a glob pattern
- *
- * @param $dir string, base dir
- * @param $pattern string, glob pattern, eg "*.txt"
- * @return array(string)
- */
-function _clickatell_civix_find_files($dir, $pattern) {
- $todos = array($dir);
- $result = array();
- while (!empty($todos)) {
- $subdir = array_shift($todos);
- foreach (glob("$subdir/$pattern") as $match) {
- if (!is_dir($match)) {
- $result[] = $match;
- }
- }
- if ($dh = opendir($subdir)) {
- while (FALSE !== ($entry = readdir($dh))) {
- $path = $subdir . DIRECTORY_SEPARATOR . $entry;
- if ($entry == '.' || $entry == '..') {
- } elseif (is_dir($path)) {
- $todos[] = $path;
- }
- }
- closedir($dh);
- }
- }
- return $result;
-}
-/**
- * (Delegated) Implementation of hook_civicrm_managed
- *
- * Find any *.mgd.php files, merge their content, and return.
- */
-function _clickatell_civix_civicrm_managed(&$entities) {
- $mgdFiles = _clickatell_civix_find_files(__DIR__, '*.mgd.php');
- foreach ($mgdFiles as $file) {
- $es = include $file;
- foreach ($es as $e) {
- if (empty($e['module'])) {
- $e['module'] = 'org.civicrm.sms.clickatell';
- }
- $entities[] = $e;
- }
- }
-}
+++ /dev/null
-<?php
-
-require_once 'clickatell.civix.php';
-
-/**
- * Implementation of hook_civicrm_config
- */
-function clickatell_civicrm_config(&$config) {
- _clickatell_civix_civicrm_config($config);
-}
-
-/**
- * Implementation of hook_civicrm_xmlMenu
- *
- * @param $files array(string)
- */
-function clickatell_civicrm_xmlMenu(&$files) {
- _clickatell_civix_civicrm_xmlMenu($files);
-}
-
-/**
- * Implementation of hook_civicrm_install
- */
-function clickatell_civicrm_install() {
- $groupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup','sms_provider_name','id','name');
- $params =
- array('option_group_id' => $groupID,
- 'label' => 'Clickatell',
- 'value' => 'org.civicrm.sms.clickatell',
- 'name' => 'clickatell',
- 'is_default' => 1,
- 'is_active' => 1,
- 'version' => 3,);
- require_once 'api/api.php';
- civicrm_api( 'option_value','create', $params );
-
- return _clickatell_civix_civicrm_install();
-}
-
-/**
- * Implementation of hook_civicrm_uninstall
- */
-function clickatell_civicrm_uninstall() {
- $optionID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue','clickatell','id','name');
- if ($optionID)
- CRM_Core_BAO_OptionValue::del($optionID);
-
- $filter = array('name' => 'org.civicrm.sms.clickatell');
- $Providers = CRM_SMS_BAO_Provider::getProviders(False, $filter, False);
- if ($Providers){
- foreach($Providers as $key => $value){
- CRM_SMS_BAO_Provider::del($value['id']);
- }
- }
- return _clickatell_civix_civicrm_uninstall();
-}
-
-/**
- * Implementation of hook_civicrm_enable
- */
-function clickatell_civicrm_enable() {
- $optionID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue','clickatell' ,'id','name');
- if ($optionID)
- CRM_Core_BAO_OptionValue::setIsActive($optionID, TRUE);
-
- $filter = array('name' => 'org.civicrm.sms.clickatell');
- $Providers = CRM_SMS_BAO_Provider::getProviders(False, $filter, False);
- if ($Providers){
- foreach($Providers as $key => $value){
- CRM_SMS_BAO_Provider::setIsActive($value['id'], TRUE);
- }
- }
- return _clickatell_civix_civicrm_enable();
-}
-
-/**
- * Implementation of hook_civicrm_disable
- */
-function clickatell_civicrm_disable() {
- $optionID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue','clickatell','id','name');
- if ($optionID)
- CRM_Core_BAO_OptionValue::setIsActive($optionID, FALSE);
-
- $filter = array('name' => 'org.civicrm.sms.clickatell');
- $Providers = CRM_SMS_BAO_Provider::getProviders(False, $filter, False);
- if ($Providers){
- foreach($Providers as $key => $value){
- CRM_SMS_BAO_Provider::setIsActive($value['id'], FALSE);
- }
- }
- return _clickatell_civix_civicrm_disable();
-}
-
-/**
- * Implementation of hook_civicrm_upgrade
- *
- * @param $op string, the type of operation being performed; 'check' or 'enqueue'
- * @param $queue CRM_Queue_Queue, (for 'enqueue') the modifiable list of pending up upgrade tasks
- *
- * @return mixed based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
- * for 'enqueue', returns void
- */
-function clickatell_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
- return _clickatell_civix_civicrm_upgrade($op, $queue);
-}
-
-/**
- * Implementation of hook_civicrm_managed
- *
- * Generate a list of entities to create/deactivate/delete when this module
- * is installed, disabled, uninstalled.
- */
-function clickatell_civicrm_managed(&$entities) {
- return _clickatell_civix_civicrm_managed($entities);
-}
+++ /dev/null
-<?xml version="1.0"?>
-<extension key="org.civicrm.sms.clickatell" type="module">
- <downloadUrl>https://github.com/civicrm/civicrm-core/blob/4.3/tools/extensions/org.civicrm.sms.clickatell.zip?raw=true</downloadUrl>
- <file>clickatell</file>
- <name>clickatell</name>
- <description>Clickatell integration allows delivering short message service (SMS) messages through its Clickatell Gateway to mobile phone users.</description>
- <urls>
- <url desc="Main Extension Page">http://civicrm.org</url>
- <url desc="Documentation">http://wiki.civicrm.org/confluence/display/CRMDOC/Setting+up+a+SMS+Provider+for+CiviSMS</url>
- <url desc="Support">http://forum.civicrm.org</url>
- <url desc="Licensing">http://civicrm.org/licensing</url>
- </urls>
- <license>AGPL</license>
- <maintainer>
- <author>CiviCRM LLC</author>
- <email>info@civicrm.org</email>
- </maintainer>
- <releaseDate>2012-11-15</releaseDate>
- <version>1.0</version>
- <develStage>stable</develStage>
- <compatibility>
- <ver>4.3</ver>
- </compatibility>
- <comments>For support, please contact project team on the forums.</comments>
-</extension>
+++ /dev/null
-<?php
-/*
- +--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
- +--------------------------------------------------------------------+
- | This file is a part of CiviCRM. |
- | |
- | CiviCRM is free software; you can copy, modify, and distribute it |
- | under the terms of the GNU Affero General Public License |
- | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
- | |
- | CiviCRM is distributed in the hope that it will be useful, but |
- | WITHOUT ANY WARRANTY; without even the implied warranty of |
- | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
- | See the GNU Affero General Public License for more details. |
- | |
- | You should have received a copy of the GNU Affero General Public |
- | License and the CiviCRM Licensing Exception along |
- | with this program; if not, contact CiviCRM LLC |
- | at info[AT]civicrm[DOT]org. If you have questions about the |
- | GNU Affero General Public License or the licensing of CiviCRM, |
- | see the CiviCRM license FAQ at http://civicrm.org/licensing |
- +--------------------------------------------------------------------+
-*/
-
-/**
- *
- * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
- * $Id$
- *
- */
-class org_civicrm_sms_clickatell extends CRM_SMS_Provider {
-
- /**
- * api type to use to send a message
- * @var string
- */
- protected $_apiType = 'http';
-
- /**
- * provider details
- * @var string
- */
- protected $_providerInfo = array();
-
- /**
- * Clickatell API Server Session ID
- *
- * @var string
- */
- protected $_sessionID = NULL;
-
- /**
- * Curl handle resource id
- *
- */
- protected $_ch;
-
- /**
- * Temporary file resource id
- * @var resource
- */
- protected $_fp;
-
- public $_apiURL = "https://api.clickatell.com";
-
- protected $_messageType = array(
- 'SMS_TEXT',
- 'SMS_FLASH',
- 'SMS_NOKIA_OLOGO',
- 'SMS_NOKIA_GLOGO',
- 'SMS_NOKIA_PICTURE',
- 'SMS_NOKIA_RINGTONE',
- 'SMS_NOKIA_RTTL',
- 'SMS_NOKIA_CLEAN',
- 'SMS_NOKIA_VCARD',
- 'SMS_NOKIA_VCAL',
- );
-
- protected $_messageStatus = array(
- '001' => 'Message unknown',
- '002' => 'Message queued',
- '003' => 'Delivered',
- '004' => 'Received by recipient',
- '005' => 'Error with message',
- '006' => 'User cancelled message delivery',
- '007' => 'Error delivering message',
- '008' => 'OK',
- '009' => 'Routing error',
- '010' => 'Message expired',
- '011' => 'Message queued for later delivery',
- '012' => 'Out of credit',
- );
-
- /**
- * We only need one instance of this object. So we use the singleton
- * pattern and cache the instance in this variable
- *
- * @var object
- * @static
- */
- static private $_singleton = array();
-
- /**
- * Constructor
- *
- * Create and auth a Clickatell session.
- *
- * @param array $provider
- * @param bool $skipAuth
- *
- * @return \org_civicrm_sms_clickatell
- */
- function __construct($provider = array( ), $skipAuth = FALSE) {
- // initialize vars
- $this->_apiType = CRM_Utils_Array::value('api_type', $provider, 'http');
- $this->_providerInfo = $provider;
-
- if ($skipAuth) {
- return TRUE;
- }
-
- // first create the curl handle
-
- /**
- * Reuse the curl handle
- */
- $this->_ch = curl_init();
- if (!$this->_ch || !is_resource($this->_ch)) {
- return PEAR::raiseError('Cannot initialise a new curl handle.');
- }
-
- curl_setopt($this->_ch, CURLOPT_TIMEOUT, 20);
- curl_setopt($this->_ch, CURLOPT_VERBOSE, 1);
- curl_setopt($this->_ch, CURLOPT_FAILONERROR, 1);
- if (ini_get('open_basedir') == '' && ini_get('safe_mode') == 'Off') {
- curl_setopt($this->_ch, CURLOPT_FOLLOWLOCATION, 1);
- }
- curl_setopt($this->_ch, CURLOPT_COOKIEJAR, "/dev/null");
- curl_setopt($this->_ch, CURLOPT_SSL_VERIFYHOST, 2);
- curl_setopt($this->_ch, CURLOPT_USERAGENT, 'CiviCRM - http://civicrm.org/');
-
- $this->authenticate();
- }
-
- /**
- * singleton function used to manage this object
- *
- * @param array $providerParams
- * @param bool $force
- * @return object
- * @static
- */
- static function &singleton($providerParams = array(
- ), $force = FALSE) {
- $providerID = CRM_Utils_Array::value('provider_id', $providerParams);
- $skipAuth = $providerID ? FALSE : TRUE;
- $cacheKey = (int) $providerID;
-
- if (!isset(self::$_singleton[$cacheKey]) || $force) {
- $provider = array();
- if ($providerID) {
- $provider = CRM_SMS_BAO_Provider::getProviderInfo($providerID);
- }
- self::$_singleton[$cacheKey] = new org_civicrm_sms_clickatell($provider, $skipAuth);
- }
- return self::$_singleton[$cacheKey];
- }
-
- /**
- * Authenticate to the Clickatell API Server.
- *
- * @return mixed true on sucess or PEAR_Error object
- * @access public
- * @since 1.1
- */
- function authenticate() {
- $url = $this->_providerInfo['api_url'] . "/http/auth";
-
- $postDataArray = array(
- 'user' => $this->_providerInfo['username'],
- 'password' => $this->_providerInfo['password'],
- 'api_id' => $this->_providerInfo['api_params']['api_id']
- );
-
- if (array_key_exists('is_test', $this->_providerInfo['api_params']) &&
- $this->_providerInfo['api_params']['is_test'] == 1 ) {
- $response = array('data' => 'OK:' . rand());
- } else {
- $postData = $this->urlEncode($postDataArray);
- $response = $this->curl($url, $postData);
- }
- if (PEAR::isError($response)) {
- return $response;
- }
- $sess = explode(":", $response['data']);
-
- $this->_sessionID = trim($sess[1]);
-
- if ($sess[0] == "OK") {
- return TRUE;
- }
- else {
- return PEAR::raiseError($response['data']);
- }
- }
-
- /**
- * @param $url
- * @param $postDataArray
- * @param null $id
- *
- * @return object|string
- */
- function formURLPostData($url, &$postDataArray, $id = NULL) {
- $url = $this->_providerInfo['api_url'] . $url;
- $postDataArray['session_id'] = $this->_sessionID;
- if ($id) {
- if (strlen($id) < 32 || strlen($id) > 32) {
- return PEAR::raiseError('Invalid API Message Id');
- }
- $postDataArray['apimsgid'] = $id;
- }
- return $url;
- }
-
- /**
- * Send an SMS Message via the Clickatell API Server
- *
- * @param $recipients
- * @param $header
- * @param $message
- * @param null $jobID
- * @param null $userID
- * @internal param \the $array message with a to/from/text
- *
- * @return mixed true on sucess or PEAR_Error object
- * @access public
- */
- function send($recipients, $header, $message, $jobID = NULL, $userID = NULL) {
- if ($this->_apiType == 'http') {
- $postDataArray = array( );
- $url = $this->formURLPostData("/http/sendmsg", $postDataArray);
-
- if (array_key_exists('from', $this->_providerInfo['api_params'])) {
- $postDataArray['from'] = $this->_providerInfo['api_params']['from'];
- }
- if (array_key_exists('concat', $this->_providerInfo['api_params'])) {
- $postDataArray['concat'] = $this->_providerInfo['api_params']['concat'];
- }
- //TODO:
- $postDataArray['to'] = $header['To'];
- $postDataArray['text'] = utf8_decode(substr($message, 0, 460)); // max of 460 characters, is probably not multi-lingual
- if (array_key_exists('mo', $this->_providerInfo['api_params'])) {
- $postDataArray['mo'] = $this->_providerInfo['api_params']['mo'];
- }
- // sendmsg with callback request:
- $postDataArray['callback'] = 3;
-
- $isTest = 0;
- if (array_key_exists('is_test', $this->_providerInfo['api_params']) &&
- $this->_providerInfo['api_params']['is_test'] == 1
- ) {
- $isTest = 1;
- }
-
- /**
- * Check if we are using a queue when sending as each account
- * with Clickatell is assigned three queues namely 1, 2 and 3.
- */
- if (isset($header['queue']) && is_numeric($header['queue'])) {
- if (in_array($header['queue'], range(1, 3))) {
- $postDataArray['queue'] = $header['queue'];
- }
- }
-
- /**
- * Must we escalate message delivery if message is stuck in
- * the queue at Clickatell?
- */
- if (isset($header['escalate']) && !empty($header['escalate'])) {
- if (is_numeric($header['escalate'])) {
- if (in_array($header['escalate'], range(1, 2))) {
- $postDataArray['escalate'] = $header['escalate'];
- }
- }
- }
-
- if ($isTest == 1) {
- $response = array('data' => 'ID:' . rand());
- }
- else {
- $postData = $this->urlEncode($postDataArray);
- $response = $this->curl($url, $postData);
- }
- if (PEAR::isError($response)) {
- return $response;
- }
- $send = explode(":", $response['data']);
-
- if ($send[0] == "ID") {
- $this->createActivity($send[1], $message, $header, $jobID, $userID);
- return $send[1];
- }
- else {
- // TODO: Should add a failed activity instead.
- CRM_Core_Error::debug_log_message($response['data'] . " - for phone: {$postDataArray['to']}");
- return PEAR::raiseError($response['data'], null, PEAR_ERROR_RETURN);
- }
- }
- }
-
- /**
- * @return bool
- */
- function callback() {
- $apiMsgID = $this->retrieve('apiMsgId', 'String');
-
- $activity = new CRM_Activity_DAO_Activity();
- $activity->result = $apiMsgID;
-
- if ($activity->find(TRUE)) {
- $actStatusIDs = array_flip(CRM_Core_OptionGroup::values('activity_status'));
-
- $status = $this->retrieve('status', 'String');
- switch ($status) {
- case "001":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - Message Unknown";
- break;
-
- case "002":
- $statusID = $actStatusIDs['Scheduled'];
- $clickStat = $this->_messageStatus[$status] . " - Message Queued";
- break;
-
- case "003":
- $statusID = $actStatusIDs['Completed'];
- $clickStat = $this->_messageStatus[$status] . " - Delivered to Gateway";
- break;
-
- case "004":
- $statusID = $actStatusIDs['Completed'];
- $clickStat = $this->_messageStatus[$status] . " - Received by Recipient";
- break;
-
- case "005":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - Error with Message";
- break;
-
- case "006":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - User cancelled message";
- break;
-
- case "007":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - Error delivering message";
- break;
-
- case "008":
- $statusID = $actStatusIDs['Completed'];
- $clickStat = $this->_messageStatus[$status] . " - Ok, Message Received by Gateway";
- break;
-
- case "009":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - Routing Error";
- break;
-
- case "010":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - Message Expired";
- break;
-
- case "011":
- $statusID = $actStatusIDs['Scheduled'];
- $clickStat = $this->_messageStatus[$status] . " - Message Queued for Later";
- break;
-
- case "012":
- $statusID = $actStatusIDs['Cancelled'];
- $clickStat = $this->_messageStatus[$status] . " - Out of Credit";
- break;
- }
-
- if ($statusID) {
- // update activity with status + msg in location
- $activity->status_id = $statusID;
- $activity->location = $clickStat;
- $activity->activity_date_time = CRM_Utils_Date::isoToMysql($activity->activity_date_time);
- $activity->save();
- CRM_Core_Error::debug_log_message("SMS Response updated for apiMsgId={$apiMsgID}.");
- return TRUE;
- }
- }
-
- // if no update is done
- CRM_Core_Error::debug_log_message("Could not update SMS Response for apiMsgId={$apiMsgID}.");
- return FALSE;
- }
-
- /**
- * @return $this|null|object
- */
- function inbound() {
- $like = "";
- $fromPhone = $this->retrieve('from', 'String');
- $fromPhone = $this->formatPhone($this->stripPhone($fromPhone), $like, "like");
-
- return parent::processInbound($fromPhone, $this->retrieve('text', 'String'), NULL, $this->retrieve('moMsgId', 'String'));
- }
-
- /**
- * Perform curl stuff
- *
- * @param string URL to call
- * @param string HTTP Post Data
- *
- * @return mixed HTTP response body or PEAR Error Object
- * @access private
- */
- function curl($url, $postData) {
- $this->_fp = tmpfile();
-
- curl_setopt($this->_ch, CURLOPT_URL, $url);
- curl_setopt($this->_ch, CURLOPT_POST, 1);
- curl_setopt($this->_ch, CURLOPT_POSTFIELDS, $postData);
- curl_setopt($this->_ch, CURLOPT_FILE, $this->_fp);
-
- $status = curl_exec($this->_ch);
- $response['http_code'] = curl_getinfo($this->_ch, CURLINFO_HTTP_CODE);
-
- if (empty($response['http_code'])) {
- return PEAR::raiseError('No HTTP Status Code was returned.');
- }
- elseif ($response['http_code'] === 0) {
- return PEAR::raiseError('Cannot connect to the Clickatell API Server.');
- }
-
- if ($status) {
- $response['error'] = curl_error($this->_ch);
- $response['errno'] = curl_errno($this->_ch);
- }
-
- rewind($this->_fp);
-
- $pairs = "";
- while ($str = fgets($this->_fp, 4096)) {
- $pairs .= $str;
- }
- fclose($this->_fp);
-
- $response['data'] = $pairs;
- unset($pairs);
- asort($response);
-
- return ($response);
- }
-}
-
--- /dev/null
+#!/bin/bash
+####################################################################
+function show_help() {
+ echo "Jeanine Matthews - Divergent Hunter"
+ echo "summary: Execute test suite in multiple ways and compare results"
+ echo "usage: env [var1=... var2=...] $0 [--bundled-full|--bf] [--bundled-indiv|--bi] [--standalone-full|--sf] [--standalone-indiv|--si] [--compare]"
+ echo "Optional variables:"
+ echo " - CIVI: Path to Civi installation [$CIVI]"
+ echo " - PHP: Path to PHP binary [$PHP]"
+ echo " - PHPUNIT: Path to phpunit binary [$PHPUNIT]"
+ echo " - TESTCLASS: PHP class name for the test case/suite [$TESTCLASS]"
+ echo " - TESTPATH: Path for the test file/directory (Note: MUST match TESTCLASS) [$TESTPATH]"
+ echo " - OUTDIR: Folder to which outputs are written [$OUTDIR]"
+}
+
+function reset_dir() {
+ [ -d "$1" ] && rm -rf "$1"
+ mkdir -p "$1"
+}
+
+####################################################################
+## Env
+export PHP=${PHP:-php}
+export PHPUNIT=${PHPUNIT:-phpunit}
+export TESTCLASS=${TESTCLASS:-api_v3_AllTests}
+export TESTPATH=${TESTPATH:-tests/phpunit/api/v3}
+export CIVI=$(realpath "${CIVI:-.}")
+export OUTDIR=$(realpath "${OUTDIR:-output}")
+
+####################################################################
+## Main
+if [ -z "$1" ];then
+ show_help
+ exit 1
+fi
+
+while [ -n "$1" ]; do
+ OPTION="$1"
+ shift
+
+ case "$OPTION" in
+ --bundled-full|--bf)
+ echo "[[ Prepare $OUTDIR/bundled-full ]]"
+
+ [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
+ if [ ! -d "$CIVI/packages/PHPUnit" ]; then
+ echo "Missing $CIVI/packages/PHPUnit"
+ exit 2
+ fi
+
+ reset_dir "$OUTDIR/bundled-full"
+
+ pushd "$CIVI/tools"
+ $PHP ./scripts/phpunit --tap --log-json "$OUTDIR/bundled-full/all.json" "$TESTCLASS"
+ popd
+ ;;
+
+ --bundled-indiv|--bi)
+ echo "[[ Prepare $OUTDIR/bundled-indiv ]]"
+
+ [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
+ if [ ! -d "$CIVI/packages/PHPUnit" ]; then
+ echo "Missing $CIVI/packages/PHPUnit"
+ exit 2
+ fi
+
+ reset_dir "$OUTDIR/bundled-indiv"
+
+ pushd "$CIVI/tools"
+ ./scripts/phpunit-indiv --civi --test-dir "../$TESTPATH" --json-dir "$OUTDIR/bundled-indiv"
+ popd
+
+ cat "$OUTDIR"/bundled-indiv/*-*.json > "$OUTDIR/bundled-indiv/all.json"
+ ;;
+
+ --standalone-full|--sf)
+ echo "[[ Prepare $OUTDIR/standalone-full ]]"
+ reset_dir "$OUTDIR/standalone-full"
+
+ pushd "$CIVI"
+ [ -d "packages/PHPUnit" ] && mv "packages/PHPUnit" "packages/PHPUnit.bak"
+ $PHP $(which $PHPUNIT) --tap --log-json "$OUTDIR/standalone-full/all.json" "$TESTPATH"
+ [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
+ popd
+ ;;
+
+ --standalone-indiv|--si)
+ echo "[[ Prepare $OUTDIR/standalone-indiv ]]"
+ reset_dir "$OUTDIR/standalone-indiv"
+
+ pushd "$CIVI"
+ [ -d "packages/PHPUnit" ] && mv "packages/PHPUnit" "packages/PHPUnit.bak"
+ ./tools/scripts/phpunit-indiv --test-dir "$TESTPATH" --json-dir "$OUTDIR/standalone-indiv"
+ [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
+ popd
+
+ cat "$OUTDIR"/standalone-indiv/*-*.json > "$OUTDIR/standalone-indiv/all.json"
+ ;;
+
+ --compare)
+ echo "[[ Compare all results in $OUTDIR ]]"
+ phpunit-compare "$OUTDIR"/*/all.json
+ ;;
+ esac
+done
--- /dev/null
+#!/usr/bin/env php
+<?php
+require_once dirname(dirname(__DIR__)) . '/tests/phpunit/CiviTest/bootstrap.php';
+\Civi\CiUtil\Command\AntagonistCommand::main($argv);
--- /dev/null
+#!/usr/bin/env php
+<?php
+require_once dirname(dirname(__DIR__)) . '/tests/phpunit/CiviTest/bootstrap.php';
+\Civi\CiUtil\Command\CompareCommand::main($argv);
--- /dev/null
+#!/bin/bash
+function absdirname() {
+ pushd $(dirname $0) >> /dev/null
+ pwd
+ popd >> /dev/null
+}
+
+BINDIR=$(absdirname "$0")
+PHP=${PHP:-php}
+PHPUNIT=${PHPUNIT:-phpunit}
+MODE=standalone
+XMLDIR=
+JSONDIR=
+
+while [ -n "$1" ]; do
+ ARG="$1"
+ shift
+
+ case "$ARG" in
+ --civi)
+ MODE=civi
+ ;;
+ --civibuild-restore)
+ CIVIBUILD_RESTORE="$1"
+ shift
+ ;;
+ --test-dir)
+ TESTSUITE="$1"
+ shift
+ ;;
+ --json-dir)
+ JSONDIR="$1"
+ [ ! -d "$JSONDIR" ] && mkdir -p "$JSONDIR"
+ shift
+ ;;
+ --xml-dir)
+ XMLDIR="$1"
+ [ ! -d "$XMLDIR" ] && mkdir -p "$XMLDIR"
+ shift
+ ;;
+ *)
+ echo "unrecognized option: $ARG"
+ ;;
+ esac
+done
+
+
+if [ -z "$TESTSUITE" ]; then
+ echo "summary: Executes all tests in a suite (individually)"
+ echo "usage: $0 --test-dir <dir> [--json-dir <dir>] [--xml-dir <dir>] [--civi] [--civibuild-restore <build-name>]"
+ exit 1
+fi
+
+
+#phpunit-ls "$TESTSUITE"
+$BINDIR/phpunit-ls "$TESTSUITE" | while read FILE CLASS METHOD ; do
+ ## Optionally reset DBs
+ if [ -n "$CIVIBUILD_RESTORE" ]; then
+ civibuild restore "$CIVIBUILD_RESTORE"
+ fi
+
+ ## Prepare test command
+ PHPUNITARGS="--tap"
+ if [ -n "$JSONDIR" ]; then
+ PHPUNITARGS="$PHPUNITARGS --log-json $JSONDIR/$CLASS-$METHOD.json"
+ fi
+ if [ -n "$XMLDIR" ]; then
+ PHPUNITARGS="$PHPUNITARGS --log-junit $XMLDIR/$CLASS-$METHOD.xml"
+ fi
+
+ ## Run the test!
+ if [ "$MODE" == "civi" ]; then
+ $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS"
+ fi
+ if [ "$MODE" == "standalone" ]; then
+ $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE"
+ fi
+done
--- /dev/null
+#!/usr/bin/env php
+<?php
+require_once dirname(dirname(__DIR__)) . '/tests/phpunit/CiviTest/bootstrap.php';
+error_reporting(E_ALL);
+\Civi\CiUtil\Command\LsCommand::main($argv);
\ No newline at end of file
+++ /dev/null
-#!/bin/bash
-
-SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
-
-case $1 in
-
- stable-3.4)
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ EXECUTING TESTS FOR STABLE
- echo
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Updating Selenium tests repository
- echo
- cd /var/www/drupal6.dev.civicrm.org/public/sites/devel.drupal6.tests.dev.civicrm.org/modules/civicrm/
- find . -name *~ -delete
- svn up
- echo §§§§§§§§§§§§§§§§§§§§ ...done.
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Resetting Selenium tests database and template files
- echo
- rm -rf /tmp/templates_c/
- cd /var/www/drupal6.dev.civicrm.org/public/sites/devel.drupal6.tests.dev.civicrm.org/modules/civicrm/bin
- ./setup.sh
- rm -rf /var/www/drupal6.dev.civicrm.org/public/sites/devel.drupal6.tests.dev.civicrm.org/files/civicrm/
- chmod -R 777 /var/www/drupal6.dev.civicrm.org/public/sites/devel.drupal6.tests.dev.civicrm.org/files/
-
- echo §§§§§§§§§§§§§§§§§§§§ ...done.
- echo
-
- CODE_DIR="/home/tests/stable-suite"
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Running test suite
- echo
-
- rm -rf /tmp/templates_c/
-
- for testName in api_v2 api_v3 CRM WebTest; do
- cd $CODE_DIR/tools
- scripts/phpunit --tap --log-junit tests/reports/logfile.$testName.xml -u tests -ptests -h localhost ${testName}_AllTests
- cd $CODE_DIR/tools/scripts/
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Generating test results.
- echo
- phing $testName
- echo §§§§§§§§§§§§§§§§§§§§ All finished.
- done
-
- ;;
-
- stable)
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ EXECUTING TESTS FOR TRUNK
- echo
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Updating test suite repository
- echo
- cd /var/www/drupal7.dev.civicrm.org/public/sites/stable.drupal7.tests.dev.civicrm.org/modules/civicrm/
- find . -name *~ -delete
- svn up
- echo §§§§§§§§§§§§§§§§§§§§ ...done.
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Resetting Selenium tests database and template files
- echo
- rm -rf /tmp/templates_c/
- cd /var/www/drupal7.dev.civicrm.org/public/sites/stable.drupal7.tests.dev.civicrm.org/modules/civicrm/bin
- ./setup.sh
-
- echo §§§§§§§§§§§§§§§§§§§§ ...done.
-
- rm -rf /var/www/drupal7.dev.civicrm.org/public/sites/stable.drupal7.tests.dev.civicrm.org/files/civicrm/
- chmod -R 777 /var/www/drupal7.dev.civicrm.org/public/sites/stable.drupal7.tests.dev.civicrm.org/files/
-
- CODE_DIR="/home/tests/stable-suite"
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Running test suite
- echo
-
-# for testName in api_v3; do
-# for testName in WebTest; do
-# for testName in api_v3 CRM; do
- for testName in api_v3 CRM WebTest; do
-# for testName in CRM; do
- cd $CODE_DIR/tools
-
- rm -rf /tmp/templates_c/
-
- #reset the db before running webtest
- if [ $testName == WebTest ] ; then
- echo
- echo ============== reloading db for Webtest ===============================
- echo
- /var/www/drupal7.dev.civicrm.org/public/sites/stable.drupal7.tests.dev.civicrm.org/modules/civicrm/bin/setup.sh
- fi
-
- scripts/phpunit --tap --log-junit tests/reports/logfile.$testName.xml -u tests -ptests -bstable_drupal7_tests_dev_civicrm -h localhost ${testName}_AllTests
- cd $CODE_DIR/tools/scripts/
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Generating test results.
- echo
- phing $testName
- echo §§§§§§§§§§§§§§§§§§§§ All finished.
- done
-
- ;;
-
- trunk)
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ EXECUTING TESTS FOR TRUNK
- echo
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Updating test suite repository
- echo
- cd /var/www/drupal7.dev.civicrm.org/public/sites/devel.drupal7.tests.dev.civicrm.org/modules/civicrm/
- find . -name *~ -delete
- svn up
- echo §§§§§§§§§§§§§§§§§§§§ ...done.
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Resetting Selenium tests database and template files
- echo
- rm -rf /tmp/templates_c/
- cd /var/www/drupal7.dev.civicrm.org/public/sites/devel.drupal7.tests.dev.civicrm.org/modules/civicrm/bin
- ./setup.sh
-
- echo §§§§§§§§§§§§§§§§§§§§ ...done.
-
- rm -rf /var/www/drupal7.dev.civicrm.org/public/sites/devel.drupal7.tests.dev.civicrm.org/files/civicrm/
- chmod -R 777 /var/www/drupal7.dev.civicrm.org/public/sites/devel.drupal7.tests.dev.civicrm.org/files/
-
- CODE_DIR="/home/tests/devel-suite"
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Running test suite
- echo
-
-# for testName in api_v3; do
-# for testName in WebTest; do
-# for testName in api_v2 api_v3 CRM; do
- for testName in api_v3 CRM WebTest; do
-# for testName in CRM; do
- cd $CODE_DIR/tools
-
- rm -rf /tmp/templates_c/
-
- #reset the db before running webtest
- if [ $testName == WebTest ] ; then
- echo
- echo ============== reloading db for Webtest ===============================
- echo
- /var/www/drupal7.dev.civicrm.org/public/sites/devel.drupal7.tests.dev.civicrm.org/modules/civicrm/bin/setup.sh
- fi
-
- scripts/phpunit --tap --log-junit tests/reports/logfile.$testName.xml -u tests -ptests -bdevel_drupal7_tests_dev_civicrm -h localhost ${testName}_AllTests
- cd $CODE_DIR/tools/scripts/
-
- echo
- echo §§§§§§§§§§§§§§§§§§§§ Generating test results.
- echo
- phing $testName
- echo §§§§§§§§§§§§§§§§§§§§ All finished.
- done
-
- ;;
-
- *)
- $SELF trunk
- ;;
-esac
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/ACL</base>
- <class>ACL</class>
- <name>civicrm_acl</name>
- <comment>Access Control List</comment>
+ <base>CRM/ACL</base>
+ <class>ACL</class>
+ <name>civicrm_acl</name>
+ <comment>Access Control List</comment>
+ <add>1.6</add>
+ <field>
+ <name>id</name>
+ <title>ACL ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
<add>1.6</add>
- <field>
- <name>id</name>
- <title>ACL ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>1.6</add>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>name</name>
- <title>ACL Name</title>
- <type>varchar</type>
- <length>64</length>
- <comment>ACL Name.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>1.6</add>
- </field>
- <field>
- <name>deny</name>
- <type>boolean</type>
- <default>0</default>
- <required>true</required>
- <comment>Is this ACL entry Allow (0) or Deny (1) ?</comment>
- <html>
- <type>Radio</type>
- </html>
- <add>1.6</add>
- </field>
- <field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Table of the object possessing this ACL entry (Contact, Group, or ACL Group)</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <comment>ID of the object possessing this ACL</comment>
- <add>1.6</add>
- </field>
- <dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.6</add>
- </dynamicForeignKey>
- <field>
- <name>operation</name>
- <type>varchar</type>
- <length>8</length>
- <required>true</required>
- <comment>What operation does this ACL entry control?</comment>
- <pseudoconstant>
- <callback>CRM_ACL_BAO_ACL::operation</callback>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.6</add>
- </field>
- <field>
- <name>object_table</name>
- <type>varchar</type>
- <length>64</length>
- <comment>The table of the object controlled by this ACL entry</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>object_id</name>
- <type>int unsigned</type>
- <comment>The ID of the object controlled by this ACL entry</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>acl_table</name>
- <type>varchar</type>
- <length>64</length>
- <comment>If this is a grant/revoke entry, what table are we granting?</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>acl_id</name>
- <type>int unsigned</type>
- <comment>ID of the ACL or ACL group being granted/revoked</comment>
- <add>1.6</add>
- </field>
- <index>
- <name>index_acl_id</name>
- <fieldName>acl_id</fieldName>
- <add>1.6</add>
- </index>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
- <add>1.6</add>
- <html>
- <type>Checkbox</type>
- </html>
- </field>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>name</name>
+ <title>ACL Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>ACL Name.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>deny</name>
+ <title>Deny ACl?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <required>true</required>
+ <comment>Is this ACL entry Allow (0) or Deny (1) ?</comment>
+ <html>
+ <type>Radio</type>
+ </html>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>entity_table</name>
+ <title>ACL Entity</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Table of the object possessing this ACL entry (Contact, Group, or ACL Group)</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <title>Entity ID</title>
+ <comment>ID of the object possessing this ACL</comment>
+ <add>1.6</add>
+ </field>
+ <dynamicForeignKey>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.6</add>
+ </dynamicForeignKey>
+ <field>
+ <name>operation</name>
+ <type>varchar</type>
+ <title>ACL Operation</title>
+ <length>8</length>
+ <required>true</required>
+ <comment>What operation does this ACL entry control?</comment>
+ <pseudoconstant>
+ <callback>CRM_ACL_BAO_ACL::operation</callback>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>object_table</name>
+ <title>ACL Object</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>The table of the object controlled by this ACL entry</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>object_id</name>
+ <title>ACL Object ID</title>
+ <type>int unsigned</type>
+ <comment>The ID of the object controlled by this ACL entry</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>acl_table</name>
+ <title>ACL Table</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>If this is a grant/revoke entry, what table are we granting?</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>acl_id</name>
+ <title>ACL Group ID</title>
+ <type>int unsigned</type>
+ <comment>ID of the ACL or ACL group being granted/revoked</comment>
+ <add>1.6</add>
+ </field>
+ <index>
+ <name>index_acl_id</name>
+ <fieldName>acl_id</fieldName>
+ <add>1.6</add>
+ </index>
+ <field>
+ <name>is_active</name>
+ <title>ACL Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this property active?</comment>
+ <add>1.6</add>
+ <html>
+ <type>Checkbox</type>
+ </html>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/ACL</base>
- <class>Cache</class>
- <name>civicrm_acl_cache</name>
- <comment>Cache for acls and contacts</comment>
+ <base>CRM/ACL</base>
+ <class>Cache</class>
+ <name>civicrm_acl_cache</name>
+ <comment>Cache for acls and contacts</comment>
+ <add>1.6</add>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
<add>1.6</add>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>1.6</add>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>Foreign Key to Contact</comment>
- <add>1.6</add>
- </field>
- <foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.6</add>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>acl_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign Key to ACL</comment>
- <add>1.6</add>
- </field>
- <foreignKey>
- <name>acl_id</name>
- <table>civicrm_acl</table>
- <key>id</key>
- <add>1.6</add>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <index>
- <name>index_acl_id</name>
- <fieldName>acl_id</fieldName>
- <add>1.6</add>
- </index>
- <field>
- <name>modified_date</name>
- <type>date</type>
- <comment>When was this cache entry last modified</comment>
- <add>1.6</add>
- </field>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <comment>Foreign Key to Contact</comment>
+ <add>1.6</add>
+ </field>
+ <foreignKey>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.6</add>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>acl_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign Key to ACL</comment>
+ <add>1.6</add>
+ </field>
+ <foreignKey>
+ <name>acl_id</name>
+ <table>civicrm_acl</table>
+ <key>id</key>
+ <add>1.6</add>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <index>
+ <name>index_acl_id</name>
+ <fieldName>acl_id</fieldName>
+ <add>1.6</add>
+ </index>
+ <field>
+ <name>modified_date</name>
+ <type>date</type>
+ <comment>When was this cache entry last modified</comment>
+ <add>1.6</add>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/ACL</base>
- <class>EntityRole</class>
- <name>civicrm_acl_entity_role</name>
- <comment>Join table for Contacts and Groups to ACL Roles</comment>
+ <base>CRM/ACL</base>
+ <class>EntityRole</class>
+ <name>civicrm_acl_entity_role</name>
+ <comment>Join table for Contacts and Groups to ACL Roles</comment>
+ <add>1.6</add>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Entity Role</title>
+ <required>true</required>
+ <comment>Unique table ID</comment>
<add>1.6</add>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>1.6</add>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>acl_role_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign Key to ACL Role (which is an option value pair and hence an implicit FK)</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Table of the object joined to the ACL Role (Contact or Group)</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>ID of the group/contact object being joined</comment>
- <add>1.6</add>
- </field>
- <dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.6</add>
- </dynamicForeignKey>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
- <add>1.6</add>
- </field>
- <index>
- <name>index_role</name>
- <fieldName>acl_role_id</fieldName>
- <add>1.6</add>
- </index>
- <index>
- <name>index_entity</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>1.6</add>
- </index>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>acl_role_id</name>
+ <title>ACL Role ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign Key to ACL Role (which is an option value pair and hence an implicit FK)</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>entity_table</name>
+ <title>Entity Table</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Table of the object joined to the ACL Role (Contact or Group)</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>entity_id</name>
+ <title>ACL Entity ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>ID of the group/contact object being joined</comment>
+ <add>1.6</add>
+ </field>
+ <dynamicForeignKey>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.6</add>
+ </dynamicForeignKey>
+ <field>
+ <name>is_active</name>
+ <title>ACL Entity Role is Active</title>
+ <type>boolean</type>
+ <comment>Is this property active?</comment>
+ <add>1.6</add>
+ </field>
+ <index>
+ <name>index_role</name>
+ <fieldName>acl_role_id</fieldName>
+ <add>1.6</add>
+ </index>
+ <index>
+ <name>index_entity</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>1.6</add>
+ </index>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <uniqueName>activity_id</uniqueName>
- <title>Activity ID</title>
- <import>true</import>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Other Activity ID</comment>
- <add>1.1</add>
-
+ <name>id</name>
+ <uniqueName>activity_id</uniqueName>
+ <title>Activity ID</title>
+ <import>true</import>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Other Activity ID</comment>
+ <add>1.1</add>
+
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>source_contact_id</name>
- <type>int unsigned</type>
- <title>Source Contact</title>
- <import>true</import>
- <headerPattern>/(activity.)?source(.contact(.id)?)?/i</headerPattern>
- <comment>Contact ID of the person scheduling or logging this Activity. Usually the authenticated user.</comment>
- <add>1.1</add>
- <drop>4.4</drop>
+ <name>source_contact_id</name>
+ <type>int unsigned</type>
+ <title>Source Contact</title>
+ <import>true</import>
+ <headerPattern>/(activity.)?source(.contact(.id)?)?/i</headerPattern>
+ <comment>Contact ID of the person scheduling or logging this Activity. Usually the authenticated user.</comment>
+ <add>1.1</add>
+ <drop>4.4</drop>
</field>
<foreignKey>
- <name>source_contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <drop>4.4</drop>
- <onDelete>SET NULL</onDelete>
+ <name>source_contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <drop>4.4</drop>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<index>
- <name>UI_source_contact_id</name>
- <fieldName>source_contact_id</fieldName>
- <add>2.0</add>
- <drop>3.2</drop>
+ <name>UI_source_contact_id</name>
+ <fieldName>source_contact_id</fieldName>
+ <add>2.0</add>
+ <drop>3.2</drop>
</index>
<field>
- <name>source_record_id</name>
- <type>int unsigned</type>
- <title>Source Record</title>
- <comment>Artificial FK to original transaction (e.g. contribution) IF it is not an Activity. Table can be figured out through activity_type_id, and further through component registry.</comment>
- <add>2.0</add>
+ <name>source_record_id</name>
+ <type>int unsigned</type>
+ <title>Source Record</title>
+ <comment>Artificial FK to original transaction (e.g. contribution) IF it is not an Activity. Table can be figured out through activity_type_id, and further through component registry.</comment>
+ <add>2.0</add>
</field>
<index>
- <name>UI_source_record_id</name>
- <fieldName>source_record_id</fieldName>
- <add>3.2</add>
+ <name>UI_source_record_id</name>
+ <fieldName>source_record_id</fieldName>
+ <add>3.2</add>
</index>
<field>
- <name>activity_type_id</name>
- <title>Activity Type</title>
- <import>true</import>
- <type>int unsigned</type>
- <required>true</required>
- <export>false</export>
- <default>1</default>
- <headerPattern>/(activity.)?type(.id$)/i</headerPattern>
- <comment>FK to civicrm_option_value.id, that has to be valid, registered activity type.</comment>
- <add>1.1</add>
- <pseudoconstant>
- <optionGroupName>activity_type</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>activity_type_id</name>
+ <title>Activity Type</title>
+ <import>true</import>
+ <type>int unsigned</type>
+ <required>true</required>
+ <export>false</export>
+ <default>1</default>
+ <headerPattern>/(activity.)?type(.id$)/i</headerPattern>
+ <comment>FK to civicrm_option_value.id, that has to be valid, registered activity type.</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <optionGroupName>activity_type</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
- <name>UI_activity_type_id</name>
- <fieldName>activity_type_id</fieldName>
- <add>1.6</add>
+ <name>UI_activity_type_id</name>
+ <fieldName>activity_type_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>target_entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Name of table where item being referenced is stored.</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>target_entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Name of table where item being referenced is stored.</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
- <name>target_entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign key to the referenced item.</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>target_entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign key to the referenced item.</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
- <name>subject</name>
- <uniqueName>activity_subject</uniqueName>
- <type>varchar</type>
- <title>Subject</title>
- <length>255</length>
- <comment>The subject/purpose/short description of the activity.</comment>
- <import>true</import>
- <headerPattern>/(activity.)?subject/i</headerPattern>
- <html>
- <type>Text</type>
- </html>
- <add>1.1</add>
- <modify>2.0</modify>
+ <name>subject</name>
+ <uniqueName>activity_subject</uniqueName>
+ <type>varchar</type>
+ <title>Subject</title>
+ <length>255</length>
+ <comment>The subject/purpose/short description of the activity.</comment>
+ <import>true</import>
+ <headerPattern>/(activity.)?subject/i</headerPattern>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>1.1</add>
+ <modify>2.0</modify>
</field>
<field>
- <name>scheduled_date</name>
- <type>datetime</type>
- <comment>Date and time meeting is scheduled to occur.</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>scheduled_date</name>
+ <type>datetime</type>
+ <comment>Date and time meeting is scheduled to occur.</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
- <name>activity_date_time</name>
- <import>true</import>
- <title>Activity Date</title>
- <type>datetime</type>
- <headerPattern>/(activity.)?date(.time$)?/i</headerPattern>
- <comment>Date and time this activity is scheduled to occur. Formerly named scheduled_date_time.</comment>
- <html>
- <type>Select Date</type>
- </html>
- <add>2.0</add>
+ <name>activity_date_time</name>
+ <import>true</import>
+ <title>Activity Date</title>
+ <type>datetime</type>
+ <headerPattern>/(activity.)?date(.time$)?/i</headerPattern>
+ <comment>Date and time this activity is scheduled to occur. Formerly named scheduled_date_time.</comment>
+ <html>
+ <type>Select Date</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>due_date_time</name>
- <type>datetime</type>
- <comment>Date and time this activity is due.</comment>
- <add>2.0</add>
- <drop>3.0</drop>
+ <name>due_date_time</name>
+ <type>datetime</type>
+ <comment>Date and time this activity is due.</comment>
+ <add>2.0</add>
+ <drop>3.0</drop>
</field>
<field>
- <name>duration_hours</name>
- <type>int unsigned</type>
- <comment>Planned or actual duration of meeting - hours.</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>duration_hours</name>
+ <type>int unsigned</type>
+ <comment>Planned or actual duration of meeting - hours.</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
- <name>duration_minutes</name>
- <type>int unsigned</type>
- <comment>Planned or actual duration of meeting - minutes.</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>duration_minutes</name>
+ <type>int unsigned</type>
+ <comment>Planned or actual duration of meeting - minutes.</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
- <name>duration</name>
- <uniqueName>activity_duration</uniqueName>
- <title>Duration</title>
- <import>true</import>
- <type>int unsigned</type>
- <headerPattern>/(activity.)?duration(s)?$/i</headerPattern>
- <comment>Planned or actual duration of activity expressed in minutes. Conglomerate of former duration_hours and duration_minutes.</comment>
- <add>2.0</add>
- <html>
- <type>Text</type>
- </html>
+ <name>duration</name>
+ <uniqueName>activity_duration</uniqueName>
+ <title>Duration</title>
+ <import>true</import>
+ <type>int unsigned</type>
+ <headerPattern>/(activity.)?duration(s)?$/i</headerPattern>
+ <comment>Planned or actual duration of activity expressed in minutes. Conglomerate of former duration_hours and duration_minutes.</comment>
+ <add>2.0</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>location</name>
- <uniqueName>activity_location</uniqueName>
- <title>Location</title>
- <import>true</import>
- <type>varchar</type>
- <length>255</length>
- <headerPattern>/(activity.)?location$/i</headerPattern>
- <comment>Location of the activity (optional, open text).</comment>
- <html>
- <type>Text</type>
- </html>
- <add>1.1</add>
+ <name>location</name>
+ <uniqueName>activity_location</uniqueName>
+ <title>Location</title>
+ <import>true</import>
+ <type>varchar</type>
+ <length>255</length>
+ <headerPattern>/(activity.)?location$/i</headerPattern>
+ <comment>Location of the activity (optional, open text).</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>1.1</add>
</field>
<field>
- <name>phone_id</name>
- <type>int unsigned</type>
- <title>Phone (called) ID</title>
- <comment>Phone ID of the number called (optional - used if an existing phone number is selected).</comment>
- <add>2.0</add>
- <html>
- <type>Autocomplete-Select</type>
- </html>
+ <name>phone_id</name>
+ <type>int unsigned</type>
+ <title>Phone (called) ID</title>
+ <comment>Phone ID of the number called (optional - used if an existing phone number is selected).</comment>
+ <add>2.0</add>
+ <html>
+ <type>Autocomplete-Select</type>
+ </html>
</field>
<foreignKey>
- <name>phone_id</name>
- <table>civicrm_phone</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>phone_id</name>
+ <table>civicrm_phone</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>phone_number</name>
- <title>Phone (called) Number</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Phone number in case the number does not exist in the civicrm_phone table.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>phone_number</name>
+ <title>Phone (called) Number</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Phone number in case the number does not exist in the civicrm_phone table.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>details</name>
- <uniqueName>activity_details</uniqueName>
- <title>Details</title>
- <import>true</import>
- <type>text</type>
- <headerPattern>/(activity.)?detail(s)?$/i</headerPattern>
- <comment>Details about the activity (agenda, notes, etc).</comment>
- <html>
- <type>RichTextEditor</type>
- <rows>8</rows>
- <cols>60</cols>
- </html>
- <add>1.1</add>
+ <name>details</name>
+ <uniqueName>activity_details</uniqueName>
+ <title>Details</title>
+ <import>true</import>
+ <type>text</type>
+ <headerPattern>/(activity.)?detail(s)?$/i</headerPattern>
+ <comment>Details about the activity (agenda, notes, etc).</comment>
+ <html>
+ <type>RichTextEditor</type>
+ <rows>8</rows>
+ <cols>60</cols>
+ </html>
+ <add>1.1</add>
</field>
<field>
- <name>status</name>
- <type>enum</type>
- <title>Status</title>
- <values>Scheduled, Completed</values>
- <comment>What is the status of this meeting? Completed meeting status results in activity history entry.</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>status</name>
+ <type>enum</type>
+ <title>Status</title>
+ <values>Scheduled, Completed</values>
+ <comment>What is the status of this meeting? Completed meeting status results in activity history entry.</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
- <name>status_id</name>
- <uniqueName>activity_status_id</uniqueName>
- <title>Activity Status</title>
- <import>true</import>
- <export>false</export>
- <headerPattern>/(activity.)?status(.label$)?/i</headerPattern>
- <type>int unsigned</type>
- <comment>ID of the status this activity is currently in. Foreign key to civicrm_option_value.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <optionGroupName>activity_status</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>priority_id</name>
- <type>int unsigned</type>
- <title>Priority</title>
- <comment>ID of the priority given to this activity. Foreign key to civicrm_option_value.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <optionGroupName>priority</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>parent_id</name>
- <title>Parent Activity Id</title>
- <type>int unsigned</type>
- <comment>Parent meeting ID (if this is a follow-up item). This is not currently implemented</comment>
- <add>1.1</add>
+ <name>status_id</name>
+ <uniqueName>activity_status_id</uniqueName>
+ <title>Activity Status</title>
+ <import>true</import>
+ <export>false</export>
+ <headerPattern>/(activity.)?status(.label$)?/i</headerPattern>
+ <type>int unsigned</type>
+ <comment>ID of the status this activity is currently in. Foreign key to civicrm_option_value.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <optionGroupName>activity_status</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>priority_id</name>
+ <type>int unsigned</type>
+ <title>Priority</title>
+ <comment>ID of the priority given to this activity. Foreign key to civicrm_option_value.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <optionGroupName>priority</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>parent_id</name>
+ <title>Parent Activity Id</title>
+ <type>int unsigned</type>
+ <comment>Parent meeting ID (if this is a follow-up item). This is not currently implemented</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>parent_id</name>
- <table>civicrm_activity</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>parent_id</name>
+ <table>civicrm_activity</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>is_test</name>
- <title>Test</title>
- <uniqueName>activity_is_test</uniqueName>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <headerPattern>/(is.)?test(.activity)?/i</headerPattern>
- <add>2.0</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>medium_id</name>
- <uniqueName>activity_medium_id</uniqueName>
- <title>Activity Medium</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Activity Medium, Implicit FK to civicrm_option_value where option_group = encounter_medium.</comment>
- <pseudoconstant>
- <optionGroupName>encounter_medium</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>2.2</add>
+ <name>is_test</name>
+ <title>Test</title>
+ <uniqueName>activity_is_test</uniqueName>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <headerPattern>/(is.)?test(.activity)?/i</headerPattern>
+ <add>2.0</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>medium_id</name>
+ <uniqueName>activity_medium_id</uniqueName>
+ <title>Activity Medium</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Activity Medium, Implicit FK to civicrm_option_value where option_group = encounter_medium.</comment>
+ <pseudoconstant>
+ <optionGroupName>encounter_medium</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>2.2</add>
</field>
<index>
- <name>index_medium_id</name>
- <fieldName>medium_id</fieldName>
- <add>2.2</add>
+ <name>index_medium_id</name>
+ <fieldName>medium_id</fieldName>
+ <add>2.2</add>
</index>
<field>
- <name>is_auto</name>
- <title>Auto</title>
- <type>boolean</type>
- <default>0</default>
- <add>2.2</add>
+ <name>is_auto</name>
+ <title>Auto</title>
+ <type>boolean</type>
+ <default>0</default>
+ <add>2.2</add>
</field>
<field>
- <name>relationship_id</name>
- <title>Relationship Id</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to Relationship ID</comment>
- <add>2.2</add>
+ <name>relationship_id</name>
+ <title>Relationship Id</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>FK to Relationship ID</comment>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>relationship_id</name>
- <table>civicrm_relationship</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>relationship_id</name>
+ <table>civicrm_relationship</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>is_current_revision</name>
- <title>Is this activity a current revision in versioning chain?</title>
- <type>boolean</type>
- <default>1</default>
- <import>true</import>
- <headerPattern>/(is.)?(current.)?(revision|version(ing)?)/i</headerPattern>
- <add>2.2</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>is_current_revision</name>
+ <title>Is this activity a current revision in versioning chain?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <import>true</import>
+ <headerPattern>/(is.)?(current.)?(revision|version(ing)?)/i</headerPattern>
+ <add>2.2</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<index>
- <name>index_is_current_revision</name>
- <fieldName>is_current_revision</fieldName>
- <add>2.2</add>
+ <name>index_is_current_revision</name>
+ <fieldName>is_current_revision</fieldName>
+ <add>2.2</add>
</index>
<field>
- <name>original_id</name>
- <type>int unsigned</type>
- <title>Original Activity ID </title>
- <comment>Activity ID of the first activity record in versioning chain.</comment>
- <add>2.2</add>
+ <name>original_id</name>
+ <type>int unsigned</type>
+ <title>Original Activity ID </title>
+ <comment>Activity ID of the first activity record in versioning chain.</comment>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>original_id</name>
- <table>civicrm_activity</table>
- <key>id</key>
- <add>2.2</add>
- <onDelete>CASCADE</onDelete>
+ <name>original_id</name>
+ <table>civicrm_activity</table>
+ <key>id</key>
+ <add>2.2</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<index>
- <name>UI_original_id</name>
- <fieldName>original_id</fieldName>
- <add>2.2</add>
- <drop>3.2</drop>
+ <name>UI_original_id</name>
+ <fieldName>original_id</fieldName>
+ <add>2.2</add>
+ <drop>3.2</drop>
</index>
<field>
- <name>result</name>
- <uniqueName>activity_result</uniqueName>
- <type>varchar</type>
- <title>Result</title>
- <length>255</length>
- <comment>Currently being used to store result id for survey activity, FK to option value.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>3.3</add>
- </field>
- <field>
- <name>is_deleted</name>
- <uniqueName>activity_is_deleted</uniqueName>
- <title>Activity is in the Trash</title>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <headerPattern>/(activity.)?(trash|deleted)/i</headerPattern>
- <add>2.2</add>
- <html>
- <type>Text</type>
- </html>
+ <name>result</name>
+ <uniqueName>activity_result</uniqueName>
+ <type>varchar</type>
+ <title>Result</title>
+ <length>255</length>
+ <comment>Currently being used to store result id for survey activity, FK to option value.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>3.3</add>
+ </field>
+ <field>
+ <name>is_deleted</name>
+ <uniqueName>activity_is_deleted</uniqueName>
+ <title>Activity is in the Trash</title>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <headerPattern>/(activity.)?(trash|deleted)/i</headerPattern>
+ <add>2.2</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<index>
- <name>index_is_deleted</name>
- <fieldName>is_deleted</fieldName>
- <add>2.2</add>
+ <name>index_is_deleted</name>
+ <fieldName>is_deleted</fieldName>
+ <add>2.2</add>
</index>
<field>
- <name>campaign_id</name>
- <uniqueName>activity_campaign_id</uniqueName>
- <type>int unsigned</type>
- <title>Campaign</title>
- <import>true</import>
- <comment>The campaign for which this activity has been triggered.</comment>
- <pseudoconstant>
- <table>civicrm_campaign</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <add>3.4</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>campaign_id</name>
+ <uniqueName>activity_campaign_id</uniqueName>
+ <type>int unsigned</type>
+ <title>Campaign</title>
+ <import>true</import>
+ <comment>The campaign for which this activity has been triggered.</comment>
+ <pseudoconstant>
+ <table>civicrm_campaign</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <add>3.4</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<foreignKey>
- <name>campaign_id</name>
- <table>civicrm_campaign</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>campaign_id</name>
+ <table>civicrm_campaign</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>engagement_level</name>
- <uniqueName>activity_engagement_level</uniqueName>
- <type>int unsigned</type>
- <title>Engagement Index</title>
- <import>true</import>
- <comment>Assign a specific level of engagement to this activity. Used for tracking constituents in ladder of engagement.</comment>
- <pseudoconstant>
- <optionGroupName>engagement_index</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>3.4</add>
- </field>
- <field>
- <name>weight</name>
- <type>int</type>
- <add>4.1</add>
- <html>
- <type>Text</type>
- </html>
+ <name>engagement_level</name>
+ <uniqueName>activity_engagement_level</uniqueName>
+ <type>int unsigned</type>
+ <title>Engagement Index</title>
+ <import>true</import>
+ <comment>Assign a specific level of engagement to this activity. Used for tracking constituents in ladder of engagement.</comment>
+ <pseudoconstant>
+ <optionGroupName>engagement_index</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>3.4</add>
+ </field>
+ <field>
+ <name>weight</name>
+ <type>int</type>
+ <add>4.1</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
</table>
<comment>Name of table where item being referenced is stored (activity, phonecall or meeting).</comment>
<add>1.8</add>
<drop>2.0</drop>
- </field>
+ </field>
<field>
<name>activity_entity_id</name>
<comment>Name of table where item being referenced is stored (contact assigned to given activity).</comment>
<add>1.8</add>
<drop>2.0</drop>
- </field>
+ </field>
- <field>
+ <field>
<name>target_entity_id</name>
<type>int unsigned</type>
<required>true</required>
<comment>Foreign key to the referenced item.</comment>
<add>1.1</add>
<drop>2.0</drop>
- </field>
+ </field>
- <dynamicForeignKey>
+ <dynamicForeignKey>
<idColumn>target_entity_id</idColumn>
<typeColumn>target_entity_table</typeColumn>
<add>1.8</add>
<drop>2.0</drop>
- </dynamicForeignKey>
+ </dynamicForeignKey>
- <field>
+ <field>
<name>activity_id</name>
<type>int unsigned</type>
<title>Activity ID</title>
<required>true</required>
<comment>Foreign key to the activity for this assignment.</comment>
<add>2.0</add>
- </field>
- <foreignKey>
+ </field>
+ <foreignKey>
<name>activity_id</name>
<table>civicrm_activity</table>
<key>id</key>
<onDelete>CASCADE</onDelete>
</foreignKey>
- <field>
+ <field>
<name>assignee_contact_id</name>
<type>int unsigned</type>
<title>Assignee Contact ID</title>
<required>true</required>
<comment>Foreign key to the contact for this assignment.</comment>
<add>2.0</add>
- </field>
- <foreignKey>
+ </field>
+ <foreignKey>
<name>assignee_contact_id</name>
<table>civicrm_contact</table>
<key>id</key>
</foreignKey>
<index>
- <name>UI_activity_assignee_contact_id</name>
- <fieldName>assignee_contact_id</fieldName>
- <fieldName>activity_id</fieldName>
- <unique>true</unique>
- <add>2.0</add>
+ <name>UI_activity_assignee_contact_id</name>
+ <fieldName>assignee_contact_id</fieldName>
+ <fieldName>activity_id</fieldName>
+ <unique>true</unique>
+ <add>2.0</add>
</index>
<add>3.3</add>
<field>
<name>id</name>
+ <title>Batch ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Unique Address ID</comment>
</primaryKey>
<field>
<name>name</name>
+ <title>Batch Name</title>
<type>varchar</type>
<length>64</length>
<comment>Variable name/programmatic handle for this batch.</comment>
</field>
<field>
<name>title</name>
+ <title>Batch Title</title>
<type>varchar</type>
<length>64</length>
<localizable>true</localizable>
</field>
<field>
<name>description</name>
+ <title>Batch Description</title>
<type>text</type>
<comment>Description of this batch set.</comment>
<localizable>true</localizable>
</field>
<field>
<name>created_id</name>
+ <title>Batch Created By</title>
<type>int unsigned</type>
<comment>FK to Contact ID</comment>
<add>3.3</add>
</foreignKey>
<field>
<name>created_date</name>
+ <title>Batch Created Date</title>
<type>datetime</type>
<comment>When was this item created</comment>
<add>3.3</add>
</field>
<field>
<name>modified_id</name>
+ <title>Batch Modified By</title>
<type>int unsigned</type>
<comment>FK to Contact ID</comment>
<add>3.3</add>
</field>
<field>
<name>modified_date</name>
+ <title>Batch Modified Date</title>
<type>datetime</type>
<comment>When was this item created</comment>
<add>3.3</add>
</foreignKey>
<field>
<name>saved_search_id</name>
+ <title>Batch Smart Group</title>
<type>int unsigned</type>
<comment>FK to Saved Search ID</comment>
<add>4.1</add>
</foreignKey>
<field>
<name>status_id</name>
+ <title>Batch Status</title>
<type>int unsigned</type>
<required>true</required>
<comment>fk to Batch Status options in civicrm_option_values</comment>
</field>
<field>
<name>type_id</name>
+ <title>Batch Type</title>
<type>int unsigned</type>
<comment>fk to Batch Type options in civicrm_option_values</comment>
<add>4.2</add>
</field>
<field>
<name>mode_id</name>
+ <title>Batch Mode</title>
<type>int unsigned</type>
<comment>fk to Batch mode options in civicrm_option_values</comment>
<add>4.2</add>
</field>
<field>
<name>total</name>
+ <title>Batch Total</title>
<type>decimal</type>
<comment>Total amount for this batch.</comment>
<add>4.2</add>
</field>
<field>
<name>item_count</name>
+ <title>Batch Number of Items</title>
<type>int unsigned</type>
<comment>Number of items in a batch.</comment>
<add>4.2</add>
</field>
<field>
<name>payment_instrument_id</name>
+ <title>Batch Payment Instrument</title>
<type>int unsigned</type>
<comment>fk to Payment Instrument options in civicrm_option_values</comment>
<pseudoconstant>
</field>
<field>
<name>exported_date</name>
+ <title>Batch Exported Date</title>
<type>datetime</type>
<add>4.3</add>
</field>
<field>
<name>data</name>
+ <title>Batch Data</title>
<type>longtext</type>
<comment>cache entered data</comment>
<add>4.4</add>
<comment>An FK table that links between drupal organic group, civicrm group and civicrm acl roles</comment>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>drupal_og_id</name>
- <type>int unsigned</type>
- <comment>Foreign key to the organic group.</comment>
- <add>2.0</add>
+ <name>drupal_og_id</name>
+ <type>int unsigned</type>
+ <comment>Foreign key to the organic group.</comment>
+ <add>2.0</add>
</field>
<index>
- <name>index_drupal_og_id</name>
- <fieldName>index_drupal_og_id</fieldName>
- <add>2.0</add>
+ <name>index_drupal_og_id</name>
+ <fieldName>index_drupal_og_id</fieldName>
+ <add>2.0</add>
</index>
<field>
- <name>group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm group.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <table>civicrm_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>group_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm group.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <table>civicrm_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>2.0</add>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>2.0</add>
</foreignKey>
<field>
- <name>acl_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm acl.</comment>
- <add>2.0</add>
+ <name>acl_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm acl.</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>acl_id</name>
- <table>civicrm_acl</table>
- <key>id</key>
- <add>2.0</add>
+ <name>acl_id</name>
+ <table>civicrm_acl</table>
+ <key>id</key>
+ <add>2.0</add>
</foreignKey>
<field>
- <name>admin_group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to admin civicrm group.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <table>civicrm_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>admin_group_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to admin civicrm group.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <table>civicrm_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>admin_group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>2.0</add>
+ <name>admin_group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>2.0</add>
</foreignKey>
<field>
- <name>admin_acl_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm acl.</comment>
- <add>2.0</add>
+ <name>admin_acl_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm acl.</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>admin_acl_id</name>
- <table>civicrm_acl</table>
- <key>id</key>
- <add>2.0</add>
+ <name>admin_acl_id</name>
+ <table>civicrm_acl</table>
+ <key>id</key>
+ <add>2.0</add>
</foreignKey>
</table>
<comment>An FK table that links between civicrm group and drupal roles</comment>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>drupal_role_id</name>
- <type>int unsigned</type>
- <comment>Foreign key to the drupal role.</comment>
- <add>2.0</add>
+ <name>drupal_role_id</name>
+ <type>int unsigned</type>
+ <comment>Foreign key to the drupal role.</comment>
+ <add>2.0</add>
</field>
<index>
- <name>index_drupal_role_id</name>
- <fieldName>index_drupal_role_id</fieldName>
- <add>2.0</add>
+ <name>index_drupal_role_id</name>
+ <fieldName>index_drupal_role_id</fieldName>
+ <add>2.0</add>
</index>
<field>
<name>group_id</name>
</html>
</field>
<foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>2.0</add>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>2.0</add>
</foreignKey>
</table>
<add>3.3</add>
<field>
- <name>id</name>
- <title>Campaign ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Campaign ID.</comment>
- <import>true</import>
- <add>3.3</add>
+ <name>id</name>
+ <title>Campaign ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Campaign ID.</comment>
+ <import>true</import>
+ <add>3.3</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Campaign Name</title>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <comment>Name of the Campaign.</comment>
- <import>true</import>
- <html>
- <type>Text</type>
- </html>
- <add>3.3</add>
+ <name>name</name>
+ <title>Campaign Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <comment>Name of the Campaign.</comment>
+ <import>true</import>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>3.3</add>
</field>
<field>
- <name>title</name>
- <title>Campaign Title</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Title of the Campaign.</comment>
- <import>true</import>
- <html>
- <type>Text</type>
- </html>
- <add>3.3</add>
+ <name>title</name>
+ <title>Campaign Title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Title of the Campaign.</comment>
+ <import>true</import>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>3.3</add>
</field>
<field>
- <name>description</name>
- <title>Campaign Description</title>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>8</rows>
- <cols>60</cols>
- </html>
- <comment>Full description of Campaign.</comment>
- <add>3.3</add>
+ <name>description</name>
+ <title>Campaign Description</title>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>8</rows>
+ <cols>60</cols>
+ </html>
+ <comment>Full description of Campaign.</comment>
+ <add>3.3</add>
</field>
<field>
- <name>start_date</name>
- <title>Campaign Start Date</title>
- <type>datetime</type>
- <headerPattern>/^start|(s(tart\s)?date)$/i</headerPattern>
- <comment>Date and time that Campaign starts.</comment>
- <import>true</import>
- <html>
- <type>Select Date</type>
- </html>
- <add>3.3</add>
+ <name>start_date</name>
+ <title>Campaign Start Date</title>
+ <type>datetime</type>
+ <headerPattern>/^start|(s(tart\s)?date)$/i</headerPattern>
+ <comment>Date and time that Campaign starts.</comment>
+ <import>true</import>
+ <html>
+ <type>Select Date</type>
+ </html>
+ <add>3.3</add>
</field>
<field>
- <name>end_date</name>
- <title>Campaign End Date</title>
- <type>datetime</type>
- <headerPattern>/^end|(e(nd\s)?date)$/i</headerPattern>
- <comment>Date and time that Campaign ends.</comment>
- <import>true</import>
- <html>
- <type>Select Date</type>
- </html>
- <add>3.3</add>
+ <name>end_date</name>
+ <title>Campaign End Date</title>
+ <type>datetime</type>
+ <headerPattern>/^end|(e(nd\s)?date)$/i</headerPattern>
+ <comment>Date and time that Campaign ends.</comment>
+ <import>true</import>
+ <html>
+ <type>Select Date</type>
+ </html>
+ <add>3.3</add>
</field>
<field>
- <name>campaign_type_id</name>
- <title>Campaign Type</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Campaign Type ID.Implicit FK to civicrm_option_value where option_group = campaign_type</comment>
- <import>true</import>
- <pseudoconstant>
- <optionGroupName>campaign_type</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>3.3</add>
+ <name>campaign_type_id</name>
+ <title>Campaign Type</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Campaign Type ID.Implicit FK to civicrm_option_value where option_group = campaign_type</comment>
+ <import>true</import>
+ <pseudoconstant>
+ <optionGroupName>campaign_type</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>3.3</add>
</field>
<index>
- <name>UI_campaign_type_id</name>
- <fieldName>campaign_type_id</fieldName>
- <add>3.3</add>
+ <name>UI_campaign_type_id</name>
+ <fieldName>campaign_type_id</fieldName>
+ <add>3.3</add>
</index>
- <field>
- <name>status_id</name>
- <title>Campaign Status</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Campaign status ID.Implicit FK to civicrm_option_value where option_group = campaign_status</comment>
- <import>true</import>
- <pseudoconstant>
- <optionGroupName>campaign_status</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>3.3</add>
+ <field>
+ <name>status_id</name>
+ <title>Campaign Status</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Campaign status ID.Implicit FK to civicrm_option_value where option_group = campaign_status</comment>
+ <import>true</import>
+ <pseudoconstant>
+ <optionGroupName>campaign_status</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>3.3</add>
</field>
<index>
- <name>UI_campaign_status_id</name>
- <fieldName>status_id</fieldName>
- <add>3.3</add>
+ <name>UI_campaign_status_id</name>
+ <fieldName>status_id</fieldName>
+ <add>3.3</add>
</index>
<field>
- <name>external_identifier</name>
- <type>varchar</type>
- <title>Campaign External Identifier</title>
- <length>32</length>
- <headerPattern>/external\s?id/i</headerPattern>
- <dataPattern>/^\d{11,}$/</dataPattern>
- <comment>Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.</comment>
- <import>true</import>
- <add>3.3</add>
- <html>
- <type>Text</type>
- </html>
+ <name>external_identifier</name>
+ <type>varchar</type>
+ <title>Campaign External ID</title>
+ <length>32</length>
+ <headerPattern>/external\s?id/i</headerPattern>
+ <dataPattern>/^\d{11,}$/</dataPattern>
+ <comment>Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.</comment>
+ <import>true</import>
+ <add>3.3</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<index>
- <name>UI_external_identifier</name>
- <unique>true</unique>
- <fieldName>external_identifier</fieldName>
- <add>3.3</add>
+ <name>UI_external_identifier</name>
+ <unique>true</unique>
+ <fieldName>external_identifier</fieldName>
+ <add>3.3</add>
</index>
<field>
- <name>parent_id</name>
- <title>Parent Campaign</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Optional parent id for this Campaign.</comment>
- <import>true</import>
- <add>3.3</add>
- <html>
- <type>Autocomplete-Select</type>
- </html>
+ <name>parent_id</name>
+ <title>Parent Campaign</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Optional parent id for this Campaign.</comment>
+ <import>true</import>
+ <add>3.3</add>
+ <html>
+ <type>Autocomplete-Select</type>
+ </html>
</field>
<foreignKey>
- <name>parent_id</name>
- <table>civicrm_campaign</table>
- <key>id</key>
- <add>3.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>parent_id</name>
+ <table>civicrm_campaign</table>
+ <key>id</key>
+ <add>3.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>is_active</name>
- <title>Is Campaign Active?</title>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this Campaign enabled or disabled/cancelled?</comment>
- <add>3.3</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>is_active</name>
+ <title>Is Campaign Active?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this Campaign enabled or disabled/cancelled?</comment>
+ <add>3.3</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>created_id</name>
- <type>int unsigned</type>
- <title>Campaign Created By</title>
- <comment>FK to civicrm_contact, who created this Campaign.</comment>
- <add>3.3</add>
+ <name>created_id</name>
+ <type>int unsigned</type>
+ <title>Campaign Created By</title>
+ <comment>FK to civicrm_contact, who created this Campaign.</comment>
+ <add>3.3</add>
</field>
<foreignKey>
- <name>created_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>created_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>created_date</name>
- <type>datetime</type>
- <title>Campaign Created Date</title>
- <comment>Date and time that Campaign was created.</comment>
- <add>3.3</add>
- <html>
- <type>Select Date</type>
- </html>
+ <name>created_date</name>
+ <type>datetime</type>
+ <title>Campaign Created Date</title>
+ <comment>Date and time that Campaign was created.</comment>
+ <add>3.3</add>
+ <html>
+ <type>Select Date</type>
+ </html>
</field>
<field>
- <name>last_modified_id</name>
- <type>int unsigned</type>
- <title>Campaign Modified By</title>
- <comment>FK to civicrm_contact, who recently edited this Campaign.</comment>
- <add>3.3</add>
+ <name>last_modified_id</name>
+ <type>int unsigned</type>
+ <title>Campaign Modified By</title>
+ <comment>FK to civicrm_contact, who recently edited this Campaign.</comment>
+ <add>3.3</add>
</field>
<foreignKey>
- <name>last_modified_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>last_modified_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>last_modified_date</name>
- <type>datetime</type>
- <title>Campaign Modified Date</title>
- <comment>Date and time that Campaign was edited last time.</comment>
- <add>3.3</add>
- </field>
- <field>
- <name>goal_general</name>
- <type>text</type>
- <title>Campaign Goals</title>
- <comment>General goals for Campaign.</comment>
- <add>3.4</add>
- <html>
- <type>RichTextEditor</type>
- </html>
- </field>
- <field>
- <name>goal_revenue</name>
- <type>decimal</type>
- <comment>The target revenue for this campaign.</comment>
- <add>3.4</add>
- <html>
- <type>Text</type>
- </html>
+ <name>last_modified_date</name>
+ <type>datetime</type>
+ <title>Campaign Modified Date</title>
+ <comment>Date and time that Campaign was edited last time.</comment>
+ <add>3.3</add>
+ </field>
+ <field>
+ <name>goal_general</name>
+ <type>text</type>
+ <title>Campaign Goals</title>
+ <comment>General goals for Campaign.</comment>
+ <add>3.4</add>
+ <html>
+ <type>RichTextEditor</type>
+ </html>
+ </field>
+ <field>
+ <name>goal_revenue</name>
+ <type>decimal</type>
+ <comment>The target revenue for this campaign.</comment>
+ <add>3.4</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
</table>
<field>
<name>id</name>
+ <title>Survey ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Survey id.</comment>
<field>
<name>campaign_id</name>
+ <title>Survey Campaign ID</title>
<type>int unsigned</type>
<default>NULL</default>
<comment>Foreign key to the Campaign.</comment>
<field>
<name>recontact_interval</name>
+ <title>Follow up Interval</title>
<type>text</type>
<comment>Recontact intervals for each status.</comment>
<html>
<field>
<name>instructions</name>
+ <title>Instructions</title>
<type>text</type>
<localizable>true</localizable>
<comment>Script instructions for volunteers to use for the survey.</comment>
<field>
<name>release_frequency</name>
+ <title>Survey Hold Duration</title>
<type>int unsigned</type>
<default>NULL</default>
<comment>Number of days for recurrence of release.</comment>
<field>
<name>is_active</name>
+ <title>Survey Is Active</title>
<type>boolean</type>
<default>1</default>
<comment>Is this survey enabled or disabled/cancelled?</comment>
<field>
<name>is_default</name>
+ <title>Is Default Survey</title>
<type>boolean</type>
<default>0</default>
<comment>Is this default survey?</comment>
<field>
<name>created_id</name>
+ <title>Survey Created By</title>
<type>int unsigned</type>
<comment>FK to civicrm_contact, who created this Survey.</comment>
<add>3.3</add>
</field>
<foreignKey>
- <name>created_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>created_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
<field>
<name>last_modified_id</name>
+ <title>Survey Modified</title>
<type>int unsigned</type>
<comment>FK to civicrm_contact, who recently edited this Survey.</comment>
<add>3.3</add>
<field>
<name>last_modified_date</name>
+ <title>Survey Modified On</title>
<type>datetime</type>
<comment>Date and time that Survey was edited last time.</comment>
<add>3.3</add>
<field>
<name>result_id</name>
+ <title>Survey Result</title>
<type>int unsigned</type>
<default>NULL</default>
<comment>Used to store option group id.</comment>
</field>
<field>
<name>bypass_confirm</name>
+ <title>No Email Verification</title>
<type>boolean</type>
<default>0</default>
<comment>Bypass the email verification.</comment>
<add>1.8</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <uniqueName>case_id</uniqueName>
- <required>true</required>
- <import>true</import>
- <title>Case ID</title>
- <comment>Unique Case ID</comment>
- <add>1.8</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <uniqueName>case_id</uniqueName>
+ <required>true</required>
+ <import>true</import>
+ <title>Case ID</title>
+ <comment>Unique Case ID</comment>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <uniqueName>case_contact_id</uniqueName>
- <required>true</required>
- <comment>Contact ID of contact record given case belongs to.</comment>
- <add>1.8</add>
- <drop>2.1</drop>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <uniqueName>case_contact_id</uniqueName>
+ <required>true</required>
+ <comment>Contact ID of contact record given case belongs to.</comment>
+ <add>1.8</add>
+ <drop>2.1</drop>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.8</add>
- <drop>2.1</drop>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.8</add>
+ <drop>2.1</drop>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>case_type_id</name>
- <type>int unsigned</type>
- <import>true</import>
- <export>false</export>
- <title>Case Type</title>
- <comment>FK to civicrm_case_type.id</comment>
- <html>
- <type>Select</type>
- </html>
- <pseudoconstant>
- <table>civicrm_case_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <add>2.0</add>
+ <name>case_type_id</name>
+ <type>int unsigned</type>
+ <import>true</import>
+ <export>false</export>
+ <title>Case Type</title>
+ <comment>FK to civicrm_case_type.id</comment>
+ <html>
+ <type>Select</type>
+ </html>
+ <pseudoconstant>
+ <table>civicrm_case_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <add>2.0</add>
</field>
<index>
- <name>index_case_type_id</name>
- <fieldName>case_type_id</fieldName>
- <add>2.0</add>
+ <name>index_case_type_id</name>
+ <fieldName>case_type_id</fieldName>
+ <add>2.0</add>
</index>
<foreignKey>
- <name>case_type_id</name>
- <table>civicrm_case_type</table>
- <key>id</key>
- <add>4.5</add>
- <onDelete>SET NULL</onDelete>
+ <name>case_type_id</name>
+ <table>civicrm_case_type</table>
+ <key>id</key>
+ <add>4.5</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>casetag1_id</name>
- <type>varchar</type>
- <length>128</length>
- <required>true</required>
- <comment>Id of first case category.</comment>
- <add>1.8</add>
- <drop>2.0</drop>
+ <name>casetag1_id</name>
+ <type>varchar</type>
+ <length>128</length>
+ <required>true</required>
+ <comment>Id of first case category.</comment>
+ <add>1.8</add>
+ <drop>2.0</drop>
</field>
<index>
- <name>index_casetag1_id</name>
- <fieldName>casetag1_id</fieldName>
- <add>1.8</add>
- <drop>2.0</drop>
+ <name>index_casetag1_id</name>
+ <fieldName>casetag1_id</fieldName>
+ <add>1.8</add>
+ <drop>2.0</drop>
</index>
<field>
- <name>casetag2_id</name>
- <type>varchar</type>
- <length>128</length>
- <required>true</required>
- <comment>Id of second case category.</comment>
- <add>1.8</add>
- <drop>2.0</drop>
+ <name>casetag2_id</name>
+ <type>varchar</type>
+ <length>128</length>
+ <required>true</required>
+ <comment>Id of second case category.</comment>
+ <add>1.8</add>
+ <drop>2.0</drop>
</field>
<index>
- <name>index_casetag2_id</name>
- <fieldName>casetag2_id</fieldName>
- <add>1.8</add>
- <drop>2.0</drop>
+ <name>index_casetag2_id</name>
+ <fieldName>casetag2_id</fieldName>
+ <add>1.8</add>
+ <drop>2.0</drop>
</index>
<field>
- <name>casetag3_id</name>
- <type>varchar</type>
- <length>128</length>
- <required>true</required>
- <comment>Id of third case category.</comment>
- <add>1.8</add>
- <drop>2.0</drop>
+ <name>casetag3_id</name>
+ <type>varchar</type>
+ <length>128</length>
+ <required>true</required>
+ <comment>Id of third case category.</comment>
+ <add>1.8</add>
+ <drop>2.0</drop>
</field>
<index>
- <name>index_casetag3_id</name>
- <fieldName>casetag3_id</fieldName>
- <add>1.8</add>
- <drop>2.0</drop>
+ <name>index_casetag3_id</name>
+ <fieldName>casetag3_id</fieldName>
+ <add>1.8</add>
+ <drop>2.0</drop>
</index>
<field>
- <name>subject</name>
- <type>varchar</type>
- <length>128</length>
- <title>Case Subject</title>
- <import>true</import>
- <uniqueName>case_subject</uniqueName>
- <comment>Short name of the case.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>1.8</add>
+ <name>subject</name>
+ <type>varchar</type>
+ <length>128</length>
+ <title>Case Subject</title>
+ <import>true</import>
+ <uniqueName>case_subject</uniqueName>
+ <comment>Short name of the case.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>1.8</add>
</field>
- <field>
- <name>start_date</name>
- <uniqueName>case_start_date</uniqueName>
- <title>Case Start Date</title>
- <import>true</import>
- <type>date</type>
- <comment>Date on which given case starts.</comment>
- <html>
- <type>Select Date</type>
- </html>
- <add>1.8</add>
+ <field>
+ <name>start_date</name>
+ <uniqueName>case_start_date</uniqueName>
+ <title>Case Start Date</title>
+ <import>true</import>
+ <type>date</type>
+ <comment>Date on which given case starts.</comment>
+ <html>
+ <type>Select Date</type>
+ </html>
+ <add>1.8</add>
</field>
<field>
- <name>end_date</name>
- <uniqueName>case_end_date</uniqueName>
- <title>Case End Date</title>
- <import>true</import>
- <type>date</type>
- <comment>Date on which given case ends.</comment>
- <html>
- <type>Select Date</type>
- </html>
- <add>1.8</add>
+ <name>end_date</name>
+ <uniqueName>case_end_date</uniqueName>
+ <title>Case End Date</title>
+ <import>true</import>
+ <type>date</type>
+ <comment>Date on which given case ends.</comment>
+ <html>
+ <type>Select Date</type>
+ </html>
+ <add>1.8</add>
</field>
<field>
- <name>details</name>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>8</rows>
- <cols>60</cols>
- </html>
- <comment>Details about the meeting (agenda, notes, etc).</comment>
- <add>1.8</add>
+ <name>details</name>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>8</rows>
+ <cols>60</cols>
+ </html>
+ <comment>Details about the meeting (agenda, notes, etc).</comment>
+ <add>1.8</add>
</field>
<field>
- <name>status_id</name>
- <type>int unsigned</type>
- <uniqueName>case_status_id</uniqueName>
- <required>true</required>
- <import>true</import>
- <export>false</export>
- <title>Case Status</title>
- <comment>Id of case status.</comment>
- <pseudoconstant>
- <optionGroupName>case_status</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.8</add>
+ <name>status_id</name>
+ <type>int unsigned</type>
+ <uniqueName>case_status_id</uniqueName>
+ <required>true</required>
+ <import>true</import>
+ <export>false</export>
+ <title>Case Status</title>
+ <comment>Id of case status.</comment>
+ <pseudoconstant>
+ <optionGroupName>case_status</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.8</add>
</field>
<field>
- <name>is_deleted</name>
- <title>Case is in the Trash</title>
- <uniqueName>case_deleted</uniqueName>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <title>Case Deleted</title>
- <add>2.2</add>
+ <name>is_deleted</name>
+ <title>Case is in the Trash</title>
+ <uniqueName>case_deleted</uniqueName>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <title>Case Deleted</title>
+ <add>2.2</add>
</field>
<index>
- <name>index_is_deleted</name>
- <fieldName>is_deleted</fieldName>
- <add>2.2</add>
+ <name>index_is_deleted</name>
+ <fieldName>is_deleted</fieldName>
+ <add>2.2</add>
</index>
</table>
<log>true</log>
<field>
<name>id</name>
+ <title>Case Type ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Autoincremented type id</comment>
</primaryKey>
<field>
<name>name</name>
+ <title>Case Type Name</title>
<type>varchar</type>
<length>64</length>
<required>true</required>
</index>
<field>
<name>title</name>
+ <title>Case Type Title</title>
<type>varchar</type>
<length>64</length>
<required>true</required>
</field>
<field>
<name>description</name>
+ <title>Case Type Description</title>
<type>varchar</type>
<length>255</length>
<localizable>true</localizable>
</field>
<field>
<name>is_active</name>
+ <title>Case Type Is Active</title>
<type>boolean</type>
<comment>Is this entry active?</comment>
<add>4.5</add>
</field>
<field>
<name>is_reserved</name>
+ <title>Case Type Is Reserved</title>
<type>boolean</type>
<comment>Is this case type a predefined system type?</comment>
<add>4.5</add>
</field>
<field>
<name>weight</name>
+ <title>Case Type Weight</title>
<type>int</type>
<required>true</required>
<default>1</default>
</field>
<field>
<name>definition</name>
+ <title>Case Type Definition</title>
<type>blob</type>
<comment>xml definition of case type</comment>
<add>4.5</add>
<comment>Join table cache for contacts that a user has permission on.</comment>
<add>3.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>primary key</comment>
- <add>3.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>primary key</comment>
+ <add>3.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>user_id</name>
- <type>int unsigned</type>
- <comment>FK to civicrm_contact (could be null for anon user)</comment>
- <add>3.1</add>
+ <name>user_id</name>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_contact (could be null for anon user)</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>user_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>user_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_contact</comment>
- <add>3.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_contact</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>operation</name>
- <type>varchar</type>
- <length>8</length>
- <required>true</required>
- <comment>What operation does this user have permission on?</comment>
- <pseudoconstant>
- <callback>CRM_ACL_BAO_ACL::operation</callback>
- </pseudoconstant>
- <add>1.6</add>
- <html>
- <type>Select</type>
- </html>
+ <name>operation</name>
+ <type>varchar</type>
+ <length>8</length>
+ <required>true</required>
+ <comment>What operation does this user have permission on?</comment>
+ <pseudoconstant>
+ <callback>CRM_ACL_BAO_ACL::operation</callback>
+ </pseudoconstant>
+ <add>1.6</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
<name>UI_user_contact_operation</name>
<comment>Contact objects are defined by a civicrm_contact record plus a related civicrm_contact_type record.</comment>
<add>1.1</add>
<log>true</log>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Internal Contact ID</title>
- <import>true</import>
- <headerPattern>/internal|contact?|id$/i</headerPattern>
- <required>true</required>
- <comment>Unique Contact ID</comment>
- <add>1.1</add>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Internal Contact ID</title>
+ <import>true</import>
+ <headerPattern>/internal|contact?|id$/i</headerPattern>
+ <required>true</required>
+ <comment>Unique Contact ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_type</name>
- <title>Contact Type</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Type of Contact.</comment>
- <export>true</export>
- <pseudoconstant>
- <table>civicrm_contact_type</table>
- <keyColumn>name</keyColumn>
- <labelColumn>label</labelColumn>
- <condition>parent_id IS NULL</condition>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.1</add>
- <change>3.1</change>
+ <name>contact_type</name>
+ <title>Contact Type</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Type of Contact.</comment>
+ <export>true</export>
+ <pseudoconstant>
+ <table>civicrm_contact_type</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>label</labelColumn>
+ <condition>parent_id IS NULL</condition>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.1</add>
+ <change>3.1</change>
</field>
<index>
- <name>index_contact_type</name>
- <fieldName>contact_type</fieldName>
- <add>2.1</add>
+ <name>index_contact_type</name>
+ <fieldName>contact_type</fieldName>
+ <add>2.1</add>
</index>
<field>
- <name>contact_sub_type</name>
- <title>Contact Subtype</title>
- <type>varchar</type>
- <length>255</length>
- <export>true</export>
- <import>true</import>
- <headerPattern>/C(ontact )?(subtype|sub-type|sub type)/i</headerPattern>
- <comment>May be used to over-ride contact view and edit templates.</comment>
- <pseudoconstant>
- <table>civicrm_contact_type</table>
- <keyColumn>name</keyColumn>
- <labelColumn>label</labelColumn>
- <condition>parent_id IS NOT NULL</condition>
- </pseudoconstant>
- <html>
- <type>Multi-Select</type>
- </html>
- <add>1.5</add>
+ <name>contact_sub_type</name>
+ <title>Contact Subtype</title>
+ <type>varchar</type>
+ <length>255</length>
+ <export>true</export>
+ <import>true</import>
+ <headerPattern>/C(ontact )?(subtype|sub-type|sub type)/i</headerPattern>
+ <comment>May be used to over-ride contact view and edit templates.</comment>
+ <pseudoconstant>
+ <table>civicrm_contact_type</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>label</labelColumn>
+ <condition>parent_id IS NOT NULL</condition>
+ </pseudoconstant>
+ <html>
+ <type>Multi-Select</type>
+ </html>
+ <add>1.5</add>
</field>
<index>
- <name>index_contact_sub_type</name>
- <fieldName>contact_sub_type</fieldName>
- <html>
- <type>Multi-Select</type>
- </html>
- <add>2.1</add>
+ <name>index_contact_sub_type</name>
+ <fieldName>contact_sub_type</fieldName>
+ <html>
+ <type>Multi-Select</type>
+ </html>
+ <add>2.1</add>
</index>
<field>
- <name>do_not_email</name>
- <type>boolean</type>
- <import>true</import>
- <headerPattern>/d(o )?(not )?(email)/i</headerPattern>
- <dataPattern>/^\d{1,}$/</dataPattern>
- <default>0</default>
- <html>
- <type>CheckBox</type>
- </html>
- <add>1.1</add>
-</field>
-<field>
- <name>do_not_phone</name>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <headerPattern>/d(o )?(not )?(call|phone)/i</headerPattern>
- <dataPattern>/^\d{1,}$/</dataPattern>
- <add>1.1</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>do_not_mail</name>
- <type>boolean</type>
- <import>true</import>
- <headerPattern>/^(d(o\s)?n(ot\s)?mail)|(\w*)?bulk\s?(\w*)$/i</headerPattern>
- <dataPattern>/^\d{1,}$/</dataPattern>
- <default>0</default>
- <add>1.1</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>do_not_sms</name>
- <type>boolean</type>
- <import>true</import>
- <headerPattern>/d(o )?(not )?(sms)/i</headerPattern>
- <dataPattern>/^\d{1,}$/</dataPattern>
- <default>0</default>
- <add>3.0</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>do_not_trade</name>
- <type>boolean</type>
- <import>true</import>
- <headerPattern>/d(o )?(not )?(trade)/i</headerPattern>
- <dataPattern>/^\d{1,}$/</dataPattern>
- <default>0</default>
- <add>1.1</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>do_not_email</name>
+ <type>boolean</type>
+ <import>true</import>
+ <headerPattern>/d(o )?(not )?(email)/i</headerPattern>
+ <dataPattern>/^\d{1,}$/</dataPattern>
+ <default>0</default>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>do_not_phone</name>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <headerPattern>/d(o )?(not )?(call|phone)/i</headerPattern>
+ <dataPattern>/^\d{1,}$/</dataPattern>
+ <add>1.1</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>do_not_mail</name>
+ <type>boolean</type>
+ <import>true</import>
+ <headerPattern>/^(d(o\s)?n(ot\s)?mail)|(\w*)?bulk\s?(\w*)$/i</headerPattern>
+ <dataPattern>/^\d{1,}$/</dataPattern>
+ <default>0</default>
+ <add>1.1</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>do_not_sms</name>
+ <type>boolean</type>
+ <import>true</import>
+ <headerPattern>/d(o )?(not )?(sms)/i</headerPattern>
+ <dataPattern>/^\d{1,}$/</dataPattern>
+ <default>0</default>
+ <add>3.0</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>do_not_trade</name>
+ <type>boolean</type>
+ <import>true</import>
+ <headerPattern>/d(o )?(not )?(trade)/i</headerPattern>
+ <dataPattern>/^\d{1,}$/</dataPattern>
+ <default>0</default>
+ <add>1.1</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
<name>is_opt_out</name>
<comment>Has the contact opted out from receiving all bulk email from the organization or site domain?</comment>
<add>1.1</add>
<html>
- <type>CheckBox</type>
- </html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>legal_identifier</name>
- <type>varchar</type>
- <length>32</length>
- <import>true</import>
- <headerPattern>/legal\s?id/i</headerPattern>
- <dataPattern>/\w+?\d{5,}/</dataPattern>
- <comment>May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.</comment>
- <add>1.1</add>
- <html>
- <type>Text</type>
- </html>
+ <name>legal_identifier</name>
+ <type>varchar</type>
+ <length>32</length>
+ <import>true</import>
+ <headerPattern>/legal\s?id/i</headerPattern>
+ <dataPattern>/\w+?\d{5,}/</dataPattern>
+ <comment>May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.
+ </comment>
+ <add>1.1</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>external_identifier</name>
- <type>varchar</type>
- <length>32</length>
- <html>
- <type>Text</type>
- <size>EIGHT</size>
- </html>
+ <name>external_identifier</name>
+ <type>varchar</type>
+ <length>32</length>
+ <html>
+ <type>Text</type>
+ <size>EIGHT</size>
+ </html>
- <import>true</import>
- <headerPattern>/external\s?id/i</headerPattern>
- <dataPattern>/^\d{11,}$/</dataPattern>
- <comment>Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.</comment>
- <add>1.1</add>
+ <import>true</import>
+ <headerPattern>/external\s?id/i</headerPattern>
+ <dataPattern>/^\d{11,}$/</dataPattern>
+ <comment>Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.</comment>
+ <add>1.1</add>
</field>
<index>
- <name>UI_external_identifier</name>
- <unique>true</unique>
- <fieldName>external_identifier</fieldName>
- <add>1.7</add>
+ <name>UI_external_identifier</name>
+ <unique>true</unique>
+ <fieldName>external_identifier</fieldName>
+ <add>1.7</add>
</index>
<field>
- <name>sort_name</name>
- <title>Sort Name</title>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
+ <name>sort_name</name>
+ <title>Sort Name</title>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
- <export>true</export>
- <comment>Name used for sorting different contact types</comment>
- <add>1.1</add>
+ <export>true</export>
+ <comment>Name used for sorting different contact types</comment>
+ <add>1.1</add>
</field>
<index>
- <name>index_sort_name</name>
- <fieldName>sort_name</fieldName>
- <add>2.1</add>
+ <name>index_sort_name</name>
+ <fieldName>sort_name</fieldName>
+ <add>2.1</add>
</index>
<field>
- <name>display_name</name>
- <title>Display Name</title>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
+ <name>display_name</name>
+ <title>Display Name</title>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
- <export>true</export>
- <comment>Formatted name representing preferred format for display/print/other output.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>nick_name</name>
- <title>Nickname</title>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
+ <export>true</export>
+ <comment>Formatted name representing preferred format for display/print/other output.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>nick_name</name>
+ <title>Nickname</title>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
- <import>true</import>
- <headerPattern>/n(ick\s)name|nick$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <comment>Nickname.</comment>
- <fulltext/>
- <add>1.1</add>
- </field>
- <field>
- <name>legal_name</name>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
+ <import>true</import>
+ <headerPattern>/n(ick\s)name|nick$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <comment>Nickname.</comment>
+ <fulltext/>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>legal_name</name>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
- <import>true</import>
- <headerPattern>/^legal|(l(egal\s)?name)$/i</headerPattern>
- <comment>Legal Name.</comment>
- <fulltext/>
- <add>1.1</add>
- </field>
- <field>
- <name>home_URL</name>
- <rule>url</rule>
- <title>Website</title>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
+ <import>true</import>
+ <headerPattern>/^legal|(l(egal\s)?name)$/i</headerPattern>
+ <comment>Legal Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>home_URL</name>
+ <rule>url</rule>
+ <title>Website</title>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
- <import>true</import>
- <headerPattern>/^(home\sURL)|URL|web|site/i</headerPattern>
- <dataPattern>/^[\w\/\:\.]+$/</dataPattern>
- <comment>optional "home page" URL for this contact.</comment>
- <add>1.1</add>
- <drop>3.2</drop>
- </field>
- <field>
- <name>image_URL</name>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <comment>optional URL for preferred image (photo, logo, etc.) to display for this contact.</comment>
- <add>1.1</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>preferred_communication_method</name>
- <title>Preferred Communication Method</title>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <headerPattern>/^p(ref\w*\s)?c(omm\w*)|( meth\w*)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <comment>What is the preferred mode of communication.</comment>
- <add>1.1</add>
- <pseudoconstant>
- <optionGroupName>preferred_communication_method</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <import>true</import>
+ <headerPattern>/^(home\sURL)|URL|web|site/i</headerPattern>
+ <dataPattern>/^[\w\/\:\.]+$/</dataPattern>
+ <comment>optional "home page" URL for this contact.</comment>
+ <add>1.1</add>
+ <drop>3.2</drop>
+ </field>
+ <field>
+ <name>image_URL</name>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <comment>optional URL for preferred image (photo, logo, etc.) to display for this contact.</comment>
+ <add>1.1</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>preferred_communication_method</name>
+ <title>Preferred Communication Method</title>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <headerPattern>/^p(ref\w*\s)?c(omm\w*)|( meth\w*)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <comment>What is the preferred mode of communication.</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <optionGroupName>preferred_communication_method</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
- <name>index_preferred_communication_method</name>
- <fieldName>preferred_communication_method</fieldName>
- <add>1.6</add>
+ <name>index_preferred_communication_method</name>
+ <fieldName>preferred_communication_method</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>preferred_language</name>
- <title>Preferred Language</title>
- <type>varchar</type>
- <length>5</length>
- <comment>Which language is preferred for communication. FK to languages in civicrm_option_value.</comment>
- <headerPattern>/^lang/i</headerPattern>
- <import>true</import>
- <pseudoconstant>
- <optionGroupName>languages</optionGroupName>
- <keyColumn>name</keyColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>3.2</add>
- </field>
- <field>
- <name>preferred_mail_format</name>
- <type>varchar</type>
- <length>8</length>
- <default>"Both"</default>
- <import>true</import>
- <headerPattern>/^p(ref\w*\s)?m(ail\s)?f(orm\w*)$/i</headerPattern>
- <comment>What is the preferred mode of sending an email.</comment>
- <add>1.1</add>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::pmf</callback>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>hash</name>
- <title>Contact Hash</title>
- <type>varchar</type>
- <length>32</length>
- <comment>Key for validating requests related to this contact.</comment>
- <add>1.1</add>
- <change>1.5</change>
- <export>true</export>
+ <name>preferred_language</name>
+ <title>Preferred Language</title>
+ <type>varchar</type>
+ <length>5</length>
+ <comment>Which language is preferred for communication. FK to languages in civicrm_option_value.</comment>
+ <headerPattern>/^lang/i</headerPattern>
+ <import>true</import>
+ <pseudoconstant>
+ <optionGroupName>languages</optionGroupName>
+ <keyColumn>name</keyColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>3.2</add>
+ </field>
+ <field>
+ <name>preferred_mail_format</name>
+ <type>varchar</type>
+ <length>8</length>
+ <default>"Both"</default>
+ <import>true</import>
+ <headerPattern>/^p(ref\w*\s)?m(ail\s)?f(orm\w*)$/i</headerPattern>
+ <comment>What is the preferred mode of sending an email.</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::pmf</callback>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>hash</name>
+ <title>Contact Hash</title>
+ <type>varchar</type>
+ <length>32</length>
+ <comment>Key for validating requests related to this contact.</comment>
+ <add>1.1</add>
+ <change>1.5</change>
+ <export>true</export>
</field>
<index>
- <name>index_hash</name>
- <fieldName>hash</fieldName>
- <add>2.1</add>
+ <name>index_hash</name>
+ <fieldName>hash</fieldName>
+ <add>2.1</add>
</index>
<field>
- <name>api_key</name>
- <type>varchar</type>
- <length>32</length>
- <comment>API Key for validating requests related to this contact.</comment>
- <add>2.2</add>
+ <name>api_key</name>
+ <type>varchar</type>
+ <length>32</length>
+ <comment>API Key for validating requests related to this contact.</comment>
+ <add>2.2</add>
</field>
<index>
- <name>index_api_key</name>
- <fieldName>api_key</fieldName>
- <add>2.1</add>
+ <name>index_api_key</name>
+ <fieldName>api_key</fieldName>
+ <add>2.1</add>
</index>
<field>
- <name>source</name>
- <title>Source of Contact Data</title>
- <uniqueName>contact_source</uniqueName>
- <type>varchar</type>
- <length>255</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
+ <name>source</name>
+ <title>Source of Contact Data</title>
+ <uniqueName>contact_source</uniqueName>
+ <type>varchar</type>
+ <length>255</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
- <import>true</import>
- <headerPattern>/(S(ource\s)?o(f\s)?C(ontact\s)?Data)$/i</headerPattern>
- <comment>where contact come from, e.g. import, donate module insert...</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>first_name</name>
- <type>varchar</type>
- <length>64</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
- <import>true</import>
- <headerPattern>/^first|(f(irst\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <fulltext/>
- <comment>First Name.</comment>
- <add>1.1</add>
+ <import>true</import>
+ <headerPattern>/(S(ource\s)?o(f\s)?C(ontact\s)?Data)$/i</headerPattern>
+ <comment>where contact come from, e.g. import, donate module insert...</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>first_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/^first|(f(irst\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <fulltext/>
+ <comment>First Name.</comment>
+ <add>1.1</add>
</field>
<index>
- <name>index_first_name</name>
- <fieldName>first_name</fieldName>
- <add>1.8</add>
+ <name>index_first_name</name>
+ <fieldName>first_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>middle_name</name>
- <type>varchar</type>
- <length>64</length>
- <html>
- <type>Text</type>
- <size>MEDIUM</size>
- </html>
- <import>true</import>
- <headerPattern>/^middle|(m(iddle\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <fulltext/>
- <comment>Middle Name.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>last_name</name>
- <type>varchar</type>
- <length>64</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
- <import>true</import>
- <headerPattern>/^last|(l(ast\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+(\s\w+)?+$/</dataPattern>
- <comment>Last Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>middle_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <html>
+ <type>Text</type>
+ <size>MEDIUM</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/^middle|(m(iddle\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <fulltext/>
+ <comment>Middle Name.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>last_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/^last|(l(ast\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+(\s\w+)?+$/</dataPattern>
+ <comment>Last Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<index>
- <name>index_last_name</name>
- <fieldName>last_name</fieldName>
- <add>1.8</add>
- <html>
- <type>Text</type>
- </html>
+ <name>index_last_name</name>
+ <fieldName>last_name</fieldName>
+ <add>1.8</add>
+ <html>
+ <type>Text</type>
+ </html>
</index>
<field>
- <name>prefix_id</name>
- <title>Individual Prefix</title>
- <type>int unsigned</type>
- <comment>Prefix or Title for name (Ms, Mr...). FK to prefix ID</comment>
- <pseudoconstant>
- <optionGroupName>individual_prefix</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <headerPattern>/^(prefix|title)/i</headerPattern>
- <dataPattern>/^(mr|ms|mrs|sir|dr)\.?$/i</dataPattern>
- <import>true</import>
- <add>1.2</add>
+ <name>prefix_id</name>
+ <title>Individual Prefix</title>
+ <type>int unsigned</type>
+ <comment>Prefix or Title for name (Ms, Mr...). FK to prefix ID</comment>
+ <pseudoconstant>
+ <optionGroupName>individual_prefix</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <headerPattern>/^(prefix|title)/i</headerPattern>
+ <dataPattern>/^(mr|ms|mrs|sir|dr)\.?$/i</dataPattern>
+ <import>true</import>
+ <add>1.2</add>
</field>
<index>
- <name>UI_prefix</name>
- <fieldName>prefix_id</fieldName>
- <add>1.6</add>
+ <name>UI_prefix</name>
+ <fieldName>prefix_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>suffix_id</name>
- <title>Individual Suffix</title>
- <type>int unsigned</type>
- <pseudoconstant>
- <optionGroupName>individual_suffix</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <import>true</import>
- <comment>Suffix for name (Jr, Sr...). FK to suffix ID</comment>
- <headerPattern>/^suffix$/i</headerPattern>
- <dataPattern>/^(sr|jr)\.?|i{2,}$/</dataPattern>
- <add>1.2</add>
+ <name>suffix_id</name>
+ <title>Individual Suffix</title>
+ <type>int unsigned</type>
+ <pseudoconstant>
+ <optionGroupName>individual_suffix</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <import>true</import>
+ <comment>Suffix for name (Jr, Sr...). FK to suffix ID</comment>
+ <headerPattern>/^suffix$/i</headerPattern>
+ <dataPattern>/^(sr|jr)\.?|i{2,}$/</dataPattern>
+ <add>1.2</add>
</field>
<index>
- <name>UI_suffix</name>
- <fieldName>suffix_id</fieldName>
- <add>1.6</add>
+ <name>UI_suffix</name>
+ <fieldName>suffix_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>formal_title</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/^title/i</headerPattern>
- <comment>Formal (academic or similar) title in front of name. (Prof., Dr. etc.)</comment>
- <add>4.5</add>
- </field>
- <field>
- <name>communication_style_id</name>
- <title>Communication Style</title>
- <type>int unsigned</type>
- <pseudoconstant>
- <optionGroupName>communication_style</optionGroupName>
- </pseudoconstant>
- <export>true</export>
- <comment>Communication style (e.g. formal vs. familiar) to use with this contact. FK to communication styles in civicrm_option_value.</comment>
- <add>4.4</add>
+ <name>formal_title</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/^title/i</headerPattern>
+ <comment>Formal (academic or similar) title in front of name. (Prof., Dr. etc.)</comment>
+ <add>4.5</add>
+ </field>
+ <field>
+ <name>communication_style_id</name>
+ <title>Communication Style</title>
+ <type>int unsigned</type>
+ <pseudoconstant>
+ <optionGroupName>communication_style</optionGroupName>
+ </pseudoconstant>
+ <export>true</export>
+ <comment>Communication style (e.g. formal vs. familiar) to use with this contact. FK to communication styles in civicrm_option_value.</comment>
+ <add>4.4</add>
</field>
<index>
- <name>index_communication_style_id</name>
- <fieldName>communication_style_id</fieldName>
- <add>4.4</add>
+ <name>index_communication_style_id</name>
+ <fieldName>communication_style_id</fieldName>
+ <add>4.4</add>
</index>
<field>
- <name>greeting_type</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <comment>Preferred greeting format.</comment>
- <add>1.1</add>
- <drop>2.2</drop>
- </field>
- <field>
- <name>greeting_type_id</name>
- <title>Greeting Type</title>
- <type>int unsigned</type>
- <comment>FK to civicrm_option_value.id, that has to be valid, registered Greeting type.</comment>
- <add>2.2</add>
- <drop>3.0</drop>
- </field>
- <field>
- <name>custom_greeting</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <comment>Custom greeting message.</comment>
- <add>1.1</add>
- <drop>3.0</drop>
- </field>
- <field>
- <name>email_greeting_id</name>
- <type>int unsigned</type>
- <title>Email Greeting ID</title>
- <comment>FK to civicrm_option_value.id, that has to be valid registered Email Greeting.</comment>
- <add>3.0</add>
- </field>
- <field>
- <name>email_greeting_custom</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <export>false</export>
- <comment>Custom Email Greeting.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>email_greeting_display</name>
- <title>Email Greeting</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Cache Email Greeting.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>postal_greeting_id</name>
- <type>int unsigned</type>
- <title>Postal Greeting ID</title>
- <comment>FK to civicrm_option_value.id, that has to be valid registered Postal Greeting.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>postal_greeting_custom</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <export>false</export>
- <comment>Custom Postal greeting.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>postal_greeting_display</name>
- <title>Postal Greeting</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Cache Postal greeting.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>addressee_id</name>
- <type>int unsigned</type>
- <title>Addressee ID</title>
- <comment>FK to civicrm_option_value.id, that has to be valid registered Addressee.</comment>
- <add>3.0</add>
- </field>
- <field>
- <name>addressee_custom</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <export>false</export>
- <comment>Custom Addressee.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>addressee_display</name>
- <title>Addressee</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Cache Addressee.</comment>
- <add>3.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>job_title</name>
- <type>varchar</type>
- <length>255</length>
- <html>
- <type>Text</type>
- <size>MEDIUM</size>
- </html>
- <import>true</import>
- <headerPattern>/^job|(j(ob\s)?title)$/i</headerPattern>
- <dataPattern>//</dataPattern>
- <comment>Job Title</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>gender_id</name>
- <title>Gender</title>
- <type>int unsigned</type>
- <pseudoconstant>
- <optionGroupName>gender</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <headerPattern>/^gender$/i</headerPattern>
- <comment>FK to gender ID</comment>
- <import>true</import>
- <add>1.2</add>
+ <name>greeting_type</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <comment>Preferred greeting format.</comment>
+ <add>1.1</add>
+ <drop>2.2</drop>
+ </field>
+ <field>
+ <name>greeting_type_id</name>
+ <title>Greeting Type</title>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_option_value.id, that has to be valid, registered Greeting type.</comment>
+ <add>2.2</add>
+ <drop>3.0</drop>
+ </field>
+ <field>
+ <name>custom_greeting</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <comment>Custom greeting message.</comment>
+ <add>1.1</add>
+ <drop>3.0</drop>
+ </field>
+ <field>
+ <name>email_greeting_id</name>
+ <type>int unsigned</type>
+ <title>Email Greeting ID</title>
+ <comment>FK to civicrm_option_value.id, that has to be valid registered Email Greeting.</comment>
+ <add>3.0</add>
+ </field>
+ <field>
+ <name>email_greeting_custom</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <export>false</export>
+ <comment>Custom Email Greeting.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>email_greeting_display</name>
+ <title>Email Greeting</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Cache Email Greeting.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>postal_greeting_id</name>
+ <type>int unsigned</type>
+ <title>Postal Greeting ID</title>
+ <comment>FK to civicrm_option_value.id, that has to be valid registered Postal Greeting.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>postal_greeting_custom</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <export>false</export>
+ <comment>Custom Postal greeting.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>postal_greeting_display</name>
+ <title>Postal Greeting</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Cache Postal greeting.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>addressee_id</name>
+ <type>int unsigned</type>
+ <title>Addressee ID</title>
+ <comment>FK to civicrm_option_value.id, that has to be valid registered Addressee.</comment>
+ <add>3.0</add>
+ </field>
+ <field>
+ <name>addressee_custom</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <export>false</export>
+ <comment>Custom Addressee.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>addressee_display</name>
+ <title>Addressee</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Cache Addressee.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>job_title</name>
+ <type>varchar</type>
+ <length>255</length>
+ <html>
+ <type>Text</type>
+ <size>MEDIUM</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/^job|(j(ob\s)?title)$/i</headerPattern>
+ <dataPattern>//</dataPattern>
+ <comment>Job Title</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>gender_id</name>
+ <title>Gender</title>
+ <type>int unsigned</type>
+ <pseudoconstant>
+ <optionGroupName>gender</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <headerPattern>/^gender$/i</headerPattern>
+ <comment>FK to gender ID</comment>
+ <import>true</import>
+ <add>1.2</add>
</field>
<index>
- <name>UI_gender</name>
- <fieldName>gender_id</fieldName>
- <add>1.6</add>
- <html>
- <type>Select</type>
- </html>
+ <name>UI_gender</name>
+ <fieldName>gender_id</fieldName>
+ <add>1.6</add>
+ <html>
+ <type>Select</type>
+ </html>
</index>
<field>
- <name>birth_date</name>
- <type>date</type>
- <import>true</import>
- <headerPattern>/^birth|(b(irth\s)?date)|D(\W*)O(\W*)B(\W*)$/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Date of birth</comment>
- <add>1.1</add>
- <html>
- <type>Select Date</type>
- </html>
- </field>
- <field>
- <name>is_deceased</name>
- <title>Is Deceased</title>
- <import>true</import>
- <export>true</export>
- <headerPattern>/i(s\s)?d(eceased)$/i</headerPattern>
- <type>boolean</type>
- <default>0</default>
- <add>1.1</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>deceased_date</name>
- <type>date</type>
- <import>true</import>
- <export>true</export>
- <headerPattern>/^deceased|(d(eceased\s)?date)$/i</headerPattern>
- <comment>Date of deceased</comment>
- <add>1.5</add>
- <html>
- <type>Select Date</type>
- </html>
- </field>
- <field>
- <name>mail_to_household_id</name>
- <title>Mail to Household ID</title>
- <type>int unsigned</type>
- <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct mail communications to household rather than individual location.</comment>
- <export>true</export>
- <add>1.1</add>
- <drop>3.3</drop>
+ <name>birth_date</name>
+ <type>date</type>
+ <import>true</import>
+ <headerPattern>/^birth|(b(irth\s)?date)|D(\W*)O(\W*)B(\W*)$/i</headerPattern>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Date of birth</comment>
+ <add>1.1</add>
+ <html>
+ <type>Select Date</type>
+ </html>
+ </field>
+ <field>
+ <name>is_deceased</name>
+ <title>Is Deceased</title>
+ <import>true</import>
+ <export>true</export>
+ <headerPattern>/i(s\s)?d(eceased)$/i</headerPattern>
+ <type>boolean</type>
+ <default>0</default>
+ <add>1.1</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>deceased_date</name>
+ <type>date</type>
+ <import>true</import>
+ <export>true</export>
+ <headerPattern>/^deceased|(d(eceased\s)?date)$/i</headerPattern>
+ <comment>Date of deceased</comment>
+ <add>1.5</add>
+ <html>
+ <type>Select Date</type>
+ </html>
+ </field>
+ <field>
+ <name>mail_to_household_id</name>
+ <title>Mail to Household ID</title>
+ <type>int unsigned</type>
+ <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct mail communications to household rather than individual location. </comment>
+ <export>true</export>
+ <add>1.1</add>
+ <drop>3.3</drop>
</field>
<foreignKey>
- <name>mail_to_household_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.1</add>
- <onDelete>SET NULL</onDelete>
- <drop>3.3</drop>
+ <name>mail_to_household_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.1</add>
+ <onDelete>SET NULL</onDelete>
+ <drop>3.3</drop>
</foreignKey>
<field>
- <name>household_name</name>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
- <import>true</import>
- <headerPattern>/^household|(h(ousehold\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <comment>Household Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>household_name</name>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/^household|(h(ousehold\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <comment>Household Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<index>
- <name>index_household_name</name>
- <fieldName>household_name</fieldName>
- <add>1.8</add>
+ <name>index_household_name</name>
+ <fieldName>household_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>primary_contact_id</name>
- <type>int unsigned</type>
- <title>Household Primary Contact ID</title>
- <comment>Optional FK to Primary Contact for this household.</comment>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>primary_contact_id</name>
+ <type>int unsigned</type>
+ <title>Household Primary Contact ID</title>
+ <comment>Optional FK to Primary Contact for this household.</comment>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>primary_contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>primary_contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>organization_name</name>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
- <import>true</import>
- <headerPattern>/^organization|(o(rganization\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <comment>Organization Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>organization_name</name>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/^organization|(o(rganization\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <comment>Organization Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<index>
- <name>index_organization_name</name>
- <fieldName>organization_name</fieldName>
- <add>1.8</add>
+ <name>index_organization_name</name>
+ <fieldName>organization_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>sic_code</name>
- <type>varchar</type>
- <length>8</length>
- <import>true</import>
- <headerPattern>/^sic|(s(ic\s)?code)$/i</headerPattern>
- <comment>Standard Industry Classification Code.</comment>
- <add>1.1</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>user_unique_id</name>
- <rule>url</rule>
- <title>Unique ID (OpenID)</title>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <headerPattern>/^Open\s?ID|u(niq\w*)?\s?ID/i</headerPattern>
- <dataPattern>/^[\w\/\:\.]+$/</dataPattern>
- <comment>the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM</comment>
- <add>2.0</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>employer_id</name>
- <title>Current Employer ID</title>
- <uniqueName>current_employer_id</uniqueName>
- <type>int unsigned</type>
- <comment>OPTIONAL FK to civicrm_contact record.</comment>
- <export>true</export>
- <add>2.1</add>
- <html>
- <type>Autocomplete-Select</type>
- </html>
+ <name>sic_code</name>
+ <type>varchar</type>
+ <length>8</length>
+ <import>true</import>
+ <headerPattern>/^sic|(s(ic\s)?code)$/i</headerPattern>
+ <comment>Standard Industry Classification Code.</comment>
+ <add>1.1</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>user_unique_id</name>
+ <rule>url</rule>
+ <title>Unique ID (OpenID)</title>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <headerPattern>/^Open\s?ID|u(niq\w*)?\s?ID/i</headerPattern>
+ <dataPattern>/^[\w\/\:\.]+$/</dataPattern>
+ <comment>the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM</comment>
+ <add>2.0</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>employer_id</name>
+ <title>Current Employer ID</title>
+ <uniqueName>current_employer_id</uniqueName>
+ <type>int unsigned</type>
+ <comment>OPTIONAL FK to civicrm_contact record.</comment>
+ <export>true</export>
+ <add>2.1</add>
+ <html>
+ <type>Autocomplete-Select</type>
+ </html>
</field>
<foreignKey>
- <name>employer_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>employer_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
<name>is_deleted</name>
<comment>Provide type information for contacts</comment>
<add>3.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Contact Type ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Contact Type ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Contact Type ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Internal name of Contact Type (or Subtype).</comment>
- <add>3.1</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Internal name of Contact Type (or Subtype).</comment>
+ <add>3.1</add>
</field>
<index>
<name>contact_type</name>
<add>3.1</add>
</index>
<field>
- <name>label</name>
- <type>varchar</type>
- <length>64</length>
- <comment>localized Name of Contact Type.</comment>
- <localizable>true</localizable>
- <add>3.1</add>
+ <name>label</name>
+ <title>Contact Type Label</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>localized Name of Contact Type.</comment>
+ <localizable>true</localizable>
+ <add>3.1</add>
</field>
<field>
- <name>description</name>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>2</rows>
- <cols>60</cols>
- </html>
- <comment>localized Optional verbose description of the type.</comment>
- <localizable>true</localizable>
- <add>3.1</add>
+ <name>description</name>
+ <title>Contact Type Description</title>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>2</rows>
+ <cols>60</cols>
+ </html>
+ <comment>localized Optional verbose description of the type.</comment>
+ <localizable>true</localizable>
+ <add>3.1</add>
</field>
<field>
- <name>image_URL</name>
- <type>varchar</type>
- <length>255</length>
- <comment>URL of image if any.</comment>
- <add>3.1</add>
+ <name>image_URL</name>
+ <title>Contact Type Image URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>URL of image if any.</comment>
+ <add>3.1</add>
</field>
<field>
- <name>parent_id</name>
- <type>int unsigned</type>
- <comment>Optional FK to parent contact type.</comment>
- <add>3.1</add>
+ <name>parent_id</name>
+ <title>Contact Type Parent</title>
+ <type>int unsigned</type>
+ <comment>Optional FK to parent contact type.</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>parent_id</name>
- <table>civicrm_contact_type</table>
- <key>id</key>
- <add>3.1</add>
+ <name>parent_id</name>
+ <table>civicrm_contact_type</table>
+ <key>id</key>
+ <add>3.1</add>
</foreignKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this entry active?</comment>
- <add>3.1</add>
+ <name>is_active</name>
+ <title>Contact Type Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this entry active?</comment>
+ <add>3.1</add>
</field>
<field>
<name>is_reserved</name>
+ <title>Contact Type is Reserved?</title>
<type>boolean</type>
<comment>Is this contact type a predefined system type</comment>
<add>3.1</add>
</field>
- </table>
+</table>
<comment>Table to store dashboard for each contact.</comment>
<add>3.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Dashboard Contact ID</title>
+ <required>true</required>
+ <add>3.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>dashboard_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Dashboard ID</comment>
- <add>3.1</add>
+ <name>dashboard_id</name>
+ <type>int unsigned</type>
+ <title>Dashboard</title>
+ <required>true</required>
+ <comment>Dashboard ID</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>dashboard_id</name>
- <table>civicrm_dashboard</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>3.1</add>
+ <name>dashboard_id</name>
+ <table>civicrm_dashboard</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>3.1</add>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Contact ID</comment>
- <add>3.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <title>Dashboard Contact</title>
+ <required>true</required>
+ <comment>Contact ID</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>3.1</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>3.1</add>
</foreignKey>
<field>
- <name>column_no</name>
- <type>boolean</type>
- <comment>column no for this widget</comment>
- <default>0</default>
- <add>3.1</add>
+ <name>column_no</name>
+ <type>boolean</type>
+ <comment>column no for this widget</comment>
+ <default>0</default>
+ <add>3.1</add>
</field>
<field>
- <name>is_minimized</name>
- <type>boolean</type>
- <comment>Is Minimized?</comment>
- <default>0</default>
- <add>3.1</add>
+ <name>is_minimized</name>
+ <type>boolean</type>
+ <title>Dashlet is Minimized?</title>
+ <comment>Is Minimized?</comment>
+ <default>0</default>
+ <add>3.1</add>
</field>
<field>
- <name>is_fullscreen</name>
- <type>boolean</type>
- <comment>Is Fullscreen?</comment>
- <default>1</default>
- <add>3.1</add>
+ <name>is_fullscreen</name>
+ <type>boolean</type>
+ <title>Dashlet is FullScreen?</title>
+ <comment>Is Fullscreen?</comment>
+ <default>1</default>
+ <add>3.1</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this widget active?</comment>
- <default>0</default>
- <add>3.1</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <title>Dashlet is Active?</title>
+ <comment>Is this widget active?</comment>
+ <default>0</default>
+ <add>3.1</add>
</field>
<field>
<name>weight</name>
<add>3.1</add>
</field>
<field>
- <name>content</name>
- <type>longtext</type>
- <comment>dashlet content</comment>
- <add>3.3</add>
+ <name>content</name>
+ <type>longtext</type>
+ <comment>dashlet content</comment>
+ <add>3.3</add>
</field>
<field>
- <name>created_date</name>
- <type>datetime</type>
- <comment>When was content populated</comment>
- <add>3.3</add>
+ <name>created_date</name>
+ <type>datetime</type>
+ <title>Dashlet Created On</title>
+ <comment>When was content populated</comment>
+ <add>3.3</add>
</field>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Group ID</title>
- <required>true</required>
- <comment>Group ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Group ID</title>
+ <required>true</required>
+ <comment>Group ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <title>Group Name</title>
- <length>64</length>
- <comment>Internal name of Group.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>title</name>
- <type>varchar</type>
- <title>Group Title</title>
- <length>64</length>
- <localizable>true</localizable>
- <comment>Name of Group.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>description</name>
- <type>text</type>
- <title>Group Description</title>
- <html>
- <type>TextArea</type>
- <rows>2</rows>
- <cols>60</cols>
- </html>
- <comment>Optional verbose description of the group.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>source</name>
- <type>varchar</type>
- <title>Group Source</title>
- <length>64</length>
- <comment>Module or process which created this group.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>saved_search_id</name>
- <type>int unsigned</type>
- <title>Saved Search ID</title>
- <comment>FK to saved search table.</comment>
- <add>1.1</add>
+ <name>name</name>
+ <type>varchar</type>
+ <title>Group Name</title>
+ <length>64</length>
+ <comment>Internal name of Group.</comment>
+ <add>1.1</add>
</field>
- <foreignKey>
- <name>saved_search_id</name>
- <table>civicrm_saved_search</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>SET NULL</onDelete>
- </foreignKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <title>Group Enabled</title>
- <comment>Is this entry active?</comment>
- <add>1.1</add>
+ <name>title</name>
+ <type>varchar</type>
+ <title>Group Title</title>
+ <length>64</length>
+ <localizable>true</localizable>
+ <comment>Name of Group.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>visibility</name>
- <type>varchar</type>
- <length>24</length>
- <title>Group Visibility Setting</title>
- <default>'User and User Admin Only'</default>
- <comment>In what context(s) is this field visible.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::groupVisibility</callback>
- </pseudoconstant>
- <add>1.2</add>
- <html>
- <type>Select</type>
- </html>
+ <name>description</name>
+ <type>text</type>
+ <title>Group Description</title>
+ <html>
+ <type>TextArea</type>
+ <rows>2</rows>
+ <cols>60</cols>
+ </html>
+ <comment>Optional verbose description of the group.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>source</name>
+ <type>varchar</type>
+ <title>Group Source</title>
+ <length>64</length>
+ <comment>Module or process which created this group.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>saved_search_id</name>
+ <type>int unsigned</type>
+ <title>Saved Search ID</title>
+ <comment>FK to saved search table.</comment>
+ <add>1.1</add>
</field>
+ <foreignKey>
+ <name>saved_search_id</name>
+ <table>civicrm_saved_search</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>SET NULL</onDelete>
+ </foreignKey>
<field>
- <name>where_clause</name>
- <type>text</type>
- <title>Group Where Clause</title>
- <comment>the sql where clause if a saved search acl</comment>
- <add>1.6</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <title>Group Enabled</title>
+ <comment>Is this entry active?</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>visibility</name>
+ <type>varchar</type>
+ <length>24</length>
+ <title>Group Visibility Setting</title>
+ <default>'User and User Admin Only'</default>
+ <comment>In what context(s) is this field visible.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::groupVisibility</callback>
+ </pseudoconstant>
+ <add>1.2</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>where_clause</name>
+ <type>text</type>
+ <title>Group Where Clause</title>
+ <comment>the sql where clause if a saved search acl</comment>
+ <add>1.6</add>
</field>
<field>
- <name>select_tables</name>
- <type>text</type>
- <title>Tables For Select Clause</title>
- <comment>the tables to be included in a select data</comment>
- <add>1.6</add>
+ <name>select_tables</name>
+ <type>text</type>
+ <title>Tables For Select Clause</title>
+ <comment>the tables to be included in a select data</comment>
+ <add>1.6</add>
</field>
<field>
- <name>where_tables</name>
- <type>text</type>
- <title>Tables For Where Clause</title>
- <comment>the tables to be included in the count statement</comment>
- <add>1.6</add>
+ <name>where_tables</name>
+ <type>text</type>
+ <title>Tables For Where Clause</title>
+ <comment>the tables to be included in the count statement</comment>
+ <add>1.6</add>
</field>
<field>
- <name>group_type</name>
- <type>varchar</type>
- <title>Group Type</title>
- <length>128</length>
- <comment>FK to group type</comment>
- <add>1.9</add>
+ <name>group_type</name>
+ <type>varchar</type>
+ <title>Group Type</title>
+ <length>128</length>
+ <comment>FK to group type</comment>
+ <add>1.9</add>
</field>
<field>
- <name>cache_date</name>
- <type>datetime</type>
- <title>Group Cache Date</title>
- <comment>Date when we created the cache for a smart group</comment>
- <add>2.1</add>
+ <name>cache_date</name>
+ <type>datetime</type>
+ <title>Group Cache Date</title>
+ <comment>Date when we created the cache for a smart group</comment>
+ <add>2.1</add>
</field>
<field>
- <name>refresh_date</name>
- <type>datetime</type>
- <title>Next Group Refresh Time</title>
- <comment>Date and time when we need to refresh the cache next.</comment>
- <add>4.3</add>
+ <name>refresh_date</name>
+ <type>datetime</type>
+ <title>Next Group Refresh Time</title>
+ <comment>Date and time when we need to refresh the cache next.</comment>
+ <add>4.3</add>
</field>
<field>
<name>parents</name>
<add>2.1</add>
</index>
<field>
- <name>created_id</name>
- <type>int unsigned</type>
- <title>Group Created By</title>
- <comment>FK to contact table.</comment>
- <add>4.3</add>
+ <name>created_id</name>
+ <type>int unsigned</type>
+ <title>Group Created By</title>
+ <comment>FK to contact table.</comment>
+ <add>4.3</add>
</field>
<foreignKey>
- <name>created_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>4.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>created_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>4.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>modified_id</name>
- <type>int unsigned</type>
- <title>Group Modified By</title>
- <comment>FK to contact table.</comment>
- <add>4.5</add>
+ <name>modified_id</name>
+ <type>int unsigned</type>
+ <title>Group Modified By</title>
+ <comment>FK to contact table.</comment>
+ <add>4.5</add>
</field>
<foreignKey>
- <name>modified_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>4.5</add>
- <onDelete>SET NULL</onDelete>
+ <name>modified_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>4.5</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
</table>
<base>CRM/Contact</base>
<class>GroupContact</class>
<name>civicrm_group_contact</name>
- <comment>Join table sets membership for 'static' groups. Also used to store 'opt-out' entries for 'query' type groups (status = 'OUT')</comment>
+ <comment>Join table sets membership for 'static' groups. Also used to store 'opt-out' entries for 'query' type groups (status = 'OUT') </comment>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Group Contact ID</title>
- <required>true</required>
- <comment>primary key</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Group Contact ID</title>
+ <required>true</required>
+ <comment>primary key</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
<name>group_id</name>
</html>
</field>
<foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <title>Contact ID</title>
- <required>true</required>
- <comment>FK to civicrm_contact</comment>
- <add>1.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <title>Contact ID</title>
+ <required>true</required>
+ <comment>FK to civicrm_contact</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>status</name>
- <type>varchar</type>
- <length>8</length>
- <title>Group Contact Status</title>
- <comment>status of contact relative to membership in group</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::groupContactStatus</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>status</name>
+ <type>varchar</type>
+ <length>8</length>
+ <title>Group Contact Status</title>
+ <comment>status of contact relative to membership in group</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::groupContactStatus</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>location_id</name>
- <type>int unsigned</type>
- <title>Group Contact Location</title>
- <comment>Optional location to associate with this membership</comment>
- <add>1.1</add>
+ <name>location_id</name>
+ <type>int unsigned</type>
+ <title>Group Contact Location</title>
+ <comment>Optional location to associate with this membership</comment>
+ <add>1.1</add>
</field>
<foreignKey>
<name>location_id</name>
<onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>email_id</name>
- <type>int unsigned</type>
- <title>Group Contact Email</title>
- <comment>Optional email to associate with this membership</comment>
- <add>1.1</add>
+ <name>email_id</name>
+ <type>int unsigned</type>
+ <title>Group Contact Email</title>
+ <comment>Optional email to associate with this membership</comment>
+ <add>1.1</add>
</field>
<foreignKey>
<name>email_id</name>
<comment>Join table cache for 'static' groups.</comment>
<add>2.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>primary key</comment>
- <add>2.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>primary key</comment>
+ <add>2.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
<name>group_id</name>
</html>
</field>
<foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>2.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>2.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_contact</comment>
- <add>2.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_contact</comment>
+ <add>2.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<index>
<name>UI_contact_group</name>
<log>true</log>
<field>
<name>id</name>
+ <title>Group Nesting ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Relationship ID</comment>
</primaryKey>
<field>
<name>child_group_id</name>
+ <title>Child Group</title>
<type>int unsigned</type>
<required>true</required>
<comment>ID of the child group</comment>
</foreignKey>
<field>
<name>parent_group_id</name>
+ <title>Parent Group</title>
<type>int unsigned</type>
<required>true</required>
<comment>ID of the parent group</comment>
<log>true</log>
<field>
<name>id</name>
+ <title>Group Organization ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Relationship ID</comment>
</primaryKey>
<field>
<name>group_id</name>
+ <title>Group</title>
<type>int unsigned</type>
<required>true</required>
<comment>ID of the group</comment>
</foreignKey>
<field>
<name>organization_id</name>
+ <title>Organization</title>
<type>int unsigned</type>
<required>true</required>
<comment>ID of the Organization Contact</comment>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Household ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Household ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact ID</comment>
- <add>1.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact ID</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<field>
- <name>household_name</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <headerPattern>/^household|(h(ousehold\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <comment>Household Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>household_name</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <headerPattern>/^household|(h(ousehold\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <comment>Household Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<index>
- <name>index_household_name</name>
- <fieldName>household_name</fieldName>
- <add>1.8</add>
+ <name>index_household_name</name>
+ <fieldName>household_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>primary_contact_id</name>
- <type>int unsigned</type>
- <comment>Optional FK to Primary Contact for this household.</comment>
- <add>1.1</add>
+ <name>primary_contact_id</name>
+ <type>int unsigned</type>
+ <comment>Optional FK to Primary Contact for this household.</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>primary_contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
+ <name>primary_contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<index>
<name>UI_contact</name>
<log>true</log>
<add>1.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Individual ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Individual ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact ID</comment>
- <add>1.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact ID</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<field>
- <name>first_name</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/^first|(f(irst\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <fulltext/>
- <comment>First Name.</comment>
- <add>1.1</add>
+ <name>first_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/^first|(f(irst\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <fulltext/>
+ <comment>First Name.</comment>
+ <add>1.1</add>
</field>
<index>
- <name>index_first_name</name>
- <fieldName>first_name</fieldName>
- <add>1.8</add>
+ <name>index_first_name</name>
+ <fieldName>first_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>middle_name</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/^middle|(m(iddle\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <fulltext/>
- <comment>Middle Name.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>last_name</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/^(l(ast\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+(\s\w+)?+$/</dataPattern>
- <comment>Last Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>middle_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/^middle|(m(iddle\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <fulltext/>
+ <comment>Middle Name.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>last_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/^(l(ast\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+(\s\w+)?+$/</dataPattern>
+ <comment>Last Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<index>
- <name>index_last_name</name>
- <fieldName>last_name</fieldName>
- <add>1.8</add>
+ <name>index_last_name</name>
+ <fieldName>last_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>gender</name>
- <type>enum</type>
- <import>true</import>
- <values>Female, Male, Transgender</values>
- <add>1.1</add>
- <drop>1.2</drop>
+ <name>gender</name>
+ <type>enum</type>
+ <import>true</import>
+ <values>Female, Male, Transgender</values>
+ <add>1.1</add>
+ <drop>1.2</drop>
</field>
<field>
- <name>prefix_id</name>
- <type>int unsigned</type>
- <comment>Prefix or Title for name (Ms, Mr...). FK to prefix ID</comment>
- <headerPattern>/^(prefix|title)/i</headerPattern>
- <dataPattern>/^(mr|ms|mrs|sir|dr)\.?$/i</dataPattern>
- <add>1.2</add>
+ <name>prefix_id</name>
+ <type>int unsigned</type>
+ <comment>Prefix or Title for name (Ms, Mr...). FK to prefix ID</comment>
+ <headerPattern>/^(prefix|title)/i</headerPattern>
+ <dataPattern>/^(mr|ms|mrs|sir|dr)\.?$/i</dataPattern>
+ <add>1.2</add>
</field>
<index>
- <name>UI_prefix</name>
- <fieldName>prefix_id</fieldName>
- <add>1.6</add>
+ <name>UI_prefix</name>
+ <fieldName>prefix_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>suffix_id</name>
- <type>int unsigned</type>
- <comment>Suffix for name (Jr, Sr...). FK to suffix ID</comment>
- <headerPattern>/^suffix$/i</headerPattern>
- <dataPattern>/^(sr|jr)\.?|i{2,}$/</dataPattern>
- <add>1.2</add>
+ <name>suffix_id</name>
+ <type>int unsigned</type>
+ <comment>Suffix for name (Jr, Sr...). FK to suffix ID</comment>
+ <headerPattern>/^suffix$/i</headerPattern>
+ <dataPattern>/^(sr|jr)\.?|i{2,}$/</dataPattern>
+ <add>1.2</add>
</field>
<index>
- <name>UI_suffix</name>
- <fieldName>suffix_id</fieldName>
- <add>1.6</add>
+ <name>UI_suffix</name>
+ <fieldName>suffix_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>prefix</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <comment>Prefix to Name.</comment>
- <add>1.1</add>
- <drop>1.2</drop>
+ <name>prefix</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <comment>Prefix to Name.</comment>
+ <add>1.1</add>
+ <drop>1.2</drop>
</field>
<field>
- <name>suffix</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <comment>Suffix to Name.</comment>
- <add>1.1</add>
- <drop>1.2</drop>
+ <name>suffix</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <comment>Suffix to Name.</comment>
+ <add>1.1</add>
+ <drop>1.2</drop>
</field>
<field>
- <name>greeting_type</name>
- <type>varchar</type>
- <length>128</length>
- <comment>Preferred greeting format.</comment>
- <add>1.1</add>
- <drop>2.2</drop>
+ <name>greeting_type</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Preferred greeting format.</comment>
+ <add>1.1</add>
+ <drop>2.2</drop>
</field>
<field>
- <name>greeting_type_id</name>
- <title>Greeting Type</title>
- <type>int unsigned</type>
- <comment>FK to civicrm_option_value.id, that has to be valid, registered Greeting type.</comment>
- <add>2.2</add>
+ <name>greeting_type_id</name>
+ <title>Greeting Type</title>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_option_value.id, that has to be valid, registered Greeting type.</comment>
+ <add>2.2</add>
</field>
<field>
- <name>custom_greeting</name>
- <type>varchar</type>
- <length>128</length>
- <comment>Custom greeting message.</comment>
- <add>1.1</add>
+ <name>custom_greeting</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Custom greeting message.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>job_title</name>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/^job|(j(ob\s)?title)$/i</headerPattern>
- <dataPattern>//</dataPattern>
- <comment>Job Title</comment>
- <add>1.1</add>
+ <name>job_title</name>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/^job|(j(ob\s)?title)$/i</headerPattern>
+ <dataPattern>//</dataPattern>
+ <comment>Job Title</comment>
+ <add>1.1</add>
</field>
<field>
- <name>gender_id</name>
- <type>int unsigned</type>
- <headerPattern>/^gender$/i</headerPattern>
- <comment>FK to gender ID</comment>
- <add>1.2</add>
+ <name>gender_id</name>
+ <type>int unsigned</type>
+ <headerPattern>/^gender$/i</headerPattern>
+ <comment>FK to gender ID</comment>
+ <add>1.2</add>
</field>
<index>
- <name>UI_gender</name>
- <fieldName>gender_id</fieldName>
- <add>1.6</add>
+ <name>UI_gender</name>
+ <fieldName>gender_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>birth_date</name>
- <type>date</type>
- <import>true</import>
- <headerPattern>/^birth|(b(irth\s)?date)|D(\W*)O(\W*)B(\W*)$/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Date of birth</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>is_deceased</name>
- <title>Is Deceased</title>
- <import>true</import>
- <export>true</export>
- <headerPattern>/i(s\s)?d(eceased)$/i</headerPattern>
- <type>boolean</type>
- <default>0</default>
- <add>1.1</add>
- </field>
- <field>
- <name>deceased_date</name>
- <type>date</type>
- <import>true</import>
- <export>true</export>
- <headerPattern>/^deceased|(d(eceased\s)?date)$/i</headerPattern>
- <comment>Date of deceased</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>phone_to_household_id</name>
- <type>int unsigned</type>
- <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct phone communications to household rather than individual location.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>email_to_household_id</name>
- <type>int unsigned</type>
- <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct phone communications to household rather than individual location.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>mail_to_household_id</name>
- <type>int unsigned</type>
- <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct mail communications to household rather than individual location.</comment>
- <add>1.1</add>
+ <name>birth_date</name>
+ <type>date</type>
+ <import>true</import>
+ <headerPattern>/^birth|(b(irth\s)?date)|D(\W*)O(\W*)B(\W*)$/i</headerPattern>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Date of birth</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>is_deceased</name>
+ <title>Is Deceased</title>
+ <import>true</import>
+ <export>true</export>
+ <headerPattern>/i(s\s)?d(eceased)$/i</headerPattern>
+ <type>boolean</type>
+ <default>0</default>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>deceased_date</name>
+ <type>date</type>
+ <import>true</import>
+ <export>true</export>
+ <headerPattern>/^deceased|(d(eceased\s)?date)$/i</headerPattern>
+ <comment>Date of deceased</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>phone_to_household_id</name>
+ <type>int unsigned</type>
+ <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct phone communications to household
+ rather than individual location.
+ </comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>email_to_household_id</name>
+ <type>int unsigned</type>
+ <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct phone communications to household
+ rather than individual location.
+ </comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>mail_to_household_id</name>
+ <type>int unsigned</type>
+ <comment>OPTIONAL FK to civicrm_contact_household record. If NOT NULL, direct mail communications to household
+ rather than individual location.
+ </comment>
+ <add>1.1</add>
</field>
<index>
<name>UI_contact</name>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Organization ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Organization ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact ID</comment>
- <add>1.1</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact ID</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<field>
- <name>organization_name</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <headerPattern>/^organization|(o(rganization\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <comment>Organization Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>organization_name</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <headerPattern>/^organization|(o(rganization\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <comment>Organization Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<index>
- <name>index_organization_name</name>
- <fieldName>organization_name</fieldName>
- <add>1.8</add>
+ <name>index_organization_name</name>
+ <fieldName>organization_name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>legal_name</name>
- <type>varchar</type>
- <length>128</length>
- <import>true</import>
- <headerPattern>/^legal|(l(egal\s)?name)$/i</headerPattern>
- <comment>Legal Name.</comment>
- <fulltext/>
- <add>1.1</add>
+ <name>legal_name</name>
+ <type>varchar</type>
+ <length>128</length>
+ <import>true</import>
+ <headerPattern>/^legal|(l(egal\s)?name)$/i</headerPattern>
+ <comment>Legal Name.</comment>
+ <fulltext/>
+ <add>1.1</add>
</field>
<field>
- <name>sic_code</name>
- <type>varchar</type>
- <length>8</length>
- <import>true</import>
- <headerPattern>/^sic|(s(ic\s)?code)$/i</headerPattern>
- <comment>Standard Industry Classification Code.</comment>
- <add>1.1</add>
+ <name>sic_code</name>
+ <type>varchar</type>
+ <length>8</length>
+ <import>true</import>
+ <headerPattern>/^sic|(s(ic\s)?code)$/i</headerPattern>
+ <comment>Standard Industry Classification Code.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>primary_contact_id</name>
- <type>int unsigned</type>
- <comment>Optional FK to Primary Contact for this organization.</comment>
- <add>1.1</add>
+ <name>primary_contact_id</name>
+ <type>int unsigned</type>
+ <comment>Optional FK to Primary Contact for this organization.</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>primary_contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
+ <name>primary_contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<index>
<name>UI_contact</name>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Relationship ID</title>
- <required>true</required>
- <comment>Relationship ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Relationship ID</title>
+ <required>true</required>
+ <comment>Relationship ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id_a</name>
- <type>int unsigned</type>
- <title>Contact A</title>
- <required>true</required>
- <comment>id of the first contact</comment>
- <add>1.1</add>
+ <name>contact_id_a</name>
+ <type>int unsigned</type>
+ <title>Contact A</title>
+ <required>true</required>
+ <comment>id of the first contact</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id_a</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id_a</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contact_id_b</name>
- <type>int unsigned</type>
- <title>Contact B</title>
- <required>true</required>
- <comment>id of the second contact</comment>
- <add>1.1</add>
+ <name>contact_id_b</name>
+ <type>int unsigned</type>
+ <title>Contact B</title>
+ <required>true</required>
+ <comment>id of the second contact</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id_b</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id_b</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>relationship_type_id</name>
- <type>int unsigned</type>
- <title>Relationship Type</title>
- <required>true</required>
- <comment>id of the relationship</comment>
- <add>1.1</add>
+ <name>relationship_type_id</name>
+ <type>int unsigned</type>
+ <title>Relationship Type</title>
+ <required>true</required>
+ <comment>id of the relationship</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>relationship_type_id</name>
- <table>civicrm_relationship_type</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>relationship_type_id</name>
+ <table>civicrm_relationship_type</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>start_date</name>
- <type>date</type>
- <title>Relationship Start Date</title>
- <comment>date when the relationship started</comment>
- <add>1.1</add>
+ <name>start_date</name>
+ <type>date</type>
+ <title>Relationship Start Date</title>
+ <comment>date when the relationship started</comment>
+ <add>1.1</add>
</field>
<field>
- <name>end_date</name>
- <type>date</type>
- <title>Relationship End Date</title>
- <comment>date when the relationship ended</comment>
- <add>1.1</add>
+ <name>end_date</name>
+ <type>date</type>
+ <title>Relationship End Date</title>
+ <comment>date when the relationship ended</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <title>Relationship Is Active</title>
- <default>1</default>
- <comment>is the relationship active ?</comment>
- <add>1.1</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <title>Relationship Is Active</title>
+ <default>1</default>
+ <comment>is the relationship active ?</comment>
+ <add>1.1</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <title>Relationship Description</title>
- <length>255</length>
- <comment>Optional verbose description for the relationship.</comment>
- <add>1.5</add>
+ <name>description</name>
+ <type>varchar</type>
+ <title>Relationship Description</title>
+ <length>255</length>
+ <comment>Optional verbose description for the relationship.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_permission_a_b</name>
- <type>boolean</type>
- <title>Contact A has Permission Over Contact B</title>
- <default>0</default>
- <comment>is contact a has permission to view / edit contact and
- related data for contact b ?</comment>
- <add>2.1</add>
+ <name>is_permission_a_b</name>
+ <type>boolean</type>
+ <title>Contact A has Permission Over Contact B</title>
+ <default>0</default>
+ <comment>is contact a has permission to view / edit contact and
+ related data for contact b ?
+ </comment>
+ <add>2.1</add>
</field>
<field>
- <name>is_permission_b_a</name>
- <type>boolean</type>
- <title>Contact B has Permission Over Contact A</title>
- <default>0</default>
- <comment>is contact b has permission to view / edit contact and
- related data for contact a ?</comment>
- <add>2.1</add>
+ <name>is_permission_b_a</name>
+ <type>boolean</type>
+ <title>Contact B has Permission Over Contact A</title>
+ <default>0</default>
+ <comment>is contact b has permission to view / edit contact and
+ related data for contact a ?
+ </comment>
+ <add>2.1</add>
</field>
<field>
- <name>case_id</name>
- <type>int unsigned</type>
- <title>Relationship Case</title>
- <default>NULL</default>
- <comment>FK to civicrm_case</comment>
- <add>2.2</add>
+ <name>case_id</name>
+ <type>int unsigned</type>
+ <title>Relationship Case</title>
+ <default>NULL</default>
+ <comment>FK to civicrm_case</comment>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>case_id</name>
- <table>civicrm_case</table>
- <key>id</key>
- <add>2.2</add>
- <onDelete>CASCADE</onDelete>
+ <name>case_id</name>
+ <table>civicrm_case</table>
+ <key>id</key>
+ <add>2.2</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Relationship Type ID</title>
- <required>true</required>
- <comment>Primary key</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Relationship Type ID</title>
+ <required>true</required>
+ <comment>Primary key</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name_a_b</name>
- <type>varchar</type>
- <title>Relationship Type Name A to B</title>
- <length>64</length>
- <comment>name for relationship of contact_a to contact_b.</comment>
- <add>1.1</add>
+ <name>name_a_b</name>
+ <type>varchar</type>
+ <title>Relationship Type Name A to B</title>
+ <length>64</length>
+ <comment>name for relationship of contact_a to contact_b.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>label_a_b</name>
- <type>varchar</type>
- <title>Relationship Type Label A to B</title>
- <length>64</length>
- <comment>label for relationship of contact_a to contact_b.</comment>
- <add>3.0</add>
+ <name>label_a_b</name>
+ <type>varchar</type>
+ <title>Relationship Type Label A to B</title>
+ <length>64</length>
+ <comment>label for relationship of contact_a to contact_b.</comment>
+ <add>3.0</add>
</field>
<field>
- <name>name_b_a</name>
- <type>varchar</type>
- <title>Relationship Type Name B to A</title>
- <length>64</length>
- <comment>Optional name for relationship of contact_b to contact_a.</comment>
- <add>1.1</add>
+ <name>name_b_a</name>
+ <type>varchar</type>
+ <title>Relationship Type Name B to A</title>
+ <length>64</length>
+ <comment>Optional name for relationship of contact_b to contact_a.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>label_b_a</name>
- <type>varchar</type>
- <title>Relationship Type Label B to A</title>
- <length>64</length>
- <comment>Optional label for relationship of contact_b to contact_a.</comment>
- <add>3.0</add>
+ <name>label_b_a</name>
+ <type>varchar</type>
+ <title>Relationship Type Label B to A</title>
+ <length>64</length>
+ <comment>Optional label for relationship of contact_b to contact_a.</comment>
+ <add>3.0</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <title>Relationship Description</title>
- <length>255</length>
- <comment>Optional verbose description of the relationship type.</comment>
- <add>1.1</add>
+ <name>description</name>
+ <type>varchar</type>
+ <title>Relationship Description</title>
+ <length>255</length>
+ <comment>Optional verbose description of the relationship type.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>contact_type_a</name>
- <title>Contact Type for Contact A</title>
- <type>varchar</type>
- <length>12</length>
- <comment>If defined, contact_a in a relationship of this type must be a specific contact_type.</comment>
- <pseudoconstant>
- <callback>CRM_Contact_BAO_ContactType::getSelectElements</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>contact_type_a</name>
+ <title>Contact Type for Contact A</title>
+ <type>varchar</type>
+ <length>12</length>
+ <comment>If defined, contact_a in a relationship of this type must be a specific contact_type.</comment>
+ <pseudoconstant>
+ <callback>CRM_Contact_BAO_ContactType::getSelectElements</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>contact_type_b</name>
- <title>Contact Type for Contact B</title>
- <type>varchar</type>
- <length>12</length>
- <comment>If defined, contact_b in a relationship of this type must be a specific contact_type.</comment>
- <pseudoconstant>
- <callback>CRM_Contact_BAO_ContactType::getSelectElements</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>contact_type_b</name>
+ <title>Contact Type for Contact B</title>
+ <type>varchar</type>
+ <length>12</length>
+ <comment>If defined, contact_b in a relationship of this type must be a specific contact_type.</comment>
+ <pseudoconstant>
+ <callback>CRM_Contact_BAO_ContactType::getSelectElements</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>contact_sub_type_a</name>
- <title>Contact Subtype A</title>
- <type>varchar</type>
- <length>64</length>
- <comment>If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.</comment>
- <add>3.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>contact_sub_type_a</name>
+ <title>Contact Subtype A</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.
+ </comment>
+ <add>3.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>contact_sub_type_b</name>
- <title>Contact Subtype B</title>
- <type>varchar</type>
- <length>64</length>
- <comment>If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.</comment>
- <add>3.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>contact_sub_type_b</name>
+ <title>Contact Subtype B</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.
+ </comment>
+ <add>3.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>is_reserved</name>
- <type>boolean</type>
- <title>Relationship Type is Reserved</title>
- <comment>Is this relationship type a predefined system type (can not be changed or de-activated)?</comment>
- <add>1.1</add>
+ <name>is_reserved</name>
+ <type>boolean</type>
+ <title>Relationship Type is Reserved</title>
+ <comment>Is this relationship type a predefined system type (can not be changed or de-activated)?</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_active</name>
- <title>Relationship Type is Active</title>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this relationship type currently active (i.e. can be used when creating or editing relationships)?</comment>
- <add>1.1</add>
+ <name>is_active</name>
+ <title>Relationship Type is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this relationship type currently active (i.e. can be used when creating or editing relationships)?
+ </comment>
+ <add>1.1</add>
</field>
<index>
<name>UI_name_a_b</name>
<comment>Users can save their complex SQL queries and use them later.</comment>
<add>1.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Saved search ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Saved search ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>false</autoincrement>
+ <name>id</name>
+ <autoincrement>false</autoincrement>
</primaryKey>
<field>
- <name>query</name>
- <title>SQL Query</title>
- <type>text</type>
- <import>true</import>
- <comment>SQL query for this search</comment>
- <add>1.1</add>
- <drop>1.5</drop>
+ <name>query</name>
+ <title>SQL Query</title>
+ <type>text</type>
+ <import>true</import>
+ <comment>SQL query for this search</comment>
+ <add>1.1</add>
+ <drop>1.5</drop>
</field>
<field>
- <name>form_values</name>
- <title>Submitted Form Values</title>
- <type>text</type>
- <import>true</import>
- <comment>Submitted form values for this search</comment>
- <add>1.1</add>
+ <name>form_values</name>
+ <title>Submitted Form Values</title>
+ <type>text</type>
+ <import>true</import>
+ <comment>Submitted form values for this search</comment>
+ <add>1.1</add>
</field>
-<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this entry active?</comment>
- <add>1.1</add>
- <drop>1.5</drop>
+ <field>
+ <name>is_active</name>
+ <type>boolean</type>
+ <comment>Is this entry active?</comment>
+ <add>1.1</add>
+ <drop>1.5</drop>
</field>
<field>
- <name>mapping_id</name>
- <type>int unsigned</type>
- <comment>Foreign key to civicrm_mapping used for saved search-builder searches.</comment>
- <add>1.5</add>
+ <name>mapping_id</name>
+ <type>int unsigned</type>
+ <comment>Foreign key to civicrm_mapping used for saved search-builder searches.</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>mapping_id</name>
- <table>civicrm_mapping</table>
- <key>id</key>
- <add>1.5</add>
+ <name>mapping_id</name>
+ <table>civicrm_mapping</table>
+ <key>id</key>
+ <add>1.5</add>
</foreignKey>
<field>
- <name>search_custom_id</name>
- <type>int unsigned</type>
- <comment>Foreign key to civicrm_option value table used for saved custom searches.</comment>
- <add>2.0</add>
+ <name>search_custom_id</name>
+ <type>int unsigned</type>
+ <comment>Foreign key to civicrm_option value table used for saved custom searches.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>where_clause</name>
- <type>text</type>
- <comment>the sql where clause if a saved search acl</comment>
- <add>1.6</add>
+ <name>where_clause</name>
+ <type>text</type>
+ <comment>the sql where clause if a saved search acl</comment>
+ <add>1.6</add>
</field>
<field>
- <name>select_tables</name>
- <type>text</type>
- <comment>the tables to be included in a select data</comment>
- <add>1.6</add>
+ <name>select_tables</name>
+ <type>text</type>
+ <comment>the tables to be included in a select data</comment>
+ <add>1.6</add>
</field>
<field>
- <name>where_tables</name>
- <type>text</type>
- <comment>the tables to be included in the count statement</comment>
- <add>1.6</add>
+ <name>where_tables</name>
+ <type>text</type>
+ <comment>the tables to be included in the count statement</comment>
+ <add>1.6</add>
</field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Contact</base>
- <class>SubscriptionHistory</class>
- <name>civicrm_subscription_history</name>
- <comment>History information of subscribe/unsubscribe actions</comment>
+ <base>CRM/Contact</base>
+ <class>SubscriptionHistory</class>
+ <name>civicrm_subscription_history</name>
+ <comment>History information of subscribe/unsubscribe actions</comment>
+ <add>1.1</add>
+ <log>true</log>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Internal Id</comment>
<add>1.1</add>
- <log>true</log>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Internal Id</comment>
- <add>1.1</add>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Contact Id</comment>
- <add>1.1</add>
- </field>
- <foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>group_id</name>
- <type>int unsigned</type>
- <comment>Group Id</comment>
- <add>1.1</add>
- <pseudoconstant>
- <table>civicrm_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>date</name>
- <type>datetime</type>
- <required>true</required>
- <comment>Date of the (un)subscription</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>method</name>
- <type>varchar</type>
- <length>8</length>
- <comment>How the (un)subscription was triggered</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getSubscriptionHistoryMethods</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>status</name>
- <type>varchar</type>
- <length>8</length>
- <comment>The state of the contact within the group</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::groupContactStatus</callback>
- </pseudoconstant>
- <add>1.1</add>
- </field>
- <field>
- <name>tracking</name>
- <type>varchar</type>
- <length>255</length>
- <comment>IP address or other tracking info</comment>
- <add>1.1</add>
- </field>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Contact Id</comment>
+ <add>1.1</add>
+ </field>
+ <foreignKey>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>group_id</name>
+ <type>int unsigned</type>
+ <comment>Group Id</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <table>civicrm_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <foreignKey>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>date</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>Date of the (un)subscription</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>method</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>How the (un)subscription was triggered</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getSubscriptionHistoryMethods</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>status</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>The state of the contact within the group</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::groupContactStatus</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>tracking</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>IP address or other tracking info</comment>
+ <add>1.1</add>
+ </field>
</table>
<comment>unique invoice id, system generated or passed in</comment>
<html>
<type>Text</type>
- </html>
+ </html>
<add>1.3</add>
</field>
<field>
<html>
<type>Text</type>
</html>
- <add>1.3</add>
+ <add>1.3</add>
</field>
<field>
<name>receipt_date</name>
<html>
<type>Select Date</type>
</html>
- <add>1.3</add>
+ <add>1.3</add>
</field>
<field>
<name>thankyou_date</name>
</index>
<field>
<name>contribution_recur_id</name>
+ <title>Recurring Contribution ID</title>
<type>int unsigned</type>
<comment>Conditional foreign key to civicrm_contribution_recur id. Each contribution made in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.</comment>
<add>1.4</add>
</index>
<field>
<name>address_id</name>
+ <title>Contribution Address</title>
<type>int unsigned</type>
<comment>Conditional foreign key to civicrm_address.id. We insert an address record for each contribution when we have associated billing name and address data.</comment>
<add>2.2</add>
<log>true</log>
<field>
<name>id</name>
+ <title>Contribution Page ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Contribution Id</comment>
</field>
<field>
<name>is_credit_card_only</name>
+ <title>Is Credit Card Only?</title>
<type>boolean</type>
<comment>if true - processing logic must reject transaction at confirmation stage if pay method != credit card</comment>
<default>0</default>
</field>
<field>
<name>is_monetary</name>
+ <title>Is Monetary</title>
<type>boolean</type>
<default>1</default>
<comment>if true - allows real-time monetary transactions otherwise non-monetary transactions</comment>
</field>
<field>
<name>is_recur</name>
+ <title>Is Recurring</title>
<type>boolean</type>
<default>0</default>
<comment>if true - allows recurring contributions, valid only for PayPal_Standard</comment>
</field>
<field>
<name>is_confirm_enabled</name>
+ <title>Confirmation Page?</title>
<type>boolean</type>
<default>1</default>
<comment>if false, the confirm page in contribution pages gets skipped</comment>
</field>
<field>
<name>recur_frequency_unit</name>
+ <title>Recurring Frequency</title>
<type>varchar</type>
<length>128</length>
<comment>Supported recurring frequency units.</comment>
</field>
<field>
<name>is_recur_interval</name>
+ <title>Support Recurring Intervals</title>
<type>boolean</type>
<default>0</default>
<comment>if true - supports recurring intervals</comment>
</field>
<field>
<name>is_recur_installments</name>
+ <title>Recurring Installments?</title>
<type>boolean</type>
<default>0</default>
<comment>if true - asks user for recurring installments</comment>
</field>
<field>
<name>is_pay_later</name>
+ <title>Pay Later</title>
<type>boolean</type>
<default>0</default>
<comment>if true - allows the user to send payment directly to the org later</comment>
</field>
<field>
<name>pay_later_text</name>
+ <title>Pay Later Text</title>
<type>text</type>
<localizable>true</localizable>
<comment>The text displayed to the user in the main form</comment>
</field>
<field>
<name>pay_later_receipt</name>
+ <title>Pay Later Receipt</title>
<type>text</type>
<localizable>true</localizable>
<comment>The receipt sent to the user instead of the normal receipt text</comment>
</field>
<field>
<name>is_partial_payment</name>
+ <title>Allow Partial Payment</title>
<type>boolean</type>
<default>0</default>
<comment>is partial payment enabled for this online contribution page</comment>
</field>
<field>
<name>is_allow_other_amount</name>
+ <title>Allow Other Amounts</title>
<type>boolean</type>
<comment>if true, page will include an input text field where user can enter their own amount</comment>
<default>0</default>
</field>
<field>
<name>default_amount_id</name>
+ <title>Default Amount</title>
<type>int unsigned</type>
<comment>FK to civicrm_option_value.</comment>
<add>1.7</add>
</field>
<field>
<name>min_amount</name>
+ <title>Minimum Amount</title>
<type>decimal</type>
<comment>if other amounts allowed, user can configure minimum allowed.</comment>
<add>1.3</add>
</field>
<field>
<name>max_amount</name>
+ <title>Maximum Amount</title>
<type>decimal</type>
<comment>if other amounts allowed, user can configure maximum allowed.</comment>
<add>1.3</add>
</field>
<field>
<name>is_for_organization</name>
+ <title>Allow For Organization</title>
<type>boolean</type>
<comment>if true, signup is done on behalf of an organization</comment>
<default>0</default>
</field>
<field>
<name>is_email_receipt</name>
+ <title>Send email Receipt</title>
<type>boolean</type>
<comment>if true, receipt is automatically emailed to contact on success</comment>
<default>0</default>
</field>
<field>
<name>receipt_from_name</name>
+ <title>Receipt From</title>
<type>varchar</type>
<length>255</length>
<localizable>true</localizable>
</field>
<field>
<name>receipt_from_email</name>
+ <title>Receipt From email</title>
<type>varchar</type>
<length>255</length>
<comment>FROM email address used for receipts generated by contributions to this contribution page.</comment>
</field>
<field>
<name>cc_receipt</name>
+ <title>Receipt cc</title>
<type>varchar</type>
<length>255</length>
<comment>comma-separated list of email addresses to cc each time a receipt is sent</comment>
</field>
<field>
<name>bcc_receipt</name>
+ <title>Receipt bcc</title>
<type>varchar</type>
<length>255</length>
<comment>comma-separated list of email addresses to bcc each time a receipt is sent</comment>
</field>
<field>
<name>receipt_text</name>
+ <title>Receipt Text</title>
<type>text</type>
<html>
<type>TextArea</type>
</field>
<field>
<name>is_active</name>
+ <title>Is Page Active?</title>
<type>boolean</type>
<comment>Is this property active?</comment>
<add>1.3</add>
</field>
<field>
<name>footer_text</name>
+ <title>Footer Text</title>
<type>text</type>
<html>
<type>TextArea</type>
</field>
<field>
<name>amount_block_is_active</name>
+ <title>Is Amount Block Active?</title>
<type>boolean</type>
<comment>Is this property active?</comment>
<default>1</default>
</field>
<field>
<name>start_date</name>
+ <title>Contribution Page Start Date</title>
<type>datetime</type>
<title>Contribution Page Start Date</title>
<comment>Date and time that this page starts.</comment>
<add>2.2</add>
<log>true</log>
<field>
- <name>id</name>
- <uniqueName>contribution_soft_id</uniqueName>
- <type>int unsigned</type>
- <required>true</required>
- <import>true</import>
- <title>Soft Contribution ID</title>
- <comment>Soft Contribution ID</comment>
- <add>2.2</add>
+ <name>id</name>
+ <uniqueName>contribution_soft_id</uniqueName>
+ <title>Soft Contribution ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <import>true</import>
+ <title>Soft Contribution ID</title>
+ <comment>Soft Contribution ID</comment>
+ <add>2.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contribution_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to contribution table.</comment>
- <add>2.2</add>
+ <name>contribution_id</name>
+ <title>Soft Contribution - Contribution</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to contribution table.</comment>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>contribution_id</name>
- <table>civicrm_contribution</table>
- <key>id</key>
- <add>2.2</add>
- <onDelete>CASCADE</onDelete>
+ <name>contribution_id</name>
+ <table>civicrm_contribution</table>
+ <key>id</key>
+ <add>2.2</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contact_id</name>
- <uniqueName>contribution_soft_contact_id</uniqueName>
- <title>Contact ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <import>true</import>
- <headerPattern>/contact(.?id)?/i</headerPattern>
- <dataPattern>/^\d+$/</dataPattern>
- <comment>FK to Contact ID</comment>
- <add>2.2</add>
+ <name>contact_id</name>
+ <uniqueName>contribution_soft_contact_id</uniqueName>
+ <title>Contact ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <import>true</import>
+ <headerPattern>/contact(.?id)?/i</headerPattern>
+ <dataPattern>/^\d+$/</dataPattern>
+ <comment>FK to Contact ID</comment>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.2</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.2</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>amount</name>
- <type>decimal</type>
- <required>true</required>
- <import>true</import>
- <headerPattern>/total(.?am(ou)?nt)?/i</headerPattern>
- <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
- <comment>Amount of this soft contribution.</comment>
- <add>2.2</add>
+ <name>amount</name>
+ <title>Soft Contribution Amount</title>
+ <type>decimal</type>
+ <required>true</required>
+ <import>true</import>
+ <headerPattern>/total(.?am(ou)?nt)?/i</headerPattern>
+ <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
+ <comment>Amount of this soft contribution.</comment>
+ <add>2.2</add>
</field>
<field>
- <name>currency</name>
- <type>varchar</type>
- <length>3</length>
- <default>NULL</default>
- <comment>3 character string, value from config setting or input via user.</comment>
- <add>3.2</add>
- <pseudoconstant>
- <table>civicrm_currency</table>
- <keyColumn>name</keyColumn>
- <labelColumn>full_name</labelColumn>
- <nameColumn>numeric_code</nameColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>currency</name>
+ <type>varchar</type>
+ <title>Soft Contribution Currency</title>
+ <length>3</length>
+ <default>NULL</default>
+ <comment>3 character string, value from config setting or input via user.</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <table>civicrm_currency</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>full_name</labelColumn>
+ <nameColumn>numeric_code</nameColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>pcp_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to civicrm_pcp.id</comment>
- <add>2.2</add>
+ <name>pcp_id</name>
+ <type>int unsigned</type>
+ <title>Soft Contribution PCP</title>
+ <default>NULL</default>
+ <comment>FK to civicrm_pcp.id</comment>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>pcp_id</name>
- <table>civicrm_pcp</table>
- <key>id</key>
- <add>3.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>pcp_id</name>
+ <table>civicrm_pcp</table>
+ <key>id</key>
+ <add>3.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<index>
- <name>index_id</name>
- <fieldName>pcp_id</fieldName>
- <add>2.2</add>
- </index>
- <field>
- <name>pcp_display_in_roll</name>
- <type>boolean</type>
- <default>0</default>
- <add>2.2</add>
+ <name>index_id</name>
+ <fieldName>pcp_id</fieldName>
+ <add>2.2</add>
+ </index>
+ <field>
+ <name>pcp_display_in_roll</name>
+ <type>boolean</type>
+ <title>Soft Contribution Display on PCP</title>
+ <default>0</default>
+ <add>2.2</add>
</field>
<field>
- <name>pcp_roll_nickname</name>
- <type>varchar</type>
- <length>255</length>
- <default>NULL</default>
- <add>2.2</add>
+ <name>pcp_roll_nickname</name>
+ <type>varchar</type>
+ <title>Soft Contribution PCP Nickname</title>
+ <length>255</length>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
<field>
- <name>pcp_personal_note</name>
- <type>varchar</type>
- <length>255</length>
- <default>NULL</default>
- <add>2.2</add>
+ <name>pcp_personal_note</name>
+ <type>varchar</type>
+ <title>Soft Contribution PCP Note</title>
+ <length>255</length>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
<field>
- <name>soft_credit_type_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <title>Soft Credit Type</title>
- <pseudoconstant>
- <optionGroupName>soft_credit_type</optionGroupName>
- </pseudoconstant>
- <comment>Soft Credit Type ID.Implicit FK to civicrm_option_value where option_group = soft_credit_type.</comment>
- <add>2.2</add>
+ <name>soft_credit_type_id</name>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <title>Soft Credit Type</title>
+ <pseudoconstant>
+ <optionGroupName>soft_credit_type</optionGroupName>
+ </pseudoconstant>
+ <comment>Soft Credit Type ID.Implicit FK to civicrm_option_value where option_group = soft_credit_type.</comment>
+ <add>2.2</add>
</field>
</table>
<add>1.4</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>1.4</add>
+ <name>id</name>
+ <title>Premium ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>1.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Joins these premium settings to another object. Always civicrm_contribution_page for now.</comment>
- <add>1.4</add>
+ <name>entity_table</name>
+ <title>Premium Entity</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Joins these premium settings to another object. Always civicrm_contribution_page for now.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>1.4</add>
+ <name>entity_id</name>
+ <title>Premium entity ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>1.4</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.4</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.4</add>
</dynamicForeignKey>
<field>
- <name>premiums_active </name>
- <type>boolean</type>
- <default>0</default>
- <required>true</required>
- <comment>Is the Premiums feature enabled for this page?</comment>
- <add>1.4</add>
+ <name>premiums_active </name>
+ <title>Is Premium Active?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <required>true</required>
+ <comment>Is the Premiums feature enabled for this page?</comment>
+ <add>1.4</add>
</field>
<field>
- <name>premiums_intro_title</name>
- <type>varchar</type>
- <title>Title for Premiums section</title>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Title for Premiums section.</comment>
- <add>1.4</add>
+ <name>premiums_intro_title</name>
+ <type>varchar</type>
+ <title>Title for Premiums section</title>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Title for Premiums section.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>premiums_intro_text</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Displayed in <div> at top of Premiums section of page. Text and HTML allowed.</comment>
- <add>1.4</add>
+ <name>premiums_intro_text</name>
+ <title>Premium Introductory Text</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Displayed in <div> at top of Premiums section of page. Text and HTML allowed.</comment>
+ <add>1.4</add>
</field>
- <field>
- <name>premiums_contact_email</name>
- <type>varchar</type>
- <length>100</length>
- <comment>This email address is included in receipts if it is populated and a premium has been selected.</comment>
- <add>1.4</add>
+ <field>
+ <name>premiums_contact_email</name>
+ <title>Premium Contact Email</title>
+ <type>varchar</type>
+ <length>100</length>
+ <comment>This email address is included in receipts if it is populated and a premium has been selected.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>premiums_contact_phone</name>
- <title>Premiums Contact Phone</title>
- <type>varchar</type>
- <length>50</length>
- <comment>This phone number is included in receipts if it is populated and a premium has been selected.</comment>
- <add>1.4</add>
+ <name>premiums_contact_phone</name>
+ <title>Premiums Contact Phone</title>
+ <type>varchar</type>
+ <length>50</length>
+ <comment>This phone number is included in receipts if it is populated and a premium has been selected.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>premiums_display_min_contribution</name>
- <type>boolean</type>
- <required>true</required>
- <comment>Boolean. Should we automatically display minimum contribution amount text after the premium descriptions.</comment>
- <add>1.4</add>
+ <name>premiums_display_min_contribution</name>
+ <title>Display Minimum Contribution?</title>
+ <type>boolean</type>
+ <required>true</required>
+ <comment>Boolean. Should we automatically display minimum contribution amount text after the premium descriptions.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>premiums_nothankyou_label</name>
- <title>No Thank-you Text</title>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Label displayed for No Thank-you option in premiums block (e.g. No thank you)</comment>
- <add>4.3</add>
+ <name>premiums_nothankyou_label</name>
+ <title>No Thank-you Text</title>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Label displayed for No Thank-you option in premiums block (e.g. No thank you)</comment>
+ <add>4.3</add>
</field>
<field>
- <name>premiums_nothankyou_position</name>
- <title>No Thank-you Position</title>
- <type>int unsigned</type>
- <default>1</default>
- <add>4.3</add>
+ <name>premiums_nothankyou_position</name>
+ <title>No Thank-you Position</title>
+ <type>int unsigned</type>
+ <default>1</default>
+ <add>4.3</add>
</field>
</table>
<add>1.4</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>1.4</add>
+ <name>id</name>
+ <title>Product ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>1.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <uniqueName>product_name</uniqueName>
- <title>Product Name</title>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <export>true</export>
- <localizable>true</localizable>
- <comment>Required product/premium name</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>description</name>
- <title>Description</title>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Optional description of the product/premium.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>sku</name>
- <title>SKU</title>
- <type>varchar</type>
- <length>50</length>
- <export>true</export>
- <comment>Optional product sku or code.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>options</name>
- <title>Options</title>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Store comma-delimited list of color, size, etc. options for the product.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>image</name>
- <title>Image</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Full or relative URL to uploaded image - fullsize.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>thumbnail</name>
- <title>Thumbnail</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Full or relative URL to image thumbnail.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>price</name>
- <title>Price</title>
- <type>decimal</type>
- <comment>Sell price or market value for premiums. For tax-deductible contributions, this will be stored as non_deductible_amount in the contribution record.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>currency</name>
- <type>varchar</type>
- <length>3</length>
- <default>NULL</default>
- <comment>3 character string, value from config setting or input via user.</comment>
- <add>3.2</add>
- <pseudoconstant>
- <table>civicrm_currency</table>
- <keyColumn>name</keyColumn>
- <labelColumn>full_name</labelColumn>
- <nameColumn>numeric_code</nameColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>financial_type_id</name>
- <title>Financial Type</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <pseudoconstant>
- <table>civicrm_financial_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>FK to Financial Type.</comment>
- <add>4.3</add>
+ <name>name</name>
+ <uniqueName>product_name</uniqueName>
+ <title>Product Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <export>true</export>
+ <localizable>true</localizable>
+ <comment>Required product/premium name</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>description</name>
+ <title>Description</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Optional description of the product/premium.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>sku</name>
+ <title>SKU</title>
+ <type>varchar</type>
+ <length>50</length>
+ <export>true</export>
+ <comment>Optional product sku or code.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>options</name>
+ <title>Options</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Store comma-delimited list of color, size, etc. options for the product.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>image</name>
+ <title>Image</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Full or relative URL to uploaded image - fullsize.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>thumbnail</name>
+ <title>Thumbnail</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Full or relative URL to image thumbnail.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>price</name>
+ <title>Price</title>
+ <type>decimal</type>
+ <comment>Sell price or market value for premiums. For tax-deductible contributions, this will be stored as non_deductible_amount in the contribution record.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>currency</name>
+ <type>varchar</type>
+ <length>3</length>
+ <default>NULL</default>
+ <comment>3 character string, value from config setting or input via user.</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <table>civicrm_currency</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>full_name</labelColumn>
+ <nameColumn>numeric_code</nameColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>financial_type_id</name>
+ <title>Financial Type</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <pseudoconstant>
+ <table>civicrm_financial_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>FK to Financial Type.</comment>
+ <add>4.3</add>
</field>
<foreignKey>
- <name>financial_type_id</name>
- <table>civicrm_financial_type</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
- <add>4.3</add>
+ <name>financial_type_id</name>
+ <table>civicrm_financial_type</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
+ <add>4.3</add>
</foreignKey>
<field>
- <name>min_contribution</name>
- <title>Minimum Contribution</title>
- <type>decimal</type>
- <comment>Minimum contribution required to be eligible to select this premium.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>cost</name>
- <title>Cost</title>
- <type>decimal</type>
- <comment>Actual cost of this product. Useful to determine net return from sale or using this as an incentive.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>is_active</name>
- <title>Is Active</title>
- <type>boolean</type>
- <required>true</required>
- <comment>Disabling premium removes it from the premiums_premium join table below.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>period_type</name>
- <title>Period Type</title>
- <type>varchar</type>
- <length>8</length>
- <default>'rolling'</default>
- <comment>Rolling means we set start/end based on current day, fixed means we set start/end for current year or month
-(e.g. 1 year + fixed -> we would set start/end for 1/1/06 thru 12/31/06 for any premium chosen in 2006) </comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::periodType</callback>
- </pseudoconstant>
- <add>1.4</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>fixed_period_start_day</name>
- <title>Fixed Period Start Day</title>
- <type>int</type>
- <default>0101</default>
- <comment>Month and day (MMDD) that fixed period type subscription or membership starts.</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>duration_unit</name>
- <title>Duration Unit</title>
- <type>varchar</type>
- <length>8</length>
- <default>'year'</default>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getPremiumUnits</callback>
- </pseudoconstant>
- <add>1.4</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>duration_interval</name>
- <title>Duration Interval</title>
- <type>int</type>
- <comment>Number of units for total duration of subscription, service, membership (e.g. 12 Months).</comment>
- <add>1.4</add>
- </field>
- <field>
- <name>frequency_unit</name>
- <title>Frequency Unit</title>
- <type>varchar</type>
- <length>8</length>
- <default>'month'</default>
- <comment>Frequency unit and interval allow option to store actual delivery frequency for a subscription or service.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getPremiumUnits</callback>
- </pseudoconstant>
- <add>1.4</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>frequency_interval</name>
- <title>Frequency Interval</title>
- <type>int</type>
- <comment>Number of units for delivery frequency of subscription, service, membership (e.g. every 3 Months).</comment>
- <add>1.4</add>
+ <name>min_contribution</name>
+ <title>Minimum Contribution</title>
+ <type>decimal</type>
+ <comment>Minimum contribution required to be eligible to select this premium.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>cost</name>
+ <title>Cost</title>
+ <type>decimal</type>
+ <comment>Actual cost of this product. Useful to determine net return from sale or using this as an incentive.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>is_active</name>
+ <title>Is Active</title>
+ <type>boolean</type>
+ <required>true</required>
+ <comment>Disabling premium removes it from the premiums_premium join table below.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>period_type</name>
+ <title>Period Type</title>
+ <type>varchar</type>
+ <length>8</length>
+ <default>'rolling'</default>
+ <comment>Rolling means we set start/end based on current day, fixed means we set start/end for current year or month
+ (e.g. 1 year + fixed -> we would set start/end for 1/1/06 thru 12/31/06 for any premium chosen in 2006) </comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::periodType</callback>
+ </pseudoconstant>
+ <add>1.4</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>fixed_period_start_day</name>
+ <title>Fixed Period Start Day</title>
+ <type>int</type>
+ <default>0101</default>
+ <comment>Month and day (MMDD) that fixed period type subscription or membership starts.</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>duration_unit</name>
+ <title>Duration Unit</title>
+ <type>varchar</type>
+ <length>8</length>
+ <default>'year'</default>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getPremiumUnits</callback>
+ </pseudoconstant>
+ <add>1.4</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>duration_interval</name>
+ <title>Duration Interval</title>
+ <type>int</type>
+ <comment>Number of units for total duration of subscription, service, membership (e.g. 12 Months).</comment>
+ <add>1.4</add>
+ </field>
+ <field>
+ <name>frequency_unit</name>
+ <title>Frequency Unit</title>
+ <type>varchar</type>
+ <length>8</length>
+ <default>'month'</default>
+ <comment>Frequency unit and interval allow option to store actual delivery frequency for a subscription or service.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getPremiumUnits</callback>
+ </pseudoconstant>
+ <add>1.4</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>frequency_interval</name>
+ <title>Frequency Interval</title>
+ <type>int</type>
+ <comment>Number of units for delivery frequency of subscription, service, membership (e.g. every 3 Months).</comment>
+ <add>1.4</add>
</field>
</table>
<add>2.0</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Contribution Id</comment>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Contribution Id</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contribution_page_id</name>
- <type>int unsigned</type>
- <comment>The Contribution Page which triggered this contribution</comment>
- <add>1.5</add>
+ <name>contribution_page_id</name>
+ <type>int unsigned</type>
+ <comment>The Contribution Page which triggered this contribution</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>contribution_page_id</name>
- <table>civicrm_contribution_page</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>contribution_page_id</name>
+ <table>civicrm_contribution_page</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
- <add>2.0</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <comment>Is this property active?</comment>
+ <add>2.0</add>
</field>
<field>
- <name>title</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Widget title.</comment>
- <add>2.0</add>
+ <name>title</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Widget title.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>url_logo</name>
- <type>varchar</type>
- <length>255</length>
- <comment>URL to Widget logo</comment>
- <add>2.0</add>
+ <name>url_logo</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>URL to Widget logo</comment>
+ <add>2.0</add>
</field>
<field>
- <name>button_title</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Button title.</comment>
- <add>2.0</add>
+ <name>button_title</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Button title.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>about</name>
- <type>text</type>
- <comment>About description.</comment>
- <add>2.0</add>
+ <name>about</name>
+ <type>text</type>
+ <comment>About description.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>url_homepage</name>
- <type>varchar</type>
- <length>255</length>
- <comment>URL to Homepage.</comment>
- <add>2.0</add>
+ <name>url_homepage</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>URL to Homepage.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>color_title</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_title</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_button</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_button</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_bar</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_bar</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_main_text</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_main_text</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_main</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_main</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_main_bg</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_main_bg</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_bg</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_bg</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_about_link</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_about_link</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
<field>
- <name>color_homepage_link</name>
- <type>varchar</type>
- <length>10</length>
- <add>2.0</add>
+ <name>color_homepage_link</name>
+ <type>varchar</type>
+ <length>10</length>
+ <add>2.0</add>
</field>
</table>
<comment>Table to store log for the reminder.</comment>
<add>3.4</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.4</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>3.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>3.4</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.4</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.4</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to id of the entity that the action was performed on. Pseudo - FK.</comment>
- <add>3.4</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to id of the entity that the action was performed on. Pseudo - FK.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>255</length>
- <comment>name of the entity table for the above id, e.g. civicrm_activity, civicrm_participant</comment>
- <add>3.4</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>name of the entity table for the above id, e.g. civicrm_activity, civicrm_participant</comment>
+ <add>3.4</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>3.4</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>3.4</add>
</dynamicForeignKey>
<field>
- <name>action_schedule_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to the action schedule that this action originated from.</comment>
- <add>3.4</add>
+ <name>action_schedule_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to the action schedule that this action originated from.</comment>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>action_schedule_id</name>
- <table>civicrm_action_schedule</table>
- <key>id</key>
- <add>3.4</add>
- <onDelete>CASCADE</onDelete>
+ <name>action_schedule_id</name>
+ <table>civicrm_action_schedule</table>
+ <key>id</key>
+ <add>3.4</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>action_date_time</name>
- <type>datetime</type>
- <comment>date time that the action was performed on.</comment>
- <add>3.4</add>
+ <name>action_date_time</name>
+ <type>datetime</type>
+ <comment>date time that the action was performed on.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>is_error</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Was there any error sending the reminder?</comment>
- <add>3.4</add>
+ <name>is_error</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Was there any error sending the reminder?</comment>
+ <add>3.4</add>
</field>
<field>
- <name>message</name>
- <type>text</type>
- <comment>Description / text in case there was an error encountered.</comment>
- <add>3.4</add>
+ <name>message</name>
+ <type>text</type>
+ <comment>Description / text in case there was an error encountered.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>repetition_number</name>
- <type>int unsigned</type>
- <comment>Keeps track of the sequence number of this repetition.</comment>
- <add>3.4</add>
+ <name>repetition_number</name>
+ <type>int unsigned</type>
+ <comment>Keeps track of the sequence number of this repetition.</comment>
+ <add>3.4</add>
</field>
</table>
<comment>Table to store mapping for the reminder.</comment>
<add>3.4</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.4</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>3.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity for which the reminder is created</comment>
- <add>3.4</add>
+ <name>entity</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity for which the reminder is created</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_value</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity value</comment>
- <add>3.4</add>
+ <name>entity_value</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity value</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_value_label</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity value label</comment>
- <add>3.4</add>
+ <name>entity_value_label</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity value label</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_status</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity status</comment>
- <add>3.4</add>
+ <name>entity_status</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity status</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_status_label</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity status label</comment>
- <add>3.4</add>
+ <name>entity_status_label</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity status label</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_date_start</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity date</comment>
- <add>3.4</add>
+ <name>entity_date_start</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity date</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_date_end</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity date</comment>
- <add>3.4</add>
+ <name>entity_date_end</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity date</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_recipient</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity recipient</comment>
- <add>3.4</add>
+ <name>entity_recipient</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity recipient</comment>
+ <add>3.4</add>
</field>
</table>
<comment>Table to store the reminders.</comment>
<add>3.4</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.4</add>
+ <name>id</name>
+ <title>Action Schedule ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>3.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Name</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Name of the action(reminder)</comment>
- <add>3.4</add>
+ <name>name</name>
+ <title>Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Name of the action(reminder)</comment>
+ <add>3.4</add>
</field>
<field>
- <name>title</name>
- <title>Title</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Title of the action(reminder)</comment>
- <add>3.4</add>
- </field>
+ <name>title</name>
+ <title>Title</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Title of the action(reminder)</comment>
+ <add>3.4</add>
+ </field>
<field>
- <name>recipient</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Recipient</comment>
- <add>3.4</add>
+ <name>recipient</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Recipient</comment>
+ <add>3.4</add>
</field>
<field>
- <name>limit_to</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this the recipient criteria limited to OR in addition to?</comment>
- <add>4.4</add>
+ <name>limit_to</name>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this the recipient criteria limited to OR in addition to?</comment>
+ <add>4.4</add>
</field>
<field>
- <name>entity_value</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity value</comment>
- <add>3.4</add>
+ <name>entity_value</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity value</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_status</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity status</comment>
- <add>3.4</add>
+ <name>entity_status</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity status</comment>
+ <add>3.4</add>
+ </field>
+ <field>
+ <name>start_action_offset</name>
+ <type>int unsigned</type>
+ <comment>Reminder Interval.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>start_action_offset</name>
- <type>int unsigned</type>
- <comment>Reminder Interval.</comment>
- <add>3.4</add>
- </field>
+ <name>start_action_unit</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Time units for reminder.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getScheduleReminderFrequencyUnits</callback>
+ </pseudoconstant>
+ <add>3.4</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
<field>
- <name>start_action_unit</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Time units for reminder.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getScheduleReminderFrequencyUnits</callback>
- </pseudoconstant>
- <add>3.4</add>
- <html>
- <type>Select</type>
- </html>
+ <name>start_action_condition</name>
+ <type>varchar</type>
+ <length>32</length>
+ <comment>Reminder Action</comment>
+ <add>3.4</add>
</field>
- <field>
- <name>start_action_condition</name>
- <type>varchar</type>
- <length>32</length>
- <comment>Reminder Action</comment>
- <add>3.4</add>
+ <field>
+ <name>start_action_date</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity date</comment>
+ <add>3.4</add>
</field>
<field>
- <name>start_action_date</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity date</comment>
- <add>3.4</add>
+ <name>is_repeat</name>
+ <title>Repeat?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <add>3.4</add>
</field>
<field>
- <name>is_repeat</name>
- <title>Repeat?</title>
- <type>boolean</type>
- <default>0</default>
- <add>3.4</add>
- </field>
+ <name>repetition_frequency_unit</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Time units for repetition of reminder.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getScheduleReminderFrequencyUnits</callback>
+ </pseudoconstant>
+ <add>3.4</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
<field>
- <name>repetition_frequency_unit</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Time units for repetition of reminder.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getScheduleReminderFrequencyUnits</callback>
- </pseudoconstant>
- <add>3.4</add>
- <html>
- <type>Select</type>
- </html>
+ <name>repetition_frequency_interval</name>
+ <type>int unsigned</type>
+ <comment>Time interval for repeating the reminder.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>repetition_frequency_interval</name>
- <type>int unsigned</type>
- <comment>Time interval for repeating the reminder.</comment>
- <add>3.4</add>
+ <name>end_frequency_unit</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Time units till repetition of reminder.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getScheduleReminderFrequencyUnits</callback>
+ </pseudoconstant>
+ <add>3.4</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>end_frequency_unit</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Time units till repetition of reminder.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getScheduleReminderFrequencyUnits</callback>
- </pseudoconstant>
- <add>3.4</add>
- <html>
- <type>Select</type>
- </html>
+ <name>end_frequency_interval</name>
+ <type>int unsigned</type>
+ <comment>Time interval till repeating the reminder.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>end_frequency_interval</name>
- <type>int unsigned</type>
- <comment>Time interval till repeating the reminder.</comment>
- <add>3.4</add>
+ <name>end_action</name>
+ <type>varchar</type>
+ <length>32</length>
+ <comment>Reminder Action till repeating the reminder.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>end_action</name>
- <type>varchar</type>
- <length>32</length>
- <comment>Reminder Action till repeating the reminder.</comment>
- <add>3.4</add>
+ <name>end_date</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Entity end date</comment>
+ <add>3.4</add>
</field>
<field>
- <name>end_date</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Entity end date</comment>
- <add>3.4</add>
+ <name>is_active</name>
+ <title>Schedule is Active?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this option active?</comment>
+ <add>3.4</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this option active?</comment>
- <add>3.4</add>
+ <name>recipient_manual</name>
+ <title>Recipient Manual</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Contact IDs to which reminder should be sent.</comment>
+ <add>3.4</add>
</field>
- <field>
- <name>recipient_manual</name>
- <title>Recipient Manual</title>
- <type>varchar</type>
- <length>128</length>
- <comment>Contact IDs to which reminder should be sent.</comment>
- <add>3.4</add>
- </field>
- <field>
- <name>recipient_listing</name>
- <title>Recipient Listing</title>
- <type>varchar</type>
- <length>128</length>
- <comment>listing based on recipient field.</comment>
- <add>4.1</add>
+ <field>
+ <name>recipient_listing</name>
+ <title>Recipient Listing</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>listing based on recipient field.</comment>
+ <add>4.1</add>
</field>
<field>
- <name>body_text</name>
- <type>longtext</type>
- <comment>Body of the mailing in text format.</comment>
- <add>3.4</add>
+ <name>body_text</name>
+ <title>Reminder Text</title>
+ <type>longtext</type>
+ <comment>Body of the mailing in text format.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>body_html</name>
- <type>longtext</type>
- <comment>Body of the mailing in html format.</comment>
- <add>3.4</add>
+ <name>body_html</name>
+ <title>Reminder HTML</title>
+ <type>longtext</type>
+ <comment>Body of the mailing in html format.</comment>
+ <add>3.4</add>
</field>
- <field>
- <name>subject</name>
- <type>varchar</type>
- <length>128</length>
- <comment>Subject of mailing</comment>
- <add>3.4</add>
+ <field>
+ <name>subject</name>
+ <title>Reminder Subject</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Subject of mailing</comment>
+ <add>3.4</add>
</field>
- <field>
- <name>record_activity</name>
- <type>boolean</type>
- <default>NULL</default>
- <comment>Record Activity for this reminder?</comment>
- <add>3.4</add>
+ <field>
+ <name>record_activity</name>
+ <title>Record Activity for Reminder?</title>
+ <type>boolean</type>
+ <default>NULL</default>
+ <comment>Record Activity for this reminder?</comment>
+ <add>3.4</add>
</field>
- <field>
- <name>mapping_id</name>
- <type>int unsigned</type>
- <comment>FK to mapping which is being used by this reminder</comment>
- <add>3.4</add>
+ <field>
+ <name>mapping_id</name>
+ <title>Reminder Mapping</title>
+ <type>int unsigned</type>
+ <comment>FK to mapping which is being used by this reminder</comment>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>mapping_id</name>
- <table>civicrm_action_mapping</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>mapping_id</name>
+ <table>civicrm_action_mapping</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
<name>group_id</name>
+ <title>Reminder Group</title>
<type>int unsigned</type>
<comment>FK to Group</comment>
<pseudoconstant>
</html>
<add>3.4</add>
</field>
- <foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
- </foreignKey>
- <field>
- <name>msg_template_id</name>
+ <foreignKey>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
+ </foreignKey>
+ <field>
+ <name>msg_template_id</name>
+ <title>Reminder Template</title>
<type>int unsigned</type>
<comment>FK to the message template.</comment>
- </field>
- <foreignKey>
- <name>msg_template_id</name>
+ </field>
+ <foreignKey>
+ <name>msg_template_id</name>
<table>civicrm_msg_template</table>
<key>id</key>
<onDelete>SET NULL</onDelete>
- </foreignKey>
- <field>
- <name>absolute_date</name>
- <type>date</type>
- <comment>Date on which the reminder be sent.</comment>
- <add>4.1</add>
+ </foreignKey>
+ <field>
+ <name>absolute_date</name>
+ <title>Fixed Date for Reminder</title>
+ <type>date</type>
+ <comment>Date on which the reminder be sent.</comment>
+ <add>4.1</add>
</field>
<field>
<name>from_name</name>
+ <title>Reminder from Name</title>
<type>varchar</type>
<length>255</length>
<comment>Name in "from" field</comment>
</field>
<field>
<name>from_email</name>
+ <title>Reminder From Email</title>
<type>varchar</type>
<length>255</length>
<comment>Email address in "from" field</comment>
</field>
<field>
<name>sms_provider_id</name>
+ <title>SMS Provider</title>
<type>int unsigned</type>
<add>4.5</add>
<html>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Address ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Address ID</title>
+ <required>true</required>
+ <comment>Unique Address ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>2.0</add>
+ <name>contact_id</name>
+ <title>Contact ID</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>location_type_id</name>
- <title>Address Location Type</title>
- <type>int unsigned</type>
- <comment>Which Location does this address belong to.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <table>civicrm_location_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>display_name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>location_type_id</name>
+ <title>Address Location Type</title>
+ <type>int unsigned</type>
+ <comment>Which Location does this address belong to.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <table>civicrm_location_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>display_name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
<name>index_location_type</name>
<add>2.0</add>
</index>
<field>
- <name>is_primary</name>
- <title>Is Address Primary?</title>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the primary address.</comment>
- <add>2.0</add>
+ <name>is_primary</name>
+ <title>Is Address Primary?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the primary address.</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_is_primary</name>
<add>2.0</add>
</index>
<field>
- <name>is_billing</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the billing address.</comment>
- <add>2.0</add>
+ <name>is_billing</name>
+ <title>Is Billing Address</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the billing address.</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_is_billing</name>
<add>2.0</add>
</index>
<field>
- <name>street_address</name>
- <title>Street Address</title>
- <type>varchar</type>
- <length>96</length>
- <import>true</import>
- <headerPattern>/(street|address)/i</headerPattern>
- <dataPattern>/^(\d{1,5}( [0-9A-Za-z]+)+)$|^(P\.?O\.\? Box \d{1,5})$/i</dataPattern>
- <comment>Concatenation of all routable street address components (prefix, street number, street name, suffix, unit number OR P.O. Box). Apps should be able to determine physical location with this data (for mapping, mail delivery, etc.).</comment>
- <add>1.1</add>
+ <name>street_address</name>
+ <title>Street Address</title>
+ <type>varchar</type>
+ <length>96</length>
+ <import>true</import>
+ <headerPattern>/(street|address)/i</headerPattern>
+ <dataPattern>/^(\d{1,5}( [0-9A-Za-z]+)+)$|^(P\.?O\.\? Box \d{1,5})$/i</dataPattern>
+ <comment>Concatenation of all routable street address components (prefix, street number, street name, suffix, unit
+ number OR P.O. Box). Apps should be able to determine physical location with this data (for mapping, mail
+ delivery, etc.).
+ </comment>
+ <add>1.1</add>
</field>
<field>
- <name>street_number</name>
- <type>int</type>
- <export>true</export>
- <comment>Numeric portion of address number on the street, e.g. For 112A Main St, the street_number = 112.</comment>
- <add>1.1</add>
+ <name>street_number</name>
+ <title>Street Number</title>
+ <type>int</type>
+ <export>true</export>
+ <comment>Numeric portion of address number on the street, e.g. For 112A Main St, the street_number = 112.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>street_number_suffix</name>
- <type>varchar</type>
- <length>8</length>
- <export>true</export>
- <comment>Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A</comment>
- <add>1.1</add>
+ <name>street_number_suffix</name>
+ <title>Street Number Suffix</title>
+ <type>varchar</type>
+ <length>8</length>
+ <export>true</export>
+ <comment>Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A
+ </comment>
+ <add>1.1</add>
</field>
<field>
- <name>street_number_predirectional</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Directional prefix, e.g. SE Main St, SE is the prefix.</comment>
- <add>1.1</add>
+ <name>street_number_predirectional</name>
+ <title>Street Direction Prefix</title>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Directional prefix, e.g. SE Main St, SE is the prefix.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>street_name</name>
- <type>varchar</type>
- <length>64</length>
- <export>true</export>
- <comment>Actual street name, excluding St, Dr, Rd, Ave, e.g. For 112 Main St, the street_name = Main.</comment>
- <add>1.1</add>
+ <name>street_name</name>
+ <type>varchar</type>
+ <title>Street Name</title>
+ <length>64</length>
+ <export>true</export>
+ <comment>Actual street name, excluding St, Dr, Rd, Ave, e.g. For 112 Main St, the street_name = Main.</comment>
+ <add>1.1</add>
</field>
<index>
- <name>index_street_name</name>
- <fieldName>street_name</fieldName>
- <add>1.1</add>
+ <name>index_street_name</name>
+ <fieldName>street_name</fieldName>
+ <add>1.1</add>
</index>
<field>
- <name>street_type</name>
- <type>varchar</type>
- <length>8</length>
- <comment>St, Rd, Dr, etc.</comment>
- <add>1.1</add>
+ <name>street_type</name>
+ <title>Street Type</title>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>St, Rd, Dr, etc.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>street_number_postdirectional</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Directional prefix, e.g. Main St S, S is the suffix.</comment>
- <add>1.1</add>
+ <name>street_number_postdirectional</name>
+ <title>Street Direction Suffix</title>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Directional prefix, e.g. Main St S, S is the suffix.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>street_unit</name>
- <type>varchar</type>
- <length>16</length>
- <export>true</export>
- <comment>Secondary unit designator, e.g. Apt 3 or Unit # 14, or Bldg 1200</comment>
- <add>1.1</add>
+ <name>street_unit</name>
+ <title>Street Unit</title>
+ <type>varchar</type>
+ <length>16</length>
+ <export>true</export>
+ <comment>Secondary unit designator, e.g. Apt 3 or Unit # 14, or Bldg 1200</comment>
+ <add>1.1</add>
</field>
<field>
- <name>supplemental_address_1</name>
- <title>Supplemental Address 1</title>
- <type>varchar</type>
- <length>96</length>
- <import>true</import>
- <headerPattern>/(supplemental(\s)?)?address(\s\d+)?/i</headerPattern>
- <dataPattern>/unit|ap(ar)?t(ment)?\s(\d|\w)+/i</dataPattern>
- <comment>Supplemental Address Information, Line 1</comment>
- <add>1.1</add>
+ <name>supplemental_address_1</name>
+ <title>Supplemental Address 1</title>
+ <type>varchar</type>
+ <length>96</length>
+ <import>true</import>
+ <headerPattern>/(supplemental(\s)?)?address(\s\d+)?/i</headerPattern>
+ <dataPattern>/unit|ap(ar)?t(ment)?\s(\d|\w)+/i</dataPattern>
+ <comment>Supplemental Address Information, Line 1</comment>
+ <add>1.1</add>
</field>
<field>
- <name>supplemental_address_2</name>
- <title>Supplemental Address 2</title>
- <type>varchar</type>
- <length>96</length>
- <import>true</import>
- <headerPattern>/(supplemental(\s)?)?address(\s\d+)?/i</headerPattern>
- <dataPattern>/unit|ap(ar)?t(ment)?\s(\d|\w)+/i</dataPattern>
- <comment>Supplemental Address Information, Line 2</comment>
- <add>1.1</add>
+ <name>supplemental_address_2</name>
+ <title>Supplemental Address 2</title>
+ <type>varchar</type>
+ <length>96</length>
+ <import>true</import>
+ <headerPattern>/(supplemental(\s)?)?address(\s\d+)?/i</headerPattern>
+ <dataPattern>/unit|ap(ar)?t(ment)?\s(\d|\w)+/i</dataPattern>
+ <comment>Supplemental Address Information, Line 2</comment>
+ <add>1.1</add>
</field>
<field>
- <name>supplemental_address_3</name>
- <type>varchar</type>
- <length>96</length>
- <comment>Supplemental Address Information, Line 3</comment>
- <add>1.1</add>
+ <name>supplemental_address_3</name>
+ <title>Supplemental Address 3</title>
+ <type>varchar</type>
+ <length>96</length>
+ <comment>Supplemental Address Information, Line 3</comment>
+ <add>1.1</add>
</field>
<field>
- <name>city</name>
- <title>City</title>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/city/i</headerPattern>
- <dataPattern>/^[A-Za-z]+(\.?)(\s?[A-Za-z]+){0,2}$/</dataPattern>
- <comment>City, Town or Village Name.</comment>
- <add>1.1</add>
+ <name>city</name>
+ <title>City</title>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/city/i</headerPattern>
+ <dataPattern>/^[A-Za-z]+(\.?)(\s?[A-Za-z]+){0,2}$/</dataPattern>
+ <comment>City, Town or Village Name.</comment>
+ <add>1.1</add>
</field>
<index>
- <name>index_city</name>
- <fieldName>city</fieldName>
- <add>1.1</add>
+ <name>index_city</name>
+ <fieldName>city</fieldName>
+ <add>1.1</add>
</index>
<field>
- <name>county_id</name>
- <type>int unsigned</type>
- <comment>Which County does this address belong to.</comment>
- <pseudoconstant>
- <table>civicrm_county</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.1</add>
+ <name>county_id</name>
+ <type>int unsigned</type>
+ <title>County</title>
+ <comment>Which County does this address belong to.</comment>
+ <pseudoconstant>
+ <table>civicrm_county</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>county_id</name>
- <table>civicrm_county</table>
- <key>id</key>
- <import>true</import>
- <headerPattern>/county/i</headerPattern>
- <dataPattern>/[A-Z]{2}/</dataPattern>
- <add>1.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>county_id</name>
+ <table>civicrm_county</table>
+ <key>id</key>
+ <import>true</import>
+ <headerPattern>/county/i</headerPattern>
+ <dataPattern>/[A-Z]{2}/</dataPattern>
+ <add>1.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>state_province_id</name>
- <title>State</title>
- <type>int unsigned</type>
- <comment>Which State_Province does this address belong to.</comment>
- <pseudoconstant>
- <table>civicrm_state_province</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.1</add>
+ <name>state_province_id</name>
+ <title>State</title>
+ <type>int unsigned</type>
+ <comment>Which State_Province does this address belong to.</comment>
+ <pseudoconstant>
+ <table>civicrm_state_province</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>state_province_id</name>
- <table>civicrm_state_province</table>
- <key>id</key>
- <import>true</import>
- <headerPattern>/state|prov(ince)?/i</headerPattern>
- <dataPattern>/A[LKSZRAP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]/i</dataPattern>
- <add>1.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>state_province_id</name>
+ <table>civicrm_state_province</table>
+ <key>id</key>
+ <import>true</import>
+ <headerPattern>/state|prov(ince)?/i</headerPattern>
+ <dataPattern>
+ /A[LKSZRAP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]/i
+ </dataPattern>
+ <add>1.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
- <field>
- <name>postal_code_suffix</name>
- <title>Postal Code Suffix</title>
- <type>varchar</type>
- <length>12</length>
- <import>true</import>
- <headerPattern>/p(ostal)\sc(ode)\ss(uffix)/i</headerPattern>
- <dataPattern>/\d?\d{4}(-\d{4})?/</dataPattern>
- <comment>Store the suffix, like the +4 part in the USPS system.</comment>
- <add>1.1</add>
+ <field>
+ <name>postal_code_suffix</name>
+ <title>Postal Code Suffix</title>
+ <type>varchar</type>
+ <length>12</length>
+ <import>true</import>
+ <headerPattern>/p(ostal)\sc(ode)\ss(uffix)/i</headerPattern>
+ <dataPattern>/\d?\d{4}(-\d{4})?/</dataPattern>
+ <comment>Store the suffix, like the +4 part in the USPS system.</comment>
+ <add>1.1</add>
</field>
- <field>
- <name>postal_code</name>
- <title>Postal Code</title>
- <type>varchar</type>
- <length>12</length>
- <import>true</import>
- <headerPattern>/postal|zip/i</headerPattern>
- <dataPattern>/\d?\d{4}(-\d{4})?/</dataPattern>
- <comment>Store both US (zip5) AND international postal codes. App is responsible for country/region appropriate validation.</comment>
- <add>1.1</add>
+ <field>
+ <name>postal_code</name>
+ <title>Postal Code</title>
+ <type>varchar</type>
+ <length>12</length>
+ <import>true</import>
+ <headerPattern>/postal|zip/i</headerPattern>
+ <dataPattern>/\d?\d{4}(-\d{4})?/</dataPattern>
+ <comment>Store both US (zip5) AND international postal codes. App is responsible for country/region appropriate
+ validation.
+ </comment>
+ <add>1.1</add>
</field>
<field>
- <name>usps_adc</name>
- <type>varchar</type>
- <length>32</length>
- <comment>USPS Bulk mailing code.</comment>
- <add>1.1</add>
+ <name>usps_adc</name>
+ <title>USPS Code</title>
+ <type>varchar</type>
+ <length>32</length>
+ <comment>USPS Bulk mailing code.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>country_id</name>
- <title>Country</title>
- <type>int unsigned</type>
- <comment>Which Country does this address belong to.</comment>
- <pseudoconstant>
- <table>civicrm_country</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- <nameColumn>iso_code</nameColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.1</add>
+ <name>country_id</name>
+ <title>Country</title>
+ <type>int unsigned</type>
+ <comment>Which Country does this address belong to.</comment>
+ <pseudoconstant>
+ <table>civicrm_country</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ <nameColumn>iso_code</nameColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>country_id</name>
- <table>civicrm_country</table>
- <key>id</key>
- <import>true</import>
- <headerPattern>/country/i</headerPattern>
- <dataPattern>/\w+(\s\w+)?/</dataPattern>
- <add>1.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>country_id</name>
+ <table>civicrm_country</table>
+ <key>id</key>
+ <import>true</import>
+ <headerPattern>/country/i</headerPattern>
+ <dataPattern>/\w+(\s\w+)?/</dataPattern>
+ <add>1.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>geo_code_1</name>
- <type>float</type>
- <import>true</import>
- <headerPattern>/geo/i</headerPattern>
- <comment>Latitude</comment>
- <add>1.1</add>
+ <name>geo_code_1</name>
+ <title>Latitude</title>
+ <type>float</type>
+ <import>true</import>
+ <headerPattern>/geo/i</headerPattern>
+ <comment>Latitude</comment>
+ <add>1.1</add>
</field>
<field>
- <name>geo_code_2</name>
- <type>float</type>
- <comment>Longitude</comment>
- <import>true</import>
- <headerPattern>/geo/i</headerPattern>
- <add>1.1</add>
+ <name>geo_code_2</name>
+ <title>Longitude</title>
+ <type>float</type>
+ <comment>Longitude</comment>
+ <import>true</import>
+ <headerPattern>/geo/i</headerPattern>
+ <add>1.1</add>
</field>
<field>
- <name>manual_geo_code</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this a manually entered geo code</comment>
- <add>4.3</add>
+ <name>manual_geo_code</name>
+ <title>Is manually geocoded</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this a manually entered geo code</comment>
+ <add>4.3</add>
</field>
<field>
- <name>timezone</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Timezone expressed as a UTC offset - e.g. United States CST would be written as "UTC-6".</comment>
- <add>1.1</add>
+ <name>timezone</name>
+ <title>Timezone</title>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Timezone expressed as a UTC offset - e.g. United States CST would be written as "UTC-6".</comment>
+ <add>1.1</add>
</field>
<field>
- <name>name</name>
- <uniqueName>address_name</uniqueName>
- <title>Address Name</title>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <headerPattern>/^location|(l(ocation\s)?name)$/i</headerPattern>
- <dataPattern>/^\w+$/</dataPattern>
- <add>2.1</add>
+ <name>name</name>
+ <uniqueName>address_name</uniqueName>
+ <title>Address Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <headerPattern>/^location|(l(ocation\s)?name)$/i</headerPattern>
+ <dataPattern>/^\w+$/</dataPattern>
+ <add>2.1</add>
</field>
<field>
- <name>master_id</name>
- <title>Master Address Belongs To</title>
- <type>int unsigned</type>
- <import>true</import>
- <comment>FK to Address ID</comment>
- <add>3.3</add>
+ <name>master_id</name>
+ <title>Master Address Belongs To</title>
+ <type>int unsigned</type>
+ <import>true</import>
+ <comment>FK to Address ID</comment>
+ <add>3.3</add>
</field>
<foreignKey>
- <name>master_id</name>
- <table>civicrm_address</table>
- <key>id</key>
- <add>3.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>master_id</name>
+ <table>civicrm_address</table>
+ <key>id</key>
+ <add>3.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
</table>
<name>civicrm_address_format</name>
<add>3.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Address Format Id</comment>
- <add>3.2</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Address Format Id</comment>
+ <add>3.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>format</name>
- <title>Address Format</title>
- <type>text</type>
- <comment>The format of an address</comment>
- <add>3.2</add>
+ <name>format</name>
+ <title>Address Format</title>
+ <type>text</type>
+ <comment>The format of an address</comment>
+ <add>3.2</add>
</field>
</table>
<comment>Table to cache items for civicrm components.</comment>
<add>2.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>2.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>2.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>group_name</name>
- <type>varchar</type>
- <length>32</length>
- <required>true</required>
- <comment>group name for cache element, useful in cleaning cache elements</comment>
- <add>2.1</add>
+ <name>group_name</name>
+ <type>varchar</type>
+ <length>32</length>
+ <required>true</required>
+ <comment>group name for cache element, useful in cleaning cache elements</comment>
+ <add>2.1</add>
</field>
<field>
- <name>path</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Unique path name for cache element</comment>
- <add>2.1</add>
+ <name>path</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Unique path name for cache element</comment>
+ <add>2.1</add>
</field>
<index>
<name>UI_group_path</name>
</html>
</field>
<foreignKey>
- <name>component_id</name>
- <table>civicrm_component</table>
- <key>id</key>
- <add>2.1</add>
+ <name>component_id</name>
+ <table>civicrm_component</table>
+ <key>id</key>
+ <add>2.1</add>
</foreignKey>
<field>
<name>created_date</name>
<name>civicrm_component</name>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Component ID</comment>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Component ID</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Component name</title>
- <type>varchar</type>
- <required>true</required>
- <length>64</length>
- <comment>Name of the component.</comment>
- <add>2.0</add>
+ <name>name</name>
+ <title>Component name</title>
+ <type>varchar</type>
+ <required>true</required>
+ <length>64</length>
+ <comment>Name of the component.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>namespace</name>
- <title>Namespace reserved for component.</title>
- <type>varchar</type>
- <length>128</length>
- <comment>Path to components main directory in a form of a class
-namespace.</comment>
- <add>2.0</add>
+ <name>namespace</name>
+ <title>Namespace reserved for component.</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Path to components main directory in a form of a class
+ namespace.
+ </comment>
+ <add>2.0</add>
</field>
</table>
<name>civicrm_country</name>
<add>1.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Country Id</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Country ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Country Id</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Country</title>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/country/i</headerPattern>
- <dataPattern>/^[A-Z][a-z]+\.?(\s+[A-Z][a-z]+){0,3}$/</dataPattern>
- <comment>Country Name</comment>
- <add>1.1</add>
+ <name>name</name>
+ <title>Country</title>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/country/i</headerPattern>
+ <dataPattern>/^[A-Z][a-z]+\.?(\s+[A-Z][a-z]+){0,3}$/</dataPattern>
+ <comment>Country Name</comment>
+ <add>1.1</add>
</field>
<field>
- <name>iso_code</name>
- <type>char</type>
- <length>2</length>
- <comment>ISO Code</comment>
- <add>1.1</add>
+ <name>iso_code</name>
+ <title>Country ISO Code</title>
+ <type>char</type>
+ <length>2</length>
+ <comment>ISO Code</comment>
+ <add>1.1</add>
</field>
<field>
- <name>country_code</name>
- <type>varchar</type>
- <length>4</length>
- <comment>National prefix to be used when dialing TO this country.</comment>
- <add>1.1</add>
+ <name>country_code</name>
+ <title>Country Phone Prefix</title>
+ <type>varchar</type>
+ <length>4</length>
+ <comment>National prefix to be used when dialing TO this country.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>address_format_id</name>
- <type>int unsigned</type>
- <comment>Foreign key to civicrm_address_format.id.</comment>
- <add>3.2</add>
+ <name>address_format_id</name>
+ <title>Address Format</title>
+ <type>int unsigned</type>
+ <comment>Foreign key to civicrm_address_format.id.</comment>
+ <add>3.2</add>
</field>
<foreignKey>
- <name>address_format_id</name>
- <table>civicrm_address_format</table>
- <key>id</key>
- <add>3.2</add>
+ <name>address_format_id</name>
+ <table>civicrm_address_format</table>
+ <key>id</key>
+ <add>3.2</add>
</foreignKey>
<field>
- <name>idd_prefix</name>
- <type>varchar</type>
- <length>4</length>
- <comment>International direct dialing prefix from within the country TO another country</comment>
- <add>1.1</add>
+ <name>idd_prefix</name>
+ <title>Outgoing Phone Prefix</title>
+ <type>varchar</type>
+ <length>4</length>
+ <comment>International direct dialing prefix from within the country TO another country</comment>
+ <add>1.1</add>
</field>
<field>
- <name>ndd_prefix</name>
- <type>varchar</type>
- <length>4</length>
- <comment>Access prefix to call within a country to a different area</comment>
- <add>1.1</add>
+ <name>ndd_prefix</name>
+ <title>Area Code</title>
+ <type>varchar</type>
+ <length>4</length>
+ <comment>Access prefix to call within a country to a different area</comment>
+ <add>1.1</add>
</field>
<field>
- <name>region_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign key to civicrm_worldregion.id.</comment>
- <add>1.8</add>
+ <name>region_id</name>
+ <title>Region</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign key to civicrm_worldregion.id.</comment>
+ <add>1.8</add>
</field>
<foreignKey>
- <name>region_id</name>
- <table>civicrm_worldregion</table>
- <key>id</key>
- <add>1.8</add>
+ <name>region_id</name>
+ <table>civicrm_worldregion</table>
+ <key>id</key>
+ <add>1.8</add>
</foreignKey>
<field>
- <name>is_province_abbreviated</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should state/province be displayed as abbreviation for contacts from this country?</comment>
- <add>3.1</add>
+ <name>is_province_abbreviated</name>
+ <title>Abbreviate Province?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should state/province be displayed as abbreviation for contacts from this country?</comment>
+ <add>3.1</add>
</field>
<index>
<name>UI_name_iso_code</name>
<name>civicrm_county</name>
<add>1.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>County ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>County ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>false</autoincrement>
+ <name>id</name>
+ <autoincrement>false</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>County</title>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/county/i</headerPattern>
- <dataPattern>/[A-Z]{2}/</dataPattern>
- <comment>Name of County</comment>
- <add>1.1</add>
+ <name>name</name>
+ <title>County</title>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/county/i</headerPattern>
+ <dataPattern>/[A-Z]{2}/</dataPattern>
+ <comment>Name of County</comment>
+ <add>1.1</add>
</field>
<field>
- <name>abbreviation</name>
- <title>County Abbreviation</title>
- <type>varchar</type>
- <length>4</length>
- <comment>2-4 Character Abbreviation of County</comment>
- <add>1.1</add>
+ <name>abbreviation</name>
+ <title>County Abbreviation</title>
+ <type>varchar</type>
+ <length>4</length>
+ <comment>2-4 Character Abbreviation of County</comment>
+ <add>1.1</add>
</field>
<field>
- <name>state_province_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>ID of State / Province that County belongs</comment>
- <add>1.1</add>
+ <name>state_province_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>ID of State / Province that County belongs</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>state_province_id</name>
- <table>civicrm_state_province</table>
- <key>id</key>
- <add>1.1</add>
+ <name>state_province_id</name>
+ <table>civicrm_state_province</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<index>
<name>UI_name_state_id</name>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Custom Field ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Custom Field ID</title>
+ <required>true</required>
+ <comment>Unique Custom Field ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>custom_group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_custom_group.</comment>
- <add>1.1</add>
- <pseudoconstant>
- <table>civicrm_custom_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>custom_group_id</name>
+ <type>int unsigned</type>
+ <title>Custom Group</title>
+ <required>true</required>
+ <comment>FK to civicrm_custom_group.</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <table>civicrm_custom_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>custom_group_id</name>
- <table>civicrm_custom_group</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>custom_group_id</name>
+ <table>civicrm_custom_group</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Variable name/programmatic handle for this group.</comment>
- <add>3.3</add>
+ <name>name</name>
+ <type>varchar</type>
+ <title>Custom Field Name</title>
+ <length>64</length>
+ <comment>Variable name/programmatic handle for this group.</comment>
+ <add>3.3</add>
</field>
<field>
- <name>label</name>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <localizable>true</localizable>
- <comment>Text for form field label (also friendly name for administering this custom property).</comment>
- <add>1.1</add>
+ <name>label</name>
+ <type>varchar</type>
+ <title>Custom Field Label</title>
+ <length>255</length>
+ <required>true</required>
+ <localizable>true</localizable>
+ <comment>Text for form field label (also friendly name for administering this custom property).</comment>
+ <add>1.1</add>
</field>
<field>
- <name>data_type</name>
- <type>varchar</type>
- <length>16</length>
- <required>true</required>
- <comment>Controls location of data storage in extended_data table.</comment>
- <pseudoconstant>
- <callback>CRM_Core_BAO_CustomField::dataType</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>data_type</name>
+ <type>varchar</type>
+ <title>Custom Field Data Type</title>
+ <length>16</length>
+ <required>true</required>
+ <comment>Controls location of data storage in extended_data table.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_BAO_CustomField::dataType</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>html_type</name>
- <type>varchar</type>
- <length>32</length>
- <required>true</required>
- <comment>HTML types plus several built-in extended types.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::customHtmlType</callback>
- </pseudoconstant>
- <add>1.1</add>
+ <name>html_type</name>
+ <type>varchar</type>
+ <title>Custom Field HTMl Type</title>
+ <length>32</length>
+ <required>true</required>
+ <comment>HTML types plus several built-in extended types.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::customHtmlType</callback>
+ </pseudoconstant>
+ <add>1.1</add>
</field>
<field>
- <name>default_value</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Use form_options.is_default for field_types which use options.</comment>
- <add>1.1</add>
+ <name>default_value</name>
+ <type>varchar</type>
+ <title>Custom Field Default</title>
+ <length>255</length>
+ <comment>Use form_options.is_default for field_types which use options.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_required</name>
- <type>boolean</type>
- <comment>Is a value required for this property.</comment>
- <add>1.1</add>
+ <name>is_required</name>
+ <title>Custom Field Is Required?</title>
+ <type>boolean</type>
+ <comment>Is a value required for this property.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_searchable</name>
- <type>boolean</type>
- <comment>Is this property searchable.</comment>
- <add>1.1</add>
+ <name>is_searchable</name>
+ <title>Allow Searching on Field?</title>
+ <type>boolean</type>
+ <comment>Is this property searchable.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_search_range</name>
- <type>boolean</type>
- <comment>Is this property range searchable.</comment>
- <add>1.4</add>
- <default>0</default>
+ <name>is_search_range</name>
+ <type>boolean</type>
+ <title>Search as a Range</title>
+ <comment>Is this property range searchable.</comment>
+ <add>1.4</add>
+ <default>0</default>
</field>
<field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Controls field display order within an extended property group.</comment>
- <add>1.1</add>
+ <name>weight</name>
+ <type>int</type>
+ <title>Custom Field Weight</title>
+ <required>true</required>
+ <default>1</default>
+ <comment>Controls field display order within an extended property group.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>help_pre</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display before this field.</comment>
- <add>1.1</add>
+ <name>help_pre</name>
+ <type>text</type>
+ <title>Custom Field Pre Text</title>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display before this field.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>help_post</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display after this field.</comment>
- <add>1.1</add>
+ <name>help_post</name>
+ <type>text</type>
+ <title>Custom Field Post Text</title>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display after this field.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>mask</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Optional format instructions for specific field types, like date types.</comment>
- <add>1.1</add>
+ <name>mask</name>
+ <type>varchar</type>
+ <title>Custom Field Formatting</title>
+ <length>64</length>
+ <comment>Optional format instructions for specific field types, like date types.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>attributes</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Store collection of type-appropriate attributes, e.g. textarea needs rows/cols attributes</comment>
- <add>1.1</add>
+ <name>attributes</name>
+ <type>varchar</type>
+ <title>Custom Field Attributes</title>
+ <length>255</length>
+ <comment>Store collection of type-appropriate attributes, e.g. textarea needs rows/cols attributes</comment>
+ <add>1.1</add>
</field>
<field>
- <name>javascript</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Optional scripting attributes for field.</comment>
- <add>1.1</add>
+ <name>javascript</name>
+ <type>varchar</type>
+ <title>Custom Field Javascript</title>
+ <length>255</length>
+ <comment>Optional scripting attributes for field.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
- <add>1.1</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <title>Custom Field Is Active?</title>
+ <comment>Is this property active?</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_view</name>
- <type>boolean</type>
- <comment>Is this property set by PHP Code? A code field is viewable but not editable</comment>
- <add>1.1</add>
+ <name>is_view</name>
+ <type>boolean</type>
+ <title>Field is Viewable</title>
+ <comment>Is this property set by PHP Code? A code field is viewable but not editable</comment>
+ <add>1.1</add>
</field>
<field>
- <name>options_per_line</name>
- <type>int unsigned</type>
- <comment>number of options per line for checkbox and radio</comment>
+ <name>options_per_line</name>
+ <type>int unsigned</type>
+ <title>Field Options Per Line</title>
+ <comment>number of options per line for checkbox and radio</comment>
</field>
<field>
- <name>text_length</name>
- <type>int unsigned</type>
- <comment>field length if alphanumeric</comment>
- <add>2.2</add>
+ <name>text_length</name>
+ <type>int unsigned</type>
+ <title>Field Length</title>
+ <comment>field length if alphanumeric</comment>
+ <add>2.2</add>
</field>
<field>
- <name>start_date_years</name>
- <type>int</type>
- <comment>Date may be up to start_date_years years prior to the current date.</comment>
- <add>1.4</add>
+ <name>start_date_years</name>
+ <type>int</type>
+ <title>Field Start Date</title>
+ <comment>Date may be up to start_date_years years prior to the current date.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>end_date_years</name>
- <type>int</type>
- <comment>Date may be up to end_date_years years after the current date.</comment>
- <add>1.4</add>
+ <name>end_date_years</name>
+ <type>int</type>
+ <title>Field End Date</title>
+ <comment>Date may be up to end_date_years years after the current date.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>date_parts</name>
- <type>varchar</type>
- <length>255</length>
- <comment>which date part included in display </comment>
- <add>1.4</add>
- <drop>3.1</drop>
+ <name>date_parts</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>which date part included in display </comment>
+ <add>1.4</add>
+ <drop>3.1</drop>
</field>
<field>
- <name>date_format</name>
- <type>varchar</type>
- <length>64</length>
- <comment>date format for custom date</comment>
- <add>3.1</add>
+ <name>date_format</name>
+ <type>varchar</type>
+ <title>Field Data Format</title>
+ <length>64</length>
+ <comment>date format for custom date</comment>
+ <add>3.1</add>
</field>
<field>
- <name>time_format</name>
- <type>int unsigned</type>
- <comment>time format for custom date</comment>
- <add>3.1</add>
+ <name>time_format</name>
+ <type>int unsigned</type>
+ <title>Field Time Format</title>
+ <comment>time format for custom date</comment>
+ <add>3.1</add>
</field>
<field>
- <name>note_columns</name>
- <type>int unsigned</type>
- <comment> Number of columns in Note Field </comment>
- <add>1.4</add>
+ <name>note_columns</name>
+ <type>int unsigned</type>
+ <title>Field Note Columns</title>
+ <comment> Number of columns in Note Field </comment>
+ <add>1.4</add>
</field>
<field>
- <name>note_rows</name>
- <type>int unsigned</type>
- <comment> Number of rows in Note Field </comment>
- <add>1.4</add>
+ <name>note_rows</name>
+ <type>int unsigned</type>
+ <title>Field Note Rows</title>
+ <comment> Number of rows in Note Field </comment>
+ <add>1.4</add>
</field>
<field>
- <name>column_name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Name of the column that holds the values for this field.</comment>
- <add>2.0</add>
+ <name>column_name</name>
+ <type>varchar</type>
+ <title>Field Column Name</title>
+ <length>255</length>
+ <comment>Name of the column that holds the values for this field.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>option_group_id</name>
- <type>int unsigned</type>
- <comment>For elements with options, the option group id that is used</comment>
- <add>1.4</add>
+ <name>option_group_id</name>
+ <type>int unsigned</type>
+ <title>Field Option Group</title>
+ <comment>For elements with options, the option group id that is used</comment>
+ <add>1.4</add>
</field>
<field>
- <name>filter</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Stores Contact Get API params contact reference custom fields. May be used for other filters in the future.</comment>
- <add>4.1</add>
+ <name>filter</name>
+ <type>varchar</type>
+ <title>Field Filter</title>
+ <length>255</length>
+ <comment>Stores Contact Get API params contact reference custom fields. May be used for other filters in the future.</comment>
+ <add>4.1</add>
</field>
<field>
<name>in_selector</name>
<type>boolean</type>
+ <title>Field Display</title>
<default>0</default>
<comment>Should the multi-record custom field values be displayed in tab table listing</comment>
<add>4.5</add>
<base>CRM/Core</base>
<class>CustomGroup</class>
<name>civicrm_custom_group</name>
- <comment>All extended (custom) properties are associated with a group. These are logical sets of related data.</comment>
+ <comment>All extended (custom) properties are associated with a group. These are logical sets of related data.
+ </comment>
<add>1.1</add>
<log>true</log>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Custom Group ID</comment>
- <add>1.1</add>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Custom Group ID</title>
+ <required>true</required>
+ <comment>Unique Custom Group ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Variable name/programmatic handle for this group.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>title</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <localizable>true</localizable>
- <comment>Friendly Name.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>extends</name>
- <type>varchar</type>
- <length>255</length>
- <default>'Contact'</default>
- <comment>Type of object this group extends (can add other options later e.g. contact_address, etc.).</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>extends_entity_column_name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>linking custom group for dynamic object</comment>
- <add>1.6</add>
- <drop>2.2</drop>
- </field>
- <field>
- <name>extends_entity_column_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to civicrm_option_value.id (for option group custom_data_type.)</comment>
- <add>2.2</add>
- </field>
- <field>
- <name>extends_entity_column_value</name>
- <type>varchar</type>
- <length>255</length>
- <comment>linking custom group for dynamic object</comment>
- <add>1.6</add>
- </field>
- <field>
- <name>style</name>
- <type>varchar</type>
- <length>15</length>
- <comment>Visual relationship between this form and its parent.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::customGroupStyle</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>collapse_display</name>
- <type>int unsigned</type>
- <default>0</default>
- <comment>Will this group be in collapsed or expanded mode on initial display ?</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>help_pre</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display before fields in form.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>80</cols>
- </html>
- <add>1.1</add>
- </field>
- <field>
- <name>help_post</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display after fields in form.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>80</cols>
- </html>
- <add>1.1</add>
- </field>
- <field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Controls display order when multiple extended property groups are setup for the same class.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>table_name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Name of the table that holds the values for this group.</comment>
- <add>2.0</add>
- </field>
- <field>
- <name>is_multiple</name>
- <type>boolean</type>
- <comment>Does this group hold multiple values?</comment>
- <add>2.0</add>
- </field>
- <field>
- <name>min_multiple</name>
- <type>int unsigned</type>
- <comment>minimum number of multiple records (typically 0?)</comment>
- <add>2.2</add>
+ <name>name</name>
+ <type>varchar</type>
+ <title>Custom Group Name</title>
+ <length>64</length>
+ <comment>Variable name/programmatic handle for this group.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>title</name>
+ <type>varchar</type>
+ <title>Custom Group Title</title>
+ <length>64</length>
+ <required>true</required>
+ <localizable>true</localizable>
+ <comment>Friendly Name.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>max_multiple</name>
- <type>int unsigned</type>
- <comment>maximum number of multiple records, if 0 - no max</comment>
- <add>2.2</add>
- </field>
+ <name>extends</name>
+ <type>varchar</type>
+ <title>Custom Group Extends</title>
+ <length>255</length>
+ <default>'Contact'</default>
+ <comment>Type of object this group extends (can add other options later e.g. contact_address, etc.).</comment>
+ <add>1.1</add>
+ </field>
<field>
- <name>collapse_adv_display</name>
- <type>int unsigned</type>
- <default>0</default>
- <comment>Will this group be in collapsed or expanded mode on advanced search display ?</comment>
- <add>3.0</add>
+ <name>extends_entity_column_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>linking custom group for dynamic object</comment>
+ <add>1.6</add>
+ <drop>2.2</drop>
+ </field>
+ <field>
+ <name>extends_entity_column_id</name>
+ <type>int unsigned</type>
+ <title>Custom Group Subtype List</title>
+ <default>NULL</default>
+ <comment>FK to civicrm_option_value.id (for option group custom_data_type.)</comment>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>extends_entity_column_value</name>
+ <type>varchar</type>
+ <title>Custom Group Subtype</title>
+ <length>255</length>
+ <comment>linking custom group for dynamic object</comment>
+ <add>1.6</add>
+ </field>
+ <field>
+ <name>style</name>
+ <type>varchar</type>
+ <title>Custom Group Style</title>
+ <length>15</length>
+ <comment>Visual relationship between this form and its parent.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::customGroupStyle</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>collapse_display</name>
+ <type>int unsigned</type>
+ <title>Collapse Custom Group?</title>
+ <default>0</default>
+ <comment>Will this group be in collapsed or expanded mode on initial display ?</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>help_pre</name>
+ <type>text</type>
+ <title>Custom Group Pre Text</title>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display before fields in form.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>help_post</name>
+ <type>text</type>
+ <title>Custom Group Post Text</title>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display after fields in form.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>weight</name>
+ <type>int</type>
+ <title>Custom Group Weight</title>
+ <required>true</required>
+ <default>1</default>
+ <comment>Controls display order when multiple extended property groups are setup for the same class.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>is_active</name>
+ <type>boolean</type>
+ <title>Custom Group Is Active?</title>
+ <comment>Is this property active?</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>table_name</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Name of the table that holds the values for this group.</comment>
+ <add>2.0</add>
+ </field>
+ <field>
+ <name>is_multiple</name>
+ <type>boolean</type>
+ <title>Supports Multiple Records</title>
+ <comment>Does this group hold multiple values?</comment>
+ <add>2.0</add>
+ </field>
+ <field>
+ <name>min_multiple</name>
+ <type>int unsigned</type>
+ <title>Minimum Multiple Records</title>
+ <comment>minimum number of multiple records (typically 0?)</comment>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>max_multiple</name>
+ <type>int unsigned</type>
+ <title>Maximum Multiple Records</title>
+ <comment>maximum number of multiple records, if 0 - no max</comment>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>collapse_adv_display</name>
+ <type>int unsigned</type>
+ <title>Collapse Group Display</title>
+ <default>0</default>
+ <comment>Will this group be in collapsed or expanded mode on advanced search display ?</comment>
+ <add>3.0</add>
</field>
<index>
<name>UI_title_extends</name>
<field>
<name>created_id</name>
<type>int unsigned</type>
+ <title>Custom Group Created By</title>
<comment>FK to civicrm_contact, who created this custom group</comment>
<add>3.0</add>
</field>
<field>
<name>is_reserved</name>
<type>boolean</type>
+ <title>Reserved Group?</title>
<default>0</default>
<comment>Is this a reserved Custom Group?</comment>
<add>4.4</add>
</field>
</table>
-
-
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Core</base>
- <class>Dashboard</class>
- <name>civicrm_dashboard</name>
- <comment>Table to store dashboard.</comment>
+ <base>CRM/Core</base>
+ <class>Dashboard</class>
+ <name>civicrm_dashboard</name>
+ <comment>Table to store dashboard.</comment>
+ <add>3.1</add>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>DashletID</title>
+ <required>true</required>
<add>3.1</add>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.1</add>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Domain for dashboard</comment>
- <add>3.1</add>
- </field>
- <foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>3.1</add>
- </foreignKey>
- <field>
- <name>name</name>
- <type>varchar</type>
- <title>Dashlet Name</title>
- <length>64</length>
- <comment>Internal name of dashlet.</comment>
- <add>4.4</add>
- </field>
- <field>
- <name>label</name>
- <type>varchar</type>
- <length>255</length>
- <comment>dashlet title</comment>
- <localizable>true</localizable>
- <add>3.1</add>
- </field>
- <field>
- <name>url</name>
- <type>varchar</type>
- <length>255</length>
- <comment>url in case of external dashlet</comment>
- <add>3.1</add>
- </field>
- <field>
- <name>content</name>
- <type>text</type>
- <comment>dashlet content</comment>
- <add>3.1</add>
- <drop>3.3</drop>
- </field>
- <field>
- <name>permission</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Permission for the dashlet</comment>
- <add>3.1</add>
- </field>
- <field>
- <name>permission_operator</name>
- <type>varchar</type>
- <length>3</length>
- <comment>Permission Operator</comment>
- <add>3.1</add>
- </field>
- <field>
- <name>column_no</name>
- <type>boolean</type>
- <comment>column no for this dashlet</comment>
- <default>0</default>
- <add>3.1</add>
- </field>
- <field>
- <name>is_minimized</name>
- <type>boolean</type>
- <comment>Is Minimized?</comment>
- <default>0</default>
- <add>3.1</add>
- </field>
- <field>
- <name>fullscreen_url</name>
- <type>varchar</type>
- <length>255</length>
- <comment>fullscreen url for dashlet</comment>
- <add>3.4</add>
- </field>
- <field>
- <name>is_fullscreen</name>
- <type>boolean</type>
- <comment>Is Fullscreen?</comment>
- <default>1</default>
- <add>3.1</add>
- </field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this dashlet active?</comment>
- <default>0</default>
- <add>3.1</add>
- </field>
- <field>
- <name>is_reserved</name>
- <type>boolean</type>
- <comment>Is this dashlet reserved?</comment>
- <default>0</default>
- <add>3.1</add>
- </field>
- <field>
- <name>weight</name>
- <type>int</type>
- <comment>Ordering of the dashlets.</comment>
- <default>0</default>
- <add>3.1</add>
- </field>
- <field>
- <name>created_date</name>
- <type>datetime</type>
- <comment>When was content populated</comment>
- <add>3.1</add>
- <drop>3.3</drop>
- </field>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>domain_id</name>
+ <type>int unsigned</type>
+ <title>Dashlet Domain</title>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Domain for dashboard</comment>
+ <add>3.1</add>
+ </field>
+ <foreignKey>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>3.1</add>
+ </foreignKey>
+ <field>
+ <name>name</name>
+ <type>varchar</type>
+ <title>Dashlet Name</title>
+ <length>64</length>
+ <comment>Internal name of dashlet.</comment>
+ <add>4.4</add>
+ </field>
+ <field>
+ <name>label</name>
+ <type>varchar</type>
+ <title>Dashlet Title</title>
+ <length>255</length>
+ <comment>dashlet title</comment>
+ <localizable>true</localizable>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>url</name>
+ <type>varchar</type>
+ <title>Dashlet URL</title>
+ <length>255</length>
+ <comment>url in case of external dashlet</comment>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>content</name>
+ <type>text</type>
+ <comment>dashlet content</comment>
+ <add>3.1</add>
+ <drop>3.3</drop>
+ </field>
+ <field>
+ <name>permission</name>
+ <type>varchar</type>
+ <title>Dashlet Permission</title>
+ <length>255</length>
+ <comment>Permission for the dashlet</comment>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>permission_operator</name>
+ <type>varchar</type>
+ <title>Dashlet Permission Operator</title>
+ <length>3</length>
+ <comment>Permission Operator</comment>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>column_no</name>
+ <type>boolean</type>
+ <title>Dashlet Column</title>
+ <comment>column no for this dashlet</comment>
+ <default>0</default>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>is_minimized</name>
+ <type>boolean</type>
+ <title>Minimize Dashlet?</title>
+ <comment>Is Minimized?</comment>
+ <default>0</default>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>fullscreen_url</name>
+ <type>varchar</type>
+ <title>Fullscreen URL</title>
+ <length>255</length>
+ <comment>fullscreen url for dashlet</comment>
+ <add>3.4</add>
+ </field>
+ <field>
+ <name>is_fullscreen</name>
+ <type>boolean</type>
+ <title>Is Fullscreen?</title>
+ <comment>Is Fullscreen?</comment>
+ <default>1</default>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>is_active</name>
+ <type>boolean</type>
+ <title>Is Dashlet Active?</title>
+ <comment>Is this dashlet active?</comment>
+ <default>0</default>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>is_reserved</name>
+ <type>boolean</type>
+ <title>Is Dashlet Reserved?</title>
+ <comment>Is this dashlet reserved?</comment>
+ <default>0</default>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>weight</name>
+ <type>int</type>
+ <title>Dashlet Weight</title>
+ <comment>Ordering of the dashlets.</comment>
+ <default>0</default>
+ <add>3.1</add>
+ </field>
+ <field>
+ <name>created_date</name>
+ <type>datetime</type>
+ <title>Dashlet Created Date</title>
+ <comment>When was content populated</comment>
+ <add>3.1</add>
+ <drop>3.3</drop>
+ </field>
</table>
<add>1.1</add>
<field>
<name>id</name>
+ <title>Domain ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Domain ID</comment>
<field>
<name>name</name>
<type>varchar</type>
+ <title>Domain Name</title>
<length>64</length>
<comment>Name of Domain / Organization</comment>
<add>1.1</add>
<field>
<name>description</name>
<type>varchar</type>
+ <title>Domain Description</title>
<length>255</length>
<comment>Description of Domain.</comment>
<add>1.1</add>
<field>
<name>config_backend</name>
<type>text</type>
+ <title>Domain Configuration</title>
<comment>Backend configuration.</comment>
<html>
<type>TextArea</type>
<field>
<name>version</name>
<type>varchar</type>
+ <title>CiviCRM Version</title>
<length>32</length>
<comment>The civicrm version this instance is running</comment>
<add>2.0</add>
<field>
<name>contact_id</name>
<type>int unsigned</type>
+ <title>Domain Contact</title>
<comment>FK to Contact ID. This is specifically not an FK to avoid circular constraints</comment>
<add>4.3</add>
</field>
<field>
<name>locales</name>
<type>text</type>
+ <title>Supported Languages</title>
<comment>list of locales supported by the current db state (NULL for single-lang install)</comment>
<add>2.1</add>
</field>
<field>
<name>locale_custom_strings</name>
<type>text</type>
+ <title>Language Customizations</title>
<comment>Locale specific string overrides</comment>
<html>
<type>TextArea</type>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Email ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Email ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Email ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>2.0</add>
+ <name>contact_id</name>
+ <title>Email Contact</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>location_type_id</name>
- <title>Email Location Type</title>
- <type>int unsigned</type>
- <comment>Which Location does this email belong to.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <table>civicrm_location_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>display_name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>location_type_id</name>
+ <title>Email Location Type</title>
+ <type>int unsigned</type>
+ <comment>Which Location does this email belong to.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <table>civicrm_location_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>display_name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
<name>index_location_type</name>
<add>2.0</add>
</index>
<field>
- <name>email</name>
- <type>varchar</type>
- <length>254</length>
- <html>
- <type>Text</type>
- <size>MEDIUM</size>
- </html>
- <import>true</import>
- <headerPattern>/e.?mail/i</headerPattern>
- <dataPattern>/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/</dataPattern>
- <rule>email</rule>
- <comment>Email address</comment>
- <add>1.1</add>
+ <name>email</name>
+ <title>Email</title>
+ <type>varchar</type>
+ <length>254</length>
+ <html>
+ <type>Text</type>
+ <size>MEDIUM</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/e.?mail/i</headerPattern>
+ <dataPattern>/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/</dataPattern>
+ <rule>email</rule>
+ <comment>Email address</comment>
+ <add>1.1</add>
</field>
<index>
- <name>UI_email</name>
- <fieldName>email</fieldName>
- <add>1.5</add>
+ <name>UI_email</name>
+ <fieldName>email</fieldName>
+ <add>1.5</add>
</index>
<field>
- <name>is_primary</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the primary email for this contact and location.</comment>
- <add>1.1</add>
+ <name>is_primary</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the primary email for this contact and location.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_primary</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the primary?</comment>
- <add>2.0</add>
+ <name>is_primary</name>
+ <title>Is Primary email</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the primary?</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_is_primary</name>
<add>2.0</add>
</index>
<field>
- <name>is_billing</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the billing?</comment>
- <add>2.0</add>
+ <name>is_billing</name>
+ <title>Is Billing Email?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the billing?</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_is_billing</name>
<base>CRM/Core</base>
<class>EntityFile</class>
<name>civicrm_entity_file</name>
- <comment>Attaches (joins) uploaded files (images, documents, etc.) to entities (Contacts, Groups, Actions).</comment>
+ <comment>Attaches (joins) uploaded files (images, documents, etc.) to entities (Contacts, Groups, Actions).</comment>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>primary key</comment>
- <add>1.5</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>primary key</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <comment>physical tablename for entity being joined to file, e.g. civicrm_contact</comment>
- <add>1.5</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>physical tablename for entity being joined to file, e.g. civicrm_contact</comment>
+ <add>1.5</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to entity table specified in entity_table column.</comment>
- <add>1.5</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to entity table specified in entity_table column.</comment>
+ <add>1.5</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.5</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.5</add>
</dynamicForeignKey>
<index>
- <name>index_entity</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>1.5</add>
+ <name>index_entity</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>1.5</add>
</index>
<field>
- <name>file_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_file</comment>
- <add>1.5</add>
+ <name>file_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_file</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>file_id</name>
- <table>civicrm_file</table>
- <key>id</key>
- <add>1.5</add>
+ <name>file_id</name>
+ <table>civicrm_file</table>
+ <key>id</key>
+ <add>1.5</add>
</foreignKey>
<index>
- <name>index_entity_file_id</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <fieldName>file_id</fieldName>
- <add>1.1</add>
+ <name>index_entity_file_id</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <fieldName>file_id</fieldName>
+ <add>1.1</add>
</index>
</table>
<comment>Tag entities (Contacts, Groups, Actions) to categories.</comment>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Entity Tag ID</title>
- <required>true</required>
- <comment>primary key</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Entity Tag ID</title>
+ <required>true</required>
+ <comment>primary key</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to contact table.</comment>
- <add>2.0</add>
- <drop>3.2</drop>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to contact table.</comment>
+ <add>2.0</add>
+ <drop>3.2</drop>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.0</add>
- <drop>3.2</drop>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.0</add>
+ <drop>3.2</drop>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <title>Entity Table</title>
- <length>64</length>
- <comment>physical tablename for entity being joined to file, e.g. civicrm_contact</comment>
- <add>3.2</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <title>Entity Table</title>
+ <length>64</length>
+ <comment>physical tablename for entity being joined to file, e.g. civicrm_contact</comment>
+ <add>3.2</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <title>Entity ID</title>
- <required>true</required>
- <comment>FK to entity table specified in entity_table column.</comment>
- <add>3.2</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <title>Entity ID</title>
+ <required>true</required>
+ <comment>FK to entity table specified in entity_table column.</comment>
+ <add>3.2</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>3.2</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>3.2</add>
</dynamicForeignKey>
<index>
- <name>index_entity</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>3.2</add>
- <drop>3.4</drop>
+ <name>index_entity</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>3.2</add>
+ <drop>3.4</drop>
</index>
<field>
- <name>tag_id</name>
- <type>int unsigned</type>
- <title>Tag ID</title>
- <required>true</required>
- <comment>FK to civicrm_tag</comment>
- <add>1.1</add>
- <pseudoconstant>
- <table>civicrm_tag</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>tag_id</name>
+ <type>int unsigned</type>
+ <title>Tag ID</title>
+ <required>true</required>
+ <comment>FK to civicrm_tag</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <table>civicrm_tag</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>tag_id</name>
- <table>civicrm_tag</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>tag_id</name>
+ <table>civicrm_tag</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<index>
<name>UI_entity_id_entity_table_tag_id</name>
<field>
<name>id</name>
<type>int unsigned</type>
+ <title>Extension ID</title>
<required>true</required>
<comment>Local Extension ID</comment>
<add>4.2</add>
<field>
<name>is_active</name>
<type>boolean</type>
+ <title>Extension is Active?</title>
<default>1</default>
<comment>Is this extension active?</comment>
<add>4.2</add>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique ID</comment>
- <add>1.5</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>File ID</title>
+ <required>true</required>
+ <comment>Unique ID</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>file_type_id</name>
- <type>int unsigned</type>
- <comment>Type of file (e.g. Transcript, Income Tax Return, etc). FK to civicrm_option_value.</comment>
- <add>1.5</add>
+ <name>file_type_id</name>
+ <type>int unsigned</type>
+ <title>File Type</title>
+ <comment>Type of file (e.g. Transcript, Income Tax Return, etc). FK to civicrm_option_value.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>mime_type</name>
- <type>varchar</type>
- <length>255</length>
- <comment>mime type of the document</comment>
- <add>1.5</add>
+ <name>mime_type</name>
+ <type>varchar</type>
+ <title>Mime Type</title>
+ <length>255</length>
+ <comment>mime type of the document</comment>
+ <add>1.5</add>
</field>
<field>
- <name>uri</name>
- <type>varchar</type>
- <length>255</length>
- <comment>uri of the file on disk</comment>
- <add>1.5</add>
+ <name>uri</name>
+ <type>varchar</type>
+ <title>Path</title>
+ <length>255</length>
+ <comment>uri of the file on disk</comment>
+ <add>1.5</add>
</field>
<field>
- <name>document</name>
- <type>mediumblob</type>
- <comment>contents of the document</comment>
- <add>1.5</add>
+ <name>document</name>
+ <type>mediumblob</type>
+ <title>File Contents</title>
+ <comment>contents of the document</comment>
+ <add>1.5</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Additional descriptive text regarding this attachment (optional).</comment>
- <add>1.5</add>
+ <name>description</name>
+ <type>varchar</type>
+ <title>File Description</title>
+ <length>255</length>
+ <comment>Additional descriptive text regarding this attachment (optional).</comment>
+ <add>1.5</add>
</field>
<field>
- <name>upload_date</name>
- <type>datetime</type>
- <comment>Date and time that this attachment was uploaded or written to server.</comment>
- <add>1.5</add>
+ <name>upload_date</name>
+ <type>datetime</type>
+ <title>File Upload Date</title>
+ <comment>Date and time that this attachment was uploaded or written to server.</comment>
+ <add>1.5</add>
</field>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique IM ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Instant Messenger ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique IM ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>2.0</add>
+ <name>contact_id</name>
+ <title>IM Contact</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>location_type_id</name>
- <title>IM Location Type</title>
- <type>int unsigned</type>
- <comment>Which Location does this email belong to.</comment>
- <pseudoconstant>
- <table>civicrm_location_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>display_name</labelColumn>
- </pseudoconstant>
- <add>2.0</add>
+ <name>location_type_id</name>
+ <title>IM Location Type</title>
+ <type>int unsigned</type>
+ <comment>Which Location does this email belong to.</comment>
+ <pseudoconstant>
+ <table>civicrm_location_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>display_name</labelColumn>
+ </pseudoconstant>
+ <add>2.0</add>
</field>
<index>
<name>index_location_type</name>
<add>2.0</add>
</index>
<field>
- <name>name</name>
- <title>IM Screen Name</title>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/I(nstant )?M(ess.*)?|screen(\s+)?name/i</headerPattern>
- <dataPattern>/^[A-Za-z][0-9A-Za-z]{20,}$/</dataPattern>
- <comment>IM screen name</comment>
- <add>1.1</add>
+ <name>name</name>
+ <title>IM Screen Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/I(nstant )?M(ess.*)?|screen(\s+)?name/i</headerPattern>
+ <dataPattern>/^[A-Za-z][0-9A-Za-z]{20,}$/</dataPattern>
+ <comment>IM screen name</comment>
+ <add>1.1</add>
</field>
<field>
- <name>provider_id</name>
- <title>IM Provider</title>
- <type>int unsigned</type>
- <comment>Which IM Provider does this screen name belong to.</comment>
- <add>1.1</add>
- <pseudoconstant>
- <optionGroupName>instant_messenger_service</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>provider_id</name>
+ <title>IM Provider</title>
+ <type>int unsigned</type>
+ <comment>Which IM Provider does this screen name belong to.</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <optionGroupName>instant_messenger_service</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
<name>UI_provider_id</name>
<add>1.6</add>
</index>
<field>
- <name>is_primary</name>
- <title>Is IM Primary?</title>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the primary IM for this contact and location.</comment>
- <add>1.1</add>
+ <name>is_primary</name>
+ <title>Is IM Primary?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the primary IM for this contact and location.</comment>
+ <add>1.1</add>
</field>
<index>
<name>index_is_primary</name>
<add>2.0</add>
</index>
<field>
- <name>is_billing</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the billing?</comment>
- <add>2.0</add>
+ <name>is_billing</name>
+ <title>Is IM Billing?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the billing?</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_is_billing</name>
<add>4.1</add>
<log>false</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Job Id</comment>
- <add>4.1</add>
+ <name>id</name>
+ <title>Job ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Job Id</comment>
+ <add>4.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this scheduled job for</comment>
- <add>4.1</add>
+ <name>domain_id</name>
+ <title>Job Domain</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this scheduled job for</comment>
+ <add>4.1</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>4.1</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>4.1</add>
</foreignKey>
<field>
- <name>run_frequency</name>
- <type>varchar</type>
- <length>8</length>
- <default>"Daily"</default>
- <comment>Scheduled job run frequency.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getJobFrequency</callback>
- </pseudoconstant>
- <add>4.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>run_frequency</name>
+ <title>Job Frequency</title>
+ <type>varchar</type>
+ <length>8</length>
+ <default>"Daily"</default>
+ <comment>Scheduled job run frequency.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getJobFrequency</callback>
+ </pseudoconstant>
+ <add>4.1</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>last_run</name>
- <type>datetime</type>
- <default>NULL</default>
- <comment>When was this cron entry last run</comment>
- <add>4.1</add>
+ <name>last_run</name>
+ <type>datetime</type>
+ <default>NULL</default>
+ <comment>When was this cron entry last run</comment>
+ <add>4.1</add>
</field>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Title of the job</comment>
- <add>4.1</add>
+ <name>name</name>
+ <title>Job Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Title of the job</comment>
+ <add>4.1</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Description of the job</comment>
- <add>4.1</add>
+ <name>description</name>
+ <title>Job Description</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Description of the job</comment>
+ <add>4.1</add>
</field>
<field>
- <name>api_prefix</name>
- <type>varchar</type>
- <length>255</length>
- <default>"civicrm_api3"</default>
- <comment>Prefix of the job api call</comment>
- <add>4.1</add>
- <drop>4.3</drop>
+ <name>api_prefix</name>
+ <type>varchar</type>
+ <length>255</length>
+ <default>"civicrm_api3"</default>
+ <comment>Prefix of the job api call</comment>
+ <add>4.1</add>
+ <drop>4.3</drop>
</field>
<field>
- <name>api_entity</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Entity of the job api call</comment>
- <add>4.1</add>
+ <name>api_entity</name>
+ <title>API Entity</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Entity of the job api call</comment>
+ <add>4.1</add>
</field>
<field>
- <name>api_action</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Action of the job api call</comment>
- <add>4.1</add>
+ <name>api_action</name>
+ <title>API Action</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Action of the job api call</comment>
+ <add>4.1</add>
</field>
<field>
- <name>parameters</name>
- <type>text</type>
- <comment>List of parameters to the command.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>60</cols>
- </html>
- <add>4.1</add>
+ <name>parameters</name>
+ <title>API Parameters</title>
+ <type>text</type>
+ <comment>List of parameters to the command.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>60</cols>
+ </html>
+ <add>4.1</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this job active?</comment>
- <add>4.1</add>
+ <name>is_active</name>
+ <title>Job Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this job active?</comment>
+ <add>4.1</add>
</field>
</table>
<add>4.1</add>
<log>false</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Job log entry Id</comment>
- <add>4.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Job log entry Id</comment>
+ <add>4.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this scheduled job for</comment>
- <add>4.1</add>
+ <name>domain_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this scheduled job for</comment>
+ <add>4.1</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>4.1</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>4.1</add>
</foreignKey>
<field>
- <name>run_time</name>
- <type>timestamp</type>
- <comment>Log entry date</comment>
- <add>4.1</add>
+ <name>run_time</name>
+ <type>timestamp</type>
+ <comment>Log entry date</comment>
+ <add>4.1</add>
</field>
<field>
- <name>job_id</name>
- <type>int unsigned</type>
- <comment>Pointer to job id - not a FK though, just for logging purposes</comment>
- <add>4.1</add>
+ <name>job_id</name>
+ <type>int unsigned</type>
+ <comment>Pointer to job id - not a FK though, just for logging purposes</comment>
+ <add>4.1</add>
</field>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Title of the job</comment>
- <add>4.1</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Title of the job</comment>
+ <add>4.1</add>
</field>
<field>
- <name>command</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Full path to file containing job script</comment>
- <add>4.1</add>
+ <name>command</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Full path to file containing job script</comment>
+ <add>4.1</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Title line of log entry</comment>
- <add>4.1</add>
+ <name>description</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Title line of log entry</comment>
+ <add>4.1</add>
</field>
<field>
- <name>data</name>
- <type>text</type>
- <comment>Potential extended data for specific job run (e.g. tracebacks).</comment>
- <add>4.1</add>
+ <name>data</name>
+ <type>text</type>
+ <comment>Potential extended data for specific job run (e.g. tracebacks).</comment>
+ <add>4.1</add>
</field>
</table>
<add>2.0</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique ID</comment>
- <add>2.0</add>
+ <name>id</name>
+ <title>Location Block ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique ID</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>address_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>address_id</name>
+ <title>Location Block Address</title>
+ <type>int unsigned</type>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>address_id</name>
- <table>civicrm_address</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>address_id</name>
+ <table>civicrm_address</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>email_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>email_id</name>
+ <title>Location Block Email</title>
+ <type>int unsigned</type>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>email_id</name>
- <table>civicrm_email</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>email_id</name>
+ <table>civicrm_email</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>phone_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>phone_id</name>
+ <title>Location Block Phone</title>
+ <type>int unsigned</type>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>phone_id</name>
- <table>civicrm_phone</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>phone_id</name>
+ <table>civicrm_phone</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>im_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>im_id</name>
+ <title>Location Block IM</title>
+ <type>int unsigned</type>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>im_id</name>
- <table>civicrm_im</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>im_id</name>
+ <table>civicrm_im</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>address_2_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>address_2_id</name>
+ <title>Location Block IM 2</title>
+ <type>int unsigned</type>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>address_2_id</name>
- <table>civicrm_address</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>address_2_id</name>
+ <table>civicrm_address</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>email_2_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>email_2_id</name>
+ <type>int unsigned</type>
+ <title>Email 2</title>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>email_2_id</name>
- <table>civicrm_email</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>email_2_id</name>
+ <table>civicrm_email</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>phone_2_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>phone_2_id</name>
+ <type>int unsigned</type>
+ <title>Phone 2</title>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>phone_2_id</name>
- <table>civicrm_phone</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>phone_2_id</name>
+ <table>civicrm_phone</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>im_2_id</name>
- <type>int unsigned</type>
- <add>2.0</add>
+ <name>im_2_id</name>
+ <type>int unsigned</type>
+ <title>Instant Messenger 2</title>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>im_2_id</name>
- <table>civicrm_im</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>im_2_id</name>
+ <table>civicrm_im</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Location Type ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Location Type ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Location Type ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Location Type</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Location Type Name.</comment>
- <add>1.1</add>
+ <name>name</name>
+ <title>Location Type</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Location Type Name.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>display_name</name>
- <title>Display Name</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Location Type Display Name.</comment>
- <localizable>true</localizable>
- <add>4.1</add>
+ <name>display_name</name>
+ <title>Display Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Location Type Display Name.</comment>
+ <localizable>true</localizable>
+ <add>4.1</add>
</field>
<field>
- <name>vcard_name</name>
- <title>vCard Location Type</title>
- <type>varchar</type>
- <length>64</length>
- <comment>vCard Location Type Name.</comment>
- <add>1.1</add>
+ <name>vcard_name</name>
+ <title>vCard Location Type</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>vCard Location Type Name.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Location Type Description.</comment>
- <add>1.1</add>
+ <name>description</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Location Type Description.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_reserved</name>
- <type>boolean</type>
- <comment>Is this location type a predefined system location?</comment>
- <add>1.1</add>
+ <name>is_reserved</name>
+ <title>Location Type is Reserved?</title>
+ <type>boolean</type>
+ <comment>Is this location type a predefined system location?</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
- <add>1.1</add>
+ <name>is_active</name>
+ <title>Location Type is Active?</title>
+ <type>boolean</type>
+ <comment>Is this property active?</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_default</name>
- <type>boolean</type>
- <comment>Is this location type the default?</comment>
- <add>1.1</add>
+ <name>is_default</name>
+ <title>Default Location Type?</title>
+ <type>boolean</type>
+ <comment>Is this location type the default?</comment>
+ <add>1.1</add>
</field>
<index>
<name>UI_name</name>
<comment>Log can be linked to any object in the application.</comment>
<add>1.5</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Log ID</comment>
- <add>1.5</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Log ID</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Name of table where item being referenced is stored.</comment>
- <add>1.5</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Name of table where item being referenced is stored.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign key to the referenced item.</comment>
- <add>1.5</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign key to the referenced item.</comment>
+ <add>1.5</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.5</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.5</add>
</dynamicForeignKey>
<index>
- <name>index_entity</name>
- <add>1.5</add>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>1.5</add>
+ <name>index_entity</name>
+ <add>1.5</add>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>1.5</add>
</index>
<field>
- <name>data</name>
- <type>text</type>
- <comment>Updates does to this object if any.</comment>
- <add>1.5</add>
+ <name>data</name>
+ <type>text</type>
+ <comment>Updates does to this object if any.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>modified_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID of person under whose credentials this data modification was made.</comment>
- <add>1.5</add>
+ <name>modified_id</name>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID of person under whose credentials this data modification was made.</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>modified_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>CASCADE</onDelete>
+ <name>modified_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>modified_date</name>
- <type>datetime</type>
- <comment>When was the referenced entity created or modified or deleted.</comment>
- <add>1.5</add>
+ <name>modified_date</name>
+ <type>datetime</type>
+ <comment>When was the referenced entity created or modified or deleted.</comment>
+ <add>1.5</add>
</field>
</table>
<add>2.2</add>
<field>
<name>id</name>
+ <title>Mail Settings ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>primary key</comment>
<autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this match entry for</comment>
- <add>3.1</add>
+ <name>domain_id</name>
+ <title>Mail Settings Domain</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this match entry for</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>4.5</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>4.5</add>
</foreignKey>
<field>
<name>name</name>
+ <title>Mail Settings Name</title>
<type>varchar</type>
<length>255</length>
<comment>name of this group of settings</comment>
</field>
<field>
<name>is_default</name>
+ <title>Is Default Mail Settings?</title>
<type>boolean</type>
<comment>whether this is the default set of settings for this domain</comment>
<add>2.2</add>
</field>
<field>
<name>domain</name>
+ <title>email Domain</title>
<type>varchar</type>
<length>255</length>
<comment>email address domain (the part after @)</comment>
</field>
<field>
<name>localpart</name>
+ <title>email Local Part</title>
<type>varchar</type>
<length>255</length>
<comment>optional local part (like civimail+ for addresses like civimail+s.1.2@example.com)</comment>
</field>
<field>
<name>return_path</name>
+ <title>Return Path</title>
<type>varchar</type>
<length>255</length>
<comment>contents of the Return-Path header</comment>
</field>
<field>
<name>protocol</name>
+ <title>Protocol</title>
<type>varchar</type>
<length>255</length>
<comment>name of the protocol to use for polling (like IMAP, POP3 or Maildir)</comment>
</field>
<field>
<name>server</name>
+ <title>Mail Server</title>
<type>varchar</type>
<length>255</length>
<comment>server to use when polling</comment>
</field>
<field>
<name>port</name>
+ <title>Mail Port</title>
<type>int unsigned</type>
<comment>port to use when polling</comment>
<add>2.2</add>
</field>
<field>
<name>username</name>
+ <title>Mail Account Username</title>
<type>varchar</type>
<length>255</length>
<comment>username to use when polling</comment>
</field>
<field>
<name>password</name>
+ <title>Mail Account Password</title>
<type>varchar</type>
<length>255</length>
<comment>password to use when polling</comment>
</field>
<field>
<name>is_ssl</name>
+ <title>Mail Account Uses SSL</title>
<type>boolean</type>
<comment>whether to use SSL or not</comment>
<add>2.2</add>
</field>
<field>
<name>source</name>
+ <title>Mail Folder</title>
<type>varchar</type>
<length>255</length>
<comment>folder to poll from when using IMAP, path to poll from when using Maildir, etc.</comment>
<comment>Store field mappings in import or export for reuse</comment>
<add>1.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Mapping ID</comment>
- <add>1.2</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Mapping ID</comment>
+ <add>1.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- <add>1.2</add>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ <add>1.2</add>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Name of Mapping</comment>
- <add>1.2</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Name of Mapping</comment>
+ <add>1.2</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Description of Mapping.</comment>
- <add>1.2</add>
+ <name>description</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Description of Mapping.</comment>
+ <add>1.2</add>
</field>
<field>
- <name>mapping_type</name>
- <type>enum</type>
- <values>Export, Import, Export Contributions, Import Contributions, Import Activity, Search Builder, Import Memberships, Import Participants</values>
- <comment>Type of Mapping.</comment>
- <add>1.2</add>
- <drop>2.1</drop>
+ <name>mapping_type</name>
+ <type>enum</type>
+ <values>Export, Import, Export Contributions, Import Contributions, Import Activity, Search Builder, Import
+ Memberships, Import Participants
+ </values>
+ <comment>Type of Mapping.</comment>
+ <add>1.2</add>
+ <drop>2.1</drop>
</field>
<field>
- <name>mapping_type_id</name>
- <type>int unsigned</type>
- <comment>Mapping Type</comment>
- <add>2.1</add>
- <pseudoconstant>
- <optionGroupName>mapping_type</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>mapping_type_id</name>
+ <type>int unsigned</type>
+ <comment>Mapping Type</comment>
+ <add>2.1</add>
+ <pseudoconstant>
+ <optionGroupName>mapping_type</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
<name>UI_name</name>
<fieldName>name</fieldName>
- <add>1.2</add>
+ <add>1.2</add>
</index>
</table>
<comment>Individual field mappings for Mapping</comment>
<add>1.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Mapping Field ID</comment>
- <add>1.2</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Mapping Field ID</comment>
+ <add>1.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- <add>1.2</add>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ <add>1.2</add>
</primaryKey>
<field>
- <name>mapping_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Mapping to which this field belongs</comment>
- <add>1.2</add>
+ <name>mapping_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Mapping to which this field belongs</comment>
+ <add>1.2</add>
</field>
<foreignKey>
- <name>mapping_id</name>
- <table>civicrm_mapping</table>
- <key>id</key>
- <add>1.2</add>
+ <name>mapping_id</name>
+ <table>civicrm_mapping</table>
+ <key>id</key>
+ <add>1.2</add>
</foreignKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Mapping field key</comment>
- <add>1.2</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Mapping field key</comment>
+ <add>1.2</add>
</field>
<field>
- <name>contact_type</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Contact Type in mapping</comment>
- <pseudoconstant>
- <table>civicrm_contact_type</table>
- <keyColumn>name</keyColumn>
- <labelColumn>label</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.2</add>
+ <name>contact_type</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Contact Type in mapping</comment>
+ <pseudoconstant>
+ <table>civicrm_contact_type</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>label</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.2</add>
</field>
<field>
- <name>column_number</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Column number for mapping set</comment>
- <add>1.2</add>
+ <name>column_number</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Column number for mapping set</comment>
+ <add>1.2</add>
</field>
<field>
- <name>location_type_id</name>
- <type>int unsigned</type>
- <comment>Location type of this mapping, if required</comment>
- <add>1.2</add>
+ <name>location_type_id</name>
+ <type>int unsigned</type>
+ <comment>Location type of this mapping, if required</comment>
+ <add>1.2</add>
</field>
<foreignKey>
- <name>location_type_id</name>
- <table>civicrm_location_type</table>
- <key>id</key>
- <add>1.2</add>
+ <name>location_type_id</name>
+ <table>civicrm_location_type</table>
+ <key>id</key>
+ <add>1.2</add>
</foreignKey>
<field>
- <name>phone_type</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Phone type, if required</comment>
- <add>1.2</add>
- <drop>2.2</drop>
+ <name>phone_type</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Phone type, if required</comment>
+ <add>1.2</add>
+ <drop>2.2</drop>
</field>
<field>
- <name>phone_type_id</name>
- <type>int unsigned</type>
- <comment>Which type of phone does this number belongs.</comment>
- <add>2.2</add>
+ <name>phone_type_id</name>
+ <type>int unsigned</type>
+ <comment>Which type of phone does this number belongs.</comment>
+ <add>2.2</add>
</field>
- <field>
- <name>im_provider_id</name>
- <type>int unsigned</type>
- <comment>Which type of IM Provider does this name belong.</comment>
- <add>3.0</add>
- <pseudoconstant>
- <optionGroupName>instant_messenger_service</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <field>
+ <name>im_provider_id</name>
+ <type>int unsigned</type>
+ <comment>Which type of IM Provider does this name belong.</comment>
+ <add>3.0</add>
+ <pseudoconstant>
+ <optionGroupName>instant_messenger_service</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>website_type_id</name>
- <type>int unsigned</type>
- <comment>Which type of website does this site belong</comment>
- <add>3.2</add>
- <pseudoconstant>
- <optionGroupName>website_type</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>website_type_id</name>
+ <type>int unsigned</type>
+ <comment>Which type of website does this site belong</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <optionGroupName>website_type</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>relationship_type_id</name>
- <type>int unsigned</type>
- <comment>Relationship type, if required</comment>
- <add>1.2</add>
+ <name>relationship_type_id</name>
+ <type>int unsigned</type>
+ <comment>Relationship type, if required</comment>
+ <add>1.2</add>
</field>
<foreignKey>
- <name>relationship_type_id</name>
- <table>civicrm_relationship_type</table>
- <key>id</key>
- <add>1.2</add>
+ <name>relationship_type_id</name>
+ <table>civicrm_relationship_type</table>
+ <key>id</key>
+ <add>1.2</add>
</foreignKey>
<field>
- <name>relationship_direction</name>
- <type>varchar</type>
- <length>6</length>
- <add>1.7</add>
+ <name>relationship_direction</name>
+ <type>varchar</type>
+ <length>6</length>
+ <add>1.7</add>
</field>
<field>
- <name>grouping</name>
- <type>int unsigned</type>
- <default>1</default>
- <comment>Used to group mapping_field records into related sets (e.g. for criteria sets in search builder mappings).</comment>
- <add>1.5</add>
+ <name>grouping</name>
+ <type>int unsigned</type>
+ <default>1</default>
+ <comment>Used to group mapping_field records into related sets (e.g. for criteria sets in search builder
+ mappings).
+ </comment>
+ <add>1.5</add>
</field>
<field>
- <name>operator</name>
- <type>varchar</type>
- <length>16</length>
- <type>enum</type>
- <comment>SQL WHERE operator for search-builder mapping fields (search criteria).</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getSearchBuilderOperators</callback>
- </pseudoconstant>
- <add>1.5</add>
- <html>
- <type>Select</type>
- </html>
+ <name>operator</name>
+ <type>varchar</type>
+ <length>16</length>
+ <type>enum</type>
+ <comment>SQL WHERE operator for search-builder mapping fields (search criteria).</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getSearchBuilderOperators</callback>
+ </pseudoconstant>
+ <add>1.5</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>value</name>
- <type>varchar</type>
- <length>255</length>
- <comment>SQL WHERE value for search-builder mapping fields.</comment>
- <add>1.5</add>
+ <name>value</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>SQL WHERE value for search-builder mapping fields.</comment>
+ <add>1.5</add>
</field>
</table>
<comment>Table to store menu items for all civicrm components.</comment>
<add>1.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>2.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>2.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this menu item for</comment>
- <add>3.0</add>
+ <name>domain_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this menu item for</comment>
+ <add>3.0</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>3.0</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>3.0</add>
</foreignKey>
<field>
- <name>path</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Path Name</comment>
- <add>2.1</add>
+ <name>path</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Path Name</comment>
+ <add>2.1</add>
</field>
<index>
<name>UI_path_domain_id</name>
<add>2.1</add>
</field>
<field>
- <name>title</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Menu Title</comment>
- <add>2.1</add>
+ <name>title</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Menu Title</comment>
+ <add>2.1</add>
</field>
<field>
<name>access_callback</name>
</html>
</field>
<foreignKey>
- <name>component_id</name>
- <table>civicrm_component</table>
- <key>id</key>
- <add>2.1</add>
+ <name>component_id</name>
+ <table>civicrm_component</table>
+ <key>id</key>
+ <add>2.1</add>
</foreignKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this menu item active?</comment>
- <add>2.1</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <comment>Is this menu item active?</comment>
+ <add>2.1</add>
</field>
<field>
- <name>is_public</name>
- <type>boolean</type>
- <comment>Is this menu accessible to the public?</comment>
- <add>2.1</add>
+ <name>is_public</name>
+ <type>boolean</type>
+ <comment>Is this menu accessible to the public?</comment>
+ <add>2.1</add>
</field>
<field>
- <name>is_exposed</name>
- <type>boolean</type>
- <comment>Is this menu exposed to the navigation system?</comment>
- <add>2.1</add>
+ <name>is_exposed</name>
+ <type>boolean</type>
+ <comment>Is this menu exposed to the navigation system?</comment>
+ <add>2.1</add>
</field>
<field>
- <name>is_ssl</name>
- <type>boolean</type>
- <comment>Should this menu be exposed via SSL if enabled?</comment>
- <add>2.1</add>
+ <name>is_ssl</name>
+ <type>boolean</type>
+ <comment>Should this menu be exposed via SSL if enabled?</comment>
+ <add>2.1</add>
</field>
<field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Ordering of the menu items in various blocks.</comment>
- <add>2.1</add>
+ <name>weight</name>
+ <type>int</type>
+ <required>true</required>
+ <default>1</default>
+ <comment>Ordering of the menu items in various blocks.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>type</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Drupal menu type.</comment>
- <add>2.1</add>
+ <name>type</name>
+ <type>int</type>
+ <required>true</required>
+ <default>1</default>
+ <comment>Drupal menu type.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>page_type</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>CiviCRM menu type.</comment>
- <add>2.1</add>
+ <name>page_type</name>
+ <type>int</type>
+ <required>true</required>
+ <default>1</default>
+ <comment>CiviCRM menu type.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>skipBreadcrumb</name>
- <type>boolean</type>
- <comment>skip this url being exposed to breadcrumb</comment>
- <add>2.2</add>
+ <name>skipBreadcrumb</name>
+ <type>boolean</type>
+ <comment>skip this url being exposed to breadcrumb</comment>
+ <add>2.2</add>
</field>
</table>
<comment>Users will need a way to save and retrieve templates with tokens for use in recurring email communication tasks</comment>
<add>1.6</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Message Template ID</comment>
- <add>1.6</add>
+ <name>id</name>
+ <title>Message Template ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Message Template ID</comment>
+ <add>1.6</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>msg_title</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Descriptive title of message</comment>
- <add>1.6</add>
+ <name>msg_title</name>
+ <title>Message Template Title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Descriptive title of message</comment>
+ <add>1.6</add>
</field>
<field>
- <name>msg_subject</name>
- <type>text</type>
- <comment>Subject for email message.</comment>
- <add>1.6</add>
- <!-- type changed from VARCHAR(255) to TEXT in 3.1 -->
+ <name>msg_subject</name>
+ <title>Message Template Subject</title>
+ <type>text</type>
+ <comment>Subject for email message.</comment>
+ <add>1.6</add>
+ <!-- type changed from VARCHAR(255) to TEXT in 3.1 -->
</field>
<field>
- <name>msg_text</name>
- <type>longtext</type>
- <html>
- <type>TextArea</type>
- <rows>10</rows>
- <cols>75</cols>
- </html>
- <comment>Text formatted message</comment>
- <add>1.6</add>
- <!-- type changed from TEXT to LONGTEXT in 4.3 -->
+ <name>msg_text</name>
+ <title>Message Template Text</title>
+ <type>longtext</type>
+ <html>
+ <type>TextArea</type>
+ <rows>10</rows>
+ <cols>75</cols>
+ </html>
+ <comment>Text formatted message</comment>
+ <add>1.6</add>
+ <!-- type changed from TEXT to LONGTEXT in 4.3 -->
</field>
<field>
- <name>msg_html</name>
- <type>longtext</type>
- <html>
- <type>RichTextEditor</type>
- <rows>10</rows>
- <cols>75</cols>
- </html>
- <comment>HTML formatted message</comment>
- <add>1.6</add>
- <!-- type changed from TEXT to LONGTEXT in 4.3 -->
+ <name>msg_html</name>
+ <title>Message Template HTML</title>
+ <type>longtext</type>
+ <html>
+ <type>RichTextEditor</type>
+ <rows>10</rows>
+ <cols>75</cols>
+ </html>
+ <comment>HTML formatted message</comment>
+ <add>1.6</add>
+ <!-- type changed from TEXT to LONGTEXT in 4.3 -->
</field>
<field>
- <name>is_active</name>
- <title>Is Active</title>
- <type>boolean</type>
- <default>1</default>
- <add>1.6</add>
+ <name>is_active</name>
+ <title>Is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <add>1.6</add>
</field>
<field>
- <name>workflow_id</name>
- <type>int unsigned</type>
- <comment>a pseudo-FK to civicrm_option_value</comment>
- <add>3.1</add>
+ <name>workflow_id</name>
+ <title>Message Template Workflow</title>
+ <type>int unsigned</type>
+ <comment>a pseudo-FK to civicrm_option_value</comment>
+ <add>3.1</add>
</field>
<field>
- <name>is_default</name>
- <type>boolean</type>
- <default>1</default>
- <comment>is this the default message template for the workflow referenced by workflow_id?</comment>
- <add>3.1</add>
+ <name>is_default</name>
+ <title>Message Template Is Default?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>is this the default message template for the workflow referenced by workflow_id?</comment>
+ <add>3.1</add>
</field>
<field>
- <name>is_reserved</name>
- <type>boolean</type>
- <comment>is this the reserved message template which we ship for the workflow referenced by workflow_id?</comment>
- <add>3.1</add>
+ <name>is_reserved</name>
+ <title>Message Template Is Reserved?</title>
+ <type>boolean</type>
+ <comment>is this the reserved message template which we ship for the workflow referenced by workflow_id?</comment>
+ <add>3.1</add>
</field>
<field>
- <name>pdf_format_id</name>
- <type>int unsigned</type>
- <comment>a pseudo-FK to civicrm_option_value containing PDF Page Format.</comment>
- <pseudoconstant>
- <optionGroupName>pdf_format</optionGroupName>
- </pseudoconstant>
- <add>3.4</add>
+ <name>pdf_format_id</name>
+ <title>Message Template Format</title>
+ <type>int unsigned</type>
+ <comment>a pseudo-FK to civicrm_option_value containing PDF Page Format.</comment>
+ <pseudoconstant>
+ <optionGroupName>pdf_format</optionGroupName>
+ </pseudoconstant>
+ <add>3.4</add>
</field>
</table>
<comment>Table to store navigation.</comment>
<add>3.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>3.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this navigation item for</comment>
- <add>3.0</add>
+ <name>domain_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this navigation item for</comment>
+ <add>3.0</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>3.0</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>3.0</add>
</foreignKey>
<field>
- <name>label</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Navigation Title</comment>
- <add>3.0</add>
+ <name>label</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Navigation Title</comment>
+ <add>3.0</add>
</field>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Internal Name</comment>
- <add>3.0</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Internal Name</comment>
+ <add>3.0</add>
</field>
<field>
<name>url</name>
<add>3.0</add>
</field>
<field>
- <name>permission</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Permission for menu item</comment>
- <add>3.0</add>
+ <name>permission</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Permission for menu item</comment>
+ <add>3.0</add>
</field>
<field>
- <name>permission_operator</name>
- <type>varchar</type>
- <length>3</length>
- <comment>Permission Operator</comment>
- <add>3.0</add>
+ <name>permission_operator</name>
+ <type>varchar</type>
+ <length>3</length>
+ <comment>Permission Operator</comment>
+ <add>3.0</add>
</field>
<field>
- <name>parent_id</name>
- <type>int unsigned</type>
- <comment>Parent navigation item, used for grouping</comment>
- <add>3.0</add>
+ <name>parent_id</name>
+ <type>int unsigned</type>
+ <comment>Parent navigation item, used for grouping</comment>
+ <add>3.0</add>
</field>
<foreignKey>
- <name>parent_id</name>
- <table>civicrm_navigation</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>3.0</add>
+ <name>parent_id</name>
+ <table>civicrm_navigation</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>3.0</add>
</foreignKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this navigation item active?</comment>
- <add>3.0</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <comment>Is this navigation item active?</comment>
+ <add>3.0</add>
</field>
<field>
- <name>has_separator</name>
- <type>boolean</type>
- <comment>If separator needs to be added after this menu item</comment>
- <add>3.0</add>
+ <name>has_separator</name>
+ <type>boolean</type>
+ <comment>If separator needs to be added after this menu item</comment>
+ <add>3.0</add>
</field>
<field>
<name>weight</name>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Note ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Note ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Note ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Name of table where item being referenced is stored.</comment>
- <add>1.1</add>
+ <name>entity_table</name>
+ <title>Note Entity</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Name of table where item being referenced is stored.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign key to the referenced item.</comment>
- <add>1.1</add>
+ <name>entity_id</name>
+ <title>Note Entity ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign key to the referenced item.</comment>
+ <add>1.1</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.1</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.1</add>
</dynamicForeignKey>
<index>
- <name>index_entity</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>1.1</add>
+ <name>index_entity</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>1.1</add>
</index>
<field>
- <name>note</name>
- <type>text</type>
- <comment>Note and/or Comment.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>60</cols>
- </html>
- <import>true</import>
- <headerPattern>/Note|Comment/i</headerPattern>
- <dataPattern>//</dataPattern>
- <add>1.1</add>
+ <name>note</name>
+ <title>Note</title>
+ <type>text</type>
+ <comment>Note and/or Comment.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>60</cols>
+ </html>
+ <import>true</import>
+ <headerPattern>/Note|Comment/i</headerPattern>
+ <dataPattern>//</dataPattern>
+ <add>1.1</add>
</field>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID creator</comment>
- <add>1.1</add>
+ <name>contact_id</name>
+ <title>Note Created By</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID creator</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>modified_date</name>
- <type>date</type>
- <comment>When was this note last modified/edited</comment>
- <add>1.1</add>
+ <name>modified_date</name>
+ <title>Note Modified By</title>
+ <type>date</type>
+ <comment>When was this note last modified/edited</comment>
+ <add>1.1</add>
</field>
<field>
- <name>subject</name>
- <type>varchar</type>
- <length>255</length>
- <comment>subject of note description</comment>
- <add>1.5</add>
+ <name>subject</name>
+ <title>Subject</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>subject of note description</comment>
+ <add>1.5</add>
</field>
<field>
- <name>privacy</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Foreign Key to Note Privacy Level (which is an option value pair and hence an implicit FK)</comment>
- <add>3.3</add>
+ <name>privacy</name>
+ <title>Privacy</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Foreign Key to Note Privacy Level (which is an option value pair and hence an implicit FK)</comment>
+ <add>3.3</add>
</field>
</table>
<comment>OpenID information for a specific location.</comment>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique OpenID ID</comment>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique OpenID ID</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>2.0</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>location_type_id</name>
- <title>OpenID Location Type</title>
- <type>int unsigned</type>
- <comment>Which Location does this email belong to.</comment>
- <add>2.0</add>
+ <name>location_type_id</name>
+ <title>OpenID Location Type</title>
+ <type>int unsigned</type>
+ <comment>Which Location does this email belong to.</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_location_type</name>
<add>2.0</add>
</index>
<field>
- <name>openid</name>
- <title>OpenID</title>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <headerPattern>/^Open.?ID|u(niq\w*)?.?ID/i</headerPattern>
- <dataPattern>/^[\w\/\:\.]+$/</dataPattern>
- <comment>the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM</comment>
- <rule>url</rule>
- <comment>OpenID</comment>
- <add>2.0</add>
+ <name>openid</name>
+ <title>OpenID</title>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <headerPattern>/^Open.?ID|u(niq\w*)?.?ID/i</headerPattern>
+ <dataPattern>/^[\w\/\:\.]+$/</dataPattern>
+ <comment>the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM</comment>
+ <rule>url</rule>
+ <comment>OpenID</comment>
+ <add>2.0</add>
</field>
<index>
- <name>UI_openid</name>
- <fieldName>openid</fieldName>
- <unique>true</unique>
- <add>2.0</add>
+ <name>UI_openid</name>
+ <fieldName>openid</fieldName>
+ <unique>true</unique>
+ <add>2.0</add>
</index>
<field>
- <name>allowed_to_login</name>
- <type>boolean</type>
- <required>true</required>
- <default>0</default>
- <comment>Whether or not this user is allowed to login</comment>
- <add>2.0</add>
+ <name>allowed_to_login</name>
+ <type>boolean</type>
+ <required>true</required>
+ <default>0</default>
+ <comment>Whether or not this user is allowed to login</comment>
+ <add>2.0</add>
</field>
<field>
- <name>is_primary</name>
- <title>Is OpenID Primary?</title>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the primary email for this contact and location.</comment>
- <add>2.0</add>
+ <name>is_primary</name>
+ <title>Is OpenID Primary?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the primary email for this contact and location.</comment>
+ <add>2.0</add>
</field>
</table>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Option Group ID</comment>
- <add>1.5</add>
+ <name>id</name>
+ <title>Option Group ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Option Group ID</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Option Group Name</title>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Option group name. Used as selection key by class properties which lookup options in civicrm_option_value.</comment>
- <add>1.5</add>
+ <name>name</name>
+ <title>Option Group Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Option group name. Used as selection key by class properties which lookup options in civicrm_option_value.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>title</name>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Option Group title.</comment>
- <add>1.5</add>
+ <name>title</name>
+ <title>Option Group title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Option Group title.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Option group description.</comment>
- <add>1.5</add>
+ <name>description</name>
+ <title>Option Group Description</title>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Option group description.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_reserved</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this a predefined system option group (i.e. it can not be deleted)?</comment>
- <add>1.5</add>
+ <name>is_reserved</name>
+ <title>Option Group Is Reserved?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this a predefined system option group (i.e. it can not be deleted)?</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this option group active?</comment>
- <add>1.5</add>
+ <name>is_active</name>
+ <title>Option Group Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this option group active?</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_locked</name>
- <type>boolean</type>
- <comment>A lock to remove the ability to add new options via the UI.</comment>
- <add>4.5</add>
+ <name>is_locked</name>
+ <title>Option Group Is Locked</title>
+ <type>boolean</type>
+ <comment>A lock to remove the ability to add new options via the UI.</comment>
+ <add>4.5</add>
</field>
<index>
<name>UI_name</name>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Option ID</comment>
- <add>1.5</add>
+ <name>id</name>
+ <title>Option Value ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Option ID</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>option_group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Group which this option belongs to.</comment>
- <add>1.5</add>
- <pseudoconstant>
- <table>civicrm_option_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>option_group_id</name>
+ <title>Option Group ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Group which this option belongs to.</comment>
+ <add>1.5</add>
+ <pseudoconstant>
+ <table>civicrm_option_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>option_group_id</name>
- <table>civicrm_option_group</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>CASCADE</onDelete>
+ <name>option_group_id</name>
+ <table>civicrm_option_group</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>label</name>
- <title>Option Label</title>
- <type>varchar</type>
- <required>true</required>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Option string as displayed to users - e.g. the label in an HTML OPTION tag.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>value</name>
- <title>Option Value</title>
- <type>varchar</type>
- <length>512</length>
- <required>true</required>
- <comment>The actual value stored (as a foreign key) in the data record. Functions which need lookup option_value.title should use civicrm_option_value.option_group_id plus civicrm_option_value.value as the key.</comment>
- <add>1.5</add>
- <change>3.3</change>
- </field>
- <field>
- <name>name</name>
- <title>Option Name</title>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <comment>Stores a fixed (non-translated) name for this option value. Lookup functions should use the name as the key for the option value row.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>grouping</name>
- <title>Option Grouping Name</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Use to sort and/or set display properties for sub-set(s) of options within an option group. EXAMPLE: Use for college_interest field, to differentiate partners from non-partners.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>filter</name>
- <type>int unsigned</type>
- <comment>Bitwise logic can be used to create subsets of options within an option_group for different uses.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>is_default</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the default option for the group?</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>weight</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Controls display sort order.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>description</name>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>8</rows>
- <cols>60</cols>
- </html>
- <localizable>true</localizable>
- <comment>Optional description.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>is_optgroup</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this row simply a display header? Expected usage is to render these as OPTGROUP tags within a SELECT field list of options?</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>is_reserved</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this a predefined system object?</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this option active?</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>component_id</name>
- <type>int unsigned</type>
- <comment>Component that this option value belongs/caters to.</comment>
- <add>2.0</add>
- <pseudoconstant>
- <table>civicrm_component</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>label</name>
+ <title>Option Label</title>
+ <type>varchar</type>
+ <required>true</required>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Option string as displayed to users - e.g. the label in an HTML OPTION tag.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>value</name>
+ <title>Option Value</title>
+ <type>varchar</type>
+ <length>512</length>
+ <required>true</required>
+ <comment>The actual value stored (as a foreign key) in the data record. Functions which need lookup option_value.title should use civicrm_option_value.option_group_id plus civicrm_option_value.value as the key.</comment>
+ <add>1.5</add>
+ <change>3.3</change>
+ </field>
+ <field>
+ <name>name</name>
+ <title>Option Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <comment>Stores a fixed (non-translated) name for this option value. Lookup functions should use the name as the key for the option value row.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>grouping</name>
+ <title>Option Grouping Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Use to sort and/or set display properties for sub-set(s) of options within an option group. EXAMPLE: Use for college_interest field, to differentiate partners from non-partners.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>filter</name>
+ <type>int unsigned</type>
+ <comment>Bitwise logic can be used to create subsets of options within an option_group for different uses.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>is_default</name>
+ <title>Option is Default?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the default option for the group?</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>weight</name>
+ <title>Option Weight</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Controls display sort order.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>description</name>
+ <title>Option Description</title>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>8</rows>
+ <cols>60</cols>
+ </html>
+ <localizable>true</localizable>
+ <comment>Optional description.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>is_optgroup</name>
+ <title>Option is Header?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this row simply a display header? Expected usage is to render these as OPTGROUP tags within a SELECT field list of options?</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>is_reserved</name>
+ <title>Option Is Reserved?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this a predefined system object?</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>is_active</name>
+ <title>Option Is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this option active?</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>component_id</name>
+ <title>Option Component</title>
+ <type>int unsigned</type>
+ <comment>Component that this option value belongs/caters to.</comment>
+ <add>2.0</add>
+ <pseudoconstant>
+ <table>civicrm_component</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>component_id</name>
- <table>civicrm_component</table>
- <key>id</key>
- <add>2.0</add>
+ <name>component_id</name>
+ <table>civicrm_component</table>
+ <key>id</key>
+ <add>2.0</add>
</foreignKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this option value for</comment>
- <add>3.1</add>
+ <name>domain_id</name>
+ <title>Option Domain</title>
+ <type>int unsigned</type>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this option value for</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>3.1</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>3.1</add>
</foreignKey>
<field>
- <name>visibility_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <add>2.2</add>
+ <name>visibility_id</name>
+ <title>Option Visibility</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
<index>
- <name>index_option_group_id_value</name>
- <fieldName length="128">value</fieldName>
- <fieldName>option_group_id</fieldName>
- <add>1.5</add>
+ <name>index_option_group_id_value</name>
+ <fieldName length="128">value</fieldName>
+ <fieldName>option_group_id</fieldName>
+ <add>1.5</add>
</index>
<index>
<name>index_option_group_id_name</name>
<comment>DB Template Customization strings</comment>
<add>3.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Persistent Record Id</comment>
- <add>3.2</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Persistent Record Id</comment>
+ <add>3.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>false</autoincrement>
+ <name>id</name>
+ <autoincrement>false</autoincrement>
</primaryKey>
<field>
- <name>context</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Context for which name data pair is to be stored</comment>
- <required>true</required>
- <add>3.2</add>
+ <name>context</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Context for which name data pair is to be stored</comment>
+ <required>true</required>
+ <add>3.2</add>
</field>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Name of Context</comment>
- <required>true</required>
- <add>3.2</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Name of Context</comment>
+ <required>true</required>
+ <add>3.2</add>
</field>
<field>
- <name>data</name>
- <type>longtext</type>
- <comment>data associated with name</comment>
- <add>3.2</add>
+ <name>data</name>
+ <type>longtext</type>
+ <comment>data associated with name</comment>
+ <add>3.2</add>
</field>
<field>
- <name>is_config</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Config Settings</comment>
- <required>true</required>
- <add>3.2</add>
+ <name>is_config</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Config Settings</comment>
+ <required>true</required>
+ <add>3.2</add>
</field>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique Phone ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Phone ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique Phone ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>2.0</add>
+ <name>contact_id</name>
+ <title>Phone Contact</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>location_type_id</name>
- <title>Phone Location Type</title>
- <type>int unsigned</type>
- <comment>Which Location does this phone belong to.</comment>
- <pseudoconstant>
- <table>civicrm_location_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>display_name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>2.0</add>
+ <name>location_type_id</name>
+ <title>Phone Location Type</title>
+ <type>int unsigned</type>
+ <comment>Which Location does this phone belong to.</comment>
+ <pseudoconstant>
+ <table>civicrm_location_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>display_name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>2.0</add>
</field>
<index>
<name>index_location_type</name>
<add>2.0</add>
</index>
<field>
- <name>is_primary</name>
- <title>Is Phone Primary?</title>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the primary phone for this contact and location.</comment>
- <add>1.1</add>
+ <name>is_primary</name>
+ <title>Is Phone Primary?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the primary phone for this contact and location.</comment>
+ <add>1.1</add>
</field>
<index>
<name>index_is_primary</name>
<add>2.0</add>
</index>
<field>
- <name>is_billing</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the billing?</comment>
- <add>2.0</add>
+ <name>is_billing</name>
+ <title>Is Billing Phone</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the billing?</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_is_billing</name>
<add>2.0</add>
</index>
<field>
- <name>mobile_provider_id</name>
- <type>int unsigned</type>
- <comment>Which Mobile Provider does this phone belong to.</comment>
- <add>1.1</add>
+ <name>mobile_provider_id</name>
+ <title>Mobile Provider</title>
+ <type>int unsigned</type>
+ <comment>Which Mobile Provider does this phone belong to.</comment>
+ <add>1.1</add>
</field>
<index>
- <name>UI_mobile_provider_id</name>
- <fieldName>mobile_provider_id</fieldName>
- <add>1.6</add>
+ <name>UI_mobile_provider_id</name>
+ <fieldName>mobile_provider_id</fieldName>
+ <add>1.6</add>
</index>
<field>
- <name>phone</name>
- <type>varchar</type>
- <length>32</length>
- <import>true</import>
- <headerPattern>/phone/i</headerPattern>
- <dataPattern>/^[\d\(\)\-\.\s]+$/</dataPattern>
- <comment>Complete phone number.</comment>
- <add>1.1</add>
+ <name>phone</name>
+ <type>varchar</type>
+ <length>32</length>
+ <import>true</import>
+ <headerPattern>/phone/i</headerPattern>
+ <dataPattern>/^[\d\(\)\-\.\s]+$/</dataPattern>
+ <comment>Complete phone number.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>phone_ext</name>
- <title>Phone Extension</title>
- <type>varchar</type>
- <length>16</length>
- <html>
- <type>Text</type>
- <size>FOUR</size>
- </html>
- <import>true</import>
- <export>true</export>
- <headerPattern>/extension/i</headerPattern>
- <dataPattern>/^\d+$/</dataPattern>
- <comment>Optional extension for a phone number.</comment>
- <add>3.3</add>
+ <name>phone_ext</name>
+ <title>Phone Extension</title>
+ <type>varchar</type>
+ <length>16</length>
+ <html>
+ <type>Text</type>
+ <size>FOUR</size>
+ </html>
+ <import>true</import>
+ <export>true</export>
+ <headerPattern>/extension/i</headerPattern>
+ <dataPattern>/^\d+$/</dataPattern>
+ <comment>Optional extension for a phone number.</comment>
+ <add>3.3</add>
</field>
<field>
- <name>phone_numeric</name>
- <type>varchar</type>
- <length>32</length>
- <comment>Phone number stripped of all whitespace, letters, and punctuation.</comment>
- <add>4.3</add>
+ <name>phone_numeric</name>
+ <type>varchar</type>
+ <length>32</length>
+ <comment>Phone number stripped of all whitespace, letters, and punctuation.</comment>
+ <add>4.3</add>
</field>
<index>
<name>index_phone_numeric</name>
<add>4.3</add>
</index>
<field>
- <name>phone_type</name>
- <type>enum</type>
- <values>Phone, Mobile, Fax, Pager</values>
- <headerPattern>/phone\s+type/i</headerPattern>
- <dataPattern>/phone|mobile|fax|pager/i</dataPattern>
- <comment>What type of telecom device is this.</comment>
- <add>1.1</add>
- <drop>2.2</drop>
+ <name>phone_type</name>
+ <type>enum</type>
+ <values>Phone, Mobile, Fax, Pager</values>
+ <headerPattern>/phone\s+type/i</headerPattern>
+ <dataPattern>/phone|mobile|fax|pager/i</dataPattern>
+ <comment>What type of telecom device is this.</comment>
+ <add>1.1</add>
+ <drop>2.2</drop>
</field>
<field>
- <name>phone_type_id</name>
- <title>Phone Type</title>
- <type>int unsigned</type>
- <comment>Which type of phone does this number belongs.</comment>
- <pseudoconstant>
- <optionGroupName>phone_type</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>2.2</add>
+ <name>phone_type_id</name>
+ <title>Phone Type</title>
+ <type>int unsigned</type>
+ <comment>Which type of phone does this number belongs.</comment>
+ <pseudoconstant>
+ <optionGroupName>phone_type</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>2.2</add>
</field>
</table>
<drop>4.1</drop>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>1.8</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Which Domain is this menu item for</comment>
- <add>3.0</add>
+ <name>domain_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Which Domain is this menu item for</comment>
+ <add>3.0</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>3.0</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>3.0</add>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>1.8</add>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>1.8</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>1.8</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>1.8</add>
</foreignKey>
<field>
- <name>is_domain</name>
- <type>boolean</type>
- <comment>Is this the record for the domain setting?</comment>
- <add>1.8</add>
+ <name>is_domain</name>
+ <type>boolean</type>
+ <comment>Is this the record for the domain setting?</comment>
+ <add>1.8</add>
</field>
<field>
- <name>location_count</name>
- <type>int unsigned</type>
- <comment>Number of locations to be displayed on edit page?</comment>
- <add>1.8</add>
- <drop>3.0</drop>
+ <name>location_count</name>
+ <type>int unsigned</type>
+ <comment>Number of locations to be displayed on edit page?</comment>
+ <add>1.8</add>
+ <drop>3.0</drop>
</field>
<field>
- <name>contact_view_options</name>
- <type>varchar</type>
- <length>128</length>
- <comment>What tabs are displayed in the contact summary</comment>
- <add>1.8</add>
+ <name>contact_view_options</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>What tabs are displayed in the contact summary</comment>
+ <add>1.8</add>
</field>
<index>
<name>index_contact_view_options</name>
<add>1.8</add>
</index>
<field>
- <name>contact_edit_options</name>
- <type>varchar</type>
- <length>128</length>
- <comment>What tabs are displayed in the contact edit</comment>
- <add>1.8</add>
+ <name>contact_edit_options</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>What tabs are displayed in the contact edit</comment>
+ <add>1.8</add>
</field>
<index>
<name>index_contact_edit_options</name>
<add>1.8</add>
</index>
<field>
- <name>advanced_search_options</name>
- <type>varchar</type>
- <length>128</length>
- <comment>What tabs are displayed in the advanced search screen</comment>
- <add>1.8</add>
+ <name>advanced_search_options</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>What tabs are displayed in the advanced search screen</comment>
+ <add>1.8</add>
</field>
<index>
<name>index_advanced_search_options</name>
<add>1.8</add>
</index>
<field>
- <name>user_dashboard_options</name>
- <type>varchar</type>
- <length>128</length>
- <comment>What tabs are displayed in the contact edit</comment>
- <add>1.8</add>
+ <name>user_dashboard_options</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>What tabs are displayed in the contact edit</comment>
+ <add>1.8</add>
</field>
<index>
<name>index_user_dashboard_options</name>
<add>1.8</add>
</index>
<field>
- <name>address_options</name>
- <type>varchar</type>
- <length>128</length>
- <comment>What fields are displayed from the address table</comment>
- <add>1.8</add>
+ <name>address_options</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>What fields are displayed from the address table</comment>
+ <add>1.8</add>
</field>
- <index>
+ <index>
<name>index_address_options</name>
<fieldName>address_options</fieldName>
<add>1.8</add>
</index>
<field>
- <name>address_format</name>
- <type>text</type>
- <comment>Format to display the address</comment>
- <add>1.8</add>
+ <name>address_format</name>
+ <type>text</type>
+ <comment>Format to display the address</comment>
+ <add>1.8</add>
</field>
<field>
- <name>mailing_format</name>
- <type>text</type>
- <comment>Format to display a mailing label</comment>
- <add>1.8</add>
+ <name>mailing_format</name>
+ <type>text</type>
+ <comment>Format to display a mailing label</comment>
+ <add>1.8</add>
</field>
<field>
- <name>display_name_format</name>
- <type>text</type>
- <comment>Format to display contact display name</comment>
- <add>3.2</add>
+ <name>display_name_format</name>
+ <type>text</type>
+ <comment>Format to display contact display name</comment>
+ <add>3.2</add>
</field>
<field>
- <name>sort_name_format</name>
- <type>text</type>
- <comment>Format to display contact sort name</comment>
- <add>3.2</add>
+ <name>sort_name_format</name>
+ <type>text</type>
+ <comment>Format to display contact sort name</comment>
+ <add>3.2</add>
</field>
<field>
- <name>individual_name_format</name>
- <type>text</type>
- <comment>Format to display a individual name</comment>
- <add>1.8</add>
- <drop>3.0</drop>
+ <name>individual_name_format</name>
+ <type>text</type>
+ <comment>Format to display a individual name</comment>
+ <add>1.8</add>
+ <drop>3.0</drop>
</field>
<field>
- <name>address_standardization_provider</name>
- <type>varchar</type>
- <length>64</length>
- <comment>object name of provider for address standarization</comment>
- <add>1.8</add>
+ <name>address_standardization_provider</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>object name of provider for address standarization</comment>
+ <add>1.8</add>
</field>
<field>
- <name>address_standardization_userid</name>
- <type>varchar</type>
- <length>64</length>
- <comment>user id for provider login</comment>
- <add>1.8</add>
+ <name>address_standardization_userid</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>user id for provider login</comment>
+ <add>1.8</add>
</field>
<field>
- <name>address_standardization_url</name>
- <type>varchar</type>
- <length>255</length>
- <comment>url of address standardization service</comment>
- <add>1.8</add>
+ <name>address_standardization_url</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>url of address standardization service</comment>
+ <add>1.8</add>
</field>
- <field>
- <name>editor_id</name>
- <type>int unsigned</type>
- <length>4</length>
- <comment>ID of the editor</comment>
- <add>2.1</add>
+ <field>
+ <name>editor_id</name>
+ <type>int unsigned</type>
+ <length>4</length>
+ <comment>ID of the editor</comment>
+ <add>2.1</add>
</field>
- <field>
- <name>mailing_backend</name>
- <type>text</type>
- <comment>Smtp Backend configuration.</comment>
- <html>
- <type>TextArea</type>
- <rows>20</rows>
- <cols>80</cols>
- </html>
- <add>2.2</add>
+ <field>
+ <name>mailing_backend</name>
+ <type>text</type>
+ <comment>Smtp Backend configuration.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>20</rows>
+ <cols>80</cols>
+ </html>
+ <add>2.2</add>
</field>
<field>
- <name>navigation</name>
- <type>text</type>
- <comment>Store navigation for the Contact</comment>
- <add>3.0</add>
+ <name>navigation</name>
+ <type>text</type>
+ <comment>Store navigation for the Contact</comment>
+ <add>3.0</add>
</field>
<field>
- <name>contact_autocomplete_options</name>
- <type>varchar</type>
- <length>255</length>
- <comment>What Autocomplete has to return</comment>
- <add>3.1</add>
+ <name>contact_autocomplete_options</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>What Autocomplete has to return</comment>
+ <add>3.1</add>
</field>
</table>
<add>2.0</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>The meta name for this date (fixed in code)</comment>
- <add>2.0</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>The meta name for this date (fixed in code)</comment>
+ <add>2.0</add>
</field>
<index>
<name>index_name</name>
<add>2.0</add>
</index>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Description of this date type.</comment>
- <add>2.0</add>
+ <name>description</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Description of this date type.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>start</name>
- <type>int</type>
- <required>true</required>
- <comment>The start offset relative to current year</comment>
- <add>2.0</add>
+ <name>start</name>
+ <type>int</type>
+ <required>true</required>
+ <comment>The start offset relative to current year</comment>
+ <add>2.0</add>
</field>
<field>
- <name>end</name>
- <type>int</type>
- <required>true</required>
- <comment>The end offset relative to current year, can be negative</comment>
- <add>2.0</add>
+ <name>end</name>
+ <type>int</type>
+ <required>true</required>
+ <comment>The end offset relative to current year, can be negative</comment>
+ <add>2.0</add>
</field>
<field>
- <name>minute_increment</name>
- <type>int</type>
- <comment>The minute increment number</comment>
- <add>2.0</add>
- <drop>3.1</drop>
+ <name>minute_increment</name>
+ <type>int</type>
+ <comment>The minute increment number</comment>
+ <add>2.0</add>
+ <drop>3.1</drop>
</field>
<field>
- <name>date_format</name>
- <type>varchar</type>
- <length>64</length>
- <comment>The date type</comment>
- <add>2.0</add>
+ <name>date_format</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>The date type</comment>
+ <add>2.0</add>
</field>
<field>
- <name>time_format</name>
- <type>varchar</type>
- <length>64</length>
- <comment>time format</comment>
- <add>3.1</add>
+ <name>time_format</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>time format</comment>
+ <add>3.1</add>
</field>
</table>
<comment>Table to cache items for navigation on civicrm searched results.</comment>
<add>3.4</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>3.4</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>3.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <comment>physical tablename for entity being joined to discount, e.g. civicrm_event</comment>
- <add>3.4</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>physical tablename for entity being joined to discount, e.g. civicrm_event</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_id1</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to entity table specified in entity_table column.</comment>
- <add>3.4</add>
+ <name>entity_id1</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to entity table specified in entity_table column.</comment>
+ <add>3.4</add>
</field>
<field>
- <name>entity_id2</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to entity table specified in entity_table column.</comment>
- <add>3.4</add>
+ <name>entity_id2</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to entity table specified in entity_table column.</comment>
+ <add>3.4</add>
</field>
<field>
<name>cacheKey</name>
<add>4.2</add>
</field>
<index>
- <name>index_all</name>
- <fieldName>cacheKey</fieldName>
- <fieldName>entity_id1</fieldName>
- <fieldName>entity_id2</fieldName>
- <fieldName>entity_table</fieldName>
- <fieldName>is_selected</fieldName>
+ <name>index_all</name>
+ <fieldName>cacheKey</fieldName>
+ <fieldName>entity_id1</fieldName>
+ <fieldName>entity_id2</fieldName>
+ <fieldName>entity_table</fieldName>
+ <fieldName>is_selected</fieldName>
</index>
</table>
<add>4.4</add>
<field>
<name>id</name>
+ <title>Print Label ID</title>
<type>int unsigned</type>
<required>true</required>
<add>4.4</add>
</field>
<field>
<name>label_format_name</name>
+ <title>Label Format</title>
<type>varchar</type>
<length>255</length>
<pseudoconstant>
</field>
<field>
<name>label_type_id</name>
+ <title>Label Type</title>
<type>int unsigned</type>
<pseudoconstant>
<optionGroupName>label_type</optionGroupName>
</field>
<field>
<name>is_default</name>
+ <title>Label is Default?</title>
<type>boolean</type>
<default>1</default>
<comment>Is this default?</comment>
</field>
<field>
<name>is_active</name>
+ <title>Label Is Active?</title>
<type>boolean</type>
<default>1</default>
<comment>Is this option active?</comment>
</field>
<field>
<name>is_reserved</name>
+ <title>Is Label Reserved?</title>
<type>boolean</type>
<default>1</default>
<comment>Is this reserved label?</comment>
</field>
<field>
<name>created_id</name>
+ <title>Label Created By</title>
<type>int unsigned</type>
<title>Created By Contact ID</title>
<comment>FK to civicrm_contact, who created this label layout</comment>
<comment>Table to store civicrm settings for civicrm core and components.</comment>
<add>4.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>4.1</add>
+ <name>id</name>
+ <title>Setting ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>4.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>group_name</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>group name for setting element, useful in caching setting elements</comment>
- <add>4.1</add>
+ <name>group_name</name>
+ <title>Setting Group</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>group name for setting element, useful in caching setting elements</comment>
+ <add>4.1</add>
</field>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Unique name for setting</comment>
- <add>4.1</add>
+ <name>name</name>
+ <title>Setting Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Unique name for setting</comment>
+ <add>4.1</add>
</field>
<index>
<name>index_group_name</name>
<add>4.1</add>
</field>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which Domain is this menu item for</comment>
- <add>4.1</add>
+ <name>domain_id</name>
+ <title>Setting Domain</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which Domain is this menu item for</comment>
+ <add>4.1</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>4.1</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>4.1</add>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID if the setting is localized to a contact</comment>
- <add>4.1</add>
+ <name>contact_id</name>
+ <title>Setting Contact</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID if the setting is localized to a contact</comment>
+ <add>4.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- <add>4.1</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ <add>4.1</add>
</foreignKey>
<field>
- <name>is_domain</name>
- <type>boolean</type>
- <comment>Is this setting a contact specific or site wide setting?</comment>
- <add>4.1</add>
+ <name>is_domain</name>
+ <title>Is Domain Setting?</title>
+ <type>boolean</type>
+ <comment>Is this setting a contact specific or site wide setting?</comment>
+ <add>4.1</add>
</field>
<field>
<name>component_id</name>
+ <title>Setting Component</title>
<type>int unsigned</type>
<comment>Component that this menu item belongs to</comment>
<add>4.1</add>
</html>
</field>
<foreignKey>
- <name>component_id</name>
- <table>civicrm_component</table>
- <key>id</key>
- <add>4.1</add>
+ <name>component_id</name>
+ <table>civicrm_component</table>
+ <key>id</key>
+ <add>4.1</add>
</foreignKey>
<field>
<name>created_date</name>
+ <title>Setting Created Date</title>
<type>datetime</type>
<comment>When was the setting created</comment>
<add>4.1</add>
</field>
<field>
<name>created_id</name>
+ <title>Setting Created By</title>
<type>int unsigned</type>
<comment>FK to civicrm_contact, who created this setting</comment>
<add>4.1</add>
<name>civicrm_state_province</name>
<add>1.1</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>State / Province ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>State / Province ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>false</autoincrement>
+ <name>id</name>
+ <autoincrement>false</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>State</title>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <headerPattern>/state|prov(ince)?/i</headerPattern>
- <dataPattern>/[A-Z]{2}/</dataPattern>
- <comment>Name of State / Province</comment>
- <add>1.1</add>
+ <name>name</name>
+ <title>State</title>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <headerPattern>/state|prov(ince)?/i</headerPattern>
+ <dataPattern>/[A-Z]{2}/</dataPattern>
+ <comment>Name of State / Province</comment>
+ <add>1.1</add>
</field>
<field>
- <name>abbreviation</name>
- <title>State Abbreviation</title>
- <type>varchar</type>
- <length>4</length>
- <comment>2-4 Character Abbreviation of State / Province</comment>
- <add>1.1</add>
+ <name>abbreviation</name>
+ <title>State Abbreviation</title>
+ <type>varchar</type>
+ <length>4</length>
+ <comment>2-4 Character Abbreviation of State / Province</comment>
+ <add>1.1</add>
</field>
<field>
- <name>country_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>ID of Country that State / Province belong</comment>
- <add>1.1</add>
+ <name>country_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>ID of Country that State / Province belong</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>country_id</name>
- <table>civicrm_country</table>
- <key>id</key>
- <add>1.1</add>
+ <name>country_id</name>
+ <table>civicrm_country</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<index>
<name>UI_name_country_id</name>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Tag ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Tag ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Tag ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Tag Name</title>
- <type>varchar</type>
- <required>true</required>
- <length>64</length>
- <comment>Name of Tag.</comment>
- <add>1.1</add>
+ <name>name</name>
+ <title>Tag Name</title>
+ <type>varchar</type>
+ <required>true</required>
+ <length>64</length>
+ <comment>Name of Tag.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>description</name>
- <title>Description</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Optional verbose description of the tag.</comment>
- <add>1.1</add>
+ <name>description</name>
+ <title>Description</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Optional verbose description of the tag.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>parent_id</name>
- <title>Parent Tag</title>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Optional parent id for this tag.</comment>
- <add>1.1</add>
+ <name>parent_id</name>
+ <title>Parent Tag</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Optional parent id for this tag.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_selectable</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this tag selectable / displayed</comment>
- <add>2.1</add>
+ <name>is_selectable</name>
+ <title>Display Tag?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this tag selectable / displayed</comment>
+ <add>2.1</add>
</field>
<foreignKey>
- <name>parent_id</name>
- <table>civicrm_tag</table>
- <key>id</key>
- <add>1.1</add>
+ <name>parent_id</name>
+ <table>civicrm_tag</table>
+ <key>id</key>
+ <add>1.1</add>
</foreignKey>
<index>
<name>UI_name</name>
<add>3.2</add>
</field>
<field>
- <name>created_id</name>
- <type>int unsigned</type>
- <comment>FK to civicrm_contact, who created this tag</comment>
- <add>3.4</add>
+ <name>created_id</name>
+ <title>Tag Created By</title>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_contact, who created this tag</comment>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>created_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.4</add>
- <onDelete>SET NULL</onDelete>
+ <name>created_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.4</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>created_date</name>
- <type>datetime</type>
- <title>Tag Created Date</title>
- <comment>Date and time that tag was created.</comment>
- <add>3.4</add>
+ <name>created_date</name>
+ <type>datetime</type>
+ <title>Tag Created Date</title>
+ <comment>Date and time that tag was created.</comment>
+ <add>3.4</add>
</field>
</table>
<name>civicrm_timezone</name>
<add>1.8</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Timezone Id</comment>
- <add>1.8</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Timezone Id</comment>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Timezone full name</comment>
- <add>1.8</add>
+ <name>name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Timezone full name</comment>
+ <add>1.8</add>
</field>
<field>
- <name>abbreviation</name>
- <type>char</type>
- <length>3</length>
- <comment>ISO Code for timezone abbreviation</comment>
- <add>1.8</add>
+ <name>abbreviation</name>
+ <type>char</type>
+ <length>3</length>
+ <comment>ISO Code for timezone abbreviation</comment>
+ <add>1.8</add>
</field>
<field>
- <name>gmt</name>
- <type>varchar</type>
- <length>64</length>
- <comment>GMT name of the timezone</comment>
- <add>1.8</add>
+ <name>gmt</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>GMT name of the timezone</comment>
+ <add>1.8</add>
</field>
<field>
- <name>offset</name>
- <type>int</type>
- <comment></comment>
- <add>1.8</add>
+ <name>offset</name>
+ <type>int</type>
+ <comment></comment>
+ <add>1.8</add>
</field>
<field>
- <name>country_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Country Id</comment>
- <add>1.8</add>
+ <name>country_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Country Id</comment>
+ <add>1.8</add>
</field>
<foreignKey>
- <name>country_id</name>
- <table>civicrm_country</table>
- <key>id</key>
- <add>1.8</add>
+ <name>country_id</name>
+ <table>civicrm_country</table>
+ <key>id</key>
+ <add>1.8</add>
</foreignKey>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Profile Field ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>uf_group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Which form does this field belong to.</comment>
- <add>1.1</add>
- <pseudoconstant>
- <table>civicrm_uf_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>uf_group_id</name>
+ <title>Profile ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Which form does this field belong to.</comment>
+ <add>1.1</add>
+ <pseudoconstant>
+ <table>civicrm_uf_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>uf_group_id</name>
- <table>civicrm_uf_group</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>uf_group_id</name>
+ <table>civicrm_uf_group</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>field_name</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Name for CiviCRM field which is being exposed for sharing.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this field currently shareable? If false, hide the field for all sharing contexts.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>is_view</name>
- <type>boolean</type>
- <default>0</default>
- <comment>the field is view only and not editable in user forms.</comment>
- <add>1.1</add>
+ <name>field_name</name>
+ <title>Profile Field Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Name for CiviCRM field which is being exposed for sharing.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_required</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this field required when included in a user or registration form?</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Controls field display order when user framework fields are displayed in registration and account editing forms.</comment>
- <add>1.1</add>
+ <name>is_active</name>
+ <title>Profile Field Is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this field currently shareable? If false, hide the field for all sharing contexts.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>help_post</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display after this field.</comment>
- <add>1.1</add>
+ <name>is_view</name>
+ <title>Profile Is View Only</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>the field is view only and not editable in user forms.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>help_pre</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display before this field.</comment>
- <add>3.2</add>
+ <name>is_required</name>
+ <title>Profile Field Is Required</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this field required when included in a user or registration form?</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_registration</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this field included in new user registration forms?</comment>
- <add>1.1</add>
- <drop>1.3</drop>
+ <name>weight</name>
+ <title>Profile Field Weight</title>
+ <type>int</type>
+ <required>true</required>
+ <default>1</default>
+ <comment>Controls field display order when user framework fields are displayed in registration and account editing forms.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_match</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this field part of the key for matching users to contacts?</comment>
- <add>1.1</add>
- <drop>1.3</drop>
+ <name>help_post</name>
+ <title>Profile Field Post Help</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display after this field.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>visibility</name>
- <type>varchar</type>
- <length>32</length>
- <default>'User and User Admin Only'</default>
- <comment>In what context(s) is this field visible.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::ufVisibility</callback>
- </pseudoconstant>
- <add>1.1</add>
- <html>
- <type>Select</type>
- </html>
+ <name>help_pre</name>
+ <title>Profile Field Pre Help</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display before this field.</comment>
+ <add>3.2</add>
</field>
<field>
- <name>listings_title</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Page title for listings page (users who share a common value for this property).</comment>
- <add>1.1</add>
- <drop>1.2</drop>
+ <name>is_registration</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this field included in new user registration forms?</comment>
+ <add>1.1</add>
+ <drop>1.3</drop>
</field>
<field>
- <name>in_selector</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this field included as a column in the selector table?</comment>
- <add>1.2</add>
+ <name>is_match</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this field part of the key for matching users to contacts?</comment>
+ <add>1.1</add>
+ <drop>1.3</drop>
+ </field>
+ <field>
+ <name>visibility</name>
+ <title>Profile Field Visibility</title>
+ <type>varchar</type>
+ <length>32</length>
+ <default>'User and User Admin Only'</default>
+ <comment>In what context(s) is this field visible.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::ufVisibility</callback>
+ </pseudoconstant>
+ <add>1.1</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>listings_title</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Page title for listings page (users who share a common value for this property).</comment>
+ <add>1.1</add>
+ <drop>1.2</drop>
+ </field>
+ <field>
+ <name>in_selector</name>
+ <title>Profile Field Is a Filter</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this field included as a column in the selector table?</comment>
+ <add>1.2</add>
</field>
<field>
- <name>is_searchable</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this field included search form of profile?</comment>
- <add>1.4</add>
+ <name>is_searchable</name>
+ <title>Profile Field Is Searchable</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this field included search form of profile?</comment>
+ <add>1.4</add>
</field>
<field>
- <name>location_type_id</name>
- <type>int unsigned</type>
- <comment>Location type of this mapping, if required</comment>
- <add>1.3</add>
+ <name>location_type_id</name>
+ <title>Profile Field Location Type</title>
+ <type>int unsigned</type>
+ <comment>Location type of this mapping, if required</comment>
+ <add>1.3</add>
</field>
<foreignKey>
- <name>location_type_id</name>
- <table>civicrm_location_type</table>
- <key>id</key>
- <add>1.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>location_type_id</name>
+ <table>civicrm_location_type</table>
+ <key>id</key>
+ <add>1.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>phone_type</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Phone type, if required</comment>
- <add>1.3</add>
- <drop>2.2</drop>
+ <name>phone_type</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Phone type, if required</comment>
+ <add>1.3</add>
+ <drop>2.2</drop>
</field>
<field>
- <name>phone_type_id</name>
- <type>int unsigned</type>
- <comment>Phone Type Id, if required</comment>
- <add>2.2</add>
+ <name>phone_type_id</name>
+ <title>Profile Field Phone Type</title>
+ <type>int unsigned</type>
+ <comment>Phone Type Id, if required</comment>
+ <add>2.2</add>
</field>
<field>
<name>website_type_id</name>
+ <title>Profile Field Website Type</title>
<type>int unsigned</type>
<comment>Website Type Id, if required</comment>
<add>4.5</add>
</field>
<field>
- <name>label</name>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <localizable>true</localizable>
- <comment>To save label for fields.</comment>
- <add>1.4</add>
+ <name>label</name>
+ <title>Profile Field Label</title>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <localizable>true</localizable>
+ <comment>To save label for fields.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>field_type</name>
- <type>varchar</type>
- <length>255</length>
- <comment>This field saves field type (ie individual,household.. field etc).</comment>
- <add>1.4</add>
+ <name>field_type</name>
+ <title>Profile Field Type</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>This field saves field type (ie individual,household.. field etc).</comment>
+ <add>1.4</add>
</field>
<field>
<name>is_reserved</name>
+ <title>Profile Field Is Reserved</title>
<type>boolean</type>
<comment>Is this field reserved for use by some other CiviCRM functionality?</comment>
<add>3.0</add>
</field>
<field>
<name>is_multi_summary</name>
+ <title>Profile Field Supports Multiple</title>
<type>boolean</type>
<default>0</default>
<comment>Include in multi-record listing?</comment>
</field>
<index>
<name>IX_website_type_id</name>
+ <title>Profile Field Website Type</title>
<fieldName>website_type_id</fieldName>
<add>4.5</add>
</index>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>Profile ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this form currently active? If false, hide all related fields for all sharing contexts.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>group_type</name>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <comment>This column will store a comma separated list of the type(s) of profile fields.</comment>
- <add>2.1</add>
- </field>
- <field>
- <name>form_type</name>
- <type>enum</type>
- <values>CiviCRM Profile</values>
- <comment>Type of form.</comment>
- <drop>2.1</drop>
- </field>
- <field>
- <name>title</name>
- <type>varchar</type>
- <length>64</length>
- <localizable>true</localizable>
- <required>true</required>
- <comment>Form title.</comment>
- <add>1.1</add>
- </field>
- <field>
- <name>description</name>
- <type>text</type>
- <title>Profile Description</title>
- <html>
- <type>TextArea</type>
- <rows>2</rows>
- <cols>60</cols>
- </html>
- <comment>Optional verbose description of the profile.</comment>
- <add>4.4</add>
- </field>
- <field>
- <name>collapse_display</name>
- <type>int unsigned</type>
- <default>0</default>
- <comment>Will this group be in collapsed or expanded mode on initial display ?</comment>
- <add>1.1</add>
- <drop>2.2</drop>
- </field>
- <field>
- <name>help_pre</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display before fields in form.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>80</cols>
- </html>
- <add>1.2</add>
- </field>
- <field>
- <name>help_post</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display after fields in form.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>80</cols>
- </html>
- <add>1.2</add>
- </field>
- <field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Controls display order when multiple user framework groups are setup for concurrent display.</comment>
- <add>1.2</add>
- <drop>1.3</drop>
- </field>
- <field>
- <name>limit_listings_group_id</name>
- <type>int unsigned</type>
- <comment>Group id, foriegn key from civicrm_group</comment>
- <add>1.4</add>
+ <name>is_active</name>
+ <title>Profile Is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this form currently active? If false, hide all related fields for all sharing contexts.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>group_type</name>
+ <title>Profile Group Type</title>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <comment>This column will store a comma separated list of the type(s) of profile fields.</comment>
+ <add>2.1</add>
+ </field>
+ <field>
+ <name>form_type</name>
+ <type>enum</type>
+ <values>CiviCRM Profile</values>
+ <comment>Type of form.</comment>
+ <drop>2.1</drop>
+ </field>
+ <field>
+ <name>title</name>
+ <type>varchar</type>
+ <length>64</length>
+ <localizable>true</localizable>
+ <required>true</required>
+ <comment>Form title.</comment>
+ <add>1.1</add>
+ </field>
+ <field>
+ <name>description</name>
+ <type>text</type>
+ <title>Profile Description</title>
+ <html>
+ <type>TextArea</type>
+ <rows>2</rows>
+ <cols>60</cols>
+ </html>
+ <comment>Optional verbose description of the profile.</comment>
+ <add>4.4</add>
+ </field>
+ <field>
+ <name>collapse_display</name>
+ <type>int unsigned</type>
+ <default>0</default>
+ <comment>Will this group be in collapsed or expanded mode on initial display ?</comment>
+ <add>1.1</add>
+ <drop>2.2</drop>
+ </field>
+ <field>
+ <name>help_pre</name>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display before fields in form.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.2</add>
+ </field>
+ <field>
+ <name>help_post</name>
+ <title>Profile Post Text</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display after fields in form.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.2</add>
+ </field>
+ <field>
+ <name>weight</name>
+ <title>Profile Weight</title>
+ <type>int</type>
+ <required>true</required>
+ <default>1</default>
+ <comment>Controls display order when multiple user framework groups are setup for concurrent display.</comment>
+ <add>1.2</add>
+ <drop>1.3</drop>
+ </field>
+ <field>
+ <name>limit_listings_group_id</name>
+ <title>Profile Search Limit Group</title>
+ <type>int unsigned</type>
+ <comment>Group id, foriegn key from civicrm_group</comment>
+ <add>1.4</add>
</field>
<foreignKey>
- <name>limit_listings_group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <add>1.4</add>
- <onDelete>SET NULL</onDelete>
+ <name>limit_listings_group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <add>1.4</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>post_URL</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Redirect to URL.</comment>
- <add>1.4</add>
+ <name>post_URL</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Redirect to URL.</comment>
+ <add>1.4</add>
</field>
<field>
- <name>add_to_group_id</name>
- <type>int unsigned</type>
- <comment>foreign key to civicrm_group_id</comment>
+ <name>add_to_group_id</name>
+ <title>Add Contact To Group</title>
+ <type>int unsigned</type>
+ <comment>foreign key to civicrm_group_id</comment>
</field>
<foreignKey>
- <name>add_to_group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>add_to_group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
- <field>
- <name>add_captcha</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should a CAPTCHA widget be included this Profile form.</comment>
- <add>1.1</add>
+ <field>
+ <name>add_captcha</name>
+ <title>Show Captcha On Profile</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should a CAPTCHA widget be included this Profile form.</comment>
+ <add>1.1</add>
</field>
<field>
- <name>is_map</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Do we want to map results from this profile.</comment>
- <add>1.5</add>
+ <name>is_map</name>
+ <title>Map Profile</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Do we want to map results from this profile.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_edit_link</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should edit link display in profile selector</comment>
- <add>1.6</add>
+ <name>is_edit_link</name>
+ <title>Show Edit Link?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should edit link display in profile selector</comment>
+ <add>1.6</add>
</field>
<field>
- <name>is_uf_link</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should we display a link to the website profile in profile selector</comment>
- <add>1.7</add>
+ <name>is_uf_link</name>
+ <title>Show Link to CMS User</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should we display a link to the website profile in profile selector</comment>
+ <add>1.7</add>
</field>
<field>
- <name>is_update_dupe</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should we update the contact record if we find a duplicate</comment>
- <add>1.7</add>
+ <name>is_update_dupe</name>
+ <title>Update on Duplicate</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should we update the contact record if we find a duplicate</comment>
+ <add>1.7</add>
</field>
<field>
- <name>cancel_URL</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Redirect to URL when Cancle button clik .</comment>
- <add>1.4</add>
+ <name>cancel_URL</name>
+ <title>Profile Cancel URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Redirect to URL when Cancle button clik .</comment>
+ <add>1.4</add>
</field>
<field>
- <name>is_cms_user</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should we create a cms user for this profile </comment>
- <add>1.8</add>
+ <name>is_cms_user</name>
+ <title>Create CMS User?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should we create a cms user for this profile </comment>
+ <add>1.8</add>
</field>
<field>
- <name>notify</name>
- <type>text</type>
- <add>1.8</add>
+ <name>notify</name>
+ <title>Notify on Profile Submit</title>
+ <type>text</type>
+ <add>1.8</add>
</field>
<field>
<name>is_reserved</name>
+ <title>Profile Is Reserved</title>
<type>boolean</type>
<comment>Is this group reserved for use by some other CiviCRM functionality?</comment>
<add>3.0</add>
</field>
<field>
<name>name</name>
+ <title>Profile Name</title>
<type>varchar</type>
<length>64</length>
<comment>Name of the UF group for directly addressing it in the codebase</comment>
</field>
<field>
<name>created_id</name>
+ <title>Profile Created By</title>
<type>int unsigned</type>
<comment>FK to civicrm_contact, who created this UF group</comment>
<add>3.0</add>
<add>3.0</add>
</field>
<field>
- <name>is_proximity_search</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Should we include proximity search feature in this profile search form?</comment>
- <add>3.2</add>
+ <name>is_proximity_search</name>
+ <title>Include Proximity Search?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Should we include proximity search feature in this profile search form?</comment>
+ <add>3.2</add>
</field>
</table>
<add>1.3</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Unique table ID</comment>
- <add>1.3</add>
+ <name>id</name>
+ <title>UF Join ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Unique table ID</comment>
+ <add>1.3</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this join currently active?</comment>
- <add>1.3</add>
+ <name>is_active</name>
+ <title>Profile Use is active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this join currently active?</comment>
+ <add>1.3</add>
</field>
<field>
- <name>module</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Module which owns this uf_join instance, e.g. User Registration, CiviDonate, etc.</comment>
- <add>1.3</add>
+ <name>module</name>
+ <title>Profile Module</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Module which owns this uf_join instance, e.g. User Registration, CiviDonate, etc.</comment>
+ <add>1.3</add>
</field>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Name of table where item being referenced is stored. Modules which only need a single collection of uf_join instances may choose not to populate entity_table and entity_id.</comment>
- <add>1.3</add>
+ <name>entity_table</name>
+ <title>Profile Entity Table</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Name of table where item being referenced is stored. Modules which only need a single collection of uf_join instances may choose not to populate entity_table and entity_id.</comment>
+ <add>1.3</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <comment>Foreign key to the referenced item.</comment>
- <add>1.3</add>
+ <name>entity_id</name>
+ <title>Profile Entity ID</title>
+ <type>int unsigned</type>
+ <comment>Foreign key to the referenced item.</comment>
+ <add>1.3</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.3</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.3</add>
</dynamicForeignKey>
<index>
- <name>index_entity</name>
- <add>1.3</add>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>1.3</add>
+ <name>index_entity</name>
+ <add>1.3</add>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>1.3</add>
</index>
<field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <default>1</default>
- <comment>Controls display order when multiple user framework groups are setup for concurrent display.</comment>
- <add>1.3</add>
+ <name>weight</name>
+ <title>Profile Weight</title>
+ <type>int</type>
+ <required>true</required>
+ <default>1</default>
+ <comment>Controls display order when multiple user framework groups are setup for concurrent display.</comment>
+ <add>1.3</add>
</field>
<field>
- <name>uf_group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Which form does this field belong to.</comment>
- <add>1.3</add>
- <pseudoconstant>
- <table>civicrm_uf_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>uf_group_id</name>
+ <title>Profile ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Which form does this field belong to.</comment>
+ <add>1.3</add>
+ <pseudoconstant>
+ <table>civicrm_uf_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>uf_group_id</name>
- <table>civicrm_uf_group</table>
- <key>id</key>
- <add>1.3</add>
+ <name>uf_group_id</name>
+ <table>civicrm_uf_group</table>
+ <key>id</key>
+ <add>1.3</add>
</foreignKey>
<field>
- <name>module_data</name>
- <type>longtext</type>
- <comment>Json serialized array of data used by the ufjoin.module</comment>
- <add>4.5</add>
+ <name>module_data</name>
+ <title>Profile Use Data</title>
+ <type>longtext</type>
+ <comment>Json serialized array of data used by the ufjoin.module</comment>
+ <add>4.5</add>
</field>
</table>
<add>1.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>System generated ID.</comment>
- <add>1.1</add>
+ <name>id</name>
+ <title>UF Match ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>System generated ID.</comment>
+ <add>1.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Which Domain is this match entry for</comment>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <add>3.0</add>
+ <name>domain_id</name>
+ <title>UF Match Domain ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Which Domain is this match entry for</comment>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <add>3.0</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>3.0</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>3.0</add>
</foreignKey>
<field>
- <name>uf_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>UF ID</comment>
- <add>1.1</add>
+ <name>uf_id</name>
+ <title>CMS ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>UF ID</comment>
+ <add>1.1</add>
</field>
<index>
- <name>I_civicrm_uf_match_uf_id</name>
- <fieldName>uf_id</fieldName>
- <add>3.3</add>
+ <name>I_civicrm_uf_match_uf_id</name>
+ <fieldName>uf_id</fieldName>
+ <add>3.3</add>
</index>
<field>
- <name>uf_name</name>
- <type>varchar</type>
- <length>128</length>
- <comment>UF Name</comment>
- <add>1.9.kabissa</add>
+ <name>uf_name</name>
+ <title>CMS Unique Identifier</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>UF Name</comment>
+ <add>1.9.kabissa</add>
</field>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>1.1</add>
+ <name>contact_id</name>
+ <title>CiviCRM Contact ID</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>1.1</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.1</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.1</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>email</name>
- <type>varchar</type>
- <length>64</length>
- <rule>email</rule>
- <comment>Email address</comment>
- <add>1.1</add>
- <drop>2.0</drop>
+ <name>email</name>
+ <type>varchar</type>
+ <length>64</length>
+ <rule>email</rule>
+ <comment>Email address</comment>
+ <add>1.1</add>
+ <drop>2.0</drop>
</field>
<field>
<name>language</name>
+ <title>Preferred Language</title>
<type>varchar</type>
<length>5</length>
<comment>UI language preferred by the given user/contact</comment>
<add>2.1</add>
</field>
<index>
- <name>UI_uf_id_domain_id</name>
- <fieldName>uf_id</fieldName>
- <fieldName>domain_id</fieldName>
- <unique>true</unique>
- <add>1.5</add>
- <drop>1.7</drop>
+ <name>UI_uf_id_domain_id</name>
+ <fieldName>uf_id</fieldName>
+ <fieldName>domain_id</fieldName>
+ <unique>true</unique>
+ <add>1.5</add>
+ <drop>1.7</drop>
</index>
<index>
- <name>UI_uf_name_domain_id</name>
- <fieldName>uf_name</fieldName>
- <fieldName>domain_id</fieldName>
- <unique>true</unique>
- <add>2.1</add>
+ <name>UI_uf_name_domain_id</name>
+ <fieldName>uf_name</fieldName>
+ <fieldName>domain_id</fieldName>
+ <unique>true</unique>
+ <add>2.1</add>
</index>
<index>
<name>UI_contact_domain_id</name>
<fieldName>contact_id</fieldName>
- <fieldName>domain_id</fieldName>
+ <fieldName>domain_id</fieldName>
<unique>true</unique>
<add>1.6</add>
</index>
<comment>Website information for a specific location.</comment>
<add>3.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <title>Website ID</title>
- <required>true</required>
- <comment>Unique Website ID</comment>
- <add>3.2</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <title>Website ID</title>
+ <required>true</required>
+ <comment>Unique Website ID</comment>
+ <add>3.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <title>Contact</title>
- <type>int unsigned</type>
- <comment>FK to Contact ID</comment>
- <add>3.2</add>
+ <name>contact_id</name>
+ <title>Contact</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID</comment>
+ <add>3.2</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>3.2</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>3.2</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>url</name>
- <title>Website</title>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- <size>BIG</size>
- </html>
- <import>true</import>
- <headerPattern>/Website/i</headerPattern>
- <dataPattern>/^[A-Za-z][0-9A-Za-z]{20,}$/</dataPattern>
- <comment>Website</comment>
- <add>3.2</add>
+ <name>url</name>
+ <title>Website</title>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ <size>BIG</size>
+ </html>
+ <import>true</import>
+ <headerPattern>/Website/i</headerPattern>
+ <dataPattern>/^[A-Za-z][0-9A-Za-z]{20,}$/</dataPattern>
+ <comment>Website</comment>
+ <add>3.2</add>
</field>
<field>
- <name>website_type_id</name>
- <title>Website Type</title>
- <type>int unsigned</type>
- <comment>Which Website type does this website belong to.</comment>
- <add>3.2</add>
- <pseudoconstant>
- <optionGroupName>website_type</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>website_type_id</name>
+ <title>Website Type</title>
+ <type>int unsigned</type>
+ <comment>Which Website type does this website belong to.</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <optionGroupName>website_type</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<index>
<name>UI_website_type_id</name>
<add>4.4</add>
<field>
<name>id</name>
+ <title>Word Replacement ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Word replacement ID</comment>
</primaryKey>
<field>
<name>find_word</name>
+ <title>Replaced Word</title>
<type>varchar</type>
<length>255</length>
<collate>utf8_bin</collate>
</field>
<field>
<name>replace_word</name>
+ <title>Replacement Word</title>
<type>varchar</type>
<length>255</length>
<collate>utf8_bin</collate>
<add>4.4</add>
</index>
<field>
- <name>match_type</name>
- <type>varchar</type>
- <length>16</length>
- <default>"wildcardMatch"</default>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getWordReplacementMatchType</callback>
- </pseudoconstant>
- <add>4.4</add>
- <html>
- <type>Select</type>
- </html>
+ <name>match_type</name>
+ <title>Word Replacement Match Type</title>
+ <type>varchar</type>
+ <length>16</length>
+ <default>"wildcardMatch"</default>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getWordReplacementMatchType</callback>
+ </pseudoconstant>
+ <add>4.4</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
<name>domain_id</name>
+ <title>Word Replacement Domain ID</title>
<type>int unsigned</type>
<pseudoconstant>
<table>civicrm_domain</table>
<name>civicrm_worldregion</name>
<add>1.8</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Country Id</comment>
- <add>1.8</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Country Id</comment>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <uniqueName>world_region</uniqueName>
- <title>World Region</title>
- <type>varchar</type>
- <length>128</length>
- <comment>Region name to be associated with countries</comment>
- <export>true</export>
- <add>1.8</add>
+ <name>name</name>
+ <uniqueName>world_region</uniqueName>
+ <title>World Region</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Region name to be associated with countries</comment>
+ <export>true</export>
+ <add>1.8</add>
</field>
</table>
<name>civicrm_event_page</name>
<add>1.7</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Event Page ID</comment>
- <add>1.7</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Event Page ID</comment>
+ <add>1.7</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>event_id</name>
- <title>Event</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Event which this page belongs to.</comment>
- <add>1.7</add>
+ <name>event_id</name>
+ <title>Event</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Event which this page belongs to.</comment>
+ <add>1.7</add>
</field>
<foreignKey>
- <name>event_id</name>
- <table>civicrm_event</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>event_id</name>
+ <table>civicrm_event</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>intro_text</name>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>6</rows>
- <cols>50</cols>
- </html>
- <title>Introductory Message</title>
- <localizable>true</localizable>
- <comment>Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>footer_text</name>
- <title>Footer Message</title>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>6</rows>
- <cols>50</cols>
- </html>
- <localizable>true</localizable>
- <comment>Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>confirm_title</name>
- <type>varchar</type>
- <title>Confirmation Title</title>
- <length>255</length>
- <default>NULL</default>
- <localizable>true</localizable>
- <comment>Title for Confirmation page.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>confirm_text</name>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>6</rows>
- <cols>50</cols>
- </html>
- <title>Confirm Text</title>
- <localizable>true</localizable>
- <comment>Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>confirm_footer_text</name>
- <type>text</type>
- <title>Footer Text</title>
- <html>
- <type>TextArea</type>
- <rows>6</rows>
- <cols>50</cols>
- </html>
- <localizable>true</localizable>
- <comment>Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>is_email_confirm</name>
- <type>boolean</type>
- <title>Is confirm email</title>
- <default>0</default>
- <comment>If true, confirmation is automatically emailed to contact on successful registration.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>confirm_email_text</name>
- <type>text</type>
- <title>Confirmation Email Text</title>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>50</cols>
- </html>
- <localizable>true</localizable>
- <comment>text to include above standard event info on confirmation email. emails are text-only, so do not allow html for now</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>confirm_from_name</name>
- <type>varchar</type>
- <title>Confirm From Name</title>
- <length>255</length>
- <localizable>true</localizable>
- <comment>FROM email name used for confirmation emails.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>confirm_from_email</name>
- <type>varchar</type>
- <title>Confirm From Email</title>
- <length>255</length>
- <comment>FROM email address used for confirmation emails.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>cc_confirm</name>
- <type>varchar</type>
- <length>255</length>
- <comment>comma-separated list of email addresses to cc each time a confirmation is sent</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>bcc_confirm</name>
- <type>varchar</type>
- <length>255</length>
- <comment>comma-separated list of email addresses to bcc each time a confirmation is sent</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>default_fee_id</name>
- <type>int unsigned</type>
- <comment>FK to civicrm_option_value.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>default_discount_id</name>
- <type>int unsigned</type>
- <comment>FK to civicrm_option_value.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>thankyou_title</name>
- <type>varchar</type>
- <title>ThankYou Title</title>
- <length>255</length>
- <default>NULL</default>
- <localizable>true</localizable>
- <comment>Title for ThankYou page.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>thankyou_text</name>
- <type>text</type>
- <html>
- <type>TextArea</type>
- <rows>6</rows>
- <cols>50</cols>
- </html>
- <title>ThankYou Text</title>
- <localizable>true</localizable>
- <comment>ThankYou Text.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>thankyou_footer_text</name>
- <type>text</type>
- <title>Footer Text</title>
- <html>
- <type>TextArea</type>
- <rows>6</rows>
- <cols>50</cols>
- </html>
- <localizable>true</localizable>
- <comment>Footer message.</comment>
- <add>1.7</add>
- </field>
- <field>
- <name>is_pay_later</name>
- <type>boolean</type>
- <default>0</default>
- <comment>if true - allows the user to send payment directly to the org later</comment>
- <add>2.0</add>
- </field>
- <field>
- <name>pay_later_text</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>The text displayed to the user in the main form</comment>
- <add>2.0</add>
- </field>
- <field>
- <name>pay_later_receipt</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>The receipt sent to the user instead of the normal receipt text</comment>
- <add>2.0</add>
- </field>
- <field>
- <name>is_multiple_registrations</name>
- <type>boolean</type>
- <default>0</default>
- <comment>if true - allows the user to register multiple participants for event</comment>
- <add>2.1</add>
+ <name>intro_text</name>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>6</rows>
+ <cols>50</cols>
+ </html>
+ <title>Introductory Message</title>
+ <localizable>true</localizable>
+ <comment>Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event
+ Registration form.
+ </comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>footer_text</name>
+ <title>Footer Message</title>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>6</rows>
+ <cols>50</cols>
+ </html>
+ <localizable>true</localizable>
+ <comment>Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event
+ Registration form.
+ </comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>confirm_title</name>
+ <type>varchar</type>
+ <title>Confirmation Title</title>
+ <length>255</length>
+ <default>NULL</default>
+ <localizable>true</localizable>
+ <comment>Title for Confirmation page.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>confirm_text</name>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>6</rows>
+ <cols>50</cols>
+ </html>
+ <title>Confirm Text</title>
+ <localizable>true</localizable>
+ <comment>Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event
+ Registration form.
+ </comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>confirm_footer_text</name>
+ <type>text</type>
+ <title>Footer Text</title>
+ <html>
+ <type>TextArea</type>
+ <rows>6</rows>
+ <cols>50</cols>
+ </html>
+ <localizable>true</localizable>
+ <comment>Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event
+ Registration form.
+ </comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>is_email_confirm</name>
+ <type>boolean</type>
+ <title>Is confirm email</title>
+ <default>0</default>
+ <comment>If true, confirmation is automatically emailed to contact on successful registration.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>confirm_email_text</name>
+ <type>text</type>
+ <title>Confirmation Email Text</title>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>50</cols>
+ </html>
+ <localizable>true</localizable>
+ <comment>text to include above standard event info on confirmation email. emails are text-only, so do not allow html
+ for now
+ </comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>confirm_from_name</name>
+ <type>varchar</type>
+ <title>Confirm From Name</title>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>FROM email name used for confirmation emails.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>confirm_from_email</name>
+ <type>varchar</type>
+ <title>Confirm From Email</title>
+ <length>255</length>
+ <comment>FROM email address used for confirmation emails.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>cc_confirm</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>comma-separated list of email addresses to cc each time a confirmation is sent</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>bcc_confirm</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>comma-separated list of email addresses to bcc each time a confirmation is sent</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>default_fee_id</name>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_option_value.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>default_discount_id</name>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_option_value.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>thankyou_title</name>
+ <type>varchar</type>
+ <title>ThankYou Title</title>
+ <length>255</length>
+ <default>NULL</default>
+ <localizable>true</localizable>
+ <comment>Title for ThankYou page.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>thankyou_text</name>
+ <type>text</type>
+ <html>
+ <type>TextArea</type>
+ <rows>6</rows>
+ <cols>50</cols>
+ </html>
+ <title>ThankYou Text</title>
+ <localizable>true</localizable>
+ <comment>ThankYou Text.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>thankyou_footer_text</name>
+ <type>text</type>
+ <title>Footer Text</title>
+ <html>
+ <type>TextArea</type>
+ <rows>6</rows>
+ <cols>50</cols>
+ </html>
+ <localizable>true</localizable>
+ <comment>Footer message.</comment>
+ <add>1.7</add>
+ </field>
+ <field>
+ <name>is_pay_later</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>if true - allows the user to send payment directly to the org later</comment>
+ <add>2.0</add>
+ </field>
+ <field>
+ <name>pay_later_text</name>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>The text displayed to the user in the main form</comment>
+ <add>2.0</add>
+ </field>
+ <field>
+ <name>pay_later_receipt</name>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>The receipt sent to the user instead of the normal receipt text</comment>
+ <add>2.0</add>
+ </field>
+ <field>
+ <name>is_multiple_registrations</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>if true - allows the user to register multiple participants for event</comment>
+ <add>2.1</add>
</field>
</table>
<add>1.7</add>
<log>true</log>
<field>
- <name>id</name>
- <uniqueName>participant_id</uniqueName>
- <title>Participant ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Participant Id</comment>
- <import>true</import>
- <headerPattern>/(^(participant(.)?)?id$)/i</headerPattern>
- <add>1.7</add>
+ <name>id</name>
+ <uniqueName>participant_id</uniqueName>
+ <title>Participant ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Participant Id</comment>
+ <import>true</import>
+ <headerPattern>/(^(participant(.)?)?id$)/i</headerPattern>
+ <add>1.7</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <uniqueName>participant_contact_id</uniqueName>
- <type>int unsigned</type>
- <title>Contact ID</title>
- <headerPattern>/contact(.?id)?/i</headerPattern>
- <import>true</import>
- <required>true</required>
- <comment>FK to Contact ID</comment>
- <add>1.7</add>
+ <name>contact_id</name>
+ <uniqueName>participant_contact_id</uniqueName>
+ <type>int unsigned</type>
+ <title>Contact ID</title>
+ <headerPattern>/contact(.?id)?/i</headerPattern>
+ <import>true</import>
+ <required>true</required>
+ <comment>FK to Contact ID</comment>
+ <add>1.7</add>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>event_id</name>
- <type>int unsigned</type>
- <title>Event</title>
- <import>true</import>
- <headerPattern>/event id$/i</headerPattern>
- <required>true</required>
- <comment>FK to Event ID</comment>
- <add>1.7</add>
+ <name>event_id</name>
+ <type>int unsigned</type>
+ <title>Event</title>
+ <import>true</import>
+ <headerPattern>/event id$/i</headerPattern>
+ <required>true</required>
+ <comment>FK to Event ID</comment>
+ <add>1.7</add>
</field>
<foreignKey>
- <name>event_id</name>
- <table>civicrm_event</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>event_id</name>
+ <table>civicrm_event</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>status_id</name>
- <uniqueName>participant_status_id</uniqueName>
- <title>Participant Status</title>
- <headerPattern>/(participant.)?(status)$/i</headerPattern>
- <import>true</import>
- <type>int unsigned</type>
- <export>false</export>
- <required>true</required>
- <default>1</default>
- <comment>Participant status ID. FK to civicrm_participant_status_type. Default of 1 should map to status = Registered.</comment>
- <add>1.7</add>
- <pseudoconstant>
- <table>civicrm_participant_status_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>label</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>status_id</name>
+ <uniqueName>participant_status_id</uniqueName>
+ <title>Participant Status</title>
+ <headerPattern>/(participant.)?(status)$/i</headerPattern>
+ <import>true</import>
+ <type>int unsigned</type>
+ <export>false</export>
+ <required>true</required>
+ <default>1</default>
+ <comment>Participant status ID. FK to civicrm_participant_status_type. Default of 1 should map to status =
+ Registered.
+ </comment>
+ <add>1.7</add>
+ <pseudoconstant>
+ <table>civicrm_participant_status_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>label</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
<name>status_id</name>
<add>1.8</add>
</index>
<field>
- <name>role_id</name>
- <uniqueName>participant_role_id</uniqueName>
- <title>Participant Role(s)</title>
- <pseudoconstant>
- <optionGroupName>participant_role</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <headerPattern>/(participant.)?(role)$/i</headerPattern>
- <import>true</import>
- <type>varchar</type>
- <length>128</length>
- <export>false</export>
- <default>NULL</default>
- <comment>Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.</comment>
- <add>1.7</add>
+ <name>role_id</name>
+ <uniqueName>participant_role_id</uniqueName>
+ <title>Participant Role(s)</title>
+ <pseudoconstant>
+ <optionGroupName>participant_role</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <headerPattern>/(participant.)?(role)$/i</headerPattern>
+ <import>true</import>
+ <type>varchar</type>
+ <length>128</length>
+ <export>false</export>
+ <default>NULL</default>
+ <comment>Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.</comment>
+ <add>1.7</add>
</field>
<index>
<name>index_role_id</name>
<add>1.8</add>
</index>
<field>
- <name>register_date</name>
- <uniqueName>participant_register_date</uniqueName>
- <title>Register date</title>
- <headerPattern>/^(r(egister\s)?date)$/i</headerPattern>
- <import>true</import>
- <type>datetime</type>
- <comment>When did contact register for event?</comment>
- <add>1.7</add>
+ <name>register_date</name>
+ <uniqueName>participant_register_date</uniqueName>
+ <title>Register date</title>
+ <headerPattern>/^(r(egister\s)?date)$/i</headerPattern>
+ <import>true</import>
+ <type>datetime</type>
+ <comment>When did contact register for event?</comment>
+ <add>1.7</add>
</field>
<field>
- <name>source</name>
- <uniqueName>participant_source</uniqueName>
- <title>Participant Source</title>
- <headerPattern>/(participant.)?(source)$/i</headerPattern>
- <import>true</import>
- <type>varchar</type>
- <length>128</length>
- <comment>Source of this event registration.</comment>
- <add>1.7</add>
+ <name>source</name>
+ <uniqueName>participant_source</uniqueName>
+ <title>Participant Source</title>
+ <headerPattern>/(participant.)?(source)$/i</headerPattern>
+ <import>true</import>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Source of this event registration.</comment>
+ <add>1.7</add>
</field>
<field>
- <name>fee_level</name>
- <uniqueName>participant_fee_level</uniqueName>
- <title>Fee level</title>
- <headerPattern>/^(f(ee\s)?level)$/i</headerPattern>
- <type>text</type>
- <import>true</import>
- <comment>Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that we store the label value and not the key</comment>
- <add>1.7</add>
+ <name>fee_level</name>
+ <uniqueName>participant_fee_level</uniqueName>
+ <title>Fee level</title>
+ <headerPattern>/^(f(ee\s)?level)$/i</headerPattern>
+ <type>text</type>
+ <import>true</import>
+ <comment>Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that
+ we store the label value and not the key
+ </comment>
+ <add>1.7</add>
</field>
<field>
- <name>is_test</name>
- <uniqueName>participant_is_test</uniqueName>
- <title>Test</title>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <add>1.7</add>
+ <name>is_test</name>
+ <uniqueName>participant_is_test</uniqueName>
+ <title>Test</title>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <add>1.7</add>
</field>
<field>
- <name>is_pay_later</name>
- <uniqueName>participant_is_pay_later</uniqueName>
- <title>Is Pay Later</title>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
- <add>2.1</add>
+ <name>is_pay_later</name>
+ <uniqueName>participant_is_pay_later</uniqueName>
+ <title>Is Pay Later</title>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
+ <add>2.1</add>
</field>
<field>
- <name>fee_amount</name>
- <uniqueName>participant_fee_amount</uniqueName>
- <title>Fee Amount</title>
- <type>decimal</type>
- <import>true</import>
- <headerPattern>/fee(.?am(ou)?nt)?/i</headerPattern>
- <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
- <comment>actual processor fee if known - may be 0.</comment>
- <add>2.1</add>
+ <name>fee_amount</name>
+ <uniqueName>participant_fee_amount</uniqueName>
+ <title>Fee Amount</title>
+ <type>decimal</type>
+ <import>true</import>
+ <headerPattern>/fee(.?am(ou)?nt)?/i</headerPattern>
+ <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
+ <comment>actual processor fee if known - may be 0.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>registered_by_id</name>
- <uniqueName>participant_registered_by_id</uniqueName>
- <type>int unsigned</type>
- <title>Registered By ID</title>
- <import>true</import>
- <default>NULL</default>
- <comment>FK to Participant ID</comment>
- <add>2.1</add>
- <export>true</export>
+ <name>registered_by_id</name>
+ <uniqueName>participant_registered_by_id</uniqueName>
+ <type>int unsigned</type>
+ <title>Registered By ID</title>
+ <import>true</import>
+ <default>NULL</default>
+ <comment>FK to Participant ID</comment>
+ <add>2.1</add>
+ <export>true</export>
</field>
<foreignKey>
- <name>registered_by_id</name>
- <table>civicrm_participant</table>
- <key>id</key>
- <add>2.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>registered_by_id</name>
+ <table>civicrm_participant</table>
+ <key>id</key>
+ <add>2.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>discount_id</name>
- <uniqueName>participant_discount_id</uniqueName>
- <type>int unsigned</type>
- <title>Discount ID</title>
- <default>NULL</default>
- <comment>FK to Discount ID</comment>
- <add>2.1</add>
+ <name>discount_id</name>
+ <uniqueName>participant_discount_id</uniqueName>
+ <type>int unsigned</type>
+ <title>Discount ID</title>
+ <default>NULL</default>
+ <comment>FK to Discount ID</comment>
+ <add>2.1</add>
</field>
<foreignKey>
- <name>discount_id</name>
- <table>civicrm_discount</table>
- <key>id</key>
- <add>2.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>discount_id</name>
+ <table>civicrm_discount</table>
+ <key>id</key>
+ <add>2.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>fee_currency</name>
- <uniqueName>participant_fee_currency</uniqueName>
- <title>Fee Currency</title>
- <type>varchar</type>
- <length>3</length>
- <default>NULL</default>
- <import>true</import>
- <headerPattern>/(fee)?.?cur(rency)?/i</headerPattern>
- <dataPattern>/^[A-Z]{3}$/i</dataPattern>
- <comment>3 character string, value derived from config setting.</comment>
- <add>3.0</add>
- <pseudoconstant>
- <table>civicrm_currency</table>
- <keyColumn>name</keyColumn>
- <labelColumn>full_name</labelColumn>
- <nameColumn>numeric_code</nameColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>fee_currency</name>
+ <uniqueName>participant_fee_currency</uniqueName>
+ <title>Fee Currency</title>
+ <type>varchar</type>
+ <length>3</length>
+ <default>NULL</default>
+ <import>true</import>
+ <headerPattern>/(fee)?.?cur(rency)?/i</headerPattern>
+ <dataPattern>/^[A-Z]{3}$/i</dataPattern>
+ <comment>3 character string, value derived from config setting.</comment>
+ <add>3.0</add>
+ <pseudoconstant>
+ <table>civicrm_currency</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>full_name</labelColumn>
+ <nameColumn>numeric_code</nameColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>campaign_id</name>
- <uniqueName>participant_campaign_id</uniqueName>
- <type>int unsigned</type>
- <title>Campaign</title>
- <import>true</import>
- <comment>The campaign for which this participant has been registered.</comment>
- <pseudoconstant>
- <table>civicrm_campaign</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <add>3.4</add>
+ <name>campaign_id</name>
+ <uniqueName>participant_campaign_id</uniqueName>
+ <type>int unsigned</type>
+ <title>Campaign</title>
+ <import>true</import>
+ <comment>The campaign for which this participant has been registered.</comment>
+ <pseudoconstant>
+ <table>civicrm_campaign</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>campaign_id</name>
- <table>civicrm_campaign</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>campaign_id</name>
+ <table>civicrm_campaign</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>discount_amount</name>
- <type>int unsigned</type>
- <title>Discount Amount</title>
- <comment>Discount Amount</comment>
- <add>4.1</add>
+ <name>discount_amount</name>
+ <type>int unsigned</type>
+ <title>Discount Amount</title>
+ <comment>Discount Amount</comment>
+ <add>4.1</add>
</field>
<field>
- <name>cart_id</name>
- <type>int unsigned</type>
- <title>Event Cart ID</title>
- <comment>FK to civicrm_event_carts</comment>
- <add>4.1</add>
+ <name>cart_id</name>
+ <type>int unsigned</type>
+ <title>Event Cart ID</title>
+ <comment>FK to civicrm_event_carts</comment>
+ <add>4.1</add>
</field>
<foreignKey>
- <name>cart_id</name>
- <table>civicrm_event_carts</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>cart_id</name>
+ <table>civicrm_event_carts</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>must_wait</name>
- <type>int</type>
- <title>Must Wait on List</title>
- <comment>On Waiting List</comment>
- <add>4.1</add>
+ <name>must_wait</name>
+ <type>int</type>
+ <title>Must Wait on List</title>
+ <comment>On Waiting List</comment>
+ <add>4.1</add>
</field>
</table>
<add>1.7</add>
<log>true</log>
<field>
- <name>id</name>
- <title>Payment ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Participant Payment Id</comment>
- <add>1.7</add>
+ <name>id</name>
+ <title>Payment ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Participant Payment Id</comment>
+ <add>1.7</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>participant_id</name>
- <title>Participant ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Participant Id (FK)</comment>
- <add>1.7</add>
+ <name>participant_id</name>
+ <title>Participant ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Participant Id (FK)</comment>
+ <add>1.7</add>
</field>
<foreignKey>
- <name>participant_id</name>
- <table>civicrm_participant</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>participant_id</name>
+ <table>civicrm_participant</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contribution_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to contribution table.</comment>
- <add>2.0</add>
+ <name>contribution_id</name>
+ <title>Contribution</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to contribution table.</comment>
+ <add>2.0</add>
</field>
<foreignKey>
- <name>contribution_id</name>
- <table>civicrm_contribution</table>
- <key>id</key>
- <add>2.0</add>
- <onDelete>CASCADE</onDelete>
+ <name>contribution_id</name>
+ <table>civicrm_contribution</table>
+ <key>id</key>
+ <add>2.0</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<index>
<name>UI_contribution_participant</name>
<log>true</log>
<field>
<name>id</name>
+ <title>Participant Status Type ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>unique participant status type id</comment>
</field>
<field>
<name>label</name>
+ <title>Participant Status Label</title>
<type>varchar</type>
<length>255</length>
<unique>true</unique>
</field>
<field>
<name>class</name>
+ <title>Participant Status Class</title>
<type>varchar</type>
<length>8</length>
<comment>the general group of status type this one belongs to</comment>
</field>
<field>
<name>is_reserved</name>
+ <title>Participant Status Is Reserved?></title>
<type>boolean</type>
<comment>whether this is a status type required by the system</comment>
<add>3.0</add>
</field>
<field>
<name>is_active</name>
+ <title>Participant Status is Active</title>
<type>boolean</type>
<default>1</default>
<comment>whether this status type is active</comment>
</field>
<field>
<name>is_counted</name>
+ <title>Participant Status Counts?</title>
<type>boolean</type>
<comment>whether this status type is counted against event size limit</comment>
<add>3.0</add>
</field>
<field>
<name>weight</name>
+ <title>Status Weight</title>
<type>int unsigned</type>
<required>true</required>
<comment>controls sort order</comment>
</field>
<field>
<name>visibility_id</name>
+ <title>Participant Status Visibility</title>
<type>int unsigned</type>
<comment>whether the status type is visible to the public, an implicit foreign key to option_value.value related to the `visibility` option_group</comment>
<add>3.0</add>
<add>1.7</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Currency Id</comment>
- <add>1.7</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Currency Id</comment>
+ <add>1.7</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Currency</title>
- <type>varchar</type>
- <length>64</length>
- <import>true</import>
- <comment>Currency Name</comment>
- <add>1.7</add>
- <html>
- <type>Text</type>
- </html>
+ <name>name</name>
+ <title>Currency</title>
+ <type>varchar</type>
+ <length>64</length>
+ <import>true</import>
+ <comment>Currency Name</comment>
+ <add>1.7</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>symbol</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Currency Symbol</comment>
- <add>1.7</add>
- <html>
- <type>Text</type>
- </html>
+ <name>symbol</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Currency Symbol</comment>
+ <add>1.7</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>numeric_code</name>
- <type>varchar</type>
- <length>3</length>
- <import>true</import>
- <comment>Numeric currency code</comment>
- <add>1.9</add>
+ <name>numeric_code</name>
+ <type>varchar</type>
+ <length>3</length>
+ <import>true</import>
+ <comment>Numeric currency code</comment>
+ <add>1.9</add>
</field>
<field>
- <name>full_name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Full currency name</comment>
- <html>
- <type>Text</type>
- </html>
- <add>1.9</add>
+ <name>full_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Full currency name</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>1.9</add>
</field>
</table>
<log>true</log>
<field>
<name>id</name>
+ <title>Financial Account ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>ID</comment>
</primaryKey>
<field>
<name>name</name>
+ <title>Financial Account Name</title>
<type>varchar</type>
<length>255</length>
<required>true</required>
<field>
<name>financial_account_type_id</name>
<type>int unsigned</type>
+ <title>Financial Account Type</title>
<required>true</required>
<default>3</default>
<add>4.3</add>
<field>
<name>description</name>
<type>varchar</type>
+ <title>Financial Account Description</title>
<length>255</length>
<comment>Financial Type Description.</comment>
<add>4.3</add>
<field>
<name>parent_id</name>
<type>int unsigned</type>
+ <title>Financial Account Parent</title>
<comment>Parent ID in account hierarchy</comment>
<add>4.3</add>
</field>
<field>
<name>is_header_account</name>
<type>boolean</type>
+ <title>Header Financial Account?</title>
<default>0</default>
<comment>Is this a header account which does not allow transactions to be posted against it directly, but only to its sub-accounts?</comment>
<add>4.3</add>
<field>
<name>is_deductible</name>
<type>boolean</type>
+ <title>Deductible Financial Account?</title>
<default>1</default>
<comment>Is this account tax-deductible?</comment>
<add>4.3</add>
<field>
<name>is_tax</name>
<type>boolean</type>
+ <title>Tax Financial Account?</title>
<default>0</default>
<comment>Is this account for taxes?</comment>
<add>4.3</add>
<field>
<name>tax_rate</name>
<type>decimal</type>
+ <title>Financial Account Tax Rate</title>
<length>10,8</length>
<comment>The percentage of the total_amount that is due for this tax.</comment>
<add>4.3</add>
<field>
<name>is_reserved</name>
<type>boolean</type>
+ <title>Reserved Financial Account?</title>
<comment>Is this a predefined system object?</comment>
<add>4.3</add>
</field>
<field>
<name>is_active</name>
<type>boolean</type>
+ <title>Financial Account is Active</title>
<comment>Is this property active?</comment>
<add>4.3</add>
</field>
<field>
<name>is_default</name>
<type>boolean</type>
+ <title>Default Financial Account</title>
<comment>Is this account the default one (or default tax one) for its financial_account_type?</comment>
<add>4.3</add>
</field>
<log>true</log>
<field>
<name>id</name>
+ <title>Financial Type ID</title>
<type>int unsigned</type>
<length>10</length>
<required>true</required>
</field>
<field>
<name>is_deductible</name>
+ <title>Is Tax Deductible?</title>
<type>boolean</type>
<length>4</length>
<default>1</default>
</field>
<field>
<name>is_reserved</name>
+ <title>Financial Type is Reserved?</title>
<type>boolean</type>
<length>4</length>
<comment>Is this a predefined system object?</comment>
<field>
<name>is_active</name>
<type>boolean</type>
+ <title>Financial Type Is Active?</title>
<length>4</length>
<comment>Is this property active?</comment>
<add>1.3</add>
<add>1.8</add>
<field>
<name>id</name>
+ <title>Payment Processor ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Payment Processor ID</comment>
</primaryKey>
<field>
<name>domain_id</name>
+ <title>Payment Processor Domain</title>
<type>int unsigned</type>
<required>true</required>
<pseudoconstant>
</field>
<field>
<name>description</name>
+ <title>Processor Description</title>
<type>varchar</type>
<length>255</length>
<comment>Payment Processor Description.</comment>
</field>
<field>
<name>payment_processor_type_id</name>
+ <title>Payment Processor Type ID</title>
<type>int unsigned</type>
<length>10</length>
<add>4.3</add>
</foreignKey>
<field>
<name>is_active</name>
+ <title>Processor is Active?</title>
<type>boolean</type>
<comment>Is this processor active?</comment>
<add>1.8</add>
</field>
<field>
<name>is_default</name>
+ <title>Processor Is Default?</title>
<type>boolean</type>
<comment>Is this processor the default?</comment>
<add>1.8</add>
</field>
<field>
<name>is_test</name>
+ <title>Is Test Processor?</title>
<type>boolean</type>
<comment>Is this processor for a test site?</comment>
<add>1.8</add>
</field>
<field>
<name>billing_mode</name>
+ <title>Processor Billing Mode</title>
<type>int unsigned</type>
<required>true</required>
<comment>Billing Mode</comment>
</field>
<field>
<name>is_recur</name>
+ <title>Processor Supports Recurring?</title>
<type>boolean</type>
<comment>Can process recurring contributions</comment>
<add>1.8</add>
</field>
<field>
<name>payment_type</name>
+ <title>Payment Type</title>
<type>int unsigned</type>
<default>1</default>
<comment>Payment Type: Credit or Debit</comment>
<name>civicrm_payment_processor_type</name>
<add>1.8</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Payment Processor Type ID</comment>
- <add>1.8</add>
+ <name>id</name>
+ <title>Payment Processor Type ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Payment Processor Type ID</comment>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Payment Processor variable name to be used in code</title>
- <type>varchar</type>
- <length>64</length>
- <comment>Payment Processor Name.</comment>
- <add>1.8</add>
+ <name>name</name>
+ <title>Payment Processor variable name to be used in code</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Payment Processor Name.</comment>
+ <add>1.8</add>
</field>
<field>
- <name>title</name>
- <title>Payment Processor Title</title>
- <type>varchar</type>
- <length>127</length>
- <comment>Payment Processor Name.</comment>
- <add>1.8</add>
+ <name>title</name>
+ <title>Payment Processor Title</title>
+ <type>varchar</type>
+ <length>127</length>
+ <comment>Payment Processor Name.</comment>
+ <add>1.8</add>
</field>
<field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Payment Processor Description.</comment>
- <add>1.8</add>
+ <name>description</name>
+ <title>Processor Type De</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Payment Processor Description.</comment>
+ <add>1.8</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this processor active?</comment>
- <add>1.8</add>
+ <name>is_active</name>
+ <title>Processor Type Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this processor active?</comment>
+ <add>1.8</add>
</field>
<field>
- <name>is_default</name>
- <type>boolean</type>
- <comment>Is this processor the default?</comment>
- <add>1.8</add>
+ <name>is_default</name>
+ <title>Processor Type is Default?</title>
+ <type>boolean</type>
+ <comment>Is this processor the default?</comment>
+ <add>1.8</add>
</field>
<index>
<name>UI_name</name>
<add>2.1</add>
</index>
<field>
- <name>user_name_label</name>
- <title>Label for User Name if used</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>user_name_label</name>
+ <title>Label for User Name if used</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>password_label</name>
- <title>Label for password</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>password_label</name>
+ <title>Label for password</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>signature_label</name>
- <title>Label for Signature</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>signature_label</name>
+ <title>Label for Signature</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>subject_label</name>
- <title>Label for Subject</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>subject_label</name>
+ <title>Label for Subject</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>class_name</name>
- <title>Suffix for PHP clas name implementation</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>class_name</name>
+ <title>Suffix for PHP clas name implementation</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_site_default</name>
- <title>Default Live Site URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_site_default</name>
+ <title>Default Live Site URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_api_default</name>
- <title>Default API Site URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_api_default</name>
+ <title>Default API Site URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_recur_default</name>
- <title>Default Live Recurring Payments URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_recur_default</name>
+ <title>Default Live Recurring Payments URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_button_default</name>
- <title>Default Live Button URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_button_default</name>
+ <title>Default Live Button URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_site_test_default</name>
- <title>Default Test Site URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_site_test_default</name>
+ <title>Default Test Site URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_api_test_default</name>
- <title>Default Test API URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_api_test_default</name>
+ <title>Default Test API URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_recur_test_default</name>
- <title>Default Test Recurring Payment URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_recur_test_default</name>
+ <title>Default Test Recurring Payment URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>url_button_test_default</name>
- <title>Default Test Button URL</title>
- <type>varchar</type>
- <length>255</length>
- <add>1.8</add>
+ <name>url_button_test_default</name>
+ <title>Default Test Button URL</title>
+ <type>varchar</type>
+ <length>255</length>
+ <add>1.8</add>
</field>
<field>
- <name>billing_mode</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Billing Mode</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::billingMode</callback>
- </pseudoconstant>
-<html>
- <type>Select</type>
-</html>
- <add>1.8</add>
+ <name>billing_mode</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Billing Mode</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::billingMode</callback>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.8</add>
</field>
<field>
- <name>is_recur</name>
- <type>boolean</type>
- <comment>Can process recurring contributions</comment>
- <add>1.8</add>
+ <name>is_recur</name>
+ <title>Processor Type Supports Recurring?</title>
+ <type>boolean</type>
+ <comment>Can process recurring contributions</comment>
+ <add>1.8</add>
</field>
<field>
- <name>payment_type</name>
- <type>int unsigned</type>
- <default>1</default>
- <comment>Payment Type: Credit or Debit</comment>
- <add>3.0</add>
+ <name>payment_type</name>
+ <title>Processor Type Payment Type</title>
+ <type>int unsigned</type>
+ <default>1</default>
+ <comment>Payment Type: Credit or Debit</comment>
+ <add>3.0</add>
</field>
</table>
<name>civicrm_tell_friend</name>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Friend ID</comment>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Friend ID</comment>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Name of table where item being referenced is stored.</comment>
- <add>2.0</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Name of table where item being referenced is stored.</comment>
+ <add>2.0</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign key to the referenced item.</comment>
- <add>2.0</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign key to the referenced item.</comment>
+ <add>2.0</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>2.0</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>2.0</add>
</dynamicForeignKey>
<field>
- <name>title</name>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>title</name>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>intro</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Introductory message to contributor or participant displayed on the Tell a Friend form.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>intro</name>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Introductory message to contributor or participant displayed on the Tell a Friend form.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>suggested_message</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Suggested message to friends, provided as default on the Tell A Friend form.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>suggested_message</name>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Suggested message to friends, provided as default on the Tell A Friend form.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>general_link</name>
- <type>varchar</type>
- <length>255</length>
- <import>true</import>
- <comment>URL for general info about the organization - included in the email sent to friends.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>general_link</name>
+ <type>varchar</type>
+ <length>255</length>
+ <import>true</import>
+ <comment>URL for general info about the organization - included in the email sent to friends.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>thankyou_title</name>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Text for Tell a Friend thank you page header and HTML title.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>thankyou_title</name>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Text for Tell a Friend thank you page header and HTML title.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>thankyou_text</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Thank you message displayed on success page.</comment>
- <add>2.0</add>
- <html>
- <type>Text</type>
- </html>
+ <name>thankyou_text</name>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Thank you message displayed on success page.</comment>
+ <add>2.0</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
<name>is_active</name>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing</base>
- <class>BouncePattern</class>
- <name>civicrm_mailing_bounce_pattern</name>
- <comment>Pseudo-constant table of patterns for bounce classification</comment>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>bounce_type_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Type of bounce</comment>
- </field>
- <foreignKey>
- <name>bounce_type_id</name>
- <table>civicrm_mailing_bounce_type</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>pattern</name>
- <type>varchar</type>
- <length>255</length>
- <comment>A regexp to match a message to a bounce type</comment>
- </field>
+ <base>CRM/Mailing</base>
+ <class>BouncePattern</class>
+ <name>civicrm_mailing_bounce_pattern</name>
+ <comment>Pseudo-constant table of patterns for bounce classification</comment>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>bounce_type_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Type of bounce</comment>
+ </field>
+ <foreignKey>
+ <name>bounce_type_id</name>
+ <table>civicrm_mailing_bounce_type</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>pattern</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>A regexp to match a message to a bounce type</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing</base>
- <class>BounceType</class>
- <name>civicrm_mailing_bounce_type</name>
- <comment>Table to index the various bounce types and their properties</comment>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>name</name>
- <type>varchar</type>
- <length>8</length>
- <required>true</required>
- <comment>Type of bounce</comment>
- </field>
- <field>
- <name>description</name>
- <type>varchar</type>
- <length>255</length>
- <comment>A description of this bounce type</comment>
- </field>
- <field>
- <name>hold_threshold</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Number of bounces of this type required before the email address is put on bounce hold</comment>
- </field>
+ <base>CRM/Mailing</base>
+ <class>BounceType</class>
+ <name>civicrm_mailing_bounce_type</name>
+ <comment>Table to index the various bounce types and their properties</comment>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>name</name>
+ <type>varchar</type>
+ <length>8</length>
+ <required>true</required>
+ <comment>Type of bounce</comment>
+ </field>
+ <field>
+ <name>description</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>A description of this bounce type</comment>
+ </field>
+ <field>
+ <name>hold_threshold</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Number of bounces of this type required before the email address is put on bounce hold</comment>
+ </field>
</table>
<name>civicrm_mailing_component</name>
<comment>Stores information about the mailing components (header/footer).</comment>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <title>Mailing Component ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <title>Component Name</title>
- <type>varchar</type>
- <length>64</length>
- <comment>The name of this component</comment>
+ <name>name</name>
+ <title>Component Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>The name of this component</comment>
</field>
<field>
- <name>component_type</name>
- <type>varchar</type>
- <length>12</length>
- <comment>Type of Component.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::mailingComponents</callback>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>component_type</name>
+ <title>Mailing Component Type</title>
+ <type>varchar</type>
+ <length>12</length>
+ <comment>Type of Component.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::mailingComponents</callback>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>subject</name>
- <type>varchar</type>
- <length>255</length>
+ <name>subject</name>
+ <type>varchar</type>
+ <length>255</length>
</field>
<field>
- <name>body_html</name>
- <type>text</type>
- <comment>Body of the component in html format.</comment>
- <html>
- <type>TextArea</type>
- <rows>8</rows>
- <cols>80</cols>
- </html>
- </field>
+ <name>body_html</name>
+ <title>Mailing Component Body HTML</title>
+ <type>text</type>
+ <comment>Body of the component in html format.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>8</rows>
+ <cols>80</cols>
+ </html>
+ </field>
<field>
- <name>body_text</name>
- <type>text</type>
- <comment>Body of the component in text format.</comment>
- <html>
- <type>TextArea</type>
- <rows>8</rows>
- <cols>80</cols>
- </html>
- </field>
+ <name>body_text</name>
+ <type>text</type>
+ <comment>Body of the component in text format.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>8</rows>
+ <cols>80</cols>
+ </html>
+ </field>
<field>
- <name>is_default</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this the default component for this component_type?</comment>
+ <name>is_default</name>
+ <title>Mailing Component is Default?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this the default component for this component_type?</comment>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this property active?</comment>
+ <name>is_active</name>
+ <title>Mailing Component Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this property active?</comment>
</field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Bounce</class>
- <name>civicrm_mailing_event_bounce</name>
- <comment>Tracks when and why an email bounced.</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>bounce_type_id</name>
- <type>int unsigned</type>
- <comment>What type of bounce was it?</comment>
- <pseudoconstant>
- <table>civicrm_mailing_bounce_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>bounce_reason</name>
- <type>varchar</type>
- <length>255</length>
- <comment>The reason the email bounced.</comment>
- </field>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this bounce event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Bounce</class>
+ <name>civicrm_mailing_event_bounce</name>
+ <comment>Tracks when and why an email bounced.</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>bounce_type_id</name>
+ <type>int unsigned</type>
+ <comment>What type of bounce was it?</comment>
+ <pseudoconstant>
+ <table>civicrm_mailing_bounce_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>bounce_reason</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>The reason the email bounced.</comment>
+ </field>
+ <field>
+ <name>time_stamp</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this bounce event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Confirm</class>
- <name>civicrm_mailing_event_confirm</name>
- <comment>Tracks when a subscription event is confirmed by email</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_subscribe_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_mailing_event_subscribe</comment>
- </field>
- <foreignKey>
- <name>event_subscribe_id</name>
- <table>civicrm_mailing_event_subscribe</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this confirmation event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Confirm</class>
+ <name>civicrm_mailing_event_confirm</name>
+ <comment>Tracks when a subscription event is confirmed by email</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <title>Mailing Confirmation ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_subscribe_id</name>
+ <title>Mailing Subscribe ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_mailing_event_subscribe</comment>
+ </field>
+ <foreignKey>
+ <name>event_subscribe_id</name>
+ <table>civicrm_mailing_event_subscribe</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>time_stamp</name>
+ <title>Confirm Timestamp</title>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this confirmation event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Delivered</class>
- <name>civicrm_mailing_event_delivered</name>
- <comment>Tracks when a queued email is actually delivered to the MTA</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this delivery event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Delivered</class>
+ <name>civicrm_mailing_event_delivered</name>
+ <comment>Tracks when a queued email is actually delivered to the MTA</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>time_stamp</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this delivery event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Forward</class>
- <name>civicrm_mailing_event_forward</name>
- <comment>Tracks when a contact forwards a mailing to a (new) contact</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>dest_queue_id</name>
- <type>int unsigned</type>
- <comment>FK to EventQueue for destination</comment>
- </field>
- <foreignKey>
- <name>dest_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
- </foreignKey>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this forward event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Forward</class>
+ <name>civicrm_mailing_event_forward</name>
+ <comment>Tracks when a contact forwards a mailing to a (new) contact</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>dest_queue_id</name>
+ <type>int unsigned</type>
+ <comment>FK to EventQueue for destination</comment>
+ </field>
+ <foreignKey>
+ <name>dest_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
+ </foreignKey>
+ <field>
+ <name>time_stamp</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this forward event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Opened</class>
- <name>civicrm_mailing_event_opened</name>
- <comment>Tracks when a delivered email is opened by the recipient</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this open event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Opened</class>
+ <name>civicrm_mailing_event_opened</name>
+ <comment>Tracks when a delivered email is opened by the recipient</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>time_stamp</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this open event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Queue</class>
- <name>civicrm_mailing_event_queue</name>
- <comment>A collection of all intended recipients of a job</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>job_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Job</comment>
- </field>
- <foreignKey>
- <name>job_id</name>
- <table>civicrm_mailing_job</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>email_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to Email</comment>
- </field>
- <foreignKey>
- <name>email_id</name>
- <table>civicrm_email</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact</comment>
- </field>
- <foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>hash</name>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <comment>Security hash</comment>
- </field>
- <field>
- <name>phone_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to Phone</comment>
- </field>
- <foreignKey>
- <name>phone_id</name>
- <table>civicrm_phone</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
+ <base>CRM/Mailing/Event</base>
+ <class>Queue</class>
+ <name>civicrm_mailing_event_queue</name>
+ <comment>A collection of all intended recipients of a job</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>job_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Job</comment>
+ </field>
+ <foreignKey>
+ <name>job_id</name>
+ <table>civicrm_mailing_job</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>email_id</name>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>FK to Email</comment>
+ </field>
+ <foreignKey>
+ <name>email_id</name>
+ <table>civicrm_email</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact</comment>
+ </field>
+ <foreignKey>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>hash</name>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <comment>Security hash</comment>
+ </field>
+ <field>
+ <name>phone_id</name>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>FK to Phone</comment>
+ </field>
+ <foreignKey>
+ <name>phone_id</name>
+ <table>civicrm_phone</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Reply</class>
- <name>civicrm_mailing_event_reply</name>
- <comment>Tracks when a contact replies to a mailing</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this reply event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Reply</class>
+ <name>civicrm_mailing_event_reply</name>
+ <comment>Tracks when a contact replies to a mailing</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>time_stamp</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this reply event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Subscribe</class>
- <name>civicrm_mailing_event_subscribe</name>
- <comment>Tracks when a (new) contact subscribes to a group by email</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>group_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Group</comment>
- <pseudoconstant>
- <table>civicrm_group</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <foreignKey>
- <name>group_id</name>
- <table>civicrm_group</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact</comment>
- </field>
- <foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>hash</name>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <comment>Security hash</comment>
- </field>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this subscription event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Subscribe</class>
+ <name>civicrm_mailing_event_subscribe</name>
+ <comment>Tracks when a (new) contact subscribes to a group by email</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <title>Mailing Subscribe ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>group_id</name>
+ <title>Mailing Subscribe Group</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Group</comment>
+ <pseudoconstant>
+ <table>civicrm_group</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <foreignKey>
+ <name>group_id</name>
+ <table>civicrm_group</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>contact_id</name>
+ <title>Mailing Subscribe Contact</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact</comment>
+ </field>
+ <foreignKey>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>hash</name>
+ <title>Mailing Subscribe Hash</title>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <comment>Security hash</comment>
+ </field>
+ <field>
+ <name>time_stamp</name>
+ <title>Mailing Subscribe Timestamp</title>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this subscription event occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>TrackableURLOpen</class>
- <name>civicrm_mailing_event_trackable_url_open</name>
- <comment>Tracks when a TrackableURL is clicked by a recipient.</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>trackable_url_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to TrackableURL</comment>
- </field>
- <foreignKey>
- <name>trackable_url_id</name>
- <table>civicrm_mailing_trackable_url</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this trackable URL open occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>TrackableURLOpen</class>
+ <name>civicrm_mailing_event_trackable_url_open</name>
+ <comment>Tracks when a TrackableURL is clicked by a recipient.</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>trackable_url_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to TrackableURL</comment>
+ </field>
+ <foreignKey>
+ <name>trackable_url_id</name>
+ <table>civicrm_mailing_trackable_url</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>time_stamp</name>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this trackable URL open occurred.</comment>
+ </field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing/Event</base>
- <class>Unsubscribe</class>
- <name>civicrm_mailing_event_unsubscribe</name>
- <comment>Tracks when a recipient unsubscribes from a group/domain</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>event_queue_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to EventQueue</comment>
- </field>
- <foreignKey>
- <name>event_queue_id</name>
- <table>civicrm_mailing_event_queue</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
- <field>
- <name>org_unsubscribe</name>
- <type>boolean</type>
- <required>true</required>
- <comment>Unsubscribe at org- or group-level</comment>
- </field>
- <field>
- <name>time_stamp</name>
- <type>datetime</type>
- <required>true</required>
- <comment>When this delivery event occurred.</comment>
- </field>
+ <base>CRM/Mailing/Event</base>
+ <class>Unsubscribe</class>
+ <name>civicrm_mailing_event_unsubscribe</name>
+ <comment>Tracks when a recipient unsubscribes from a group/domain</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <title>Unsubscribe ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>event_queue_id</name>
+ <title>Mailing Event Queue</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to EventQueue</comment>
+ </field>
+ <foreignKey>
+ <name>event_queue_id</name>
+ <table>civicrm_mailing_event_queue</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
+ <field>
+ <name>org_unsubscribe</name>
+ <title>Unsubscribe is for Organization?</title>
+ <type>boolean</type>
+ <required>true</required>
+ <comment>Unsubscribe at org- or group-level</comment>
+ </field>
+ <field>
+ <name>time_stamp</name>
+ <title>Unsubscribe Timestamp</title>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>When this delivery event occurred.</comment>
+ </field>
</table>
<comment>Stores information about a mailing.</comment>
<archive>true</archive>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <title>Mailing ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <type>int unsigned</type>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <comment>Which site is this mailing for</comment>
- <add>3.4</add>
+ <name>domain_id</name>
+ <title>Mailing Domain</title>
+ <type>int unsigned</type>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <comment>Which site is this mailing for</comment>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
- <add>3.4</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
+ <add>3.4</add>
</foreignKey>
<field>
- <name>header_id</name>
- <type>int unsigned</type>
- <comment>FK to the header component.</comment>
+ <name>header_id</name>
+ <title>Mailing Header</title>
+ <type>int unsigned</type>
+ <comment>FK to the header component.</comment>
</field>
<foreignKey>
- <name>header_id</name>
- <table>civicrm_mailing_component</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>header_id</name>
+ <table>civicrm_mailing_component</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>footer_id</name>
- <type>int unsigned</type>
- <comment>FK to the footer component.</comment>
+ <name>footer_id</name>
+ <title>Mailing Footer</title>
+ <type>int unsigned</type>
+ <comment>FK to the footer component.</comment>
</field>
<foreignKey>
- <name>footer_id</name>
- <table>civicrm_mailing_component</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>footer_id</name>
+ <table>civicrm_mailing_component</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>reply_id</name>
- <type>int unsigned</type>
- <comment>FK to the auto-responder component.</comment>
+ <name>reply_id</name>
+ <title>Mailing Reply</title>
+ <type>int unsigned</type>
+ <comment>FK to the auto-responder component.</comment>
</field>
<foreignKey>
- <name>reply_id</name>
- <table>civicrm_mailing_component</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>reply_id</name>
+ <table>civicrm_mailing_component</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>unsubscribe_id</name>
- <type>int unsigned</type>
- <comment>FK to the unsubscribe component.</comment>
+ <name>unsubscribe_id</name>
+ <title>Mailing Unsubscribe</title>
+ <type>int unsigned</type>
+ <comment>FK to the unsubscribe component.</comment>
</field>
<foreignKey>
- <name>unsubscribe_id</name>
- <table>civicrm_mailing_component</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>unsubscribe_id</name>
+ <table>civicrm_mailing_component</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>resubscribe_id</name>
- <type>int unsigned</type>
+ <name>resubscribe_id</name>
+ <title>Mailing Resubscribe</title>
+ <type>int unsigned</type>
</field>
<foreignKey>
- <name>optout_id</name>
- <table>civicrm_mailing_component</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>optout_id</name>
+ <table>civicrm_mailing_component</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>optout_id</name>
- <type>int unsigned</type>
- <comment>FK to the opt-out component.</comment>
+ <name>optout_id</name>
+ <title>Mailing Opt Out</title>
+ <type>int unsigned</type>
+ <comment>FK to the opt-out component.</comment>
</field>
<foreignKey>
- <name>optout_id</name>
- <table>civicrm_mailing_component</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>optout_id</name>
+ <table>civicrm_mailing_component</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>128</length>
- <comment>Mailing Name.</comment>
- <html>
- <type>Text</type>
- </html>
+ <name>name</name>
+ <title>Mailing Name</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Mailing Name.</comment>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>from_name</name>
- <type>varchar</type>
- <length>128</length>
- <comment>From Header of mailing</comment>
- <html>
- <type>Text</type>
- </html>
+ <name>from_name</name>
+ <title>Mailing From Name</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>From Header of mailing</comment>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>from_email</name>
- <type>varchar</type>
- <length>128</length>
- <comment>From Email of mailing</comment>
- <html>
- <type>Text</type>
- </html>
+ <name>from_email</name>
+ <title>Mailing From Email</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>From Email of mailing</comment>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>replyto_email</name>
- <type>varchar</type>
- <length>128</length>
- <comment>Reply-To Email of mailing</comment>
- <html>
- <type>Text</type>
- </html>
+ <name>replyto_email</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Reply-To Email of mailing</comment>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>subject</name>
- <type>varchar</type>
- <length>128</length>
- <comment>Subject of mailing</comment>
- <html>
- <type>Text</type>
- </html>
+ <name>subject</name>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Subject of mailing</comment>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>body_text</name>
- <type>longtext</type>
- <comment>Body of the mailing in text format.</comment>
+ <name>body_text</name>
+ <type>longtext</type>
+ <comment>Body of the mailing in text format.</comment>
</field>
<field>
- <name>body_html</name>
- <type>longtext</type>
- <comment>Body of the mailing in html format.</comment>
+ <name>body_html</name>
+ <type>longtext</type>
+ <comment>Body of the mailing in html format.</comment>
</field>
<field>
- <name>url_tracking</name>
- <type>boolean</type>
- <comment>Should we track URL click-throughs for this mailing?</comment>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>url_tracking</name>
+ <type>boolean</type>
+ <comment>Should we track URL click-throughs for this mailing?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>forward_replies</name>
- <type>boolean</type>
- <comment>Should we forward replies back to the author?</comment>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>forward_replies</name>
+ <type>boolean</type>
+ <comment>Should we forward replies back to the author?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>auto_responder</name>
- <type>boolean</type>
- <comment>Should we enable the auto-responder?</comment>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>auto_responder</name>
+ <type>boolean</type>
+ <comment>Should we enable the auto-responder?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>open_tracking</name>
- <type>boolean</type>
- <comment>Should we track when recipients open/read this mailing?</comment>
+ <name>open_tracking</name>
+ <title>Track Mailing?</title>
+ <type>boolean</type>
+ <comment>Should we track when recipients open/read this mailing?</comment>
</field>
<field>
- <name>is_completed</name>
- <type>boolean</type>
- <comment>Has at least one job associated with this mailing finished?</comment>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>is_completed</name>
+ <title>Mailing Completed</title>
+ <type>boolean</type>
+ <comment>Has at least one job associated with this mailing finished?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>msg_template_id</name>
- <type>int unsigned</type>
- <comment>FK to the message template.</comment>
+ <name>msg_template_id</name>
+ <title>Mailing Message Template</title>
+ <type>int unsigned</type>
+ <comment>FK to the message template.</comment>
</field>
<foreignKey>
- <name>msg_template_id</name>
- <table>civicrm_msg_template</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>msg_template_id</name>
+ <table>civicrm_msg_template</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>override_verp</name>
- <type>boolean</type>
- <default>0</default>
- <add>2.2</add>
- <comment>Should we overrite VERP address in Reply-To</comment>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>override_verp</name>
+ <type>boolean</type>
+ <default>0</default>
+ <add>2.2</add>
+ <comment>Should we overrite VERP address in Reply-To</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>created_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID who first created this mailing</comment>
+ <name>created_id</name>
+ <title>Mailing Creator</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID who first created this mailing</comment>
</field>
<foreignKey>
- <name>created_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>created_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>created_date</name>
- <type>datetime</type>
- <title>Mailing Created Date</title>
- <comment>Date and time this mailing was created.</comment>
- <add>3.0</add>
- <html>
- <type>Select Date</type>
- </html>
+ <name>created_date</name>
+ <type>datetime</type>
+ <title>Mailing Created Date</title>
+ <comment>Date and time this mailing was created.</comment>
+ <add>3.0</add>
+ <html>
+ <type>Select Date</type>
+ </html>
</field>
<field>
- <name>scheduled_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID who scheduled this mailing</comment>
+ <name>scheduled_id</name>
+ <title>Scheduled By</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID who scheduled this mailing</comment>
</field>
<foreignKey>
- <name>scheduled_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>scheduled_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>scheduled_date</name>
- <type>datetime</type>
- <title>Mailing Scheduled Date</title>
- <comment>Date and time this mailing was scheduled.</comment>
- <add>3.3</add>
+ <name>scheduled_date</name>
+ <type>datetime</type>
+ <title>Mailing Scheduled Date</title>
+ <comment>Date and time this mailing was scheduled.</comment>
+ <add>3.3</add>
</field>
<field>
- <name>approver_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID who approved this mailing</comment>
+ <name>approver_id</name>
+ <title>Approved By</title>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID who approved this mailing</comment>
</field>
<foreignKey>
- <name>approver_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>approver_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>approval_date</name>
- <type>datetime</type>
- <title>Mailing Approved Date</title>
- <comment>Date and time this mailing was approved.</comment>
- <add>3.3</add>
- </field>
- <field>
- <name>approval_status_id</name>
- <type>int unsigned</type>
- <title>Approval Status</title>
- <comment>The status of this mailing. Values: none, approved, rejected</comment>
- <pseudoconstant>
- <optionGroupName>mail_approval_status</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>3.3</add>
- </field>
- <field>
- <name>approval_note</name>
- <type>longtext</type>
- <title>Approval Note</title>
- <comment>Note behind the decision.</comment>
- <add>3.3</add>
- <html>
- <type>TextArea</type>
- </html>
- </field>
- <field>
- <name>is_archived</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this mailing archived?</comment>
- <html>
- <type>CheckBox</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>visibility</name>
- <type>varchar</type>
- <length>40</length>
- <default>'Public Pages'</default>
- <comment>In what context(s) is the mailing contents visible (online viewing)</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::groupVisibility</callback>
- </pseudoconstant>
- <add>3.3</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>campaign_id</name>
- <type>int unsigned</type>
- <comment>The campaign for which this mailing has been initiated.</comment>
- <pseudoconstant>
- <table>civicrm_campaign</table>
- <keyColumn>id</keyColumn>
- <labelColumn>title</labelColumn>
- </pseudoconstant>
- <add>3.4</add>
- <html>
- <type>Select</type>
- </html>
+ <name>approval_date</name>
+ <type>datetime</type>
+ <title>Mailing Approved Date</title>
+ <comment>Date and time this mailing was approved.</comment>
+ <add>3.3</add>
+ </field>
+ <field>
+ <name>approval_status_id</name>
+ <type>int unsigned</type>
+ <title>Approval Status</title>
+ <comment>The status of this mailing. Values: none, approved, rejected</comment>
+ <pseudoconstant>
+ <optionGroupName>mail_approval_status</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>3.3</add>
+ </field>
+ <field>
+ <name>approval_note</name>
+ <type>longtext</type>
+ <title>Approval Note</title>
+ <comment>Note behind the decision.</comment>
+ <add>3.3</add>
+ <html>
+ <type>TextArea</type>
+ </html>
+ </field>
+ <field>
+ <name>is_archived</name>
+ <type>boolean</type>
+ <title>Is Mailing Archived?</title>
+ <default>0</default>
+ <comment>Is this mailing archived?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>visibility</name>
+ <type>varchar</type>
+ <title>Mailing Visibility</title>
+ <length>40</length>
+ <default>'Public Pages'</default>
+ <comment>In what context(s) is the mailing contents visible (online viewing)</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::groupVisibility</callback>
+ </pseudoconstant>
+ <add>3.3</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>campaign_id</name>
+ <type>int unsigned</type>
+ <title>Mailing Campaign</title>
+ <comment>The campaign for which this mailing has been initiated.</comment>
+ <pseudoconstant>
+ <table>civicrm_campaign</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <add>3.4</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>campaign_id</name>
- <table>civicrm_campaign</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
+ <name>campaign_id</name>
+ <table>civicrm_campaign</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>dedupe_email</name>
- <type>boolean</type>
- <default>0</default>
- <add>4.1</add>
- <comment>Remove duplicate emails?</comment>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>sms_provider_id</name>
- <type>int unsigned</type>
- <add>4.2</add>
- <html>
- <type>Select</type>
- </html>
+ <name>dedupe_email</name>
+ <type>boolean</type>
+ <title>No Duplicate emails?</title>
+ <default>0</default>
+ <add>4.1</add>
+ <comment>Remove duplicate emails?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>sms_provider_id</name>
+ <title>Mailing SMS Provider</title>
+ <type>int unsigned</type>
+ <add>4.2</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<foreignKey>
- <name>sms_provider_id</name>
- <table>civicrm_sms_provider</table>
- <key>id</key>
- <onDelete>SET NULL</onDelete>
- <add>4.2</add>
+ <name>sms_provider_id</name>
+ <table>civicrm_sms_provider</table>
+ <key>id</key>
+ <onDelete>SET NULL</onDelete>
+ <add>4.2</add>
</foreignKey>
<field>
- <name>hash</name>
- <title>Mailing Hash</title>
- <type>varchar</type>
- <length>16</length>
- <comment>Key for validating requests related to this mailing.</comment>
- <add>4.5</add>
+ <name>hash</name>
+ <title>Mailing Hash</title>
+ <type>varchar</type>
+ <length>16</length>
+ <comment>Key for validating requests related to this mailing.</comment>
+ <add>4.5</add>
</field>
<index>
- <name>index_hash</name>
- <fieldName>hash</fieldName>
- <add>4.5</add>
+ <name>index_hash</name>
+ <fieldName>hash</fieldName>
+ <add>4.5</add>
</index>
</table>
<comment>Stores information about the groups that participate in this mailing..</comment>
<archive>true</archive>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <title>Mailing Group ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>mailing_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The ID of a previous mailing to include/exclude recipients.</comment>
+ <name>mailing_id</name>
+ <title>Mailing</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The ID of a previous mailing to include/exclude recipients.</comment>
</field>
<foreignKey>
- <name>mailing_id</name>
- <table>civicrm_mailing</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>mailing_id</name>
+ <table>civicrm_mailing</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>group_type</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Are the members of the group included or excluded?.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getMailingGroupTypes</callback>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>group_type</name>
+ <title>Mailing Group Type</title>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Are the members of the group included or excluded?.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getMailingGroupTypes</callback>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Name of table where item being referenced is stored.</comment>
+ <name>entity_table</name>
+ <title>Mailing Group Entity Table</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Name of table where item being referenced is stored.</comment>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Foreign key to the referenced item.</comment>
+ <name>entity_id</name>
+ <title>Mailing Group Entity</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Foreign key to the referenced item.</comment>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
</dynamicForeignKey>
<field>
- <name>search_id</name>
- <type>int</type>
- <comment>The filtering search. custom search id or -1 for civicrm api search</comment>
+ <name>search_id</name>
+ <title>Mailing Group Search</title>
+ <type>int</type>
+ <comment>The filtering search. custom search id or -1 for civicrm api search</comment>
</field>
<field>
- <name>search_args</name>
- <type>text</type>
- <comment>The arguments to be sent to the search function</comment>
+ <name>search_args</name>
+ <title>Mailing Group Search Arguments</title>
+ <type>text</type>
+ <comment>The arguments to be sent to the search function</comment>
</field>
</table>
<comment>Stores information about the job that executes this mailing</comment>
<archive>true</archive>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <title>Mailing JOb ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>mailing_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The ID of the mailing this Job will send.</comment>
+ <name>mailing_id</name>
+ <title>Mailing</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The ID of the mailing this Job will send.</comment>
</field>
<foreignKey>
- <name>mailing_id</name>
- <table>civicrm_mailing</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>mailing_id</name>
+ <table>civicrm_mailing</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>scheduled_date</name>
- <type>datetime</type>
- <comment>date on which this job was scheduled.</comment>
+ <name>scheduled_date</name>
+ <title>Mailing Scheduled Date</title>
+ <type>datetime</type>
+ <comment>date on which this job was scheduled.</comment>
</field>
<field>
- <name>start_date</name>
- <type>datetime</type>
- <comment>date on which this job was started.</comment>
+ <name>start_date</name>
+ <title>Mailing Job Start Date</title>
+ <type>datetime</type>
+ <comment>date on which this job was started.</comment>
</field>
<field>
- <name>end_date</name>
- <type>datetime</type>
- <comment>date on which this job ended.</comment>
+ <name>end_date</name>
+ <title>Mailing Job End Date</title>
+ <type>datetime</type>
+ <comment>date on which this job ended.</comment>
</field>
<field>
- <name>status</name>
- <type>varchar</type>
- <length>12</length>
- <comment>The state of this job</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::getMailingJobStatus</callback>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>status</name>
+ <title>Mailing Job Status</title>
+ <type>varchar</type>
+ <length>12</length>
+ <comment>The state of this job</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::getMailingJobStatus</callback>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>is_test</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this job for a test mail?</comment>
- <add>1.9</add>
+ <name>is_test</name>
+ <title>Mailing Job Is Test?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this job for a test mail?</comment>
+ <add>1.9</add>
</field>
<field>
- <name>job_type</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Type of mailling job: null | child </comment>
- <add>3.3</add>
+ <name>job_type</name>
+ <title>Mailing Job Type</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Type of mailling job: null | child </comment>
+ <add>3.3</add>
</field>
<field>
- <name>parent_id</name>
- <type>int unsigned</type>
- <comment>Parent job id</comment>
- <default>NULL</default>
- <add>3.3</add>
+ <name>parent_id</name>
+ <title>Mailing Job Parent</title>
+ <type>int unsigned</type>
+ <comment>Parent job id</comment>
+ <default>NULL</default>
+ <add>3.3</add>
</field>
<foreignKey>
- <name>parent_id</name>
- <table>civicrm_mailing_job</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>parent_id</name>
+ <table>civicrm_mailing_job</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>job_offset</name>
- <type>int</type>
- <comment>Offset of the child job</comment>
- <default>0</default>
- <add>3.3</add>
+ <name>job_offset</name>
+ <title>Mailing Job Offset</title>
+ <type>int</type>
+ <comment>Offset of the child job</comment>
+ <default>0</default>
+ <add>3.3</add>
</field>
<field>
- <name>job_limit</name>
- <type>int</type>
- <comment>Queue size limit for each child job</comment>
- <default>0</default>
- <add>3.3</add>
+ <name>job_limit</name>
+ <title>Mailing Job Limit</title>
+ <type>int</type>
+ <comment>Queue size limit for each child job</comment>
+ <default>0</default>
+ <add>3.3</add>
</field>
</table>
<comment>Stores information about the recipients of a mailing.</comment>
<archive>true</archive>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <title>Mailing Recipients ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>mailing_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The ID of the mailing this Job will send.</comment>
+ <name>mailing_id</name>
+ <title>Mailing</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The ID of the mailing this Job will send.</comment>
</field>
<foreignKey>
- <name>mailing_id</name>
- <table>civicrm_mailing</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>mailing_id</name>
+ <table>civicrm_mailing</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact</comment>
+ <name>contact_id</name>
+ <title>Mailing Recipient</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact</comment>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>email_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to Email</comment>
+ <name>email_id</name>
+ <title>Recipient Email</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>FK to Email</comment>
</field>
<foreignKey>
- <name>email_id</name>
- <table>civicrm_email</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>email_id</name>
+ <table>civicrm_email</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>phone_id</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>FK to Phone</comment>
+ <name>phone_id</name>
+ <title>Recipient Phone</title>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>FK to Phone</comment>
</field>
<foreignKey>
- <name>phone_id</name>
- <table>civicrm_phone</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>phone_id</name>
+ <table>civicrm_phone</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
</table>
<name>civicrm_mailing_spool</name>
<comment>Stores the outbond mails</comment>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>job_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The ID of the Job .</comment>
+ <name>job_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The ID of the Job .</comment>
</field>
<foreignKey>
- <name>job_id</name>
- <table>civicrm_mailing_job</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
+ <name>job_id</name>
+ <table>civicrm_mailing_job</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>recipient_email</name>
- <type>text</type>
- <comment>The email of the receipients this mail is to be sent.</comment>
+ <name>recipient_email</name>
+ <type>text</type>
+ <comment>The email of the receipients this mail is to be sent.</comment>
</field>
<field>
- <name>headers</name>
- <type>text</type>
- <comment>The header information of this mailing .</comment>
+ <name>headers</name>
+ <type>text</type>
+ <comment>The header information of this mailing .</comment>
</field>
<field>
- <name>body</name>
- <type>text</type>
- <comment>The body of this mailing.</comment>
+ <name>body</name>
+ <type>text</type>
+ <comment>The body of this mailing.</comment>
</field>
<field>
- <name>added_at</name>
- <type>datetime</type>
- <comment>date on which this job was added.</comment>
+ <name>added_at</name>
+ <type>datetime</type>
+ <comment>date on which this job was added.</comment>
</field>
<field>
- <name>removed_at</name>
- <type>datetime</type>
- <comment>date on which this job was removed.</comment>
+ <name>removed_at</name>
+ <type>datetime</type>
+ <comment>date on which this job was removed.</comment>
</field>
</table>
<?xml version="1.0" encoding="iso-8859-1" ?>
<table>
- <base>CRM/Mailing</base>
- <class>TrackableURL</class>
- <name>civicrm_mailing_trackable_url</name>
- <comment>Stores URLs for which we should track click-throughs from mailings</comment>
- <archive>true</archive>
- <field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- </field>
- <primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
- </primaryKey>
- <field>
- <name>url</name>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <comment>The URL to be tracked.</comment>
- </field>
- <field>
- <name>mailing_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to the mailing</comment>
- </field>
- <foreignKey>
- <name>mailing_id</name>
- <table>civicrm_mailing</table>
- <key>id</key>
- <onDelete>CASCADE</onDelete>
- </foreignKey>
+ <base>CRM/Mailing</base>
+ <class>TrackableURL</class>
+ <name>civicrm_mailing_trackable_url</name>
+ <comment>Stores URLs for which we should track click-throughs from mailings</comment>
+ <archive>true</archive>
+ <field>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ </field>
+ <primaryKey>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
+ </primaryKey>
+ <field>
+ <name>url</name>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <comment>The URL to be tracked.</comment>
+ </field>
+ <field>
+ <name>mailing_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to the mailing</comment>
+ </field>
+ <foreignKey>
+ <name>mailing_id</name>
+ <table>civicrm_mailing</table>
+ <key>id</key>
+ <onDelete>CASCADE</onDelete>
+ </foreignKey>
</table>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <uniqueName>membership_id</uniqueName>
- <type>int unsigned</type>
- <required>true</required>
- <import>true</import>
- <title>Membership ID</title>
- <headerPattern>/^(m(embership\s)?id)$/i</headerPattern>
- <comment>Membership Id</comment>
- <add>1.5</add>
+ <name>id</name>
+ <uniqueName>membership_id</uniqueName>
+ <type>int unsigned</type>
+ <required>true</required>
+ <import>true</import>
+ <title>Membership ID</title>
+ <headerPattern>/^(m(embership\s)?id)$/i</headerPattern>
+ <comment>Membership Id</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <uniqueName>membership_contact_id</uniqueName>
- <type>int unsigned</type>
- <required>true</required>
- <title>Contact ID</title>
- <headerPattern>/contact(.?id)?/i</headerPattern>
- <dataPattern>/^\d+$/</dataPattern>
- <import>true</import>
- <comment>FK to Contact ID</comment>
- <add>1.5</add>
- <html>
- <type>Autocomplete-Select</type>
- </html>
+ <name>contact_id</name>
+ <uniqueName>membership_contact_id</uniqueName>
+ <type>int unsigned</type>
+ <required>true</required>
+ <title>Contact ID</title>
+ <headerPattern>/contact(.?id)?/i</headerPattern>
+ <dataPattern>/^\d+$/</dataPattern>
+ <import>true</import>
+ <comment>FK to Contact ID</comment>
+ <add>1.5</add>
+ <html>
+ <type>Autocomplete-Select</type>
+ </html>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>membership_type_id</name>
- <type>int unsigned</type>
- <title>Membership Type Id</title>
- <import>true</import>
- <headerPattern>/^(m(embership\s)?type)$/i</headerPattern>
- <export>false</export>
- <required>true</required>
- <comment>FK to Membership Type</comment>
- <pseudoconstant>
- <table>civicrm_membership_type</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.5</add>
+ <name>membership_type_id</name>
+ <type>int unsigned</type>
+ <title>Membership Type Id</title>
+ <import>true</import>
+ <headerPattern>/^(m(embership\s)?type)$/i</headerPattern>
+ <export>false</export>
+ <required>true</required>
+ <comment>FK to Membership Type</comment>
+ <pseudoconstant>
+ <table>civicrm_membership_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>membership_type_id</name>
- <table>civicrm_membership_type</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>CASCADE</onDelete>
+ <name>membership_type_id</name>
+ <table>civicrm_membership_type</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>join_date</name>
- <title>Member Since</title>
- <type>date</type>
- <import>true</import>
- <headerPattern>/^join|(j(oin\s)?date)$/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Beginning of initial membership period (member since...).</comment>
- <add>1.5</add>
- <html>
- <type>Select Date</type>
- </html>
+ <name>join_date</name>
+ <title>Member Since</title>
+ <type>date</type>
+ <import>true</import>
+ <headerPattern>/^join|(j(oin\s)?date)$/i</headerPattern>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Beginning of initial membership period (member since...).</comment>
+ <add>1.5</add>
+ <html>
+ <type>Select Date</type>
+ </html>
</field>
<field>
- <name>start_date</name>
- <uniqueName>membership_start_date</uniqueName>
- <title>Membership Start Date</title>
- <type>date</type>
- <import>true</import>
- <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Beginning of current uninterrupted membership period.</comment>
- <add>1.5</add>
- <html>
- <type>Select Date</type>
- </html>
+ <name>start_date</name>
+ <uniqueName>membership_start_date</uniqueName>
+ <title>Membership Start Date</title>
+ <type>date</type>
+ <import>true</import>
+ <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i</headerPattern>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Beginning of current uninterrupted membership period.</comment>
+ <add>1.5</add>
+ <html>
+ <type>Select Date</type>
+ </html>
</field>
<field>
- <name>end_date</name>
- <uniqueName>membership_end_date</uniqueName>
- <title>Membership Expiration Date</title>
- <type>date</type>
- <import>true</import>
- <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Current membership period expire date.</comment>
- <add>1.5</add>
- <html>
- <type>Select Date</type>
- </html>
+ <name>end_date</name>
+ <uniqueName>membership_end_date</uniqueName>
+ <title>Membership Expiration Date</title>
+ <type>date</type>
+ <import>true</import>
+ <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i</headerPattern>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Current membership period expire date.</comment>
+ <add>1.5</add>
+ <html>
+ <type>Select Date</type>
+ </html>
</field>
<field>
- <name>source</name>
- <uniqueName>membership_source</uniqueName>
- <title>Source</title>
- <import>true</import>
- <headerPattern>/^(member(ship?))?source$/i</headerPattern>
- <type>varchar</type>
- <length>128</length>
- <add>1.5</add>
- <html>
- <type>Text</type>
- </html>
+ <name>source</name>
+ <uniqueName>membership_source</uniqueName>
+ <title>Source</title>
+ <import>true</import>
+ <headerPattern>/^(member(ship?))?source$/i</headerPattern>
+ <type>varchar</type>
+ <length>128</length>
+ <add>1.5</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>status_id</name>
- <title>Membership Status Id</title>
- <import>true</import>
- <headerPattern>/(member(ship|).)?(status)$/i</headerPattern>
- <type>int unsigned</type>
- <export>false</export>
- <required>true</required>
- <comment>FK to Membership Status</comment>
- <pseudoconstant>
- <table>civicrm_membership_status</table>
- <keyColumn>id</keyColumn>
- <labelColumn>label</labelColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- <add>1.5</add>
+ <name>status_id</name>
+ <title>Membership Status Id</title>
+ <import>true</import>
+ <headerPattern>/(member(ship|).)?(status)$/i</headerPattern>
+ <type>int unsigned</type>
+ <export>false</export>
+ <required>true</required>
+ <comment>FK to Membership Status</comment>
+ <pseudoconstant>
+ <table>civicrm_membership_status</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>label</labelColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>status_id</name>
- <table>civicrm_membership_status</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>CASCADE</onDelete>
+ <name>status_id</name>
+ <table>civicrm_membership_status</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>is_override</name>
- <title>Status Override</title>
- <import>true</import>
- <headerPattern>/override$/i</headerPattern>
- <type>boolean</type>
- <comment>Admin users may set a manual status which overrides the calculated status. When this flag is true, automated status update scripts should NOT modify status for the record.</comment>
- <html>
- <type>CheckBox</type>
- </html>
- <add>1.5</add>
+ <name>is_override</name>
+ <title>Status Override</title>
+ <import>true</import>
+ <headerPattern>/override$/i</headerPattern>
+ <type>boolean</type>
+ <comment>Admin users may set a manual status which overrides the calculated status. When this flag is true, automated status update scripts should NOT modify status for the record.</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ <add>1.5</add>
</field>
<field>
- <name>owner_membership_id</name>
- <type>int unsigned</type>
+ <name>owner_membership_id</name>
+ <type>int unsigned</type>
<title>Primary Member ID</title>
- <comment>Optional FK to Parent Membership.</comment>
- <export>true</export>
- <add>1.7</add>
+ <comment>Optional FK to Parent Membership.</comment>
+ <export>true</export>
+ <add>1.7</add>
</field>
<foreignKey>
- <name>owner_membership_id</name>
- <table>civicrm_membership</table>
- <key>id</key>
- <add>1.7</add>
- <onDelete>SET NULL</onDelete>
+ <name>owner_membership_id</name>
+ <table>civicrm_membership</table>
+ <key>id</key>
+ <add>1.7</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<index>
<name>index_owner_membership_id</name>
<add>1.7</add>
</index>
<field>
- <name>max_related</name>
- <type>int</type>
- <comment>Maximum number of related memberships (membership_type override).</comment>
- <add>4.3</add>
- <html>
- <type>Text</type>
- </html>
+ <name>max_related</name>
+ <type>int</type>
+ <comment>Maximum number of related memberships (membership_type override).</comment>
+ <add>4.3</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>is_test</name>
- <title>Test</title>
- <uniqueName>member_is_test</uniqueName>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <headerPattern>/(is.)?test(.member(ship)?)?/i</headerPattern>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>is_test</name>
+ <title>Test</title>
+ <uniqueName>member_is_test</uniqueName>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <headerPattern>/(is.)?test(.member(ship)?)?/i</headerPattern>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
- <name>is_pay_later</name>
- <uniqueName>member_is_pay_later</uniqueName>
- <title>Is Pay Later</title>
- <type>boolean</type>
- <default>0</default>
- <import>true</import>
- <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
- <add>2.1</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>is_pay_later</name>
+ <uniqueName>member_is_pay_later</uniqueName>
+ <title>Is Pay Later</title>
+ <type>boolean</type>
+ <default>0</default>
+ <import>true</import>
+ <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
+ <add>2.1</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
<field>
<name>contribution_recur_id</name>
+ <title>Memberhip Recurring Contribution</title>
<type>int unsigned</type>
<comment>Conditional foreign key to civicrm_contribution_recur id. Each membership in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.</comment>
<add>3.3</add>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Membership Id</comment>
- <add>1.5</add>
+ <name>id</name>
+ <title>Membership Block ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Membership Id</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Name for Membership Status</comment>
- <add>1.5</add>
+ <name>entity_table</name>
+ <title>Membership Block Entity Table</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Name for Membership Status</comment>
+ <add>1.5</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_contribution_page.id</comment>
- <add>1.5</add>
+ <name>entity_id</name>
+ <title>Membership Block Entity ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_contribution_page.id</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>entity_id</name>
- <table>civicrm_contribution_page</table>
- <key>id</key>
- <add>1.5</add>
+ <name>entity_id</name>
+ <table>civicrm_contribution_page</table>
+ <key>id</key>
+ <add>1.5</add>
</foreignKey>
<field>
- <name>membership_types</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Membership types to be exposed by this block</comment>
- <add>1.5</add>
+ <name>membership_types</name>
+ <title>Membership Block Membership Types</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Membership types to be exposed by this block</comment>
+ <add>1.5</add>
</field>
<field>
- <name>membership_type_default</name>
- <type>int unsigned</type>
- <comment>Optional foreign key to membership_type</comment>
- <add>1.5</add>
+ <name>membership_type_default</name>
+ <title>Membership Block Default Type</title>
+ <type>int unsigned</type>
+ <comment>Optional foreign key to membership_type</comment>
+ <add>1.5</add>
</field>
- <foreignKey>
- <name>membership_type_default</name>
- <table>civicrm_membership_type</table>
- <key>id</key>
- <add>1.5</add>
+ <foreignKey>
+ <name>membership_type_default</name>
+ <table>civicrm_membership_type</table>
+ <key>id</key>
+ <add>1.5</add>
</foreignKey>
<field>
- <name>display_min_fee</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Display minimum membership fee</comment>
- <add>1.5</add>
+ <name>display_min_fee</name>
+ <title>Membership Block Display Minimum Fee</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Display minimum membership fee</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_separate_payment</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Should membership transactions be processed separately</comment>
- <add>1.5</add>
+ <name>is_separate_payment</name>
+ <title>Membership Block Is Separate Payment</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Should membership transactions be processed separately</comment>
+ <add>1.5</add>
</field>
<field>
- <name>new_title</name>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Title to display at top of block</comment>
- <add>1.5</add>
+ <name>new_title</name>
+ <title>Membership Block New Title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Title to display at top of block</comment>
+ <add>1.5</add>
</field>
<field>
- <name>new_text</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Text to display below title</comment>
- <add>1.5</add>
+ <name>new_text</name>
+ <title>Membership Block New Text</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Text to display below title</comment>
+ <add>1.5</add>
</field>
-<field>
- <name>renewal_title</name>
- <type>varchar</type>
- <length>255</length>
- <localizable>true</localizable>
- <comment>Title for renewal</comment>
- <add>1.5</add>
+ <field>
+ <name>renewal_title</name>
+ <title>Membership Block Renewal Title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <localizable>true</localizable>
+ <comment>Title for renewal</comment>
+ <add>1.5</add>
</field>
-<field>
- <name>renewal_text</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Text to display for member renewal</comment>
- <add>1.5</add>
+ <field>
+ <name>renewal_text</name>
+ <title>Membership Block Renewal Text</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Text to display for member renewal</comment>
+ <add>1.5</add>
</field>
- <field>
- <name>is_required</name>
- <title>Is Required</title>
- <type>boolean</type>
- <default>0</default>
- <comment>Is membership sign up optional</comment>
- <add>1.5</add>
+ <field>
+ <name>is_required</name>
+ <title>Is Required</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is membership sign up optional</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_active</name>
- <title>Is Active</title>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this membership_block enabled</comment>
- <add>1.5</add>
+ <name>is_active</name>
+ <title>Is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this membership_block enabled</comment>
+ <add>1.5</add>
</field>
</table>
<comment>Logs actions which affect a Membership record (signup, status override, renewal, etc.)</comment>
<add>1.5</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>1.5</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>membership_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Membership table</comment>
- <add>1.5</add>
+ <name>membership_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Membership table</comment>
+ <add>1.5</add>
</field>
<foreignKey>
<name>membership_id</name>
<onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>status_id</name>
- <title>Membership Status</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>New status assigned to membership by this action. FK to Membership Status</comment>
- <add>1.5</add>
+ <name>status_id</name>
+ <title>Membership Status</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>New status assigned to membership by this action. FK to Membership Status</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>status_id</name>
- <table>civicrm_membership_status</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>CASCADE</onDelete>
+ <name>status_id</name>
+ <table>civicrm_membership_status</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>start_date</name>
- <type>date</type>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>New membership period start date</comment>
- <add>1.5</add>
+ <name>start_date</name>
+ <type>date</type>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>New membership period start date</comment>
+ <add>1.5</add>
</field>
<field>
- <name>end_date</name>
- <type>date</type>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>New membership period expiration date.</comment>
- <add>1.5</add>
+ <name>end_date</name>
+ <type>date</type>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>New membership period expiration date.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>modified_id</name>
- <type>int unsigned</type>
- <comment>FK to Contact ID of person under whose credentials this data modification was made.</comment>
- <add>1.5</add>
+ <name>modified_id</name>
+ <type>int unsigned</type>
+ <comment>FK to Contact ID of person under whose credentials this data modification was made.</comment>
+ <add>1.5</add>
</field>
<foreignKey>
- <name>modified_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.5</add>
- <onDelete>SET NULL</onDelete>
+ <name>modified_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.5</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>modified_date</name>
- <title>Membership Change Date</title>
- <type>date</type>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Date this membership modification action was logged.</comment>
- <add>1.5</add>
+ <name>modified_date</name>
+ <title>Membership Change Date</title>
+ <type>date</type>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Date this membership modification action was logged.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>membership_type_id</name>
- <type>int unsigned</type>
- <comment>FK to Membership Type.</comment>
- <add>3.4</add>
+ <name>membership_type_id</name>
+ <type>int unsigned</type>
+ <comment>FK to Membership Type.</comment>
+ <add>3.4</add>
</field>
<foreignKey>
- <name>membership_type_id</name>
- <table>civicrm_membership_type</table>
- <key>id</key>
- <add>3.4</add>
- <onDelete>SET NULL</onDelete>
+ <name>membership_type_id</name>
+ <table>civicrm_membership_type</table>
+ <key>id</key>
+ <add>3.4</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>max_related</name>
- <type>int</type>
- <comment>Maximum number of related memberships.</comment>
- <add>4.3</add>
+ <name>max_related</name>
+ <type>int</type>
+ <comment>Maximum number of related memberships.</comment>
+ <add>4.3</add>
</field>
</table>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>1.5</add>
+ <name>id</name>
+ <title>Membership Payment ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>membership_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Membership table</comment>
- <add>1.5</add>
+ <name>membership_id</name>
+ <title>Membership</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Membership table</comment>
+ <add>1.5</add>
</field>
<foreignKey>
<name>membership_id</name>
<onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contribution_id</name>
- <type>int unsigned</type>
- <comment>FK to contribution table.</comment>
- <add>2.0</add>
+ <name>contribution_id</name>
+ <title>Contribution</title>
+ <type>int unsigned</type>
+ <comment>FK to contribution table.</comment>
+ <add>2.0</add>
</field>
<foreignKey>
<name>contribution_id</name>
<add>1.5</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Membership Id</comment>
- <add>1.5</add>
+ <name>id</name>
+ <title>Membership Status ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Membership Id</comment>
+ <add>1.5</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <uniqueName>membership_status</uniqueName>
- <title>Membership Status</title>
- <type>varchar</type>
- <import>true</import>
- <length>128</length>
- <comment>Name for Membership Status</comment>
- <add>1.5</add>
+ <name>name</name>
+ <uniqueName>membership_status</uniqueName>
+ <title>Membership Status</title>
+ <type>varchar</type>
+ <import>true</import>
+ <length>128</length>
+ <comment>Name for Membership Status</comment>
+ <add>1.5</add>
</field>
<field>
- <name>label</name>
- <type>varchar</type>
- <length>128</length>
- <localizable>true</localizable>
- <comment>Label for Membership Status</comment>
- <add>3.2</add>
+ <name>label</name>
+ <type>varchar</type>
+ <length>128</length>
+ <localizable>true</localizable>
+ <comment>Label for Membership Status</comment>
+ <add>3.2</add>
</field>
<field>
- <name>start_event</name>
- <type>varchar</type>
- <length>12</length>
- <comment>Event when this status starts.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::eventDate</callback>
- </pseudoconstant>
- <add>1.5</add>
- <html>
- <type>Select</type>
- </html>
+ <name>start_event</name>
+ <type>varchar</type>
+ <length>12</length>
+ <comment>Event when this status starts.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::eventDate</callback>
+ </pseudoconstant>
+ <add>1.5</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>start_event_adjust_unit</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Unit used for adjusting from start_event.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::unitList</callback>
- </pseudoconstant>
- <add>1.5</add>
- <html>
- <type>Select</type>
- </html>
+ <name>start_event_adjust_unit</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Unit used for adjusting from start_event.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::unitList</callback>
+ </pseudoconstant>
+ <add>1.5</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>start_event_adjust_interval</name>
- <type>int</type>
- <comment>Status range begins this many units from start_event.</comment>
- <add>1.5</add>
+ <name>start_event_adjust_interval</name>
+ <type>int</type>
+ <comment>Status range begins this many units from start_event.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>end_event</name>
- <type>varchar</type>
- <length>12</length>
- <comment>Event after which this status ends.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::eventDate</callback>
- </pseudoconstant>
- <add>1.5</add>
- <html>
- <type>Select</type>
- </html>
+ <name>end_event</name>
+ <type>varchar</type>
+ <length>12</length>
+ <comment>Event after which this status ends.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::eventDate</callback>
+ </pseudoconstant>
+ <add>1.5</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>end_event_adjust_unit</name>
- <type>varchar</type>
- <length>8</length>
- <comment>Unit used for adjusting from the ending event.</comment>
- <pseudoconstant>
- <callback>CRM_Core_SelectValues::unitList</callback>
- </pseudoconstant>
- <add>1.5</add>
- <html>
- <type>Select</type>
- </html>
+ <name>end_event_adjust_unit</name>
+ <type>varchar</type>
+ <length>8</length>
+ <comment>Unit used for adjusting from the ending event.</comment>
+ <pseudoconstant>
+ <callback>CRM_Core_SelectValues::unitList</callback>
+ </pseudoconstant>
+ <add>1.5</add>
+ <html>
+ <type>Select</type>
+ </html>
</field>
- <field>
- <name>end_event_adjust_interval</name>
- <type>int</type>
- <comment>Status range ends this many units from end_event.</comment>
- <add>1.5</add>
+ <field>
+ <name>end_event_adjust_interval</name>
+ <type>int</type>
+ <comment>Status range ends this many units from end_event.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_current_member</name>
- <title>Current Membership?</title>
- <type>boolean</type>
- <comment>Does this status aggregate to current members (e.g. New, Renewed, Grace might all be TRUE... while Unrenewed, Lapsed, Inactive would be FALSE).</comment>
- <add>1.5</add>
+ <name>is_current_member</name>
+ <title>Current Membership?</title>
+ <type>boolean</type>
+ <comment>Does this status aggregate to current members (e.g. New, Renewed, Grace might all be TRUE... while Unrenewed, Lapsed, Inactive would be FALSE).</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_admin</name>
- <title>Admin Assigned Only?</title>
- <type>boolean</type>
- <comment>Is this status for admin/manual assignment only.</comment>
- <add>1.5</add>
+ <name>is_admin</name>
+ <title>Admin Assigned Only?</title>
+ <type>boolean</type>
+ <comment>Is this status for admin/manual assignment only.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>weight</name>
- <title>Weight</title>
- <type>int</type>
- <add>1.5</add>
+ <name>weight</name>
+ <title>Weight</title>
+ <type>int</type>
+ <add>1.5</add>
</field>
<field>
- <name>is_default</name>
- <title>Default Status?</title>
- <type>boolean</type>
- <comment>Assign this status to a membership record if no other status match is found.</comment>
- <add>1.5</add>
+ <name>is_default</name>
+ <title>Default Status?</title>
+ <type>boolean</type>
+ <comment>Assign this status to a membership record if no other status match is found.</comment>
+ <add>1.5</add>
</field>
<field>
- <name>is_active</name>
- <title>Is Active</title>
- <type>boolean</type>
- <default>1</default>
- <comment>Is this membership_status enabled.</comment>
- <add>1.5</add>
+ <name>is_active</name>
+ <title>Is Active</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Is this membership_status enabled.</comment>
+ <add>1.5</add>
</field>
- <field>
- <name>is_reserved</name>
- <title>Is Reserved</title>
- <type>boolean</type>
- <default>0</default>
- <comment>Is this membership_status reserved.</comment>
- <add>2.1</add>
+ <field>
+ <name>is_reserved</name>
+ <title>Is Reserved</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is this membership_status reserved.</comment>
+ <add>2.1</add>
</field>
</table>
<log>true</log>
<field>
<name>id</name>
+ <title>Membership Type ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Membership Id</comment>
</primaryKey>
<field>
<name>domain_id</name>
+ <title>Membership Type Domain</title>
<type>int unsigned</type>
<required>true</required>
<pseudoconstant>
</field>
<field>
<name>description</name>
+ <title>Membership Type Description</title>
<type>varchar</type>
<html>
<type>TextArea</type>
</field>
<field>
<name>member_of_contact_id</name>
+ <title>Membership Type Organization</title>
<type>int unsigned</type>
<required>true</required>
<comment>Owner organization for this membership type. FK to Contact ID</comment>
</foreignKey>
<field>
<name>financial_type_id</name>
+ <title>Membership Financial Type</title>
<type>int unsigned</type>
<required>true</required>
<pseudoconstant>
</foreignKey>
<field>
<name>minimum_fee</name>
+ <title>membership Type Minimum Fee</title>
<type>decimal</type>
<comment>Minimum fee for this membership (0 for free/complimentary memberships).</comment>
<default>0</default>
</field>
<field>
<name>duration_unit</name>
+ <title>Membership Type Duration Unit</title>
<type>varchar</type>
<length>8</length>
<comment>Unit in which membership period is expressed.</comment>
</field>
<field>
<name>duration_interval</name>
+ <title>Membership Type Duration Interval</title>
<type>int</type>
<comment>Number of duration units in membership period (e.g. 1 year, 12 months).</comment>
<add>1.5</add>
</field>
<field>
<name>period_type</name>
+ <title>Membership Type Plan</title>
<type>varchar</type>
<length>8</length>
<comment>Rolling membership period starts on signup date. Fixed membership periods start on fixed_period_start_day.</comment>
</field>
<field>
<name>fixed_period_start_day</name>
+ <title>Fixed Period Start Day</title>
<type>int</type>
<comment>For fixed period memberships, month and day (mmdd) on which subscription/membership will start. Period start is back-dated unless after rollover day.</comment>
<add>1.5</add>
</field>
<field>
<name>fixed_period_rollover_day</name>
+ <title>Fixed Period Rollover Day</title>
<type>int</type>
<comment>For fixed period memberships, signups after this day (mmdd) rollover to next period.</comment>
<add>1.5</add>
</field>
<field>
<name>relationship_type_id</name>
+ <title>Membership Type Relationship</title>
<type>varchar</type>
<length>64</length>
<comment>FK to Relationship Type ID</comment>
</field>
<field>
<name>max_related</name>
+ <title>Max Related Members for Type</title>
<type>int</type>
<comment>Maximum number of related memberships.</comment>
<add>4.3</add>
</field>
<field>
<name>receipt_text_signup</name>
+ <title>Membership Type Receipt Text</title>
<type>varchar</type>
<html>
<type>TextArea</type>
</field>
<field>
<name>receipt_text_renewal</name>
+ <title>Membership Type Renewal Text</title>
<type>varchar</type>
<html>
<type>TextArea</type>
<add>2.2</add>
<log>true</log>
<field>
- <name>id</name>
- <uniqueName>pcp_id</uniqueName>
- <type>int unsigned</type>
- <required>true</required>
- <title>Personal Campaign Page ID</title>
- <comment>Personal Campaign Page ID</comment>
- <add>2.2</add>
+ <name>id</name>
+ <uniqueName>pcp_id</uniqueName>
+ <type>int unsigned</type>
+ <required>true</required>
+ <title>Personal Campaign Page ID</title>
+ <comment>Personal Campaign Page ID</comment>
+ <add>2.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>contact_id</name>
- <uniqueName>pcp_contact_id</uniqueName>
- <title>Contact ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact ID</comment>
- <add>2.2</add>
- <html>
- <type>Autocomplete-Select</type>
- </html>
+ <name>contact_id</name>
+ <uniqueName>pcp_contact_id</uniqueName>
+ <title>Contact ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact ID</comment>
+ <add>2.2</add>
+ <html>
+ <type>Autocomplete-Select</type>
+ </html>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>2.2</add>
- <onDelete>CASCADE</onDelete>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>2.2</add>
+ <onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>status_id</name>
- <title>Personal Campaign Page Status</title>
- <required>true</required>
- <type>int unsigned</type>
- <add>2.2</add>
- <pseudoconstant>
- <optionGroupName>pcp_status</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>title</name>
- <title>Personal Campaign Page Title</title>
- <type>varchar</type>
- <length>255</length>
- <default>NULL</default>
- <add>2.2</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>intro_text</name>
- <type>text</type>
- <default>NULL</default>
- <add>2.2</add>
- <html>
- <type>TexArea</type>
- </html>
- </field>
- <field>
- <name>page_text</name>
- <type>text</type>
- <default>NULL</default>
- <add>2.2</add>
- <html>
- <type>TexArea</type>
- </html>
- </field>
- <field>
- <name>donate_link_text</name>
- <type>varchar</type>
- <length>255</length>
- <default>NULL</default>
- <add>2.2</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>contribution_page_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The Contribution Page which triggered this pcp</comment>
- <add>2.2</add>
- <drop>4.1</drop>
+ <name>status_id</name>
+ <title>Personal Campaign Page Status</title>
+ <required>true</required>
+ <type>int unsigned</type>
+ <add>2.2</add>
+ <pseudoconstant>
+ <optionGroupName>pcp_status</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>title</name>
+ <title>Personal Campaign Page Title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <default>NULL</default>
+ <add>2.2</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>intro_text</name>
+ <type>text</type>
+ <default>NULL</default>
+ <add>2.2</add>
+ <html>
+ <type>TexArea</type>
+ </html>
+ </field>
+ <field>
+ <name>page_text</name>
+ <type>text</type>
+ <default>NULL</default>
+ <add>2.2</add>
+ <html>
+ <type>TexArea</type>
+ </html>
+ </field>
+ <field>
+ <name>donate_link_text</name>
+ <type>varchar</type>
+ <length>255</length>
+ <default>NULL</default>
+ <add>2.2</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>contribution_page_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The Contribution Page which triggered this pcp</comment>
+ <add>2.2</add>
+ <drop>4.1</drop>
</field>
<foreignKey>
- <name>contribution_page_id</name>
- <table>civicrm_contribution_page</table>
- <key>id</key>
- <drop>4.1</drop>
+ <name>contribution_page_id</name>
+ <table>civicrm_contribution_page</table>
+ <key>id</key>
+ <drop>4.1</drop>
</foreignKey>
<field>
- <name>page_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The Contribution or Event Page which triggered this pcp</comment>
- <add>4.1</add>
- </field>
- <field>
- <name>page_type</name>
- <title>PCP Page Type</title>
- <comment>The type of PCP this is: contribute or event</comment>
- <type>varchar</type>
- <length>64</length>
- <default>'contribute'</default>
- <html>
- <type>Select</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>pcp_block_id</name>
- <comment>The pcp block that this pcp page was created from</comment>
- <type>int unsigned</type>
- <required>true</required>
- <add>4.1</add>
- </field>
- <field>
- <name>is_thermometer</name>
- <type>int unsigned</type>
- <default>0</default>
- <html>
- <type>CheckBox</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>is_honor_roll</name>
- <type>int unsigned</type>
- <default>0</default>
- <add>2.2</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>goal_amount</name>
- <type>decimal</type>
- <comment>Goal amount of this Personal Campaign Page.</comment>
- <add>2.2</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>currency</name>
- <type>varchar</type>
- <length>3</length>
- <default>NULL</default>
- <comment>3 character string, value from config setting or input via user.</comment>
- <add>3.2</add>
- <pseudoconstant>
- <table>civicrm_currency</table>
- <keyColumn>name</keyColumn>
- <labelColumn>full_name</labelColumn>
- <nameColumn>numeric_code</nameColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>referer</name>
- <type>varchar</type>
- <length>255</length>
- <default>NULL</default>
- <add>2.2</add>
- <drop>4.1</drop>
- </field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is Personal Campaign Page enabled/active?</comment>
- <default>0</default>
- <add>2.2</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <name>page_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The Contribution or Event Page which triggered this pcp</comment>
+ <add>4.1</add>
+ </field>
+ <field>
+ <name>page_type</name>
+ <title>PCP Page Type</title>
+ <comment>The type of PCP this is: contribute or event</comment>
+ <type>varchar</type>
+ <length>64</length>
+ <default>'contribute'</default>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>pcp_block_id</name>
+ <comment>The pcp block that this pcp page was created from</comment>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>4.1</add>
+ </field>
+ <field>
+ <name>is_thermometer</name>
+ <type>int unsigned</type>
+ <default>0</default>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>is_honor_roll</name>
+ <type>int unsigned</type>
+ <default>0</default>
+ <add>2.2</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>goal_amount</name>
+ <type>decimal</type>
+ <comment>Goal amount of this Personal Campaign Page.</comment>
+ <add>2.2</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>currency</name>
+ <type>varchar</type>
+ <length>3</length>
+ <default>NULL</default>
+ <comment>3 character string, value from config setting or input via user.</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <table>civicrm_currency</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>full_name</labelColumn>
+ <nameColumn>numeric_code</nameColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>referer</name>
+ <type>varchar</type>
+ <length>255</length>
+ <default>NULL</default>
+ <add>2.2</add>
+ <drop>4.1</drop>
+ </field>
+ <field>
+ <name>is_active</name>
+ <type>boolean</type>
+ <comment>Is Personal Campaign Page enabled/active?</comment>
+ <default>0</default>
+ <add>2.2</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
</table>
<add>2.2</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>PCP block Id</comment>
- <add>2.2</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>PCP block Id</comment>
+ <add>2.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <add>2.2</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <add>2.2</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_contribution_page.id OR civicrm_event.id</comment>
- <add>2.2</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_contribution_page.id OR civicrm_event.id</comment>
+ <add>2.2</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>2.2</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>2.2</add>
</dynamicForeignKey>
<foreignKey>
- <name>entity_id</name>
- <table>civicrm_contribution_page</table>
- <key>id</key>
- <add>2.2</add>
- <drop>4.1</drop>
+ <name>entity_id</name>
+ <table>civicrm_contribution_page</table>
+ <key>id</key>
+ <add>2.2</add>
+ <drop>4.1</drop>
</foreignKey>
<field>
- <name>target_entity_type</name>
- <type>varchar</type>
- <length>255</length>
- <required>true</required>
- <default>'contribute'</default>
- <comment>The type of entity that this pcp targets</comment>
- <add>4.1</add>
+ <name>target_entity_type</name>
+ <type>varchar</type>
+ <length>255</length>
+ <required>true</required>
+ <default>'contribute'</default>
+ <comment>The type of entity that this pcp targets</comment>
+ <add>4.1</add>
</field>
<field>
- <name>target_entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>The entity that this pcp targets</comment>
- <add>4.1</add>
+ <name>target_entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>The entity that this pcp targets</comment>
+ <add>4.1</add>
</field>
<dynamicForeignKey>
- <idColumn>target_entity_id</idColumn>
- <!-- FIXME: typename and not tablename? -->
- <typeColumn>target_entity_type</typeColumn>
- <add>4.1</add>
+ <idColumn>target_entity_id</idColumn>
+ <!-- FIXME: typename and not tablename? -->
+ <typeColumn>target_entity_type</typeColumn>
+ <add>4.1</add>
</dynamicForeignKey>
<field>
- <name>supporter_profile_id</name>
- <type>int unsigned</type>
- <comment>FK to civicrm_uf_group.id. Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?</comment>
- <default>NULL</default>
- <add>2.2</add>
+ <name>supporter_profile_id</name>
+ <type>int unsigned</type>
+ <comment>FK to civicrm_uf_group.id. Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?</comment>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
<foreignKey>
- <name>supporter_profile_id</name>
- <table>civicrm_uf_group</table>
- <key>id</key>
- <add>3.1</add>
- <onDelete>SET NULL</onDelete>
+ <name>supporter_profile_id</name>
+ <table>civicrm_uf_group</table>
+ <key>id</key>
+ <add>3.1</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>is_approval_needed</name>
- <type>boolean</type>
- <comment>Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?</comment>
- <default>NULL</default>
- <add>2.2</add>
+ <name>is_approval_needed</name>
+ <type>boolean</type>
+ <comment>Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?</comment>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
<field>
- <name>is_tellfriend_enabled</name>
- <type>boolean</type>
- <comment>Does Personal Campaign Page allow using tell a friend?</comment>
- <default>NULL</default>
- <add>2.2</add>
+ <name>is_tellfriend_enabled</name>
+ <type>boolean</type>
+ <comment>Does Personal Campaign Page allow using tell a friend?</comment>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
<field>
- <name>tellfriend_limit</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Maximum recipient fields allowed in tell a friend</comment>
- <add>2.2</add>
+ <name>tellfriend_limit</name>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Maximum recipient fields allowed in tell a friend</comment>
+ <add>2.2</add>
</field>
<field>
- <name>link_text</name>
- <type>varchar</type>
- <length>255</length>
- <default>NULL</default>
- <localizable>true</localizable>
- <comment>Link text for PCP.</comment>
- <add>2.2</add>
+ <name>link_text</name>
+ <type>varchar</type>
+ <length>255</length>
+ <default>NULL</default>
+ <localizable>true</localizable>
+ <comment>Link text for PCP.</comment>
+ <add>2.2</add>
</field>
<field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is Personal Campaign Page Block enabled/active?</comment>
- <default>1</default>
- <add>2.2</add>
+ <name>is_active</name>
+ <type>boolean</type>
+ <comment>Is Personal Campaign Page Block enabled/active?</comment>
+ <default>1</default>
+ <add>2.2</add>
</field>
<field>
- <name>notify_email</name>
- <type>varchar</type>
- <length>255</length>
- <comment>If set, notification is automatically emailed to this email-address on create/update Personal Campaign Page</comment>
- <default>NULL</default>
- <add>2.2</add>
+ <name>notify_email</name>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>If set, notification is automatically emailed to this email-address on create/update Personal Campaign Page</comment>
+ <default>NULL</default>
+ <add>2.2</add>
</field>
</table>
<add>2.1</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Pledge ID</comment>
- <add>2.1</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Pledge ID</comment>
+ <add>2.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <title>Entity Table</title>
- <type>varchar</type>
- <length>64</length>
- <comment>physical tablename for entity being joined to pledge, e.g. civicrm_contact</comment>
- <add>2.1</add>
+ <name>entity_table</name>
+ <title>Entity Table</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>physical tablename for entity being joined to pledge, e.g. civicrm_contact</comment>
+ <add>2.1</add>
</field>
<field>
- <name>entity_id</name>
- <title>Entity Id</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to entity table specified in entity_table column.</comment>
- <add>2.1</add>
+ <name>entity_id</name>
+ <title>Entity Id</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to entity table specified in entity_table column.</comment>
+ <add>2.1</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>2.1</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>2.1</add>
</dynamicForeignKey>
<index>
- <name>index_entity</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <add>2.1</add>
+ <name>index_entity</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <add>2.1</add>
</index>
<field>
- <name>pledge_frequency_unit</name>
- <title>Pledge Frequency Unit</title>
- <type>varchar</type>
- <length>128</length>
- <comment>Delimited list of supported frequency units</comment>
- <add>2.1</add>
+ <name>pledge_frequency_unit</name>
+ <title>Pledge Frequency Unit</title>
+ <type>varchar</type>
+ <length>128</length>
+ <comment>Delimited list of supported frequency units</comment>
+ <add>2.1</add>
</field>
<field>
- <name>is_pledge_interval</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Is frequency interval exposed on the contribution form.</comment>
- <add>2.1</add>
+ <name>is_pledge_interval</name>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Is frequency interval exposed on the contribution form.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>max_reminders</name>
- <title>Maximum Number of Reminders</title>
- <type>int unsigned</type>
- <default>1</default>
- <comment>The maximum number of payment reminders to send for any given payment.</comment>
- <add>2.1</add>
+ <name>max_reminders</name>
+ <title>Maximum Number of Reminders</title>
+ <type>int unsigned</type>
+ <default>1</default>
+ <comment>The maximum number of payment reminders to send for any given payment.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>initial_reminder_day</name>
- <title>Initial Reminder Day</title>
- <type>int unsigned</type>
- <default>5</default>
- <comment>Send initial reminder this many days prior to the payment due date.</comment>
- <add>2.1</add>
+ <name>initial_reminder_day</name>
+ <title>Initial Reminder Day</title>
+ <type>int unsigned</type>
+ <default>5</default>
+ <comment>Send initial reminder this many days prior to the payment due date.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>additional_reminder_day</name>
- <title>Additional Reminder Days</title>
- <type>int unsigned</type>
- <default>5</default>
- <comment>Send additional reminder this many days after last one sent, up to maximum number of reminders.</comment>
- <add>2.1</add>
+ <name>additional_reminder_day</name>
+ <title>Additional Reminder Days</title>
+ <type>int unsigned</type>
+ <default>5</default>
+ <comment>Send additional reminder this many days after last one sent, up to maximum number of reminders.</comment>
+ <add>2.1</add>
</field>
</table>
<add>2.1</add>
<log>true</log>
<field>
- <name>id</name>
- <uniqueName>pledge_payment_id</uniqueName>
- <title>Payment ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <import>true</import>
- <add>2.1</add>
+ <name>id</name>
+ <uniqueName>pledge_payment_id</uniqueName>
+ <title>Payment ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <import>true</import>
+ <add>2.1</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>pledge_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Pledge table</comment>
- <add>2.1</add>
+ <name>pledge_id</name>
+ <title>Pledge</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Pledge table</comment>
+ <add>2.1</add>
</field>
<foreignKey>
<name>pledge_id</name>
<onDelete>CASCADE</onDelete>
</foreignKey>
<field>
- <name>contribution_id</name>
- <type>int unsigned</type>
- <comment>FK to contribution table.</comment>
- <add>2.1</add>
+ <name>contribution_id</name>
+ <title>Contribution</title>
+ <type>int unsigned</type>
+ <comment>FK to contribution table.</comment>
+ <add>2.1</add>
</field>
<foreignKey>
<name>contribution_id</name>
<add>2.1</add>
</index>
<field>
- <name>scheduled_amount</name>
- <uniqueName>pledge_payment_scheduled_amount</uniqueName>
- <title>Scheduled Amount</title>
- <import>true</import>
- <type>decimal</type>
- <required>true</required>
- <comment>Pledged amount for this payment (the actual contribution amount might be different).</comment>
- <add>2.1</add>
+ <name>scheduled_amount</name>
+ <uniqueName>pledge_payment_scheduled_amount</uniqueName>
+ <title>Scheduled Amount</title>
+ <import>true</import>
+ <type>decimal</type>
+ <required>true</required>
+ <comment>Pledged amount for this payment (the actual contribution amount might be different).</comment>
+ <add>2.1</add>
</field>
<field>
- <name>actual_amount</name>
- <uniqueName>pledge_payment_actual_amount</uniqueName>
- <title>Actual Amount</title>
- <import>true</import>
- <type>decimal</type>
- <comment>Actual amount that is paid as the Pledged installment amount.</comment>
- <add>3.2</add>
+ <name>actual_amount</name>
+ <uniqueName>pledge_payment_actual_amount</uniqueName>
+ <title>Actual Amount</title>
+ <import>true</import>
+ <type>decimal</type>
+ <comment>Actual amount that is paid as the Pledged installment amount.</comment>
+ <add>3.2</add>
</field>
<field>
- <name>currency</name>
- <type>varchar</type>
- <length>3</length>
- <default>NULL</default>
- <comment>3 character string, value from config setting or input via user.</comment>
- <add>3.2</add>
- <pseudoconstant>
- <table>civicrm_currency</table>
- <keyColumn>name</keyColumn>
- <labelColumn>full_name</labelColumn>
- <nameColumn>numeric_code</nameColumn>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
+ <name>currency</name>
+ <title>Currency</title>
+ <type>varchar</type>
+ <length>3</length>
+ <default>NULL</default>
+ <comment>3 character string, value from config setting or input via user.</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <table>civicrm_currency</table>
+ <keyColumn>name</keyColumn>
+ <labelColumn>full_name</labelColumn>
+ <nameColumn>numeric_code</nameColumn>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
</field>
<field>
- <name>scheduled_date</name>
- <uniqueName>pledge_payment_scheduled_date</uniqueName>
- <title>Scheduled Date</title>
- <import>true</import>
- <type>datetime</type>
- <required>true</required>
- <comment>The date the pledge payment is supposed to happen.</comment>
- <add>2.1</add>
+ <name>scheduled_date</name>
+ <uniqueName>pledge_payment_scheduled_date</uniqueName>
+ <title>Scheduled Date</title>
+ <import>true</import>
+ <type>datetime</type>
+ <required>true</required>
+ <comment>The date the pledge payment is supposed to happen.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>reminder_date</name>
- <uniqueName>pledge_payment_reminder_date</uniqueName>
- <title>Last Reminder</title>
- <import>true</import>
- <type>datetime</type>
- <comment>The date that the most recent payment reminder was sent.</comment>
- <add>2.1</add>
+ <name>reminder_date</name>
+ <uniqueName>pledge_payment_reminder_date</uniqueName>
+ <title>Last Reminder</title>
+ <import>true</import>
+ <type>datetime</type>
+ <comment>The date that the most recent payment reminder was sent.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>reminder_count</name>
- <uniqueName>pledge_payment_reminder_count</uniqueName>
- <title>Reminders Sent</title>
- <import>true</import>
- <type>int unsigned</type>
- <default>0</default>
- <comment>The number of payment reminders sent.</comment>
- <add>2.1</add>
+ <name>reminder_count</name>
+ <uniqueName>pledge_payment_reminder_count</uniqueName>
+ <title>Reminders Sent</title>
+ <import>true</import>
+ <type>int unsigned</type>
+ <default>0</default>
+ <comment>The number of payment reminders sent.</comment>
+ <add>2.1</add>
</field>
<field>
- <name>status_id</name>
- <title>Payment Status</title>
- <uniqueName>pledge_payment_status_id</uniqueName>
- <import>true</import>
- <export>false</export>
- <type>int unsigned</type>
- <add>2.1</add>
+ <name>status_id</name>
+ <title>Payment Status</title>
+ <uniqueName>pledge_payment_status_id</uniqueName>
+ <import>true</import>
+ <export>false</export>
+ <type>int unsigned</type>
+ <add>2.1</add>
</field>
<index>
<name>index_status</name>
<log>true</log>
<field>
<name>id</name>
+ <title>Line Item ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Line Item</comment>
</primaryKey>
<field>
<name>entity_table</name>
+ <title>Line Item Entity Type</title>
<type>varchar</type>
<length>64</length>
<required>true</required>
</field>
<field>
<name>entity_id</name>
+ <title>Line Item Entity</title>
<type>int unsigned</type>
<required>true</required>
<comment>entry in table</comment>
</dynamicForeignKey>
<field>
<name>contribution_id</name>
+ <title>Line Item Contribution</title>
<type>int unsigned</type>
<comment>FK to civicrm_contribution</comment>
<add>4.5</add>
</foreignKey>
<field>
<name>price_field_id</name>
+ <title>Line Item Price Field</title>
<type>int unsigned</type>
<comment>FK to civicrm_price_field</comment>
<!-- changed to not required in 4.3 in order to change ON DELETE CASCADE FK constraint to SET NULL -->
</foreignKey>
<field>
<name>option_group_id</name>
+ <title>Line Item Option Group</title>
<type>int unsigned</type>
<required>true</required>
<comment>FK to option group</comment>
</field>
<field>
<name>label</name>
+ <title>Line Item Label</title>
<type>varchar</type>
<length>255</length>
<default>NULL</default>
</field>
<field>
<name>qty</name>
+ <title>Line Item Quantity</title>
<type>int unsigned</type>
<required>true</required>
<comment>How many items ordered</comment>
</field>
<field>
<name>line_total</name>
+ <title>Line Item Total</title>
<type>decimal</type>
<required>true</required>
<comment>qty * unit_price</comment>
</field>
<field>
<name>participant_count</name>
+ <title>Line Item Participant Count</title>
<type>int unsigned</type>
<default>NULL</default>
- <comment>Participant count for fiel
- <html>
- <type>Text</type>
- </html>d</comment>
+ <comment>Participant count for field</comment>
+ <html>
+ <type>Text</type>
+ </html>
<add>3.2</add>
</field>
</index>
<field>
<name>price_field_value_id</name>
+ <title>Line Item Option</title>
<type>int unsigned</type>
<default>NULL</default>
<comment>FK to civicrm_price_field_value</comment>
<add>1.8</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Price Field</comment>
- <add>1.8</add>
+ <name>id</name>
+ <title>Price Field ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Price Field</comment>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>price_set_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to civicrm_price_set</comment>
- <add>1.8</add>
+ <name>price_set_id</name>
+ <title>Price Set</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to civicrm_price_set</comment>
+ <add>1.8</add>
</field>
<foreignKey>
- <name>price_set_id</name>
- <table>civicrm_price_set</table>
- <key>id</key>
- <add>1.8</add>
+ <name>price_set_id</name>
+ <table>civicrm_price_set</table>
+ <key>id</key>
+ <add>1.8</add>
</foreignKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <title>Name</title>
- <length>255</length>
- <required>true</required>
- <comment>Variable name/programmatic handle for this field.</comment>
- <add>1.8</add>
- <html>
- <type>Text</type>
- </html>
+ <name>name</name>
+ <type>varchar</type>
+ <title>Name</title>
+ <length>255</length>
+ <required>true</required>
+ <comment>Variable name/programmatic handle for this field.</comment>
+ <add>1.8</add>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<index>
- <name>index_name</name>
- <fieldName>name</fieldName>
- <add>1.8</add>
+ <name>index_name</name>
+ <fieldName>name</fieldName>
+ <add>1.8</add>
</index>
<field>
- <name>label</name>
- <type>varchar</type>
- <title>Label</title>
- <length>255</length>
- <required>true</required>
- <localizable>true</localizable>
- <comment>Text for form field label (also friendly name for administering this field).</comment>
- <html>
- <type>Text</type>
- </html>
- <add>1.8</add>
- </field>
- <field>
- <name>html_type</name>
- <type>varchar</type>
- <length>12</length>
- <required>true</required>
- <pseudoconstant>
- <callback>CRM_Price_BAO_PriceField::htmlTypes</callback>
- </pseudoconstant>
- <add>1.8</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>is_enter_qty</name>
- <type>boolean</type>
- <default>0</default>
- <comment>Enter a quantity for this field?</comment>
- <add>1.8</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>help_pre</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display before this field.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>80</cols>
- </html>
- <add>1.8</add>
- </field>
- <field>
- <name>help_post</name>
- <type>text</type>
- <localizable>true</localizable>
- <comment>Description and/or help text to display after this field.</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>80</cols>
- </html>
- <add>1.8</add>
- </field>
- <field>
- <name>weight</name>
- <type>int</type>
- <default>1</default>
- <comment>Order in which the fields should appear</comment>
- <add>1.8</add>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>is_display_amounts</name>
- <type>boolean</type>
- <default>1</default>
- <comment>Should the price be displayed next to the label for each option?</comment>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>options_per_line</name>
- <type>int unsigned</type>
- <default>1</default>
- <comment>number of options per line for checkbox and radio</comment>
- <add>1.8</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <comment>Is this price field active</comment>
- <default>1</default>
- <add>1.8</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>is_required</name>
- <type>boolean</type>
- <comment>Is this price field required (value must be > 1)</comment>
- <default>1</default>
- <add>1.8</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>active_on</name>
- <type>datetime</type>
- <default>NULL</default>
- <comment>If non-zero, do not show this field before the date specified</comment>
- <add>1.8</add>
- <html>
- <type>CheckBox</type>
- </html>
- </field>
- <field>
- <name>expire_on</name>
- <type>datetime</type>
- <default>NULL</default>
- <comment>If non-zero, do not show this field after the date specified</comment>
- <add>1.8</add>
- <html>
- <type>Select Date</type>
+ <name>label</name>
+ <type>varchar</type>
+ <title>Label</title>
+ <length>255</length>
+ <required>true</required>
+ <localizable>true</localizable>
+ <comment>Text for form field label (also friendly name for administering this field).</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>1.8</add>
+ </field>
+ <field>
+ <name>html_type</name>
+ <type>varchar</type>
+ <length>12</length>
+ <required>true</required>
+ <pseudoconstant>
+ <callback>CRM_Price_BAO_PriceField::htmlTypes</callback>
+ </pseudoconstant>
+ <add>1.8</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>is_enter_qty</name>
+ <title>Price Field Quantity Required?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <comment>Enter a quantity for this field?</comment>
+ <add>1.8</add>
+ <html>
+ <type>CheckBox</type>
</html>
</field>
<field>
- <name>javascript</name>
- <type>varchar</type>
- <length>255</length>
- <comment>Optional scripting attributes for field</comment>
- <add>1.8</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>visibility_id</name>
- <type>int unsigned</type>
- <default>1</default>
- <comment>Implicit FK to civicrm_option_group with name = \'visibility\'</comment>
- <add>3.2</add>
- <pseudoconstant>
- <optionGroupName>visibility</optionGroupName>
- </pseudoconstant>
- <html>
- <type>Select</type>
- </html>
- </field>
- <field>
- <name>count</name>
- <type>int unsigned</type>
- <default>NULL</default>
- <comment>Number of Participants Per field</comment>
- <add>3.2</add>
- <drop>3.3</drop>
- </field>
+ <name>help_pre</name>
+ <title>Price Field Pre Text</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display before this field.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.8</add>
+ </field>
+ <field>
+ <name>help_post</name>
+ <title>Price Field Post Test</title>
+ <type>text</type>
+ <localizable>true</localizable>
+ <comment>Description and/or help text to display after this field.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.8</add>
+ </field>
+ <field>
+ <name>weight</name>
+ <title>Price Field Weight</title>
+ <type>int</type>
+ <default>1</default>
+ <comment>Order in which the fields should appear</comment>
+ <add>1.8</add>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>is_display_amounts</name>
+ <title>Price Field Show Amounts?</title>
+ <type>boolean</type>
+ <default>1</default>
+ <comment>Should the price be displayed next to the label for each option?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>options_per_line</name>
+ <title>Price Field Options per Row</title>
+ <type>int unsigned</type>
+ <default>1</default>
+ <comment>number of options per line for checkbox and radio</comment>
+ <add>1.8</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>is_active</name>
+ <title>Price Field Is Active?</title>
+ <type>boolean</type>
+ <comment>Is this price field active</comment>
+ <default>1</default>
+ <add>1.8</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>is_required</name>
+ <title>Price Field is Required?</title>
+ <type>boolean</type>
+ <comment>Is this price field required (value must be > 1)</comment>
+ <default>1</default>
+ <add>1.8</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>active_on</name>
+ <title>Price Field Start Date</title>
+ <type>datetime</type>
+ <default>NULL</default>
+ <comment>If non-zero, do not show this field before the date specified</comment>
+ <add>1.8</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ </field>
+ <field>
+ <name>expire_on</name>
+ <title>Price Field End Date</title>
+ <type>datetime</type>
+ <default>NULL</default>
+ <comment>If non-zero, do not show this field after the date specified</comment>
+ <add>1.8</add>
+ <html>
+ <type>Select Date</type>
+ </html>
+ </field>
+ <field>
+ <name>javascript</name>
+ <title>Price Field Javascript</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Optional scripting attributes for field</comment>
+ <add>1.8</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>visibility_id</name>
+ <title>Price Field Visibility</title>
+ <type>int unsigned</type>
+ <default>1</default>
+ <comment>Implicit FK to civicrm_option_group with name = \'visibility\'</comment>
+ <add>3.2</add>
+ <pseudoconstant>
+ <optionGroupName>visibility</optionGroupName>
+ </pseudoconstant>
+ <html>
+ <type>Select</type>
+ </html>
+ </field>
+ <field>
+ <name>count</name>
+ <type>int unsigned</type>
+ <default>NULL</default>
+ <comment>Number of Participants Per field</comment>
+ <add>3.2</add>
+ <drop>3.3</drop>
+ </field>
</table>
<add>3.3</add>
<field>
<name>id</name>
+ <title>Price Field Value ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Price Field Value</comment>
</primaryKey>
<field>
<name>price_field_id</name>
+ <title>Price Field</title>
<type>int unsigned</type>
<required>true</required>
<comment>FK to civicrm_price_field</comment>
<html>
<type>TextArea</type>
<rows>2</rows>
- <cols>60</cols>
+ <cols>60</cols>
</html>
<default>NULL</default>
<localizable>true</localizable>
</field>
<field>
<name>membership_type_id</name>
+ <title>Membership Type</title>
<type>int unsigned</type>
<default>NULL</default>
<comment>FK to Membership Type</comment>
</field>
<field>
<name>is_default</name>
+ <title>Is Default Price Field Option?</title>
<type>boolean</type>
<comment>Is this default price field option</comment>
<default>0</default>
</field>
<field>
<name>is_active</name>
+ <title>Price Field Value is Active</title>
<type>boolean</type>
<comment>Is this price field value active</comment>
<default>1</default>
<log>true</log>
<field>
<name>id</name>
+ <title>Price Set ID</title>
<type>int unsigned</type>
<required>true</required>
<comment>Price Set</comment>
</primaryKey>
<field>
<name>domain_id</name>
+ <title>Price Set Domain</title>
<type>int unsigned</type>
<pseudoconstant>
<table>civicrm_domain</table>
</index>
<field>
<name>title</name>
+ <title>Price Set Title</title>
<type>varchar</type>
<length>255</length>
<required>true</required>
</field>
<field>
<name>is_active</name>
+ <title>Price Set Is Active?</title>
<type>boolean</type>
<default>1</default>
<comment>Is this price set active</comment>
</field>
<field>
<name>help_pre</name>
+ <title>Price Set Pre Help</title>
<type>text</type>
<localizable>true</localizable>
<comment>Description and/or help text to display before fields in form.</comment>
</field>
<field>
<name>help_post</name>
+ <title>Price Set Post Help</title>
<type>text</type>
<localizable>true</localizable>
<comment>Description and/or help text to display after fields in form.</comment>
</field>
<field>
<name>javascript</name>
+ <title>Price Set Javascript</title>
<type>varchar</type>
<length>64</length>
<comment>Optional Javascript script function(s) included on the form with this price_set. Can be used for conditional</comment>
</field>
<field>
<name>extends</name>
+ <title>Price Set Extends</title>
<type>varchar</type>
<length>255</length>
<required>true</required>
</field>
<field>
<name>contribution_type_id</name>
+ <title>Price Set Contribution Type</title>
<type>int unsigned</type>
<default>NULL</default>
<comment>FK to Contribution Type(for membership price sets only).</comment>
</foreignKey>
<field>
<name>is_quick_config</name>
+ <title>Is Price Set Quick Config?</title>
<type>boolean</type>
<default>0</default>
<comment>Is set if edited on Contribution or Event Page rather than through Manage Price Sets</comment>
</field>
<field>
<name>is_reserved</name>
+ <title>Price Set Is Reserved</title>
<type>boolean</type>
<default>0</default>
<comment>Is this a predefined system price set (i.e. it can not be deleted, edited)?</comment>
<add>1.8</add>
<log>true</log>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Price Set Entity</comment>
- <add>1.8</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Price Set Entity</comment>
+ <add>1.8</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>entity_table</name>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>Table which uses this price set</comment>
- <add>1.8</add>
+ <name>entity_table</name>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>Table which uses this price set</comment>
+ <add>1.8</add>
</field>
<field>
- <name>entity_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Item in table</comment>
- <add>1.8</add>
+ <name>entity_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Item in table</comment>
+ <add>1.8</add>
</field>
<dynamicForeignKey>
- <idColumn>entity_id</idColumn>
- <typeColumn>entity_table</typeColumn>
- <add>1.8</add>
+ <idColumn>entity_id</idColumn>
+ <typeColumn>entity_table</typeColumn>
+ <add>1.8</add>
</dynamicForeignKey>
<field>
- <name>price_set_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>price set being used</comment>
- <add>1.8</add>
+ <name>price_set_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>price set being used</comment>
+ <add>1.8</add>
</field>
<foreignKey>
- <name>price_set_id</name>
- <table>civicrm_price_set</table>
- <key>id</key>
+ <name>price_set_id</name>
+ <table>civicrm_price_set</table>
+ <key>id</key>
</foreignKey>
<index>
- <name>UI_entity</name>
- <fieldName>entity_table</fieldName>
- <fieldName>entity_id</fieldName>
- <unique>true</unique>
- <add>1.8</add>
+ <name>UI_entity</name>
+ <fieldName>entity_table</fieldName>
+ <fieldName>entity_id</fieldName>
+ <unique>true</unique>
+ <add>1.8</add>
</index>
</table>
<comment>Stores a list of queue items</comment>
<add>4.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>queue_name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Name of the queue which includes this item</comment>
- <required>true</required>
- <html>
- <type>Text</type>
- </html>
+ <name>queue_name</name>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Name of the queue which includes this item</comment>
+ <required>true</required>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>weight</name>
- <type>int</type>
- <required>true</required>
- <html>
- <type>Text</type>
- </html>
+ <name>weight</name>
+ <type>int</type>
+ <required>true</required>
+ <html>
+ <type>Text</type>
+ </html>
</field>
<field>
- <name>submit_time</name>
- <type>datetime</type>
- <comment>date on which this item was submitted to the queue</comment>
- <required>true</required>
- <html>
- <type>Select Date</type>
+ <name>submit_time</name>
+ <type>datetime</type>
+ <comment>date on which this item was submitted to the queue</comment>
+ <required>true</required>
+ <html>
+ <type>Select Date</type>
</html>
</field>
<field>
- <name>release_time</name>
- <type>datetime</type>
- <comment>date on which this job becomes available; null if ASAP</comment>
- <html>
- <type>Select Date</type>
+ <name>release_time</name>
+ <type>datetime</type>
+ <comment>date on which this job becomes available; null if ASAP</comment>
+ <html>
+ <type>Select Date</type>
</html>
</field>
-
+
<field>
- <name>data</name>
- <title>Queue item datas</title>
- <type>text</type>
- <comment>Serialized queue</comment>
+ <name>data</name>
+ <title>Queue item datas</title>
+ <type>text</type>
+ <comment>Serialized queue</comment>
</field>
<index>
- <name>index_queueids</name>
- <fieldName>queue_name</fieldName>
- <fieldName>weight</fieldName>
- <fieldName>id</fieldName>
+ <name>index_queueids</name>
+ <fieldName>queue_name</fieldName>
+ <fieldName>weight</fieldName>
+ <fieldName>id</fieldName>
</index>
</table>
<comment>Users can save their report instance and put in a cron tab etc.</comment>
<add>2.2</add>
<field>
- <name>id</name>
- <title>Report Instance ID</title>
- <type>int unsigned</type>
- <required>true</required>
- <comment>Report Instance ID</comment>
- <add>2.2</add>
+ <name>id</name>
+ <title>Report Instance ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>Report Instance ID</comment>
+ <add>2.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>false</autoincrement>
+ <name>id</name>
+ <autoincrement>false</autoincrement>
</primaryKey>
<field>
- <name>domain_id</name>
- <title>Report Instance Domain ID</title>
- <type>int unsigned</type>
- <pseudoconstant>
- <table>civicrm_domain</table>
- <keyColumn>id</keyColumn>
- <labelColumn>name</labelColumn>
- </pseudoconstant>
- <required>true</required>
- <comment>Which Domain is this instance for</comment>
- <add>3.1</add>
+ <name>domain_id</name>
+ <title>Report Instance Domain ID</title>
+ <type>int unsigned</type>
+ <pseudoconstant>
+ <table>civicrm_domain</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
+ <required>true</required>
+ <comment>Which Domain is this instance for</comment>
+ <add>3.1</add>
</field>
<foreignKey>
- <name>domain_id</name>
- <table>civicrm_domain</table>
- <key>id</key>
- <add>3.1</add>
+ <name>domain_id</name>
+ <table>civicrm_domain</table>
+ <key>id</key>
+ <add>3.1</add>
</foreignKey>
<field>
- <name>title</name>
- <title>Report Instance Title</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Report Instance Title.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>report_id</name>
- <title>Report template ID</title>
- <type>varchar</type>
- <length>64</length>
- <required>true</required>
- <comment>FK to civicrm_option_value for the report template</comment>
- <html>
- <type>Select</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>name</name>
- <title>Report instance Name</title>
- <type>varchar</type>
- <length>255</length>
- <comment>when combined with report_id/template uniquely identifies the instance</comment>
- <html>
- <type>Text</type>
- </html>
- <add>3.2</add>
- </field>
- <field>
- <name>args</name>
- <title>Report Instance Arguments</title>
- <type>varchar</type>
- <length>255</length>
- <comment>arguments that are passed in the url when invoking the instance</comment>
- <add>3.2</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>description</name>
- <title>Report Instance description</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Report Instance description.</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>permission</name>
- <title>Report Instance Permissions</title>
- <type>varchar</type>
- <length>255</length>
- <comment>permission required to be able to run this instance</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>grouprole</name>
- <title>Report Instance Assigned to Roles</title>
- <type>varchar</type>
- <length>1024</length>
- <comment>role required to be able to run this instance</comment>
- <add>4.1</add>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>form_values</name>
- <title>Submitted Form Values</title>
- <type>text</type>
- <import>true</import>
- <comment>Submitted form values for this report</comment>
- <add>2.2</add>
- </field>
- <field>
- <name>is_active</name>
- <title>Report Instance is Active</title>
- <type>boolean</type>
- <comment>Is this entry active?</comment>
- <html>
- <type>CheckBox</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>email_subject</name>
- <title>Report Instance email Subject</title>
- <type>varchar</type>
- <length>255</length>
- <comment>Subject of email</comment>
- <html>
- <type>Text</type>
- </html>
- </field>
- <field>
- <name>email_to</name>
- <title>Email Report Instance To</title>
- <type>text</type>
- <comment>comma-separated list of email addresses to send the report to</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>email_cc</name>
- <title>cc Email Report Instance To</title>
- <type>text</type>
- <comment>comma-separated list of email addresses to send the report to</comment>
- <html>
- <type>Text</type>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>header</name>
- <title>Report Instance Header</title>
- <type>text</type>
- <comment>comma-separated list of email addresses to send the report to</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>60</cols>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>footer</name>
- <title>Report Instance Footer</title>
- <type>text</type>
- <comment>comma-separated list of email addresses to send the report to</comment>
- <html>
- <type>TextArea</type>
- <rows>4</rows>
- <cols>60</cols>
- </html>
- <add>2.2</add>
- </field>
- <field>
- <name>navigation_id</name>
- <title>Navigation ID</title>
- <type>int unsigned</type>
- <import>true</import>
- <comment>FK to navigation ID</comment>
- <add>3.0</add>
+ <name>title</name>
+ <title>Report Instance Title</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Report Instance Title.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>report_id</name>
+ <title>Report template ID</title>
+ <type>varchar</type>
+ <length>64</length>
+ <required>true</required>
+ <comment>FK to civicrm_option_value for the report template</comment>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>name</name>
+ <title>Report instance Name</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>when combined with report_id/template uniquely identifies the instance</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>3.2</add>
+ </field>
+ <field>
+ <name>args</name>
+ <title>Report Instance Arguments</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>arguments that are passed in the url when invoking the instance</comment>
+ <add>3.2</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>description</name>
+ <title>Report Instance description</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Report Instance description.</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>permission</name>
+ <title>Report Instance Permissions</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>permission required to be able to run this instance</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>grouprole</name>
+ <title>Report Instance Assigned to Roles</title>
+ <type>varchar</type>
+ <length>1024</length>
+ <comment>role required to be able to run this instance</comment>
+ <add>4.1</add>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>form_values</name>
+ <title>Submitted Form Values</title>
+ <type>text</type>
+ <import>true</import>
+ <comment>Submitted form values for this report</comment>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>is_active</name>
+ <title>Report Instance is Active</title>
+ <type>boolean</type>
+ <comment>Is this entry active?</comment>
+ <html>
+ <type>CheckBox</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>email_subject</name>
+ <title>Report Instance email Subject</title>
+ <type>varchar</type>
+ <length>255</length>
+ <comment>Subject of email</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ </field>
+ <field>
+ <name>email_to</name>
+ <title>Email Report Instance To</title>
+ <type>text</type>
+ <comment>comma-separated list of email addresses to send the report to</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>email_cc</name>
+ <title>cc Email Report Instance To</title>
+ <type>text</type>
+ <comment>comma-separated list of email addresses to send the report to</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>header</name>
+ <title>Report Instance Header</title>
+ <type>text</type>
+ <comment>comma-separated list of email addresses to send the report to</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>60</cols>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>footer</name>
+ <title>Report Instance Footer</title>
+ <type>text</type>
+ <comment>comma-separated list of email addresses to send the report to</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>4</rows>
+ <cols>60</cols>
+ </html>
+ <add>2.2</add>
+ </field>
+ <field>
+ <name>navigation_id</name>
+ <title>Navigation ID</title>
+ <type>int unsigned</type>
+ <import>true</import>
+ <comment>FK to navigation ID</comment>
+ <add>3.0</add>
</field>
<foreignKey>
- <name>navigation_id</name>
- <table>civicrm_navigation</table>
- <key>id</key>
- <add>3.0</add>
- <onDelete>SET NULL</onDelete>
+ <name>navigation_id</name>
+ <table>civicrm_navigation</table>
+ <key>id</key>
+ <add>3.0</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
- <name>drilldown_id</name>
- <title>Drilldown Report ID</title>
- <type>int unsigned</type>
- <import>true</import>
- <comment>FK to instance ID drilldown to</comment>
- <add>4.3</add>
+ <name>drilldown_id</name>
+ <title>Drilldown Report ID</title>
+ <type>int unsigned</type>
+ <import>true</import>
+ <comment>FK to instance ID drilldown to</comment>
+ <add>4.3</add>
</field>
<foreignKey>
- <name>drilldown_id</name>
- <table>civicrm_report_instance</table>
- <key>id</key>
- <add>4.3</add>
- <onDelete>SET NULL</onDelete>
+ <name>drilldown_id</name>
+ <table>civicrm_report_instance</table>
+ <key>id</key>
+ <add>4.3</add>
+ <onDelete>SET NULL</onDelete>
</foreignKey>
<field>
<name>is_reserved</name>
<add>1.4</add>
<drop>2.0</drop>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>SMS History ID</comment>
- <add>1.4</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>SMS History ID</comment>
+ <add>1.4</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>message</name>
- <type>text</type>
- <comment>Contents of the SMS.</comment>
- <html>
- <type>TextArea</type>
- <rows>5</rows>
- <cols>80</cols>
- </html>
- <add>1.4</add>
+ <name>message</name>
+ <type>text</type>
+ <comment>Contents of the SMS.</comment>
+ <html>
+ <type>TextArea</type>
+ <rows>5</rows>
+ <cols>80</cols>
+ </html>
+ <add>1.4</add>
</field>
<field>
- <name>contact_id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>FK to Contact who is sending this SMS</comment>
- <add>1.4</add>
- <html>
- <type>Autocomplete-Select</type>
- </html>
+ <name>contact_id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>FK to Contact who is sending this SMS</comment>
+ <add>1.4</add>
+ <html>
+ <type>Autocomplete-Select</type>
+ </html>
</field>
<foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
- <key>id</key>
- <add>1.4</add>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
+ <key>id</key>
+ <add>1.4</add>
</foreignKey>
<field>
- <name>sent_date</name>
- <type>date</type>
- <comment>When was this SMS sent</comment>
- <add>1.4</add>
+ <name>sent_date</name>
+ <type>date</type>
+ <comment>When was this SMS sent</comment>
+ <add>1.4</add>
</field>
</table>
<comment>Table to add different sms providers </comment>
<add>4.2</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>SMS Provider ID</comment>
- <add>4.2</add>
+ <name>id</name>
+ <title>SMS Provider ID</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>SMS Provider ID</comment>
+ <add>4.2</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>name</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Provider internal name points to option_value of option_group sms_provider_name</comment>
- <add>4.2</add>
+ <name>name</name>
+ <title>SMS Provider Name</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Provider internal name points to option_value of option_group sms_provider_name</comment>
+ <add>4.2</add>
</field>
<field>
- <name>title</name>
- <type>varchar</type>
- <length>64</length>
- <comment>Provider name visible to user</comment>
- <html>
- <type>Text</type>
- </html>
- <add>4.2</add>
+ <name>title</name>
+ <title>SMS Provider Title</title>
+ <type>varchar</type>
+ <length>64</length>
+ <comment>Provider name visible to user</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>4.2</add>
</field>
<field>
- <name>username</name>
- <type>varchar</type>
- <length>255</length>
- <html>
- <type>Text</type>
- </html>
- <add>4.2</add>
+ <name>username</name>
+ <title>SMS Provider Username</title>
+ <type>varchar</type>
+ <length>255</length>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>4.2</add>
</field>
<field>
- <name>password</name>
- <type>varchar</type>
- <length>255</length>
- <html>
- <type>Text</type>
- </html>
- <add>4.2</add>
+ <name>password</name>
+ <title>SMS Provider Password</title>
+ <type>varchar</type>
+ <length>255</length>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>4.2</add>
</field>
<field>
- <name>api_type</name>
- <type>int unsigned</type>
- <required>true</required>
- <comment>points to value in civicrm_option_value for group sms_api_type</comment>
- <html>
- <type>Select</type>
- </html>
- <add>4.2</add>
+ <name>api_type</name>
+ <title>SMS Provider API</title>
+ <type>int unsigned</type>
+ <required>true</required>
+ <comment>points to value in civicrm_option_value for group sms_api_type</comment>
+ <html>
+ <type>Select</type>
+ </html>
+ <add>4.2</add>
</field>
<field>
- <name>api_url</name>
- <type>varchar</type>
- <length>128</length>
- <html>
- <type>Text</type>
- </html>
- <add>4.2</add>
+ <name>api_url</name>
+ <title>SMS Provider API URL</title>
+ <type>varchar</type>
+ <length>128</length>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>4.2</add>
</field>
<field>
- <name>api_params</name>
- <type>text</type>
- <comment>the api params in xml, http or smtp format</comment>
- <html>
- <type>Text</type>
- </html>
- <add>4.2</add>
+ <name>api_params</name>
+ <title>SMS Provider API Params</title>
+ <type>text</type>
+ <comment>the api params in xml, http or smtp format</comment>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>4.2</add>
</field>
- <field>
- <name>is_default</name>
- <type>boolean</type>
- <default>0</default>
- <add>4.2</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <field>
+ <name>is_default</name>
+ <title>SMS Provider is Default?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <add>4.2</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
- <field>
- <name>is_active</name>
- <type>boolean</type>
- <default>0</default>
- <add>4.2</add>
- <html>
- <type>CheckBox</type>
- </html>
+ <field>
+ <name>is_active</name>
+ <title>SMS Provider is Active?</title>
+ <type>boolean</type>
+ <default>0</default>
+ <add>4.2</add>
+ <html>
+ <type>CheckBox</type>
+ </html>
</field>
</table>
<comment>The OpenID associations store for standalone login.</comment>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>server_url</name>
- <type>blob</type>
- <add>2.0</add>
+ <name>server_url</name>
+ <type>blob</type>
+ <add>2.0</add>
</field>
<field>
- <name>handle</name>
- <type>varchar</type>
- <length>255</length>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>handle</name>
+ <type>varchar</type>
+ <length>255</length>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<field>
- <name>secret</name>
- <type>blob</type>
- <add>2.0</add>
+ <name>secret</name>
+ <type>blob</type>
+ <add>2.0</add>
</field>
<field>
- <name>issued</name>
- <type>int</type>
- <add>2.0</add>
+ <name>issued</name>
+ <type>int</type>
+ <add>2.0</add>
</field>
<field>
- <name>lifetime</name>
- <type>int</type>
- <add>2.0</add>
+ <name>lifetime</name>
+ <type>int</type>
+ <add>2.0</add>
</field>
<field>
- <name>assoc_type</name>
- <type>varchar</type>
- <length>64</length>
- <html>
- <type>Text</type>
- </html>
- <add>2.0</add>
+ <name>assoc_type</name>
+ <type>varchar</type>
+ <length>64</length>
+ <html>
+ <type>Text</type>
+ </html>
+ <add>2.0</add>
</field>
<index>
- <name>server_url_handle_index</name>
- <fieldName length="166">server_url</fieldName>
- <fieldName length="166">handle</fieldName>
- <unique>true</unique>
- <add>2.0</add>
+ <name>server_url_handle_index</name>
+ <fieldName length="166">server_url</fieldName>
+ <fieldName length="166">handle</fieldName>
+ <unique>true</unique>
+ <add>2.0</add>
</index>
</table>
<comment>The OpenID nonce store for standalone login.</comment>
<add>2.0</add>
<field>
- <name>id</name>
- <type>int unsigned</type>
- <required>true</required>
- <add>2.0</add>
+ <name>id</name>
+ <type>int unsigned</type>
+ <required>true</required>
+ <add>2.0</add>
</field>
<primaryKey>
- <name>id</name>
- <autoincrement>true</autoincrement>
+ <name>id</name>
+ <autoincrement>true</autoincrement>
</primaryKey>
<field>
- <name>server_url</name>
- <type>blob</type>
- <add>2.0</add>
+ <name>server_url</name>
+ <type>blob</type>
+ <add>2.0</add>
</field>
<field>
- <name>timestamp</name>
- <type>int</type>
- <add>2.0</add>
+ <name>timestamp</name>
+ <type>int</type>
+ <add>2.0</add>
</field>
<field>
- <name>salt</name>
- <type>char</type>
- <length>40</length>
- <add>2.0</add>
+ <name>salt</name>
+ <type>char</type>
+ <length>40</length>
+ <add>2.0</add>
</field>
<index>
- <name>nonce_index</name>
- <fieldName length="255">server_url</fieldName>
- <fieldName>timestamp</fieldName>
- <fieldName>salt</fieldName>
- <unique>true</unique>
- <add>2.0</add>
+ <name>nonce_index</name>
+ <fieldName length="255">server_url</fieldName>
+ <fieldName>timestamp</fieldName>
+ <fieldName>salt</fieldName>
+ <unique>true</unique>
+ <add>2.0</add>
</index>
-</table>
\ No newline at end of file
+</table>
(@option_group_id_acsOpt, '{ts escape="sql"}City{/ts}' , 5, 'city' , NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acsOpt, '{ts escape="sql"}State/Province{/ts}' , 6, 'state_province', NULL, 0, NULL, 6, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acsOpt, '{ts escape="sql"}Country{/ts}' , 7, 'country' , NULL, 0, NULL, 7, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_acsOpt, '{ts escape="sql"}Postal Code{/ts}' , 8, 'postal_code' , NULL, 0, NULL, 8, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acConRef, '{ts escape="sql"}Email Address{/ts}' , 2, 'email' , NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acConRef, '{ts escape="sql"}Phone{/ts}' , 3, 'phone' , NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acConRef, '{ts escape="sql"}City{/ts}' , 5, 'city' , NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acConRef, '{ts escape="sql"}State/Province{/ts}' , 6, 'state_province', NULL, 0, NULL, 6, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_acConRef, '{ts escape="sql"}Country{/ts}' , 7, 'country' , NULL, 0, NULL, 7, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_acConRef, '{ts escape="sql"}Postal Code{/ts}' , 8, 'country' , NULL, 0, NULL, 8, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_adOpt, '{ts escape="sql"}Street Address{/ts}' , 1, 'street_address', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_adOpt, '{ts escape="sql"}Supplemental Address 1{/ts}' , 2, 'supplemental_address_1', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
(@option_group_id_ere, '{ts escape="sql"}Participant Role{/ts}', 1, 'participant_role', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
-- default conference slots
- (@option_group_id_conference_slot, '{ts escape="sql"}Morning Sessions{/ts}', 1, '{ts escape="sql"}Morning Sessions{/ts}', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
- (@option_group_id_conference_slot, '{ts escape="sql"}Evening Sessions{/ts}', 2, '{ts escape="sql"}Evening Sessions{/ts}', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_conference_slot, '{ts escape="sql"}Morning Sessions{/ts}', 1, 'Morning Sessions', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_conference_slot, '{ts escape="sql"}Evening Sessions{/ts}', 2, 'Evening Sessions', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
-- default batch type
- (@option_group_id_batch_type, '{ts escape="sql"}Contribution{/ts}', 1, '{ts escape="sql"}Contribution{/ts}', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
- (@option_group_id_batch_type, '{ts escape="sql"}Membership{/ts}', 2, '{ts escape="sql"}Membership{/ts}', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
-
--- default batch statues
- (@option_group_id_batch_status, '{ts escape="sql"}Open{/ts}', 1, '{ts escape="sql"}Open{/ts}', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
- (@option_group_id_batch_status, '{ts escape="sql"}Closed{/ts}', 2, '{ts escape="sql"}Closed{/ts}', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
- (@option_group_id_batch_status, '{ts escape="sql"}Data Entry{/ts}', 3, '{ts escape="sql"}Data Entry{/ts}', NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL),
- (@option_group_id_batch_status, '{ts escape="sql"}Reopened{/ts}', 4, '{ts escape="sql"}Reopened{/ts}', NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL),
- (@option_group_id_batch_status, '{ts escape="sql"}Exported{/ts}', 5, '{ts escape="sql"}Exported{/ts}', NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_batch_type, '{ts escape="sql"}Contribution{/ts}', 1, 'Contribution', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_batch_type, '{ts escape="sql"}Membership{/ts}', 2, 'Membership', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
+
+-- default batch statuses
+ (@option_group_id_batch_status, '{ts escape="sql"}Open{/ts}', 1, 'Open', NULL, 0, NULL, 1, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_batch_status, '{ts escape="sql"}Closed{/ts}', 2, 'Closed', NULL, 0, NULL, 2, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_batch_status, '{ts escape="sql"}Data Entry{/ts}', 3, 'Data Entry', NULL, 0, NULL, 3, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_batch_status, '{ts escape="sql"}Reopened{/ts}', 4, 'Reopened', NULL, 0, NULL, 4, NULL, 0, 0, 1, NULL, NULL),
+ (@option_group_id_batch_status, '{ts escape="sql"}Exported{/ts}', 5, 'Exported', NULL, 0, NULL, 5, NULL, 0, 0, 1, NULL, NULL),
-- default batch modes
(@option_group_id_batch_mode, '{ts escape="sql"}Manual Batch{/ts}', 1, 'Manual Batch', NULL, 0, 0, 1, 'Manual Batch', 0, 1, 1, 2, NULL),
</tr>
<tr>
<td {$labelStyle}>
- {ts}Organization Contact Id{/ts}
+ {ts}Organization Contact ID{/ts}
</td>
<td {$valueStyle}>
{$onBehalfID}
{ts}Organization Name{/ts}: {$onBehalfName}
{ts}Organization Email{/ts}: {$onBehalfEmail}
-{ts}Organization Contact Id{/ts}: {$onBehalfID}
+{ts}Organization Contact ID{/ts}: {$onBehalfID}
{ts}If you think this may be a duplicate contact which should be merged with an existing record -
Go to "Contacts >> Find and Merge Duplicate Contacts". Use the strict
<?xml version="1.0" encoding="iso-8859-1" ?>
<version>
- <version_no>4.5.beta5</version_no>
+ <version_no>4.5.beta8</version_no>
</version>