result._collection = this.collection;
result._options = this.options;
return result;
- }
+ };
/**
* Display a dialog window with an editable form for a UFGroupModel
events: {
'keyup .crm-designer-palette-search input': 'doSearch',
'click .crm-designer-palette-clear-search': 'clearSearch',
- 'click .crm-designer-palette-refresh': 'doRefresh',
'click .crm-designer-palette-toggle': 'toggleAll'
},
initialize: function() {
},
doAddField: function(section) {
var paletteView = this;
- var openAddNewWindow = function() {
- var url = CRM.url('civicrm/admin/custom/group/field/add', {
- reset: 1,
- action: 'add',
- gid: section.custom_group_id
- });
- window.open(url, '_blank');
- };
-
- if (paletteView.hideAddFieldAlert) {
- openAddNewWindow();
- } else {
- CRM.confirm(function() {
- paletteView.hideAddFieldAlert = true;
- openAddNewWindow();
- }, {
- title: ts('Add Field'),
- message: ts('A new window or tab will open. Use the new window to add your field, and then return to this window and click "Refresh."')
+ var url = CRM.url('civicrm/admin/custom/group/field/add', {
+ reset: 1,
+ action: 'add',
+ gid: section.custom_group_id
+ });
+ CRM.loadForm(url, {
+ resetButton: 'next_new',
+ onSuccess: function(data, settings) {
+ paletteView.doRefresh('custom_' + data.customField.id);
+ if (data.buttonName != 'next_new') {
+ $(settings.target).dialog('close');
}
- );
- }
+ }
+ });
return false;
},
- doRefresh: function(event) {
+ doRefresh: function(fieldToAdd) {
var ufGroupModel = this.model;
CRM.Schema.reloadModels()
.done(function(data){
ufGroupModel.resetEntities();
+ if (fieldToAdd) {
+ var field = ufGroupModel.getRel('paletteFieldCollection').getFieldByName(null, fieldToAdd);
+ field.addToUFCollection(ufGroupModel.getRel('ufFieldCollection'));
+ }
})
.fail(function() {
CRM.alert(ts('Failed to retrieve schema'), ts('Error'), 'error');