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

Dark sidebar everywhere

Summary:
First pass at testing out a dark sidebar everywhere. Wanting feedback with real test time before implementing before commiting.

Thoughts
- Aligns with Mobile, Tablet UI experience.
- Creates 'application' feel on Desktop.
- Begins to make Phabricator feel like a branded UI.

Cons
- Probably contensious visually.

TODO:
- Update diff view sidebar.
- Make breadcrumbs appear above content area, not above nav.
- Change background texture on crumbs to match table headers.

Test Plan: Testing Nav with fellow co-workers.

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: aran, Korvin

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

+122 -97
+90 -69
src/__celerity_resource_map__.php
··· 455 455 'disk' => '/rsrc/image/main_texture.png', 456 456 'type' => 'png', 457 457 ), 458 + '/rsrc/image/menu_hover.png' => 459 + array( 460 + 'hash' => 'af6ffd9df454413d99dbc2bbc7c10e4d', 461 + 'uri' => '/res/af6ffd9d/rsrc/image/menu_hover.png', 462 + 'disk' => '/rsrc/image/menu_hover.png', 463 + 'type' => 'png', 464 + ), 465 + '/rsrc/image/menu_label.png' => 466 + array( 467 + 'hash' => 'bbdd2eef829f619ffa6f83c864727b42', 468 + 'uri' => '/res/bbdd2eef/rsrc/image/menu_label.png', 469 + 'disk' => '/rsrc/image/menu_label.png', 470 + 'type' => 'png', 471 + ), 472 + '/rsrc/image/menu_selected.png' => 473 + array( 474 + 'hash' => '6845ed0fa531cbf2ac8ff516a8c48697', 475 + 'uri' => '/res/6845ed0f/rsrc/image/menu_selected.png', 476 + 'disk' => '/rsrc/image/menu_selected.png', 477 + 'type' => 'png', 478 + ), 458 479 '/rsrc/image/menu_texture.png' => 459 480 array( 460 - 'hash' => '42193f24a52bd94be596c442d59a68ce', 461 - 'uri' => '/res/42193f24/rsrc/image/menu_texture.png', 481 + 'hash' => 'ad020b1529b3a3b3480ca9de1d5f1e40', 482 + 'uri' => '/res/ad020b15/rsrc/image/menu_texture.png', 462 483 'disk' => '/rsrc/image/menu_texture.png', 463 484 'type' => 'png', 464 485 ), ··· 1252 1273 ), 1253 1274 'javelin-behavior-differential-show-more' => 1254 1275 array( 1255 - 'uri' => '/res/88115daf/rsrc/js/application/differential/behavior-show-more.js', 1276 + 'uri' => '/res/b9f93090/rsrc/js/application/differential/behavior-show-more.js', 1256 1277 'type' => 'js', 1257 1278 'requires' => 1258 1279 array( ··· 2551 2572 ), 2552 2573 'phabricator-filetree-view-css' => 2553 2574 array( 2554 - 'uri' => '/res/d05c5c2b/rsrc/css/layout/phabricator-filetree-view.css', 2575 + 'uri' => '/res/0a9576e0/rsrc/css/layout/phabricator-filetree-view.css', 2555 2576 'type' => 'css', 2556 2577 'requires' => 2557 2578 array( ··· 2622 2643 ), 2623 2644 'phabricator-main-menu-view' => 2624 2645 array( 2625 - 'uri' => '/res/51372302/rsrc/css/application/base/main-menu-view.css', 2646 + 'uri' => '/res/5c89ac89/rsrc/css/application/base/main-menu-view.css', 2626 2647 'type' => 'css', 2627 2648 'requires' => 2628 2649 array( ··· 2642 2663 ), 2643 2664 'phabricator-nav-view-css' => 2644 2665 array( 2645 - 'uri' => '/res/437241a5/rsrc/css/aphront/phabricator-nav-view.css', 2666 + 'uri' => '/res/f29594ae/rsrc/css/aphront/phabricator-nav-view.css', 2646 2667 'type' => 'css', 2647 2668 'requires' => 2648 2669 array( ··· 2819 2840 ), 2820 2841 'phabricator-side-menu-view-css' => 2821 2842 array( 2822 - 'uri' => '/res/9453a468/rsrc/css/layout/phabricator-side-menu-view.css', 2843 + 'uri' => '/res/dec8c6c3/rsrc/css/layout/phabricator-side-menu-view.css', 2823 2844 'type' => 'css', 2824 2845 'requires' => 2825 2846 array( ··· 3246 3267 ), array( 3247 3268 'packages' => 3248 3269 array( 3249 - '8b2ff76d' => 3270 + '2fc52778' => 3250 3271 array( 3251 3272 'name' => 'core.pkg.css', 3252 3273 'symbols' => ··· 3291 3312 37 => 'phabricator-object-item-list-view-css', 3292 3313 38 => 'global-drag-and-drop-css', 3293 3314 ), 3294 - 'uri' => '/res/pkg/8b2ff76d/core.pkg.css', 3315 + 'uri' => '/res/pkg/2fc52778/core.pkg.css', 3295 3316 'type' => 'css', 3296 3317 ), 3297 3318 '2921e259' => ··· 3370 3391 'uri' => '/res/pkg/20933a11/differential.pkg.css', 3371 3392 'type' => 'css', 3372 3393 ), 3373 - '76556a8f' => 3394 + '03d02cfa' => 3374 3395 array( 3375 3396 'name' => 'differential.pkg.js', 3376 3397 'symbols' => ··· 3395 3416 17 => 'javelin-behavior-differential-toggle-files', 3396 3417 18 => 'javelin-behavior-differential-user-select', 3397 3418 ), 3398 - 'uri' => '/res/pkg/76556a8f/differential.pkg.js', 3419 + 'uri' => '/res/pkg/03d02cfa/differential.pkg.js', 3399 3420 'type' => 'js', 3400 3421 ), 3401 3422 'c8ce2d88' => ··· 3480 3501 'reverse' => 3481 3502 array( 3482 3503 'aphront-attached-file-view-css' => 'ac211174', 3483 - 'aphront-crumbs-view-css' => '8b2ff76d', 3484 - 'aphront-dialog-view-css' => '8b2ff76d', 3485 - 'aphront-error-view-css' => '8b2ff76d', 3486 - 'aphront-form-view-css' => '8b2ff76d', 3504 + 'aphront-crumbs-view-css' => '2fc52778', 3505 + 'aphront-dialog-view-css' => '2fc52778', 3506 + 'aphront-error-view-css' => '2fc52778', 3507 + 'aphront-form-view-css' => '2fc52778', 3487 3508 'aphront-headsup-action-list-view-css' => '20933a11', 3488 - 'aphront-headsup-view-css' => '8b2ff76d', 3489 - 'aphront-list-filter-view-css' => '8b2ff76d', 3490 - 'aphront-pager-view-css' => '8b2ff76d', 3491 - 'aphront-panel-view-css' => '8b2ff76d', 3492 - 'aphront-table-view-css' => '8b2ff76d', 3493 - 'aphront-tokenizer-control-css' => '8b2ff76d', 3494 - 'aphront-tooltip-css' => '8b2ff76d', 3495 - 'aphront-typeahead-control-css' => '8b2ff76d', 3509 + 'aphront-headsup-view-css' => '2fc52778', 3510 + 'aphront-list-filter-view-css' => '2fc52778', 3511 + 'aphront-pager-view-css' => '2fc52778', 3512 + 'aphront-panel-view-css' => '2fc52778', 3513 + 'aphront-table-view-css' => '2fc52778', 3514 + 'aphront-tokenizer-control-css' => '2fc52778', 3515 + 'aphront-tooltip-css' => '2fc52778', 3516 + 'aphront-typeahead-control-css' => '2fc52778', 3496 3517 'differential-changeset-view-css' => '20933a11', 3497 3518 'differential-core-view-css' => '20933a11', 3498 - 'differential-inline-comment-editor' => '76556a8f', 3519 + 'differential-inline-comment-editor' => '03d02cfa', 3499 3520 'differential-local-commits-view-css' => '20933a11', 3500 3521 'differential-results-table-css' => '20933a11', 3501 3522 'differential-revision-add-comment-css' => '20933a11', ··· 3506 3527 'differential-table-of-contents-css' => '20933a11', 3507 3528 'diffusion-commit-view-css' => 'c8ce2d88', 3508 3529 'diffusion-icons-css' => 'c8ce2d88', 3509 - 'global-drag-and-drop-css' => '8b2ff76d', 3530 + 'global-drag-and-drop-css' => '2fc52778', 3510 3531 'inline-comment-summary-css' => '20933a11', 3511 3532 'javelin-aphlict' => '2921e259', 3512 3533 'javelin-behavior' => 'fbeded59', 3513 3534 'javelin-behavior-aphlict-dropdown' => '2921e259', 3514 3535 'javelin-behavior-aphlict-listen' => '2921e259', 3515 3536 'javelin-behavior-aphront-basic-tokenizer' => '2921e259', 3516 - 'javelin-behavior-aphront-drag-and-drop' => '76556a8f', 3517 - 'javelin-behavior-aphront-drag-and-drop-textarea' => '76556a8f', 3537 + 'javelin-behavior-aphront-drag-and-drop' => '03d02cfa', 3538 + 'javelin-behavior-aphront-drag-and-drop-textarea' => '03d02cfa', 3518 3539 'javelin-behavior-aphront-form-disable-on-submit' => '2921e259', 3519 3540 'javelin-behavior-audit-preview' => 'f96657b8', 3520 3541 'javelin-behavior-dark-console' => '8edbada5', 3521 3542 'javelin-behavior-dark-console-ajax' => '8edbada5', 3522 3543 'javelin-behavior-device' => '2921e259', 3523 - 'javelin-behavior-differential-accept-with-errors' => '76556a8f', 3524 - 'javelin-behavior-differential-add-reviewers-and-ccs' => '76556a8f', 3525 - 'javelin-behavior-differential-comment-jump' => '76556a8f', 3526 - 'javelin-behavior-differential-diff-radios' => '76556a8f', 3527 - 'javelin-behavior-differential-dropdown-menus' => '76556a8f', 3528 - 'javelin-behavior-differential-edit-inline-comments' => '76556a8f', 3529 - 'javelin-behavior-differential-feedback-preview' => '76556a8f', 3530 - 'javelin-behavior-differential-keyboard-navigation' => '76556a8f', 3531 - 'javelin-behavior-differential-populate' => '76556a8f', 3532 - 'javelin-behavior-differential-show-more' => '76556a8f', 3533 - 'javelin-behavior-differential-toggle-files' => '76556a8f', 3534 - 'javelin-behavior-differential-user-select' => '76556a8f', 3544 + 'javelin-behavior-differential-accept-with-errors' => '03d02cfa', 3545 + 'javelin-behavior-differential-add-reviewers-and-ccs' => '03d02cfa', 3546 + 'javelin-behavior-differential-comment-jump' => '03d02cfa', 3547 + 'javelin-behavior-differential-diff-radios' => '03d02cfa', 3548 + 'javelin-behavior-differential-dropdown-menus' => '03d02cfa', 3549 + 'javelin-behavior-differential-edit-inline-comments' => '03d02cfa', 3550 + 'javelin-behavior-differential-feedback-preview' => '03d02cfa', 3551 + 'javelin-behavior-differential-keyboard-navigation' => '03d02cfa', 3552 + 'javelin-behavior-differential-populate' => '03d02cfa', 3553 + 'javelin-behavior-differential-show-more' => '03d02cfa', 3554 + 'javelin-behavior-differential-toggle-files' => '03d02cfa', 3555 + 'javelin-behavior-differential-user-select' => '03d02cfa', 3535 3556 'javelin-behavior-diffusion-commit-graph' => 'f96657b8', 3536 3557 'javelin-behavior-diffusion-pull-lastmodified' => 'f96657b8', 3537 3558 'javelin-behavior-error-log' => '8edbada5', ··· 3547 3568 'javelin-behavior-phabricator-autofocus' => '2921e259', 3548 3569 'javelin-behavior-phabricator-keyboard-shortcuts' => '2921e259', 3549 3570 'javelin-behavior-phabricator-nav' => '2921e259', 3550 - 'javelin-behavior-phabricator-object-selector' => '76556a8f', 3571 + 'javelin-behavior-phabricator-object-selector' => '03d02cfa', 3551 3572 'javelin-behavior-phabricator-oncopy' => '2921e259', 3552 3573 'javelin-behavior-phabricator-remarkup-assist' => '2921e259', 3553 3574 'javelin-behavior-phabricator-search-typeahead' => '2921e259', 3554 3575 'javelin-behavior-phabricator-tooltips' => '2921e259', 3555 3576 'javelin-behavior-phabricator-watch-anchor' => '2921e259', 3556 3577 'javelin-behavior-refresh-csrf' => '2921e259', 3557 - 'javelin-behavior-repository-crossreference' => '76556a8f', 3578 + 'javelin-behavior-repository-crossreference' => '03d02cfa', 3558 3579 'javelin-behavior-toggle-class' => '2921e259', 3559 3580 'javelin-behavior-workflow' => '2921e259', 3560 3581 'javelin-dom' => 'fbeded59', ··· 3575 3596 'javelin-util' => 'fbeded59', 3576 3597 'javelin-vector' => 'fbeded59', 3577 3598 'javelin-workflow' => 'fbeded59', 3578 - 'lightbox-attachment-css' => '8b2ff76d', 3599 + 'lightbox-attachment-css' => '2fc52778', 3579 3600 'maniphest-task-summary-css' => 'ac211174', 3580 3601 'maniphest-transaction-detail-css' => 'ac211174', 3581 - 'phabricator-app-buttons-css' => '8b2ff76d', 3602 + 'phabricator-app-buttons-css' => '2fc52778', 3582 3603 'phabricator-busy' => '2921e259', 3583 3604 'phabricator-content-source-view-css' => '20933a11', 3584 - 'phabricator-core-buttons-css' => '8b2ff76d', 3585 - 'phabricator-core-css' => '8b2ff76d', 3586 - 'phabricator-crumbs-view-css' => '8b2ff76d', 3587 - 'phabricator-directory-css' => '8b2ff76d', 3588 - 'phabricator-drag-and-drop-file-upload' => '76556a8f', 3605 + 'phabricator-core-buttons-css' => '2fc52778', 3606 + 'phabricator-core-css' => '2fc52778', 3607 + 'phabricator-crumbs-view-css' => '2fc52778', 3608 + 'phabricator-directory-css' => '2fc52778', 3609 + 'phabricator-drag-and-drop-file-upload' => '03d02cfa', 3589 3610 'phabricator-dropdown-menu' => '2921e259', 3590 3611 'phabricator-file-upload' => '2921e259', 3591 - 'phabricator-filetree-view-css' => '8b2ff76d', 3592 - 'phabricator-flag-css' => '8b2ff76d', 3593 - 'phabricator-form-view-css' => '8b2ff76d', 3594 - 'phabricator-header-view-css' => '8b2ff76d', 3595 - 'phabricator-jump-nav' => '8b2ff76d', 3612 + 'phabricator-filetree-view-css' => '2fc52778', 3613 + 'phabricator-flag-css' => '2fc52778', 3614 + 'phabricator-form-view-css' => '2fc52778', 3615 + 'phabricator-header-view-css' => '2fc52778', 3616 + 'phabricator-jump-nav' => '2fc52778', 3596 3617 'phabricator-keyboard-shortcut' => '2921e259', 3597 3618 'phabricator-keyboard-shortcut-manager' => '2921e259', 3598 - 'phabricator-main-menu-view' => '8b2ff76d', 3619 + 'phabricator-main-menu-view' => '2fc52778', 3599 3620 'phabricator-menu-item' => '2921e259', 3600 - 'phabricator-nav-view-css' => '8b2ff76d', 3621 + 'phabricator-nav-view-css' => '2fc52778', 3601 3622 'phabricator-notification' => '2921e259', 3602 - 'phabricator-notification-css' => '8b2ff76d', 3603 - 'phabricator-notification-menu-css' => '8b2ff76d', 3604 - 'phabricator-object-item-list-view-css' => '8b2ff76d', 3623 + 'phabricator-notification-css' => '2fc52778', 3624 + 'phabricator-notification-menu-css' => '2fc52778', 3625 + 'phabricator-object-item-list-view-css' => '2fc52778', 3605 3626 'phabricator-object-selector-css' => '20933a11', 3606 3627 'phabricator-paste-file-upload' => '2921e259', 3607 3628 'phabricator-prefab' => '2921e259', 3608 3629 'phabricator-project-tag-css' => 'ac211174', 3609 - 'phabricator-remarkup-css' => '8b2ff76d', 3610 - 'phabricator-shaped-request' => '76556a8f', 3611 - 'phabricator-side-menu-view-css' => '8b2ff76d', 3612 - 'phabricator-standard-page-view' => '8b2ff76d', 3630 + 'phabricator-remarkup-css' => '2fc52778', 3631 + 'phabricator-shaped-request' => '03d02cfa', 3632 + 'phabricator-side-menu-view-css' => '2fc52778', 3633 + 'phabricator-standard-page-view' => '2fc52778', 3613 3634 'phabricator-textareautils' => '2921e259', 3614 3635 'phabricator-tooltip' => '2921e259', 3615 - 'phabricator-transaction-view-css' => '8b2ff76d', 3616 - 'phabricator-zindex-css' => '8b2ff76d', 3617 - 'sprite-apps-large-css' => '8b2ff76d', 3618 - 'sprite-gradient-css' => '8b2ff76d', 3619 - 'sprite-icon-css' => '8b2ff76d', 3620 - 'sprite-menu-css' => '8b2ff76d', 3621 - 'syntax-highlighting-css' => '8b2ff76d', 3636 + 'phabricator-transaction-view-css' => '2fc52778', 3637 + 'phabricator-zindex-css' => '2fc52778', 3638 + 'sprite-apps-large-css' => '2fc52778', 3639 + 'sprite-gradient-css' => '2fc52778', 3640 + 'sprite-icon-css' => '2fc52778', 3641 + 'sprite-menu-css' => '2fc52778', 3642 + 'syntax-highlighting-css' => '2fc52778', 3622 3643 ), 3623 3644 ));
+2 -5
src/applications/differential/view/DifferentialChangesetFileTreeSideNavBuilder.php
··· 38 38 $nav->setFlexible(true); 39 39 40 40 $anchor = $this->getAnchorName(); 41 - $nav->addFilter($anchor, $this->getTitle(), '#'.$anchor); 42 41 43 42 $tree = new PhutilFileTree(); 44 43 foreach ($changesets as $changeset) { ··· 121 120 '<div class="phabricator-filetree">'. 122 121 implode("\n", $filetree). 123 122 '</div>'; 124 - $nav->addFilter('toc', 'Table of Contents', '#toc'); 123 + $nav->addLabel('Changed Files'); 125 124 $nav->addCustomBlock($filetree); 126 - $nav->addFilter('comment', 'Add Comment', '#comment'); 127 125 $nav->setActive(true); 128 - $nav->selectFilter(''); 129 - 126 + $nav->selectFilter(null); 130 127 return $nav; 131 128 } 132 129
+4 -5
webroot/rsrc/css/aphront/phabricator-nav-view.css
··· 11 11 top: 0; 12 12 left: 0; 13 13 bottom: 0; 14 - width: 179px; 14 + width: 205px; 15 15 background: #ececec; 16 - border-right: 1px solid #999c9e; 17 16 box-shadow: inset -3px 0 4px rgba(0, 0, 0, 0.05); 18 17 background-image: url(/rsrc/image/menu_texture.png); 19 18 } ··· 31 30 } 32 31 33 32 .phabricator-nav-local { 34 - width: 179px; 33 + width: 205px; 35 34 position: absolute; 36 35 left: 0; 37 36 white-space: nowrap; ··· 44 43 position: fixed; 45 44 top: 0; 46 45 bottom: 0; 47 - left: 179px; 46 + left: 205px; 48 47 width: 7px; 49 48 50 49 cursor: col-resize; ··· 61 60 } 62 61 63 62 .device-desktop .has-local-nav .phabricator-nav-content { 64 - margin-left: 180px; 63 + margin-left: 205px; 65 64 } 66 65
+2 -2
webroot/rsrc/css/application/base/main-menu-view.css
··· 313 313 */ 314 314 315 315 .device .phabricator-dark-menu, 316 - .device .phabricator-dark-menu a.phabricator-menu-item-type-link{ 317 - color: #ffffff; 316 + .device .phabricator-dark-menu a.phabricator-menu-item-type-link { 317 + color: #fff; 318 318 } 319 319 320 320 .device .phabricator-dark-menu .phabricator-menu-item-view {
+10 -7
webroot/rsrc/css/layout/phabricator-filetree-view.css
··· 3 3 */ 4 4 5 5 .phabricator-filetree { 6 - background: #fcfcfc; 7 - border-style: solid; 8 - border-width: 1px 0; 9 - border-color: #a0a0a0; 10 6 padding: 4px 0; 11 7 } 12 8 ··· 40 36 41 37 .phabricator-filetree span.phabricator-filetree-item 42 38 .phabricator-filetree-name { 43 - color: #666666; 39 + color: #a0a0a0; 44 40 } 45 41 46 42 .phabricator-filetree a.phabricator-filetree-item 47 43 .phabricator-filetree-name { 48 - color: #3b5998; 44 + color: #fff; 45 + } 46 + 47 + .phabricator-filetree a.phabricator-filetree-item:hover { 48 + background-image: url(/rsrc/image/menu_hover.png); 49 + background-repeat: repeat-x; 50 + text-decoration: none; 49 51 } 50 52 51 53 .phabricator-filetree-icon-file { ··· 58 60 59 61 .phabricator-nav-local 60 62 a.phabricator-active-nav-focus { 61 - background: #9caccf; 63 + background-image: url(/rsrc/image/menu_selected.png); 64 + background-repeat: repeat-x; 62 65 }
+14 -9
webroot/rsrc/css/layout/phabricator-side-menu-view.css
··· 4 4 5 5 .phabricator-side-menu .phabricator-menu-item-view { 6 6 display: block; 7 - margin: 0 0 2px; 8 7 white-space: nowrap; 9 8 text-decoration: none; 10 - font-weight: bold; 11 9 font-size: 13px; 12 10 } 13 11 14 12 .phabricator-side-menu .phabricator-menu-item-type-link { 15 - padding: 3px 8px 3px 24px; 13 + padding: 6px 8px 6px 24px; 14 + color: #fff; 15 + text-shadow: rgba(0, 0, 0, 1) 0px -1px 1px; 16 16 } 17 17 18 18 .phabricator-side-menu .phabricator-menu-item-type-label { 19 - padding: 6px 8px 3px 12px; 20 - color: #333333; 19 + padding: 6px 8px 4px 12px; 20 + color: #fff; 21 21 text-transform: uppercase; 22 - font-size: 11px; 22 + font-size: 12px; 23 + font-weight: bold; 24 + border-style: solid; 25 + background-image: url(/rsrc/image/menu_label.png); 26 + background-repeat: repeat-x; 23 27 } 24 28 25 29 .phabricator-side-menu .phabricator-menu-item-type-spacer { ··· 28 32 29 33 .device-desktop .phabricator-side-menu a.phabricator-menu-item-type-link:hover { 30 34 text-decoration: none; 31 - /* TODO: Swap this back to #e7e7e7? */ 32 - background: #a1bbe5; 35 + background-image: url(/rsrc/image/menu_hover.png); 36 + background-repeat: repeat-x; 33 37 } 34 38 35 39 .phabricator-side-menu .phabricator-menu-item-selected, 36 40 .device-desktop .phabricator-side-menu a.phabricator-menu-item-selected:hover { 37 - background: #d7d7d7; 41 + background-image: url(/rsrc/image/menu_selected.png); 42 + background-repeat: repeat-x; 38 43 }
webroot/rsrc/image/menu_hover.png

This is a binary file and will not be displayed.

webroot/rsrc/image/menu_label.png

This is a binary file and will not be displayed.

webroot/rsrc/image/menu_selected.png

This is a binary file and will not be displayed.

webroot/rsrc/image/menu_texture.png

This is a binary file and will not be displayed.