New: Show download protocol in Queue

This commit is contained in:
Mark McDowall 2015-01-31 00:24:09 -08:00
parent cd79826aad
commit e641611662
13 changed files with 42 additions and 10 deletions

View File

@ -141,8 +141,7 @@ namespace NzbDrone.Api.Indexers
release.QualityWeight += release.Quality.Revision.Real * 10;
release.QualityWeight += release.Quality.Revision.Version;
var torrentRelease = downloadDecision.RemoteEpisode.Release as TorrentInfo;
if (torrentRelease != null)

View File

@ -39,7 +39,6 @@ namespace NzbDrone.Api.Indexers
public String DownloadUrl { get; set; }
public String InfoUrl { get; set; }
public Boolean DownloadAllowed { get; set; }
public DownloadProtocol DownloadProtocol { get; set; }
public Int32 ReleaseWeight { get; set; }

View File

@ -5,6 +5,7 @@ using NzbDrone.Core.Qualities;
using NzbDrone.Api.Series;
using NzbDrone.Api.Episodes;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Indexers;
namespace NzbDrone.Api.Queue
{
@ -22,5 +23,6 @@ namespace NzbDrone.Api.Queue
public String TrackedDownloadStatus { get; set; }
public List<TrackedDownloadStatusMessage> StatusMessages { get; set; }
public String DownloadId { get; set; }
public DownloadProtocol Protocol { get; set; }
}
}

View File

@ -7,6 +7,7 @@ using NzbDrone.Common.Disk;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Http;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Validation;
using NzbDrone.Core.RemotePathMappings;

View File

@ -27,11 +27,18 @@ namespace NzbDrone.Core.Download
public IEnumerable<IDownloadClient> GetDownloadClients()
{
return _downloadClientFactory.GetAvailableProviders();
return _downloadClientFactory.GetAvailableProviders();//.Select(MapDownloadClient);
}
public IDownloadClient Get(int id)
{
return _downloadClientFactory.GetAvailableProviders().Single(d => d.Definition.Id == id);
}
public IDownloadClient MapDownloadClient(IDownloadClient downloadClient)
{
downloadClient.Definition = _downloadClientFactory.GetProviderCharacteristics(downloadClient, (DownloadClientDefinition)downloadClient.Definition);
return downloadClient;
}
}
}

View File

@ -112,7 +112,8 @@ namespace NzbDrone.Core.Download.Pending
RemoteEpisode = pendingRelease.RemoteEpisode,
Timeleft = ect.Subtract(DateTime.UtcNow),
EstimatedCompletionTime = ect,
Status = "Pending"
Status = "Pending",
Protocol = pendingRelease.RemoteEpisode.Release.DownloadProtocol
};
queued.Add(queue);
}

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.Tv;
@ -23,5 +24,6 @@ namespace NzbDrone.Core.Queue
public List<TrackedDownloadStatusMessage> StatusMessages { get; set; }
public String DownloadId { get; set; }
public RemoteEpisode RemoteEpisode { get; set; }
public DownloadProtocol Protocol { get; set; }
}
}

View File

@ -59,7 +59,8 @@ namespace NzbDrone.Core.Queue
TrackedDownloadStatus = trackedDownload.Status.ToString(),
StatusMessages = trackedDownload.StatusMessages.ToList(),
RemoteEpisode = trackedDownload.RemoteEpisode,
DownloadId = trackedDownload.DownloadItem.DownloadId
DownloadId = trackedDownload.DownloadItem.DownloadId,
Protocol = trackedDownload.Protocol
};
if (queue.Timeleft.HasValue)

View File

@ -111,7 +111,7 @@ namespace NzbDrone.Core.ThingiProvider
{
var type = GetImplementation(definition);
var instance = (TProvider)_container.Resolve(type);
instance.Definition = definition;
instance.Definition = GetProviderCharacteristics(instance, definition);
return instance;
}

View File

@ -16,6 +16,10 @@ define(
'click .x-grab' : '_grab'
},
ui: {
'import' : '.x-import'
},
render: function () {
this.$el.empty();
@ -69,6 +73,8 @@ define(
data: JSON.stringify(this.model.toJSON())
});
$(this.ui.import).spinForPromise(promise);
promise.success(function () {
//find models that have the same series id and episode ids and remove them
self.model.trigger('destroy', self.model);

View File

@ -12,6 +12,7 @@ define(
'Activity/Queue/QueueActionsCell',
'Activity/Queue/TimeleftCell',
'Activity/Queue/ProgressCell',
'Release/ProtocolCell',
'Shared/Grid/Pager'
], function (Marionette,
Backgrid,
@ -24,6 +25,7 @@ define(
QueueActionsCell,
TimeleftCell,
ProgressCell,
ProtocolCell,
GridPager) {
return Marionette.Layout.extend({
template: 'Activity/Queue/QueueLayoutTemplate',
@ -65,6 +67,11 @@ define(
cell : QualityCell,
sortable : false
},
{
name : 'protocol',
label : 'Protocol',
cell : ProtocolCell
},
{
name : 'timeleft',
label : 'Timeleft',

View File

@ -1,6 +1,6 @@
<div class="row">
<div class="row">
<div class="col-md-12 table-responsive">
<div id="x-queue"/>
<div id="x-queue" class="queue"/>
</div>
</div>

View File

@ -1,4 +1,11 @@
.queue-status-cell .popover {
max-width: 800px;
max-width : 800px;
}
.queue {
.protocol-cell {
text-align : center;
width : 80px;
}
}