// http://civicrm.org/licensing
(function($, _) {
+ // FIXME: Much of this code is redundant with CRM.loadForm
var ajaxFormParams = {
dataType:'json',
beforeSubmit: function(arr, $form, options) {
$form.block();
},
+ beforeSerialize: function(form, options) {
+ // Copied from crm.ajax.js
+ if (window.CKEDITOR && window.CKEDITOR.instances) {
+ $.each(CKEDITOR.instances, function() {
+ this.updateElement && this.updateElement();
+ });
+ }
+ if (window.tinyMCE && tinyMCE.editors) {
+ $.each(tinyMCE.editors, function() {
+ this.save();
+ });
+ }
+ },
success: requestHandler,
error: errorHandler
};
o.trigger('crmFormSuccess', [response]);
$('.crm-inline-edit-container').addClass('crm-edit-ready');
var data = o.data('edit-params');
- var dependent = o.data('dependent-fields') || [];
+ var dependent = $((o.data('dependent-fields') || []).join(','));
// Clone the add-new link if replacing it, and queue the clone to be refreshed as a dependent block
if (o.hasClass('add-new') && response.addressId) {
data.aid = response.addressId;
var locNo = clData.locno++;
cl.attr('id', cl.attr('id').replace(locNo, clData.locno)).removeClass('form');
o.closest('.crm-summary-block').after(clone);
- $.merge(dependent, $('.crm-inline-edit', clone));
+ dependent = dependent.add($('.crm-inline-edit', clone));
}
$('a.ui-notify-close', '#crm-notification-container').click();
// Delete an address
}
else {
// Reload this block plus all dependent blocks
- var update = $.merge([o], dependent);
- _.each(update, reloadBlock);
+ reloadBlock(dependent.add(o));
CRM.status(ts('Saved'));
}
- // Update changelog tab and contact footer
- if (response.changeLog && response.changeLog.count) {
- CRM.tabHeader.updateCount('#tab_log', response.changeLog.count);
- }
- $("#crm-record-log").replaceWith(response.changeLog.markup);
- // Refresh tab contents - Simple logging
- if (!CRM.reloadChangeLogTab && $('#changeLog').closest('.ui-tabs-panel').data('civiCrmSnippet')) {
- $('#changeLog').closest('.ui-tabs-panel').crmSnippet('destroy');
- }
}
else {
// Handle formRule error
var errorTag = o.find('.update_oplock_ts');
if (errorTag.length > 0) {
$('<span>')
- .addClass('crm-lock-button')
+ .addClass('crm-lock-button css_right')
.appendTo(errorTag);
var buttonContainer = o.find('.crm-lock-button');
e.preventDefault();
})
// Delete an address
- .on('click', '.crm-inline-edit.address .delete-button', function() {
+ .on('click', '.crm-inline-edit.address .delete-button', function(e) {
var $block = $(this).closest('.crm-inline-edit.address');
- CRM.confirm(function() {
- CRM.api('address', 'delete', {id: $block.data('edit-params').aid}, {success:
- function(data) {
- CRM.status(ts('Address Deleted'));
+ CRM.confirm({message: ts('Are you sure you want to delete this address?')})
+ .on('crmConfirm:yes', function() {
+ CRM.api3('address', 'delete', {id: $block.data('edit-params').aid}, true)
+ .done(function(data) {
$('.crm-inline-edit-container').addClass('crm-edit-ready');
$block.remove();
- }
+ reloadBlock('.crm-inline-edit.address:not(.add-new)');
+ });
});
- },
- {
- message: ts('Are you sure you want to delete this address?')
- }
- );
- return false;
+ e.preventDefault();
})
// add more and set focus to new row
.on('click', '.add-more-inline', function(e) {
}
$('#crm-contact-actions-list').hide();
})
+ .on('crmFormSuccess crmLoad', function(e, data) {
+ // Update changelog tab and contact footer
+ if (data && data.changeLog) {
+ if (data.changeLog.count) {
+ CRM.tabHeader.updateCount('#tab_log', data.changeLog.count);
+ }
+ if (data.changeLog.markup) {
+ $("#crm-record-log").replaceWith(data.changeLog.markup);
+ }
+ }
+ })
.on('crmFormSuccess', function(e, data) {
- // Reload changelog whenever an inline or popup form submits
- CRM.reloadChangeLogTab && CRM.reloadChangeLogTab();
+ // Refresh changeLog - advanced logging
+ if (CRM.reloadChangeLogTab) {
+ CRM.reloadChangeLogTab();
+ }
+ // Refresh changeLog - simple logging
+ // If we didn't get a changelog count in the response, force refresh the changelog tab to populate it
+ else {
+ CRM.tabHeader.resetTab('#tab_log', !(data && data.changeLog && data.changeLog.count));
+ }
// Refresh dependent blocks
if (data && data.reloadBlocks) {
- _.each(data.reloadBlocks, reloadBlock);
+ reloadBlock(data.reloadBlocks.join(','));
}
});
});