Skip to content
Snippets Groups Projects
Commit 0b1bae4a authored by colemanw's avatar colemanw
Browse files

CRM-13783 - ProfileBuilder - Auto-add new custom field to canvas

parent 3fde8ee5
No related branches found
No related tags found
No related merge requests found
...@@ -125,7 +125,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { ...@@ -125,7 +125,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
* *
* @param array $params (reference) an assoc array of name/value pairs * @param array $params (reference) an assoc array of name/value pairs
* *
* @return object CRM_Core_DAO_CustomField object * @return CRM_Core_DAO_CustomField object
* @access public * @access public
* @static * @static
*/ */
......
...@@ -987,14 +987,12 @@ SELECT id ...@@ -987,14 +987,12 @@ SELECT id
// reset the cache // reset the cache
CRM_Core_BAO_Cache::deleteGroup('contact fields'); CRM_Core_BAO_Cache::deleteGroup('contact fields');
CRM_Core_Session::setStatus(ts('Your custom field \'%1\' has been saved.', $msg = '<p>' . ts("Custom field '%1' has been saved.", array(1 => $customField->label)) . '</p>';
array(1 => $customField->label)
), ts('Saved'), 'success');
$buttonName = $this->controller->getButtonName(); $buttonName = $this->controller->getButtonName();
$session = CRM_Core_Session::singleton(); $session = CRM_Core_Session::singleton();
if ($buttonName == $this->getButtonName('next', 'new')) { if ($buttonName == $this->getButtonName('next', 'new')) {
CRM_Core_Session::setStatus(ts(' You can add another custom field.'), '', 'info'); $msg += '<p>' . ts("Ready to add another.") . '</p>';
$session->replaceUserContext(CRM_Utils_System::url('civicrm/admin/custom/group/field/add', $session->replaceUserContext(CRM_Utils_System::url('civicrm/admin/custom/group/field/add',
'reset=1&action=add&gid=' . $this->_gid 'reset=1&action=add&gid=' . $this->_gid
)); ));
...@@ -1004,6 +1002,10 @@ SELECT id ...@@ -1004,6 +1002,10 @@ SELECT id
'reset=1&action=browse&gid=' . $this->_gid 'reset=1&action=browse&gid=' . $this->_gid
)); ));
} }
$session->setStatus($msg, ts('Saved'), 'success');
// Add data when in ajax contect
$this->ajaxResponse['customField'] = $customField->toArray();
} }
} }
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
*/ */
getFieldByName: function(entityName, fieldName) { getFieldByName: function(entityName, fieldName) {
return this.find(function(paletteFieldModel) { return this.find(function(paletteFieldModel) {
return (paletteFieldModel.get('entityName') == entityName && paletteFieldModel.get('fieldName') == fieldName); return ((!entityName || paletteFieldModel.get('entityName') == entityName) && paletteFieldModel.get('fieldName') == fieldName);
}); });
}, },
......
...@@ -408,7 +408,7 @@ ...@@ -408,7 +408,7 @@
CRM.loadForm(url, { CRM.loadForm(url, {
resetButton: 'next_new', resetButton: 'next_new',
onSuccess: function(data, settings) { onSuccess: function(data, settings) {
paletteView.doRefresh(); paletteView.doRefresh('custom_' + data.customField.id);
if (data.buttonName != 'next_new') { if (data.buttonName != 'next_new') {
$(settings.target).dialog('close'); $(settings.target).dialog('close');
} }
...@@ -416,11 +416,15 @@ ...@@ -416,11 +416,15 @@
}); });
return false; return false;
}, },
doRefresh: function() { doRefresh: function(fieldToAdd) {
var ufGroupModel = this.model; var ufGroupModel = this.model;
CRM.Schema.reloadModels() CRM.Schema.reloadModels()
.done(function(data){ .done(function(data){
ufGroupModel.resetEntities(); ufGroupModel.resetEntities();
if (fieldToAdd) {
var field = ufGroupModel.getRel('paletteFieldCollection').getFieldByName(null, fieldToAdd);
field.addToUFCollection(ufGroupModel.getRel('ufFieldCollection'));
}
}) })
.fail(function() { .fail(function() {
CRM.alert(ts('Failed to retrieve schema'), ts('Error'), 'error'); CRM.alert(ts('Failed to retrieve schema'), ts('Error'), 'error');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment