Browse Source

Auto format. (#881)

pull/882/head
Sebastian Stehle 4 years ago
committed by GitHub
parent
commit
1e377170be
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj
  2. 2
      backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj
  3. 4
      backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj
  4. 2
      backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj
  5. 10
      backend/src/Squidex/Areas/Api/Controllers/Assets/AssetContentController.cs
  6. 27
      backend/src/Squidex/Areas/Api/Controllers/Assets/Models/AssetContentQueryDto.cs
  7. 18
      backend/src/Squidex/Squidex.csproj

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj

@ -23,7 +23,7 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="MongoDB.Driver" Version="2.15.0" /> <PackageReference Include="MongoDB.Driver" Version="2.15.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />

2
backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj

@ -24,7 +24,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" /> <PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="MongoDB.Driver" Version="2.15.0" /> <PackageReference Include="MongoDB.Driver" Version="2.15.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.Security.Principal.Windows" Version="5.0.0" /> <PackageReference Include="System.Security.Principal.Windows" Version="5.0.0" />

4
backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj

@ -18,8 +18,8 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="MongoDB.Driver" Version="2.15.0" /> <PackageReference Include="MongoDB.Driver" Version="2.15.1" />
<PackageReference Include="MongoDB.Driver.GridFS" Version="2.15.0" /> <PackageReference Include="MongoDB.Driver.GridFS" Version="2.15.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="6.0.0" /> <PackageReference Include="System.Threading.Tasks.Dataflow" Version="6.0.0" />

2
backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj

@ -31,7 +31,7 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="OpenTelemetry.Api" Version="1.1.0" /> <PackageReference Include="OpenTelemetry.Api" Version="1.1.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="Squidex.Assets" Version="3.0.0" /> <PackageReference Include="Squidex.Assets" Version="3.4.0" />
<PackageReference Include="Squidex.Caching" Version="1.9.0" /> <PackageReference Include="Squidex.Caching" Version="1.9.0" />
<PackageReference Include="Squidex.Hosting.Abstractions" Version="2.13.0" /> <PackageReference Include="Squidex.Hosting.Abstractions" Version="2.13.0" />
<PackageReference Include="Squidex.Log" Version="1.6.0" /> <PackageReference Include="Squidex.Log" Version="1.6.0" />

10
backend/src/Squidex/Areas/Api/Controllers/Assets/AssetContentController.cs

@ -142,19 +142,21 @@ namespace Squidex.Areas.Api.Controllers.Assets
Response.Headers[HeaderNames.CacheControl] = $"public,max-age={request.CacheDuration}"; Response.Headers[HeaderNames.CacheControl] = $"public,max-age={request.CacheDuration}";
} }
var resizeOptions = request.ToResizeOptions(asset); var resizeOptions = request.ToResizeOptions(asset, HttpContext.Request);
var contentLength = (long?)null; var contentLength = (long?)null;
var contentCallback = (FileCallback?)null; var contentCallback = (FileCallback?)null;
var contentType = request.Format?.ToMimeType() ?? asset.MimeType; var contentType = asset.MimeType;
if (asset.Type == AssetType.Image && resizeOptions.IsValid) if (asset.Type == AssetType.Image && assetThumbnailGenerator.IsResizable(asset.MimeType, resizeOptions, out var destinationMimeType))
{ {
contentType = destinationMimeType!;
contentCallback = async (body, range, ct) => contentCallback = async (body, range, ct) =>
{ {
var suffix = resizeOptions.ToString(); var suffix = resizeOptions.ToString();
if (request.ForceResize) if (request.Force)
{ {
using (Telemetry.Activities.StartActivity("Resize")) using (Telemetry.Activities.StartActivity("Resize"))
{ {

27
backend/src/Squidex/Areas/Api/Controllers/Assets/Models/AssetContentQueryDto.cs

@ -81,11 +81,17 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
[FromQuery(Name = "nofocus")] [FromQuery(Name = "nofocus")]
public bool IgnoreFocus { get; set; } public bool IgnoreFocus { get; set; }
/// <summary>
/// True to use auto format.
/// </summary>
[FromQuery(Name = "auto")]
public bool Auto { get; set; }
/// <summary> /// <summary>
/// True to force a new resize even if it already stored. /// True to force a new resize even if it already stored.
/// </summary> /// </summary>
[FromQuery(Name = "force")] [FromQuery(Name = "force")]
public bool ForceResize { get; set; } public bool Force { get; set; }
/// <summary> /// <summary>
/// True to force a new resize even if it already stored. /// True to force a new resize even if it already stored.
@ -93,7 +99,7 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
[FromQuery(Name = "format")] [FromQuery(Name = "format")]
public ImageFormat? Format { get; set; } public ImageFormat? Format { get; set; }
public ResizeOptions ToResizeOptions(IAssetEntity asset) public ResizeOptions ToResizeOptions(IAssetEntity asset, HttpRequest request)
{ {
Guard.NotNull(asset); Guard.NotNull(asset);
@ -106,6 +112,23 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
result.TargetWidth = Width; result.TargetWidth = Width;
result.TargetHeight = Height; result.TargetHeight = Height;
if (Auto && request.Headers.TryGetValue("Accept", out var accept))
{
var formats = new List<ImageFormat>();
if (accept.Any(x => x.Contains("image/avif", StringComparison.OrdinalIgnoreCase)))
{
formats.Add(ImageFormat.AVIF);
}
if (accept.Any(x => x.Contains("image/webp", StringComparison.OrdinalIgnoreCase)))
{
formats.Add(ImageFormat.WEBP);
}
result.Formats = formats.ToArray();
}
return result; return result;
} }

18
backend/src/Squidex/Squidex.csproj

@ -57,7 +57,7 @@
<PackageReference Include="Microsoft.Orleans.Core.Abstractions" Version="3.6.0" /> <PackageReference Include="Microsoft.Orleans.Core.Abstractions" Version="3.6.0" />
<PackageReference Include="Microsoft.Orleans.Hosting.Kubernetes" Version="3.6.0" /> <PackageReference Include="Microsoft.Orleans.Hosting.Kubernetes" Version="3.6.0" />
<PackageReference Include="Microsoft.Orleans.OrleansRuntime" Version="3.6.0" /> <PackageReference Include="Microsoft.Orleans.OrleansRuntime" Version="3.6.0" />
<PackageReference Include="MongoDB.Driver" Version="2.15.0" /> <PackageReference Include="MongoDB.Driver" Version="2.15.1" />
<PackageReference Include="Namotion.Reflection" Version="2.0.10" /> <PackageReference Include="Namotion.Reflection" Version="2.0.10" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="NJsonSchema" Version="10.6.10" /> <PackageReference Include="NJsonSchema" Version="10.6.10" />
@ -71,14 +71,14 @@
<PackageReference Include="OrleansDashboard.EmbeddedAssets" Version="3.6.1" /> <PackageReference Include="OrleansDashboard.EmbeddedAssets" Version="3.6.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="ReportGenerator" Version="5.0.3" PrivateAssets="all" /> <PackageReference Include="ReportGenerator" Version="5.0.3" PrivateAssets="all" />
<PackageReference Include="Squidex.Assets.Azure" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.Azure" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.GoogleCloud" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.GoogleCloud" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.FTP" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.FTP" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.ImageMagick" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.ImageMagick" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.ImageSharp" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.ImageSharp" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.Mongo" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.Mongo" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.S3" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.S3" Version="3.4.0" />
<PackageReference Include="Squidex.Assets.TusAdapter" Version="3.0.0" /> <PackageReference Include="Squidex.Assets.TusAdapter" Version="3.4.0" />
<PackageReference Include="Squidex.Caching.Orleans" Version="1.9.0" /> <PackageReference Include="Squidex.Caching.Orleans" Version="1.9.0" />
<PackageReference Include="Squidex.ClientLibrary" Version="8.21.0" /> <PackageReference Include="Squidex.ClientLibrary" Version="8.21.0" />
<PackageReference Include="Squidex.Hosting" Version="2.13.0" /> <PackageReference Include="Squidex.Hosting" Version="2.13.0" />

Loading…
Cancel
Save