Files
edx-platform/cms/static/js/certificates/models/signatory.js
asadiqbal 0b28fd23f8 SOL-1225
2015-10-06 14:52:38 +05:00

63 lines
1.8 KiB
JavaScript

// Backbone.js Application Model: Certificate Signatory
define([ // jshint ignore:line
'underscore',
'underscore.string',
'backbone',
'backbone-relational',
'gettext'
],
function(_, str, Backbone, BackboneRelational, gettext) {
'use strict';
_.str = str;
var Signatory = Backbone.RelationalModel.extend({
idAttribute: "id",
defaults: {
name: '',
title: '',
organization: '',
signature_image_path: ''
},
initialize: function() {
// Set up the initial state of the attributes set for this model instance
this.setOriginalAttributes();
return this;
},
parse: function (response) {
// Parse must be defined for the model, but does not need to do anything special right now
return response;
},
validate: function(attrs) {
var errors = null;
if(_.has(attrs, 'title')){
var title = attrs.title;
var lines = title.split(/\r\n|\r|\n/);
if (lines.length > 2) {
errors = _.extend({
'title': gettext('Signatory title should span over maximum of 2 lines.')
}, errors);
}
}
if (errors !== null){
return errors;
}
},
setOriginalAttributes: function() {
// Remember the current state of this model (enables edit->cancel use cases)
this._originalAttributes = this.parse(this.toJSON());
},
reset: function() {
// Revert the attributes of this model instance back to initial state
this.set(this._originalAttributes, { parse: true, validate: true });
}
});
return Signatory;
});