Page MenuHomePhabricator

Add a "Play Sound" workboard trigger rule
ClosedPublic

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

Details

Summary

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

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
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.Mon, Mar 25, 6:31 PM
amckinley added inline comments.
webroot/rsrc/js/application/projects/behavior-project-boards.js
172

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

This revision is now accepted and ready to land.Mon, Mar 25, 6:31 PM
epriestley added inline comments.Mon, Mar 25, 6:36 PM
webroot/rsrc/js/application/projects/behavior-project-boards.js
172

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.Mon, Mar 25, 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.