* fixed some type constraint issues, and fixed all action links to use capitalization
* incorporated SmartCaseRoute into the route table
This commit is contained in:
parent
c37b948735
commit
62f0fadbae
@ -33,10 +33,10 @@ namespace VideoGameQuotes.Web.Configuration {
|
|||||||
.RegisterInstance(Version.LUCENE_29)
|
.RegisterInstance(Version.LUCENE_29)
|
||||||
.RegisterType<Analyzer, StandardAnalyzer>(new InjectionConstructor(typeof(Version)))
|
.RegisterType<Analyzer, StandardAnalyzer>(new InjectionConstructor(typeof(Version)))
|
||||||
.RegisterType<QueryParser>(new InjectionFactory(CreateQueryParser))
|
.RegisterType<QueryParser>(new InjectionFactory(CreateQueryParser))
|
||||||
.RegisterAndIntercept(typeof(ISearcher<>), typeof(LuceneEntitySearcher<>))
|
.RegisterAndIntercept(typeof(ISearcher<,>), typeof(LuceneEntitySearcher<,>))
|
||||||
.RegisterAndIntercept(typeof(ISearchService<>), typeof(SearchService<>))
|
.RegisterAndIntercept(typeof(ISearchService<,>), typeof(SearchService<,>))
|
||||||
.RegisterAndIntercept<ILuceneDocumentHandler<Quote>, QuoteDocumentHandler>()
|
.RegisterAndIntercept<ILuceneDocumentHandler<Quote>, QuoteDocumentHandler>()
|
||||||
.RegisterAndIntercept(typeof(ISearchIndexBuilder<>), typeof(LuceneEntityIndexBuilder<>));
|
.RegisterAndIntercept(typeof(ISearchIndexBuilder<,>), typeof(LuceneEntityIndexBuilder<,>));
|
||||||
|
|
||||||
Container
|
Container
|
||||||
.Configure<Interception>()
|
.Configure<Interception>()
|
||||||
|
@ -31,7 +31,7 @@ namespace VideoGameQuotes.Web.Configuration {
|
|||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
container.Resolve<ISearchIndexBuilder<Quote>>().UpdateIndex(quote);
|
container.Resolve<ISearchIndexBuilder<Quote, int>>().UpdateIndex(quote);
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,7 @@ namespace VideoGameQuotes.Web.Controllers {
|
|||||||
records = new[] { repository.FindById(model.Id) };
|
records = new[] { repository.FindById(model.Id) };
|
||||||
}
|
}
|
||||||
|
|
||||||
return records.ToArray().Select(entity => entity.ToDto<T, int, TDto>());
|
return records.ToArray().Select(entity => entity.ToDto<TDto>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
|
@ -21,9 +21,9 @@ namespace VideoGameQuotes.Web.Controllers {
|
|||||||
public class QuoteController : Controller {
|
public class QuoteController : Controller {
|
||||||
private readonly IQuoteService quoteService;
|
private readonly IQuoteService quoteService;
|
||||||
private readonly ICurrentUserProvider<User> currentUserProvider;
|
private readonly ICurrentUserProvider<User> currentUserProvider;
|
||||||
private readonly ISearcher<Quote> quoteSearcher;
|
private readonly ISearcher<Quote, int> quoteSearcher;
|
||||||
|
|
||||||
public QuoteController(IQuoteService quoteService, ICurrentUserProvider<User> currentUserProvider, ISearcher<Quote> quoteSearcher) {
|
public QuoteController(IQuoteService quoteService, ICurrentUserProvider<User> currentUserProvider, ISearcher<Quote, int> quoteSearcher) {
|
||||||
this.quoteService = quoteService;
|
this.quoteService = quoteService;
|
||||||
this.currentUserProvider = currentUserProvider;
|
this.currentUserProvider = currentUserProvider;
|
||||||
this.quoteSearcher = quoteSearcher;
|
this.quoteSearcher = quoteSearcher;
|
||||||
|
@ -5,6 +5,7 @@ using Microsoft.Practices.Unity;
|
|||||||
using Portoa.Search;
|
using Portoa.Search;
|
||||||
using Portoa.Web;
|
using Portoa.Web;
|
||||||
using Portoa.Web.Models;
|
using Portoa.Web.Models;
|
||||||
|
using Portoa.Web.Routing;
|
||||||
using Portoa.Web.Security;
|
using Portoa.Web.Security;
|
||||||
using Portoa.Web.Unity;
|
using Portoa.Web.Unity;
|
||||||
using UnityGenerics;
|
using UnityGenerics;
|
||||||
@ -41,7 +42,7 @@ namespace VideoGameQuotes.Web {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void AfterStartUp() {
|
protected override void AfterStartUp() {
|
||||||
Container.Resolve<ISearchIndexBuilder<Quote>>().BuildIndex();
|
Container.Resolve<ISearchIndexBuilder<Quote, int>>().BuildIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnApplicationEnd() {
|
protected override void OnApplicationEnd() {
|
||||||
@ -55,24 +56,24 @@ namespace VideoGameQuotes.Web {
|
|||||||
routes.MapRoute("favicon", "favicon.ico", new { controller = "Home", action = "Favicon" });
|
routes.MapRoute("favicon", "favicon.ico", new { controller = "Home", action = "Favicon" });
|
||||||
|
|
||||||
//bullshit route so that RenderAction works
|
//bullshit route so that RenderAction works
|
||||||
routes.MapRoute("mainmenu", "home/mainmenu", new { controller = "Home", action = "MainMenu" });
|
routes.MapSmartRoute("mainmenu", "home/mainmenu", new { controller = "Home", action = "MainMenu" });
|
||||||
routes.MapRoute("quote-of-the-day", "quote/quoteoftheday", new { controller = "Quote", action = "QuoteOfTheDay" });
|
routes.MapSmartRoute("quote-of-the-day", "quote/quoteoftheday", new { controller = "Quote", action = "QuoteOfTheDay" });
|
||||||
|
|
||||||
routes.MapRoute("crud-default", "{controller}/{action}", null, new { controller = "system|publisher|game|category", action = "create|edit|delete" });
|
routes.MapSmartRoute("crud-default", "{controller}/{action}", null, new { controller = "system|publisher|game|category", action = "create|edit|delete" });
|
||||||
routes.MapRoute("users-paged", "admin/users/{start}-{end}", new { controller = "Admin", action = "Users" }, new { start = @"\d+", end = @"\d+" });
|
routes.MapSmartRoute("users-paged", "admin/users/{start}-{end}", new { controller = "Admin", action = "Users" }, new { start = @"\d+", end = @"\d+" });
|
||||||
routes.MapRoute("admin", "admin/{action}", new { controller = "Admin", action = "Index" }, new { action = "users|create|flags|password" });
|
routes.MapSmartRoute("admin", "admin/{action}", new { controller = "Admin", action = "Index" }, new { action = "users|create|flags|password" });
|
||||||
routes.MapRoute("user-edit", "user/edit/{usernameOrIp}", new { controller = "User", action = "Edit", usernameOrIp = @"\w+" });
|
routes.MapSmartRoute("user-edit", "user/edit/{usernameOrIp}", new { controller = "User", action = "Edit", usernameOrIp = @"\w+" });
|
||||||
routes.MapRoute("user-default", "user/{action}/{id}", new { controller = "User", action = "delete|ban", id = UrlParameter.Optional });
|
routes.MapSmartRoute("user-default", "user/{action}/{id}", new { controller = "User", action = "delete|ban", id = UrlParameter.Optional });
|
||||||
routes.MapRoute("api", "api/{action}/{id}/{*criteria}", new { controller = "Api" }, new { action = "game|system|category|publisher|quote", id = @"\d+|all" });
|
routes.MapSmartRoute("api", "api/{action}/{id}/{*criteria}", new { controller = "Api" }, new { action = "game|system|category|publisher|quote", id = @"\d+|all" });
|
||||||
routes.MapRoute("home", "{action}", new { controller = "Home", action = "Index" }, new { action = "about|contact|login|logout" });
|
routes.MapSmartRoute("home", "{action}", new { controller = "Home", action = "Index" }, new { action = "about|contact|login|logout" });
|
||||||
routes.MapRoute("paged", "{action}/{page}", new { controller = "Quote", page = 1 }, new { action = "best|recent", page = @"\d+" });
|
routes.MapSmartRoute("paged", "{action}/{page}", new { controller = "Quote", page = 1 }, new { action = "best|recent", page = @"\d+" });
|
||||||
routes.MapRoute("browse", "browse/{*qualifiers}", new { controller = "Quote", action = "Browse" });
|
routes.MapSmartRoute("browse", "browse/{*qualifiers}", new { controller = "Quote", action = "Browse" });
|
||||||
routes.MapRoute("search", "search/{*searchQuery}", new { controller = "Quote", action = "Search" });
|
routes.MapSmartRoute("search", "search/{*searchQuery}", new { controller = "Quote", action = "Search" });
|
||||||
routes.MapRoute("quote-task", "quote/{action}/{id}", new { controller = "Quote" }, new { action = "edit", id = @"\d+" });
|
routes.MapSmartRoute("quote-task", "quote/{action}/{id}", new { controller = "Quote" }, new { action = "edit", id = @"\d+" });
|
||||||
routes.MapRoute("quote", "{action}", new { controller = "Quote" }, new { action = "submit|recent|random|vote|flag" });
|
routes.MapSmartRoute("quote", "{action}", new { controller = "Quote" }, new { action = "submit|recent|random|vote|flag" });
|
||||||
routes.MapRoute("dismiss-flag", "dismiss-flag", new { controller = "Quote", action = "DismissFlag" });
|
routes.MapSmartRoute("dismiss-flag", "dismiss-flag", new { controller = "Quote", action = "DismissFlag" });
|
||||||
routes.MapRoute("individual-quote", "quote/{id}/{*text}", new { controller = "Quote", action = "Quote" }, new { id = @"\d+" });
|
routes.MapSmartRoute("individual-quote", "quote/{id}/{*text}", new { controller = "Quote", action = "Quote" }, new { id = @"\d+" });
|
||||||
routes.MapRoute("default", "{controller}", new { controller = "home", action = "index" });
|
routes.MapSmartRoute("default", "{controller}", new { controller = "home", action = "index" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,18 +1,19 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Portoa.Persistence;
|
using Portoa.Persistence;
|
||||||
using Portoa.Search;
|
using Portoa.Search;
|
||||||
|
|
||||||
namespace VideoGameQuotes.Web.Search {
|
namespace VideoGameQuotes.Web.Search {
|
||||||
public class SearchService<T> : ISearchService<T> where T : Entity<T, int> {
|
public class SearchService<T, TId> : ISearchService<T, TId> where T : IIdentifiable<TId> {
|
||||||
private readonly IRepository<T> repository;
|
private readonly IRepository<T, TId> repository;
|
||||||
|
|
||||||
public SearchService(IRepository<T> repository) {
|
public SearchService(IRepository<T, TId> repository) {
|
||||||
this.repository = repository;
|
this.repository = repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
public IEnumerable<T> FindByIds(IEnumerable<int> ids) {
|
public IEnumerable<T> FindByIds(IEnumerable<TId> ids) {
|
||||||
return repository
|
return repository
|
||||||
.Records
|
.Records
|
||||||
.Where(entity => ids.ToArray().Contains(entity.Id));
|
.Where(entity => ids.ToArray().Contains(entity.Id));
|
||||||
@ -22,5 +23,9 @@ namespace VideoGameQuotes.Web.Search {
|
|||||||
public IEnumerable<T> GetAllIndexableRecords() {
|
public IEnumerable<T> GetAllIndexableRecords() {
|
||||||
return repository.Records;
|
return repository.Records;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TId ConvertIdFromStringValue(string idValue) {
|
||||||
|
return (TId)Convert.ChangeType(idValue, typeof(TId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -53,6 +53,10 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\..\Lib\Microsoft.Practices.Unity.Interception.dll</HintPath>
|
<HintPath>..\..\Lib\Microsoft.Practices.Unity.Interception.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\Lib\MySql.Data.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="NHibernate.ByteCode.LinFu, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
|
<Reference Include="NHibernate.ByteCode.LinFu, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\..\Lib\NHibernate.ByteCode.LinFu.dll</HintPath>
|
<HintPath>..\..\Lib\NHibernate.ByteCode.LinFu.dll</HintPath>
|
||||||
@ -204,7 +208,7 @@
|
|||||||
<Content Include="Views\Home\Contact.aspx" />
|
<Content Include="Views\Home\Contact.aspx" />
|
||||||
<Content Include="Views\Home\ContactSuccess.aspx" />
|
<Content Include="Views\Home\ContactSuccess.aspx" />
|
||||||
<Content Include="Views\Shared\CaptchaJavaScript.ascx" />
|
<Content Include="Views\Shared\CaptchaJavaScript.ascx" />
|
||||||
<Content Include="Views\Quote\PagingMenu.ascx" />
|
<Content Include="Views\Shared\PagingMenu.ascx" />
|
||||||
<Content Include="Views\Quote\QuoteFormJavaScript.ascx" />
|
<Content Include="Views\Quote\QuoteFormJavaScript.ascx" />
|
||||||
<Content Include="Views\Quote\QuoteOfTheDay.ascx" />
|
<Content Include="Views\Quote\QuoteOfTheDay.ascx" />
|
||||||
<Content Include="Views\Shared\BadPaging.aspx" />
|
<Content Include="Views\Shared\BadPaging.aspx" />
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
||||||
<h2>Success</h2>
|
<h2>Success</h2>
|
||||||
<p>
|
<p>
|
||||||
The user <%= Html.ActionLink(Model.Username, "user", "admin", new { id = Model.UserId }, null) %> is now
|
The user <%= Html.ActionLink(Model.Username, "User", "Admin", new { id = Model.UserId }, null) %> is now
|
||||||
an admin.
|
an admin.
|
||||||
</p>
|
</p>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
@ -5,6 +5,6 @@
|
|||||||
<span class="flag-count"><%: Model.Flags.Count() %></span>
|
<span class="flag-count"><%: Model.Flags.Count() %></span>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= Html.ActionLink(Model.GetAbbreviatedText(), "quote", "quote", new { id = Model.Id, text = Model.GetUrlFriendlyText() }, null) %>
|
<%= Html.ActionLink(Model.GetAbbreviatedText(), "Quote", "Quote", new { id = Model.Id, text = Model.GetUrlFriendlyText() }, null) %>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
<h2>Site Administration</h2>
|
<h2>Site Administration</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><%= Html.ActionLink("Create admin", "create", "admin") %></li>
|
<li><%= Html.ActionLink("Create admin", "Create", "Admin") %></li>
|
||||||
<li><%= Html.ActionLink("Change password", "password", "admin") %></li>
|
<li><%= Html.ActionLink("Change password", "Password", "Admin") %></li>
|
||||||
<li><%= Html.ActionLink("View quote flags", "flags", "admin") %></li>
|
<li><%= Html.ActionLink("View quote flags", "Flags", "Admin") %></li>
|
||||||
<li><%= Html.ActionLink("Manage users", "users", "admin") %></li>
|
<li><%= Html.ActionLink("Manage users", "Users", "Admin") %></li>
|
||||||
</ul>
|
</ul>
|
||||||
</asp:Content>
|
</asp:Content>
|
@ -6,6 +6,6 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= Html.ActionLink("Administer more stuff", "index", "admin") %>
|
<%= Html.ActionLink("Administer more stuff", "Index", "Admin") %>
|
||||||
</p>
|
</p>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
<% if (Model.CurrentUser.Group == UserGroup.Admin) { %>
|
<% if (Model.CurrentUser.Group == UserGroup.Admin) { %>
|
||||||
<div class="user-admin">
|
<div class="user-admin">
|
||||||
<%= Html.ActionLink("edit", "edit", "User", new { usernameOrIp = Model.User.Username ?? Model.User.IpAddress }, null) %> |
|
<%= Html.ActionLink("edit", "Edit", "User", new { usernameOrIp = Model.User.Username ?? Model.User.IpAddress }, null) %> |
|
||||||
<%= Html.ActionLink("delete", "delete", "User", new { id = Model.User.Id }, null)%> |
|
<%= Html.ActionLink("delete", "Delete", "User", new { id = Model.User.Id }, null)%> |
|
||||||
<%= Html.ActionLink("ban", "ban", "User", new { id = Model.User.Id }, null)%>
|
<%= Html.ActionLink("ban", "Ban", "User", new { id = Model.User.Id }, null)%>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
|
@ -1,15 +1,11 @@
|
|||||||
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<VideoGameQuotes.Web.Models.PagedModelWithUser<VideoGameQuotes.Api.User>>" MasterPageFile="~/Views/Shared/Site.Master" %>
|
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<VideoGameQuotes.Web.Models.PagedModelWithUser<VideoGameQuotes.Api.User>>" MasterPageFile="~/Views/Shared/Site.Master" %>
|
||||||
|
<%@ Import Namespace="Portoa.Web.Models" %>
|
||||||
<%@ Import Namespace="VideoGameQuotes.Web.Models" %>
|
<%@ Import Namespace="VideoGameQuotes.Web.Models" %>
|
||||||
<asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Manage Users</asp:Content>
|
<asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Manage Users</asp:Content>
|
||||||
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
||||||
<h2>Users</h2>
|
<h2>Users</h2>
|
||||||
|
|
||||||
<p>
|
<% Html.RenderPartial("PagingMenu", new PagingMenuModel(Model) { Action = "Users", Controller = "Admin" }); %>
|
||||||
<% if (Model.HasPrevious) { %>
|
|
||||||
<%= Html.ActionLink("previous", "users", new { start = Model.PreviousStart, end = Model.PreviousEnd }) %>
|
|
||||||
<% } %>
|
|
||||||
<%= Html.ActionLink("next", "users", new { start = Model.NextStart, end = Model.NextEnd }) %>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<%
|
<%
|
||||||
foreach (var user in Model.Records) {
|
foreach (var user in Model.Records) {
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
<h2>Welcome</h2>
|
<h2>Welcome</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Welcome to <strong>Video Game Quotes</strong>. You can <%= Html.ActionLink("browse", "browse", "quote") %>,
|
Welcome to <strong>Video Game Quotes</strong>. You can <%= Html.ActionLink("browse", "Browse", "Quote") %>,
|
||||||
<%= Html.ActionLink("rate", "best", "quote") %> and <%= Html.ActionLink("submit", "submit", "quote") %>
|
<%= Html.ActionLink("rate", "Best", "Quote") %> and <%= Html.ActionLink("submit", "Submit", "Quote") %>
|
||||||
quotes from video games. You do not need to register or login to perform any of these tasks.
|
quotes from video games. You do not need to register or login to perform any of these tasks.
|
||||||
Participation is encouraged.
|
Participation is encouraged.
|
||||||
</p>
|
</p>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<p>
|
<p>
|
||||||
If you have ideas to make this place suck less, or if you just want to express your admiration
|
If you have ideas to make this place suck less, or if you just want to express your admiration
|
||||||
for its creator (i.e. me), don’t hesitate to contact him (i.e. me) using the
|
for its creator (i.e. me), don’t hesitate to contact him (i.e. me) using the
|
||||||
<%= Html.ActionLink("contact", "contact", "home") %> form.
|
<%= Html.ActionLink("contact", "Contact", "Home") %> form.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Best</asp:Content>
|
<asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Best</asp:Content>
|
||||||
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
||||||
|
|
||||||
<% Html.RenderPartial("PagingMenu", new PagingMenuModel(Model) { Action = "best", Controller = "quote" }); %>
|
<% Html.RenderPartial("PagingMenu", new PagingMenuModel(Model) { Action = "Best", Controller = "Quote" }); %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
foreach (var quote in Model.Records) {
|
foreach (var quote in Model.Records) {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="quote-text">
|
<div class="quote-text">
|
||||||
<a href="<%= Url.Action("quote", "quote", new { id = Model.Id, text = Model.GetUrlFriendlyText() }) %>">
|
<a href="<%= Url.Action("Quote", "Quote", new { id = Model.Id, text = Model.GetUrlFriendlyText() }) %>">
|
||||||
<%= Model.FormatTextForHtml() %>
|
<%= Model.FormatTextForHtml() %>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<%@ Import Namespace="VideoGameQuotes.Web.Models" %>
|
<%@ Import Namespace="VideoGameQuotes.Web.Models" %>
|
||||||
<asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Recent: <%= Model.Start %>–<%= Model.End %></asp:Content>
|
<asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Recent: <%= Model.Start %>–<%= Model.End %></asp:Content>
|
||||||
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
<asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent">
|
||||||
<% Html.RenderPartial("PagingMenu", new PagingMenuModel(Model) { Action = "recent", Controller = "quote" }); %>
|
<% Html.RenderPartial("PagingMenu", new PagingMenuModel(Model) { Action = "Recent", Controller = "Quote" }); %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
foreach (var quote in Model.Records) {
|
foreach (var quote in Model.Records) {
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<VideoGameQuotes.Web.Models.MainMenuModel>" %>
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<VideoGameQuotes.Web.Models.MainMenuModel>" %>
|
||||||
<%@ Import Namespace="VideoGameQuotes.Api" %>
|
<%@ Import Namespace="VideoGameQuotes.Api" %>
|
||||||
|
|
||||||
<li><%= Html.ActionLink("Recent", "recent", "Quote", null, new { title = "View most recently submitted quotes" })%></li>
|
<li><%= Html.ActionLink("Recent", "Recent", "Quote", null, new { title = "View most recently submitted quotes" })%></li>
|
||||||
<li><%= Html.ActionLink("Best", "best", "quote", null, new { title = "View the top rated quotes" })%></li>
|
<li><%= Html.ActionLink("Best", "Best", "Quote", null, new { title = "View the top rated quotes" })%></li>
|
||||||
<li><%= Html.ActionLink("Browse", "browse", "Quote", new { qualifiers = "" }, new { title = "Browse the quote database" })%></li>
|
<li><%= Html.ActionLink("Browse", "Browse", "Quote", new { qualifiers = "" }, new { title = "Browse the quote database" })%></li>
|
||||||
<li><%= Html.ActionLink("Random", "random", "Quote", null, new { title = "View a random quote" })%></li>
|
<li><%= Html.ActionLink("Random", "Random", "Quote", null, new { title = "View a random quote" })%></li>
|
||||||
<li><%= Html.ActionLink("Submit", "submit", "Quote", null, new { title = "Submit a new quote" }) %></li>
|
<li><%= Html.ActionLink("Submit", "Submit", "Quote", null, new { title = "Submit a new quote" }) %></li>
|
||||||
<% if (Model.User != null && Model.User.Group >= UserGroup.Admin) { %>
|
<% if (Model.User != null && Model.User.Group >= UserGroup.Admin) { %>
|
||||||
<li><%= Html.ActionLink("Admin", "index", "admin", null, new { title = "Perform administrative tasks" }) %></li>
|
<li><%= Html.ActionLink("Admin", "Index", "Admin", null, new { title = "Perform administrative tasks" }) %></li>
|
||||||
<% } %>
|
<% } %>
|
||||||
<li class="searchbox">
|
<li class="searchbox">
|
||||||
<%= Html.TextBox("searchQuery", null, new { id = "search-query" })%>
|
<%= Html.TextBox("searchQuery", null, new { id = "search-query" })%>
|
||||||
|
@ -23,15 +23,15 @@
|
|||||||
<p class="quote-details-created">
|
<p class="quote-details-created">
|
||||||
<span title="<%: Model.Quote.Created %>">added <%: Model.Quote.GetHumanReadableTimeSinceCreated() %></span>
|
<span title="<%: Model.Quote.Created %>">added <%: Model.Quote.GetHumanReadableTimeSinceCreated() %></span>
|
||||||
<% if (Model.User != null && Model.User.Group >= UserGroup.Admin) { %>
|
<% if (Model.User != null && Model.User.Group >= UserGroup.Admin) { %>
|
||||||
by <%= Html.ActionLink(Model.Quote.Creator.GetUsernameOrIp(), "edit", "user", new { usernameOrIp = Model.Quote.Creator.GetUsernameOrIp()}, null) %>
|
by <%= Html.ActionLink(Model.Quote.Creator.GetUsernameOrIp(), "Edit", "User", new { usernameOrIp = Model.Quote.Creator.GetUsernameOrIp()}, null) %>
|
||||||
<% } %>
|
<% } %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="quote-links">
|
<p class="quote-links">
|
||||||
<a class="quote-flag-icon" href="#" title="flag this quote as inaccurate, fake, spam, duplicate, etc."></a>
|
<a class="quote-flag-icon" href="#" title="flag this quote as inaccurate, fake, spam, duplicate, etc."></a>
|
||||||
<a class="quote-permalink" href="<%= Url.Action("quote", "quote", new { id = Model.Quote.Id, text = Model.Quote.GetUrlFriendlyText() }) %>" title="permanent link to this quote"></a>
|
<a class="quote-permalink" href="<%= Url.Action("Quote", "Quote", new { id = Model.Quote.Id, text = Model.Quote.GetUrlFriendlyText() }) %>" title="permanent link to this quote"></a>
|
||||||
<% if (Model.User != null && Model.User.Group >= UserGroup.Admin) { %>
|
<% if (Model.User != null && Model.User.Group >= UserGroup.Admin) { %>
|
||||||
<a class="edit-icon" href="<%= Url.Action("edit", "quote", new { id = Model.Quote.Id }) %>" title="edit this quote"></a>
|
<a class="edit-icon" href="<%= Url.Action("Edit", "Quote", new { id = Model.Quote.Id }) %>" title="edit this quote"></a>
|
||||||
<small>(<%= Model.Quote.FlagCount %>)</small>
|
<small>(<%= Model.Quote.FlagCount %>)</small>
|
||||||
<% } %>
|
<% } %>
|
||||||
</p>
|
</p>
|
||||||
@ -40,9 +40,9 @@
|
|||||||
<div class="quote-categories">
|
<div class="quote-categories">
|
||||||
<ul class="menu clearfix">
|
<ul class="menu clearfix">
|
||||||
<li>
|
<li>
|
||||||
<a class="game-link" href="<%= Url.Action("browse", "quote", new { qualifiers = "game/" + Model.Quote.Game.Id }) %>" title="browse quotes from the game "<%: Model.Quote.Game.Name %>"">
|
<a class="game-link" href="<%= Url.Action("Browse", "Quote", new { qualifiers = "game/" + Model.Quote.Game.Id }) %>" title="browse quotes from the game "<%: Model.Quote.Game.Name %>"">
|
||||||
<% if (Model.Quote.Game.Icon != null) { %>
|
<% if (Model.Quote.Game.Icon != null) { %>
|
||||||
<img src="data:image/png;base64,<%= Model.Quote.Game.GetBase64EncodedIcon() %>" alt="icon" />
|
<img src="data:image/png;base64,<%= Model.Quote.Game.GetBase64EncodedIcon() %>" alt="" />
|
||||||
<% } %>
|
<% } %>
|
||||||
<%: Model.Quote.Game.Name %>
|
<%: Model.Quote.Game.Name %>
|
||||||
</a>
|
</a>
|
||||||
@ -50,9 +50,9 @@
|
|||||||
|
|
||||||
<% foreach (var system in Model.Quote.Game.Systems.OrderBy(system => system.ReleaseDate)) { %>
|
<% foreach (var system in Model.Quote.Game.Systems.OrderBy(system => system.ReleaseDate)) { %>
|
||||||
<li>
|
<li>
|
||||||
<a class="system-link" href="<%= Url.Action("browse", "quote", new { qualifiers = "system/" + system.Id }) %>" title="browse quotes from the system "<%: system.Name %>"">
|
<a class="system-link" href="<%= Url.Action("Browse", "Quote", new { qualifiers = "system/" + system.Id }) %>" title="browse quotes from the system "<%: system.Name %>"">
|
||||||
<% if (system.Icon != null) { %>
|
<% if (system.Icon != null) { %>
|
||||||
<img src="data:image/png;base64,<%= system.GetBase64EncodedIcon() %>" alt="icon" />
|
<img src="data:image/png;base64,<%= system.GetBase64EncodedIcon() %>" alt="" />
|
||||||
<% } %>
|
<% } %>
|
||||||
<%: system.Abbreviation %>
|
<%: system.Abbreviation %>
|
||||||
</a>
|
</a>
|
||||||
@ -60,7 +60,7 @@
|
|||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
<% foreach (var category in Model.Quote.Categories.OrderBy(category => category.Name)) { %>
|
<% foreach (var category in Model.Quote.Categories.OrderBy(category => category.Name)) { %>
|
||||||
<li><%= Html.ActionLink(category.Name, "browse", "Quote", new { qualifiers = "category/" + category.Id }, new { title = string.Format("browse quotes categorized as \"{0}\"", category.Name) })%></li>
|
<li><%= Html.ActionLink(category.Name, "Browse", "Quote", new { qualifiers = "category/" + category.Id }, new { title = string.Format("browse quotes categorized as \"{0}\"", category.Name) })%></li>
|
||||||
<% } %>
|
<% } %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,12 +35,12 @@
|
|||||||
<div id="footer">
|
<div id="footer">
|
||||||
<p>
|
<p>
|
||||||
© <%= DateTime.UtcNow.Year %> <a href="http://tommymontgomery.com/" title="Who is this man?">Tommy Montgomery</a><br />
|
© <%= DateTime.UtcNow.Year %> <a href="http://tommymontgomery.com/" title="Who is this man?">Tommy Montgomery</a><br />
|
||||||
<%= Html.ActionLink("about", "about", "home") %> |
|
<%= Html.ActionLink("about", "About", "Home") %> |
|
||||||
<%= Html.ActionLink("credits", "about", "home", null, null, "credits", null, null) %> |
|
<%= Html.ActionLink("credits", "About", "Home", null, null, "credits", null, null) %> |
|
||||||
<% if (!Request.IsAuthenticated) { %>
|
<% if (!Request.IsAuthenticated) { %>
|
||||||
<a href="#" id="login-link">login</a>
|
<a href="#" id="login-link">login</a>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
<%= Html.ActionLink("logout", "logout", "home", new { redirectUrl = Request.Path }, null)%>
|
<%= Html.ActionLink("logout", "Logout", "Home", new { redirectUrl = Request.Path }, null)%>
|
||||||
<% } %>
|
<% } %>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<container>
|
<container>
|
||||||
<extensions>
|
<extensions>
|
||||||
<add type="VideoGameQuotes.Web.Configuration.EnableLogging, VideoGameQuotes.Web"/>
|
<add type="VideoGameQuotes.Web.Configuration.EnableLogging, VideoGameQuotes.Web"/>
|
||||||
<!--<add type="Portoa.Web.Unity.LogAllMethodCalls, Portoa.Web"/>-->
|
<add type="Portoa.Web.Unity.LogAllMethodCalls, Portoa.Web"/>
|
||||||
<add type="VideoGameQuotes.Web.Configuration.EnableSearchWithLucene, VideoGameQuotes.Web"/>
|
<add type="VideoGameQuotes.Web.Configuration.EnableSearchWithLucene, VideoGameQuotes.Web"/>
|
||||||
</extensions>
|
</extensions>
|
||||||
</container>
|
</container>
|
||||||
|
Loading…
Reference in New Issue
Block a user