From 7d6ed90e3d995b52320899403e87ccdf8ca53cbe Mon Sep 17 00:00:00 2001 From: Thomas Hounsell Date: Mon, 11 Jul 2016 17:27:31 +0100 Subject: [PATCH] Add styling to more listings; tweaks --- BuildFeed/BuildFeed.csproj | 19 ++-- BuildFeed/Models/Build/Build.cs | 2 +- BuildFeed/Models/ViewModel/Front/FrontPage.cs | 2 +- BuildFeed/Scripts/bfs.js | 11 ++ BuildFeed/Scripts/bfs.js.map | 2 +- BuildFeed/Scripts/bfs.min.js | 2 +- BuildFeed/Scripts/bfs.ts | 16 ++- BuildFeed/Views/front/index.cshtml | 18 +-- BuildFeed/Views/front/viewLab.cshtml | 22 +++- BuildFeed/Views/front/viewSource.cshtml | 105 ++++++++++-------- BuildFeed/Views/front/viewYear.cshtml | 14 ++- BuildFeed/Views/shared/_default.cshtml | 6 +- BuildFeed/Views/support/login.cshtml | 4 +- BuildFeed/bundleconfig.json | 30 +++-- BuildFeed/compilerconfig.json | 17 ++- BuildFeed/content/default.min.css | 1 - BuildFeed/res/Web.config | 8 ++ BuildFeed/{content => res/css}/dark.css | 0 BuildFeed/{content => res/css}/dark.min.css | 0 BuildFeed/{content => res/css}/dark.scss | 0 BuildFeed/{content => res/css}/default.css | 51 +++++---- BuildFeed/res/css/default.min.css | 1 + BuildFeed/{content => res/css}/default.scss | 55 +++++---- BuildFeed/{content => res/css}/rtl.css | 0 BuildFeed/{content => res/css}/rtl.min.css | 0 BuildFeed/{content => res/css}/rtl.scss | 0 26 files changed, 234 insertions(+), 152 deletions(-) delete mode 100644 BuildFeed/content/default.min.css create mode 100644 BuildFeed/res/Web.config rename BuildFeed/{content => res/css}/dark.css (100%) rename BuildFeed/{content => res/css}/dark.min.css (100%) rename BuildFeed/{content => res/css}/dark.scss (100%) rename BuildFeed/{content => res/css}/default.css (86%) create mode 100644 BuildFeed/res/css/default.min.css rename BuildFeed/{content => res/css}/default.scss (86%) rename BuildFeed/{content => res/css}/rtl.css (100%) rename BuildFeed/{content => res/css}/rtl.min.css (100%) rename BuildFeed/{content => res/css}/rtl.scss (100%) diff --git a/BuildFeed/BuildFeed.csproj b/BuildFeed/BuildFeed.csproj index 15db4ee..1152af4 100644 --- a/BuildFeed/BuildFeed.csproj +++ b/BuildFeed/BuildFeed.csproj @@ -771,24 +771,24 @@ - + dark.scss - + dark.css - + default.scss - + default.css - + rtl.scss - + rtl.css @@ -811,18 +811,19 @@ - + compilerconfig.json - - + + bfs.ts + bfs.ts diff --git a/BuildFeed/Models/Build/Build.cs b/BuildFeed/Models/Build/Build.cs index 2a918fc..93aaf82 100644 --- a/BuildFeed/Models/Build/Build.cs +++ b/BuildFeed/Models/Build/Build.cs @@ -101,7 +101,7 @@ namespace BuildFeed.Models { nameof(BuildModel.LabUrl), ConfigurationManager.AppSettings["site:OSGLab"] } }).Sort(sortByCompileDate).Limit(1); - fp.CurrentOsg = (await query.ToListAsync())[0]; + fp.CurrentCanary = (await query.ToListAsync())[0]; query = _buildCollection.Find(new BsonDocument { diff --git a/BuildFeed/Models/ViewModel/Front/FrontPage.cs b/BuildFeed/Models/ViewModel/Front/FrontPage.cs index 5caedaf..0c569a0 100644 --- a/BuildFeed/Models/ViewModel/Front/FrontPage.cs +++ b/BuildFeed/Models/ViewModel/Front/FrontPage.cs @@ -2,8 +2,8 @@ { public class FrontPage { + public BuildModel CurrentCanary { get; set; } public BuildModel CurrentInsider { get; set; } - public BuildModel CurrentOsg { get; set; } public BuildModel CurrentRelease { get; set; } } } \ No newline at end of file diff --git a/BuildFeed/Scripts/bfs.js b/BuildFeed/Scripts/bfs.js index 5724509..71c5849 100644 --- a/BuildFeed/Scripts/bfs.js +++ b/BuildFeed/Scripts/bfs.js @@ -6,6 +6,13 @@ var BuildFeed; link.parentElement.classList.toggle("open"); } BuildFeed.DropdownClick = DropdownClick; + function SwitchLanguage(ev) { + ev.preventDefault(); + var link = this; + document.cookie = "lang=" + link.dataset["lang"] + "; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/"; + location.reload(true); + } + BuildFeed.SwitchLanguage = SwitchLanguage; function BuildFeedSetup(ev) { var ddParents = document.getElementsByClassName("dropdown-parent"); for (var i = 0; i < ddParents.length; i++) { @@ -16,6 +23,10 @@ var BuildFeed; } } } + var ddLangs = document.getElementById("settings-lang-menu").getElementsByTagName("a"); + for (var i = 0; i < ddLangs.length; i++) { + ddLangs[i].addEventListener("click", SwitchLanguage); + } } BuildFeed.BuildFeedSetup = BuildFeedSetup; })(BuildFeed || (BuildFeed = {})); diff --git a/BuildFeed/Scripts/bfs.js.map b/BuildFeed/Scripts/bfs.js.map index 3b8704c..2a9ebbd 100644 --- a/BuildFeed/Scripts/bfs.js.map +++ b/BuildFeed/Scripts/bfs.js.map @@ -1 +1 @@ -{"version":3,"file":"bfs.js","sourceRoot":"","sources":["bfs.ts"],"names":[],"mappings":"AAAA,IAAO,SAAS,CA2Bf;AA3BD,WAAO,SAAS,EAChB,CAAC;IACE,uBAA8B,EAAc;QAEzC,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,IAAM,IAAI,GAAG,IAAyB,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IANe,uBAAa,gBAM5B,CAAA;IAED,wBAA+B,EAAS;QAErC,IAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAErE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EACzC,CAAC;YACE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EACvD,CAAC;gBACE,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEtC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,CACxB,CAAC;oBACE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC/C,CAAC;YACJ,CAAC;QACJ,CAAC;IACJ,CAAC;IAhBe,wBAAc,iBAgB7B,CAAA;AACJ,CAAC,EA3BM,SAAS,KAAT,SAAS,QA2Bf;AAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"bfs.js","sourceRoot":"","sources":["bfs.ts"],"names":[],"mappings":"AAAA,IAAO,SAAS,CAyCf;AAzCD,WAAO,SAAS,EAChB,CAAC;IACE,uBAA8B,EAAc;QAEzC,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,IAAM,IAAI,GAAG,IAAyB,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IANe,uBAAa,gBAM5B,CAAA;IAED,wBAA+B,EAAc;QAE1C,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,IAAM,IAAI,GAAG,IAAyB,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,UAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oDAAiD,CAAC;QAChG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAPe,wBAAc,iBAO7B,CAAA;IAED,wBAA+B,EAAS;QAErC,IAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QACrE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EACzC,CAAC;YACE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EACvD,CAAC;gBACE,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEtC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,CACxB,CAAC;oBACE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC/C,CAAC;YACJ,CAAC;QACJ,CAAC;QAED,IAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EACvC,CAAC;YACE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC;IACJ,CAAC;IArBe,wBAAc,iBAqB7B,CAAA;AACJ,CAAC,EAzCM,SAAS,KAAT,SAAS,QAyCf;AAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/BuildFeed/Scripts/bfs.min.js b/BuildFeed/Scripts/bfs.min.js index a6f3b9f..115e0dc 100644 --- a/BuildFeed/Scripts/bfs.min.js +++ b/BuildFeed/Scripts/bfs.min.js @@ -1 +1 @@ -var BuildFeed;(function(n){function t(n){n.preventDefault();var t=this;t.parentElement.classList.toggle("open")}function i(){for(var i,u,r=document.getElementsByClassName("dropdown-parent"),n=0;n -

Current OSG

+

Current Canary

-

@(Model.CurrentOsg.MajorVersion).@(Model.CurrentOsg.MinorVersion).@(Model.CurrentOsg.Number).@(Model.CurrentOsg.Revision)

-

@Model.CurrentOsg.Lab

-

@Model.CurrentOsg.BuildTime.Value.ToString("HH:mm tt on dddd, dd MMMM yyyy")

+

@(Model.CurrentCanary.MajorVersion).@(Model.CurrentCanary.MinorVersion).@(Model.CurrentCanary.Number).@(Model.CurrentCanary.Revision)

+

@Model.CurrentCanary.Lab

+

@Model.CurrentCanary.BuildTime.Value.ToString("HH:mmtt, dddd dd MMMM yyyy")

@(Model.CurrentInsider.MajorVersion).@(Model.CurrentInsider.MinorVersion).@(Model.CurrentInsider.Number).@(Model.CurrentInsider.Revision)

@Model.CurrentInsider.Lab

-

@Model.CurrentInsider.BuildTime.Value.ToString("HH:mm tt on dddd, dd MMMM yyyy")

+

@Model.CurrentInsider.BuildTime.Value.ToString("HH:mmtt, dddd dd MMMM yyyy")

@(Model.CurrentRelease.MajorVersion).@(Model.CurrentRelease.MinorVersion).@(Model.CurrentRelease.Number).@(Model.CurrentRelease.Revision)

@Model.CurrentRelease.Lab

-

@Model.CurrentRelease.BuildTime.Value.ToString("HH:mm tt on dddd, dd MMMM yyyy")

+

@Model.CurrentRelease.BuildTime.Value.ToString("HH:mmtt, dddd dd MMMM yyyy")

@@ -49,7 +49,7 @@

@BuildFeed.Local.Front.Share


-

Frequently asked questions

+

About BuildFeed

Who runs BuildFeed? Is this supported by Microsoft?

BuildFeed is ran and maintained by a group of enthusiasts, without the support of Microsoft. We've certainly had sources shut down by changes at Microsoft in the past, and I'm sure we will in the future.

How does BuildFeed get its data?

diff --git a/BuildFeed/Views/front/viewLab.cshtml b/BuildFeed/Views/front/viewLab.cshtml index 39ec465..c28ce07 100644 --- a/BuildFeed/Views/front/viewLab.cshtml +++ b/BuildFeed/Views/front/viewLab.cshtml @@ -1,5 +1,6 @@ @model IEnumerable @using BuildFeed.Code +@using BuildFeed.Models @using Humanizer; @{ ViewBag.Title = string.Format("{0}{1} | {2}", string.Format(BuildFeed.Local.Front.BuildsFrom, ViewBag.ItemId), ViewBag.PageNumber == 1 ? "" : string.Format(BuildFeed.Local.Common.PageTitleSegment, ViewBag.PageNumber), BuildFeed.Local.Common.SiteName); @@ -33,12 +34,20 @@ }

@BuildFeed.Local.Front.Share

+

@BuildFeed.Local.Front.Listing

-
- @foreach (var build in Model) +
+ @foreach (BuildModel build in Model) { -
-

@string.Format("{0}.{1}.{2}.{3}", build.MajorVersion, build.MinorVersion, build.Number, build.Revision)

+
+

+ + @($"{build.MajorVersion}.{build.MinorVersion}.{build.Number}.{build.Revision}") + +

@if (User.Identity.IsAuthenticated) {

@@ -56,7 +65,7 @@ @build.BuildTime.Value.ToShortTimeString()
}

-

+

@if (build.IsLeaked) { @BuildFeed.Local.Front.Public @@ -68,5 +77,8 @@

} +
+
+
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewLab", ViewContext.RouteData.Values) \ No newline at end of file diff --git a/BuildFeed/Views/front/viewSource.cshtml b/BuildFeed/Views/front/viewSource.cshtml index 089475c..b39918e 100644 --- a/BuildFeed/Views/front/viewSource.cshtml +++ b/BuildFeed/Views/front/viewSource.cshtml @@ -1,70 +1,81 @@ @model IEnumerable @using BuildFeed.Code +@using BuildFeed.Models @using Humanizer; @{ - ViewBag.Title = string.Format("{0}{1} | {2}", ViewBag.ItemId, ViewBag.PageNumber == 1 ? "" : string.Format(BuildFeed.Local.Common.PageTitleSegment, ViewBag.PageNumber), @BuildFeed.Local.Common.SiteName); + ViewBag.Title = string.Format("{0}{1} | {2}", ViewBag.ItemId, ViewBag.PageNumber == 1 ? "" : string.Format(BuildFeed.Local.Common.PageTitleSegment, ViewBag.PageNumber), @BuildFeed.Local.Common.SiteName); } @section head { - @if (ViewBag.MetaItem != null) - { - - - } + @if (ViewBag.MetaItem != null) + { + + + } - @if (ViewBag.PageNumber != 1) - { - - } + @if (ViewBag.PageNumber != 1) + { + + } }

@ViewBag.ItemId

@if (ViewBag.MetaItem != null && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent)) { -

@BuildFeed.Local.Front.About

- @Html.Raw(ViewBag.MetaItem.PageContent) +

@BuildFeed.Local.Front.About

+ @Html.Raw(ViewBag.MetaItem.PageContent) }

@BuildFeed.Local.Front.Share

+

@BuildFeed.Local.Front.Listing

-
- @foreach (var build in Model) - { -
-

@string.Format("{0}.{1}.{2}.{3}", build.MajorVersion, build.MinorVersion, build.Number, build.Revision)

- @if (User.Identity.IsAuthenticated) +
+ @foreach (BuildModel build in Model) + { +
+

+ + @($"{build.MajorVersion}.{build.MinorVersion}.{build.Number}.{build.Revision}") + +

+ @if (User.Identity.IsAuthenticated) { -

- @BuildFeed.Local.Front.Edit - @if (Roles.IsUserInRole("Administrators")) - { - @BuildFeed.Local.Front.Delete - } -

- } -

- @if (!string.IsNullOrEmpty(build.Lab)) - { -

@build.Lab
- } - @if (build.BuildTime.HasValue) - { - @build.BuildTime.Value.ToLongDateWithoutDay()
- @build.BuildTime.Value.ToShortTimeString()
- } -

- @if (build.IsLeaked) - { - @BuildFeed.Local.Front.Public - } - else - { - @BuildFeed.Local.Front.Private - } + @BuildFeed.Local.Front.Edit + @if (Roles.IsUserInRole("Administrators")) + { + @BuildFeed.Local.Front.Delete + }

-
- } + } + @if (!string.IsNullOrEmpty(build.Lab)) + { +

@build.Lab

+ } + @if (build.BuildTime.HasValue) + { +

+ @build.BuildTime.Value.ToLongDateWithoutDay() +

+

+ @build.BuildTime.Value.ToShortTimeString() +

+ } +

+ @if (build.IsLeaked) + { + @BuildFeed.Local.Front.Public + } + else + { + @BuildFeed.Local.Front.Private + } +

+
+ }
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewSource", ViewContext.RouteData.Values) \ No newline at end of file diff --git a/BuildFeed/Views/front/viewYear.cshtml b/BuildFeed/Views/front/viewYear.cshtml index 811fc10..1c7819d 100644 --- a/BuildFeed/Views/front/viewYear.cshtml +++ b/BuildFeed/Views/front/viewYear.cshtml @@ -35,12 +35,13 @@ }

@Front.Share

+

@Front.Listing

-
+
@foreach (BuildModel build in Model) { - @PaginationHelpers.PaginationBlock((int) ViewBag.PageNumber, (int) ViewBag.PageCount, "viewYear", ViewContext.RouteData.Values) \ No newline at end of file diff --git a/BuildFeed/Views/shared/_default.cshtml b/BuildFeed/Views/shared/_default.cshtml index 56fbba2..b6a14f1 100644 --- a/BuildFeed/Views/shared/_default.cshtml +++ b/BuildFeed/Views/shared/_default.cshtml @@ -20,11 +20,11 @@ - - + + @if (isRtl) { - + } @ViewBag.Title @RenderSection("head", false) diff --git a/BuildFeed/Views/support/login.cshtml b/BuildFeed/Views/support/login.cshtml index 07a53a1..6f5e92c 100644 --- a/BuildFeed/Views/support/login.cshtml +++ b/BuildFeed/Views/support/login.cshtml @@ -65,5 +65,7 @@ @section Scripts { - @Scripts.Render("~/bundles/jqueryval") + + + } \ No newline at end of file diff --git a/BuildFeed/bundleconfig.json b/BuildFeed/bundleconfig.json index efd6133..8b2fd4c 100644 --- a/BuildFeed/bundleconfig.json +++ b/BuildFeed/bundleconfig.json @@ -1,20 +1,26 @@ [ + { + "outputFileName": "res/css/dark.min.css", + "inputFiles": [ + "res/css/dark.css" + ] + }, + { + "outputFileName": "res/css/default.min.css", + "inputFiles": [ + "res/css/default.css" + ] + }, + { + "outputFileName": "res/css/rtl.min.css", + "inputFiles": [ + "res/css/rtl.css" + ] + }, { "outputFileName": "Scripts/bfs.min.js", "inputFiles": [ "Scripts/bfs.js" ] - }, - { - "outputFileName": "content/default.min.css", - "inputFiles": [ - "content/default.css" - ] - }, - { - "outputFileName": "content/dark.min.css", - "inputFiles": [ - "content/dark.css" - ] } ] diff --git a/BuildFeed/compilerconfig.json b/BuildFeed/compilerconfig.json index 47a938f..0d650f5 100644 --- a/BuildFeed/compilerconfig.json +++ b/BuildFeed/compilerconfig.json @@ -1,17 +1,14 @@ -[ +[ { - "outputFile": "content/default.css", - "inputFile": "content/default.scss", - "sourceMap": false + "outputFile": "res/css/default.css", + "inputFile": "res/css/default.scss" }, { - "outputFile": "content/rtl.css", - "inputFile": "content/rtl.scss", - "sourceMap": false + "outputFile": "res/css/dark.css", + "inputFile": "res/css/dark.scss" }, { - "outputFile": "content/dark.css", - "inputFile": "content/dark.scss", - "sourceMap": false + "outputFile": "res/css/rtl.css", + "inputFile": "res/css/rtl.scss" } ] \ No newline at end of file diff --git a/BuildFeed/content/default.min.css b/BuildFeed/content/default.min.css deleted file mode 100644 index 39fa1a6..0000000 --- a/BuildFeed/content/default.min.css +++ /dev/null @@ -1 +0,0 @@ -body{font-family:'Roboto',sans-serif;font-size:10pt;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}a{text-decoration:none}h1{font-size:3em;font-weight:500}.container{width:1240px;max-width:80%;margin:0 auto}.no-wrapping{-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.eager-wrapping{-ms-word-wrap:break-word;word-wrap:break-word}header#page-header h1{font-weight:300;margin:.33em 0}nav#page-navigation #page-navigation-links{margin:0 -15px;padding:0;text-align:right}nav#page-navigation #page-navigation-links>li{display:inline-block;vertical-align:top}nav#page-navigation #page-navigation-links>li>a{display:block;padding:15px}nav#page-navigation button{display:none}.dropdown-parent{position:relative}.dropdown-parent .dropdown-menu{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:none;position:absolute;right:0;width:calc(80vw + 20px);max-width:1240px;padding:15px;text-align:left}.dropdown-parent .dropdown-menu h4{margin:0 0 .5em;font-size:1.2em;font-weight:500}.dropdown-parent .dropdown-menu .dropdown-menu-block{float:left;display:inline-block;vertical-align:top}.dropdown-parent .dropdown-menu .dropdown-menu-block ul{padding:0}.dropdown-parent .dropdown-menu .dropdown-menu-block li{list-style-type:none;line-height:2em;float:left;width:20%;min-width:100px;vertical-align:top}.dropdown-parent .dropdown-menu .dropdown-menu-block li>a{display:block;padding:0 1em}.dropdown-parent .dropdown-menu #settings-theme-menu{width:120px}.dropdown-parent .dropdown-menu #settings-lang-menu{width:calc(100% - 120px)}.dropdown-parent.open .dropdown-menu{display:block}article{padding:2em 0}article h1{font-size:5em;font-weight:300;text-align:center;margin:0 0 .33333em}article h3{font-size:2em;font-weight:bold;padding:0 0 .33333em;margin:0 0 .66667em;text-transform:uppercase;letter-spacing:.25em;border-bottom:1px solid}article .build-group-listing{display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:center;margin:0 -.75em}article .build-group-listing .build-group{width:calc(16.66667% - 1.5em);min-width:160px;flex-grow:1;margin:0 .75em 1em;box-sizing:border-box}article .build-group-listing .build-group h3{font-size:1.75em;font-weight:300;padding:0;margin:0 0 .4em;letter-spacing:-.05em;border-bottom:0;text-transform:lowercase}article .build-group-listing .build-group p{font-size:1.1em;font-weight:300;margin:0 0 .66667em}article .build-group-listing .build-group-empty{width:calc(16.66667% - 1.5em);min-width:160px;flex-grow:1;margin:0 .75em;box-sizing:border-box}.latest-flex{display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between;margin-right:-1em}.latest-flex .latest-flex-item{width:calc(33.33333% - 1em);min-width:200px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;margin-bottom:2em;flex-grow:1;margin-right:1em}.latest-flex .latest-flex-item h3.latest-flex-title{border-bottom:0;margin:0;padding:0;font-size:1.25em;font-weight:normal;text-align:center;padding:.5em;color:#fff}.latest-flex .latest-flex-item.latest-flex-red{border:1px solid #c00}.latest-flex .latest-flex-item.latest-flex-red h3.latest-flex-title{background:#c00}.latest-flex .latest-flex-item.latest-flex-yellow{border:1px solid #cc0}.latest-flex .latest-flex-item.latest-flex-yellow h3.latest-flex-title{background:#cc0}.latest-flex .latest-flex-item.latest-flex-green{border:1px solid #0c0}.latest-flex .latest-flex-item.latest-flex-green h3.latest-flex-title{background:#0c0}.latest-flex .latest-flex-item .latest-flex-detail{color:#373736;text-align:center;font-weight:300}.latest-flex .latest-flex-item .latest-flex-detail .latest-flex-build{font-size:2.5em;margin:.5em 0 .25em}.latest-flex .latest-flex-item .latest-flex-detail .latest-flex-lab{font-size:1.5em;margin:0 0 .5em}.latest-full{display:block;background:#00c;font-weight:normal;text-align:center;color:#fff;margin:0 0 2em;padding:.5em}ul.pagination{text-align:center;margin:0 0 1em;padding:0;display:flex;justify-content:center}ul.pagination>li{list-style:none;width:1.5em;line-height:1.5em;margin:0 .25em}ul.pagination>li>a,ul.pagination>li>span{display:block;border-radius:.5em}ul.pagination>li>span{cursor:not-allowed}footer#page-footer{padding-top:1.33333em;font-size:.85em}footer#page-footer .footer-flex{display:flex}footer#page-footer .footer-flex .footer-flex-item{width:50%;min-width:200px;text-align:center}footer#page-footer .footer-flex .footer-flex-item:last-child{text-align:right}footer#page-footer .footer-flex .footer-flex-item:first-child{text-align:left}footer#page-footer p{margin:0 0 .4em} \ No newline at end of file diff --git a/BuildFeed/res/Web.config b/BuildFeed/res/Web.config new file mode 100644 index 0000000..600e1f9 --- /dev/null +++ b/BuildFeed/res/Web.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/BuildFeed/content/dark.css b/BuildFeed/res/css/dark.css similarity index 100% rename from BuildFeed/content/dark.css rename to BuildFeed/res/css/dark.css diff --git a/BuildFeed/content/dark.min.css b/BuildFeed/res/css/dark.min.css similarity index 100% rename from BuildFeed/content/dark.min.css rename to BuildFeed/res/css/dark.min.css diff --git a/BuildFeed/content/dark.scss b/BuildFeed/res/css/dark.scss similarity index 100% rename from BuildFeed/content/dark.scss rename to BuildFeed/res/css/dark.scss diff --git a/BuildFeed/content/default.css b/BuildFeed/res/css/default.css similarity index 86% rename from BuildFeed/content/default.css rename to BuildFeed/res/css/default.css index 442771a..2c6f4c8 100644 --- a/BuildFeed/content/default.css +++ b/BuildFeed/res/css/default.css @@ -93,11 +93,13 @@ article { font-weight: 300; text-align: center; margin: 0 0 0.33333em; } + article h1.eager-wrapping { + font-size: 4em; } article h3 { font-size: 2em; font-weight: bold; padding: 0 0 0.33333em; - margin: 0 0 0.66667em; + margin: 0.33333em 0 0.66667em; text-transform: uppercase; letter-spacing: 0.25em; border-bottom: 1px solid; } @@ -109,8 +111,7 @@ article { justify-content: center; margin: 0 -0.75em; } article .build-group-listing .build-group { - width: calc(16.66667% - 1.5em); - min-width: 160px; + width: 160px; flex-grow: 1; margin: 0 0.75em 1em; box-sizing: border-box; } @@ -127,8 +128,7 @@ article { font-weight: 300; margin: 0 0 0.66667em; } article .build-group-listing .build-group-empty { - width: calc(16.66667% - 1.5em); - min-width: 160px; + width: 160px; flex-grow: 1; margin: 0 0.75em; box-sizing: border-box; } @@ -139,17 +139,15 @@ article { -webkit-flex-wrap: wrap; flex-wrap: wrap; justify-content: space-between; - margin-right: -1em; } + margin: 2em -2em 0 0; } .latest-flex .latest-flex-item { - width: calc(33.33333% - 1em); - min-width: 200px; + width: 240px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; background: #fff; - margin-bottom: 2em; flex-grow: 1; - margin-right: 1em; } + margin: 0 2em 2em 0; } .latest-flex .latest-flex-item h3.latest-flex-title { border-bottom: 0; margin: 0; @@ -157,39 +155,42 @@ article { font-size: 1.25em; font-weight: normal; text-align: center; - padding: 0.5em; + padding: 0.4em 0.5em; + margin: -1px; color: #fff; } .latest-flex .latest-flex-item.latest-flex-red { - border: 1px solid #c00; } + border: 0.16667em solid #FF2626; } .latest-flex .latest-flex-item.latest-flex-red h3.latest-flex-title { - background: #c00; } + background: #FF2626; } .latest-flex .latest-flex-item.latest-flex-yellow { - border: 1px solid #cc0; } + border: 0.16667em solid #FF9F19; } .latest-flex .latest-flex-item.latest-flex-yellow h3.latest-flex-title { - background: #cc0; } + background: #FF9F19; } .latest-flex .latest-flex-item.latest-flex-green { - border: 1px solid #0c0; } + border: 0.16667em solid #12B23F; } .latest-flex .latest-flex-item.latest-flex-green h3.latest-flex-title { - background: #0c0; } + background: #12B23F; } .latest-flex .latest-flex-item .latest-flex-detail { color: #373736; text-align: center; font-weight: 300; } .latest-flex .latest-flex-item .latest-flex-detail .latest-flex-build { - font-size: 2.5em; - margin: 0.5em 0 0.25em; } + font-size: 2.33333em; + margin: 0.33333em 0 0.16667em; } .latest-flex .latest-flex-item .latest-flex-detail .latest-flex-lab { font-size: 1.5em; margin: 0 0 0.5em; } + .latest-flex .latest-flex-item .latest-flex-detail .latest-flex-time { + margin: 0 0 0.75em; } .latest-full { display: block; - background: #00c; + background: #1274B2; font-weight: normal; text-align: center; color: #fff; margin: 0 0 2em; - padding: 0.5em; } + padding: 0.66667em; } ul.pagination { text-align: center; @@ -213,11 +214,15 @@ footer#page-footer { padding-top: 1.33333em; font-size: 0.85em; } footer#page-footer .footer-flex { - display: flex; } + display: flex; + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; } footer#page-footer .footer-flex .footer-flex-item { width: 50%; min-width: 200px; - text-align: center; } + text-align: center; + flex-grow: 1; } footer#page-footer .footer-flex .footer-flex-item:last-child { text-align: right; } footer#page-footer .footer-flex .footer-flex-item:first-child { diff --git a/BuildFeed/res/css/default.min.css b/BuildFeed/res/css/default.min.css new file mode 100644 index 0000000..2ca3ceb --- /dev/null +++ b/BuildFeed/res/css/default.min.css @@ -0,0 +1 @@ +body{font-family:'Roboto',sans-serif;font-size:10pt;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}a{text-decoration:none}h1{font-size:3em;font-weight:500}.container{width:1240px;max-width:80%;margin:0 auto}.no-wrapping{-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.eager-wrapping{-ms-word-wrap:break-word;word-wrap:break-word}header#page-header h1{font-weight:300;margin:.33em 0}nav#page-navigation #page-navigation-links{margin:0 -15px;padding:0;text-align:right}nav#page-navigation #page-navigation-links>li{display:inline-block;vertical-align:top}nav#page-navigation #page-navigation-links>li>a{display:block;padding:15px}nav#page-navigation button{display:none}.dropdown-parent{position:relative}.dropdown-parent .dropdown-menu{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:none;position:absolute;right:0;width:calc(80vw + 20px);max-width:1240px;padding:15px;text-align:left}.dropdown-parent .dropdown-menu h4{margin:0 0 .5em;font-size:1.2em;font-weight:500}.dropdown-parent .dropdown-menu .dropdown-menu-block{float:left;display:inline-block;vertical-align:top}.dropdown-parent .dropdown-menu .dropdown-menu-block ul{padding:0}.dropdown-parent .dropdown-menu .dropdown-menu-block li{list-style-type:none;line-height:2em;float:left;width:20%;min-width:100px;vertical-align:top}.dropdown-parent .dropdown-menu .dropdown-menu-block li>a{display:block;padding:0 1em}.dropdown-parent .dropdown-menu #settings-theme-menu{width:120px}.dropdown-parent .dropdown-menu #settings-lang-menu{width:calc(100% - 120px)}.dropdown-parent.open .dropdown-menu{display:block}article{padding:2em 0}article h1{font-size:5em;font-weight:300;text-align:center;margin:0 0 .33333em}article h1.eager-wrapping{font-size:4em}article h3{font-size:2em;font-weight:bold;padding:0 0 .33333em;margin:.33333em 0 .66667em;text-transform:uppercase;letter-spacing:.25em;border-bottom:1px solid}article .build-group-listing{display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:center;margin:0 -.75em}article .build-group-listing .build-group{width:160px;flex-grow:1;margin:0 .75em 1em;box-sizing:border-box}article .build-group-listing .build-group h3{font-size:1.75em;font-weight:300;padding:0;margin:0 0 .4em;letter-spacing:-.05em;border-bottom:0;text-transform:lowercase}article .build-group-listing .build-group p{font-size:1.1em;font-weight:300;margin:0 0 .66667em}article .build-group-listing .build-group-empty{width:160px;flex-grow:1;margin:0 .75em;box-sizing:border-box}.latest-flex{display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between;margin:2em -2em 0 0}.latest-flex .latest-flex-item{width:240px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;flex-grow:1;margin:0 2em 2em 0}.latest-flex .latest-flex-item h3.latest-flex-title{border-bottom:0;margin:0;padding:0;font-size:1.25em;font-weight:normal;text-align:center;padding:.4em .5em;margin:-1px;color:#fff}.latest-flex .latest-flex-item.latest-flex-red{border:.16667em solid #ff2626}.latest-flex .latest-flex-item.latest-flex-red h3.latest-flex-title{background:#ff2626}.latest-flex .latest-flex-item.latest-flex-yellow{border:.16667em solid #ff9f19}.latest-flex .latest-flex-item.latest-flex-yellow h3.latest-flex-title{background:#ff9f19}.latest-flex .latest-flex-item.latest-flex-green{border:.16667em solid #12b23f}.latest-flex .latest-flex-item.latest-flex-green h3.latest-flex-title{background:#12b23f}.latest-flex .latest-flex-item .latest-flex-detail{color:#373736;text-align:center;font-weight:300}.latest-flex .latest-flex-item .latest-flex-detail .latest-flex-build{font-size:2.33333em;margin:.33333em 0 .16667em}.latest-flex .latest-flex-item .latest-flex-detail .latest-flex-lab{font-size:1.5em;margin:0 0 .5em}.latest-flex .latest-flex-item .latest-flex-detail .latest-flex-time{margin:0 0 .75em}.latest-full{display:block;background:#1274b2;font-weight:normal;text-align:center;color:#fff;margin:0 0 2em;padding:.66667em}ul.pagination{text-align:center;margin:0 0 1em;padding:0;display:flex;justify-content:center}ul.pagination>li{list-style:none;width:1.5em;line-height:1.5em;margin:0 .25em}ul.pagination>li>a,ul.pagination>li>span{display:block;border-radius:.5em}ul.pagination>li>span{cursor:not-allowed}footer#page-footer{padding-top:1.33333em;font-size:.85em}footer#page-footer .footer-flex{display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}footer#page-footer .footer-flex .footer-flex-item{width:50%;min-width:200px;text-align:center;flex-grow:1}footer#page-footer .footer-flex .footer-flex-item:last-child{text-align:right}footer#page-footer .footer-flex .footer-flex-item:first-child{text-align:left}footer#page-footer p{margin:0 0 .4em} \ No newline at end of file diff --git a/BuildFeed/content/default.scss b/BuildFeed/res/css/default.scss similarity index 86% rename from BuildFeed/content/default.scss rename to BuildFeed/res/css/default.scss index 276ff53..92cb9bf 100644 --- a/BuildFeed/content/default.scss +++ b/BuildFeed/res/css/default.scss @@ -158,6 +158,11 @@ article font-weight: 300; text-align: center; margin: 0 0 #{(1em / 3)}; + + &.eager-wrapping + { + font-size: 4em; + } } h3 @@ -165,7 +170,7 @@ article font-size: 2em; font-weight: bold; padding: 0 0 #{(1em / 3)}; - margin: 0 0 #{(2em / 3)}; + margin: #{(1em / 3)} 0 #{(2em / 3)}; text-transform: uppercase; letter-spacing: #{(1em / 4)}; border-bottom: 1px solid; @@ -182,8 +187,7 @@ article .build-group { - width: calc(#{(100% / 6)} - 1.5em); - min-width: 160px; + width: 160px; flex-grow: 1; margin: 0 0.75em 1em; box-sizing: border-box; @@ -209,8 +213,7 @@ article .build-group-empty { - width: calc(#{(100% / 6)} - 1.5em); - min-width: 160px; + width: 160px; flex-grow: 1; margin: 0 0.75em; box-sizing: border-box; @@ -225,19 +228,17 @@ article -webkit-flex-wrap: wrap; flex-wrap: wrap; justify-content: space-between; - margin-right: -1em; + margin: 2em -2em 0 0; .latest-flex-item { - width: calc(#{(100% / 3)} - 1em); - min-width: 200px; + width: 240px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; background: #fff; - margin-bottom: 2em; flex-grow: 1; - margin-right: 1em; + margin: 0 2em 2em 0; h3.latest-flex-title { @@ -247,37 +248,38 @@ article font-size: 1.25em; font-weight: normal; text-align: center; - padding: 0.5em; + padding: 0.4em 0.5em; + margin: -1px; color: #fff; } &.latest-flex-red { - border: 1px solid #c00; + border: #{(1em / 6)} solid #FF2626; h3.latest-flex-title { - background: #c00; + background: #FF2626; } } &.latest-flex-yellow { - border: 1px solid #cc0; + border: #{(1em / 6)} solid #FF9F19; h3.latest-flex-title { - background: #cc0; + background: #FF9F19; } } &.latest-flex-green { - border: 1px solid #0c0; + border: #{(1em / 6)} solid #12B23F; h3.latest-flex-title { - background: #0c0; + background: #12B23F; } } @@ -289,15 +291,20 @@ article .latest-flex-build { - font-size: 2.5em; - margin: 0.5em 0 0.25em; + font-size: #{(7em / 3)}; + margin: #{(1em / 3)} 0 #{(1em / 6)}; } .latest-flex-lab - { + { font-size: 1.5em; margin: 0 0 0.5em; } + + .latest-flex-time + { + margin: 0 0 0.75em; + } } } } @@ -305,12 +312,12 @@ article .latest-full { display: block; - background: #00c; + background: #1274B2; font-weight: normal; text-align: center; color: #fff; margin: 0 0 2em; - padding: 0.5em; + padding: #{(2em / 3)}; } ul.pagination @@ -350,12 +357,16 @@ footer#page-footer .footer-flex { display: flex; + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; .footer-flex-item { width: 50%; min-width: 200px; text-align: center; + flex-grow: 1; &:last-child { diff --git a/BuildFeed/content/rtl.css b/BuildFeed/res/css/rtl.css similarity index 100% rename from BuildFeed/content/rtl.css rename to BuildFeed/res/css/rtl.css diff --git a/BuildFeed/content/rtl.min.css b/BuildFeed/res/css/rtl.min.css similarity index 100% rename from BuildFeed/content/rtl.min.css rename to BuildFeed/res/css/rtl.min.css diff --git a/BuildFeed/content/rtl.scss b/BuildFeed/res/css/rtl.scss similarity index 100% rename from BuildFeed/content/rtl.scss rename to BuildFeed/res/css/rtl.scss