mirror of
https://github.com/Radarr/Radarr
synced 2024-12-25 09:21:57 +00:00
Added Missing view to show which episodes are missing from disk for all series.
This commit is contained in:
parent
0e429f58a1
commit
86019a2597
4 changed files with 97 additions and 0 deletions
46
NzbDrone.Web/Controllers/MissingController.cs
Normal file
46
NzbDrone.Web/Controllers/MissingController.cs
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
using NzbDrone.Core.Providers;
|
||||||
|
using NzbDrone.Web.Models;
|
||||||
|
using Telerik.Web.Mvc;
|
||||||
|
|
||||||
|
namespace NzbDrone.Web.Controllers
|
||||||
|
{
|
||||||
|
public class MissingController : Controller
|
||||||
|
{
|
||||||
|
private readonly EpisodeProvider _episodeProvider;
|
||||||
|
|
||||||
|
public MissingController(EpisodeProvider episodeProvider)
|
||||||
|
{
|
||||||
|
_episodeProvider = episodeProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActionResult Index()
|
||||||
|
{
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
|
||||||
|
[GridAction]
|
||||||
|
public ActionResult _AjaxBinding()
|
||||||
|
{
|
||||||
|
//TODO: possible subsonic bug, IQuarible causes some issues so ToList() is called
|
||||||
|
//https://github.com/subsonic/SubSonic-3.0/issues/263
|
||||||
|
|
||||||
|
var missing = _episodeProvider.EpisodesWithoutFiles(false).Select(e => new MissingEpisodeModel
|
||||||
|
{
|
||||||
|
EpisodeId = e.EpisodeId,
|
||||||
|
SeasonNumber = e.SeasonNumber,
|
||||||
|
EpisodeNumber = e.EpisodeNumber,
|
||||||
|
EpisodeTitle = e.Title,
|
||||||
|
Overview = e.Overview,
|
||||||
|
SeriesTitle = e.Series.Title,
|
||||||
|
AirDate = e.AirDate,
|
||||||
|
});
|
||||||
|
|
||||||
|
return View(new GridModel(missing));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
18
NzbDrone.Web/Models/MissingEpisodeModel.cs
Normal file
18
NzbDrone.Web/Models/MissingEpisodeModel.cs
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
|
||||||
|
namespace NzbDrone.Web.Models
|
||||||
|
{
|
||||||
|
public class MissingEpisodeModel
|
||||||
|
{
|
||||||
|
public int EpisodeId { get; set; }
|
||||||
|
public string SeriesTitle { get; set; }
|
||||||
|
public int SeasonNumber { get; set; }
|
||||||
|
public int EpisodeNumber { get; set; }
|
||||||
|
public string EpisodeTitle { get; set; }
|
||||||
|
public DateTime AirDate { get; set; }
|
||||||
|
public string Overview { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -215,6 +215,7 @@
|
||||||
<Compile Include="Controllers\HistoryController.cs" />
|
<Compile Include="Controllers\HistoryController.cs" />
|
||||||
<Compile Include="Controllers\LogController.cs" />
|
<Compile Include="Controllers\LogController.cs" />
|
||||||
<Compile Include="Controllers\AddSeriesController.cs" />
|
<Compile Include="Controllers\AddSeriesController.cs" />
|
||||||
|
<Compile Include="Controllers\MissingController.cs" />
|
||||||
<Compile Include="Controllers\NotificationController.cs" />
|
<Compile Include="Controllers\NotificationController.cs" />
|
||||||
<Compile Include="Controllers\SeriesController.cs" />
|
<Compile Include="Controllers\SeriesController.cs" />
|
||||||
<Compile Include="Controllers\SettingsController.cs" />
|
<Compile Include="Controllers\SettingsController.cs" />
|
||||||
|
@ -236,6 +237,7 @@
|
||||||
<Compile Include="Models\IndexerSettingsModel.cs" />
|
<Compile Include="Models\IndexerSettingsModel.cs" />
|
||||||
<Compile Include="Models\MappingModel.cs" />
|
<Compile Include="Models\MappingModel.cs" />
|
||||||
<Compile Include="Models\EpisodeModel.cs" />
|
<Compile Include="Models\EpisodeModel.cs" />
|
||||||
|
<Compile Include="Models\MissingEpisodeModel.cs" />
|
||||||
<Compile Include="Models\NotificationSettingsModel.cs" />
|
<Compile Include="Models\NotificationSettingsModel.cs" />
|
||||||
<Compile Include="Models\QualityModel.cs" />
|
<Compile Include="Models\QualityModel.cs" />
|
||||||
<Compile Include="Models\SeriesSearchResultModel.cs" />
|
<Compile Include="Models\SeriesSearchResultModel.cs" />
|
||||||
|
@ -830,6 +832,9 @@
|
||||||
<LastGenOutput>EditorLocalization.bg-BG.designer.cs</LastGenOutput>
|
<LastGenOutput>EditorLocalization.bg-BG.designer.cs</LastGenOutput>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="Views\Missing\Index.cshtml" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|
28
NzbDrone.Web/Views/Missing/Index.cshtml
Normal file
28
NzbDrone.Web/Views/Missing/Index.cshtml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
@model List<MissingEpisodeModel>
|
||||||
|
@using NzbDrone.Web.Models;
|
||||||
|
|
||||||
|
@section MainContent{
|
||||||
|
@{Html.Telerik().Grid<MissingEpisodeModel>().Name("missing")
|
||||||
|
.TableHtmlAttributes(new { @class = "Grid" })
|
||||||
|
.Columns(columns =>
|
||||||
|
{
|
||||||
|
columns.Bound(c => c.SeriesTitle).Title("Series Name");
|
||||||
|
columns.Bound(c => c.SeasonNumber).Title("Season").Width(1);
|
||||||
|
columns.Bound(c => c.EpisodeNumber).Title("Episode").Width(1);
|
||||||
|
columns.Bound(c => c.EpisodeTitle).Title("Episode Title");
|
||||||
|
columns.Bound(c => c.AirDate).Title("Air Date").Width(50);
|
||||||
|
})
|
||||||
|
.DetailView(detailView => detailView.ClientTemplate(
|
||||||
|
"<fieldset>" +
|
||||||
|
"<div><b>Overview: </b><#= Overview #></div>" +
|
||||||
|
"</fieldset>"
|
||||||
|
))
|
||||||
|
.DataBinding(data => data.Ajax().Select("_AjaxBinding", "Missing"))
|
||||||
|
.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.AirDate).Descending()).Enabled(true))
|
||||||
|
.Pageable(
|
||||||
|
c =>
|
||||||
|
c.PageSize(20).Position(GridPagerPosition.Bottom).Style(GridPagerStyles.NextPrevious))
|
||||||
|
//.Filterable()
|
||||||
|
//.ClientEvents(c => c.OnRowDataBound("onRowDataBound"))
|
||||||
|
.Render();}
|
||||||
|
}
|
Loading…
Reference in a new issue