Page MenuHomePhabricator

D11360.id27414.diff
No OneTemporary

D11360.id27414.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' => '8d1c0f87',
- 'core.pkg.js' => 'b6a9c22a',
+ 'core.pkg.js' => '7923c2e6',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '8af45893',
'differential.pkg.js' => 'dad3622f',
@@ -342,14 +342,14 @@
'rsrc/image/texture/table_header.png' => '5c433037',
'rsrc/image/texture/table_header_hover.png' => '038ec3b9',
'rsrc/image/texture/table_header_tall.png' => 'd56b434f',
- 'rsrc/js/application/aphlict/Aphlict.js' => 'b300dac3',
+ 'rsrc/js/application/aphlict/Aphlict.js' => '2be71d56',
'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '335470d7',
- 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => '62998733',
+ 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => '851f167c',
'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/behavior-menu.js' => 'f0a41b9f',
- 'rsrc/js/application/conpherence/behavior-pontificate.js' => 'e23dfe0f',
+ 'rsrc/js/application/conpherence/behavior-pontificate.js' => '2f6efe18',
'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',
@@ -535,10 +535,10 @@
'herald-rule-editor' => '335fd41f',
'herald-test-css' => '778b008e',
'inline-comment-summary-css' => '8cfd34e8',
- 'javelin-aphlict' => 'b300dac3',
+ 'javelin-aphlict' => '2be71d56',
'javelin-behavior' => '61cbc29a',
'javelin-behavior-aphlict-dropdown' => '335470d7',
- 'javelin-behavior-aphlict-listen' => '62998733',
+ 'javelin-behavior-aphlict-listen' => '851f167c',
'javelin-behavior-aphlict-status' => 'ea681761',
'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884',
'javelin-behavior-aphront-crop' => 'fa0f4fc2',
@@ -552,7 +552,7 @@
'javelin-behavior-choose-control' => '6153c708',
'javelin-behavior-config-reorder-fields' => '14a827de',
'javelin-behavior-conpherence-menu' => 'f0a41b9f',
- 'javelin-behavior-conpherence-pontificate' => 'e23dfe0f',
+ 'javelin-behavior-conpherence-pontificate' => '2f6efe18',
'javelin-behavior-conpherence-widget-pane' => '40b1ff90',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
'javelin-behavior-dark-console' => '08883e8b',
@@ -975,6 +975,13 @@
'javelin-install',
'javelin-util',
),
+ '2be71d56' => array(
+ 'javelin-install',
+ 'javelin-util',
+ 'javelin-websocket',
+ 'javelin-leader',
+ 'javelin-json',
+ ),
'2bfa2836' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -986,6 +993,13 @@
'javelin-stratcom',
'phabricator-keyboard-shortcut',
),
+ '2f6efe18' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-workflow',
+ 'javelin-stratcom',
+ ),
'316b8fa1' => array(
'javelin-install',
'javelin-typeahead-source',
@@ -1212,18 +1226,6 @@
'javelin-magical-init',
'javelin-util',
),
- 62998733 => array(
- 'javelin-behavior',
- 'javelin-aphlict',
- 'javelin-stratcom',
- 'javelin-request',
- 'javelin-uri',
- 'javelin-dom',
- 'javelin-json',
- 'javelin-router',
- 'javelin-util',
- 'phabricator-notification',
- ),
'6453c869' => array(
'javelin-install',
'javelin-dom',
@@ -1381,6 +1383,19 @@
'javelin-workflow',
'phabricator-draggable-list',
),
+ '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',
),
@@ -1581,13 +1596,6 @@
'javelin-dom',
'phortune-credit-card-form',
),
- 'b300dac3' => array(
- 'javelin-install',
- 'javelin-util',
- 'javelin-websocket',
- 'javelin-leader',
- 'javelin-json',
- ),
'b3a4b884' => array(
'javelin-behavior',
'phabricator-prefab',
@@ -1777,13 +1785,6 @@
'javelin-stratcom',
'javelin-dom',
),
- 'e23dfe0f' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-workflow',
- 'javelin-stratcom',
- ),
'e32d14ab' => array(
'javelin-behavior',
'javelin-stratcom',
diff --git a/webroot/rsrc/js/application/aphlict/Aphlict.js b/webroot/rsrc/js/application/aphlict/Aphlict.js
--- a/webroot/rsrc/js/application/aphlict/Aphlict.js
+++ b/webroot/rsrc/js/application/aphlict/Aphlict.js
@@ -116,9 +116,9 @@
}
break;
- case 'aphlict.server':
+ default:
var handler = this.getHandler();
- handler && handler(message.data);
+ handler && handler(message);
break;
}
},
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
@@ -9,38 +9,49 @@
* javelin-json
* javelin-router
* javelin-util
+ * javelin-leader
* phabricator-notification
*/
JX.behavior('aphlict-listen', function(config) {
var showing_reload = false;
- JX.Stratcom.listen('aphlict-receive-message', null, function(e) {
+ JX.Stratcom.listen('aphlict-server-message', null, function(e) {
var message = e.getData();
if (message.type != 'notification') {
return;
}
- var request = new JX.Request(
- '/notification/individual/',
- onNotification);
+ JX.Leader.callIfLeader(function() {
+ var request = new JX.Request(
+ '/notification/individual/',
+ onNotification);
- var routable = request
- .addData({key: message.key})
- .getRoutable();
+ var routable = request
+ .addData({key: message.key})
+ .getRoutable();
- routable
- .setType('notification')
- .setPriority(250);
+ routable
+ .setType('notification')
+ .setPriority(250);
- JX.Router.getInstance().queue(routable);
+ JX.Router.getInstance().queue(routable);
+ });
});
// Respond to a notification from the Aphlict notification server. We send
// a request to Phabricator to get notification details.
function onAphlictMessage(message) {
- JX.Stratcom.invoke('aphlict-receive-message', null, message);
+ switch (message.type) {
+ case 'aphlict.server':
+ JX.Stratcom.invoke('aphlict-server-message', null, message.data);
+ break;
+
+ case 'notification.individual':
+ JX.Stratcom.invoke('aphlict-notification-message', null, message.data);
+ break;
+ }
}
// Respond to a response from Phabricator about a specific notification.
@@ -49,7 +60,15 @@
return;
}
+ JX.Leader.broadcast(null, {
+ type: 'notification.individual',
+ data: response
+ });
+ }
+
+ JX.Stratcom.listen('aphlict-notification-message', null, function(e) {
JX.Stratcom.invoke('notification-panel-update', null, {});
+ var response = e.getData();
// Show the notification itself.
new JX.Notification()
@@ -68,7 +87,7 @@
showing_reload = true;
}
- }
+ });
var client = new JX.Aphlict(
config.websocketURI,
diff --git a/webroot/rsrc/js/application/conpherence/behavior-pontificate.js b/webroot/rsrc/js/application/conpherence/behavior-pontificate.js
--- a/webroot/rsrc/js/application/conpherence/behavior-pontificate.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-pontificate.js
@@ -33,7 +33,7 @@
infonode.value = id;
}
- JX.Stratcom.listen('aphlict-receive-message', null, function(e) {
+ JX.Stratcom.listen('aphlict-server-message', null, function(e) {
var message = e.getData();
if (message.type != 'message') {

File Metadata

Mime Type
text/plain
Expires
Mar 10 2025, 10:14 PM (6 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7475889
Default Alt Text
D11360.id27414.diff (8 KB)

Event Timeline