diff --git a/public/css/chat.css b/public/css/chat.css new file mode 100644 index 0000000..4122d4e --- /dev/null +++ b/public/css/chat.css @@ -0,0 +1,100 @@ +#chat { + display: flex; + flex-flow: column; + overflow: hidden; + + border-left: #7d7d7d solid 2px; + height: 100%; +} + +#messages_received { + flex: 1 1 90%; + display: flex; + flex-direction: column; + overflow: auto; + padding: 5px; +} + +#message_add { + flex: 0 0 10%; +} + +#message_add form { + height: 100%; + width: 100%; +} + +#message_input { + height: calc(100% - 10px - 2em - 6px); + width: calc(100% - 10px); +} + +#message_send { + height: 2em; + width: 100%; +} + +.log_message { + list-style-type: none; + padding: 5px; + font-weight: bold; + color: #424242; + text-align: center; +} + +.chat_message { + list-style-type: none; + margin: 5px; + padding: 5px 10px 5px 10px; + border-radius: 5px; + background: #0672e6; + color: #fff; + position: relative; +} + +.me { + margin-left: 2em; +} + +.me:before { + content: ""; + width: 0; + height: 0; + position: absolute; + border-left: 10px solid #0672e6; + border-right: 10px solid transparent; + border-top: 10px solid #0672e6; + border-bottom: 10px solid transparent; + right: -10px; + top: 0; +} + +.others { + margin-right: 2em; +} + +.others:before { + content: ""; + width: 0; + height: 0; + position: absolute; + border-left: 10px solid transparent; + border-right: 10px solid #0672e6; + border-top: 10px solid #0672e6; + border-bottom: 10px solid transparent; + left: -10px; + top: 0; +} + +.username { + font-weight: bold; +} + +.messageBody { + +} + +.messageBody::before { + content: '\A'; + white-space: pre; +} \ No newline at end of file diff --git a/public/css/components.css b/public/css/components.css index 326a2c5..c5a7d97 100644 --- a/public/css/components.css +++ b/public/css/components.css @@ -12,92 +12,10 @@ body { overflow: hidden; } -header { - height: 3em; -} - main { display: grid; grid-template-columns: 80% 20%; - height: calc(100% - 3em); -} - -#game { - height: 100%; - grid-column-start: 1; -} - -#chat { - border-left: #7d7d7d solid 2px; - height: 100%; - grid-column-start: 2; -} - -#messages { - height: calc(100% - 5em - 3em); - overflow-y: scroll; - padding: 5px; -} - -.log { - list-style-type: none; - padding: 5px; - font-weight: bold; - color: #424242; - text-align: center; -} - -.message { - list-style-type: none; - margin: 5px; - border-radius: 5px; - background: #0079a5; - color: #fff; - padding: 5px 5px 5px 15px; - position: relative; -} - -.me:before { - content: ""; - width: 0; - height: 0; - position: absolute; - border-left: 15px solid #0079a5; - border-right: 15px solid transparent; - border-top: 15px solid #0079a5; - border-bottom: 15px solid transparent; - right: -10px; - top: 0; -} - -.others:before { - content: ""; - width: 0; - height: 0; - position: absolute; - border-left: 15px solid transparent; - border-right: 15px solid #0079a5; - border-top: 15px solid #0079a5; - border-bottom: 15px solid transparent; - left: -10px; - top: 0; -} - -.username { - font-weight: bold; -} - -.messageBody { - -} - -.messageBody::before { - content: '\A'; - white-space: pre; -} - -#message_form { - height: 5em; + height: calc(100% - 3em - 10px); } .material-icon { diff --git a/public/css/game.css b/public/css/game.css new file mode 100644 index 0000000..e8f4e34 --- /dev/null +++ b/public/css/game.css @@ -0,0 +1,4 @@ +#game { + height: 100%; + grid-column-start: 1; +} \ No newline at end of file diff --git a/public/img/bunny.jpg b/public/img/bunny.jpg deleted file mode 100644 index 9674fa0..0000000 Binary files a/public/img/bunny.jpg and /dev/null differ diff --git a/public/index.html b/public/index.html index d99cf03..d032ba9 100644 --- a/public/index.html +++ b/public/index.html @@ -4,12 +4,13 @@ Projektmanagement Game - + - - + + + - +
@@ -18,20 +19,25 @@
-
+
-
- - - -
+
+
+ + + +
+
- + + diff --git a/public/js/chat.js b/public/js/chat.js index 436126c..8c0f1d7 100644 --- a/public/js/chat.js +++ b/public/js/chat.js @@ -8,7 +8,7 @@ window.addEventListener('load', function () { socket.on('login', function (data) { connected = true; - log("Welcome " + username + "!"); + addLogMessage("Welcome " + username + "!"); }); socket.on('new message', function (data) { @@ -16,11 +16,11 @@ window.addEventListener('load', function () { }); socket.on('user joined', function (data) { - log(data + ' joined'); + addLogMessage(data + ' joined'); }); socket.on('user left', function (data) { - log(data + ' left'); + addLogMessage(data + ' left'); }); // Login @@ -28,23 +28,23 @@ window.addEventListener('load', function () { }); function sendMessage() { - let message = document.getElementById('message').value; + let message = document.getElementById('message_input').value; if (message && connected) { - document.getElementById('message').value = ''; + document.getElementById('message_input').value = ''; - addChatMessage({ username: username, message: message }); + addChatMessage({username: username, message: message}); socket.emit('new message', message); } } -function log(message) { +function addLogMessage(message) { let li = document.createElement('div'); - li.classList.add('log'); + li.classList.add('log_message'); li.innerText = message; - document.getElementById("messages").appendChild(li); + document.getElementById("messages_received").appendChild(li); } function addChatMessage(data) { @@ -57,8 +57,8 @@ function addChatMessage(data) { messageBody.innerText = data.message; let messageDiv = document.createElement('div'); - messageDiv.classList.add('message'); - if(data.username === username) { + messageDiv.classList.add('chat_message'); + if (data.username === username) { messageDiv.classList.add('me'); } else { messageDiv.classList.add('others'); @@ -66,5 +66,5 @@ function addChatMessage(data) { messageDiv.appendChild(user); messageDiv.appendChild(messageBody); - document.getElementById('messages').append(messageDiv); + document.getElementById('messages_received').append(messageDiv); } \ No newline at end of file diff --git a/public/js/game.js b/public/js/game.js new file mode 100644 index 0000000..3ecefd4 --- /dev/null +++ b/public/js/game.js @@ -0,0 +1,22 @@ +const app = new PIXI.Application({ + autoResize: true, + resolution: devicePixelRatio, + backgroundColor: 0x0073db +}); +document.getElementById('game').appendChild(app.view); + + +// -------------------------------------- code -------------------------------------- + +// ------------------------------------ end code ------------------------------------ + + +// Resize (Do Not modify) +window.addEventListener('resize', resize); + +function resize() { + let game = document.getElementById('game'); + app.renderer.resize(game.offsetWidth, game.offsetHeight); +} + +resize(); \ No newline at end of file diff --git a/public/js/index.js b/public/js/index.js index 6a175ac..c73fbce 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -1,20 +1,4 @@ -const app = new PIXI.Application({ - autoResize: true, - resolution: devicePixelRatio, - backgroundColor: 0x0073db +window.addEventListener('beforeunload', function (e) { + // Prevent user from exiting page + e.preventDefault(); }); -document.getElementById('game').appendChild(app.view); - - -// -------------------------------------- code -------------------------------------- - -// ------------------------------------ end code ------------------------------------ - - -// Resize (Do Not modify) -window.addEventListener('resize', resize); -function resize() { - let game = document.getElementById('game'); - app.renderer.resize(game.offsetWidth, game.offsetHeight); -} -resize(); \ No newline at end of file