Files
edx-platform/lms/static/js/form.ext.js
Eric Fischer 5bc6b31e29 eslint --fix
2017-12-08 14:38:41 -05:00

44 lines
1.5 KiB
JavaScript

(function($, undefined) {
var form_ext;
$.form_ext = form_ext = {
ajax: function(options) {
return $.ajax(options);
},
handleRemote: function(element) {
var method = element.attr('method');
var url = element.attr('action');
var data = element.serializeArray();
var options = {
type: method || 'GET',
data: data,
dataType: 'text json',
success: function(data, status, xhr) {
element.trigger('ajax:success', [data, status, xhr]);
},
complete: function(xhr, status) {
element.trigger('ajax:complete', [xhr, status]);
},
error: function(xhr, status, error) {
element.trigger('ajax:error', [xhr, status, error]);
}
};
if (url) { options.url = url; }
return form_ext.ajax(options);
},
CSRFProtection: function(xhr) {
var token = $.cookie('csrftoken');
if (token) xhr.setRequestHeader('X-CSRFToken', token);
}
};
$.ajaxPrefilter(function(options, originalOptions, xhr) { if (!options.crossDomain) { form_ext.CSRFProtection(xhr); } });
$(document).delegate('form', 'submit', function(e) {
var $form = $(this),
remote = $form.data('remote') !== undefined;
if (remote) {
form_ext.handleRemote($form);
return false;
}
});
}(jQuery));