diff --git a/backend/i18n/frontend_en.json b/backend/i18n/frontend_en.json
index dfc942845..aec015996 100644
--- a/backend/i18n/frontend_en.json
+++ b/backend/i18n/frontend_en.json
@@ -670,9 +670,9 @@
"rules.ruleSimulator.listPageTitle": "Simulator",
"rules.ruleSyntax.if": "If",
"rules.ruleSyntax.then": "then",
- "rules.run": "Run",
+ "rules.run": "Replay",
"rules.runFailed": "Failed to run rule. Please reload.",
- "rules.runFromSnapshots": "Run with latest states",
+ "rules.runFromSnapshots": "Replay from states",
"rules.runningRule": "Rule '{name}' is currently running.",
"rules.runRuleConfirmText": "Do you really want to run the rule for all events?",
"rules.runRuleConfirmTitle": "Run rule",
diff --git a/backend/i18n/frontend_nl.json b/backend/i18n/frontend_nl.json
index f300e995b..dcad3e238 100644
--- a/backend/i18n/frontend_nl.json
+++ b/backend/i18n/frontend_nl.json
@@ -672,7 +672,7 @@
"rules.ruleSyntax.then": "then",
"rules.run": "Uitvoeren",
"rules.runFailed": "Uitvoeren van regel mislukt. Laad opnieuw.",
- "rules.runFromSnapshots": "Run with latest states",
+ "rules.runFromSnapshots": "Replay from states",
"rules.runningRule": "Regel '{name}' is momenteel actief.",
"rules.runRuleConfirmText": "Wil je de regel echt voor alle evenementen uitvoeren?",
"rules.runRuleConfirmTitle": "Regel uitvoeren",
diff --git a/backend/i18n/source/frontend_en.json b/backend/i18n/source/frontend_en.json
index dfc942845..aec015996 100644
--- a/backend/i18n/source/frontend_en.json
+++ b/backend/i18n/source/frontend_en.json
@@ -670,9 +670,9 @@
"rules.ruleSimulator.listPageTitle": "Simulator",
"rules.ruleSyntax.if": "If",
"rules.ruleSyntax.then": "then",
- "rules.run": "Run",
+ "rules.run": "Replay",
"rules.runFailed": "Failed to run rule. Please reload.",
- "rules.runFromSnapshots": "Run with latest states",
+ "rules.runFromSnapshots": "Replay from states",
"rules.runningRule": "Rule '{name}' is currently running.",
"rules.runRuleConfirmText": "Do you really want to run the rule for all events?",
"rules.runRuleConfirmTitle": "Run rule",
diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/Commands/RuleEditCommand.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/Commands/RuleEditCommand.cs
index c8efeb7a0..f327300fe 100644
--- a/backend/src/Squidex.Domain.Apps.Entities/Rules/Commands/RuleEditCommand.cs
+++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/Commands/RuleEditCommand.cs
@@ -13,9 +13,9 @@ namespace Squidex.Domain.Apps.Entities.Rules.Commands
{
public string? Name { get; set; }
- public RuleTrigger Trigger { get; set; }
+ public RuleTrigger? Trigger { get; set; }
- public RuleAction Action { get; set; }
+ public RuleAction? Action { get; set; }
public bool? IsEnabled { get; set; }
}
diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs
index a70e4bd58..432d9a2bd 100644
--- a/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs
+++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/DomainObject/RuleDomainObject.State.cs
@@ -68,7 +68,7 @@ namespace Squidex.Domain.Apps.Entities.Rules.DomainObject
{
RuleDef = RuleDef.Enable();
}
- else
+ else if (e.IsEnabled == false)
{
RuleDef = RuleDef.Disable();
}
diff --git a/backend/src/Squidex/Areas/Api/Controllers/Rules/Models/UpdateRuleDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Rules/Models/UpdateRuleDto.cs
index 3f01f76ab..f203d1025 100644
--- a/backend/src/Squidex/Areas/Api/Controllers/Rules/Models/UpdateRuleDto.cs
+++ b/backend/src/Squidex/Areas/Api/Controllers/Rules/Models/UpdateRuleDto.cs
@@ -23,13 +23,13 @@ namespace Squidex.Areas.Api.Controllers.Rules.Models
///
/// The trigger properties.
///
- public RuleTriggerDto Trigger { get; set; }
+ public RuleTriggerDto? Trigger { get; set; }
///
/// The action properties.
///
[JsonConverter(typeof(RuleActionConverter))]
- public RuleAction Action { get; set; }
+ public RuleAction? Action { get; set; }
///
/// Enable or disable the rule.
diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/DomainObject/RuleDomainObjectTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/DomainObject/RuleDomainObjectTests.cs
index a6dc41562..32fb0d8dd 100644
--- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/DomainObject/RuleDomainObjectTests.cs
+++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/DomainObject/RuleDomainObjectTests.cs
@@ -67,7 +67,7 @@ namespace Squidex.Domain.Apps.Entities.Rules.DomainObject
LastEvents
.ShouldHaveSameEvents(
- CreateRuleEvent(new RuleCreated { Trigger = command.Trigger, Action = command.Action })
+ CreateRuleEvent(new RuleCreated { Trigger = command.Trigger!, Action = command.Action! })
);
}
@@ -82,6 +82,8 @@ namespace Squidex.Domain.Apps.Entities.Rules.DomainObject
result.ShouldBeEquivalent(sut.Snapshot);
+ Assert.True(sut.Snapshot.RuleDef.IsEnabled);
+
Assert.Same(command.Trigger, sut.Snapshot.RuleDef.Trigger);
Assert.Same(command.Action, sut.Snapshot.RuleDef.Action);