1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-25 08:12:40 +01:00

(stable) Promote 2016 Week 14

This commit is contained in:
epriestley 2016-04-01 16:31:08 -07:00
commit 0b4be847a1
247 changed files with 2920 additions and 1569 deletions

View file

@ -7,8 +7,8 @@
*/ */
return array( return array(
'names' => array( 'names' => array(
'core.pkg.css' => '9acdee84', 'core.pkg.css' => '2d0339fc',
'core.pkg.js' => '7d8faf57', 'core.pkg.js' => 'e5484f37',
'darkconsole.pkg.js' => 'e7393ebb', 'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '7ba78475', 'differential.pkg.css' => '7ba78475',
'differential.pkg.js' => 'd0cd0df6', 'differential.pkg.js' => 'd0cd0df6',
@ -94,7 +94,7 @@ return array(
'rsrc/css/application/policy/policy.css' => '957ea14c', 'rsrc/css/application/policy/policy.css' => '957ea14c',
'rsrc/css/application/ponder/ponder-view.css' => 'fbd45f96', 'rsrc/css/application/ponder/ponder-view.css' => 'fbd45f96',
'rsrc/css/application/project/project-card-view.css' => '9418c97d', 'rsrc/css/application/project/project-card-view.css' => '9418c97d',
'rsrc/css/application/project/project-view.css' => '9ce99f21', 'rsrc/css/application/project/project-view.css' => 'cbaa10a1',
'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733', 'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733',
'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5', 'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5',
'rsrc/css/application/releeph/releeph-request-differential-create-dialog.css' => '8d8b92cd', 'rsrc/css/application/releeph/releeph-request-differential-create-dialog.css' => '8d8b92cd',
@ -104,7 +104,7 @@ return array(
'rsrc/css/application/tokens/tokens.css' => '3d0f239e', 'rsrc/css/application/tokens/tokens.css' => '3d0f239e',
'rsrc/css/application/uiexample/example.css' => '528b19de', 'rsrc/css/application/uiexample/example.css' => '528b19de',
'rsrc/css/core/core.css' => 'd0801452', 'rsrc/css/core/core.css' => 'd0801452',
'rsrc/css/core/remarkup.css' => 'fc228f08', 'rsrc/css/core/remarkup.css' => '2c9ed46f',
'rsrc/css/core/syntax.css' => '9fd11da8', 'rsrc/css/core/syntax.css' => '9fd11da8',
'rsrc/css/core/z-index.css' => '5b6fcf3f', 'rsrc/css/core/z-index.css' => '5b6fcf3f',
'rsrc/css/diviner/diviner-shared.css' => 'aa3656aa', 'rsrc/css/diviner/diviner-shared.css' => 'aa3656aa',
@ -133,7 +133,7 @@ return array(
'rsrc/css/phui/phui-document.css' => '9c71d2bf', 'rsrc/css/phui/phui-document.css' => '9c71d2bf',
'rsrc/css/phui/phui-feed-story.css' => '04aec08f', 'rsrc/css/phui/phui-feed-story.css' => '04aec08f',
'rsrc/css/phui/phui-fontkit.css' => '9cda225e', 'rsrc/css/phui/phui-fontkit.css' => '9cda225e',
'rsrc/css/phui/phui-form-view.css' => '4a1a0f5e', 'rsrc/css/phui/phui-form-view.css' => '6a51768e',
'rsrc/css/phui/phui-form.css' => 'aac1d51d', 'rsrc/css/phui/phui-form.css' => 'aac1d51d',
'rsrc/css/phui/phui-head-thing.css' => 'fd311e5f', 'rsrc/css/phui/phui-head-thing.css' => 'fd311e5f',
'rsrc/css/phui/phui-header-view.css' => '230254d3', 'rsrc/css/phui/phui-header-view.css' => '230254d3',
@ -156,7 +156,7 @@ return array(
'rsrc/css/phui/phui-status.css' => '37309046', 'rsrc/css/phui/phui-status.css' => '37309046',
'rsrc/css/phui/phui-tag-view.css' => '6bbd83e2', 'rsrc/css/phui/phui-tag-view.css' => '6bbd83e2',
'rsrc/css/phui/phui-timeline-view.css' => '6e342216', 'rsrc/css/phui/phui-timeline-view.css' => '6e342216',
'rsrc/css/phui/phui-two-column-view.css' => '9c43b599', 'rsrc/css/phui/phui-two-column-view.css' => '691fec04',
'rsrc/css/phui/workboards/phui-workboard-color.css' => 'ac6fe6a7', 'rsrc/css/phui/workboards/phui-workboard-color.css' => 'ac6fe6a7',
'rsrc/css/phui/workboards/phui-workboard.css' => 'e6d89647', 'rsrc/css/phui/workboards/phui-workboard.css' => 'e6d89647',
'rsrc/css/phui/workboards/phui-workcard.css' => '3646fb96', 'rsrc/css/phui/workboards/phui-workcard.css' => '3646fb96',
@ -244,7 +244,7 @@ return array(
'rsrc/externals/javelin/lib/URI.js' => 'c989ade3', 'rsrc/externals/javelin/lib/URI.js' => 'c989ade3',
'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8', 'rsrc/externals/javelin/lib/Vector.js' => '2caa8fb8',
'rsrc/externals/javelin/lib/WebSocket.js' => 'e292eaf4', 'rsrc/externals/javelin/lib/WebSocket.js' => 'e292eaf4',
'rsrc/externals/javelin/lib/Workflow.js' => '5b2e3e2b', 'rsrc/externals/javelin/lib/Workflow.js' => '28cfbdd0',
'rsrc/externals/javelin/lib/__tests__/Cookie.js' => '5ed109e8', 'rsrc/externals/javelin/lib/__tests__/Cookie.js' => '5ed109e8',
'rsrc/externals/javelin/lib/__tests__/DOM.js' => 'c984504b', 'rsrc/externals/javelin/lib/__tests__/DOM.js' => 'c984504b',
'rsrc/externals/javelin/lib/__tests__/JSON.js' => '837a7d68', 'rsrc/externals/javelin/lib/__tests__/JSON.js' => '837a7d68',
@ -433,7 +433,7 @@ return array(
'rsrc/js/application/search/behavior-reorder-profile-menu-items.js' => 'e2e0a072', 'rsrc/js/application/search/behavior-reorder-profile-menu-items.js' => 'e2e0a072',
'rsrc/js/application/search/behavior-reorder-queries.js' => 'e9581f08', 'rsrc/js/application/search/behavior-reorder-queries.js' => 'e9581f08',
'rsrc/js/application/slowvote/behavior-slowvote-embed.js' => '887ad43f', 'rsrc/js/application/slowvote/behavior-slowvote-embed.js' => '887ad43f',
'rsrc/js/application/transactions/behavior-comment-actions.js' => '1f2fcaf8', 'rsrc/js/application/transactions/behavior-comment-actions.js' => '06460e71',
'rsrc/js/application/transactions/behavior-reorder-configs.js' => 'd7a74243', 'rsrc/js/application/transactions/behavior-reorder-configs.js' => 'd7a74243',
'rsrc/js/application/transactions/behavior-reorder-fields.js' => 'b59e1e96', 'rsrc/js/application/transactions/behavior-reorder-fields.js' => 'b59e1e96',
'rsrc/js/application/transactions/behavior-show-older-transactions.js' => 'dbbf48b6', 'rsrc/js/application/transactions/behavior-show-older-transactions.js' => 'dbbf48b6',
@ -580,7 +580,7 @@ return array(
'javelin-behavior-audit-preview' => 'd835b03a', 'javelin-behavior-audit-preview' => 'd835b03a',
'javelin-behavior-bulk-job-reload' => 'edf8a145', 'javelin-behavior-bulk-job-reload' => 'edf8a145',
'javelin-behavior-choose-control' => '327a00d1', 'javelin-behavior-choose-control' => '327a00d1',
'javelin-behavior-comment-actions' => '1f2fcaf8', 'javelin-behavior-comment-actions' => '06460e71',
'javelin-behavior-config-reorder-fields' => 'b6993408', 'javelin-behavior-config-reorder-fields' => 'b6993408',
'javelin-behavior-conpherence-drag-and-drop-photo' => 'cf86d16a', 'javelin-behavior-conpherence-drag-and-drop-photo' => 'cf86d16a',
'javelin-behavior-conpherence-menu' => '1d45c74d', 'javelin-behavior-conpherence-menu' => '1d45c74d',
@ -734,7 +734,7 @@ return array(
'javelin-workboard-card' => 'c587b80f', 'javelin-workboard-card' => 'c587b80f',
'javelin-workboard-column' => 'bae58312', 'javelin-workboard-column' => 'bae58312',
'javelin-workboard-controller' => '55baf5ed', 'javelin-workboard-controller' => '55baf5ed',
'javelin-workflow' => '5b2e3e2b', 'javelin-workflow' => '28cfbdd0',
'lightbox-attachment-css' => '7acac05d', 'lightbox-attachment-css' => '7acac05d',
'maniphest-batch-editor' => 'b0f0b6d5', 'maniphest-batch-editor' => 'b0f0b6d5',
'maniphest-report-css' => '9b9580b7', 'maniphest-report-css' => '9b9580b7',
@ -771,7 +771,7 @@ return array(
'phabricator-object-selector-css' => '85ee8ce6', 'phabricator-object-selector-css' => '85ee8ce6',
'phabricator-phtize' => 'd254d646', 'phabricator-phtize' => 'd254d646',
'phabricator-prefab' => 'e67df814', 'phabricator-prefab' => 'e67df814',
'phabricator-remarkup-css' => 'fc228f08', 'phabricator-remarkup-css' => '2c9ed46f',
'phabricator-search-results-css' => '7dea472c', 'phabricator-search-results-css' => '7dea472c',
'phabricator-shaped-request' => '7cbe244b', 'phabricator-shaped-request' => '7cbe244b',
'phabricator-side-menu-view-css' => '3a3d9f41', 'phabricator-side-menu-view-css' => '3a3d9f41',
@ -821,7 +821,7 @@ return array(
'phui-font-icon-base-css' => '6449bce8', 'phui-font-icon-base-css' => '6449bce8',
'phui-fontkit-css' => '9cda225e', 'phui-fontkit-css' => '9cda225e',
'phui-form-css' => 'aac1d51d', 'phui-form-css' => 'aac1d51d',
'phui-form-view-css' => '4a1a0f5e', 'phui-form-view-css' => '6a51768e',
'phui-head-thing-view-css' => 'fd311e5f', 'phui-head-thing-view-css' => 'fd311e5f',
'phui-header-view-css' => '230254d3', 'phui-header-view-css' => '230254d3',
'phui-hovercard' => '1bd28176', 'phui-hovercard' => '1bd28176',
@ -846,7 +846,7 @@ return array(
'phui-tag-view-css' => '6bbd83e2', 'phui-tag-view-css' => '6bbd83e2',
'phui-theme-css' => '027ba77e', 'phui-theme-css' => '027ba77e',
'phui-timeline-view-css' => '6e342216', 'phui-timeline-view-css' => '6e342216',
'phui-two-column-view-css' => '9c43b599', 'phui-two-column-view-css' => '691fec04',
'phui-workboard-color-css' => 'ac6fe6a7', 'phui-workboard-color-css' => 'ac6fe6a7',
'phui-workboard-view-css' => 'e6d89647', 'phui-workboard-view-css' => 'e6d89647',
'phui-workcard-view-css' => '3646fb96', 'phui-workcard-view-css' => '3646fb96',
@ -862,7 +862,7 @@ return array(
'policy-transaction-detail-css' => '82100a43', 'policy-transaction-detail-css' => '82100a43',
'ponder-view-css' => 'fbd45f96', 'ponder-view-css' => 'fbd45f96',
'project-card-view-css' => '9418c97d', 'project-card-view-css' => '9418c97d',
'project-view-css' => '9ce99f21', 'project-view-css' => 'cbaa10a1',
'releeph-core' => '9b3c5733', 'releeph-core' => '9b3c5733',
'releeph-preview-branch' => 'b7a6f4a5', 'releeph-preview-branch' => 'b7a6f4a5',
'releeph-request-differential-create-dialog' => '8d8b92cd', 'releeph-request-differential-create-dialog' => '8d8b92cd',
@ -920,6 +920,15 @@ return array(
'aphront-typeahead-control-css', 'aphront-typeahead-control-css',
'phui-tag-view-css', 'phui-tag-view-css',
), ),
'06460e71' => array(
'javelin-behavior',
'javelin-stratcom',
'javelin-workflow',
'javelin-dom',
'phuix-form-control-view',
'phuix-icon-view',
'javelin-behavior-phabricator-gesture',
),
'065227cc' => array( '065227cc' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-dom', 'javelin-dom',
@ -1025,15 +1034,6 @@ return array(
'javelin-dom', 'javelin-dom',
'javelin-reactor-dom', 'javelin-reactor-dom',
), ),
'1f2fcaf8' => array(
'javelin-behavior',
'javelin-stratcom',
'javelin-workflow',
'javelin-dom',
'phuix-form-control-view',
'phuix-icon-view',
'javelin-behavior-phabricator-gesture',
),
'21ba5861' => array( '21ba5861' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-dom', 'javelin-dom',
@ -1059,6 +1059,17 @@ return array(
'phabricator-drag-and-drop-file-upload', 'phabricator-drag-and-drop-file-upload',
'phabricator-draggable-list', 'phabricator-draggable-list',
), ),
'28cfbdd0' => array(
'javelin-stratcom',
'javelin-request',
'javelin-dom',
'javelin-vector',
'javelin-install',
'javelin-util',
'javelin-mask',
'javelin-uri',
'javelin-routable',
),
'2926fff2' => array( '2926fff2' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-dom', 'javelin-dom',
@ -1312,17 +1323,6 @@ return array(
'javelin-vector', 'javelin-vector',
'javelin-magical-init', 'javelin-magical-init',
), ),
'5b2e3e2b' => array(
'javelin-stratcom',
'javelin-request',
'javelin-dom',
'javelin-vector',
'javelin-install',
'javelin-util',
'javelin-mask',
'javelin-uri',
'javelin-routable',
),
'5c54cbf3' => array( '5c54cbf3' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',

View file

@ -4,8 +4,7 @@ $conn_w = id(new DifferentialRevision())->establishConnection('w');
$rows = new LiskRawMigrationIterator($conn_w, 'differential_comment'); $rows = new LiskRawMigrationIterator($conn_w, 'differential_comment');
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
echo pht('Migrating Differential comment text to modern storage...')."\n"; echo pht('Migrating Differential comment text to modern storage...')."\n";
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -4,8 +4,7 @@ $conn_w = id(new DifferentialRevision())->establishConnection('w');
$rows = new LiskRawMigrationIterator($conn_w, 'differential_comment'); $rows = new LiskRawMigrationIterator($conn_w, 'differential_comment');
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
echo pht('Migrating Differential comments to modern storage...')."\n"; echo pht('Migrating Differential comments to modern storage...')."\n";
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -10,8 +10,7 @@ $dst_table = 'audit_transaction_comment';
echo pht('Migrating Audit inline comments to new format...')."\n"; echo pht('Migrating Audit inline comments to new format...')."\n";
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
$rows = new LiskRawMigrationIterator($conn_w, $src_table); $rows = new LiskRawMigrationIterator($conn_w, $src_table);
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -4,8 +4,7 @@ $conn_w = id(new PhabricatorAuditTransaction())->establishConnection('w');
$rows = new LiskRawMigrationIterator($conn_w, 'audit_comment'); $rows = new LiskRawMigrationIterator($conn_w, 'audit_comment');
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
echo pht('Migrating Audit comment text to modern storage...')."\n"; echo pht('Migrating Audit comment text to modern storage...')."\n";
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -4,8 +4,7 @@ $conn_w = id(new PhabricatorAuditTransaction())->establishConnection('w');
$rows = new LiskRawMigrationIterator($conn_w, 'audit_comment'); $rows = new LiskRawMigrationIterator($conn_w, 'audit_comment');
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
echo pht('Migrating Audit comments to modern storage...')."\n"; echo pht('Migrating Audit comments to modern storage...')."\n";
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -0,0 +1,10 @@
CREATE TABLE {$NAMESPACE}_badges.badges_award (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
badgePHID VARBINARY(64) NOT NULL,
recipientPHID VARBINARY(64) NOT NULL,
awarderPHID varbinary(64) NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_badge` (badgePHID, recipientPHID),
KEY `key_recipient` (recipientPHID)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View file

@ -0,0 +1,6 @@
/* PhabricatorBadgeHasRecipientEdgeType::TYPECONST = 59 */
INSERT IGNORE INTO {$NAMESPACE}_badges.badges_award
(badgePHID, recipientPHID, awarderPHID, dateCreated, dateModified)
SELECT src, dst, 'PHID-VOID-00000000000000000000', dateCreated, dateCreated
FROM {$NAMESPACE}_badges.edge WHERE type = 59;

View file

@ -0,0 +1 @@
DROP TABLE IF EXISTS {$NAMESPACE}_nuance.nuance_requestor;

View file

@ -0,0 +1 @@
DROP TABLE IF EXISTS {$NAMESPACE}_nuance.nuance_requestorsource;

View file

@ -0,0 +1 @@
DROP TABLE IF EXISTS {$NAMESPACE}_nuance.nuance_requestortransaction;

View file

@ -0,0 +1 @@
DROP TABLE IF EXISTS {$NAMESPACE}_nuance.nuance_requestortransaction_comment;

View file

@ -0,0 +1,32 @@
/* Change quality from color to int */
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 140
WHERE quality = 'grey';
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 120
WHERE quality = 'white';
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 100
WHERE quality = 'green';
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 80
WHERE quality = 'blue';
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 60
WHERE quality = 'indigo';
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 40
WHERE quality = 'orange';
UPDATE {$NAMESPACE}_badges.badges_badge
SET quality = 20
WHERE quality = 'yellow';
ALTER TABLE {$NAMESPACE}_badges.badges_badge
MODIFY quality INT UNSIGNED NOT NULL;

View file

@ -0,0 +1,59 @@
/* Migrate old badge quality transactions */
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 140
WHERE oldValue = '"grey"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 120
WHERE oldValue = '"white"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 100
WHERE oldValue = '"green"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 80
WHERE oldValue = '"blue"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 60
WHERE oldValue = '"indigo"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 40
WHERE oldValue = '"orange"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET oldValue = 20
WHERE oldValue = '"yellow"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 140
WHERE newValue = '"grey"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 120
WHERE newValue = '"white"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 100
WHERE newValue = '"green"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 80
WHERE newValue = '"blue"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 60
WHERE newValue = '"indigo"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 40
WHERE newValue = '"orange"' AND transactionType = 'badges:quality';
UPDATE {$NAMESPACE}_badges.badges_transaction
SET newValue = 20
WHERE newValue = '"yellow"' AND transactionType = 'badges:quality';

View file

@ -0,0 +1,18 @@
CREATE TABLE {$NAMESPACE}_fund.fund_initiativetransaction_comment (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
phid VARCHAR(64) NOT NULL,
transactionPHID VARCHAR(64),
authorPHID VARCHAR(64) NOT NULL,
viewPolicy VARCHAR(64) NOT NULL,
editPolicy VARCHAR(64) NOT NULL,
commentVersion INT UNSIGNED NOT NULL,
content LONGTEXT NOT NULL COLLATE {$COLLATE_TEXT},
contentSource LONGTEXT NOT NULL COLLATE {$COLLATE_TEXT},
isDeleted BOOL NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (phid),
UNIQUE KEY `key_version` (transactionPHID, commentVersion)
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};

View file

@ -46,9 +46,8 @@ foreach ($comments as $comment) {
PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST, PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST,
PhabricatorSlowvotePollPHIDType::TYPECONST); PhabricatorSlowvotePollPHIDType::TYPECONST);
$source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
queryfx( queryfx(
$conn_w, $conn_w,

View file

@ -49,8 +49,7 @@ foreach ($rows as $row) {
1, 1,
$row['content'], $row['content'],
PhabricatorContentSource::newForSource( PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize(),
array())->serialize(),
0, 0,
$row['dateCreated'], $row['dateCreated'],
$row['dateModified']); $row['dateModified']);
@ -73,8 +72,7 @@ foreach ($rows as $row) {
'null', 'null',
'null', 'null',
PhabricatorContentSource::newForSource( PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize(),
array())->serialize(),
'[]', '[]',
$row['dateCreated'], $row['dateCreated'],
$row['dateModified']); $row['dateModified']);

View file

@ -34,8 +34,7 @@ foreach ($rows as $row) {
'null', 'null',
$row['filePHID'], $row['filePHID'],
PhabricatorContentSource::newForSource( PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize(),
array())->serialize(),
'[]', '[]',
$row['dateCreated'], $row['dateCreated'],
$row['dateCreated'], $row['dateCreated'],

View file

@ -10,8 +10,7 @@ $dst_table = 'differential_transaction_comment';
echo pht('Migrating Differential inline comments to new format...')."\n"; echo pht('Migrating Differential inline comments to new format...')."\n";
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
$rows = new LiskRawMigrationIterator($conn_w, $src_table); $rows = new LiskRawMigrationIterator($conn_w, $src_table);
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -10,8 +10,7 @@ $dst_table = 'project_transaction';
echo pht('Migrating Project transactions to new format...')."\n"; echo pht('Migrating Project transactions to new format...')."\n";
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST)->serialize();
array())->serialize();
$rows = new LiskRawMigrationIterator($conn_w, $src_table); $rows = new LiskRawMigrationIterator($conn_w, $src_table);
foreach ($rows as $row) { foreach ($rows as $row) {

View file

@ -843,12 +843,14 @@ phutil_register_library_map(array(
'DoorkeeperBridgeAsana' => 'applications/doorkeeper/bridge/DoorkeeperBridgeAsana.php', 'DoorkeeperBridgeAsana' => 'applications/doorkeeper/bridge/DoorkeeperBridgeAsana.php',
'DoorkeeperBridgeGitHub' => 'applications/doorkeeper/bridge/DoorkeeperBridgeGitHub.php', 'DoorkeeperBridgeGitHub' => 'applications/doorkeeper/bridge/DoorkeeperBridgeGitHub.php',
'DoorkeeperBridgeGitHubIssue' => 'applications/doorkeeper/bridge/DoorkeeperBridgeGitHubIssue.php', 'DoorkeeperBridgeGitHubIssue' => 'applications/doorkeeper/bridge/DoorkeeperBridgeGitHubIssue.php',
'DoorkeeperBridgeGitHubUser' => 'applications/doorkeeper/bridge/DoorkeeperBridgeGitHubUser.php',
'DoorkeeperBridgeJIRA' => 'applications/doorkeeper/bridge/DoorkeeperBridgeJIRA.php', 'DoorkeeperBridgeJIRA' => 'applications/doorkeeper/bridge/DoorkeeperBridgeJIRA.php',
'DoorkeeperBridgeJIRATestCase' => 'applications/doorkeeper/bridge/__tests__/DoorkeeperBridgeJIRATestCase.php', 'DoorkeeperBridgeJIRATestCase' => 'applications/doorkeeper/bridge/__tests__/DoorkeeperBridgeJIRATestCase.php',
'DoorkeeperBridgedObjectCurtainExtension' => 'applications/doorkeeper/engineextension/DoorkeeperBridgedObjectCurtainExtension.php', 'DoorkeeperBridgedObjectCurtainExtension' => 'applications/doorkeeper/engineextension/DoorkeeperBridgedObjectCurtainExtension.php',
'DoorkeeperBridgedObjectInterface' => 'applications/doorkeeper/bridge/DoorkeeperBridgedObjectInterface.php', 'DoorkeeperBridgedObjectInterface' => 'applications/doorkeeper/bridge/DoorkeeperBridgedObjectInterface.php',
'DoorkeeperDAO' => 'applications/doorkeeper/storage/DoorkeeperDAO.php', 'DoorkeeperDAO' => 'applications/doorkeeper/storage/DoorkeeperDAO.php',
'DoorkeeperExternalObject' => 'applications/doorkeeper/storage/DoorkeeperExternalObject.php', 'DoorkeeperExternalObject' => 'applications/doorkeeper/storage/DoorkeeperExternalObject.php',
'DoorkeeperExternalObjectPHIDType' => 'applications/doorkeeper/phid/DoorkeeperExternalObjectPHIDType.php',
'DoorkeeperExternalObjectQuery' => 'applications/doorkeeper/query/DoorkeeperExternalObjectQuery.php', 'DoorkeeperExternalObjectQuery' => 'applications/doorkeeper/query/DoorkeeperExternalObjectQuery.php',
'DoorkeeperFeedStoryPublisher' => 'applications/doorkeeper/engine/DoorkeeperFeedStoryPublisher.php', 'DoorkeeperFeedStoryPublisher' => 'applications/doorkeeper/engine/DoorkeeperFeedStoryPublisher.php',
'DoorkeeperFeedWorker' => 'applications/doorkeeper/worker/DoorkeeperFeedWorker.php', 'DoorkeeperFeedWorker' => 'applications/doorkeeper/worker/DoorkeeperFeedWorker.php',
@ -1022,6 +1024,7 @@ phutil_register_library_map(array(
'FundInitiative' => 'applications/fund/storage/FundInitiative.php', 'FundInitiative' => 'applications/fund/storage/FundInitiative.php',
'FundInitiativeBackController' => 'applications/fund/controller/FundInitiativeBackController.php', 'FundInitiativeBackController' => 'applications/fund/controller/FundInitiativeBackController.php',
'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php', 'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php',
'FundInitiativeCommentController' => 'applications/fund/controller/FundInitiativeCommentController.php',
'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php', 'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php',
'FundInitiativeEditor' => 'applications/fund/editor/FundInitiativeEditor.php', 'FundInitiativeEditor' => 'applications/fund/editor/FundInitiativeEditor.php',
'FundInitiativeFulltextEngine' => 'applications/fund/search/FundInitiativeFulltextEngine.php', 'FundInitiativeFulltextEngine' => 'applications/fund/search/FundInitiativeFulltextEngine.php',
@ -1032,6 +1035,7 @@ phutil_register_library_map(array(
'FundInitiativeReplyHandler' => 'applications/fund/mail/FundInitiativeReplyHandler.php', 'FundInitiativeReplyHandler' => 'applications/fund/mail/FundInitiativeReplyHandler.php',
'FundInitiativeSearchEngine' => 'applications/fund/query/FundInitiativeSearchEngine.php', 'FundInitiativeSearchEngine' => 'applications/fund/query/FundInitiativeSearchEngine.php',
'FundInitiativeTransaction' => 'applications/fund/storage/FundInitiativeTransaction.php', 'FundInitiativeTransaction' => 'applications/fund/storage/FundInitiativeTransaction.php',
'FundInitiativeTransactionComment' => 'applications/fund/storage/FundInitiativeTransactionComment.php',
'FundInitiativeTransactionQuery' => 'applications/fund/query/FundInitiativeTransactionQuery.php', 'FundInitiativeTransactionQuery' => 'applications/fund/query/FundInitiativeTransactionQuery.php',
'FundInitiativeViewController' => 'applications/fund/controller/FundInitiativeViewController.php', 'FundInitiativeViewController' => 'applications/fund/controller/FundInitiativeViewController.php',
'FundSchemaSpec' => 'applications/fund/storage/FundSchemaSpec.php', 'FundSchemaSpec' => 'applications/fund/storage/FundSchemaSpec.php',
@ -1228,6 +1232,7 @@ phutil_register_library_map(array(
'HeraldRulePHIDType' => 'applications/herald/phid/HeraldRulePHIDType.php', 'HeraldRulePHIDType' => 'applications/herald/phid/HeraldRulePHIDType.php',
'HeraldRuleQuery' => 'applications/herald/query/HeraldRuleQuery.php', 'HeraldRuleQuery' => 'applications/herald/query/HeraldRuleQuery.php',
'HeraldRuleSearchEngine' => 'applications/herald/query/HeraldRuleSearchEngine.php', 'HeraldRuleSearchEngine' => 'applications/herald/query/HeraldRuleSearchEngine.php',
'HeraldRuleSerializer' => 'applications/herald/editor/HeraldRuleSerializer.php',
'HeraldRuleTestCase' => 'applications/herald/storage/__tests__/HeraldRuleTestCase.php', 'HeraldRuleTestCase' => 'applications/herald/storage/__tests__/HeraldRuleTestCase.php',
'HeraldRuleTransaction' => 'applications/herald/storage/HeraldRuleTransaction.php', 'HeraldRuleTransaction' => 'applications/herald/storage/HeraldRuleTransaction.php',
'HeraldRuleTransactionComment' => 'applications/herald/storage/HeraldRuleTransactionComment.php', 'HeraldRuleTransactionComment' => 'applications/herald/storage/HeraldRuleTransactionComment.php',
@ -1426,6 +1431,7 @@ phutil_register_library_map(array(
'MultimeterViewer' => 'applications/multimeter/storage/MultimeterViewer.php', 'MultimeterViewer' => 'applications/multimeter/storage/MultimeterViewer.php',
'NuanceConduitAPIMethod' => 'applications/nuance/conduit/NuanceConduitAPIMethod.php', 'NuanceConduitAPIMethod' => 'applications/nuance/conduit/NuanceConduitAPIMethod.php',
'NuanceConsoleController' => 'applications/nuance/controller/NuanceConsoleController.php', 'NuanceConsoleController' => 'applications/nuance/controller/NuanceConsoleController.php',
'NuanceContentSource' => 'applications/nuance/contentsource/NuanceContentSource.php',
'NuanceController' => 'applications/nuance/controller/NuanceController.php', 'NuanceController' => 'applications/nuance/controller/NuanceController.php',
'NuanceDAO' => 'applications/nuance/storage/NuanceDAO.php', 'NuanceDAO' => 'applications/nuance/storage/NuanceDAO.php',
'NuanceGitHubEventItemType' => 'applications/nuance/item/NuanceGitHubEventItemType.php', 'NuanceGitHubEventItemType' => 'applications/nuance/item/NuanceGitHubEventItemType.php',
@ -1475,16 +1481,6 @@ phutil_register_library_map(array(
'NuanceQueueTransactionComment' => 'applications/nuance/storage/NuanceQueueTransactionComment.php', 'NuanceQueueTransactionComment' => 'applications/nuance/storage/NuanceQueueTransactionComment.php',
'NuanceQueueTransactionQuery' => 'applications/nuance/query/NuanceQueueTransactionQuery.php', 'NuanceQueueTransactionQuery' => 'applications/nuance/query/NuanceQueueTransactionQuery.php',
'NuanceQueueViewController' => 'applications/nuance/controller/NuanceQueueViewController.php', 'NuanceQueueViewController' => 'applications/nuance/controller/NuanceQueueViewController.php',
'NuanceRequestor' => 'applications/nuance/storage/NuanceRequestor.php',
'NuanceRequestorEditController' => 'applications/nuance/controller/NuanceRequestorEditController.php',
'NuanceRequestorEditor' => 'applications/nuance/editor/NuanceRequestorEditor.php',
'NuanceRequestorPHIDType' => 'applications/nuance/phid/NuanceRequestorPHIDType.php',
'NuanceRequestorQuery' => 'applications/nuance/query/NuanceRequestorQuery.php',
'NuanceRequestorSource' => 'applications/nuance/storage/NuanceRequestorSource.php',
'NuanceRequestorTransaction' => 'applications/nuance/storage/NuanceRequestorTransaction.php',
'NuanceRequestorTransactionComment' => 'applications/nuance/storage/NuanceRequestorTransactionComment.php',
'NuanceRequestorTransactionQuery' => 'applications/nuance/query/NuanceRequestorTransactionQuery.php',
'NuanceRequestorViewController' => 'applications/nuance/controller/NuanceRequestorViewController.php',
'NuanceSchemaSpec' => 'applications/nuance/storage/NuanceSchemaSpec.php', 'NuanceSchemaSpec' => 'applications/nuance/storage/NuanceSchemaSpec.php',
'NuanceSource' => 'applications/nuance/storage/NuanceSource.php', 'NuanceSource' => 'applications/nuance/storage/NuanceSource.php',
'NuanceSourceActionController' => 'applications/nuance/controller/NuanceSourceActionController.php', 'NuanceSourceActionController' => 'applications/nuance/controller/NuanceSourceActionController.php',
@ -1870,6 +1866,9 @@ phutil_register_library_map(array(
'PhabricatorBadgeHasRecipientEdgeType' => 'applications/badges/edge/PhabricatorBadgeHasRecipientEdgeType.php', 'PhabricatorBadgeHasRecipientEdgeType' => 'applications/badges/edge/PhabricatorBadgeHasRecipientEdgeType.php',
'PhabricatorBadgesApplication' => 'applications/badges/application/PhabricatorBadgesApplication.php', 'PhabricatorBadgesApplication' => 'applications/badges/application/PhabricatorBadgesApplication.php',
'PhabricatorBadgesArchiveController' => 'applications/badges/controller/PhabricatorBadgesArchiveController.php', 'PhabricatorBadgesArchiveController' => 'applications/badges/controller/PhabricatorBadgesArchiveController.php',
'PhabricatorBadgesAward' => 'applications/badges/storage/PhabricatorBadgesAward.php',
'PhabricatorBadgesAwardController' => 'applications/badges/controller/PhabricatorBadgesAwardController.php',
'PhabricatorBadgesAwardQuery' => 'applications/badges/query/PhabricatorBadgesAwardQuery.php',
'PhabricatorBadgesBadge' => 'applications/badges/storage/PhabricatorBadgesBadge.php', 'PhabricatorBadgesBadge' => 'applications/badges/storage/PhabricatorBadgesBadge.php',
'PhabricatorBadgesCommentController' => 'applications/badges/controller/PhabricatorBadgesCommentController.php', 'PhabricatorBadgesCommentController' => 'applications/badges/controller/PhabricatorBadgesCommentController.php',
'PhabricatorBadgesController' => 'applications/badges/controller/PhabricatorBadgesController.php', 'PhabricatorBadgesController' => 'applications/badges/controller/PhabricatorBadgesController.php',
@ -1884,6 +1883,7 @@ phutil_register_library_map(array(
'PhabricatorBadgesListController' => 'applications/badges/controller/PhabricatorBadgesListController.php', 'PhabricatorBadgesListController' => 'applications/badges/controller/PhabricatorBadgesListController.php',
'PhabricatorBadgesMailReceiver' => 'applications/badges/mail/PhabricatorBadgesMailReceiver.php', 'PhabricatorBadgesMailReceiver' => 'applications/badges/mail/PhabricatorBadgesMailReceiver.php',
'PhabricatorBadgesPHIDType' => 'applications/badges/phid/PhabricatorBadgesPHIDType.php', 'PhabricatorBadgesPHIDType' => 'applications/badges/phid/PhabricatorBadgesPHIDType.php',
'PhabricatorBadgesQuality' => 'applications/badges/constants/PhabricatorBadgesQuality.php',
'PhabricatorBadgesQuery' => 'applications/badges/query/PhabricatorBadgesQuery.php', 'PhabricatorBadgesQuery' => 'applications/badges/query/PhabricatorBadgesQuery.php',
'PhabricatorBadgesRecipientsListView' => 'applications/badges/view/PhabricatorBadgesRecipientsListView.php', 'PhabricatorBadgesRecipientsListView' => 'applications/badges/view/PhabricatorBadgesRecipientsListView.php',
'PhabricatorBadgesRemoveRecipientsController' => 'applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php', 'PhabricatorBadgesRemoveRecipientsController' => 'applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php',
@ -1919,6 +1919,7 @@ phutil_register_library_map(array(
'PhabricatorBotWhatsNewHandler' => 'infrastructure/daemon/bot/handler/PhabricatorBotWhatsNewHandler.php', 'PhabricatorBotWhatsNewHandler' => 'infrastructure/daemon/bot/handler/PhabricatorBotWhatsNewHandler.php',
'PhabricatorBritishEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorBritishEnglishTranslation.php', 'PhabricatorBritishEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorBritishEnglishTranslation.php',
'PhabricatorBuiltinPatchList' => 'infrastructure/storage/patch/PhabricatorBuiltinPatchList.php', 'PhabricatorBuiltinPatchList' => 'infrastructure/storage/patch/PhabricatorBuiltinPatchList.php',
'PhabricatorBulkContentSource' => 'infrastructure/daemon/contentsource/PhabricatorBulkContentSource.php',
'PhabricatorBusyUIExample' => 'applications/uiexample/examples/PhabricatorBusyUIExample.php', 'PhabricatorBusyUIExample' => 'applications/uiexample/examples/PhabricatorBusyUIExample.php',
'PhabricatorCacheDAO' => 'applications/cache/storage/PhabricatorCacheDAO.php', 'PhabricatorCacheDAO' => 'applications/cache/storage/PhabricatorCacheDAO.php',
'PhabricatorCacheGeneralGarbageCollector' => 'applications/cache/garbagecollector/PhabricatorCacheGeneralGarbageCollector.php', 'PhabricatorCacheGeneralGarbageCollector' => 'applications/cache/garbagecollector/PhabricatorCacheGeneralGarbageCollector.php',
@ -1993,6 +1994,7 @@ phutil_register_library_map(array(
'PhabricatorConduitCertificateToken' => 'applications/conduit/storage/PhabricatorConduitCertificateToken.php', 'PhabricatorConduitCertificateToken' => 'applications/conduit/storage/PhabricatorConduitCertificateToken.php',
'PhabricatorConduitConnectionLog' => 'applications/conduit/storage/PhabricatorConduitConnectionLog.php', 'PhabricatorConduitConnectionLog' => 'applications/conduit/storage/PhabricatorConduitConnectionLog.php',
'PhabricatorConduitConsoleController' => 'applications/conduit/controller/PhabricatorConduitConsoleController.php', 'PhabricatorConduitConsoleController' => 'applications/conduit/controller/PhabricatorConduitConsoleController.php',
'PhabricatorConduitContentSource' => 'infrastructure/contentsource/PhabricatorConduitContentSource.php',
'PhabricatorConduitController' => 'applications/conduit/controller/PhabricatorConduitController.php', 'PhabricatorConduitController' => 'applications/conduit/controller/PhabricatorConduitController.php',
'PhabricatorConduitDAO' => 'applications/conduit/storage/PhabricatorConduitDAO.php', 'PhabricatorConduitDAO' => 'applications/conduit/storage/PhabricatorConduitDAO.php',
'PhabricatorConduitEditField' => 'applications/transactions/editfield/PhabricatorConduitEditField.php', 'PhabricatorConduitEditField' => 'applications/transactions/editfield/PhabricatorConduitEditField.php',
@ -2080,8 +2082,10 @@ phutil_register_library_map(array(
'PhabricatorConpherencePreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorConpherencePreferencesSettingsPanel.php', 'PhabricatorConpherencePreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorConpherencePreferencesSettingsPanel.php',
'PhabricatorConpherenceThreadPHIDType' => 'applications/conpherence/phid/PhabricatorConpherenceThreadPHIDType.php', 'PhabricatorConpherenceThreadPHIDType' => 'applications/conpherence/phid/PhabricatorConpherenceThreadPHIDType.php',
'PhabricatorConsoleApplication' => 'applications/console/application/PhabricatorConsoleApplication.php', 'PhabricatorConsoleApplication' => 'applications/console/application/PhabricatorConsoleApplication.php',
'PhabricatorContentSource' => 'applications/metamta/contentsource/PhabricatorContentSource.php', 'PhabricatorConsoleContentSource' => 'infrastructure/contentsource/PhabricatorConsoleContentSource.php',
'PhabricatorContentSourceView' => 'applications/metamta/contentsource/PhabricatorContentSourceView.php', 'PhabricatorContentSource' => 'infrastructure/contentsource/PhabricatorContentSource.php',
'PhabricatorContentSourceModule' => 'infrastructure/contentsource/PhabricatorContentSourceModule.php',
'PhabricatorContentSourceView' => 'infrastructure/contentsource/PhabricatorContentSourceView.php',
'PhabricatorContributedToObjectEdgeType' => 'applications/transactions/edges/PhabricatorContributedToObjectEdgeType.php', 'PhabricatorContributedToObjectEdgeType' => 'applications/transactions/edges/PhabricatorContributedToObjectEdgeType.php',
'PhabricatorController' => 'applications/base/controller/PhabricatorController.php', 'PhabricatorController' => 'applications/base/controller/PhabricatorController.php',
'PhabricatorCookies' => 'applications/auth/constants/PhabricatorCookies.php', 'PhabricatorCookies' => 'applications/auth/constants/PhabricatorCookies.php',
@ -2138,6 +2142,7 @@ phutil_register_library_map(array(
'PhabricatorDaemonBulkJobMonitorController' => 'applications/daemon/controller/PhabricatorDaemonBulkJobMonitorController.php', 'PhabricatorDaemonBulkJobMonitorController' => 'applications/daemon/controller/PhabricatorDaemonBulkJobMonitorController.php',
'PhabricatorDaemonBulkJobViewController' => 'applications/daemon/controller/PhabricatorDaemonBulkJobViewController.php', 'PhabricatorDaemonBulkJobViewController' => 'applications/daemon/controller/PhabricatorDaemonBulkJobViewController.php',
'PhabricatorDaemonConsoleController' => 'applications/daemon/controller/PhabricatorDaemonConsoleController.php', 'PhabricatorDaemonConsoleController' => 'applications/daemon/controller/PhabricatorDaemonConsoleController.php',
'PhabricatorDaemonContentSource' => 'infrastructure/daemon/contentsource/PhabricatorDaemonContentSource.php',
'PhabricatorDaemonController' => 'applications/daemon/controller/PhabricatorDaemonController.php', 'PhabricatorDaemonController' => 'applications/daemon/controller/PhabricatorDaemonController.php',
'PhabricatorDaemonDAO' => 'applications/daemon/storage/PhabricatorDaemonDAO.php', 'PhabricatorDaemonDAO' => 'applications/daemon/storage/PhabricatorDaemonDAO.php',
'PhabricatorDaemonEventListener' => 'applications/daemon/event/PhabricatorDaemonEventListener.php', 'PhabricatorDaemonEventListener' => 'applications/daemon/event/PhabricatorDaemonEventListener.php',
@ -2302,6 +2307,7 @@ phutil_register_library_map(array(
'PhabricatorElasticFulltextStorageEngine' => 'applications/search/fulltextstorage/PhabricatorElasticFulltextStorageEngine.php', 'PhabricatorElasticFulltextStorageEngine' => 'applications/search/fulltextstorage/PhabricatorElasticFulltextStorageEngine.php',
'PhabricatorElasticSearchSetupCheck' => 'applications/config/check/PhabricatorElasticSearchSetupCheck.php', 'PhabricatorElasticSearchSetupCheck' => 'applications/config/check/PhabricatorElasticSearchSetupCheck.php',
'PhabricatorEmailAddressesSettingsPanel' => 'applications/settings/panel/PhabricatorEmailAddressesSettingsPanel.php', 'PhabricatorEmailAddressesSettingsPanel' => 'applications/settings/panel/PhabricatorEmailAddressesSettingsPanel.php',
'PhabricatorEmailContentSource' => 'applications/metamta/contentsource/PhabricatorEmailContentSource.php',
'PhabricatorEmailFormatSettingsPanel' => 'applications/settings/panel/PhabricatorEmailFormatSettingsPanel.php', 'PhabricatorEmailFormatSettingsPanel' => 'applications/settings/panel/PhabricatorEmailFormatSettingsPanel.php',
'PhabricatorEmailLoginController' => 'applications/auth/controller/PhabricatorEmailLoginController.php', 'PhabricatorEmailLoginController' => 'applications/auth/controller/PhabricatorEmailLoginController.php',
'PhabricatorEmailPreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorEmailPreferencesSettingsPanel.php', 'PhabricatorEmailPreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorEmailPreferencesSettingsPanel.php',
@ -2347,6 +2353,7 @@ phutil_register_library_map(array(
'PhabricatorFactSimpleSpec' => 'applications/fact/spec/PhabricatorFactSimpleSpec.php', 'PhabricatorFactSimpleSpec' => 'applications/fact/spec/PhabricatorFactSimpleSpec.php',
'PhabricatorFactSpec' => 'applications/fact/spec/PhabricatorFactSpec.php', 'PhabricatorFactSpec' => 'applications/fact/spec/PhabricatorFactSpec.php',
'PhabricatorFactUpdateIterator' => 'applications/fact/extract/PhabricatorFactUpdateIterator.php', 'PhabricatorFactUpdateIterator' => 'applications/fact/extract/PhabricatorFactUpdateIterator.php',
'PhabricatorFaxContentSource' => 'infrastructure/contentsource/PhabricatorFaxContentSource.php',
'PhabricatorFeedApplication' => 'applications/feed/application/PhabricatorFeedApplication.php', 'PhabricatorFeedApplication' => 'applications/feed/application/PhabricatorFeedApplication.php',
'PhabricatorFeedBuilder' => 'applications/feed/builder/PhabricatorFeedBuilder.php', 'PhabricatorFeedBuilder' => 'applications/feed/builder/PhabricatorFeedBuilder.php',
'PhabricatorFeedConfigOptions' => 'applications/feed/config/PhabricatorFeedConfigOptions.php', 'PhabricatorFeedConfigOptions' => 'applications/feed/config/PhabricatorFeedConfigOptions.php',
@ -2476,6 +2483,7 @@ phutil_register_library_map(array(
'PhabricatorHelpKeyboardShortcutController' => 'applications/help/controller/PhabricatorHelpKeyboardShortcutController.php', 'PhabricatorHelpKeyboardShortcutController' => 'applications/help/controller/PhabricatorHelpKeyboardShortcutController.php',
'PhabricatorHelpMainMenuBarExtension' => 'applications/help/extension/PhabricatorHelpMainMenuBarExtension.php', 'PhabricatorHelpMainMenuBarExtension' => 'applications/help/extension/PhabricatorHelpMainMenuBarExtension.php',
'PhabricatorHeraldApplication' => 'applications/herald/application/PhabricatorHeraldApplication.php', 'PhabricatorHeraldApplication' => 'applications/herald/application/PhabricatorHeraldApplication.php',
'PhabricatorHeraldContentSource' => 'applications/herald/contentsource/PhabricatorHeraldContentSource.php',
'PhabricatorHighSecurityRequestExceptionHandler' => 'aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php', 'PhabricatorHighSecurityRequestExceptionHandler' => 'aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php',
'PhabricatorHomeApplication' => 'applications/home/application/PhabricatorHomeApplication.php', 'PhabricatorHomeApplication' => 'applications/home/application/PhabricatorHomeApplication.php',
'PhabricatorHomeController' => 'applications/home/controller/PhabricatorHomeController.php', 'PhabricatorHomeController' => 'applications/home/controller/PhabricatorHomeController.php',
@ -2524,6 +2532,7 @@ phutil_register_library_map(array(
'PhabricatorLibraryTestCase' => '__tests__/PhabricatorLibraryTestCase.php', 'PhabricatorLibraryTestCase' => '__tests__/PhabricatorLibraryTestCase.php',
'PhabricatorLinkProfilePanel' => 'applications/search/profilepanel/PhabricatorLinkProfilePanel.php', 'PhabricatorLinkProfilePanel' => 'applications/search/profilepanel/PhabricatorLinkProfilePanel.php',
'PhabricatorLipsumArtist' => 'applications/lipsum/image/PhabricatorLipsumArtist.php', 'PhabricatorLipsumArtist' => 'applications/lipsum/image/PhabricatorLipsumArtist.php',
'PhabricatorLipsumContentSource' => 'infrastructure/contentsource/PhabricatorLipsumContentSource.php',
'PhabricatorLipsumGenerateWorkflow' => 'applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php', 'PhabricatorLipsumGenerateWorkflow' => 'applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php',
'PhabricatorLipsumManagementWorkflow' => 'applications/lipsum/management/PhabricatorLipsumManagementWorkflow.php', 'PhabricatorLipsumManagementWorkflow' => 'applications/lipsum/management/PhabricatorLipsumManagementWorkflow.php',
'PhabricatorLipsumMondrianArtist' => 'applications/lipsum/image/PhabricatorLipsumMondrianArtist.php', 'PhabricatorLipsumMondrianArtist' => 'applications/lipsum/image/PhabricatorLipsumMondrianArtist.php',
@ -2737,6 +2746,7 @@ phutil_register_library_map(array(
'PhabricatorObjectSelectorDialog' => 'view/control/PhabricatorObjectSelectorDialog.php', 'PhabricatorObjectSelectorDialog' => 'view/control/PhabricatorObjectSelectorDialog.php',
'PhabricatorObjectUsesCredentialsEdgeType' => 'applications/transactions/edges/PhabricatorObjectUsesCredentialsEdgeType.php', 'PhabricatorObjectUsesCredentialsEdgeType' => 'applications/transactions/edges/PhabricatorObjectUsesCredentialsEdgeType.php',
'PhabricatorOffsetPagedQuery' => 'infrastructure/query/PhabricatorOffsetPagedQuery.php', 'PhabricatorOffsetPagedQuery' => 'infrastructure/query/PhabricatorOffsetPagedQuery.php',
'PhabricatorOldWorldContentSource' => 'infrastructure/contentsource/PhabricatorOldWorldContentSource.php',
'PhabricatorOneTimeTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorOneTimeTriggerClock.php', 'PhabricatorOneTimeTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorOneTimeTriggerClock.php',
'PhabricatorOpcodeCacheSpec' => 'applications/cache/spec/PhabricatorOpcodeCacheSpec.php', 'PhabricatorOpcodeCacheSpec' => 'applications/cache/spec/PhabricatorOpcodeCacheSpec.php',
'PhabricatorOwnerPathQuery' => 'applications/owners/query/PhabricatorOwnerPathQuery.php', 'PhabricatorOwnerPathQuery' => 'applications/owners/query/PhabricatorOwnerPathQuery.php',
@ -2871,6 +2881,7 @@ phutil_register_library_map(array(
'PhabricatorPholioConfigOptions' => 'applications/pholio/config/PhabricatorPholioConfigOptions.php', 'PhabricatorPholioConfigOptions' => 'applications/pholio/config/PhabricatorPholioConfigOptions.php',
'PhabricatorPholioMockTestDataGenerator' => 'applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php', 'PhabricatorPholioMockTestDataGenerator' => 'applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php',
'PhabricatorPhortuneApplication' => 'applications/phortune/application/PhabricatorPhortuneApplication.php', 'PhabricatorPhortuneApplication' => 'applications/phortune/application/PhabricatorPhortuneApplication.php',
'PhabricatorPhortuneContentSource' => 'applications/phortune/contentsource/PhabricatorPhortuneContentSource.php',
'PhabricatorPhortuneManagementInvoiceWorkflow' => 'applications/phortune/management/PhabricatorPhortuneManagementInvoiceWorkflow.php', 'PhabricatorPhortuneManagementInvoiceWorkflow' => 'applications/phortune/management/PhabricatorPhortuneManagementInvoiceWorkflow.php',
'PhabricatorPhortuneManagementWorkflow' => 'applications/phortune/management/PhabricatorPhortuneManagementWorkflow.php', 'PhabricatorPhortuneManagementWorkflow' => 'applications/phortune/management/PhabricatorPhortuneManagementWorkflow.php',
'PhabricatorPhragmentApplication' => 'applications/phragment/application/PhabricatorPhragmentApplication.php', 'PhabricatorPhragmentApplication' => 'applications/phragment/application/PhabricatorPhragmentApplication.php',
@ -3471,7 +3482,9 @@ phutil_register_library_map(array(
'PhabricatorUIExampleRenderController' => 'applications/uiexample/controller/PhabricatorUIExampleRenderController.php', 'PhabricatorUIExampleRenderController' => 'applications/uiexample/controller/PhabricatorUIExampleRenderController.php',
'PhabricatorUIExamplesApplication' => 'applications/uiexample/application/PhabricatorUIExamplesApplication.php', 'PhabricatorUIExamplesApplication' => 'applications/uiexample/application/PhabricatorUIExamplesApplication.php',
'PhabricatorUSEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php', 'PhabricatorUSEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php',
'PhabricatorUnitTestContentSource' => 'infrastructure/contentsource/PhabricatorUnitTestContentSource.php',
'PhabricatorUnitsTestCase' => 'view/__tests__/PhabricatorUnitsTestCase.php', 'PhabricatorUnitsTestCase' => 'view/__tests__/PhabricatorUnitsTestCase.php',
'PhabricatorUnknownContentSource' => 'infrastructure/contentsource/PhabricatorUnknownContentSource.php',
'PhabricatorUnsubscribedFromObjectEdgeType' => 'applications/transactions/edges/PhabricatorUnsubscribedFromObjectEdgeType.php', 'PhabricatorUnsubscribedFromObjectEdgeType' => 'applications/transactions/edges/PhabricatorUnsubscribedFromObjectEdgeType.php',
'PhabricatorUser' => 'applications/people/storage/PhabricatorUser.php', 'PhabricatorUser' => 'applications/people/storage/PhabricatorUser.php',
'PhabricatorUserBlurbField' => 'applications/people/customfield/PhabricatorUserBlurbField.php', 'PhabricatorUserBlurbField' => 'applications/people/customfield/PhabricatorUserBlurbField.php',
@ -3511,6 +3524,7 @@ phutil_register_library_map(array(
'PhabricatorVeryWowEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorVeryWowEnglishTranslation.php', 'PhabricatorVeryWowEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorVeryWowEnglishTranslation.php',
'PhabricatorViewerDatasource' => 'applications/people/typeahead/PhabricatorViewerDatasource.php', 'PhabricatorViewerDatasource' => 'applications/people/typeahead/PhabricatorViewerDatasource.php',
'PhabricatorWatcherHasObjectEdgeType' => 'applications/transactions/edges/PhabricatorWatcherHasObjectEdgeType.php', 'PhabricatorWatcherHasObjectEdgeType' => 'applications/transactions/edges/PhabricatorWatcherHasObjectEdgeType.php',
'PhabricatorWebContentSource' => 'infrastructure/contentsource/PhabricatorWebContentSource.php',
'PhabricatorWordPressAuthProvider' => 'applications/auth/provider/PhabricatorWordPressAuthProvider.php', 'PhabricatorWordPressAuthProvider' => 'applications/auth/provider/PhabricatorWordPressAuthProvider.php',
'PhabricatorWorker' => 'infrastructure/daemon/workers/PhabricatorWorker.php', 'PhabricatorWorker' => 'infrastructure/daemon/workers/PhabricatorWorker.php',
'PhabricatorWorkerActiveTask' => 'infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php', 'PhabricatorWorkerActiveTask' => 'infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php',
@ -5000,6 +5014,7 @@ phutil_register_library_map(array(
'DoorkeeperBridgeAsana' => 'DoorkeeperBridge', 'DoorkeeperBridgeAsana' => 'DoorkeeperBridge',
'DoorkeeperBridgeGitHub' => 'DoorkeeperBridge', 'DoorkeeperBridgeGitHub' => 'DoorkeeperBridge',
'DoorkeeperBridgeGitHubIssue' => 'DoorkeeperBridgeGitHub', 'DoorkeeperBridgeGitHubIssue' => 'DoorkeeperBridgeGitHub',
'DoorkeeperBridgeGitHubUser' => 'DoorkeeperBridgeGitHub',
'DoorkeeperBridgeJIRA' => 'DoorkeeperBridge', 'DoorkeeperBridgeJIRA' => 'DoorkeeperBridge',
'DoorkeeperBridgeJIRATestCase' => 'PhabricatorTestCase', 'DoorkeeperBridgeJIRATestCase' => 'PhabricatorTestCase',
'DoorkeeperBridgedObjectCurtainExtension' => 'PHUICurtainExtension', 'DoorkeeperBridgedObjectCurtainExtension' => 'PHUICurtainExtension',
@ -5008,6 +5023,7 @@ phutil_register_library_map(array(
'DoorkeeperDAO', 'DoorkeeperDAO',
'PhabricatorPolicyInterface', 'PhabricatorPolicyInterface',
), ),
'DoorkeeperExternalObjectPHIDType' => 'PhabricatorPHIDType',
'DoorkeeperExternalObjectQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'DoorkeeperExternalObjectQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'DoorkeeperFeedStoryPublisher' => 'Phobject', 'DoorkeeperFeedStoryPublisher' => 'Phobject',
'DoorkeeperFeedWorker' => 'FeedPushWorker', 'DoorkeeperFeedWorker' => 'FeedPushWorker',
@ -5224,6 +5240,7 @@ phutil_register_library_map(array(
), ),
'FundInitiativeBackController' => 'FundController', 'FundInitiativeBackController' => 'FundController',
'FundInitiativeCloseController' => 'FundController', 'FundInitiativeCloseController' => 'FundController',
'FundInitiativeCommentController' => 'FundController',
'FundInitiativeEditController' => 'FundController', 'FundInitiativeEditController' => 'FundController',
'FundInitiativeEditor' => 'PhabricatorApplicationTransactionEditor', 'FundInitiativeEditor' => 'PhabricatorApplicationTransactionEditor',
'FundInitiativeFulltextEngine' => 'PhabricatorFulltextEngine', 'FundInitiativeFulltextEngine' => 'PhabricatorFulltextEngine',
@ -5234,6 +5251,7 @@ phutil_register_library_map(array(
'FundInitiativeReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler', 'FundInitiativeReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'FundInitiativeSearchEngine' => 'PhabricatorApplicationSearchEngine', 'FundInitiativeSearchEngine' => 'PhabricatorApplicationSearchEngine',
'FundInitiativeTransaction' => 'PhabricatorApplicationTransaction', 'FundInitiativeTransaction' => 'PhabricatorApplicationTransaction',
'FundInitiativeTransactionComment' => 'PhabricatorApplicationTransactionComment',
'FundInitiativeTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'FundInitiativeTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
'FundInitiativeViewController' => 'FundController', 'FundInitiativeViewController' => 'FundController',
'FundSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'FundSchemaSpec' => 'PhabricatorConfigSchemaSpec',
@ -5476,6 +5494,7 @@ phutil_register_library_map(array(
'HeraldRulePHIDType' => 'PhabricatorPHIDType', 'HeraldRulePHIDType' => 'PhabricatorPHIDType',
'HeraldRuleQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'HeraldRuleQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'HeraldRuleSearchEngine' => 'PhabricatorApplicationSearchEngine', 'HeraldRuleSearchEngine' => 'PhabricatorApplicationSearchEngine',
'HeraldRuleSerializer' => 'Phobject',
'HeraldRuleTestCase' => 'PhabricatorTestCase', 'HeraldRuleTestCase' => 'PhabricatorTestCase',
'HeraldRuleTransaction' => 'PhabricatorApplicationTransaction', 'HeraldRuleTransaction' => 'PhabricatorApplicationTransaction',
'HeraldRuleTransactionComment' => 'PhabricatorApplicationTransactionComment', 'HeraldRuleTransactionComment' => 'PhabricatorApplicationTransactionComment',
@ -5710,6 +5729,7 @@ phutil_register_library_map(array(
'MultimeterViewer' => 'MultimeterDimension', 'MultimeterViewer' => 'MultimeterDimension',
'NuanceConduitAPIMethod' => 'ConduitAPIMethod', 'NuanceConduitAPIMethod' => 'ConduitAPIMethod',
'NuanceConsoleController' => 'NuanceController', 'NuanceConsoleController' => 'NuanceController',
'NuanceContentSource' => 'PhabricatorContentSource',
'NuanceController' => 'PhabricatorController', 'NuanceController' => 'PhabricatorController',
'NuanceDAO' => 'PhabricatorLiskDAO', 'NuanceDAO' => 'PhabricatorLiskDAO',
'NuanceGitHubEventItemType' => 'NuanceItemType', 'NuanceGitHubEventItemType' => 'NuanceItemType',
@ -5773,20 +5793,6 @@ phutil_register_library_map(array(
'NuanceQueueTransactionComment' => 'PhabricatorApplicationTransactionComment', 'NuanceQueueTransactionComment' => 'PhabricatorApplicationTransactionComment',
'NuanceQueueTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'NuanceQueueTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
'NuanceQueueViewController' => 'NuanceQueueController', 'NuanceQueueViewController' => 'NuanceQueueController',
'NuanceRequestor' => array(
'NuanceDAO',
'PhabricatorPolicyInterface',
'PhabricatorApplicationTransactionInterface',
),
'NuanceRequestorEditController' => 'NuanceController',
'NuanceRequestorEditor' => 'PhabricatorApplicationTransactionEditor',
'NuanceRequestorPHIDType' => 'PhabricatorPHIDType',
'NuanceRequestorQuery' => 'NuanceQuery',
'NuanceRequestorSource' => 'NuanceDAO',
'NuanceRequestorTransaction' => 'NuanceTransaction',
'NuanceRequestorTransactionComment' => 'PhabricatorApplicationTransactionComment',
'NuanceRequestorTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
'NuanceRequestorViewController' => 'NuanceController',
'NuanceSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'NuanceSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'NuanceSource' => array( 'NuanceSource' => array(
'NuanceDAO', 'NuanceDAO',
@ -6217,6 +6223,13 @@ phutil_register_library_map(array(
'PhabricatorBadgeHasRecipientEdgeType' => 'PhabricatorEdgeType', 'PhabricatorBadgeHasRecipientEdgeType' => 'PhabricatorEdgeType',
'PhabricatorBadgesApplication' => 'PhabricatorApplication', 'PhabricatorBadgesApplication' => 'PhabricatorApplication',
'PhabricatorBadgesArchiveController' => 'PhabricatorBadgesController', 'PhabricatorBadgesArchiveController' => 'PhabricatorBadgesController',
'PhabricatorBadgesAward' => array(
'PhabricatorBadgesDAO',
'PhabricatorDestructibleInterface',
'PhabricatorPolicyInterface',
),
'PhabricatorBadgesAwardController' => 'PhabricatorBadgesController',
'PhabricatorBadgesAwardQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorBadgesBadge' => array( 'PhabricatorBadgesBadge' => array(
'PhabricatorBadgesDAO', 'PhabricatorBadgesDAO',
'PhabricatorPolicyInterface', 'PhabricatorPolicyInterface',
@ -6239,6 +6252,7 @@ phutil_register_library_map(array(
'PhabricatorBadgesListController' => 'PhabricatorBadgesController', 'PhabricatorBadgesListController' => 'PhabricatorBadgesController',
'PhabricatorBadgesMailReceiver' => 'PhabricatorObjectMailReceiver', 'PhabricatorBadgesMailReceiver' => 'PhabricatorObjectMailReceiver',
'PhabricatorBadgesPHIDType' => 'PhabricatorPHIDType', 'PhabricatorBadgesPHIDType' => 'PhabricatorPHIDType',
'PhabricatorBadgesQuality' => 'Phobject',
'PhabricatorBadgesQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorBadgesQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorBadgesRecipientsListView' => 'AphrontView', 'PhabricatorBadgesRecipientsListView' => 'AphrontView',
'PhabricatorBadgesRemoveRecipientsController' => 'PhabricatorBadgesController', 'PhabricatorBadgesRemoveRecipientsController' => 'PhabricatorBadgesController',
@ -6274,6 +6288,7 @@ phutil_register_library_map(array(
'PhabricatorBotWhatsNewHandler' => 'PhabricatorBotHandler', 'PhabricatorBotWhatsNewHandler' => 'PhabricatorBotHandler',
'PhabricatorBritishEnglishTranslation' => 'PhutilTranslation', 'PhabricatorBritishEnglishTranslation' => 'PhutilTranslation',
'PhabricatorBuiltinPatchList' => 'PhabricatorSQLPatchList', 'PhabricatorBuiltinPatchList' => 'PhabricatorSQLPatchList',
'PhabricatorBulkContentSource' => 'PhabricatorContentSource',
'PhabricatorBusyUIExample' => 'PhabricatorUIExample', 'PhabricatorBusyUIExample' => 'PhabricatorUIExample',
'PhabricatorCacheDAO' => 'PhabricatorLiskDAO', 'PhabricatorCacheDAO' => 'PhabricatorLiskDAO',
'PhabricatorCacheGeneralGarbageCollector' => 'PhabricatorGarbageCollector', 'PhabricatorCacheGeneralGarbageCollector' => 'PhabricatorGarbageCollector',
@ -6369,6 +6384,7 @@ phutil_register_library_map(array(
'PhabricatorConduitCertificateToken' => 'PhabricatorConduitDAO', 'PhabricatorConduitCertificateToken' => 'PhabricatorConduitDAO',
'PhabricatorConduitConnectionLog' => 'PhabricatorConduitDAO', 'PhabricatorConduitConnectionLog' => 'PhabricatorConduitDAO',
'PhabricatorConduitConsoleController' => 'PhabricatorConduitController', 'PhabricatorConduitConsoleController' => 'PhabricatorConduitController',
'PhabricatorConduitContentSource' => 'PhabricatorContentSource',
'PhabricatorConduitController' => 'PhabricatorController', 'PhabricatorConduitController' => 'PhabricatorController',
'PhabricatorConduitDAO' => 'PhabricatorLiskDAO', 'PhabricatorConduitDAO' => 'PhabricatorLiskDAO',
'PhabricatorConduitEditField' => 'PhabricatorEditField', 'PhabricatorConduitEditField' => 'PhabricatorEditField',
@ -6469,7 +6485,9 @@ phutil_register_library_map(array(
'PhabricatorConpherencePreferencesSettingsPanel' => 'PhabricatorSettingsPanel', 'PhabricatorConpherencePreferencesSettingsPanel' => 'PhabricatorSettingsPanel',
'PhabricatorConpherenceThreadPHIDType' => 'PhabricatorPHIDType', 'PhabricatorConpherenceThreadPHIDType' => 'PhabricatorPHIDType',
'PhabricatorConsoleApplication' => 'PhabricatorApplication', 'PhabricatorConsoleApplication' => 'PhabricatorApplication',
'PhabricatorConsoleContentSource' => 'PhabricatorContentSource',
'PhabricatorContentSource' => 'Phobject', 'PhabricatorContentSource' => 'Phobject',
'PhabricatorContentSourceModule' => 'PhabricatorConfigModule',
'PhabricatorContentSourceView' => 'AphrontView', 'PhabricatorContentSourceView' => 'AphrontView',
'PhabricatorContributedToObjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorContributedToObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorController' => 'AphrontController', 'PhabricatorController' => 'AphrontController',
@ -6535,6 +6553,7 @@ phutil_register_library_map(array(
'PhabricatorDaemonBulkJobMonitorController' => 'PhabricatorDaemonController', 'PhabricatorDaemonBulkJobMonitorController' => 'PhabricatorDaemonController',
'PhabricatorDaemonBulkJobViewController' => 'PhabricatorDaemonController', 'PhabricatorDaemonBulkJobViewController' => 'PhabricatorDaemonController',
'PhabricatorDaemonConsoleController' => 'PhabricatorDaemonController', 'PhabricatorDaemonConsoleController' => 'PhabricatorDaemonController',
'PhabricatorDaemonContentSource' => 'PhabricatorContentSource',
'PhabricatorDaemonController' => 'PhabricatorController', 'PhabricatorDaemonController' => 'PhabricatorController',
'PhabricatorDaemonDAO' => 'PhabricatorLiskDAO', 'PhabricatorDaemonDAO' => 'PhabricatorLiskDAO',
'PhabricatorDaemonEventListener' => 'PhabricatorEventListener', 'PhabricatorDaemonEventListener' => 'PhabricatorEventListener',
@ -6726,6 +6745,7 @@ phutil_register_library_map(array(
'PhabricatorElasticFulltextStorageEngine' => 'PhabricatorFulltextStorageEngine', 'PhabricatorElasticFulltextStorageEngine' => 'PhabricatorFulltextStorageEngine',
'PhabricatorElasticSearchSetupCheck' => 'PhabricatorSetupCheck', 'PhabricatorElasticSearchSetupCheck' => 'PhabricatorSetupCheck',
'PhabricatorEmailAddressesSettingsPanel' => 'PhabricatorSettingsPanel', 'PhabricatorEmailAddressesSettingsPanel' => 'PhabricatorSettingsPanel',
'PhabricatorEmailContentSource' => 'PhabricatorContentSource',
'PhabricatorEmailFormatSettingsPanel' => 'PhabricatorSettingsPanel', 'PhabricatorEmailFormatSettingsPanel' => 'PhabricatorSettingsPanel',
'PhabricatorEmailLoginController' => 'PhabricatorAuthController', 'PhabricatorEmailLoginController' => 'PhabricatorAuthController',
'PhabricatorEmailPreferencesSettingsPanel' => 'PhabricatorSettingsPanel', 'PhabricatorEmailPreferencesSettingsPanel' => 'PhabricatorSettingsPanel',
@ -6773,6 +6793,7 @@ phutil_register_library_map(array(
'PhabricatorFactSimpleSpec' => 'PhabricatorFactSpec', 'PhabricatorFactSimpleSpec' => 'PhabricatorFactSpec',
'PhabricatorFactSpec' => 'Phobject', 'PhabricatorFactSpec' => 'Phobject',
'PhabricatorFactUpdateIterator' => 'PhutilBufferedIterator', 'PhabricatorFactUpdateIterator' => 'PhutilBufferedIterator',
'PhabricatorFaxContentSource' => 'PhabricatorContentSource',
'PhabricatorFeedApplication' => 'PhabricatorApplication', 'PhabricatorFeedApplication' => 'PhabricatorApplication',
'PhabricatorFeedBuilder' => 'Phobject', 'PhabricatorFeedBuilder' => 'Phobject',
'PhabricatorFeedConfigOptions' => 'PhabricatorApplicationConfigOptions', 'PhabricatorFeedConfigOptions' => 'PhabricatorApplicationConfigOptions',
@ -6935,6 +6956,7 @@ phutil_register_library_map(array(
'PhabricatorHelpKeyboardShortcutController' => 'PhabricatorHelpController', 'PhabricatorHelpKeyboardShortcutController' => 'PhabricatorHelpController',
'PhabricatorHelpMainMenuBarExtension' => 'PhabricatorMainMenuBarExtension', 'PhabricatorHelpMainMenuBarExtension' => 'PhabricatorMainMenuBarExtension',
'PhabricatorHeraldApplication' => 'PhabricatorApplication', 'PhabricatorHeraldApplication' => 'PhabricatorApplication',
'PhabricatorHeraldContentSource' => 'PhabricatorContentSource',
'PhabricatorHighSecurityRequestExceptionHandler' => 'PhabricatorRequestExceptionHandler', 'PhabricatorHighSecurityRequestExceptionHandler' => 'PhabricatorRequestExceptionHandler',
'PhabricatorHomeApplication' => 'PhabricatorApplication', 'PhabricatorHomeApplication' => 'PhabricatorApplication',
'PhabricatorHomeController' => 'PhabricatorController', 'PhabricatorHomeController' => 'PhabricatorController',
@ -6983,6 +7005,7 @@ phutil_register_library_map(array(
'PhabricatorLibraryTestCase' => 'PhutilLibraryTestCase', 'PhabricatorLibraryTestCase' => 'PhutilLibraryTestCase',
'PhabricatorLinkProfilePanel' => 'PhabricatorProfilePanel', 'PhabricatorLinkProfilePanel' => 'PhabricatorProfilePanel',
'PhabricatorLipsumArtist' => 'Phobject', 'PhabricatorLipsumArtist' => 'Phobject',
'PhabricatorLipsumContentSource' => 'PhabricatorContentSource',
'PhabricatorLipsumGenerateWorkflow' => 'PhabricatorLipsumManagementWorkflow', 'PhabricatorLipsumGenerateWorkflow' => 'PhabricatorLipsumManagementWorkflow',
'PhabricatorLipsumManagementWorkflow' => 'PhabricatorManagementWorkflow', 'PhabricatorLipsumManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorLipsumMondrianArtist' => 'PhabricatorLipsumArtist', 'PhabricatorLipsumMondrianArtist' => 'PhabricatorLipsumArtist',
@ -7218,6 +7241,7 @@ phutil_register_library_map(array(
'PhabricatorObjectSelectorDialog' => 'Phobject', 'PhabricatorObjectSelectorDialog' => 'Phobject',
'PhabricatorObjectUsesCredentialsEdgeType' => 'PhabricatorEdgeType', 'PhabricatorObjectUsesCredentialsEdgeType' => 'PhabricatorEdgeType',
'PhabricatorOffsetPagedQuery' => 'PhabricatorQuery', 'PhabricatorOffsetPagedQuery' => 'PhabricatorQuery',
'PhabricatorOldWorldContentSource' => 'PhabricatorContentSource',
'PhabricatorOneTimeTriggerClock' => 'PhabricatorTriggerClock', 'PhabricatorOneTimeTriggerClock' => 'PhabricatorTriggerClock',
'PhabricatorOpcodeCacheSpec' => 'PhabricatorCacheSpec', 'PhabricatorOpcodeCacheSpec' => 'PhabricatorCacheSpec',
'PhabricatorOwnerPathQuery' => 'Phobject', 'PhabricatorOwnerPathQuery' => 'Phobject',
@ -7375,6 +7399,7 @@ phutil_register_library_map(array(
'PhabricatorPholioConfigOptions' => 'PhabricatorApplicationConfigOptions', 'PhabricatorPholioConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorPholioMockTestDataGenerator' => 'PhabricatorTestDataGenerator', 'PhabricatorPholioMockTestDataGenerator' => 'PhabricatorTestDataGenerator',
'PhabricatorPhortuneApplication' => 'PhabricatorApplication', 'PhabricatorPhortuneApplication' => 'PhabricatorApplication',
'PhabricatorPhortuneContentSource' => 'PhabricatorContentSource',
'PhabricatorPhortuneManagementInvoiceWorkflow' => 'PhabricatorPhortuneManagementWorkflow', 'PhabricatorPhortuneManagementInvoiceWorkflow' => 'PhabricatorPhortuneManagementWorkflow',
'PhabricatorPhortuneManagementWorkflow' => 'PhabricatorManagementWorkflow', 'PhabricatorPhortuneManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorPhragmentApplication' => 'PhabricatorApplication', 'PhabricatorPhragmentApplication' => 'PhabricatorApplication',
@ -8094,7 +8119,9 @@ phutil_register_library_map(array(
'PhabricatorUIExampleRenderController' => 'PhabricatorController', 'PhabricatorUIExampleRenderController' => 'PhabricatorController',
'PhabricatorUIExamplesApplication' => 'PhabricatorApplication', 'PhabricatorUIExamplesApplication' => 'PhabricatorApplication',
'PhabricatorUSEnglishTranslation' => 'PhutilTranslation', 'PhabricatorUSEnglishTranslation' => 'PhutilTranslation',
'PhabricatorUnitTestContentSource' => 'PhabricatorContentSource',
'PhabricatorUnitsTestCase' => 'PhabricatorTestCase', 'PhabricatorUnitsTestCase' => 'PhabricatorTestCase',
'PhabricatorUnknownContentSource' => 'PhabricatorContentSource',
'PhabricatorUnsubscribedFromObjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorUnsubscribedFromObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorUser' => array( 'PhabricatorUser' => array(
'PhabricatorUserDAO', 'PhabricatorUserDAO',
@ -8150,6 +8177,7 @@ phutil_register_library_map(array(
'PhabricatorVeryWowEnglishTranslation' => 'PhutilTranslation', 'PhabricatorVeryWowEnglishTranslation' => 'PhutilTranslation',
'PhabricatorViewerDatasource' => 'PhabricatorTypeaheadDatasource', 'PhabricatorViewerDatasource' => 'PhabricatorTypeaheadDatasource',
'PhabricatorWatcherHasObjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorWatcherHasObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorWebContentSource' => 'PhabricatorContentSource',
'PhabricatorWordPressAuthProvider' => 'PhabricatorOAuth2AuthProvider', 'PhabricatorWordPressAuthProvider' => 'PhabricatorOAuth2AuthProvider',
'PhabricatorWorker' => 'Phobject', 'PhabricatorWorker' => 'Phobject',
'PhabricatorWorkerActiveTask' => 'PhabricatorWorkerTask', 'PhabricatorWorkerActiveTask' => 'PhabricatorWorkerTask',

View file

@ -99,25 +99,35 @@ final class AlmanacBindingEditController
$box = id(new PHUIObjectBoxView()) $box = id(new PHUIObjectBoxView())
->setValidationException($validation_exception) ->setValidationException($validation_exception)
->setHeaderText($title) ->setHeaderText(pht('Binding'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($form); ->appendChild($form);
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($service->getName(), $service_uri); $crumbs->addTextCrumb($service->getName(), $service_uri);
if ($is_new) { if ($is_new) {
$crumbs->addTextCrumb(pht('Create Binding')); $crumbs->addTextCrumb(pht('Create Binding'));
$header = id(new PHUIHeaderView())
->setHeader(pht('Create Binding'))
->setHeaderIcon('fa-plus-square');
} else { } else {
$crumbs->addTextCrumb(pht('Edit Binding')); $crumbs->addTextCrumb(pht('Edit Binding'));
$header = id(new PHUIHeaderView())
->setHeader(pht('Create Binding'))
->setHeaderIcon('fa-pencil');
} }
$crumbs->setBorder(true);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$box,
));
return $this->newPage() return $this->newPage()
->setTitle($title) ->setTitle($title)
->setCrumbs($crumbs) ->setCrumbs($crumbs)
->appendChild( ->appendChild($view);
array(
$box,
));
} }
} }

View file

@ -61,18 +61,25 @@ final class AlmanacConsoleController extends AlmanacController {
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Console')); $crumbs->addTextCrumb(pht('Console'));
$crumbs->setBorder(true);
$box = id(new PHUIObjectBoxView()) $box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Console'))
->setObjectList($menu); ->setObjectList($menu);
$header = id(new PHUIHeaderView())
->setHeader(pht('Almanac Console'))
->setHeaderIcon('fa-server');
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$box,
));
return $this->newPage() return $this->newPage()
->setTitle(pht('Almanac Console')) ->setTitle(pht('Almanac Console'))
->setCrumbs($crumbs) ->setCrumbs($crumbs)
->appendChild( ->appendChild($view);
array(
$box,
));
} }

View file

@ -131,24 +131,36 @@ final class AlmanacInterfaceEditController
$box = id(new PHUIObjectBoxView()) $box = id(new PHUIObjectBoxView())
->setValidationException($validation_exception) ->setValidationException($validation_exception)
->setHeaderText($title) ->setHeaderText(pht('Interface'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($device->getName(), $device_uri); $crumbs->addTextCrumb($device->getName(), $device_uri);
if ($is_new) { if ($is_new) {
$crumbs->addTextCrumb(pht('Create Interface')); $crumbs->addTextCrumb(pht('Create Interface'));
$header = id(new PHUIHeaderView())
->setHeader(pht('Create Interface'))
->setHeaderIcon('fa-plus-square');
} else { } else {
$crumbs->addTextCrumb(pht('Edit Interface')); $crumbs->addTextCrumb(pht('Edit Interface'));
$header = id(new PHUIHeaderView())
->setHeader(pht('Edit Interface'))
->setHeaderIcon('fa-pencil');
} }
$crumbs->setBorder(true);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$box,
));
return $this->newPage() return $this->newPage()
->setTitle($title) ->setTitle($title)
->setCrumbs($crumbs) ->setCrumbs($crumbs)
->appendChild( ->appendChild($view);
array(
$box,
));
} }
} }

View file

@ -75,8 +75,12 @@ final class AlmanacServiceEditController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Create Service')); $crumbs->addTextCrumb(pht('Create Service'));
$crumbs->setBorder(true);
$title = pht('Choose Service Type'); $title = pht('Choose Service Type');
$header = id(new PHUIHeaderView())
->setHeader(pht('Create Service'))
->setHeaderIcon('fa-plus-square');
$form = id(new AphrontFormView()) $form = id(new AphrontFormView())
->setUser($viewer) ->setUser($viewer)
@ -88,13 +92,21 @@ final class AlmanacServiceEditController
$box = id(new PHUIObjectBoxView()) $box = id(new PHUIObjectBoxView())
->setFormErrors($errors) ->setFormErrors($errors)
->setHeaderText($title) ->setHeaderText(pht('Service'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$box,
));
return $this->newPage() return $this->newPage()
->setTitle($title) ->setTitle($title)
->setCrumbs($crumbs) ->setCrumbs($crumbs)
->appendChild($box); ->appendChild($view);
} }
} }

View file

@ -13,4 +13,8 @@ final class AlmanacBindingPropertyEditEngine
return $object->getURI(); return $object->getURI();
} }
protected function getObjectName() {
return pht('Property');
}
} }

View file

@ -53,6 +53,10 @@ final class AlmanacDeviceEditEngine
return pht('Create Device'); return pht('Create Device');
} }
protected function getObjectName() {
return pht('Device');
}
protected function getEditorURI() { protected function getEditorURI() {
return '/almanac/device/edit/'; return '/almanac/device/edit/';
} }

View file

@ -13,4 +13,8 @@ final class AlmanacDevicePropertyEditEngine
return $object->getURI(); return $object->getURI();
} }
protected function getObjectName() {
return pht('Property');
}
} }

View file

@ -53,6 +53,10 @@ final class AlmanacNamespaceEditEngine
return pht('Create Namespace'); return pht('Create Namespace');
} }
protected function getObjectName() {
return pht('Namespace');
}
protected function getEditorURI() { protected function getEditorURI() {
return '/almanac/namespace/edit/'; return '/almanac/namespace/edit/';
} }

View file

@ -53,6 +53,10 @@ final class AlmanacNetworkEditEngine
return pht('Create Network'); return pht('Create Network');
} }
protected function getObjectName() {
return pht('Network');
}
protected function getEditorURI() { protected function getEditorURI() {
return '/almanac/network/edit/'; return '/almanac/network/edit/';
} }

View file

@ -65,6 +65,10 @@ final class AlmanacServiceEditEngine
return pht('Create Service'); return pht('Create Service');
} }
protected function getObjectName() {
return pht('Service');
}
protected function getEditorURI() { protected function getEditorURI() {
return '/almanac/service/edit/'; return '/almanac/service/edit/';
} }

View file

@ -13,4 +13,8 @@ final class AlmanacServicePropertyEditEngine
return $object->getURI(); return $object->getURI();
} }
protected function getObjectName() {
return pht('Property');
}
} }

View file

@ -3,7 +3,6 @@
abstract class AlmanacManagementWorkflow abstract class AlmanacManagementWorkflow
extends PhabricatorManagementWorkflow { extends PhabricatorManagementWorkflow {
protected function loadServices(array $names) { protected function loadServices(array $names) {
if (!$names) { if (!$names) {
return array(); return array();
@ -37,7 +36,7 @@ abstract class AlmanacManagementWorkflow
$editor = id(new AlmanacServiceEditor()) $editor = id(new AlmanacServiceEditor())
->setActor($this->getViewer()) ->setActor($this->getViewer())
->setActingAsPHID($almanac_phid) ->setActingAsPHID($almanac_phid)
->setContentSource(PhabricatorContentSource::newConsoleSource()) ->setContentSource($this->newContentSource())
->setContinueOnMissingFields(true); ->setContinueOnMissingFields(true);
$editor->applyTransactions($service, array($xaction)); $editor->applyTransactions($service, array($xaction));

View file

@ -34,8 +34,7 @@ final class PhabricatorAuditInlineComment
public function getTransactionCommentForSave() { public function getTransactionCommentForSave() {
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST);
array());
$this->proxy $this->proxy
->setViewPolicy('public') ->setViewPolicy('public')

View file

@ -66,15 +66,12 @@ final class PhabricatorAuthConfirmLinkController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Confirm Link'), $panel_uri); $crumbs->addTextCrumb(pht('Confirm Link'), $panel_uri);
$crumbs->addTextCrumb($provider->getProviderName()); $crumbs->addTextCrumb($provider->getProviderName());
$crumbs->setBorder(true);
return $this->buildApplicationPage( return $this->newPage()
array( ->setTitle(pht('Confirm External Account Link'))
$crumbs, ->setCrumbs($crumbs)
$dialog, ->appendChild($dialog);
),
array(
'title' => pht('Confirm External Account Link'),
));
} }

View file

@ -7,11 +7,9 @@ abstract class PhabricatorAuthController extends PhabricatorController {
$view->setTitle($title); $view->setTitle($title);
$view->setErrors($messages); $view->setErrors($messages);
return $this->buildApplicationPage( return $this->newPage()
$view, ->setTitle($title)
array( ->appendChild($view);
'title' => $title,
));
} }

View file

@ -116,15 +116,12 @@ final class PhabricatorAuthLinkController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Link Account'), $panel_uri); $crumbs->addTextCrumb(pht('Link Account'), $panel_uri);
$crumbs->addTextCrumb($provider->getProviderName($name)); $crumbs->addTextCrumb($provider->getProviderName($name));
$crumbs->setBorder(true);
return $this->buildApplicationPage( return $this->newPage()
array( ->setTitle($title)
$crumbs, ->setCrumbs($crumbs)
$form, ->appendChild($form);
),
array(
'title' => $title,
));
} }
} }

View file

@ -236,7 +236,6 @@ final class PhabricatorAuthLoginController
$content) { $content) {
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->setBorder(true);
if ($this->getRequest()->getUser()->isLoggedIn()) { if ($this->getRequest()->getUser()->isLoggedIn()) {
$crumbs->addTextCrumb(pht('Link Account'), $provider->getSettingsURI()); $crumbs->addTextCrumb(pht('Link Account'), $provider->getSettingsURI());
@ -245,15 +244,12 @@ final class PhabricatorAuthLoginController
} }
$crumbs->addTextCrumb($provider->getProviderName()); $crumbs->addTextCrumb($provider->getProviderName());
$crumbs->setBorder(true);
return $this->buildApplicationPage( return $this->newPage()
array( ->setTitle(pht('Login'))
$crumbs, ->setCrumbs($crumbs)
$content, ->appendChild($content);
),
array(
'title' => pht('Login'),
));
} }
public function buildProviderErrorResponse( public function buildProviderErrorResponse(

View file

@ -28,11 +28,10 @@ final class PhabricatorAuthNeedsApprovalController
->appendChild($wait_for_approval) ->appendChild($wait_for_approval)
->addCancelButton('/', pht('Wait Patiently')); ->addCancelButton('/', pht('Wait Patiently'));
return $this->buildApplicationPage( return $this->newPage()
$dialog, ->setTitle(pht('Wait For Approval'))
array( ->appendChild($dialog);
'title' => pht('Wait For Approval'),
));
} }
} }

View file

@ -76,15 +76,16 @@ final class PhabricatorAuthNeedsMultiFactorController
)); ));
} }
return $this->buildApplicationPage( $view = array(
array(
$crumbs,
$help, $help,
$panel, $panel,
), );
array(
'title' => pht('Add Multi-Factor Authentication'), return $this->newPage()
)); ->setTitle(pht('Add Multi-Factor Authentication'))
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -497,6 +497,7 @@ final class PhabricatorAuthRegisterController
$crumbs->addTextCrumb($provider->getProviderName()); $crumbs->addTextCrumb($provider->getProviderName());
$title = pht('Phabricator Registration'); $title = pht('Phabricator Registration');
} }
$crumbs->setBorder(true);
$welcome_view = null; $welcome_view = null;
if ($is_setup) { if ($is_setup) {
@ -511,7 +512,6 @@ final class PhabricatorAuthRegisterController
} }
$object_box = id(new PHUIObjectBoxView()) $object_box = id(new PHUIObjectBoxView())
->setHeaderText($title)
->setForm($form) ->setForm($form)
->setFormErrors($errors); ->setFormErrors($errors);
@ -520,16 +520,21 @@ final class PhabricatorAuthRegisterController
$invite_header = $this->renderInviteHeader($invite); $invite_header = $this->renderInviteHeader($invite);
} }
return $this->buildApplicationPage( $header = id(new PHUIHeaderView())
array( ->setHeader($title);
$crumbs,
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$welcome_view, $welcome_view,
$invite_header, $invite_header,
$object_box, $object_box,
),
array(
'title' => $title,
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
private function loadDefaultAccount() { private function loadDefaultAccount() {

View file

@ -189,16 +189,17 @@ final class PhabricatorAuthStartController
$crumbs->addTextCrumb(pht('Login')); $crumbs->addTextCrumb(pht('Login'));
$crumbs->setBorder(true); $crumbs->setBorder(true);
return $this->buildApplicationPage( $title = pht('Login to Phabricator');
array( $view = array(
$crumbs,
$header, $header,
$invite_message, $invite_message,
$out, $out,
), );
array(
'title' => pht('Login to Phabricator'), return $this->newPage()
)); ->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }

View file

@ -15,8 +15,7 @@ final class PhabricatorDisabledUserController
return new Aphront404Response(); return new Aphront404Response();
} }
return id(new AphrontDialogView()) return $this->newDialog()
->setUser($viewer)
->setTitle(pht('Account Disabled')) ->setTitle(pht('Account Disabled'))
->addCancelButton('/logout/', pht('Okay')) ->addCancelButton('/logout/', pht('Okay'))
->appendParagraph(pht('Your account has been disabled.')); ->appendParagraph(pht('Your account has been disabled.'));

View file

@ -144,6 +144,7 @@ final class PhabricatorEmailLoginController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Reset Password')); $crumbs->addTextCrumb(pht('Reset Password'));
$crumbs->setBorder(true);
$dialog = new AphrontDialogView(); $dialog = new AphrontDialogView();
$dialog->setUser($request->getUser()); $dialog->setUser($request->getUser());
@ -152,14 +153,11 @@ final class PhabricatorEmailLoginController
$dialog->addSubmitButton(pht('Send Email')); $dialog->addSubmitButton(pht('Send Email'));
$dialog->setSubmitURI('/login/email/'); $dialog->setSubmitURI('/login/email/');
return $this->buildApplicationPage( return $this->newPage()
array( ->setTitle(pht('Forgot Password'))
$crumbs, ->setCrumbs($crumbs)
$dialog, ->appendChild($dialog);
),
array(
'title' => pht('Forgot Password'),
));
} }
} }

View file

@ -77,15 +77,13 @@ final class PhabricatorEmailVerificationController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Verify Email')); $crumbs->addTextCrumb(pht('Verify Email'));
$crumbs->setBorder(true);
return $this->newPage()
->setTitle(pht('Verify Email'))
->setCrumbs($crumbs)
->appendChild($dialog);
return $this->buildApplicationPage(
array(
$crumbs,
$dialog,
),
array(
'title' => pht('Verify Email'),
));
} }
} }

View file

@ -56,14 +56,11 @@ final class PhabricatorLogoutController
} }
if ($viewer->getPHID()) { if ($viewer->getPHID()) {
$dialog = id(new AphrontDialogView()) return $this->newDialog()
->setUser($viewer)
->setTitle(pht('Log out of Phabricator?')) ->setTitle(pht('Log out of Phabricator?'))
->appendChild(pht('Are you sure you want to log out?')) ->appendChild(pht('Are you sure you want to log out?'))
->addSubmitButton(pht('Logout')) ->addSubmitButton(pht('Logout'))
->addCancelButton('/'); ->addCancelButton('/');
return id(new AphrontDialogResponse())->setDialog($dialog);
} }
return id(new AphrontRedirectResponse())->setURI('/'); return id(new AphrontRedirectResponse())->setURI('/');

View file

@ -53,14 +53,15 @@ final class PhabricatorMustVerifyEmailController
->appendParagraph($send_again) ->appendParagraph($send_again)
->addSubmitButton(pht('Send Another Email')); ->addSubmitButton(pht('Send Another Email'));
return $this->buildApplicationPage( $view = array(
array(
$sent, $sent,
$dialog, $dialog,
), );
array(
'title' => pht('Must Verify Email'), return $this->newPage()
)); ->setTitle(pht('Must Verify Email'))
->appendChild($view);
} }
} }

View file

@ -176,15 +176,33 @@ final class PhabricatorAuthEditController
$button = pht('Add Provider'); $button = pht('Add Provider');
} }
$crumb = pht('Add Provider'); $crumb = pht('Add Provider');
$title = pht('Add Authentication Provider'); $title = pht('Add Auth Provider');
$header_icon = 'fa-plus-square';
$cancel_uri = $this->getApplicationURI('/config/new/'); $cancel_uri = $this->getApplicationURI('/config/new/');
} else { } else {
$button = pht('Save'); $button = pht('Save');
$crumb = pht('Edit Provider'); $crumb = pht('Edit Provider');
$title = pht('Edit Authentication Provider'); $title = pht('Edit Auth Provider');
$header_icon = 'fa-pencil';
$cancel_uri = $this->getApplicationURI(); $cancel_uri = $this->getApplicationURI();
} }
$header = id(new PHUIHeaderView())
->setHeader(pht('%s: %s', $title, $provider->getProviderName()))
->setHeaderIcon($header_icon);
if ($config->getIsEnabled()) {
$status_name = pht('Enabled');
$status_color = 'green';
$status_icon = 'fa-check';
$header->setStatus($status_icon, $status_color, $status_name);
} else if (!$is_new) {
$status_name = pht('Disabled');
$status_color = 'indigo';
$status_icon = 'fa-ban';
$header->setStatus($status_icon, $status_color, $status_name);
}
$config_name = 'auth.email-domains'; $config_name = 'auth.email-domains';
$config_href = '/config/edit/'.$config_name.'/'; $config_href = '/config/edit/'.$config_name.'/';
@ -253,32 +271,8 @@ final class PhabricatorAuthEditController
'Phabricator will automatically login with this provider if it is '. 'Phabricator will automatically login with this provider if it is '.
'the only available provider.')); 'the only available provider.'));
$status_tag = id(new PHUITagView())
->setType(PHUITagView::TYPE_STATE);
if ($is_new) {
$status_tag
->setName(pht('New Provider'))
->setBackgroundColor('blue');
} else if ($config->getIsEnabled()) {
$status_tag
->setName(pht('Enabled'))
->setBackgroundColor('green');
} else {
$status_tag
->setName(pht('Disabled'))
->setBackgroundColor('red');
}
$form = id(new AphrontFormView()) $form = id(new AphrontFormView())
->setUser($viewer) ->setUser($viewer)
->appendChild(
id(new AphrontFormStaticControl())
->setLabel(pht('Provider'))
->setValue($provider->getProviderName()))
->appendChild(
id(new AphrontFormStaticControl())
->setLabel(pht('Status'))
->setValue($status_tag))
->appendChild( ->appendChild(
id(new AphrontFormCheckboxControl()) id(new AphrontFormCheckboxControl())
->setLabel(pht('Allow')) ->setLabel(pht('Allow'))
@ -348,6 +342,7 @@ final class PhabricatorAuthEditController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($crumb); $crumbs->addTextCrumb($crumb);
$crumbs->setBorder(true);
$timeline = null; $timeline = null;
if (!$is_new) { if (!$is_new) {
@ -358,23 +353,28 @@ final class PhabricatorAuthEditController
foreach ($xactions as $xaction) { foreach ($xactions as $xaction) {
$xaction->setProvider($provider); $xaction->setProvider($provider);
} }
$timeline->setShouldTerminate(true);
} }
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText($title) ->setHeaderText(pht('Provider'))
->setFormErrors($errors) ->setFormErrors($errors)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
return $this->buildApplicationPage( $view = id(new PHUITwoColumnView())
array( ->setHeader($header)
$crumbs, ->setFooter(array(
$form_box, $form_box,
$footer, $footer,
$timeline, $timeline,
),
array(
'title' => $title,
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -3,9 +3,8 @@
final class PhabricatorAuthListController final class PhabricatorAuthListController
extends PhabricatorAuthProviderConfigController { extends PhabricatorAuthProviderConfigController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$viewer = $request->getUser();
$configs = id(new PhabricatorAuthProviderConfigQuery()) $configs = id(new PhabricatorAuthProviderConfigQuery())
->setViewer($viewer) ->setViewer($viewer)
@ -93,6 +92,7 @@ final class PhabricatorAuthListController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Auth Providers')); $crumbs->addTextCrumb(pht('Auth Providers'));
$crumbs->setBorder(true);
$domains_key = 'auth.email-domains'; $domains_key = 'auth.email-domains';
$domains_link = $this->renderConfigLink($domains_key); $domains_link = $this->renderConfigLink($domains_key);
@ -155,24 +155,29 @@ final class PhabricatorAuthListController
->setDisabled(!$can_manage) ->setDisabled(!$can_manage)
->setText(pht('Add Provider')); ->setText(pht('Add Provider'));
$header = id(new PHUIHeaderView())
->setHeader(pht('Authentication Providers'))
->addActionLink($button);
$list->setFlush(true); $list->setFlush(true);
$list = id(new PHUIObjectBoxView()) $list = id(new PHUIObjectBoxView())
->setHeader($header) ->setHeaderText(pht('Providers'))
->setInfoView($warning) ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($list); ->appendChild($list);
return $this->buildApplicationPage( $title = pht('Auth Providers');
array( $header = id(new PHUIHeaderView())
$crumbs, ->setHeader($title)
->setHeaderIcon('fa-key')
->addActionLink($button);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$warning,
$list, $list,
),
array(
'title' => pht('Authentication Providers'),
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
private function renderConfigLink($key) { private function renderConfigLink($key) {

View file

@ -80,21 +80,32 @@ final class PhabricatorAuthNewController
->setValue(pht('Continue'))); ->setValue(pht('Continue')));
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Add Authentication Provider')) ->setHeaderText(pht('Provider'))
->setFormErrors($errors) ->setFormErrors($errors)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Add Provider')); $crumbs->addTextCrumb(pht('Add Provider'));
$crumbs->setBorder(true);
return $this->buildApplicationPage( $title = pht('Add Auth Provider');
array(
$crumbs, $header = id(new PHUIHeaderView())
->setHeader($title)
->setHeaderIcon('fa-plus-square');
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$form_box, $form_box,
),
array(
'title' => pht('Add Authentication Provider'),
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -44,9 +44,9 @@ final class PhabricatorAuthProviderConfigTransaction
switch ($this->getTransactionType()) { switch ($this->getTransactionType()) {
case self::TYPE_ENABLE: case self::TYPE_ENABLE:
if ($new) { if ($new) {
return 'fa-play'; return 'fa-check';
} else { } else {
return 'fa-pause'; return 'fa-ban';
} }
} }
@ -62,7 +62,7 @@ final class PhabricatorAuthProviderConfigTransaction
if ($new) { if ($new) {
return 'green'; return 'green';
} else { } else {
return 'red'; return 'indigo';
} }
} }

View file

@ -39,11 +39,13 @@ final class PhabricatorBadgesApplication extends PhabricatorApplication {
'/badges/' => array( '/badges/' => array(
'(?:query/(?P<queryKey>[^/]+)/)?' '(?:query/(?P<queryKey>[^/]+)/)?'
=> 'PhabricatorBadgesListController', => 'PhabricatorBadgesListController',
'award/(?:(?P<id>\d+)/)?'
=> 'PhabricatorBadgesAwardController',
'create/' 'create/'
=> 'PhabricatorBadgesEditController', => 'PhabricatorBadgesEditController',
'comment/(?P<id>[1-9]\d*)/' 'comment/(?P<id>[1-9]\d*)/'
=> 'PhabricatorBadgesCommentController', => 'PhabricatorBadgesCommentController',
'edit/(?:(?P<id>\d+)/)?' $this->getEditRoutePattern('edit/')
=> 'PhabricatorBadgesEditController', => 'PhabricatorBadgesEditController',
'archive/(?:(?P<id>\d+)/)?' 'archive/(?:(?P<id>\d+)/)?'
=> 'PhabricatorBadgesArchiveController', => 'PhabricatorBadgesArchiveController',

View file

@ -0,0 +1,78 @@
<?php
final class PhabricatorBadgesQuality
extends Phobject {
const POOR = 140;
const COMMON = 120;
const UNCOMMON = 100;
const RARE = 80;
const EPIC = 60;
const LEGENDARY = 40;
const HEIRLOOM = 20;
const DEFAULT_QUALITY = 140;
public static function getQualityName($quality) {
$map = self::getQualityDictionary($quality);
$default = pht('Unknown Quality ("%s")', $quality);
return idx($map, 'name', $default);
}
public static function getQualityColor($quality) {
$map = self::getQualityDictionary($quality);
$default = 'grey';
return idx($map, 'color', $default);
}
private static function getQualityDictionary($quality) {
$map = self::getQualityMap();
$default = array();
return idx($map, $quality, $default);
}
public static function getQualityMap() {
return array(
self::POOR => array(
'rarity' => 140,
'name' => pht('Poor'),
'color' => 'grey',
),
self::COMMON => array(
'rarity' => 120,
'name' => pht('Common'),
'color' => 'white',
),
self::UNCOMMON => array(
'rarity' => 100,
'name' => pht('Uncommon'),
'color' => 'green',
),
self::RARE => array(
'rarity' => 80,
'name' => pht('Rare'),
'color' => 'blue',
),
self::EPIC => array(
'rarity' => 60,
'name' => pht('Epic'),
'color' => 'indigo',
),
self::LEGENDARY => array(
'rarity' => 40,
'name' => pht('Legendary'),
'color' => 'orange',
),
self::HEIRLOOM => array(
'rarity' => 20,
'name' => pht('Heirloom'),
'color' => 'yellow',
),
);
}
public static function getDropdownQualityMap() {
$map = self::getQualityMap();
return ipull($map, 'name');
}
}

View file

@ -0,0 +1,85 @@
<?php
final class PhabricatorBadgesAwardController
extends PhabricatorBadgesController {
public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$id = $request->getURIData('id');
$user = id(new PhabricatorPeopleQuery())
->setViewer($viewer)
->withIDs(array($id))
->executeOne();
if (!$user) {
return new Aphront404Response();
}
$view_uri = '/p/'.$user->getUsername();
if ($request->isFormPost()) {
$xactions = array();
$badge_phid = $request->getStr('badgePHID');
$badge = id(new PhabricatorBadgesQuery())
->setViewer($viewer)
->withPHIDs(array($badge_phid))
->needRecipients(true)
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_EDIT,
PhabricatorPolicyCapability::CAN_VIEW,
))
->executeOne();
if (!$badge) {
return new Aphront404Response();
}
$award_phids = array($user->getPHID());
$xactions[] = id(new PhabricatorBadgesTransaction())
->setTransactionType(PhabricatorBadgesTransaction::TYPE_AWARD)
->setNewValue($award_phids);
$editor = id(new PhabricatorBadgesEditor($badge))
->setActor($viewer)
->setContentSourceFromRequest($request)
->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true)
->applyTransactions($badge, $xactions);
return id(new AphrontRedirectResponse())
->setURI($view_uri);
}
$badges = id(new PhabricatorBadgesQuery())
->setViewer($viewer)
->withStatuses(array(
PhabricatorBadgesBadge::STATUS_ACTIVE,
))
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
))
->execute();
$options = mpull($badges, 'getName', 'getPHID');
asort($options);
$form = id(new AphrontFormView())
->setUser($viewer)
->appendChild(
id(new AphrontFormSelectControl())
->setLabel(pht('Badge'))
->setName('badgePHID')
->setOptions($options));
$dialog = $this->newDialog()
->setTitle(pht('Grant Badge'))
->appendForm($form)
->addCancelButton($view_uri)
->addSubmitButton(pht('Award'));
return $dialog;
}
}

View file

@ -2,7 +2,6 @@
final class PhabricatorBadgesEditController extends final class PhabricatorBadgesEditController extends
PhabricatorBadgesController { PhabricatorBadgesController {
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
return id(new PhabricatorBadgesEditEngine()) return id(new PhabricatorBadgesEditEngine())
->setController($this) ->setController($this)

View file

@ -6,6 +6,7 @@ final class PhabricatorBadgesEditRecipientsController
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer(); $viewer = $request->getViewer();
$id = $request->getURIData('id'); $id = $request->getURIData('id');
$xactions = array();
$badge = id(new PhabricatorBadgesQuery()) $badge = id(new PhabricatorBadgesQuery())
->setViewer($viewer) ->setViewer($viewer)
@ -21,30 +22,23 @@ final class PhabricatorBadgesEditRecipientsController
return new Aphront404Response(); return new Aphront404Response();
} }
$recipient_phids = $badge->getRecipientPHIDs();
$view_uri = $this->getApplicationURI('view/'.$badge->getID().'/'); $view_uri = $this->getApplicationURI('view/'.$badge->getID().'/');
$awards = $badge->getAwards();
$recipient_phids = mpull($awards, 'getRecipientPHID');
if ($request->isFormPost()) { if ($request->isFormPost()) {
$recipient_spec = array(); $award_phids = array();
$remove = $request->getStr('remove');
if ($remove) {
$recipient_spec['-'] = array_fuse(array($remove));
}
$add_recipients = $request->getArr('phids'); $add_recipients = $request->getArr('phids');
if ($add_recipients) { if ($add_recipients) {
$recipient_spec['+'] = array_fuse($add_recipients); foreach ($add_recipients as $phid) {
$award_phids[] = $phid;
}
} }
$type_recipient = PhabricatorBadgeHasRecipientEdgeType::EDGECONST;
$xactions = array();
$xactions[] = id(new PhabricatorBadgesTransaction()) $xactions[] = id(new PhabricatorBadgesTransaction())
->setTransactionType(PhabricatorTransactions::TYPE_EDGE) ->setTransactionType(PhabricatorBadgesTransaction::TYPE_AWARD)
->setMetadataValue('edge:type', $type_recipient) ->setNewValue($award_phids);
->setNewValue($recipient_spec);
$editor = id(new PhabricatorBadgesEditor($badge)) $editor = id(new PhabricatorBadgesEditor($badge))
->setActor($viewer) ->setActor($viewer)

View file

@ -16,16 +16,9 @@ final class PhabricatorBadgesListController
protected function buildApplicationCrumbs() { protected function buildApplicationCrumbs() {
$crumbs = parent::buildApplicationCrumbs(); $crumbs = parent::buildApplicationCrumbs();
$can_create = $this->hasApplicationCapability( id(new PhabricatorBadgesEditEngine())
PhabricatorBadgesCreateCapability::CAPABILITY); ->setViewer($this->getViewer())
->addActionToCrumbs($crumbs);
$crumbs->addAction(
id(new PHUIListItemView())
->setName(pht('Create Badge'))
->setHref($this->getApplicationURI('create/'))
->setIcon('fa-plus-square')
->setDisabled(!$can_create)
->setWorkflow(!$can_create));
return $crumbs; return $crumbs;
} }

View file

@ -21,7 +21,8 @@ final class PhabricatorBadgesRemoveRecipientsController
return new Aphront404Response(); return new Aphront404Response();
} }
$recipient_phids = $badge->getRecipientPHIDs(); $awards = $badge->getAwards();
$recipient_phids = mpull($awards, 'getRecipientPHID');
$remove_phid = $request->getStr('phid'); $remove_phid = $request->getStr('phid');
if (!in_array($remove_phid, $recipient_phids)) { if (!in_array($remove_phid, $recipient_phids)) {
@ -31,17 +32,10 @@ final class PhabricatorBadgesRemoveRecipientsController
$view_uri = $this->getApplicationURI('view/'.$badge->getID().'/'); $view_uri = $this->getApplicationURI('view/'.$badge->getID().'/');
if ($request->isFormPost()) { if ($request->isFormPost()) {
$recipient_spec = array();
$recipient_spec['-'] = array($remove_phid => $remove_phid);
$type_recipient = PhabricatorBadgeHasRecipientEdgeType::EDGECONST;
$xactions = array(); $xactions = array();
$xactions[] = id(new PhabricatorBadgesTransaction()) $xactions[] = id(new PhabricatorBadgesTransaction())
->setTransactionType(PhabricatorTransactions::TYPE_EDGE) ->setTransactionType(PhabricatorBadgesTransaction::TYPE_REVOKE)
->setMetadataValue('edge:type', $type_recipient) ->setNewValue(array($remove_phid));
->setNewValue($recipient_spec);
$editor = id(new PhabricatorBadgesEditor($badge)) $editor = id(new PhabricatorBadgesEditor($badge))
->setActor($viewer) ->setActor($viewer)

View file

@ -50,7 +50,8 @@ final class PhabricatorBadgesViewController
$badge, $badge,
new PhabricatorBadgesTransactionQuery()); new PhabricatorBadgesTransactionQuery());
$recipient_phids = $badge->getRecipientPHIDs(); $awards = $badge->getAwards();
$recipient_phids = mpull($awards, 'getRecipientPHID');
$recipient_phids = array_reverse($recipient_phids); $recipient_phids = array_reverse($recipient_phids);
$handles = $this->loadViewerHandles($recipient_phids); $handles = $this->loadViewerHandles($recipient_phids);
@ -59,7 +60,9 @@ final class PhabricatorBadgesViewController
->setHandles($handles) ->setHandles($handles)
->setUser($viewer); ->setUser($viewer);
$add_comment = $this->buildCommentForm($badge); $comment_view = id(new PhabricatorBadgesEditEngine())
->setViewer($viewer)
->buildEditEngineCommentView($badge);
$view = id(new PHUITwoColumnView()) $view = id(new PHUITwoColumnView())
->setHeader($header) ->setHeader($header)
@ -67,9 +70,9 @@ final class PhabricatorBadgesViewController
->setMainColumn(array( ->setMainColumn(array(
$recipient_list, $recipient_list,
$timeline, $timeline,
$add_comment, $comment_view,
)) ))
->addPropertySection(pht('BADGE DETAILS'), $details); ->addPropertySection(pht('DESCRIPTION'), $details);
return $this->newPage() return $this->newPage()
->setTitle($title) ->setTitle($title)
@ -85,25 +88,8 @@ final class PhabricatorBadgesViewController
$view = id(new PHUIPropertyListView()) $view = id(new PHUIPropertyListView())
->setUser($viewer); ->setUser($viewer);
$quality = idx($badge->getQualityNameMap(), $badge->getQuality());
$view->addProperty(
pht('Quality'),
$quality);
$view->addProperty(
pht('Icon'),
id(new PhabricatorBadgesIconSet())
->getIconLabel($badge->getIcon()));
$view->addProperty(
pht('Flavor'),
$badge->getFlavor());
$description = $badge->getDescription(); $description = $badge->getDescription();
if (strlen($description)) { if (strlen($description)) {
$view->addSectionHeader(
pht('Description'), PHUIPropertyListView::ICON_SUMMARY);
$view->addTextContent( $view->addTextContent(
new PHUIRemarkupView($viewer, $description)); new PHUIRemarkupView($viewer, $description));
} }
@ -170,24 +156,4 @@ final class PhabricatorBadgesViewController
return $curtain; return $curtain;
} }
private function buildCommentForm(PhabricatorBadgesBadge $badge) {
$viewer = $this->getViewer();
$is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business');
$add_comment_header = $is_serious
? pht('Add Comment')
: pht('Render Honors');
$draft = PhabricatorDraft::newFromUserAndKey($viewer, $badge->getPHID());
return id(new PhabricatorApplicationTransactionCommentView())
->setUser($viewer)
->setObjectPHID($badge->getPHID())
->setDraft($draft)
->setHeaderText($add_comment_header)
->setAction($this->getApplicationURI('/comment/'.$badge->getID().'/'))
->setSubmitButtonName(pht('Add Comment'));
}
} }

View file

@ -34,7 +34,7 @@ final class PhabricatorBadgesEditEngine
} }
protected function getObjectEditTitleText($object) { protected function getObjectEditTitleText($object) {
return pht('Edit %s', $object->getName()); return pht('Edit Badge: %s', $object->getName());
} }
protected function getObjectEditShortText($object) { protected function getObjectEditShortText($object) {
@ -45,18 +45,35 @@ final class PhabricatorBadgesEditEngine
return pht('Create Badge'); return pht('Create Badge');
} }
protected function getObjectName() {
return pht('Badge');
}
protected function getObjectCreateCancelURI($object) {
return $this->getApplication()->getApplicationURI('/');
}
protected function getEditorURI() {
return $this->getApplication()->getApplicationURI('edit/');
}
protected function getCommentViewHeaderText($object) { protected function getCommentViewHeaderText($object) {
return pht('Add Comment'); return pht('Render Honors');
} }
protected function getCommentViewButtonText($object) { protected function getCommentViewButtonText($object) {
return pht('Submit'); return pht('Salute');
} }
protected function getObjectViewURI($object) { protected function getObjectViewURI($object) {
return $object->getViewURI(); return $object->getViewURI();
} }
protected function getCreateNewObjectPolicy() {
return $this->getApplication()->getPolicy(
PhabricatorBadgesCreateCapability::CAPABILITY);
}
protected function buildCustomEditFields($object) { protected function buildCustomEditFields($object) {
return array( return array(
@ -85,7 +102,7 @@ final class PhabricatorBadgesEditEngine
->setLabel(pht('Quality')) ->setLabel(pht('Quality'))
->setValue($object->getQuality()) ->setValue($object->getQuality())
->setTransactionType(PhabricatorBadgesTransaction::TYPE_QUALITY) ->setTransactionType(PhabricatorBadgesTransaction::TYPE_QUALITY)
->setOptions($object->getQualityNameMap()), ->setOptions(PhabricatorBadgesQuality::getDropdownQualityMap()),
id(new PhabricatorRemarkupEditField()) id(new PhabricatorRemarkupEditField())
->setKey('description') ->setKey('description')
->setLabel(pht('Description')) ->setLabel(pht('Description'))

View file

@ -20,6 +20,8 @@ final class PhabricatorBadgesEditor
$types[] = PhabricatorBadgesTransaction::TYPE_ICON; $types[] = PhabricatorBadgesTransaction::TYPE_ICON;
$types[] = PhabricatorBadgesTransaction::TYPE_STATUS; $types[] = PhabricatorBadgesTransaction::TYPE_STATUS;
$types[] = PhabricatorBadgesTransaction::TYPE_QUALITY; $types[] = PhabricatorBadgesTransaction::TYPE_QUALITY;
$types[] = PhabricatorBadgesTransaction::TYPE_AWARD;
$types[] = PhabricatorBadgesTransaction::TYPE_REVOKE;
$types[] = PhabricatorTransactions::TYPE_COMMENT; $types[] = PhabricatorTransactions::TYPE_COMMENT;
$types[] = PhabricatorTransactions::TYPE_EDGE; $types[] = PhabricatorTransactions::TYPE_EDGE;
@ -44,6 +46,11 @@ final class PhabricatorBadgesEditor
return $object->getQuality(); return $object->getQuality();
case PhabricatorBadgesTransaction::TYPE_STATUS: case PhabricatorBadgesTransaction::TYPE_STATUS:
return $object->getStatus(); return $object->getStatus();
case PhabricatorBadgesTransaction::TYPE_AWARD:
$award_phids = mpull($object->getAwards(), 'getRecipientPHID');
return $award_phids;
case PhabricatorBadgesTransaction::TYPE_REVOKE:
return null;
} }
return parent::getCustomTransactionOldValue($object, $xaction); return parent::getCustomTransactionOldValue($object, $xaction);
@ -59,8 +66,11 @@ final class PhabricatorBadgesEditor
case PhabricatorBadgesTransaction::TYPE_DESCRIPTION: case PhabricatorBadgesTransaction::TYPE_DESCRIPTION:
case PhabricatorBadgesTransaction::TYPE_ICON: case PhabricatorBadgesTransaction::TYPE_ICON:
case PhabricatorBadgesTransaction::TYPE_STATUS: case PhabricatorBadgesTransaction::TYPE_STATUS:
case PhabricatorBadgesTransaction::TYPE_QUALITY: case PhabricatorBadgesTransaction::TYPE_AWARD:
case PhabricatorBadgesTransaction::TYPE_REVOKE:
return $xaction->getNewValue(); return $xaction->getNewValue();
case PhabricatorBadgesTransaction::TYPE_QUALITY:
return (int)$xaction->getNewValue();
} }
return parent::getCustomTransactionNewValue($object, $xaction); return parent::getCustomTransactionNewValue($object, $xaction);
@ -90,6 +100,9 @@ final class PhabricatorBadgesEditor
case PhabricatorBadgesTransaction::TYPE_STATUS: case PhabricatorBadgesTransaction::TYPE_STATUS:
$object->setStatus($xaction->getNewValue()); $object->setStatus($xaction->getNewValue());
return; return;
case PhabricatorBadgesTransaction::TYPE_AWARD:
case PhabricatorBadgesTransaction::TYPE_REVOKE:
return;
} }
return parent::applyCustomInternalTransaction($object, $xaction); return parent::applyCustomInternalTransaction($object, $xaction);
@ -108,6 +121,34 @@ final class PhabricatorBadgesEditor
case PhabricatorBadgesTransaction::TYPE_STATUS: case PhabricatorBadgesTransaction::TYPE_STATUS:
case PhabricatorBadgesTransaction::TYPE_QUALITY: case PhabricatorBadgesTransaction::TYPE_QUALITY:
return; return;
case PhabricatorBadgesTransaction::TYPE_REVOKE:
$revoked_recipient_phids = $xaction->getNewValue();
$awards = $object->getAwards();
$awards = mpull($awards, null, 'getRecipientPHID');
foreach ($revoked_recipient_phids as $phid) {
$awards[$phid]->delete();
}
$object->attachAwards($awards);
return;
case PhabricatorBadgesTransaction::TYPE_AWARD:
$recipient_phids = $xaction->getNewValue();
$awards = $object->getAwards();
$awards = mpull($awards, null, 'getRecipientPHID');
foreach ($recipient_phids as $phid) {
$award = idx($awards, $phid);
if (!$award) {
$award = PhabricatorBadgesAward::initializeNewBadgesAward(
$this->getActor(),
$object,
$phid);
$award->save();
$awards[] = $award;
}
}
$object->attachAwards($awards);
return;
} }
return parent::applyCustomExternalTransaction($object, $xaction); return parent::applyCustomExternalTransaction($object, $xaction);

View file

@ -0,0 +1,87 @@
<?php
final class PhabricatorBadgesAwardQuery
extends PhabricatorCursorPagedPolicyAwareQuery {
private $badgePHIDs;
private $recipientPHIDs;
private $awarderPHIDs;
protected function willFilterPage(array $awards) {
$badges = id(new PhabricatorBadgesQuery())
->setViewer($this->getViewer())
->withRecipientPHIDs(mpull($awards, null, 'getRecipientPHID'))
->execute();
$badges = mpull($badges, null, 'getPHID');
foreach ($awards as $key => $award) {
$award_badge = idx($badges, $award->getBadgePHID());
if ($award_badge === null) {
$this->didRejectResult($award);
unset($awards[$key]);
continue;
}
$award->attachBadge($award_badge);
}
return $awards;
}
public function withBadgePHIDs(array $phids) {
$this->badgePHIDs = $phids;
return $this;
}
public function withRecipientPHIDs(array $phids) {
$this->recipientPHIDs = $phids;
return $this;
}
public function withAwarderPHIDs(array $phids) {
$this->awarderPHIDs = $phids;
return $this;
}
protected function loadPage() {
return $this->loadStandardPage($this->newResultObject());
}
public function newResultObject() {
return new PhabricatorBadgesAward();
}
protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
$where = parent::buildWhereClauseParts($conn);
if ($this->badgePHIDs !== null) {
$where[] = qsprintf(
$conn,
'badgePHID IN (%Ls)',
$this->badgePHIDs);
}
if ($this->recipientPHIDs !== null) {
$where[] = qsprintf(
$conn,
'recipientPHID IN (%Ls)',
$this->recipientPHIDs);
}
if ($this->awarderPHIDs !== null) {
$where[] = qsprintf(
$conn,
'awarderPHID IN (%Ls)',
$this->awarderPHIDs);
}
return $where;
}
public function getQueryApplicationClass() {
return 'PhabricatorBadgesApplication';
}
}

View file

@ -50,22 +50,17 @@ final class PhabricatorBadgesQuery
} }
protected function didFilterPage(array $badges) { protected function didFilterPage(array $badges) {
if ($this->needRecipients) { if ($this->needRecipients) {
$edge_query = id(new PhabricatorEdgeQuery()) $query = id(new PhabricatorBadgesAwardQuery())
->withSourcePHIDs(mpull($badges, 'getPHID')) ->setViewer($this->getViewer())
->withEdgeTypes( ->withBadgePHIDs(mpull($badges, 'getPHID'))
array( ->execute();
PhabricatorBadgeHasRecipientEdgeType::EDGECONST,
)); $awards = mgroup($query, 'getBadgePHID');
$edge_query->execute();
foreach ($badges as $badge) { foreach ($badges as $badge) {
$phids = $edge_query->getDestinationPHIDs( $badge_awards = idx($awards, $badge->getPHID(), array());
array( $badge->attachAwards($badge_awards);
$badge->getPHID(),
));
$badge->attachRecipientPHIDs($phids);
} }
} }
@ -110,4 +105,36 @@ final class PhabricatorBadgesQuery
return 'PhabricatorBadgesApplication'; return 'PhabricatorBadgesApplication';
} }
public function getBuiltinOrders() {
return array(
'quality' => array(
'vector' => array('quality', 'id'),
'name' => pht('Rarity (Rarest First)'),
),
'shoddiness' => array(
'vector' => array('-quality', '-id'),
'name' => pht('Rarity (Most Common First)'),
),
) + parent::getBuiltinOrders();
}
public function getOrderableColumns() {
return array(
'quality' => array(
'table' => $this->getPrimaryTableAlias(),
'column' => 'quality',
'reverse' => true,
'type' => 'int',
),
) + parent::getOrderableColumns();
}
protected function getPagingValueMap($cursor, array $keys) {
$badge = $this->loadCursorObject($cursor);
return array(
'quality' => $badge->getQuality(),
'id' => $badge->getID(),
);
}
} }

View file

@ -34,9 +34,7 @@ final class PhabricatorBadgesSearchEngine
id(new PhabricatorSearchCheckboxesField()) id(new PhabricatorSearchCheckboxesField())
->setKey('qualities') ->setKey('qualities')
->setLabel(pht('Quality')) ->setLabel(pht('Quality'))
->setOptions( ->setOptions(PhabricatorBadgesQuality::getDropdownQualityMap()),
id(new PhabricatorBadgesBadge())
->getQualityNameMap()),
id(new PhabricatorSearchCheckboxesField()) id(new PhabricatorSearchCheckboxesField())
->setKey('statuses') ->setKey('statuses')
->setLabel(pht('Status')) ->setLabel(pht('Status'))
@ -110,8 +108,9 @@ final class PhabricatorBadgesSearchEngine
$list = id(new PHUIObjectItemListView()); $list = id(new PHUIObjectItemListView());
foreach ($badges as $badge) { foreach ($badges as $badge) {
$quality_name = PhabricatorBadgesQuality::getQualityName(
$badge->getQuality());
$quality = idx($badge->getQualityNameMap(), $badge->getQuality());
$mini_badge = id(new PHUIBadgeMiniView()) $mini_badge = id(new PHUIBadgeMiniView())
->setHeader($badge->getName()) ->setHeader($badge->getName())
->setIcon($badge->getIcon()) ->setIcon($badge->getIcon())
@ -121,7 +120,7 @@ final class PhabricatorBadgesSearchEngine
->setHeader($badge->getName()) ->setHeader($badge->getName())
->setBadge($mini_badge) ->setBadge($mini_badge)
->setHref('/badges/view/'.$badge->getID().'/') ->setHref('/badges/view/'.$badge->getID().'/')
->addAttribute($quality) ->addAttribute($quality_name)
->addAttribute($badge->getFlavor()); ->addAttribute($badge->getFlavor());
if ($badge->isArchived()) { if ($badge->isArchived()) {

View file

@ -0,0 +1,83 @@
<?php
final class PhabricatorBadgesAward extends PhabricatorBadgesDAO
implements
PhabricatorDestructibleInterface,
PhabricatorPolicyInterface {
protected $badgePHID;
protected $recipientPHID;
protected $awarderPHID;
private $badge = self::ATTACHABLE;
public static function initializeNewBadgesAward(
PhabricatorUser $actor,
PhabricatorBadgesBadge $badge,
$recipient_phid) {
return id(new self())
->setRecipientPHID($recipient_phid)
->setBadgePHID($badge->getPHID())
->setAwarderPHID($actor->getPHID())
->attachBadge($badge);
}
protected function getConfiguration() {
return array(
self::CONFIG_KEY_SCHEMA => array(
'key_badge' => array(
'columns' => array('badgePHID', 'recipientPHID'),
'unique' => true,
),
'key_recipient' => array(
'columns' => array('recipientPHID'),
),
),
) + parent::getConfiguration();
}
public function attachBadge(PhabricatorBadgesBadge $badge) {
$this->badge = $badge;
return $this;
}
public function getBadge() {
return $this->assertAttached($this->badge);
}
/* -( PhabricatorDestructibleInterface )----------------------------------- */
public function destroyObjectPermanently(
PhabricatorDestructionEngine $engine) {
$this->openTransaction();
$this->delete();
$this->saveTransaction();
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */
public function getCapabilities() {
return array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
);
}
public function getPolicy($capability) {
return $this->getBadge()->getPolicy($capability);
}
public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {
return false;
}
public function describeAutomaticCapability($capability) {
return null;
}
}

View file

@ -19,21 +19,12 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
protected $status; protected $status;
protected $creatorPHID; protected $creatorPHID;
private $recipientPHIDs = self::ATTACHABLE; private $awards = self::ATTACHABLE;
const STATUS_ACTIVE = 'open'; const STATUS_ACTIVE = 'open';
const STATUS_ARCHIVED = 'closed'; const STATUS_ARCHIVED = 'closed';
const DEFAULT_ICON = 'fa-star'; const DEFAULT_ICON = 'fa-star';
const DEFAULT_QUALITY = 'green';
const POOR = 'grey';
const COMMON = 'white';
const UNCOMMON = 'green';
const RARE = 'blue';
const EPIC = 'indigo';
const LEGENDARY = 'orange';
const HEIRLOOM = 'yellow';
public static function getStatusNameMap() { public static function getStatusNameMap() {
return array( return array(
@ -42,18 +33,6 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
); );
} }
public static function getQualityNameMap() {
return array(
self::POOR => pht('Poor'),
self::COMMON => pht('Common'),
self::UNCOMMON => pht('Uncommon'),
self::RARE => pht('Rare'),
self::EPIC => pht('Epic'),
self::LEGENDARY => pht('Legendary'),
self::HEIRLOOM => pht('Heirloom'),
);
}
public static function initializeNewBadge(PhabricatorUser $actor) { public static function initializeNewBadge(PhabricatorUser $actor) {
$app = id(new PhabricatorApplicationQuery()) $app = id(new PhabricatorApplicationQuery())
->setViewer($actor) ->setViewer($actor)
@ -67,7 +46,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
return id(new PhabricatorBadgesBadge()) return id(new PhabricatorBadgesBadge())
->setIcon(self::DEFAULT_ICON) ->setIcon(self::DEFAULT_ICON)
->setQuality(self::DEFAULT_QUALITY) ->setQuality(PhabricatorBadgesQuality::DEFAULT_QUALITY)
->setCreatorPHID($actor->getPHID()) ->setCreatorPHID($actor->getPHID())
->setEditPolicy($edit_policy) ->setEditPolicy($edit_policy)
->setStatus(self::STATUS_ACTIVE); ->setStatus(self::STATUS_ACTIVE);
@ -81,7 +60,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
'flavor' => 'text255', 'flavor' => 'text255',
'description' => 'text', 'description' => 'text',
'icon' => 'text255', 'icon' => 'text255',
'quality' => 'text255', 'quality' => 'uint32',
'status' => 'text32', 'status' => 'text32',
'mailKey' => 'bytes20', 'mailKey' => 'bytes20',
), ),
@ -102,13 +81,13 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
return ($this->getStatus() == self::STATUS_ARCHIVED); return ($this->getStatus() == self::STATUS_ARCHIVED);
} }
public function attachRecipientPHIDs(array $phids) { public function attachAwards(array $awards) {
$this->recipientPHIDs = $phids; $this->awards = $awards;
return $this; return $this;
} }
public function getRecipientPHIDs() { public function getAwards() {
return $this->assertAttached($this->recipientPHIDs); return $this->assertAttached($this->awards);
} }
public function getViewURI() { public function getViewURI() {
@ -197,6 +176,15 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
public function destroyObjectPermanently( public function destroyObjectPermanently(
PhabricatorDestructionEngine $engine) { PhabricatorDestructionEngine $engine) {
$awards = id(new PhabricatorBadgesAwardQuery())
->setViewer($engine->getViewer())
->withBadgePHIDs(array($this->getPHID()))
->execute();
foreach ($awards as $award) {
$engine->destroyObjectPermanently($award);
}
$this->openTransaction(); $this->openTransaction();
$this->delete(); $this->delete();
$this->saveTransaction(); $this->saveTransaction();

View file

@ -9,6 +9,8 @@ final class PhabricatorBadgesTransaction
const TYPE_ICON = 'badges:icon'; const TYPE_ICON = 'badges:icon';
const TYPE_STATUS = 'badges:status'; const TYPE_STATUS = 'badges:status';
const TYPE_FLAVOR = 'badges:flavor'; const TYPE_FLAVOR = 'badges:flavor';
const TYPE_AWARD = 'badges:award';
const TYPE_REVOKE = 'badges:revoke';
const MAILTAG_DETAILS = 'badges:details'; const MAILTAG_DETAILS = 'badges:details';
const MAILTAG_COMMENT = 'badges:comment'; const MAILTAG_COMMENT = 'badges:comment';
@ -71,6 +73,18 @@ final class PhabricatorBadgesTransaction
$this->renderHandleLink($author_phid)); $this->renderHandleLink($author_phid));
} }
break; break;
case self::TYPE_STATUS:
switch ($new) {
case PhabricatorBadgesBadge::STATUS_ACTIVE:
return pht(
'%s activated this badge.',
$this->renderHandleLink($author_phid));
case PhabricatorBadgesBadge::STATUS_ARCHIVED:
return pht(
'%s archived this badge.',
$this->renderHandleLink($author_phid));
}
break;
case self::TYPE_ICON: case self::TYPE_ICON:
if ($old === null) { if ($old === null) {
return pht( return pht(
@ -97,9 +111,8 @@ final class PhabricatorBadgesTransaction
$this->renderHandleLink($author_phid), $this->renderHandleLink($author_phid),
$new); $new);
} else { } else {
$qual_map = PhabricatorBadgesBadge::getQualityNameMap(); $qual_new = PhabricatorBadgesQuality::getQualityName($new);
$qual_new = idx($qual_map, $new, $new); $qual_old = PhabricatorBadgesQuality::getQualityName($old);
$qual_old = idx($qual_map, $old, $old);
return pht( return pht(
'%s updated the quality for this badge from "%s" to "%s".', '%s updated the quality for this badge from "%s" to "%s".',
$this->renderHandleLink($author_phid), $this->renderHandleLink($author_phid),
@ -107,6 +120,26 @@ final class PhabricatorBadgesTransaction
$qual_new); $qual_new);
} }
break; break;
case self::TYPE_AWARD:
if (!is_array($new)) {
$new = array();
}
$handles = $this->renderHandleList($new);
return pht(
'%s awarded this badge to %s recipient(s): %s.',
$this->renderHandleLink($author_phid),
new PhutilNumber(count($new)),
$handles);
case self::TYPE_REVOKE:
if (!is_array($new)) {
$new = array();
}
$handles = $this->renderHandleList($new);
return pht(
'%s revoked this badge from %s recipient(s): %s.',
$this->renderHandleLink($author_phid),
new PhutilNumber(count($new)),
$handles);
} }
return parent::getTitle(); return parent::getTitle();
@ -169,6 +202,28 @@ final class PhabricatorBadgesTransaction
$this->renderHandleLink($object_phid)); $this->renderHandleLink($object_phid));
} }
break; break;
case self::TYPE_AWARD:
if (!is_array($new)) {
$new = array();
}
$handles = $this->renderHandleList($new);
return pht(
'%s awarded %s to %s recipient(s): %s.',
$this->renderHandleLink($author_phid),
$this->renderHandleLink($object_phid),
new PhutilNumber(count($new)),
$handles);
case self::TYPE_REVOKE:
if (!is_array($new)) {
$new = array();
}
$handles = $this->renderHandleList($new);
return pht(
'%s revoked %s from %s recipient(s): %s.',
$this->renderHandleLink($author_phid),
$this->renderHandleLink($object_phid),
new PhutilNumber(count($new)),
$handles);
} }
return parent::getTitleForFeed(); return parent::getTitleForFeed();
@ -221,4 +276,24 @@ final class PhabricatorBadgesTransaction
$this->getOldValue(), $this->getOldValue(),
$this->getNewValue()); $this->getNewValue());
} }
public function getRequiredHandlePHIDs() {
$phids = parent::getRequiredHandlePHIDs();
$type = $this->getTransactionType();
switch ($type) {
case self::TYPE_AWARD:
case self::TYPE_REVOKE:
$new = $this->getNewValue();
if (!is_array($new)) {
$new = array();
}
foreach ($new as $phid) {
$phids[] = $phid;
}
break;
}
return $phids;
}
} }

View file

@ -27,7 +27,8 @@ final class PhabricatorBadgesRecipientsListView extends AphrontView {
PhabricatorPolicyCapability::CAN_EDIT); PhabricatorPolicyCapability::CAN_EDIT);
$list = id(new PHUIObjectItemListView()) $list = id(new PHUIObjectItemListView())
->setNoDataString(pht('This badge does not have any recipients.')); ->setNoDataString(pht('This badge does not have any recipients.'))
->setFlush(true);
foreach ($handles as $handle) { foreach ($handles as $handle) {
$remove_uri = '/badges/recipients/'. $remove_uri = '/badges/recipients/'.
@ -51,7 +52,8 @@ final class PhabricatorBadgesRecipientsListView extends AphrontView {
} }
$box = id(new PHUIObjectBoxView()) $box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Recipients')) ->setHeaderText(pht('RECIPIENTS'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($list); ->setObjectList($list);
return $box; return $box;

View file

@ -69,7 +69,8 @@ final class PhabricatorCalendarEventEditController
$recurrence_end_date_value->setOptional(true); $recurrence_end_date_value->setOptional(true);
$submit_label = pht('Create'); $submit_label = pht('Create');
$page_title = pht('Create Event'); $title = pht('Create Event');
$header_icon = 'fa-plus-square';
$redirect = 'created'; $redirect = 'created';
$subscribers = array(); $subscribers = array();
$invitees = array($user_phid); $invitees = array($user_phid);
@ -121,7 +122,8 @@ final class PhabricatorCalendarEventEditController
->setOptional(true); ->setOptional(true);
$submit_label = pht('Update'); $submit_label = pht('Update');
$page_title = pht('Update Event'); $title = pht('Edit Event: %s', $event->getName());
$header_icon = 'fa-pencil';
$subscribers = PhabricatorSubscribersQuery::loadSubscribersForPHID( $subscribers = PhabricatorSubscribersQuery::loadSubscribersForPHID(
$event->getPHID()); $event->getPHID());
@ -540,7 +542,7 @@ final class PhabricatorCalendarEventEditController
if ($request->isAjax()) { if ($request->isAjax()) {
return $this->newDialog() return $this->newDialog()
->setTitle($page_title) ->setTitle($title)
->setWidth(AphrontDialogView::WIDTH_FULL) ->setWidth(AphrontDialogView::WIDTH_FULL)
->appendForm($form) ->appendForm($form)
->addCancelButton($cancel_uri) ->addCancelButton($cancel_uri)
@ -554,30 +556,35 @@ final class PhabricatorCalendarEventEditController
$form->appendChild($submit); $form->appendChild($submit);
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText($page_title) ->setHeaderText(pht('Event'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setValidationException($validation_exception)
->setForm($form); ->setForm($form);
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
if (!$this->isCreate()) { if (!$this->isCreate()) {
$crumbs->addTextCrumb('E'.$event->getId(), '/E'.$event->getId()); $crumbs->addTextCrumb('E'.$event->getId(), '/E'.$event->getId());
$crumb_title = pht('Edit Event');
} else {
$crumb_title = pht('Create Event');
} }
$crumbs->addTextCrumb($page_title); $crumbs->addTextCrumb($crumb_title);
$crumbs->setBorder(true);
$object_box = id(new PHUIObjectBoxView()) $header = id(new PHUIHeaderView())
->setHeaderText($page_title) ->setHeader($title)
->setValidationException($validation_exception) ->setHeaderIcon($header_icon);
->appendChild($form);
return $this->buildApplicationPage( $view = id(new PHUITwoColumnView())
array( ->setHeader($header)
$crumbs, ->setFooter($form_box);
$object_box,
), return $this->newPage()
array( ->setTitle($title)
'title' => $page_title, ->setCrumbs($crumbs)
)); ->appendChild($view);
} }

View file

@ -57,4 +57,9 @@ final class ConduitAPIRequest extends Phobject {
return $this->isClusterRequest; return $this->isClusterRequest;
} }
public function newContentSource() {
return PhabricatorContentSource::newForSource(
PhabricatorConduitContentSource::SOURCECONST);
}
} }

View file

@ -147,7 +147,7 @@ final class ConpherenceRoomTestCase extends ConpherenceTestCase {
id(new ConpherenceEditor()) id(new ConpherenceEditor())
->setActor($creator) ->setActor($creator)
->setContentSource(PhabricatorContentSource::newConsoleSource()) ->setContentSource($this->newContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->applyTransactions($conpherence, $xactions); ->applyTransactions($conpherence, $xactions);
@ -166,7 +166,7 @@ final class ConpherenceRoomTestCase extends ConpherenceTestCase {
id(new ConpherenceEditor()) id(new ConpherenceEditor())
->setActor($actor) ->setActor($actor)
->setContentSource(PhabricatorContentSource::newConsoleSource()) ->setContentSource($this->newContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->applyTransactions($room, $xactions); ->applyTransactions($room, $xactions);
} }

View file

@ -14,7 +14,7 @@ abstract class ConpherenceTestCase extends PhabricatorTestCase {
); );
$editor = id(new ConpherenceEditor()) $editor = id(new ConpherenceEditor())
->setActor($actor) ->setActor($actor)
->setContentSource(PhabricatorContentSource::newConsoleSource()) ->setContentSource($this->newContentSource())
->applyTransactions($conpherence, $xactions); ->applyTransactions($conpherence, $xactions);
} }
@ -31,7 +31,7 @@ abstract class ConpherenceTestCase extends PhabricatorTestCase {
); );
$editor = id(new ConpherenceEditor()) $editor = id(new ConpherenceEditor())
->setActor($actor) ->setActor($actor)
->setContentSource(PhabricatorContentSource::newConsoleSource()) ->setContentSource($this->newContentSource())
->applyTransactions($conpherence, $xactions); ->applyTransactions($conpherence, $xactions);
} }
@ -45,7 +45,7 @@ abstract class ConpherenceTestCase extends PhabricatorTestCase {
$editor = id(new ConpherenceEditor()) $editor = id(new ConpherenceEditor())
->setActor($actor) ->setActor($actor)
->setContentSource(PhabricatorContentSource::newConsoleSource()); ->setContentSource($this->newContentSource());
$xactions = $editor->generateTransactionsFromText( $xactions = $editor->generateTransactionsFromText(
$actor, $actor,

View file

@ -42,7 +42,7 @@ final class ConpherenceCreateThreadConduitAPIMethod
$participant_phids, $participant_phids,
$title, $title,
$message, $message,
PhabricatorContentSource::newFromConduitRequest($request)); $request->newContentSource());
if ($errors) { if ($errors) {
foreach ($errors as $error_code) { foreach ($errors as $error_code) {

View file

@ -58,7 +58,7 @@ final class ConpherenceUpdateThreadConduitAPIMethod
throw new ConduitException('ERR_USAGE_ROOM_NOT_FOUND'); throw new ConduitException('ERR_USAGE_ROOM_NOT_FOUND');
} }
$source = PhabricatorContentSource::newFromConduitRequest($request); $source = $request->newContentSource();
$editor = id(new ConpherenceEditor()) $editor = id(new ConpherenceEditor())
->setContentSource($source) ->setContentSource($source)
->setActor($user); ->setActor($user);

View file

@ -48,11 +48,7 @@ final class ConpherenceReplyHandler extends PhabricatorMailReplyHandler {
$conpherence->attachParticipants($participants); $conpherence->attachParticipants($participants);
} }
$content_source = PhabricatorContentSource::newForSource( $content_source = $mail->newContentSource();
PhabricatorContentSource::SOURCE_EMAIL,
array(
'id' => $mail->getID(),
));
$editor = id(new ConpherenceEditor()) $editor = id(new ConpherenceEditor())
->setActor($user) ->setActor($user)

View file

@ -8,7 +8,6 @@ final class PhabricatorCountdownEditController
$id = $request->getURIData('id'); $id = $request->getURIData('id');
if ($id) { if ($id) {
$page_title = pht('Edit Countdown');
$countdown = id(new PhabricatorCountdownQuery()) $countdown = id(new PhabricatorCountdownQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs(array($id)) ->withIDs(array($id))
@ -28,8 +27,9 @@ final class PhabricatorCountdownEditController
$countdown->getPHID(), $countdown->getPHID(),
PhabricatorProjectObjectHasProjectEdgeType::EDGECONST); PhabricatorProjectObjectHasProjectEdgeType::EDGECONST);
$v_projects = array_reverse($v_projects); $v_projects = array_reverse($v_projects);
$title = pht('Edit Countdown: %s', $countdown->getTitle());
} else { } else {
$page_title = pht('Create Countdown'); $title = pht('Create Countdown');
$countdown = PhabricatorCountdown::initializeNewCountdown($viewer); $countdown = PhabricatorCountdown::initializeNewCountdown($viewer);
$date_value = AphrontFormDateControlValue::newFromEpoch( $date_value = AphrontFormDateControlValue::newFromEpoch(
$viewer, PhabricatorTime::getNow()); $viewer, PhabricatorTime::getNow());
@ -116,6 +116,7 @@ final class PhabricatorCountdownEditController
} }
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->setBorder(true);
$cancel_uri = '/countdown/'; $cancel_uri = '/countdown/';
if ($countdown->getID()) { if ($countdown->getID()) {
@ -123,9 +124,11 @@ final class PhabricatorCountdownEditController
$crumbs->addTextCrumb('C'.$countdown->getID(), $cancel_uri); $crumbs->addTextCrumb('C'.$countdown->getID(), $cancel_uri);
$crumbs->addTextCrumb(pht('Edit')); $crumbs->addTextCrumb(pht('Edit'));
$submit_label = pht('Save Changes'); $submit_label = pht('Save Changes');
$header_icon = 'fa-pencil';
} else { } else {
$crumbs->addTextCrumb(pht('Create Countdown')); $crumbs->addTextCrumb(pht('Create Countdown'));
$submit_label = pht('Create Countdown'); $submit_label = pht('Create Countdown');
$header_icon = 'fa-plus-square';
} }
$policies = id(new PhabricatorPolicyQuery()) $policies = id(new PhabricatorPolicyQuery())
@ -180,16 +183,25 @@ final class PhabricatorCountdownEditController
->setValue($submit_label)); ->setValue($submit_label));
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText($page_title) ->setHeaderText(pht('Countdown'))
->setFormErrors($errors) ->setFormErrors($errors)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
$header = id(new PHUIHeaderView())
->setHeader($title)
->setHeaderIcon($header_icon);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter($form_box);
return $this->newPage() return $this->newPage()
->setTitle($page_title) ->setTitle($title)
->setCrumbs($crumbs) ->setCrumbs($crumbs)
->appendChild( ->appendChild(
array( array(
$form_box, $view,
)); ));
} }

View file

@ -45,13 +45,11 @@ final class DifferentialCloseConduitAPIMethod
->setTransactionType(DifferentialTransaction::TYPE_ACTION) ->setTransactionType(DifferentialTransaction::TYPE_ACTION)
->setNewValue(DifferentialAction::ACTION_CLOSE); ->setNewValue(DifferentialAction::ACTION_CLOSE);
$content_source = PhabricatorContentSource::newForSource( $content_source = $request->newContentSource();
PhabricatorContentSource::SOURCE_CONDUIT,
array());
$editor = id(new DifferentialTransactionEditor()) $editor = id(new DifferentialTransactionEditor())
->setActor($viewer) ->setActor($viewer)
->setContentSourceFromConduitRequest($request) ->setContentSource($request->newContentSource())
->setContinueOnMissingFields(true) ->setContinueOnMissingFields(true)
->setContinueOnNoEffect(true); ->setContinueOnNoEffect(true);

View file

@ -138,7 +138,7 @@ abstract class DifferentialConduitAPIMethod extends ConduitAPIMethod {
$editor = id(new DifferentialTransactionEditor()) $editor = id(new DifferentialTransactionEditor())
->setActor($viewer) ->setActor($viewer)
->setContentSourceFromConduitRequest($request) ->setContentSource($request->newContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true); ->setContinueOnMissingFields(true);

View file

@ -77,7 +77,7 @@ final class DifferentialCreateCommentConduitAPIMethod
$editor = id(new DifferentialTransactionEditor()) $editor = id(new DifferentialTransactionEditor())
->setActor($viewer) ->setActor($viewer)
->setDisableEmail($request->getValue('silent')) ->setDisableEmail($request->getValue('silent'))
->setContentSourceFromConduitRequest($request) ->setContentSource($request->newContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true); ->setContinueOnMissingFields(true);

View file

@ -144,7 +144,7 @@ final class DifferentialCreateDiffConduitAPIMethod
id(new DifferentialDiffEditor()) id(new DifferentialDiffEditor())
->setActor($viewer) ->setActor($viewer)
->setContentSourceFromConduitRequest($request) ->setContentSource($request->newContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->applyTransactions($diff, $xactions); ->applyTransactions($diff, $xactions);

View file

@ -85,7 +85,7 @@ final class DifferentialCreateRawDiffConduitAPIMethod
id(new DifferentialDiffEditor()) id(new DifferentialDiffEditor())
->setActor($viewer) ->setActor($viewer)
->setContentSourceFromConduitRequest($request) ->setContentSource($request->newContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->setLookupRepository(false) // respect user choice ->setLookupRepository(false) // respect user choice
->applyTransactions($diff, $xactions); ->applyTransactions($diff, $xactions);

View file

@ -275,6 +275,7 @@ final class DifferentialChangesetViewController extends DifferentialController {
->setRenderURI('/differential/changeset/') ->setRenderURI('/differential/changeset/')
->setDiff($diff) ->setDiff($diff)
->setTitle(pht('Standalone View')) ->setTitle(pht('Standalone View'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setParser($parser); ->setParser($parser);
if ($revision_id) { if ($revision_id) {
@ -296,16 +297,20 @@ final class DifferentialChangesetViewController extends DifferentialController {
} }
$crumbs->addTextCrumb($changeset->getDisplayFilename()); $crumbs->addTextCrumb($changeset->getDisplayFilename());
$crumbs->setBorder(true);
return $this->buildApplicationPage( $header = id(new PHUIHeaderView())
array( ->setHeader(pht('Changeset View'))
$crumbs, ->setHeaderIcon('fa-gear');
$detail,
), $view = id(new PHUITwoColumnView())
array( ->setHeader($header)
'title' => pht('Changeset View'), ->setFooter($detail);
'device' => false,
)); return $this->newPage()
->setTitle(pht('Changeset View'))
->setCrumbs($crumbs)
->appendChild($view);
} }
private function buildRawFileResponse( private function buildRawFileResponse(

View file

@ -124,10 +124,12 @@ final class DifferentialDiffCreateController extends DifferentialController {
$title = pht('Update Diff'); $title = pht('Update Diff');
$header = pht('Update Diff'); $header = pht('Update Diff');
$button = pht('Continue'); $button = pht('Continue');
$header_icon = 'fa-upload';
} else { } else {
$title = pht('Create Diff'); $title = pht('Create Diff');
$header = pht('Create New Diff'); $header = pht('Create New Diff');
$button = pht('Create Diff'); $button = pht('Create Diff');
$header_icon = 'fa-plus-square';
} }
$form $form
@ -180,15 +182,12 @@ final class DifferentialDiffCreateController extends DifferentialController {
->setValue($button)); ->setValue($button));
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText($header) ->setHeaderText(pht('Diff'))
->setValidationException($validation_exception) ->setValidationException($validation_exception)
->setForm($form) ->setForm($form)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setFormErrors($errors); ->setFormErrors($errors);
if ($info_view) {
$form_box->setInfoView($info_view);
}
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
if ($revision) { if ($revision) {
$crumbs->addTextCrumb( $crumbs->addTextCrumb(
@ -196,15 +195,23 @@ final class DifferentialDiffCreateController extends DifferentialController {
'/'.$revision->getMonogram()); '/'.$revision->getMonogram());
} }
$crumbs->addTextCrumb($title); $crumbs->addTextCrumb($title);
$crumbs->setBorder(true);
return $this->buildApplicationPage( $header = id(new PHUIHeaderView())
array( ->setHeader($title)
$crumbs, ->setHeaderIcon($header_icon);
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$info_view,
$form_box, $form_box,
),
array(
'title' => $title,
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -171,35 +171,44 @@ final class DifferentialRevisionEditController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
if ($revision->getID()) { if ($revision->getID()) {
if ($diff) { if ($diff) {
$header_icon = 'fa-upload';
$title = pht('Update Differential Revision'); $title = pht('Update Differential Revision');
$crumbs->addTextCrumb( $crumbs->addTextCrumb(
'D'.$revision->getID(), 'D'.$revision->getID(),
'/differential/diff/'.$diff->getID().'/'); '/differential/diff/'.$diff->getID().'/');
} else { } else {
$header_icon = 'fa-pencil';
$title = pht('Edit Differential Revision'); $title = pht('Edit Differential Revision');
$crumbs->addTextCrumb( $crumbs->addTextCrumb(
'D'.$revision->getID(), 'D'.$revision->getID(),
'/D'.$revision->getID()); '/D'.$revision->getID());
} }
} else { } else {
$header_icon = 'fa-plus-square';
$title = pht('Create New Differential Revision'); $title = pht('Create New Differential Revision');
} }
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText($title) ->setHeaderText('Revision')
->setValidationException($validation_exception) ->setValidationException($validation_exception)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
$crumbs->addTextCrumb($title); $crumbs->addTextCrumb($title);
$crumbs->setBorder(true);
return $this->buildApplicationPage( $header = id(new PHUIHeaderView())
array( ->setHeader($title)
$crumbs, ->setHeaderIcon($header_icon);
$form_box,
), $view = id(new PHUITwoColumnView())
array( ->setHeader($header)
'title' => $title, ->setFooter($form_box);
));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -68,9 +68,7 @@ final class PhabricatorDifferentialAttachCommitWorkflow
->setViewer($viewer) ->setViewer($viewer)
->setAuthorPHID($differential_phid); ->setAuthorPHID($differential_phid);
$content_source = PhabricatorContentSource::newForSource( $content_source = $this->newContentSource();
PhabricatorContentSource::SOURCE_CONSOLE,
array());
$extraction_engine->updateRevisionWithCommit( $extraction_engine->updateRevisionWithCommit(
$revision, $revision,

View file

@ -376,7 +376,7 @@ final class DifferentialChangesetTwoUpRenderer
if (!$new) { if (!$new) {
$th_new = phutil_tag('th', array()); $th_new = phutil_tag('th', array());
} else { } else {
$th_new = phutil_tag('th', array('id' => "C{$id}OL1"), 1); $th_new = phutil_tag('th', array('id' => "C{$id}NL1"), 1);
} }
$output = hsprintf( $output = hsprintf(

View file

@ -18,8 +18,7 @@ final class DifferentialInlineComment
public function getTransactionCommentForSave() { public function getTransactionCommentForSave() {
$content_source = PhabricatorContentSource::newForSource( $content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_LEGACY, PhabricatorOldWorldContentSource::SOURCECONST);
array());
$this->proxy $this->proxy
->setViewPolicy('public') ->setViewPolicy('public')

View file

@ -95,7 +95,7 @@ final class DiffusionCreateCommentConduitAPIMethod
id(new PhabricatorAuditEditor()) id(new PhabricatorAuditEditor())
->setActor($request->getUser()) ->setActor($request->getUser())
->setContentSourceFromConduitRequest($request) ->setContentSource($request->newContentSource())
->setDisableEmail($request->getValue('silent')) ->setDisableEmail($request->getValue('silent'))
->setContinueOnMissingFields(true) ->setContinueOnMissingFields(true)
->applyTransactions($commit, $xactions); ->applyTransactions($commit, $xactions);

View file

@ -995,8 +995,8 @@ final class DiffusionBrowseController extends DiffusionController {
array $lines, array $lines,
array $blame_list, array $blame_list,
array $blame_commits, array $blame_commits,
$show_color, $show_blame,
$show_blame) { $show_color) {
$request = $this->getRequest(); $request = $this->getRequest();
$viewer = $this->getViewer(); $viewer = $this->getViewer();
@ -1233,6 +1233,7 @@ final class DiffusionBrowseController extends DiffusionController {
"\xC2\xAB"); "\xC2\xAB");
} }
if ($show_blame) {
$row[] = phutil_tag( $row[] = phutil_tag(
'th', 'th',
array( array(
@ -1253,6 +1254,7 @@ final class DiffusionBrowseController extends DiffusionController {
'class' => 'diffusion-rev-link', 'class' => 'diffusion-rev-link',
), ),
$object_links); $object_links);
}
$line_link = phutil_tag( $line_link = phutil_tag(
'a', 'a',

View file

@ -0,0 +1,120 @@
<?php
final class DoorkeeperBridgeGitHubUser
extends DoorkeeperBridgeGitHub {
const OBJTYPE_GITHUB_USER = 'github.user';
public function canPullRef(DoorkeeperObjectRef $ref) {
if (!parent::canPullRef($ref)) {
return false;
}
if ($ref->getObjectType() !== self::OBJTYPE_GITHUB_USER) {
return false;
}
return true;
}
public function pullRefs(array $refs) {
$token = $this->getGitHubAccessToken();
if (!strlen($token)) {
return null;
}
$template = id(new PhutilGitHubFuture())
->setAccessToken($token);
$futures = array();
$id_map = mpull($refs, 'getObjectID', 'getObjectKey');
foreach ($id_map as $key => $id) {
// GitHub doesn't provide a way to query for users by ID directly, but we
// can list all users, ordered by ID, starting at some particular ID,
// with a page size of one, which will achieve the desired effect.
$one_less = ($id - 1);
$uri = "/users?since={$one_less}&per_page=1";
$data = array();
$futures[$key] = id(clone $template)
->setRawGitHubQuery($uri, $data);
}
$results = array();
$failed = array();
foreach (new FutureIterator($futures) as $key => $future) {
try {
$results[$key] = $future->resolve();
} catch (Exception $ex) {
if (($ex instanceof HTTPFutureResponseStatus) &&
($ex->getStatusCode() == 404)) {
// TODO: Do we end up here for deleted objects and invisible
// objects?
} else {
phlog($ex);
$failed[$key] = $ex;
}
}
}
$viewer = $this->getViewer();
foreach ($refs as $ref) {
$ref->setAttribute('name', pht('GitHub User %s', $ref->getObjectID()));
$did_fail = idx($failed, $ref->getObjectKey());
if ($did_fail) {
$ref->setSyncFailed(true);
continue;
}
$result = idx($results, $ref->getObjectKey());
if (!$result) {
continue;
}
$body = $result->getBody();
if (!is_array($body) || !count($body)) {
$ref->setSyncFailed(true);
continue;
}
$spec = head($body);
if (!is_array($spec)) {
$ref->setSyncFailed(true);
continue;
}
// Because we're using a paging query to load each user, if a user (say,
// user ID 123) does not exist for some reason, we might get the next
// user (say, user ID 124) back. Make sure the user we got back is really
// the user we expect.
$id = idx($spec, 'id');
if ($id !== $ref->getObjectID()) {
$ref->setSyncFailed(true);
continue;
}
$ref->setIsVisible(true);
$ref->setAttribute('api.raw', $spec);
$ref->setAttribute('name', $spec['login']);
$obj = $ref->getExternalObject();
$this->fillObjectFromData($obj, $spec);
$unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();
$obj->save();
unset($unguarded);
}
}
public function fillObjectFromData(DoorkeeperExternalObject $obj, $spec) {
$uri = $spec['html_url'];
$obj->setObjectURI($uri);
$login = $spec['login'];
$obj->setDisplayName(pht('%s <%s>', $login, pht('GitHub')));
}
}

View file

@ -0,0 +1,47 @@
<?php
final class DoorkeeperExternalObjectPHIDType
extends PhabricatorPHIDType {
const TYPECONST = 'XOBJ';
public function getTypeName() {
return pht('External Object');
}
public function newObject() {
return new DoorkeeperExternalObject();
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorDoorkeeperApplication';
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DoorkeeperExternalObjectQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$xobj = $objects[$phid];
$uri = $xobj->getObjectURI();
$name = $xobj->getDisplayName();
$full_name = $xobj->getDisplayFullName();
$handle
->setURI($uri)
->setName($name)
->setFullName($full_name);
}
}
}

View file

@ -16,40 +16,32 @@ final class DoorkeeperExternalObjectQuery
return $this; return $this;
} }
protected function loadPage() { public function newResultObject() {
$table = new DoorkeeperExternalObject(); return new DoorkeeperExternalObject();
$conn_r = $table->establishConnection('r');
$data = queryfx_all(
$conn_r,
'SELECT * FROM %T %Q %Q %Q',
$table->getTableName(),
$this->buildWhereClause($conn_r),
$this->buildOrderClause($conn_r),
$this->buildLimitClause($conn_r));
return $table->loadAllFromArray($data);
} }
protected function buildWhereClause(AphrontDatabaseConnection $conn_r) { protected function loadPage() {
$where = array(); return $this->loadStandardPage($this->newResultObject());
}
if ($this->phids) { protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
$where = parent::buildWhereClauseParts($conn);
if ($this->phids !== null) {
$where[] = qsprintf( $where[] = qsprintf(
$conn_r, $conn,
'phid IN (%Ls)', 'phid IN (%Ls)',
$this->phids); $this->phids);
} }
if ($this->objectKeys) { if ($this->objectKeys !== null) {
$where[] = qsprintf( $where[] = qsprintf(
$conn_r, $conn,
'objectKey IN (%Ls)', 'objectKey IN (%Ls)',
$this->objectKeys); $this->objectKeys);
} }
$where[] = $this->buildPagingClause($conn_r); return $where;
return $this->formatWhereClause($where);
} }
public function getQueryApplicationClass() { public function getQueryApplicationClass() {

View file

@ -47,7 +47,7 @@ final class DoorkeeperExternalObject extends DoorkeeperDAO
public function generatePHID() { public function generatePHID() {
return PhabricatorPHID::generateNewPHID( return PhabricatorPHID::generateNewPHID(
PhabricatorPHIDConstants::PHID_TYPE_XOBJ); DoorkeeperExternalObjectPHIDType::TYPECONST);
} }
public function getProperty($key, $default = null) { public function getProperty($key, $default = null) {
@ -83,6 +83,27 @@ final class DoorkeeperExternalObject extends DoorkeeperDAO
return parent::save(); return parent::save();
} }
public function setDisplayName($display_name) {
return $this->setProperty('xobj.name.display', $display_name);
}
public function getDisplayName() {
return $this->getProperty('xobj.name.display', pht('External Object'));
}
public function setDisplayFullName($full_name) {
return $this->setProperty('xobj.name.display-full', $full_name);
}
public function getDisplayFullName() {
$full_name = $this->getProperty('xobj.name.display-full');
if ($full_name !== null) {
return $full_name;
}
return $this->getDisplayName();
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */ /* -( PhabricatorPolicyInterface )----------------------------------------- */

View file

@ -75,6 +75,10 @@ final class DrydockBlueprintEditEngine
return pht('Create Blueprint'); return pht('Create Blueprint');
} }
protected function getObjectName() {
return pht('Blueprint');
}
protected function getEditorURI() { protected function getEditorURI() {
return '/drydock/blueprint/edit/'; return '/drydock/blueprint/edit/';
} }

View file

@ -42,6 +42,7 @@ final class PhabricatorFundApplication extends PhabricatorApplication {
'/fund/' => array( '/fund/' => array(
'(?:query/(?P<queryKey>[^/]+)/)?' => 'FundInitiativeListController', '(?:query/(?P<queryKey>[^/]+)/)?' => 'FundInitiativeListController',
'create/' => 'FundInitiativeEditController', 'create/' => 'FundInitiativeEditController',
'comment/(?P<id>[1-9]\d*)/' => 'FundInitiativeCommentController',
'edit/(?:(?P<id>\d+)/)?' => 'FundInitiativeEditController', 'edit/(?:(?P<id>\d+)/)?' => 'FundInitiativeEditController',
'close/(?P<id>\d+)/' => 'FundInitiativeCloseController', 'close/(?P<id>\d+)/' => 'FundInitiativeCloseController',
'back/(?P<id>\d+)/' => 'FundInitiativeBackController', 'back/(?P<id>\d+)/' => 'FundInitiativeBackController',

View file

@ -0,0 +1,63 @@
<?php
final class FundInitiativeCommentController
extends FundController {
public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$id = $request->getURIData('id');
if (!$request->isFormPost()) {
return new Aphront400Response();
}
$initiative = id(new FundInitiativeQuery())
->setViewer($viewer)
->withIDs(array($id))
->executeOne();
if (!$initiative) {
return new Aphront404Response();
}
$is_preview = $request->isPreviewRequest();
$draft = PhabricatorDraft::buildFromRequest($request);
$view_uri = '/'.$initiative->getMonogram();
$xactions = array();
$xactions[] = id(new FundInitiativeTransaction())
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
->attachComment(
id(new FundInitiativeTransactionComment())
->setContent($request->getStr('comment')));
$editor = id(new FundInitiativeEditor())
->setActor($viewer)
->setContinueOnNoEffect($request->isContinueRequest())
->setContentSourceFromRequest($request)
->setIsPreview($is_preview);
try {
$xactions = $editor->applyTransactions($initiative, $xactions);
} catch (PhabricatorApplicationTransactionNoEffectException $ex) {
return id(new PhabricatorApplicationTransactionNoEffectResponse())
->setCancelURI($view_uri)
->setException($ex);
}
if ($draft) {
$draft->replaceOrDelete();
}
if ($request->isAjax() && $is_preview) {
return id(new PhabricatorApplicationTransactionResponse())
->setViewer($viewer)
->setTransactions($xactions)
->setIsPreview($is_preview);
} else {
return id(new AphrontRedirectResponse())
->setURI($view_uri);
}
}
}

View file

@ -52,12 +52,16 @@ final class FundInitiativeViewController
$timeline = $this->buildTransactionTimeline( $timeline = $this->buildTransactionTimeline(
$initiative, $initiative,
new FundInitiativeTransactionQuery()); new FundInitiativeTransactionQuery());
$timeline->setShouldTerminate(true);
$add_comment = $this->buildCommentForm($initiative);
$view = id(new PHUITwoColumnView()) $view = id(new PHUITwoColumnView())
->setHeader($header) ->setHeader($header)
->setCurtain($curtain) ->setCurtain($curtain)
->setMainColumn($timeline) ->setMainColumn(array(
$timeline,
$add_comment,
))
->addPropertySection(pht('DETAILS'), $details); ->addPropertySection(pht('DETAILS'), $details);
return $this->newPage() return $this->newPage()
@ -160,4 +164,27 @@ final class FundInitiativeViewController
return $curtain; return $curtain;
} }
private function buildCommentForm(FundInitiative $initiative) {
$viewer = $this->getViewer();
$is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business');
$add_comment_header = $is_serious
? pht('Add Comment')
: pht('Add Liquidity');
$draft = PhabricatorDraft::newFromUserAndKey(
$viewer, $initiative->getPHID());
return id(new PhabricatorApplicationTransactionCommentView())
->setUser($viewer)
->setObjectPHID($initiative->getPHID())
->setDraft($draft)
->setHeaderText($add_comment_header)
->setAction(
$this->getApplicationURI('/comment/'.$initiative->getID().'/'))
->setSubmitButtonName(pht('Add Comment'));
}
} }

View file

@ -23,6 +23,7 @@ final class FundInitiativeEditor
$types[] = FundInitiativeTransaction::TYPE_MERCHANT; $types[] = FundInitiativeTransaction::TYPE_MERCHANT;
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
$types[] = PhabricatorTransactions::TYPE_COMMENT;
return $types; return $types;
} }

View file

@ -27,7 +27,7 @@ final class FundInitiativeTransaction
} }
public function getApplicationTransactionCommentObject() { public function getApplicationTransactionCommentObject() {
return null; return new FundInitiativeTransactionComment();
} }
public function getRequiredHandlePHIDs() { public function getRequiredHandlePHIDs() {

View file

@ -1,10 +1,10 @@
<?php <?php
final class NuanceRequestorTransactionComment final class FundInitiativeTransactionComment
extends PhabricatorApplicationTransactionComment { extends PhabricatorApplicationTransactionComment {
public function getApplicationTransactionObject() { public function getApplicationTransactionObject() {
return new NuanceRequestorTransaction(); return new FundInitiativeTransaction();
} }
} }

Some files were not shown because too many files have changed in this diff Show more