diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js index da541e914..84d23b0c8 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/communication.js @@ -79,6 +79,18 @@ var GempLotrCommunication = Class.extend({ dataType: "xml" }); }, + getDecks: function(callback) { + $.ajax({ + type: "GET", + url: this.url + "/deck/list", + cache: false, + data: { + participantId: getUrlParam("participantId")}, + success: callback, + error: this.failure, + dataType: "xml" + }); + }, getCollection: function(collectionType, filter, start, count, callback) { $.ajax({ type: "GET", diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/hallUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/hallUi.js index dc196b473..e2eae9dff 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/hallUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/hallUi.js @@ -4,6 +4,7 @@ var GempLotrHallUI = Class.extend({ chat: null, supportedFormatsInitialized: false, supportedFormatsSelect: null, + decksSelect: null, createTableButton: null, leaveTableButton: null, @@ -41,7 +42,7 @@ var GempLotrHallUI = Class.extend({ var that = this; - var editDeck = $(""); + var editDeck = $(""); editDeck.button().click( function() { location.href = 'deckBuild.html'; @@ -58,13 +59,19 @@ var GempLotrHallUI = Class.extend({ that.supportedFormatsSelect.hide(); that.createTableButton.hide(); var format = that.supportedFormatsSelect.val(); - that.comm.createTable(format, "Default", function(xml) { - that.processResponse(xml); - }); + var deck = that.decksSelect.val(); + if (deck != null) + that.comm.createTable(format, deck, function(xml) { + that.processResponse(xml); + }); }); this.createTableButton.hide(); + this.decksSelect = $(""); + this.decksSelect.hide(); + buttonsDiv.append(this.supportedFormatsSelect); + buttonsDiv.append(this.decksSelect); buttonsDiv.append(this.createTableButton); this.leaveTableButton = $(""); @@ -80,6 +87,7 @@ var GempLotrHallUI = Class.extend({ this.div.append(buttonsDiv); this.updateHall(); + this.updateDecks(); }, updateHall: function() { @@ -90,6 +98,13 @@ var GempLotrHallUI = Class.extend({ }); }, + updateDecks: function() { + var that = this; + this.comm.getDecks(function(xml) { + that.processDecks(xml); + }); + }, + processResponse: function(xml) { if (xml != null) { var root = xml.documentElement; @@ -100,6 +115,23 @@ var GempLotrHallUI = Class.extend({ } }, + processDecks: function(xml) { + var root = xml.documentElement; + if (root.tagName == "decks") { + this.decksSelect.html(""); + var decks = root.getElementsByTagName("deck"); + for (var i = 0; i < decks.length; i++) { + var deck = decks[i]; + var deckName = decks[i].childNodes[0].nodeValue; + var deckElem = $(""); + deckElem.attr("value", deckName); + deckElem.html(deckName); + this.decksSelect.append(deckElem); + } + this.decksSelect.css("display", ""); + } + }, + processHall: function(xml) { var root = xml.documentElement; if (root.tagName == "hall") { @@ -146,10 +178,12 @@ var GempLotrHallUI = Class.extend({ if (waiting) { this.supportedFormatsSelect.hide(); + this.decksSelect.hide(); this.createTableButton.hide(); this.leaveTableButton.css("display", ""); } else { this.supportedFormatsSelect.css("display", ""); + this.decksSelect.css("display", ""); this.createTableButton.css("display", ""); this.leaveTableButton.hide(); } @@ -184,9 +218,11 @@ var GempLotrHallUI = Class.extend({ var but = $(""); $(but).button().click( function(event) { - that.comm.joinTable(id, "Default", function(xml) { - that.processResponse(xml); - }); + var deck = that.decksSelect.val(); + if (deck != null) + that.comm.joinTable(id, deck, function(xml) { + that.processResponse(xml); + }); }); tableDiv.append(but); }