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 2a7f59ab5..784b09183 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 zcmZ@=1$b3Q(|$K0A-EKG*Wm6B1zOylwpb}p3KVFu(iTc7Qi^LS?(XjH?(P9XNFZ|W z%>T@6wl~o4Kj%63>{%IkXI9S6Nt)EHUAuQ9gO=4=)au%+f41ZR3=Br>05H(N56SUW z=l-4RH8Nl}um`i$V)lcV{WM?7KE4p!!q)Q#vrCb-j0aC_u0K2+FP4_&U_hE{TS>WV zFKvataI-wU|F#wSQYNK-T9dSvv~lg^5b92DtBFvuDa+s1adHU`UiSZ2LRVX46a=g^ zLct#~9Do>=NXqiL4F9%7W9! zc63&86yx5ll-All-CPY<>TnUk5maaXdtwqd@Io1l!>s`-x)P1~!?|=KE8;zXB zKg7r(>pW4Y`8?2C*H>nB5k9uZIvd8dtmS8aEmF4c3V+*5dY~IIL{lF!Rs+w!Ba7{; zqOotZaEJ3Li@VjzV()zOzew2<`j?uul;~`clNO?*9q+9bdaiZA;tR-ADrU6Q6VzAvgYtzla=?YezzdsZR=PA?xM#_d`wXXzKHD zOD&oMVtb<1>wnqX^-*VcA5Y&{64#S04WC6t4xdE6)Q9<2TB#|LxF>rTj*_w^j=#;Z zdboK?EG5`j8UE{+&PrAyiX#l;(xY=mB;le*YAAT zI3Kc}=jJ8XljLxIXj5^ub!}Y#u$tR8F3(}*kh8~sk(7EqtgYtOL!GC^Ew?p=ikmy6 z)S@Y6a=1GGP5F3PiCtT1hU|;5B9p~ks92w}oNaHk2szoT{LY#mTE$@@ zb$x3Pr>)Ee&I><8!PW4g;GOloU=>|^e57zl0_GofzL zv=~T9497<#$4AUZp6f8Qmi-VV=M`}guzFd$+TQ4U6Y}X`^|N;I*}+OGJv|DEP6CEX=Htuj< zCDJ*X7A3d-aM%eKsbOvC4xcTZehy0~mBY@BzE&3JH@3&S5z6Ui`8ZyJVBA%ZND$YO za=5xS?Wj9heWgO{!_mc-{r~w6As^l!_GO>13MILu+>9%5JESZM z(pK8Ib%yWV$&T69udIe~rFT*|e{ocN^Npb6lfX}HXtfm1zV?z5WG(t`#ve9@QZ5U{d4J*?bv_@wz?DO+xB=o`_bwY_{23085hxHGNQ-1?PJvEDDM-;WU$ z`RpE!)k~hOPrAF!iK~Z`#`P6f_MzqEST{SU2%0tAWU7*9&oZiF`uE$4{PI zOZJ3j1N79W@QztFW9IvnHHuyoxFB@(z%+#zUDwY|=zt;dMg zLQ`@jN2q)_j>SEMlWie2#e#Okv0mjHxuuS^jU9I!9&vrkAth8?&-8grTng4xt#4W$ zJ`2m?FtKS@CKN0^U&OxU2JQMwmW=JHYFN5ZKaN{-0JJR!r}ej zR+8g#t!DPw<-0OR!5zX`Ebp_WOW77qmbeoBx5Uc#zYghrzSTtB9v9c{B0=24A}y8> zkMY^i^=51P58rV<)YSU5^GYYZ!`PwWkn-8wjumlH@@Xr%Ru-4CheOPVm7{BO;&QWI z;;U&X30;fR#}uWe&o^A!>f!pfkBgPW)whT+MUbAXEf> zhmkxv+d40EW0~7C`H-d@J}oSLhw;a=jP+<+J1*)@YH4jXjhk|%B9Ft=N@;8P+E_^( zcdL~{&dxy}*O0?fv37Ab^fK$4Wgxtdi2Ecu zSP%U$*Vc?{BiC1?a){ktN!%Er-y|}sZWap^3RGgeXPqDL?^CyRg zwYBpOOTp2%a$8v?Z8eGe>nv@{q{P+srG04Iej_~GZ0)3TG$r5e6hz0dq?6GnmrdEZ zUVh!G$nM$*I+nlG^ZBAp`~1{#^;uL<@p+6$>X5e{Xd|Ptijxw%_O?8&{|ZInB7HDW zM;M7A_~v?_l`U^e)ne=D*?C6jNWSeslD3rXsAN$VK2|$d+w~j!ZWDLzavl@+Zt-)T zY&8(+KOFgdnpsRO59>!Z?e-j;zc_t-*7YGAH_!QjZErpDLrXf#TO6DXL_Ukoe-A;z z+RfU*uAXf@hmxRYDgW0B7H_Mm=wb12K4kTeA`XPO%y)XB}o@23b5(s~XmE-MXa(Y@jNj+QB zN+`&=k>|r6YdJf+*sI8`lfrtEtl}+>arJQH>xVtu*0c0P zO6w!yeZIL*S~yIsms!oNWP)Yf+O7xtJUFhj|Md>x`JrWOeV;w7_c+Y0NBCOU(ZM2N zebF2ww}}0O5l^k z){xdN&&MUMwARLUtt$IiZYHsI5Z#?N(#l8G>FY)>_paygv#maq&b9G*leLQA{J+F=d+s~KV&W8#t=uz z?d;p}&G~^yZ2PF)YZAJ`%l38aKXK)-5?e2nmM-O!PjWt-2c2|oOtz~w7te@G#fOJO zROEEFcIzkW-|{}@VpUdZAHG&+C!NL2j&W9Ri?Wr=T1WDIqoA{{#W1c_Ka?vj8gaR~ z6{hP)wzo+Q>s7XY#NBEBZ?Ca33ih_AIB&GGv_sjgrCcqa7H!7dJOrkGK5nVW~(>JFfY-IV*fT ztHjmAN)*?Vo#t`#d^|)$E3F#?UB7XXx%NISEhX!V4i)F~BFo3fWb}eB?Bs;?S zWVe3c{Lb|SJ0`hWKJDz`5ceHUGl#uzwsLwoJwzglvRmQ&m$%PXBqhEV_btpPv6I&7 zWa~S|;Z`o(d-C4_F z;?VP9B|2Lj;-V8bZE+x1|BkX2A*;Xh8!M9>K4~03k;NyEMc4YFJ*+HZ zdzZ5ESpTsjgp5gcytBR`mhtsQ--zZsNVtfE4inceoM%~HR(dO)ZE2-*+K7}k$Lb>3 z*m2&D%T_|`87}QZCoX?C&IvuMyYmOz2Zg>Xak%+p_u=Bh(P8I&)Y{yZTe+>I_PyC@ zXY*usbG=$3!Lsipbj0Rzh-XU;$&qrw$>s@t!7D&LMI`luKMbT@yx6;x1u9LO7Z33O z#0PUA4C28L0RU_|9{lz4M*s}s!w-S6SAgau(5C>zLwxun5CQN<0sslMw&VwBtAy}F zd<1BXK=>m_FDa9}K)p*^a^fNIgG;DLj&KkOq^;#9`NGw5wzVujp(4CRoA>~N;HS^- zH$YQTMlAA*6i#QUV^I@)E$V`>c!J<5DZyNRrJh&U5&>!pv4fy3m*mUWQQ~K=rL?ow z@YnWIBDIC8f9z=#SzBVc#`RsBW9zfpS?nrSw{&buG!kzSDx#UwSM2Ff5nEb(#Ii;) zk{pM&%@sco9}rZ8gHV$v;c0Oaj+VP{5$_RCk{sb>Jw|@T$Apr#uppiQ{z#}-0D{yD zf)F3^5riNlL?99&0134uNb5^WX=9(PmstN1TZ`|BjPmP4M#fO-6*6YaCH=~-(gi~q zPem7z+4{PmDgH0Aiu_hv(aWMN_`6d)Pq>QTi!X`pl9FB#q(~-!K{5b|R9n$5Ap(#{ zeLVr<>67()*RPx}*gkE!iHyQW^tapsmA>mS(tiY3$+bvIA4vv3BtsCAATbgnDH0(u zk{}V1#a@z|1PPG@K}e4HNQOXtPKd;ce*z?oJ%cnyauXv^>xl-5)Hb4#STerW4?toB z=#yAb%A{TbBvw8NkyIr~hGa;pXG$bNDkMWnBu8>2L24vM8YDt0q(E|{MB>=eWJrM| zNQ0zEg-?(MX^<}VOsi*Vq(^FGKzgJ{Mx@tN2Bbq4q(@d{LRMr&W=&;7W@JMaWJ3;Q zMNVWxPUJ*(98KPyhw>Nwh17BFL|$MUW4{$fwW6Q3xgUEECJWv~n+llBkH{sEkr5k1{B$l9oYf zO^fWMP)_s8q72HQyy`CcR8XDEqY5gb8mj794V6(DRZ#)eP#x7!6E#o^)leICPz&`? z9iQP-e2ULe7Y)!D_0bfcqXinH37VoQnxHY7q8Xa&*$gev1kKSDZO|C)&=PIX2CdK@ z?a&b&(Gnfe3LViF9ncQ#&>CN$B|4)m+M^TNp#$2ZJvyKh+M}c9bwVe6iO%S#zg^H3 z-S8E@!58R>F6e>o=!U-Nir(mkUg&~e=oy>a4ZYDFz0d=F&>MZw3w_ZO{m~PB_4ix! zLNER8gTCm4LFk1+=!@^s4+HTX24Wz7#31~D0T_xO@FNCe5C&op2IG4S#t-^C06*df zE&VaJ_Kz5fA2AGr@Dm1N1cqQZe#8(A#c&M42#mxp_!Xn@Gsa*Pe#6fgjo&Z|zhf+Z z$8Y!@WAKNj#$z=8z!;3fuNaMAwdQDTH8!^1XpF)b{DR*w9HW)aZ}=6zV2rjOi!u03 z&tEWFTmPhqJ0l#BBe#Zoi#YFsx$(V#Gn2M>GgXx%! zshEYSn2l+ei5ZxSS+V)kF$?oB1G6z3b1`4bW@85CVIKa*KUjddn1=nA9+NOZf5+o5Ou$r3#5BF+*|wCs zJ#FnNn20G#cOw3ZZTF`lASg^woJT9w@feRkF%gsT7p7v8-ltr&;l46CpVOR-G(FV@xz zF$?oCTP-g(orgu3hxzy$3snQLv3P}8dM@T*vFf-03$YMOu|PFifq$?P3$O`Gu?|a> zn@B4%uf{5D#zt(xMy$trti?KPz-p|;T5P~Ntift*zzVIu9P9L2i8WZN+KTjx@i!L5 zqAS`iRQ(rX4i;j8O0qz6mSPE(D>|!H2BEneORyFTuu^f{sJw*ZCTzw|Y{oWh!EWrt zZtTWh?7;!-$3E=FVeHoXPVB-)Y{nLB);1edkBwM^^=doeutGU6#4`MYrI@b>ufhtf z!+NYzO;%%Ntfs^?8kl_!d@K2A)LT*9K(^=>lpUp z5cXpa_F^aYVHfse7xrO04&VTGVGp)r5B6gl_Fw~cVLSF?3wB{Gwqg@Dsl}zQ3g;!t zRb&(C*XSvjN)KJC{X;xea-^rO!wRgzYOKcw^`DK{imlk96nAKP2M(y`iPUFs3a4=r z$8j8oaSW$$1SfF>r*RZVRjWfdjw3j(&&O~SXK_q5J%a-{g?%`HeK>?;*r!@j9K&H8!2ujmnFOJudI?T@u@wig1IMus z2er3IFFA_+T3fK(kDWMxJ=ljG*pA(bv(Pw*y{hRB#rFU^iREDsJF59^oGD;SnC<0dC+49^e_C;}Jse9MAC*Z}0|h z5vlhmgahV1A`ymggyAhh5sDXhiD!6<`*@C9xUE!g;685S7VhGda~|UX?%)wF z<2LT#I_}~+?&CUc;{q<>qRJ+6S!r+MA?_=cJ4)>)?%^)(;Q^lFA)ezYUg0sG;xR(- z2ruv)A$WzS2*ERiAPleY29XFwG~R>ZK@5xuM>O7n5QR60Km?-j7Vk7Ibz|T`G`#RL zUiceAJmYTyO?(qz5}N=MXo5_DiDv>$4CG`mjPbyj0K*70@l1dTFwo!lCb3Cu5}6>A z*rYHiOlp(dWH6acT9ebHF*!|Ulhvd(Sxj1!(PT8~OlFhGWH6abYLmsJG}%l#lg(r> zIZRHI#pE~nOkR`U6fpTrev?gebDLZyyUA&?nd~N$$!xNltR|buWYU;)CbgdFO%jvd zBsHl_Qj^3aH7QMElg1=ApO};;tx2x@vYBiqy>b$cIZQT_(d09EOi@$76fp%&5mUmH zFvU%2Q{I#_rA%>C&XhNmO$AfilruFQt>7N(_XWg43XrkR%1H4RODQ`gitbxd

0!PwJFKkQ_hq&V6g9ynuPI^j zm^>!8$!~I-oF z+>uer&jcBQzk!jl%nPrMR0&LwNn`?ypD`wZ)*`?d<7YfN-o-N>kdB05@ZvqZI%38k z5*~Q)UPu0y2*)$L#4Ef+DBj>TLh%w|c!O}AEne%m>Kj|b@D8tG$KH1cM-1NM9o``d zQHVe&VwBfw#NZtw5s7d_K;{`4n?n(W7dqEG#WNk*U*M6>Qo{WOp6Uz~ju3<*LT9EZ zJVhiTlur~`FE3&ct+LC!6^01B#cPBqh39ypGu~5##mev=(RhV$yuy3DM+68Fh(r{k zbq4X^b*yyJcmqbHVq}aLG7m8PjGSJ?Q{;uSSJ8WkD3v(`_wfREa37cO7?*Gt*Kl3u z_5_^WRI z#+V=jBf2G2?@FNB`kTZiz6nwv@-zM>p^0w-jU3X#qxJ|z2%h2|p5YcAV~Uo@8|{3|)AteC zuaGzKxmcjP8S+LxUw1d8rR;vp({~%mllK^@IURFjcRXYtWP$E`%)%_);h2F%`aD_R ziDqJ&p1)xlW@sI$H3KtrXGQisWFJFz3jWYNgz*@oI}Cqe5~g8}O1VVe;pDwb-pAz4 zTi)emuRz`&HE_PefL;^Wmtrzs)4+%P1C&&kwo@+{!yJo zzlE5qxc!aA`u@IB-_TaXz7@*5rMw-AMDq40`wR*TMW=0#l9Gk+v|a4}X*=CvZHz{!i~4AQMreS~ zG~ERCbstvtWZR%E+UlNbYcxYE-8Jos9_Wo;_(pd?zd?8OKsR(lPxQpM_!i&k-l_1H zy-}OfAHDHCx}rO};46HEZn~@51K*-Q2H`us%MNHie2?!iKsD-vKIn&U&|B%s-mC1v zc2kYI>MpPB__kHaTBD`jTi`P^#HXl-x~PlVsD;|7j+&^hd(ZVz8+COjTK1r2XSxRJ zq84gu-OunjnxcX3KDX3;pr}VPE!s^Dod%e>>waQ9M?zQn3-IqNu1*n2IQ`c_M8|ltCrb zKyCFKkypH0qAKDql~Dy1G$JK5Bq}8FEy1l6O2o! JhGCFqt#u*xK{uA*A6EDCFk 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

NX|&+NY+T2NUBKc2=Zi+I7hB{$lvn6=*;Lg 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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 000000000..d65885a99 --- /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 8731e2d4f..a03f3e5c1 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 00061e212..ca300e1ae 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 b66bc7e75..f9f2463b1 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)