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);
}