aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/server.go
diff options
context:
space:
mode:
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) {