/**
* @file
* Converts a normal link into javascript rules link.
*/
(function($) {
Drupal.behaviors.rules_link = {
attach: function(context) {
$('a.rules-link-js').once( function() {
var message = $('Link executed').hide();
var wrapper = $(this).parents('.rules-link-wrapper').append(message);
});
$('a.rules-link-js').click(rules_link);
}
};
function rules_link(context) {
var element = this;
var wrapper = $(element).parents('.rules-link-wrapper');
var message = wrapper.children('.rules-link-message');
if (wrapper.is('.rules-link-waiting')) {
return false;
}
wrapper.addClass('rules-link-waiting');
$.ajax({
type: 'GET',
url: element.href,
dataType: 'json',
success: function (data) {
wrapper.removeClass('rules-link-waiting');
if (data.message.status !== undefined) {
$(element).replaceWith("" + data.message.status +"");
}
else {
$(element).remove();
}
},
error: function (xmlhttp) {
alert(Drupal.t('An HTTP error '+ xmlhttp.status +' occurred.\n'+ element.href));
wrapper.removeClass('rules-link-waiting');
message.text("Error while executing the rules link.");
message.show();
setTimeout(function(){
message.fadeOut();
}, 3000);
}
});
return false;
};
})(jQuery);