mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-18 21:34:28 -04:00
Search Results grid added.
This commit is contained in:
@@ -7,6 +7,8 @@ using System.Web.Mvc;
|
||||
using DataTables.Mvc.Core.Models;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Core.Instrumentation;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Repository.Search;
|
||||
using NzbDrone.Web.Models;
|
||||
|
||||
namespace NzbDrone.Web.Controllers
|
||||
@@ -16,12 +18,15 @@ namespace NzbDrone.Web.Controllers
|
||||
private readonly LogProvider _logProvider;
|
||||
private readonly EnvironmentProvider _environmentProvider;
|
||||
private readonly DiskProvider _diskProvider;
|
||||
private readonly SearchResultProvider _searchResultProvider;
|
||||
|
||||
public LogController(LogProvider logProvider, EnvironmentProvider environmentProvider, DiskProvider diskProvider)
|
||||
public LogController(LogProvider logProvider, EnvironmentProvider environmentProvider,
|
||||
DiskProvider diskProvider, SearchResultProvider searchResultProvider)
|
||||
{
|
||||
_logProvider = logProvider;
|
||||
_environmentProvider = environmentProvider;
|
||||
_diskProvider = diskProvider;
|
||||
_searchResultProvider = searchResultProvider;
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
@@ -50,6 +55,28 @@ namespace NzbDrone.Web.Controllers
|
||||
return JsonNotificationResult.Info("Logs Cleared");
|
||||
}
|
||||
|
||||
public ActionResult SearchResults()
|
||||
{
|
||||
var results = _searchResultProvider.AllSearchResults();
|
||||
|
||||
var model = results.Select(s => new SearchResultsModel
|
||||
{
|
||||
Id = s.Id,
|
||||
SearchTime = s.SearchTime.ToString(),
|
||||
DisplayName = GetDisplayName(s),
|
||||
ReportCount = s.TotalItems,
|
||||
Successful = s.Successes > 0
|
||||
});
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public ActionResult SearchDetails(int searchId)
|
||||
{
|
||||
var model = _searchResultProvider.GetSearchResult(searchId);
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public ActionResult AjaxBinding(DataTablesParams dataTablesParams)
|
||||
{
|
||||
var logs = _logProvider.GetAllLogs();
|
||||
@@ -102,5 +129,24 @@ namespace NzbDrone.Web.Controllers
|
||||
},
|
||||
JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
public string GetDisplayName(SearchResult searchResult)
|
||||
{
|
||||
if (!searchResult.EpisodeNumber.HasValue)
|
||||
{
|
||||
return String.Format("{0} - Season {1}", searchResult.SeriesTitle, searchResult.SeasonNumber);
|
||||
}
|
||||
|
||||
string episodeString;
|
||||
|
||||
if (searchResult.IsDaily)
|
||||
episodeString = searchResult.AirDate.ToShortDateString().Replace('/', '-');
|
||||
|
||||
else
|
||||
episodeString = String.Format("S{0:00}E{1:00}", searchResult.SeasonNumber,
|
||||
searchResult.EpisodeNumber);
|
||||
|
||||
return String.Format("{0} - {1} - {2}", searchResult.SeriesTitle, episodeString, searchResult.EpisodeTitle);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
|
||||
namespace NzbDrone.Web.Models
|
||||
{
|
||||
public class SearchResultsModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string DisplayName { get; set; }
|
||||
public string SearchTime { get; set; }
|
||||
public int ReportCount { get; set; }
|
||||
public bool Successful { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -237,6 +237,7 @@
|
||||
<Compile Include="Models\JobModel.cs" />
|
||||
<Compile Include="Models\LogModel.cs" />
|
||||
<Compile Include="Models\PostUpgradeModel.cs" />
|
||||
<Compile Include="Models\SearchResultsModel.cs" />
|
||||
<Compile Include="Models\UpcomingEpisodesModel.cs" />
|
||||
<Compile Include="Models\SeasonModel.cs" />
|
||||
<Compile Include="Models\SeriesDetailsModel.cs" />
|
||||
@@ -519,6 +520,9 @@
|
||||
<Content Include="Views\Shared\NoSeriesBanner.cshtml" />
|
||||
<Content Include="Views\Update\Post.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Log\SearchResults.cshtml" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
@using DataTables.Mvc.Core
|
||||
@model IEnumerable<NzbDrone.Web.Models.SearchResultsModel>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Search Results";
|
||||
}
|
||||
|
||||
@Html.GridHtml("searchResultsGrid", "dataTablesGrid")
|
||||
|
||||
@section Scripts
|
||||
{
|
||||
@(
|
||||
Html.GridScriptForModel("#searchResultsGrid")
|
||||
.PageLength(20)
|
||||
.ChangePageLength(false)
|
||||
.AddColumn(new Column().DataProperty("DisplayName").Link("SearchDetails?searchId={Id}", "{DisplayName}").Title("Name"))
|
||||
.AddColumn(new Column().DataProperty("SearchTime").Title("Time").Width("170px"))
|
||||
.AddColumn(new Column().DataProperty("ReportCount").Title("Reports Found").Width("140px"))
|
||||
.AddColumn(new Column().DataProperty("Successful").Title("Successful").Width("110px"))
|
||||
.AddSorting(1)
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user