From 71092139fdc3a83b1c054c70efe9687757b3f050 Mon Sep 17 00:00:00 2001 From: "jakub.salavec" Date: Wed, 18 Jun 2025 11:29:51 +0200 Subject: [PATCH] Added - admins can modify sealed format visibility --- .../async/handler/AdminRequestHandler.java | 20 ++++++++ .../handler/TournamentRequestHandler.java | 2 + .../web/includes/admin/tournamentAdmin.html | 49 +++++++++++++++++++ .../src/main/web/js/gemp-022/communication.js | 15 +++++- .../game/formats/LotroFormatLibrary.java | 20 ++++++++ 5 files changed, 105 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/AdminRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/AdminRequestHandler.java index 422c16a39..9b9a74f72 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/AdminRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/AdminRequestHandler.java @@ -130,11 +130,31 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur unBanUser(request, responseWriter); } else if (uri.equals("/findMultipleAccounts") && request.method() == HttpMethod.POST) { findMultipleAccounts(request, responseWriter); + } else if (uri.equals("/toggleSealedHallStatus") && request.method() == HttpMethod.POST) { + toggleSealedHallStatus(request, responseWriter); } else { throw new HttpProcessingException(404); } } + private void toggleSealedHallStatus(HttpRequest request, ResponseWriter responseWriter) throws Exception { + validateEventAdmin(request); + var postDecoder = new HttpPostRequestDecoder(request); + + String sealedFormatCodeStr = getFormParameterSafely(postDecoder, "sealedFormatCode"); + + + Throw400IfStringNull("sealedFormatCode", sealedFormatCodeStr); + var sealedFormat = _formatLibrary.GetSealedTemplate(sealedFormatCodeStr); + Throw400IfValidationFails("sealedFormatCode", sealedFormatCodeStr,sealedFormat != null); + + if (_formatLibrary.toggleSealedInHall(sealedFormatCodeStr)) { + responseWriter.writeHtmlResponse("Added format"); + } else { + responseWriter.writeHtmlResponse("Removed format"); + } + } + private void setTournamentStage(HttpRequest request, ResponseWriter responseWriter) throws Exception { validateEventAdmin(request); var postDecoder = new HttpPostRequestDecoder(request); diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java index 7333aaa11..fb5c0f188 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java @@ -33,6 +33,7 @@ import java.lang.reflect.Type; import java.text.DecimalFormat; import java.time.Duration; import java.time.ZonedDateTime; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -109,6 +110,7 @@ public class TournamentRequestHandler extends LotroServerRequestHandler implemen data.sealed = _formatLibrary.getAllHallSealedTemplates().values().stream() .map(sealed -> new JSONDefs.ItemStub(sealed.GetID(), sealed.GetName().substring(3))) .collect(Collectors.toList()); + data.sealed.sort(Comparator.comparing(o -> _formatLibrary.GetSealedTemplate(o.code).GetName())); // Sort by sealed format number data.soloDrafts = orderedSoloDrafts.stream() .filter(code -> _soloDraftDefinitions.getAllSoloDrafts().values().stream().anyMatch(soloDraft -> code.equals(soloDraft.getCode()))).map(code -> new JSONDefs.ItemStub(code, availableSoloDraftFormats.get(code))) .collect(Collectors.toList()); diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin/tournamentAdmin.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin/tournamentAdmin.html index 5873c4f8b..ed165a339 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin/tournamentAdmin.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin/tournamentAdmin.html @@ -96,6 +96,18 @@ $(document).ready( resultdiv.html("OK"); }, tourneyErrorMap(resultdiv)); }); + + $("#toggle-sealed-button").button().click( + function () { + let resultdiv = $("#toggle-sealed-result"); + resultdiv.html("Processing..."); + + hall.comm.toggleSealedHallStatus( + $("#toggle-sealed-select").val(), + function (xml) { + resultdiv.html(xml); + }, tourneyErrorMap(resultdiv)); + }); $("#preview-sch-tourney-button").button().click( function () { @@ -254,9 +266,15 @@ $(document).ready( .attr("value", id) .text(prop + " - " + serieCount + " Series"); $("#sch-tourney-sealed-format").append(item); + + var item2 = $("