Moved menu to require.js style, ref #77

This commit is contained in:
Jeena 2014-07-12 17:31:18 +02:00
parent 2213a50623
commit 1a6d8effad
4 changed files with 81 additions and 83 deletions

View file

@ -1,5 +1,61 @@
if(!Chuck) var Chuck = {}; define([
(function(Chuck) { "Lib/Utilities/ColorConverter"
],
function (ColorConverter) {
var instance = null
function Menu() {
}
Menu.prototype.init = function() {
instance = this; // Dum und Dümmer
if(localStorage["player"]) {
var player = JSON.parse(localStorage["player"]);
if(player.nickname) {
$("#nick").value = player.nickname;
}
}
if(localStorage["customname"]) {
$("#customname").value = localStorage["customname"];
}
$("#refresh").onclick = refresh;
refresh();
populateMaps();
var channelDestructionTimeout = null;
var refreshInterval = setInterval(refresh, 5000);
$("#createbutton").onclick = function() {
show('#createform');
return false;
};
$("#quickstartbutton").onclick = quickstart;
var cancelButtons = $$(".cancel");
for (var i = 0; i < cancelButtons.length; i++) {
cancelButtons[i].onclick = function() {
show('#listform');
return false;
};
};
this.colorConverter = new ColorConverter();
var c = $("#nick");
c.onchange = c.onkeyup = c.onblur = c.onclick = this.updatePrimaryColor.bind(this);
this.updatePrimaryColor({target:c});
};
Menu.prototype.updatePrimaryColor = function(e) {
$("#primarycolor").style.backgroundColor = "#" + this.colorConverter.getColorByName(e.target.value).toString(16);
};
Menu.prototype.onRun = function(channelName, nickname) {}
window.onhashchange = function() { window.onhashchange = function() {
if(window.location.hash) { if(window.location.hash) {
@ -28,17 +84,6 @@ if(!Chuck) var Chuck = {};
return document.querySelectorAll(selector); return document.querySelectorAll(selector);
} }
if(localStorage["player"]) {
var player = JSON.parse(localStorage["player"]);
if(player.nickname) {
$("#nick").value = player.nickname;
}
}
if(localStorage["customname"]) {
$("#customname").value = localStorage["customname"];
}
var lastRefreshResponse; var lastRefreshResponse;
function refresh(callback) { function refresh(callback) {
@ -57,36 +102,6 @@ if(!Chuck) var Chuck = {};
console.error("getChannels error: ", responseText) console.error("getChannels error: ", responseText)
}); });
/*
try {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
var response = xhr.responseText;
if(response != lastRefreshResponse) {
lastRefreshResponse = response;
populate(JSON.parse(response).success);
}
document.body.className = "";
if(typeof callback == 'function') {
callback(JSON.parse(response).success)
}
} else {
console.error("Ajax error: " + xhr.status + " " + xhr.responseText)
$("#list").innerHTML = "";
document.body.className = "offline";
}
}
}
xhr.open("POST", "/api", true);
xhr.send(JSON.stringify({command:"getChannels"}));
} catch(e) {
console.error(e)
}
*/
return false; return false;
} }
@ -229,6 +244,7 @@ if(!Chuck) var Chuck = {};
join(nickname, defaultChannelName); join(nickname, defaultChannelName);
} }
}); });
return false;
} }
function startTimer(seconds) { function startTimer(seconds) {
@ -328,7 +344,7 @@ if(!Chuck) var Chuck = {};
//window.location.href = "/game.html"; //window.location.href = "/game.html";
$("#menu").style.display = "none"; $("#menu").style.display = "none";
$("#game").style.display = "block"; $("#game").style.display = "block";
Chuck.run(channelName, nickname); instance.onRun(channelName, nickname); // Dumm und dümmer
if(refreshInterval) { if(refreshInterval) {
clearInterval(refreshInterval); clearInterval(refreshInterval);
@ -364,35 +380,9 @@ if(!Chuck) var Chuck = {};
console.log(responseText) console.log(responseText)
alert(JSON.parse(responseText).error) alert(JSON.parse(responseText).error)
}); });
/*
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
if(typeof callback == 'function') {
callback(JSON.parse(xhr.responseText).success);
}
} else {
console.log(xhr.responseText)
alert(JSON.parse(xhr.responseText).error)
}
}
}
xhr.open("POST", "/api", true);
xhr.send(JSON.stringify({command:"createChannel", options: options}));
*/
} }
} }
$("#refresh").onclick = refresh; return Menu;
refresh();
populateMaps(); });
var channelDestructionTimeout = null;
var refreshInterval = setInterval(refresh, 5000);
Chuck.menu = {
show: show,
quickstart: quickstart
}
})(Chuck);

View file

@ -14,12 +14,13 @@ requirejs([
"Lib/Vendor/SocketIO", "Lib/Vendor/SocketIO",
"Game/Config/Settings", "Game/Config/Settings",
"Lib/Utilities/Exception", "Lib/Utilities/Exception",
"Lib/Vendor/Pixi" "Menu/Menu"
], ],
function (Networker, SocketIO, Settings, Exception, PIXI) { function (Networker, SocketIO, Settings, Exception, Menu) {
Chuck.run = function(channelName, nickname) { var menu = new Menu();
menu.onRun = function(channelName, nickname) {
var options = { var options = {
"reconnect": false, "reconnect": false,
"reconnection delay": 500, "reconnection delay": 500,
@ -33,6 +34,7 @@ function (Networker, SocketIO, Settings, Exception, PIXI) {
var networker = new Networker(socket, channelName, nickname); var networker = new Networker(socket, channelName, nickname);
Chuck.inspector.networker = networker; Chuck.inspector.networker = networker;
Chuck.inspector.settings = Settings; Chuck.inspector.settings = Settings;
Chuck.inspector.resetLevel = function() { networker.sendGameCommand("resetLevel"); } Chuck.inspector.resetLevel = function() { networker.sendGameCommand("resetLevel"); }
} }
menu.init();
}); });

View file

@ -40,6 +40,12 @@ input, button {
text-transform: capitalize; text-transform: capitalize;
} }
#primarycolor {
padding: 0.3em;
width: 1em;
background-color: black;
}
article#menu { article#menu {
margin: 4em auto; margin: 4em auto;
background: #1a1a1a; background: #1a1a1a;

View file

@ -11,6 +11,7 @@
<label> <label>
Nickname:<br> Nickname:<br>
<input id="nick" name="nick" type="text"> <input id="nick" name="nick" type="text">
<input id="primarycolor">
</label> </label>
</p> </p>
@ -33,7 +34,7 @@
<p> <p>
<button>Create</button> <button>Create</button>
<button onclick="Chuck.menu.show('#listform'); return false;">Cancel</button> <button class="cancel">Cancel</button>
</p> </p>
</div> </div>
</form> </form>
@ -48,7 +49,7 @@
<p> <p>
<button>Join</button> <button>Join</button>
<span id="timeout"></span> <span id="timeout"></span>
<button onclick="Chuck.menu.show('#listform'); return false;">Cancel</button> <button class="cancel">Cancel</button>
</p> </p>
</form> </form>
@ -65,8 +66,8 @@
</table> </table>
<p> <p>
<button id="refresh">Refresh list</button> <button id="refresh">Refresh list</button>
<button onclick="Chuck.menu.show('#createform'); return false;">Create</button> <button id="createbutton">Create</button>
<button onclick="Chuck.menu.quickstart(); return false;">Quickstart</button> <button id="quickstartbutton">Quickstart</button>
</p> </p>
</form> </form>
</article> </article>
@ -76,7 +77,6 @@
<canvas id="canvas"></canvas> <canvas id="canvas"></canvas>
</div> </div>
</article> </article>
<script type="text/javascript" src="/static/js/menu.js"></script>
<script data-main="client" src="require.js"></script> <script data-main="client" src="require.js"></script>
</body> </body>
</html> </html>