fixed show grid, added details page

pull/3113/head
kay.one 14 years ago
parent 772452aa8b
commit 4d4a8198eb

@ -6,6 +6,7 @@ namespace NzbDrone.Core.Controllers
public interface ISeriesController public interface ISeriesController
{ {
IQueryable<Series> GetSeries(); IQueryable<Series> GetSeries();
Series GetSeries(int tvdbId);
void SyncSeriesWithDisk(); void SyncSeriesWithDisk();
} }
} }

@ -32,16 +32,23 @@ namespace NzbDrone.Core.Controllers
return _sonioRepo.All<Series>(); return _sonioRepo.All<Series>();
} }
public Series GetSeries(int tvdbId)
{
return _sonioRepo.Single<Series>(s=> s.TvdbId == tvdbId);
}
public void SyncSeriesWithDisk() public void SyncSeriesWithDisk()
{ {
foreach (string seriesFolder in _diskController.GetDirectories(_config.SeriesRoot)) foreach (string seriesFolder in _diskController.GetDirectories(_config.SeriesRoot))
{ {
var dirInfo = new DirectoryInfo(seriesFolder); var cleanPath =_diskController.CleanPath(new DirectoryInfo(seriesFolder).FullName);
if (!_sonioRepo.Exists<Series>(s => s.Path == _diskController.CleanPath(dirInfo.FullName))) if (!_sonioRepo.Exists<Series>(s => s.Path == cleanPath))
{ {
_logger.InfoFormat("Folder '{0} isn't mapped to a series in the database. Trying to map it.'", seriesFolder); _logger.InfoFormat("Folder '{0} isn't mapped to a series in the database. Trying to map it.'", cleanPath);
AddShow(seriesFolder); AddShow(cleanPath);
} }
} }
@ -60,7 +67,7 @@ namespace NzbDrone.Core.Controllers
private void AddShow(string path, TvdbSeries series) private void AddShow(string path, TvdbSeries series)
{ {
_sonioRepo.Add(new Series { Id = series.Id, SeriesName = series.SeriesName, AirTimes = series.AirsTime, AirsDayOfWeek = series.AirsDayOfWeek, Overview = series.Overview, Status = series.Status, Language = series.Language.Name, Path = path }); _sonioRepo.Add(new Series { TvdbId = series.Id, SeriesName = series.SeriesName, AirTimes = series.AirsTime, AirsDayOfWeek = series.AirsDayOfWeek, Overview = series.Overview, Status = series.Status, Language = series.Language.Abbriviation, Path = path });
} }
} }
} }

@ -1,10 +1,12 @@
using System; using System;
using SubSonic.SqlGeneration.Schema;
namespace NzbDrone.Core.Repository namespace NzbDrone.Core.Repository
{ {
public class Series public class Series
{ {
public int Id [SubSonicPrimaryKey]
public int TvdbId
{ {
get; get;
set; set;
@ -22,6 +24,7 @@ namespace NzbDrone.Core.Repository
set; set;
} }
[SubSonicLongString]
public string Overview public string Overview
{ {
get; get;
@ -51,5 +54,6 @@ namespace NzbDrone.Core.Repository
get; get;
set; set;
} }
} }
} }

Binary file not shown.

Binary file not shown.

@ -35,9 +35,9 @@ namespace NzbDrone.Web.Controllers
// //
// GET: /Series/Details/5 // GET: /Series/Details/5
public ActionResult Details(int id) public ActionResult Details(int tvdbId)
{ {
return View(); return View(_seriesController.GetSeries(tvdbId));
} }
// //

@ -30,9 +30,10 @@ namespace NzbDrone.Web.Controllers
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_configController.SeriesRoot = model.TvFolder; _configController.SeriesRoot = model.TvFolder;
//return RedirectToAction("index");
} }
return RedirectToAction("index"); return View(model);
} }
} }

@ -81,6 +81,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Global.asax" /> <Content Include="Global.asax" />
<Content Include="Views\Series\Details.aspx" />
<Content Include="Views\Series\index.aspx" /> <Content Include="Views\Series\index.aspx" />
<Content Include="Views\Settings\Index.aspx" /> <Content Include="Views\Settings\Index.aspx" />
<Content Include="Web.config"> <Content Include="Web.config">

@ -0,0 +1,45 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NzbDrone.Core.Repository.Series>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Details</h2>
<fieldset>
<legend>Fields</legend>
<div class="display-label">Id</div>
<div class="display-field"><%: Model.TvdbId %></div>
<div class="display-label">SeriesName</div>
<div class="display-field"><%: Model.SeriesName %></div>
<div class="display-label">Status</div>
<div class="display-field"><%: Model.Status %></div>
<div class="display-label">Overview</div>
<div class="display-field"><%: Model.Overview %></div>
<div class="display-label">AirTimes</div>
<div class="display-field"><%: Model.AirTimes %></div>
<div class="display-label">Language</div>
<div class="display-field"><%: Model.Language %></div>
<div class="display-label">Path</div>
<div class="display-field"><%: Model.Path %></div>
<div class="display-label">TvdbId</div>
<div class="display-field"><%: Model.TvdbId %></div>
</fieldset>
<p>
<%-- <%: Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) %> |--%>
<%: Html.ActionLink("Back to List", "Index") %>
</p>
</asp:Content>

@ -1,16 +1,13 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<NzbDrone.Core.Repository.Series>>" %> <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<NzbDrone.Core.Repository.Series>>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
SeriesView SeriesView
</asp:Content> </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
<h2>SeriesView</h2> SeriesView</h2>
<table> <table>
<tr> <tr>
<th></th>
<th> <th>
Id Id
</th> </th>
@ -20,58 +17,35 @@
<th> <th>
Status Status
</th> </th>
<th>
Overview
</th>
<th>
AirTimes
</th>
<th>
Language
</th>
<th> <th>
Path Path
</th> </th>
</tr> </tr>
<% foreach (var item in Model)
<% foreach (var item in Model) { %> { %>
<tr> <tr>
<%-- <td>
<%: Html.ActionLink("Details", "Details", new { item.TvdbId })%>
|
<%: Html.ActionLink("Delete", "Delete", new { item.TvdbId })%>
</td>--%>
<td> <td>
<%: Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %> | <%: item.TvdbId.ToString()%>
<%: Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%> |
<%: Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
</td>
<td>
<%: item.Id %>
</td> </td>
<td> <td>
<%: item.SeriesName %> <%: Html.ActionLink(item.SeriesName, "Details", new { item.TvdbId })%>
</td> </td>
<td> <td>
<%: item.Status %> <%: item.Status %>
</td> </td>
<td>
<%: item.Overview %>
</td>
<td>
<%: item.AirTimes %>
</td>
<td>
<%: item.Language %>
</td>
<td> <td>
<%: item.Path %> <%: item.Path %>
</td> </td>
</tr> </tr>
<% } %>
<% } %>
</table> </table>
<p> <p>
<%: Html.ActionLink("Create New", "Create") %> <%: Html.ActionLink("Create New", "Create") %>
<%: Html.ActionLink("Sync With Disk", "Sync") %>
</p> </p>
</asp:Content> </asp:Content>

@ -9,7 +9,7 @@
Settings</h2> Settings</h2>
<% using (Html.BeginForm()) <% using (Html.BeginForm())
{ %> { %>
<%: Html.ValidationSummary(true, "Unable to save you settings. Please correct the errors and try again.") %> <%: Html.ValidationSummary(true, "Unable to save your settings. Please correct the errors and try again.") %>
<div> <div>
<fieldset> <fieldset>
<legend>General</legend> <legend>General</legend>

@ -12,7 +12,7 @@
<div id="header"> <div id="header">
<div id="title"> <div id="title">
<h1>[Sponge bob]</h1> <h1>NZBDrone</h1>
</div> </div>
<div id="logindisplay"> <div id="logindisplay">

@ -8,52 +8,54 @@
\Windows\Microsoft.Net\Framework\v2.x\Config \Windows\Microsoft.Net\Framework\v2.x\Config
--> -->
<configuration> <configuration>
<appSettings/> <appSettings/>
<connectionStrings> <connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings> </connectionStrings>
<system.web> <system.web>
<!-- <!--
Set compilation debug="true" to insert debugging Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this symbols into the compiled page. Because this
affects performance, set this value to true only affects performance, set this value to true only
during development. during development.
--> -->
<compilation debug="true" targetFramework="4.0"> <compilation debug="true" targetFramework="4.0">
<assemblies> <assemblies>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies> <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</compilation> <add assembly="NzbDrone.Core"/>
<!-- </assemblies>
</compilation>
<!--
The <authentication> section enables configuration The <authentication> section enables configuration
of the security authentication mode used by of the security authentication mode used by
ASP.NET to identify an incoming user. ASP.NET to identify an incoming user.
--> -->
<authentication mode="Forms"> <authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880"/> <forms loginUrl="~/Account/LogOn" timeout="2880"/>
</authentication> </authentication>
<membership> <membership>
<providers> <providers>
<clear/> <clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>
</providers> </providers>
</membership> </membership>
<profile> <profile>
<providers> <providers>
<clear/> <clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/"/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/"/>
</providers> </providers>
</profile> </profile>
<roleManager enabled="false"> <roleManager enabled="false">
<providers> <providers>
<clear/> <clear/>
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers> </providers>
</roleManager> </roleManager>
<!-- <!--
The <customErrors> section enables configuration The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs of what to do if/when an unhandled error occurs
during the execution of a request. Specifically, during the execution of a request. Specifically,
@ -65,35 +67,36 @@
<error statusCode="404" redirect="FileNotFound.htm" /> <error statusCode="404" redirect="FileNotFound.htm" />
</customErrors> </customErrors>
--> -->
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<namespaces> <namespaces>
<add namespace="System.Web.Mvc"/> <add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/> <add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/> <add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/> <add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/> <add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/> <add namespace="System.Collections.Generic"/>
</namespaces> <add namespace="NzbDrone.Core.Repository"/>
</pages> </namespaces>
</system.web> </pages>
<system.web.extensions/> </system.web>
<!-- <system.web.extensions/>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS. Information Services 7.0. It is not necessary for previous version of IIS.
--> -->
<system.webServer> <system.webServer>
<modules runAllManagedModulesForAllRequests="true"> <modules runAllManagedModulesForAllRequests="true">
</modules> </modules>
<handlers> <handlers>
<remove name="UrlRoutingHandler"/> <remove name="UrlRoutingHandler"/>
</handlers> </handlers>
</system.webServer> </system.webServer>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
</configuration> </configuration>

Loading…
Cancel
Save