40 lines
1.1 KiB
JavaScript
40 lines
1.1 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);
|