New: Update episode status in UI on grab and downloadpull/4/head
parent
b6693a20a9
commit
daeb2fc652
@ -1,108 +1,74 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
define(
|
define(
|
||||||
[
|
[
|
||||||
|
'app',
|
||||||
'marionette',
|
'marionette',
|
||||||
'backgrid',
|
'backgrid',
|
||||||
'History/Collection',
|
'History/Table/HistoryTableLayout',
|
||||||
'History/EventTypeCell',
|
'History/Queue/QueueLayout'
|
||||||
'Cells/SeriesTitleCell',
|
], function (App,
|
||||||
'Cells/EpisodeNumberCell',
|
Marionette,
|
||||||
'Cells/EpisodeTitleCell',
|
|
||||||
'Cells/QualityCell',
|
|
||||||
'Cells/RelativeDateCell',
|
|
||||||
'History/HistoryDetailsCell',
|
|
||||||
'Shared/Grid/Pager',
|
|
||||||
'Shared/LoadingView'
|
|
||||||
], function (Marionette,
|
|
||||||
Backgrid,
|
Backgrid,
|
||||||
HistoryCollection,
|
HistoryTableLayout,
|
||||||
EventTypeCell,
|
QueueLayout) {
|
||||||
SeriesTitleCell,
|
|
||||||
EpisodeNumberCell,
|
|
||||||
EpisodeTitleCell,
|
|
||||||
QualityCell,
|
|
||||||
RelativeDateCell,
|
|
||||||
HistoryDetailsCell,
|
|
||||||
GridPager,
|
|
||||||
LoadingView) {
|
|
||||||
return Marionette.Layout.extend({
|
return Marionette.Layout.extend({
|
||||||
template: 'History/HistoryLayoutTemplate',
|
template: 'History/HistoryLayoutTemplate',
|
||||||
|
|
||||||
regions: {
|
regions: {
|
||||||
history: '#x-history',
|
history: '#history',
|
||||||
toolbar: '#x-toolbar',
|
queueRegion : '#queue'
|
||||||
pager : '#x-pager'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
columns:
|
ui: {
|
||||||
[
|
historyTab: '.x-history-tab',
|
||||||
{
|
queueTab : '.x-queue-tab'
|
||||||
name : 'eventType',
|
},
|
||||||
label : '',
|
|
||||||
cell : EventTypeCell,
|
|
||||||
cellValue: 'this'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name : 'series',
|
|
||||||
label: 'Series',
|
|
||||||
cell : SeriesTitleCell
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name : 'episode',
|
|
||||||
label : 'Episode',
|
|
||||||
sortable: false,
|
|
||||||
cell : EpisodeNumberCell
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name : 'episode',
|
|
||||||
label : 'Episode Title',
|
|
||||||
sortable: false,
|
|
||||||
cell : EpisodeTitleCell
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name : 'quality',
|
|
||||||
label : 'Quality',
|
|
||||||
cell : QualityCell,
|
|
||||||
sortable: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name : 'date',
|
|
||||||
label: 'Date',
|
|
||||||
cell : RelativeDateCell
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name : 'this',
|
|
||||||
label : '',
|
|
||||||
cell : HistoryDetailsCell,
|
|
||||||
sortable: false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
|
events: {
|
||||||
|
'click .x-history-tab' : '_showHistory',
|
||||||
|
'click .x-queue-tab' : '_showQueue'
|
||||||
|
},
|
||||||
|
|
||||||
initialize: function () {
|
initialize: function (options) {
|
||||||
this.collection = new HistoryCollection();
|
if (options.action) {
|
||||||
this.listenTo(this.collection, 'sync', this._showTable);
|
this.action = options.action.toLowerCase();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onShow: function () {
|
||||||
|
switch (this.action) {
|
||||||
|
case 'queue':
|
||||||
|
this._showQueue();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
this._showHistory();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
_showTable: function (collection) {
|
_navigate:function(route){
|
||||||
|
require(['Router'], function(){
|
||||||
|
App.Router.navigate(route);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
this.history.show(new Backgrid.Grid({
|
_showHistory: function (e) {
|
||||||
columns : this.columns,
|
if (e) {
|
||||||
collection: collection,
|
e.preventDefault();
|
||||||
className : 'table table-hover'
|
}
|
||||||
}));
|
|
||||||
|
|
||||||
this.pager.show(new GridPager({
|
this.history.show(new HistoryTableLayout());
|
||||||
columns : this.columns,
|
this.ui.historyTab.tab('show');
|
||||||
collection: collection
|
this._navigate('/history');
|
||||||
}));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onShow: function () {
|
_showQueue: function (e) {
|
||||||
this.history.show(new LoadingView());
|
if (e) {
|
||||||
this.collection.fetch();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.queueRegion.show(new QueueLayout());
|
||||||
|
this.ui.queueTab.tab('show');
|
||||||
|
this._navigate('/history/queue');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -0,0 +1,77 @@
|
|||||||
|
'use strict';
|
||||||
|
define(
|
||||||
|
[
|
||||||
|
'marionette',
|
||||||
|
'backgrid',
|
||||||
|
'History/Queue/QueueCollection',
|
||||||
|
'Cells/SeriesTitleCell',
|
||||||
|
'Cells/EpisodeNumberCell',
|
||||||
|
'Cells/EpisodeTitleCell',
|
||||||
|
'Cells/QualityCell',
|
||||||
|
'History/Queue/TimeleftCell'
|
||||||
|
], function (Marionette,
|
||||||
|
Backgrid,
|
||||||
|
QueueCollection,
|
||||||
|
SeriesTitleCell,
|
||||||
|
EpisodeNumberCell,
|
||||||
|
EpisodeTitleCell,
|
||||||
|
QualityCell,
|
||||||
|
TimeleftCell) {
|
||||||
|
return Marionette.Layout.extend({
|
||||||
|
template: 'History/Queue/QueueLayoutTemplate',
|
||||||
|
|
||||||
|
regions: {
|
||||||
|
table: '#x-queue'
|
||||||
|
},
|
||||||
|
|
||||||
|
columns:
|
||||||
|
[
|
||||||
|
{
|
||||||
|
name : 'series',
|
||||||
|
label: 'Series',
|
||||||
|
cell : SeriesTitleCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'episode',
|
||||||
|
label : 'Episode',
|
||||||
|
sortable: false,
|
||||||
|
cell : EpisodeNumberCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'episode',
|
||||||
|
label : 'Episode Title',
|
||||||
|
sortable: false,
|
||||||
|
cell : EpisodeTitleCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'quality',
|
||||||
|
label : 'Quality',
|
||||||
|
cell : QualityCell,
|
||||||
|
sortable: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'timeleft',
|
||||||
|
label : 'Timeleft',
|
||||||
|
cell : TimeleftCell,
|
||||||
|
cellValue : 'this'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
initialize: function () {
|
||||||
|
this.listenTo(QueueCollection, 'sync', this._showTable);
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow: function () {
|
||||||
|
this._showTable();
|
||||||
|
},
|
||||||
|
|
||||||
|
_showTable: function () {
|
||||||
|
this.table.show(new Backgrid.Grid({
|
||||||
|
columns : this.columns,
|
||||||
|
collection: QueueCollection,
|
||||||
|
className : 'table table-hover'
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,27 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
define(
|
||||||
|
[
|
||||||
|
'Cells/NzbDroneCell'
|
||||||
|
], function (NzbDroneCell) {
|
||||||
|
return NzbDroneCell.extend({
|
||||||
|
|
||||||
|
className: 'history-event-type-cell',
|
||||||
|
|
||||||
|
render: function () {
|
||||||
|
this.$el.empty();
|
||||||
|
|
||||||
|
if (this.cellValue) {
|
||||||
|
|
||||||
|
var timeleft = this.cellValue.get('timeleft');
|
||||||
|
var size = this.cellValue.get('size');
|
||||||
|
var sizeLeft = this.cellValue.get('sizeLeft');
|
||||||
|
|
||||||
|
this.$el.html(timeleft);
|
||||||
|
this.$el.attr('title', '{0} MB / {1} MB'.format(sizeLeft, size));
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,108 @@
|
|||||||
|
'use strict';
|
||||||
|
define(
|
||||||
|
[
|
||||||
|
'marionette',
|
||||||
|
'backgrid',
|
||||||
|
'History/HistoryCollection',
|
||||||
|
'History/Table/EventTypeCell',
|
||||||
|
'Cells/SeriesTitleCell',
|
||||||
|
'Cells/EpisodeNumberCell',
|
||||||
|
'Cells/EpisodeTitleCell',
|
||||||
|
'Cells/QualityCell',
|
||||||
|
'Cells/RelativeDateCell',
|
||||||
|
'History/Table/HistoryDetailsCell',
|
||||||
|
'Shared/Grid/Pager',
|
||||||
|
'Shared/LoadingView'
|
||||||
|
], function (Marionette,
|
||||||
|
Backgrid,
|
||||||
|
HistoryCollection,
|
||||||
|
EventTypeCell,
|
||||||
|
SeriesTitleCell,
|
||||||
|
EpisodeNumberCell,
|
||||||
|
EpisodeTitleCell,
|
||||||
|
QualityCell,
|
||||||
|
RelativeDateCell,
|
||||||
|
HistoryDetailsCell,
|
||||||
|
GridPager,
|
||||||
|
LoadingView) {
|
||||||
|
return Marionette.Layout.extend({
|
||||||
|
template: 'History/Table/HistoryTableLayoutTemplate',
|
||||||
|
|
||||||
|
regions: {
|
||||||
|
history: '#x-history',
|
||||||
|
toolbar: '#x-toolbar',
|
||||||
|
pager : '#x-pager'
|
||||||
|
},
|
||||||
|
|
||||||
|
columns:
|
||||||
|
[
|
||||||
|
{
|
||||||
|
name : 'eventType',
|
||||||
|
label : '',
|
||||||
|
cell : EventTypeCell,
|
||||||
|
cellValue: 'this'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'series',
|
||||||
|
label: 'Series',
|
||||||
|
cell : SeriesTitleCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'episode',
|
||||||
|
label : 'Episode',
|
||||||
|
sortable: false,
|
||||||
|
cell : EpisodeNumberCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'episode',
|
||||||
|
label : 'Episode Title',
|
||||||
|
sortable: false,
|
||||||
|
cell : EpisodeTitleCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'quality',
|
||||||
|
label : 'Quality',
|
||||||
|
cell : QualityCell,
|
||||||
|
sortable: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'date',
|
||||||
|
label: 'Date',
|
||||||
|
cell : RelativeDateCell
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : 'this',
|
||||||
|
label : '',
|
||||||
|
cell : HistoryDetailsCell,
|
||||||
|
sortable: false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
initialize: function () {
|
||||||
|
this.collection = new HistoryCollection();
|
||||||
|
this.listenTo(this.collection, 'sync', this._showTable);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
_showTable: function (collection) {
|
||||||
|
|
||||||
|
this.history.show(new Backgrid.Grid({
|
||||||
|
columns : this.columns,
|
||||||
|
collection: collection,
|
||||||
|
className : 'table table-hover'
|
||||||
|
}));
|
||||||
|
|
||||||
|
this.pager.show(new GridPager({
|
||||||
|
columns : this.columns,
|
||||||
|
collection: collection
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow: function () {
|
||||||
|
this.history.show(new LoadingView());
|
||||||
|
this.collection.fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in new issue