Page MenuHomePhabricator

Add a "Play Sound" workboard trigger rule

Authored by epriestley on Mar 21 2019, 10:26 PM.



Ref T5474. Allow columns to play a sound when tasks are dropped.

This is a little tricky because Safari has changed somewhat recently to require some gymnastics to play sounds when the user didn't explicitly click something. Preloading the sound on the first mouse interaction, then playing and immediately pausing it seems to work, though.

Test Plan

Added a trigger with 5 sounds. In Safari, Chrome, and Firefox, dropped a card into the column. In all browsers, heard a nice sequence of 5 sounds played one after the other.

Diff Detail

rP Phabricator
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Mar 21 2019, 10:26 PM
epriestley requested review of this revision.Mar 21 2019, 10:28 PM
amckinley accepted this revision.Mar 25 2019, 6:31 PM
amckinley added inline comments.

This callback only gets triggered on the first mousedown, right?

This revision is now accepted and ready to land.Mar 25 2019, 6:31 PM
epriestley added inline comments.Mar 25 2019, 6:36 PM

It runs on each click, but sounds is empty after the first time so it's effectively a no-op.

(There's currently no super convenient way to do a listenOnce() kind of thing. The callback could unregister the listener, but the cost of keeping this callback around should be insignificant.)

epriestley updated this revision to Diff 48488.Mar 25 2019, 6:39 PM
  • Instead of doing sounds = [], just do listener.remove() to remove the listener.
This revision was automatically updated to reflect the committed changes.