Fixed airdate parsing. Fixed minor UI issues

pull/4/head
Mark McDowall 12 years ago
parent 9d96df9c2e
commit e6183b1f83

@ -1,19 +1,21 @@
using NzbDrone.Core.Datastore;
using NzbDrone.Api.Episodes;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Tv;
namespace NzbDrone.Api.Missing
{
public class MissingModule : NzbDroneRestModule<MissingResource>
public class MissingModule : NzbDroneRestModule<EpisodeResource>
{
private readonly IEpisodeService _episodeService;
public MissingModule(IEpisodeService episodeService)
:base("missing")
{
_episodeService = episodeService;
GetResourcePaged = GetMissingEpisodes;
}
private PagingResource<MissingResource> GetMissingEpisodes(PagingResource<MissingResource> pagingResource)
private PagingResource<EpisodeResource> GetMissingEpisodes(PagingResource<EpisodeResource> pagingResource)
{
var pagingSpec = new PagingSpec<Episode>
{

@ -1,34 +0,0 @@
using System;
using NzbDrone.Api.REST;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Model;
using NzbDrone.Core.Tv;
namespace NzbDrone.Api.Missing
{
public class MissingResource : RestResource
{
public Int32 Id { get; set; }
public Int32 SeriesId { get; set; }
public Int32 EpisodeFileId { get; set; }
public Int32 SeasonNumber { get; set; }
public Int32 EpisodeNumber { get; set; }
public String Title { get; set; }
public DateTime? AirDate { get; set; }
public EpisodeStatuses Status { get; set; }
public String Overview { get; set; }
public EpisodeFile EpisodeFile { get; set; }
public Boolean HasFile { get; set; }
public Boolean Ignored { get; set; }
public Int32 SceneEpisodeNumber { get; set; }
public Int32 SceneSeasonNumber { get; set; }
public Int32 TvDbEpisodeId { get; set; }
public Int32? AbsoluteEpisodeNumber { get; set; }
public DateTime? EndTime { get; set; }
public DateTime? GrabDate { get; set; }
public PostDownloadStatusType PostDownloadStatus { get; set; }
public Core.Tv.Series Series { get; set; }
public String SeriesTitle { get; set; }
}
}

@ -109,7 +109,6 @@
<Compile Include="Mapping\MappingValidation.cs" />
<Compile Include="Mapping\ResourceMappingException.cs" />
<Compile Include="Mapping\ValueInjectorExtensions.cs" />
<Compile Include="Missing\MissingResource.cs" />
<Compile Include="Missing\MissingModule.cs" />
<Compile Include="NzbDroneRestModule.cs" />
<Compile Include="PagingResource.cs" />

@ -52,7 +52,7 @@ namespace NzbDrone.Core.MetadataSource
series.TvRageId = show.tvrage_id;
series.ImdbId = show.imdb_id;
series.Title = show.title;
series.FirstAired =FromEpoc(show.first_aired_utc);
series.FirstAired = FromIso(show.first_aired_iso);
series.Overview = show.overview;
series.Runtime = show.runtime;
series.Network = show.network;
@ -75,7 +75,7 @@ namespace NzbDrone.Core.MetadataSource
episode.EpisodeNumber = traktEpisode.number;
episode.TvDbEpisodeId = traktEpisode.tvdb_id;
episode.Title = traktEpisode.title;
episode.AirDate =FromEpoc(traktEpisode.first_aired_utc);
episode.AirDate = FromIso(traktEpisode.first_aired_iso);
return episode;
}
@ -96,11 +96,21 @@ namespace NzbDrone.Core.MetadataSource
return SeriesStatusType.Continuing;
}
private static DateTime? FromEpoc(long ticks)
private static DateTime? FromEpoch(long ticks)
{
if (ticks == 0) return null;
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(ticks);
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(ticks);
}
private static DateTime? FromIso(string iso)
{
DateTime result;
if (!DateTime.TryParse(iso, out result))
return null;
return result.ToUniversalTime();
}
}
}

@ -42,13 +42,7 @@ define(['app', 'Shared/ModalRegion', 'AddSeries/AddSeriesLayout',
settings: function (action) {
this._setTitle('Settings');
var settingsModel = new NzbDrone.Settings.SettingsModel();
settingsModel.fetch({
success: function (settings) {
NzbDrone.mainRegion.show(new NzbDrone.Settings.SettingsLayout({settings: settings, action: action}));
}
});
NzbDrone.mainRegion.show(new NzbDrone.Settings.SettingsLayout({action: action}));
},
missing: function () {

@ -20,7 +20,7 @@
</div>
</div>
<div class="row">
<a href="/series/details/{{id}}" target="_blank">
<a href="/series/details/{{id}}">
<div class="span10">
{{overview}}
</div>
@ -33,11 +33,11 @@
{{#if bestDateString}}
<span class="label">{{bestDateString}}</span>
{{else}}
<span class="label label-inverse">{{status}}</span>
<span class="label label-inverse">Continuing</span>
{{/if}}
<span class="label label-info">Season {{seasonCount}}</span>
{{else}}
<span class="label label-important">{{status}}</span>
<span class="label label-important">Ended</span>
<span class="label label-info">{{seasonCount}} Seasons</span>
{{/if}}
</div>

@ -4,15 +4,13 @@
<div class="center">
<div class="series-poster-container x-series-poster">
<div class="series-controls">
<!--<div class="pull-right">-->
<i class="icon-cog x-edit" title="Edit Series"></i>
<i class="icon-remove x-remove" title="Delete Series"></i>
<!--</div>-->
<i class="icon-cog x-edit" title="Edit Series"></i>
<i class="icon-remove x-remove" title="Delete Series"></i>
</div>
{{#unless isContinuing}}
<div class="ended-banner">Ended</div>
{{/unless}}
<a href="/series/details/{{titleSlug}}" target="_blank">
<a href="/series/details/{{titleSlug}}">
<img class="series-poster img-polaroid" src="{{poster}}">
</a>
</div>
@ -26,7 +24,7 @@
{{#if bestDateString}}
<span class="label label-inverse air-date" title="{{shortDate}}">{{bestDateString}}</span>
{{else}}
<span class="label label-inverse">{{status}}</span>
<span class="label label-inverse">Continuing</span>
{{/if}}
<span class="label label-info">Season {{seasonCount}}</span>
{{else}}

@ -10,7 +10,7 @@ Backgrid.SeriesStatusCell = Backgrid.Cell.extend({
if (!monitored) {
this.$el.html('<i class="icon-pause grid-icon" title="Not Monitored"></i>');
}
else if (status === 0) {
else if (status === 'continuing') {
this.$el.html('<i class="icon-play grid-icon" title="Continuing"></i>');
}

@ -75,8 +75,5 @@ define([
throw "unknown download client id" + clientId;
}
}
});
});

@ -21,8 +21,6 @@
</div>
</div>
{{debug}}
{{#each fields}}
<div class="control-group">
<label class="control-label">{{label}}</label>

@ -108,7 +108,9 @@ define([
},
initialize: function (options) {
this.settings = options.settings;
this.settings = new NzbDrone.Settings.SettingsModel();
this.settings.fetch();
this.namingSettings = new NzbDrone.Settings.Naming.NamingModel();
this.namingSettings.fetch();

Loading…
Cancel
Save