aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/server.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-07-03 20:53:00 -0400
committerhistoria <[not public]>2026-07-03 20:53:00 -0400
commita5d4ead1795882d25da7eda53680d2a84590693d (patch)
tree747a0516e03f22fdf511e55ee4c4809d4a1acd78 /internal/admin/server.go
parent0dfd7bf19e800b67e03726c18cfa00e623d6b121 (diff)
downloadthehouseoficarus-a5d4ead1795882d25da7eda53680d2a84590693d.tar.gz
feat: admin map can add new and rename areas. works with empty directories now.
Diffstat (limited to 'internal/admin/server.go')
-rw-r--r--internal/admin/server.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/internal/admin/server.go b/internal/admin/server.go
index 227201b..ef95e73 100644
--- a/internal/admin/server.go
+++ b/internal/admin/server.go
@@ -109,10 +109,13 @@ func NewServer(cfg *config.Config, useTLS bool, accountStore *player.AccountStor
apiMux := http.NewServeMux()
apiMux.HandleFunc("/api/map", s.handleMap)
apiMux.HandleFunc("/api/room-dirs", s.handleRoomDirs)
+ apiMux.HandleFunc("/api/room-dirs/rename", s.handleRenameRoomDir)
+ apiMux.HandleFunc("/api/room-dirs/create", s.handleCreateRoomDir)
apiMux.HandleFunc("/api/rooms/link", s.handleRoomLink)
apiMux.HandleFunc("/api/rooms/move", s.handleRoomMove)
apiMux.HandleFunc("/api/rooms/rename", s.handleRoomRename)
apiMux.HandleFunc("/api/rooms", s.handleRooms)
+ apiMux.HandleFunc("/api/rooms/new-empty", s.handleCreateEmptyRoom)
apiMux.HandleFunc("/api/rooms/", s.handleRoomByID)
apiMux.HandleFunc("/api/objects", s.handleObjects)
apiMux.HandleFunc("/api/objects/", s.handleObjectByID)
@@ -306,6 +309,7 @@ func (s *AdminServer) handleLogin(w http.ResponseWriter, r *http.Request) {
}
s.setAuthCookie(w, account)
+ s.undoStack.Clear()
http.Redirect(w, r, "/", http.StatusFound)
}
@@ -430,7 +434,12 @@ func (s *AdminServer) doUndo(w http.ResponseWriter, r *http.Request) {
return
}
s.rebuildAfterUndo(change)
- writeJSON(w, map[string]any{"message": "Undid: " + change.ShortDesc()})
+ resp := map[string]any{"message": "Undid: " + change.ShortDesc()}
+ dups := behavior.CheckDuplicateIDs(filepath.Join(s.dataDir, "rooms"))
+ if len(dups) > 0 {
+ resp["has_duplicates"] = true
+ }
+ writeJSON(w, resp)
}
func (s *AdminServer) doRedo(w http.ResponseWriter, r *http.Request) {
@@ -444,7 +453,12 @@ func (s *AdminServer) doRedo(w http.ResponseWriter, r *http.Request) {
return
}
s.rebuildAfterUndo(change)
- writeJSON(w, map[string]any{"message": "Redid: " + change.ShortDesc()})
+ resp := map[string]any{"message": "Redid: " + change.ShortDesc()}
+ dups := behavior.CheckDuplicateIDs(filepath.Join(s.dataDir, "rooms"))
+ if len(dups) > 0 {
+ resp["has_duplicates"] = true
+ }
+ writeJSON(w, resp)
}
func (s *AdminServer) rebuildAfterUndo(change *ChangeDesc) {