/**
* AJAX api
+ * @link http://wiki.civicrm.org/confluence/display/CRMDOC/AJAX+Interface#AJAXInterface-CRM.api3
*/
CRM.api3 = function(entity, action, params, status) {
if (typeof(entity) === 'string') {
if (this.options.crmForm) $('form', this.element).ajaxFormUnbind();
if (this.options.block) this.element.block();
$.getJSON(url, function(data) {
+ if (data.status === 'redirect') {
+ that.options.url = data.userContext;
+ return that.refresh();
+ }
if (that.options.block) that.element.unblock();
if (!$.isPlainObject(data)) {
that._onFailure(data);
$('.blockUI', this.element).remove();
this._originalContent = this.element.contents().detach();
}
- if (window.tinyMCE && tinyMCE.editors) {
- $.each(tinyMCE.editors, function(k) {
- if ($.contains(that.element[0], this.getElement())) {
- this.remove();
- }
- });
- }
if (this.options.crmForm) $('form', this.element).ajaxFormUnbind();
},
_destroy: function() {
}, settings.ajaxForm));
if (settings.openInline) {
settings.autoClose = $el.crmSnippet('isOriginalUrl');
- $(this).on('click', settings.openInline, function(e) {
+ $(this).off('.openInline').on('click.openInline', settings.openInline, function(e) {
if ($(this).is(exclude + ', .crm-popup')) {
return;
}
label = $el.is('input') ? $el.attr('value') : $el.text(),
identifier = $el.attr('name') || $el.attr('href');
if (!identifier || identifier === '#' || $.inArray(identifier, added) < 0) {
- var $icon = $el.find('.icon'),
+ var $icon = $el.find('.icon, .crm-i'),
button = {'data-identifier': identifier, text: label, click: function() {
$el[0].click();
}};