mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-15 10:00:55 +01:00
(stable) Promote 2017 Week 23
This commit is contained in:
commit
e419c523ce
84 changed files with 804 additions and 424 deletions
|
@ -9,13 +9,13 @@ return array(
|
|||
'names' => array(
|
||||
'conpherence.pkg.css' => 'ff161f2d',
|
||||
'conpherence.pkg.js' => 'b5b51108',
|
||||
'core.pkg.css' => 'ea94e844',
|
||||
'core.pkg.css' => 'ab24402f',
|
||||
'core.pkg.js' => '1475bd91',
|
||||
'darkconsole.pkg.js' => '1f9a31bc',
|
||||
'differential.pkg.css' => 'a2755617',
|
||||
'differential.pkg.js' => '9cab3335',
|
||||
'differential.pkg.css' => '1ccbf3a9',
|
||||
'differential.pkg.js' => 'b7504037',
|
||||
'diffusion.pkg.css' => 'b93d9b8c',
|
||||
'diffusion.pkg.js' => '84c8f8fd',
|
||||
'diffusion.pkg.js' => '6134c5a1',
|
||||
'favicon.ico' => '30672e08',
|
||||
'maniphest.pkg.css' => '4845691a',
|
||||
'maniphest.pkg.js' => '5ab2753f',
|
||||
|
@ -25,14 +25,14 @@ return array(
|
|||
'rsrc/audio/basic/tap.mp3' => 'fc2fd796',
|
||||
'rsrc/audio/basic/ting.mp3' => '17660001',
|
||||
'rsrc/css/aphront/aphront-bars.css' => '231ac33c',
|
||||
'rsrc/css/aphront/dark-console.css' => '53798a6d',
|
||||
'rsrc/css/aphront/dark-console.css' => 'f7b071f1',
|
||||
'rsrc/css/aphront/dialog-view.css' => '685c7e2d',
|
||||
'rsrc/css/aphront/list-filter-view.css' => '5d6f0526',
|
||||
'rsrc/css/aphront/multi-column.css' => '84cc6640',
|
||||
'rsrc/css/aphront/notification.css' => '3f6c89c9',
|
||||
'rsrc/css/aphront/panel-view.css' => '8427b78d',
|
||||
'rsrc/css/aphront/phabricator-nav-view.css' => 'faf6a6fc',
|
||||
'rsrc/css/aphront/table-view.css' => '34cf86b4',
|
||||
'rsrc/css/aphront/table-view.css' => 'a3aa6910',
|
||||
'rsrc/css/aphront/tokenizer.css' => '15d5ff71',
|
||||
'rsrc/css/aphront/tooltip.css' => '173b9431',
|
||||
'rsrc/css/aphront/typeahead-browse.css' => '4f82e510',
|
||||
|
@ -64,16 +64,16 @@ return array(
|
|||
'rsrc/css/application/dashboard/dashboard.css' => 'fe5b1869',
|
||||
'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a',
|
||||
'rsrc/css/application/differential/add-comment.css' => 'c47f8c40',
|
||||
'rsrc/css/application/differential/changeset-view.css' => '983751ee',
|
||||
'rsrc/css/application/differential/changeset-view.css' => 'c3f44655',
|
||||
'rsrc/css/application/differential/core.css' => '5b7b8ff4',
|
||||
'rsrc/css/application/differential/phui-inline-comment.css' => 'ffd1a542',
|
||||
'rsrc/css/application/differential/revision-comment.css' => '14b8565a',
|
||||
'rsrc/css/application/differential/revision-history.css' => '0e8eb855',
|
||||
'rsrc/css/application/differential/revision-list.css' => 'f3c47d33',
|
||||
'rsrc/css/application/differential/table-of-contents.css' => 'ae4b7a55',
|
||||
'rsrc/css/application/diffusion/diffusion-history.css' => 'de70e348',
|
||||
'rsrc/css/application/diffusion/diffusion-history.css' => '6870e8c1',
|
||||
'rsrc/css/application/diffusion/diffusion-icons.css' => 'a6a1e2ba',
|
||||
'rsrc/css/application/diffusion/diffusion-readme.css' => '18bd3910',
|
||||
'rsrc/css/application/diffusion/diffusion-readme.css' => '419dd5b6',
|
||||
'rsrc/css/application/diffusion/diffusion-source.css' => '750add59',
|
||||
'rsrc/css/application/feed/feed.css' => 'ecd4ec57',
|
||||
'rsrc/css/application/files/global-drag-and-drop.css' => '5c1b47c2',
|
||||
|
@ -115,7 +115,7 @@ return array(
|
|||
'rsrc/css/application/tokens/tokens.css' => '3d0f239e',
|
||||
'rsrc/css/application/uiexample/example.css' => '528b19de',
|
||||
'rsrc/css/core/core.css' => '23beb330',
|
||||
'rsrc/css/core/remarkup.css' => 'd1a5e11e',
|
||||
'rsrc/css/core/remarkup.css' => '509fb36e',
|
||||
'rsrc/css/core/syntax.css' => 'cae95e89',
|
||||
'rsrc/css/core/z-index.css' => '9d8f7c4b',
|
||||
'rsrc/css/diviner/diviner-shared.css' => '896f1d43',
|
||||
|
@ -125,8 +125,8 @@ return array(
|
|||
'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82',
|
||||
'rsrc/css/layout/phabricator-source-code-view.css' => '4383192f',
|
||||
'rsrc/css/phui/button/phui-button-bar.css' => '39fe680c',
|
||||
'rsrc/css/phui/button/phui-button-simple.css' => '081cfeea',
|
||||
'rsrc/css/phui/button/phui-button.css' => '9f13ddcc',
|
||||
'rsrc/css/phui/button/phui-button-simple.css' => '8e1baf68',
|
||||
'rsrc/css/phui/button/phui-button.css' => '022581b4',
|
||||
'rsrc/css/phui/calendar/phui-calendar-day.css' => '572b1893',
|
||||
'rsrc/css/phui/calendar/phui-calendar-list.css' => '576be600',
|
||||
'rsrc/css/phui/calendar/phui-calendar-month.css' => '8e10e92c',
|
||||
|
@ -135,7 +135,7 @@ return array(
|
|||
'rsrc/css/phui/object-item/phui-oi-color.css' => 'cd2b9b77',
|
||||
'rsrc/css/phui/object-item/phui-oi-drag-ui.css' => '08f4ccc3',
|
||||
'rsrc/css/phui/object-item/phui-oi-flush-ui.css' => '9d9685d6',
|
||||
'rsrc/css/phui/object-item/phui-oi-list-view.css' => '43752968',
|
||||
'rsrc/css/phui/object-item/phui-oi-list-view.css' => 'bf094950',
|
||||
'rsrc/css/phui/object-item/phui-oi-simple-ui.css' => 'a8beebea',
|
||||
'rsrc/css/phui/phui-action-list.css' => 'c01858f4',
|
||||
'rsrc/css/phui/phui-action-panel.css' => '91c7b835',
|
||||
|
@ -149,7 +149,7 @@ return array(
|
|||
'rsrc/css/phui/phui-comment-panel.css' => 'f50152ad',
|
||||
'rsrc/css/phui/phui-crumbs-view.css' => '6ece3bbb',
|
||||
'rsrc/css/phui/phui-curtain-view.css' => '55dd0e59',
|
||||
'rsrc/css/phui/phui-document-pro.css' => 'bb18da6b',
|
||||
'rsrc/css/phui/phui-document-pro.css' => '8af7ea27',
|
||||
'rsrc/css/phui/phui-document-summary.css' => '9ca48bdf',
|
||||
'rsrc/css/phui/phui-document.css' => 'c32e8dec',
|
||||
'rsrc/css/phui/phui-feed-story.css' => '44a9c8e9',
|
||||
|
@ -157,7 +157,7 @@ return array(
|
|||
'rsrc/css/phui/phui-form-view.css' => '6175808d',
|
||||
'rsrc/css/phui/phui-form.css' => 'a5570f70',
|
||||
'rsrc/css/phui/phui-head-thing.css' => 'fd311e5f',
|
||||
'rsrc/css/phui/phui-header-view.css' => 'a3d1aecd',
|
||||
'rsrc/css/phui/phui-header-view.css' => 'e7de7ee2',
|
||||
'rsrc/css/phui/phui-hovercard.css' => 'f0592bcf',
|
||||
'rsrc/css/phui/phui-icon-set-selector.css' => '87db8fee',
|
||||
'rsrc/css/phui/phui-icon.css' => '4c46b6ba',
|
||||
|
@ -168,14 +168,14 @@ return array(
|
|||
'rsrc/css/phui/phui-lightbox.css' => '0a035e40',
|
||||
'rsrc/css/phui/phui-list.css' => '12eb8ce6',
|
||||
'rsrc/css/phui/phui-object-box.css' => '9cff003c',
|
||||
'rsrc/css/phui/phui-pager.css' => '77d8a794',
|
||||
'rsrc/css/phui/phui-pager.css' => 'edcbc226',
|
||||
'rsrc/css/phui/phui-pinboard-view.css' => '2495140e',
|
||||
'rsrc/css/phui/phui-property-list-view.css' => '2dc7993f',
|
||||
'rsrc/css/phui/phui-remarkup-preview.css' => '54a34863',
|
||||
'rsrc/css/phui/phui-segment-bar-view.css' => 'b1d1b892',
|
||||
'rsrc/css/phui/phui-spacing.css' => '042804d6',
|
||||
'rsrc/css/phui/phui-status.css' => 'd5263e49',
|
||||
'rsrc/css/phui/phui-tag-view.css' => '3fa7765e',
|
||||
'rsrc/css/phui/phui-tag-view.css' => '93b084cf',
|
||||
'rsrc/css/phui/phui-timeline-view.css' => '313c7f22',
|
||||
'rsrc/css/phui/phui-two-column-view.css' => 'ce9fa0b7',
|
||||
'rsrc/css/phui/workboards/phui-workboard-color.css' => '783cdff5',
|
||||
|
@ -298,6 +298,8 @@ return array(
|
|||
'rsrc/image/checker_dark.png' => 'd8e65881',
|
||||
'rsrc/image/checker_light.png' => 'a0155918',
|
||||
'rsrc/image/checker_lighter.png' => 'd5da91b6',
|
||||
'rsrc/image/controls/checkbox-checked.png' => 'ad6441ea',
|
||||
'rsrc/image/controls/checkbox-unchecked.png' => '8eb1f0ae',
|
||||
'rsrc/image/d5d8e1.png' => '0c2a1497',
|
||||
'rsrc/image/darkload.gif' => '1ffd3ec6',
|
||||
'rsrc/image/divot.png' => '94dded62',
|
||||
|
@ -393,9 +395,9 @@ return array(
|
|||
'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => '408bf173',
|
||||
'rsrc/js/application/dashboard/behavior-dashboard-query-panel-select.js' => '453c5375',
|
||||
'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => 'd4eecc63',
|
||||
'rsrc/js/application/diff/DiffChangeset.js' => 'aaaf4cb5',
|
||||
'rsrc/js/application/diff/DiffChangesetList.js' => '85abc805',
|
||||
'rsrc/js/application/diff/DiffInline.js' => '1d17130f',
|
||||
'rsrc/js/application/diff/DiffChangeset.js' => 'd498bddb',
|
||||
'rsrc/js/application/diff/DiffChangesetList.js' => '29bbc02c',
|
||||
'rsrc/js/application/diff/DiffInline.js' => '20553f71',
|
||||
'rsrc/js/application/diff/behavior-preview-link.js' => '051c7832',
|
||||
'rsrc/js/application/differential/behavior-comment-preview.js' => '51c5ad07',
|
||||
'rsrc/js/application/differential/behavior-diff-radios.js' => 'e1ff79b1',
|
||||
|
@ -404,7 +406,7 @@ return array(
|
|||
'rsrc/js/application/diffusion/DiffusionLocateFileSource.js' => 'c93358e3',
|
||||
'rsrc/js/application/diffusion/behavior-audit-preview.js' => 'd835b03a',
|
||||
'rsrc/js/application/diffusion/behavior-commit-branches.js' => 'bdaf4d04',
|
||||
'rsrc/js/application/diffusion/behavior-commit-graph.js' => '49ae8328',
|
||||
'rsrc/js/application/diffusion/behavior-commit-graph.js' => '75b83cbb',
|
||||
'rsrc/js/application/diffusion/behavior-diffusion-browse-file.js' => '054a0f0b',
|
||||
'rsrc/js/application/diffusion/behavior-jump-to.js' => '73d09eef',
|
||||
'rsrc/js/application/diffusion/behavior-load-blame.js' => '42126667',
|
||||
|
@ -494,7 +496,7 @@ return array(
|
|||
'rsrc/js/core/behavior-lightbox-attachments.js' => '560f41da',
|
||||
'rsrc/js/core/behavior-line-linker.js' => '1499a8cb',
|
||||
'rsrc/js/core/behavior-more.js' => 'a80d0378',
|
||||
'rsrc/js/core/behavior-object-selector.js' => 'e0ec7f2f',
|
||||
'rsrc/js/core/behavior-object-selector.js' => '77c1f0b0',
|
||||
'rsrc/js/core/behavior-oncopy.js' => '2926fff2',
|
||||
'rsrc/js/core/behavior-phabricator-nav.js' => '947753e0',
|
||||
'rsrc/js/core/behavior-phabricator-remarkup-assist.js' => 'acd29eee',
|
||||
|
@ -526,7 +528,7 @@ return array(
|
|||
'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8',
|
||||
'rsrc/js/phuix/PHUIXActionView.js' => 'b3465b9b',
|
||||
'rsrc/js/phuix/PHUIXAutocomplete.js' => 'f6699267',
|
||||
'rsrc/js/phuix/PHUIXButtonView.js' => '0f13520b',
|
||||
'rsrc/js/phuix/PHUIXButtonView.js' => 'a37126bd',
|
||||
'rsrc/js/phuix/PHUIXDropdownMenu.js' => '8018ee50',
|
||||
'rsrc/js/phuix/PHUIXExample.js' => '68af71ca',
|
||||
'rsrc/js/phuix/PHUIXFormControl.js' => '83e03671',
|
||||
|
@ -535,12 +537,12 @@ return array(
|
|||
'symbols' => array(
|
||||
'almanac-css' => 'dbb9b3af',
|
||||
'aphront-bars' => '231ac33c',
|
||||
'aphront-dark-console-css' => '53798a6d',
|
||||
'aphront-dark-console-css' => 'f7b071f1',
|
||||
'aphront-dialog-view-css' => '685c7e2d',
|
||||
'aphront-list-filter-view-css' => '5d6f0526',
|
||||
'aphront-multi-column-view-css' => '84cc6640',
|
||||
'aphront-panel-view-css' => '8427b78d',
|
||||
'aphront-table-view-css' => '34cf86b4',
|
||||
'aphront-table-view-css' => 'a3aa6910',
|
||||
'aphront-tokenizer-control-css' => '15d5ff71',
|
||||
'aphront-tooltip-css' => '173b9431',
|
||||
'aphront-typeahead-control-css' => '8a84cc7d',
|
||||
|
@ -560,16 +562,16 @@ return array(
|
|||
'conpherence-thread-manager' => '4d863052',
|
||||
'conpherence-transaction-css' => '85129c68',
|
||||
'd3' => 'a11a5ff2',
|
||||
'differential-changeset-view-css' => '983751ee',
|
||||
'differential-changeset-view-css' => 'c3f44655',
|
||||
'differential-core-view-css' => '5b7b8ff4',
|
||||
'differential-revision-add-comment-css' => 'c47f8c40',
|
||||
'differential-revision-comment-css' => '14b8565a',
|
||||
'differential-revision-history-css' => '0e8eb855',
|
||||
'differential-revision-list-css' => 'f3c47d33',
|
||||
'differential-table-of-contents-css' => 'ae4b7a55',
|
||||
'diffusion-history-css' => 'de70e348',
|
||||
'diffusion-history-css' => '6870e8c1',
|
||||
'diffusion-icons-css' => 'a6a1e2ba',
|
||||
'diffusion-readme-css' => '18bd3910',
|
||||
'diffusion-readme-css' => '419dd5b6',
|
||||
'diffusion-source-css' => '750add59',
|
||||
'diviner-shared-css' => '896f1d43',
|
||||
'font-fontawesome' => 'e838e088',
|
||||
|
@ -618,7 +620,7 @@ return array(
|
|||
'javelin-behavior-differential-user-select' => 'a8d8459d',
|
||||
'javelin-behavior-diffusion-browse-file' => '054a0f0b',
|
||||
'javelin-behavior-diffusion-commit-branches' => 'bdaf4d04',
|
||||
'javelin-behavior-diffusion-commit-graph' => '49ae8328',
|
||||
'javelin-behavior-diffusion-commit-graph' => '75b83cbb',
|
||||
'javelin-behavior-diffusion-jump-to' => '73d09eef',
|
||||
'javelin-behavior-diffusion-locate-file' => '6d3e1947',
|
||||
'javelin-behavior-diffusion-pull-lastmodified' => 'f01586dc',
|
||||
|
@ -656,7 +658,7 @@ return array(
|
|||
'javelin-behavior-phabricator-line-linker' => '1499a8cb',
|
||||
'javelin-behavior-phabricator-nav' => '947753e0',
|
||||
'javelin-behavior-phabricator-notification-example' => '8ce821c5',
|
||||
'javelin-behavior-phabricator-object-selector' => 'e0ec7f2f',
|
||||
'javelin-behavior-phabricator-object-selector' => '77c1f0b0',
|
||||
'javelin-behavior-phabricator-oncopy' => '2926fff2',
|
||||
'javelin-behavior-phabricator-remarkup-assist' => 'acd29eee',
|
||||
'javelin-behavior-phabricator-reveal-content' => '60821bc7',
|
||||
|
@ -772,9 +774,9 @@ return array(
|
|||
'phabricator-darklog' => 'c8e1ffe3',
|
||||
'phabricator-darkmessage' => 'c48cccdd',
|
||||
'phabricator-dashboard-css' => 'fe5b1869',
|
||||
'phabricator-diff-changeset' => 'aaaf4cb5',
|
||||
'phabricator-diff-changeset-list' => '85abc805',
|
||||
'phabricator-diff-inline' => '1d17130f',
|
||||
'phabricator-diff-changeset' => 'd498bddb',
|
||||
'phabricator-diff-changeset-list' => '29bbc02c',
|
||||
'phabricator-diff-inline' => '20553f71',
|
||||
'phabricator-drag-and-drop-file-upload' => '58dea2fa',
|
||||
'phabricator-draggable-list' => 'bea6e7f4',
|
||||
'phabricator-fatal-config-template-css' => '8f18fa41',
|
||||
|
@ -793,7 +795,7 @@ return array(
|
|||
'phabricator-object-selector-css' => '85ee8ce6',
|
||||
'phabricator-phtize' => 'd254d646',
|
||||
'phabricator-prefab' => 'c5af80a2',
|
||||
'phabricator-remarkup-css' => 'd1a5e11e',
|
||||
'phabricator-remarkup-css' => '509fb36e',
|
||||
'phabricator-search-results-css' => '8f8e08ed',
|
||||
'phabricator-shaped-request' => '7cbe244b',
|
||||
'phabricator-slowvote-css' => 'a94b7230',
|
||||
|
@ -820,8 +822,8 @@ return array(
|
|||
'phui-big-info-view-css' => 'bd903741',
|
||||
'phui-box-css' => '269cbc99',
|
||||
'phui-button-bar-css' => '39fe680c',
|
||||
'phui-button-css' => '9f13ddcc',
|
||||
'phui-button-simple-css' => '081cfeea',
|
||||
'phui-button-css' => '022581b4',
|
||||
'phui-button-simple-css' => '8e1baf68',
|
||||
'phui-calendar-css' => '477acfaa',
|
||||
'phui-calendar-day-css' => '572b1893',
|
||||
'phui-calendar-list-css' => '576be600',
|
||||
|
@ -834,14 +836,14 @@ return array(
|
|||
'phui-curtain-view-css' => '55dd0e59',
|
||||
'phui-document-summary-view-css' => '9ca48bdf',
|
||||
'phui-document-view-css' => 'c32e8dec',
|
||||
'phui-document-view-pro-css' => 'bb18da6b',
|
||||
'phui-document-view-pro-css' => '8af7ea27',
|
||||
'phui-feed-story-css' => '44a9c8e9',
|
||||
'phui-font-icon-base-css' => '870a7360',
|
||||
'phui-fontkit-css' => '1320ed01',
|
||||
'phui-form-css' => 'a5570f70',
|
||||
'phui-form-view-css' => '6175808d',
|
||||
'phui-head-thing-view-css' => 'fd311e5f',
|
||||
'phui-header-view-css' => 'a3d1aecd',
|
||||
'phui-header-view-css' => 'e7de7ee2',
|
||||
'phui-hovercard' => '1bd28176',
|
||||
'phui-hovercard-view-css' => 'f0592bcf',
|
||||
'phui-icon-set-selector-css' => '87db8fee',
|
||||
|
@ -858,16 +860,16 @@ return array(
|
|||
'phui-oi-color-css' => 'cd2b9b77',
|
||||
'phui-oi-drag-ui-css' => '08f4ccc3',
|
||||
'phui-oi-flush-ui-css' => '9d9685d6',
|
||||
'phui-oi-list-view-css' => '43752968',
|
||||
'phui-oi-list-view-css' => 'bf094950',
|
||||
'phui-oi-simple-ui-css' => 'a8beebea',
|
||||
'phui-pager-css' => '77d8a794',
|
||||
'phui-pager-css' => 'edcbc226',
|
||||
'phui-pinboard-view-css' => '2495140e',
|
||||
'phui-property-list-view-css' => '2dc7993f',
|
||||
'phui-remarkup-preview-css' => '54a34863',
|
||||
'phui-segment-bar-view-css' => 'b1d1b892',
|
||||
'phui-spacing-css' => '042804d6',
|
||||
'phui-status-list-view-css' => 'd5263e49',
|
||||
'phui-tag-view-css' => '3fa7765e',
|
||||
'phui-tag-view-css' => '93b084cf',
|
||||
'phui-theme-css' => '9f261c6b',
|
||||
'phui-timeline-view-css' => '313c7f22',
|
||||
'phui-two-column-view-css' => 'ce9fa0b7',
|
||||
|
@ -878,7 +880,7 @@ return array(
|
|||
'phuix-action-list-view' => 'b5c256b8',
|
||||
'phuix-action-view' => 'b3465b9b',
|
||||
'phuix-autocomplete' => 'f6699267',
|
||||
'phuix-button-view' => '0f13520b',
|
||||
'phuix-button-view' => 'a37126bd',
|
||||
'phuix-dropdown-menu' => '8018ee50',
|
||||
'phuix-form-control-view' => '83e03671',
|
||||
'phuix-icon-view' => 'bff6884b',
|
||||
|
@ -936,9 +938,6 @@ return array(
|
|||
'javelin-stratcom',
|
||||
'javelin-workflow',
|
||||
),
|
||||
'081cfeea' => array(
|
||||
'phui-button-css',
|
||||
),
|
||||
'0825c27a' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
|
@ -960,10 +959,6 @@ return array(
|
|||
'javelin-dom',
|
||||
'javelin-router',
|
||||
),
|
||||
'0f13520b' => array(
|
||||
'javelin-install',
|
||||
'javelin-dom',
|
||||
),
|
||||
'0f764c35' => array(
|
||||
'javelin-install',
|
||||
'javelin-util',
|
||||
|
@ -1021,9 +1016,6 @@ return array(
|
|||
'javelin-request',
|
||||
'javelin-uri',
|
||||
),
|
||||
'1d17130f' => array(
|
||||
'javelin-dom',
|
||||
),
|
||||
'1e911d0f' => array(
|
||||
'javelin-stratcom',
|
||||
'javelin-request',
|
||||
|
@ -1047,6 +1039,9 @@ return array(
|
|||
'javelin-install',
|
||||
'javelin-dom',
|
||||
),
|
||||
'20553f71' => array(
|
||||
'javelin-dom',
|
||||
),
|
||||
'2290aeef' => array(
|
||||
'javelin-install',
|
||||
'javelin-dom',
|
||||
|
@ -1072,6 +1067,10 @@ return array(
|
|||
'javelin-install',
|
||||
'javelin-util',
|
||||
),
|
||||
'29bbc02c' => array(
|
||||
'javelin-install',
|
||||
'phuix-button-view',
|
||||
),
|
||||
'2ae077e1' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
|
@ -1225,11 +1224,6 @@ return array(
|
|||
'javelin-vector',
|
||||
'javelin-stratcom',
|
||||
),
|
||||
'49ae8328' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
),
|
||||
'4b3c4443' => array(
|
||||
'phuix-icon-view',
|
||||
),
|
||||
|
@ -1446,6 +1440,11 @@ return array(
|
|||
'javelin-install',
|
||||
'javelin-workboard-card',
|
||||
),
|
||||
'75b83cbb' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
),
|
||||
'76b9fc3e' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-stratcom',
|
||||
|
@ -1458,6 +1457,12 @@ return array(
|
|||
'javelin-reactor',
|
||||
'javelin-util',
|
||||
),
|
||||
'77c1f0b0' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
'javelin-request',
|
||||
'javelin-util',
|
||||
),
|
||||
'782ab6e7' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
|
@ -1514,9 +1519,6 @@ return array(
|
|||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
),
|
||||
'85abc805' => array(
|
||||
'javelin-install',
|
||||
),
|
||||
'85ee8ce6' => array(
|
||||
'aphront-dialog-view-css',
|
||||
),
|
||||
|
@ -1564,6 +1566,9 @@ return array(
|
|||
'javelin-stratcom',
|
||||
'javelin-install',
|
||||
),
|
||||
'8e1baf68' => array(
|
||||
'phui-button-css',
|
||||
),
|
||||
'8ff5e24c' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-stratcom',
|
||||
|
@ -1621,9 +1626,6 @@ return array(
|
|||
'javelin-mask',
|
||||
'phabricator-drag-and-drop-file-upload',
|
||||
),
|
||||
'983751ee' => array(
|
||||
'phui-inline-comment-view-css',
|
||||
),
|
||||
'9a6dd75c' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-stratcom',
|
||||
|
@ -1657,6 +1659,10 @@ return array(
|
|||
'javelin-util',
|
||||
'phabricator-keyboard-shortcut',
|
||||
),
|
||||
'a37126bd' => array(
|
||||
'javelin-install',
|
||||
'javelin-dom',
|
||||
),
|
||||
'a3a63478' => array(
|
||||
'phui-workcard-view-css',
|
||||
),
|
||||
|
@ -1716,17 +1722,6 @@ return array(
|
|||
'javelin-util',
|
||||
'phabricator-prefab',
|
||||
),
|
||||
'aaaf4cb5' => array(
|
||||
'javelin-dom',
|
||||
'javelin-util',
|
||||
'javelin-stratcom',
|
||||
'javelin-install',
|
||||
'javelin-workflow',
|
||||
'javelin-router',
|
||||
'javelin-behavior-device',
|
||||
'javelin-vector',
|
||||
'phabricator-diff-inline',
|
||||
),
|
||||
'ab2f381b' => array(
|
||||
'javelin-request',
|
||||
'javelin-behavior',
|
||||
|
@ -1877,6 +1872,9 @@ return array(
|
|||
'javelin-dom',
|
||||
'javelin-vector',
|
||||
),
|
||||
'c3f44655' => array(
|
||||
'phui-inline-comment-view-css',
|
||||
),
|
||||
'c420b0b9' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-behavior-device',
|
||||
|
@ -1988,6 +1986,17 @@ return array(
|
|||
'javelin-uri',
|
||||
'javelin-util',
|
||||
),
|
||||
'd498bddb' => array(
|
||||
'javelin-dom',
|
||||
'javelin-util',
|
||||
'javelin-stratcom',
|
||||
'javelin-install',
|
||||
'javelin-workflow',
|
||||
'javelin-router',
|
||||
'javelin-behavior-device',
|
||||
'javelin-vector',
|
||||
'phabricator-diff-inline',
|
||||
),
|
||||
'd4eecc63' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
|
@ -2029,12 +2038,6 @@ return array(
|
|||
'javelin-typeahead-ondemand-source',
|
||||
'javelin-dom',
|
||||
),
|
||||
'e0ec7f2f' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
'javelin-request',
|
||||
'javelin-util',
|
||||
),
|
||||
'e1d25dfb' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-stratcom',
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_file.file
|
||||
CHANGE contentHash contentHash BINARY(64);
|
68
resources/sql/autopatches/20170528.maniphestdupes.php
Normal file
68
resources/sql/autopatches/20170528.maniphestdupes.php
Normal file
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
$table = new ManiphestTransaction();
|
||||
$add_edges = array();
|
||||
|
||||
foreach (new LiskMigrationIterator($table) as $txn) {
|
||||
$txn_type = $txn->getTransactionType();
|
||||
|
||||
if ($txn_type == 'mergedinto') {
|
||||
// dupe handling as implemented in D10427, which creates a specific txn
|
||||
$add_edges[] = array(
|
||||
'src' => $txn->getObjectPHID(),
|
||||
'dst' => $txn->getNewValue(),
|
||||
);
|
||||
} else if ($txn_type == 'status' && $txn->getNewValue() == 'duplicate') {
|
||||
// dupe handling as originally implemented, which just changes the status
|
||||
// and adds a comment
|
||||
$src_phid = $txn->getObjectPHID();
|
||||
|
||||
// get all the comment transactions associated with this task
|
||||
$viewer = PhabricatorUser::getOmnipotentUser();
|
||||
$comment_txns = id(new ManiphestTransactionQuery())
|
||||
->setViewer($viewer)
|
||||
->withObjectPHIDs(array($src_phid))
|
||||
->needComments(true)
|
||||
->execute();
|
||||
|
||||
// check each comment, looking for the "Merged Into" message
|
||||
foreach ($comment_txns as $comment_txn) {
|
||||
if ($comment_txn->hasComment()) {
|
||||
$comment = $comment_txn->getComment()->getContent();
|
||||
$pattern = '/^\xE2\x9C\x98 Merged into T(\d+)\.$/';
|
||||
$matches = array();
|
||||
|
||||
if (preg_match($pattern, $comment, $matches)) {
|
||||
$dst_task = id(new ManiphestTaskQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($matches[1]))
|
||||
->executeOne();
|
||||
|
||||
if ($dst_task) {
|
||||
$dst_phid = $dst_task->getPHID();
|
||||
$add_edges[] = array(
|
||||
'src' => $src_phid,
|
||||
'dst' => $dst_phid,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($add_edges) {
|
||||
foreach ($add_edges as $edge) {
|
||||
$src_phid = $edge['src'];
|
||||
$dst_phid = $edge['dst'];
|
||||
|
||||
$type = ManiphestTaskIsDuplicateOfTaskEdgeType::EDGECONST;
|
||||
try {
|
||||
$editor = id(new PhabricatorEdgeEditor())
|
||||
->addEdge($src_phid, $type, $dst_phid)
|
||||
->save();
|
||||
} catch (PhabricatorEdgeCycleException $ex) {
|
||||
// Some earlier or later merge made this invalid, just skip it.
|
||||
}
|
||||
}
|
||||
}
|
|
@ -84,8 +84,8 @@ abstract class AlmanacController
|
|||
'a',
|
||||
array(
|
||||
'class' => ($can_edit
|
||||
? 'button grey small'
|
||||
: 'button grey small disabled'),
|
||||
? 'button button-grey small'
|
||||
: 'button button-grey small disabled'),
|
||||
'sigil' => 'workflow',
|
||||
'href' => $delete_uri,
|
||||
),
|
||||
|
|
|
@ -77,7 +77,7 @@ final class AlmanacBindingTableView extends AphrontView {
|
|||
phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'small grey button',
|
||||
'class' => 'small button button-grey',
|
||||
'href' => '/almanac/binding/'.$binding->getID().'/',
|
||||
),
|
||||
pht('Details')),
|
||||
|
|
|
@ -30,9 +30,9 @@ final class AlmanacInterfaceTableView extends AphrontView {
|
|||
$can_edit = $this->getCanEdit();
|
||||
|
||||
if ($can_edit) {
|
||||
$button_class = 'small grey button';
|
||||
$button_class = 'small button button-grey';
|
||||
} else {
|
||||
$button_class = 'small grey button disabled';
|
||||
$button_class = 'small button button-grey disabled';
|
||||
}
|
||||
|
||||
$handles = $viewer->loadHandles(mpull($interfaces, 'getNetworkPHID'));
|
||||
|
|
|
@ -49,6 +49,17 @@ final class PhabricatorAuditTransaction
|
|||
return $blocks;
|
||||
}
|
||||
|
||||
public function getActionStrength() {
|
||||
$type = $this->getTransactionType();
|
||||
|
||||
switch ($type) {
|
||||
case self::TYPE_COMMIT:
|
||||
return 3.0;
|
||||
}
|
||||
|
||||
return parent::getActionStrength();
|
||||
}
|
||||
|
||||
public function getRequiredHandlePHIDs() {
|
||||
$phids = parent::getRequiredHandlePHIDs();
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ final class PhabricatorConduitTokensSettingsPanel
|
|||
javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
'href' => '/conduit/token/terminate/'.$token->getID().'/',
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
|
|
|
@ -129,7 +129,7 @@ final class PhabricatorSetupIssueView extends AphrontView {
|
|||
array(
|
||||
'href' => '/config/unignore/'.$issue->getIssueKey().'/',
|
||||
'sigil' => 'workflow',
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Unignore Setup Issue'));
|
||||
} else {
|
||||
|
@ -138,7 +138,7 @@ final class PhabricatorSetupIssueView extends AphrontView {
|
|||
array(
|
||||
'href' => '/config/ignore/'.$issue->getIssueKey().'/',
|
||||
'sigil' => 'workflow',
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Ignore Setup Issue'));
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ final class PhabricatorSetupIssueView extends AphrontView {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/config/issue/'.$issue->getIssueKey().'/',
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'style' => 'float: right',
|
||||
),
|
||||
pht('Reload Page'));
|
||||
|
|
|
@ -140,7 +140,7 @@ abstract class ConpherenceController extends PhabricatorController {
|
|||
'button',
|
||||
array(
|
||||
'type' => 'SUBMIT',
|
||||
'class' => 'button green mlr',
|
||||
'class' => 'button button-green mlr',
|
||||
),
|
||||
pht('Join Room'));
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ final class ConpherenceRoomPictureController
|
|||
$button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $spec['tip'],
|
||||
|
|
|
@ -404,7 +404,7 @@ final class ConpherenceDurableColumnView extends AphrontTagView {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/conpherence/search/',
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Find Rooms')),
|
||||
);
|
||||
|
|
|
@ -170,7 +170,8 @@ final class DarkConsoleServicesPlugin extends DarkConsolePlugin {
|
|||
'a',
|
||||
array(
|
||||
'href' => $data['analyzeURI'],
|
||||
'class' => $data['didAnalyze'] ? 'disabled button' : 'green button',
|
||||
'class' => $data['didAnalyze'] ?
|
||||
'disabled button' : 'button button-green',
|
||||
),
|
||||
pht('Analyze Query Plans')),
|
||||
phutil_tag('h1', array(), pht('Calls to External Services')),
|
||||
|
|
|
@ -67,7 +67,7 @@ final class DarkConsoleXHProfPlugin extends DarkConsolePlugin {
|
|||
'a',
|
||||
array(
|
||||
'href' => $profile_uri,
|
||||
'class' => $run ? 'disabled button' : 'green button',
|
||||
'class' => $run ? 'disabled button' : 'button button-green',
|
||||
),
|
||||
pht('Profile Page')),
|
||||
phutil_tag('h1', array(), pht('XHProf Profiler')),
|
||||
|
|
|
@ -41,7 +41,7 @@ final class PhabricatorDaemonTasksTableView extends AphrontView {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/daemon/task/'.$task->getID().'/',
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
),
|
||||
pht('View Task')),
|
||||
);
|
||||
|
|
|
@ -156,7 +156,7 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
|||
phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'href' => $request_uri
|
||||
->alter('large', 'true')
|
||||
->setFragment('toc'),
|
||||
|
|
|
@ -174,7 +174,7 @@ final class DifferentialChangesetListView extends AphrontView {
|
|||
$load = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'href' => '#'.$uniq_id,
|
||||
'sigil' => 'differential-load',
|
||||
'meta' => array(
|
||||
|
@ -275,6 +275,10 @@ final class DifferentialChangesetListView extends AphrontView {
|
|||
pht('Hide or show the current file.'),
|
||||
'You must select a file to hide or show.' =>
|
||||
pht('You must select a file to hide or show.'),
|
||||
|
||||
'Unsaved' => pht('Unsaved'),
|
||||
'Unsubmitted' => pht('Unsubmitted'),
|
||||
'Comments' => pht('Comments'),
|
||||
),
|
||||
));
|
||||
|
||||
|
|
|
@ -57,11 +57,14 @@ final class DiffusionSearchQueryConduitAPIMethod
|
|||
$results = array();
|
||||
$future = $repository->getLocalCommandFuture(
|
||||
// NOTE: --perl-regexp is available only with libpcre compiled in.
|
||||
'grep --extended-regexp --null -n --no-color -e %s %s -- %s',
|
||||
$grep,
|
||||
'grep --extended-regexp --null -n --no-color -f - %s -- %s',
|
||||
$drequest->getStableCommit(),
|
||||
$path);
|
||||
|
||||
// NOTE: We're writing the pattern on stdin to avoid issues with UTF8
|
||||
// being mangled by the shell. See T12807.
|
||||
$future->write($grep);
|
||||
|
||||
$binary_pattern = '/Binary file [^:]*:(.+) matches/';
|
||||
$lines = new LinesOfALargeExecFuture($future);
|
||||
|
||||
|
|
|
@ -333,6 +333,7 @@ abstract class DiffusionController extends PhabricatorController {
|
|||
$tag = id(new PHUITagView())
|
||||
->setName($commit)
|
||||
->setColor(PHUITagView::COLOR_INDIGO)
|
||||
->setBorder(PHUITagView::BORDER_NONE)
|
||||
->setType(PHUITagView::TYPE_SHADE);
|
||||
|
||||
return $tag;
|
||||
|
|
|
@ -69,7 +69,8 @@ final class DiffusionHistoryController extends DiffusionController {
|
|||
return $this->newPage()
|
||||
->setTitle($title)
|
||||
->setCrumbs($crumbs)
|
||||
->appendChild($view);
|
||||
->appendChild($view)
|
||||
->addClass('diffusion-history-view');
|
||||
}
|
||||
|
||||
private function buildHeader(DiffusionRequest $drequest) {
|
||||
|
|
|
@ -94,18 +94,10 @@ final class DiffusionCommitListView extends AphrontView {
|
|||
$handles = $viewer->loadHandles($phids);
|
||||
|
||||
$cur_date = 0;
|
||||
$list = null;
|
||||
$header = null;
|
||||
$view = array();
|
||||
foreach ($this->commits as $commit) {
|
||||
$new_date = date('Ymd', $commit->getEpoch());
|
||||
if ($cur_date != $new_date) {
|
||||
if ($list) {
|
||||
$view[] = id(new PHUIObjectBoxView())
|
||||
->setHeader($header)
|
||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||
->setObjectList($list);
|
||||
}
|
||||
$new_date = phabricator_date($commit->getEpoch(), $viewer);
|
||||
if ($cur_date !== $new_date) {
|
||||
$date = ucfirst(
|
||||
phabricator_relative_date($commit->getEpoch(), $viewer));
|
||||
$header = id(new PHUIHeaderView())
|
||||
|
@ -113,6 +105,11 @@ final class DiffusionCommitListView extends AphrontView {
|
|||
$list = id(new PHUIObjectItemListView())
|
||||
->setFlush(true)
|
||||
->addClass('diffusion-history-list');
|
||||
|
||||
$view[] = id(new PHUIObjectBoxView())
|
||||
->setHeader($header)
|
||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||
->setObjectList($list);
|
||||
}
|
||||
|
||||
$commit_phid = $commit->getPHID();
|
||||
|
@ -146,6 +143,7 @@ final class DiffusionCommitListView extends AphrontView {
|
|||
->setName($commit_name)
|
||||
->setType(PHUITagView::TYPE_SHADE)
|
||||
->setColor(PHUITagView::COLOR_INDIGO)
|
||||
->setBorder(PHUITagView::BORDER_NONE)
|
||||
->setSlimShady(true);
|
||||
|
||||
$item = id(new PHUIObjectItemView())
|
||||
|
|
|
@ -110,7 +110,7 @@ final class DiffusionHistoryListView extends DiffusionHistoryView {
|
|||
->setType(PHUITagView::TYPE_SHADE)
|
||||
->setColor(PHUITagView::COLOR_BLUE)
|
||||
->setHref('/D'.$d_id)
|
||||
->addClass('diffusion-differential-tag')
|
||||
->setBorder(PHUITagView::BORDER_NONE)
|
||||
->setSlimShady(true);
|
||||
}
|
||||
}
|
||||
|
@ -155,6 +155,7 @@ final class DiffusionHistoryListView extends DiffusionHistoryView {
|
|||
->setName($commit_name)
|
||||
->setType(PHUITagView::TYPE_SHADE)
|
||||
->setColor(PHUITagView::COLOR_INDIGO)
|
||||
->setBorder(PHUITagView::BORDER_NONE)
|
||||
->setSlimShady(true);
|
||||
|
||||
$item = id(new PHUIObjectItemView())
|
||||
|
|
|
@ -82,7 +82,7 @@ final class PhabricatorFileComposeController
|
|||
$buttons[] = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip compose-select-color',
|
||||
'style' => 'margin: 0 8px 8px 0',
|
||||
'meta' => array(
|
||||
|
@ -102,7 +102,7 @@ final class PhabricatorFileComposeController
|
|||
$icons[] = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip compose-select-icon',
|
||||
'style' => 'margin: 0 8px 8px 0',
|
||||
'meta' => array(
|
||||
|
|
|
@ -68,7 +68,7 @@ final class PhabricatorFileTransformListController
|
|||
$view_link = phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'small grey button',
|
||||
'class' => 'small button button-grey',
|
||||
'href' => $view_href,
|
||||
),
|
||||
$view_text);
|
||||
|
|
|
@ -191,7 +191,7 @@ final class HeraldRuleController extends HeraldController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button green',
|
||||
'class' => 'button button-green',
|
||||
'sigil' => 'create-condition',
|
||||
'mustcapture' => true,
|
||||
),
|
||||
|
@ -212,7 +212,7 @@ final class HeraldRuleController extends HeraldController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button green',
|
||||
'class' => 'button button-green',
|
||||
'sigil' => 'create-action',
|
||||
'mustcapture' => true,
|
||||
),
|
||||
|
|
|
@ -173,7 +173,7 @@ final class ManiphestBatchEditController extends ManiphestController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button green',
|
||||
'class' => 'button button-green',
|
||||
'sigil' => 'add-action',
|
||||
'mustcapture' => true,
|
||||
),
|
||||
|
|
|
@ -36,6 +36,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
|
|||
ManiphestTaskHasMockEdgeType::EDGECONST,
|
||||
PhabricatorObjectMentionedByObjectEdgeType::EDGECONST,
|
||||
PhabricatorObjectMentionsObjectEdgeType::EDGECONST,
|
||||
ManiphestTaskHasDuplicateTaskEdgeType::EDGECONST,
|
||||
);
|
||||
|
||||
$phid = $task->getPHID();
|
||||
|
@ -159,6 +160,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
|
|||
|
||||
$related_tabs[] = $this->newMocksTab($task, $query);
|
||||
$related_tabs[] = $this->newMentionsTab($task, $query);
|
||||
$related_tabs[] = $this->newDuplicatesTab($task, $query);
|
||||
|
||||
$tab_view = null;
|
||||
|
||||
|
@ -553,6 +555,32 @@ final class ManiphestTaskDetailController extends ManiphestController {
|
|||
->appendChild($view);
|
||||
}
|
||||
|
||||
private function newDuplicatesTab(
|
||||
ManiphestTask $task,
|
||||
PhabricatorEdgeQuery $edge_query) {
|
||||
|
||||
$in_type = ManiphestTaskHasDuplicateTaskEdgeType::EDGECONST;
|
||||
$in_phids = $edge_query->getDestinationPHIDs(array(), array($in_type));
|
||||
|
||||
$viewer = $this->getViewer();
|
||||
$in_handles = $viewer->loadHandles($in_phids);
|
||||
$in_handles = $this->getCompleteHandles($in_handles);
|
||||
|
||||
$view = new PHUIPropertyListView();
|
||||
|
||||
if (!count($in_handles)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$view->addProperty(
|
||||
pht('Duplicates Merged Here'), $in_handles->renderList());
|
||||
|
||||
return id(new PHUITabView())
|
||||
->setName(pht('Duplicates'))
|
||||
->setKey('duplicates')
|
||||
->appendChild($view);
|
||||
}
|
||||
|
||||
private function getCompleteHandles(PhabricatorHandleList $handles) {
|
||||
$phids = array();
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ final class ManiphestTaskResultListView extends ManiphestView {
|
|||
array(
|
||||
'href' => '#',
|
||||
'mustcapture' => true,
|
||||
'class' => 'grey button',
|
||||
'class' => 'button button-grey',
|
||||
'id' => 'batch-select-all',
|
||||
),
|
||||
pht('Select All'));
|
||||
|
@ -206,7 +206,7 @@ final class ManiphestTaskResultListView extends ManiphestView {
|
|||
array(
|
||||
'href' => '#',
|
||||
'mustcapture' => true,
|
||||
'class' => 'grey button',
|
||||
'class' => 'button button-grey',
|
||||
'id' => 'batch-select-none',
|
||||
),
|
||||
pht('Clear Selection'));
|
||||
|
@ -224,7 +224,7 @@ final class ManiphestTaskResultListView extends ManiphestView {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/maniphest/export/'.$saved_query->getQueryKey().'/',
|
||||
'class' => 'grey button',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Export to Excel'));
|
||||
|
||||
|
|
|
@ -13,10 +13,6 @@ final class PhabricatorMetaMTAWorker
|
|||
|
||||
protected function doWork() {
|
||||
$message = $this->loadMessage();
|
||||
if (!$message) {
|
||||
throw new PhabricatorWorkerPermanentFailureException(
|
||||
pht('Unable to load message!'));
|
||||
}
|
||||
|
||||
if ($message->getStatus() != PhabricatorMailOutboundStatus::STATUS_QUEUE) {
|
||||
return;
|
||||
|
@ -32,7 +28,18 @@ final class PhabricatorMetaMTAWorker
|
|||
|
||||
private function loadMessage() {
|
||||
$message_id = $this->getTaskData();
|
||||
return id(new PhabricatorMetaMTAMail())->load($message_id);
|
||||
$message = id(new PhabricatorMetaMTAMail())
|
||||
->load($message_id);
|
||||
|
||||
if (!$message) {
|
||||
throw new PhabricatorWorkerPermanentFailureException(
|
||||
pht(
|
||||
'Unable to load mail message (with ID "%s") while preparing to '.
|
||||
'deliver it.',
|
||||
$message_id));
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function renderForDisplay(PhabricatorUser $viewer) {
|
||||
|
|
|
@ -341,7 +341,7 @@ final class PhabricatorMetaMTAApplicationEmailPanel
|
|||
$button_edit = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
'href' => $uri->alter('edit', $email->getID()),
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
|
@ -350,7 +350,7 @@ final class PhabricatorMetaMTAApplicationEmailPanel
|
|||
$button_remove = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
'href' => $uri->alter('delete', $email->getID()),
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
|
|
|
@ -87,7 +87,7 @@ final class PhabricatorOAuthServerAuthorizationsSettingsPanel
|
|||
'a',
|
||||
array(
|
||||
'href' => $this->getPanelURI('?revoke='.$authorization->getID()),
|
||||
'class' => 'small grey button',
|
||||
'class' => 'small button button-grey',
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
pht('Revoke'));
|
||||
|
|
|
@ -124,7 +124,7 @@ final class PhabricatorOwnersPathsController
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button green',
|
||||
'class' => 'button button-green',
|
||||
'sigil' => 'addpath',
|
||||
'mustcapture' => true,
|
||||
),
|
||||
|
|
|
@ -113,7 +113,7 @@ final class PassphraseCredentialControl extends AphrontFormControl {
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'sigil' => 'passphrase-credential-add',
|
||||
'mustcapture' => true,
|
||||
),
|
||||
|
|
|
@ -190,7 +190,7 @@ final class PhabricatorPeopleProfilePictureController
|
|||
$button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $spec['tip'],
|
||||
|
|
|
@ -133,7 +133,7 @@ final class PhameBlogProfilePictureController
|
|||
$button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $spec['tip'],
|
||||
|
|
|
@ -120,7 +120,7 @@ final class PholioUploadedImageView extends AphrontView {
|
|||
return javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'sigil' => 'pholio-drop-remove',
|
||||
),
|
||||
'X');
|
||||
|
|
|
@ -152,7 +152,7 @@ final class PhortuneCartCheckoutController
|
|||
$new_method = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'href' => $payment_method_uri,
|
||||
),
|
||||
pht('Add New Payment Method'));
|
||||
|
|
|
@ -133,7 +133,7 @@ final class PhortuneMerchantPictureController
|
|||
$button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $spec['tip'],
|
||||
|
|
|
@ -123,7 +123,7 @@ final class PhortuneSubscriptionEditController extends PhortuneController {
|
|||
'a',
|
||||
array(
|
||||
'href' => $uri,
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Add Payment Method...'));
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ final class PhortuneOrderTableView extends AphrontView {
|
|||
'a',
|
||||
array(
|
||||
'href' => $cart->getCheckoutURI(),
|
||||
'class' => 'small green button',
|
||||
'class' => 'small button button-green',
|
||||
),
|
||||
pht('Pay Now')),
|
||||
);
|
||||
|
|
|
@ -103,7 +103,7 @@ final class PhrictionDiffController extends PhrictionController {
|
|||
'a',
|
||||
array(
|
||||
'href' => $uri->alter('l', $l - 1)->alter('r', $r - 1),
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht("\xC2\xAB Previous Change"));
|
||||
} else {
|
||||
|
@ -111,7 +111,7 @@ final class PhrictionDiffController extends PhrictionController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button grey disabled',
|
||||
'class' => 'button button-grey disabled',
|
||||
),
|
||||
pht('Original Change'));
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ final class PhrictionDiffController extends PhrictionController {
|
|||
'a',
|
||||
array(
|
||||
'href' => $uri->alter('l', $l + 1)->alter('r', $r + 1),
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht("Next Change \xC2\xBB"));
|
||||
} else {
|
||||
|
@ -130,7 +130,7 @@ final class PhrictionDiffController extends PhrictionController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button grey disabled',
|
||||
'class' => 'button button-grey disabled',
|
||||
),
|
||||
pht('Most Recent Change'));
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ final class PhrictionDiffController extends PhrictionController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/phriction/edit/'.$document_id.'/',
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Edit Current Version'));
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ final class PhrictionDiffController extends PhrictionController {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/phriction/edit/'.$document_id.'/?revert='.$version,
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
),
|
||||
pht('Revert to Version %s...', $version));
|
||||
}
|
||||
|
|
|
@ -199,7 +199,7 @@ final class PhabricatorPolicyEditController
|
|||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'class' => 'button green',
|
||||
'class' => 'button button-green',
|
||||
'sigil' => 'create-rule',
|
||||
'mustcapture' => true,
|
||||
),
|
||||
|
|
|
@ -138,7 +138,7 @@ final class PhabricatorProjectBoardBackgroundController
|
|||
$button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $option['name'],
|
||||
|
|
|
@ -134,7 +134,7 @@ final class PhabricatorProjectEditPictureController
|
|||
$button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $spec['tip'],
|
||||
|
@ -285,7 +285,7 @@ final class PhabricatorProjectEditPictureController
|
|||
$default_button = javelin_tag(
|
||||
'button',
|
||||
array(
|
||||
'class' => 'grey profile-image-button',
|
||||
'class' => 'button-grey profile-image-button',
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => pht('Use Icon and Color'),
|
||||
|
|
|
@ -63,7 +63,7 @@ final class PhabricatorEmailAddressesSettingsPanel
|
|||
$button_verify = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
'href' => $uri->alter('verify', $email->getID()),
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
|
@ -72,7 +72,7 @@ final class PhabricatorEmailAddressesSettingsPanel
|
|||
$button_make_primary = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
'href' => $uri->alter('primary', $email->getID()),
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
|
@ -81,7 +81,7 @@ final class PhabricatorEmailAddressesSettingsPanel
|
|||
$button_remove = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button small grey',
|
||||
'class' => 'button small button-grey',
|
||||
'href' => $uri->alter('delete', $email->getID()),
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
|
|
|
@ -69,7 +69,7 @@ final class PhabricatorMultiFactorSettingsPanel
|
|||
array(
|
||||
'href' => $this->getPanelURI('?delete='.$factor->getID()),
|
||||
'sigil' => 'workflow',
|
||||
'class' => 'small grey button',
|
||||
'class' => 'small button button-grey',
|
||||
),
|
||||
pht('Remove')),
|
||||
);
|
||||
|
|
|
@ -58,7 +58,7 @@ final class PhabricatorSessionsSettingsPanel extends PhabricatorSettingsPanel {
|
|||
$button = phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'small grey button disabled',
|
||||
'class' => 'small button button-grey disabled',
|
||||
),
|
||||
pht('Current'));
|
||||
} else {
|
||||
|
@ -67,7 +67,7 @@ final class PhabricatorSessionsSettingsPanel extends PhabricatorSettingsPanel {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/auth/session/terminate/'.$session->getID().'/',
|
||||
'class' => 'small grey button',
|
||||
'class' => 'small button button-grey',
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
pht('Terminate'));
|
||||
|
|
|
@ -30,7 +30,7 @@ final class PhabricatorTokensSettingsPanel extends PhabricatorSettingsPanel {
|
|||
'a',
|
||||
array(
|
||||
'href' => '/auth/token/revoke/'.$token->getID().'/',
|
||||
'class' => 'small grey button',
|
||||
'class' => 'small button button-grey',
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
pht('Revoke'));
|
||||
|
@ -38,7 +38,7 @@ final class PhabricatorTokensSettingsPanel extends PhabricatorSettingsPanel {
|
|||
$button = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'small grey button disabled',
|
||||
'class' => 'small button button-grey disabled',
|
||||
),
|
||||
pht('Revoke'));
|
||||
}
|
||||
|
|
|
@ -68,21 +68,10 @@ final class PHUIBoxExample extends PhabricatorUIExample {
|
|||
->setText(pht('Such Wow'))
|
||||
->addClass(PHUI::MARGIN_SMALL_RIGHT);
|
||||
|
||||
$badge1 = id(new PHUIBadgeMiniView())
|
||||
->setIcon('fa-bug')
|
||||
->setHeader(pht('Bugmeister'));
|
||||
|
||||
$badge2 = id(new PHUIBadgeMiniView())
|
||||
->setIcon('fa-heart')
|
||||
->setHeader(pht('Funder'))
|
||||
->setQuality(PhabricatorBadgesQuality::UNCOMMON);
|
||||
|
||||
$header = id(new PHUIHeaderView())
|
||||
->setHeader(pht('Fancy Box'))
|
||||
->addActionLink($button)
|
||||
->setSubheader(pht('Much Features'))
|
||||
->addBadge($badge1)
|
||||
->addBadge($badge2);
|
||||
->setSubheader(pht('Much Features'));
|
||||
|
||||
$obj4 = id(new PHUIObjectBoxView())
|
||||
->setHeader($header)
|
||||
|
@ -116,7 +105,9 @@ final class PHUIBoxExample extends PhabricatorUIExample {
|
|||
|
||||
return phutil_tag(
|
||||
'div',
|
||||
array(),
|
||||
array(
|
||||
'class' => 'ml',
|
||||
),
|
||||
array(
|
||||
$head1,
|
||||
$wrap1,
|
||||
|
|
|
@ -16,63 +16,11 @@ final class PHUIButtonExample extends PhabricatorUIExample {
|
|||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
|
||||
$colors = array('', 'green', 'grey', 'disabled');
|
||||
$sizes = array('', 'small');
|
||||
$tags = array('a', 'button');
|
||||
|
||||
// phutil_tag
|
||||
|
||||
$column = array();
|
||||
foreach ($tags as $tag) {
|
||||
foreach ($colors as $color) {
|
||||
foreach ($sizes as $key => $size) {
|
||||
$class = implode(' ', array($color, $size));
|
||||
|
||||
if ($tag == 'a') {
|
||||
$class .= ' button';
|
||||
}
|
||||
|
||||
$column[$key][] = phutil_tag(
|
||||
$tag,
|
||||
array(
|
||||
'class' => $class,
|
||||
),
|
||||
phutil_utf8_ucwords($size.' '.$color.' '.$tag));
|
||||
|
||||
$column[$key][] = hsprintf('<br /><br />');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$column3 = array();
|
||||
foreach ($colors as $color) {
|
||||
$caret = phutil_tag('span', array('class' => 'caret'), '');
|
||||
$column3[] = phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => $color.' button dropdown',
|
||||
),
|
||||
array(
|
||||
phutil_utf8_ucwords($color.' Dropdown'),
|
||||
$caret,
|
||||
));
|
||||
$column3[] = hsprintf('<br /><br />');
|
||||
}
|
||||
|
||||
$layout1 = id(new AphrontMultiColumnView())
|
||||
->addColumn($column[0])
|
||||
->addColumn($column[1])
|
||||
->addColumn($column3)
|
||||
->setFluidLayout(true)
|
||||
->setGutter(AphrontMultiColumnView::GUTTER_MEDIUM);
|
||||
|
||||
// PHUIButtonView
|
||||
|
||||
$colors = array(
|
||||
null,
|
||||
PHUIButtonView::GREEN,
|
||||
PHUIButtonView::GREY,
|
||||
PHUIButtonView::DISABLED,
|
||||
);
|
||||
$sizes = array(null, PHUIButtonView::SMALL);
|
||||
$column = array();
|
||||
|
@ -223,24 +171,21 @@ final class PHUIButtonExample extends PhabricatorUIExample {
|
|||
|
||||
// Set it and forget it
|
||||
|
||||
$head1 = id(new PHUIHeaderView())
|
||||
->setHeader('phutil_tag');
|
||||
|
||||
$head2 = id(new PHUIHeaderView())
|
||||
->setHeader('PHUIButtonView');
|
||||
->setHeader('PHUIButtonView')
|
||||
->addClass('ml');
|
||||
|
||||
$head3 = id(new PHUIHeaderView())
|
||||
->setHeader(pht('Icon Buttons'));
|
||||
->setHeader(pht('Icon Buttons'))
|
||||
->addClass('ml');
|
||||
|
||||
$head4 = id(new PHUIHeaderView())
|
||||
->setHeader(pht('Simple Buttons'));
|
||||
->setHeader(pht('Simple Buttons'))
|
||||
->addClass('ml');
|
||||
|
||||
$head5 = id(new PHUIHeaderView())
|
||||
->setHeader(pht('Big Icon Buttons'));
|
||||
|
||||
$wrap1 = id(new PHUIBoxView())
|
||||
->appendChild($layout1)
|
||||
->addMargin(PHUI::MARGIN_LARGE);
|
||||
->setHeader(pht('Big Icon Buttons'))
|
||||
->addClass('ml');
|
||||
|
||||
$wrap2 = id(new PHUIBoxView())
|
||||
->appendChild($layout2)
|
||||
|
@ -259,8 +204,6 @@ final class PHUIButtonExample extends PhabricatorUIExample {
|
|||
->addMargin(PHUI::MARGIN_LARGE);
|
||||
|
||||
return array(
|
||||
$head1,
|
||||
$wrap1,
|
||||
$head2,
|
||||
$wrap2,
|
||||
$head3,
|
||||
|
|
|
@ -101,7 +101,7 @@ final class PHUIColorPalletteExample extends PhabricatorUIExample {
|
|||
'a',
|
||||
array(
|
||||
'href' => 'http://color.hailpixel.com/#'.implode(',', $url),
|
||||
'class' => 'button grey mlb',
|
||||
'class' => 'button button-grey mlb',
|
||||
),
|
||||
pht('Color Palette'));
|
||||
|
||||
|
|
|
@ -55,14 +55,6 @@ final class PHUIHovercardUIExample extends PhabricatorUIExample {
|
|||
->addTag($tag));
|
||||
$elements[] = $panel;
|
||||
|
||||
$badge1 = id(new PHUIBadgeMiniView())
|
||||
->setIcon('fa-book')
|
||||
->setHeader(pht('Documenter'));
|
||||
|
||||
$badge2 = id(new PHUIBadgeMiniView())
|
||||
->setIcon('fa-star')
|
||||
->setHeader(pht('Contributor'));
|
||||
|
||||
$user_handle = $this->createBasicDummyHandle(
|
||||
'gwashington',
|
||||
PhabricatorPeopleUserPHIDType::TYPECONST,
|
||||
|
@ -75,8 +67,6 @@ final class PHUIHovercardUIExample extends PhabricatorUIExample {
|
|||
->addField(pht('Status'), pht('Available'))
|
||||
->addField(pht('Member since'), '30. February 1750')
|
||||
->addAction(pht('Send a Message'), '/dev/null')
|
||||
->addBadge($badge1)
|
||||
->addBadge($badge2)
|
||||
->setUser($user));
|
||||
$elements[] = $panel;
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ final class PhabricatorNotificationUIExample extends PhabricatorUIExample {
|
|||
'a',
|
||||
array(
|
||||
'sigil' => 'notification-example',
|
||||
'class' => 'button green',
|
||||
'class' => 'button button-green',
|
||||
),
|
||||
pht('Show Notification'));
|
||||
|
||||
|
|
|
@ -23,11 +23,15 @@ final class PhabricatorTaskmasterDaemon extends PhabricatorDaemon {
|
|||
$ex = $task->getExecutionException();
|
||||
if ($ex) {
|
||||
if ($ex instanceof PhabricatorWorkerPermanentFailureException) {
|
||||
$this->log(
|
||||
// NOTE: Make sure these reach the daemon log, even when not
|
||||
// running in "phd.verbose" mode. See T12803 for discussion.
|
||||
$log_exception = new PhutilProxyException(
|
||||
pht(
|
||||
'Task %d was cancelled: %s',
|
||||
$id,
|
||||
$ex->getMessage()));
|
||||
'Task "%s" encountered a permanent failure and was '.
|
||||
'cancelled.',
|
||||
$id),
|
||||
$ex);
|
||||
phlog($log_exception);
|
||||
} else if ($ex instanceof PhabricatorWorkerYieldException) {
|
||||
$this->log(pht('Task %s yielded.', $id));
|
||||
} else {
|
||||
|
|
|
@ -107,6 +107,11 @@ final class PHUIDiffInlineCommentDetailView
|
|||
break;
|
||||
}
|
||||
|
||||
$is_synthetic = false;
|
||||
if ($inline->getSyntheticAuthor()) {
|
||||
$is_synthetic = true;
|
||||
}
|
||||
|
||||
$metadata = array(
|
||||
'id' => $inline->getID(),
|
||||
'phid' => $inline->getPHID(),
|
||||
|
@ -120,6 +125,7 @@ final class PHUIDiffInlineCommentDetailView
|
|||
'isDraft' => $inline->isDraft(),
|
||||
'isFixed' => $is_fixed,
|
||||
'isGhost' => $inline->getIsGhost(),
|
||||
'isSynthetic' => $is_synthetic,
|
||||
);
|
||||
|
||||
$sigil = 'differential-inline-comment';
|
||||
|
@ -136,11 +142,6 @@ final class PHUIDiffInlineCommentDetailView
|
|||
|
||||
$links = array();
|
||||
|
||||
$is_synthetic = false;
|
||||
if ($inline->getSyntheticAuthor()) {
|
||||
$is_synthetic = true;
|
||||
}
|
||||
|
||||
$draft_text = null;
|
||||
if (!$is_synthetic) {
|
||||
// This display is controlled by CSS
|
||||
|
|
|
@ -248,7 +248,7 @@ final class AphrontDialogView
|
|||
'a',
|
||||
array(
|
||||
'href' => $this->cancelURI,
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'name' => '__cancel__',
|
||||
'sigil' => 'jx-workflow-button',
|
||||
'meta' => $meta,
|
||||
|
|
|
@ -324,7 +324,8 @@ final class AphrontFormPolicyControl extends AphrontFormControl {
|
|||
javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'grey button dropdown has-icon has-text policy-control',
|
||||
'class' => 'button button-grey dropdown has-icon has-text '.
|
||||
'policy-control',
|
||||
'href' => '#',
|
||||
'mustcapture' => true,
|
||||
'sigil' => 'policy-control',
|
||||
|
|
|
@ -30,7 +30,7 @@ final class PHUIFormIconSetControl
|
|||
|
||||
$classes = array();
|
||||
$classes[] = 'button';
|
||||
$classes[] = 'grey';
|
||||
$classes[] = 'button-grey';
|
||||
|
||||
if ($is_disabled) {
|
||||
$classes[] = 'disabled';
|
||||
|
|
|
@ -44,7 +44,7 @@ final class AphrontListFilterView extends AphrontView {
|
|||
$hide_action = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'sigil' => 'reveal-content',
|
||||
'id' => $hide_action_id,
|
||||
'href' => $this->showHideHref,
|
||||
|
@ -65,7 +65,7 @@ final class AphrontListFilterView extends AphrontView {
|
|||
$show_action = javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'sigil' => 'reveal-content',
|
||||
'style' => 'display: none;',
|
||||
'href' => '#',
|
||||
|
|
|
@ -4,6 +4,7 @@ final class PHUIButtonView extends AphrontTagView {
|
|||
|
||||
const GREEN = 'green';
|
||||
const GREY = 'grey';
|
||||
const BLUE = 'blue';
|
||||
const DISABLED = 'disabled';
|
||||
|
||||
const SMALL = 'small';
|
||||
|
@ -159,7 +160,7 @@ final class PHUIButtonView extends AphrontTagView {
|
|||
$classes[] = 'button';
|
||||
|
||||
if ($this->color) {
|
||||
$classes[] = $this->color;
|
||||
$classes[] = 'button-'.$this->color;
|
||||
}
|
||||
|
||||
if ($this->size) {
|
||||
|
@ -188,10 +189,10 @@ final class PHUIButtonView extends AphrontTagView {
|
|||
|
||||
switch ($this->getButtonType()) {
|
||||
case self::BUTTONTYPE_DEFAULT:
|
||||
// Nothing special for default buttons.
|
||||
$classes[] = 'phui-button-default';
|
||||
break;
|
||||
case self::BUTTONTYPE_SIMPLE:
|
||||
$classes[] = 'simple';
|
||||
$classes[] = 'phui-button-simple';
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@ final class PHUIHeaderView extends AphrontTagView {
|
|||
private $policyObject;
|
||||
private $epoch;
|
||||
private $actionItems = array();
|
||||
private $badges = array();
|
||||
private $href;
|
||||
private $actionList;
|
||||
private $actionListID;
|
||||
|
@ -46,11 +45,6 @@ final class PHUIHeaderView extends AphrontTagView {
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function addBadge(PHUIBadgeMiniView $badge) {
|
||||
$this->badges[] = $badge;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setImage($uri) {
|
||||
$this->image = $uri;
|
||||
return $this;
|
||||
|
@ -341,21 +335,13 @@ final class PHUIHeaderView extends AphrontTagView {
|
|||
$header_content,
|
||||
));
|
||||
|
||||
if ($this->subheader || $this->badges) {
|
||||
$badges = null;
|
||||
if ($this->badges) {
|
||||
$badges = new PHUIBadgeBoxView();
|
||||
$badges->addItems($this->badges);
|
||||
$badges->setCollapsed(true);
|
||||
}
|
||||
|
||||
if ($this->subheader) {
|
||||
$left[] = phutil_tag(
|
||||
'div',
|
||||
array(
|
||||
'class' => 'phui-header-subheader',
|
||||
),
|
||||
array(
|
||||
$badges,
|
||||
$this->subheader,
|
||||
));
|
||||
}
|
||||
|
|
|
@ -173,7 +173,7 @@ final class PHUIHovercardView extends AphrontTagView {
|
|||
|
||||
foreach ($this->actions as $action) {
|
||||
$options = array(
|
||||
'class' => 'button grey',
|
||||
'class' => 'button button-grey',
|
||||
'href' => $action['uri'],
|
||||
);
|
||||
|
||||
|
|
|
@ -28,6 +28,8 @@ final class PHUITagView extends AphrontTagView {
|
|||
const COLOR_OBJECT = 'object';
|
||||
const COLOR_PERSON = 'person';
|
||||
|
||||
const BORDER_NONE = 'border-none';
|
||||
|
||||
private $type;
|
||||
private $href;
|
||||
private $name;
|
||||
|
@ -40,6 +42,7 @@ final class PHUITagView extends AphrontTagView {
|
|||
private $icon;
|
||||
private $shade;
|
||||
private $slimShady;
|
||||
private $border;
|
||||
|
||||
public function setType($type) {
|
||||
$this->type = $type;
|
||||
|
@ -104,6 +107,11 @@ final class PHUITagView extends AphrontTagView {
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function setBorder($border) {
|
||||
$this->border = $border;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setIcon($icon) {
|
||||
$this->icon = $icon;
|
||||
return $this;
|
||||
|
@ -142,6 +150,10 @@ final class PHUITagView extends AphrontTagView {
|
|||
$classes[] = 'phui-tag-icon-view';
|
||||
}
|
||||
|
||||
if ($this->border) {
|
||||
$classes[] = 'phui-tag-'.$this->border;
|
||||
}
|
||||
|
||||
if ($this->phid) {
|
||||
Javelin::initBehavior('phui-hovercards');
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
*/
|
||||
|
||||
.dark-console {
|
||||
background: #444444;
|
||||
color: #eeeeee;
|
||||
width: 100%;
|
||||
font-family: "Verdana";
|
||||
font-size: 11px;
|
||||
position: relative;
|
||||
background: #444444;
|
||||
color: #eeeeee;
|
||||
width: 100%;
|
||||
font-family: "Verdana";
|
||||
font-size: 11px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dark-console a {
|
||||
|
@ -74,6 +74,7 @@
|
|||
.dark-console-requests a.dark-console-request:hover,
|
||||
.dark-console-tabs a.dark-console-tab:hover {
|
||||
background: #1188cc;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.dark-console-tabs a.dark-console-tab {
|
||||
|
@ -107,6 +108,12 @@
|
|||
|
||||
.dark-console .aphront-table-view td {
|
||||
font-size: 11px;
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.dark-console .aphront-table-view tr:hover,
|
||||
.dark-console .aphront-table-view tr.alt:hover {
|
||||
background: #333;
|
||||
}
|
||||
|
||||
.dark-console .aphront-table-view td.header {
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
|
||||
.aphront-table-notice {
|
||||
padding: 12px 16px;
|
||||
font-size: {$normalfontsize};
|
||||
color: {$darkbluetext};
|
||||
border-bottom: 1px solid {$thinblueborder};
|
||||
}
|
||||
|
@ -37,9 +36,16 @@
|
|||
background: {$lightgreybackground};
|
||||
}
|
||||
|
||||
.device-desktop .aphront-table-view tr:hover {
|
||||
background: {$bluebackground};
|
||||
}
|
||||
|
||||
.device-desktop .aphront-table-view tr.no-data:hover {
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
.aphront-table-view th {
|
||||
font-weight: bold;
|
||||
font-size: {$normalfontsize};
|
||||
white-space: nowrap;
|
||||
color: {$bluetext};
|
||||
text-shadow: 0 1px 0 white;
|
||||
|
@ -78,6 +84,7 @@ th.aphront-table-view-sortable-selected {
|
|||
.aphront-table-view td {
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
color: {$darkbluetext};
|
||||
}
|
||||
|
||||
.aphront-table-down-sort {
|
||||
|
@ -115,12 +122,10 @@ th.aphront-table-view-sortable-selected {
|
|||
|
||||
.aphront-table-view th {
|
||||
padding: 8px 10px;
|
||||
font-size: {$normalfontsize};
|
||||
}
|
||||
|
||||
.aphront-table-view td {
|
||||
padding: 8px 10px;
|
||||
font-size: {$smallerfontsize};
|
||||
}
|
||||
|
||||
.device-tablet .aphront-table-view td,
|
||||
|
@ -128,22 +133,12 @@ th.aphront-table-view-sortable-selected {
|
|||
padding: 6px;
|
||||
}
|
||||
|
||||
.device-tablet .aphront-table-view td + td,
|
||||
.device-phone .aphront-table-view td + td {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.device-tablet .aphront-table-view th,
|
||||
.device-phone .aphront-table-view th {
|
||||
padding: 6px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.device-tablet .aphront-table-view th + th,
|
||||
.device-phone .aphront-table-view th + th {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.aphront-table-view td.sorted-column {
|
||||
background: {$lightbluebackground};
|
||||
}
|
||||
|
@ -196,7 +191,7 @@ th.aphront-table-view-sortable-selected {
|
|||
}
|
||||
|
||||
.aphront-table-view td.wrap {
|
||||
white-space: normal;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.aphront-table-view td.prewrap {
|
||||
|
@ -282,7 +277,6 @@ span.single-display-line-content {
|
|||
text-align: center;
|
||||
color: {$lightgreytext};
|
||||
font-style: italic;
|
||||
font-size: {$normalfontsize};
|
||||
}
|
||||
|
||||
.aphront-table-view td.thumb img {
|
||||
|
|
|
@ -413,3 +413,7 @@ tr.differential-inline-loading {
|
|||
.diff-banner-has-unsubmitted {
|
||||
background: {$sh-yellowbackground};
|
||||
}
|
||||
|
||||
.diff-banner-buttons {
|
||||
float: right;
|
||||
}
|
||||
|
|
|
@ -2,19 +2,13 @@
|
|||
* @provides diffusion-history-css
|
||||
*/
|
||||
|
||||
/* - List Styles ------------------------------------------------------------*/
|
||||
|
||||
.diffusion-history-list .phui-oi-link {
|
||||
color: #000;
|
||||
font-size: {$biggerfontsize};
|
||||
}
|
||||
|
||||
.diffusion-history-list .phui-oi-attribute .phui-tag-core {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.diffusion-history-list .phui-oi-attribute .phui-tag-indigo a {
|
||||
color: {$indigo};
|
||||
}
|
||||
|
||||
.diffusion-history-message {
|
||||
background-color: {$bluebackground};
|
||||
padding: 16px;
|
||||
|
@ -36,7 +30,53 @@
|
|||
margin-left: 4px;
|
||||
}
|
||||
|
||||
a.phui-tag-view:hover.diffusion-differential-tag .phui-tag-core {
|
||||
border-color: transparent;
|
||||
text-decoration: underline;
|
||||
|
||||
/* - Phone Style ------------------------------------------------------------*/
|
||||
|
||||
.device-phone.diffusion-history-view .phui-two-column-view
|
||||
.phui-two-column-footer .phui-object-box {
|
||||
border-color: {$thinblueborder};
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-two-column-view
|
||||
.phui-two-column-footer .phui-header-view {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-two-column-content {
|
||||
padding: 0;
|
||||
margin: 0 -4px;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-oi-attribute-spacer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-oi-attribute {
|
||||
display: block;
|
||||
margin: 0 0 4px 0;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-oi-image {
|
||||
height: 36px;
|
||||
width: 36px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-oi-with-image .phui-oi-content-box {
|
||||
margin-left: 44px;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .phui-oi-col2.phui-oi-side-column {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .diffusion-history-list .button.has-icon
|
||||
.phui-button-text {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.device-phone.diffusion-history-view .diffusion-history-list .button.has-icon
|
||||
.phui-icon-view {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
padding: 24px 32px;
|
||||
}
|
||||
|
||||
.device .diffusion-readme-view .phui-document-container {
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
.diffusion-readme-view .phabricator-remarkup-toc {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -122,17 +122,38 @@
|
|||
.phabricator-remarkup .remarkup-list-with-checkmarks .remarkup-checked-item,
|
||||
.phabricator-remarkup .remarkup-list-with-checkmarks .remarkup-unchecked-item {
|
||||
list-style: none;
|
||||
margin-left: -18px;
|
||||
margin-left: -20px;
|
||||
position: relative;
|
||||
padding-left: 22px;
|
||||
}
|
||||
|
||||
.phabricator-remarkup .remarkup-list-with-checkmarks input {
|
||||
margin-right: 4px;
|
||||
opacity: 1;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.phabricator-remarkup .remarkup-list-with-checkmarks
|
||||
.remarkup-list-item::before {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
background-size: 16px;
|
||||
display: inline-block;
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.remarkup-list-with-checkmarks .remarkup-checked-item::before {
|
||||
background-image: url(rsrc/image/controls/checkbox-checked.png);
|
||||
}
|
||||
|
||||
.remarkup-list-with-checkmarks .remarkup-unchecked-item::before {
|
||||
background-image: url(rsrc/image/controls/checkbox-unchecked.png);
|
||||
}
|
||||
|
||||
.phabricator-remarkup .remarkup-list-with-checkmarks .remarkup-checked-item {
|
||||
text-decoration: line-through;
|
||||
color: {$lightgreytext};
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.phabricator-remarkup ul.remarkup-list ol.remarkup-list,
|
||||
|
|
|
@ -6,55 +6,55 @@
|
|||
|
||||
/* - Basic -------------------------------------------------------------------*/
|
||||
|
||||
button.simple,
|
||||
input[type="submit"].simple,
|
||||
a.simple,
|
||||
a.simple:visited {
|
||||
button.phui-button-simple,
|
||||
input[type="submit"].phui-button-simple,
|
||||
a.phui-button-simple,
|
||||
a.phui-button-simple:visited {
|
||||
background: #fff;
|
||||
color: {$bluetext};
|
||||
border: 1px solid {$lightblueborder};
|
||||
}
|
||||
|
||||
button.simple .phui-icon-view,
|
||||
input[type="submit"].simple .phui-icon-view,
|
||||
a.simple .phui-icon-view,
|
||||
a.simple:visited .phui-icon-view {
|
||||
button.phui-button-simple .phui-icon-view,
|
||||
input[type="submit"].phui-button-simple .phui-icon-view,
|
||||
a.phui-button-simple .phui-icon-view,
|
||||
a.phui-button-simple:visited .phui-icon-view {
|
||||
color: {$lightbluetext};
|
||||
}
|
||||
|
||||
a.button.simple:hover,
|
||||
button.simple:hover {
|
||||
a.button.phui-button-simple:hover,
|
||||
button.phui-button-simple:hover {
|
||||
border-color: {$blueborder};
|
||||
background-image: none;
|
||||
background-color: #fff;
|
||||
transition: 0s;
|
||||
}
|
||||
|
||||
a.simple.current {
|
||||
a.phui-button-simple.current {
|
||||
background: {$lightblue};
|
||||
}
|
||||
|
||||
|
||||
/* - Red --------------------------------------------------------------------*/
|
||||
|
||||
button.simple.red,
|
||||
input[type="submit"].simple.red,
|
||||
a.simple.red,
|
||||
a.simple.red:visited {
|
||||
button.phui-button-simple.button-red,
|
||||
input[type="submit"].phui-button-simple.button-red,
|
||||
a.phui-button-simple.button-red,
|
||||
a.phui-button-simple.button-red:visited {
|
||||
background: {$sh-redbackground};
|
||||
color: {$redtext};
|
||||
border: 1px solid {$sh-redborder};
|
||||
}
|
||||
|
||||
button.simple.red .phui-icon-view,
|
||||
input[type="submit"].simple.red .phui-icon-view,
|
||||
a.simple.red .phui-icon-view,
|
||||
a.simple.red:visited .phui-icon-view {
|
||||
button.phui-button-simple.button-red .phui-icon-view,
|
||||
input[type="submit"].phui-button-simple.button-red .phui-icon-view,
|
||||
a.phui-button-simple.button-red .phui-icon-view,
|
||||
a.phui-button-simple.button-red:visited .phui-icon-view {
|
||||
color: {$redtext};
|
||||
}
|
||||
|
||||
a.button.simple.red:hover,
|
||||
button.simple.red:hover {
|
||||
a.button.phui-button-simple.button-red:hover,
|
||||
button.phui-button-simple.button-red:hover {
|
||||
border-color: {$sh-redtext};
|
||||
background-image: none;
|
||||
background-color: {$sh-redbackground};
|
||||
|
@ -63,24 +63,24 @@ button.simple.red:hover {
|
|||
|
||||
/* - Green ------------------------------------------------------------------*/
|
||||
|
||||
button.simple.green,
|
||||
input[type="submit"].simple.green,
|
||||
a.simple.green,
|
||||
a.simple.green:visited {
|
||||
button.phui-button-simple.button-green,
|
||||
input[type="submit"].phui-button-simple.button-green,
|
||||
a.phui-button-simple.button-green,
|
||||
a.phui-button-simple.button-green:visited {
|
||||
background: {$sh-greenbackground};
|
||||
color: {$greentext};
|
||||
border: 1px solid {$sh-greenborder};
|
||||
}
|
||||
|
||||
button.simple.green .phui-icon-view,
|
||||
input[type="submit"].simple.green .phui-icon-view,
|
||||
a.simple.green .phui-icon-view,
|
||||
a.simple.green:visited .phui-icon-view {
|
||||
button.phui-button-simple.button-green .phui-icon-view,
|
||||
input[type="submit"].phui-button-simple.button-green .phui-icon-view,
|
||||
a.phui-button-simple.button-green .phui-icon-view,
|
||||
a.phui-button-simple.button-green:visited .phui-icon-view {
|
||||
color: {$greentext};
|
||||
}
|
||||
|
||||
a.button.simple.green:hover,
|
||||
button.simple.green:hover {
|
||||
a.button.phui-button-simple.button-green:hover,
|
||||
button.phui-button-simple.button-green:hover {
|
||||
border-color: {$sh-greentext};
|
||||
background-image: none;
|
||||
background-color: {$sh-greenbackground};
|
||||
|
@ -89,24 +89,24 @@ button.simple.green:hover {
|
|||
|
||||
/* - Yellow -----------------------------------------------------------------*/
|
||||
|
||||
button.simple.yellow,
|
||||
input[type="submit"].simple.yellow,
|
||||
a.simple.yellow,
|
||||
a.simple.yellow:visited {
|
||||
button.phui-button-simple.button-yellow,
|
||||
input[type="submit"].phui-button-simple.button-yellow,
|
||||
a.phui-button-simple.button-yellow,
|
||||
a.phui-button-simple.button-yellow:visited {
|
||||
background-color: {$sh-yellowbackground};
|
||||
color: {$sh-yellowtext};
|
||||
border: 1px solid {$sh-yellowborder};
|
||||
}
|
||||
|
||||
button.simple.yellow .phui-icon-view,
|
||||
input[type="submit"].simple.yellow .phui-icon-view,
|
||||
a.simple.yellow .phui-icon-view,
|
||||
a.simple.yellow:visited .phui-icon-view {
|
||||
button.phui-button-simple.button-yellow .phui-icon-view,
|
||||
input[type="submit"].phui-button-simple.button-yellow .phui-icon-view,
|
||||
a.phui-button-simple.button-yellow .phui-icon-view,
|
||||
a.phui-button-simple.button-yellow:visited .phui-icon-view {
|
||||
color: {$sh-yellowicon};
|
||||
}
|
||||
|
||||
a.button.simple.yellow:hover,
|
||||
button.simple.yellow:hover {
|
||||
a.button.phui-button-simple.button-yellow:hover,
|
||||
button.phui-button-simple.button-yellow:hover {
|
||||
border-color: {$sh-yellowtext};
|
||||
background-image: none;
|
||||
background-color: {$sh-yellowbackground};
|
||||
|
@ -116,16 +116,16 @@ button.simple.yellow:hover {
|
|||
|
||||
/* - Misc -------------------------------------------------------------------*/
|
||||
|
||||
a.button.simple .phui-icon-view {
|
||||
a.button.phui-button-simple .phui-icon-view {
|
||||
border: none;
|
||||
}
|
||||
|
||||
a.button.simple.phuix-dropdown-open {
|
||||
a.button.phui-button-simple.phuix-dropdown-open {
|
||||
background-color: #fff;
|
||||
color: {$blue};
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
a.button.simple.phuix-dropdown-open:hover .phui-icon-view {
|
||||
a.button.phui-button-simple.phuix-dropdown-open:hover .phui-icon-view {
|
||||
color: {$blue};
|
||||
}
|
||||
|
|
|
@ -49,13 +49,13 @@ input[type="submit"] {
|
|||
|
||||
button .phui-icon-view,
|
||||
a.button .phui-icon-view,
|
||||
button.green .phui-icon-view,
|
||||
a.button.green .phui-icon-view {
|
||||
button.button-green .phui-icon-view,
|
||||
a.button.button-green .phui-icon-view {
|
||||
color: white;
|
||||
}
|
||||
|
||||
button.grey .phui-icon-view,
|
||||
a.button.grey .phui-icon-view {
|
||||
button.button-grey .phui-icon-view,
|
||||
a.button.button-grey .phui-icon-view {
|
||||
color: {$darkbluetext};
|
||||
}
|
||||
|
||||
|
@ -68,18 +68,18 @@ a.icon:visited {
|
|||
text-indent: 29px;
|
||||
}
|
||||
|
||||
button.green,
|
||||
a.green.button,
|
||||
a.green.button:visited {
|
||||
button.button-green,
|
||||
a.button-green.button,
|
||||
a.button-green.button:visited {
|
||||
background-color: {$green};
|
||||
border-color: {$green};
|
||||
background-image: linear-gradient(to bottom, #23BB5B, #139543);
|
||||
}
|
||||
|
||||
button.grey,
|
||||
input[type="submit"].grey,
|
||||
a.grey,
|
||||
a.grey:visited {
|
||||
button.button-grey,
|
||||
input[type="submit"].button-grey,
|
||||
a.button-grey,
|
||||
a.button-grey:visited {
|
||||
background-color: #F7F7F9;
|
||||
background-image: linear-gradient(to bottom, #ffffff, #f1f0f1);
|
||||
border: 1px solid rgba({$alphablue}, 0.3);
|
||||
|
@ -108,15 +108,15 @@ button:hover {
|
|||
transition: 0.1s;
|
||||
}
|
||||
|
||||
a.button.grey:hover,
|
||||
button.grey:hover {
|
||||
a.button.button-grey:hover,
|
||||
button.button-grey:hover {
|
||||
background-image: linear-gradient(to bottom, #ffffff, #eeebec);
|
||||
border-color: rgba({$alphablue}, 0.4);
|
||||
transition: 0.1s;
|
||||
}
|
||||
|
||||
a.button.green:hover,
|
||||
button.green:hover {
|
||||
a.button.button-green:hover,
|
||||
button.button-green:hover {
|
||||
border-color: #127336;
|
||||
background-color: #0DAD48;
|
||||
background-image: linear-gradient(to bottom, #23BB5B, #178841);
|
||||
|
@ -244,7 +244,7 @@ a.policy-control .phui-button-text {
|
|||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.grey.dropdown .caret {
|
||||
.button-grey.dropdown .caret {
|
||||
border-top-color: #000;
|
||||
}
|
||||
|
||||
|
|
|
@ -426,7 +426,7 @@ ul.phui-oi-icons {
|
|||
}
|
||||
|
||||
.phui-oi.phui-oi-disabled .phui-oi-attribute,
|
||||
.phui-oi.phui-oi-disabled .phui-oi-attribute .phui-icon-view {
|
||||
.phui-oi.phui-oi-disabled .phui-oi-attribute > .phui-icon-view {
|
||||
color: {$lightgreytext};
|
||||
}
|
||||
|
||||
|
|
|
@ -64,21 +64,13 @@ body.printable {
|
|||
.phui-document-view-pro .phui-document-toc {
|
||||
position: absolute;
|
||||
top: 34px;
|
||||
left: -36px;
|
||||
left: -44px;
|
||||
}
|
||||
|
||||
.printable .phui-document-view-pro a.phui-document-toc {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a.button.phui-document-toc {
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
width: 20px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.phui-document-view-pro .phui-document-toc-list {
|
||||
margin: 8px;
|
||||
border: 1px solid {$lightgreyborder};
|
||||
|
@ -105,12 +97,7 @@ a.button.phui-document-toc {
|
|||
}
|
||||
|
||||
.phui-document-toc-open .phui-document-toc {
|
||||
background-color: {$blue};
|
||||
border-color: {$blue};
|
||||
}
|
||||
|
||||
.phui-document-toc-open .phui-document-toc .phui-icon-view {
|
||||
color: #fff;
|
||||
border-color: {$blueborder};
|
||||
}
|
||||
|
||||
.phui-document-view-pro .phui-document-toc-content {
|
||||
|
|
|
@ -120,7 +120,7 @@ body .phui-header-shell.phui-bleed-header
|
|||
.device-phone .phui-header-action-link .phui-button-text {
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
margin-left: 4px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.device-phone .phui-header-action-link.button .phui-icon-view {
|
||||
|
@ -307,14 +307,6 @@ body .phui-header-shell.phui-bleed-header
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.phui-header-subheader .phui-badge-flex-view {
|
||||
display: inline;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.phui-header-subheader .phui-badge-flex-view:after {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/*** Profile Header ***********************************************************/
|
||||
|
||||
|
|
|
@ -6,3 +6,9 @@
|
|||
clear: both;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.phui-pager-view a.button.current,
|
||||
.phui-pager-view a.button.current:hover {
|
||||
border-color: {$sh-orangetext};
|
||||
color: {$sh-orangetext};
|
||||
}
|
||||
|
|
|
@ -154,6 +154,15 @@ a.phui-tag-view:hover
|
|||
margin: 0 4px 2px 0;
|
||||
}
|
||||
|
||||
.phui-tag-view.phui-tag-border-none .phui-tag-core {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
a.phui-tag-view:hover.phui-tag-border-none .phui-tag-core {
|
||||
border-color: transparent !important;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
/* - Shaded Tags ---------------------------------------------------------------
|
||||
|
||||
|
|
BIN
webroot/rsrc/image/controls/checkbox-checked.png
Normal file
BIN
webroot/rsrc/image/controls/checkbox-checked.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 514 B |
BIN
webroot/rsrc/image/controls/checkbox-unchecked.png
Normal file
BIN
webroot/rsrc/image/controls/checkbox-unchecked.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 328 B |
|
@ -403,6 +403,8 @@ JX.install('DiffChangeset', {
|
|||
block.items.push(rows[ii]);
|
||||
}
|
||||
|
||||
var last_inline = null;
|
||||
var last_inline_item = null;
|
||||
for (ii = 0; ii < blocks.length; ii++) {
|
||||
block = blocks[ii];
|
||||
|
||||
|
@ -422,16 +424,43 @@ JX.install('DiffChangeset', {
|
|||
for (var jj = 0; jj < block.items.length; jj++) {
|
||||
var inline = this.getInlineForRow(block.items[jj]);
|
||||
|
||||
items.push({
|
||||
// When comments are being edited, they have a hidden row with
|
||||
// the actual comment and then a visible row with the editor.
|
||||
|
||||
// In this case, we only want to generate one item, but it should
|
||||
// use the editor as a scroll target. To accomplish this, check if
|
||||
// this row has the same inline as the previous row. If so, update
|
||||
// the last item to use this row's nodes.
|
||||
|
||||
if (inline === last_inline) {
|
||||
last_inline_item.nodes.begin = block.items[jj];
|
||||
last_inline_item.nodes.end = block.items[jj];
|
||||
continue;
|
||||
} else {
|
||||
last_inline = inline;
|
||||
}
|
||||
|
||||
var is_saved = (!inline.isDraft() && !inline.isEditing());
|
||||
|
||||
last_inline_item = {
|
||||
type: block.type,
|
||||
changeset: this,
|
||||
target: inline,
|
||||
hidden: inline.isHidden(),
|
||||
deleted: !inline.getID() && !inline.isEditing(),
|
||||
nodes: {
|
||||
begin: block.items[jj],
|
||||
end: block.items[jj]
|
||||
},
|
||||
attributes: {
|
||||
unsaved: inline.isEditing(),
|
||||
unsubmitted: inline.isDraft(),
|
||||
undone: (is_saved && !inline.isDone()),
|
||||
done: (is_saved && inline.isDone())
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
items.push(last_inline_item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/**
|
||||
* @provides phabricator-diff-changeset-list
|
||||
* @requires javelin-install
|
||||
* phuix-button-view
|
||||
* @javelin
|
||||
*/
|
||||
|
||||
|
@ -111,6 +112,10 @@ JX.install('DiffChangesetList', {
|
|||
_rangeTarget: null,
|
||||
|
||||
_bannerNode: null,
|
||||
_unsavedButton: null,
|
||||
_unsubmittedButton: null,
|
||||
_doneButton: null,
|
||||
_doneMode: null,
|
||||
|
||||
sleep: function() {
|
||||
this._asleep = true;
|
||||
|
@ -258,7 +263,13 @@ JX.install('DiffChangesetList', {
|
|||
|
||||
_installJumpKey: function(key, label, delta, filter, show_hidden) {
|
||||
filter = filter || null;
|
||||
var handler = JX.bind(this, this._onjumpkey, delta, filter, show_hidden);
|
||||
|
||||
var options = {
|
||||
filter: filter,
|
||||
hidden: show_hidden
|
||||
};
|
||||
|
||||
var handler = JX.bind(this, this._onjumpkey, delta, options);
|
||||
return this._installKey(key, label, handler);
|
||||
},
|
||||
|
||||
|
@ -440,9 +451,14 @@ JX.install('DiffChangesetList', {
|
|||
.show();
|
||||
},
|
||||
|
||||
_onjumpkey: function(delta, filter, show_hidden, manager) {
|
||||
_onjumpkey: function(delta, options) {
|
||||
var state = this._getSelectionState();
|
||||
|
||||
var filter = options.filter || null;
|
||||
var hidden = options.hidden || false;
|
||||
var wrap = options.wrap || false;
|
||||
var attribute = options.attribute || null;
|
||||
|
||||
var cursor = state.cursor;
|
||||
var items = state.items;
|
||||
|
||||
|
@ -452,6 +468,7 @@ JX.install('DiffChangesetList', {
|
|||
return;
|
||||
}
|
||||
|
||||
var did_wrap = false;
|
||||
while (true) {
|
||||
if (cursor === null) {
|
||||
cursor = 0;
|
||||
|
@ -464,9 +481,22 @@ JX.install('DiffChangesetList', {
|
|||
return;
|
||||
}
|
||||
|
||||
// If we've gone forward off the end of the list, bail out.
|
||||
// If we've gone forward off the end of the list, figure out where we
|
||||
// should end up.
|
||||
if (cursor >= items.length) {
|
||||
return;
|
||||
if (!wrap) {
|
||||
// If we aren't wrapping around, we're done.
|
||||
return;
|
||||
}
|
||||
|
||||
if (did_wrap) {
|
||||
// If we're already wrapped around, we're done.
|
||||
return;
|
||||
}
|
||||
|
||||
// Otherwise, wrap the cursor back to the top.
|
||||
cursor = 0;
|
||||
did_wrap = true;
|
||||
}
|
||||
|
||||
// If we're selecting things of a particular type (like only files)
|
||||
|
@ -479,17 +509,31 @@ JX.install('DiffChangesetList', {
|
|||
|
||||
// If the item is hidden, don't select it when iterating with jump
|
||||
// keys. It can still potentially be selected in other ways.
|
||||
if (!show_hidden) {
|
||||
if (!hidden) {
|
||||
if (items[cursor].hidden) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// If the item has been deleted, don't select it when iterating. The
|
||||
// cursor may remain on it until it is removed.
|
||||
if (items[cursor].deleted) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// If we're selecting things with a particular attribute, like
|
||||
// "unsaved", skip items without the attribute.
|
||||
if (attribute !== null) {
|
||||
if (!(items[cursor].attributes || {})[attribute]) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise, we've found a valid item to select.
|
||||
break;
|
||||
}
|
||||
|
||||
this._setSelectionState(items[cursor], manager);
|
||||
this._setSelectionState(items[cursor], true);
|
||||
},
|
||||
|
||||
_getSelectionState: function() {
|
||||
|
@ -512,24 +556,34 @@ JX.install('DiffChangesetList', {
|
|||
};
|
||||
},
|
||||
|
||||
_setSelectionState: function(item, manager) {
|
||||
_setSelectionState: function(item, scroll) {
|
||||
this._cursorItem = item;
|
||||
this._redrawSelection(manager, true);
|
||||
this._redrawSelection(scroll);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_redrawSelection: function(manager, scroll) {
|
||||
_redrawSelection: function(scroll) {
|
||||
var cursor = this._cursorItem;
|
||||
if (!cursor) {
|
||||
this.setFocus(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// If this item has been removed from the document (for example: create
|
||||
// a new empty comment, then use the "Unsaved" button to select it, then
|
||||
// cancel it), we can still keep the cursor here but do not want to show
|
||||
// a selection reticle over an invisible node.
|
||||
if (cursor.deleted) {
|
||||
this.setFocus(null);
|
||||
return;
|
||||
}
|
||||
|
||||
this.setFocus(cursor.nodes.begin, cursor.nodes.end);
|
||||
|
||||
if (manager && scroll) {
|
||||
manager.scrollTo(cursor.nodes.begin);
|
||||
if (scroll) {
|
||||
var pos = JX.$V(cursor.nodes.begin);
|
||||
JX.DOM.scrollToPosition(0, pos.y - 60);
|
||||
}
|
||||
|
||||
return this;
|
||||
|
@ -546,7 +600,7 @@ JX.install('DiffChangesetList', {
|
|||
|
||||
var state = this._getSelectionState();
|
||||
if (state.cursor !== null) {
|
||||
this._setSelectionState(state.items[state.cursor]);
|
||||
this._setSelectionState(state.items[state.cursor], false);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -858,7 +912,7 @@ JX.install('DiffChangesetList', {
|
|||
if (selection.cursor !== null) {
|
||||
item = selection.items[selection.cursor];
|
||||
if (item.target === inline) {
|
||||
this._setSelectionState(null);
|
||||
this._setSelectionState(null, false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -870,7 +924,7 @@ JX.install('DiffChangesetList', {
|
|||
for (var ii = 0; ii < items.length; ii++) {
|
||||
item = items[ii];
|
||||
if (item.target === inline) {
|
||||
this._setSelectionState(item);
|
||||
this._setSelectionState(item, false);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1287,7 +1341,7 @@ JX.install('DiffChangesetList', {
|
|||
var unsaved = [];
|
||||
var unsubmitted = [];
|
||||
var undone = [];
|
||||
var all = [];
|
||||
var done = [];
|
||||
|
||||
for (var ii = 0; ii < changesets.length; ii++) {
|
||||
var inlines = changesets[ii].getInlines();
|
||||
|
@ -1298,14 +1352,22 @@ JX.install('DiffChangesetList', {
|
|||
continue;
|
||||
}
|
||||
|
||||
all.push(inline);
|
||||
if (inline.isSynthetic()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (inline.isEditing()) {
|
||||
unsaved.push(inline);
|
||||
} else if (!inline.getID()) {
|
||||
// These are new comments which have been cancelled, and do not
|
||||
// count as anything.
|
||||
continue;
|
||||
} else if (inline.isDraft()) {
|
||||
unsubmitted.push(inline);
|
||||
} else if (!inline.isDone()) {
|
||||
undone.push(inline);
|
||||
} else {
|
||||
done.push(inline);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1320,14 +1382,173 @@ JX.install('DiffChangesetList', {
|
|||
'diff-banner-has-unsubmitted',
|
||||
!!unsubmitted.length);
|
||||
|
||||
var pht = this.getTranslations();
|
||||
var unsaved_button = this._getUnsavedButton();
|
||||
var unsubmitted_button = this._getUnsubmittedButton();
|
||||
var done_button = this._getDoneButton();
|
||||
|
||||
if (unsaved.length) {
|
||||
unsaved_button.setText(unsaved.length + ' ' + pht('Unsaved'));
|
||||
JX.DOM.show(unsaved_button.getNode());
|
||||
} else {
|
||||
JX.DOM.hide(unsaved_button.getNode());
|
||||
}
|
||||
|
||||
if (unsubmitted.length) {
|
||||
unsubmitted_button.setText(
|
||||
unsubmitted.length + ' ' + pht('Unsubmitted'));
|
||||
JX.DOM.show(unsubmitted_button.getNode());
|
||||
} else {
|
||||
JX.DOM.hide(unsubmitted_button.getNode());
|
||||
}
|
||||
|
||||
if (done.length || undone.length) {
|
||||
// If you haven't marked any comments as "Done", we just show text
|
||||
// like "3 Comments". If you've marked at least one done, we show
|
||||
// "1 / 3 Comments".
|
||||
|
||||
var done_text;
|
||||
if (done.length) {
|
||||
done_text = [
|
||||
done.length,
|
||||
' / ',
|
||||
(done.length + undone.length),
|
||||
' ',
|
||||
pht('Comments')
|
||||
];
|
||||
} else {
|
||||
done_text = [
|
||||
undone.length,
|
||||
' ',
|
||||
pht('Comments')
|
||||
];
|
||||
}
|
||||
|
||||
done_button.setText(done_text);
|
||||
|
||||
JX.DOM.show(done_button.getNode());
|
||||
|
||||
// If any comments are not marked "Done", this cycles through the
|
||||
// missing comments. Otherwise, it cycles through all the saved
|
||||
// comments.
|
||||
if (undone.length) {
|
||||
this._doneMode = 'undone';
|
||||
} else {
|
||||
this._doneMode = 'done';
|
||||
}
|
||||
|
||||
} else {
|
||||
JX.DOM.hide(done_button.getNode());
|
||||
}
|
||||
|
||||
var path_view = [icon, ' ', changeset.getDisplayPath()];
|
||||
|
||||
var buttons_attrs = {
|
||||
className: 'diff-banner-buttons'
|
||||
};
|
||||
|
||||
var buttons_list = [
|
||||
unsaved_button.getNode(),
|
||||
unsubmitted_button.getNode(),
|
||||
done_button.getNode()
|
||||
];
|
||||
|
||||
var buttons_view = JX.$N('div', buttons_attrs, buttons_list);
|
||||
|
||||
var icon = new JX.PHUIXIconView()
|
||||
.setIcon(changeset.getIcon())
|
||||
.getNode();
|
||||
JX.DOM.setContent(node, [icon, ' ', changeset.getDisplayPath()]);
|
||||
JX.DOM.setContent(node, [buttons_view, path_view]);
|
||||
|
||||
document.body.appendChild(node);
|
||||
},
|
||||
|
||||
_getUnsavedButton: function() {
|
||||
if (!this._unsavedButton) {
|
||||
var button = new JX.PHUIXButtonView()
|
||||
.setIcon('fa-commenting-o')
|
||||
.setButtonType(JX.PHUIXButtonView.BUTTONTYPE_SIMPLE);
|
||||
|
||||
var node = button.getNode();
|
||||
|
||||
var onunsaved = JX.bind(this, this._onunsavedclick);
|
||||
JX.DOM.listen(node, 'click', null, onunsaved);
|
||||
|
||||
this._unsavedButton = button;
|
||||
}
|
||||
|
||||
return this._unsavedButton;
|
||||
},
|
||||
|
||||
_getUnsubmittedButton: function() {
|
||||
if (!this._unsubmittedButton) {
|
||||
var button = new JX.PHUIXButtonView()
|
||||
.setIcon('fa-comment-o')
|
||||
.setButtonType(JX.PHUIXButtonView.BUTTONTYPE_SIMPLE);
|
||||
|
||||
var node = button.getNode();
|
||||
|
||||
var onunsubmitted = JX.bind(this, this._onunsubmittedclick);
|
||||
JX.DOM.listen(node, 'click', null, onunsubmitted);
|
||||
|
||||
this._unsubmittedButton = button;
|
||||
}
|
||||
|
||||
return this._unsubmittedButton;
|
||||
},
|
||||
|
||||
_getDoneButton: function() {
|
||||
if (!this._doneButton) {
|
||||
var button = new JX.PHUIXButtonView()
|
||||
.setIcon('fa-comment')
|
||||
.setButtonType(JX.PHUIXButtonView.BUTTONTYPE_SIMPLE);
|
||||
|
||||
var node = button.getNode();
|
||||
|
||||
var ondone = JX.bind(this, this._ondoneclick);
|
||||
JX.DOM.listen(node, 'click', null, ondone);
|
||||
|
||||
this._doneButton = button;
|
||||
}
|
||||
|
||||
return this._doneButton;
|
||||
},
|
||||
_onunsavedclick: function(e) {
|
||||
e.kill();
|
||||
|
||||
var options = {
|
||||
filter: 'comment',
|
||||
wrap: true,
|
||||
attribute: 'unsaved'
|
||||
};
|
||||
|
||||
this._onjumpkey(1, options);
|
||||
},
|
||||
|
||||
_onunsubmittedclick: function(e) {
|
||||
e.kill();
|
||||
|
||||
var options = {
|
||||
filter: 'comment',
|
||||
wrap: true,
|
||||
attribute: 'unsubmitted'
|
||||
};
|
||||
|
||||
this._onjumpkey(1, options);
|
||||
},
|
||||
|
||||
_ondoneclick: function(e) {
|
||||
e.kill();
|
||||
|
||||
var options = {
|
||||
filter: 'comment',
|
||||
wrap: true,
|
||||
attribute: this._doneMode
|
||||
};
|
||||
|
||||
this._onjumpkey(1, options);
|
||||
},
|
||||
|
||||
_getBannerNode: function() {
|
||||
if (!this._bannerNode) {
|
||||
var attributes = {
|
||||
|
|
|
@ -34,6 +34,7 @@ JX.install('DiffInline', {
|
|||
_isFixed: null,
|
||||
_isEditing: false,
|
||||
_isNew: false,
|
||||
_isSynthetic: false,
|
||||
|
||||
bindToRow: function(row) {
|
||||
this._row = row;
|
||||
|
@ -71,6 +72,7 @@ JX.install('DiffInline', {
|
|||
this._isDraft = data.isDraft;
|
||||
this._isFixed = data.isFixed;
|
||||
this._isGhost = data.isGhost;
|
||||
this._isSynthetic = data.isSynthetic;
|
||||
|
||||
this._changesetID = data.changesetID;
|
||||
this._isNew = false;
|
||||
|
@ -97,6 +99,10 @@ JX.install('DiffInline', {
|
|||
return this._isDeleted;
|
||||
},
|
||||
|
||||
isSynthetic: function() {
|
||||
return this._isSynthetic;
|
||||
},
|
||||
|
||||
bindToRange: function(data) {
|
||||
this._displaySide = data.displaySide;
|
||||
this._number = parseInt(data.number, 10);
|
||||
|
|
|
@ -53,7 +53,7 @@ JX.behavior('diffusion-commit-graph', function(config) {
|
|||
return (col * cell) + (cell / 2);
|
||||
};
|
||||
|
||||
var h = 32;
|
||||
var h = 34;
|
||||
var w = cell * config.count;
|
||||
|
||||
var canvas = JX.$N('canvas', {width: w, height: h});
|
||||
|
|
|
@ -137,7 +137,9 @@ JX.behavior('phabricator-object-selector', function(config) {
|
|||
|
||||
var select_object_button = JX.$N(
|
||||
'a',
|
||||
{href: '#', sigil: 'object-attacher', className: 'button small grey'},
|
||||
{href: '#',
|
||||
sigil: 'object-attacher',
|
||||
className: 'button small button-grey'},
|
||||
attach ? 'Select' : 'Remove');
|
||||
|
||||
var cells = [
|
||||
|
|
|
@ -35,10 +35,10 @@ JX.install('PHUIXButtonView', {
|
|||
var node = this.getNode();
|
||||
|
||||
if (this._color) {
|
||||
JX.DOM.alterClass(node, this._color, false);
|
||||
JX.DOM.alterClass(node, 'button-' + this._color, false);
|
||||
}
|
||||
this._color = color;
|
||||
JX.DOM.alterClass(node, this._color, true);
|
||||
JX.DOM.alterClass(node, 'button-' + this._color, true);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
@ -50,13 +50,14 @@ JX.install('PHUIXButtonView', {
|
|||
var node = this.getNode();
|
||||
|
||||
var is_simple = (this._buttonType == self.BUTTONTYPE_SIMPLE);
|
||||
JX.DOM.alterClass(node, 'simple', is_simple);
|
||||
JX.DOM.alterClass(node, 'phui-button-simple', is_simple);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
setText: function(text) {
|
||||
JX.DOM.setContent(this._getTextNode(), text);
|
||||
this._redraw();
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in a new issue