Notification sound

This commit is contained in:
Philipp Heckel 2021-10-24 14:51:49 -04:00
parent 317621c696
commit 6f9fba99e6
4 changed files with 9 additions and 0 deletions

View File

@ -127,3 +127,9 @@ I welcome any and all contributions. Just create a PR or an issue.
## License ## License
Made with ❤️ by [Philipp C. Heckel](https://heckel.io), distributed under the [Apache License 2.0](LICENSE). Made with ❤️ by [Philipp C. Heckel](https://heckel.io), distributed under the [Apache License 2.0](LICENSE).
Third party libraries and resources:
* [github.com/urfave/cli/v2](https://github.com/urfave/cli/v2) (MIT) is used to drive the CLI
* [Mixkit sound](https://mixkit.co/free-sound-effects/notification/) (Mixkit Free License) used as notification sound
* [Lato Font](https://www.latofonts.com/) (OFL) is used as a font in the Web UI
* [GoReleaser](https://goreleaser.com/) (MIT) is used to create releases

View File

@ -62,6 +62,7 @@
</form> </form>
<p id="topicsHeader">Subscribed topics:</p> <p id="topicsHeader">Subscribed topics:</p>
<ul id="topicsList"></ul> <ul id="topicsList"></ul>
<audio id="notifySound" src="static/sound/mixkit-long-pop-2358.wav"></audio>
<h3>Subscribe via your app, or via the CLI</h3> <h3>Subscribe via your app, or via the CLI</h3>
<code> <code>

View File

@ -14,6 +14,7 @@ let topics = {};
const topicsHeader = document.getElementById("topicsHeader"); const topicsHeader = document.getElementById("topicsHeader");
const topicsList = document.getElementById("topicsList"); const topicsList = document.getElementById("topicsList");
const topicField = document.getElementById("topicField"); const topicField = document.getElementById("topicField");
const notifySound = document.getElementById("notifySound");
const subscribeButton = document.getElementById("subscribeButton"); const subscribeButton = document.getElementById("subscribeButton");
const subscribeForm = document.getElementById("subscribeForm"); const subscribeForm = document.getElementById("subscribeForm");
const errorField = document.getElementById("error"); const errorField = document.getElementById("error");
@ -59,6 +60,7 @@ const subscribeInternal = (topic, delaySec) => {
eventSource.onmessage = (e) => { eventSource.onmessage = (e) => {
const event = JSON.parse(e.data); const event = JSON.parse(e.data);
new Notification(event.message); new Notification(event.message);
notifySound.play();
}; };
topics[topic] = eventSource; topics[topic] = eventSource;
localStorage.setItem('topics', JSON.stringify(Object.keys(topics))); localStorage.setItem('topics', JSON.stringify(Object.keys(topics)));

Binary file not shown.