mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-30 19:56:54 +00:00
189 lines
No EOL
12 KiB
Text
189 lines
No EOL
12 KiB
Text
@model List<UpcomingEpisodeModel>
|
|
@using NzbDrone.Common
|
|
@using NzbDrone.Web.Helpers
|
|
@using NzbDrone.Web.Models
|
|
@{ViewBag.Title = "Upcoming";}
|
|
@section HeaderContent
|
|
{
|
|
@Html.IncludeCss("Grid.css")
|
|
}
|
|
@section ActionMenu{
|
|
<ul class="sub-menu">
|
|
<li>@Ajax.ActionLink("Start RSS Sync", "RssSync", "Command", null, null)</li>
|
|
</ul>
|
|
}
|
|
<div id="yesterday">
|
|
<h2>
|
|
Yesterday</h2>
|
|
<div class="grid-container">
|
|
@{Html.Telerik().Grid<UpcomingEpisodeModel>().Name("Yesterday").NoRecordsTemplate(
|
|
"No watched shows aired yesterday")
|
|
.TableHtmlAttributes(new { @class = "Grid" })
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.SeriesTitle)
|
|
.ClientTemplate("<a href=" +
|
|
Url.Action("Details", "Series", new { seriesId = "<#= SeriesId #>" }) +
|
|
"><#= SeriesTitle #></a>")
|
|
.Title("Series Title");
|
|
columns.Bound(c => c.SeasonNumber).Title("Season #").Width(40);
|
|
columns.Bound(c => c.EpisodeNumber).Title("Episode #").Width(40);
|
|
columns.Bound(c => c.Title).Title("Episode Title").Width(350);
|
|
columns.Bound(c => c.AirDateTime).Title("Air Time")
|
|
.ClientTemplate("<#= AirTime #>")
|
|
.Width(160);
|
|
columns.Bound(c => c.Status)
|
|
.ClientTemplate("<img src='../../Content/Images/<#= Status #>.png' alt='<#= Status #>' title='<#= Status #>' class='statusImage status-<#= Status #>' />" +
|
|
Ajax.ImageActionLink("../../Content/Images/Search.png", new { Alt = "Search", Title = "Search for episode", @class = "searchImage" }, "Search", "Episode", new { EpisodeId = "<#= EpisodeId #>" }, null, null)
|
|
).Width(100);
|
|
})
|
|
.DetailView(detailView => detailView.ClientTemplate(
|
|
"<fieldset>" +
|
|
"<div><b>Overview: </b><#= Overview #></div>" +
|
|
"</fieldset>"
|
|
))
|
|
.DataBinding(data => data.Ajax().Select("_AjaxBindingYesterday", "Upcoming"))
|
|
.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.AirDateTime).Ascending()).Enabled(true))
|
|
.ClientEvents(clientEvents =>
|
|
{
|
|
clientEvents.OnRowDataBound("grid_rowBound");
|
|
if (EnviromentProvider.IsProduction)
|
|
clientEvents.OnError("grid_onError");
|
|
})
|
|
.Render();}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div id="today">
|
|
<h2>
|
|
Today</h2>
|
|
<div class="grid-container">
|
|
@{Html.Telerik().Grid<UpcomingEpisodeModel>().Name("Today").NoRecordsTemplate("No watched shows airing today.")
|
|
.TableHtmlAttributes(new { @class = "Grid" })
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.SeriesTitle)
|
|
.ClientTemplate("<a href=" +
|
|
Url.Action("Details", "Series", new { seriesId = "<#= SeriesId #>" }) +
|
|
"><#= SeriesTitle #></a>")
|
|
.Title("Series Name");
|
|
columns.Bound(c => c.SeasonNumber).Title("Season #").Width(40);
|
|
columns.Bound(c => c.EpisodeNumber).Title("Episode #").Width(40);
|
|
columns.Bound(c => c.Title).Title("Episode Title").Width(350);
|
|
columns.Bound(c => c.AirDateTime).Title("Air Time")
|
|
.ClientTemplate("<#= AirTime #>")
|
|
.Width(160);
|
|
columns.Bound(c => c.Status)
|
|
.ClientTemplate("<img src='../../Content/Images/<#= Status #>.png' alt='<#= Status #>' title='<#= Status #>' class='statusImage status-<#= Status #>' />" +
|
|
"<a href=\"../Episode/Season?episodeId=<#= EpisodeId #>\" onclick=\"searchForEpisode('<#= EpisodeId #>'); return false;\"><img src='../../Content/Images/Search.png' alt='Search' title='Search for episode' class='searchImage' /></a>"
|
|
).Width(100);
|
|
})
|
|
.DetailView(detailView => detailView.ClientTemplate(
|
|
"<fieldset>" +
|
|
"<div><b>Overview: </b><#= Overview #></div>" +
|
|
"</fieldset>"
|
|
))
|
|
.DataBinding(data => data.Ajax().Select("_AjaxBindingToday", "Upcoming"))
|
|
.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.AirDateTime).Ascending()).Enabled(true))
|
|
.ClientEvents(clientEvents =>
|
|
{
|
|
clientEvents.OnRowDataBound("grid_rowBound");
|
|
if (EnviromentProvider.IsProduction)
|
|
clientEvents.OnError("grid_onError");
|
|
})
|
|
.Render();}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div id="tomorrow">
|
|
<h2>
|
|
Tomorrow</h2>
|
|
<div class="grid-container">
|
|
@{Html.Telerik().Grid<UpcomingEpisodeModel>().Name("Tomorrow").NoRecordsTemplate(
|
|
"No watched shows airing tomorrow")
|
|
.TableHtmlAttributes(new { @class = "Grid" })
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.SeriesTitle)
|
|
.ClientTemplate("<a href=" +
|
|
Url.Action("Details", "Series", new { seriesId = "<#= SeriesId #>" }) +
|
|
"><#= SeriesTitle #></a>")
|
|
.Title("Series Name");
|
|
columns.Bound(c => c.SeasonNumber).Title("Season #").Width(40);
|
|
columns.Bound(c => c.EpisodeNumber).Title("Episode #").Width(40);
|
|
columns.Bound(c => c.Title).Title("Episode Title").Width(350);
|
|
columns.Bound(c => c.AirDateTime).Title("Air Time")
|
|
.ClientTemplate("<#= AirTime #>")
|
|
.Width(160);
|
|
columns.Bound(c => c.Status)
|
|
.ClientTemplate("<img src='../../Content/Images/<#= Status #>.png' alt='<#= Status #>' title='<#= Status #>' class='statusImage status-<#= Status #>' />" +
|
|
"<a href=\"../Episode/Season?episodeId=<#= EpisodeId #>\" onclick=\"searchForEpisode('<#= EpisodeId #>'); return false;\"><img src='../../Content/Images/Search.png' alt='Search' title='Search for episode' class='searchImage' /></a>"
|
|
).Width(100);
|
|
})
|
|
.DetailView(detailView => detailView.ClientTemplate(
|
|
"<fieldset>" +
|
|
"<div><b>Overview: </b><#= Overview #></div>" +
|
|
"</fieldset>"
|
|
))
|
|
|
|
.DataBinding(data => data.Ajax().Select("_AjaxBindingTomorrow", "Upcoming"))
|
|
.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.AirDateTime).Ascending()).Enabled(true))
|
|
.ClientEvents(clientEvents =>
|
|
{
|
|
clientEvents.OnRowDataBound("grid_rowBound");
|
|
if (EnviromentProvider.IsProduction)
|
|
clientEvents.OnError("grid_onError");
|
|
})
|
|
.Render();}
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<div id="week">
|
|
<h2>
|
|
Future Forecast</h2>
|
|
<div class="grid-container">
|
|
@{Html.Telerik().Grid<UpcomingEpisodeModel>().Name("Week").NoRecordsTemplate(
|
|
"No watched shows airing in the next week...")
|
|
.TableHtmlAttributes(new { @class = "Grid" })
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.SeriesTitle)
|
|
.ClientTemplate("<a href=" +
|
|
Url.Action("Details", "Series", new { seriesId = "<#= SeriesId #>" }) +
|
|
"><#= SeriesTitle #></a>")
|
|
.Title("Series Name");
|
|
columns.Bound(c => c.SeasonNumber).Title("Season #").Width(40);
|
|
columns.Bound(c => c.EpisodeNumber).Title("Episode #").Width(40);
|
|
columns.Bound(c => c.Title).Title("Episode Title").Width(350);
|
|
columns.Bound(c => c.AirDateTime).Title("Air Date/Time")
|
|
.ClientTemplate("<#= AirDate #> at <#= AirTime #>")
|
|
.Width(160);
|
|
columns.Bound(c => c.Status)
|
|
.ClientTemplate("<img src='../../Content/Images/<#= Status #>.png' alt='<#= Status #>' title='<#= Status #>' class='statusImage status-<#= Status #>' />" +
|
|
"<a href=\"../Episode/Season?episodeId=<#= EpisodeId #>\" onclick=\"searchForEpisode('<#= EpisodeId #>'); return false;\"><img src='../../Content/Images/Search.png' alt='Search' title='Search for episode' class='searchImage' /></a>"
|
|
).Width(100);
|
|
})
|
|
.DetailView(detailView => detailView.ClientTemplate(
|
|
"<fieldset>" +
|
|
"<div><b>Overview: </b><#= Overview #></div>" +
|
|
"</fieldset>"
|
|
))
|
|
.DataBinding(data => data.Ajax().Select("_AjaxBindingWeek", "Upcoming"))
|
|
.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.AirDateTime).Ascending()).Enabled(true))
|
|
.ClientEvents(clientEvents =>
|
|
{
|
|
clientEvents.OnRowDataBound("grid_rowBound");
|
|
if (EnviromentProvider.IsProduction)
|
|
clientEvents.OnError("grid_onError");
|
|
})
|
|
.Render();}
|
|
</div>
|
|
</div>
|
|
|
|
@section Scripts{
|
|
<script type="text/javascript">
|
|
function grid_rowBound(e) {
|
|
highlightRow(e);
|
|
}
|
|
</script>
|
|
} |