From 7f5140bbb418f4a5b6252f8b62c9152ef3f657f3 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 30 Jan 2021 21:45:54 +0100 Subject: [PATCH] Play a sound when marking a task as done --- nginx.conf | 3 ++- public/audio/pop.wav | Bin 0 -> 86134 bytes src/ServiceWorker/sw.js | 2 +- .../tasks/partials/singleTaskInList.vue | 4 ++++ src/helpers/playPop.js | 11 +++++++++++ src/views/list/views/Kanban.vue | 6 ++++++ src/views/tasks/TaskDetailView.vue | 6 ++++++ src/views/user/Settings.vue | 12 ++++++++++++ 8 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 public/audio/pop.wav create mode 100644 src/helpers/playPop.js diff --git a/nginx.conf b/nginx.conf index 2a7f59ab..784b0918 100644 --- a/nginx.conf +++ b/nginx.conf @@ -34,7 +34,7 @@ http { gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 256; - gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml font/woff2 image/x-icon; + gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml font/woff2 image/x-icon audio/wav; # Expires map map $sent_http_content_type $expires { @@ -49,6 +49,7 @@ http { font/woff2 max; image/svg+xml max; image/x-icon max; + audio/wav max; ~image/ max; ~font/ max; } diff --git a/public/audio/pop.wav b/public/audio/pop.wav new file mode 100644 index 0000000000000000000000000000000000000000..bc56c9416b19683327855c9e038caf3748af26eb GIT binary patch literal 86134 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 { this.taskService.update(this.task) .then(t => { + if(this.task.done) { + playPop() + } this.task = t this.$emit('task-updated', t) this.success( diff --git a/src/helpers/playPop.js b/src/helpers/playPop.js new file mode 100644 index 00000000..d65885a9 --- /dev/null +++ b/src/helpers/playPop.js @@ -0,0 +1,11 @@ +export const playSoundWhenDoneKey = 'playSoundWhenTaskDone' + +export const playPop = () => { + const enabled = localStorage.getItem(playSoundWhenDoneKey) === 'true' || localStorage.getItem(playSoundWhenDoneKey) === null + if(!enabled) { + return + } + + const popSound = new Audio('/audio/pop.wav') + popSound.play() +} \ No newline at end of file diff --git a/src/views/list/views/Kanban.vue b/src/views/list/views/Kanban.vue index 8731e2d4..a03f3e5c 100644 --- a/src/views/list/views/Kanban.vue +++ b/src/views/list/views/Kanban.vue @@ -265,6 +265,7 @@ import Rights from '../../../models/rights.json' import {LOADING, LOADING_MODULE} from '@/store/mutation-types' import FilterPopup from '@/components/list/partials/filter-popup' import Dropdown from '@/components/misc/dropdown' +import {playPop} from '@/helpers/playPop' export default { name: 'Kanban', @@ -421,6 +422,11 @@ export default { this.$set(this.taskUpdating, task.id, true) task.done = !task.done this.$store.dispatch('tasks/update', task) + .then(() => { + if(task.done) { + playPop() + } + }) .catch(e => { this.error(e, this) }) diff --git a/src/views/tasks/TaskDetailView.vue b/src/views/tasks/TaskDetailView.vue index 00061e21..ca300e1a 100644 --- a/src/views/tasks/TaskDetailView.vue +++ b/src/views/tasks/TaskDetailView.vue @@ -421,6 +421,7 @@ import ColorPicker from '../../components/input/colorPicker' import attachmentUpload from '../../components/tasks/mixins/attachmentUpload' import heading from '@/components/tasks/partials/heading' import Datepicker from '@/components/input/datepicker' +import {playPop} from '@/helpers/playPop' export default { name: 'TaskDetailView', @@ -644,6 +645,11 @@ export default { }, toggleTaskDone() { this.task.done = !this.task.done + + if(this.task.done) { + playPop() + } + this.saveTask(true, () => this.toggleTaskDone()) }, setDescriptionChanged(e) { diff --git a/src/views/user/Settings.vue b/src/views/user/Settings.vue index b66bc7e7..f9f2463b 100644 --- a/src/views/user/Settings.vue +++ b/src/views/user/Settings.vue @@ -108,6 +108,12 @@ Send me Reminders for tasks via Email +
+ +
this.error(e, this)) }, updateSettings() { + localStorage.setItem(playSoundWhenDoneKey, this.playSoundWhenDone) + this.userSettingsService.update(this.settings) .then(() => { this.$store.commit('auth/setUserSettings', this.settings)