diff options
Diffstat (limited to 'internal/admin/server.go')
| -rw-r--r-- | internal/admin/server.go | 18 |
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) { |
