diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -352,8 +352,8 @@ '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' => '6a9169bb', - 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'e975bd12', + 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '24561adb', + 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'eedc463c', 'rsrc/js/application/conpherence/behavior-menu.js' => 'c4151295', 'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861', 'rsrc/js/application/conpherence/behavior-quicksand-blacklist.js' => '7927a7d3', @@ -517,7 +517,7 @@ 'conpherence-menu-css' => '9b37a261', 'conpherence-message-pane-css' => 'e78e9d3c', 'conpherence-notification-css' => '04a6e10a', - 'conpherence-thread-manager' => '6a9169bb', + 'conpherence-thread-manager' => '24561adb', 'conpherence-update-css' => '1099a660', 'conpherence-widget-pane-css' => '9efbfed0', 'differential-changeset-view-css' => '6a8b172a', @@ -583,7 +583,7 @@ 'javelin-behavior-diffusion-locate-file' => '6d3e1947', 'javelin-behavior-diffusion-pull-lastmodified' => '2b228192', 'javelin-behavior-doorkeeper-tag' => 'e5822781', - 'javelin-behavior-durable-column' => 'e975bd12', + 'javelin-behavior-durable-column' => 'eedc463c', 'javelin-behavior-error-log' => '6882e80a', 'javelin-behavior-fancy-datepicker' => 'c51ae228', 'javelin-behavior-global-drag-and-drop' => 'bbdf75ca', @@ -988,6 +988,16 @@ 'javelin-workflow', 'javelin-util', ), + '24561adb' => array( + 'javelin-dom', + 'javelin-util', + 'javelin-stratcom', + 'javelin-install', + 'javelin-workflow', + 'javelin-router', + 'javelin-behavior-device', + 'javelin-vector', + ), '2818f5ce' => array( 'javelin-install', 'javelin-util', @@ -1270,16 +1280,6 @@ '69adf288' => array( 'javelin-install', ), - '6a9169bb' => array( - 'javelin-dom', - 'javelin-util', - 'javelin-stratcom', - 'javelin-install', - 'javelin-workflow', - 'javelin-router', - 'javelin-behavior-device', - 'javelin-vector', - ), '6c2b09a2' => array( 'javelin-install', 'javelin-util', @@ -1893,7 +1893,13 @@ 'javelin-dom', 'phabricator-draggable-list', ), - 'e975bd12' => array( + 'ea681761' => array( + 'javelin-behavior', + 'javelin-aphlict', + 'phabricator-phtize', + 'javelin-dom', + ), + 'eedc463c' => array( 'javelin-behavior', 'javelin-dom', 'javelin-stratcom', @@ -1903,12 +1909,6 @@ 'phabricator-keyboard-shortcut', 'conpherence-thread-manager', ), - 'ea681761' => array( - 'javelin-behavior', - 'javelin-aphlict', - 'phabricator-phtize', - 'javelin-dom', - ), '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 @@ -175,15 +175,16 @@ if (r.latest_transaction_id < this._updating.knownID) { return false; } - // we need to let the update code handle things here - if (r.latest_transaction_id > this._updating.knownID) { - this._updating.knownID = r.latest_transaction_id; - return false; - } } return true; }, + _markUpdated: function(r) { + this._updating.knownID = r.latest_transaction_id; + this._latestTransactionID = r.latest_transaction_id; + JX.Stratcom.invoke('notification-panel-update', null, {}); + }, + _updateThread: function() { var params = this._getParams({ action: 'load', @@ -194,19 +195,11 @@ var workflow = new JX.Workflow(uri) .setData(params) .setHandler(JX.bind(this, function(r) { - if (this._updating && - this._updating.threadPHID == this._loadedThreadPHID) { - // we have a different, more current update in progress so - // return early - if (r.latest_transaction_id < this._updating.knownID) { - return; - } - } - this._updating.knownID = r.latest_transaction_id; - this._latestTransactionID = r.latest_transaction_id; - JX.Stratcom.invoke('notification-panel-update', null, {}); + if (this._shouldUpdateDOM(r)) { + this._markUpdated(r); - this._didUpdateThreadCallback(r); + this._didUpdateThreadCallback(r); + } })); this.syncWorkflow(workflow, 'finally'); @@ -235,8 +228,7 @@ .setData(params) .setHandler(JX.bind(this, function(r) { if (this._shouldUpdateDOM(r)) { - this._latestTransactionID = r.latest_transaction_id; - JX.Stratcom.invoke('notification-panel-update', null, {}); + this._markUpdated(r); this._didUpdateWorkflowCallback(r); } @@ -283,8 +275,7 @@ var workflow = JX.Workflow.newFromForm(form, params, keep_enabled) .setHandler(JX.bind(this, function(r) { if (this._shouldUpdateDOM(r)) { - this._latestTransactionID = r.latest_transaction_id; - JX.Stratcom.invoke('notification-panel-update', null, {}); + this._markUpdated(r); this._didSendMessageCallback(r); } 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 @@ -120,7 +120,7 @@ JX.Stratcom.invoke('notification-panel-close'); }); threadManager.setDidUpdateWorkflowCallback(function(r) { - var messages = this._getMessagesNode(); + var messages = _getColumnMessagesNode(); JX.DOM.appendContent(messages, JX.$H(r.transactions)); scrollbar.scrollTo(messages.scrollHeight); JX.DOM.setContent(_getColumnTitleNode(), r.conpherence_title);