From 8f3567660f0bf90a2f2de8db34a56381809a3f54 Mon Sep 17 00:00:00 2001 From: Tissevert Date: Wed, 11 Dec 2019 22:03:16 +0100 Subject: [PATCH] =?UTF-8?q?Split=20login=20and=20main=20screen=20(=C2=ABha?= =?UTF-8?q?ll=C2=BB)=20and=20make=20all=20those=20screens=20=C2=ABsubmodul?= =?UTF-8?q?es=C2=BB=20of=20the=20screen=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- www/index.html | 7 +++--- www/main.js | 5 ++-- www/{ => screen}/game.js | 2 +- www/{login.js => screen/hall.js} | 5 ++-- www/screen/login.js | 43 ++++++++++++++++++++++++++++++++ 5 files changed, 53 insertions(+), 9 deletions(-) rename www/{ => screen}/game.js (99%) rename www/{login.js => screen/hall.js} (98%) create mode 100644 www/screen/login.js diff --git a/www/index.html b/www/index.html index b2977be..bc62082 100644 --- a/www/index.html +++ b/www/index.html @@ -14,9 +14,10 @@ - - + + + @@ -33,7 +34,7 @@

-
+

diff --git a/www/main.js b/www/main.js index 14f6155..ce12d51 100644 --- a/www/main.js +++ b/www/main.js @@ -10,9 +10,10 @@ window.addEventListener('load', function() { var session = Session({messaging: messaging, save: save}); var room = Room({dom: dom, messaging: messaging, session: session, fun: fun}); var statusHandler = StatusHandler(); - var login = Login({dom: dom, i18n: i18n, messaging: messaging, room: room, save: save, screen: screen, session: session, statusHandler: statusHandler}); + var login = Screen.Login({dom: dom, i18n: i18n, messaging: messaging, room: room, save: save, screen: screen, session: session, statusHandler: statusHandler}); + var hall = Screen.Hall({dom: dom, i18n: i18n, messaging: messaging, room: room, save: save, screen: screen, session: session, statusHandler: statusHandler}); var hanafuda = Hanafuda({fun: fun}); - var game = Game({async: async, dom: dom, i18n: i18n, fun: fun, hanafuda: hanafuda, messaging: messaging, room: room, screen: screen, session: session, statusHandler: statusHandler}); + var game = Screen.Game({async: async, dom: dom, i18n: i18n, fun: fun, hanafuda: hanafuda, messaging: messaging, room: room, screen: screen, session: session, statusHandler: statusHandler}); var domElems = { join: document.getElementById('login').join, diff --git a/www/game.js b/www/screen/game.js similarity index 99% rename from www/game.js rename to www/screen/game.js index a38115b..7808fda 100644 --- a/www/game.js +++ b/www/screen/game.js @@ -1,4 +1,4 @@ -function Game(modules) { +Screen.Game = function(modules) { var deck = document.getElementById("deck"); var rest = document.getElementById("rest"); var status = { diff --git a/www/login.js b/www/screen/hall.js similarity index 98% rename from www/login.js rename to www/screen/hall.js index 7f38535..5147d8c 100644 --- a/www/login.js +++ b/www/screen/hall.js @@ -1,4 +1,4 @@ -function Login(modules) { +Screen.Hall = function(modules) { var root = document.getElementById('login'); var playersMessage = root.getElementsByClassName('message')[0]; var players = document.getElementById('players').getElementsByClassName('list')[0]; @@ -68,9 +68,8 @@ function Login(modules) { }); modules.messaging.addEventListener(["LogIn"], function(o) { - //playersChanged(); if(modules.session.is(o.from)) { - modules.screen.select('main'); + modules.screen.select('hall'); } }); diff --git a/www/screen/login.js b/www/screen/login.js new file mode 100644 index 0000000..c044746 --- /dev/null +++ b/www/screen/login.js @@ -0,0 +1,43 @@ +Screen.Login = function(modules) { + var root = document.getElementById('login'); + var join = document.getElementById("join"); + var submit = root.submitButton; + + init(); + + return {}; + + function init() { + initDOMEvents(); + initMessageHandlers(); + var name = modules.save.get('player.name'); + if(name != undefined && name.length > 0) { + root.you.value = name; + formDisable(false); + } + } + + function initDOMEvents() { + root.addEventListener('submit', function(e) { + e.preventDefault(); + modules.session.start(root.you.value); + }); + } + + function initMessageHandlers() { + modules.messaging.addEventListener(["LogIn"], function(o) { + if(modules.session.is(o.from)) { + modules.screen.select('hall'); + } + }); + + modules.messaging.addEventListener('open', function() {formDisable(false);}); + modules.messaging.addEventListener('close', function() {formDisable(true);}); + } + + function formDisable(disabled) { + [submit, root.name].forEach(function(button) { + button.disabled = disabled || !modules.messaging.isOn(); + }); + } +}