1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-16 11:37:58 +02:00

removed mutators from series.

This commit is contained in:
Keivan Beigi 2013-07-16 16:54:45 -07:00
parent 50718ae94e
commit 83fe07524a
13 changed files with 97 additions and 80 deletions

View File

@ -16,7 +16,9 @@ define(
var icon; var icon;
var tooltip; var tooltip;
if (this.model.get('episodeFile')) { var hasAired = Date.create(this.model.get('airDate')).isBefore(Date.create());
if (hasAired) {
icon = 'icon-ok'; icon = 'icon-ok';
tooltip = 'Episode downloaded'; tooltip = 'Episode downloaded';
} }

View File

@ -0,0 +1,21 @@
'use strict';
define(
[
'handlebars',
'Quality/QualityProfileCollection',
'underscore'
], function (Handlebars, QualityProfileCollection, _) {
Handlebars.registerHelper('qualityProfile', function (profileId) {
var profile = QualityProfileCollection.get(profileId);
if (profile) {
return new Handlebars.SafeString('<span class="label quality-profile-lable">' + profile.get("name") + '</span>');
}
return undefined;
});
});

View File

@ -0,0 +1,44 @@
'use strict';
define(
[
'handlebars',
'underscore'
], function (Handlebars, _) {
Handlebars.registerHelper('poster', function () {
var poster = _.where(this.images, {coverType: 'poster'});
if (poster[0]) {
return poster[0].url;
}
return undefined;
});
Handlebars.registerHelper('traktUrl', function () {
return 'http://trakt.tv/show/' + this.titleSlug;
});
Handlebars.registerHelper('imdbUrl', function () {
return 'http://imdb.com/title/' + this.imdbId;
});
Handlebars.registerHelper('route', function () {
return '/series/' + this.titleSlug;
});
Handlebars.registerHelper('percentOfEpisodes', function () {
var episodeCount = this.episodeCount;
var episodeFileCount = this.episodeFileCount;
var percent = 100;
if (episodeCount > 0) {
percent = episodeFileCount / episodeCount * 100;
}
return percent;
});
});

View File

@ -6,7 +6,9 @@ define(
'Handlebars/Helpers/DateTime', 'Handlebars/Helpers/DateTime',
'Handlebars/Helpers/Html', 'Handlebars/Helpers/Html',
'Handlebars/Helpers/Numbers', 'Handlebars/Helpers/Numbers',
'Handlebars/Helpers/EpisodeNumber', 'Handlebars/Helpers/Episode',
'Handlebars/Helpers/Series',
'Handlebars/Helpers/Quality',
'Handlebars/Debug' 'Handlebars/Debug'
], function (Templates) { ], function (Templates) {
return function () { return function () {

View File

@ -1 +0,0 @@
<span class="label quality-profile-lable">{{name}}</span>

View File

@ -44,8 +44,10 @@ define(
onShow: function () { onShow: function () {
var self = this; var self = this;
if (this.model.has('fanArt')) { var fanArt = this._getFanArt();
$.backstretch(this.model.get('fanArt'));
if (fanArt) {
$.backstretch(fanArt);
} }
else { else {
$('body').removeClass('backdrop'); $('body').removeClass('backdrop');
@ -67,6 +69,16 @@ define(
this._setMonitoredState(); this._setMonitoredState();
}, },
_getFanArt: function () {
var fanArt = _.where(this.model.get('images'), {coverType: 'fanart'});
if(fanArt && fanArt[0]){
return fanArt[0].url;
}
return undefined;
},
onClose: function () { onClose: function () {
$('.backstretch').remove(); $('.backstretch').remove();
$('body').removeClass('backdrop'); $('body').removeClass('backdrop');
@ -81,7 +93,7 @@ define(
var promise = this.model.save(); var promise = this.model.save();
promise.always(function (){ promise.always(function () {
self._setMonitoredState(); self._setMonitoredState();
}); });
}, },

View File

@ -14,7 +14,7 @@
{{overview}} {{overview}}
</div> </div>
<div class="row"> <div class="row">
{{> QualityProfilePartial qualityProfile}} {{qualityProfile qualityProfileId}}
<span class="label label-info">{{network}}</span> <span class="label label-info">{{network}}</span>
<span class="label label-info">{{runtime}} minutes</span> <span class="label label-info">{{runtime}} minutes</span>
<span class="label label-info">{{path}}</span> <span class="label label-info">{{path}}</span>

View File

@ -29,17 +29,15 @@ define(
saveSeries: function () { saveSeries: function () {
//Todo: Get qualityProfile
var qualityProfile = this.ui.qualityProfile.val();
var qualityProfileText = this.ui.qualityProfile.children('option:selected').text();
this.model.set({ qualityProfileId: qualityProfile, qualityProfileName: qualityProfileText }); var qualityProfileId = this.ui.qualityProfile.val();
this.model.set({ qualityProfileId: qualityProfileId});
this.model.save(); this.model.save();
this.trigger('saved'); this.trigger('saved');
App.modalRegion.closeModal(); App.modalRegion.closeModal();
},
},
onRender: function () { onRender: function () {
this.ui.path.autoComplete('/directories'); this.ui.path.autoComplete('/directories');

View File

@ -55,9 +55,6 @@ define(
} }
return 'primary'; return 'primary';
},
hasAired : function () {
return Date.create(this.get('airDate')).isBefore(Date.create());
} }
}, },

View File

@ -29,7 +29,7 @@
<div class="row">&nbsp;</div> <div class="row">&nbsp;</div>
<div class="row"> <div class="row">
<div class="span8"> <div class="span8">
{{#if isContinuing}} {{#if_eq status compare="continuing"}}
{{#if nextAiring}} {{#if nextAiring}}
<span class="label">{{ShortDate nextAiring}}</span> <span class="label">{{ShortDate nextAiring}}</span>
{{/if}} {{/if}}
@ -37,9 +37,9 @@
{{else}} {{else}}
<span class="label label-important">Ended</span> <span class="label label-important">Ended</span>
<span class="label label-info">{{seasonCount}} Seasons</span> <span class="label label-info">{{seasonCount}} Seasons</span>
{{/if}} {{/if_eq}}
{{> QualityProfilePartial qualityProfile}} {{qualityProfile qualityProfileId}}
</div> </div>
<div class="span2"> <div class="span2">
<div class="progress"> <div class="progress">

View File

@ -7,9 +7,9 @@
<i class="icon-cog x-edit" title="Edit Series"/> <i class="icon-cog x-edit" title="Edit Series"/>
<i class="icon-remove x-remove" title="Delete Series"/> <i class="icon-remove x-remove" title="Delete Series"/>
</div> </div>
{{#unless isContinuing}} {{#unless_eq status compare="continuing"}}
<div class="ended-banner">Ended</div> <div class="ended-banner">Ended</div>
{{/unless}} {{/unless_eq}}
<a href="{{route}}"> <a href="{{route}}">
<img class="series-poster" src="{{poster}}" {{defaultImg}}> <img class="series-poster" src="{{poster}}" {{defaultImg}}>
</a> </a>

View File

@ -2,71 +2,13 @@
define( define(
[ [
'backbone', 'backbone',
'Quality/QualityProfileCollection',
'underscore' 'underscore'
], function (Backbone, QualityProfileCollection,_) { ], function (Backbone, _) {
return Backbone.Model.extend({ return Backbone.Model.extend({
urlRoot: ApiRoot + '/series', urlRoot: ApiRoot + '/series',
mutators: {
percentOfEpisodes: function () {
var episodeCount = this.get('episodeCount');
var episodeFileCount = this.get('episodeFileCount');
var percent = 100;
if (episodeCount > 0) {
percent = episodeFileCount / episodeCount * 100;
}
return percent;
},
poster : function () {
var poster = _.find(this.get('images'), function (image) {
return image.coverType === 'poster';
});
if (poster) {
return poster.url;
}
return undefined;
},
fanArt : function () {
var poster = _.find(this.get('images'), function (image) {
return image.coverType === 'fanart';
});
if (poster) {
return poster.url;
}
return undefined;
},
traktUrl : function () {
return 'http://trakt.tv/show/' + this.get('titleSlug');
},
imdbUrl : function () {
return 'http://imdb.com/title/' + this.get('imdbId');
},
isContinuing : function () {
return this.get('status') === 'continuing';
},
route : function () {
return '/series/' + this.get('titleSlug');
},
qualityProfile: function () {
var profile = QualityProfileCollection.get(this.get('qualityProfileId'));
if (profile) {
return profile.toJSON();
}
return undefined;
}
},
defaults: { defaults: {
episodeFileCount: 0, episodeFileCount: 0,
episodeCount : 0, episodeCount : 0,