From b21cea3b82fe7642d44494b8abc4a6fab13a6497 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 26 Apr 2012 21:33:19 +0000 Subject: [PATCH] Adding leagues via league-admin page. --- .../com/gempukku/lotro/game/LotroServer.java | 45 ++-- .../gempukku/lotro/server/AdminResource.java | 24 +- .../src/main/webapp/js/gemp-004/common.js | 4 + .../webapp/js/gemp-004/leagueResultsUi.js | 20 +- .../src/main/webapp/leagueAdmin.html | 214 ++++++++++++------ 5 files changed, 190 insertions(+), 117 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java index fa2373f67..e75fb1333 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java @@ -48,33 +48,32 @@ public class LotroServer extends AbstractServer { // Hunters have 1-194 normal cards, 9 "O" cards, and 3 extra to cover the different culture versions of 15_60 - final int[] cardCounts = new int[]{129, 365, 122, 122, 365, 128, 128, 365, 122, 52, 122, 266, 203, 203, 15, 207, 6, 157, 149, 40}; + Thread thr = new Thread() { + public void run() { + final int[] cardCounts = new int[]{129, 365, 122, 122, 365, 128, 128, 365, 122, 52, 122, 266, 203, 203, 15, 207, 6, 157, 149, 40}; - for (int i = 0; i <= 19; i++) { - System.out.println("Loading set " + i); - for (int j = 1; j <= cardCounts[i]; j++) { - String blueprintId = i + "_" + j; - try { - if (_lotroCardBlueprintLibrary.getBaseBlueprintId(blueprintId).equals(blueprintId)) { - LotroCardBlueprint cardBlueprint = _lotroCardBlueprintLibrary.getLotroCardBlueprint(blueprintId); - CardType cardType = cardBlueprint.getCardType(); - if (cardType == CardType.SITE || cardType == CardType.THE_ONE_RING) - _defaultCollection.addItem(blueprintId, 1); - else - _defaultCollection.addItem(blueprintId, 4); + for (int i = 0; i <= 19; i++) { + System.out.println("Loading set " + i); + for (int j = 1; j <= cardCounts[i]; j++) { + String blueprintId = i + "_" + j; + try { + if (_lotroCardBlueprintLibrary.getBaseBlueprintId(blueprintId).equals(blueprintId)) { + LotroCardBlueprint cardBlueprint = _lotroCardBlueprintLibrary.getLotroCardBlueprint(blueprintId); + CardType cardType = cardBlueprint.getCardType(); + if (cardType == CardType.SITE || cardType == CardType.THE_ONE_RING) + _defaultCollection.addItem(blueprintId, 1); + else + _defaultCollection.addItem(blueprintId, 4); + } + } catch (IllegalArgumentException exp) { + + } } - } catch (IllegalArgumentException exp) { - } + _collectionReadyLatch.countDown(); } - try { - // Slow it down, as it chockes the poor Amazon - Thread.sleep(100); - } catch (InterruptedException exp) { - - } - } - _collectionReadyLatch.countDown(); + }; + thr.start(); _gameRecorder = new GameRecorder(_gameHistoryService); } diff --git a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/AdminResource.java b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/AdminResource.java index 0bd7bd0f9..ebc363738 100644 --- a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/AdminResource.java +++ b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/AdminResource.java @@ -178,16 +178,16 @@ public class AdminResource extends AbstractResource { @FormParam("start") String start, @FormParam("prizeMultiplier") float prizeMultiplier, @FormParam("collectionType") String collectionType, - @FormParam("format") String[] formats, - @FormParam("serieDuration") int[] serieDurations, - @FormParam("maxMatches") int[] maxMatches, + @FormParam("format") List formats, + @FormParam("serieDuration") List serieDurations, + @FormParam("maxMatches") List maxMatches, @Context HttpServletRequest request) throws Exception { validateLeagueAdmin(request); StringBuilder sb = new StringBuilder(); - sb.append(start + "," + collectionType + "," + prizeMultiplier + "," + formats.length); - for (int i = 0; i < formats.length; i++) - sb.append("," + formats[i] + "," + serieDurations[i] + "," + maxMatches[i]); + sb.append(start + "," + collectionType + "," + prizeMultiplier + "," + formats.size()); + for (int i = 0; i < formats.size(); i++) + sb.append("," + formats.get(i) + "," + serieDurations.get(i) + "," + maxMatches.get(i)); String parameters = sb.toString(); LeagueData leagueData = new NewConstructedLeagueData(parameters); @@ -234,18 +234,18 @@ public class AdminResource extends AbstractResource { @FormParam("start") String start, @FormParam("prizeMultiplier") float prizeMultiplier, @FormParam("collectionType") String collectionType, - @FormParam("format") String[] formats, - @FormParam("serieDuration") int[] serieDurations, - @FormParam("maxMatches") int[] maxMatches, + @FormParam("format") List formats, + @FormParam("serieDuration") List serieDurations, + @FormParam("maxMatches") List maxMatches, @Context HttpServletRequest request) throws Exception { validateLeagueAdmin(request); String code = String.valueOf(System.currentTimeMillis()); StringBuilder sb = new StringBuilder(); - sb.append(start + "," + collectionType + "," + prizeMultiplier + "," + formats.length); - for (int i = 0; i < formats.length; i++) - sb.append("," + formats[i] + "," + serieDurations[i] + "," + maxMatches[i]); + sb.append(start + "," + collectionType + "," + prizeMultiplier + "," + formats.size()); + for (int i = 0; i < formats.size(); i++) + sb.append("," + formats.get(i) + "," + serieDurations.get(i) + "," + maxMatches.get(i)); String parameters = sb.toString(); LeagueData leagueData = new NewConstructedLeagueData(parameters); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/common.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/common.js index ebe28bdf7..03eda151f 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/common.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/common.js @@ -15,3 +15,7 @@ function formatPrice(price) { var silver = (price % 100); return Math.floor(price / 100) + " " + ((silver < 10) ? ("0" + silver) : silver) + ""; } + +function getDateString(date) { + return date.substring(0, 4) + "-" + date.substring(4, 6) + "-" + date.substring(6, 8); +} diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/leagueResultsUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/leagueResultsUi.js index 0e0feab3e..fbee2d03a 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/leagueResultsUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gemp-004/leagueResultsUi.js @@ -9,12 +9,12 @@ var LeagueResultsUI = Class.extend({ this.questionDialog = $("
") .dialog({ - autoOpen: false, - closeOnEscape: true, - resizable: false, - modal: true, - title: "League operation" - }); + autoOpen: false, + closeOnEscape: true, + resizable: false, + modal: true, + title: "League operation" + }); this.loadResults(); }, @@ -27,10 +27,6 @@ var LeagueResultsUI = Class.extend({ }); }, - getDateString: function(date) { - return date.substring(0, 4) + "-" + date.substring(4, 6) + "-" + date.substring(6, 8); - }, - loadedLeague: function(xml) { var that = this; log(xml); @@ -107,7 +103,7 @@ var LeagueResultsUI = Class.extend({ var collection = serie.getAttribute("collection"); var limited = serie.getAttribute("limited"); - var serieText = serieName + " - " + this.getDateString(serieStart) + " to " + this.getDateString(serieEnd); + var serieText = serieName + " - " + getDateString(serieStart) + " to " + getDateString(serieEnd); $("#leagueExtraInfo").append("
" + serieText + "
"); $("#leagueExtraInfo").append("
Format: " + ((limited == "true") ? "Limited" : "Constructed") + " " + format + "
"); @@ -146,7 +142,7 @@ var LeagueResultsUI = Class.extend({ $("#leagueResults").append("
" + leagueName + "
"); - var duration = this.getDateString(start) + " to " + this.getDateString(end); + var duration = getDateString(start) + " to " + getDateString(end); $("#leagueResults").append("
Duration (GMT+0): " + duration + "
"); var detailsBut = $("").button(); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/leagueAdmin.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/leagueAdmin.html index 5d22b8b08..ad765582c 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/leagueAdmin.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/leagueAdmin.html @@ -6,6 +6,24 @@ + + @@ -28,31 +46,31 @@ function submitFormToAddress(url, formElem, success, error) { var data = {}; - var inputs = $("input[type='text'], option:selected", formElem); - var input; - for (input in inputs) { - var name = null; - var value = null; - if (input.tagName == "INPUT") { - name = input.getAttribute("name"); - value = input.val(); - - } else if (input.tagName == "OPTION") { - name = input.parents("select").eq(0).getAttribute("name"); - value = input.prop("value"); - } - if (name != null && value != null) { - if (data[name] == null) - data[name] = new Array(); - data[name].push(value); - } - } + var inputs = $("input[type='text'], option:selected", formElem).each( + function() { + var input = $(this); + var name = null; + var value = null; + if (input.prop("tagName") == "INPUT") { + name = input.attr("name"); + value = input.val(); + } else if (input.prop("tagName") == "OPTION") { + name = input.parents("select").attr("name"); + value = input.attr("value"); + } + if (name != null && value != null) { + if (data[name] == null) + data[name] = new Array(); + data[name].push(value); + } + }); $.ajax({ type: "POST", url: url, cache: false, data: data, + traditional: true, success: success, error: error, dataType: "xml" @@ -63,62 +81,76 @@ function () { var previewDialog = $("
") .dialog({ - autoOpen: false, - closeOnEscape: true, - resizable: true, - modal: true, - title: "Preview window" - }); + autoOpen: false, + closeOnEscape: true, + resizable: true, + modal: true, + title: "Preview window" + }); + + var displayPreview = function(xml) { + var root = xml.documentElement; + if (root.tagName == 'league') { + var league = root; + + var leagueName = league.getAttribute("name"); + var cost = parseInt(league.getAttribute("cost")); + var start = league.getAttribute("start"); + var end = league.getAttribute("end"); + + previewDialog.append("
" + leagueName + "
"); + + var costStr = formatPrice(cost); + previewDialog.append("
Cost: " + costStr + "
"); + + var series = league.getElementsByTagName("serie"); + for (var j = 0; j < series.length; j++) { + + var tabContent = $("
"); + + var serie = series[j]; + var serieName = serie.getAttribute("type"); + var serieStart = serie.getAttribute("start"); + var serieEnd = serie.getAttribute("end"); + var maxMatches = serie.getAttribute("maxMatches"); + var format = serie.getAttribute("format"); + var collection = serie.getAttribute("collection"); + var limited = serie.getAttribute("limited"); + + var serieText = serieName + " - " + getDateString(serieStart) + " to " + getDateString(serieEnd); + previewDialog.append("
" + serieText + "
"); + + previewDialog.append("
Format: " + ((limited == "true") ? "Limited" : "Constructed") + " " + format + "
"); + previewDialog.append("
Collection: " + collection + "
"); + + previewDialog.append("
Maximum ranked matches in serie: " + maxMatches + "
"); + } + } + }; + + var previewError = function() { + previewDialog.dialog("close"); + alert("Invalid parameters specified"); + }; $("#previewSealed").click( function() { - submitFormToAddress("/gemp-lotr-server/admin/previewSealedLeague", $("#addSealedForm").eq(0), - function(xml) { - var root = xml.documentElement; - if (root.tagName == 'league') { - var league = root; - - var leagueName = league.getAttribute("name"); - var cost = parseInt(league.getAttribute("cost")); - var start = league.getAttribute("start"); - var end = league.getAttribute("end"); - - previewDialog.append("
" + leagueName + "
"); - - var costStr = formatPrice(cost); - previewDialog.append("
Cost: " + costStr + "
"); - - var series = league.getElementsByTagName("serie"); - for (var j = 0; j < series.length; j++) { - - var tabContent = $("
"); - - var serie = series[j]; - var serieName = serie.getAttribute("type"); - var serieStart = serie.getAttribute("start"); - var serieEnd = serie.getAttribute("end"); - var maxMatches = serie.getAttribute("maxMatches"); - var format = serie.getAttribute("format"); - var collection = serie.getAttribute("collection"); - var limited = serie.getAttribute("limited"); - - var serieText = serieName + " - " + this.getDateString(serieStart) + " to " + this.getDateString(serieEnd); - previewDialog.append("
" + serieText + "
"); - - previewDialog.append("
Format: " + ((limited == "true") ? "Limited" : "Constructed") + " " + format + "
"); - previewDialog.append("
Collection: " + collection + "
"); - - previewDialog.append("
Maximum ranked matches in serie: " + maxMatches + "
"); - } - } - }, - function() { - previewDialog.dialog("close"); - alert("Invalid parameters specified"); - }); + submitFormToAddress("/gemp-lotr-server/admin/previewSealedLeague", $("#addSealedForm").eq(0), displayPreview, previewError); previewDialog.html(""); previewDialog.dialog("open"); }); + + $("#previewConstructed").click( + function() { + submitFormToAddress("/gemp-lotr-server/admin/previewConstructedLeague", $("#addConstructedForm").eq(0), displayPreview, previewError); + previewDialog.html(""); + previewDialog.dialog("open"); + }); + + $("#addConstructedSerie").click( + function() { + $(".serieData").last().clone().appendTo(".series"); + }); }); @@ -130,17 +162,59 @@
Name:
Cost (in silver):
+ Start (YYYYMMDD):
Format:
- Start (YYYYMMDD):
Serie duration in days:
Maximum matches in serie:
+

Add constructed league

+ +
+ Name:
+ Cost (in silver):
+ Start (YYYYMMDD):
+ Prize multiplier (e.g. 0.7):
+ Collection: +
+ +
+
+ Serie definition:
+ Format: +
+ Serie duration in days:
+ Maximum matches in serie:
+
+
+ + + +
+ \ No newline at end of file