From 7770f7f4f766dca325067e015ca98bee1cee631f Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 28 Aug 2022 03:14:26 -0500 Subject: [PATCH] Admin panel improvements - Added shutdown enter/exit and JSON card reload to the admin panel. - Greatly expanded the MOTD functionality in the admin panel. - Converted server cache clear command to the new admin panel. --- .../async/GempukkuHttpRequestHandler.java | 3 + .../async/handler/AdminRequestHandler.java | 47 +- .../src/main/web/includes/admin.html | 42 +- .../main/web/includes/admin/generalAdmin.html | 168 ++++++ .../main/web/includes/admin/leagueAdmin.html | 496 ++++++++---------- .../src/main/web/js/gemp-022/communication.js | 65 +++ .../com/gempukku/lotro/db/CachedIpBanDAO.java | 7 +- .../com/gempukku/lotro/hall/HallServer.java | 15 +- 8 files changed, 522 insertions(+), 321 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-async/src/main/web/includes/admin/generalAdmin.html diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/GempukkuHttpRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/GempukkuHttpRequestHandler.java index fb51a0b73..9c77babb1 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/GempukkuHttpRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/GempukkuHttpRequestHandler.java @@ -291,6 +291,9 @@ public class GempukkuHttpRequestHandler extends SimpleChannelInboundHandler context, ResponseWriter responseWriter, String remoteIp) throws Exception { - if (uri.equals("/clearCache") && request.method() == HttpMethod.GET) { + if (uri.equals("/clearCache") && request.method() == HttpMethod.POST) { clearCache(request, responseWriter); - } else if (uri.equals("/shutdown") && request.method() == HttpMethod.GET) { + } else if (uri.equals("/shutdown") && request.method() == HttpMethod.POST) { shutdown(request, responseWriter); - } else if (uri.equals("/reloadCards") && request.method() == HttpMethod.GET) { + } else if (uri.equals("/reloadCards") && request.method() == HttpMethod.POST) { reloadCards(request, responseWriter); - } else if (uri.equals("/setMotd") && request.method() == HttpMethod.POST) { + } else if (uri.equals("/getMOTD") && request.method() == HttpMethod.GET) { + getMotd(request, responseWriter); + }else if (uri.equals("/setMOTD") && request.method() == HttpMethod.POST) { setMotd(request, responseWriter); - } else if (uri.equals("/previewSealedLeague") && request.method() == HttpMethod.POST) { + }else if (uri.equals("/previewSealedLeague") && request.method() == HttpMethod.POST) { previewSealedLeague(request, responseWriter); } else if (uri.equals("/addSealedLeague") && request.method() == HttpMethod.POST) { addSealedLeague(request, responseWriter); @@ -570,16 +572,29 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur } } + private void getMotd(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException, IOException { + validateAdmin(request); + + HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request); + try { + String motd = _hallServer.getMOTD(); + + responseWriter.writeJsonResponse(motd); + } finally { + postDecoder.destroy(); + } + } + private void setMotd(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException, IOException { validateAdmin(request); HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request); try { - String motd = getFormParameterSafely(postDecoder, "motd"); + String motd = getFormParameterSafely(postDecoder, "motd"); - _hallServer.setMOTD(motd); + _hallServer.setMOTD(motd); - responseWriter.writeHtmlResponse("OK"); + responseWriter.writeHtmlResponse("OK"); } finally { postDecoder.destroy(); } @@ -588,12 +603,18 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur private void shutdown(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException { validateAdmin(request); - QueryStringDecoder queryDecoder = new QueryStringDecoder(request.uri()); - boolean shutdown = Boolean.parseBoolean(getQueryParameterSafely(queryDecoder, "shutdown")); + HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(request); + try { + boolean shutdown = Boolean.parseBoolean(getFormParameterSafely(postDecoder, "shutdown")); - _hallServer.setShutdown(shutdown); + _hallServer.setShutdown(shutdown); - responseWriter.writeHtmlResponse("OK"); + responseWriter.writeHtmlResponse("OK"); + } catch (Exception e) { + responseWriter.writeHtmlResponse("Error handling request"); + } finally { + postDecoder.destroy(); + } } private void reloadCards(HttpRequest request, ResponseWriter responseWriter) throws HttpProcessingException { @@ -616,7 +637,7 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur int after = _cacheManager.getTotalCount(); - responseWriter.writeHtmlResponse("Before: " + before + "
OK
After: " + after); + responseWriter.writeHtmlResponse("Before: " + before + "

After: " + after); } private void validateAdmin(HttpRequest request) throws HttpProcessingException { diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin.html index 51fd0b836..3ead1ef42 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/admin.html @@ -5,6 +5,8 @@ $("#admin-tabs > ol > li").removeClass("ui-corner-top").addClass("ui-corner-left"); $("#landingTab").parent().hide(); + $("#landing").hide(); + if(!hall.userInfo.type.includes("a")) { $("#generalTab").parent().hide(); @@ -22,46 +24,16 @@
-