@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Conpherence - fix disappearing older messages bug

Summary:
Fixes T8194. If you loaded a conpherence directly via a URI like /Z1 or /conpherence/1/ we didn't correctly cache the loaded transactions such that sending a message would only show that message and subsequent messages.

Fix is to build the cache properly in this case. Note this codepath is different because the server sends back more of the thread data in the initial request.

Test Plan: loaded a conpherence directly, sent messages, paged back, everything kept showing!

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T8194

Differential Revision: https://secure.phabricator.com/D12844

+42 -37
+30 -30
resources/celerity/map.php
··· 8 8 return array( 9 9 'names' => array( 10 10 'core.pkg.css' => '7ac320f1', 11 - 'core.pkg.js' => 'ac41c400', 11 + 'core.pkg.js' => 'a2f2598e', 12 12 'darkconsole.pkg.js' => 'e7393ebb', 13 13 'differential.pkg.css' => 'bb338e4b', 14 14 'differential.pkg.js' => '895b8d62', ··· 332 332 'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18', 333 333 'rsrc/js/application/calendar/event-all-day.js' => 'ca5fa62a', 334 334 'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de', 335 - 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => 'b7342ddb', 335 + 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '10246726', 336 336 'rsrc/js/application/conpherence/behavior-drag-and-drop-photo.js' => 'cf86d16a', 337 337 'rsrc/js/application/conpherence/behavior-durable-column.js' => '16c695bf', 338 - 'rsrc/js/application/conpherence/behavior-menu.js' => '4351c4a0', 338 + 'rsrc/js/application/conpherence/behavior-menu.js' => 'c0348cac', 339 339 'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861', 340 340 'rsrc/js/application/conpherence/behavior-quicksand-blacklist.js' => '7927a7d3', 341 341 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '93568464', ··· 500 500 'conpherence-menu-css' => 'f389e048', 501 501 'conpherence-message-pane-css' => '5bb4b76d', 502 502 'conpherence-notification-css' => '919974b6', 503 - 'conpherence-thread-manager' => 'b7342ddb', 503 + 'conpherence-thread-manager' => '10246726', 504 504 'conpherence-transaction-css' => '42a457f6', 505 505 'conpherence-update-css' => '1099a660', 506 506 'conpherence-widget-pane-css' => '2af42ebe', ··· 541 541 'javelin-behavior-choose-control' => '6153c708', 542 542 'javelin-behavior-config-reorder-fields' => '14a827de', 543 543 'javelin-behavior-conpherence-drag-and-drop-photo' => 'cf86d16a', 544 - 'javelin-behavior-conpherence-menu' => '4351c4a0', 544 + 'javelin-behavior-conpherence-menu' => 'c0348cac', 545 545 'javelin-behavior-conpherence-pontificate' => '21ba5861', 546 546 'javelin-behavior-conpherence-widget-pane' => '93568464', 547 547 'javelin-behavior-countdown-timer' => 'e4cc26b3', ··· 876 876 'javelin-install', 877 877 'javelin-util', 878 878 ), 879 + 10246726 => array( 880 + 'javelin-dom', 881 + 'javelin-util', 882 + 'javelin-stratcom', 883 + 'javelin-install', 884 + 'javelin-aphlict', 885 + 'javelin-workflow', 886 + 'javelin-router', 887 + 'javelin-behavior-device', 888 + 'javelin-vector', 889 + ), 879 890 '13c739ea' => array( 880 891 'javelin-behavior', 881 892 'javelin-stratcom', ··· 1067 1078 'javelin-dom', 1068 1079 'javelin-request', 1069 1080 ), 1070 - '4351c4a0' => array( 1071 - 'javelin-behavior', 1072 - 'javelin-dom', 1073 - 'javelin-util', 1074 - 'javelin-stratcom', 1075 - 'javelin-workflow', 1076 - 'javelin-behavior-device', 1077 - 'javelin-history', 1078 - 'javelin-vector', 1079 - 'javelin-scrollbar', 1080 - 'phabricator-title', 1081 - 'phabricator-shaped-request', 1082 - 'conpherence-thread-manager', 1083 - ), 1084 1081 '44168bad' => array( 1085 1082 'javelin-behavior', 1086 1083 'javelin-dom', ··· 1703 1700 'javelin-dom', 1704 1701 'javelin-util', 1705 1702 ), 1706 - 'b7342ddb' => array( 1707 - 'javelin-dom', 1708 - 'javelin-util', 1709 - 'javelin-stratcom', 1710 - 'javelin-install', 1711 - 'javelin-aphlict', 1712 - 'javelin-workflow', 1713 - 'javelin-router', 1714 - 'javelin-behavior-device', 1715 - 'javelin-vector', 1716 - ), 1717 1703 'ba4fa35c' => array( 1718 1704 'javelin-behavior', 1719 1705 'javelin-dom', ··· 1746 1732 'javelin-dom', 1747 1733 'javelin-util', 1748 1734 'phabricator-shaped-request', 1735 + ), 1736 + 'c0348cac' => array( 1737 + 'javelin-behavior', 1738 + 'javelin-dom', 1739 + 'javelin-util', 1740 + 'javelin-stratcom', 1741 + 'javelin-workflow', 1742 + 'javelin-behavior-device', 1743 + 'javelin-history', 1744 + 'javelin-vector', 1745 + 'javelin-scrollbar', 1746 + 'phabricator-title', 1747 + 'phabricator-shaped-request', 1748 + 'conpherence-thread-manager', 1749 1749 ), 1750 1750 'c1700f6f' => array( 1751 1751 'javelin-install',
+11 -7
webroot/rsrc/js/application/conpherence/ConpherenceThreadManager.js
··· 330 330 JX.DOM.setContent(this._messagesRootCallback(), transactions); 331 331 }, 332 332 333 + cacheCurrentTransactions: function() { 334 + var root = this._messagesRootCallback(); 335 + var transactions = JX.DOM.scry( 336 + root , 337 + 'div', 338 + 'conpherence-transaction-view'); 339 + this._updateTransactionIDMap(transactions); 340 + this._updateTransactionCache(transactions); 341 + }, 342 + 333 343 _updateThread: function() { 334 344 var params = this._getParams({ 335 345 action: 'load', ··· 422 432 r.aphlictDropdownData); 423 433 424 434 this._didLoadThreadCallback(r); 425 - var messages_root = this._messagesRootCallback(); 426 - var messages = JX.DOM.scry( 427 - messages_root, 428 - 'div', 429 - 'conpherence-transaction-view'); 430 - this._updateTransactionIDMap(messages); 431 - this._updateTransactionCache(messages); 435 + this.cacheCurrentTransactions(); 432 436 433 437 if (force_reload) { 434 438 JX.Stratcom.invoke('hashchange');
+1
webroot/rsrc/js/application/conpherence/behavior-menu.js
··· 191 191 threadManager.setLoadedThreadPHID(config.selectedThreadPHID); 192 192 threadManager.setLatestTransactionID(config.latestTransactionID); 193 193 threadManager.setCanEditLoadedThread(config.canEditSelectedThread); 194 + threadManager.cacheCurrentTransactions(); 194 195 _scrollMessageWindow(); 195 196 _focusTextarea(); 196 197 } else {