custom alert dialogs and compatibility improvement
This commit is contained in:
parent
c71b29212c
commit
4099fa40b8
@ -182,6 +182,10 @@ button#lobby {
|
|||||||
background-color: #f9f9f9;
|
background-color: #f9f9f9;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
max-width: 254px;
|
||||||
|
}
|
||||||
|
.chatbox input {
|
||||||
|
max-width: 245px;
|
||||||
}
|
}
|
||||||
#messages {
|
#messages {
|
||||||
height: 250px;
|
height: 250px;
|
||||||
@ -192,3 +196,33 @@ button#lobby {
|
|||||||
white-space: pre-line;
|
white-space: pre-line;
|
||||||
max-width: 254px;
|
max-width: 254px;
|
||||||
}
|
}
|
||||||
|
#alertModal {
|
||||||
|
top: 80px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 120%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#am_text {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#alertModal button {
|
||||||
|
font-size: 80%;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
dialog.unsupported {
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
width: -moz-fit-content;
|
||||||
|
height: -moz-fit-content;
|
||||||
|
width: -webkit-fit-content;
|
||||||
|
height: -webkit-fit-content;
|
||||||
|
width: fit-content;
|
||||||
|
height: fit-content;
|
||||||
|
color: black;
|
||||||
|
margin: auto;
|
||||||
|
padding: 1em;
|
||||||
|
background: white;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
@ -13,6 +13,10 @@
|
|||||||
<title>HTML5 Connect Four</title>
|
<title>HTML5 Connect Four</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<dialog id="alertModal">
|
||||||
|
<span class="message" id="am_text"></span>
|
||||||
|
<button id="close">Close this</button>
|
||||||
|
</dialog>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<div class="screen" id="start">
|
<div class="screen" id="start">
|
||||||
<div class="dialog">
|
<div class="dialog">
|
||||||
|
@ -42,6 +42,11 @@
|
|||||||
return html
|
return html
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function modalAlert (msg) {
|
||||||
|
Connect4.DOM.modalMsg.innerHTML = msg
|
||||||
|
Connect4.DOM.alertModal.showModal()
|
||||||
|
}
|
||||||
|
|
||||||
function pointerOnCanvas (e) {
|
function pointerOnCanvas (e) {
|
||||||
let x
|
let x
|
||||||
let y
|
let y
|
||||||
@ -278,7 +283,7 @@
|
|||||||
function joinGame (game) {
|
function joinGame (game) {
|
||||||
Connect4.played += 1
|
Connect4.played += 1
|
||||||
|
|
||||||
alert('Game has started!')
|
modalAlert('Game has started!')
|
||||||
//io.emit('leave_game', {gameId: Connect4.Game.gameId})
|
//io.emit('leave_game', {gameId: Connect4.Game.gameId})
|
||||||
Connect4.Game.gameId = game.gameId
|
Connect4.Game.gameId = game.gameId
|
||||||
Connect4.Game.opponentID = game.opponentId
|
Connect4.Game.opponentID = game.opponentId
|
||||||
@ -355,23 +360,23 @@
|
|||||||
function gameEnds (reason, winner) {
|
function gameEnds (reason, winner) {
|
||||||
if (reason === 1) {
|
if (reason === 1) {
|
||||||
if (winner === true) {
|
if (winner === true) {
|
||||||
alert('You won!')
|
modalAlert('You won!')
|
||||||
logStatus('You won!')
|
logStatus('You won!')
|
||||||
} else {
|
} else {
|
||||||
alert('You lost.')
|
modalAlert('You lost.')
|
||||||
logStatus('You lost.')
|
logStatus('You lost.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reason === 0 && winner === true) {
|
if (reason === 0 && winner === true) {
|
||||||
alert('Your opponent left the game.')
|
modalAlert('Your opponent left the game.')
|
||||||
Connect4.DOM.gameScreen.style.display = 'none'
|
Connect4.DOM.gameScreen.style.display = 'none'
|
||||||
Connect4.DOM.selectionScreen.style.display = 'block'
|
Connect4.DOM.selectionScreen.style.display = 'block'
|
||||||
Connect4.renderTick = false
|
Connect4.renderTick = false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reason === 2) {
|
if (reason === 2) {
|
||||||
alert('You tied!')
|
modalAlert('You tied!')
|
||||||
logStatus('It\'s a tie!.')
|
logStatus('It\'s a tie!.')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -420,6 +425,18 @@
|
|||||||
Connect4.DOM.chatbox.scrollTop = Connect4.DOM.chatbox.scrollHeight
|
Connect4.DOM.chatbox.scrollTop = Connect4.DOM.chatbox.scrollHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function unsupportedModalFix (elem) {
|
||||||
|
if (!elem.showModal) {
|
||||||
|
elem.className = 'unsupported'
|
||||||
|
elem.showModal = () => {
|
||||||
|
elem.style.display = 'block'
|
||||||
|
}
|
||||||
|
elem.close = () => {
|
||||||
|
elem.style.display = 'none'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
const startScreen = Connect4.DOM.startScreen = $.querySelector('#start')
|
const startScreen = Connect4.DOM.startScreen = $.querySelector('#start')
|
||||||
const selectionScreen = Connect4.DOM.selectionScreen = $.querySelector('#selection')
|
const selectionScreen = Connect4.DOM.selectionScreen = $.querySelector('#selection')
|
||||||
@ -455,6 +472,11 @@
|
|||||||
const chatbox = Connect4.DOM.chatbox = gameScreen.querySelector('#messages')
|
const chatbox = Connect4.DOM.chatbox = gameScreen.querySelector('#messages')
|
||||||
const chatfield = Connect4.DOM.chatfield = gameScreen.querySelector('#message_send')
|
const chatfield = Connect4.DOM.chatfield = gameScreen.querySelector('#message_send')
|
||||||
|
|
||||||
|
const alertModal = Connect4.DOM.alertModal = $.querySelector('#alertModal')
|
||||||
|
const alertClose = alertModal.querySelector('#close')
|
||||||
|
Connect4.DOM.modalMsg = alertModal.querySelector('#am_text')
|
||||||
|
unsupportedModalFix(alertModal)
|
||||||
|
|
||||||
GameDrawer.initialize()
|
GameDrawer.initialize()
|
||||||
|
|
||||||
let uname = getStored('name')
|
let uname = getStored('name')
|
||||||
@ -468,6 +490,10 @@
|
|||||||
}
|
}
|
||||||
}, false)
|
}, false)
|
||||||
|
|
||||||
|
alertClose.addEventListener('click', () => {
|
||||||
|
alertModal.close()
|
||||||
|
})
|
||||||
|
|
||||||
chatfield.addEventListener('keydown', (e) => {
|
chatfield.addEventListener('keydown', (e) => {
|
||||||
if (e.keyCode === 13 && Connect4.Game.gameId) {
|
if (e.keyCode === 13 && Connect4.Game.gameId) {
|
||||||
if (chatfield.value != '') {
|
if (chatfield.value != '') {
|
||||||
@ -545,7 +571,7 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
io.on('game_error', (data) => {
|
io.on('game_error', (data) => {
|
||||||
alert(data.message)
|
modalAlert(data.message)
|
||||||
gameEnds(0, null)
|
gameEnds(0, null)
|
||||||
io.emit('poll_games')
|
io.emit('poll_games')
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user