mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-14 11:23:42 +02:00
Fixed: Missing grid failing when too many episodes were missing.
This commit is contained in:
parent
ffdc0f22fb
commit
74e78434b3
@ -37,9 +37,9 @@ public ActionResult Index()
|
|||||||
AirDateString = e.AirDate.Value.ToBestDateString()
|
AirDateString = e.AirDate.Value.ToBestDateString()
|
||||||
});
|
});
|
||||||
|
|
||||||
var serialized = new JavaScriptSerializer().Serialize(missing);
|
//var serialized = new JavaScriptSerializer().Serialize(missing);
|
||||||
|
|
||||||
return View((object)serialized);
|
return View(missing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
@model String
|
@model IEnumerable<NzbDrone.Web.Models.MissingEpisodeModel>
|
||||||
|
@using DataTables.Mvc.Core
|
||||||
@using NzbDrone.Web.Helpers
|
@using NzbDrone.Web.Helpers
|
||||||
|
@using SortDirection = DataTables.Mvc.Core.Enum.SortDirection
|
||||||
@{ViewBag.Title = "Missing";}
|
@{ViewBag.Title = "Missing";}
|
||||||
|
|
||||||
@section ActionMenu{
|
@section ActionMenu{
|
||||||
@ -9,94 +11,57 @@
|
|||||||
<li>@Ajax.ActionLink("Start Recent Backlog Search", "RecentBacklogSearch", "Command", null, null, new { title = "Search and download missing episodes that aired in the last 30 days" })</li>
|
<li>@Ajax.ActionLink("Start Recent Backlog Search", "RecentBacklogSearch", "Command", null, null, new { title = "Search and download missing episodes that aired in the last 30 days" })</li>
|
||||||
</ul>
|
</ul>
|
||||||
}
|
}
|
||||||
<div class="grid-container">
|
|
||||||
<table id="missingGrid" class="dataTablesGrid hidden-grid">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
Series Title
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Episode
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Episode Title
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
AirDate
|
|
||||||
</th>
|
|
||||||
@*Commands Column*@
|
|
||||||
<th/>
|
|
||||||
|
|
||||||
|
@Html.GridHtml("missingGrid", "dataTablesGrid")
|
||||||
|
|
||||||
@*Details Column*@
|
|
||||||
<th style="display: none;">
|
|
||||||
Details
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
@*@foreach(var history in Model)
|
|
||||||
{
|
|
||||||
Html.RenderPartial("History", history);
|
|
||||||
}*@
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
@section Scripts
|
@section Scripts
|
||||||
{
|
{
|
||||||
<script type="text/javascript">
|
@( Html.GridScriptForModel("#missingGrid")
|
||||||
$(document).ready(function() {
|
.Paginate(true)
|
||||||
$('#missingGrid').removeClass('hidden-grid');
|
.PageLength(20)
|
||||||
|
.ChangePageLength(false)
|
||||||
|
.Filter(true)
|
||||||
|
.Sort(true)
|
||||||
|
.PaginationType("four_button")
|
||||||
|
.AddColumn(new Column().DataProperty("return seriesTitle(source, type, val);", true).Title("Series Title"))
|
||||||
|
.AddColumn(new Column().DataProperty("EpisodeNumbering").Width("80px").Sortable(false).Title("Episode"))
|
||||||
|
.AddColumn(new Column().DataProperty("EpisodeTitle").Sortable(false).Title("Episode Title"))
|
||||||
|
.AddColumn(new Column().DataProperty("return airDate(source, type, val);", true).Width("150px").Title("Air Date"))
|
||||||
|
.AddColumn(new Column().DataProperty("EpisodeId").Width("40px").Sortable(false).RenderFunction("return actions(row);"))
|
||||||
|
.AddColumn(new Column().DataProperty("Details").Sortable(false).Visible(false).RenderFunction("return details(row);"))
|
||||||
|
.AddSorting(3, SortDirection.Desc)
|
||||||
|
)
|
||||||
|
|
||||||
oTable = $('.dataTablesGrid').dataTable({
|
<script type="text/javascript">
|
||||||
//"sAjaxSource": "History/AjaxBinding",
|
|
||||||
//"bProcessing": true,
|
|
||||||
"bShowAll": false,
|
function seriesTitle (source, type, val) {
|
||||||
"aaData": @Html.Raw(Model),
|
// 'display' and 'filter' use our fancy naming
|
||||||
"bPaginate": true,
|
if (type === 'display' || type === 'filter') {
|
||||||
"bLengthChange": false,
|
return "<a href='/Series/Details?seriesId=" + source["SeriesId"] + "'>" + source["SeriesTitle"] + "</a>";
|
||||||
"bFilter": true,
|
}
|
||||||
"bSort": true,
|
// 'sort' and 'type' both just use the raw data
|
||||||
"bInfo": true,
|
return source["SeriesTitleSorter"];
|
||||||
"bAutoWidth": false,
|
}
|
||||||
"iDisplayLength": 20,
|
|
||||||
"sPaginationType": "four_button",
|
function airDate (source, type, val) {
|
||||||
"aoColumns": [
|
// 'display' and 'filter' use our fancy naming
|
||||||
{ sWidth: 'auto', "mDataProp": function (source, type, val) {
|
if (type === 'display' || type === 'filter') {
|
||||||
// 'display' and 'filter' use our fancy naming
|
return source["AirDateString"];
|
||||||
if (type === 'display' || type === 'filter') {
|
}
|
||||||
return "<a href='/Series/Details?seriesId=" + source["SeriesId"] + "'>" + source["SeriesTitle"] + "</a>";
|
// 'sort' and 'type' both just use the raw data
|
||||||
}
|
return source["AirDate"];
|
||||||
// 'sort' and 'type' both just use the raw data
|
}
|
||||||
return source["SeriesTitleSorter"];
|
|
||||||
}
|
function actions (row) {
|
||||||
}, //Series Title
|
var link = '@Ajax.ImageActionLink("../../Content/Images/Search.png", new { title = "Search for Episode", alt = "Search", @class = "gridAction" }, "Search", "Episode", new { episodeId = "REPLACE" }, null, null)';
|
||||||
{ sWidth: '80px', "mDataProp": "EpisodeNumbering", "bSortable": false }, //EpisodeNumbering
|
link = link.replace("REPLACE", row.aData["EpisodeId"]);
|
||||||
{ sWidth: 'auto', "mDataProp": "EpisodeTitle", "bSortable": false }, //Episode Title
|
return link;
|
||||||
{ sWidth: '150px', "mDataProp": function (source, type, val) {
|
}
|
||||||
// 'display' and 'filter' use our fancy naming
|
|
||||||
if (type === 'display' || type === 'filter') {
|
function details (row) {
|
||||||
return source["AirDateString"];
|
var result = "<b>Overview: </b>" + row.aData["Overview"] + "<br/>";
|
||||||
}
|
return result;
|
||||||
// 'sort' and 'type' both just use the raw data
|
}
|
||||||
return source["AirDate"];
|
|
||||||
}
|
|
||||||
}, //Grabbed On
|
|
||||||
{ sWidth: '40px', "mDataProp": "EpisodeId", "bSortable": false, "fnRender": function (row) {
|
|
||||||
var link = '@Ajax.ImageActionLink("../../Content/Images/Search.png", new { title = "Search for Episode", alt = "Search", @class = "gridAction" }, "Search", "Episode", new { episodeId = "REPLACE" }, null, null)';
|
|
||||||
link = link.replace("REPLACE", row.aData["EpisodeId"]);
|
|
||||||
return link;
|
|
||||||
}
|
|
||||||
}, //Actions
|
|
||||||
{ sWidth: 'auto', "mDataProp": "Details", "bSortable": false, "bVisible": false, "fnRender": function (row) {
|
|
||||||
var result = "<b>Overview: </b>" + row.aData["Overview"] + "<br/>";
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
} //Details
|
|
||||||
],
|
|
||||||
"aaSorting": [[3, 'desc']]
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user