From 53e4968cb48f06393d0d5d1263a8cce549e2d406 Mon Sep 17 00:00:00 2001 From: Roslot Date: Thu, 9 May 2019 02:37:13 -0400 Subject: [PATCH] Added notifications and sound alerts in client.js --- client/audio/notify.ogg | Bin 0 -> 65732 bytes client/client.js | 151 ++++++++++++++++++++++++++++++++++++---- client/index.html | 13 +++- package.json | 2 +- 4 files changed, 152 insertions(+), 14 deletions(-) create mode 100644 client/audio/notify.ogg diff --git a/client/audio/notify.ogg b/client/audio/notify.ogg new file mode 100644 index 0000000000000000000000000000000000000000..20c1a35a7b3e94dea924a0189b30bcf67e5c6f49 GIT binary patch literal 65732 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 W7rN|3X$AONhsrzU` { + localStorageSet("notify-api", notifySwitch.checked) +}) +// Check if localStorage value is set, defaults to ON +if (notifySetting === null) { + localStorageSet("notify-api", "true") + notifySwitch.checked = true +} +// Configure notifySwitch checkbox element +if (notifySetting === "true" || notifySetting === true) { + notifySwitch.checked = true +} else if (notifySetting === "false" || notifySetting === false) { + notifySwitch.checked = false +} + + +/** Sound switch and local storage behavior **/ +var soundSwitch = document.getElementById("sound-switch") +var notifySetting = localStorageGet("notify-sound") + +// Update localStorage with value of checkbox +soundSwitch.addEventListener('change', () => { + localStorageSet("notify-sound", soundSwitch.checked) +}) +// Check if localStorage value is set, defaults to OFF +if (notifySetting === null) { + localStorageSet("notify-sound", "false") + soundSwitch.checked = false +} +// Configure soundSwitch checkbox element +if (notifySetting === "true" || notifySetting === true) { + soundSwitch.checked = true +} else if (notifySetting === "false" || notifySetting === false) { + soundSwitch.checked = false +} + + + +// Create a new notification after checking if permission has been granted +function spawnNotification(title, body) { + // Let's check if the browser supports notifications + if (!("Notification" in window)) { + console.error("This browser does not support desktop notification"); + } + // Let's check whether notification permissions have already been granted + else if (Notification.permission === "granted") { + // If it's okay let's create a notification + var options = { + body: body, + icon: "/favicon-96x96.png" + }; + var n = new Notification(title, options); + } + // Otherwise, we need to ask the user for permission + else if (Notification.permission !== "denied") { + Notification.requestPermission().then(function (permission) { + // If the user accepts, let's create a notification + if (permission === "granted") { + var options = { + body: body, + icon: "/favicon-96x96.png" + }; + var n = new Notification(title, options); + } + }); + } + // At last, if the user has denied notifications, and you + // want to be respectful, there is no need to bother them any more. +} + +// Inital request for notifications permission +try { + Notification.requestPermission().then(function (result) { + console.log("Hack.Chat notification permission: " + result); + if (result === "granted") { + pushMessage({ + cmd: "chat", + nick: "*", + text: "Notifications enabled.", + time: null + }); + } else { + pushMessage({ + cmd: "chat", + nick: "*", + text: "Notifications disabled. You will not be notified if someone @'s you.", + time: null + }); + } + }); +} catch (error) { + console.error("An error occured trying to request notification permissions. This browser might not support desktop notifications.\nDetails:") + console.error(error) +} + +function notify(args) { + // Spawn notification if enabled + if (notifySwitch.checked) { + spawnNotification("?" + myChannel + " — " + args.nick, args.text) + } + + // Play sound if enabled + if (soundSwitch.checked) { + document.getElementById("notify-sound").play() + } +} + function join(channel) { if (document.domain == 'hack.chat') { // For https://hack.chat/ ws = new WebSocket('wss://hack.chat/chat-ws'); } else { // for local installs - var protocol = location.protocol === 'https:' ? 'wss:' : 'ws:' + var protocol = location.protocol === 'https:' ? 'wss:' : 'ws:' // if you changed the port during the server config, change 'wsPath' // to the new port (example: ':8080') // if you are reverse proxying, change 'wsPath' to the new location @@ -125,18 +238,32 @@ var COMMANDS = { return; } - pushMessage(args); + if (args.text.toLowerCase().includes("@" + myNick.toLowerCase().split("#")[0])) { + notify(args); + pushMessage(args); + // Indicate the message which was just added via style + document.getElementById("messages").lastChild.style.fontWeight = "bold" + } else { + pushMessage(args); + } }, info: function (args) { args.nick = '*'; - pushMessage(args); + if (args.from != null && (args.type.toLowerCase() == "whisper" || args.type.toLowerCase() == "invite")) { + notify(args); + pushMessage(args); + // Make the message bold to stand out as a @mention + document.getElementById("messages").lastChild.style.fontWeight = "bold" + } else { + pushMessage(args); + } }, warn: function (args) { args.nick = '!'; - + notify(args); pushMessage(args); }, @@ -177,7 +304,7 @@ function pushMessage(args) { // Message container var messageEl = document.createElement('div'); - if (typeof(myNick) === 'string' && args.text.includes('@' + myNick.split('#')[0] + ' ')) { + if (typeof (myNick) === 'string' && args.text.includes('@' + myNick.split('#')[0] + ' ')) { messageEl.classList.add('refmessage'); } else { messageEl.classList.add('message'); @@ -396,18 +523,18 @@ $('#chatinput').onkeydown = function (e) { updateInputSize(); } else if (e.keyCode == 9 /* TAB */) { // Tab complete nicknames starting with @ - + if (e.ctrlKey) { // Skip autocompletion and tab insertion if user is pressing ctrl // ctrl-tab is used by browsers to cycle through tabs - return; + return; } e.preventDefault(); var pos = e.target.selectionStart || 0; var text = e.target.value; var index = text.lastIndexOf('@', pos); - + var autocompletedNick = false; if (index >= 0) { @@ -416,7 +543,7 @@ $('#chatinput').onkeydown = function (e) { var nicks = onlineUsers.filter(function (nick) { return nick.toLowerCase().indexOf(stub) == 0 }); - + if (nicks.length > 0) { autocompletedNick = true; if (nicks.length == 1) { @@ -424,7 +551,7 @@ $('#chatinput').onkeydown = function (e) { } } } - + // Since we did not insert a nick, we insert a tab character if (!autocompletedNick) { insertAtCursor('\t'); @@ -456,14 +583,14 @@ updateInputSize(); $('#sidebar').onmouseenter = $('#sidebar').ontouchstart = function (e) { $('#sidebar-content').classList.remove('hidden'); - $('#sidebar').classList.add('expand'); + $('#sidebar').classList.add('expand'); e.stopPropagation(); } $('#sidebar').onmouseleave = document.ontouchstart = function () { if (!$('#pin-sidebar').checked) { $('#sidebar-content').classList.add('hidden'); - $('#sidebar').classList.remove('expand'); + $('#sidebar').classList.remove('expand'); } } diff --git a/client/index.html b/client/index.html index 9238c66..86a4c29 100644 --- a/client/index.html +++ b/client/index.html @@ -16,6 +16,9 @@ +
@@ -33,6 +36,14 @@

Settings

+

+ + +

+

+ + +

@@ -42,7 +53,7 @@

- +

Color scheme

diff --git a/package.json b/package.json index 3dbd932..19fee8c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hack.chat-v2", - "version": "2.1.9", + "version": "2.1.10", "description": "a minimal distraction free chat application", "main": "index.js", "repository": {