diff --git a/NzbDrone.Web/Controllers/CommandController.cs b/NzbDrone.Web/Controllers/CommandController.cs index a9f7bb05c..dc1df693e 100644 --- a/NzbDrone.Web/Controllers/CommandController.cs +++ b/NzbDrone.Web/Controllers/CommandController.cs @@ -12,14 +12,17 @@ namespace NzbDrone.Web.Controllers private readonly SabProvider _sabProvider; private readonly SmtpProvider _smtpProvider; private readonly TwitterProvider _twitterProvider; + private readonly EpisodeProvider _episodeProvider; public CommandController(JobProvider jobProvider, SabProvider sabProvider, - SmtpProvider smtpProvider, TwitterProvider twitterProvider) + SmtpProvider smtpProvider, TwitterProvider twitterProvider, + EpisodeProvider episodeProvider) { _jobProvider = jobProvider; _sabProvider = sabProvider; _smtpProvider = smtpProvider; _twitterProvider = twitterProvider; + _episodeProvider = episodeProvider; } public JsonResult RssSync() @@ -88,5 +91,19 @@ namespace NzbDrone.Web.Controllers return JsonNotificationResult.Info("Good News!", "Successfully verified Twitter Authorization."); } + + [HttpPost] + public EmptyResult SaveSeasonIgnore(int seriesId, int seasonNumber, bool ignored) + { + _episodeProvider.SetSeasonIgnore(seriesId, seasonNumber, ignored); + return new EmptyResult(); + } + + [HttpPost] + public EmptyResult SaveEpisodeIgnore(int episodeId, bool ignored) + { + _episodeProvider.SetEpisodeIgnore(episodeId, ignored); + return new EmptyResult(); + } } } diff --git a/NzbDrone.Web/Controllers/SeriesController.cs b/NzbDrone.Web/Controllers/SeriesController.cs index 21f722bc0..b54d0ab35 100644 --- a/NzbDrone.Web/Controllers/SeriesController.cs +++ b/NzbDrone.Web/Controllers/SeriesController.cs @@ -23,25 +23,17 @@ namespace NzbDrone.Web.Controllers private readonly EpisodeProvider _episodeProvider; private readonly QualityProvider _qualityProvider; private readonly SeriesProvider _seriesProvider; - private readonly TvDbProvider _tvDbProvider; private readonly JobProvider _jobProvider; - private readonly MediaFileProvider _mediaFileProvider; // // GET: /Series/ - public SeriesController(SeriesProvider seriesProvider, - EpisodeProvider episodeProvider, - QualityProvider qualityProvider, - TvDbProvider tvDbProvider, - JobProvider jobProvider, - MediaFileProvider mediaFileProvider) + public SeriesController(SeriesProvider seriesProvider, EpisodeProvider episodeProvider, + QualityProvider qualityProvider, JobProvider jobProvider) { _seriesProvider = seriesProvider; _episodeProvider = episodeProvider; _qualityProvider = qualityProvider; - _tvDbProvider = tvDbProvider; _jobProvider = jobProvider; - _mediaFileProvider = mediaFileProvider; } public ActionResult Index() @@ -101,16 +93,6 @@ namespace NzbDrone.Web.Controllers return View(new GridModel(series)); } - [GridAction] - public ActionResult _AjaxSeasonGrid(int seriesId, int seasonNumber) - { - using (MiniProfiler.StepStatic("Controller")) - { - var episodes = GetEpisodeModels(_episodeProvider.GetEpisodesBySeason(seriesId, seasonNumber)); - return View(new GridModel(episodes)); - } - } - public JsonResult LocalSearch(string term) { //Get Results from the local DB and return @@ -124,43 +106,6 @@ namespace NzbDrone.Web.Controllers return Json(results, JsonRequestBehavior.AllowGet); } - [HttpPost] - public EmptyResult SaveSeasonIgnore(int seriesId, int seasonNumber, bool ignored) - { - _episodeProvider.SetSeasonIgnore(seriesId, seasonNumber, ignored); - return new EmptyResult(); - } - - [HttpPost] - public EmptyResult SaveEpisodeIgnore(int episodeId, bool ignored) - { - _episodeProvider.SetEpisodeIgnore(episodeId, ignored); - return new EmptyResult(); - } - - public ActionResult Details2(int seriesId) - { - var series = _seriesProvider.GetSeries(seriesId); - - var model = new SeriesModel(); - - if (series.AirsDayOfWeek != null) - { - model.AirsDayOfWeek = series.AirsDayOfWeek.Value.ToString(); - } - else - { - model.AirsDayOfWeek = "N/A"; - } - model.Overview = series.Overview; - model.Seasons = _episodeProvider.GetSeasons(seriesId); - model.Title = series.Title; - model.SeriesId = series.SeriesId; - model.HasBanner = !String.IsNullOrEmpty(series.BannerUrl); - - return View(model); - } - public ActionResult Details(int seriesId) { var series = _seriesProvider.GetSeries(seriesId); diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index 33303345d..3650d38ed 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -425,7 +425,6 @@ - diff --git a/NzbDrone.Web/Scripts/NzbDrone/seriesDetails.js b/NzbDrone.Web/Scripts/NzbDrone/seriesDetails.js index e69f25328..2e99cfb0f 100644 --- a/NzbDrone.Web/Scripts/NzbDrone/seriesDetails.js +++ b/NzbDrone.Web/Scripts/NzbDrone/seriesDetails.js @@ -5,8 +5,8 @@ var readyImage = '../../Content/Images/Ready.png'; var downloadingImage = '../../Content/Images/Downloading.png'; var seriesId = 0; -var saveSeasonIgnoreUrl = '../Series/SaveSeasonIgnore'; -var saveEpisodeIgnoreUrl = '../Series/SaveEpisodeIgnore'; +var saveSeasonIgnoreUrl = '../Command/SaveSeasonIgnore'; +var saveEpisodeIgnoreUrl = '../Command/SaveEpisodeIgnore'; //Episode Ignore Functions $(".ignoreEpisode").live("click", function () { @@ -146,6 +146,6 @@ function saveEpisodeIgnore(episodeId, ignored) { } /* Click on row, show details */ -$('.seriesTable tr').live('click', function() { - $(this).next('.detail-view').toggle(); +$('.seriesTable tr td:not(:last-child)').live('click', function () { + $(this).parent('tr').next('.detail-view').toggle(); }); \ No newline at end of file diff --git a/NzbDrone.Web/Views/Series/Details.cshtml b/NzbDrone.Web/Views/Series/Details.cshtml index df9f08a09..f3e719097 100644 --- a/NzbDrone.Web/Views/Series/Details.cshtml +++ b/NzbDrone.Web/Views/Series/Details.cshtml @@ -42,12 +42,14 @@ { width: 18px; height: 18px; - padding: 1px; + padding: 3px 1px; margin: 0px; + vertical-align: middle; } .searchImage:hover, .renameImage:hover, .ignoreEpisode:hover, .ignoreEpisodesMaster:hover { + background-color: #065EFE; } #banner-container @@ -82,10 +84,9 @@ .seriesTable td { border-width: 1px; - padding: 0 0.6em; + padding: 0px 0.6em 0 7px; border-style: inset; border-color: #EEEEEE; - padding-left: 7px; } .detail-view { diff --git a/NzbDrone.Web/Views/Series/Details2.cshtml b/NzbDrone.Web/Views/Series/Details2.cshtml deleted file mode 100644 index 2ee613590..000000000 --- a/NzbDrone.Web/Views/Series/Details2.cshtml +++ /dev/null @@ -1,144 +0,0 @@ -@model SeriesModel -@using NzbDrone.Common -@using NzbDrone.Web.Helpers -@using NzbDrone.Web.Models -@{ViewBag.Title = Model.Title;} -@section HeaderContent -{ - @Html.IncludeCss("Grid.css") -} -@{ ViewBag.Title = Model.Title; } - -@section ActionMenu{ - -} - -
- @foreach (var season in Model.Seasons) - { - var ignoreSeason = "ignoreSeason_" + season; -
- - @(season == 0 ? "Specials" : "Season " + season) -
- } -
-@foreach (var s in Model.Seasons.Reverse()) -{ - var seriesId = @Model.SeriesId; - var season = s; - -

- @(season == 0 ? "Specials" : "Season " + season) -

- - Html.Telerik().Grid().Name("seasons_" + season) - .TableHtmlAttributes(new { @class = "Grid" }) - .Columns(columns => - { - columns.Bound(c => c.EpisodeNumber).Width(100).Title("Episode #").Sortable(true); - columns.Bound(c => c.Title).Title("Title").Sortable(false); - columns.Bound(c => c.AirDate).Width(100).Sortable(false); - columns.Bound(c => c.Quality).Width(100); - columns.Bound(c => c.Status).Sortable(false) - .Title("" + - "Status" + - Ajax.ImageActionLink("../../Content/Images/Search.png", new { Alt = "Search", Title = "Search for all episodes in this season", @class = "searchImage searchImageMaster" }, "SearchSeason", "Episode", new { SeriesId = seriesId, SeasonNumber = season }, null, null) + - Ajax.ImageActionLink("../../Content/Images/Rename.png", new { Alt = "Rename", Title = "Rename all episodes in this season", @class = "renameImage renameImageMaster" }, "RenameSeason", "Episode", new { SeriesId = seriesId, SeasonNumber = season }, null, null)) - .ClientTemplate("" + - "<#= Status #>" + - Ajax.ImageActionLink("../../Content/Images/Search.png", new { Alt = "Search", Title = "Search for episode", @class = "searchImage" }, "Search", "Episode", new { EpisodeId = "<#= EpisodeId #>" }, null, null) + - Ajax.ImageActionLink("../../Content/Images/Rename.png", new { Alt = "Rename", Title = "Rename episode", @class = "renameImage" }, "Rename", "Episode", new { EpisodeFileId = "<#= EpisodeFileId #>" }, null, null)) - .Width(80); - }) - .DetailView(detailView => detailView.ClientTemplate("
<#= Overview #>
<#= Path #>
")) - .Footer(true) - .DataBinding( - d => - d.Ajax().Select("_AjaxSeasonGrid", "Series", - new RouteValueDictionary { { "seriesId", Model.SeriesId }, { "seasonNumber", season } })) - .ClientEvents(clientEvents => - { - clientEvents.OnRowDataBound("grid_rowBound"); - clientEvents.OnDataBound("grid_dataBound"); - if (EnviromentProvider.IsProduction) - clientEvents.OnError("grid_onError"); - }) - .Sortable(sorting => sorting - .OrderBy(sortOrder => sortOrder.Add(o => o.EpisodeNumber).Descending()).SortMode(GridSortMode.SingleColumn)) - .Render(); -} -@section Scripts{ - @Html.IncludeScript("NzbDrone/seriesDetails.js") - -} diff --git a/NzbDrone.Web/Views/Series/Season.cshtml b/NzbDrone.Web/Views/Series/Season.cshtml index ae6f4d071..87cd8e990 100644 --- a/NzbDrone.Web/Views/Series/Season.cshtml +++ b/NzbDrone.Web/Views/Series/Season.cshtml @@ -7,7 +7,7 @@ - +