Browse Source

Improve news.

pull/861/head
Sebastian 4 years ago
parent
commit
a2996f2206
  1. 2
      backend/src/Squidex/Areas/Api/Controllers/News/Models/FeaturesDto.cs
  2. 26
      backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs
  3. 2
      backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/ScriptingCompleterTests.cs
  4. 4
      frontend/src/app/features/apps/pages/news-dialog.component.html
  5. 4
      frontend/src/app/features/apps/pages/news-dialog.component.scss
  6. 2
      frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.ts

2
backend/src/Squidex/Areas/Api/Controllers/News/Models/FeaturesDto.cs

@ -15,7 +15,7 @@ namespace Squidex.Areas.Api.Controllers.News.Models
/// The latest features.
/// </summary>
[LocalizedRequired]
public List<FeatureDto> Features { get; set; }
public List<FeatureDto> Features { get; } = new List<FeatureDto>();
/// <summary>
/// The recent version.

26
backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs

@ -13,7 +13,7 @@ namespace Squidex.Areas.Api.Controllers.News.Service
{
public sealed class FeaturesService
{
private const int FeatureVersion = 19;
private const int FeatureVersion = 21;
private readonly QueryContext flatten = QueryContext.Default.Flatten();
private readonly IContentsClient<NewsEntity, FeatureDto> client;
@ -44,30 +44,38 @@ namespace Squidex.Areas.Api.Controllers.News.Service
{
var result = new FeaturesDto
{
Version = FeatureVersion
Version = version
};
if (client != null && version < FeatureVersion)
{
try
{
var query = new ContentQuery
var query = new ContentQuery();
if (version == 0)
{
Filter = $"data/version/iv ge {FeatureVersion}"
};
query.Filter = $"data/version/iv eq {FeatureVersion}";
}
else
{
query.Filter = $"data/version/iv le {FeatureVersion} and data/version/iv gt {version}";
}
var features = await client.GetAsync(query, flatten, ct);
result.Features = features.Items.Select(x => x.Data).ToList();
result.Features.AddRange(features.Items.Select(x => x.Data).ToList());
if (features.Items.Count > 0)
{
result.Version = features.Items.Max(x => x.Version);
}
}
catch
{
result.Features = new List<FeatureDto>();
}
}
result.Features ??= new List<FeatureDto>();
return result;
}
}

2
backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/ScriptingCompleterTests.cs

@ -190,7 +190,7 @@ namespace Squidex.Domain.Apps.Core.Operations.Scripting
AssertAssetTrigger(result);
}
private void AssertAssetTrigger(IReadOnlyList<ScriptingValue> result)
private static void AssertAssetTrigger(IReadOnlyList<ScriptingValue> result)
{
AssertCompletion(result,
PresetActor("event.actor"),

4
frontend/src/app/features/apps/pages/news-dialog.component.html

@ -7,10 +7,12 @@
<div class="help">
<h1>{{ 'news.headline' | sqxTranslate }}</h1>
<div *ngFor="let feature of features; trackBy: trackByFeature">
<div *ngFor="let feature of features; trackBy: trackByFeature; let last = last">
<h4>{{feature.name}}</h4>
<div [innerHTML]="feature.text | sqxHelpMarkdown"></div>
<hr [class.hidden]="last" />
</div>
</div>
</ng-container>

4
frontend/src/app/features/apps/pages/news-dialog.component.scss

@ -13,3 +13,7 @@
margin-bottom: 1.5rem;
}
}
hr {
margin: 3rem 7rem;
}

2
frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.ts

@ -15,7 +15,7 @@ import { AppsState, AssetCompletions, AssetScriptsState, AssetsService, EditAsse
templateUrl: './asset-scripts-page.component.html',
})
export class AssetScriptsPageComponent extends ResourceOwner implements OnInit {
public assetScript = 'Annotate';
public assetScript = 'annotate';
public assetCompletions: Observable<AssetCompletions> = EMPTY;
public editForm = new EditAssetScriptsForm();

Loading…
Cancel
Save