Page MenuHomePhabricator

D12816.diff
No OneTemporary

D12816.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' => 'ed3d6355',
- 'core.pkg.js' => '3ed82e2f',
+ 'core.pkg.js' => '616511ac',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => 'bb338e4b',
'differential.pkg.js' => '895b8d62',
@@ -348,10 +348,10 @@
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
'rsrc/js/application/calendar/event-all-day.js' => 'ca5fa62a',
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
- 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '9e507b59',
+ 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => 'de397217',
'rsrc/js/application/conpherence/behavior-drag-and-drop-photo.js' => 'cf86d16a',
- 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'bc5107aa',
- 'rsrc/js/application/conpherence/behavior-menu.js' => '804b0773',
+ 'rsrc/js/application/conpherence/behavior-durable-column.js' => '61252a27',
+ 'rsrc/js/application/conpherence/behavior-menu.js' => 'eb61cb03',
'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861',
'rsrc/js/application/conpherence/behavior-quicksand-blacklist.js' => '7927a7d3',
'rsrc/js/application/conpherence/behavior-widget-pane.js' => '93568464',
@@ -516,7 +516,7 @@
'conpherence-menu-css' => 'f389e048',
'conpherence-message-pane-css' => '0e75feef',
'conpherence-notification-css' => 'd208f806',
- 'conpherence-thread-manager' => '9e507b59',
+ 'conpherence-thread-manager' => 'de397217',
'conpherence-transaction-css' => '42a457f6',
'conpherence-update-css' => '1099a660',
'conpherence-widget-pane-css' => '2af42ebe',
@@ -557,7 +557,7 @@
'javelin-behavior-choose-control' => '6153c708',
'javelin-behavior-config-reorder-fields' => '14a827de',
'javelin-behavior-conpherence-drag-and-drop-photo' => 'cf86d16a',
- 'javelin-behavior-conpherence-menu' => '804b0773',
+ 'javelin-behavior-conpherence-menu' => 'eb61cb03',
'javelin-behavior-conpherence-pontificate' => '21ba5861',
'javelin-behavior-conpherence-widget-pane' => '93568464',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
@@ -584,7 +584,7 @@
'javelin-behavior-diffusion-locate-file' => '6d3e1947',
'javelin-behavior-diffusion-pull-lastmodified' => '2b228192',
'javelin-behavior-doorkeeper-tag' => 'e5822781',
- 'javelin-behavior-durable-column' => 'bc5107aa',
+ 'javelin-behavior-durable-column' => '61252a27',
'javelin-behavior-error-log' => '6882e80a',
'javelin-behavior-event-all-day' => 'ca5fa62a',
'javelin-behavior-fancy-datepicker' => '5c0f680f',
@@ -1256,6 +1256,16 @@
'javelin-stratcom',
'javelin-dom',
),
+ '61252a27' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'javelin-behavior-device',
+ 'javelin-scrollbar',
+ 'javelin-quicksand',
+ 'phabricator-keyboard-shortcut',
+ 'conpherence-thread-manager',
+ ),
'6153c708' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1395,20 +1405,6 @@
'javelin-behavior',
'javelin-history',
),
- '804b0773' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-workflow',
- 'javelin-behavior-device',
- 'javelin-history',
- 'javelin-vector',
- 'javelin-scrollbar',
- 'phabricator-title',
- 'phabricator-shaped-request',
- 'conpherence-thread-manager',
- ),
82439934 => array(
'javelin-behavior',
'javelin-dom',
@@ -1578,17 +1574,6 @@
'phuix-action-view',
'javelin-workflow',
),
- '9e507b59' => array(
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-install',
- 'javelin-aphlict',
- 'javelin-workflow',
- 'javelin-router',
- 'javelin-behavior-device',
- 'javelin-vector',
- ),
'9f36c42d' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1734,16 +1719,6 @@
'javelin-stratcom',
'javelin-dom',
),
- 'bc5107aa' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'javelin-behavior-device',
- 'javelin-scrollbar',
- 'javelin-quicksand',
- 'phabricator-keyboard-shortcut',
- 'conpherence-thread-manager',
- ),
'bd4c8dca' => array(
'javelin-install',
'javelin-util',
@@ -1857,6 +1832,17 @@
'javelin-typeahead-ondemand-source',
'javelin-dom',
),
+ 'de397217' => array(
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-stratcom',
+ 'javelin-install',
+ 'javelin-aphlict',
+ 'javelin-workflow',
+ 'javelin-router',
+ 'javelin-behavior-device',
+ 'javelin-vector',
+ ),
'df5e11d2' => array(
'javelin-install',
),
@@ -1934,6 +1920,20 @@
'phabricator-phtize',
'javelin-dom',
),
+ 'eb61cb03' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-stratcom',
+ 'javelin-workflow',
+ 'javelin-behavior-device',
+ 'javelin-history',
+ 'javelin-vector',
+ 'javelin-scrollbar',
+ 'phabricator-title',
+ 'phabricator-shaped-request',
+ 'conpherence-thread-manager',
+ ),
'efe49472' => array(
'javelin-install',
'javelin-util',
diff --git a/webroot/rsrc/js/application/conpherence/ConpherenceThreadManager.js b/webroot/rsrc/js/application/conpherence/ConpherenceThreadManager.js
--- a/webroot/rsrc/js/application/conpherence/ConpherenceThreadManager.js
+++ b/webroot/rsrc/js/application/conpherence/ConpherenceThreadManager.js
@@ -30,6 +30,7 @@
_canEditLoadedThread: null,
_updating: null,
_minimalDisplay: false,
+ _messagesRootCallback: JX.bag,
_willLoadThreadCallback: JX.bag,
_didLoadThreadCallback: JX.bag,
_didUpdateThreadCallback: JX.bag,
@@ -99,6 +100,11 @@
return this;
},
+ setMessagesRootCallback: function(callback) {
+ this._messagesRootCallback = callback;
+ return this;
+ },
+
setWillLoadThreadCallback: function(callback) {
this._willLoadThreadCallback = callback;
return this;
@@ -183,6 +189,52 @@
this._updateThread();
}));
+
+ JX.Stratcom.listen(
+ 'click',
+ 'show-older-messages',
+ JX.bind(this, function(e) {
+ e.kill();
+ var data = e.getNodeData('show-older-messages');
+
+ var node = e.getNode('show-older-messages');
+ JX.DOM.setContent(node, 'Loading...');
+ JX.DOM.alterClass(
+ node,
+ 'conpherence-show-more-messages-loading',
+ true);
+
+ new JX.Workflow(this._getMoreMessagesURI(), data)
+ .setHandler(JX.bind(this, function(r) {
+ JX.DOM.remove(node);
+ var messages = JX.$H(r.messages);
+ JX.DOM.prependContent(
+ this._messagesRootCallback(),
+ messages);
+ })).start();
+ }));
+ JX.Stratcom.listen(
+ 'click',
+ 'show-newer-messages',
+ JX.bind(this, function(e) {
+ e.kill();
+ var data = e.getNodeData('show-newer-messages');
+ var node = e.getNode('show-newer-messages');
+ JX.DOM.setContent(node, 'Loading...');
+ JX.DOM.alterClass(
+ node,
+ 'conpherence-show-more-messages-loading',
+ true);
+
+ new JX.Workflow(this._getMoreMessagesURI(), data)
+ .setHandler(JX.bind(this, function(r) {
+ JX.DOM.remove(node);
+ var messages = JX.$H(r.messages);
+ JX.DOM.appendContent(
+ this._messagesRootCallback(),
+ JX.$H(messages));
+ })).start();
+ }));
},
_shouldUpdateDOM: function(r) {
@@ -216,9 +268,7 @@
action: 'load',
});
- var uri = '/conpherence/update/' + this._loadedThreadID + '/';
-
- var workflow = new JX.Workflow(uri)
+ var workflow = new JX.Workflow(this._getUpdateURI())
.setData(params)
.setHandler(JX.bind(this, function(r) {
if (this._shouldUpdateDOM(r)) {
@@ -350,9 +400,8 @@
var data = e.getNodeData('tag:form');
if (!data.preview) {
- var uri = '/conpherence/update/' + this._loadedThreadID + '/';
data.preview = new JX.PhabricatorShapedRequest(
- uri,
+ this._getUpdateURI(),
JX.bag,
JX.bind(this, function () {
var data = JX.DOM.convertFormToDictionary(form);
@@ -362,6 +411,14 @@
}));
}
data.preview.trigger();
+ },
+
+ _getUpdateURI: function() {
+ return '/conpherence/update/' + this._loadedThreadID + '/';
+ },
+
+ _getMoreMessagesURI: function() {
+ return '/conpherence/' + this._loadedThreadID + '/';
}
},
diff --git a/webroot/rsrc/js/application/conpherence/behavior-durable-column.js b/webroot/rsrc/js/application/conpherence/behavior-durable-column.js
--- a/webroot/rsrc/js/application/conpherence/behavior-durable-column.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-durable-column.js
@@ -119,6 +119,9 @@
var threadManager = new JX.ConpherenceThreadManager();
threadManager.setMinimalDisplay(true);
+ threadManager.setMessagesRootCallback(function() {
+ return _getColumnMessagesNode();
+ });
threadManager.setLoadThreadURI('/conpherence/columnview/');
threadManager.setWillLoadThreadCallback(function() {
_markLoading(true);
diff --git a/webroot/rsrc/js/application/conpherence/behavior-menu.js b/webroot/rsrc/js/application/conpherence/behavior-menu.js
--- a/webroot/rsrc/js/application/conpherence/behavior-menu.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-menu.js
@@ -28,6 +28,9 @@
// TODO - move more logic into the ThreadManager
var threadManager = new JX.ConpherenceThreadManager();
+ threadManager.setMessagesRootCallback(function() {
+ return scrollbar.getContentNode();
+ });
threadManager.setWillLoadThreadCallback(function() {
markThreadLoading(true);
});
@@ -415,56 +418,6 @@
.start();
});
- var _oldLoadingTransactionID = null;
- JX.Stratcom.listen('click', 'show-older-messages', function(e) {
- e.kill();
- var data = e.getNodeData('show-older-messages');
- if (data.oldest_transaction_id == _oldLoadingTransactionID) {
- return;
- }
- _oldLoadingTransactionID = data.oldest_transaction_id;
-
- var node = e.getNode('show-older-messages');
- JX.DOM.setContent(node, 'Loading...');
- JX.DOM.alterClass(node, 'conpherence-show-more-messages-loading', true);
-
- var conf_id = _thread.selected;
- var messages_root = scrollbar.getContentNode();
- new JX.Workflow(config.baseURI + conf_id + '/', data)
- .setHandler(function(r) {
- JX.DOM.remove(node);
- var messages = JX.$H(r.messages);
- JX.DOM.prependContent(
- messages_root,
- JX.$H(messages));
- }).start();
- });
-
- var _newLoadingTransactionID = null;
- JX.Stratcom.listen('click', 'show-newer-messages', function(e) {
- e.kill();
- var data = e.getNodeData('show-newer-messages');
- if (data.newest_transaction_id == _newLoadingTransactionID) {
- return;
- }
- _newLoadingTransactionID = data.newest_transaction_id;
-
- var node = e.getNode('show-newer-messages');
- JX.DOM.setContent(node, 'Loading...');
- JX.DOM.alterClass(node, 'conpherence-show-more-messages-loading', true);
-
- var conf_id = _thread.selected;
- var messages_root = scrollbar.getContentNode();
- new JX.Workflow(config.baseURI + conf_id + '/', data)
- .setHandler(function(r) {
- JX.DOM.remove(node);
- var messages = JX.$H(r.messages);
- JX.DOM.appendContent(
- messages_root,
- JX.$H(messages));
- }).start();
- });
-
/**
* On devices, we just show a thread list, so we don't want to automatically
* select or load any threads. On desktop, we automatically select the first

File Metadata

Mime Type
text/plain
Expires
Mar 16 2025, 2:36 AM (5 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7388570
Default Alt Text
D12816.diff (12 KB)

Event Timeline