feat: Geteilte Links auf Dashboard anzeigen + URL-Fix
Dashboard: - Neue Section 'Geteilte Links' zeigt alle aktiven Shares - Pro Eintrag: Role-Icon, Text-Vorschau, Session-Name, Modus, Datum - Buttons: Link kopieren, öffnen, löschen (mit sofortigem UI-Update) - Section nur sichtbar wenn Shares vorhanden Backend: - SharedEndpoint HandleListShares erweitert: Nachricht-Preview, Role, Session-Name pro Share mitgeliefert Frontend: - apiListShares() Funktion hinzugefügt - Bugfix: Share-URL '/#/shared/' → '/#shared/' (Extra-Slash verursachte 404 weil parseHash leeren Page-Namen ergab)
This commit is contained in:
1 parent
4bdcebc1e1
commit
38a8223228
5 files changed
+148
-1
No files matched your search
@@ -161,7 +161,38 @@ public static class SharedEndpoint
|
||||
{
|
||||
var userId = ctx.GetUserId();
|
||||
var shares = await db.GetSharedMessagesByUser(userId);
|
||||
await ctx.Response.WriteAsJsonAsync(shares);
|
||||
|
||||
var result = new List<object>();
|
||||
foreach (var s in shares)
|
||||
{
|
||||
var message = await db.GetMessage(s.MessageId);
|
||||
string sessionName = null;
|
||||
if (message != null)
|
||||
{
|
||||
var chain = await db.GetChain(message.ChainId);
|
||||
if (chain != null)
|
||||
{
|
||||
var session = await db.GetSession(chain.SessionId);
|
||||
sessionName = session?.Name;
|
||||
}
|
||||
}
|
||||
|
||||
var preview = message?.Content ?? "";
|
||||
if (preview.Length > 150) preview = preview.Substring(0, 150) + "…";
|
||||
|
||||
result.Add(new
|
||||
{
|
||||
s.ShareToken,
|
||||
s.MessageId,
|
||||
s.IncludeContext,
|
||||
s.CreatedAt,
|
||||
role = message?.Role,
|
||||
preview,
|
||||
sessionName
|
||||
});
|
||||
}
|
||||
|
||||
await ctx.Response.WriteAsJsonAsync(result);
|
||||
}
|
||||
|
||||
private static async Task HandleDeleteShare(HttpContext ctx, DatabaseService db)
|
||||
|
||||
Reference in new issue
Block a user