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

Maniphest + Differential - don't show transaction preview until user interacts with the form.

Summary: Fixes T4846. These are one off (for now) since they have various crazy actions with them. I think this will get unified and more cleaned up when we refine the UI for taking multiple actions at once, etc.

Test Plan: noted no "commented on x" in either maniphest or differential. starting making a comment and noted prevew showed. started adding a subscriber (added to tokenizer) and preview showed.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T4846

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

+68 -37
+32 -32
resources/celerity/map.php
··· 11 11 'core.pkg.js' => '328799d0', 12 12 'darkconsole.pkg.js' => 'e7393ebb', 13 13 'differential.pkg.css' => 'bb338e4b', 14 - 'differential.pkg.js' => '45b3b51d', 14 + 'differential.pkg.js' => '63a77807', 15 15 'diffusion.pkg.css' => '591664fa', 16 16 'diffusion.pkg.js' => '0115b37c', 17 17 'maniphest.pkg.css' => '68d4dd3d', 18 - 'maniphest.pkg.js' => 'df4aa49f', 18 + 'maniphest.pkg.js' => '2f4f52c2', 19 19 'rsrc/css/aphront/aphront-bars.css' => '231ac33c', 20 20 'rsrc/css/aphront/dark-console.css' => '6378ef3d', 21 21 'rsrc/css/aphront/dialog-view.css' => '9b32db0a', ··· 349 349 'rsrc/js/application/differential/DifferentialInlineCommentEditor.js' => 'd4c87bf4', 350 350 'rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js' => 'e10f8e18', 351 351 'rsrc/js/application/differential/behavior-comment-jump.js' => '4fdb476d', 352 - 'rsrc/js/application/differential/behavior-comment-preview.js' => '8e1389b5', 352 + 'rsrc/js/application/differential/behavior-comment-preview.js' => 'b064af76', 353 353 'rsrc/js/application/differential/behavior-diff-radios.js' => 'e1ff79b1', 354 354 'rsrc/js/application/differential/behavior-dropdown-menus.js' => '2035b9cb', 355 355 'rsrc/js/application/differential/behavior-edit-inline-comments.js' => 'e723c323', ··· 379 379 'rsrc/js/application/maniphest/behavior-subpriorityeditor.js' => '84845b5b', 380 380 'rsrc/js/application/maniphest/behavior-transaction-controls.js' => '44168bad', 381 381 'rsrc/js/application/maniphest/behavior-transaction-expand.js' => '5fefb143', 382 - 'rsrc/js/application/maniphest/behavior-transaction-preview.js' => 'f8248bc5', 382 + 'rsrc/js/application/maniphest/behavior-transaction-preview.js' => '4c95d29e', 383 383 'rsrc/js/application/owners/OwnersPathEditor.js' => 'aa1733d0', 384 384 'rsrc/js/application/owners/owners-path-editor.js' => '7a68dda3', 385 385 'rsrc/js/application/passphrase/passphrase-credential-control.js' => '3cb0b2fc', ··· 466 466 'rsrc/js/core/behavior-scrollbar.js' => '834a1173', 467 467 'rsrc/js/core/behavior-search-typeahead.js' => '048330fa', 468 468 'rsrc/js/core/behavior-select-on-click.js' => '4e3e79a6', 469 - 'rsrc/js/core/behavior-time-typeahead.js' => '8cf340fd', 469 + 'rsrc/js/core/behavior-time-typeahead.js' => '3416cef7', 470 470 'rsrc/js/core/behavior-toggle-class.js' => '5d7c9f33', 471 471 'rsrc/js/core/behavior-tokenizer.js' => 'b3a4b884', 472 472 'rsrc/js/core/behavior-tooltip.js' => '3ee3408b', ··· 559 559 'javelin-behavior-differential-diff-radios' => 'e1ff79b1', 560 560 'javelin-behavior-differential-dropdown-menus' => '2035b9cb', 561 561 'javelin-behavior-differential-edit-inline-comments' => 'e723c323', 562 - 'javelin-behavior-differential-feedback-preview' => '8e1389b5', 562 + 'javelin-behavior-differential-feedback-preview' => 'b064af76', 563 563 'javelin-behavior-differential-keyboard-navigation' => '2c426492', 564 564 'javelin-behavior-differential-populate' => '8694b1df', 565 565 'javelin-behavior-differential-show-field-details' => 'bba9eedf', ··· 590 590 'javelin-behavior-maniphest-subpriority-editor' => '84845b5b', 591 591 'javelin-behavior-maniphest-transaction-controls' => '44168bad', 592 592 'javelin-behavior-maniphest-transaction-expand' => '5fefb143', 593 - 'javelin-behavior-maniphest-transaction-preview' => 'f8248bc5', 593 + 'javelin-behavior-maniphest-transaction-preview' => '4c95d29e', 594 594 'javelin-behavior-owners-path-editor' => '7a68dda3', 595 595 'javelin-behavior-passphrase-credential-control' => '3cb0b2fc', 596 596 'javelin-behavior-persona-login' => '9414ff18', ··· 641 641 'javelin-behavior-slowvote-embed' => '887ad43f', 642 642 'javelin-behavior-stripe-payment-form' => '3f5d6dbf', 643 643 'javelin-behavior-test-payment-form' => 'fc91ab6c', 644 - 'javelin-behavior-time-typeahead' => '8cf340fd', 644 + 'javelin-behavior-time-typeahead' => '3416cef7', 645 645 'javelin-behavior-toggle-class' => '5d7c9f33', 646 646 'javelin-behavior-typeahead-browse' => '635de1ec', 647 647 'javelin-behavior-typeahead-search' => '93d0c9e3', ··· 1041 1041 '331b1611' => array( 1042 1042 'javelin-install', 1043 1043 ), 1044 + '3416cef7' => array( 1045 + 'javelin-behavior', 1046 + 'javelin-util', 1047 + 'javelin-dom', 1048 + 'javelin-stratcom', 1049 + 'javelin-vector', 1050 + 'javelin-typeahead-static-source', 1051 + ), 1044 1052 '3975b470' => array( 1045 1053 'javelin-behavior', 1046 1054 'javelin-dom', ··· 1129 1137 'javelin-dom', 1130 1138 'javelin-request', 1131 1139 'javelin-util', 1140 + ), 1141 + '4c95d29e' => array( 1142 + 'javelin-behavior', 1143 + 'javelin-dom', 1144 + 'javelin-util', 1145 + 'javelin-json', 1146 + 'javelin-stratcom', 1147 + 'phabricator-shaped-request', 1132 1148 ), 1133 1149 '4cebc641' => array( 1134 1150 'javelin-install', ··· 1484 1500 'javelin-stratcom', 1485 1501 'javelin-behavior', 1486 1502 ), 1487 - '8cf340fd' => array( 1488 - 'javelin-behavior', 1489 - 'javelin-util', 1490 - 'javelin-dom', 1491 - 'javelin-stratcom', 1492 - 'javelin-vector', 1493 - 'javelin-typeahead-static-source', 1494 - ), 1495 1503 '8cf6d262' => array( 1496 1504 'javelin-install', 1497 1505 'javelin-dom', 1498 1506 'javelin-util', 1499 - ), 1500 - '8e1389b5' => array( 1501 - 'javelin-behavior', 1502 - 'javelin-stratcom', 1503 - 'javelin-dom', 1504 - 'javelin-request', 1505 - 'javelin-util', 1506 - 'phabricator-shaped-request', 1507 1507 ), 1508 1508 '8ef9ab58' => array( 1509 1509 'javelin-behavior', ··· 1662 1662 'javelin-util', 1663 1663 'javelin-stratcom', 1664 1664 'javelin-install', 1665 + ), 1666 + 'b064af76' => array( 1667 + 'javelin-behavior', 1668 + 'javelin-stratcom', 1669 + 'javelin-dom', 1670 + 'javelin-request', 1671 + 'javelin-util', 1672 + 'phabricator-shaped-request', 1665 1673 ), 1666 1674 'b1a59974' => array( 1667 1675 'javelin-behavior', ··· 1982 1990 'javelin-request', 1983 1991 'javelin-typeahead-ondemand-source', 1984 1992 'javelin-util', 1985 - ), 1986 - 'f8248bc5' => array( 1987 - 'javelin-behavior', 1988 - 'javelin-dom', 1989 - 'javelin-util', 1990 - 'javelin-json', 1991 - 'javelin-stratcom', 1992 - 'phabricator-shaped-request', 1993 1993 ), 1994 1994 'f829edb3' => array( 1995 1995 'javelin-view',
+19 -4
webroot/rsrc/js/application/differential/behavior-comment-preview.js
··· 21 21 22 22 var callback = function(r) { 23 23 var preview = JX.$(config.preview); 24 - JX.DOM.setContent(preview, JX.$H(r)); 25 - JX.Stratcom.invoke('differential-preview-update', null, { 26 - container: preview 27 - }); 24 + var data = getdata(); 25 + var hide = true; 26 + for (var field in data) { 27 + if (field == 'action') { 28 + continue; 29 + } 30 + if (data[field]) { 31 + hide = false; 32 + } 33 + } 34 + if (hide) { 35 + JX.DOM.hide(preview); 36 + } else { 37 + JX.DOM.setContent(preview, JX.$H(r)); 38 + JX.Stratcom.invoke('differential-preview-update', null, { 39 + container: preview 40 + }); 41 + JX.DOM.show(preview); 42 + } 28 43 }; 29 44 30 45 var getdata = function() {
+17 -1
webroot/rsrc/js/application/maniphest/behavior-transaction-preview.js
··· 14 14 var action = JX.$(config.action); 15 15 16 16 var callback = function(r) { 17 - JX.DOM.setContent(JX.$(config.preview), JX.$H(r)); 17 + var panel = JX.$(config.preview); 18 + var data = getdata(); 19 + var hide = true; 20 + for (var field in data) { 21 + if (field == 'action') { 22 + continue; 23 + } 24 + if (data[field]) { 25 + hide = false; 26 + } 27 + } 28 + if (hide) { 29 + JX.DOM.hide(panel); 30 + } else { 31 + JX.DOM.setContent(panel, JX.$H(r)); 32 + JX.DOM.show(panel); 33 + } 18 34 }; 19 35 20 36 var getdata = function() {