notification changes

This commit is contained in:
Jonas Weinz 2019-03-10 14:06:55 +01:00
parent 696f73961a
commit 2c46020497
2 changed files with 30 additions and 4 deletions

View File

@ -16,8 +16,6 @@ class GameManager
this.grid.player_change_listener(this.dummy_player);
this.received_close_message = false;
// possible modes:
// -- none
// -- local
@ -194,6 +192,8 @@ class GameManager
var status_title = "" + this.remote_player.get_name() + " vs. " + opponent_name;
this.notify("Your game against " + opponent_name + " started");
if (is_first_move)
{
this.grid.deactivate_all();
@ -238,6 +238,8 @@ class GameManager
this.status_change_listener("game was closed by server or opponent", "Game Over");
this.notify("Game is closed");
this.end_game();
}
@ -257,6 +259,7 @@ class GameManager
{
this.status_change_listener("your turn");
this.grid.player_change_listener(this.remote_player);
this.notify("it's your turn");
}
else
{
@ -265,11 +268,15 @@ class GameManager
}
}
end_game()
end_game(clicked_by_local_user = false)
{
if (this.game_mode == "remote")
{
this.game_server_connection.close();
if (clicked_by_local_user)
{
this.status_change_listener("you closed the game", "Game Over");
}
}
else if (this.game_mode == "local")
{
@ -284,4 +291,23 @@ class GameManager
this.status_change_listener("connection error", "Game Over");
this.end_game();
}
notify(text) {
if (!("Notification" in window)) {
return;
}
else if (Notification.permission === "granted") {
var notification = new Notification(text);
}
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
if (permission === "granted") {
var notification = new Notification(text);
}
});
}
}
}

View File

@ -92,7 +92,7 @@ class Sidebar
this.game_manager.register_status_change_listener((c,t=null) => this.status_change_listener(c, t));
this.b_local.addEventListener("click", () => this.game_manager.start_local_game());
this.b_end_game.addEventListener("click", () => this.game_manager.end_game());
this.b_end_game.addEventListener("click", () => this.game_manager.end_game(true));
this.b_remote.addEventListener("click", () => this.game_manager.register_remote_game(this.get_player_name()));
}