@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 Login icons to PHUIIconView.

Summary: Prepping to use.

Test Plan: UIExamples

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

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

+146 -109
+45 -45
resources/sprite/manifest/login.json
··· 1 1 { 2 2 "version" : 1, 3 3 "sprites" : { 4 - "login_Amazon" : { 5 - "name" : "login_Amazon", 6 - "rule" : ".login_Amazon", 4 + "login-Amazon" : { 5 + "name" : "login-Amazon", 6 + "rule" : ".login-Amazon", 7 7 "hash" : "5961e41c525ef46c88558616fcf23272" 8 8 }, 9 - "login_Asana" : { 10 - "name" : "login_Asana", 11 - "rule" : ".login_Asana", 9 + "login-Asana" : { 10 + "name" : "login-Asana", 11 + "rule" : ".login-Asana", 12 12 "hash" : "30df492eab339fa64c9ae9b21bb46a18" 13 13 }, 14 - "login_Disqus" : { 15 - "name" : "login_Disqus", 16 - "rule" : ".login_Disqus", 14 + "login-Disqus" : { 15 + "name" : "login-Disqus", 16 + "rule" : ".login-Disqus", 17 17 "hash" : "5f46ac50a5d9d13245971c298f49e13b" 18 18 }, 19 - "login_Dropbox" : { 20 - "name" : "login_Dropbox", 21 - "rule" : ".login_Dropbox", 19 + "login-Dropbox" : { 20 + "name" : "login-Dropbox", 21 + "rule" : ".login-Dropbox", 22 22 "hash" : "572ab36301762414365b68c0bc185ac5" 23 23 }, 24 - "login_Facebook" : { 25 - "name" : "login_Facebook", 26 - "rule" : ".login_Facebook", 24 + "login-Facebook" : { 25 + "name" : "login-Facebook", 26 + "rule" : ".login-Facebook", 27 27 "hash" : "2b1511f5b4d12076dd9086d1bb187b28" 28 28 }, 29 - "login_Generic" : { 30 - "name" : "login_Generic", 31 - "rule" : ".login_Generic", 29 + "login-Generic" : { 30 + "name" : "login-Generic", 31 + "rule" : ".login-Generic", 32 32 "hash" : "60d75c38668ffd6eea91a40e66186601" 33 33 }, 34 - "login_Github" : { 35 - "name" : "login_Github", 36 - "rule" : ".login_Github", 34 + "login-Github" : { 35 + "name" : "login-Github", 36 + "rule" : ".login-Github", 37 37 "hash" : "633696beb8c1eaac642ce4955be917d8" 38 38 }, 39 - "login_Google" : { 40 - "name" : "login_Google", 41 - "rule" : ".login_Google", 39 + "login-Google" : { 40 + "name" : "login-Google", 41 + "rule" : ".login-Google", 42 42 "hash" : "b7d3962a31df1e6c13e0a3c97c08f11d" 43 43 }, 44 - "login_HTTP" : { 45 - "name" : "login_HTTP", 46 - "rule" : ".login_HTTP", 44 + "login-HTTP" : { 45 + "name" : "login-HTTP", 46 + "rule" : ".login-HTTP", 47 47 "hash" : "6fcf0f666c0f6f1e1cd8f397b41ed176" 48 48 }, 49 - "login_LDAP" : { 50 - "name" : "login_LDAP", 51 - "rule" : ".login_LDAP", 49 + "login-LDAP" : { 50 + "name" : "login-LDAP", 51 + "rule" : ".login-LDAP", 52 52 "hash" : "5b4e01ddf35cd40c8f061c90abc89b6c" 53 53 }, 54 - "login_Linkedin" : { 55 - "name" : "login_Linkedin", 56 - "rule" : ".login_Linkedin", 54 + "login-Linkedin" : { 55 + "name" : "login-Linkedin", 56 + "rule" : ".login-Linkedin", 57 57 "hash" : "0dd89825046fa4fd0fe402aa2cd55fd1" 58 58 }, 59 - "login_Openid" : { 60 - "name" : "login_Openid", 61 - "rule" : ".login_Openid", 59 + "login-Openid" : { 60 + "name" : "login-Openid", 61 + "rule" : ".login-Openid", 62 62 "hash" : "9267ffbb8d4e6dee409c4d8fa2d50c0a" 63 63 }, 64 - "login_Phabricator" : { 65 - "name" : "login_Phabricator", 66 - "rule" : ".login_Phabricator", 64 + "login-Phabricator" : { 65 + "name" : "login-Phabricator", 66 + "rule" : ".login-Phabricator", 67 67 "hash" : "fad258eb347a1ccf5800b0ee2d8e6e49" 68 68 }, 69 - "login_Twitter" : { 70 - "name" : "login_Twitter", 71 - "rule" : ".login_Twitter", 69 + "login-Twitter" : { 70 + "name" : "login-Twitter", 71 + "rule" : ".login-Twitter", 72 72 "hash" : "0b64983507a720b365474b778a966bab" 73 73 }, 74 - "login_Yahoo" : { 75 - "name" : "login_Yahoo", 76 - "rule" : ".login_Yahoo", 74 + "login-Yahoo" : { 75 + "name" : "login-Yahoo", 76 + "rule" : ".login-Yahoo", 77 77 "hash" : "1cc6fceee294045fe6d1c1d3aa31d2c1" 78 78 } 79 79 },
+46 -46
src/__celerity_resource_map__.php
··· 3723 3723 ), 3724 3724 'phui-icon-view-css' => 3725 3725 array( 3726 - 'uri' => '/res/1b1a37b5/rsrc/css/phui/phui-icon.css', 3726 + 'uri' => '/res/7fd37b96/rsrc/css/phui/phui-icon.css', 3727 3727 'type' => 'css', 3728 3728 'requires' => 3729 3729 array( ··· 3984 3984 ), 3985 3985 'sprite-login-css' => 3986 3986 array( 3987 - 'uri' => '/res/7294661a/rsrc/css/sprite-login.css', 3987 + 'uri' => '/res/8bec1ba2/rsrc/css/sprite-login.css', 3988 3988 'type' => 'css', 3989 3989 'requires' => 3990 3990 array( ··· 4048 4048 ), array( 4049 4049 'packages' => 4050 4050 array( 4051 - 'e2eeaf23' => 4051 + '76d08512' => 4052 4052 array( 4053 4053 'name' => 'core.pkg.css', 4054 4054 'symbols' => ··· 4096 4096 40 => 'phabricator-property-list-view-css', 4097 4097 41 => 'phabricator-tag-view-css', 4098 4098 ), 4099 - 'uri' => '/res/pkg/e2eeaf23/core.pkg.css', 4099 + 'uri' => '/res/pkg/76d08512/core.pkg.css', 4100 4100 'type' => 'css', 4101 4101 ), 4102 4102 'f2ad0683' => ··· 4290 4290 'reverse' => 4291 4291 array( 4292 4292 'aphront-attached-file-view-css' => 'a7ca34a9', 4293 - 'aphront-dialog-view-css' => 'e2eeaf23', 4294 - 'aphront-error-view-css' => 'e2eeaf23', 4295 - 'aphront-form-view-css' => 'e2eeaf23', 4296 - 'aphront-list-filter-view-css' => 'e2eeaf23', 4297 - 'aphront-pager-view-css' => 'e2eeaf23', 4298 - 'aphront-panel-view-css' => 'e2eeaf23', 4299 - 'aphront-table-view-css' => 'e2eeaf23', 4300 - 'aphront-tokenizer-control-css' => 'e2eeaf23', 4301 - 'aphront-tooltip-css' => 'e2eeaf23', 4302 - 'aphront-typeahead-control-css' => 'e2eeaf23', 4293 + 'aphront-dialog-view-css' => '76d08512', 4294 + 'aphront-error-view-css' => '76d08512', 4295 + 'aphront-form-view-css' => '76d08512', 4296 + 'aphront-list-filter-view-css' => '76d08512', 4297 + 'aphront-pager-view-css' => '76d08512', 4298 + 'aphront-panel-view-css' => '76d08512', 4299 + 'aphront-table-view-css' => '76d08512', 4300 + 'aphront-tokenizer-control-css' => '76d08512', 4301 + 'aphront-tooltip-css' => '76d08512', 4302 + 'aphront-typeahead-control-css' => '76d08512', 4303 4303 'differential-changeset-view-css' => 'dd27a69b', 4304 4304 'differential-core-view-css' => 'dd27a69b', 4305 4305 'differential-inline-comment-editor' => '9488bb69', ··· 4313 4313 'differential-table-of-contents-css' => 'dd27a69b', 4314 4314 'diffusion-commit-view-css' => 'c8ce2d88', 4315 4315 'diffusion-icons-css' => 'c8ce2d88', 4316 - 'global-drag-and-drop-css' => 'e2eeaf23', 4316 + 'global-drag-and-drop-css' => '76d08512', 4317 4317 'inline-comment-summary-css' => 'dd27a69b', 4318 4318 'javelin-aphlict' => 'f2ad0683', 4319 4319 'javelin-behavior' => 'a9f14d76', ··· 4387 4387 'javelin-util' => 'a9f14d76', 4388 4388 'javelin-vector' => 'a9f14d76', 4389 4389 'javelin-workflow' => 'a9f14d76', 4390 - 'lightbox-attachment-css' => 'e2eeaf23', 4390 + 'lightbox-attachment-css' => '76d08512', 4391 4391 'maniphest-task-summary-css' => 'a7ca34a9', 4392 4392 'maniphest-transaction-detail-css' => 'a7ca34a9', 4393 - 'phabricator-action-list-view-css' => 'e2eeaf23', 4394 - 'phabricator-application-launch-view-css' => 'e2eeaf23', 4393 + 'phabricator-action-list-view-css' => '76d08512', 4394 + 'phabricator-application-launch-view-css' => '76d08512', 4395 4395 'phabricator-busy' => 'f2ad0683', 4396 4396 'phabricator-content-source-view-css' => 'dd27a69b', 4397 - 'phabricator-core-buttons-css' => 'e2eeaf23', 4398 - 'phabricator-core-css' => 'e2eeaf23', 4399 - 'phabricator-crumbs-view-css' => 'e2eeaf23', 4397 + 'phabricator-core-buttons-css' => '76d08512', 4398 + 'phabricator-core-css' => '76d08512', 4399 + 'phabricator-crumbs-view-css' => '76d08512', 4400 4400 'phabricator-drag-and-drop-file-upload' => '9488bb69', 4401 4401 'phabricator-dropdown-menu' => 'f2ad0683', 4402 4402 'phabricator-file-upload' => 'f2ad0683', 4403 - 'phabricator-filetree-view-css' => 'e2eeaf23', 4404 - 'phabricator-flag-css' => 'e2eeaf23', 4405 - 'phabricator-form-view-css' => 'e2eeaf23', 4406 - 'phabricator-header-view-css' => 'e2eeaf23', 4403 + 'phabricator-filetree-view-css' => '76d08512', 4404 + 'phabricator-flag-css' => '76d08512', 4405 + 'phabricator-form-view-css' => '76d08512', 4406 + 'phabricator-header-view-css' => '76d08512', 4407 4407 'phabricator-hovercard' => 'f2ad0683', 4408 - 'phabricator-jump-nav' => 'e2eeaf23', 4408 + 'phabricator-jump-nav' => '76d08512', 4409 4409 'phabricator-keyboard-shortcut' => 'f2ad0683', 4410 4410 'phabricator-keyboard-shortcut-manager' => 'f2ad0683', 4411 - 'phabricator-main-menu-view' => 'e2eeaf23', 4411 + 'phabricator-main-menu-view' => '76d08512', 4412 4412 'phabricator-menu-item' => 'f2ad0683', 4413 - 'phabricator-nav-view-css' => 'e2eeaf23', 4413 + 'phabricator-nav-view-css' => '76d08512', 4414 4414 'phabricator-notification' => 'f2ad0683', 4415 - 'phabricator-notification-css' => 'e2eeaf23', 4416 - 'phabricator-notification-menu-css' => 'e2eeaf23', 4417 - 'phabricator-object-item-list-view-css' => 'e2eeaf23', 4415 + 'phabricator-notification-css' => '76d08512', 4416 + 'phabricator-notification-menu-css' => '76d08512', 4417 + 'phabricator-object-item-list-view-css' => '76d08512', 4418 4418 'phabricator-object-selector-css' => 'dd27a69b', 4419 4419 'phabricator-phtize' => 'f2ad0683', 4420 4420 'phabricator-prefab' => 'f2ad0683', 4421 4421 'phabricator-project-tag-css' => 'a7ca34a9', 4422 - 'phabricator-property-list-view-css' => 'e2eeaf23', 4423 - 'phabricator-remarkup-css' => 'e2eeaf23', 4422 + 'phabricator-property-list-view-css' => '76d08512', 4423 + 'phabricator-remarkup-css' => '76d08512', 4424 4424 'phabricator-shaped-request' => '9488bb69', 4425 - 'phabricator-side-menu-view-css' => 'e2eeaf23', 4426 - 'phabricator-standard-page-view' => 'e2eeaf23', 4427 - 'phabricator-tag-view-css' => 'e2eeaf23', 4425 + 'phabricator-side-menu-view-css' => '76d08512', 4426 + 'phabricator-standard-page-view' => '76d08512', 4427 + 'phabricator-tag-view-css' => '76d08512', 4428 4428 'phabricator-textareautils' => 'f2ad0683', 4429 4429 'phabricator-tooltip' => 'f2ad0683', 4430 - 'phabricator-transaction-view-css' => 'e2eeaf23', 4431 - 'phabricator-zindex-css' => 'e2eeaf23', 4432 - 'phui-form-css' => 'e2eeaf23', 4433 - 'phui-icon-view-css' => 'e2eeaf23', 4434 - 'spacing-css' => 'e2eeaf23', 4435 - 'sprite-apps-large-css' => 'e2eeaf23', 4436 - 'sprite-gradient-css' => 'e2eeaf23', 4437 - 'sprite-icons-css' => 'e2eeaf23', 4438 - 'sprite-menu-css' => 'e2eeaf23', 4439 - 'syntax-highlighting-css' => 'e2eeaf23', 4430 + 'phabricator-transaction-view-css' => '76d08512', 4431 + 'phabricator-zindex-css' => '76d08512', 4432 + 'phui-form-css' => '76d08512', 4433 + 'phui-icon-view-css' => '76d08512', 4434 + 'spacing-css' => '76d08512', 4435 + 'sprite-apps-large-css' => '76d08512', 4436 + 'sprite-gradient-css' => '76d08512', 4437 + 'sprite-icons-css' => '76d08512', 4438 + 'sprite-menu-css' => '76d08512', 4439 + 'syntax-highlighting-css' => '76d08512', 4440 4440 ), 4441 4441 ));
+32 -1
src/applications/uiexample/examples/PHUIIconExample.php
··· 100 100 ->setSpriteIcon($token); 101 101 } 102 102 103 + $logins = array( 104 + 'Asana', 105 + 'Dropbox', 106 + 'Google', 107 + 'Github'); 108 + $loginview = array(); 109 + foreach ($logins as $login) { 110 + $loginview[] = 111 + id(new PHUIIconView()) 112 + ->setSpriteSheet(PHUIIconView::SPRITE_LOGIN) 113 + ->setSpriteIcon($login) 114 + ->addClass(PHUI::MARGIN_SMALL_RIGHT); 115 + } 116 + 103 117 $layout1 = 104 118 array( 105 119 id(new PHUIBoxView()) ··· 140 154 ->addPadding(PHUI::PADDING_MEDIUM) 141 155 ->setShadow(true)); 142 156 157 + $layout5 = 158 + array( 159 + id(new PHUIBoxView()) 160 + ->appendChild($loginview) 161 + ->addMargin(PHUI::MARGIN_MEDIUM) 162 + ->addPadding(PHUI::PADDING_MEDIUM) 163 + ->setShadow(true)); 164 + 143 165 $head1 = id(new PhabricatorHeaderView()) 144 166 ->setHeader(pht('Action Icons!')); 145 167 ··· 151 173 152 174 $head4 = id(new PhabricatorHeaderView()) 153 175 ->setHeader(pht('Payments')); 176 + 177 + $head5 = id(new PhabricatorHeaderView()) 178 + ->setHeader(pht('Authentication')); 154 179 155 180 $wrap1 = id(new PHUIBoxView()) 156 181 ->appendChild($layout1) ··· 168 193 ->appendChild($layout4) 169 194 ->addMargin(PHUI::MARGIN_LARGE); 170 195 196 + $wrap5 = id(new PHUIBoxView()) 197 + ->appendChild($layout5) 198 + ->addMargin(PHUI::MARGIN_LARGE); 199 + 171 200 return phutil_tag( 172 201 'div', 173 202 array( ··· 181 210 $head3, 182 211 $wrap3, 183 212 $head4, 184 - $wrap4 213 + $wrap4, 214 + $head5, 215 + $wrap5 185 216 )); 186 217 } 187 218 }
+2 -2
src/infrastructure/celerity/CeleritySpriteGenerator.php
··· 450 450 $prefix = 'login_'; 451 451 foreach ($icons as $icon) { 452 452 $sprite = id(clone $template) 453 - ->setName($prefix.$icon) 454 - ->setTargetCSS('.'.$prefix.$icon); 453 + ->setName('login-'.$icon) 454 + ->setTargetCSS('.login-'.$icon); 455 455 456 456 foreach ($scales as $scale_key => $scale) { 457 457 $path = $this->getPath($prefix.$scale_key.'/'.$icon.'.png');
+1
src/view/phui/PHUIIconView.php
··· 8 8 const SPRITE_TOKENS = 'tokens'; 9 9 const SPRITE_PAYMENTS = 'payments'; 10 10 const SPRITE_ICONS = 'icons'; 11 + const SPRITE_LOGIN = 'login'; 11 12 12 13 const HEAD_SMALL = 'phuihead-small'; 13 14 const HEAD_MEDIUM = 'phuihead-medium';
+5
webroot/rsrc/css/phui/phui-icon.css
··· 32 32 width: 60px; 33 33 } 34 34 35 + .phui-icon-view.sprite-login { 36 + height: 34px; 37 + width: 34px; 38 + } 39 + 35 40 .phui-icon-view.phuihead-medium { 36 41 height: 50px; 37 42 width: 50px;
+15 -15
webroot/rsrc/css/sprite-login.css
··· 18 18 } 19 19 20 20 21 - .login_Amazon { 21 + .login-Amazon { 22 22 background-position: 0px 0px; 23 23 } 24 24 25 - .login_Asana { 25 + .login-Asana { 26 26 background-position: -35px 0px; 27 27 } 28 28 29 - .login_Disqus { 29 + .login-Disqus { 30 30 background-position: -70px 0px; 31 31 } 32 32 33 - .login_Dropbox { 33 + .login-Dropbox { 34 34 background-position: -105px 0px; 35 35 } 36 36 37 - .login_Facebook { 37 + .login-Facebook { 38 38 background-position: 0px -35px; 39 39 } 40 40 41 - .login_Generic { 41 + .login-Generic { 42 42 background-position: -35px -35px; 43 43 } 44 44 45 - .login_Github { 45 + .login-Github { 46 46 background-position: -70px -35px; 47 47 } 48 48 49 - .login_Google { 49 + .login-Google { 50 50 background-position: -105px -35px; 51 51 } 52 52 53 - .login_HTTP { 53 + .login-HTTP { 54 54 background-position: 0px -70px; 55 55 } 56 56 57 - .login_LDAP { 57 + .login-LDAP { 58 58 background-position: -35px -70px; 59 59 } 60 60 61 - .login_Linkedin { 61 + .login-Linkedin { 62 62 background-position: -70px -70px; 63 63 } 64 64 65 - .login_Openid { 65 + .login-Openid { 66 66 background-position: -105px -70px; 67 67 } 68 68 69 - .login_Phabricator { 69 + .login-Phabricator { 70 70 background-position: 0px -105px; 71 71 } 72 72 73 - .login_Twitter { 73 + .login-Twitter { 74 74 background-position: -35px -105px; 75 75 } 76 76 77 - .login_Yahoo { 77 + .login-Yahoo { 78 78 background-position: -70px -105px; 79 79 }