From f38a89353edd4eecff48d693df6c514aee796901 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 14 Dec 2011 14:35:35 +0000 Subject: [PATCH] Deck management in separate modal dialog. --- .../src/main/webapp/js/deckBuildingUi.js | 133 ++++++++++-------- 1 file changed, 73 insertions(+), 60 deletions(-) diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js index 86968e8fe..9f787fcdc 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js @@ -4,7 +4,6 @@ var GempLotrDeckBuildingUI = Class.extend({ deckDiv: null, manageDecksDiv: null, - decksSelect: null, ringBearerDiv: null, ringBearerGroup: null, @@ -35,6 +34,8 @@ var GempLotrDeckBuildingUI = Class.extend({ checkDirtyInterval: 1000, + deckListDialog: null, + init: function() { var that = this; @@ -58,14 +59,8 @@ var GempLotrDeckBuildingUI = Class.extend({ var copyDeckBut = $("").button(); this.manageDecksDiv.append(copyDeckBut); - var deleteDeckBut = $("").button(); - this.manageDecksDiv.append(deleteDeckBut); - - this.decksSelect = $(""); - this.manageDecksDiv.append(this.decksSelect); - - var loadDeckBut = $("").button(); - this.manageDecksDiv.append(loadDeckBut); + var deckListBut = $("").button(); + this.manageDecksDiv.append(deckListBut); this.manageDecksDiv.append("Editing deck: New deck"); @@ -113,7 +108,6 @@ var GempLotrDeckBuildingUI = Class.extend({ $("#editingDeck").text("Editing deck: " + newDeckName); that.comm.renameDeck(oldDeckName, newDeckName, function() { - that.loadDecks(); if (confirm("Do you wish to save this deck?")) that.saveDeck(false); }); @@ -126,30 +120,9 @@ var GempLotrDeckBuildingUI = Class.extend({ $("#editingDeck").html("Editing deck: New deck"); }); - deleteDeckBut.click( + deckListBut.click( function() { - if (confirm("Are you sure you want to delete this deck?")) { - if (that.deckName != null) - that.comm.deleteDeck(that.deckName, - function() { - that.loadDecks(); - }); - that.deckName = null; - $("#editingDeck").html("Editing deck: New deck"); - that.clearDeck(); - } - } - ); - - loadDeckBut.click( - function() { - var deck = that.decksSelect.val(); - if (deck != null) { - that.comm.getDeck(deck, - function(xml) { - that.setupDeck(xml, deck); - }); - } + that.loadDeckList(); }); this.collectionDiv = $("#collectionDiv"); @@ -441,13 +414,78 @@ var GempLotrDeckBuildingUI = Class.extend({ }; this.infoDialog.swipe(swipeOptions); - this.loadDecks(); - this.getCollection(); this.checkDeckStatsDirty(); }, + loadDeckList: function() { + var that = this; + this.comm.getDecks(function(xml) { + if (that.deckListDialog == null) { + that.deckListDialog = $("
") + .dialog({ + title: "Your stored decks", + autoOpen: false, + closeOnEscape: true, + resizable: true, + width: 400, + height: 200, + modal: true + }); + } + that.deckListDialog.html(""); + + var root = xml.documentElement; + if (root.tagName == "decks") { + 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 openDeckBut = $("").button(); + var deleteDeckBut = $("").button(); + + var deckElem = $("
"); + deckElem.append(openDeckBut); + deckElem.append(deleteDeckBut); + deckElem.append(deckName); + + that.deckListDialog.append(deckElem); + + openDeckBut.click( + (function(deckName) { + return function() { + that.comm.getDeck(deckName, + function(xml) { + that.setupDeck(xml, deckName); + }); + }; + })(deckName)); + + deleteDeckBut.click( + (function(deckName) { + return function() { + if (confirm("Are you sure you want to delete this deck?")) { + that.comm.deleteDeck(deckName, + function() { + if (that.deckName == deckName) { + that.deckName = null; + $("#editingDeck").html("Editing deck: New deck"); + that.clearDeck(); + } + + that.loadDeckList(); + }); + } + }; + })(deckName)); + } + } + + that.deckListDialog.dialog("open"); + }); + }, + clickCardFunction: function(event) { var that = this; @@ -526,29 +564,6 @@ var GempLotrDeckBuildingUI = Class.extend({ return true; }, - loadDecks: function() { - var that = this; - this.comm.getDecks(function(xml) { - that.setupDeckList(xml); - }); - }, - - setupDeckList: 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); - } - } - }, - displayCardInfo: function(card) { this.infoDialog.html(""); this.infoDialog.html("
"); @@ -603,8 +618,6 @@ var GempLotrDeckBuildingUI = Class.extend({ else this.comm.saveDeck(this.deckName, deckContents, function(xml) { alert("Deck was saved"); - if (reloadList) - that.loadDecks(); }); },