R4 the client catches up: follow requests, followers, downvotes, dismissing, filtering a post, quote policies, statistics in detail
Build / Build (push) Successful in 1m8s
Build / Build (push) Successful in 1m8s
Follow requests answered on the persona's own profile and from the Notifications tab; its followers and the accounts it follows listed there, a follower removed (asked first). Downvotes on threadiverse posts, after the public-vote notice. A notification dismissed from its line. "Filter this post" from a card's menu, and the Filters page showing the posts a filter holds. Who may quote the persona's own posts, and revoking a quote of one. Statistics: a server in detail with "describe again", the ledger's events, the server's own days. The composer deletes an upload taken out before posting. MediaType.Documents goes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
1 parent
b731d8c8c0
commit
b8d7858acb
25 files changed
+1543
-61
No files matched your search
@@ -0,0 +1,58 @@
|
||||
@inherits LocalizableComponentBase
|
||||
|
||||
@* The federation ledger's events, newest first (ViewInteractionEvent): what was received, delivered or fetched and how
|
||||
it ended, never who. Channels and outcomes show as the ledger keys them, like the statistics' counters. In the
|
||||
statistics' Events section and in a server's detail. *@
|
||||
<DTable Size="DSize.Xs" Zebra="true" WrapperClass="max-h-[28rem] rounded-xl neo-inset neo-2xs" data-statistics-events-table data-scroll-x>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>@Localizer["When"]</th>
|
||||
@if (ShowHost)
|
||||
{
|
||||
<th>@Localizer["server"]</th>
|
||||
}
|
||||
<th>@Localizer["Channel"]</th>
|
||||
<th>@Localizer["Activity"]</th>
|
||||
<th>@Localizer["Outcome"]</th>
|
||||
<th>@Localizer["Reason"]</th>
|
||||
<th class="text-right">HTTP</th>
|
||||
<th class="text-right">ms</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var happened in Events)
|
||||
{
|
||||
<tr data-statistics-event="@happened.Channel" data-outcome="@happened.Outcome">
|
||||
<td class="whitespace-nowrap" title="@NerdRow.Time(happened.At)">@happened.At.ToLocalTime().ToString(SUtility.dateTimeFormatExt)</td>
|
||||
@if (ShowHost)
|
||||
{
|
||||
<td class="max-w-40 truncate" title="@happened.Host">@happened.Host</td>
|
||||
}
|
||||
<td>@happened.Channel</td>
|
||||
<td class="max-w-48 truncate" title="@happened.Object">@happened.Activity</td>
|
||||
<td>
|
||||
<DBadge Size="DSize.Xs" Color="@OutcomeColor(happened.Outcome)">@happened.Outcome</DBadge>
|
||||
</td>
|
||||
<td class="max-w-48 truncate" title="@happened.Reason">@happened.Reason</td>
|
||||
<td class="text-right tabular-nums">@happened.Status</td>
|
||||
<td class="text-right tabular-nums">@happened.LatencyMs</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</DTable>
|
||||
|
||||
@code {
|
||||
[Parameter, EditorRequired] public List<ViewInteractionEvent> Events { get; set; } = [];
|
||||
/// <summary>A column for the server, where the events are of many.</summary>
|
||||
[Parameter] public bool ShowHost { get; set; } = true;
|
||||
|
||||
protected override void OnInitialized() => IsLoading = false;
|
||||
|
||||
static DColor OutcomeColor(string outcome) => outcome switch
|
||||
{
|
||||
"ok" or "accepted" => DColor.Success,
|
||||
"queued" or "deferred" or "retry" => DColor.Warning,
|
||||
"failed" or "dead" or "refused" or "rejected" or "dropped" => DColor.Error,
|
||||
_ => DColor.None
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user