@L["Change sets and facts that are waiting for a person."]
+ + +@if (_countsError is not null) +{ +@L["The counts could not be read."] @_countsError
+} + +@Description(_queue)
+ @if (_queue == DeskQueue.AwaitingMe) + { ++ @L["Until routing records approvals, this queue lists every set awaiting review, as awaiting anyone does."] +
+ } + + @if (_error is not null) + { +@_error
+ } + else if (_total == 0) + { +@Empty(_queue)
+ } + else if (_shown == 0) + { ++ @L["This page is past the end of the queue."] + @L["Go to the first page"] +
+ } + else + { +@L["The desk arrives with the first feature slice."]
diff --git a/src/FluentCMS.Core/ChangeSets/ChangeSetErrorCodes.cs b/src/FluentCMS.Core/ChangeSets/ChangeSetErrorCodes.cs index 3b8292c71..ef6803f72 100644 --- a/src/FluentCMS.Core/ChangeSets/ChangeSetErrorCodes.cs +++ b/src/FluentCMS.Core/ChangeSets/ChangeSetErrorCodes.cs @@ -26,4 +26,7 @@ public static class ChangeSetErrorCodes public const string RevertFixed = "revert_set_fixed"; public const string InitiatorNotAllowed = "initiator_not_allowed"; public const string ItemKindMismatch = "item_kind_mismatch"; + public const string ListStatesMissing = "list_states_missing"; + public const string OffsetInvalid = "offset_invalid"; + public const string LimitInvalid = "limit_invalid"; } diff --git a/src/FluentCMS.Core/ChangeSets/ChangeSetListQuery.cs b/src/FluentCMS.Core/ChangeSets/ChangeSetListQuery.cs new file mode 100644 index 000000000..6ec30e9fc --- /dev/null +++ b/src/FluentCMS.Core/ChangeSets/ChangeSetListQuery.cs @@ -0,0 +1,48 @@ +using FluentCMS.Core.Results; + +namespace FluentCMS.Core.ChangeSets; + +// The change sets in any of the given states, optionally only those that entered their state at or after a time, one page at a time. +public sealed record ChangeSetListQuery +{ + public const int MaxLimit = 200; + + public required IReadOnlyCollection