Some TLC for the live site

Giving it a bit of polish here and there and prepping the way for some
more changes.
This commit is contained in:
Thomas Hounsell 2016-05-23 15:27:58 +01:00
parent 68c7b3c659
commit 254bfbbdcd
21 changed files with 180 additions and 117 deletions

View File

@ -15,12 +15,6 @@ public static void RegisterBundles(BundleCollection bundles)
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*")); "~/Scripts/jquery.validate*"));
bundles.Add(new StyleBundle("~/content/css").Include(
"~/content/style.css"));
bundles.Add(new StyleBundle("~/content/rtl").Include(
"~/content/rtl.css"));
} }
} }
} }

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props')" /> <Import Project="..\packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
@ -61,28 +61,28 @@
<HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.AI.DependencyCollector, Version=1.2.3.246, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.AI.DependencyCollector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.1.2.3\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.AI.PerfCounterCollector, Version=1.2.3.246, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.AI.PerfCounterCollector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.1.2.3\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.AI.ServerTelemetryChannel, Version=1.2.3.246, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.AI.ServerTelemetryChannel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.1.2.3\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.AI.Web, Version=1.2.3.246, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.AI.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.Web.1.2.3\lib\net45\Microsoft.AI.Web.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.AI.WindowsServer, Version=1.2.3.246, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.AI.WindowsServer, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.1.2.3\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.ApplicationInsights, Version=1.2.3.490, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.ApplicationInsights, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.1.2.3\lib\net45\Microsoft.ApplicationInsights.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net46\Microsoft.ApplicationInsights.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@ -90,16 +90,16 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="MongoDB.Bson, Version=2.2.3.3, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Bson, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Bson.2.2.3\lib\net45\MongoDB.Bson.dll</HintPath> <HintPath>..\packages\MongoDB.Bson.2.2.4\lib\net45\MongoDB.Bson.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="MongoDB.Driver, Version=2.2.3.3, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Driver, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.2.2.3\lib\net45\MongoDB.Driver.dll</HintPath> <HintPath>..\packages\MongoDB.Driver.2.2.4\lib\net45\MongoDB.Driver.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="MongoDB.Driver.Core, Version=2.2.3.3, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Driver.Core, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.Core.2.2.3\lib\net45\MongoDB.Driver.Core.dll</HintPath> <HintPath>..\packages\MongoDB.Driver.Core.2.2.4\lib\net45\MongoDB.Driver.Core.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json"> <Reference Include="Newtonsoft.Json">
@ -780,6 +780,12 @@
<Content Include="content\card\Threshold.png" /> <Content Include="content\card\Threshold.png" />
<Content Include="content\icons-2x.png" /> <Content Include="content\icons-2x.png" />
<Content Include="content\icons.png" /> <Content Include="content\icons.png" />
<Content Include="content\rtl.min.css">
<DependentUpon>rtl.css</DependentUpon>
</Content>
<Content Include="content\style.min.css">
<DependentUpon>style.css</DependentUpon>
</Content>
<Content Include="content\tile\wide.png" /> <Content Include="content\tile\wide.png" />
<Content Include="content\tile\large.png" /> <Content Include="content\tile\large.png" />
<Content Include="content\tile\square.png" /> <Content Include="content\tile\square.png" />
@ -804,6 +810,7 @@
<Content Include="Scripts\Chart.js" /> <Content Include="Scripts\Chart.js" />
<Content Include="Scripts\Chart.min.js" /> <Content Include="Scripts\Chart.min.js" />
<Content Include="App_Code\PaginationHelpers.cshtml" /> <Content Include="App_Code\PaginationHelpers.cshtml" />
<None Include="bundleconfig.json" />
<None Include="Properties\PublishProfiles\Milestone 1 [DEV].pubxml" /> <None Include="Properties\PublishProfiles\Milestone 1 [DEV].pubxml" />
<None Include="Scripts\jquery-2.2.3.intellisense.js" /> <None Include="Scripts\jquery-2.2.3.intellisense.js" />
<Content Include="Scripts\jquery-2.2.3.js" /> <Content Include="Scripts\jquery-2.2.3.js" />
@ -1430,6 +1437,22 @@
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup> </PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptJSXEmit>None</TypeScriptJSXEmit>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptModuleKind>
</TypeScriptModuleKind>
<TypeScriptRemoveComments>True</TypeScriptRemoveComments>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptSourceMap>True</TypeScriptSourceMap>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
@ -1459,7 +1482,7 @@
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props'))" /> <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props'))" />
</Target> </Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -45,6 +45,12 @@ public async Task<BuildModel[]> GetBuildsForBuildGroup(uint major, uint minor, u
return builds.ToArray(); return builds.ToArray();
} }
public async Task<BuildModel[]> GetBuildsByLab(string lab, int limit = 20, int skip = 0)
{
var builds = await _bModel.SelectLab(lab, limit, skip);
return builds.ToArray();
}
public async Task<IEnumerable<string>> GetWin10Labs() public async Task<IEnumerable<string>> GetWin10Labs()
{ {
List<string> labs = new List<string>(); List<string> labs = new List<string>();

View File

@ -11,6 +11,9 @@ public class MvcApplication : System.Web.HttpApplication
{ {
protected void Application_Start() protected void Application_Start()
{ {
// Disable ASP.NET MVC version header
MvcHandler.DisableMvcResponseHeader = true;
// Don't bother looking for the legacy aspx view engine. // Don't bother looking for the legacy aspx view engine.
ViewEngines.Engines.Clear(); ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine()); ViewEngines.Engines.Add(new RazorViewEngine());

View File

@ -115,6 +115,10 @@ public ProjectFamily Family
{ {
get get
{ {
if (Number >= 14800)
{
return ProjectFamily.Redstone2;
}
if (Number >= 11000) if (Number >= 11000)
{ {
return ProjectFamily.Redstone; return ProjectFamily.Redstone;

View File

@ -40,6 +40,9 @@ public enum ProjectFamily
Threshold2, Threshold2,
[Display(Name = "Redstone")] [Display(Name = "Redstone")]
Redstone Redstone,
[Display(Name = "Redstone 2")]
Redstone2
} }
} }

View File

@ -1,13 +1,15 @@
@model IEnumerable<BuildFeed.Models.ViewModel.Front.FrontBuildGroup> @using BuildFeed.Local
@using Humanizer; @using BuildFeed.Models.ViewModel.Front
@using Humanizer
@model IEnumerable<BuildFeed.Models.ViewModel.Front.FrontBuildGroup>
@{ @{
ViewBag.Title = BuildFeed.Local.Common.SiteName; ViewBag.Title = Common.SiteName;
} }
@section head @section head
{ {
@if (ViewBag.PageNumber == 1) @if (ViewBag.PageNumber == 1)
{ {
<meta name="description" content="BuildFeed tracks builds of Microsoft Windows NT, using a variety of sources. We're the best place to follow the latest builds as they become known." /> <meta name="description" content="Learn what Gabe Aul won&apos;t tell you - Keep up to date with the latest Microsoft Windows developments with BuildFeed, the comprehensive build tracker." />
} }
else else
{ {
@ -15,35 +17,46 @@
} }
} }
<h1>@BuildFeed.Local.Front.HomepageH1</h1> <h1>@Front.HomepageH1</h1>
<h3>@BuildFeed.Local.Front.Share</h3> <h3>@Front.Share</h3>
<div class="addthis_sharing_toolbox"></div> <div class="addthis_sharing_toolbox"></div>
<h3>@BuildFeed.Local.Front.Listing</h3> <h3>@Front.Listing</h3>
<div class="row"> <div class="row">
@foreach (BuildFeed.Models.ViewModel.Front.FrontBuildGroup group in Model) @foreach (FrontBuildGroup group in Model)
{ {
<div class="col-md-2 col-sm-3 col-xs-6 build-group"> <div class="col-md-2 col-sm-3 col-xs-6 build-group">
<h3 class="build-group-title"><a href="@Url.Action("ViewGroup", new { major = group.Key.Major, minor = group.Key.Minor, number = group.Key.Build, revision = group.Key.Revision })">@group.Key.ToString()</a></h3> <h3 class="build-group-title">
<p> <a href="@Url.Action("ViewGroup", new
@if (group.LastBuild.HasValue) {
{ major = group.Key.Major,
var maxDate = group.LastBuild.Value; minor = group.Key.Minor,
if (maxDate.AddDays(28) > DateTime.Now) number = group.Key.Build,
{ revision = group.Key.Revision
<span title="@maxDate.ToLongDateWithoutDay()"><i class="fa fa-calendar fa-fw"></i> @maxDate.Humanize()</span><br /> })">
@group.Key.ToString()</a>
</h3>
@if (group.LastBuild.HasValue)
{
<p class="build-group-p">
@{
DateTime maxDate = group.LastBuild.Value;
if (maxDate.AddDays(28) > DateTime.Now)
{
<span title="@maxDate.ToLongDateWithoutDay()"><i class="fa fa-calendar fa-fw"></i> @maxDate.Humanize()</span>
<br />
}
else
{
<span title="@maxDate.Humanize()"><i class="fa fa-calendar fa-fw"></i> @maxDate.ToLongDateWithoutDay()</span>
<br />
}
} }
else </p>
{ }
<span title="@maxDate.Humanize()"><i class="fa fa-calendar fa-fw"></i> @maxDate.ToLongDateWithoutDay()</span><br /> <p class="build-group-p">
} <i class="fa fa-server fa-fw"></i> @string.Format(Front.xBuilds, group.BuildCount)
}
<i class="fa fa-server fa-fw"></i> @string.Format(BuildFeed.Local.Front.xBuilds, group.BuildCount)
</p> </p>
</div> </div>
} }
</div> </div>
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "Index", ViewContext.RouteData.Values) @PaginationHelpers.PaginationBlock((int) ViewBag.PageNumber, (int) ViewBag.PageCount, "Index", ViewContext.RouteData.Values)
@section scripts
{
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
}

View File

@ -150,7 +150,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="addthis_recommended_horizontal"></div>
<div class="form-horizontal form-details"> <div class="form-horizontal form-details">
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">@BuildFeed.Local.Front.Comments</label> <label class="control-label col-sm-2">@BuildFeed.Local.Front.Comments</label>
@ -178,8 +178,3 @@
</div> </div>
</div> </div>
</div> </div>
@section scripts
{
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
}

View File

@ -68,8 +68,4 @@
</div> </div>
} }
</div> </div>
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewLab", ViewContext.RouteData.Values) @PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewLab", ViewContext.RouteData.Values)
@section scripts
{
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
}

View File

@ -66,8 +66,4 @@
</div> </div>
} }
</div> </div>
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewSource", ViewContext.RouteData.Values) @PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewSource", ViewContext.RouteData.Values)
@section scripts
{
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
}

View File

@ -66,8 +66,4 @@
</div> </div>
} }
</div> </div>
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewVersion", ViewContext.RouteData.Values) @PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewVersion", ViewContext.RouteData.Values)
@section scripts
{
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
}

View File

@ -92,8 +92,4 @@
</div> </div>
} }
</div> </div>
@PaginationHelpers.PaginationBlock((int) ViewBag.PageNumber, (int) ViewBag.PageCount, "viewYear", ViewContext.RouteData.Values) @PaginationHelpers.PaginationBlock((int) ViewBag.PageNumber, (int) ViewBag.PageCount, "viewYear", ViewContext.RouteData.Values)
@section scripts
{
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
}

View File

@ -10,16 +10,15 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.6/slate/bootstrap.min.css" rel="stylesheet" /> <link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.6/slate/bootstrap.min.css" rel="stylesheet" />
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" /> <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" />
<link href="//fonts.googleapis.com/css?family=Rajdhani:400,700&subset=latin,latin-ext" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="~/favicon.ico" /> <link rel="shortcut icon" href="~/favicon.ico" />
<link rel="icon" href="~/favicon.ico" /> <link rel="icon" href="~/favicon.ico" />
<link rel="canonical" href="@Url.Action()" /> <link rel="canonical" href="@Url.Action()" />
<meta name="application-name" content="@BuildFeed.Local.Common.SiteName" /> <meta name="application-name" content="@BuildFeed.Local.Common.SiteName" />
@Styles.Render("~/content/css") <link href="/content/style.min.css" rel="stylesheet" type="text/css" />
@if (isRtl) @if (isRtl)
{ {
@Styles.Render("~/content/rtl") <link href="/content/rtl.min.css" rel="stylesheet" type="text/css" />
} }
<title>@ViewBag.Title</title> <title>@ViewBag.Title</title>
@RenderSection("head", false) @RenderSection("head", false)
@ -80,7 +79,7 @@
<li><a href="@Url.Action("Logout", new { controller = "Support", area = "" })" title="@BuildFeed.Local.Common.LogOut"><i class="fa fa-fw fa-user"></i> @BuildFeed.Local.Common.LogOut</a></li> <li><a href="@Url.Action("Logout", new { controller = "Support", area = "" })" title="@BuildFeed.Local.Common.LogOut"><i class="fa fa-fw fa-user"></i> @BuildFeed.Local.Common.LogOut</a></li>
} }
<li><a href="#" id="page-navigation-search" title="@BuildFeed.Local.Common.Search"><i class="fa fa-fw fa-search"></i> @BuildFeed.Local.Common.Search</a></li> <li><a href="#" id="page-navigation-search" title="@BuildFeed.Local.Common.Search"><i class="fa fa-fw fa-search"></i> @BuildFeed.Local.Common.Search</a></li>
<li><a href="@Url.Action("Stats", new { controller = "Support", area = "" })" title="@BuildFeed.Local.Common.Statistics"><i class="fa fa-fw fa-line-chart"></i> @BuildFeed.Local.Common.Statistics</a></li> @*<li><a href="@Url.Action("Stats", new { controller = "Support", area = "" })" title="@BuildFeed.Local.Common.Statistics"><i class="fa fa-fw fa-line-chart"></i> @BuildFeed.Local.Common.Statistics</a></li>*@
<li><a href="@Url.Action("Rss", new { controller = "Support", area = "" })" title="@BuildFeed.Local.Common.RssFeeds"><i class="fa fa-fw fa-rss"></i> @BuildFeed.Local.Common.RssFeeds</a></li> <li><a href="@Url.Action("Rss", new { controller = "Support", area = "" })" title="@BuildFeed.Local.Common.RssFeeds"><i class="fa fa-fw fa-rss"></i> @BuildFeed.Local.Common.RssFeeds</a></li>
<li><a href="https://twitter.com/buildfeed" title="@BuildFeed.Local.Common.Twitter" target="_blank"><i class="fa fa-fw fa-twitter"></i> @BuildFeed.Local.Common.Twitter</a></li> <li><a href="https://twitter.com/buildfeed" title="@BuildFeed.Local.Common.Twitter" target="_blank"><i class="fa fa-fw fa-twitter"></i> @BuildFeed.Local.Common.Twitter</a></li>
<li> <li>
@ -148,7 +147,7 @@
@Scripts.Render("~/bundles/jsrender") @Scripts.Render("~/bundles/jsrender")
<script type="text/javascript" src="~/Scripts/bfs.js"></script> <script type="text/javascript" src="~/Scripts/bfs.js"></script>
@RenderSection("scripts", required: false) @RenderSection("scripts", required: false)
<script id="result-template" type="text/x-jsrender"> <script id="result-template" type="text/x-jsrender">
<div class="col-sm-4"> <div class="col-sm-4">
<a href="{{:Url}}" class="list-group-item" title="{{:Title}}"> <a href="{{:Url}}" class="list-group-item" title="{{:Title}}">
<h4 class="list-group-item-heading">{{:Label}}</h4> <h4 class="list-group-item-heading">{{:Label}}</h4>
@ -156,5 +155,6 @@
</a> </a>
</div> </div>
</script> </script>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
</body> </body>
</html> </html>

View File

@ -25,5 +25,10 @@
</rule> </rule>
</rules> </rules>
</rewrite> </rewrite>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000" xdt:Transform="Insert" />
</customHeaders>
</httpProtocol>
</system.webServer> </system.webServer>
</configuration> </configuration>

View File

@ -10,7 +10,7 @@
</appSettings> </appSettings>
<system.web> <system.web>
<compilation debug="true" targetFramework="4.6.1" /> <compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6" /> <httpRuntime targetFramework="4.6" enableVersionHeader="false" />
<globalization culture="auto:en" uiCulture="auto:en" /> <globalization culture="auto:en" uiCulture="auto:en" />
<trace enabled="true" requestLimit="40" pageOutput="false" /> <trace enabled="true" requestLimit="40" pageOutput="false" />
<sessionState cookieless="UseCookies" /> <sessionState cookieless="UseCookies" />
@ -82,6 +82,14 @@
</rewriteMap> </rewriteMap>
</rewriteMaps> </rewriteMaps>
</rewrite> </rewrite>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Content-Type-Options" value="nosniff" />
<add name="X-Frame-Options" value="DENY" />
<add name="X-XSS-Protection" value="1; mode=block" />
</customHeaders>
</httpProtocol>
</system.webServer> </system.webServer>
<system.net> <system.net>
<mailSettings> <mailSettings>

View File

@ -0,0 +1,14 @@
[
{
"outputFileName": "content/style.css",
"inputFiles": [
"content/style.css"
]
},
{
"outputFileName": "content/rtl.css",
"inputFiles": [
"content/rtl.css"
]
}
]

1
BuildFeed/content/rtl.min.css vendored Normal file
View File

@ -0,0 +1 @@
.form-horizontal .form-control-static{text-align:left}.pagination>li>a,.pagination>li>span{float:right}h1[dir=ltr]{text-align:right}@media(min-width:768px){.navbar-header{float:right}.navbar-nav>li{float:right}.navbar-right{float:left !important;margin-left:-15px;margin-right:0}.navbar-right .dropdown-menu{right:auto;left:0}}

View File

@ -1,16 +1,24 @@
body, h1, h2, h3 body, h1, h2, h3
{ {
font-family: 'Rajdhani', sans-serif; font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif;
}
h1, h2, h3
{
text-shadow: none;
font-weight: 300;
} }
body body
{ {
font-size: 16px; font-size: 15px;
} }
h1 h1
{ {
font-size: 56px; font-size: 52px;
text-align: center;
margin-bottom: 15px;
} }
h1 a h1 a
@ -27,11 +35,22 @@ h1
} }
} }
h3
{
font-size: 32px;
margin: 1em 0 0.4em;
}
#page-content #page-content
{ {
padding-top: 50px; padding-top: 50px;
} }
.addthis_sharing_toolbox
{
margin: 0 -0.5em;
}
.at-share-tbx-element .at-share-btn .at-share-tbx-element .at-share-btn
{ {
margin-left: 8px !important; margin-left: 8px !important;
@ -62,8 +81,10 @@ h1
.build-group-title .build-group-title
{ {
font-size: 25px; font-size: 26px;
margin: 0 0 4px 0; font-weight: normal;
letter-spacing: -2px;
margin: 0 0 8px 0;
} }
@media (max-width:480px) @media (max-width:480px)
@ -76,7 +97,7 @@ h1
.build-group-p .build-group-p
{ {
margin-bottom: 4px; margin-bottom: 5px;
} }
.no-wrapping .no-wrapping
@ -106,7 +127,7 @@ h1
.form-details label .form-details label
{ {
font-size: 16px; font-size: 15px;
font-weight: normal; font-weight: normal;
} }
@ -127,7 +148,7 @@ h1
#page-footer #page-footer
{ {
font-size: 13px; font-size: 12px;
margin-top: 3em; margin-top: 3em;
} }
@ -202,17 +223,6 @@ label, .control-label, .help-block, .checkbox, .radio
font-size: 16px; font-size: 16px;
} }
#haackroutedebugger
{
color: #000;
}
#haackroutedebugger h1, #haackroutedebugger h2, #haackroutedebugger h3
{
text-shadow: none;
}
@media (max-width: 767px) @media (max-width: 767px)
{ {
} }

1
BuildFeed/content/style.min.css vendored Normal file
View File

@ -0,0 +1 @@
body,h1,h2,h3{font-family:"Segoe UI",Frutiger,"Frutiger Linotype","Dejavu Sans","Helvetica Neue",Arial,sans-serif}h1,h2,h3{text-shadow:none;font-weight:300}body{font-size:15px}h1{font-size:52px;text-align:center;margin-bottom:15px}h1 a{text-decoration:none;color:#000}@media(max-width:480px){h1{font-size:40px}}h3{font-size:32px;margin:1em 0 .4em}#page-content{padding-top:50px}.addthis_sharing_toolbox{margin:0 -.5em}.at-share-tbx-element .at-share-btn{margin-left:8px !important}.at-share-tbx-element .at-share-btn:first-child{margin-left:0 !important}.at_flat_counter{vertical-align:33% !important}.build-group{margin-bottom:2em}@media(max-width:767px){.build-group:nth-child(2n+1){clear:left}}.build-group-title{font-size:26px;font-weight:normal;letter-spacing:-2px;margin:0 0 8px 0}@media(max-width:480px){.build-group-title{font-size:22px}}.build-group-p{margin-bottom:5px}.no-wrapping{-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.eager-wrapping{-ms-word-wrap:break-word;word-wrap:break-word}.label-build-status{padding-bottom:1px}.field-validation-error{color:#ff4136}.form-details label{font-size:15px;font-weight:normal}.form-details .form-control-static{font-weight:bold}.form-details .form-control-static a.more-link{font-weight:normal}.credits-list dd+dt{margin-top:1.5em}#page-footer{font-size:12px;margin-top:3em}.form-horizontal .control-label{padding-top:8px}label,.control-label,.help-block,.checkbox,.radio{font-size:14px}.btn-reset{padding:9px 0 7px}.btn-xs{font-size:13px}.table .btn{padding:4px 9px}.table-admin h4{margin:.1em 0}.table-admin>tbody>tr>th,.table-admin>tbody>tr>td{vertical-align:middle}.trumbowyg-box.trumbowyg,.trumbowyg-editor.trumbowyg{margin:0;width:100%}.trumbowyg-black .trumbowyg-dropdown button{color:#fff !important}#search-results{margin-top:1em}#search-results .list-group-item{margin-bottom:1em}#search-results .list-group-item-heading{overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}#search-results .list-group-item-heading h4{font-size:16px}@media(min-width:768px) and (max-width:991px){.col-sm-2.build-group:nth-child(6n+1),.col-sm-3.build-group:nth-child(4n+1){clear:left}}@media(min-width:992px){.col-md-2.build-group:nth-child(6n+1){clear:left}}

View File

@ -7,13 +7,13 @@
<package id="jquery.TypeScript.DefinitelyTyped" version="3.0.6" targetFramework="net461" /> <package id="jquery.TypeScript.DefinitelyTyped" version="3.0.6" targetFramework="net461" />
<package id="jQuery.Validation" version="1.15.0" targetFramework="net461" /> <package id="jQuery.Validation" version="1.15.0" targetFramework="net461" />
<package id="jsrender.TypeScript.DefinitelyTyped" version="0.1.8" targetFramework="net461" /> <package id="jsrender.TypeScript.DefinitelyTyped" version="0.1.8" targetFramework="net461" />
<package id="Microsoft.ApplicationInsights" version="1.2.3" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights" version="2.0.0" targetFramework="net461" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="1.2.1" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="1.2.1" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="1.2.3" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.0.0" targetFramework="net461" />
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="1.2.3" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.0.0" targetFramework="net461" />
<package id="Microsoft.ApplicationInsights.Web" version="1.2.3" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights.Web" version="2.0.0" targetFramework="net461" />
<package id="Microsoft.ApplicationInsights.WindowsServer" version="1.2.3" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.0.0" targetFramework="net461" />
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="1.2.3" targetFramework="net46" /> <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.0.0" targetFramework="net461" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.Razor" version="3.2.3" 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" />
@ -24,11 +24,11 @@
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.1" targetFramework="net461" /> <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.1" targetFramework="net461" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.Net.Compilers" version="1.2.1" targetFramework="net461" developmentDependency="true" /> <package id="Microsoft.Net.Compilers" version="1.2.2" targetFramework="net461" developmentDependency="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="MongoDB.Bson" version="2.2.3" targetFramework="net46" /> <package id="MongoDB.Bson" version="2.2.4" targetFramework="net461" />
<package id="MongoDB.Driver" version="2.2.3" targetFramework="net46" /> <package id="MongoDB.Driver" version="2.2.4" targetFramework="net461" />
<package id="MongoDB.Driver.Core" version="2.2.3" targetFramework="net46" /> <package id="MongoDB.Driver.Core" version="2.2.4" targetFramework="net461" />
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net461" /> <package id="Newtonsoft.Json" version="8.0.3" targetFramework="net461" />
<package id="WebGrease" version="1.6.0" targetFramework="net45" /> <package id="WebGrease" version="1.6.0" targetFramework="net45" />
<package id="xwebrss" version="1.2.1.130" targetFramework="net45" /> <package id="xwebrss" version="1.2.1.130" targetFramework="net45" />

View File

@ -1,4 +1,3 @@
User-agent: * User-agent: *
Disallow: Disallow:
Sitemap: /xml-sitemap/ Sitemap: /xml-sitemap/