diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs
index 4a1a94ac4..67e0b3f98 100644
--- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs
+++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs
@@ -184,11 +184,15 @@ namespace Squidex.Domain.Apps.Core.Scripting
}
catch (JavaScriptException ex)
{
- throw new ValidationException(T.Get("common.jsError", new { error = ex.Message }));
+ throw new ValidationException(T.Get("common.jsError", new { message = ex.Message }));
}
catch (ParserException ex)
{
- throw new ValidationException(T.Get("common.jsError", new { error = ex.Message }));
+ throw new ValidationException(T.Get("common.jsError", new { message = ex.Message }));
+ }
+ catch
+ {
+ throw new ValidationException(T.Get("common.jsError", new { message = "RuntimeError" }));
}
}
}
diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentDomainObject.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentDomainObject.cs
index a720b1bc7..5c44d4b12 100644
--- a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentDomainObject.cs
+++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentDomainObject.cs
@@ -172,7 +172,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
}
catch (Exception)
{
- if (Snapshot.ScheduleJob?.Id == c.JobId)
+ if (Snapshot.ScheduleJob != null && Snapshot.ScheduleJob.Id == c.JobId)
{
CancelChangeStatus(c);
}
diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerGrain.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerGrain.cs
index 8e7240300..d50659cf1 100644
--- a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerGrain.cs
+++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerGrain.cs
@@ -69,6 +69,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
return contentRepository.QueryScheduledWithoutDataAsync(now, content =>
{
+ return Task.CompletedTask;
return Dispatch(async () =>
{
try
diff --git a/backend/src/Squidex.Infrastructure/UsageTracking/ApiStatsSummary.cs b/backend/src/Squidex.Infrastructure/UsageTracking/ApiStatsSummary.cs
index 292245cde..525ad4bf6 100644
--- a/backend/src/Squidex.Infrastructure/UsageTracking/ApiStatsSummary.cs
+++ b/backend/src/Squidex.Infrastructure/UsageTracking/ApiStatsSummary.cs
@@ -13,13 +13,20 @@ namespace Squidex.Infrastructure.UsageTracking
public long TotalBytes { get; }
+ public long MonthCalls { get; }
+
+ public long MonthBytes { get; }
+
public double AverageElapsedMs { get; }
- public ApiStatsSummary(long totalCalls, double averageElapsedMs, long totalBytes)
+ public ApiStatsSummary(double averageElapsedMs, long totalCalls, long totalBytes, long monthCalls, long monthBytes)
{
TotalCalls = totalCalls;
TotalBytes = totalBytes;
+ MonthCalls = monthCalls;
+ MonthBytes = monthBytes;
+
AverageElapsedMs = averageElapsedMs;
}
}
diff --git a/backend/src/Squidex.Infrastructure/UsageTracking/ApiUsageTracker.cs b/backend/src/Squidex.Infrastructure/UsageTracking/ApiUsageTracker.cs
index 9a4334d7f..a17ebdfc2 100644
--- a/backend/src/Squidex.Infrastructure/UsageTracking/ApiUsageTracker.cs
+++ b/backend/src/Squidex.Infrastructure/UsageTracking/ApiUsageTracker.cs
@@ -90,7 +90,14 @@ namespace Squidex.Infrastructure.UsageTracking
var summaryElapsedAvg = CalculateAverage(summaryCalls, summaryElapsed);
- var summary = new ApiStatsSummary(summaryCalls, summaryElapsedAvg, summaryBytes);
+ var monthStats = await usageTracker.GetForMonthAsync(apiKey, DateTime.Today, null);
+
+ var summary = new ApiStatsSummary(
+ summaryElapsedAvg,
+ summaryCalls,
+ summaryBytes,
+ monthStats.GetInt64(CounterTotalCalls),
+ monthStats.GetInt64(CounterTotalBytes));
return (summary, details);
}
diff --git a/backend/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDtoDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDtoDto.cs
index 47e536676..9cdffd8a9 100644
--- a/backend/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDtoDto.cs
+++ b/backend/src/Squidex/Areas/Api/Controllers/Statistics/Models/CallsUsageDtoDto.cs
@@ -27,6 +27,16 @@ namespace Squidex.Areas.Api.Controllers.Statistics.Models
///
public long TotalBytes { get; set; }
+ ///