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

Differential - add an undo element when you collapse a file

Summary: Fixes T2258.

Test Plan: collapsed and expanded file via the dropdown - good stuff. got the "undo" element into the mix - also good stuff.

Reviewers: epriestley

Reviewed By: epriestley

CC: chad, Korvin, aran

Maniphest Tasks: T2258

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

+90 -42
+39 -38
src/__celerity_resource_map__.php
··· 1026 1026 ), 1027 1027 'differential-changeset-view-css' => 1028 1028 array( 1029 - 'uri' => '/res/8ee213f4/rsrc/css/application/differential/changeset-view.css', 1029 + 'uri' => '/res/b8e183f8/rsrc/css/application/differential/changeset-view.css', 1030 1030 'type' => 'css', 1031 1031 'requires' => 1032 1032 array( ··· 1617 1617 ), 1618 1618 'javelin-behavior-differential-toggle-files' => 1619 1619 array( 1620 - 'uri' => '/res/ae937207/rsrc/js/application/differential/behavior-toggle-files.js', 1620 + 'uri' => '/res/2b266946/rsrc/js/application/differential/behavior-toggle-files.js', 1621 1621 'type' => 'js', 1622 1622 'requires' => 1623 1623 array( 1624 1624 0 => 'javelin-behavior', 1625 1625 1 => 'javelin-dom', 1626 1626 2 => 'javelin-stratcom', 1627 + 3 => 'phabricator-phtize', 1627 1628 ), 1628 1629 'disk' => '/rsrc/js/application/differential/behavior-toggle-files.js', 1629 1630 ), ··· 4279 4280 'uri' => '/res/pkg/4ccfeb47/darkconsole.pkg.js', 4280 4281 'type' => 'js', 4281 4282 ), 4282 - 'dd27a69b' => 4283 + '09216861' => 4283 4284 array( 4284 4285 'name' => 'differential.pkg.css', 4285 4286 'symbols' => ··· 4298 4299 11 => 'differential-local-commits-view-css', 4299 4300 12 => 'inline-comment-summary-css', 4300 4301 ), 4301 - 'uri' => '/res/pkg/dd27a69b/differential.pkg.css', 4302 + 'uri' => '/res/pkg/09216861/differential.pkg.css', 4302 4303 'type' => 'css', 4303 4304 ), 4304 - '48040be9' => 4305 + '025bdd77' => 4305 4306 array( 4306 4307 'name' => 'differential.pkg.js', 4307 4308 'symbols' => ··· 4326 4327 17 => 'javelin-behavior-differential-toggle-files', 4327 4328 18 => 'javelin-behavior-differential-user-select', 4328 4329 ), 4329 - 'uri' => '/res/pkg/48040be9/differential.pkg.js', 4330 + 'uri' => '/res/pkg/025bdd77/differential.pkg.js', 4330 4331 'type' => 'js', 4331 4332 ), 4332 4333 'c8ce2d88' => ··· 4420 4421 'aphront-tokenizer-control-css' => '638c9d42', 4421 4422 'aphront-tooltip-css' => '638c9d42', 4422 4423 'aphront-typeahead-control-css' => '638c9d42', 4423 - 'differential-changeset-view-css' => 'dd27a69b', 4424 - 'differential-core-view-css' => 'dd27a69b', 4425 - 'differential-inline-comment-editor' => '48040be9', 4426 - 'differential-local-commits-view-css' => 'dd27a69b', 4427 - 'differential-results-table-css' => 'dd27a69b', 4428 - 'differential-revision-add-comment-css' => 'dd27a69b', 4429 - 'differential-revision-comment-css' => 'dd27a69b', 4430 - 'differential-revision-comment-list-css' => 'dd27a69b', 4431 - 'differential-revision-history-css' => 'dd27a69b', 4432 - 'differential-revision-list-css' => 'dd27a69b', 4433 - 'differential-table-of-contents-css' => 'dd27a69b', 4424 + 'differential-changeset-view-css' => '09216861', 4425 + 'differential-core-view-css' => '09216861', 4426 + 'differential-inline-comment-editor' => '025bdd77', 4427 + 'differential-local-commits-view-css' => '09216861', 4428 + 'differential-results-table-css' => '09216861', 4429 + 'differential-revision-add-comment-css' => '09216861', 4430 + 'differential-revision-comment-css' => '09216861', 4431 + 'differential-revision-comment-list-css' => '09216861', 4432 + 'differential-revision-history-css' => '09216861', 4433 + 'differential-revision-list-css' => '09216861', 4434 + 'differential-table-of-contents-css' => '09216861', 4434 4435 'diffusion-commit-view-css' => 'c8ce2d88', 4435 4436 'diffusion-icons-css' => 'c8ce2d88', 4436 4437 'global-drag-and-drop-css' => '638c9d42', 4437 - 'inline-comment-summary-css' => 'dd27a69b', 4438 + 'inline-comment-summary-css' => '09216861', 4438 4439 'javelin-aphlict' => '4f81c788', 4439 4440 'javelin-behavior' => '2dbbb7d1', 4440 4441 'javelin-behavior-aphlict-dropdown' => '4f81c788', 4441 4442 'javelin-behavior-aphlict-listen' => '4f81c788', 4442 4443 'javelin-behavior-aphront-basic-tokenizer' => '4f81c788', 4443 - 'javelin-behavior-aphront-drag-and-drop-textarea' => '48040be9', 4444 + 'javelin-behavior-aphront-drag-and-drop-textarea' => '025bdd77', 4444 4445 'javelin-behavior-aphront-form-disable-on-submit' => '4f81c788', 4445 4446 'javelin-behavior-audit-preview' => '96909266', 4446 4447 'javelin-behavior-dark-console' => '4ccfeb47', 4447 4448 'javelin-behavior-device' => '4f81c788', 4448 - 'javelin-behavior-differential-accept-with-errors' => '48040be9', 4449 - 'javelin-behavior-differential-add-reviewers-and-ccs' => '48040be9', 4450 - 'javelin-behavior-differential-comment-jump' => '48040be9', 4451 - 'javelin-behavior-differential-diff-radios' => '48040be9', 4452 - 'javelin-behavior-differential-dropdown-menus' => '48040be9', 4453 - 'javelin-behavior-differential-edit-inline-comments' => '48040be9', 4454 - 'javelin-behavior-differential-feedback-preview' => '48040be9', 4455 - 'javelin-behavior-differential-keyboard-navigation' => '48040be9', 4456 - 'javelin-behavior-differential-populate' => '48040be9', 4457 - 'javelin-behavior-differential-show-more' => '48040be9', 4458 - 'javelin-behavior-differential-toggle-files' => '48040be9', 4459 - 'javelin-behavior-differential-user-select' => '48040be9', 4449 + 'javelin-behavior-differential-accept-with-errors' => '025bdd77', 4450 + 'javelin-behavior-differential-add-reviewers-and-ccs' => '025bdd77', 4451 + 'javelin-behavior-differential-comment-jump' => '025bdd77', 4452 + 'javelin-behavior-differential-diff-radios' => '025bdd77', 4453 + 'javelin-behavior-differential-dropdown-menus' => '025bdd77', 4454 + 'javelin-behavior-differential-edit-inline-comments' => '025bdd77', 4455 + 'javelin-behavior-differential-feedback-preview' => '025bdd77', 4456 + 'javelin-behavior-differential-keyboard-navigation' => '025bdd77', 4457 + 'javelin-behavior-differential-populate' => '025bdd77', 4458 + 'javelin-behavior-differential-show-more' => '025bdd77', 4459 + 'javelin-behavior-differential-toggle-files' => '025bdd77', 4460 + 'javelin-behavior-differential-user-select' => '025bdd77', 4460 4461 'javelin-behavior-diffusion-commit-graph' => '96909266', 4461 4462 'javelin-behavior-diffusion-pull-lastmodified' => '96909266', 4462 4463 'javelin-behavior-error-log' => '4ccfeb47', ··· 4464 4465 'javelin-behavior-history-install' => '4f81c788', 4465 4466 'javelin-behavior-konami' => '4f81c788', 4466 4467 'javelin-behavior-lightbox-attachments' => '4f81c788', 4467 - 'javelin-behavior-load-blame' => '48040be9', 4468 + 'javelin-behavior-load-blame' => '025bdd77', 4468 4469 'javelin-behavior-maniphest-batch-selector' => '98f64f07', 4469 4470 'javelin-behavior-maniphest-subpriority-editor' => '98f64f07', 4470 4471 'javelin-behavior-maniphest-transaction-controls' => '98f64f07', ··· 4476 4477 'javelin-behavior-phabricator-hovercards' => '4f81c788', 4477 4478 'javelin-behavior-phabricator-keyboard-shortcuts' => '4f81c788', 4478 4479 'javelin-behavior-phabricator-nav' => '4f81c788', 4479 - 'javelin-behavior-phabricator-object-selector' => '48040be9', 4480 + 'javelin-behavior-phabricator-object-selector' => '025bdd77', 4480 4481 'javelin-behavior-phabricator-oncopy' => '4f81c788', 4481 4482 'javelin-behavior-phabricator-remarkup-assist' => '4f81c788', 4482 4483 'javelin-behavior-phabricator-reveal-content' => '4f81c788', ··· 4484 4485 'javelin-behavior-phabricator-tooltips' => '4f81c788', 4485 4486 'javelin-behavior-phabricator-watch-anchor' => '4f81c788', 4486 4487 'javelin-behavior-refresh-csrf' => '4f81c788', 4487 - 'javelin-behavior-repository-crossreference' => '48040be9', 4488 + 'javelin-behavior-repository-crossreference' => '025bdd77', 4488 4489 'javelin-behavior-toggle-class' => '4f81c788', 4489 4490 'javelin-behavior-workflow' => '4f81c788', 4490 4491 'javelin-dom' => '2dbbb7d1', ··· 4512 4513 'phabricator-action-list-view-css' => '638c9d42', 4513 4514 'phabricator-application-launch-view-css' => '638c9d42', 4514 4515 'phabricator-busy' => '4f81c788', 4515 - 'phabricator-content-source-view-css' => 'dd27a69b', 4516 + 'phabricator-content-source-view-css' => '09216861', 4516 4517 'phabricator-core-css' => '638c9d42', 4517 4518 'phabricator-crumbs-view-css' => '638c9d42', 4518 - 'phabricator-drag-and-drop-file-upload' => '48040be9', 4519 + 'phabricator-drag-and-drop-file-upload' => '025bdd77', 4519 4520 'phabricator-dropdown-menu' => '4f81c788', 4520 4521 'phabricator-file-upload' => '4f81c788', 4521 4522 'phabricator-filetree-view-css' => '638c9d42', ··· 4533 4534 'phabricator-notification-css' => '638c9d42', 4534 4535 'phabricator-notification-menu-css' => '638c9d42', 4535 4536 'phabricator-object-item-list-view-css' => '638c9d42', 4536 - 'phabricator-object-selector-css' => 'dd27a69b', 4537 + 'phabricator-object-selector-css' => '09216861', 4537 4538 'phabricator-phtize' => '4f81c788', 4538 4539 'phabricator-prefab' => '4f81c788', 4539 4540 'phabricator-project-tag-css' => '06bacb9a', 4540 4541 'phabricator-property-list-view-css' => '638c9d42', 4541 4542 'phabricator-remarkup-css' => '638c9d42', 4542 - 'phabricator-shaped-request' => '48040be9', 4543 + 'phabricator-shaped-request' => '025bdd77', 4543 4544 'phabricator-side-menu-view-css' => '638c9d42', 4544 4545 'phabricator-standard-page-view' => '638c9d42', 4545 4546 'phabricator-tag-view-css' => '638c9d42',
+5 -1
src/applications/differential/view/DifferentialChangesetListView.php
··· 107 107 108 108 $changesets = $this->changesets; 109 109 110 - Javelin::initBehavior('differential-toggle-files', array()); 110 + Javelin::initBehavior('differential-toggle-files', array( 111 + 'pht' => array( 112 + 'undo' => pht('Undo'), 113 + 'collapsed' => pht('This file content has been collapsed.')) 114 + )); 111 115 Javelin::initBehavior( 112 116 'differential-dropdown-menus', 113 117 array());
+13
webroot/rsrc/css/application/differential/changeset-view.css
··· 439 439 text-align: center; 440 440 font-size: 11px; 441 441 } 442 + 443 + .differential-collapse-undo { 444 + background: #FFE; 445 + color: #000; 446 + padding: 1em 0em; 447 + border: 1px solid #CCA; 448 + text-align: center; 449 + background-color: #FFE; 450 + } 451 + 452 + .differential-collapse-undo a { 453 + font-weight: bold; 454 + }
+33 -3
webroot/rsrc/js/application/differential/behavior-toggle-files.js
··· 3 3 * @requires javelin-behavior 4 4 * javelin-dom 5 5 * javelin-stratcom 6 + * phabricator-phtize 6 7 */ 7 8 8 9 JX.behavior('differential-toggle-files', function(config) { 10 + var pht = JX.phtize(config.pht); 9 11 10 12 JX.Stratcom.listen( 11 13 'differential-toggle-file', ··· 14 16 if (e.getData().diff.length != 1) { 15 17 return; 16 18 } 19 + 17 20 var diff = e.getData().diff[0], 18 - data = JX.Stratcom.getData(diff); 19 - if(data.hidden) { 21 + data = JX.Stratcom.getData(diff), 22 + undo; 23 + if (data.hidden) { 20 24 data.hidden = false; 21 25 JX.DOM.show(diff); 26 + undo = JX.DOM.find(diff.parentNode, 27 + 'div', 28 + 'differential-collapse-undo-div'); 29 + JX.DOM.remove(undo); 22 30 } else { 23 31 data.hidden = true; 24 32 JX.DOM.hide(diff); 33 + undo = render_collapse_undo(); 34 + JX.DOM.listen(undo, 'click', 'differential-collapse-undo', function(e) { 35 + e.kill(); 36 + data.hidden = false; 37 + JX.DOM.show(diff); 38 + JX.DOM.remove(undo); 39 + }); 40 + JX.DOM.appendContent(diff.parentNode, undo); 25 41 } 26 42 JX.Stratcom.invoke('differential-toggle-file-toggled'); 27 43 }); ··· 92 108 // automatically jump there like we want. 93 109 JX.DOM.scrollTo(target); 94 110 } 95 - }); 111 + }); 112 + 113 + var render_collapse_undo = function() { 114 + var link = JX.$N( 115 + 'a', 116 + {href: '#', sigil: 'differential-collapse-undo'}, 117 + pht('undo')); 118 + 119 + return JX.$N( 120 + 'div', 121 + {className: 'differential-collapse-undo', 122 + sigil: 'differential-collapse-undo-div'}, 123 + [pht('collapsed'), ' ', link]); 124 + }; 125 + 96 126 });