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

Add header icons to PHUIPropertyListView

Summary: Adds summary (description) and test plan icons to make these area's more unique and differentiated over general sections.

Test Plan: Test a diff, a commit, a task

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: Korvin, epriestley, aran

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

+144 -96
+10
resources/sprite/manifest/status.json
··· 246 246 "rule" : ".status-open-white", 247 247 "hash" : "169dc0e8f36444ea30163181f9c88dc2" 248 248 }, 249 + "status-pl-summary" : { 250 + "name" : "status-pl-summary", 251 + "rule" : ".status-pl-summary", 252 + "hash" : "0abd0eab8617fb88f9b8f4d2f00e17b8" 253 + }, 254 + "status-pl-testplan" : { 255 + "name" : "status-pl-testplan", 256 + "rule" : ".status-pl-testplan", 257 + "hash" : "03dbb3c53bfddfb553d49c6f27a76765" 258 + }, 249 259 "status-policy-admin" : { 250 260 "name" : "status-policy-admin", 251 261 "rule" : ".status-policy-admin",
resources/sprite/status_1x/pl-summary.png

This is a binary file and will not be displayed.

resources/sprite/status_1x/pl-testplan.png

This is a binary file and will not be displayed.

resources/sprite/status_2x/pl-summary.png

This is a binary file and will not be displayed.

resources/sprite/status_2x/pl-testplan.png

This is a binary file and will not be displayed.

+51 -51
src/__celerity_resource_map__.php
··· 716 716 ), 717 717 '/rsrc/image/sprite-status-X2.png' => 718 718 array( 719 - 'hash' => '2d2f0ae88ee9397faab05d4898106b73', 720 - 'uri' => '/res/2d2f0ae8/rsrc/image/sprite-status-X2.png', 719 + 'hash' => 'bb0d9cc2fec8e852c69790cbb626c6b1', 720 + 'uri' => '/res/bb0d9cc2/rsrc/image/sprite-status-X2.png', 721 721 'disk' => '/rsrc/image/sprite-status-X2.png', 722 722 'type' => 'png', 723 723 ), 724 724 '/rsrc/image/sprite-status.png' => 725 725 array( 726 - 'hash' => '63be108f9a82f29126d35929ee1384a4', 727 - 'uri' => '/res/63be108f/rsrc/image/sprite-status.png', 726 + 'hash' => 'b78e998cb34964052b17a8777651ecbd', 727 + 'uri' => '/res/b78e998c/rsrc/image/sprite-status.png', 728 728 'disk' => '/rsrc/image/sprite-status.png', 729 729 'type' => 'png', 730 730 ), ··· 3933 3933 ), 3934 3934 'phui-property-list-view-css' => 3935 3935 array( 3936 - 'uri' => '/res/68275e2c/rsrc/css/phui/phui-property-list-view.css', 3936 + 'uri' => '/res/e1e6674b/rsrc/css/phui/phui-property-list-view.css', 3937 3937 'type' => 'css', 3938 3938 'requires' => 3939 3939 array( ··· 4284 4284 ), 4285 4285 'sprite-status-css' => 4286 4286 array( 4287 - 'uri' => '/res/b95c6a1c/rsrc/css/sprite-status.css', 4287 + 'uri' => '/res/f08fd1e1/rsrc/css/sprite-status.css', 4288 4288 'type' => 'css', 4289 4289 'requires' => 4290 4290 array( ··· 4321 4321 ), array( 4322 4322 'packages' => 4323 4323 array( 4324 - 'ef078368' => 4324 + 'cbf6df8c' => 4325 4325 array( 4326 4326 'name' => 'core.pkg.css', 4327 4327 'symbols' => ··· 4370 4370 41 => 'phabricator-tag-view-css', 4371 4371 42 => 'phui-list-view-css', 4372 4372 ), 4373 - 'uri' => '/res/pkg/ef078368/core.pkg.css', 4373 + 'uri' => '/res/pkg/cbf6df8c/core.pkg.css', 4374 4374 'type' => 'css', 4375 4375 ), 4376 4376 '2c1dba03' => ··· 4562 4562 ), 4563 4563 'reverse' => 4564 4564 array( 4565 - 'aphront-dialog-view-css' => 'ef078368', 4566 - 'aphront-error-view-css' => 'ef078368', 4567 - 'aphront-list-filter-view-css' => 'ef078368', 4568 - 'aphront-pager-view-css' => 'ef078368', 4569 - 'aphront-panel-view-css' => 'ef078368', 4570 - 'aphront-table-view-css' => 'ef078368', 4571 - 'aphront-tokenizer-control-css' => 'ef078368', 4572 - 'aphront-tooltip-css' => 'ef078368', 4573 - 'aphront-typeahead-control-css' => 'ef078368', 4565 + 'aphront-dialog-view-css' => 'cbf6df8c', 4566 + 'aphront-error-view-css' => 'cbf6df8c', 4567 + 'aphront-list-filter-view-css' => 'cbf6df8c', 4568 + 'aphront-pager-view-css' => 'cbf6df8c', 4569 + 'aphront-panel-view-css' => 'cbf6df8c', 4570 + 'aphront-table-view-css' => 'cbf6df8c', 4571 + 'aphront-tokenizer-control-css' => 'cbf6df8c', 4572 + 'aphront-tooltip-css' => 'cbf6df8c', 4573 + 'aphront-typeahead-control-css' => 'cbf6df8c', 4574 4574 'differential-changeset-view-css' => '1084b12b', 4575 4575 'differential-core-view-css' => '1084b12b', 4576 4576 'differential-inline-comment-editor' => '5e9e5c4e', ··· 4584 4584 'differential-table-of-contents-css' => '1084b12b', 4585 4585 'diffusion-commit-view-css' => '7aa115b4', 4586 4586 'diffusion-icons-css' => '7aa115b4', 4587 - 'global-drag-and-drop-css' => 'ef078368', 4587 + 'global-drag-and-drop-css' => 'cbf6df8c', 4588 4588 'inline-comment-summary-css' => '1084b12b', 4589 4589 'javelin-aphlict' => '2c1dba03', 4590 4590 'javelin-behavior' => '3e3be199', ··· 4659 4659 'javelin-util' => '3e3be199', 4660 4660 'javelin-vector' => '3e3be199', 4661 4661 'javelin-workflow' => '3e3be199', 4662 - 'lightbox-attachment-css' => 'ef078368', 4662 + 'lightbox-attachment-css' => 'cbf6df8c', 4663 4663 'maniphest-task-summary-css' => '49898640', 4664 - 'phabricator-action-list-view-css' => 'ef078368', 4665 - 'phabricator-application-launch-view-css' => 'ef078368', 4664 + 'phabricator-action-list-view-css' => 'cbf6df8c', 4665 + 'phabricator-application-launch-view-css' => 'cbf6df8c', 4666 4666 'phabricator-busy' => '2c1dba03', 4667 4667 'phabricator-content-source-view-css' => '1084b12b', 4668 - 'phabricator-core-css' => 'ef078368', 4669 - 'phabricator-crumbs-view-css' => 'ef078368', 4668 + 'phabricator-core-css' => 'cbf6df8c', 4669 + 'phabricator-crumbs-view-css' => 'cbf6df8c', 4670 4670 'phabricator-drag-and-drop-file-upload' => '5e9e5c4e', 4671 4671 'phabricator-dropdown-menu' => '2c1dba03', 4672 4672 'phabricator-file-upload' => '2c1dba03', 4673 - 'phabricator-filetree-view-css' => 'ef078368', 4674 - 'phabricator-flag-css' => 'ef078368', 4673 + 'phabricator-filetree-view-css' => 'cbf6df8c', 4674 + 'phabricator-flag-css' => 'cbf6df8c', 4675 4675 'phabricator-hovercard' => '2c1dba03', 4676 - 'phabricator-jump-nav' => 'ef078368', 4676 + 'phabricator-jump-nav' => 'cbf6df8c', 4677 4677 'phabricator-keyboard-shortcut' => '2c1dba03', 4678 4678 'phabricator-keyboard-shortcut-manager' => '2c1dba03', 4679 - 'phabricator-main-menu-view' => 'ef078368', 4679 + 'phabricator-main-menu-view' => 'cbf6df8c', 4680 4680 'phabricator-menu-item' => '2c1dba03', 4681 - 'phabricator-nav-view-css' => 'ef078368', 4681 + 'phabricator-nav-view-css' => 'cbf6df8c', 4682 4682 'phabricator-notification' => '2c1dba03', 4683 - 'phabricator-notification-css' => 'ef078368', 4684 - 'phabricator-notification-menu-css' => 'ef078368', 4683 + 'phabricator-notification-css' => 'cbf6df8c', 4684 + 'phabricator-notification-menu-css' => 'cbf6df8c', 4685 4685 'phabricator-object-selector-css' => '1084b12b', 4686 4686 'phabricator-phtize' => '2c1dba03', 4687 4687 'phabricator-prefab' => '2c1dba03', 4688 4688 'phabricator-project-tag-css' => '49898640', 4689 - 'phabricator-remarkup-css' => 'ef078368', 4689 + 'phabricator-remarkup-css' => 'cbf6df8c', 4690 4690 'phabricator-shaped-request' => '5e9e5c4e', 4691 - 'phabricator-side-menu-view-css' => 'ef078368', 4692 - 'phabricator-standard-page-view' => 'ef078368', 4693 - 'phabricator-tag-view-css' => 'ef078368', 4691 + 'phabricator-side-menu-view-css' => 'cbf6df8c', 4692 + 'phabricator-standard-page-view' => 'cbf6df8c', 4693 + 'phabricator-tag-view-css' => 'cbf6df8c', 4694 4694 'phabricator-textareautils' => '2c1dba03', 4695 4695 'phabricator-tooltip' => '2c1dba03', 4696 - 'phabricator-transaction-view-css' => 'ef078368', 4697 - 'phabricator-zindex-css' => 'ef078368', 4698 - 'phui-button-css' => 'ef078368', 4699 - 'phui-form-css' => 'ef078368', 4700 - 'phui-form-view-css' => 'ef078368', 4701 - 'phui-header-view-css' => 'ef078368', 4702 - 'phui-icon-view-css' => 'ef078368', 4703 - 'phui-list-view-css' => 'ef078368', 4704 - 'phui-object-item-list-view-css' => 'ef078368', 4705 - 'phui-property-list-view-css' => 'ef078368', 4706 - 'phui-spacing-css' => 'ef078368', 4707 - 'sprite-apps-large-css' => 'ef078368', 4708 - 'sprite-gradient-css' => 'ef078368', 4709 - 'sprite-icons-css' => 'ef078368', 4710 - 'sprite-menu-css' => 'ef078368', 4711 - 'sprite-status-css' => 'ef078368', 4712 - 'syntax-highlighting-css' => 'ef078368', 4696 + 'phabricator-transaction-view-css' => 'cbf6df8c', 4697 + 'phabricator-zindex-css' => 'cbf6df8c', 4698 + 'phui-button-css' => 'cbf6df8c', 4699 + 'phui-form-css' => 'cbf6df8c', 4700 + 'phui-form-view-css' => 'cbf6df8c', 4701 + 'phui-header-view-css' => 'cbf6df8c', 4702 + 'phui-icon-view-css' => 'cbf6df8c', 4703 + 'phui-list-view-css' => 'cbf6df8c', 4704 + 'phui-object-item-list-view-css' => 'cbf6df8c', 4705 + 'phui-property-list-view-css' => 'cbf6df8c', 4706 + 'phui-spacing-css' => 'cbf6df8c', 4707 + 'sprite-apps-large-css' => 'cbf6df8c', 4708 + 'sprite-gradient-css' => 'cbf6df8c', 4709 + 'sprite-icons-css' => 'cbf6df8c', 4710 + 'sprite-menu-css' => 'cbf6df8c', 4711 + 'sprite-status-css' => 'cbf6df8c', 4712 + 'syntax-highlighting-css' => 'cbf6df8c', 4713 4713 ), 4714 4714 ));
+6 -2
src/applications/differential/view/DifferentialRevisionDetailView.php
··· 115 115 $properties->invokeWillRenderEvent(); 116 116 117 117 if (strlen($revision->getSummary())) { 118 - $properties->addSectionHeader(pht('Summary')); 118 + $properties->addSectionHeader( 119 + pht('Summary'), 120 + PHUIPropertyListView::ICON_SUMMARY); 119 121 $properties->addTextContent( 120 122 PhabricatorMarkupEngine::renderOneObject( 121 123 id(new PhabricatorMarkupOneOff()) ··· 126 128 } 127 129 128 130 if (strlen($revision->getTestPlan())) { 129 - $properties->addSectionHeader(pht('Test Plan')); 131 + $properties->addSectionHeader( 132 + pht('Test Plan'), 133 + PHUIPropertyListView::ICON_TESTPLAN); 130 134 $properties->addTextContent( 131 135 PhabricatorMarkupEngine::renderOneObject( 132 136 id(new PhabricatorMarkupOneOff())
+3 -1
src/applications/diffusion/controller/DiffusionCommitController.php
··· 131 131 $property_list->setActionList($headsup_actions); 132 132 133 133 $detail_list = new PHUIPropertyListView(); 134 - $detail_list->addSectionHeader(pht('Description')); 134 + $detail_list->addSectionHeader( 135 + pht('Description'), 136 + PHUIPropertyListView::ICON_SUMMARY); 135 137 $detail_list->addTextContent( 136 138 phutil_tag( 137 139 'div',
+3 -1
src/applications/maniphest/controller/ManiphestTaskDetailController.php
··· 648 648 $section = null; 649 649 if (strlen($task->getDescription())) { 650 650 $section = new PHUIPropertyListView(); 651 - $section->addSectionHeader(pht('Description')); 651 + $section->addSectionHeader( 652 + pht('Description'), 653 + PHUIPropertyListView::ICON_SUMMARY); 652 654 $section->addTextContent( 653 655 phutil_tag( 654 656 'div',
+19 -2
src/view/phui/PHUIPropertyListView.php
··· 9 9 private $actionList; 10 10 private $classes = array(); 11 11 12 + const ICON_SUMMARY = 'pl-summary'; 13 + const ICON_TESTPLAN = 'pl-testplan'; 14 + 12 15 protected function canAppendChild() { 13 16 return false; 14 17 } ··· 55 58 return $this; 56 59 } 57 60 58 - public function addSectionHeader($name) { 61 + public function addSectionHeader($name, $icon=null) { 59 62 $this->parts[] = array( 60 63 'type' => 'section', 61 64 'name' => $name, 65 + 'icon' => $icon, 62 66 ); 63 67 return $this; 64 68 } ··· 193 197 } 194 198 195 199 private function renderSectionPart(array $part) { 200 + $name = $part['name']; 201 + if ($part['icon']) { 202 + $icon = id(new PHUIIconView()) 203 + ->setSpriteSheet(PHUIIconView::SPRITE_STATUS) 204 + ->setSpriteIcon($part['icon']); 205 + $name = phutil_tag( 206 + 'span', 207 + array( 208 + 'class' => 'phui-property-list-section-header-icon', 209 + ), 210 + array($icon, $name)); 211 + } 212 + 196 213 return phutil_tag( 197 214 'div', 198 215 array( 199 216 'class' => 'phui-property-list-section-header', 200 217 ), 201 - $part['name']); 218 + $name); 202 219 } 203 220 204 221 private function renderTextPart(array $part) {
+5
webroot/rsrc/css/phui/phui-property-list-view.css
··· 94 94 padding-left: 8px; 95 95 } 96 96 97 + .phui-property-list-section-header-icon .sprite-status { 98 + display: inline-block; 99 + margin: -2px 4px -2px 0; 100 + } 101 + 97 102 .phui-property-list-text-content { 98 103 padding: 12px 16px; 99 104 background: #fff;
+47 -39
webroot/rsrc/css/sprite-status.css
··· 214 214 background-position: -120px -60px; 215 215 } 216 216 217 - .status-policy-admin-white, .dropdown-menu-item:hover .status-policy-admin { 217 + .status-pl-summary { 218 218 background-position: -135px -60px; 219 219 } 220 220 221 - .status-policy-admin { 221 + .status-pl-testplan { 222 222 background-position: 0px -75px; 223 223 } 224 224 225 - .status-policy-all-white, .dropdown-menu-item:hover .status-policy-all { 225 + .status-policy-admin-white, .dropdown-menu-item:hover .status-policy-admin { 226 226 background-position: -15px -75px; 227 227 } 228 228 229 - .status-policy-all { 229 + .status-policy-admin { 230 230 background-position: -30px -75px; 231 231 } 232 232 233 - .status-policy-custom-white, .dropdown-menu-item:hover .status-policy-custom { 233 + .status-policy-all-white, .dropdown-menu-item:hover .status-policy-all { 234 234 background-position: -45px -75px; 235 235 } 236 236 237 - .status-policy-custom { 237 + .status-policy-all { 238 238 background-position: -60px -75px; 239 239 } 240 240 241 - .status-policy-noone-white, .dropdown-menu-item:hover .status-policy-noone { 241 + .status-policy-custom-white, .dropdown-menu-item:hover .status-policy-custom { 242 242 background-position: -75px -75px; 243 243 } 244 244 245 - .status-policy-noone { 245 + .status-policy-custom { 246 246 background-position: -90px -75px; 247 247 } 248 248 249 - .status-policy-project-white, .dropdown-menu-item:hover .status-policy-project { 249 + .status-policy-noone-white, .dropdown-menu-item:hover .status-policy-noone { 250 250 background-position: -105px -75px; 251 251 } 252 252 253 - .status-policy-project { 253 + .status-policy-noone { 254 254 background-position: -120px -75px; 255 255 } 256 256 257 - .status-policy-public-white, .dropdown-menu-item:hover .status-policy-public { 257 + .status-policy-project-white, .dropdown-menu-item:hover .status-policy-project { 258 258 background-position: -135px -75px; 259 259 } 260 260 261 - .status-policy-public { 261 + .status-policy-project { 262 262 background-position: 0px -90px; 263 263 } 264 264 265 - .status-policy-unknown-white, .dropdown-menu-item:hover .status-policy-unknown { 265 + .status-policy-public-white, .dropdown-menu-item:hover .status-policy-public { 266 266 background-position: -15px -90px; 267 267 } 268 268 269 - .status-policy-unknown { 269 + .status-policy-public { 270 270 background-position: -30px -90px; 271 271 } 272 272 273 - .status-question-blue { 273 + .status-policy-unknown-white, .dropdown-menu-item:hover .status-policy-unknown { 274 274 background-position: -45px -90px; 275 275 } 276 276 277 - .status-question-dark { 277 + .status-policy-unknown { 278 278 background-position: -60px -90px; 279 279 } 280 280 281 - .status-question-green { 281 + .status-question-blue { 282 282 background-position: -75px -90px; 283 283 } 284 284 285 - .status-question-red { 285 + .status-question-dark { 286 286 background-position: -90px -90px; 287 287 } 288 288 289 - .status-question-white { 289 + .status-question-green { 290 290 background-position: -105px -90px; 291 291 } 292 292 293 - .status-question { 293 + .status-question-red { 294 294 background-position: -120px -90px; 295 295 } 296 296 297 - .status-reject-blue { 297 + .status-question-white { 298 298 background-position: -135px -90px; 299 299 } 300 300 301 - .status-reject-dark { 301 + .status-question { 302 302 background-position: 0px -105px; 303 303 } 304 304 305 - .status-reject-green { 305 + .status-reject-blue { 306 306 background-position: -15px -105px; 307 307 } 308 308 309 - .status-reject-red { 309 + .status-reject-dark { 310 310 background-position: -30px -105px; 311 311 } 312 312 313 - .status-reject-white { 313 + .status-reject-green { 314 314 background-position: -45px -105px; 315 315 } 316 316 317 - .status-reject { 317 + .status-reject-red { 318 318 background-position: -60px -105px; 319 319 } 320 320 321 - .status-right-blue { 321 + .status-reject-white { 322 322 background-position: -75px -105px; 323 323 } 324 324 325 + .status-reject { 326 + background-position: -90px -105px; 327 + } 328 + 329 + .status-right-blue { 330 + background-position: -105px -105px; 331 + } 332 + 325 333 .status-right-dark { 326 - background-position: -90px -105px; 334 + background-position: -120px -105px; 327 335 } 328 336 329 337 .status-right-green { 330 - background-position: -105px -105px; 338 + background-position: -135px -105px; 331 339 } 332 340 333 341 .status-right-red { 334 - background-position: -120px -105px; 342 + background-position: 0px -120px; 335 343 } 336 344 337 345 .status-right-white { 338 - background-position: 0px -120px; 346 + background-position: -15px -120px; 339 347 } 340 348 341 349 .status-right { 342 - background-position: -15px -120px; 350 + background-position: -30px -120px; 343 351 } 344 352 345 353 .status-time-green { 346 - background-position: -30px -120px; 354 + background-position: -45px -120px; 347 355 } 348 356 349 357 .status-time-orange { 350 - background-position: -45px -120px; 358 + background-position: -60px -120px; 351 359 } 352 360 353 361 .status-time-red { 354 - background-position: -60px -120px; 362 + background-position: -75px -120px; 355 363 } 356 364 357 365 .status-time-yellow { 358 - background-position: -75px -120px; 366 + background-position: -90px -120px; 359 367 } 360 368 361 369 .status-up-blue { 362 - background-position: -90px -120px; 370 + background-position: -105px -120px; 363 371 } 364 372 365 373 .status-up-dark { 366 - background-position: -105px -120px; 374 + background-position: -120px -120px; 367 375 } 368 376 369 377 .status-up-green { 370 - background-position: -120px -120px; 378 + background-position: -135px -120px; 371 379 } 372 380 373 381 .status-up-red {
webroot/rsrc/image/sprite-status-X2.png

This is a binary file and will not be displayed.

webroot/rsrc/image/sprite-status.png

This is a binary file and will not be displayed.