|
@@ -481,10 +481,16 @@ func (api *oliveTinAPI) GetActionLogs(ctx ctx.Context, req *connect.Request[apiv
|
|
|
ret.StartOffset = page.start
|
|
ret.StartOffset = page.start
|
|
|
return connect.NewResponse(ret), nil
|
|
return connect.NewResponse(ret), nil
|
|
|
}
|
|
}
|
|
|
- for _, le := range filtered[page.start:page.end] {
|
|
|
|
|
- ret.Logs = append(ret.Logs, api.internalLogEntryToPb(le, user))
|
|
|
|
|
- }
|
|
|
|
|
- ret.CountRemaining = page.total - page.end
|
|
|
|
|
|
|
+ // Newest-first slicing: compute reversed indices
|
|
|
|
|
+ startIdx := page.total - page.end
|
|
|
|
|
+ endIdx := page.total - page.start
|
|
|
|
|
+ if startIdx < 0 { startIdx = 0 }
|
|
|
|
|
+ if endIdx > int64(len(filtered)) { endIdx = int64(len(filtered)) }
|
|
|
|
|
+ for _, le := range filtered[startIdx:endIdx] {
|
|
|
|
|
+ ret.Logs = append(ret.Logs, api.internalLogEntryToPb(le, user))
|
|
|
|
|
+ }
|
|
|
|
|
+ // Entries older than the returned newest page
|
|
|
|
|
+ ret.CountRemaining = page.start
|
|
|
ret.PageSize = page.size
|
|
ret.PageSize = page.size
|
|
|
ret.TotalCount = page.total
|
|
ret.TotalCount = page.total
|
|
|
ret.StartOffset = page.start
|
|
ret.StartOffset = page.start
|