mirror of
https://github.com/Radarr/Radarr.git
synced 2026-04-15 21:05:48 -04:00
basic implementation of the wanted tab (#31)
* top buttons don't yet work * new missing module for movies * find missing movies method to movie service * new movie status cell with text * adapted UI missing collection and layout
This commit is contained in:
42
src/UI/Cells/MovieStatusWithTextCell.js
Normal file
42
src/UI/Cells/MovieStatusWithTextCell.js
Normal file
@@ -0,0 +1,42 @@
|
||||
var NzbDroneCell = require('./NzbDroneCell');
|
||||
|
||||
//used in Wanted tab
|
||||
module.exports = NzbDroneCell.extend({
|
||||
className : 'movie-status-text-cell',
|
||||
|
||||
render : function() {
|
||||
this.$el.empty();
|
||||
var monitored = this.model.get('monitored');
|
||||
var status = this.model.get('status');
|
||||
var inCinemas = this.model.get("inCinemas");
|
||||
var date = new Date(inCinemas);
|
||||
var timeSince = new Date().getTime() - date.getTime();
|
||||
var numOfMonths = timeSince / 1000 / 60 / 60 / 24 / 30;
|
||||
|
||||
if (status === 'released') {
|
||||
this.$el.html('<div class="released-banner"><i class="icon-sonarr-movie-released grid-icon" title=""></i> Released</div>');
|
||||
this._setStatusWeight(3);
|
||||
}
|
||||
|
||||
if (numOfMonths > 3) {
|
||||
this.$el.html('<div class="released-banner"><i class="icon-sonarr-movie-released grid-icon" title=""></i> Released</div>');//TODO: Update for PreDB.me
|
||||
this._setStatusWeight(2);
|
||||
}
|
||||
|
||||
if (numOfMonths < 3) {
|
||||
this.$el.html('<div class="cinemas-banner"><i class="icon-sonarr-movie-cinemas grid-icon" title=""></i> In Cinemas</div>');
|
||||
this._setStatusWeight(2);
|
||||
}
|
||||
|
||||
if (status === "announced") {
|
||||
this.$el.html('<div class="announced-banner"><i class="icon-sonarr-movie-announced grid-icon" title=""></i> Announced</div>');
|
||||
this._setStatusWeight(1);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_setStatusWeight : function(weight) {
|
||||
this.model.set('statusWeight', weight, { silent : true });
|
||||
}
|
||||
});
|
||||
@@ -55,6 +55,10 @@
|
||||
width : 150px;
|
||||
}
|
||||
|
||||
.movie-status-text-cell {
|
||||
width : 150px;
|
||||
}
|
||||
|
||||
.history-event-type-cell {
|
||||
width : 10px;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var _ = require('underscore');
|
||||
var EpisodeModel = require('../../Series/EpisodeModel');
|
||||
var MovieModel = require('../../Movies/MovieModel');
|
||||
var PagableCollection = require('backbone.pageable');
|
||||
var AsFilteredCollection = require('../../Mixins/AsFilteredCollection');
|
||||
var AsSortedCollection = require('../../Mixins/AsSortedCollection');
|
||||
@@ -7,13 +7,13 @@ var AsPersistedStateCollection = require('../../Mixins/AsPersistedStateCollectio
|
||||
|
||||
var Collection = PagableCollection.extend({
|
||||
url : window.NzbDrone.ApiRoot + '/wanted/missing',
|
||||
model : EpisodeModel,
|
||||
model : MovieModel,
|
||||
tableName : 'wanted.missing',
|
||||
|
||||
state : {
|
||||
pageSize : 15,
|
||||
sortKey : 'airDateUtc',
|
||||
order : 1
|
||||
sortKey : 'inCinemas',
|
||||
order : -1
|
||||
},
|
||||
|
||||
queryParams : {
|
||||
@@ -39,10 +39,6 @@ var Collection = PagableCollection.extend({
|
||||
]
|
||||
},
|
||||
|
||||
sortMappings : {
|
||||
'series' : { sortKey : 'series.sortTitle' }
|
||||
},
|
||||
|
||||
parseState : function(resp) {
|
||||
return { totalRecords : resp.totalRecords };
|
||||
},
|
||||
@@ -58,4 +54,4 @@ var Collection = PagableCollection.extend({
|
||||
Collection = AsFilteredCollection.call(Collection);
|
||||
Collection = AsSortedCollection.call(Collection);
|
||||
|
||||
module.exports = AsPersistedStateCollection.call(Collection);
|
||||
module.exports = AsPersistedStateCollection.call(Collection);
|
||||
|
||||
@@ -5,11 +5,9 @@ var Marionette = require('marionette');
|
||||
var Backgrid = require('backgrid');
|
||||
var MissingCollection = require('./MissingCollection');
|
||||
var SelectAllCell = require('../../Cells/SelectAllCell');
|
||||
var SeriesTitleCell = require('../../Cells/SeriesTitleCell');
|
||||
var EpisodeNumberCell = require('../../Cells/EpisodeNumberCell');
|
||||
var EpisodeTitleCell = require('../../Cells/EpisodeTitleCell');
|
||||
var MovieTitleCell = require('../../Cells/MovieTitleCell');
|
||||
var RelativeDateCell = require('../../Cells/RelativeDateCell');
|
||||
var EpisodeStatusCell = require('../../Cells/EpisodeStatusCell');
|
||||
var MovieStatusWithTextCell = require('../../Cells/MovieStatusWithTextCell');
|
||||
var GridPager = require('../../Shared/Grid/Pager');
|
||||
var ToolbarLayout = require('../../Shared/Toolbar/ToolbarLayout');
|
||||
var LoadingView = require('../../Shared/LoadingView');
|
||||
@@ -39,35 +37,29 @@ module.exports = Marionette.Layout.extend({
|
||||
headerCell : 'select-all',
|
||||
sortable : false
|
||||
},
|
||||
{
|
||||
name : 'series',
|
||||
label : 'Series Title',
|
||||
cell : SeriesTitleCell,
|
||||
sortValue : 'series.sortTitle'
|
||||
},
|
||||
{
|
||||
name : 'this',
|
||||
label : 'Episode',
|
||||
cell : EpisodeNumberCell,
|
||||
label : 'Movie Title',
|
||||
cell : MovieTitleCell,
|
||||
sortable : false
|
||||
},
|
||||
{
|
||||
name : 'this',
|
||||
label : 'Episode Title',
|
||||
cell : EpisodeTitleCell,
|
||||
sortable : false
|
||||
name : 'inCinemas',
|
||||
label : 'In Cinemas',
|
||||
cell : RelativeDateCell
|
||||
},
|
||||
{
|
||||
name : 'airDateUtc',
|
||||
label : 'Air Date',
|
||||
name : 'physicalRelease',
|
||||
label : 'PhysicalRelease',
|
||||
cell : RelativeDateCell
|
||||
},
|
||||
{
|
||||
name : 'status',
|
||||
label : 'Status',
|
||||
cell : EpisodeStatusCell,
|
||||
cell : MovieStatusWithTextCell,
|
||||
sortable : false
|
||||
}
|
||||
},
|
||||
|
||||
],
|
||||
|
||||
initialize : function() {
|
||||
|
||||
Reference in New Issue
Block a user