Files
edx-platform/cms/static/js/models/group.js
2023-05-09 13:53:54 +05:00

50 lines
1.3 KiB
JavaScript

define([
'backbone', 'underscore', 'underscore.string', 'gettext',
'backbone.associations'
], function(Backbone, _, str, gettext) {
'use strict';
var Group = Backbone.AssociatedModel.extend({
defaults: function() {
return {
name: '',
version: 1,
order: null,
usage: []
};
},
url: function() {
var parentModel = this.collection.parents[0];
return parentModel.urlRoot + '/' + encodeURIComponent(parentModel.id) + '/' + encodeURIComponent(this.id);
},
reset: function() {
this.set(this._originalAttributes, {parse: true});
},
isEmpty: function() {
return !this.get('name');
},
toJSON: function() {
return {
id: this.get('id'),
name: this.get('name'),
version: this.get('version'),
usage: this.get('usage')
};
},
validate: function(attrs) {
if (!str.trim(attrs.name)) {
return {
message: gettext('Group name is required'),
attributes: {name: true}
};
}
}
});
return Group;
});