Component updates, NT 10.0 quick-paste support

Also RSS - remove pub date because its outputting as wrong format, need
to investigate further.
This commit is contained in:
Thomas Hounsell 2014-11-21 22:06:19 +00:00
parent b26627d1fd
commit d61e860e40
9 changed files with 37 additions and 29 deletions

View File

@ -29,7 +29,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>ExtendedDesignGuidelineRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>ExtendedCorrectnessRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>

View File

@ -70,7 +70,7 @@ public async Task<ActionResult> added()
Title = build.FullBuildString, Title = build.FullBuildString,
Link = new RssUrl(string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Action("info", new { controller = "Build", id = build.Id }))), Link = new RssUrl(string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Action("info", new { controller = "Build", id = build.Id }))),
Guid = new RssGuid() { IsPermaLink = true, Value = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Action("info", new { controller = "Build", id = build.Id })) }, Guid = new RssGuid() { IsPermaLink = true, Value = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Action("info", new { controller = "Build", id = build.Id })) },
PubDate = build.Added //PubDate = build.Added
}).ToList() }).ToList()
} }
}; };

View File

@ -1,4 +1,4 @@
/// <autosync enabled="true" /> /// <autosync enabled="true" />
/// <reference path="jquery-2.1.1.js" /> /// <reference path="jquery-2.1.1.js" />
/// <reference path="jquery.validate.js" />
/// <reference path="jquery.validate.unobtrusive.js" /> /// <reference path="jquery.validate.unobtrusive.js" />
/// <reference path="jquery.validate.js" />

View File

@ -4,7 +4,7 @@
* intended to be used only for design-time IntelliSense. Please use the * intended to be used only for design-time IntelliSense. Please use the
* standard jQuery library for all production use. * standard jQuery library for all production use.
* *
* Comment version: 1.12.0 * Comment version: 1.13.1
*/ */
/* /*
@ -15,7 +15,7 @@
* for informational purposes only and are not the license terms under * for informational purposes only and are not the license terms under
* which Microsoft distributed this file. * which Microsoft distributed this file.
* *
* jQuery Validation Plugin - v1.13.0 - 2/4/2013 * jQuery Validation Plugin - v1.13.1 - 2/4/2013
* https://github.com/jzaefferer/jquery-validation * https://github.com/jzaefferer/jquery-validation
* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT * Copyright (c) 2013 Jörn Zaefferer; Licensed MIT
* *

View File

@ -1,5 +1,5 @@
/*! /*!
* jQuery Validation Plugin v1.13.0 * jQuery Validation Plugin v1.13.1
* *
* http://jqueryvalidation.org/ * http://jqueryvalidation.org/
* *
@ -62,7 +62,7 @@ $.extend($.fn, {
event.preventDefault(); event.preventDefault();
} }
function handle() { function handle() {
var hidden; var hidden, result;
if ( validator.settings.submitHandler ) { if ( validator.settings.submitHandler ) {
if ( validator.submitButton ) { if ( validator.submitButton ) {
// insert a hidden input as a replacement for the missing submit button // insert a hidden input as a replacement for the missing submit button
@ -71,11 +71,14 @@ $.extend($.fn, {
.val( $( validator.submitButton ).val() ) .val( $( validator.submitButton ).val() )
.appendTo( validator.currentForm ); .appendTo( validator.currentForm );
} }
validator.settings.submitHandler.call( validator, validator.currentForm, event ); result = validator.settings.submitHandler.call( validator, validator.currentForm, event );
if ( validator.submitButton ) { if ( validator.submitButton ) {
// and clean up afterwards; thanks to no-block-scope, hidden can be referenced // and clean up afterwards; thanks to no-block-scope, hidden can be referenced
hidden.remove(); hidden.remove();
} }
if ( result !== undefined ) {
return result;
}
return false; return false;
} }
return true; return true;
@ -245,6 +248,7 @@ $.extend( $.validator, {
errorClass: "error", errorClass: "error",
validClass: "valid", validClass: "valid",
errorElement: "label", errorElement: "label",
focusCleanup: false,
focusInvalid: true, focusInvalid: true,
errorContainer: $( [] ), errorContainer: $( [] ),
errorLabelContainer: $( [] ), errorLabelContainer: $( [] ),
@ -254,8 +258,8 @@ $.extend( $.validator, {
onfocusin: function( element ) { onfocusin: function( element ) {
this.lastActive = element; this.lastActive = element;
// hide error label and remove error class on focus if enabled // Hide error label and remove error class on focus if enabled
if ( this.settings.focusCleanup && !this.blockFocusCleanup ) { if ( this.settings.focusCleanup ) {
if ( this.settings.unhighlight ) { if ( this.settings.unhighlight ) {
this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
} }
@ -532,7 +536,7 @@ $.extend( $.validator, {
// select all valid inputs inside the form (no submit or reset buttons) // select all valid inputs inside the form (no submit or reset buttons)
return $( this.currentForm ) return $( this.currentForm )
.find( "input, select, textarea" ) .find( "input, select, textarea" )
.not( ":submit, :reset, :image, [disabled]" ) .not( ":submit, :reset, :image, [disabled], [readonly]" )
.not( this.settings.ignore ) .not( this.settings.ignore )
.filter( function() { .filter( function() {
if ( !this.name && validator.settings.debug && window.console ) { if ( !this.name && validator.settings.debug && window.console ) {
@ -782,11 +786,11 @@ $.extend( $.validator, {
// If the element is not a child of an associated label, then it's necessary // If the element is not a child of an associated label, then it's necessary
// to explicitly apply aria-describedby // to explicitly apply aria-describedby
errorID = error.attr( "id" ); errorID = error.attr( "id" ).replace( /(:|\.|\[|\])/g, "\\$1");
// Respect existing non-error aria-describedby // Respect existing non-error aria-describedby
if ( !describedBy ) { if ( !describedBy ) {
describedBy = errorID; describedBy = errorID;
} else if ( !describedBy.match( new RegExp( "\b" + errorID + "\b" ) ) ) { } else if ( !describedBy.match( new RegExp( "\\b" + errorID + "\\b" ) ) ) {
// Add to end of list if not already present // Add to end of list if not already present
describedBy += " " + errorID; describedBy += " " + errorID;
} }
@ -819,6 +823,7 @@ $.extend( $.validator, {
var name = this.idOrName( element ), var name = this.idOrName( element ),
describer = $( element ).attr( "aria-describedby" ), describer = $( element ).attr( "aria-describedby" ),
selector = "label[for='" + name + "'], label[for='" + name + "'] *"; selector = "label[for='" + name + "'], label[for='" + name + "'] *";
// aria-describedby should directly reference the error element // aria-describedby should directly reference the error element
if ( describer ) { if ( describer ) {
selector = selector + ", #" + describer.replace( /\s+/g, ", #" ); selector = selector + ", #" + describer.replace( /\s+/g, ", #" );
@ -833,11 +838,14 @@ $.extend( $.validator, {
}, },
validationTargetFor: function( element ) { validationTargetFor: function( element ) {
// if radio/checkbox, validate first element in group instead
// If radio/checkbox, validate first element in group instead
if ( this.checkable( element ) ) { if ( this.checkable( element ) ) {
element = this.findByName( element.name ).not( this.settings.ignore )[ 0 ]; element = this.findByName( element.name );
} }
return element;
// Always apply ignore filter
return $( element ).not( this.settings.ignore )[ 0 ];
}, },
checkable: function( element ) { checkable: function( element ) {
@ -1065,12 +1073,12 @@ $.extend( $.validator, {
if ( $.validator.autoCreateRanges ) { if ( $.validator.autoCreateRanges ) {
// auto-create ranges // auto-create ranges
if ( rules.min && rules.max ) { if ( rules.min != null && rules.max != null ) {
rules.range = [ rules.min, rules.max ]; rules.range = [ rules.min, rules.max ];
delete rules.min; delete rules.min;
delete rules.max; delete rules.max;
} }
if ( rules.minlength && rules.maxlength ) { if ( rules.minlength != null && rules.maxlength != null ) {
rules.rangelength = [ rules.minlength, rules.maxlength ]; rules.rangelength = [ rules.minlength, rules.maxlength ];
delete rules.minlength; delete rules.minlength;
delete rules.maxlength; delete rules.maxlength;
@ -1195,19 +1203,19 @@ $.extend( $.validator, {
// http://jqueryvalidation.org/minlength-method/ // http://jqueryvalidation.org/minlength-method/
minlength: function( value, element, param ) { minlength: function( value, element, param ) {
var length = $.isArray( value ) ? value.length : this.getLength( $.trim( value ), element ); var length = $.isArray( value ) ? value.length : this.getLength( value, element );
return this.optional( element ) || length >= param; return this.optional( element ) || length >= param;
}, },
// http://jqueryvalidation.org/maxlength-method/ // http://jqueryvalidation.org/maxlength-method/
maxlength: function( value, element, param ) { maxlength: function( value, element, param ) {
var length = $.isArray( value ) ? value.length : this.getLength( $.trim( value ), element ); var length = $.isArray( value ) ? value.length : this.getLength( value, element );
return this.optional( element ) || length <= param; return this.optional( element ) || length <= param;
}, },
// http://jqueryvalidation.org/rangelength-method/ // http://jqueryvalidation.org/rangelength-method/
rangelength: function( value, element, param ) { rangelength: function( value, element, param ) {
var length = $.isArray( value ) ? value.length : this.getLength( $.trim( value ), element ); var length = $.isArray( value ) ? value.length : this.getLength( value, element );
return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] ); return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );
}, },

File diff suppressed because one or more lines are too long

View File

@ -229,7 +229,7 @@
$(function () { $(function () {
$("#quickpaste").change(function () { $("#quickpaste").change(function () {
var regex = /(\d)\.([\d]{1,2})\.([\d]{4,5})\.([\d]{1,5})\.([a-zA-Z0-9_]+?)\.(\d\d\d\d\d\d-\d\d\d\d)/; var regex = /([\d]{1,2})\.([\d]{1,2})\.([\d]{4,5})\.([\d]{1,5})\.([a-zA-Z0-9_]+?)\.(\d\d\d\d\d\d-\d\d\d\d)/;
var result = regex.exec($("#quickpaste").val()); var result = regex.exec($("#quickpaste").val());
$("#MajorVersion").val(result[1]); $("#MajorVersion").val(result[1]);

View File

@ -2,8 +2,8 @@
<html> <html>
<head> <head>
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" /> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />
<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.2.0/yeti/bootstrap.min.css" rel="stylesheet" /> <link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.0/yeti/bootstrap.min.css" rel="stylesheet" />
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" /> <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic" rel="stylesheet" type="text/css" /> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="~/favicon.ico" /> <link rel="shortcut icon" href="~/favicon.ico" />
@ -59,7 +59,7 @@
</div> </div>
<div class="col-sm-4 text-right"> <div class="col-sm-4 text-right">
<p> <p>
&copy; 2013 - 2014, BuildFeed<br /> &copy; 2013 - @DateTime.Now.Year.ToString(), BuildFeed<br />
Developed by <a href="https://twitter.com/tomhounsell" target="_blank">Thomas Hounsell</a> Developed by <a href="https://twitter.com/tomhounsell" target="_blank">Thomas Hounsell</a>
</p> </p>
</div> </div>
@ -67,7 +67,7 @@
</footer> </footer>
</div> </div>
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jquery")
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
@RenderSection("scripts", required: false) @RenderSection("scripts", required: false)
</body> </body>
</html> </html>

View File

@ -4,7 +4,7 @@
<package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" /> <package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" />
<package id="Elmah.MVC" version="2.1.1" targetFramework="net45" /> <package id="Elmah.MVC" version="2.1.1" targetFramework="net45" />
<package id="jQuery" version="2.1.1" targetFramework="net45" /> <package id="jQuery" version="2.1.1" targetFramework="net45" />
<package id="jQuery.Validation" version="1.13.0" targetFramework="net45" /> <package id="jQuery.Validation" version="1.13.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net45" /> <package id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net45" /> <package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" />