Page MenuHomePhabricator

D9535.id28971.diff
No OneTemporary

D9535.id28971.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -8,7 +8,7 @@
return array(
'names' => array(
'core.pkg.css' => '70320e8a',
- 'core.pkg.js' => '5a1c336d',
+ 'core.pkg.js' => '28ef0e70',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '1940be3f',
'differential.pkg.js' => '53c1ccc2',
@@ -207,7 +207,8 @@
'rsrc/externals/javelin/lib/Resource.js' => '44959b73',
'rsrc/externals/javelin/lib/Routable.js' => 'b3e7d692',
'rsrc/externals/javelin/lib/Router.js' => '29274e2b',
- 'rsrc/externals/javelin/lib/Scrollbar.js' => '1feea462',
+ 'rsrc/externals/javelin/lib/Scrollbar.js' => '1ed54a27',
+ 'rsrc/externals/javelin/lib/Sound.js' => '59655c83',
'rsrc/externals/javelin/lib/URI.js' => '6eff08aa',
'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8',
'rsrc/externals/javelin/lib/WebSocket.js' => 'e292eaf4',
@@ -347,15 +348,14 @@
'rsrc/image/texture/table_header_tall.png' => 'd56b434f',
'rsrc/js/application/aphlict/Aphlict.js' => '2be71d56',
'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '830b3278',
- 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => '851f167c',
+ 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'bdf2226d',
'rsrc/js/application/aphlict/behavior-aphlict-status.js' => 'ea681761',
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
- 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '11e2dcf2',
- 'rsrc/js/application/conpherence/behavior-durable-column.js' => '5fc7fac0',
- 'rsrc/js/application/conpherence/behavior-menu.js' => '6bc52765',
- 'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861',
- 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '2c1cd7f5',
+ 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'e4affa94',
+ 'rsrc/js/application/conpherence/behavior-menu.js' => '869e3445',
+ 'rsrc/js/application/conpherence/behavior-pontificate.js' => '86df5915',
+ 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '40b1ff90',
'rsrc/js/application/countdown/timer.js' => 'e4cc26b3',
'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => '469c0d9e',
'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => '82439934',
@@ -517,7 +517,6 @@
'conpherence-menu-css' => 'c6ac5299',
'conpherence-message-pane-css' => '5930260a',
'conpherence-notification-css' => '04a6e10a',
- 'conpherence-thread-manager' => '11e2dcf2',
'conpherence-update-css' => '1099a660',
'conpherence-widget-pane-css' => '3d575438',
'differential-changeset-view-css' => '6a8b172a',
@@ -544,7 +543,7 @@
'javelin-aphlict' => '2be71d56',
'javelin-behavior' => '61cbc29a',
'javelin-behavior-aphlict-dropdown' => '830b3278',
- 'javelin-behavior-aphlict-listen' => '851f167c',
+ 'javelin-behavior-aphlict-listen' => 'bdf2226d',
'javelin-behavior-aphlict-status' => 'ea681761',
'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884',
'javelin-behavior-aphront-crop' => 'fa0f4fc2',
@@ -557,9 +556,9 @@
'javelin-behavior-boards-dropdown' => '0ec56e1d',
'javelin-behavior-choose-control' => '6153c708',
'javelin-behavior-config-reorder-fields' => '14a827de',
- 'javelin-behavior-conpherence-menu' => '6bc52765',
- 'javelin-behavior-conpherence-pontificate' => '21ba5861',
- 'javelin-behavior-conpherence-widget-pane' => '2c1cd7f5',
+ 'javelin-behavior-conpherence-menu' => '869e3445',
+ 'javelin-behavior-conpherence-pontificate' => '86df5915',
+ 'javelin-behavior-conpherence-widget-pane' => '40b1ff90',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
'javelin-behavior-dark-console' => '08883e8b',
'javelin-behavior-dashboard-async-panel' => '469c0d9e',
@@ -584,7 +583,7 @@
'javelin-behavior-diffusion-locate-file' => '6d3e1947',
'javelin-behavior-diffusion-pull-lastmodified' => '2b228192',
'javelin-behavior-doorkeeper-tag' => 'e5822781',
- 'javelin-behavior-durable-column' => '5fc7fac0',
+ 'javelin-behavior-durable-column' => 'e4affa94',
'javelin-behavior-error-log' => '6882e80a',
'javelin-behavior-fancy-datepicker' => 'c51ae228',
'javelin-behavior-global-drag-and-drop' => '07f199d8',
@@ -678,7 +677,8 @@
'javelin-resource' => '44959b73',
'javelin-routable' => 'b3e7d692',
'javelin-router' => '29274e2b',
- 'javelin-scrollbar' => '1feea462',
+ 'javelin-scrollbar' => '1ed54a27',
+ 'javelin-sound' => '59655c83',
'javelin-stratcom' => '6c53634d',
'javelin-tokenizer' => '7644823e',
'javelin-typeahead' => '70baed2f',
@@ -899,16 +899,6 @@
'javelin-install',
'javelin-util',
),
- '11e2dcf2' => array(
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-install',
- 'javelin-workflow',
- 'javelin-router',
- 'javelin-behavior-device',
- 'javelin-vector',
- ),
'13c739ea' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -962,7 +952,7 @@
'javelin-dom',
'javelin-reactor-dom',
),
- '1feea462' => array(
+ '1ed54a27' => array(
'javelin-install',
'javelin-dom',
'javelin-stratcom',
@@ -980,14 +970,6 @@
'phabricator-phtize',
'changeset-view-manager',
),
- '21ba5861' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-workflow',
- 'javelin-stratcom',
- 'conpherence-thread-manager',
- ),
'2290aeef' => array(
'javelin-install',
'javelin-dom',
@@ -1032,19 +1014,6 @@
'javelin-stratcom',
'javelin-dom',
),
- '2c1cd7f5' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'javelin-workflow',
- 'javelin-util',
- 'phabricator-notification',
- 'javelin-behavior-device',
- 'phuix-dropdown-menu',
- 'phuix-action-list-view',
- 'phuix-action-view',
- 'conpherence-thread-manager',
- ),
'2c426492' => array(
'javelin-behavior',
'javelin-dom',
@@ -1100,6 +1069,18 @@
'javelin-dom',
'javelin-reactor-dom',
),
+ '40b1ff90' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'javelin-workflow',
+ 'javelin-util',
+ 'phabricator-notification',
+ 'javelin-behavior-device',
+ 'phuix-dropdown-menu',
+ 'phuix-action-list-view',
+ 'phuix-action-view',
+ ),
42126667 => array(
'javelin-behavior',
'javelin-dom',
@@ -1196,6 +1177,9 @@
'javelin-vector',
'javelin-dom',
),
+ '59655c83' => array(
+ 'javelin-install',
+ ),
'59b251eb' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1219,15 +1203,6 @@
'javelin-dom',
'javelin-vector',
),
- '5fc7fac0' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'javelin-scrollbar',
- 'javelin-quicksand',
- 'phabricator-keyboard-shortcut',
- 'conpherence-thread-manager',
- ),
'5fefb143' => array(
'javelin-behavior',
'javelin-dom',
@@ -1268,18 +1243,6 @@
'69adf288' => array(
'javelin-install',
),
- '6bc52765' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-workflow',
- 'javelin-behavior-device',
- 'javelin-history',
- 'javelin-vector',
- 'phabricator-shaped-request',
- 'conpherence-thread-manager',
- ),
'6c2b09a2' => array(
'javelin-install',
'javelin-util',
@@ -1466,19 +1429,6 @@
'javelin-uri',
'javelin-routable',
),
- '851f167c' => array(
- 'javelin-behavior',
- 'javelin-aphlict',
- 'javelin-stratcom',
- 'javelin-request',
- 'javelin-uri',
- 'javelin-dom',
- 'javelin-json',
- 'javelin-router',
- 'javelin-util',
- 'javelin-leader',
- 'phabricator-notification',
- ),
'85ea0626' => array(
'javelin-install',
),
@@ -1489,6 +1439,24 @@
'phabricator-tooltip',
'changeset-view-manager',
),
+ '869e3445' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-stratcom',
+ 'javelin-workflow',
+ 'javelin-behavior-device',
+ 'javelin-history',
+ 'javelin-vector',
+ 'phabricator-shaped-request',
+ ),
+ '86df5915' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-workflow',
+ 'javelin-stratcom',
+ ),
'87cb6b51' => array(
'javelin-behavior',
'javelin-dom',
@@ -1744,6 +1712,20 @@
'javelin-util',
'javelin-request',
),
+ 'bdf2226d' => array(
+ 'javelin-behavior',
+ 'javelin-aphlict',
+ 'javelin-stratcom',
+ 'javelin-request',
+ 'javelin-uri',
+ 'javelin-dom',
+ 'javelin-json',
+ 'javelin-router',
+ 'javelin-util',
+ 'javelin-leader',
+ 'javelin-sound',
+ 'phabricator-notification',
+ ),
'be807912' => array(
'javelin-behavior',
'javelin-dom',
@@ -1860,6 +1842,14 @@
'javelin-dom',
'javelin-uri',
),
+ 'e4affa94' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'javelin-scrollbar',
+ 'javelin-quicksand',
+ 'phabricator-keyboard-shortcut',
+ ),
'e4cc26b3' => array(
'javelin-behavior',
'javelin-dom',
diff --git a/src/applications/celerity/controller/CelerityResourceController.php b/src/applications/celerity/controller/CelerityResourceController.php
--- a/src/applications/celerity/controller/CelerityResourceController.php
+++ b/src/applications/celerity/controller/CelerityResourceController.php
@@ -125,6 +125,7 @@
'woff2' => 'font/woff2',
'eot' => 'font/eot',
'ttf' => 'font/ttf',
+ 'mp3' => 'audio/mpeg',
);
}
diff --git a/src/applications/celerity/resources/CelerityResourcesOnDisk.php b/src/applications/celerity/resources/CelerityResourcesOnDisk.php
--- a/src/applications/celerity/resources/CelerityResourcesOnDisk.php
+++ b/src/applications/celerity/resources/CelerityResourcesOnDisk.php
@@ -37,6 +37,7 @@
'woff2',
'ttf',
'eot',
+ 'mp3',
);
}
diff --git a/webroot/rsrc/externals/javelin/lib/Sound.js b/webroot/rsrc/externals/javelin/lib/Sound.js
new file mode 100644
--- /dev/null
+++ b/webroot/rsrc/externals/javelin/lib/Sound.js
@@ -0,0 +1,38 @@
+/**
+ * @requires javelin-install
+ * @provides javelin-sound
+ * @javelin
+ */
+
+
+JX.install('Sound', {
+ statics: {
+ _sounds: {},
+
+ load: function(uri) {
+ var self = JX.Sound;
+
+ if (!(uri in self._sounds)) {
+ self._sounds[uri] = JX.$N(
+ 'audio',
+ {
+ src: uri,
+ preload: 'auto'
+ });
+ }
+ },
+
+ play: function(uri) {
+ var self = JX.Sound;
+ self.load(uri);
+
+ var sound = self._sounds[uri];
+
+ try {
+ sound.play();
+ } catch (ex) {
+ JX.log(ex);
+ }
+ }
+ }
+});
diff --git a/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js b/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js
--- a/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js
+++ b/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js
@@ -10,6 +10,7 @@
* javelin-router
* javelin-util
* javelin-leader
+ * javelin-sound
* phabricator-notification
*/
@@ -97,4 +98,17 @@
.setHandler(onAphlictMessage)
.start();
+ JX.Leader.listen('onReceiveBroadcast', function(message, is_leader) {
+ if (message.type !== 'sound') {
+ return;
+ }
+
+ if (!is_leader) {
+ return;
+ }
+
+ JX.Sound.play(message.data);
+ });
+
+
});

File Metadata

Mime Type
text/plain
Expires
Oct 19 2024, 4:27 PM (4 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6717396
Default Alt Text
D9535.id28971.diff (11 KB)

Event Timeline