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 = $("")
+ .attr("value", id)
+ .text(prop);
+ $("#toggle-sealed-select").append(item2);
}
}
sortOptionsByName("#sch-tourney-sealed-format");
+ sortOptionsByName("#toggle-sealed-select");
for (var prop in drafts) {
if (Object.prototype.hasOwnProperty.call(drafts, prop)) {
@@ -455,6 +473,37 @@ function tourneyErrorMap(outputControl, callback=null) {
+
If chosen sealed format is already available in hall, this will disable it. If the format is not available + in hall, this will enable it.
+The changes made using this form are in effect only until server restart or json definitions reload.
+For permanent change, remove or add "hall: true" field in the sealed format json definition.
+