@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.

Fix an issue where inlines could be duplicated in the client list

Summary:
Ref T13559. D21261 added caching here, but the logic in rebuilding inlines wasn't quite correct, and could lead to us double-appending.

Instead, when rebuilding, unconditionally discard the old list.

Test Plan:
- Added inline comments to a file in Differential.
- Marked some done.
- Scrolled so the inline comment header was visible, saw "X / Y Comments" button in header.
- Clicked "Show 20 more lines" on the changeset with inlines (or toggle "View Unified" / "View Side-by-Side", or other interactions likely work too).
- Before: saw "X / Y" change improperly (because inlines in that file were double-counted).
- After: saw stable count.
- Grepped for "differential-inline-comment-refresh", got no hits, concluded this event has no listeners.

Maniphest Tasks: T13559

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

+18 -23
+17 -17
resources/celerity/map.php
··· 13 13 'core.pkg.js' => 'ab3502fe', 14 14 'dark-console.pkg.js' => '187792c2', 15 15 'differential.pkg.css' => 'ffb69e3d', 16 - 'differential.pkg.js' => '5986f349', 16 + 'differential.pkg.js' => 'd1150814', 17 17 'diffusion.pkg.css' => '42c75c37', 18 18 'diffusion.pkg.js' => '78c9885d', 19 19 'maniphest.pkg.css' => '35995d6d', ··· 383 383 'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => 'a2ab19be', 384 384 'rsrc/js/application/dashboard/behavior-dashboard-query-panel-select.js' => '1e413dc9', 385 385 'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => '0116d3e8', 386 - 'rsrc/js/application/diff/DiffChangeset.js' => '3b6e1fde', 386 + 'rsrc/js/application/diff/DiffChangeset.js' => 'd7d3ba75', 387 387 'rsrc/js/application/diff/DiffChangesetList.js' => 'cc2c5de5', 388 388 'rsrc/js/application/diff/DiffInline.js' => '511a1315', 389 389 'rsrc/js/application/diff/DiffPathView.js' => '8207abf9', ··· 785 785 'phabricator-darklog' => '3b869402', 786 786 'phabricator-darkmessage' => '26cd4b73', 787 787 'phabricator-dashboard-css' => '5a205b9d', 788 - 'phabricator-diff-changeset' => '3b6e1fde', 788 + 'phabricator-diff-changeset' => 'd7d3ba75', 789 789 'phabricator-diff-changeset-list' => 'cc2c5de5', 790 790 'phabricator-diff-inline' => '511a1315', 791 791 'phabricator-diff-path-view' => '8207abf9', ··· 1248 1248 'javelin-behavior', 1249 1249 'phabricator-prefab', 1250 1250 ), 1251 - '3b6e1fde' => array( 1252 - 'javelin-dom', 1253 - 'javelin-util', 1254 - 'javelin-stratcom', 1255 - 'javelin-install', 1256 - 'javelin-workflow', 1257 - 'javelin-router', 1258 - 'javelin-behavior-device', 1259 - 'javelin-vector', 1260 - 'phabricator-diff-inline', 1261 - 'phabricator-diff-path-view', 1262 - 'phuix-button-view', 1263 - 'javelin-external-editor-link-engine', 1264 - ), 1265 1251 '3dc5ad43' => array( 1266 1252 'javelin-behavior', 1267 1253 'javelin-stratcom', ··· 2128 2114 ), 2129 2115 'd4cc2d2a' => array( 2130 2116 'javelin-install', 2117 + ), 2118 + 'd7d3ba75' => array( 2119 + 'javelin-dom', 2120 + 'javelin-util', 2121 + 'javelin-stratcom', 2122 + 'javelin-install', 2123 + 'javelin-workflow', 2124 + 'javelin-router', 2125 + 'javelin-behavior-device', 2126 + 'javelin-vector', 2127 + 'phabricator-diff-inline', 2128 + 'phabricator-diff-path-view', 2129 + 'phuix-button-view', 2130 + 'javelin-external-editor-link-engine', 2131 2131 ), 2132 2132 'd8a86cfb' => array( 2133 2133 'javelin-behavior',
+1 -6
webroot/rsrc/js/application/diff/DiffChangeset.js
··· 671 671 // Code shared by autoload and context responses. 672 672 673 673 this._loadChangesetState(response); 674 - 675 - JX.Stratcom.invoke('differential-inline-comment-refresh'); 676 - 677 674 this._rebuildAllInlines(); 678 675 679 676 JX.Stratcom.invoke('resize'); ··· 846 843 }, 847 844 848 845 _rebuildAllInlines: function() { 849 - if (this._inlines === null) { 850 - this._inlines = []; 851 - } 846 + this._inlines = []; 852 847 853 848 var rows = JX.DOM.scry(this._node, 'tr'); 854 849 var ii;