Browse Source

Scrollbars improved and fix with web extensions.

pull/390/head
Sebastian Stehle 7 years ago
parent
commit
d4ca75222b
  1. 14
      src/Squidex.Web/ETagExtensions.cs
  2. 6
      src/Squidex/Areas/Api/Controllers/Contents/ContentsController.cs
  3. 2
      src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs
  4. 4
      src/Squidex/app/theme/_common.scss
  5. 2
      src/Squidex/app/theme/_mixins.scss
  6. 6
      src/Squidex/app/theme/_panels.scss

14
src/Squidex.Web/ETagExtensions.cs

@ -18,27 +18,27 @@ namespace Squidex.Web
{
private static readonly int GuidLength = Guid.Empty.ToString().Length;
public static string ToEtag<T>(this IReadOnlyList<T> items, IEntityWithVersion app = null) where T : IEntity, IEntityWithVersion
public static string ToEtag<T>(this IReadOnlyList<T> items, params IEntityWithVersion[] dependencies) where T : IEntity, IEntityWithVersion
{
using (Profiler.Trace("CalculateEtag"))
{
var unhashed = Unhashed(items, 0, app);
var unhashed = Unhashed(items, 0, dependencies);
return unhashed.Sha256Base64();
}
}
public static string ToEtag<T>(this IResultList<T> items, IEntityWithVersion app = null) where T : IEntity, IEntityWithVersion
public static string ToEtag<T>(this IResultList<T> items, params IEntityWithVersion[] dependencies) where T : IEntity, IEntityWithVersion
{
using (Profiler.Trace("CalculateEtag"))
{
var unhashed = Unhashed(items, items.Total, app);
var unhashed = Unhashed(items, items.Total, dependencies);
return unhashed.Sha256Base64();
}
}
private static string Unhashed<T>(IReadOnlyList<T> items, long total, IEntityWithVersion app) where T : IEntity, IEntityWithVersion
private static string Unhashed<T>(IReadOnlyList<T> items, long total, params IEntityWithVersion[] dependencies) where T : IEntity, IEntityWithVersion
{
var sb = new StringBuilder((items.Count * (GuidLength + 8)) + 10);
@ -51,10 +51,10 @@ namespace Squidex.Web
sb.Append("_");
sb.Append(total);
if (app != null)
foreach (var dependency in dependencies)
{
sb.Append("_");
sb.Append(app.Version);
sb.Append(dependency.Version);
}
return sb.ToString();

6
src/Squidex/Areas/Api/Controllers/Contents/ContentsController.cs

@ -162,12 +162,12 @@ namespace Squidex.Areas.Api.Controllers.Contents
[ApiCosts(1)]
public async Task<IActionResult> GetContents(string app, string name, [FromQuery] string ids = null)
{
var schema = await contentQuery.GetSchemaOrThrowAsync(Context, name);
var contents = await contentQuery.QueryAsync(Context, name, Q.Empty.WithIds(ids).WithODataQuery(Request.QueryString.ToString()));
var response = Deferred.AsyncResponse(async () =>
{
var schema = await contentQuery.GetSchemaOrThrowAsync(Context, name);
return await ContentsDto.FromContentsAsync(contents, Context, this, schema, contentWorkflow);
});
@ -176,7 +176,7 @@ namespace Squidex.Areas.Api.Controllers.Contents
Response.Headers["Surrogate-Key"] = contents.ToSurrogateKeys();
}
Response.Headers[HeaderNames.ETag] = contents.ToEtag(App);
Response.Headers[HeaderNames.ETag] = contents.ToEtag(App, schema);
return Ok(response);
}

2
src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs

@ -16,7 +16,7 @@ namespace Squidex.Areas.Api.Controllers.News.Service
{
public sealed class FeaturesService
{
private const int FeatureVersion = 3;
private const int FeatureVersion = 4;
private static readonly QueryContext Flatten = QueryContext.Default.Flatten();
private readonly SquidexClient<NewsEntity, FeatureDto> client;

4
src/Squidex/app/theme/_common.scss

@ -15,7 +15,9 @@ body {
}
}
@include scrollbars(10px, $color-dark2-placeholder, transparent);
* {
@include scrollbars(8px, $color-border-dark, transparent);
}
// Common style for user email.
.user-email {

2
src/Squidex/app/theme/_mixins.scss

@ -57,6 +57,8 @@
& {
scrollbar-face-color: $foreground-color;
scrollbar-track-color: $background-color;
scrollbar-color: $foreground-color $background-color;
scrollbar-width: thin;
}
}

6
src/Squidex/app/theme/_panels.scss

@ -26,9 +26,9 @@
//
.panel-container {
@include fixed($size-navbar-height, 0, 0, $size-sidebar-width);
@include scrollbars(8px, $color-border-dark);
overflow-x: auto;
overflow-y: hidden;
@include scrollbars(10px, $color-dark2-placeholder);
}
//
@ -254,6 +254,10 @@
border: 0;
}
.panel-content {
@include scrollbars(8px, darken($color-dark2-foreground, 10%), transparent);
}
.panel-close {
& {
color: $color-dark2-foreground;

Loading…
Cancel
Save