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

Float actions in header for better overflow

Summary: Fixes T6964, makes action links float instead of absolutely positioned.

Test Plan: Tested UIExamples, actions in single line headers, multi line headers, headers with images, workboard headers. Test desktop, mobile, and tablet breakpoints. Long titles wrap as expected as button list grows.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T6964

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

+138 -140
+105 -105
resources/celerity/map.php
··· 7 7 */ 8 8 return array( 9 9 'names' => array( 10 - 'core.pkg.css' => '60a6d241', 11 - 'core.pkg.js' => '3db1b544', 10 + 'core.pkg.css' => '06273301', 11 + 'core.pkg.js' => '27bb3264', 12 12 'darkconsole.pkg.js' => '8ab24e01', 13 13 'differential.pkg.css' => '8af45893', 14 14 'differential.pkg.js' => 'dad3622f', ··· 130 130 'rsrc/css/phui/phui-fontkit.css' => '9c3d2dce', 131 131 'rsrc/css/phui/phui-form-view.css' => 'aad06f2a', 132 132 'rsrc/css/phui/phui-form.css' => '9aecbda1', 133 - 'rsrc/css/phui/phui-header-view.css' => 'c936b5b9', 133 + 'rsrc/css/phui/phui-header-view.css' => '083669db', 134 134 'rsrc/css/phui/phui-icon.css' => 'a013a63d', 135 135 'rsrc/css/phui/phui-image-mask.css' => '5a8b09c8', 136 136 'rsrc/css/phui/phui-info-panel.css' => '27ea50a1', 137 137 'rsrc/css/phui/phui-list.css' => '53deb25c', 138 - 'rsrc/css/phui/phui-object-box.css' => 'dd19785f', 138 + 'rsrc/css/phui/phui-object-box.css' => '0d47b3c8', 139 139 'rsrc/css/phui/phui-object-item-list-view.css' => '8279b873', 140 140 'rsrc/css/phui/phui-pinboard-view.css' => '3dd4a269', 141 141 'rsrc/css/phui/phui-property-list-view.css' => '51480060', ··· 164 164 'rsrc/externals/javelin/core/Stratcom.js' => '8b0ad945', 165 165 'rsrc/externals/javelin/core/__tests__/event-stop-and-kill.js' => '717554e4', 166 166 'rsrc/externals/javelin/core/__tests__/install.js' => 'c432ee85', 167 - 'rsrc/externals/javelin/core/__tests__/stratcom.js' => 'da194d4b', 168 - 'rsrc/externals/javelin/core/__tests__/util.js' => 'd3b157a9', 167 + 'rsrc/externals/javelin/core/__tests__/stratcom.js' => '88bf7313', 168 + 'rsrc/externals/javelin/core/__tests__/util.js' => 'e251703d', 169 169 'rsrc/externals/javelin/core/init.js' => '76e1fd61', 170 170 'rsrc/externals/javelin/core/init_node.js' => 'd7dde471', 171 - 'rsrc/externals/javelin/core/install.js' => '1ffb3a9c', 172 - 'rsrc/externals/javelin/core/util.js' => '90e3fde9', 171 + 'rsrc/externals/javelin/core/install.js' => '05270951', 172 + 'rsrc/externals/javelin/core/util.js' => 'bdcfee9e', 173 173 'rsrc/externals/javelin/docs/Base.js' => '74676256', 174 174 'rsrc/externals/javelin/docs/onload.js' => 'e819c479', 175 175 'rsrc/externals/javelin/ext/fx/Color.js' => '7e41274a', 176 176 'rsrc/externals/javelin/ext/fx/FX.js' => '54b612ba', 177 177 'rsrc/externals/javelin/ext/reactor/core/DynVal.js' => 'f6555212', 178 - 'rsrc/externals/javelin/ext/reactor/core/Reactor.js' => '77b1cf6f', 179 - 'rsrc/externals/javelin/ext/reactor/core/ReactorNode.js' => 'b4c30592', 178 + 'rsrc/externals/javelin/ext/reactor/core/Reactor.js' => '2b8de964', 179 + 'rsrc/externals/javelin/ext/reactor/core/ReactorNode.js' => '1ad0a787', 180 180 'rsrc/externals/javelin/ext/reactor/core/ReactorNodeCalmer.js' => '76f4ebed', 181 - 'rsrc/externals/javelin/ext/reactor/dom/RDOM.js' => 'b6d401d6', 182 - 'rsrc/externals/javelin/ext/view/HTMLView.js' => 'e5b406f9', 181 + 'rsrc/externals/javelin/ext/reactor/dom/RDOM.js' => 'c90a04fc', 182 + 'rsrc/externals/javelin/ext/view/HTMLView.js' => 'fe287620', 183 183 'rsrc/externals/javelin/ext/view/View.js' => '0f764c35', 184 - 'rsrc/externals/javelin/ext/view/ViewInterpreter.js' => '0c33c1a0', 185 - 'rsrc/externals/javelin/ext/view/ViewPlaceholder.js' => '2fa810fc', 184 + 'rsrc/externals/javelin/ext/view/ViewInterpreter.js' => 'f829edb3', 185 + 'rsrc/externals/javelin/ext/view/ViewPlaceholder.js' => '47830651', 186 186 'rsrc/externals/javelin/ext/view/ViewRenderer.js' => '6c2b09a2', 187 187 'rsrc/externals/javelin/ext/view/ViewVisitor.js' => 'efe49472', 188 188 'rsrc/externals/javelin/ext/view/__tests__/HTMLView.js' => 'f92d7bcb', 189 189 'rsrc/externals/javelin/ext/view/__tests__/View.js' => 'bda69c40', 190 190 'rsrc/externals/javelin/ext/view/__tests__/ViewInterpreter.js' => '7a94d6a5', 191 - 'rsrc/externals/javelin/ext/view/__tests__/ViewRenderer.js' => '5426001c', 191 + 'rsrc/externals/javelin/ext/view/__tests__/ViewRenderer.js' => '6ea96ac9', 192 192 'rsrc/externals/javelin/lib/Cookie.js' => '6b3dcf44', 193 193 'rsrc/externals/javelin/lib/DOM.js' => 'c4569c05', 194 194 'rsrc/externals/javelin/lib/History.js' => 'c60f4327', 195 195 'rsrc/externals/javelin/lib/JSON.js' => '69adf288', 196 - 'rsrc/externals/javelin/lib/Leader.js' => '9f8874bb', 196 + 'rsrc/externals/javelin/lib/Leader.js' => '9330f91b', 197 197 'rsrc/externals/javelin/lib/Mask.js' => '8a41885b', 198 - 'rsrc/externals/javelin/lib/Request.js' => '97258e55', 199 - 'rsrc/externals/javelin/lib/Resource.js' => '0f81f8df', 198 + 'rsrc/externals/javelin/lib/Request.js' => '94b750d2', 199 + 'rsrc/externals/javelin/lib/Resource.js' => '44959b73', 200 200 'rsrc/externals/javelin/lib/Routable.js' => 'b3e7d692', 201 201 'rsrc/externals/javelin/lib/Router.js' => '29274e2b', 202 202 'rsrc/externals/javelin/lib/URI.js' => '6eff08aa', 203 203 'rsrc/externals/javelin/lib/Vector.js' => 'cc1bd0b0', 204 - 'rsrc/externals/javelin/lib/WebSocket.js' => '16d40bb9', 204 + 'rsrc/externals/javelin/lib/WebSocket.js' => '3f840822', 205 205 'rsrc/externals/javelin/lib/Workflow.js' => 'd149e002', 206 206 'rsrc/externals/javelin/lib/__tests__/Cookie.js' => '5ed109e8', 207 207 'rsrc/externals/javelin/lib/__tests__/DOM.js' => 'c984504b', 208 - 'rsrc/externals/javelin/lib/__tests__/JSON.js' => '2295d074', 209 - 'rsrc/externals/javelin/lib/__tests__/URI.js' => '003ed329', 208 + 'rsrc/externals/javelin/lib/__tests__/JSON.js' => '837a7d68', 209 + 'rsrc/externals/javelin/lib/__tests__/URI.js' => '31d49fa0', 210 210 'rsrc/externals/javelin/lib/__tests__/behavior.js' => '1ea62783', 211 211 'rsrc/externals/javelin/lib/behavior.js' => '61cbc29a', 212 - 'rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js' => '9f06389f', 213 - 'rsrc/externals/javelin/lib/control/typeahead/Typeahead.js' => 'e614d22b', 212 + 'rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js' => '7644823e', 213 + 'rsrc/externals/javelin/lib/control/typeahead/Typeahead.js' => '70baed2f', 214 214 'rsrc/externals/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js' => '6f7a9da8', 215 215 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js' => '503e17fd', 216 216 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js' => '8b3fd187', 217 217 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js' => '54f314a0', 218 - 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadSource.js' => 'fcba4ecc', 218 + 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadSource.js' => 'e3b841c8', 219 219 'rsrc/externals/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js' => '316b8fa1', 220 220 'rsrc/externals/raphael/g.raphael.js' => '40dde778', 221 221 'rsrc/externals/raphael/g.raphael.line.js' => '40da039e', ··· 647 647 'javelin-behavior-stripe-payment-form' => '3f5d6dbf', 648 648 'javelin-behavior-test-payment-form' => 'fc91ab6c', 649 649 'javelin-behavior-toggle-class' => 'e566f52c', 650 - 'javelin-behavior-view-placeholder' => '2fa810fc', 650 + 'javelin-behavior-view-placeholder' => '47830651', 651 651 'javelin-behavior-workflow' => '0a3f3021', 652 652 'javelin-color' => '7e41274a', 653 653 'javelin-cookie' => '6b3dcf44', ··· 657 657 'javelin-event' => '85ea0626', 658 658 'javelin-fx' => '54b612ba', 659 659 'javelin-history' => 'c60f4327', 660 - 'javelin-install' => '1ffb3a9c', 660 + 'javelin-install' => '05270951', 661 661 'javelin-json' => '69adf288', 662 - 'javelin-leader' => '9f8874bb', 662 + 'javelin-leader' => '9330f91b', 663 663 'javelin-magical-init' => '76e1fd61', 664 664 'javelin-mask' => '8a41885b', 665 - 'javelin-reactor' => '77b1cf6f', 666 - 'javelin-reactor-dom' => 'b6d401d6', 665 + 'javelin-reactor' => '2b8de964', 666 + 'javelin-reactor-dom' => 'c90a04fc', 667 667 'javelin-reactor-node-calmer' => '76f4ebed', 668 - 'javelin-reactornode' => 'b4c30592', 669 - 'javelin-request' => '97258e55', 670 - 'javelin-resource' => '0f81f8df', 668 + 'javelin-reactornode' => '1ad0a787', 669 + 'javelin-request' => '94b750d2', 670 + 'javelin-resource' => '44959b73', 671 671 'javelin-routable' => 'b3e7d692', 672 672 'javelin-router' => '29274e2b', 673 673 'javelin-stratcom' => '8b0ad945', 674 - 'javelin-tokenizer' => '9f06389f', 675 - 'javelin-typeahead' => 'e614d22b', 674 + 'javelin-tokenizer' => '7644823e', 675 + 'javelin-typeahead' => '70baed2f', 676 676 'javelin-typeahead-composite-source' => '503e17fd', 677 677 'javelin-typeahead-normalizer' => '6f7a9da8', 678 678 'javelin-typeahead-ondemand-source' => '8b3fd187', 679 679 'javelin-typeahead-preloaded-source' => '54f314a0', 680 - 'javelin-typeahead-source' => 'fcba4ecc', 680 + 'javelin-typeahead-source' => 'e3b841c8', 681 681 'javelin-typeahead-static-source' => '316b8fa1', 682 682 'javelin-uri' => '6eff08aa', 683 - 'javelin-util' => '90e3fde9', 683 + 'javelin-util' => 'bdcfee9e', 684 684 'javelin-vector' => 'cc1bd0b0', 685 685 'javelin-view' => '0f764c35', 686 - 'javelin-view-html' => 'e5b406f9', 687 - 'javelin-view-interpreter' => '0c33c1a0', 686 + 'javelin-view-html' => 'fe287620', 687 + 'javelin-view-interpreter' => 'f829edb3', 688 688 'javelin-view-renderer' => '6c2b09a2', 689 689 'javelin-view-visitor' => 'efe49472', 690 - 'javelin-websocket' => '16d40bb9', 690 + 'javelin-websocket' => '3f840822', 691 691 'javelin-workflow' => 'd149e002', 692 692 'lightbox-attachment-css' => '7acac05d', 693 693 'maniphest-batch-editor' => '8f380ebc', ··· 774 774 'phui-fontkit-css' => '9c3d2dce', 775 775 'phui-form-css' => '9aecbda1', 776 776 'phui-form-view-css' => 'aad06f2a', 777 - 'phui-header-view-css' => 'c936b5b9', 777 + 'phui-header-view-css' => '083669db', 778 778 'phui-icon-view-css' => 'a013a63d', 779 779 'phui-image-mask-css' => '5a8b09c8', 780 780 'phui-info-panel-css' => '27ea50a1', 781 781 'phui-list-view-css' => '53deb25c', 782 - 'phui-object-box-css' => 'dd19785f', 782 + 'phui-object-box-css' => '0d47b3c8', 783 783 'phui-object-item-list-view-css' => '8279b873', 784 784 'phui-pinboard-view-css' => '3dd4a269', 785 785 'phui-property-list-view-css' => '51480060', ··· 847 847 'javelin-vector', 848 848 'javelin-install', 849 849 ), 850 + '05270951' => array( 851 + 'javelin-util', 852 + 'javelin-magical-init', 853 + ), 850 854 '065227cc' => array( 851 855 'javelin-behavior', 852 856 'javelin-dom', ··· 881 885 'javelin-dom', 882 886 'javelin-router', 883 887 ), 884 - '0c33c1a0' => array( 885 - 'javelin-view', 886 - 'javelin-install', 887 - 'javelin-dom', 888 - ), 889 888 '0c6946e7' => array( 890 889 'javelin-install', 891 890 'javelin-dom', ··· 903 902 'javelin-install', 904 903 'javelin-util', 905 904 ), 906 - '0f81f8df' => array( 907 - 'javelin-util', 908 - 'javelin-uri', 909 - 'javelin-install', 910 - ), 911 905 '1162a152' => array( 912 906 'javelin-behavior', 913 907 'javelin-aphlict', ··· 951 945 'javelin-request', 952 946 'javelin-util', 953 947 ), 954 - '16d40bb9' => array( 948 + '1ad0a787' => array( 955 949 'javelin-install', 950 + 'javelin-reactor', 951 + 'javelin-util', 952 + 'javelin-reactor-node-calmer', 956 953 ), 957 954 '1ae869f2' => array( 958 955 'javelin-install', ··· 963 960 'javelin-install', 964 961 'javelin-dom', 965 962 'javelin-reactor-dom', 966 - ), 967 - '1ffb3a9c' => array( 968 - 'javelin-util', 969 - 'javelin-magical-init', 970 963 ), 971 964 '2290aeef' => array( 972 965 'javelin-install', ··· 990 983 'javelin-workflow', 991 984 'javelin-json', 992 985 ), 986 + '2b8de964' => array( 987 + 'javelin-install', 988 + 'javelin-util', 989 + ), 993 990 '2bfa2836' => array( 994 991 'javelin-behavior', 995 992 'javelin-stratcom', ··· 1000 997 'javelin-dom', 1001 998 'javelin-stratcom', 1002 999 'phabricator-keyboard-shortcut', 1003 - ), 1004 - '2fa810fc' => array( 1005 - 'javelin-behavior', 1006 - 'javelin-dom', 1007 - 'javelin-view-renderer', 1008 - 'javelin-install', 1009 1000 ), 1010 1001 '316b8fa1' => array( 1011 1002 'javelin-install', ··· 1059 1050 'javelin-dom', 1060 1051 'phortune-credit-card-form', 1061 1052 ), 1053 + '3f840822' => array( 1054 + 'javelin-install', 1055 + ), 1062 1056 '40a6a403' => array( 1063 1057 'javelin-install', 1064 1058 'javelin-dom', ··· 1086 1080 'javelin-dom', 1087 1081 'phabricator-prefab', 1088 1082 ), 1083 + '44959b73' => array( 1084 + 'javelin-util', 1085 + 'javelin-uri', 1086 + 'javelin-install', 1087 + ), 1089 1088 '453c5375' => array( 1090 1089 'javelin-behavior', 1091 1090 'javelin-dom', ··· 1101 1100 'javelin-behavior', 1102 1101 'javelin-dom', 1103 1102 'javelin-workflow', 1103 + ), 1104 + 47830651 => array( 1105 + 'javelin-behavior', 1106 + 'javelin-dom', 1107 + 'javelin-view-renderer', 1108 + 'javelin-install', 1104 1109 ), 1105 1110 '47c794d8' => array( 1106 1111 'javelin-install', ··· 1269 1274 '6f7a9da8' => array( 1270 1275 'javelin-install', 1271 1276 ), 1277 + '70baed2f' => array( 1278 + 'javelin-install', 1279 + 'javelin-dom', 1280 + 'javelin-vector', 1281 + 'javelin-util', 1282 + ), 1272 1283 '724b1247' => array( 1273 1284 'javelin-behavior', 1274 1285 'javelin-typeahead-ondemand-source', ··· 1295 1306 'javelin-behavior', 1296 1307 'javelin-dom', 1297 1308 ), 1309 + '7644823e' => array( 1310 + 'javelin-dom', 1311 + 'javelin-util', 1312 + 'javelin-stratcom', 1313 + 'javelin-install', 1314 + ), 1298 1315 '76b9fc3e' => array( 1299 1316 'javelin-behavior', 1300 1317 'javelin-stratcom', ··· 1305 1322 '76f4ebed' => array( 1306 1323 'javelin-install', 1307 1324 'javelin-reactor', 1308 - 'javelin-util', 1309 - ), 1310 - '77b1cf6f' => array( 1311 - 'javelin-install', 1312 1325 'javelin-util', 1313 1326 ), 1314 1327 '7814b593' => array( ··· 1440 1453 'phabricator-drag-and-drop-file-upload', 1441 1454 'phabricator-textareautils', 1442 1455 ), 1456 + '9330f91b' => array( 1457 + 'javelin-install', 1458 + ), 1443 1459 '9414ff18' => array( 1444 1460 'javelin-behavior', 1445 1461 'javelin-resource', ··· 1447 1463 'javelin-workflow', 1448 1464 'javelin-util', 1449 1465 ), 1450 - '97258e55' => array( 1466 + '94b750d2' => array( 1451 1467 'javelin-install', 1452 1468 'javelin-stratcom', 1453 1469 'javelin-util', ··· 1476 1492 'javelin-vector', 1477 1493 'javelin-dom', 1478 1494 ), 1479 - '9f06389f' => array( 1480 - 'javelin-dom', 1481 - 'javelin-util', 1482 - 'javelin-stratcom', 1483 - 'javelin-install', 1484 - ), 1485 1495 '9f7309fb' => array( 1486 1496 'javelin-behavior', 1487 1497 'javelin-dom', ··· 1489 1499 'javelin-request', 1490 1500 'phabricator-shaped-request', 1491 1501 ), 1492 - '9f8874bb' => array( 1493 - 'javelin-install', 1494 - ), 1495 1502 'a155550f' => array( 1496 1503 'javelin-install', 1497 1504 'javelin-dom', ··· 1590 1597 'javelin-typeahead-preloaded-source', 1591 1598 'javelin-util', 1592 1599 ), 1593 - 'b4c30592' => array( 1594 - 'javelin-install', 1595 - 'javelin-reactor', 1596 - 'javelin-util', 1597 - 'javelin-reactor-node-calmer', 1598 - ), 1599 1600 'b5c256b8' => array( 1600 1601 'javelin-install', 1601 1602 'javelin-dom', ··· 1606 1607 'javelin-dom', 1607 1608 'javelin-util', 1608 1609 ), 1609 - 'b6d401d6' => array( 1610 - 'javelin-dom', 1611 - 'javelin-dynval', 1612 - 'javelin-reactor', 1613 - 'javelin-reactornode', 1614 - 'javelin-install', 1615 - 'javelin-util', 1616 - ), 1617 1610 'bba9eedf' => array( 1618 1611 'javelin-behavior', 1619 1612 'javelin-stratcom', ··· 1669 1662 'javelin-stratcom', 1670 1663 'javelin-install', 1671 1664 'javelin-uri', 1665 + 'javelin-util', 1666 + ), 1667 + 'c90a04fc' => array( 1668 + 'javelin-dom', 1669 + 'javelin-dynval', 1670 + 'javelin-reactor', 1671 + 'javelin-reactornode', 1672 + 'javelin-install', 1672 1673 'javelin-util', 1673 1674 ), 1674 1675 'ca3f91eb' => array( ··· 1795 1796 'javelin-dom', 1796 1797 'javelin-uri', 1797 1798 ), 1799 + 'e3b841c8' => array( 1800 + 'javelin-install', 1801 + 'javelin-util', 1802 + 'javelin-dom', 1803 + 'javelin-typeahead-normalizer', 1804 + ), 1798 1805 'e4cc26b3' => array( 1799 1806 'javelin-behavior', 1800 1807 'javelin-dom', ··· 1824 1831 'javelin-mask', 1825 1832 'javelin-behavior-device', 1826 1833 'phabricator-keyboard-shortcut', 1827 - ), 1828 - 'e5b406f9' => array( 1829 - 'javelin-install', 1830 - 'javelin-dom', 1831 - 'javelin-view-visitor', 1832 - 'javelin-util', 1833 - ), 1834 - 'e614d22b' => array( 1835 - 'javelin-install', 1836 - 'javelin-dom', 1837 - 'javelin-vector', 1838 - 'javelin-util', 1839 1834 ), 1840 1835 'e9581f08' => array( 1841 1836 'javelin-behavior', ··· 1934 1929 'javelin-stratcom', 1935 1930 'phabricator-shaped-request', 1936 1931 ), 1932 + 'f829edb3' => array( 1933 + 'javelin-view', 1934 + 'javelin-install', 1935 + 'javelin-dom', 1936 + ), 1937 1937 'f8ba29d7' => array( 1938 1938 'javelin-behavior', 1939 1939 'javelin-stratcom', ··· 1959 1959 'javelin-dom', 1960 1960 'phortune-credit-card-form', 1961 1961 ), 1962 - 'fcba4ecc' => array( 1962 + 'fe287620' => array( 1963 1963 'javelin-install', 1964 - 'javelin-util', 1965 1964 'javelin-dom', 1966 - 'javelin-typeahead-normalizer', 1965 + 'javelin-view-visitor', 1966 + 'javelin-util', 1967 1967 ), 1968 1968 'fe9a552f' => array( 1969 1969 'javelin-behavior',
+26 -26
src/view/phui/PHUIHeaderView.php
··· 144 144 } 145 145 146 146 $header = array(); 147 + 148 + if ($this->actionLinks) { 149 + $actions = array(); 150 + foreach ($this->actionLinks as $button) { 151 + $button->setColor(PHUIButtonView::SIMPLE); 152 + $button->addClass(PHUI::MARGIN_SMALL_LEFT); 153 + $button->addClass('phui-header-action-link'); 154 + $actions[] = $button; 155 + } 156 + $header[] = phutil_tag( 157 + 'div', 158 + array( 159 + 'class' => 'phui-header-action-links', 160 + ), 161 + $actions); 162 + } 163 + 164 + if ($this->buttonBar) { 165 + $header[] = phutil_tag( 166 + 'div', 167 + array( 168 + 'class' => 'phui-header-action-links', 169 + ), 170 + $this->buttonBar); 171 + } 147 172 $header[] = $this->header; 148 173 149 174 if ($this->objectName) { ··· 202 227 $property_list); 203 228 } 204 229 205 - if ($this->actionLinks) { 206 - $actions = array(); 207 - foreach ($this->actionLinks as $button) { 208 - $button->setColor(PHUIButtonView::SIMPLE); 209 - $button->addClass(PHUI::MARGIN_SMALL_LEFT); 210 - $button->addClass('phui-header-action-link'); 211 - $actions[] = $button; 212 - } 213 - $header[] = phutil_tag( 214 - 'div', 215 - array( 216 - 'class' => 'phui-header-action-links', 217 - ), 218 - $actions); 219 - } 220 - 221 - if ($this->buttonBar) { 222 - $header[] = phutil_tag( 223 - 'div', 224 - array( 225 - 'class' => 'phui-header-action-links', 226 - ), 227 - $this->buttonBar); 228 - } 229 - 230 230 return phutil_tag( 231 231 'div', 232 232 array( ··· 237 237 phutil_tag( 238 238 'h1', 239 239 array( 240 - 'class' => 'phui-header-view', 240 + 'class' => 'phui-header-view grouped', 241 241 ), 242 242 $header), 243 243 ));
+6 -8
webroot/rsrc/css/phui/phui-header-view.css
··· 49 49 } 50 50 51 51 .phui-header-view .phui-header-action-links { 52 - position: absolute; 53 - top: 24px; 54 - right: 12px; 52 + float: right; 55 53 } 56 54 57 55 .phui-object-box .phui-header-view .phui-header-action-links { 58 - top: 5px; 59 - right: 3px; 56 + margin-right: 4px; 57 + margin-top: -2px; 58 + margin-bottom: -3px; 60 59 } 61 60 62 61 .phui-object-box .phui-header-has-image .phui-header-view 63 62 .phui-header-action-links { 64 - top: 15px; 63 + margin-top: 8px; 65 64 } 66 65 67 66 .phui-document-view .phui-header-view .phui-header-action-links { 68 - right: 8px; 69 - top: 12px; 67 + margin-top: 4px; 70 68 } 71 69 72 70 .device-phone .phui-header-action-link .phui-button-text {
+1 -1
webroot/rsrc/css/phui/phui-object-box.css
··· 13 13 } 14 14 15 15 .phui-object-box .phui-header-image { 16 - margin: 1px 8px 0px -7px; 16 + margin: 1px 8px -7px -7px; 17 17 } 18 18 19 19 .phui-object-box .phui-header-shell h1 {