A reply or boost awaiting its author's approval says so
GoToSocial lets an author approve replies, likes and boosts first. PrivaPub now asks that author and marks the persona's reply or boost privapub.approval: pending until the answer, or rejected; the card shows which, with an hourglass or a cross. One the policy shuts out is refused (422) and shown as the error it is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
61631bb0a7
commit
6f8472bc9f
5 files changed
+27
No files matched your search
@@ -237,6 +237,9 @@ supplies:
|
|||||||
- **Threads** (`Pages/ExpandMessage.razor` at `/expand/{id}`): opening a remote thread makes PrivaPub read its replies
|
- **Threads** (`Pages/ExpandMessage.razor` at `/expand/{id}`): opening a remote thread makes PrivaPub read its replies
|
||||||
from their servers (its FEP-7888 `context`, else `replies`), so the page reads the thread again after 4 and 15 seconds
|
from their servers (its FEP-7888 `context`, else `replies`), so the page reads the thread again after 4 and 15 seconds
|
||||||
and adds what was found, in the thread's order.
|
and adds what was found, in the thread's order.
|
||||||
|
- **Interaction policies** (GoToSocial's): a reply or boost whose target's author must approve it shows so on its card
|
||||||
|
(`privapub.approval`: pending, then nothing once approved, or rejected); one the policy shuts out is refused by
|
||||||
|
PrivaPub (422) and shown as an error.
|
||||||
- **Settings** (`Pages/Settings.razor`, `Components/Settings/`): the persona's profile (`ProfileEditor`:
|
- **Settings** (`Pages/Settings.razor`, `Components/Settings/`): the persona's profile (`ProfileEditor`:
|
||||||
`update_credentials` as multipart, its words as written from `Account.Source`, pictures, fields, locked, bot,
|
`update_credentials` as multipart, its words as written from `Account.Source`, pictures, fields, locked, bot,
|
||||||
discoverable, indexable and posting defaults; the composer starts a new post at its default visibility), its mutes,
|
discoverable, indexable and posting defaults; the composer starts a new post at its default visibility), its mutes,
|
||||||
|
|||||||
@@ -179,6 +179,15 @@
|
|||||||
</p>
|
</p>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@if (status.Privapub?.Approval is "pending" or "rejected")
|
||||||
|
{
|
||||||
|
@* its target's author must approve it (GoToSocial's interaction policies): until then it went to that author alone *@
|
||||||
|
<p class="inline-flex gap-2 items-center text-xs opacity-70" data-approval="@status.Privapub.Approval">
|
||||||
|
<i aria-hidden="true" class="@(status.Privapub.Approval == "pending" ? "ion-md-hourglass" : "ion-md-close-circle")"></i>
|
||||||
|
<span>@(status.Privapub.Approval == "pending" ? Localizer["Waiting for its author's approval"] : Localizer["Its author did not approve it"])</span>
|
||||||
|
</p>
|
||||||
|
}
|
||||||
|
|
||||||
@if (!Post.Located && !Compact)
|
@if (!Post.Located && !Compact)
|
||||||
{
|
{
|
||||||
<footer class="flex gap-2 mt-1 justify-between">
|
<footer class="flex gap-2 mt-1 justify-between">
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ public class PrivaPubStatus
|
|||||||
public string ObjectType { get; set; }
|
public string ObjectType { get; set; }
|
||||||
/// <summary>Its community's moderators locked it: PrivaPub refuses a reply.</summary>
|
/// <summary>Its community's moderators locked it: PrivaPub refuses a reply.</summary>
|
||||||
public bool Locked { get; set; }
|
public bool Locked { get; set; }
|
||||||
|
/// <summary>The persona's reply or boost of a post whose author must approve it first (GoToSocial's interaction
|
||||||
|
/// policies): "pending" until the author answers, "rejected" if they refuse; null otherwise.</summary>
|
||||||
|
public string Approval { get; set; }
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Excerpt { get; set; }
|
public string Excerpt { get; set; }
|
||||||
public string Cover { get; set; }
|
public string Cover { get; set; }
|
||||||
|
|||||||
@@ -1550,4 +1550,10 @@
|
|||||||
<data name="Locked by its community's moderators" xml:space="preserve">
|
<data name="Locked by its community's moderators" xml:space="preserve">
|
||||||
<value>Bloccato dai moderatori della sua comunità</value>
|
<value>Bloccato dai moderatori della sua comunità</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Waiting for its author's approval" xml:space="preserve">
|
||||||
|
<value>In attesa dell'approvazione dell'autore</value>
|
||||||
|
</data>
|
||||||
|
<data name="Its author did not approve it" xml:space="preserve">
|
||||||
|
<value>L'autore non l'ha approvato</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -1550,4 +1550,10 @@
|
|||||||
<data name="Locked by its community's moderators" xml:space="preserve">
|
<data name="Locked by its community's moderators" xml:space="preserve">
|
||||||
<value>Locked by its community's moderators</value>
|
<value>Locked by its community's moderators</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Waiting for its author's approval" xml:space="preserve">
|
||||||
|
<value>Waiting for its author's approval</value>
|
||||||
|
</data>
|
||||||
|
<data name="Its author did not approve it" xml:space="preserve">
|
||||||
|
<value>Its author did not approve it</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
Reference in new issue
Block a user