39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
(function(define) {
|
|
'use strict';
|
|
define(['jquery', 'backbone'],
|
|
function($, Backbone) {
|
|
return Backbone.Model.extend({
|
|
defaults: {
|
|
email: ''
|
|
},
|
|
ajaxType: '',
|
|
urlRoot: '',
|
|
|
|
initialize: function(attributes, options) {
|
|
this.ajaxType = options.method;
|
|
this.urlRoot = options.url;
|
|
},
|
|
|
|
sync: function(method, model) {
|
|
var headers = {
|
|
'X-CSRFToken': $.cookie('csrftoken')
|
|
};
|
|
|
|
// Only expects an email address.
|
|
$.ajax({
|
|
url: model.urlRoot,
|
|
type: model.ajaxType,
|
|
data: model.attributes,
|
|
headers: headers,
|
|
success: function() {
|
|
model.trigger('sync');
|
|
},
|
|
error: function(error) {
|
|
model.trigger('error', error);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}).call(this, define || RequireJS.define);
|