dark theme

This commit is contained in:
2021-09-12 20:45:43 +01:00
parent 45d6c22d1e
commit 386eec262d
13 changed files with 7929 additions and 97 deletions

2
.gitignore vendored
View File

@ -11,3 +11,5 @@ bower_components/
test/isn.tests/bin test/isn.tests/bin
test/isn.tests/obj/ test/isn.tests/obj/
test/isnd.tests/appsettings.Testing.json test/isnd.tests/appsettings.Testing.json
wwwroot/.sass-cache/
src/isnd/wwwroot/.sass-cache/

View File

@ -15,8 +15,8 @@ namespace isnd.Controllers
{ {
var applicationDbContext = _dbContext.Packages.Include(p => p.Versions).Where( var applicationDbContext = _dbContext.Packages.Include(p => p.Versions).Where(
p => ( model.Prerelease || p.Versions.Any(v => !v.IsPrerelease)) p => ( model.Prerelease || p.Versions.Any(v => !v.IsPrerelease))
&& ((model.query == null) || p.Id.StartsWith(model.query))); && ((model.Query == null) || p.Id.StartsWith(model.Query)));
model.data = await applicationDbContext.ToArrayAsync(); model.Data = await applicationDbContext.ToArrayAsync();
return View(model); return View(model);
} }

View File

@ -99,9 +99,9 @@ namespace isnd.Services
return new PackageIndexViewModel return new PackageIndexViewModel
{ {
query = query, Query = query,
totalHits = total, TotalHits = total,
data = pkgs Data = pkgs
}; };
} }
public AutoCompleteResult AutoComplete(string id, public AutoCompleteResult AutoComplete(string id,

View File

@ -1,12 +1,20 @@
using isnd.Data; using isnd.Data;
using Newtonsoft.Json;
namespace isnd.ViewModels namespace isnd.ViewModels
{ {
public class PackageIndexViewModel public class PackageIndexViewModel
{ {
[JsonProperty("prerelease")]
public bool Prerelease { get; set; } public bool Prerelease { get; set; }
public Package[] data {get; set;}
public string query { get; set; } [JsonProperty("data")]
public int totalHits { get; internal set; } public Package[] Data {get; set;}
[JsonProperty("query")]
public string Query { get; set; }
[JsonProperty("totalHits")]
public int TotalHits { get; internal set; }
} }
} }

View File

@ -0,0 +1,17 @@
@model HomeIndexViewModel
@{
foreach (string leashed in new string[] { "pkg-push", "pkg-get",
"pkg-autocomplete","pkg-search","pkg-catalog"})
{
if (Model.UnleashClient.IsEnabled(leashed))
{
//do some magic
<p>@leashed</p>
}
else
{
//do old boring stuff
<p>No @leashed (disabled)</p>
}
}
}

View File

@ -1,31 +1,12 @@
@model HomeIndexViewModel @model HomeIndexViewModel
@{ @{
ViewData["Title"] = "Home Page"; ViewData["Title"] = "Home Page";
} }
<div class="text-center"> <div class="text-center">
<h1 class="display-4">Welcome</h1> <h1 class="display-4">Bienvenue</h1>
<h1> <h1>
<img src="~/icon.jpg"> <img src="~/icon.jpg">
Welcome to isnd Bienvenue dans isnd
</h1> </h1>
<strong>@Model.PkgCount identifiant(s) de paquet dans le SI</strong> <strong>@Model.PkgCount identifiant(s) de paquet dans le SI</strong>
@{
foreach (string leashed in new string[] { "pkg-push", "pkg-get",
"pkg-autocomplete","pkg-search","pkg-catalog"})
{
if (Model.UnleashClient.IsEnabled(leashed))
{
//do some magic
<p>@leashed</p>
}
else
{
//do old boring stuff
<p>No @leashed (disabled)</p>
}
}
}
</div> </div>

View File

@ -11,9 +11,9 @@
<div asp-validation-summary="ModelOnly" class="text-danger"></div> <div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group"> <div class="form-group">
<label asp-for="query" class="control-label"></label> <label asp-for="Query" class="control-label"></label>
<input asp-for="query" class="form-control" /> <input asp-for="Query" class="form-control" />
<label asp-for="totalHits" class="control-label"></label> <label asp-for="TotalHits" class="control-label"></label>
</div> </div>
<div class="form-group"> <div class="form-group">
<input type="submit" value="Find" class="btn btn-default" /> <input type="submit" value="Find" class="btn btn-default" />
@ -25,16 +25,16 @@
<thead> <thead>
<tr> <tr>
<th> <th>
@Html.DisplayNameFor(model => model.data[0].Id) @Html.DisplayNameFor(model => model.Data[0].Id)
</th> </th>
<th> <th>
@Html.DisplayNameFor(model => model.data[0].Description) @Html.DisplayNameFor(model => model.Data[0].Description)
</th> </th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach (var item in Model.data) { @foreach (var item in Model.Data) {
<tr> <tr>
<td> <td>
@Html.DisplayFor(modelItem => item.Id) @Html.DisplayFor(modelItem => item.Id)

View File

@ -5,11 +5,11 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - isnd</title> <title>@ViewData["Title"] - isnd</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="~/css/site.css" /> <link rel="stylesheet" href="~/css/site-g.css" />
</head> </head>
<body> <body>
<header> <header>
<nav class="navbar navbar-expand-lg navbar-light bg-light"> <nav class="navbar navbar-dark bg-dark navbar-expand-sm" >
<div class="container"> <div class="container">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">isnd</a> <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">isnd</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
@ -18,14 +18,14 @@
<div class="collapse navbar-collapse" id="navbarSupportedContent"> <div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto"> <ul class="navbar-nav mr-auto">
<li class="nav-item active"> <li class="nav-item active">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home<span class="sr-only">(current)</span></a> <a class="nav-link" asp-area="" asp-controller="Home" asp-action="Index">Home<span class="sr-only">(current)</span></a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a> <a class="nav-link" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li> </li>
</ul> </ul>
<form class="form-inline my-2 my-lg-0"> <form class="form-inline my-2 my-lg-0" asp-action="Index" asp-controller="Packages">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <input name="Query" id="Query" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form> </form>
<partial name="_LoginPartial" /> <partial name="_LoginPartial" />
@ -44,6 +44,9 @@
&copy; 2021 - isn - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a> &copy; 2021 - isn - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</div> </div>
</footer> </footer>
<!-- <script src="/lib/jquery/dist/jquery.slim.min.js" ></script>
<script src="/lib/popper/popper.min.js"></script>
<script src="/lib/bootstrap/dist/js/bootstrap.min.js" ></script> -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

View File

@ -6,14 +6,14 @@
@if (SignInManager.IsSignedIn(User)) @if (SignInManager.IsSignedIn(User))
{ {
<li class="nav-item"> <li class="nav-item">
<a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @UserManager.GetUserName(User)!</a> <a class="nav-link" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link text-dark" asp-controller="ApiKeys" asp-action="Index" title="Api Keys">Your API keys</a> <a class="nav-link" asp-controller="ApiKeys" asp-action="Index" title="Api Keys">Your API keys</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<form class="form-inline" asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Action("Index", "Home", new { area = "" })"> <form class="form-inline" asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Action("Index", "Home", new { area = "" })">
<button type="submit" class="nav-link btn btn-link text-dark">Logout</button> <button type="submit" class="nav-link btn btn-link">Logout</button>
</form> </form>
</li> </li>
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +0,0 @@
.body-container {
margin-top: 60px;
padding-bottom: 40px; }
.welcome-page li {
list-style: none;
padding: 4px; }
.logged-out-page iframe {
display: none;
width: 0;
height: 0; }
.grants-page .card {
margin-top: 20px;
border-bottom: 1px solid lightgray; }
.grants-page .card .card-title {
font-size: 120%;
font-weight: bold; }
.grants-page .card .card-title img {
width: 100px;
height: 100px; }
.grants-page .card label {
font-weight: bold; }
.expired {
color: white;
background-color: red;
}
.ok {
font-weight: bolder;
color: white;
background-color: #009220;
}
.nomoretam {
font-weight: bolder;
color: black;
background-color: orange;
}
.ok a {
color: rgb(47, 228, 228);
background-color: black;
}
.ok a:hover {
color: rgb(119, 255, 255);
background-color: black;
}

View File

@ -1,4 +1,7 @@
 // Your variable overrides
$body-bg: rgb(39, 39, 39);
$body-color: rgb(255, 255, 255);
@import "../lib/bootstrap/scss/bootstrap"; @import "../lib/bootstrap/scss/bootstrap";
.body-container { .body-container {
@ -48,5 +51,40 @@ $theme-colors: (
"primary": #0074d9, "primary": #0074d9,
"danger": #ff4136 "danger": #ff4136
); );
.welcome-page li {
list-style: none;
padding: 4px; }
.logged-out-page iframe {
display: none;
width: 0;
height: 0; }
.expired {
color: white;
background-color: red;
}
.ok {
font-weight: bolder;
color: white;
background-color: #009220;
}
.nomoretam {
font-weight: bolder;
color: black;
background-color: orange;
}
.ok a {
color: rgb(47, 228, 228);
background-color: black;
}
.ok a:hover {
color: rgb(119, 255, 255);
background-color: black;
}

File diff suppressed because one or more lines are too long