Added compact mode for the editor log
This commit is contained in:
parent
79cba90a4a
commit
70849553ef
@ -16,11 +16,12 @@ const (
|
||||
entriesPerScroll = 40
|
||||
)
|
||||
|
||||
// Get edit log.
|
||||
func Get(ctx aero.Context) error {
|
||||
// All edit log.
|
||||
func All(ctx aero.Context) error {
|
||||
user := arn.GetUserFromContext(ctx)
|
||||
index, _ := ctx.GetInt("index")
|
||||
nick := ctx.Get("nick")
|
||||
compact := ctx.Query("compact") == "true"
|
||||
|
||||
if user == nil || (user.Role != "editor" && user.Role != "admin") {
|
||||
return ctx.Error(http.StatusUnauthorized, "Not authorized")
|
||||
@ -43,6 +44,23 @@ func Get(ctx aero.Context) error {
|
||||
// Sort by creation date
|
||||
arn.SortEditLogEntriesLatestFirst(allEntries)
|
||||
|
||||
// Show only one entry for a single object in compact mode
|
||||
if compact {
|
||||
filteredEntries := make([]*arn.EditLogEntry, 0, len(allEntries))
|
||||
lastObjectID := ""
|
||||
|
||||
for _, entry := range allEntries {
|
||||
if lastObjectID == entry.ObjectID {
|
||||
continue
|
||||
}
|
||||
|
||||
filteredEntries = append(filteredEntries, entry)
|
||||
lastObjectID = entry.ObjectID
|
||||
}
|
||||
|
||||
allEntries = filteredEntries
|
||||
}
|
||||
|
||||
// Slice the part that we need
|
||||
entries := allEntries[index:]
|
||||
maxLength := entriesFirstLoad
|
||||
|
@ -4,6 +4,13 @@ component EditLogPage(entries []*arn.EditLogEntry, nextIndex int, viewUser *arn.
|
||||
else
|
||||
h1.mountable Editor log
|
||||
|
||||
.corner-buttons
|
||||
a.button(href="/log", title="Full list")
|
||||
RawIcon("list")
|
||||
|
||||
a.button(href="/log?compact=true", title="Compact list")
|
||||
RawIcon("list-alt")
|
||||
|
||||
EditLog(entries, user)
|
||||
|
||||
if nextIndex != -1
|
||||
|
@ -68,10 +68,10 @@ func Register(app *aero.Application) {
|
||||
page.Get(app, "/editor/jobs", jobs.Overview)
|
||||
|
||||
// Log
|
||||
page.Get(app, "/log", editlog.Get)
|
||||
page.Get(app, "/log/from/:index", editlog.Get)
|
||||
page.Get(app, "/user/:nick/log", editlog.Get)
|
||||
page.Get(app, "/user/:nick/log/from/:index", editlog.Get)
|
||||
page.Get(app, "/log", editlog.All)
|
||||
page.Get(app, "/log/from/:index", editlog.All)
|
||||
page.Get(app, "/user/:nick/log", editlog.All)
|
||||
page.Get(app, "/user/:nick/log/from/:index", editlog.All)
|
||||
|
||||
// Admin
|
||||
page.Get(app, "/admin", admin.Get)
|
||||
|
Loading…
Reference in New Issue
Block a user