* compressed javascript
* renamed css file * removed copypaste code for js includes * added pdn files * changed unused images/javascript build type from Content to None
This commit is contained in:
parent
26352fb745
commit
25172d14a3
BIN
Lib/EcmaScript.NET.modified.dll
Normal file
BIN
Lib/EcmaScript.NET.modified.dll
Normal file
Binary file not shown.
BIN
Lib/Yahoo.Yui.Compressor.dll
Normal file
BIN
Lib/Yahoo.Yui.Compressor.dll
Normal file
Binary file not shown.
52
Lib/compressjs.targets
Normal file
52
Lib/compressjs.targets
Normal file
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<UsingTask TaskName="CompressorTask" AssemblyFile="Yahoo.Yui.Compressor.dll" />
|
||||
|
||||
<ItemGroup>
|
||||
<Core Include="media\js\jquery.cookie.js" />
|
||||
<Core Include="media\js\jquery.center.js" />
|
||||
<Core Include="media\js\jquery.modelerrors.js" />
|
||||
<Core Include="media\js\jquery.refresh.js" />
|
||||
<Core Include="media\js\vgquotes.js" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<QuoteForm Include="media\js\quoteform.js" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Browse Include="media\js\browse.js" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="ConcatenateAndCompressJavaScript">
|
||||
<CompressorTask
|
||||
JavaScriptFiles="@(Core)"
|
||||
ObfuscateJavaScript="True"
|
||||
PreserveAllSemicolons="False"
|
||||
DisableOptimizations="Nope"
|
||||
DeleteJavaScriptFiles="False"
|
||||
JavaScriptOutputFile="..\VideoGameQuotes.Web\media\js\vgquotes.compressed.js"
|
||||
LoggingType="ALittleBit"
|
||||
/>
|
||||
|
||||
<CompressorTask
|
||||
JavaScriptFiles="@(QuoteForm)"
|
||||
ObfuscateJavaScript="True"
|
||||
PreserveAllSemicolons="False"
|
||||
DisableOptimizations="Nope"
|
||||
DeleteJavaScriptFiles="False"
|
||||
JavaScriptOutputFile="..\VideoGameQuotes.Web\media\js\quoteform.compressed.js"
|
||||
LoggingType="ALittleBit"
|
||||
/>
|
||||
|
||||
<CompressorTask
|
||||
JavaScriptFiles="@(Browse)"
|
||||
ObfuscateJavaScript="True"
|
||||
PreserveAllSemicolons="False"
|
||||
DisableOptimizations="Nope"
|
||||
DeleteJavaScriptFiles="False"
|
||||
JavaScriptOutputFile="..\VideoGameQuotes.Web\media\js\browse.compressed.js"
|
||||
LoggingType="ALittleBit"
|
||||
/>
|
||||
</Target>
|
||||
</Project>
|
@ -43,7 +43,7 @@ namespace VideoGameQuotes.Web.Configuration {
|
||||
.Configure<Interception>()
|
||||
.AddPolicy("UpdateSearchIndexPolicy")
|
||||
.AddCallHandler<UpdateSearchIndexCallHandler>()
|
||||
.AddMatchingRule<QuoteUpdatedMatchingRule>();
|
||||
.AddMatchingRule(new QuoteUpdatedMatchingRule());
|
||||
}
|
||||
|
||||
#region lucene-related factories
|
||||
@ -61,7 +61,7 @@ namespace VideoGameQuotes.Web.Configuration {
|
||||
}
|
||||
#endregion
|
||||
|
||||
public class QuoteUpdatedMatchingRule : IMatchingRule {
|
||||
private class QuoteUpdatedMatchingRule : IMatchingRule {
|
||||
private static readonly MethodBase saveMethod = typeof(IRepository<Quote, int>).GetMethod("Save", new[] { typeof(Quote) });
|
||||
|
||||
public bool Matches(MethodBase member) {
|
||||
|
@ -2,7 +2,7 @@ using System.ComponentModel.DataAnnotations;
|
||||
using Portoa.Validation.DataAnnotations;
|
||||
|
||||
namespace VideoGameQuotes.Web.Models {
|
||||
public class ContactModel {
|
||||
public class ContactModel : ICaptchaModel {
|
||||
[Required]
|
||||
public string Name { get; set; }
|
||||
[Email]
|
||||
|
19
Src/VideoGameQuotes.Web/Models/EditQuoteModel.cs
Normal file
19
Src/VideoGameQuotes.Web/Models/EditQuoteModel.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using VideoGameQuotes.Api;
|
||||
|
||||
namespace VideoGameQuotes.Web.Models {
|
||||
public class EditQuoteModel : EditQuoteModelBase {
|
||||
public EditQuoteModel(Quote quote) {
|
||||
QuoteId = quote.Id;
|
||||
Flags = quote.Flags.ToList();
|
||||
QuoteText = quote.Text;
|
||||
CategoryIds = quote.Categories.Select(category => category.Id).ToList();
|
||||
GameId = quote.Game.Id;
|
||||
ActionName = "Edit";
|
||||
}
|
||||
|
||||
public int QuoteId { get; set; }
|
||||
public List<QuoteFlag> Flags { get; set; }
|
||||
}
|
||||
}
|
@ -5,31 +5,9 @@ using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using JetBrains.Annotations;
|
||||
using Portoa.Validation.DataAnnotations;
|
||||
using VideoGameQuotes.Api;
|
||||
|
||||
namespace VideoGameQuotes.Web.Models {
|
||||
|
||||
public class SubmitQuoteModel : EditQuoteModelBase {
|
||||
public string CaptchaAnswer { get; set; }
|
||||
public string HashedCaptchaAnswer { get; set; }
|
||||
public string UnhashedCaptchaAnswer { get; set; }
|
||||
}
|
||||
|
||||
public class EditQuoteModel : EditQuoteModelBase {
|
||||
public EditQuoteModel(Quote quote) {
|
||||
QuoteId = quote.Id;
|
||||
Flags = quote.Flags.ToList();
|
||||
QuoteText = quote.Text;
|
||||
CategoryIds = quote.Categories.Select(category => category.Id).ToList();
|
||||
GameId = quote.Game.Id;
|
||||
ActionName = "Edit";
|
||||
}
|
||||
|
||||
public int QuoteId { get; set; }
|
||||
public List<QuoteFlag> Flags { get; set; }
|
||||
}
|
||||
|
||||
public abstract class EditQuoteModelBase {
|
||||
protected EditQuoteModelBase() {
|
||||
ControllerName = "quote";
|
||||
|
7
Src/VideoGameQuotes.Web/Models/ICaptchaModel.cs
Normal file
7
Src/VideoGameQuotes.Web/Models/ICaptchaModel.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace VideoGameQuotes.Web.Models {
|
||||
public interface ICaptchaModel {
|
||||
string CaptchaAnswer { get; set; }
|
||||
string HashedCaptchaAnswer { get; set; }
|
||||
string UnhashedCaptchaAnswer { get; set; }
|
||||
}
|
||||
}
|
7
Src/VideoGameQuotes.Web/Models/SubmitQuoteModel.cs
Normal file
7
Src/VideoGameQuotes.Web/Models/SubmitQuoteModel.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace VideoGameQuotes.Web.Models {
|
||||
public class SubmitQuoteModel : EditQuoteModelBase, ICaptchaModel {
|
||||
public string CaptchaAnswer { get; set; }
|
||||
public string HashedCaptchaAnswer { get; set; }
|
||||
public string UnhashedCaptchaAnswer { get; set; }
|
||||
}
|
||||
}
|
@ -97,6 +97,9 @@
|
||||
<Compile Include="Models\EditCategoryModel.cs" />
|
||||
<Compile Include="Models\EditGameModel.cs" />
|
||||
<Compile Include="Models\EditPublisherModel.cs" />
|
||||
<Compile Include="Models\EditQuoteModel.cs" />
|
||||
<Compile Include="Models\ICaptchaModel.cs" />
|
||||
<Compile Include="Models\SubmitQuoteModel.cs" />
|
||||
<Compile Include="Search\QuoteDocumentHandler.cs" />
|
||||
<Compile Include="Search\SearchService.cs" />
|
||||
<Compile Include="Services\CategoryService.cs" />
|
||||
@ -144,27 +147,36 @@
|
||||
<Content Include="hibernate.cfg.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="media\css\global.css" />
|
||||
<Content Include="media\images\accept.png" />
|
||||
<Content Include="media\images\add.png" />
|
||||
<Content Include="media\images\cancel.png" />
|
||||
<Content Include="media\images\delete.png" />
|
||||
<Content Include="media\images\error.png" />
|
||||
<Content Include="media\css\vgquotes.css" />
|
||||
<None Include="media\images\accept.png" />
|
||||
<None Include="media\images\add.png" />
|
||||
<None Include="media\images\cancel.png" />
|
||||
<None Include="media\images\delete.png" />
|
||||
<None Include="media\images\error.png" />
|
||||
<Content Include="media\images\external.png" />
|
||||
<Content Include="media\images\favicon.png" />
|
||||
<Content Include="media\images\flag_red.png" />
|
||||
<None Include="media\images\flag_red.png" />
|
||||
<Content Include="media\images\forbidden.png" />
|
||||
<Content Include="media\images\link.png" />
|
||||
<None Include="media\images\link.png" />
|
||||
<Content Include="media\images\loading.gif" />
|
||||
<Content Include="media\images\notfound.png" />
|
||||
<Content Include="media\images\pencil.png" />
|
||||
<Content Include="media\images\search.png" />
|
||||
<None Include="media\images\pencil.png" />
|
||||
<None Include="media\images\search.png" />
|
||||
<Content Include="media\images\sprite.png" />
|
||||
<Content Include="media\images\unknown.png" />
|
||||
<Content Include="media\images\vgquotes.png" />
|
||||
<Content Include="media\js\browse.js" />
|
||||
<Content Include="media\js\quoteform.js" />
|
||||
<Content Include="media\js\vgquotes.js" />
|
||||
<None Include="media\images\vgquotes.png" />
|
||||
<None Include="media\images\error.pdn" />
|
||||
<None Include="media\images\vgquotes.pdn" />
|
||||
<None Include="media\js\browse.js" />
|
||||
<None Include="media\js\jquery.center.js" />
|
||||
<None Include="media\js\jquery.cookie.js" />
|
||||
<None Include="media\js\jquery.modelerrors.js" />
|
||||
<None Include="media\js\jquery.refresh.js" />
|
||||
<None Include="media\js\quoteform.js" />
|
||||
<None Include="media\js\vgquotes.js" />
|
||||
<Content Include="media\js\browse.compressed.js" />
|
||||
<Content Include="media\js\quoteform.compressed.js" />
|
||||
<Content Include="media\js\vgquotes.compressed.js" />
|
||||
<Content Include="Views\Admin\Create.aspx" />
|
||||
<Content Include="Views\Admin\CreateAdminSuccess.aspx" />
|
||||
<Content Include="Views\Admin\FlaggedQuote.ascx" />
|
||||
@ -177,7 +189,9 @@
|
||||
<Content Include="Views\Home\About.aspx" />
|
||||
<Content Include="Views\Home\Contact.aspx" />
|
||||
<Content Include="Views\Home\ContactSuccess.aspx" />
|
||||
<Content Include="Views\Shared\CaptchaJavaScript.ascx" />
|
||||
<Content Include="Views\Quote\PagingMenu.ascx" />
|
||||
<Content Include="Views\Quote\QuoteFormJavaScript.ascx" />
|
||||
<Content Include="Views\Quote\QuoteOfTheDay.ascx" />
|
||||
<Content Include="Views\Shared\BadPaging.aspx" />
|
||||
<Content Include="Views\Quote\Best.aspx" />
|
||||
@ -221,10 +235,7 @@
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target> -->
|
||||
<Import Project="..\..\Lib\compressjs.targets" />
|
||||
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
|
||||
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
|
||||
</Target>
|
||||
|
@ -44,27 +44,5 @@
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="DeferrableScripts" runat="server">
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
$(document).ready(function() {
|
||||
$("#captcha-question").click(function() {
|
||||
if ($("#captcha-dialog").length) {
|
||||
$("#captcha-dialog").remove();
|
||||
} else {
|
||||
$("<div/>")
|
||||
.attr("id", "captcha-dialog")
|
||||
.addClass("dialog")
|
||||
.css({ top: "20px" })
|
||||
.append(
|
||||
$("<span>The answer is: <strong></strong></span>")
|
||||
.css({ "white-space": "nowrap" })
|
||||
.find("strong")
|
||||
.text("<%= Model.UnhashedCaptchaAnswer %>")
|
||||
.end()
|
||||
).insertAfter($("#captcha-question"));
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
//]]></script>
|
||||
<% Html.RenderPartial("CaptchaJavaScript", Model); %>
|
||||
</asp:Content>
|
@ -22,5 +22,5 @@
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="DeferrableScripts" runat="server">
|
||||
<script type="text/javascript" src="/media/js/browse.js"></script>
|
||||
<script type="text/javascript" src="/media/js/browse.compressed.js"></script>
|
||||
</asp:Content>
|
||||
|
@ -7,5 +7,5 @@
|
||||
<% Html.RenderPartial("EditQuoteForm", Model); %>
|
||||
</asp:Content>
|
||||
<asp:Content runat="server" ID="DeferrableScripts" ContentPlaceHolderID="DeferrableScripts">
|
||||
<script type="text/javascript" src="/media/js/quoteform.js"></script>
|
||||
<% Html.RenderPartial("QuoteFormJavaScript"); %>
|
||||
</asp:Content>
|
@ -0,0 +1,2 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
|
||||
<script type="text/javascript" src="/media/js/quoteform.compressed.js"></script>
|
@ -7,29 +7,6 @@
|
||||
<% Html.RenderPartial("EditQuoteForm", Model); %>
|
||||
</asp:Content>
|
||||
<asp:Content runat="server" ID="DeferrableScripts" ContentPlaceHolderID="DeferrableScripts">
|
||||
<script type="text/javascript" src="/media/js/quoteform.js"></script>
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
$(document).ready(function() {
|
||||
$("#captcha-question").click(function() {
|
||||
if ($("#captcha-dialog").length) {
|
||||
$("#captcha-dialog").remove();
|
||||
$(this).text("[click for correct answer]");
|
||||
} else {
|
||||
$("<div/>")
|
||||
.attr("id", "captcha-dialog")
|
||||
.addClass("dialog")
|
||||
.css({ top: "20px" })
|
||||
.append(
|
||||
$("<span/>")
|
||||
.css("white-space", "nowrap")
|
||||
.text("<%= Model.UnhashedCaptchaAnswer %>")
|
||||
).insertAfter($("#captcha-question"));
|
||||
|
||||
$(this).text("[click to hide]");
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
//]]></script>
|
||||
<% Html.RenderPartial("QuoteFormJavaScript"); %>
|
||||
<% Html.RenderPartial("CaptchaJavaScript", Model); %>
|
||||
</asp:Content>
|
25
Src/VideoGameQuotes.Web/Views/Shared/CaptchaJavaScript.ascx
Normal file
25
Src/VideoGameQuotes.Web/Views/Shared/CaptchaJavaScript.ascx
Normal file
@ -0,0 +1,25 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<VideoGameQuotes.Web.Models.ICaptchaModel>" %>
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
$(document).ready(function() {
|
||||
$("#captcha-question").click(function() {
|
||||
if ($("#captcha-dialog").length) {
|
||||
$("#captcha-dialog").remove();
|
||||
$(this).text("[click for correct answer]");
|
||||
} else {
|
||||
$("<div/>")
|
||||
.attr("id", "captcha-dialog")
|
||||
.addClass("dialog")
|
||||
.css({ top: "20px" })
|
||||
.append(
|
||||
$("<span/>")
|
||||
.css("white-space", "nowrap")
|
||||
.text("<%= Model.UnhashedCaptchaAnswer %>")
|
||||
).insertAfter($("#captcha-question"));
|
||||
|
||||
$(this).text("[click to hide]");
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
//]]></script>
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<title>Video Game Quotes :: <asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="/media/css/global.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/media/css/vgquotes.css" />
|
||||
<link rel="shortcut icon" type="image/png" href="/media/images/favicon.png" />
|
||||
</head>
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="/media/js/vgquotes.js"></script>
|
||||
<script type="text/javascript" src="/media/js/vgquotes.compressed.js"></script>
|
||||
<asp:ContentPlaceHolder ID="DeferrableScripts" runat="server" />
|
||||
</body>
|
||||
</html>
|
||||
|
@ -143,7 +143,7 @@ ul.menu {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
ul.menu li {
|
||||
.menu li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
BIN
Src/VideoGameQuotes.Web/media/images/error.pdn
Normal file
BIN
Src/VideoGameQuotes.Web/media/images/error.pdn
Normal file
Binary file not shown.
BIN
Src/VideoGameQuotes.Web/media/images/vgquotes.pdn
Normal file
BIN
Src/VideoGameQuotes.Web/media/images/vgquotes.pdn
Normal file
Binary file not shown.
1
Src/VideoGameQuotes.Web/media/js/browse.compressed.js
Normal file
1
Src/VideoGameQuotes.Web/media/js/browse.compressed.js
Normal file
@ -0,0 +1 @@
|
||||
(function(c,a,b){c(document).ready(function(){var i=c("#browse-default-menu");var k=c("#browse-default-container");var f=c("#browse-default-content");var d={game:[],system:[],publisher:[],category:[]};var e=function(l,n){var m=c("<ol/>"),o=c("<li/>");c.each(l,function(){m.append(o.clone().append(n(this)))});f.append(m)};var j=function(m,l){return function(){var o=function(){i.hide();k.show();e(d[m],l)};if(d[m].length===0){var n=c(this);c.ajax("/api/"+m+"/all",{data:{sort:"alphabetical"},success:function(r,p,q){if(r.Error!==null){alert(r.Error);return}d[m]=r.Data.records;o()},beforeSend:function(){n.toggleClass("loading-icon")},complete:function(){n.toggleClass("loading-icon")}})}else{o()}return false}};var h=function(m){var l=c("<a/>");return function(n,o){return l.clone().attr("href","/browse/"+m+"/"+n.Id).text(n.Name)}};var g=function(){var l=c("<a/>");return function(m,n){return l.clone().attr({href:"/browse/system/"+m.Id,title:m.Name}).text(m.Abbreviation)}}();c("#show-default-menu").click(function(){f.empty();k.hide();i.show();return false});c("#browse-game").click(j("game",h("game")));c("#browse-system").click(j("system",g));c("#browse-category").click(j("category",h("category")));c("#browse-publisher").click(j("publisher",h("publisher")))})}(jQuery,window));
|
8
Src/VideoGameQuotes.Web/media/js/jquery.center.js
Normal file
8
Src/VideoGameQuotes.Web/media/js/jquery.center.js
Normal file
@ -0,0 +1,8 @@
|
||||
(function($){
|
||||
$.fn.center = function() {
|
||||
var fixed = this.css("position") === "fixed";
|
||||
this.css("top", ($(window).height() - this.height()) / 2 + (fixed ? 0 : $(window).scrollTop()) + "px");
|
||||
this.css("left", ($(window).width() - this.width()) / 2 + (fixed ? 0 : $(window).scrollLeft()) + "px");
|
||||
return this;
|
||||
};
|
||||
}(jQuery));
|
52
Src/VideoGameQuotes.Web/media/js/jquery.cookie.js
Normal file
52
Src/VideoGameQuotes.Web/media/js/jquery.cookie.js
Normal file
@ -0,0 +1,52 @@
|
||||
(function($, window){
|
||||
/**
|
||||
* Cookie plugin
|
||||
*
|
||||
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
$.cookie = function(name, value, options) {
|
||||
if (typeof value != 'undefined') { // name and value given, set cookie
|
||||
options = options || {};
|
||||
if (value === null) {
|
||||
value = '';
|
||||
options.expires = -1;
|
||||
}
|
||||
var expires = '';
|
||||
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
|
||||
var date;
|
||||
if (typeof options.expires == 'number') {
|
||||
date = new Date();
|
||||
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
|
||||
} else {
|
||||
date = options.expires;
|
||||
}
|
||||
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
|
||||
}
|
||||
// CAUTION: Needed to parenthesize options.path and options.domain
|
||||
// in the following expressions, otherwise they evaluate to undefined
|
||||
// in the packed version for some reason...
|
||||
var path = options.path ? '; path=' + (options.path) : '';
|
||||
var domain = options.domain ? '; domain=' + (options.domain) : '';
|
||||
var secure = options.secure ? '; secure' : '';
|
||||
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
|
||||
} else { // only name given, get cookie
|
||||
var cookieValue = null;
|
||||
if (document.cookie && document.cookie != '') {
|
||||
var cookies = document.cookie.split(';');
|
||||
for (var i = 0; i < cookies.length; i++) {
|
||||
var cookie = $.trim(cookies[i]);
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) == (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
};
|
||||
|
||||
}(jQuery, window));
|
39
Src/VideoGameQuotes.Web/media/js/jquery.modelerrors.js
Normal file
39
Src/VideoGameQuotes.Web/media/js/jquery.modelerrors.js
Normal file
@ -0,0 +1,39 @@
|
||||
(function($){
|
||||
$.fn.applyModelErrors = function(errorMessage, errorData) {
|
||||
var $this = this;
|
||||
|
||||
if (errorMessage !== null) {
|
||||
$this.find(".error-summary").first().text(errorMessage).show();
|
||||
}
|
||||
|
||||
$.each(errorData, function(inputFieldName, value) {
|
||||
var $input = $this.find("input[name='" + inputFieldName + "']");
|
||||
if ($input.length > 1) {
|
||||
$input = $("#" + inputFieldName);
|
||||
}
|
||||
|
||||
if ($input.length === 1) {
|
||||
if ($input[0].localName === "INPUT") {
|
||||
$input.addClass("input-validation-error");
|
||||
}
|
||||
|
||||
$("<span/>")
|
||||
.addClass("field-validation-error")
|
||||
.append($("<span/>").addClass("error-icon"))
|
||||
.append($("<span/>").text(value))
|
||||
.insertAfter($input);
|
||||
}
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.clearModelErrors = function() {
|
||||
this
|
||||
.find(".field-validation-error").remove().end()
|
||||
.find(".input-validation-error").removeClass("input-validation-error").end()
|
||||
.find(".error-summary").empty().hide();
|
||||
|
||||
return this;
|
||||
};
|
||||
}(jQuery));
|
32
Src/VideoGameQuotes.Web/media/js/jquery.refresh.js
Normal file
32
Src/VideoGameQuotes.Web/media/js/jquery.refresh.js
Normal file
@ -0,0 +1,32 @@
|
||||
/**
|
||||
* (c) 2010 Tommy Montgomery
|
||||
* http://tommymontgomery.com/stuff/snippets/javascript/javascript-refresh
|
||||
* Licensed under WTFPL: http://sam.zoy.org/wtfpl/COPYING
|
||||
*/
|
||||
(function($, window){
|
||||
var refreshCookie = "jquery.refresh.fragment";
|
||||
|
||||
var refresh = function() {
|
||||
var url = window.location.href;
|
||||
var fragmentPosition = url.lastIndexOf("#");
|
||||
if (fragmentPosition >= 0) {
|
||||
if (fragmentPosition !== url.length - 1) {
|
||||
$.cookie(refreshCookie, url.substring(fragmentPosition + 1)); //store the fragment in a cookie
|
||||
}
|
||||
url = url.substring(0, fragmentPosition);
|
||||
}
|
||||
|
||||
window.location.href = url;
|
||||
};
|
||||
|
||||
var applyFragmentFromCookie = function() {
|
||||
var fragment = $.cookie(refreshCookie);
|
||||
if (fragment !== null) {
|
||||
window.location.href += "#" + fragment;
|
||||
$.cookie(refreshCookie, null); //delete cookie
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(applyFragmentFromCookie);
|
||||
$.refresh = refresh;
|
||||
}(jQuery, window));
|
1
Src/VideoGameQuotes.Web/media/js/quoteform.compressed.js
Normal file
1
Src/VideoGameQuotes.Web/media/js/quoteform.compressed.js
Normal file
File diff suppressed because one or more lines are too long
1
Src/VideoGameQuotes.Web/media/js/vgquotes.compressed.js
Normal file
1
Src/VideoGameQuotes.Web/media/js/vgquotes.compressed.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,100 +1,4 @@
|
||||
(function($, window, undefined){
|
||||
|
||||
/**
|
||||
* Cookie plugin
|
||||
*
|
||||
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
$.cookie = function(name, value, options) {
|
||||
if (typeof value != 'undefined') { // name and value given, set cookie
|
||||
options = options || {};
|
||||
if (value === null) {
|
||||
value = '';
|
||||
options.expires = -1;
|
||||
}
|
||||
var expires = '';
|
||||
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
|
||||
var date;
|
||||
if (typeof options.expires == 'number') {
|
||||
date = new Date();
|
||||
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
|
||||
} else {
|
||||
date = options.expires;
|
||||
}
|
||||
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
|
||||
}
|
||||
// CAUTION: Needed to parenthesize options.path and options.domain
|
||||
// in the following expressions, otherwise they evaluate to undefined
|
||||
// in the packed version for some reason...
|
||||
var path = options.path ? '; path=' + (options.path) : '';
|
||||
var domain = options.domain ? '; domain=' + (options.domain) : '';
|
||||
var secure = options.secure ? '; secure' : '';
|
||||
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
|
||||
} else { // only name given, get cookie
|
||||
var cookieValue = null;
|
||||
if (document.cookie && document.cookie != '') {
|
||||
var cookies = document.cookie.split(';');
|
||||
for (var i = 0; i < cookies.length; i++) {
|
||||
var cookie = $.trim(cookies[i]);
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) == (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.center = function() {
|
||||
var fixed = this.css("position") === "fixed";
|
||||
this.css("top", ($(window).height() - this.height()) / 2 + (fixed ? 0 : $(window).scrollTop()) + "px");
|
||||
this.css("left", ($(window).width() - this.width()) / 2 + (fixed ? 0 : $(window).scrollLeft()) + "px");
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.applyModelErrors = function(errorMessage, errorData) {
|
||||
var $this = this;
|
||||
|
||||
if (errorMessage !== null) {
|
||||
$this.find(".error-summary").first().text(errorMessage).show();
|
||||
}
|
||||
|
||||
$.each(errorData, function(inputFieldName, value) {
|
||||
var $input = $this.find("input[name='" + inputFieldName + "']");
|
||||
if ($input.length > 1) {
|
||||
$input = $("#" + inputFieldName);
|
||||
}
|
||||
|
||||
if ($input.length === 1) {
|
||||
if ($input[0].localName === "INPUT") {
|
||||
$input.addClass("input-validation-error");
|
||||
}
|
||||
|
||||
$("<span/>")
|
||||
.addClass("field-validation-error")
|
||||
.append($("<span/>").addClass("error-icon"))
|
||||
.append($("<span/>").text(value))
|
||||
.insertAfter($input);
|
||||
}
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.clearModelErrors = function() {
|
||||
this
|
||||
.find(".field-validation-error").remove().end()
|
||||
.find(".input-validation-error").removeClass("input-validation-error").end()
|
||||
.find(".error-summary").empty().hide();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.vgquotes = function() {
|
||||
var ajaxCallback = function(type, callback) {
|
||||
return function(data) {
|
||||
@ -108,7 +12,6 @@
|
||||
};
|
||||
|
||||
return {
|
||||
refresh: function() { },
|
||||
parseDate: function(jsonDate) { return new Date(parseInt(jsonDate.substr(6))); },
|
||||
formatDate: function(date) { return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); },
|
||||
parseAndFormatDate: function(jsonDate) { return $.vgquotes.formatDate($.vgquotes.parseDate(jsonDate)); },
|
||||
@ -143,34 +46,6 @@
|
||||
};
|
||||
}();
|
||||
|
||||
(function(){
|
||||
var refreshCookie = "vgquotes.refreshFragment";
|
||||
|
||||
var refresh = function() {
|
||||
var url = window.location.href;
|
||||
var fragmentPosition = url.lastIndexOf("#");
|
||||
if (fragmentPosition >= 0) {
|
||||
if (fragmentPosition !== url.length - 1) {
|
||||
$.cookie(refreshCookie, url.substring(fragmentPosition + 1)); //store the fragment in a cookie
|
||||
}
|
||||
url = url.substring(0, fragmentPosition);
|
||||
}
|
||||
|
||||
window.location.href = url;
|
||||
};
|
||||
|
||||
var applyFragmentFromCookie = function() {
|
||||
var fragment = $.cookie(refreshCookie);
|
||||
if (fragment !== null) {
|
||||
window.location.href += "#" + fragment;
|
||||
$.cookie(refreshCookie, null); //delete cookie
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(applyFragmentFromCookie);
|
||||
$.vgquotes.refresh = refresh;
|
||||
}());
|
||||
|
||||
var setupSearch = function() {
|
||||
var submitSearch = function() {
|
||||
var searchQuery = $.trim($("#search-query").val());
|
||||
@ -352,7 +227,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
$.vgquotes.refresh();
|
||||
$.refresh();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -16,6 +16,8 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{4C702D70-7D2E-410D-A3C6-50598863E102}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
Lib\Antlr3.Runtime.dll = Lib\Antlr3.Runtime.dll
|
||||
Lib\compressjs.targets = Lib\compressjs.targets
|
||||
Lib\EcmaScript.NET.modified.dll = Lib\EcmaScript.NET.modified.dll
|
||||
Lib\Iesi.Collections.dll = Lib\Iesi.Collections.dll
|
||||
Lib\Iesi.Collections.xml = Lib\Iesi.Collections.xml
|
||||
Lib\LinFu.DynamicProxy.dll = Lib\LinFu.DynamicProxy.dll
|
||||
@ -52,6 +54,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{4C702D70-7D2
|
||||
Lib\Portoa.xml = Lib\Portoa.xml
|
||||
Lib\Remotion.Data.Linq.dll = Lib\Remotion.Data.Linq.dll
|
||||
Lib\UnityGenerics.dll = Lib\UnityGenerics.dll
|
||||
Lib\Yahoo.Yui.Compressor.dll = Lib\Yahoo.Yui.Compressor.dll
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
|
Loading…
Reference in New Issue
Block a user