parent
e8122685b2
commit
a2d4b59002
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<solution>
|
||||||
|
<add key="disableSourceControlIntegration" value="true" />
|
||||||
|
</solution>
|
||||||
|
</configuration>
|
Binary file not shown.
@ -0,0 +1,71 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
|
||||||
|
|
||||||
|
<!-- Windows specific commands -->
|
||||||
|
<NuGetToolsPath Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
|
||||||
|
<PackagesConfig Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
|
||||||
|
<PackagesDir Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
|
||||||
|
|
||||||
|
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
|
||||||
|
<NuGetToolsPath Condition=" '$(OS)' != 'Windows_NT'">$(SolutionDir).nuget</NuGetToolsPath>
|
||||||
|
<PackagesConfig Condition=" '$(OS)' != 'Windows_NT' ">packages.config</PackagesConfig>
|
||||||
|
<PackagesDir Condition=" '$(OS)' != 'Windows_NT'">$(SolutionDir)packages</PackagesDir>
|
||||||
|
|
||||||
|
<!-- NuGet command -->
|
||||||
|
<NuGetExePath>$(NuGetToolsPath)\nuget.exe</NuGetExePath>
|
||||||
|
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
|
||||||
|
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
|
||||||
|
|
||||||
|
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
|
||||||
|
|
||||||
|
<!-- Package sources used to restore packages. By default will used the registered sources under %APPDATA%\NuGet\NuGet.Config -->
|
||||||
|
<PackageSources>""</PackageSources>
|
||||||
|
|
||||||
|
<!-- Enable the restore command to run before builds -->
|
||||||
|
<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages>
|
||||||
|
|
||||||
|
<!-- Property that enables building a package from a project -->
|
||||||
|
<BuildPackage Condition="$(BuildPackage) == ''">false</BuildPackage>
|
||||||
|
|
||||||
|
<!-- Commands -->
|
||||||
|
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source $(PackageSources) -o "$(PackagesDir)"</RestoreCommand>
|
||||||
|
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>
|
||||||
|
|
||||||
|
<!-- Make the build depend on restore packages -->
|
||||||
|
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
|
||||||
|
RestorePackages;
|
||||||
|
$(BuildDependsOn);
|
||||||
|
</BuildDependsOn>
|
||||||
|
|
||||||
|
<!-- Make the build depend on restore packages -->
|
||||||
|
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
|
||||||
|
$(BuildDependsOn);
|
||||||
|
BuildPackage;
|
||||||
|
</BuildDependsOn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="CheckPrerequisites">
|
||||||
|
<!-- Raise an error if we're unable to locate nuget.exe -->
|
||||||
|
<Error Condition="!Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
|
||||||
|
<Exec Command="$(RestoreCommand)"
|
||||||
|
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
|
||||||
|
|
||||||
|
<Exec Command="$(RestoreCommand)"
|
||||||
|
LogStandardErrorAsError="true"
|
||||||
|
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
|
||||||
|
<Exec Command="$(BuildCommand)"
|
||||||
|
Condition=" '$(OS)' != 'Windows_NT' " />
|
||||||
|
|
||||||
|
<Exec Command="$(BuildCommand)"
|
||||||
|
LogStandardErrorAsError="true"
|
||||||
|
Condition=" '$(OS)' == 'Windows_NT' " />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Exceptron.Driver" version="0.1.0.4" />
|
<package id="Exceptron.Driver" version="0.1.0.5" />
|
||||||
<package id="Newtonsoft.Json" version="4.5.4" />
|
<package id="Newtonsoft.Json" version="4.5.4" />
|
||||||
<package id="NLog" version="2.0.0.2000" />
|
<package id="NLog" version="2.0.0.2000" />
|
||||||
</packages>
|
</packages>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Exceptron.Driver
|
||||||
|
{
|
||||||
|
public class ExceptionData
|
||||||
|
{
|
||||||
|
public Exception Exception { get; set; }
|
||||||
|
public string Location { get; set; }
|
||||||
|
public string UserId { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace Exceptron.Driver
|
||||||
|
{
|
||||||
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||||
|
public class ExceptionReport
|
||||||
|
{
|
||||||
|
public string AppId { get; set; }
|
||||||
|
public string AppVersion { get; set; }
|
||||||
|
public string Uid { get; set; }
|
||||||
|
public string ExceptionType { get; set; }
|
||||||
|
public string ExceptionMessage { get; set; }
|
||||||
|
public List<Frame> StackTrace { get; set; }
|
||||||
|
public string Location { get; set; }
|
||||||
|
public string Enviroment { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
|
||||||
|
public string DriverName { get; set; }
|
||||||
|
public string DriverVersion { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
namespace Exceptron.Driver
|
||||||
|
{
|
||||||
|
public class Frame
|
||||||
|
{
|
||||||
|
public int LineNumber { get; set; }
|
||||||
|
public string FileName { get; set; }
|
||||||
|
public string Method { get; set; }
|
||||||
|
public string Class { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,408 @@
|
|||||||
|
//http://fastjson.codeplex.com/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Exceptron.Driver.fastJSON
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// This class encodes and decodes JSON strings.
|
||||||
|
/// Spec. details, see http://www.json.org/
|
||||||
|
///
|
||||||
|
/// JSON uses Arrays and Objects. These correspond here to the datatypes ArrayList and Hashtable.
|
||||||
|
/// All numbers are parsed to doubles.
|
||||||
|
/// </summary>
|
||||||
|
internal class JsonParser
|
||||||
|
{
|
||||||
|
enum Token
|
||||||
|
{
|
||||||
|
None = -1, // Used to denote no Lookahead available
|
||||||
|
Curly_Open,
|
||||||
|
Curly_Close,
|
||||||
|
Squared_Open,
|
||||||
|
Squared_Close,
|
||||||
|
Colon,
|
||||||
|
Comma,
|
||||||
|
String,
|
||||||
|
Number,
|
||||||
|
True,
|
||||||
|
False,
|
||||||
|
Null
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly char[] json;
|
||||||
|
readonly StringBuilder s = new StringBuilder();
|
||||||
|
Token lookAheadToken = Token.None;
|
||||||
|
int index;
|
||||||
|
|
||||||
|
internal JsonParser(string json)
|
||||||
|
{
|
||||||
|
this.json = json.ToCharArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public object Decode()
|
||||||
|
{
|
||||||
|
return ParseValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dictionary<string, object> ParseObject()
|
||||||
|
{
|
||||||
|
Dictionary<string, object> table = new Dictionary<string, object>();
|
||||||
|
|
||||||
|
ConsumeToken(); // {
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
switch (LookAhead())
|
||||||
|
{
|
||||||
|
|
||||||
|
case Token.Comma:
|
||||||
|
ConsumeToken();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Token.Curly_Close:
|
||||||
|
ConsumeToken();
|
||||||
|
return table;
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
|
||||||
|
// name
|
||||||
|
string name = ParseString();
|
||||||
|
|
||||||
|
// :
|
||||||
|
if (NextToken() != Token.Colon)
|
||||||
|
{
|
||||||
|
throw new Exception("Expected colon at index " + index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// value
|
||||||
|
object value = ParseValue();
|
||||||
|
|
||||||
|
table[name] = value;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if SILVERLIGHT
|
||||||
|
private List<object> ParseArray()
|
||||||
|
{
|
||||||
|
List<object> array = new List<object>();
|
||||||
|
#else
|
||||||
|
private ArrayList ParseArray()
|
||||||
|
{
|
||||||
|
ArrayList array = new ArrayList();
|
||||||
|
#endif
|
||||||
|
ConsumeToken(); // [
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
switch (LookAhead())
|
||||||
|
{
|
||||||
|
|
||||||
|
case Token.Comma:
|
||||||
|
ConsumeToken();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Token.Squared_Close:
|
||||||
|
ConsumeToken();
|
||||||
|
return array;
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
array.Add(ParseValue());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private object ParseValue()
|
||||||
|
{
|
||||||
|
switch (LookAhead())
|
||||||
|
{
|
||||||
|
case Token.Number:
|
||||||
|
return ParseNumber();
|
||||||
|
|
||||||
|
case Token.String:
|
||||||
|
return ParseString();
|
||||||
|
|
||||||
|
case Token.Curly_Open:
|
||||||
|
return ParseObject();
|
||||||
|
|
||||||
|
case Token.Squared_Open:
|
||||||
|
return ParseArray();
|
||||||
|
|
||||||
|
case Token.True:
|
||||||
|
ConsumeToken();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case Token.False:
|
||||||
|
ConsumeToken();
|
||||||
|
return false;
|
||||||
|
|
||||||
|
case Token.Null:
|
||||||
|
ConsumeToken();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Exception("Unrecognized token at index" + index);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string ParseString()
|
||||||
|
{
|
||||||
|
ConsumeToken(); // "
|
||||||
|
|
||||||
|
s.Length = 0;
|
||||||
|
|
||||||
|
int runIndex = -1;
|
||||||
|
|
||||||
|
while (index < json.Length)
|
||||||
|
{
|
||||||
|
var c = json[index++];
|
||||||
|
|
||||||
|
if (c == '"')
|
||||||
|
{
|
||||||
|
if (runIndex != -1)
|
||||||
|
{
|
||||||
|
if (s.Length == 0)
|
||||||
|
return new string(json, runIndex, index - runIndex - 1);
|
||||||
|
|
||||||
|
s.Append(json, runIndex, index - runIndex - 1);
|
||||||
|
}
|
||||||
|
return s.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c != '\\')
|
||||||
|
{
|
||||||
|
if (runIndex == -1)
|
||||||
|
runIndex = index - 1;
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index == json.Length) break;
|
||||||
|
|
||||||
|
if (runIndex != -1)
|
||||||
|
{
|
||||||
|
s.Append(json, runIndex, index - runIndex - 1);
|
||||||
|
runIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (json[index++])
|
||||||
|
{
|
||||||
|
case '"':
|
||||||
|
s.Append('"');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\\':
|
||||||
|
s.Append('\\');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '/':
|
||||||
|
s.Append('/');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'b':
|
||||||
|
s.Append('\b');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
s.Append('\f');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
s.Append('\n');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'r':
|
||||||
|
s.Append('\r');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
s.Append('\t');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'u':
|
||||||
|
{
|
||||||
|
int remainingLength = json.Length - index;
|
||||||
|
if (remainingLength < 4) break;
|
||||||
|
|
||||||
|
// parse the 32 bit hex into an integer codepoint
|
||||||
|
uint codePoint = ParseUnicode(json[index], json[index + 1], json[index + 2], json[index + 3]);
|
||||||
|
s.Append((char)codePoint);
|
||||||
|
|
||||||
|
// skip 4 chars
|
||||||
|
index += 4;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Exception("Unexpectedly reached end of string");
|
||||||
|
}
|
||||||
|
|
||||||
|
private uint ParseSingleChar(char c1, uint multipliyer)
|
||||||
|
{
|
||||||
|
uint p1 = 0;
|
||||||
|
if (c1 >= '0' && c1 <= '9')
|
||||||
|
p1 = (uint)(c1 - '0') * multipliyer;
|
||||||
|
else if (c1 >= 'A' && c1 <= 'F')
|
||||||
|
p1 = (uint)((c1 - 'A') + 10) * multipliyer;
|
||||||
|
else if (c1 >= 'a' && c1 <= 'f')
|
||||||
|
p1 = (uint)((c1 - 'a') + 10) * multipliyer;
|
||||||
|
return p1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private uint ParseUnicode(char c1, char c2, char c3, char c4)
|
||||||
|
{
|
||||||
|
uint p1 = ParseSingleChar(c1, 0x1000);
|
||||||
|
uint p2 = ParseSingleChar(c2, 0x100);
|
||||||
|
uint p3 = ParseSingleChar(c3, 0x10);
|
||||||
|
uint p4 = ParseSingleChar(c4, 1);
|
||||||
|
|
||||||
|
return p1 + p2 + p3 + p4;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string ParseNumber()
|
||||||
|
{
|
||||||
|
ConsumeToken();
|
||||||
|
|
||||||
|
// Need to start back one place because the first digit is also a token and would have been consumed
|
||||||
|
var startIndex = index - 1;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
var c = json[index];
|
||||||
|
|
||||||
|
if ((c >= '0' && c <= '9') || c == '.' || c == '-' || c == '+' || c == 'e' || c == 'E')
|
||||||
|
{
|
||||||
|
if (++index == json.Length) throw new Exception("Unexpected end of string whilst parsing number");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
} while (true);
|
||||||
|
|
||||||
|
return new string(json, startIndex, index - startIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Token LookAhead()
|
||||||
|
{
|
||||||
|
if (lookAheadToken != Token.None) return lookAheadToken;
|
||||||
|
|
||||||
|
return lookAheadToken = NextTokenCore();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConsumeToken()
|
||||||
|
{
|
||||||
|
lookAheadToken = Token.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Token NextToken()
|
||||||
|
{
|
||||||
|
var result = lookAheadToken != Token.None ? lookAheadToken : NextTokenCore();
|
||||||
|
|
||||||
|
lookAheadToken = Token.None;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Token NextTokenCore()
|
||||||
|
{
|
||||||
|
char c;
|
||||||
|
|
||||||
|
// Skip past whitespace
|
||||||
|
do
|
||||||
|
{
|
||||||
|
c = json[index];
|
||||||
|
|
||||||
|
if (c > ' ') break;
|
||||||
|
if (c != ' ' && c != '\t' && c != '\n' && c != '\r') break;
|
||||||
|
|
||||||
|
} while (++index < json.Length);
|
||||||
|
|
||||||
|
if (index == json.Length)
|
||||||
|
{
|
||||||
|
throw new Exception("Reached end of string unexpectedly");
|
||||||
|
}
|
||||||
|
|
||||||
|
c = json[index];
|
||||||
|
|
||||||
|
index++;
|
||||||
|
|
||||||
|
//if (c >= '0' && c <= '9')
|
||||||
|
// return Token.Number;
|
||||||
|
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case '{':
|
||||||
|
return Token.Curly_Open;
|
||||||
|
|
||||||
|
case '}':
|
||||||
|
return Token.Curly_Close;
|
||||||
|
|
||||||
|
case '[':
|
||||||
|
return Token.Squared_Open;
|
||||||
|
|
||||||
|
case ']':
|
||||||
|
return Token.Squared_Close;
|
||||||
|
|
||||||
|
case ',':
|
||||||
|
return Token.Comma;
|
||||||
|
|
||||||
|
case '"':
|
||||||
|
return Token.String;
|
||||||
|
|
||||||
|
case '0': case '1': case '2': case '3': case '4':
|
||||||
|
case '5': case '6': case '7': case '8': case '9':
|
||||||
|
case '-': case '+': case '.':
|
||||||
|
return Token.Number;
|
||||||
|
|
||||||
|
case ':':
|
||||||
|
return Token.Colon;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
if (json.Length - index >= 4 &&
|
||||||
|
json[index + 0] == 'a' &&
|
||||||
|
json[index + 1] == 'l' &&
|
||||||
|
json[index + 2] == 's' &&
|
||||||
|
json[index + 3] == 'e')
|
||||||
|
{
|
||||||
|
index += 4;
|
||||||
|
return Token.False;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
if (json.Length - index >= 3 &&
|
||||||
|
json[index + 0] == 'r' &&
|
||||||
|
json[index + 1] == 'u' &&
|
||||||
|
json[index + 2] == 'e')
|
||||||
|
{
|
||||||
|
index += 3;
|
||||||
|
return Token.True;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
if (json.Length - index >= 3 &&
|
||||||
|
json[index + 0] == 'u' &&
|
||||||
|
json[index + 1] == 'l' &&
|
||||||
|
json[index + 2] == 'l')
|
||||||
|
{
|
||||||
|
index += 3;
|
||||||
|
return Token.Null;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Exception("Could not find token at index " + --index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,183 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Ninject.Web.Mvc</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:Ninject.Web.Mvc.ControllerMissingBindingResolver">
|
||||||
|
<summary>
|
||||||
|
Nissing binding resolver that creates a binding for unknown controllers.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.ControllerMissingBindingResolver.Resolve(Ninject.Infrastructure.Multimap{System.Type,Ninject.Planning.Bindings.IBinding},Ninject.Activation.IRequest)">
|
||||||
|
<summary>
|
||||||
|
Returns any bindings from the specified collection that match the specified request.
|
||||||
|
</summary>
|
||||||
|
<param name="bindings">The multimap of all registered bindings.</param>
|
||||||
|
<param name="request">The request in question.</param>
|
||||||
|
<returns>The series of matching bindings.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.FilterInjector">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of a filter info.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.IFilterInjector">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of a FiltorInfo.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.IFilterInjector.Inject(System.Web.Mvc.FilterInfo)">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of the specified filter info.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInfo">The filter info.</param>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.FilterInjector.kernel">
|
||||||
|
<summary>
|
||||||
|
The kernel
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.FilterInjector.#ctor(Ninject.IKernel)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.FilterInjector"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="kernel">The kernel.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.FilterInjector.Inject(System.Web.Mvc.FilterInfo)">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of the specified filter info.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInfo">The filter info.</param>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectActionInvoker">
|
||||||
|
<summary>
|
||||||
|
An <see cref="T:System.Web.Mvc.IActionInvoker"/> that injects filters with dependencies.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectActionInvoker.filterInjector">
|
||||||
|
<summary>
|
||||||
|
The injector for filter injection.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectActionInvoker.#ctor(Ninject.Web.Mvc.IFilterInjector)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectActionInvoker"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInjector">The filter injector.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectActionInvoker.GetFilters(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
|
||||||
|
<summary>
|
||||||
|
Gets the filters for the specified request and action.
|
||||||
|
</summary>
|
||||||
|
<param name="controllerContext">The controller context.</param>
|
||||||
|
<param name="actionDescriptor">The action descriptor.</param>
|
||||||
|
<returns>The filters.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectAsyncActionInvoker">
|
||||||
|
<summary>
|
||||||
|
An <see cref="T:System.Web.Mvc.IActionInvoker"/> that injects filters with dependencies.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectAsyncActionInvoker.filterInjector">
|
||||||
|
<summary>
|
||||||
|
The injector for filter injection.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectAsyncActionInvoker.#ctor(Ninject.Web.Mvc.IFilterInjector)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectAsyncActionInvoker"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInjector">The filter injector.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectAsyncActionInvoker.GetFilters(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
|
||||||
|
<summary>
|
||||||
|
Gets the filters for the specified request and action.
|
||||||
|
</summary>
|
||||||
|
<param name="controllerContext">The controller context.</param>
|
||||||
|
<param name="actionDescriptor">The action descriptor.</param>
|
||||||
|
<returns>The filters.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectControllerFactory">
|
||||||
|
<summary>
|
||||||
|
A controller factory that creates <see cref="T:System.Web.Mvc.IController"/>s via Ninject.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectControllerFactory.#ctor(Ninject.IKernel)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectControllerFactory"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="kernel">The kernel that should be used to create controllers.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectControllerFactory.GetControllerInstance(System.Web.Routing.RequestContext,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Gets a controller instance of type controllerType.
|
||||||
|
</summary>
|
||||||
|
<param name="requestContext">The request context.</param>
|
||||||
|
<param name="controllerType">Type of controller to create.</param>
|
||||||
|
<returns>The controller instance.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ninject.Web.Mvc.NinjectControllerFactory.Kernel">
|
||||||
|
<summary>
|
||||||
|
Gets the kernel that will be used to create controllers.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectHttpApplication">
|
||||||
|
<summary>
|
||||||
|
Defines an <see cref="T:System.Web.HttpApplication"/> that is controlled by a Ninject <see cref="T:Ninject.IKernel"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectHttpApplication.onePerRequestModule">
|
||||||
|
<summary>
|
||||||
|
The one per request module to release request scope at the end of the request
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectHttpApplication.kernel">
|
||||||
|
<summary>
|
||||||
|
The ninject kernel of the application
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.#ctor">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectHttpApplication"/> class.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.Application_Start">
|
||||||
|
<summary>
|
||||||
|
Starts the application.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.Application_End">
|
||||||
|
<summary>
|
||||||
|
Releases the kernel on application end.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.CreateKernel">
|
||||||
|
<summary>
|
||||||
|
Creates the kernel that will manage your application.
|
||||||
|
</summary>
|
||||||
|
<returns>The created kernel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.CreateControllerFactory">
|
||||||
|
<summary>
|
||||||
|
Creates the controller factory that is used to create the controllers.
|
||||||
|
</summary>
|
||||||
|
<returns>The created controller factory.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.OnApplicationStarted">
|
||||||
|
<summary>
|
||||||
|
Called when the application is started.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.OnApplicationStopped">
|
||||||
|
<summary>
|
||||||
|
Called when the application is stopped.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ninject.Web.Mvc.NinjectHttpApplication.Kernel">
|
||||||
|
<summary>
|
||||||
|
Gets the kernel.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,183 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Ninject.Web.Mvc</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:Ninject.Web.Mvc.ControllerMissingBindingResolver">
|
||||||
|
<summary>
|
||||||
|
Nissing binding resolver that creates a binding for unknown controllers.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.ControllerMissingBindingResolver.Resolve(Ninject.Infrastructure.Multimap{System.Type,Ninject.Planning.Bindings.IBinding},Ninject.Activation.IRequest)">
|
||||||
|
<summary>
|
||||||
|
Returns any bindings from the specified collection that match the specified request.
|
||||||
|
</summary>
|
||||||
|
<param name="bindings">The multimap of all registered bindings.</param>
|
||||||
|
<param name="request">The request in question.</param>
|
||||||
|
<returns>The series of matching bindings.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.FilterInjector">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of a filter info.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.IFilterInjector">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of a FiltorInfo.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.IFilterInjector.Inject(System.Web.Mvc.FilterInfo)">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of the specified filter info.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInfo">The filter info.</param>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.FilterInjector.kernel">
|
||||||
|
<summary>
|
||||||
|
The kernel
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.FilterInjector.#ctor(Ninject.IKernel)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.FilterInjector"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="kernel">The kernel.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.FilterInjector.Inject(System.Web.Mvc.FilterInfo)">
|
||||||
|
<summary>
|
||||||
|
Injects all filters of the specified filter info.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInfo">The filter info.</param>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectActionInvoker">
|
||||||
|
<summary>
|
||||||
|
An <see cref="T:System.Web.Mvc.IActionInvoker"/> that injects filters with dependencies.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectActionInvoker.filterInjector">
|
||||||
|
<summary>
|
||||||
|
The injector for filter injection.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectActionInvoker.#ctor(Ninject.Web.Mvc.IFilterInjector)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectActionInvoker"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInjector">The filter injector.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectActionInvoker.GetFilters(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
|
||||||
|
<summary>
|
||||||
|
Gets the filters for the specified request and action.
|
||||||
|
</summary>
|
||||||
|
<param name="controllerContext">The controller context.</param>
|
||||||
|
<param name="actionDescriptor">The action descriptor.</param>
|
||||||
|
<returns>The filters.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectAsyncActionInvoker">
|
||||||
|
<summary>
|
||||||
|
An <see cref="T:System.Web.Mvc.IActionInvoker"/> that injects filters with dependencies.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectAsyncActionInvoker.filterInjector">
|
||||||
|
<summary>
|
||||||
|
The injector for filter injection.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectAsyncActionInvoker.#ctor(Ninject.Web.Mvc.IFilterInjector)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectAsyncActionInvoker"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="filterInjector">The filter injector.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectAsyncActionInvoker.GetFilters(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
|
||||||
|
<summary>
|
||||||
|
Gets the filters for the specified request and action.
|
||||||
|
</summary>
|
||||||
|
<param name="controllerContext">The controller context.</param>
|
||||||
|
<param name="actionDescriptor">The action descriptor.</param>
|
||||||
|
<returns>The filters.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectControllerFactory">
|
||||||
|
<summary>
|
||||||
|
A controller factory that creates <see cref="T:System.Web.Mvc.IController"/>s via Ninject.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectControllerFactory.#ctor(Ninject.IKernel)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectControllerFactory"/> class.
|
||||||
|
</summary>
|
||||||
|
<param name="kernel">The kernel that should be used to create controllers.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectControllerFactory.GetControllerInstance(System.Web.Routing.RequestContext,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Gets a controller instance of type controllerType.
|
||||||
|
</summary>
|
||||||
|
<param name="requestContext">The request context.</param>
|
||||||
|
<param name="controllerType">Type of controller to create.</param>
|
||||||
|
<returns>The controller instance.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ninject.Web.Mvc.NinjectControllerFactory.Kernel">
|
||||||
|
<summary>
|
||||||
|
Gets the kernel that will be used to create controllers.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Ninject.Web.Mvc.NinjectHttpApplication">
|
||||||
|
<summary>
|
||||||
|
Defines an <see cref="T:System.Web.HttpApplication"/> that is controlled by a Ninject <see cref="T:Ninject.IKernel"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectHttpApplication.onePerRequestModule">
|
||||||
|
<summary>
|
||||||
|
The one per request module to release request scope at the end of the request
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:Ninject.Web.Mvc.NinjectHttpApplication.kernel">
|
||||||
|
<summary>
|
||||||
|
The ninject kernel of the application
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.#ctor">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:Ninject.Web.Mvc.NinjectHttpApplication"/> class.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.Application_Start">
|
||||||
|
<summary>
|
||||||
|
Starts the application.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.Application_End">
|
||||||
|
<summary>
|
||||||
|
Releases the kernel on application end.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.CreateKernel">
|
||||||
|
<summary>
|
||||||
|
Creates the kernel that will manage your application.
|
||||||
|
</summary>
|
||||||
|
<returns>The created kernel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.CreateControllerFactory">
|
||||||
|
<summary>
|
||||||
|
Creates the controller factory that is used to create the controllers.
|
||||||
|
</summary>
|
||||||
|
<returns>The created controller factory.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.OnApplicationStarted">
|
||||||
|
<summary>
|
||||||
|
Called when the application is started.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Ninject.Web.Mvc.NinjectHttpApplication.OnApplicationStopped">
|
||||||
|
<summary>
|
||||||
|
Called when the application is stopped.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Ninject.Web.Mvc.NinjectHttpApplication.Kernel">
|
||||||
|
<summary>
|
||||||
|
Gets the kernel.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,20 @@
|
|||||||
|
param($installPath, $toolsPath, $package, $project)
|
||||||
|
|
||||||
|
$extId = "JScriptIntelliSenseParaExtension.Microsoft.039ee76c-3c7f-4281-ad23-f6528ab18623"
|
||||||
|
$extManager = [Microsoft.VisualStudio.Shell.Package]::GetGlobalService([Microsoft.VisualStudio.ExtensionManager.SVsExtensionManager])
|
||||||
|
$copyOverParaFile = $false
|
||||||
|
try {
|
||||||
|
$copyOverParaFile = $extManager.GetInstalledExtension($extId).State -eq "Enabled"
|
||||||
|
}
|
||||||
|
catch [Microsoft.VisualStudio.ExtensionManager.NotInstalledException] {
|
||||||
|
#Extension is not installed
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($copyOverParaFile) {
|
||||||
|
#Copy the -vsdoc-para file over the -vsdoc file
|
||||||
|
#$projectFolder = Split-Path -Parent $project.FileName
|
||||||
|
$projectFolder = $project.Properties.Item("FullPath").Value
|
||||||
|
$paraVsDocPath = Join-Path $toolsPath jquery-1.6.1-vsdoc-para.js
|
||||||
|
$vsDocPath = Join-Path $projectFolder Scripts\jquery-1.6.1-vsdoc.js
|
||||||
|
Copy-Item $paraVsDocPath $vsDocPath -Force
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,46 @@
|
|||||||
|
param($installPath, $toolsPath, $package, $project)
|
||||||
|
|
||||||
|
#Forcibly delete the -vsdoc file
|
||||||
|
#$projectFolder = Split-Path -Parent $project.FileName
|
||||||
|
$projectFolder = $project.Properties.Item("FullPath").Value
|
||||||
|
$projVsDocPath = Join-Path $projectFolder Scripts\jquery-1.6.1-vsdoc.js
|
||||||
|
$origVsDocPath = Join-Path $installPath Content\Scripts\jquery-1.6.1-vsdoc.js
|
||||||
|
$origVsDocParaPath = Join-Path $toolsPath jquery-1.6.1-vsdoc-para.js
|
||||||
|
|
||||||
|
function Get-Checksum($file) {
|
||||||
|
$cryptoProvider = New-Object "System.Security.Cryptography.MD5CryptoServiceProvider"
|
||||||
|
|
||||||
|
$fileInfo = Get-Item "$file"
|
||||||
|
trap { ;
|
||||||
|
continue } $stream = $fileInfo.OpenRead()
|
||||||
|
if ($? -eq $false) {
|
||||||
|
#Write-Host "Couldn't open file for reading"
|
||||||
|
return $null
|
||||||
|
}
|
||||||
|
|
||||||
|
$bytes = $cryptoProvider.ComputeHash($stream)
|
||||||
|
$checksum = ''
|
||||||
|
foreach ($byte in $bytes) {
|
||||||
|
$checksum += $byte.ToString('x2')
|
||||||
|
}
|
||||||
|
|
||||||
|
$stream.Close() | Out-Null
|
||||||
|
|
||||||
|
return $checksum
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Test-Path $projVsDocPath) {
|
||||||
|
#Copy the original -vsdoc file over the -vsdoc file modified during install
|
||||||
|
#Normal uninstall logic will then kick in
|
||||||
|
|
||||||
|
if ((Get-Checksum $projVsDocPath) -eq (Get-Checksum $origVsDocParaPath)) {
|
||||||
|
#Write-Host "Copying orig vsdoc file over"
|
||||||
|
Copy-Item $origVsDocPath $projVsDocPath -Force
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#Write-Host "vsdoc file has changed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#Write-Host "vsdoc file not found in project"
|
||||||
|
}
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
* jQuery Validation Plugin 1.8.0
|
||||||
|
*
|
||||||
|
* http://bassistance.de/jquery-plugins/jquery-plugin-validation/
|
||||||
|
* http://docs.jquery.com/Plugins/Validation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2006 - 2011 Jörn Zaefferer
|
||||||
|
*
|
||||||
|
* Dual licensed under the MIT and GPL licenses:
|
||||||
|
* http://www.opensource.org/licenses/mit-license.php
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
*/
|
||||||
|
(function(c){c.extend(c.fn,{validate:function(a){if(this.length){var b=c.data(this[0],"validator");if(b)return b;b=new c.validator(a,this[0]);c.data(this[0],"validator",b);if(b.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){b.cancelSubmit=true});b.settings.submitHandler&&this.find("input, button").filter(":submit").click(function(){b.submitButton=this});this.submit(function(d){function e(){if(b.settings.submitHandler){if(b.submitButton)var f=c("<input type='hidden'/>").attr("name",
|
||||||
|
b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&&f.remove();return false}return true}b.settings.debug&&d.preventDefault();if(b.cancelSubmit){b.cancelSubmit=false;return e()}if(b.form()){if(b.pendingRequest){b.formSubmitted=true;return false}return e()}else{b.focusInvalid();return false}})}return b}else a&&a.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form();
|
||||||
|
else{var a=true,b=c(this[0].form).validate();this.each(function(){a&=b.element(this)});return a}},removeAttrs:function(a){var b={},d=this;c.each(a.split(/\s/),function(e,f){b[f]=d.attr(f);d.removeAttr(f)});return b},rules:function(a,b){var d=this[0];if(a){var e=c.data(d.form,"validator").settings,f=e.rules,g=c.validator.staticRules(d);switch(a){case "add":c.extend(g,c.validator.normalizeRule(b));f[d.name]=g;if(b.messages)e.messages[d.name]=c.extend(e.messages[d.name],b.messages);break;case "remove":if(!b){delete f[d.name];
|
||||||
|
return g}var h={};c.each(b.split(/\s/),function(j,i){h[i]=g[i];delete g[i]});return h}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);if(d.required){e=d.required;delete d.required;d=c.extend({required:e},d)}return d}});c.extend(c.expr[":"],{blank:function(a){return!c.trim(""+a.value)},filled:function(a){return!!c.trim(""+a.value)},unchecked:function(a){return!a.checked}});c.validator=function(a,
|
||||||
|
b){this.settings=c.extend(true,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=function(a,b){if(arguments.length==1)return function(){var d=c.makeArray(arguments);d.unshift(a);return c.validator.format.apply(this,d)};if(arguments.length>2&&b.constructor!=Array)b=c.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];c.each(b,function(d,e){a=a.replace(RegExp("\\{"+d+"\\}","g"),e)});return a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",
|
||||||
|
validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(a){this.lastActive=a;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass);this.addWrapper(this.errorsFor(a)).hide()}},onfocusout:function(a){if(!this.checkable(a)&&(a.name in this.submitted||!this.optional(a)))this.element(a)},
|
||||||
|
onkeyup:function(a){if(a.name in this.submitted||a==this.lastElement)this.element(a)},onclick:function(a){if(a.name in this.submitted)this.element(a);else a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(a,b,d){c(a).addClass(b).removeClass(d)},unhighlight:function(a,b,d){c(a).removeClass(b).addClass(d)}},setDefaults:function(a){c.extend(c.validator.defaults,a)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",
|
||||||
|
url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:c.validator.format("Please enter no more than {0} characters."),minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."),
|
||||||
|
range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){function a(e){var f=c.data(this[0].form,"validator");e="on"+e.type.replace(/^validate/,"");f.settings[e]&&f.settings[e].call(f,this[0])}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&
|
||||||
|
this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,function(e,f){c.each(f.split(/\s/),function(g,h){b[h]=e})});var d=this.settings.rules;c.each(d,function(e,f){d[e]=c.validator.normalizeRule(f)});c(this.currentForm).validateDelegate(":text, :password, :file, select, textarea",
|
||||||
|
"focusin focusout keyup",a).validateDelegate(":radio, :checkbox, select, option","click",a);this.settings.invalidHandler&&c(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);
|
||||||
|
return this.valid()},element:function(a){this.lastElement=a=this.clean(a);this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);if(b)delete this.invalid[a.name];else this.invalid[a.name]=true;if(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();return b},showErrors:function(a){if(a){c.extend(this.errorMap,a);this.errorList=[];for(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList,
|
||||||
|
function(d){return!(d.name in a)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){c.fn.resetForm&&c(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b=0,d;for(d in a)b++;return b},hideErrors:function(){this.addWrapper(this.toHide).hide()},
|
||||||
|
valid:function(){return this.size()==0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{c(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(a){}},findLastActive:function(){var a=this.lastActive;return a&&c.grep(this.errorList,function(b){return b.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return c([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&
|
||||||
|
a.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in b||!a.objectLength(c(this).rules()))return false;return b[this.name]=true})},clean:function(a){return c(a)[0]},errors:function(){return c(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)},
|
||||||
|
prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(a){a=this.clean(a);if(this.checkable(a))a=this.findByName(a.name).not(this.settings.ignore)[0];var b=c(a).rules(),d=false,e;for(e in b){var f={method:e,parameters:b[e]};try{var g=c.validator.methods[e].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(g=="dependency-mismatch")d=true;else{d=false;if(g=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!g){this.formatAndAdd(a,f);return false}}}catch(h){this.settings.debug&&
|
||||||
|
window.console&&console.log("exception occured when checking element "+a.id+", check the '"+f.method+"' method",h);throw h;}}if(!d){this.objectLength(b)&&this.successList.push(a);return true}},customMetaMessage:function(a,b){if(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();return d&&d.messages&&d.messages[b]}},customMessage:function(a,b){var d=this.settings.messages[a];return d&&(d.constructor==String?d:d[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==
|
||||||
|
undefined)return arguments[a]},defaultMessage:function(a,b){return this.findDefined(this.customMessage(a.name,b),this.customMetaMessage(a,b),!this.settings.ignoreTitle&&a.title||undefined,c.validator.messages[b],"<strong>Warning: No message defined for "+a.name+"</strong>")},formatAndAdd:function(a,b){var d=this.defaultMessage(a,b.method),e=/\$?\{(\d+)\}/g;if(typeof d=="function")d=d.call(this,b.parameters,a);else if(e.test(d))d=jQuery.format(d.replace(e,"{$1}"),b.parameters);this.errorList.push({message:d,
|
||||||
|
element:a});this.errorMap[a.name]=d;this.submitted[a.name]=d},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parent(this.settings.wrapper));return a},defaultShowErrors:function(){for(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&&this.settings.highlight.call(this,b.element,this.settings.errorClass,this.settings.validClass);this.showLabel(b.element,b.message)}if(this.errorList.length)this.toShow=this.toShow.add(this.containers);if(this.settings.success)for(a=
|
||||||
|
0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight){a=0;for(b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return c(this.errorList).map(function(){return this.element})},showLabel:function(a,
|
||||||
|
b){var d=this.errorsFor(a);if(d.length){d.removeClass().addClass(this.settings.errorClass);d.attr("generated")&&d.html(b)}else{d=c("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(a),generated:true}).addClass(this.settings.errorClass).html(b||"");if(this.settings.wrapper)d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}if(!b&&this.settings.success){d.text("");
|
||||||
|
typeof this.settings.success=="string"?d.addClass(this.settings.success):this.settings.success(d)}this.toShow=this.toShow.add(d)},errorsFor:function(a){var b=this.idOrName(a);return this.errors().filter(function(){return c(this).attr("for")==b})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(a){var b=this.currentForm;return c(document.getElementsByName(a)).map(function(d,e){return e.form==
|
||||||
|
b&&e.name==a&&e||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case "select":return c("option:selected",b).length;case "input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return a.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):true},dependTypes:{"boolean":function(a){return a},string:function(a,b){return!!c(a,b.form).length},"function":function(a,b){return a(b)}},optional:function(a){return!c.validator.methods.required.call(this,
|
||||||
|
c.trim(a.value),a)&&"dependency-mismatch"},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=true}},stopRequest:function(a,b){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[a.name];if(b&&this.pendingRequest==0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else if(!b&&this.pendingRequest==0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=
|
||||||
|
false}},previousValue:function(a){return c.data(a,"previousValue")||c.data(a,"previousValue",{old:null,valid:true,message:this.defaultMessage(a,"remote")})}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings,
|
||||||
|
a)},classRules:function(a){var b={};(a=c(a).attr("class"))&&c.each(a.split(" "),function(){this in c.validator.classRuleSettings&&c.extend(b,c.validator.classRuleSettings[this])});return b},attributeRules:function(a){var b={};a=c(a);for(var d in c.validator.methods){var e=a.attr(d);if(e)b[d]=e}b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)&&delete b.maxlength;return b},metadataRules:function(a){if(!c.metadata)return{};var b=c.data(a.form,"validator").settings.meta;return b?c(a).metadata()[b]:
|
||||||
|
c(a).metadata()},staticRules:function(a){var b={},d=c.data(a.form,"validator");if(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};return b},normalizeRules:function(a,b){c.each(a,function(d,e){if(e===false)delete a[d];else if(e.param||e.depends){var f=true;switch(typeof e.depends){case "string":f=!!c(e.depends,b.form).length;break;case "function":f=e.depends.call(b,b)}if(f)a[d]=e.param!==undefined?e.param:true;else delete a[d]}});c.each(a,function(d,e){a[d]=c.isFunction(e)?
|
||||||
|
e(b):e});c.each(["minlength","maxlength","min","max"],function(){if(a[this])a[this]=Number(a[this])});c.each(["rangelength","range"],function(){if(a[this])a[this]=[Number(a[this][0]),Number(a[this][1])]});if(c.validator.autoCreateRanges){if(a.min&&a.max){a.range=[a.min,a.max];delete a.min;delete a.max}if(a.minlength&&a.maxlength){a.rangelength=[a.minlength,a.maxlength];delete a.minlength;delete a.maxlength}}a.messages&&delete a.messages;return a},normalizeRule:function(a){if(typeof a=="string"){var b=
|
||||||
|
{};c.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length<3&&c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a,b)>0;default:return c.trim(a).length>
|
||||||
|
0}},remote:function(a,b,d){if(this.optional(b))return"dependency-mismatch";var e=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});e.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=e.message;d=typeof d=="string"&&{url:d}||d;if(this.pending[b.name])return"pending";if(e.old===a)return e.valid;e.old=a;var f=this;this.startRequest(b);var g={};g[b.name]=a;c.ajax(c.extend(true,{url:d,mode:"abort",port:"validate"+b.name,
|
||||||
|
dataType:"json",data:g,success:function(h){f.settings.messages[b.name].remote=e.originalMessage;var j=h===true;if(j){var i=f.formSubmitted;f.prepareElement(b);f.formSubmitted=i;f.successList.push(b);f.showErrors()}else{i={};h=h||f.defaultMessage(b,"remote");i[b.name]=e.message=c.isFunction(h)?h(a):h;f.showErrors(i)}e.valid=j;f.stopRequest(b,j)}},d));return"pending"},minlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),b)>=d},maxlength:function(a,b,d){return this.optional(b)||
|
||||||
|
this.getLength(c.trim(a),b)<=d},rangelength:function(a,b,d){a=this.getLength(c.trim(a),b);return this.optional(b)||a>=d[0]&&a<=d[1]},min:function(a,b,d){return this.optional(b)||a>=d},max:function(a,b,d){return this.optional(b)||a<=d},range:function(a,b,d){return this.optional(b)||a>=d[0]&&a<=d[1]},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(a)},
|
||||||
|
url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},
|
||||||
|
date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9-]+/.test(a))return false;var d=0,e=0,f=false;a=a.replace(/\D/g,"");for(var g=a.length-1;g>=
|
||||||
|
0;g--){e=a.charAt(g);e=parseInt(e,10);if(f)if((e*=2)>9)e-=9;d+=e;f=!f}return d%10==0},accept:function(a,b,d){d=typeof d=="string"?d.replace(/,/g,"|"):"png|jpe?g|gif";return this.optional(b)||a.match(RegExp(".("+d+")$","i"))},equalTo:function(a,b,d){d=c(d).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery);
|
||||||
|
(function(c){var a={};if(c.ajaxPrefilter)c.ajaxPrefilter(function(d,e,f){e=d.port;if(d.mode=="abort"){a[e]&&a[e].abort();a[e]=f}});else{var b=c.ajax;c.ajax=function(d){var e=("port"in d?d:c.ajaxSettings).port;if(("mode"in d?d:c.ajaxSettings).mode=="abort"){a[e]&&a[e].abort();return a[e]=b.apply(this,arguments)}return b.apply(this,arguments)}}})(jQuery);
|
||||||
|
(function(c){!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.handle.call(this,e)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(e){arguments[0]=c.event.fix(e);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a,
|
||||||
|
b,d){return this.bind(b,function(e){var f=c(e.target);if(f.is(a))return d.apply(f,arguments)})}})})(jQuery);
|
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
vsdoc files for Visual Studio IntelliSense are now included in the core jquery NuGet package. As a result, this pacakge is obsolete and will not be updated past version 1.6. You can uninstall it.
|
Binary file not shown.
Loading…
Reference in new issue