2013-06-22 06:24:24 +00:00
|
|
|
'use strict';
|
2013-06-24 23:41:59 +00:00
|
|
|
define(
|
|
|
|
[
|
|
|
|
'backbone',
|
2013-07-17 06:23:44 +00:00
|
|
|
'moment',
|
2013-08-21 06:46:23 +00:00
|
|
|
'Series/SeriesModel',
|
|
|
|
'Series/EpisodeFileModel'
|
|
|
|
], function (Backbone, Moment, SeriesModel, EpisodeFileModel) {
|
2013-06-24 23:41:59 +00:00
|
|
|
return Backbone.Model.extend({
|
|
|
|
|
2013-07-17 00:41:04 +00:00
|
|
|
initialize: function () {
|
|
|
|
if (this.has('series')) {
|
2013-07-24 05:28:06 +00:00
|
|
|
var start = Moment(this.get('airDateUtc'));
|
2013-07-17 00:41:04 +00:00
|
|
|
var runtime = this.get('series').get('runtime');
|
2013-05-01 01:54:15 +00:00
|
|
|
|
2013-07-17 06:23:44 +00:00
|
|
|
this.set('end', start.add('minutes', runtime));
|
2013-06-24 23:41:59 +00:00
|
|
|
}
|
2013-05-20 21:06:01 +00:00
|
|
|
},
|
2013-03-02 19:13:23 +00:00
|
|
|
|
2013-06-24 23:41:59 +00:00
|
|
|
parse: function (model) {
|
|
|
|
model.series = new SeriesModel(model.series);
|
|
|
|
|
2013-08-21 06:46:23 +00:00
|
|
|
if (model.episodeFile) {
|
|
|
|
model.episodeFile = new EpisodeFileModel(model.episodeFile);
|
|
|
|
}
|
|
|
|
|
2013-06-24 23:41:59 +00:00
|
|
|
return model;
|
|
|
|
},
|
2013-06-09 20:51:32 +00:00
|
|
|
|
2013-06-24 23:41:59 +00:00
|
|
|
toJSON: function () {
|
|
|
|
var json = _.clone(this.attributes);
|
2013-06-09 20:51:32 +00:00
|
|
|
|
2013-06-24 23:41:59 +00:00
|
|
|
if (this.has('series')) {
|
|
|
|
json.series = this.get('series').toJSON();
|
2013-06-10 05:27:20 +00:00
|
|
|
}
|
2013-06-24 23:41:59 +00:00
|
|
|
return json;
|
|
|
|
},
|
2013-06-10 02:10:15 +00:00
|
|
|
|
2013-06-24 23:41:59 +00:00
|
|
|
defaults: {
|
|
|
|
seasonNumber: 0,
|
2013-06-29 00:35:21 +00:00
|
|
|
status : 0
|
2013-06-24 23:41:59 +00:00
|
|
|
}
|
|
|
|
});
|
2013-03-02 19:13:23 +00:00
|
|
|
});
|